{"version":3,"sources":["Main.elm","registerServiceWorker.js","index.js"],"names":["scope","F","arity","fun","wrapper","a","f","F2","b","F3","c","F4","d","F5","e","A2","A3","A4","A5","_List_Nil","$","_List_Cons","hd","tl","_List_cons","_List_fromArray","arr","out","i","length","_Utils_eqHelp","x","y","depth","stack","push","_Utils_Tuple2","_Debug_crash","key","elm$core$Dict$toList","_Utils_cmp","ord","_Utils_compare","n","elm$core$Basics$LT","elm$core$Basics$GT","elm$core$Basics$EQ","_Utils_Tuple3","_Utils_update","oldRecord","updatedFields","newRecord","_Utils_ap","xs","ys","root","curr","_JsArray_initialize","size","offset","func","result","Array","_JsArray_initializeFromList","max","ls","identifier","Error","_Basics_ceiling","Math","ceil","_Basics_floor","floor","_Basics_log","log","_Json_decodePrim","decoder","_Json_decodeInt","value","_Json_expecting","elm$core$Result$Ok","isFinite","_Json_wrap","String","_Json_decodeField","field","_Json_mapMany","decoders","g","_Json_map1","d1","_Json_map3","d2","d3","_Json_run","_Json_runHelp","_Json_unwrap","_Json_isArray","_Json_runArrayDecoder","_Json_toElmArray","elm$core$Result$isOk","elm$core$Result$Err","elm$json$Json$Decode$Field","index","elm$json$Json$Decode$Index","keyValuePairs","hasOwnProperty","elm$core$List$reverse","answer","h","errors","temp","elm$json$Json$Decode$OneOf","elm$json$Json$Decode$Failure","toElmValue","len","array","isArray","FileList","elm$core$Array$initialize","type","_Json_equality","_Json_listEquality","aDecoders","bDecoders","_Scheduler_succeed","_Scheduler_binding","callback","_Scheduler_andThen","task","_Scheduler_guid","_Scheduler_rawSpawn","proc","_Scheduler_enqueue","_Scheduler_spawn","_Scheduler_rawSend","msg","_Scheduler_send","_Scheduler_working","_Scheduler_queue","shift","_Scheduler_step","rootTag","newRoot","_Platform_effectManagers","_Platform_createManager","init","onEffects","onSelfMsg","cmdMap","subMap","_Platform_instantiateManager","info","sendToApp","router","undefined","loop","state","j","_Platform_sendToApp","_Platform_sendToSelf","_Platform_leaf","home","k","l","_Platform_batch","list","m","_Platform_dispatchEffects","managers","cmdBag","subBag","effectsDict","_Platform_gatherEffects","isCmd","bag","taggers","effect","q","p","_Platform_toEffect","newEffect","effects","_Platform_insert","o","_MJS_v2","Float64Array","_MJS_v2add","r","_MJS_v3temp1Local","_MJS_v3temp2Local","_MJS_v3temp3Local","_MJS_v3","z","_MJS_v3add","_MJS_v3directionLocal","_MJS_v3normalizeLocal","_MJS_v3subLocal","im","sqrt","_MJS_v3lengthLocal","_MJS_v3crossLocal","_MJS_m4x4temp1Local","_MJS_m4x4temp2Local","_MJS_m4x4makePerspective","fovy","aspect","znear","zfar","ymax","tan","PI","ymin","left","right","bottom","top","_MJS_m4x4makeFrustumLocal","_VirtualDom_divertHrefToApp","_MJS_m4x4makeRotate","angle","axis","cos","c1","s","sin","_MJS_m4x4makeLookAt","eye","center","up","a11","a21","a31","a41","a12","a22","a32","a42","a13","a23","a33","a43","a14","a24","a34","a44","b11","b21","b31","b41","b12","b22","b32","b42","b13","b23","b33","b43","b14","b24","b34","b44","tm1","tm2","_VirtualDom_doc","document","_VirtualDom_appendChild","parent","child","appendChild","_VirtualDom_text","string","_VirtualDom_node","namespace","tag","factList","kidList","kids","descendantsCount","kid","_VirtualDom_organizeFacts","_VirtualDom_nodeNS","_VirtualDom_keyedNodeNS","_VirtualDom_passiveSupported","_VirtualDom_attribute","facts","entry","subFacts","_VirtualDom_addClass","object","newClass","classes","_VirtualDom_render","vNode","eventNode","createTextNode","subNode","tagger","subEventRoot","domNode","elm_event_node_ref","_VirtualDom_applyFacts","createElementNS","createElement","addEventListener","_VirtualDom_applyStyles","_VirtualDom_applyEvents","_VirtualDom_applyAttrs","_VirtualDom_applyAttrsNS","styles","domNodeStyle","style","attrs","setAttribute","removeAttribute","nsAttrs","pair","setAttributeNS","removeAttributeNS","events","allCallbacks","elmFs","newHandler","oldCallback","removeEventListener","_VirtualDom_makeCallback","passive","elm$virtual_dom$VirtualDom$toHandlerInt","window","Object","defineProperty","get","initialHandler","event","handler","message","w","stopPropagation","aF","currentEventNode","aC","preventDefault","_VirtualDom_equalEvents","_VirtualDom_pushPatch","patches","data","patch","t","u","_VirtualDom_diffHelp","xType","yType","keyedNode","keyedKids","_VirtualDom_dekey","xRefs","yRefs","same","subPatches","xTaggers","yTaggers","nesting","xSubNode","ySubNode","as","bs","_VirtualDom_pairwiseRefEqual","_VirtualDom_diffNodes","_VirtualDom_diffKids","_VirtualDom_diffKeyedKids","factsDiff","_VirtualDom_diffFacts","diffKids","category","diff","xKey","xValue","yValue","subDiff","yKey","xParent","yParent","xKids","yKids","xLen","yLen","v","minLen","xKid","rootIndex","localPatches","changes","inserts","xIndex","yIndex","xNode","yNode","newMatch","oldMatch","xNext","yNext","xNextKey","xNextNode","yNextKey","yNextNode","_VirtualDom_insertNode","_VirtualDom_removeNode","endInserts","_VirtualDom_POSTFIX","vnode","A","_VirtualDom_applyPatches","rootDomNode","oldVirtualNode","_VirtualDom_addDomNodes","_VirtualDom_addDomNodesHelp","low","high","patchType","vKids","childNodes","vKid","nextLow","_VirtualDom_applyPatchesHelp","localDomNode","newNode","_VirtualDom_applyPatch","parentNode","replaceChild","_VirtualDom_applyPatchRedraw","replaceData","removeChild","theEnd","insertBefore","frag","createDocumentFragment","_VirtualDom_applyPatchReorderEndInsertsHelp","insert","node","_VirtualDom_applyPatchReorder","_WebGL_guid","_WebGL_listEach","fn","_WebGL_listLength","_WebGL_rAF","requestAnimationFrame","cb","setTimeout","_WebGL_entity","settings","vert","mesh","uniforms","id","_WebGL_enableBlend","gl","setting","enable","BLEND","blendEquationSeparate","blendFuncSeparate","blendColor","_WebGL_enableDepthTest","DEPTH_TEST","depthFunc","depthMask","depthRange","_WebGL_enableStencilTest","STENCIL_TEST","stencilFuncSeparate","FRONT","stencilOpSeparate","stencilMaskSeparate","BACK","_WebGL_enableScissor","SCISSOR_TEST","scissor","_WebGL_enableColorMask","colorMask","_WebGL_enableCullFace","CULL_FACE","cullFace","_WebGL_enablePolygonOffset","POLYGON_OFFSET_FILL","polygonOffset","_WebGL_enableSampleCoverage","SAMPLE_COVERAGE","sampleCoverage","_WebGL_enableSampleAlphaToCoverage","SAMPLE_ALPHA_TO_COVERAGE","_WebGL_doCompile","src","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","_WebGL_getAttributeInfo","FLOAT","Float32Array","baseType","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","Int32Array","INT_VEC2","INT_VEC3","INT_VEC4","_WebGL_doBindAttribute","attribute","attributes","elemSize","idxKeys","fromCharCode","attributeInfo","dataIdx","elem","cnt","fillOffset","forEach","idx","dataFill","name","buffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","_WebGL_getProgID","vertID","fragID","_WebGL_drawGL","model","viewport","drawingBufferWidth","drawingBufferHeight","clear","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","entity","progid","program","setters","values","programs","vshader","fshader","shaders","VERTEX_SHADER","FRAGMENT_SHADER","glProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","_WebGL_doLink","assign","uniformSetters","uniformsMap","textureCounter","createUniformSetter","uniform","uniformLocation","getUniformLocation","uniform1i","uniform1f","uniform2fv","uniform3fv","uniform4fv","FLOAT_MAT4","uniformMatrix4fv","SAMPLER_2D","currentTexture","texture","activeTexture","TEXTURE0","tex","textures","aN","bindTexture","TEXTURE_2D","BOOL","numUniforms","ACTIVE_UNIFORMS","getActiveUniform","_WebGL_createUniformSetters","useProgram","keys","setter","buffers","indexBuffer","indices","numIndices","Uint16Array","_WebGL_makeSequentialBuffer","indicesList","indexSize","_WebGL_makeIndexedBuffer","ELEMENT_ARRAY_BUFFER","_WebGL_doBindSetup","numAttributes","ACTIVE_ATTRIBUTES","getActiveAttrib","attribLocation","getAttribLocation","enableVertexAttribArray","attributeBuffer","vertexAttribPointer","elm_explorations$webgl$WebGL$Internal$enableSetting","drawElements","UNSIGNED_SHORT","elm_explorations$webgl$WebGL$Internal$disableSetting","_WebGL_toHtml","options","entities","render","_VirtualDom_custom","_WebGL_render","_WebGL_diff","_WebGL_enableAlpha","option","contextAttributes","alpha","premultipliedAlpha","_WebGL_enableDepth","sceneSettings","clearDepth","_WebGL_enableStencil","stencil","clearStencil","_WebGL_enableAntialias","antialias","_WebGL_enableClearColor","clearColor","elm_explorations$webgl$WebGL$Internal$enableOption","canvas","getContext","sceneSetting","innerHTML","oldModel","newModel","_Browser_element","impl","flagDecoder","debugMetadata","args","update","subscriptions","stepperBuilder","stepper","ports","manager","_Platform_setupEffects","viewMetadata","_Platform_initialize","bK","bU","bS","initialModel","view","bW","currNode","_VirtualDom_virtualize","nodeType","textContent","attrList","attr","tagName","toLowerCase","draw","updateIfNeeded","_Browser_requestAnimationFrame","nextModel","isSync","_Browser_makeAnimator","nextNode","_VirtualDom_diff","_Browser_cancelAnimationFrame","cancelAnimationFrame","clearTimeout","millisToPosix","_Browser_fakeNode","_Browser_doc","_Browser_window","_Browser_on","eventName","sendToSelf","_Browser_decodeEvent","elm$core$Maybe$Just","elm$core$Maybe$Nothing","author$project$Main$Diff","author$project$Main$MouseMoved","author$project$Main$MouseMovement","dx","dy","buttons","aI","aP","aQ","elm$core$Array$Array_elm_builtin","elm$core$Dict$foldr","acc","$temp$func","$temp$acc","elm$core$List$cons","dict","elm$core$Basics$ceiling","elm$core$Basics$logBase","base","number","elm$core$Array$shiftStep","elm$core$Elm$JsArray$empty","elm$core$Array$empty","elm$core$Elm$JsArray$initializeFromList","elm$core$List$foldl","elm$core$Array$compressNodes","nodes","_n0","remainingNodes","newAcc","elm$core$Array$treeFromBuilder","nodeList","nodeListSize","newNodeSize","elm$core$Basics$floor","elm$core$Basics$max","elm$core$Elm$JsArray$length","elm$core$Array$builderToArray","reverseNodeList","builder","treeLen","correctNodeList","tree","elm$core$Elm$JsArray$initialize","elm$core$Array$initializeHelp","fromIndex","tail","leaf","tailLen","elm$core$String$fromInt","elm$json$Json$Decode$field","elm$json$Json$Decode$int","author$project$Main$mouseDecode","elm$core$Task$andThen","elm$core$Task$succeed","elm$random$Random$Seed","elm$random$Random$next","incr","elm$random$Random$initialSeed","elm$time$Time$millisToPosix","elm$time$Time$now","Date","now","elm$random$Random$init","time","elm$core$Platform$sendToApp","elm$random$Random$step","seed","elm$random$Random$onEffects","commands","rest","_n1","newSeed","elm$random$Random$onSelfMsg","elm$random$Random$map","genA","seed0","seed1","rft","rfb","rbt","rbb","lft","lfb","lbt","lbb","elm$random$Random$command","elm$random$Random$peel","word","author$project$Main$seedCmd","generator","lo","range","threshhold","seedN","accountForBias","elm_explorations$linear_algebra$Math$Vector2$vec2","author$project$Main$opts","aK","aL","av","aW","ax","az","aA","elm_explorations$linear_algebra$Math$Vector3$vec3","author$project$Main$origin","elm$random$Random$float","n1","author$project$Main$vGenerator","_n2","genB","genC","_n3","_n4","_n5","seed3","elm$core$Basics$min","author$project$Main$addDrag","elm_explorations$linear_algebra$Math$Vector2$toRecord","author$project$Main$dvGenerator","author$project$Main$addRand","author$project$Main$capPositionComponent","newP","newV","elm_explorations$linear_algebra$Math$Vector3$fromRecord","au","elm_explorations$linear_algebra$Math$Vector3$toRecord","author$project$Main$capPosition","vr","pr","newPx","newVx","newPy","newVy","newVz","elm$core$List$drop","drop","elm_explorations$linear_algebra$Math$Vector2$add","elm_explorations$linear_algebra$Math$Vector3$add","author$project$Main$step","vec","rec","numLines","D","W","ad","newP2","newV2","E","ac","newP1","newV1","V","H","elm$core$Platform$Cmd$none","author$project$Main$update","v1","author$project$Main$Vertex","position","bQ","elm_explorations$webgl$WebGL$lines","elm_explorations$webgl$WebGL$Mesh2","author$project$Main$cubeMesh","author$project$Main$fragmentShader","author$project$Main$lineToVertex","p2","elm$core$List$foldrHelper","ctr","r1","r2","r3","r4","elm$core$List$foldr","elm$core$List$map","author$project$Main$noirShader","elm_explorations$linear_algebra$Math$Matrix4$makeLookAt","elm_explorations$linear_algebra$Math$Matrix4$makePerspective","elm_explorations$linear_algebra$Math$Matrix4$makeRotate","elm_explorations$linear_algebra$Math$Vector3$i","elm_explorations$linear_algebra$Math$Vector3$j","author$project$Main$uniforms","xr","yr","aJ","bg","bp","bq","author$project$Main$vertexShader","camera","perspective","rotationX","rotationY","elm$json$Json$Decode$map","elm$html$Html$div","disable","_WebGL_disableBlend","_WebGL_disableDepthTest","_WebGL_disableStencilTest","_WebGL_disableScissor","_WebGL_disableColorMask","_WebGL_disableCullFace","_WebGL_disablePolygonOffset","_WebGL_disableSampleCoverage","_WebGL_disableSampleAlphaToCoverage","ctx","elm_explorations$webgl$WebGL$entity","elm_explorations$webgl$WebGL$toHtml","elm_explorations$webgl$WebGL$toHtmlWith","elm_explorations$webgl$WebGL$depth","elm$core$Task$init","elm$core$Task$map","taskA","elm$core$Task$map2","taskB","elm$core$Task$sequence","tasks","elm$core$Task$spawnCmd","elm$browser$Browser$element","elm$browser$Browser$AnimationManager$Delta","elm$browser$Browser$AnimationManager$State","subs","request","oldTime","aB","bo","bt","elm$browser$Browser$AnimationManager$init","elm$browser$Browser$AnimationManager$now","elm$browser$Browser$AnimationManager$rAF","elm$core$Platform$sendToSelf","elm$core$Process$kill","elm$core$Process$spawn","elm$browser$Browser$AnimationManager$onEffects","pid","elm$browser$Browser$AnimationManager$onSelfMsg","newTime","send","sub","elm$core$Basics$composeL","elm$browser$Browser$AnimationManager$subscription","elm$browser$Browser$Events$MySub","elm$browser$Browser$Events$State","pids","bh","elm$core$Dict$RBEmpty_elm_builtin","elm$core$Dict$empty","elm$browser$Browser$Events$init","elm$browser$Browser$Events$addKey","elm$browser$Browser$Events$Event","aS","aX","elm$browser$Browser$Events$spawn","elm$core$Dict$RBNode_elm_builtin","elm$core$Basics$compare","elm$core$Dict$balance","color","_n6","lRight","rK","rV","rLeft","rRight","elm$core$Dict$insertHelp","nColor","nKey","nValue","nLeft","nRight","elm$core$Dict$insert","elm$core$Dict$fromList","assocs","elm$core$Dict$foldl","elm$core$Dict$merge","leftStep","bothStep","rightStep","leftDict","rightDict","initialResult","rKey","rValue","stepState","lKey","lValue","leftovers","intermediateResult","elm$core$Dict$union","t1","t2","elm$browser$Browser$Events$onEffects","stepRight","news","stepLeft","lives","stepBoth","newSubs","livePids","makeNewPids","elm$core$List$maybeCons","mx","elm$core$List$filterMap","messages","isEqual","pop","_Utils_eq","exports","elm$browser$Browser$Events$subscription","elm$browser$Browser$Events$onMouseMove","elm$core$Platform$Sub$batch","Main","lines","author$project$Main$main","_Platform_mergeExportsProd","obj","this","isLocalhost","registerValidSW","swUrl","navigator","registration","installingWorker","installing","controller","console","error","Elm","URL","process","location","publicUrl","origin","concat","fetch","response","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.c031ad01.chunk.js","sourcesContent":["(function(scope){\n'use strict';\n\nfunction F(arity, fun, wrapper) {\n wrapper.a = arity;\n wrapper.f = fun;\n return wrapper;\n}\n\nfunction F2(fun) {\n return F(2, fun, function(a) { return function(b) { return fun(a,b); }; })\n}\nfunction F3(fun) {\n return F(3, fun, function(a) {\n return function(b) { return function(c) { return fun(a, b, c); }; };\n });\n}\nfunction F4(fun) {\n return F(4, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return fun(a, b, c, d); }; }; };\n });\n}\nfunction F5(fun) {\n return F(5, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return fun(a, b, c, d, e); }; }; }; };\n });\n}\nfunction F6(fun) {\n return F(6, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return fun(a, b, c, d, e, f); }; }; }; }; };\n });\n}\nfunction F7(fun) {\n return F(7, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return fun(a, b, c, d, e, f, g); }; }; }; }; }; };\n });\n}\nfunction F8(fun) {\n return F(8, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) {\n return fun(a, b, c, d, e, f, g, h); }; }; }; }; }; }; };\n });\n}\nfunction F9(fun) {\n return F(9, fun, function(a) { return function(b) { return function(c) {\n return function(d) { return function(e) { return function(f) {\n return function(g) { return function(h) { return function(i) {\n return fun(a, b, c, d, e, f, g, h, i); }; }; }; }; }; }; }; };\n });\n}\n\nfunction A2(fun, a, b) {\n return fun.a === 2 ? fun.f(a, b) : fun(a)(b);\n}\nfunction A3(fun, a, b, c) {\n return fun.a === 3 ? fun.f(a, b, c) : fun(a)(b)(c);\n}\nfunction A4(fun, a, b, c, d) {\n return fun.a === 4 ? fun.f(a, b, c, d) : fun(a)(b)(c)(d);\n}\nfunction A5(fun, a, b, c, d, e) {\n return fun.a === 5 ? fun.f(a, b, c, d, e) : fun(a)(b)(c)(d)(e);\n}\nfunction A6(fun, a, b, c, d, e, f) {\n return fun.a === 6 ? fun.f(a, b, c, d, e, f) : fun(a)(b)(c)(d)(e)(f);\n}\nfunction A7(fun, a, b, c, d, e, f, g) {\n return fun.a === 7 ? fun.f(a, b, c, d, e, f, g) : fun(a)(b)(c)(d)(e)(f)(g);\n}\nfunction A8(fun, a, b, c, d, e, f, g, h) {\n return fun.a === 8 ? fun.f(a, b, c, d, e, f, g, h) : fun(a)(b)(c)(d)(e)(f)(g)(h);\n}\nfunction A9(fun, a, b, c, d, e, f, g, h, i) {\n 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);\n}\n\n\n\n\nvar _List_Nil = { $: 0 };\nvar _List_Nil_UNUSED = { $: '[]' };\n\nfunction _List_Cons(hd, tl) { return { $: 1, a: hd, b: tl }; }\nfunction _List_Cons_UNUSED(hd, tl) { return { $: '::', a: hd, b: tl }; }\n\n\nvar _List_cons = F2(_List_Cons);\n\nfunction _List_fromArray(arr)\n{\n\tvar out = _List_Nil;\n\tfor (var i = arr.length; i--; )\n\t{\n\t\tout = _List_Cons(arr[i], out);\n\t}\n\treturn out;\n}\n\nfunction _List_toArray(xs)\n{\n\tfor (var out = []; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tout.push(xs.a);\n\t}\n\treturn out;\n}\n\nvar _List_map2 = F3(function(f, xs, ys)\n{\n\tfor (var arr = []; xs.b && ys.b; xs = xs.b, ys = ys.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A2(f, xs.a, ys.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map3 = F4(function(f, xs, ys, zs)\n{\n\tfor (var arr = []; xs.b && ys.b && zs.b; xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A3(f, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map4 = F5(function(f, ws, xs, ys, zs)\n{\n\tfor (var arr = []; ws.b && xs.b && ys.b && zs.b; ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A4(f, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_map5 = F6(function(f, vs, ws, xs, ys, zs)\n{\n\tfor (var arr = []; vs.b && ws.b && xs.b && ys.b && zs.b; vs = vs.b, ws = ws.b, xs = xs.b, ys = ys.b, zs = zs.b) // WHILE_CONSES\n\t{\n\t\tarr.push(A5(f, vs.a, ws.a, xs.a, ys.a, zs.a));\n\t}\n\treturn _List_fromArray(arr);\n});\n\nvar _List_sortBy = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\treturn _Utils_cmp(f(a), f(b));\n\t}));\n});\n\nvar _List_sortWith = F2(function(f, xs)\n{\n\treturn _List_fromArray(_List_toArray(xs).sort(function(a, b) {\n\t\tvar ord = A2(f, a, b);\n\t\treturn ord === elm$core$Basics$EQ ? 0 : ord === elm$core$Basics$LT ? -1 : 1;\n\t}));\n});\n\n\n\n// EQUALITY\n\nfunction _Utils_eq(x, y)\n{\n\tfor (\n\t\tvar pair, stack = [], isEqual = _Utils_eqHelp(x, y, 0, stack);\n\t\tisEqual && (pair = stack.pop());\n\t\tisEqual = _Utils_eqHelp(pair.a, pair.b, 0, stack)\n\t\t)\n\t{}\n\n\treturn isEqual;\n}\n\nfunction _Utils_eqHelp(x, y, depth, stack)\n{\n\tif (depth > 100)\n\t{\n\t\tstack.push(_Utils_Tuple2(x,y));\n\t\treturn true;\n\t}\n\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (typeof x !== 'object' || x === null || y === null)\n\t{\n\t\ttypeof x === 'function' && _Debug_crash(5);\n\t\treturn false;\n\t}\n\n\t/**_UNUSED/\n\tif (x.$ === 'Set_elm_builtin')\n\t{\n\t\tx = elm$core$Set$toList(x);\n\t\ty = elm$core$Set$toList(y);\n\t}\n\tif (x.$ === 'RBNode_elm_builtin' || x.$ === 'RBEmpty_elm_builtin')\n\t{\n\t\tx = elm$core$Dict$toList(x);\n\t\ty = elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\t/**/\n\tif (x.$ < 0)\n\t{\n\t\tx = elm$core$Dict$toList(x);\n\t\ty = elm$core$Dict$toList(y);\n\t}\n\t//*/\n\n\tfor (var key in x)\n\t{\n\t\tif (!_Utils_eqHelp(x[key], y[key], depth + 1, stack))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\nvar _Utils_equal = F2(_Utils_eq);\nvar _Utils_notEqual = F2(function(a, b) { return !_Utils_eq(a,b); });\n\n\n\n// COMPARISONS\n\n// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on\n// the particular integer values assigned to LT, EQ, and GT.\n\nfunction _Utils_cmp(x, y, ord)\n{\n\tif (typeof x !== 'object')\n\t{\n\t\treturn x === y ? /*EQ*/ 0 : x < y ? /*LT*/ -1 : /*GT*/ 1;\n\t}\n\n\t/**_UNUSED/\n\tif (x instanceof String)\n\t{\n\t\tvar a = x.valueOf();\n\t\tvar b = y.valueOf();\n\t\treturn a === b ? 0 : a < b ? -1 : 1;\n\t}\n\t//*/\n\n\t/**/\n\tif (typeof x.$ === 'undefined')\n\t//*/\n\t/**_UNUSED/\n\tif (x.$[0] === '#')\n\t//*/\n\t{\n\t\treturn (ord = _Utils_cmp(x.a, y.a))\n\t\t\t? ord\n\t\t\t: (ord = _Utils_cmp(x.b, y.b))\n\t\t\t\t? ord\n\t\t\t\t: _Utils_cmp(x.c, y.c);\n\t}\n\n\t// traverse conses until end of a list or a mismatch\n\tfor (; x.b && y.b && !(ord = _Utils_cmp(x.a, y.a)); x = x.b, y = y.b) {} // WHILE_CONSES\n\treturn ord || (x.b ? /*GT*/ 1 : y.b ? /*LT*/ -1 : /*EQ*/ 0);\n}\n\nvar _Utils_lt = F2(function(a, b) { return _Utils_cmp(a, b) < 0; });\nvar _Utils_le = F2(function(a, b) { return _Utils_cmp(a, b) < 1; });\nvar _Utils_gt = F2(function(a, b) { return _Utils_cmp(a, b) > 0; });\nvar _Utils_ge = F2(function(a, b) { return _Utils_cmp(a, b) >= 0; });\n\nvar _Utils_compare = F2(function(x, y)\n{\n\tvar n = _Utils_cmp(x, y);\n\treturn n < 0 ? elm$core$Basics$LT : n ? elm$core$Basics$GT : elm$core$Basics$EQ;\n});\n\n\n// COMMON VALUES\n\nvar _Utils_Tuple0 = 0;\nvar _Utils_Tuple0_UNUSED = { $: '#0' };\n\nfunction _Utils_Tuple2(a, b) { return { a: a, b: b }; }\nfunction _Utils_Tuple2_UNUSED(a, b) { return { $: '#2', a: a, b: b }; }\n\nfunction _Utils_Tuple3(a, b, c) { return { a: a, b: b, c: c }; }\nfunction _Utils_Tuple3_UNUSED(a, b, c) { return { $: '#3', a: a, b: b, c: c }; }\n\nfunction _Utils_chr(c) { return c; }\nfunction _Utils_chr_UNUSED(c) { return new String(c); }\n\n\n// RECORDS\n\nfunction _Utils_update(oldRecord, updatedFields)\n{\n\tvar newRecord = {};\n\n\tfor (var key in oldRecord)\n\t{\n\t\tnewRecord[key] = oldRecord[key];\n\t}\n\n\tfor (var key in updatedFields)\n\t{\n\t\tnewRecord[key] = updatedFields[key];\n\t}\n\n\treturn newRecord;\n}\n\n\n// APPEND\n\nvar _Utils_append = F2(_Utils_ap);\n\nfunction _Utils_ap(xs, ys)\n{\n\t// append Strings\n\tif (typeof xs === 'string')\n\t{\n\t\treturn xs + ys;\n\t}\n\n\t// append Lists\n\tif (!xs.b)\n\t{\n\t\treturn ys;\n\t}\n\tvar root = _List_Cons(xs.a, ys);\n\txs = xs.b\n\tfor (var curr = root; xs.b; xs = xs.b) // WHILE_CONS\n\t{\n\t\tcurr = curr.b = _List_Cons(xs.a, ys);\n\t}\n\treturn root;\n}\n\n\n\nvar _JsArray_empty = [];\n\nfunction _JsArray_singleton(value)\n{\n return [value];\n}\n\nfunction _JsArray_length(array)\n{\n return array.length;\n}\n\nvar _JsArray_initialize = F3(function(size, offset, func)\n{\n var result = new Array(size);\n\n for (var i = 0; i < size; i++)\n {\n result[i] = func(offset + i);\n }\n\n return result;\n});\n\nvar _JsArray_initializeFromList = F2(function (max, ls)\n{\n var result = new Array(max);\n\n for (var i = 0; i < max && ls.b; i++)\n {\n result[i] = ls.a;\n ls = ls.b;\n }\n\n result.length = i;\n return _Utils_Tuple2(result, ls);\n});\n\nvar _JsArray_unsafeGet = F2(function(index, array)\n{\n return array[index];\n});\n\nvar _JsArray_unsafeSet = F3(function(index, value, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[index] = value;\n return result;\n});\n\nvar _JsArray_push = F2(function(value, array)\n{\n var length = array.length;\n var result = new Array(length + 1);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = array[i];\n }\n\n result[length] = value;\n return result;\n});\n\nvar _JsArray_foldl = F3(function(func, acc, array)\n{\n var length = array.length;\n\n for (var i = 0; i < length; i++)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_foldr = F3(function(func, acc, array)\n{\n for (var i = array.length - 1; i >= 0; i--)\n {\n acc = A2(func, array[i], acc);\n }\n\n return acc;\n});\n\nvar _JsArray_map = F2(function(func, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = func(array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_indexedMap = F3(function(func, offset, array)\n{\n var length = array.length;\n var result = new Array(length);\n\n for (var i = 0; i < length; i++)\n {\n result[i] = A2(func, offset + i, array[i]);\n }\n\n return result;\n});\n\nvar _JsArray_slice = F3(function(from, to, array)\n{\n return array.slice(from, to);\n});\n\nvar _JsArray_appendN = F3(function(n, dest, source)\n{\n var destLen = dest.length;\n var itemsToCopy = n - destLen;\n\n if (itemsToCopy > source.length)\n {\n itemsToCopy = source.length;\n }\n\n var size = destLen + itemsToCopy;\n var result = new Array(size);\n\n for (var i = 0; i < destLen; i++)\n {\n result[i] = dest[i];\n }\n\n for (var i = 0; i < itemsToCopy; i++)\n {\n result[i + destLen] = source[i];\n }\n\n return result;\n});\n\n\n\n// LOG\n\nvar _Debug_log = F2(function(tag, value)\n{\n\treturn value;\n});\n\nvar _Debug_log_UNUSED = F2(function(tag, value)\n{\n\tconsole.log(tag + ': ' + _Debug_toString(value));\n\treturn value;\n});\n\n\n// TODOS\n\nfunction _Debug_todo(moduleName, region)\n{\n\treturn function(message) {\n\t\t_Debug_crash(8, moduleName, region, message);\n\t};\n}\n\nfunction _Debug_todoCase(moduleName, region, value)\n{\n\treturn function(message) {\n\t\t_Debug_crash(9, moduleName, region, value, message);\n\t};\n}\n\n\n// TO STRING\n\nfunction _Debug_toString(value)\n{\n\treturn '';\n}\n\nfunction _Debug_toString_UNUSED(value)\n{\n\treturn _Debug_toAnsiString(false, value);\n}\n\nfunction _Debug_toAnsiString(ansi, value)\n{\n\tif (typeof value === 'function')\n\t{\n\t\treturn _Debug_internalColor(ansi, '');\n\t}\n\n\tif (typeof value === 'boolean')\n\t{\n\t\treturn _Debug_ctorColor(ansi, value ? 'True' : 'False');\n\t}\n\n\tif (typeof value === 'number')\n\t{\n\t\treturn _Debug_numberColor(ansi, value + '');\n\t}\n\n\tif (value instanceof String)\n\t{\n\t\treturn _Debug_charColor(ansi, \"'\" + _Debug_addSlashes(value, true) + \"'\");\n\t}\n\n\tif (typeof value === 'string')\n\t{\n\t\treturn _Debug_stringColor(ansi, '\"' + _Debug_addSlashes(value, false) + '\"');\n\t}\n\n\tif (typeof value === 'object' && '$' in value)\n\t{\n\t\tvar tag = value.$;\n\n\t\tif (typeof tag === 'number')\n\t\t{\n\t\t\treturn _Debug_internalColor(ansi, '');\n\t\t}\n\n\t\tif (tag[0] === '#')\n\t\t{\n\t\t\tvar output = [];\n\t\t\tfor (var k in value)\n\t\t\t{\n\t\t\t\tif (k === '$') continue;\n\t\t\t\toutput.push(_Debug_toAnsiString(ansi, value[k]));\n\t\t\t}\n\t\t\treturn '(' + output.join(',') + ')';\n\t\t}\n\n\t\tif (tag === 'Set_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Set')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Set$toList(value));\n\t\t}\n\n\t\tif (tag === 'RBNode_elm_builtin' || tag === 'RBEmpty_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Dict')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Dict$toList(value));\n\t\t}\n\n\t\tif (tag === 'Array_elm_builtin')\n\t\t{\n\t\t\treturn _Debug_ctorColor(ansi, 'Array')\n\t\t\t\t+ _Debug_fadeColor(ansi, '.fromList') + ' '\n\t\t\t\t+ _Debug_toAnsiString(ansi, elm$core$Array$toList(value));\n\t\t}\n\n\t\tif (tag === '::' || tag === '[]')\n\t\t{\n\t\t\tvar output = '[';\n\n\t\t\tvalue.b && (output += _Debug_toAnsiString(ansi, value.a), value = value.b)\n\n\t\t\tfor (; value.b; value = value.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\toutput += ',' + _Debug_toAnsiString(ansi, value.a);\n\t\t\t}\n\t\t\treturn output + ']';\n\t\t}\n\n\t\tvar output = '';\n\t\tfor (var i in value)\n\t\t{\n\t\t\tif (i === '$') continue;\n\t\t\tvar str = _Debug_toAnsiString(ansi, value[i]);\n\t\t\tvar c0 = str[0];\n\t\t\tvar parenless = c0 === '{' || c0 === '(' || c0 === '[' || c0 === '<' || c0 === '\"' || str.indexOf(' ') < 0;\n\t\t\toutput += ' ' + (parenless ? str : '(' + str + ')');\n\t\t}\n\t\treturn _Debug_ctorColor(ansi, tag) + output;\n\t}\n\n\tif (typeof DataView === 'function' && value instanceof DataView)\n\t{\n\t\treturn _Debug_stringColor(ansi, '<' + value.byteLength + ' bytes>');\n\t}\n\n\tif (typeof File === 'function' && value instanceof File)\n\t{\n\t\treturn _Debug_internalColor(ansi, '<' + value.name + '>');\n\t}\n\n\tif (typeof value === 'object')\n\t{\n\t\tvar output = [];\n\t\tfor (var key in value)\n\t\t{\n\t\t\tvar field = key[0] === '_' ? key.slice(1) : key;\n\t\t\toutput.push(_Debug_fadeColor(ansi, field) + ' = ' + _Debug_toAnsiString(ansi, value[key]));\n\t\t}\n\t\tif (output.length === 0)\n\t\t{\n\t\t\treturn '{}';\n\t\t}\n\t\treturn '{ ' + output.join(', ') + ' }';\n\t}\n\n\treturn _Debug_internalColor(ansi, '');\n}\n\nfunction _Debug_addSlashes(str, isChar)\n{\n\tvar s = str\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/\\n/g, '\\\\n')\n\t\t.replace(/\\t/g, '\\\\t')\n\t\t.replace(/\\r/g, '\\\\r')\n\t\t.replace(/\\v/g, '\\\\v')\n\t\t.replace(/\\0/g, '\\\\0');\n\n\tif (isChar)\n\t{\n\t\treturn s.replace(/\\'/g, '\\\\\\'');\n\t}\n\telse\n\t{\n\t\treturn s.replace(/\\\"/g, '\\\\\"');\n\t}\n}\n\nfunction _Debug_ctorColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[96m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_numberColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[95m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_stringColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[93m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_charColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[92m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_fadeColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[37m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_internalColor(ansi, string)\n{\n\treturn ansi ? '\\x1b[94m' + string + '\\x1b[0m' : string;\n}\n\nfunction _Debug_toHexDigit(n)\n{\n\treturn String.fromCharCode(n < 10 ? 48 + n : 55 + n);\n}\n\n\n// CRASH\n\n\nfunction _Debug_crash(identifier)\n{\n\tthrow new Error('https://github.com/elm/core/blob/1.0.0/hints/' + identifier + '.md');\n}\n\n\nfunction _Debug_crash_UNUSED(identifier, fact1, fact2, fact3, fact4)\n{\n\tswitch(identifier)\n\t{\n\t\tcase 0:\n\t\t\tthrow 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.');\n\n\t\tcase 1:\n\t\t\tthrow 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.');\n\n\t\tcase 2:\n\t\t\tvar jsonErrorString = fact1;\n\t\t\tthrow new Error('Problem with the flags given to your Elm program on initialization.\\n\\n' + jsonErrorString);\n\n\t\tcase 3:\n\t\t\tvar portName = fact1;\n\t\t\tthrow new Error('There can only be one port named `' + portName + '`, but your program has multiple.');\n\n\t\tcase 4:\n\t\t\tvar portName = fact1;\n\t\t\tvar problem = fact2;\n\t\t\tthrow new Error('Trying to send an unexpected type of value through port `' + portName + '`:\\n' + problem);\n\n\t\tcase 5:\n\t\t\tthrow 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.');\n\n\t\tcase 6:\n\t\t\tvar moduleName = fact1;\n\t\t\tthrow 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!');\n\n\t\tcase 8:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar message = fact3;\n\t\t\tthrow new Error('TODO in module `' + moduleName + '` ' + _Debug_regionToString(region) + '\\n\\n' + message);\n\n\t\tcase 9:\n\t\t\tvar moduleName = fact1;\n\t\t\tvar region = fact2;\n\t\t\tvar value = fact3;\n\t\t\tvar message = fact4;\n\t\t\tthrow new Error(\n\t\t\t\t'TODO in module `' + moduleName + '` from the `case` expression '\n\t\t\t\t+ _Debug_regionToString(region) + '\\n\\nIt received the following value:\\n\\n '\n\t\t\t\t+ _Debug_toString(value).replace('\\n', '\\n ')\n\t\t\t\t+ '\\n\\nBut the branch that handles it says:\\n\\n ' + message.replace('\\n', '\\n ')\n\t\t\t);\n\n\t\tcase 10:\n\t\t\tthrow new Error('Bug in https://github.com/elm/virtual-dom/issues');\n\n\t\tcase 11:\n\t\t\tthrow new Error('Cannot perform mod 0. Division by zero error.');\n\t}\n}\n\nfunction _Debug_regionToString(region)\n{\n\tif (region.aE.S === region.aR.S)\n\t{\n\t\treturn 'on line ' + region.aE.S;\n\t}\n\treturn 'on lines ' + region.aE.S + ' through ' + region.aR.S;\n}\n\n\n\n// MATH\n\nvar _Basics_add = F2(function(a, b) { return a + b; });\nvar _Basics_sub = F2(function(a, b) { return a - b; });\nvar _Basics_mul = F2(function(a, b) { return a * b; });\nvar _Basics_fdiv = F2(function(a, b) { return a / b; });\nvar _Basics_idiv = F2(function(a, b) { return (a / b) | 0; });\nvar _Basics_pow = F2(Math.pow);\n\nvar _Basics_remainderBy = F2(function(b, a) { return a % b; });\n\n// https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/divmodnote-letter.pdf\nvar _Basics_modBy = F2(function(modulus, x)\n{\n\tvar answer = x % modulus;\n\treturn modulus === 0\n\t\t? _Debug_crash(11)\n\t\t:\n\t((answer > 0 && modulus < 0) || (answer < 0 && modulus > 0))\n\t\t? answer + modulus\n\t\t: answer;\n});\n\n\n// TRIGONOMETRY\n\nvar _Basics_pi = Math.PI;\nvar _Basics_e = Math.E;\nvar _Basics_cos = Math.cos;\nvar _Basics_sin = Math.sin;\nvar _Basics_tan = Math.tan;\nvar _Basics_acos = Math.acos;\nvar _Basics_asin = Math.asin;\nvar _Basics_atan = Math.atan;\nvar _Basics_atan2 = F2(Math.atan2);\n\n\n// MORE MATH\n\nfunction _Basics_toFloat(x) { return x; }\nfunction _Basics_truncate(n) { return n | 0; }\nfunction _Basics_isInfinite(n) { return n === Infinity || n === -Infinity; }\n\nvar _Basics_ceiling = Math.ceil;\nvar _Basics_floor = Math.floor;\nvar _Basics_round = Math.round;\nvar _Basics_sqrt = Math.sqrt;\nvar _Basics_log = Math.log;\nvar _Basics_isNaN = isNaN;\n\n\n// BOOLEANS\n\nfunction _Basics_not(bool) { return !bool; }\nvar _Basics_and = F2(function(a, b) { return a && b; });\nvar _Basics_or = F2(function(a, b) { return a || b; });\nvar _Basics_xor = F2(function(a, b) { return a !== b; });\n\n\n\nfunction _Char_toCode(char)\n{\n\tvar code = char.charCodeAt(0);\n\tif (0xD800 <= code && code <= 0xDBFF)\n\t{\n\t\treturn (code - 0xD800) * 0x400 + char.charCodeAt(1) - 0xDC00 + 0x10000\n\t}\n\treturn code;\n}\n\nfunction _Char_fromCode(code)\n{\n\treturn _Utils_chr(\n\t\t(code < 0 || 0x10FFFF < code)\n\t\t\t? '\\uFFFD'\n\t\t\t:\n\t\t(code <= 0xFFFF)\n\t\t\t? String.fromCharCode(code)\n\t\t\t:\n\t\t(code -= 0x10000,\n\t\t\tString.fromCharCode(Math.floor(code / 0x400) + 0xD800, code % 0x400 + 0xDC00)\n\t\t)\n\t);\n}\n\nfunction _Char_toUpper(char)\n{\n\treturn _Utils_chr(char.toUpperCase());\n}\n\nfunction _Char_toLower(char)\n{\n\treturn _Utils_chr(char.toLowerCase());\n}\n\nfunction _Char_toLocaleUpper(char)\n{\n\treturn _Utils_chr(char.toLocaleUpperCase());\n}\n\nfunction _Char_toLocaleLower(char)\n{\n\treturn _Utils_chr(char.toLocaleLowerCase());\n}\n\n\n\nvar _String_cons = F2(function(chr, str)\n{\n\treturn chr + str;\n});\n\nfunction _String_uncons(string)\n{\n\tvar word = string.charCodeAt(0);\n\treturn word\n\t\t? elm$core$Maybe$Just(\n\t\t\t0xD800 <= word && word <= 0xDBFF\n\t\t\t\t? _Utils_Tuple2(_Utils_chr(string[0] + string[1]), string.slice(2))\n\t\t\t\t: _Utils_Tuple2(_Utils_chr(string[0]), string.slice(1))\n\t\t)\n\t\t: elm$core$Maybe$Nothing;\n}\n\nvar _String_append = F2(function(a, b)\n{\n\treturn a + b;\n});\n\nfunction _String_length(str)\n{\n\treturn str.length;\n}\n\nvar _String_map = F2(function(func, string)\n{\n\tvar len = string.length;\n\tvar array = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarray[i] = func(_Utils_chr(string[i] + string[i+1]));\n\t\t\ti += 2;\n\t\t\tcontinue;\n\t\t}\n\t\tarray[i] = func(_Utils_chr(string[i]));\n\t\ti++;\n\t}\n\treturn array.join('');\n});\n\nvar _String_filter = F2(function(isGood, str)\n{\n\tvar arr = [];\n\tvar len = str.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = str[i];\n\t\tvar word = str.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += str[i];\n\t\t\ti++;\n\t\t}\n\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\tarr.push(char);\n\t\t}\n\t}\n\treturn arr.join('');\n});\n\nfunction _String_reverse(str)\n{\n\tvar len = str.length;\n\tvar arr = new Array(len);\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar word = str.charCodeAt(i);\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tarr[len - i] = str[i + 1];\n\t\t\ti++;\n\t\t\tarr[len - i] = str[i - 1];\n\t\t\ti++;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tarr[len - i] = str[i];\n\t\t\ti++;\n\t\t}\n\t}\n\treturn arr.join('');\n}\n\nvar _String_foldl = F3(function(func, state, string)\n{\n\tvar len = string.length;\n\tvar i = 0;\n\twhile (i < len)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\ti++;\n\t\tif (0xD800 <= word && word <= 0xDBFF)\n\t\t{\n\t\t\tchar += string[i];\n\t\t\ti++;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_foldr = F3(function(func, state, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tstate = A2(func, _Utils_chr(char), state);\n\t}\n\treturn state;\n});\n\nvar _String_split = F2(function(sep, str)\n{\n\treturn str.split(sep);\n});\n\nvar _String_join = F2(function(sep, strs)\n{\n\treturn strs.join(sep);\n});\n\nvar _String_slice = F3(function(start, end, str) {\n\treturn str.slice(start, end);\n});\n\nfunction _String_trim(str)\n{\n\treturn str.trim();\n}\n\nfunction _String_trimLeft(str)\n{\n\treturn str.replace(/^\\s+/, '');\n}\n\nfunction _String_trimRight(str)\n{\n\treturn str.replace(/\\s+$/, '');\n}\n\nfunction _String_words(str)\n{\n\treturn _List_fromArray(str.trim().split(/\\s+/g));\n}\n\nfunction _String_lines(str)\n{\n\treturn _List_fromArray(str.split(/\\r\\n|\\r|\\n/g));\n}\n\nfunction _String_toUpper(str)\n{\n\treturn str.toUpperCase();\n}\n\nfunction _String_toLower(str)\n{\n\treturn str.toLowerCase();\n}\n\nvar _String_any = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\nvar _String_all = F2(function(isGood, string)\n{\n\tvar i = string.length;\n\twhile (i--)\n\t{\n\t\tvar char = string[i];\n\t\tvar word = string.charCodeAt(i);\n\t\tif (0xDC00 <= word && word <= 0xDFFF)\n\t\t{\n\t\t\ti--;\n\t\t\tchar = string[i] + char;\n\t\t}\n\t\tif (!isGood(_Utils_chr(char)))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\nvar _String_contains = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) > -1;\n});\n\nvar _String_startsWith = F2(function(sub, str)\n{\n\treturn str.indexOf(sub) === 0;\n});\n\nvar _String_endsWith = F2(function(sub, str)\n{\n\treturn str.length >= sub.length &&\n\t\tstr.lastIndexOf(sub) === str.length - sub.length;\n});\n\nvar _String_indexes = F2(function(sub, str)\n{\n\tvar subLen = sub.length;\n\n\tif (subLen < 1)\n\t{\n\t\treturn _List_Nil;\n\t}\n\n\tvar i = 0;\n\tvar is = [];\n\n\twhile ((i = str.indexOf(sub, i)) > -1)\n\t{\n\t\tis.push(i);\n\t\ti = i + subLen;\n\t}\n\n\treturn _List_fromArray(is);\n});\n\n\n// TO STRING\n\nfunction _String_fromNumber(number)\n{\n\treturn number + '';\n}\n\n\n// INT CONVERSIONS\n\nfunction _String_toInt(str)\n{\n\tvar total = 0;\n\tvar code0 = str.charCodeAt(0);\n\tvar start = code0 == 0x2B /* + */ || code0 == 0x2D /* - */ ? 1 : 0;\n\n\tfor (var i = start; i < str.length; ++i)\n\t{\n\t\tvar code = str.charCodeAt(i);\n\t\tif (code < 0x30 || 0x39 < code)\n\t\t{\n\t\t\treturn elm$core$Maybe$Nothing;\n\t\t}\n\t\ttotal = 10 * total + code - 0x30;\n\t}\n\n\treturn i == start\n\t\t? elm$core$Maybe$Nothing\n\t\t: elm$core$Maybe$Just(code0 == 0x2D ? -total : total);\n}\n\n\n// FLOAT CONVERSIONS\n\nfunction _String_toFloat(s)\n{\n\t// check if it is a hex, octal, or binary number\n\tif (s.length === 0 || /[\\sxbo]/.test(s))\n\t{\n\t\treturn elm$core$Maybe$Nothing;\n\t}\n\tvar n = +s;\n\t// faster isNaN check\n\treturn n === n ? elm$core$Maybe$Just(n) : elm$core$Maybe$Nothing;\n}\n\nfunction _String_fromList(chars)\n{\n\treturn _List_toArray(chars).join('');\n}\n\n\n\n\n/**_UNUSED/\nfunction _Json_errorToString(error)\n{\n\treturn elm$json$Json$Decode$errorToString(error);\n}\n//*/\n\n\n// CORE DECODERS\n\nfunction _Json_succeed(msg)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: msg\n\t};\n}\n\nfunction _Json_fail(msg)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: msg\n\t};\n}\n\nfunction _Json_decodePrim(decoder)\n{\n\treturn { $: 2, b: decoder };\n}\n\nvar _Json_decodeInt = _Json_decodePrim(function(value) {\n\treturn (typeof value !== 'number')\n\t\t? _Json_expecting('an INT', value)\n\t\t:\n\t(-2147483647 < value && value < 2147483647 && (value | 0) === value)\n\t\t? elm$core$Result$Ok(value)\n\t\t:\n\t(isFinite(value) && !(value % 1))\n\t\t? elm$core$Result$Ok(value)\n\t\t: _Json_expecting('an INT', value);\n});\n\nvar _Json_decodeBool = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'boolean')\n\t\t? elm$core$Result$Ok(value)\n\t\t: _Json_expecting('a BOOL', value);\n});\n\nvar _Json_decodeFloat = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'number')\n\t\t? elm$core$Result$Ok(value)\n\t\t: _Json_expecting('a FLOAT', value);\n});\n\nvar _Json_decodeValue = _Json_decodePrim(function(value) {\n\treturn elm$core$Result$Ok(_Json_wrap(value));\n});\n\nvar _Json_decodeString = _Json_decodePrim(function(value) {\n\treturn (typeof value === 'string')\n\t\t? elm$core$Result$Ok(value)\n\t\t: (value instanceof String)\n\t\t\t? elm$core$Result$Ok(value + '')\n\t\t\t: _Json_expecting('a STRING', value);\n});\n\nfunction _Json_decodeList(decoder) { return { $: 3, b: decoder }; }\nfunction _Json_decodeArray(decoder) { return { $: 4, b: decoder }; }\n\nfunction _Json_decodeNull(value) { return { $: 5, c: value }; }\n\nvar _Json_decodeField = F2(function(field, decoder)\n{\n\treturn {\n\t\t$: 6,\n\t\td: field,\n\t\tb: decoder\n\t};\n});\n\nvar _Json_decodeIndex = F2(function(index, decoder)\n{\n\treturn {\n\t\t$: 7,\n\t\te: index,\n\t\tb: decoder\n\t};\n});\n\nfunction _Json_decodeKeyValuePairs(decoder)\n{\n\treturn {\n\t\t$: 8,\n\t\tb: decoder\n\t};\n}\n\nfunction _Json_mapMany(f, decoders)\n{\n\treturn {\n\t\t$: 9,\n\t\tf: f,\n\t\tg: decoders\n\t};\n}\n\nvar _Json_andThen = F2(function(callback, decoder)\n{\n\treturn {\n\t\t$: 10,\n\t\tb: decoder,\n\t\th: callback\n\t};\n});\n\nfunction _Json_oneOf(decoders)\n{\n\treturn {\n\t\t$: 11,\n\t\tg: decoders\n\t};\n}\n\n\n// DECODING OBJECTS\n\nvar _Json_map1 = F2(function(f, d1)\n{\n\treturn _Json_mapMany(f, [d1]);\n});\n\nvar _Json_map2 = F3(function(f, d1, d2)\n{\n\treturn _Json_mapMany(f, [d1, d2]);\n});\n\nvar _Json_map3 = F4(function(f, d1, d2, d3)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3]);\n});\n\nvar _Json_map4 = F5(function(f, d1, d2, d3, d4)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4]);\n});\n\nvar _Json_map5 = F6(function(f, d1, d2, d3, d4, d5)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5]);\n});\n\nvar _Json_map6 = F7(function(f, d1, d2, d3, d4, d5, d6)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6]);\n});\n\nvar _Json_map7 = F8(function(f, d1, d2, d3, d4, d5, d6, d7)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7]);\n});\n\nvar _Json_map8 = F9(function(f, d1, d2, d3, d4, d5, d6, d7, d8)\n{\n\treturn _Json_mapMany(f, [d1, d2, d3, d4, d5, d6, d7, d8]);\n});\n\n\n// DECODE\n\nvar _Json_runOnString = F2(function(decoder, string)\n{\n\ttry\n\t{\n\t\tvar value = JSON.parse(string);\n\t\treturn _Json_runHelp(decoder, value);\n\t}\n\tcatch (e)\n\t{\n\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'This is not valid JSON! ' + e.message, _Json_wrap(string)));\n\t}\n});\n\nvar _Json_run = F2(function(decoder, value)\n{\n\treturn _Json_runHelp(decoder, _Json_unwrap(value));\n});\n\nfunction _Json_runHelp(decoder, value)\n{\n\tswitch (decoder.$)\n\t{\n\t\tcase 2:\n\t\t\treturn decoder.b(value);\n\n\t\tcase 5:\n\t\t\treturn (value === null)\n\t\t\t\t? elm$core$Result$Ok(decoder.c)\n\t\t\t\t: _Json_expecting('null', value);\n\n\t\tcase 3:\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LIST', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _List_fromArray);\n\n\t\tcase 4:\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\treturn _Json_runArrayDecoder(decoder.b, value, _Json_toElmArray);\n\n\t\tcase 6:\n\t\t\tvar field = decoder.d;\n\t\t\tif (typeof value !== 'object' || value === null || !(field in value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT with a field named `' + field + '`', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[field]);\n\t\t\treturn (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Field, field, result.a));\n\n\t\tcase 7:\n\t\t\tvar index = decoder.e;\n\t\t\tif (!_Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an ARRAY', value);\n\t\t\t}\n\t\t\tif (index >= value.length)\n\t\t\t{\n\t\t\t\treturn _Json_expecting('a LONGER array. Need index ' + index + ' but only see ' + value.length + ' entries', value);\n\t\t\t}\n\t\t\tvar result = _Json_runHelp(decoder.b, value[index]);\n\t\t\treturn (elm$core$Result$isOk(result)) ? result : elm$core$Result$Err(A2(elm$json$Json$Decode$Index, index, result.a));\n\n\t\tcase 8:\n\t\t\tif (typeof value !== 'object' || value === null || _Json_isArray(value))\n\t\t\t{\n\t\t\t\treturn _Json_expecting('an OBJECT', value);\n\t\t\t}\n\n\t\t\tvar keyValuePairs = _List_Nil;\n\t\t\t// TODO test perf of Object.keys and switch when support is good enough\n\t\t\tfor (var key in value)\n\t\t\t{\n\t\t\t\tif (value.hasOwnProperty(key))\n\t\t\t\t{\n\t\t\t\t\tvar result = _Json_runHelp(decoder.b, value[key]);\n\t\t\t\t\tif (!elm$core$Result$isOk(result))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Field, key, result.a));\n\t\t\t\t\t}\n\t\t\t\t\tkeyValuePairs = _List_Cons(_Utils_Tuple2(key, result.a), keyValuePairs);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn elm$core$Result$Ok(elm$core$List$reverse(keyValuePairs));\n\n\t\tcase 9:\n\t\t\tvar answer = decoder.f;\n\t\t\tvar decoders = decoder.g;\n\t\t\tfor (var i = 0; i < decoders.length; i++)\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(decoders[i], value);\n\t\t\t\tif (!elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\tanswer = answer(result.a);\n\t\t\t}\n\t\t\treturn elm$core$Result$Ok(answer);\n\n\t\tcase 10:\n\t\t\tvar result = _Json_runHelp(decoder.b, value);\n\t\t\treturn (!elm$core$Result$isOk(result))\n\t\t\t\t? result\n\t\t\t\t: _Json_runHelp(decoder.h(result.a), value);\n\n\t\tcase 11:\n\t\t\tvar errors = _List_Nil;\n\t\t\tfor (var temp = decoder.g; temp.b; temp = temp.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\tvar result = _Json_runHelp(temp.a, value);\n\t\t\t\tif (elm$core$Result$isOk(result))\n\t\t\t\t{\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\t\t\t\terrors = _List_Cons(result.a, errors);\n\t\t\t}\n\t\t\treturn elm$core$Result$Err(elm$json$Json$Decode$OneOf(elm$core$List$reverse(errors)));\n\n\t\tcase 1:\n\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, decoder.a, _Json_wrap(value)));\n\n\t\tcase 0:\n\t\t\treturn elm$core$Result$Ok(decoder.a);\n\t}\n}\n\nfunction _Json_runArrayDecoder(decoder, value, toElmValue)\n{\n\tvar len = value.length;\n\tvar array = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tvar result = _Json_runHelp(decoder, value[i]);\n\t\tif (!elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Index, i, result.a));\n\t\t}\n\t\tarray[i] = result.a;\n\t}\n\treturn elm$core$Result$Ok(toElmValue(array));\n}\n\nfunction _Json_isArray(value)\n{\n\treturn Array.isArray(value) || (typeof FileList !== 'undefined' && value instanceof FileList);\n}\n\nfunction _Json_toElmArray(array)\n{\n\treturn A2(elm$core$Array$initialize, array.length, function(i) { return array[i]; });\n}\n\nfunction _Json_expecting(type, value)\n{\n\treturn elm$core$Result$Err(A2(elm$json$Json$Decode$Failure, 'Expecting ' + type, _Json_wrap(value)));\n}\n\n\n// EQUALITY\n\nfunction _Json_equality(x, y)\n{\n\tif (x === y)\n\t{\n\t\treturn true;\n\t}\n\n\tif (x.$ !== y.$)\n\t{\n\t\treturn false;\n\t}\n\n\tswitch (x.$)\n\t{\n\t\tcase 0:\n\t\tcase 1:\n\t\t\treturn x.a === y.a;\n\n\t\tcase 2:\n\t\t\treturn x.b === y.b;\n\n\t\tcase 5:\n\t\t\treturn x.c === y.c;\n\n\t\tcase 3:\n\t\tcase 4:\n\t\tcase 8:\n\t\t\treturn _Json_equality(x.b, y.b);\n\n\t\tcase 6:\n\t\t\treturn x.d === y.d && _Json_equality(x.b, y.b);\n\n\t\tcase 7:\n\t\t\treturn x.e === y.e && _Json_equality(x.b, y.b);\n\n\t\tcase 9:\n\t\t\treturn x.f === y.f && _Json_listEquality(x.g, y.g);\n\n\t\tcase 10:\n\t\t\treturn x.h === y.h && _Json_equality(x.b, y.b);\n\n\t\tcase 11:\n\t\t\treturn _Json_listEquality(x.g, y.g);\n\t}\n}\n\nfunction _Json_listEquality(aDecoders, bDecoders)\n{\n\tvar len = aDecoders.length;\n\tif (len !== bDecoders.length)\n\t{\n\t\treturn false;\n\t}\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tif (!_Json_equality(aDecoders[i], bDecoders[i]))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n\n// ENCODE\n\nvar _Json_encode = F2(function(indentLevel, value)\n{\n\treturn JSON.stringify(_Json_unwrap(value), null, indentLevel) + '';\n});\n\nfunction _Json_wrap_UNUSED(value) { return { $: 0, a: value }; }\nfunction _Json_unwrap_UNUSED(value) { return value.a; }\n\nfunction _Json_wrap(value) { return value; }\nfunction _Json_unwrap(value) { return value; }\n\nfunction _Json_emptyArray() { return []; }\nfunction _Json_emptyObject() { return {}; }\n\nvar _Json_addField = F3(function(key, value, object)\n{\n\tobject[key] = _Json_unwrap(value);\n\treturn object;\n});\n\nfunction _Json_addEntry(func)\n{\n\treturn F2(function(entry, array)\n\t{\n\t\tarray.push(_Json_unwrap(func(entry)));\n\t\treturn array;\n\t});\n}\n\nvar _Json_encodeNull = _Json_wrap(null);\n\n\n\n// TASKS\n\nfunction _Scheduler_succeed(value)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: value\n\t};\n}\n\nfunction _Scheduler_fail(error)\n{\n\treturn {\n\t\t$: 1,\n\t\ta: error\n\t};\n}\n\nfunction _Scheduler_binding(callback)\n{\n\treturn {\n\t\t$: 2,\n\t\tb: callback,\n\t\tc: null\n\t};\n}\n\nvar _Scheduler_andThen = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 3,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nvar _Scheduler_onError = F2(function(callback, task)\n{\n\treturn {\n\t\t$: 4,\n\t\tb: callback,\n\t\td: task\n\t};\n});\n\nfunction _Scheduler_receive(callback)\n{\n\treturn {\n\t\t$: 5,\n\t\tb: callback\n\t};\n}\n\n\n// PROCESSES\n\nvar _Scheduler_guid = 0;\n\nfunction _Scheduler_rawSpawn(task)\n{\n\tvar proc = {\n\t\t$: 0,\n\t\te: _Scheduler_guid++,\n\t\tf: task,\n\t\tg: null,\n\t\th: []\n\t};\n\n\t_Scheduler_enqueue(proc);\n\n\treturn proc;\n}\n\nfunction _Scheduler_spawn(task)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tcallback(_Scheduler_succeed(_Scheduler_rawSpawn(task)));\n\t});\n}\n\nfunction _Scheduler_rawSend(proc, msg)\n{\n\tproc.h.push(msg);\n\t_Scheduler_enqueue(proc);\n}\n\nvar _Scheduler_send = F2(function(proc, msg)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\t_Scheduler_rawSend(proc, msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\nfunction _Scheduler_kill(proc)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar task = proc.f;\n\t\tif (task.$ === 2 && task.c)\n\t\t{\n\t\t\ttask.c();\n\t\t}\n\n\t\tproc.f = null;\n\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n}\n\n\n/* STEP PROCESSES\n\ntype alias Process =\n { $ : tag\n , id : unique_id\n , root : Task\n , stack : null | { $: SUCCEED | FAIL, a: callback, b: stack }\n , mailbox : [msg]\n }\n\n*/\n\n\nvar _Scheduler_working = false;\nvar _Scheduler_queue = [];\n\n\nfunction _Scheduler_enqueue(proc)\n{\n\t_Scheduler_queue.push(proc);\n\tif (_Scheduler_working)\n\t{\n\t\treturn;\n\t}\n\t_Scheduler_working = true;\n\twhile (proc = _Scheduler_queue.shift())\n\t{\n\t\t_Scheduler_step(proc);\n\t}\n\t_Scheduler_working = false;\n}\n\n\nfunction _Scheduler_step(proc)\n{\n\twhile (proc.f)\n\t{\n\t\tvar rootTag = proc.f.$;\n\t\tif (rootTag === 0 || rootTag === 1)\n\t\t{\n\t\t\twhile (proc.g && proc.g.$ !== rootTag)\n\t\t\t{\n\t\t\t\tproc.g = proc.g.i;\n\t\t\t}\n\t\t\tif (!proc.g)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.g.b(proc.f.a);\n\t\t\tproc.g = proc.g.i;\n\t\t}\n\t\telse if (rootTag === 2)\n\t\t{\n\t\t\tproc.f.c = proc.f.b(function(newRoot) {\n\t\t\t\tproc.f = newRoot;\n\t\t\t\t_Scheduler_enqueue(proc);\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\telse if (rootTag === 5)\n\t\t{\n\t\t\tif (proc.h.length === 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tproc.f = proc.f.b(proc.h.shift());\n\t\t}\n\t\telse // if (rootTag === 3 || rootTag === 4)\n\t\t{\n\t\t\tproc.g = {\n\t\t\t\t$: rootTag === 3 ? 0 : 1,\n\t\t\t\tb: proc.f.b,\n\t\t\t\ti: proc.g\n\t\t\t};\n\t\t\tproc.f = proc.f.d;\n\t\t}\n\t}\n}\n\n\n\nvar _Bitwise_and = F2(function(a, b)\n{\n\treturn a & b;\n});\n\nvar _Bitwise_or = F2(function(a, b)\n{\n\treturn a | b;\n});\n\nvar _Bitwise_xor = F2(function(a, b)\n{\n\treturn a ^ b;\n});\n\nfunction _Bitwise_complement(a)\n{\n\treturn ~a;\n};\n\nvar _Bitwise_shiftLeftBy = F2(function(offset, a)\n{\n\treturn a << offset;\n});\n\nvar _Bitwise_shiftRightBy = F2(function(offset, a)\n{\n\treturn a >> offset;\n});\n\nvar _Bitwise_shiftRightZfBy = F2(function(offset, a)\n{\n\treturn a >>> offset;\n});\n\n\n\nfunction _Time_now(millisToPosix)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(millisToPosix(Date.now())));\n\t});\n}\n\nvar _Time_setInterval = F2(function(interval, task)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tvar id = setInterval(function() { _Scheduler_rawSpawn(task); }, interval);\n\t\treturn function() { clearInterval(id); };\n\t});\n});\n\nfunction _Time_here()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\tcallback(_Scheduler_succeed(\n\t\t\tA2(elm$time$Time$customZone, -(new Date().getTimezoneOffset()), _List_Nil)\n\t\t));\n\t});\n}\n\n\nfunction _Time_getZoneName()\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\ttry\n\t\t{\n\t\t\tvar name = elm$time$Time$Name(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\t\t}\n\t\tcatch (e)\n\t\t{\n\t\t\tvar name = elm$time$Time$Offset(new Date().getTimezoneOffset());\n\t\t}\n\t\tcallback(_Scheduler_succeed(name));\n\t});\n}\n\n\n\nfunction _Process_sleep(time)\n{\n\treturn _Scheduler_binding(function(callback) {\n\t\tvar id = setTimeout(function() {\n\t\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t\t}, time);\n\n\t\treturn function() { clearTimeout(id); };\n\t});\n}\n\n\n\n\n// PROGRAMS\n\n\nvar _Platform_worker = F4(function(impl, flagDecoder, debugMetadata, args)\n{\n\treturn _Platform_initialize(\n\t\tflagDecoder,\n\t\targs,\n\t\timpl.bK,\n\t\timpl.bU,\n\t\timpl.bS,\n\t\tfunction() { return function() {} }\n\t);\n});\n\n\n\n// INITIALIZE A PROGRAM\n\n\nfunction _Platform_initialize(flagDecoder, args, init, update, subscriptions, stepperBuilder)\n{\n\tvar result = A2(_Json_run, flagDecoder, _Json_wrap(args ? args['flags'] : undefined));\n\telm$core$Result$isOk(result) || _Debug_crash(2 /**_UNUSED/, _Json_errorToString(result.a) /**/);\n\tvar managers = {};\n\tresult = init(result.a);\n\tvar model = result.a;\n\tvar stepper = stepperBuilder(sendToApp, model);\n\tvar ports = _Platform_setupEffects(managers, sendToApp);\n\n\tfunction sendToApp(msg, viewMetadata)\n\t{\n\t\tresult = A2(update, msg, model);\n\t\tstepper(model = result.a, viewMetadata);\n\t\t_Platform_dispatchEffects(managers, result.b, subscriptions(model));\n\t}\n\n\t_Platform_dispatchEffects(managers, result.b, subscriptions(model));\n\n\treturn ports ? { ports: ports } : {};\n}\n\n\n\n// TRACK PRELOADS\n//\n// This is used by code in elm/browser and elm/http\n// to register any HTTP requests that are triggered by init.\n//\n\n\nvar _Platform_preload;\n\n\nfunction _Platform_registerPreload(url)\n{\n\t_Platform_preload.add(url);\n}\n\n\n\n// EFFECT MANAGERS\n\n\nvar _Platform_effectManagers = {};\n\n\nfunction _Platform_setupEffects(managers, sendToApp)\n{\n\tvar ports;\n\n\t// setup all necessary effect managers\n\tfor (var key in _Platform_effectManagers)\n\t{\n\t\tvar manager = _Platform_effectManagers[key];\n\n\t\tif (manager.a)\n\t\t{\n\t\t\tports = ports || {};\n\t\t\tports[key] = manager.a(key, sendToApp);\n\t\t}\n\n\t\tmanagers[key] = _Platform_instantiateManager(manager, sendToApp);\n\t}\n\n\treturn ports;\n}\n\n\nfunction _Platform_createManager(init, onEffects, onSelfMsg, cmdMap, subMap)\n{\n\treturn {\n\t\tb: init,\n\t\tc: onEffects,\n\t\td: onSelfMsg,\n\t\te: cmdMap,\n\t\tf: subMap\n\t};\n}\n\n\nfunction _Platform_instantiateManager(info, sendToApp)\n{\n\tvar router = {\n\t\tg: sendToApp,\n\t\th: undefined\n\t};\n\n\tvar onEffects = info.c;\n\tvar onSelfMsg = info.d;\n\tvar cmdMap = info.e;\n\tvar subMap = info.f;\n\n\tfunction loop(state)\n\t{\n\t\treturn A2(_Scheduler_andThen, loop, _Scheduler_receive(function(msg)\n\t\t{\n\t\t\tvar value = msg.a;\n\n\t\t\tif (msg.$ === 0)\n\t\t\t{\n\t\t\t\treturn A3(onSelfMsg, router, value, state);\n\t\t\t}\n\n\t\t\treturn cmdMap && subMap\n\t\t\t\t? A4(onEffects, router, value.i, value.j, state)\n\t\t\t\t: A3(onEffects, router, cmdMap ? value.i : value.j, state);\n\t\t}));\n\t}\n\n\treturn router.h = _Scheduler_rawSpawn(A2(_Scheduler_andThen, loop, info.b));\n}\n\n\n\n// ROUTING\n\n\nvar _Platform_sendToApp = F2(function(router, msg)\n{\n\treturn _Scheduler_binding(function(callback)\n\t{\n\t\trouter.g(msg);\n\t\tcallback(_Scheduler_succeed(_Utils_Tuple0));\n\t});\n});\n\n\nvar _Platform_sendToSelf = F2(function(router, msg)\n{\n\treturn A2(_Scheduler_send, router.h, {\n\t\t$: 0,\n\t\ta: msg\n\t});\n});\n\n\n\n// BAGS\n\n\nfunction _Platform_leaf(home)\n{\n\treturn function(value)\n\t{\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tk: home,\n\t\t\tl: value\n\t\t};\n\t};\n}\n\n\nfunction _Platform_batch(list)\n{\n\treturn {\n\t\t$: 2,\n\t\tm: list\n\t};\n}\n\n\nvar _Platform_map = F2(function(tagger, bag)\n{\n\treturn {\n\t\t$: 3,\n\t\tn: tagger,\n\t\to: bag\n\t}\n});\n\n\n\n// PIPE BAGS INTO EFFECT MANAGERS\n\n\nfunction _Platform_dispatchEffects(managers, cmdBag, subBag)\n{\n\tvar effectsDict = {};\n\t_Platform_gatherEffects(true, cmdBag, effectsDict, null);\n\t_Platform_gatherEffects(false, subBag, effectsDict, null);\n\n\tfor (var home in managers)\n\t{\n\t\t_Scheduler_rawSend(managers[home], {\n\t\t\t$: 'fx',\n\t\t\ta: effectsDict[home] || { i: _List_Nil, j: _List_Nil }\n\t\t});\n\t}\n}\n\n\nfunction _Platform_gatherEffects(isCmd, bag, effectsDict, taggers)\n{\n\tswitch (bag.$)\n\t{\n\t\tcase 1:\n\t\t\tvar home = bag.k;\n\t\t\tvar effect = _Platform_toEffect(isCmd, home, taggers, bag.l);\n\t\t\teffectsDict[home] = _Platform_insert(isCmd, effect, effectsDict[home]);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\tfor (var list = bag.m; list.b; list = list.b) // WHILE_CONS\n\t\t\t{\n\t\t\t\t_Platform_gatherEffects(isCmd, list.a, effectsDict, taggers);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\t_Platform_gatherEffects(isCmd, bag.o, effectsDict, {\n\t\t\t\tp: bag.n,\n\t\t\t\tq: taggers\n\t\t\t});\n\t\t\treturn;\n\t}\n}\n\n\nfunction _Platform_toEffect(isCmd, home, taggers, value)\n{\n\tfunction applyTaggers(x)\n\t{\n\t\tfor (var temp = taggers; temp; temp = temp.q)\n\t\t{\n\t\t\tx = temp.p(x);\n\t\t}\n\t\treturn x;\n\t}\n\n\tvar map = isCmd\n\t\t? _Platform_effectManagers[home].e\n\t\t: _Platform_effectManagers[home].f;\n\n\treturn A2(map, applyTaggers, value)\n}\n\n\nfunction _Platform_insert(isCmd, newEffect, effects)\n{\n\teffects = effects || { i: _List_Nil, j: _List_Nil };\n\n\tisCmd\n\t\t? (effects.i = _List_Cons(newEffect, effects.i))\n\t\t: (effects.j = _List_Cons(newEffect, effects.j));\n\n\treturn effects;\n}\n\n\n\n// PORTS\n\n\nfunction _Platform_checkPortName(name)\n{\n\tif (_Platform_effectManagers[name])\n\t{\n\t\t_Debug_crash(3, name)\n\t}\n}\n\n\n\n// OUTGOING PORTS\n\n\nfunction _Platform_outgoingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\te: _Platform_outgoingPortMap,\n\t\tr: converter,\n\t\ta: _Platform_setupOutgoingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_outgoingPortMap = F2(function(tagger, value) { return value; });\n\n\nfunction _Platform_setupOutgoingPort(name)\n{\n\tvar subs = [];\n\tvar converter = _Platform_effectManagers[name].r;\n\n\t// CREATE MANAGER\n\n\tvar init = _Process_sleep(0);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, cmdList, state)\n\t{\n\t\tfor ( ; cmdList.b; cmdList = cmdList.b) // WHILE_CONS\n\t\t{\n\t\t\t// grab a separate reference to subs in case unsubscribe is called\n\t\t\tvar currentSubs = subs;\n\t\t\tvar value = _Json_unwrap(converter(cmdList.a));\n\t\t\tfor (var i = 0; i < currentSubs.length; i++)\n\t\t\t{\n\t\t\t\tcurrentSubs[i](value);\n\t\t\t}\n\t\t}\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction subscribe(callback)\n\t{\n\t\tsubs.push(callback);\n\t}\n\n\tfunction unsubscribe(callback)\n\t{\n\t\t// copy subs into a new array in case unsubscribe is called within a\n\t\t// subscribed callback\n\t\tsubs = subs.slice();\n\t\tvar index = subs.indexOf(callback);\n\t\tif (index >= 0)\n\t\t{\n\t\t\tsubs.splice(index, 1);\n\t\t}\n\t}\n\n\treturn {\n\t\tsubscribe: subscribe,\n\t\tunsubscribe: unsubscribe\n\t};\n}\n\n\n\n// INCOMING PORTS\n\n\nfunction _Platform_incomingPort(name, converter)\n{\n\t_Platform_checkPortName(name);\n\t_Platform_effectManagers[name] = {\n\t\tf: _Platform_incomingPortMap,\n\t\tr: converter,\n\t\ta: _Platform_setupIncomingPort\n\t};\n\treturn _Platform_leaf(name);\n}\n\n\nvar _Platform_incomingPortMap = F2(function(tagger, finalTagger)\n{\n\treturn function(value)\n\t{\n\t\treturn tagger(finalTagger(value));\n\t};\n});\n\n\nfunction _Platform_setupIncomingPort(name, sendToApp)\n{\n\tvar subs = _List_Nil;\n\tvar converter = _Platform_effectManagers[name].r;\n\n\t// CREATE MANAGER\n\n\tvar init = _Scheduler_succeed(null);\n\n\t_Platform_effectManagers[name].b = init;\n\t_Platform_effectManagers[name].c = F3(function(router, subList, state)\n\t{\n\t\tsubs = subList;\n\t\treturn init;\n\t});\n\n\t// PUBLIC API\n\n\tfunction send(incomingValue)\n\t{\n\t\tvar result = A2(_Json_run, converter, _Json_wrap(incomingValue));\n\n\t\telm$core$Result$isOk(result) || _Debug_crash(4, name, result.a);\n\n\t\tvar value = result.a;\n\t\tfor (var temp = subs; temp.b; temp = temp.b) // WHILE_CONS\n\t\t{\n\t\t\tsendToApp(temp.a(value));\n\t\t}\n\t}\n\n\treturn { send: send };\n}\n\n\n\n// EXPORT ELM MODULES\n//\n// Have DEBUG and PROD versions so that we can (1) give nicer errors in\n// debug mode and (2) not pay for the bits needed for that in prod mode.\n//\n\n\nfunction _Platform_export(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsProd(scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsProd(obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6)\n\t\t\t\t: _Platform_mergeExportsProd(obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\nfunction _Platform_export_UNUSED(exports)\n{\n\tscope['Elm']\n\t\t? _Platform_mergeExportsDebug('Elm', scope['Elm'], exports)\n\t\t: scope['Elm'] = exports;\n}\n\n\nfunction _Platform_mergeExportsDebug(moduleName, obj, exports)\n{\n\tfor (var name in exports)\n\t{\n\t\t(name in obj)\n\t\t\t? (name == 'init')\n\t\t\t\t? _Debug_crash(6, moduleName)\n\t\t\t\t: _Platform_mergeExportsDebug(moduleName + '.' + name, obj[name], exports[name])\n\t\t\t: (obj[name] = exports[name]);\n\t}\n}\n\n\n/*\n * Copyright (c) 2010 Mozilla Corporation\n * Copyright (c) 2010 Vladimir Vukicevic\n * Copyright (c) 2013 John Mayer\n * Copyright (c) 2018 Andrey Kuzmin\n *\n * Permission is hereby granted, free of charge, to any person\n * obtaining a copy of this software and associated documentation\n * files (the \"Software\"), to deal in the Software without\n * restriction, including without limitation the rights to use,\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following\n * conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n */\n\n// Vector2\n\nvar _MJS_v2 = F2(function(x, y) {\n return new Float64Array([x, y]);\n});\n\nvar _MJS_v2getX = function(a) {\n return a[0];\n};\n\nvar _MJS_v2getY = function(a) {\n return a[1];\n};\n\nvar _MJS_v2setX = F2(function(x, a) {\n return new Float64Array([x, a[1]]);\n});\n\nvar _MJS_v2setY = F2(function(y, a) {\n return new Float64Array([a[0], y]);\n});\n\nvar _MJS_v2toRecord = function(a) {\n return { z: a[0], A: a[1] };\n};\n\nvar _MJS_v2fromRecord = function(r) {\n return new Float64Array([r.z, r.A]);\n};\n\nvar _MJS_v2add = F2(function(a, b) {\n var r = new Float64Array(2);\n r[0] = a[0] + b[0];\n r[1] = a[1] + b[1];\n return r;\n});\n\nvar _MJS_v2sub = F2(function(a, b) {\n var r = new Float64Array(2);\n r[0] = a[0] - b[0];\n r[1] = a[1] - b[1];\n return r;\n});\n\nvar _MJS_v2negate = function(a) {\n var r = new Float64Array(2);\n r[0] = -a[0];\n r[1] = -a[1];\n return r;\n};\n\nvar _MJS_v2direction = F2(function(a, b) {\n var r = new Float64Array(2);\n r[0] = a[0] - b[0];\n r[1] = a[1] - b[1];\n var im = 1.0 / _MJS_v2lengthLocal(r);\n r[0] = r[0] * im;\n r[1] = r[1] * im;\n return r;\n});\n\nfunction _MJS_v2lengthLocal(a) {\n return Math.sqrt(a[0] * a[0] + a[1] * a[1]);\n}\nvar _MJS_v2length = _MJS_v2lengthLocal;\n\nvar _MJS_v2lengthSquared = function(a) {\n return a[0] * a[0] + a[1] * a[1];\n};\n\nvar _MJS_v2distance = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n return Math.sqrt(dx * dx + dy * dy);\n});\n\nvar _MJS_v2distanceSquared = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n return dx * dx + dy * dy;\n});\n\nvar _MJS_v2normalize = function(a) {\n var r = new Float64Array(2);\n var im = 1.0 / _MJS_v2lengthLocal(a);\n r[0] = a[0] * im;\n r[1] = a[1] * im;\n return r;\n};\n\nvar _MJS_v2scale = F2(function(k, a) {\n var r = new Float64Array(2);\n r[0] = a[0] * k;\n r[1] = a[1] * k;\n return r;\n});\n\nvar _MJS_v2dot = F2(function(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n});\n\n// Vector3\n\nvar _MJS_v3temp1Local = new Float64Array(3);\nvar _MJS_v3temp2Local = new Float64Array(3);\nvar _MJS_v3temp3Local = new Float64Array(3);\n\nvar _MJS_v3 = F3(function(x, y, z) {\n return new Float64Array([x, y, z]);\n});\n\nvar _MJS_v3getX = function(a) {\n return a[0];\n};\n\nvar _MJS_v3getY = function(a) {\n return a[1];\n};\n\nvar _MJS_v3getZ = function(a) {\n return a[2];\n};\n\nvar _MJS_v3setX = F2(function(x, a) {\n return new Float64Array([x, a[1], a[2]]);\n});\n\nvar _MJS_v3setY = F2(function(y, a) {\n return new Float64Array([a[0], y, a[2]]);\n});\n\nvar _MJS_v3setZ = F2(function(z, a) {\n return new Float64Array([a[0], a[1], z]);\n});\n\nvar _MJS_v3toRecord = function(a) {\n return { z: a[0], A: a[1], au: a[2] };\n};\n\nvar _MJS_v3fromRecord = function(r) {\n return new Float64Array([r.z, r.A, r.au]);\n};\n\nvar _MJS_v3add = F2(function(a, b) {\n var r = new Float64Array(3);\n r[0] = a[0] + b[0];\n r[1] = a[1] + b[1];\n r[2] = a[2] + b[2];\n return r;\n});\n\nfunction _MJS_v3subLocal(a, b, r) {\n if (r === undefined) {\n r = new Float64Array(3);\n }\n r[0] = a[0] - b[0];\n r[1] = a[1] - b[1];\n r[2] = a[2] - b[2];\n return r;\n}\nvar _MJS_v3sub = F2(_MJS_v3subLocal);\n\nvar _MJS_v3negate = function(a) {\n var r = new Float64Array(3);\n r[0] = -a[0];\n r[1] = -a[1];\n r[2] = -a[2];\n return r;\n};\n\nfunction _MJS_v3directionLocal(a, b, r) {\n if (r === undefined) {\n r = new Float64Array(3);\n }\n return _MJS_v3normalizeLocal(_MJS_v3subLocal(a, b, r), r);\n}\nvar _MJS_v3direction = F2(_MJS_v3directionLocal);\n\nfunction _MJS_v3lengthLocal(a) {\n return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]);\n}\nvar _MJS_v3length = _MJS_v3lengthLocal;\n\nvar _MJS_v3lengthSquared = function(a) {\n return a[0] * a[0] + a[1] * a[1] + a[2] * a[2];\n};\n\nvar _MJS_v3distance = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n var dz = a[2] - b[2];\n return Math.sqrt(dx * dx + dy * dy + dz * dz);\n});\n\nvar _MJS_v3distanceSquared = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n var dz = a[2] - b[2];\n return dx * dx + dy * dy + dz * dz;\n});\n\nfunction _MJS_v3normalizeLocal(a, r) {\n if (r === undefined) {\n r = new Float64Array(3);\n }\n var im = 1.0 / _MJS_v3lengthLocal(a);\n r[0] = a[0] * im;\n r[1] = a[1] * im;\n r[2] = a[2] * im;\n return r;\n}\nvar _MJS_v3normalize = _MJS_v3normalizeLocal;\n\nvar _MJS_v3scale = F2(function(k, a) {\n return new Float64Array([a[0] * k, a[1] * k, a[2] * k]);\n});\n\nvar _MJS_v3dotLocal = function(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n};\nvar _MJS_v3dot = F2(_MJS_v3dotLocal);\n\nfunction _MJS_v3crossLocal(a, b, r) {\n if (r === undefined) {\n r = new Float64Array(3);\n }\n r[0] = a[1] * b[2] - a[2] * b[1];\n r[1] = a[2] * b[0] - a[0] * b[2];\n r[2] = a[0] * b[1] - a[1] * b[0];\n return r;\n}\nvar _MJS_v3cross = F2(_MJS_v3crossLocal);\n\nvar _MJS_v3mul4x4 = F2(function(m, v) {\n var w;\n var tmp = _MJS_v3temp1Local;\n var r = new Float64Array(3);\n\n tmp[0] = m[3];\n tmp[1] = m[7];\n tmp[2] = m[11];\n w = _MJS_v3dotLocal(v, tmp) + m[15];\n tmp[0] = m[0];\n tmp[1] = m[4];\n tmp[2] = m[8];\n r[0] = (_MJS_v3dotLocal(v, tmp) + m[12]) / w;\n tmp[0] = m[1];\n tmp[1] = m[5];\n tmp[2] = m[9];\n r[1] = (_MJS_v3dotLocal(v, tmp) + m[13]) / w;\n tmp[0] = m[2];\n tmp[1] = m[6];\n tmp[2] = m[10];\n r[2] = (_MJS_v3dotLocal(v, tmp) + m[14]) / w;\n return r;\n});\n\n// Vector4\n\nvar _MJS_v4 = F4(function(x, y, z, w) {\n return new Float64Array([x, y, z, w]);\n});\n\nvar _MJS_v4getX = function(a) {\n return a[0];\n};\n\nvar _MJS_v4getY = function(a) {\n return a[1];\n};\n\nvar _MJS_v4getZ = function(a) {\n return a[2];\n};\n\nvar _MJS_v4getW = function(a) {\n return a[3];\n};\n\nvar _MJS_v4setX = F2(function(x, a) {\n return new Float64Array([x, a[1], a[2], a[3]]);\n});\n\nvar _MJS_v4setY = F2(function(y, a) {\n return new Float64Array([a[0], y, a[2], a[3]]);\n});\n\nvar _MJS_v4setZ = F2(function(z, a) {\n return new Float64Array([a[0], a[1], z, a[3]]);\n});\n\nvar _MJS_v4setW = F2(function(w, a) {\n return new Float64Array([a[0], a[1], a[2], w]);\n});\n\nvar _MJS_v4toRecord = function(a) {\n return { z: a[0], A: a[1], au: a[2], bw: a[3] };\n};\n\nvar _MJS_v4fromRecord = function(r) {\n return new Float64Array([r.z, r.A, r.au, r.bw]);\n};\n\nvar _MJS_v4add = F2(function(a, b) {\n var r = new Float64Array(4);\n r[0] = a[0] + b[0];\n r[1] = a[1] + b[1];\n r[2] = a[2] + b[2];\n r[3] = a[3] + b[3];\n return r;\n});\n\nvar _MJS_v4sub = F2(function(a, b) {\n var r = new Float64Array(4);\n r[0] = a[0] - b[0];\n r[1] = a[1] - b[1];\n r[2] = a[2] - b[2];\n r[3] = a[3] - b[3];\n return r;\n});\n\nvar _MJS_v4negate = function(a) {\n var r = new Float64Array(4);\n r[0] = -a[0];\n r[1] = -a[1];\n r[2] = -a[2];\n r[3] = -a[3];\n return r;\n};\n\nvar _MJS_v4direction = F2(function(a, b) {\n var r = new Float64Array(4);\n r[0] = a[0] - b[0];\n r[1] = a[1] - b[1];\n r[2] = a[2] - b[2];\n r[3] = a[3] - b[3];\n var im = 1.0 / _MJS_v4lengthLocal(r);\n r[0] = r[0] * im;\n r[1] = r[1] * im;\n r[2] = r[2] * im;\n r[3] = r[3] * im;\n return r;\n});\n\nfunction _MJS_v4lengthLocal(a) {\n return Math.sqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3]);\n}\nvar _MJS_v4length = _MJS_v4lengthLocal;\n\nvar _MJS_v4lengthSquared = function(a) {\n return a[0] * a[0] + a[1] * a[1] + a[2] * a[2] + a[3] * a[3];\n};\n\nvar _MJS_v4distance = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n var dz = a[2] - b[2];\n var dw = a[3] - b[3];\n return Math.sqrt(dx * dx + dy * dy + dz * dz + dw * dw);\n});\n\nvar _MJS_v4distanceSquared = F2(function(a, b) {\n var dx = a[0] - b[0];\n var dy = a[1] - b[1];\n var dz = a[2] - b[2];\n var dw = a[3] - b[3];\n return dx * dx + dy * dy + dz * dz + dw * dw;\n});\n\nvar _MJS_v4normalize = function(a) {\n var r = new Float64Array(4);\n var im = 1.0 / _MJS_v4lengthLocal(a);\n r[0] = a[0] * im;\n r[1] = a[1] * im;\n r[2] = a[2] * im;\n r[3] = a[3] * im;\n return r;\n};\n\nvar _MJS_v4scale = F2(function(k, a) {\n var r = new Float64Array(4);\n r[0] = a[0] * k;\n r[1] = a[1] * k;\n r[2] = a[2] * k;\n r[3] = a[3] * k;\n return r;\n});\n\nvar _MJS_v4dot = F2(function(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n});\n\n// Matrix4\n\nvar _MJS_m4x4temp1Local = new Float64Array(16);\nvar _MJS_m4x4temp2Local = new Float64Array(16);\n\nvar _MJS_m4x4identity = new Float64Array([\n 1.0, 0.0, 0.0, 0.0,\n 0.0, 1.0, 0.0, 0.0,\n 0.0, 0.0, 1.0, 0.0,\n 0.0, 0.0, 0.0, 1.0\n]);\n\nvar _MJS_m4x4fromRecord = function(r) {\n var m = new Float64Array(16);\n m[0] = r.aZ;\n m[1] = r.a1;\n m[2] = r.a5;\n m[3] = r.a9;\n m[4] = r.a_;\n m[5] = r.a2;\n m[6] = r.a6;\n m[7] = r.ba;\n m[8] = r.a$;\n m[9] = r.a3;\n m[10] = r.a7;\n m[11] = r.bb;\n m[12] = r.a0;\n m[13] = r.a4;\n m[14] = r.a8;\n m[15] = r.bc;\n return m;\n};\n\nvar _MJS_m4x4toRecord = function(m) {\n return {\n aZ: m[0], a1: m[1], a5: m[2], a9: m[3],\n a_: m[4], a2: m[5], a6: m[6], ba: m[7],\n a$: m[8], a3: m[9], a7: m[10], bb: m[11],\n a0: m[12], a4: m[13], a8: m[14], bc: m[15]\n };\n};\n\nvar _MJS_m4x4inverse = function(m) {\n var r = new Float64Array(16);\n\n r[0] = m[5] * m[10] * m[15] - m[5] * m[11] * m[14] - m[9] * m[6] * m[15] +\n m[9] * m[7] * m[14] + m[13] * m[6] * m[11] - m[13] * m[7] * m[10];\n r[4] = -m[4] * m[10] * m[15] + m[4] * m[11] * m[14] + m[8] * m[6] * m[15] -\n m[8] * m[7] * m[14] - m[12] * m[6] * m[11] + m[12] * m[7] * m[10];\n r[8] = m[4] * m[9] * m[15] - m[4] * m[11] * m[13] - m[8] * m[5] * m[15] +\n m[8] * m[7] * m[13] + m[12] * m[5] * m[11] - m[12] * m[7] * m[9];\n r[12] = -m[4] * m[9] * m[14] + m[4] * m[10] * m[13] + m[8] * m[5] * m[14] -\n m[8] * m[6] * m[13] - m[12] * m[5] * m[10] + m[12] * m[6] * m[9];\n r[1] = -m[1] * m[10] * m[15] + m[1] * m[11] * m[14] + m[9] * m[2] * m[15] -\n m[9] * m[3] * m[14] - m[13] * m[2] * m[11] + m[13] * m[3] * m[10];\n r[5] = m[0] * m[10] * m[15] - m[0] * m[11] * m[14] - m[8] * m[2] * m[15] +\n m[8] * m[3] * m[14] + m[12] * m[2] * m[11] - m[12] * m[3] * m[10];\n r[9] = -m[0] * m[9] * m[15] + m[0] * m[11] * m[13] + m[8] * m[1] * m[15] -\n m[8] * m[3] * m[13] - m[12] * m[1] * m[11] + m[12] * m[3] * m[9];\n r[13] = m[0] * m[9] * m[14] - m[0] * m[10] * m[13] - m[8] * m[1] * m[14] +\n m[8] * m[2] * m[13] + m[12] * m[1] * m[10] - m[12] * m[2] * m[9];\n r[2] = m[1] * m[6] * m[15] - m[1] * m[7] * m[14] - m[5] * m[2] * m[15] +\n m[5] * m[3] * m[14] + m[13] * m[2] * m[7] - m[13] * m[3] * m[6];\n r[6] = -m[0] * m[6] * m[15] + m[0] * m[7] * m[14] + m[4] * m[2] * m[15] -\n m[4] * m[3] * m[14] - m[12] * m[2] * m[7] + m[12] * m[3] * m[6];\n r[10] = m[0] * m[5] * m[15] - m[0] * m[7] * m[13] - m[4] * m[1] * m[15] +\n m[4] * m[3] * m[13] + m[12] * m[1] * m[7] - m[12] * m[3] * m[5];\n r[14] = -m[0] * m[5] * m[14] + m[0] * m[6] * m[13] + m[4] * m[1] * m[14] -\n m[4] * m[2] * m[13] - m[12] * m[1] * m[6] + m[12] * m[2] * m[5];\n r[3] = -m[1] * m[6] * m[11] + m[1] * m[7] * m[10] + m[5] * m[2] * m[11] -\n m[5] * m[3] * m[10] - m[9] * m[2] * m[7] + m[9] * m[3] * m[6];\n r[7] = m[0] * m[6] * m[11] - m[0] * m[7] * m[10] - m[4] * m[2] * m[11] +\n m[4] * m[3] * m[10] + m[8] * m[2] * m[7] - m[8] * m[3] * m[6];\n r[11] = -m[0] * m[5] * m[11] + m[0] * m[7] * m[9] + m[4] * m[1] * m[11] -\n m[4] * m[3] * m[9] - m[8] * m[1] * m[7] + m[8] * m[3] * m[5];\n r[15] = m[0] * m[5] * m[10] - m[0] * m[6] * m[9] - m[4] * m[1] * m[10] +\n m[4] * m[2] * m[9] + m[8] * m[1] * m[6] - m[8] * m[2] * m[5];\n\n var det = m[0] * r[0] + m[1] * r[4] + m[2] * r[8] + m[3] * r[12];\n\n if (det === 0) {\n return elm$core$Maybe$Nothing;\n }\n\n det = 1.0 / det;\n\n for (var i = 0; i < 16; i = i + 1) {\n r[i] = r[i] * det;\n }\n\n return elm$core$Maybe$Just(r);\n};\n\nvar _MJS_m4x4inverseOrthonormal = function(m) {\n var r = _MJS_m4x4transposeLocal(m);\n var t = [m[12], m[13], m[14]];\n r[3] = r[7] = r[11] = 0;\n r[12] = -_MJS_v3dotLocal([r[0], r[4], r[8]], t);\n r[13] = -_MJS_v3dotLocal([r[1], r[5], r[9]], t);\n r[14] = -_MJS_v3dotLocal([r[2], r[6], r[10]], t);\n return r;\n};\n\nfunction _MJS_m4x4makeFrustumLocal(left, right, bottom, top, znear, zfar) {\n var r = new Float64Array(16);\n\n r[0] = 2 * znear / (right - left);\n r[1] = 0;\n r[2] = 0;\n r[3] = 0;\n r[4] = 0;\n r[5] = 2 * znear / (top - bottom);\n r[6] = 0;\n r[7] = 0;\n r[8] = (right + left) / (right - left);\n r[9] = (top + bottom) / (top - bottom);\n r[10] = -(zfar + znear) / (zfar - znear);\n r[11] = -1;\n r[12] = 0;\n r[13] = 0;\n r[14] = -2 * zfar * znear / (zfar - znear);\n r[15] = 0;\n\n return r;\n}\nvar _MJS_m4x4makeFrustum = F6(_MJS_m4x4makeFrustumLocal);\n\nvar _MJS_m4x4makePerspective = F4(function(fovy, aspect, znear, zfar) {\n var ymax = znear * Math.tan(fovy * Math.PI / 360.0);\n var ymin = -ymax;\n var xmin = ymin * aspect;\n var xmax = ymax * aspect;\n\n return _MJS_m4x4makeFrustumLocal(xmin, xmax, ymin, ymax, znear, zfar);\n});\n\nfunction _MJS_m4x4makeOrthoLocal(left, right, bottom, top, znear, zfar) {\n var r = new Float64Array(16);\n\n r[0] = 2 / (right - left);\n r[1] = 0;\n r[2] = 0;\n r[3] = 0;\n r[4] = 0;\n r[5] = 2 / (top - bottom);\n r[6] = 0;\n r[7] = 0;\n r[8] = 0;\n r[9] = 0;\n r[10] = -2 / (zfar - znear);\n r[11] = 0;\n r[12] = -(right + left) / (right - left);\n r[13] = -(top + bottom) / (top - bottom);\n r[14] = -(zfar + znear) / (zfar - znear);\n r[15] = 1;\n\n return r;\n}\nvar _MJS_m4x4makeOrtho = F6(_MJS_m4x4makeOrthoLocal);\n\nvar _MJS_m4x4makeOrtho2D = F4(function(left, right, bottom, top) {\n return _MJS_m4x4makeOrthoLocal(left, right, bottom, top, -1, 1);\n});\n\nfunction _MJS_m4x4mulLocal(a, b) {\n var r = new Float64Array(16);\n var a11 = a[0];\n var a21 = a[1];\n var a31 = a[2];\n var a41 = a[3];\n var a12 = a[4];\n var a22 = a[5];\n var a32 = a[6];\n var a42 = a[7];\n var a13 = a[8];\n var a23 = a[9];\n var a33 = a[10];\n var a43 = a[11];\n var a14 = a[12];\n var a24 = a[13];\n var a34 = a[14];\n var a44 = a[15];\n var b11 = b[0];\n var b21 = b[1];\n var b31 = b[2];\n var b41 = b[3];\n var b12 = b[4];\n var b22 = b[5];\n var b32 = b[6];\n var b42 = b[7];\n var b13 = b[8];\n var b23 = b[9];\n var b33 = b[10];\n var b43 = b[11];\n var b14 = b[12];\n var b24 = b[13];\n var b34 = b[14];\n var b44 = b[15];\n\n r[0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n r[1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n r[2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n r[3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n r[4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n r[5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n r[6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n r[7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n r[8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n r[9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n r[10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n r[11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n r[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n r[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n r[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n r[15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n return r;\n}\nvar _MJS_m4x4mul = F2(_MJS_m4x4mulLocal);\n\nvar _MJS_m4x4mulAffine = F2(function(a, b) {\n var r = new Float64Array(16);\n var a11 = a[0];\n var a21 = a[1];\n var a31 = a[2];\n var a12 = a[4];\n var a22 = a[5];\n var a32 = a[6];\n var a13 = a[8];\n var a23 = a[9];\n var a33 = a[10];\n var a14 = a[12];\n var a24 = a[13];\n var a34 = a[14];\n\n var b11 = b[0];\n var b21 = b[1];\n var b31 = b[2];\n var b12 = b[4];\n var b22 = b[5];\n var b32 = b[6];\n var b13 = b[8];\n var b23 = b[9];\n var b33 = b[10];\n var b14 = b[12];\n var b24 = b[13];\n var b34 = b[14];\n\n r[0] = a11 * b11 + a12 * b21 + a13 * b31;\n r[1] = a21 * b11 + a22 * b21 + a23 * b31;\n r[2] = a31 * b11 + a32 * b21 + a33 * b31;\n r[3] = 0;\n r[4] = a11 * b12 + a12 * b22 + a13 * b32;\n r[5] = a21 * b12 + a22 * b22 + a23 * b32;\n r[6] = a31 * b12 + a32 * b22 + a33 * b32;\n r[7] = 0;\n r[8] = a11 * b13 + a12 * b23 + a13 * b33;\n r[9] = a21 * b13 + a22 * b23 + a23 * b33;\n r[10] = a31 * b13 + a32 * b23 + a33 * b33;\n r[11] = 0;\n r[12] = a11 * b14 + a12 * b24 + a13 * b34 + a14;\n r[13] = a21 * b14 + a22 * b24 + a23 * b34 + a24;\n r[14] = a31 * b14 + a32 * b24 + a33 * b34 + a34;\n r[15] = 1;\n\n return r;\n});\n\nvar _MJS_m4x4makeRotate = F2(function(angle, axis) {\n var r = new Float64Array(16);\n axis = _MJS_v3normalizeLocal(axis, _MJS_v3temp1Local);\n var x = axis[0];\n var y = axis[1];\n var z = axis[2];\n var c = Math.cos(angle);\n var c1 = 1 - c;\n var s = Math.sin(angle);\n\n r[0] = x * x * c1 + c;\n r[1] = y * x * c1 + z * s;\n r[2] = z * x * c1 - y * s;\n r[3] = 0;\n r[4] = x * y * c1 - z * s;\n r[5] = y * y * c1 + c;\n r[6] = y * z * c1 + x * s;\n r[7] = 0;\n r[8] = x * z * c1 + y * s;\n r[9] = y * z * c1 - x * s;\n r[10] = z * z * c1 + c;\n r[11] = 0;\n r[12] = 0;\n r[13] = 0;\n r[14] = 0;\n r[15] = 1;\n\n return r;\n});\n\nvar _MJS_m4x4rotate = F3(function(angle, axis, m) {\n var r = new Float64Array(16);\n var im = 1.0 / _MJS_v3lengthLocal(axis);\n var x = axis[0] * im;\n var y = axis[1] * im;\n var z = axis[2] * im;\n var c = Math.cos(angle);\n var c1 = 1 - c;\n var s = Math.sin(angle);\n var xs = x * s;\n var ys = y * s;\n var zs = z * s;\n var xyc1 = x * y * c1;\n var xzc1 = x * z * c1;\n var yzc1 = y * z * c1;\n var t11 = x * x * c1 + c;\n var t21 = xyc1 + zs;\n var t31 = xzc1 - ys;\n var t12 = xyc1 - zs;\n var t22 = y * y * c1 + c;\n var t32 = yzc1 + xs;\n var t13 = xzc1 + ys;\n var t23 = yzc1 - xs;\n var t33 = z * z * c1 + c;\n var m11 = m[0], m21 = m[1], m31 = m[2], m41 = m[3];\n var m12 = m[4], m22 = m[5], m32 = m[6], m42 = m[7];\n var m13 = m[8], m23 = m[9], m33 = m[10], m43 = m[11];\n var m14 = m[12], m24 = m[13], m34 = m[14], m44 = m[15];\n\n r[0] = m11 * t11 + m12 * t21 + m13 * t31;\n r[1] = m21 * t11 + m22 * t21 + m23 * t31;\n r[2] = m31 * t11 + m32 * t21 + m33 * t31;\n r[3] = m41 * t11 + m42 * t21 + m43 * t31;\n r[4] = m11 * t12 + m12 * t22 + m13 * t32;\n r[5] = m21 * t12 + m22 * t22 + m23 * t32;\n r[6] = m31 * t12 + m32 * t22 + m33 * t32;\n r[7] = m41 * t12 + m42 * t22 + m43 * t32;\n r[8] = m11 * t13 + m12 * t23 + m13 * t33;\n r[9] = m21 * t13 + m22 * t23 + m23 * t33;\n r[10] = m31 * t13 + m32 * t23 + m33 * t33;\n r[11] = m41 * t13 + m42 * t23 + m43 * t33;\n r[12] = m14,\n r[13] = m24;\n r[14] = m34;\n r[15] = m44;\n\n return r;\n});\n\nfunction _MJS_m4x4makeScale3Local(x, y, z) {\n var r = new Float64Array(16);\n\n r[0] = x;\n r[1] = 0;\n r[2] = 0;\n r[3] = 0;\n r[4] = 0;\n r[5] = y;\n r[6] = 0;\n r[7] = 0;\n r[8] = 0;\n r[9] = 0;\n r[10] = z;\n r[11] = 0;\n r[12] = 0;\n r[13] = 0;\n r[14] = 0;\n r[15] = 1;\n\n return r;\n}\nvar _MJS_m4x4makeScale3 = F3(_MJS_m4x4makeScale3Local);\n\nvar _MJS_m4x4makeScale = function(v) {\n return _MJS_m4x4makeScale3Local(v[0], v[1], v[2]);\n};\n\nvar _MJS_m4x4scale3 = F4(function(x, y, z, m) {\n var r = new Float64Array(16);\n\n r[0] = m[0] * x;\n r[1] = m[1] * x;\n r[2] = m[2] * x;\n r[3] = m[3] * x;\n r[4] = m[4] * y;\n r[5] = m[5] * y;\n r[6] = m[6] * y;\n r[7] = m[7] * y;\n r[8] = m[8] * z;\n r[9] = m[9] * z;\n r[10] = m[10] * z;\n r[11] = m[11] * z;\n r[12] = m[12];\n r[13] = m[13];\n r[14] = m[14];\n r[15] = m[15];\n\n return r;\n});\n\nvar _MJS_m4x4scale = F2(function(v, m) {\n var r = new Float64Array(16);\n var x = v[0];\n var y = v[1];\n var z = v[2];\n\n r[0] = m[0] * x;\n r[1] = m[1] * x;\n r[2] = m[2] * x;\n r[3] = m[3] * x;\n r[4] = m[4] * y;\n r[5] = m[5] * y;\n r[6] = m[6] * y;\n r[7] = m[7] * y;\n r[8] = m[8] * z;\n r[9] = m[9] * z;\n r[10] = m[10] * z;\n r[11] = m[11] * z;\n r[12] = m[12];\n r[13] = m[13];\n r[14] = m[14];\n r[15] = m[15];\n\n return r;\n});\n\nfunction _MJS_m4x4makeTranslate3Local(x, y, z) {\n var r = new Float64Array(16);\n\n r[0] = 1;\n r[1] = 0;\n r[2] = 0;\n r[3] = 0;\n r[4] = 0;\n r[5] = 1;\n r[6] = 0;\n r[7] = 0;\n r[8] = 0;\n r[9] = 0;\n r[10] = 1;\n r[11] = 0;\n r[12] = x;\n r[13] = y;\n r[14] = z;\n r[15] = 1;\n\n return r;\n}\nvar _MJS_m4x4makeTranslate3 = F3(_MJS_m4x4makeTranslate3Local);\n\nvar _MJS_m4x4makeTranslate = function(v) {\n return _MJS_m4x4makeTranslate3Local(v[0], v[1], v[2]);\n};\n\nvar _MJS_m4x4translate3 = F4(function(x, y, z, m) {\n var r = new Float64Array(16);\n var m11 = m[0];\n var m21 = m[1];\n var m31 = m[2];\n var m41 = m[3];\n var m12 = m[4];\n var m22 = m[5];\n var m32 = m[6];\n var m42 = m[7];\n var m13 = m[8];\n var m23 = m[9];\n var m33 = m[10];\n var m43 = m[11];\n\n r[0] = m11;\n r[1] = m21;\n r[2] = m31;\n r[3] = m41;\n r[4] = m12;\n r[5] = m22;\n r[6] = m32;\n r[7] = m42;\n r[8] = m13;\n r[9] = m23;\n r[10] = m33;\n r[11] = m43;\n r[12] = m11 * x + m12 * y + m13 * z + m[12];\n r[13] = m21 * x + m22 * y + m23 * z + m[13];\n r[14] = m31 * x + m32 * y + m33 * z + m[14];\n r[15] = m41 * x + m42 * y + m43 * z + m[15];\n\n return r;\n});\n\nvar _MJS_m4x4translate = F2(function(v, m) {\n var r = new Float64Array(16);\n var x = v[0];\n var y = v[1];\n var z = v[2];\n var m11 = m[0];\n var m21 = m[1];\n var m31 = m[2];\n var m41 = m[3];\n var m12 = m[4];\n var m22 = m[5];\n var m32 = m[6];\n var m42 = m[7];\n var m13 = m[8];\n var m23 = m[9];\n var m33 = m[10];\n var m43 = m[11];\n\n r[0] = m11;\n r[1] = m21;\n r[2] = m31;\n r[3] = m41;\n r[4] = m12;\n r[5] = m22;\n r[6] = m32;\n r[7] = m42;\n r[8] = m13;\n r[9] = m23;\n r[10] = m33;\n r[11] = m43;\n r[12] = m11 * x + m12 * y + m13 * z + m[12];\n r[13] = m21 * x + m22 * y + m23 * z + m[13];\n r[14] = m31 * x + m32 * y + m33 * z + m[14];\n r[15] = m41 * x + m42 * y + m43 * z + m[15];\n\n return r;\n});\n\nvar _MJS_m4x4makeLookAt = F3(function(eye, center, up) {\n var z = _MJS_v3directionLocal(eye, center, _MJS_v3temp1Local);\n var x = _MJS_v3normalizeLocal(_MJS_v3crossLocal(up, z, _MJS_v3temp2Local), _MJS_v3temp2Local);\n var y = _MJS_v3normalizeLocal(_MJS_v3crossLocal(z, x, _MJS_v3temp3Local), _MJS_v3temp3Local);\n var tm1 = _MJS_m4x4temp1Local;\n var tm2 = _MJS_m4x4temp2Local;\n\n tm1[0] = x[0];\n tm1[1] = y[0];\n tm1[2] = z[0];\n tm1[3] = 0;\n tm1[4] = x[1];\n tm1[5] = y[1];\n tm1[6] = z[1];\n tm1[7] = 0;\n tm1[8] = x[2];\n tm1[9] = y[2];\n tm1[10] = z[2];\n tm1[11] = 0;\n tm1[12] = 0;\n tm1[13] = 0;\n tm1[14] = 0;\n tm1[15] = 1;\n\n tm2[0] = 1; tm2[1] = 0; tm2[2] = 0; tm2[3] = 0;\n tm2[4] = 0; tm2[5] = 1; tm2[6] = 0; tm2[7] = 0;\n tm2[8] = 0; tm2[9] = 0; tm2[10] = 1; tm2[11] = 0;\n tm2[12] = -eye[0]; tm2[13] = -eye[1]; tm2[14] = -eye[2]; tm2[15] = 1;\n\n return _MJS_m4x4mulLocal(tm1, tm2);\n});\n\n\nfunction _MJS_m4x4transposeLocal(m) {\n var r = new Float64Array(16);\n\n r[0] = m[0]; r[1] = m[4]; r[2] = m[8]; r[3] = m[12];\n r[4] = m[1]; r[5] = m[5]; r[6] = m[9]; r[7] = m[13];\n r[8] = m[2]; r[9] = m[6]; r[10] = m[10]; r[11] = m[14];\n r[12] = m[3]; r[13] = m[7]; r[14] = m[11]; r[15] = m[15];\n\n return r;\n}\nvar _MJS_m4x4transpose = _MJS_m4x4transposeLocal;\n\nvar _MJS_m4x4makeBasis = F3(function(vx, vy, vz) {\n var r = new Float64Array(16);\n\n r[0] = vx[0];\n r[1] = vx[1];\n r[2] = vx[2];\n r[3] = 0;\n r[4] = vy[0];\n r[5] = vy[1];\n r[6] = vy[2];\n r[7] = 0;\n r[8] = vz[0];\n r[9] = vz[1];\n r[10] = vz[2];\n r[11] = 0;\n r[12] = 0;\n r[13] = 0;\n r[14] = 0;\n r[15] = 1;\n\n return r;\n});\n\n\n\n\n// HELPERS\n\n\nvar _VirtualDom_divertHrefToApp;\n\nvar _VirtualDom_doc = typeof document !== 'undefined' ? document : {};\n\n\nfunction _VirtualDom_appendChild(parent, child)\n{\n\tparent.appendChild(child);\n}\n\nvar _VirtualDom_init = F4(function(virtualNode, flagDecoder, debugMetadata, args)\n{\n\t// NOTE: this function needs _Platform_export available to work\n\n\t/**/\n\tvar node = args['node'];\n\t//*/\n\t/**_UNUSED/\n\tvar node = args && args['node'] ? args['node'] : _Debug_crash(0);\n\t//*/\n\n\tnode.parentNode.replaceChild(\n\t\t_VirtualDom_render(virtualNode, function() {}),\n\t\tnode\n\t);\n\n\treturn {};\n});\n\n\n\n// TEXT\n\n\nfunction _VirtualDom_text(string)\n{\n\treturn {\n\t\t$: 0,\n\t\ta: string\n\t};\n}\n\n\n\n// NODE\n\n\nvar _VirtualDom_nodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 1,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_node = _VirtualDom_nodeNS(undefined);\n\n\n\n// KEYED NODE\n\n\nvar _VirtualDom_keyedNodeNS = F2(function(namespace, tag)\n{\n\treturn F2(function(factList, kidList)\n\t{\n\t\tfor (var kids = [], descendantsCount = 0; kidList.b; kidList = kidList.b) // WHILE_CONS\n\t\t{\n\t\t\tvar kid = kidList.a;\n\t\t\tdescendantsCount += (kid.b.b || 0);\n\t\t\tkids.push(kid);\n\t\t}\n\t\tdescendantsCount += kids.length;\n\n\t\treturn {\n\t\t\t$: 2,\n\t\t\tc: tag,\n\t\t\td: _VirtualDom_organizeFacts(factList),\n\t\t\te: kids,\n\t\t\tf: namespace,\n\t\t\tb: descendantsCount\n\t\t};\n\t});\n});\n\n\nvar _VirtualDom_keyedNode = _VirtualDom_keyedNodeNS(undefined);\n\n\n\n// CUSTOM\n\n\nfunction _VirtualDom_custom(factList, model, render, diff)\n{\n\treturn {\n\t\t$: 3,\n\t\td: _VirtualDom_organizeFacts(factList),\n\t\tg: model,\n\t\th: render,\n\t\ti: diff\n\t};\n}\n\n\n\n// MAP\n\n\nvar _VirtualDom_map = F2(function(tagger, node)\n{\n\treturn {\n\t\t$: 4,\n\t\tj: tagger,\n\t\tk: node,\n\t\tb: 1 + (node.b || 0)\n\t};\n});\n\n\n\n// LAZY\n\n\nfunction _VirtualDom_thunk(refs, thunk)\n{\n\treturn {\n\t\t$: 5,\n\t\tl: refs,\n\t\tm: thunk,\n\t\tk: undefined\n\t};\n}\n\nvar _VirtualDom_lazy = F2(function(func, a)\n{\n\treturn _VirtualDom_thunk([func, a], function() {\n\t\treturn func(a);\n\t});\n});\n\nvar _VirtualDom_lazy2 = F3(function(func, a, b)\n{\n\treturn _VirtualDom_thunk([func, a, b], function() {\n\t\treturn A2(func, a, b);\n\t});\n});\n\nvar _VirtualDom_lazy3 = F4(function(func, a, b, c)\n{\n\treturn _VirtualDom_thunk([func, a, b, c], function() {\n\t\treturn A3(func, a, b, c);\n\t});\n});\n\nvar _VirtualDom_lazy4 = F5(function(func, a, b, c, d)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d], function() {\n\t\treturn A4(func, a, b, c, d);\n\t});\n});\n\nvar _VirtualDom_lazy5 = F6(function(func, a, b, c, d, e)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e], function() {\n\t\treturn A5(func, a, b, c, d, e);\n\t});\n});\n\nvar _VirtualDom_lazy6 = F7(function(func, a, b, c, d, e, f)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f], function() {\n\t\treturn A6(func, a, b, c, d, e, f);\n\t});\n});\n\nvar _VirtualDom_lazy7 = F8(function(func, a, b, c, d, e, f, g)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g], function() {\n\t\treturn A7(func, a, b, c, d, e, f, g);\n\t});\n});\n\nvar _VirtualDom_lazy8 = F9(function(func, a, b, c, d, e, f, g, h)\n{\n\treturn _VirtualDom_thunk([func, a, b, c, d, e, f, g, h], function() {\n\t\treturn A8(func, a, b, c, d, e, f, g, h);\n\t});\n});\n\n\n\n// FACTS\n\n\nvar _VirtualDom_on = F2(function(key, handler)\n{\n\treturn {\n\t\t$: 'a0',\n\t\tn: key,\n\t\to: handler\n\t};\n});\nvar _VirtualDom_style = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a1',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_property = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a2',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attribute = F2(function(key, value)\n{\n\treturn {\n\t\t$: 'a3',\n\t\tn: key,\n\t\to: value\n\t};\n});\nvar _VirtualDom_attributeNS = F3(function(namespace, key, value)\n{\n\treturn {\n\t\t$: 'a4',\n\t\tn: key,\n\t\to: { f: namespace, o: value }\n\t};\n});\n\n\n\n// XSS ATTACK VECTOR CHECKS\n\n\nfunction _VirtualDom_noScript(tag)\n{\n\treturn tag == 'script' ? 'p' : tag;\n}\n\nfunction _VirtualDom_noOnOrFormAction(key)\n{\n\treturn /^(on|formAction$)/i.test(key) ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noInnerHtmlOrFormAction(key)\n{\n\treturn key == 'innerHTML' || key == 'formAction' ? 'data-' + key : key;\n}\n\nfunction _VirtualDom_noJavaScriptUri(value)\n{\n\treturn /^javascript:/i.test(value.replace(/\\s/g,'')) ? '' : value;\n}\n\nfunction _VirtualDom_noJavaScriptUri_UNUSED(value)\n{\n\treturn /^javascript:/i.test(value.replace(/\\s/g,''))\n\t\t? 'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'\n\t\t: value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlUri(value)\n{\n\treturn /^\\s*(javascript:|data:text\\/html)/i.test(value) ? '' : value;\n}\n\nfunction _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value)\n{\n\treturn /^\\s*(javascript:|data:text\\/html)/i.test(value)\n\t\t? 'javascript:alert(\"This is an XSS vector. Please use ports or web components instead.\")'\n\t\t: value;\n}\n\n\n\n// MAP FACTS\n\n\nvar _VirtualDom_mapAttribute = F2(function(func, attr)\n{\n\treturn (attr.$ === 'a0')\n\t\t? A2(_VirtualDom_on, attr.n, _VirtualDom_mapHandler(func, attr.o))\n\t\t: attr;\n});\n\nfunction _VirtualDom_mapHandler(func, handler)\n{\n\tvar tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t// 0 = Normal\n\t// 1 = MayStopPropagation\n\t// 2 = MayPreventDefault\n\t// 3 = Custom\n\n\treturn {\n\t\t$: handler.$,\n\t\ta:\n\t\t\t!tag\n\t\t\t\t? A2(elm$json$Json$Decode$map, func, handler.a)\n\t\t\t\t:\n\t\t\tA3(elm$json$Json$Decode$map2,\n\t\t\t\ttag < 3\n\t\t\t\t\t? _VirtualDom_mapEventTuple\n\t\t\t\t\t: _VirtualDom_mapEventRecord,\n\t\t\t\telm$json$Json$Decode$succeed(func),\n\t\t\t\thandler.a\n\t\t\t)\n\t};\n}\n\nvar _VirtualDom_mapEventTuple = F2(function(func, tuple)\n{\n\treturn _Utils_Tuple2(func(tuple.a), tuple.b);\n});\n\nvar _VirtualDom_mapEventRecord = F2(function(func, record)\n{\n\treturn {\n\t\tw: func(record.w),\n\t\taF: record.aF,\n\t\taC: record.aC\n\t}\n});\n\n\n\n// ORGANIZE FACTS\n\n\nfunction _VirtualDom_organizeFacts(factList)\n{\n\tfor (var facts = {}; factList.b; factList = factList.b) // WHILE_CONS\n\t{\n\t\tvar entry = factList.a;\n\n\t\tvar tag = entry.$;\n\t\tvar key = entry.n;\n\t\tvar value = entry.o;\n\n\t\tif (tag === 'a2')\n\t\t{\n\t\t\t(key === 'className')\n\t\t\t\t? _VirtualDom_addClass(facts, key, _Json_unwrap(value))\n\t\t\t\t: facts[key] = _Json_unwrap(value);\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar subFacts = facts[tag] || (facts[tag] = {});\n\t\t(tag === 'a3' && key === 'class')\n\t\t\t? _VirtualDom_addClass(subFacts, key, value)\n\t\t\t: subFacts[key] = value;\n\t}\n\n\treturn facts;\n}\n\nfunction _VirtualDom_addClass(object, key, newClass)\n{\n\tvar classes = object[key];\n\tobject[key] = classes ? classes + ' ' + newClass : newClass;\n}\n\n\n\n// RENDER\n\n\nfunction _VirtualDom_render(vNode, eventNode)\n{\n\tvar tag = vNode.$;\n\n\tif (tag === 5)\n\t{\n\t\treturn _VirtualDom_render(vNode.k || (vNode.k = vNode.m()), eventNode);\n\t}\n\n\tif (tag === 0)\n\t{\n\t\treturn _VirtualDom_doc.createTextNode(vNode.a);\n\t}\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\t\tvar tagger = vNode.j;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\ttypeof tagger !== 'object'\n\t\t\t\t? tagger = [tagger, subNode.j]\n\t\t\t\t: tagger.push(subNode.j);\n\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\tvar subEventRoot = { j: tagger, p: eventNode };\n\t\tvar domNode = _VirtualDom_render(subNode, subEventRoot);\n\t\tdomNode.elm_event_node_ref = subEventRoot;\n\t\treturn domNode;\n\t}\n\n\tif (tag === 3)\n\t{\n\t\tvar domNode = vNode.h(vNode.g);\n\t\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\t\treturn domNode;\n\t}\n\n\t// at this point `tag` must be 1 or 2\n\n\tvar domNode = vNode.f\n\t\t? _VirtualDom_doc.createElementNS(vNode.f, vNode.c)\n\t\t: _VirtualDom_doc.createElement(vNode.c);\n\n\tif (_VirtualDom_divertHrefToApp && vNode.c == 'a')\n\t{\n\t\tdomNode.addEventListener('click', _VirtualDom_divertHrefToApp(domNode));\n\t}\n\n\t_VirtualDom_applyFacts(domNode, eventNode, vNode.d);\n\n\tfor (var kids = vNode.e, i = 0; i < kids.length; i++)\n\t{\n\t\t_VirtualDom_appendChild(domNode, _VirtualDom_render(tag === 1 ? kids[i] : kids[i].b, eventNode));\n\t}\n\n\treturn domNode;\n}\n\n\n\n// APPLY FACTS\n\n\nfunction _VirtualDom_applyFacts(domNode, eventNode, facts)\n{\n\tfor (var key in facts)\n\t{\n\t\tvar value = facts[key];\n\n\t\tkey === 'a1'\n\t\t\t? _VirtualDom_applyStyles(domNode, value)\n\t\t\t:\n\t\tkey === 'a0'\n\t\t\t? _VirtualDom_applyEvents(domNode, eventNode, value)\n\t\t\t:\n\t\tkey === 'a3'\n\t\t\t? _VirtualDom_applyAttrs(domNode, value)\n\t\t\t:\n\t\tkey === 'a4'\n\t\t\t? _VirtualDom_applyAttrsNS(domNode, value)\n\t\t\t:\n\t\t((key !== 'value' && key !== 'checked') || domNode[key] !== value) && (domNode[key] = value);\n\t}\n}\n\n\n\n// APPLY STYLES\n\n\nfunction _VirtualDom_applyStyles(domNode, styles)\n{\n\tvar domNodeStyle = domNode.style;\n\n\tfor (var key in styles)\n\t{\n\t\tdomNodeStyle[key] = styles[key];\n\t}\n}\n\n\n\n// APPLY ATTRS\n\n\nfunction _VirtualDom_applyAttrs(domNode, attrs)\n{\n\tfor (var key in attrs)\n\t{\n\t\tvar value = attrs[key];\n\t\ttypeof value !== 'undefined'\n\t\t\t? domNode.setAttribute(key, value)\n\t\t\t: domNode.removeAttribute(key);\n\t}\n}\n\n\n\n// APPLY NAMESPACED ATTRS\n\n\nfunction _VirtualDom_applyAttrsNS(domNode, nsAttrs)\n{\n\tfor (var key in nsAttrs)\n\t{\n\t\tvar pair = nsAttrs[key];\n\t\tvar namespace = pair.f;\n\t\tvar value = pair.o;\n\n\t\ttypeof value !== 'undefined'\n\t\t\t? domNode.setAttributeNS(namespace, key, value)\n\t\t\t: domNode.removeAttributeNS(namespace, key);\n\t}\n}\n\n\n\n// APPLY EVENTS\n\n\nfunction _VirtualDom_applyEvents(domNode, eventNode, events)\n{\n\tvar allCallbacks = domNode.elmFs || (domNode.elmFs = {});\n\n\tfor (var key in events)\n\t{\n\t\tvar newHandler = events[key];\n\t\tvar oldCallback = allCallbacks[key];\n\n\t\tif (!newHandler)\n\t\t{\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t\tallCallbacks[key] = undefined;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (oldCallback)\n\t\t{\n\t\t\tvar oldHandler = oldCallback.q;\n\t\t\tif (oldHandler.$ === newHandler.$)\n\t\t\t{\n\t\t\t\toldCallback.q = newHandler;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tdomNode.removeEventListener(key, oldCallback);\n\t\t}\n\n\t\toldCallback = _VirtualDom_makeCallback(eventNode, newHandler);\n\t\tdomNode.addEventListener(key, oldCallback,\n\t\t\t_VirtualDom_passiveSupported\n\t\t\t&& { passive: elm$virtual_dom$VirtualDom$toHandlerInt(newHandler) < 2 }\n\t\t);\n\t\tallCallbacks[key] = oldCallback;\n\t}\n}\n\n\n\n// PASSIVE EVENTS\n\n\nvar _VirtualDom_passiveSupported;\n\ntry\n{\n\twindow.addEventListener('t', null, Object.defineProperty({}, 'passive', {\n\t\tget: function() { _VirtualDom_passiveSupported = true; }\n\t}));\n}\ncatch(e) {}\n\n\n\n// EVENT HANDLERS\n\n\nfunction _VirtualDom_makeCallback(eventNode, initialHandler)\n{\n\tfunction callback(event)\n\t{\n\t\tvar handler = callback.q;\n\t\tvar result = _Json_runHelp(handler.a, event);\n\n\t\tif (!elm$core$Result$isOk(result))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvar tag = elm$virtual_dom$VirtualDom$toHandlerInt(handler);\n\n\t\t// 0 = Normal\n\t\t// 1 = MayStopPropagation\n\t\t// 2 = MayPreventDefault\n\t\t// 3 = Custom\n\n\t\tvar value = result.a;\n\t\tvar message = !tag ? value : tag < 3 ? value.a : value.w;\n\t\tvar stopPropagation = tag == 1 ? value.b : tag == 3 && value.aF;\n\t\tvar currentEventNode = (\n\t\t\tstopPropagation && event.stopPropagation(),\n\t\t\t(tag == 2 ? value.b : tag == 3 && value.aC) && event.preventDefault(),\n\t\t\teventNode\n\t\t);\n\t\tvar tagger;\n\t\tvar i;\n\t\twhile (tagger = currentEventNode.j)\n\t\t{\n\t\t\tif (typeof tagger == 'function')\n\t\t\t{\n\t\t\t\tmessage = tagger(message);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tfor (var i = tagger.length; i--; )\n\t\t\t\t{\n\t\t\t\t\tmessage = tagger[i](message);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentEventNode = currentEventNode.p;\n\t\t}\n\t\tcurrentEventNode(message, stopPropagation); // stopPropagation implies isSync\n\t}\n\n\tcallback.q = initialHandler;\n\n\treturn callback;\n}\n\nfunction _VirtualDom_equalEvents(x, y)\n{\n\treturn x.$ == y.$ && _Json_equality(x.a, y.a);\n}\n\n\n\n// DIFF\n\n\n// TODO: Should we do patches like in iOS?\n//\n// type Patch\n// = At Int Patch\n// | Batch (List Patch)\n// | Change ...\n//\n// How could it not be better?\n//\nfunction _VirtualDom_diff(x, y)\n{\n\tvar patches = [];\n\t_VirtualDom_diffHelp(x, y, patches, 0);\n\treturn patches;\n}\n\n\nfunction _VirtualDom_pushPatch(patches, type, index, data)\n{\n\tvar patch = {\n\t\t$: type,\n\t\tr: index,\n\t\ts: data,\n\t\tt: undefined,\n\t\tu: undefined\n\t};\n\tpatches.push(patch);\n\treturn patch;\n}\n\n\nfunction _VirtualDom_diffHelp(x, y, patches, index)\n{\n\tif (x === y)\n\t{\n\t\treturn;\n\t}\n\n\tvar xType = x.$;\n\tvar yType = y.$;\n\n\t// Bail if you run into different types of nodes. Implies that the\n\t// structure has changed significantly and it's not worth a diff.\n\tif (xType !== yType)\n\t{\n\t\tif (xType === 1 && yType === 2)\n\t\t{\n\t\t\ty = _VirtualDom_dekey(y);\n\t\t\tyType = 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Now we know that both nodes are the same $.\n\tswitch (yType)\n\t{\n\t\tcase 5:\n\t\t\tvar xRefs = x.l;\n\t\t\tvar yRefs = y.l;\n\t\t\tvar i = xRefs.length;\n\t\t\tvar same = i === yRefs.length;\n\t\t\twhile (same && i--)\n\t\t\t{\n\t\t\t\tsame = xRefs[i] === yRefs[i];\n\t\t\t}\n\t\t\tif (same)\n\t\t\t{\n\t\t\t\ty.k = x.k;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ty.k = y.m();\n\t\t\tvar subPatches = [];\n\t\t\t_VirtualDom_diffHelp(x.k, y.k, subPatches, 0);\n\t\t\tsubPatches.length > 0 && _VirtualDom_pushPatch(patches, 1, index, subPatches);\n\t\t\treturn;\n\n\t\tcase 4:\n\t\t\t// gather nested taggers\n\t\t\tvar xTaggers = x.j;\n\t\t\tvar yTaggers = y.j;\n\t\t\tvar nesting = false;\n\n\t\t\tvar xSubNode = x.k;\n\t\t\twhile (xSubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof xTaggers !== 'object'\n\t\t\t\t\t? xTaggers = [xTaggers, xSubNode.j]\n\t\t\t\t\t: xTaggers.push(xSubNode.j);\n\n\t\t\t\txSubNode = xSubNode.k;\n\t\t\t}\n\n\t\t\tvar ySubNode = y.k;\n\t\t\twhile (ySubNode.$ === 4)\n\t\t\t{\n\t\t\t\tnesting = true;\n\n\t\t\t\ttypeof yTaggers !== 'object'\n\t\t\t\t\t? yTaggers = [yTaggers, ySubNode.j]\n\t\t\t\t\t: yTaggers.push(ySubNode.j);\n\n\t\t\t\tySubNode = ySubNode.k;\n\t\t\t}\n\n\t\t\t// Just bail if different numbers of taggers. This implies the\n\t\t\t// structure of the virtual DOM has changed.\n\t\t\tif (nesting && xTaggers.length !== yTaggers.length)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// check if taggers are \"the same\"\n\t\t\tif (nesting ? !_VirtualDom_pairwiseRefEqual(xTaggers, yTaggers) : xTaggers !== yTaggers)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 2, index, yTaggers);\n\t\t\t}\n\n\t\t\t// diff everything below the taggers\n\t\t\t_VirtualDom_diffHelp(xSubNode, ySubNode, patches, index + 1);\n\t\t\treturn;\n\n\t\tcase 0:\n\t\t\tif (x.a !== y.a)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 3, index, y.a);\n\t\t\t}\n\t\t\treturn;\n\n\t\tcase 1:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKids);\n\t\t\treturn;\n\n\t\tcase 2:\n\t\t\t_VirtualDom_diffNodes(x, y, patches, index, _VirtualDom_diffKeyedKids);\n\t\t\treturn;\n\n\t\tcase 3:\n\t\t\tif (x.h !== y.h)\n\t\t\t{\n\t\t\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\t\t\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\t\t\tvar patch = y.i(x.g, y.g);\n\t\t\tpatch && _VirtualDom_pushPatch(patches, 5, index, patch);\n\n\t\t\treturn;\n\t}\n}\n\n// assumes the incoming arrays are the same length\nfunction _VirtualDom_pairwiseRefEqual(as, bs)\n{\n\tfor (var i = 0; i < as.length; i++)\n\t{\n\t\tif (as[i] !== bs[i])\n\t\t{\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction _VirtualDom_diffNodes(x, y, patches, index, diffKids)\n{\n\t// Bail if obvious indicators have changed. Implies more serious\n\t// structural changes such that it's not worth it to diff.\n\tif (x.c !== y.c || x.f !== y.f)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 0, index, y);\n\t\treturn;\n\t}\n\n\tvar factsDiff = _VirtualDom_diffFacts(x.d, y.d);\n\tfactsDiff && _VirtualDom_pushPatch(patches, 4, index, factsDiff);\n\n\tdiffKids(x, y, patches, index);\n}\n\n\n\n// DIFF FACTS\n\n\n// TODO Instead of creating a new diff object, it's possible to just test if\n// there *is* a diff. During the actual patch, do the diff again and make the\n// modifications directly. This way, there's no new allocations. Worth it?\nfunction _VirtualDom_diffFacts(x, y, category)\n{\n\tvar diff;\n\n\t// look for changes and removals\n\tfor (var xKey in x)\n\t{\n\t\tif (xKey === 'a1' || xKey === 'a0' || xKey === 'a3' || xKey === 'a4')\n\t\t{\n\t\t\tvar subDiff = _VirtualDom_diffFacts(x[xKey], y[xKey] || {}, xKey);\n\t\t\tif (subDiff)\n\t\t\t{\n\t\t\t\tdiff = diff || {};\n\t\t\t\tdiff[xKey] = subDiff;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove if not in the new facts\n\t\tif (!(xKey in y))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[xKey] =\n\t\t\t\t!category\n\t\t\t\t\t? (typeof x[xKey] === 'string' ? '' : null)\n\t\t\t\t\t:\n\t\t\t\t(category === 'a1')\n\t\t\t\t\t? ''\n\t\t\t\t\t:\n\t\t\t\t(category === 'a0' || category === 'a3')\n\t\t\t\t\t? undefined\n\t\t\t\t\t:\n\t\t\t\t{ f: x[xKey].f, o: undefined };\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tvar xValue = x[xKey];\n\t\tvar yValue = y[xKey];\n\n\t\t// reference equal, so don't worry about it\n\t\tif (xValue === yValue && xKey !== 'value' && xKey !== 'checked'\n\t\t\t|| category === 'a0' && _VirtualDom_equalEvents(xValue, yValue))\n\t\t{\n\t\t\tcontinue;\n\t\t}\n\n\t\tdiff = diff || {};\n\t\tdiff[xKey] = yValue;\n\t}\n\n\t// add new stuff\n\tfor (var yKey in y)\n\t{\n\t\tif (!(yKey in x))\n\t\t{\n\t\t\tdiff = diff || {};\n\t\t\tdiff[yKey] = y[yKey];\n\t\t}\n\t}\n\n\treturn diff;\n}\n\n\n\n// DIFF KIDS\n\n\nfunction _VirtualDom_diffKids(xParent, yParent, patches, index)\n{\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\n\t// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS\n\n\tif (xLen > yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 6, index, {\n\t\t\tv: yLen,\n\t\t\ti: xLen - yLen\n\t\t});\n\t}\n\telse if (xLen < yLen)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 7, index, {\n\t\t\tv: xLen,\n\t\t\te: yKids\n\t\t});\n\t}\n\n\t// PAIRWISE DIFF EVERYTHING ELSE\n\n\tfor (var minLen = xLen < yLen ? xLen : yLen, i = 0; i < minLen; i++)\n\t{\n\t\tvar xKid = xKids[i];\n\t\t_VirtualDom_diffHelp(xKid, yKids[i], patches, ++index);\n\t\tindex += xKid.b || 0;\n\t}\n}\n\n\n\n// KEYED DIFF\n\n\nfunction _VirtualDom_diffKeyedKids(xParent, yParent, patches, rootIndex)\n{\n\tvar localPatches = [];\n\n\tvar changes = {}; // Dict String Entry\n\tvar inserts = []; // Array { index : Int, entry : Entry }\n\t// type Entry = { tag : String, vnode : VNode, index : Int, data : _ }\n\n\tvar xKids = xParent.e;\n\tvar yKids = yParent.e;\n\tvar xLen = xKids.length;\n\tvar yLen = yKids.length;\n\tvar xIndex = 0;\n\tvar yIndex = 0;\n\n\tvar index = rootIndex;\n\n\twhile (xIndex < xLen && yIndex < yLen)\n\t{\n\t\tvar x = xKids[xIndex];\n\t\tvar y = yKids[yIndex];\n\n\t\tvar xKey = x.a;\n\t\tvar yKey = y.a;\n\t\tvar xNode = x.b;\n\t\tvar yNode = y.b;\n\n\t\tvar newMatch = undefined;\n\t\tvar oldMatch = undefined;\n\n\t\t// check if keys match\n\n\t\tif (xKey === yKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex++;\n\t\t\tyIndex++;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// look ahead 1 to detect insertions and removals.\n\n\t\tvar xNext = xKids[xIndex + 1];\n\t\tvar yNext = yKids[yIndex + 1];\n\n\t\tif (xNext)\n\t\t{\n\t\t\tvar xNextKey = xNext.a;\n\t\t\tvar xNextNode = xNext.b;\n\t\t\toldMatch = yKey === xNextKey;\n\t\t}\n\n\t\tif (yNext)\n\t\t{\n\t\t\tvar yNextKey = yNext.a;\n\t\t\tvar yNextNode = yNext.b;\n\t\t\tnewMatch = xKey === yNextKey;\n\t\t}\n\n\n\t\t// swap x and y\n\t\tif (newMatch && oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, xKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNextNode, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// insert y\n\t\tif (newMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\t_VirtualDom_diffHelp(xNode, yNextNode, localPatches, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\txIndex += 1;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x\n\t\tif (oldMatch)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\t// remove x, insert y\n\t\tif (xNext && xNextKey === yNextKey)\n\t\t{\n\t\t\tindex++;\n\t\t\t_VirtualDom_removeNode(changes, localPatches, xKey, xNode, index);\n\t\t\t_VirtualDom_insertNode(changes, localPatches, yKey, yNode, yIndex, inserts);\n\t\t\tindex += xNode.b || 0;\n\n\t\t\tindex++;\n\t\t\t_VirtualDom_diffHelp(xNextNode, yNextNode, localPatches, index);\n\t\t\tindex += xNextNode.b || 0;\n\n\t\t\txIndex += 2;\n\t\t\tyIndex += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\tbreak;\n\t}\n\n\t// eat up any remaining nodes with removeNode and insertNode\n\n\twhile (xIndex < xLen)\n\t{\n\t\tindex++;\n\t\tvar x = xKids[xIndex];\n\t\tvar xNode = x.b;\n\t\t_VirtualDom_removeNode(changes, localPatches, x.a, xNode, index);\n\t\tindex += xNode.b || 0;\n\t\txIndex++;\n\t}\n\n\twhile (yIndex < yLen)\n\t{\n\t\tvar endInserts = endInserts || [];\n\t\tvar y = yKids[yIndex];\n\t\t_VirtualDom_insertNode(changes, localPatches, y.a, y.b, undefined, endInserts);\n\t\tyIndex++;\n\t}\n\n\tif (localPatches.length > 0 || inserts.length > 0 || endInserts)\n\t{\n\t\t_VirtualDom_pushPatch(patches, 8, rootIndex, {\n\t\t\tw: localPatches,\n\t\t\tx: inserts,\n\t\t\ty: endInserts\n\t\t});\n\t}\n}\n\n\n\n// CHANGES FROM KEYED DIFF\n\n\nvar _VirtualDom_POSTFIX = '_elmW6BL';\n\n\nfunction _VirtualDom_insertNode(changes, localPatches, key, vnode, yIndex, inserts)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tentry = {\n\t\t\tc: 0,\n\t\t\tz: vnode,\n\t\t\tr: yIndex,\n\t\t\ts: undefined\n\t\t};\n\n\t\tinserts.push({ r: yIndex, A: entry });\n\t\tchanges[key] = entry;\n\n\t\treturn;\n\t}\n\n\t// this key was removed earlier, a match!\n\tif (entry.c === 1)\n\t{\n\t\tinserts.push({ r: yIndex, A: entry });\n\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(entry.z, vnode, subPatches, entry.r);\n\t\tentry.r = yIndex;\n\t\tentry.s.s = {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key has already been inserted or moved, a duplicate!\n\t_VirtualDom_insertNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, yIndex, inserts);\n}\n\n\nfunction _VirtualDom_removeNode(changes, localPatches, key, vnode, index)\n{\n\tvar entry = changes[key];\n\n\t// never seen this key before\n\tif (!entry)\n\t{\n\t\tvar patch = _VirtualDom_pushPatch(localPatches, 9, index, undefined);\n\n\t\tchanges[key] = {\n\t\t\tc: 1,\n\t\t\tz: vnode,\n\t\t\tr: index,\n\t\t\ts: patch\n\t\t};\n\n\t\treturn;\n\t}\n\n\t// this key was inserted earlier, a match!\n\tif (entry.c === 0)\n\t{\n\t\tentry.c = 2;\n\t\tvar subPatches = [];\n\t\t_VirtualDom_diffHelp(vnode, entry.z, subPatches, index);\n\n\t\t_VirtualDom_pushPatch(localPatches, 9, index, {\n\t\t\tw: subPatches,\n\t\t\tA: entry\n\t\t});\n\n\t\treturn;\n\t}\n\n\t// this key has already been removed or moved, a duplicate!\n\t_VirtualDom_removeNode(changes, localPatches, key + _VirtualDom_POSTFIX, vnode, index);\n}\n\n\n\n// ADD DOM NODES\n//\n// Each DOM node has an \"index\" assigned in order of traversal. It is important\n// to minimize our crawl over the actual DOM, so these indexes (along with the\n// descendantsCount of virtual nodes) let us skip touching entire subtrees of\n// the DOM if we know there are no patches there.\n\n\nfunction _VirtualDom_addDomNodes(domNode, vNode, patches, eventNode)\n{\n\t_VirtualDom_addDomNodesHelp(domNode, vNode, patches, 0, 0, vNode.b, eventNode);\n}\n\n\n// assumes `patches` is non-empty and indexes increase monotonically.\nfunction _VirtualDom_addDomNodesHelp(domNode, vNode, patches, i, low, high, eventNode)\n{\n\tvar patch = patches[i];\n\tvar index = patch.r;\n\n\twhile (index === low)\n\t{\n\t\tvar patchType = patch.$;\n\n\t\tif (patchType === 1)\n\t\t{\n\t\t\t_VirtualDom_addDomNodes(domNode, vNode.k, patch.s, eventNode);\n\t\t}\n\t\telse if (patchType === 8)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar subPatches = patch.s.w;\n\t\t\tif (subPatches.length > 0)\n\t\t\t{\n\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t}\n\t\t}\n\t\telse if (patchType === 9)\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\n\t\t\tvar data = patch.s;\n\t\t\tif (data)\n\t\t\t{\n\t\t\t\tdata.A.s = domNode;\n\t\t\t\tvar subPatches = data.w;\n\t\t\t\tif (subPatches.length > 0)\n\t\t\t\t{\n\t\t\t\t\t_VirtualDom_addDomNodesHelp(domNode, vNode, subPatches, 0, low, high, eventNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpatch.t = domNode;\n\t\t\tpatch.u = eventNode;\n\t\t}\n\n\t\ti++;\n\n\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t{\n\t\t\treturn i;\n\t\t}\n\t}\n\n\tvar tag = vNode.$;\n\n\tif (tag === 4)\n\t{\n\t\tvar subNode = vNode.k;\n\n\t\twhile (subNode.$ === 4)\n\t\t{\n\t\t\tsubNode = subNode.k;\n\t\t}\n\n\t\treturn _VirtualDom_addDomNodesHelp(domNode, subNode, patches, i, low + 1, high, domNode.elm_event_node_ref);\n\t}\n\n\t// tag must be 1 or 2 at this point\n\n\tvar vKids = vNode.e;\n\tvar childNodes = domNode.childNodes;\n\tfor (var j = 0; j < vKids.length; j++)\n\t{\n\t\tlow++;\n\t\tvar vKid = tag === 1 ? vKids[j] : vKids[j].b;\n\t\tvar nextLow = low + (vKid.b || 0);\n\t\tif (low <= index && index <= nextLow)\n\t\t{\n\t\t\ti = _VirtualDom_addDomNodesHelp(childNodes[j], vKid, patches, i, low, nextLow, eventNode);\n\t\t\tif (!(patch = patches[i]) || (index = patch.r) > high)\n\t\t\t{\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\tlow = nextLow;\n\t}\n\treturn i;\n}\n\n\n\n// APPLY PATCHES\n\n\nfunction _VirtualDom_applyPatches(rootDomNode, oldVirtualNode, patches, eventNode)\n{\n\tif (patches.length === 0)\n\t{\n\t\treturn rootDomNode;\n\t}\n\n\t_VirtualDom_addDomNodes(rootDomNode, oldVirtualNode, patches, eventNode);\n\treturn _VirtualDom_applyPatchesHelp(rootDomNode, patches);\n}\n\nfunction _VirtualDom_applyPatchesHelp(rootDomNode, patches)\n{\n\tfor (var i = 0; i < patches.length; i++)\n\t{\n\t\tvar patch = patches[i];\n\t\tvar localDomNode = patch.t\n\t\tvar newNode = _VirtualDom_applyPatch(localDomNode, patch);\n\t\tif (localDomNode === rootDomNode)\n\t\t{\n\t\t\trootDomNode = newNode;\n\t\t}\n\t}\n\treturn rootDomNode;\n}\n\nfunction _VirtualDom_applyPatch(domNode, patch)\n{\n\tswitch (patch.$)\n\t{\n\t\tcase 0:\n\t\t\treturn _VirtualDom_applyPatchRedraw(domNode, patch.s, patch.u);\n\n\t\tcase 4:\n\t\t\t_VirtualDom_applyFacts(domNode, patch.u, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 3:\n\t\t\tdomNode.replaceData(0, domNode.length, patch.s);\n\t\t\treturn domNode;\n\n\t\tcase 1:\n\t\t\treturn _VirtualDom_applyPatchesHelp(domNode, patch.s);\n\n\t\tcase 2:\n\t\t\tif (domNode.elm_event_node_ref)\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref.j = patch.s;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdomNode.elm_event_node_ref = { j: patch.s, p: patch.u };\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 6:\n\t\t\tvar data = patch.s;\n\t\t\tfor (var i = 0; i < data.i; i++)\n\t\t\t{\n\t\t\t\tdomNode.removeChild(domNode.childNodes[data.v]);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 7:\n\t\t\tvar data = patch.s;\n\t\t\tvar kids = data.e;\n\t\t\tvar i = data.v;\n\t\t\tvar theEnd = domNode.childNodes[i];\n\t\t\tfor (; i < kids.length; i++)\n\t\t\t{\n\t\t\t\tdomNode.insertBefore(_VirtualDom_render(kids[i], patch.u), theEnd);\n\t\t\t}\n\t\t\treturn domNode;\n\n\t\tcase 9:\n\t\t\tvar data = patch.s;\n\t\t\tif (!data)\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t\treturn domNode;\n\t\t\t}\n\t\t\tvar entry = data.A;\n\t\t\tif (typeof entry.r !== 'undefined')\n\t\t\t{\n\t\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t\t}\n\t\t\tentry.s = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\t\t\treturn domNode;\n\n\t\tcase 8:\n\t\t\treturn _VirtualDom_applyPatchReorder(domNode, patch);\n\n\t\tcase 5:\n\t\t\treturn patch.s(domNode);\n\n\t\tdefault:\n\t\t\t_Debug_crash(10); // 'Ran into an unknown patch!'\n\t}\n}\n\n\nfunction _VirtualDom_applyPatchRedraw(domNode, vNode, eventNode)\n{\n\tvar parentNode = domNode.parentNode;\n\tvar newNode = _VirtualDom_render(vNode, eventNode);\n\n\tif (!newNode.elm_event_node_ref)\n\t{\n\t\tnewNode.elm_event_node_ref = domNode.elm_event_node_ref;\n\t}\n\n\tif (parentNode && newNode !== domNode)\n\t{\n\t\tparentNode.replaceChild(newNode, domNode);\n\t}\n\treturn newNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorder(domNode, patch)\n{\n\tvar data = patch.s;\n\n\t// remove end inserts\n\tvar frag = _VirtualDom_applyPatchReorderEndInsertsHelp(data.y, patch);\n\n\t// removals\n\tdomNode = _VirtualDom_applyPatchesHelp(domNode, data.w);\n\n\t// inserts\n\tvar inserts = data.x;\n\tfor (var i = 0; i < inserts.length; i++)\n\t{\n\t\tvar insert = inserts[i];\n\t\tvar entry = insert.A;\n\t\tvar node = entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u);\n\t\tdomNode.insertBefore(node, domNode.childNodes[insert.r]);\n\t}\n\n\t// add end inserts\n\tif (frag)\n\t{\n\t\t_VirtualDom_appendChild(domNode, frag);\n\t}\n\n\treturn domNode;\n}\n\n\nfunction _VirtualDom_applyPatchReorderEndInsertsHelp(endInserts, patch)\n{\n\tif (!endInserts)\n\t{\n\t\treturn;\n\t}\n\n\tvar frag = _VirtualDom_doc.createDocumentFragment();\n\tfor (var i = 0; i < endInserts.length; i++)\n\t{\n\t\tvar insert = endInserts[i];\n\t\tvar entry = insert.A;\n\t\t_VirtualDom_appendChild(frag, entry.c === 2\n\t\t\t? entry.s\n\t\t\t: _VirtualDom_render(entry.z, patch.u)\n\t\t);\n\t}\n\treturn frag;\n}\n\n\nfunction _VirtualDom_virtualize(node)\n{\n\t// TEXT NODES\n\n\tif (node.nodeType === 3)\n\t{\n\t\treturn _VirtualDom_text(node.textContent);\n\t}\n\n\n\t// WEIRD NODES\n\n\tif (node.nodeType !== 1)\n\t{\n\t\treturn _VirtualDom_text('');\n\t}\n\n\n\t// ELEMENT NODES\n\n\tvar attrList = _List_Nil;\n\tvar attrs = node.attributes;\n\tfor (var i = attrs.length; i--; )\n\t{\n\t\tvar attr = attrs[i];\n\t\tvar name = attr.name;\n\t\tvar value = attr.value;\n\t\tattrList = _List_Cons( A2(_VirtualDom_attribute, name, value), attrList );\n\t}\n\n\tvar tag = node.tagName.toLowerCase();\n\tvar kidList = _List_Nil;\n\tvar kids = node.childNodes;\n\n\tfor (var i = kids.length; i--; )\n\t{\n\t\tkidList = _List_Cons(_VirtualDom_virtualize(kids[i]), kidList);\n\t}\n\treturn A3(_VirtualDom_node, tag, attrList, kidList);\n}\n\nfunction _VirtualDom_dekey(keyedNode)\n{\n\tvar keyedKids = keyedNode.e;\n\tvar len = keyedKids.length;\n\tvar kids = new Array(len);\n\tfor (var i = 0; i < len; i++)\n\t{\n\t\tkids[i] = keyedKids[i].b;\n\t}\n\n\treturn {\n\t\t$: 1,\n\t\tc: keyedNode.c,\n\t\td: keyedNode.d,\n\t\te: kids,\n\t\tf: keyedNode.f,\n\t\tb: keyedNode.b\n\t};\n}\n\n\nfunction _WebGL_log(/* msg */) {\n // console.log(msg);\n}\n\nvar _WebGL_guid = 0;\n\nfunction _WebGL_listEach(fn, list) {\n for (; list.b; list = list.b) {\n fn(list.a);\n }\n}\n\nfunction _WebGL_listLength(list) {\n var length = 0;\n for (; list.b; list = list.b) {\n length++;\n }\n return length;\n}\n\nvar _WebGL_rAF = typeof requestAnimationFrame !== 'undefined' ?\n requestAnimationFrame :\n function (cb) { setTimeout(cb, 1000 / 60); };\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_entity = F5(function (settings, vert, frag, mesh, uniforms) {\n\n if (!mesh.id) {\n mesh.id = _WebGL_guid++;\n }\n\n return {\n $: 0,\n a: settings,\n b: vert,\n c: frag,\n d: mesh,\n e: uniforms\n };\n\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableBlend = F2(function (gl, setting) {\n gl.enable(gl.BLEND);\n // a b c d e f g h i j\n // eq1 f11 f12 eq2 f21 f22 r g b a\n gl.blendEquationSeparate(setting.a, setting.d);\n gl.blendFuncSeparate(setting.b, setting.c, setting.e, setting.f);\n gl.blendColor(setting.g, setting.h, setting.i, setting.j);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableDepthTest = F2(function (gl, setting) {\n gl.enable(gl.DEPTH_TEST);\n // a b c d\n // func mask near far\n gl.depthFunc(setting.a);\n gl.depthMask(setting.b);\n gl.depthRange(setting.c, setting.d);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableStencilTest = F2(function (gl, setting) {\n gl.enable(gl.STENCIL_TEST);\n // a b c d e f g h i j k\n // ref mask writeMask test1 fail1 zfail1 zpass1 test2 fail2 zfail2 zpass2\n gl.stencilFuncSeparate(gl.FRONT, setting.d, setting.a, setting.b);\n gl.stencilOpSeparate(gl.FRONT, setting.e, setting.f, setting.g);\n gl.stencilMaskSeparate(gl.FRONT, setting.c);\n gl.stencilFuncSeparate(gl.BACK, setting.h, setting.a, setting.b);\n gl.stencilOpSeparate(gl.BACK, setting.i, setting.j, setting.k);\n gl.stencilMaskSeparate(gl.BACK, setting.c);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableScissor = F2(function (gl, setting) {\n gl.enable(gl.SCISSOR_TEST);\n gl.scissor(setting.a, setting.b, setting.c, setting.d);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableColorMask = F2(function (gl, setting) {\n gl.colorMask(setting.a, setting.b, setting.c, setting.d);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableCullFace = F2(function (gl, setting) {\n gl.enable(gl.CULL_FACE);\n gl.cullFace(setting.a);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enablePolygonOffset = F2(function (gl, setting) {\n gl.enable(gl.POLYGON_OFFSET_FILL);\n gl.polygonOffset(setting.a, setting.b);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableSampleCoverage = F2(function (gl, setting) {\n gl.enable(gl.SAMPLE_COVERAGE);\n gl.sampleCoverage(setting.a, setting.b);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableSampleAlphaToCoverage = F2(function (gl, setting) {\n gl.enable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableBlend = function (gl) {\n gl.disable(gl.BLEND);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableDepthTest = function (gl) {\n gl.disable(gl.DEPTH_TEST);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableStencilTest = function (gl) {\n gl.disable(gl.STENCIL_TEST);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableScissor = function (gl) {\n gl.disable(gl.SCISSOR_TEST);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableColorMask = function (gl) {\n gl.colorMask(true, true, true, true);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableCullFace = function (gl) {\n gl.disable(gl.CULL_FACE);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disablePolygonOffset = function (gl) {\n gl.disable(gl.POLYGON_OFFSET_FILL);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableSampleCoverage = function (gl) {\n gl.disable(gl.SAMPLE_COVERAGE);\n};\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_disableSampleAlphaToCoverage = function (gl) {\n gl.disable(gl.SAMPLE_ALPHA_TO_COVERAGE);\n};\n\nfunction _WebGL_doCompile(gl, src, type) {\n\n var shader = gl.createShader(type);\n _WebGL_log('Created shader');\n\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw gl.getShaderInfoLog(shader);\n }\n\n return shader;\n\n}\n\nfunction _WebGL_doLink(gl, vshader, fshader) {\n\n var program = gl.createProgram();\n _WebGL_log('Created program');\n\n gl.attachShader(program, vshader);\n gl.attachShader(program, fshader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw gl.getProgramInfoLog(program);\n }\n\n return program;\n\n}\n\nfunction _WebGL_getAttributeInfo(gl, type) {\n switch (type) {\n case gl.FLOAT:\n return { size: 1, type: Float32Array, baseType: gl.FLOAT };\n case gl.FLOAT_VEC2:\n return { size: 2, type: Float32Array, baseType: gl.FLOAT };\n case gl.FLOAT_VEC3:\n return { size: 3, type: Float32Array, baseType: gl.FLOAT };\n case gl.FLOAT_VEC4:\n return { size: 4, type: Float32Array, baseType: gl.FLOAT };\n case gl.INT:\n return { size: 1, type: Int32Array, baseType: gl.INT };\n case gl.INT_VEC2:\n return { size: 2, type: Int32Array, baseType: gl.INT };\n case gl.INT_VEC3:\n return { size: 3, type: Int32Array, baseType: gl.INT };\n case gl.INT_VEC4:\n return { size: 4, type: Int32Array, baseType: gl.INT };\n }\n}\n\n/**\n * Form the buffer for a given attribute.\n *\n * @param {WebGLRenderingContext} gl context\n * @param {WebGLActiveInfo} attribute the attribute to bind to.\n * We use its name to grab the record by name and also to know\n * how many elements we need to grab.\n * @param {Mesh} mesh The mesh coming in from Elm.\n * @param {Object} attributes The mapping between the attribute names and Elm fields\n * @return {WebGLBuffer}\n */\nfunction _WebGL_doBindAttribute(gl, attribute, mesh, attributes) {\n // The length of the number of vertices that\n // complete one 'thing' based on the drawing mode.\n // ie, 2 for Lines, 3 for Triangles, etc.\n var elemSize = mesh.a.q;\n\n var idxKeys = [];\n for (var i = 0; i < elemSize; i++) {\n idxKeys.push(String.fromCharCode(97 + i));\n }\n\n function dataFill(data, cnt, fillOffset, elem, key) {\n var i;\n if (elemSize === 1) {\n for (i = 0; i < cnt; i++) {\n data[fillOffset++] = cnt === 1 ? elem[key] : elem[key][i];\n }\n } else {\n idxKeys.forEach(function (idx) {\n for (i = 0; i < cnt; i++) {\n data[fillOffset++] = cnt === 1 ? elem[idx][key] : elem[idx][key][i];\n }\n });\n }\n }\n\n var attributeInfo = _WebGL_getAttributeInfo(gl, attribute.type);\n\n if (attributeInfo === undefined) {\n throw new Error('No info available for: ' + attribute.type);\n }\n\n var dataIdx = 0;\n var array = new attributeInfo.type(_WebGL_listLength(mesh.b) * attributeInfo.size * elemSize);\n\n _WebGL_listEach(function (elem) {\n dataFill(array, attributeInfo.size, dataIdx, elem, attributes[attribute.name] || attribute.name);\n dataIdx += attributeInfo.size * elemSize;\n }, mesh.b);\n\n var buffer = gl.createBuffer();\n _WebGL_log('Created attribute buffer ' + attribute.name);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, array, gl.STATIC_DRAW);\n return buffer;\n}\n\n/**\n * This sets up the binding caching buffers.\n *\n * We don't actually bind any buffers now except for the indices buffer.\n * The problem with filling the buffers here is that it is possible to\n * have a buffer shared between two webgl shaders;\n * which could have different active attributes. If we bind it here against\n * a particular program, we might not bind them all. That final bind is now\n * done right before drawing.\n *\n * @param {WebGLRenderingContext} gl context\n * @param {Mesh} mesh a mesh object from Elm\n * @return {Object} buffer - an object with the following properties\n * @return {Number} buffer.numIndices\n * @return {WebGLBuffer} buffer.indexBuffer\n * @return {Object} buffer.buffers - will be used to buffer attributes\n */\nfunction _WebGL_doBindSetup(gl, mesh) {\n _WebGL_log('Created index buffer');\n var indexBuffer = gl.createBuffer();\n var indices = (mesh.a.r === 0)\n ? _WebGL_makeSequentialBuffer(mesh.a.q * _WebGL_listLength(mesh.b))\n : _WebGL_makeIndexedBuffer(mesh.c, mesh.a.r);\n\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);\n gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, indices, gl.STATIC_DRAW);\n\n return {\n numIndices: indices.length,\n indexBuffer: indexBuffer,\n buffers: {}\n };\n}\n\n/**\n * Create an indices array and fill it with 0..n\n *\n * @param {Number} numIndices The number of indices\n * @return {Uint16Array} indices\n */\nfunction _WebGL_makeSequentialBuffer(numIndices) {\n var indices = new Uint16Array(numIndices);\n for (var i = 0; i < numIndices; i++) {\n indices[i] = i;\n }\n return indices;\n}\n\n/**\n * Create an indices array and fill it from indices\n * based on the size of the index\n *\n * @param {List} indicesList the list of indices\n * @param {Number} indexSize the size of the index\n * @return {Uint16Array} indices\n */\nfunction _WebGL_makeIndexedBuffer(indicesList, indexSize) {\n var indices = new Uint16Array(_WebGL_listLength(indicesList) * indexSize);\n var fillOffset = 0;\n var i;\n _WebGL_listEach(function (elem) {\n if (indexSize === 1) {\n indices[fillOffset++] = elem;\n } else {\n for (i = 0; i < indexSize; i++) {\n indices[fillOffset++] = elem[String.fromCharCode(97 + i)];\n }\n }\n }, indicesList);\n return indices;\n}\n\nfunction _WebGL_getProgID(vertID, fragID) {\n return vertID + '#' + fragID;\n}\n\nvar _WebGL_drawGL = F2(function (model, domNode) {\n\n var gl = model.f.gl;\n\n if (!gl) {\n return domNode;\n }\n\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT);\n _WebGL_log('Drawing');\n\n function drawEntity(entity) {\n if (!entity.d.b.b) {\n return; // Empty list\n }\n\n var progid;\n var program;\n if (entity.b.id && entity.c.id) {\n progid = _WebGL_getProgID(entity.b.id, entity.c.id);\n program = model.f.programs[progid];\n }\n\n if (!program) {\n\n var vshader;\n if (entity.b.id) {\n vshader = model.f.shaders[entity.b.id];\n } else {\n entity.b.id = _WebGL_guid++;\n }\n\n if (!vshader) {\n vshader = _WebGL_doCompile(gl, entity.b.src, gl.VERTEX_SHADER);\n model.f.shaders[entity.b.id] = vshader;\n }\n\n var fshader;\n if (entity.c.id) {\n fshader = model.f.shaders[entity.c.id];\n } else {\n entity.c.id = _WebGL_guid++;\n }\n\n if (!fshader) {\n fshader = _WebGL_doCompile(gl, entity.c.src, gl.FRAGMENT_SHADER);\n model.f.shaders[entity.c.id] = fshader;\n }\n\n var glProgram = _WebGL_doLink(gl, vshader, fshader);\n\n program = {\n glProgram: glProgram,\n attributes: Object.assign({}, entity.b.attributes, entity.c.attributes),\n uniformSetters: _WebGL_createUniformSetters(\n gl,\n model,\n glProgram,\n Object.assign({}, entity.b.uniforms, entity.c.uniforms)\n )\n };\n\n progid = _WebGL_getProgID(entity.b.id, entity.c.id);\n model.f.programs[progid] = program;\n\n }\n\n gl.useProgram(program.glProgram);\n\n _WebGL_setUniforms(program.uniformSetters, entity.e);\n\n var buffer = model.f.buffers[entity.d.id];\n\n if (!buffer) {\n buffer = _WebGL_doBindSetup(gl, entity.d);\n model.f.buffers[entity.d.id] = buffer;\n }\n\n gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, buffer.indexBuffer);\n\n var numAttributes = gl.getProgramParameter(program.glProgram, gl.ACTIVE_ATTRIBUTES);\n\n for (var i = 0; i < numAttributes; i++) {\n var attribute = gl.getActiveAttrib(program.glProgram, i);\n\n var attribLocation = gl.getAttribLocation(program.glProgram, attribute.name);\n gl.enableVertexAttribArray(attribLocation);\n\n if (buffer.buffers[attribute.name] === undefined) {\n buffer.buffers[attribute.name] = _WebGL_doBindAttribute(gl, attribute, entity.d, program.attributes);\n }\n var attributeBuffer = buffer.buffers[attribute.name];\n var attributeInfo = _WebGL_getAttributeInfo(gl, attribute.type);\n\n gl.bindBuffer(gl.ARRAY_BUFFER, attributeBuffer);\n gl.vertexAttribPointer(attribLocation, attributeInfo.size, attributeInfo.baseType, false, 0, 0);\n }\n\n _WebGL_listEach(function (setting) {\n return A2(elm_explorations$webgl$WebGL$Internal$enableSetting, gl, setting);\n }, entity.a);\n\n gl.drawElements(entity.d.a.t, buffer.numIndices, gl.UNSIGNED_SHORT, 0);\n\n _WebGL_listEach(function (setting) {\n return A2(elm_explorations$webgl$WebGL$Internal$disableSetting, gl, setting);\n }, entity.a);\n\n }\n\n _WebGL_listEach(drawEntity, model.g);\n return domNode;\n});\n\nfunction _WebGL_createUniformSetters(gl, model, program, uniformsMap) {\n var textureCounter = 0;\n function createUniformSetter(program, uniform) {\n var uniformLocation = gl.getUniformLocation(program, uniform.name);\n switch (uniform.type) {\n case gl.INT:\n return function (value) {\n gl.uniform1i(uniformLocation, value);\n };\n case gl.FLOAT:\n return function (value) {\n gl.uniform1f(uniformLocation, value);\n };\n case gl.FLOAT_VEC2:\n return function (value) {\n gl.uniform2fv(uniformLocation, new Float32Array(value));\n };\n case gl.FLOAT_VEC3:\n return function (value) {\n gl.uniform3fv(uniformLocation, new Float32Array(value));\n };\n case gl.FLOAT_VEC4:\n return function (value) {\n gl.uniform4fv(uniformLocation, new Float32Array(value));\n };\n case gl.FLOAT_MAT4:\n return function (value) {\n gl.uniformMatrix4fv(uniformLocation, false, new Float32Array(value));\n };\n case gl.SAMPLER_2D:\n var currentTexture = textureCounter++;\n return function (texture) {\n gl.activeTexture(gl.TEXTURE0 + currentTexture);\n var tex = model.f.textures[texture.id];\n if (!tex) {\n _WebGL_log('Created texture');\n tex = texture.aN(gl);\n model.f.textures[texture.id] = tex;\n }\n gl.bindTexture(gl.TEXTURE_2D, tex);\n gl.uniform1i(uniformLocation, currentTexture);\n };\n case gl.BOOL:\n return function (value) {\n gl.uniform1i(uniformLocation, value);\n };\n default:\n _WebGL_log('Unsupported uniform type: ' + uniform.type);\n return function () {};\n }\n }\n\n var uniformSetters = {};\n var numUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n for (var i = 0; i < numUniforms; i++) {\n var uniform = gl.getActiveUniform(program, i);\n uniformSetters[uniformsMap[uniform.name] || uniform.name] = createUniformSetter(program, uniform);\n }\n\n return uniformSetters;\n}\n\nfunction _WebGL_setUniforms(setters, values) {\n Object.keys(values).forEach(function (name) {\n var setter = setters[name];\n if (setter) {\n setter(values[name]);\n }\n });\n}\n\n// VIRTUAL-DOM WIDGET\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_toHtml = F3(function (options, factList, entities) {\n return _VirtualDom_custom(\n factList,\n {\n g: entities,\n f: {},\n h: options\n },\n _WebGL_render,\n _WebGL_diff\n );\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableAlpha = F2(function (options, option) {\n options.contextAttributes.alpha = true;\n options.contextAttributes.premultipliedAlpha = option.a;\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableDepth = F2(function (options, option) {\n options.contextAttributes.depth = true;\n options.sceneSettings.push(function (gl) {\n gl.clearDepth(option.a);\n });\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableStencil = F2(function (options, option) {\n options.contextAttributes.stencil = true;\n options.sceneSettings.push(function (gl) {\n gl.clearStencil(option.a);\n });\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableAntialias = F2(function (options, option) {\n options.contextAttributes.antialias = true;\n});\n\n// eslint-disable-next-line no-unused-vars\nvar _WebGL_enableClearColor = F2(function (options, option) {\n options.sceneSettings.push(function (gl) {\n gl.clearColor(option.a, option.b, option.c, option.d);\n });\n});\n\n/**\n * Creates canvas and schedules initial _WebGL_drawGL\n * @param {Object} model\n * @param {Object} model.f that may contain the following properties:\n gl, shaders, programs, buffers, textures\n * @param {List