{"version":3,"sources":["../javascript/initialize.js","../javascript/redComponent.js","../javascript/jwPlayerComponent.js","../javascript/modalComponent.js","../javascript/init_dropdown.js","../node_modules/cash-dom/dist/cash.esm.js","../node_modules/mithril/mithril.mjs","../javascript/index.js"],"names":["doInitializationWithGlobal","VETERANS","initialized","loadingFinished","callback","waiters","length","i","n","e","console","log","document","readyState","onreadystatechange","redComponent","elementId","el","getElementById","error","style","backgroundColor","width","height","display","jwcounter","jwPlayerComponent","querySelectorAll","forEach","elId","setAttribute","setupObj","file","dataset","m3u8","image","poster","title","mediaid","label","playerlogo","vertical","jwplayer","setup","modalComponent","modalLinks","modalLink","addEventListener","idModalToLoad","getAttribute","modalToLoad","backdrop","createElement","classList","add","body","appendChild","componentModal","componentModalWindow","innerHTML","setTimeout","history","pushState","fnRemoveBackdrop","removeChild","remove","ev","target","back","window","hideOpenedMenus","getElementsByClassName","menu","switchDropdown","buttonClass","dropdownClass","dropdownEl","show","contains","div_el","div_el_bar","rect","getBoundingClientRect","x","left","offsetWidth","y","offsetHeight","top","initMenus","stopPropagation","drop","doc","win","div","filter","indexOf","map","push","reverse","slice","some","splice","Array","prototype","idRe","classRe","htmlRe","tagRe","find","selector","context","nodeType","test","getElementsByTagName","Cash","constructor","isCash","eles","isString","ctx","parseHTML","isFunction","ready","l","init","cash","fn","Symbol","get","index","undefined","call","eq","first","last","ele","apply","arguments","dashAlphaRe","camelCaseReplace","all","letter","toUpperCase","camelCase","str","replace","each","arr","removeProp","prop","extend","objs","args","key","plugins","guid","matches","pluck","deep","plucked","val","isNumeric","isNaN","parseFloat","isFinite","isArray","value","getCompareFunction","comparator","is","compare","filtered","collection","splitValuesRe","getSplitValues","match","hasClass","cls","removeAttr","attr","attrs","a","removeAttribute","toggleClass","force","classes","isForce","c","toggle","addClass","removeClass","unique","item","self","concat","computeStyle","isVariable","getComputedStyle","getPropertyValue","computeStyleInt","parseInt","cssVariableRe","isCSSVariable","prefixedProps","vendorsPrefixes","getPrefixedProp","propCC","propUC","charAt","props","join","split","p","prefixedProp","numericProps","animationIterationCount","columnCount","flexGrow","flexShrink","fontWeight","lineHeight","opacity","order","orphans","widows","zIndex","getSuffixedValue","css","setProperty","dataNamespace","dataAttributeRe","hasData","getDataCache","getData","cache","JSON","parse","removeData","setData","data","name","attributes","getExtraSpace","xAxis","valueNumber","boxSizing","includeMargins","defaultDisplay","getDefaultDisplay","tagName","isHidden","hide","hasNamespaces","ns1","ns2","ns","eventsNamespace","eventsNamespacesSeparator","eventsFocus","focus","blur","eventsHover","mouseenter","mouseleave","eventsMouseRe","getEventNameBubbling","getEventsCache","addEvent","namespaces","eventCache","parseEventName","eventName","parts","sort","removeEvent","sel","cb","removeEventListener","off","eventFullName","on","_one","finalCallback","event","namespace","thisArg","parentNode","__delegate","Object","defineProperty","configurable","returnValue","preventDefault","one","trigger","evt","type","createEvent","initEvent","isEventFocus","dispatchEvent","getValue","multiple","options","option","selected","disabled","queryEncodeSpaceRe","queryEncode","encodeURIComponent","skippableRe","checkableRe","serialize","query","elements","checked","values","substr","eleValue","clone","cloneNode","detach","fragmentRe","singleTagRe","containers","initContainers","table","tr","td","th","thead","tbody","tfoot","html","RegExp","$1","fragment","container","childNodes","empty","firstChild","text","textContent","unwrap","parent","$ele","replaceWith","children","docEle","documentElement","offset","pageYOffset","clientTop","pageXOffset","clientLeft","offsetParent","position","offsetLeft","offsetTop","result","contents","contentDocument","found","scriptTypeRe","HTMLCDATARe","evalScripts","node","src","ownerDocument","eval","insertElement","anchor","child","prepend","prependTarget","insertBefore","insertContent","parentEle","childEle","append","appendTo","insertAfter","nextSibling","after","before","prependTo","replaceAll","wrapAll","structure","wrapper","firstElementChild","wrap","wrapInner","has","check","next","_all","nextAll","not","closest","parents","prev","prevAll","siblings","Vnode","tag","attrs0","children0","dom","domSize","state","events","instance","normalize","normalizeChildren","input","hyperscriptVnode","attrs1","start","children1","selectorParser","selectorCache","hasOwn","hasOwnProperty","isEmpty","object","compileSelector","exec","id","attrValue","className","execSelector","vnode","class","newAttrs","String","hyperscript","view","Error","trust","vnode2","m","PromisePolyfill","executor","TypeError","resolvers","rejectors","resolveCurrent","handler","rejectCurrent","_instance","callAsync","setImmediate","list","shouldAbsorb","execute","then","executeOnce","bind","retry","runs","run","onerror","onFulfilled","onRejection","handle","resolveNext","rejectNext","promise","resolve","reject","catch","finally","reason","total","count","consume","race","Promise","global","buildQueryString","toString","destructure","_12","$window","callbackCount","oncompletion","makeRequest","factory","url","promise0","background","complete","then0","hasHeader","headers","interpolate","assemble","m0","querystring","request","method","useBody","assumeJSON","FormData","stringify","xhr","XMLHttpRequest","aborted","_abort","abort","open","async","user","password","setRequestHeader","deserialize","withCredentials","timeout","responseType","config","success","status","response","responseText","extract","code","send","jsonp","callbackName","Math","round","random","script","callbackKey","setCompletionCallback","requestService","coreRenderer","$doc","nameSpace","svg","math","redraw0","setRedraw","getNameSpace","vnode3","xmlns","checkState","original","callHook","activeElement","createNodes","vnodes","end","hooks","createNode","initLifecycle","createText","createHTML","createFragment","createComponent","createTextNode","insertNode","possibleParents","caption","colgroup","col","match0","temp","createDocumentFragment","children3","attrs2","element","createElementNS","setAttrs","contenteditable","setContentEditable","setLateSelectAttrs","initComponent","sentinel","create","$$reentrantLock$$","updateNodes","old","removeNodes","oldStart","isOldKeyed","isKeyed","commonLength","o","v","getNextSibling","removeNode","updateNode","oldEnd","oe","ve","topSibling","toFragment","originalNextSibling","vnodesLength","oldIndices","li","pos","matched","lisIndices","getKeyMap","oldIndex","makeLisIndices","oldTag","shouldNotUpdate","updateLifecycle","updateText","updateHTML","updateFragment","updateElement","updateComponent","nodeValue","updateAttrs","u","il","j","count0","content","expected","called","onbeforeremove","continuation","onremove","setAttr","isLifecycleMethod","isFormAttribute","updateEvent","setAttributeNS","updateStyle","hasPropertyKey","selectedIndex","nsLastIndex","normalized","uppercaseRegex","toLowerCase","capital","normalizeKey","cssText","removeProperty","EventDict","handleEvent","handler0","currentTarget","redraw","source","oninit","oncreate","onupdate","onbeforeupdate","render","active","namespaceURI","throttle","pending","requestAnimationFrame","_15","throttleMock","renderService","callbacks","rendering","subscribe","unsubscribe","sync","redrawService","_20","redrawService0","root","component","run0","mount","parseQueryString","string","entries","data2","counters","entry","key2","decodeURIComponent","value0","levels","cursor","pop","j0","level","nextLevel","isNumber","isValue","coreRouter","supportsPushState","callAsync0","fragment0","data1","location","asyncId","debounceAsync","parsePath","path","queryData","hashData","queryIndex","hashIndex","pathEnd","queryEnd","queryParams","key1","hashParams","router","prefix","getPath","type2","setPath","match1","token","hash","onpopstate","replaceState","href","defineRoutes","routes","resolveRoute","params","pathname","k","route0","matcher","keys","onhashchange","_24","routeService","identity","v0","render1","attrs3","currentPath","lastUpdate","route","defaultRoute","run1","redraw3","bail","payload","update","routeResolver","comp","onmatch","resolved","set","data0","link","vnode5","onclick","ctrlKey","metaKey","shiftKey","which","args0","param","key0","_31","version","_m","_trust","_fragment","_mount","_route","_render","_redraw","_request","_jsonp","_parseQueryString","_buildQueryString","_version","_vnode","_PromisePolyfill","require","$","REDCOMPONENT","MODALCOMPONENT","JWPLAYERCOMPONENT"],"mappings":"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AAChC6I,IAAAA,QAAQ,CAACE,iBAAT,GAA6B,IAA7B;AACA;;AACD,WAASrB,eAAT,CAAyBxN,MAAzB,EAAiCyM,MAAjC,EAAyCS,KAAzC,EAAgD3S,EAAhD,EAAoD+H,WAApD,EAAiE;AAChEoM,IAAAA,aAAa,CAACjC,MAAD,EAASS,KAAT,CAAb;;AACA,QAAIT,MAAM,CAACrI,QAAP,IAAmB,IAAvB,EAA6B;AAC5B+I,MAAAA,UAAU,CAACnN,MAAD,EAASyM,MAAM,CAACrI,QAAhB,EAA0B8I,KAA1B,EAAiC3S,EAAjC,EAAqC+H,WAArC,CAAV;AACAmK,MAAAA,MAAM,CAACzI,GAAP,GAAayI,MAAM,CAACrI,QAAP,CAAgBJ,GAA7B;AACAyI,MAAAA,MAAM,CAACxI,OAAP,GAAiBwI,MAAM,CAACzI,GAAP,IAAc,IAAd,GAAqByI,MAAM,CAACrI,QAAP,CAAgBH,OAArC,GAA+C,CAAhE;AACA,KAJD,MAKK;AACJwI,MAAAA,MAAM,CAACxI,OAAP,GAAiB,CAAjB;AACA;AACD,GA3JmC,CA4JpC;;AACA;;;;;;;;;;;;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,WAAS6K,WAAT,CAAqB9O,MAArB,EAA6B+O,GAA7B,EAAkC/B,MAAlC,EAA0CE,KAA1C,EAAiD5K,WAAjD,EAA8D/H,EAA9D,EAAkE;AACjE,QAAIwU,GAAG,KAAK/B,MAAR,IAAkB+B,GAAG,IAAI,IAAP,IAAe/B,MAAM,IAAI,IAA/C,EAAqD,OAArD,KACK,IAAI+B,GAAG,IAAI,IAAP,IAAeA,GAAG,CAAClkB,MAAJ,KAAe,CAAlC,EAAqCkiB,WAAW,CAAC/M,MAAD,EAASgN,MAAT,EAAiB,CAAjB,EAAoBA,MAAM,CAACniB,MAA3B,EAAmCqiB,KAAnC,EAA0C5K,WAA1C,EAAuD/H,EAAvD,CAAX,CAArC,KACA,IAAIyS,MAAM,IAAI,IAAV,IAAkBA,MAAM,CAACniB,MAAP,KAAkB,CAAxC,EAA2CmkB,WAAW,CAACD,GAAD,EAAM,CAAN,EAASA,GAAG,CAAClkB,MAAb,CAAX,CAA3C,KACA;AACJ,UAAI6Z,KAAK,GAAG,CAAZ;AAAA,UAAeuK,QAAQ,GAAG,CAA1B;AAAA,UAA6BC,UAAU,GAAG,IAA1C;AAAA,UAAgDC,OAAO,GAAG,IAA1D;;AACA,aAAOF,QAAQ,GAAGF,GAAG,CAAClkB,MAAtB,EAA8BokB,QAAQ,EAAtC,EAA0C;AACzC,YAAIF,GAAG,CAACE,QAAD,CAAH,IAAiB,IAArB,EAA2B;AAC1BC,UAAAA,UAAU,GAAGH,GAAG,CAACE,QAAD,CAAH,CAAchb,GAAd,IAAqB,IAAlC;AACA;AACA;AACD;;AACD,aAAOyQ,KAAK,GAAGsI,MAAM,CAACniB,MAAtB,EAA8B6Z,KAAK,EAAnC,EAAuC;AACtC,YAAIsI,MAAM,CAACtI,KAAD,CAAN,IAAiB,IAArB,EAA2B;AAC1ByK,UAAAA,OAAO,GAAGnC,MAAM,CAACtI,KAAD,CAAN,CAAczQ,GAAd,IAAqB,IAA/B;AACA;AACA;AACD;;AACD,UAAIkb,OAAO,KAAK,IAAZ,IAAoBD,UAAU,IAAI,IAAtC,EAA4C,OAdxC,CAc+C;;AACnD,UAAIA,UAAU,KAAKC,OAAnB,EAA4B;AAC3BH,QAAAA,WAAW,CAACD,GAAD,EAAME,QAAN,EAAgBF,GAAG,CAAClkB,MAApB,CAAX;AACAkiB,QAAAA,WAAW,CAAC/M,MAAD,EAASgN,MAAT,EAAiBtI,KAAjB,EAAwBsI,MAAM,CAACniB,MAA/B,EAAuCqiB,KAAvC,EAA8C5K,WAA9C,EAA2D/H,EAA3D,CAAX;AACA,OAHD,MAGO,IAAI,CAAC4U,OAAL,EAAc;AACpB;AACA,YAAIC,YAAY,GAAGL,GAAG,CAAClkB,MAAJ,GAAamiB,MAAM,CAACniB,MAApB,GAA6BkkB,GAAG,CAAClkB,MAAjC,GAA0CmiB,MAAM,CAACniB,MAApE,CAFoB,CAGpB;AACA;AACA;;AACA6Z,QAAAA,KAAK,GAAGA,KAAK,GAAGuK,QAAR,GAAmBvK,KAAnB,GAA2BuK,QAAnC;;AACA,eAAOvK,KAAK,GAAG0K,YAAf,EAA6B1K,KAAK,EAAlC,EAAsC;AACrC2K,UAAAA,CAAC,GAAGN,GAAG,CAACrK,KAAD,CAAP;AACA4K,UAAAA,CAAC,GAAGtC,MAAM,CAACtI,KAAD,CAAV;AACA,cAAI2K,CAAC,KAAKC,CAAN,IAAWD,CAAC,IAAI,IAAL,IAAaC,CAAC,IAAI,IAAjC,EAAuC,SAAvC,KACK,IAAID,CAAC,IAAI,IAAT,EAAelC,UAAU,CAACnN,MAAD,EAASsP,CAAT,EAAYpC,KAAZ,EAAmB3S,EAAnB,EAAuBgV,cAAc,CAACR,GAAD,EAAMrK,KAAK,GAAG,CAAd,EAAiBpC,WAAjB,CAArC,CAAV,CAAf,KACA,IAAIgN,CAAC,IAAI,IAAT,EAAeE,UAAU,CAACH,CAAD,CAAV,CAAf,KACAI,UAAU,CAACzP,MAAD,EAASqP,CAAT,EAAYC,CAAZ,EAAepC,KAAf,EAAsBqC,cAAc,CAACR,GAAD,EAAMrK,KAAK,GAAG,CAAd,EAAiBpC,WAAjB,CAApC,EAAmE/H,EAAnE,CAAV;AACL;;AACD,YAAIwU,GAAG,CAAClkB,MAAJ,GAAaukB,YAAjB,EAA+BJ,WAAW,CAACD,GAAD,EAAMrK,KAAN,EAAaqK,GAAG,CAAClkB,MAAjB,CAAX;AAC/B,YAAImiB,MAAM,CAACniB,MAAP,GAAgBukB,YAApB,EAAkCrC,WAAW,CAAC/M,MAAD,EAASgN,MAAT,EAAiBtI,KAAjB,EAAwBsI,MAAM,CAACniB,MAA/B,EAAuCqiB,KAAvC,EAA8C5K,WAA9C,EAA2D/H,EAA3D,CAAX;AAClC,OAjBM,MAiBA;AACN;AACA,YAAImV,MAAM,GAAGX,GAAG,CAAClkB,MAAJ,GAAa,CAA1B;AAAA,YAA6BoiB,GAAG,GAAGD,MAAM,CAACniB,MAAP,GAAgB,CAAnD;AAAA,YAAsD2F,GAAtD;AAAA,YAA2D6e,CAA3D;AAAA,YAA8DC,CAA9D;AAAA,YAAiEK,EAAjE;AAAA,YAAqEC,EAArE;AAAA,YAAyEC,UAAzE,CAFM,CAGN;;AACA,eAAOH,MAAM,IAAIT,QAAV,IAAsBhC,GAAG,IAAIvI,KAApC,EAA2C;AAC1CiL,UAAAA,EAAE,GAAGZ,GAAG,CAACW,MAAD,CAAR;AACAE,UAAAA,EAAE,GAAG5C,MAAM,CAACC,GAAD,CAAX;AACA,cAAI0C,EAAE,IAAI,IAAV,EAAgBD,MAAM,GAAtB,KACK,IAAIE,EAAE,IAAI,IAAV,EAAgB3C,GAAG,GAAnB,KACA,IAAI0C,EAAE,CAAC1b,GAAH,KAAW2b,EAAE,CAAC3b,GAAlB,EAAuB;AAC3B,gBAAI0b,EAAE,KAAKC,EAAX,EAAeH,UAAU,CAACzP,MAAD,EAAS2P,EAAT,EAAaC,EAAb,EAAiB1C,KAAjB,EAAwB5K,WAAxB,EAAqC/H,EAArC,CAAV;AACf,gBAAIqV,EAAE,CAAC5L,GAAH,IAAU,IAAd,EAAoB1B,WAAW,GAAGsN,EAAE,CAAC5L,GAAjB;AACpB0L,YAAAA,MAAM,IAAIzC,GAAG,EAAb;AACA,WAJI,MAIE;AACN;AACA;AACD,SAhBK,CAiBN;;;AACA,eAAOyC,MAAM,IAAIT,QAAV,IAAsBhC,GAAG,IAAIvI,KAApC,EAA2C;AAC1C2K,UAAAA,CAAC,GAAGN,GAAG,CAACE,QAAD,CAAP;AACAK,UAAAA,CAAC,GAAGtC,MAAM,CAACtI,KAAD,CAAV;AACA,cAAI2K,CAAC,IAAI,IAAT,EAAeJ,QAAQ,GAAvB,KACK,IAAIK,CAAC,IAAI,IAAT,EAAe5K,KAAK,GAApB,KACA,IAAI2K,CAAC,CAACpb,GAAF,KAAUqb,CAAC,CAACrb,GAAhB,EAAqB;AACzBgb,YAAAA,QAAQ,IAAIvK,KAAK,EAAjB;AACA,gBAAI2K,CAAC,KAAKC,CAAV,EAAaG,UAAU,CAACzP,MAAD,EAASqP,CAAT,EAAYC,CAAZ,EAAepC,KAAf,EAAsBqC,cAAc,CAACR,GAAD,EAAME,QAAN,EAAgB3M,WAAhB,CAApC,EAAkE/H,EAAlE,CAAV;AACb,WAHI,MAGE;AACN;AACA;AACD,SA7BK,CA8BN;;;AACA,eAAOmV,MAAM,IAAIT,QAAV,IAAsBhC,GAAG,IAAIvI,KAApC,EAA2C;AAC1C,cAAI2K,CAAC,IAAI,IAAT,EAAeJ,QAAQ,GAAvB,KACK,IAAIK,CAAC,IAAI,IAAT,EAAe5K,KAAK,GAApB,KACA,IAAIiL,EAAE,IAAI,IAAV,EAAgBD,MAAM,GAAtB,KACA,IAAIE,EAAE,IAAI,IAAV,EAAgB3C,GAAG,GAAnB,KACA,IAAIvI,KAAK,KAAKuI,GAAd,EAAmB,MAAnB,KACA;AACJ,gBAAIoC,CAAC,CAACpb,GAAF,KAAU2b,EAAE,CAAC3b,GAAb,IAAoB0b,EAAE,CAAC1b,GAAH,KAAWqb,CAAC,CAACrb,GAArC,EAA0C;AAC1C4b,YAAAA,UAAU,GAAGN,cAAc,CAACR,GAAD,EAAME,QAAN,EAAgB3M,WAAhB,CAA3B;AACAoL,YAAAA,UAAU,CAAC1N,MAAD,EAAS8P,UAAU,CAACH,EAAD,CAAnB,EAAyBE,UAAzB,CAAV;AACA,gBAAIF,EAAE,KAAKL,CAAX,EAAcG,UAAU,CAACzP,MAAD,EAAS2P,EAAT,EAAaL,CAAb,EAAgBpC,KAAhB,EAAuB2C,UAAvB,EAAmCtV,EAAnC,CAAV;AACd,gBAAI,EAAEmK,KAAF,IAAW,EAAEuI,GAAjB,EAAsBS,UAAU,CAAC1N,MAAD,EAAS8P,UAAU,CAACT,CAAD,CAAnB,EAAwB/M,WAAxB,CAAV;AACtB,gBAAI+M,CAAC,KAAKO,EAAV,EAAcH,UAAU,CAACzP,MAAD,EAASqP,CAAT,EAAYO,EAAZ,EAAgB1C,KAAhB,EAAuB5K,WAAvB,EAAoC/H,EAApC,CAAV;AACd,gBAAIqV,EAAE,CAAC5L,GAAH,IAAU,IAAd,EAAoB1B,WAAW,GAAGsN,EAAE,CAAC5L,GAAjB;AACpBiL,YAAAA,QAAQ;AAAIS,YAAAA,MAAM;AAClB;AACDC,UAAAA,EAAE,GAAGZ,GAAG,CAACW,MAAD,CAAR;AACAE,UAAAA,EAAE,GAAG5C,MAAM,CAACC,GAAD,CAAX;AACAoC,UAAAA,CAAC,GAAGN,GAAG,CAACE,QAAD,CAAP;AACAK,UAAAA,CAAC,GAAGtC,MAAM,CAACtI,KAAD,CAAV;AACA,SAnDK,CAoDN;;;AACA,eAAOgL,MAAM,IAAIT,QAAV,IAAsBhC,GAAG,IAAIvI,KAApC,EAA2C;AAC1C,cAAIiL,EAAE,IAAI,IAAV,EAAgBD,MAAM,GAAtB,KACK,IAAIE,EAAE,IAAI,IAAV,EAAgB3C,GAAG,GAAnB,KACA,IAAI0C,EAAE,CAAC1b,GAAH,KAAW2b,EAAE,CAAC3b,GAAlB,EAAuB;AAC3B,gBAAI0b,EAAE,KAAKC,EAAX,EAAeH,UAAU,CAACzP,MAAD,EAAS2P,EAAT,EAAaC,EAAb,EAAiB1C,KAAjB,EAAwB5K,WAAxB,EAAqC/H,EAArC,CAAV;AACf,gBAAIqV,EAAE,CAAC5L,GAAH,IAAU,IAAd,EAAoB1B,WAAW,GAAGsN,EAAE,CAAC5L,GAAjB;AACpB0L,YAAAA,MAAM,IAAIzC,GAAG,EAAb;AACA,WAJI,MAIE;AACN;AACA;AACD0C,UAAAA,EAAE,GAAGZ,GAAG,CAACW,MAAD,CAAR;AACAE,UAAAA,EAAE,GAAG5C,MAAM,CAACC,GAAD,CAAX;AACA;;AACD,YAAIvI,KAAK,GAAGuI,GAAZ,EAAiB+B,WAAW,CAACD,GAAD,EAAME,QAAN,EAAgBS,MAAM,GAAG,CAAzB,CAAX,CAAjB,KACK,IAAIT,QAAQ,GAAGS,MAAf,EAAuB3C,WAAW,CAAC/M,MAAD,EAASgN,MAAT,EAAiBtI,KAAjB,EAAwBuI,GAAG,GAAG,CAA9B,EAAiCC,KAAjC,EAAwC5K,WAAxC,EAAqD/H,EAArD,CAAX,CAAvB,KACA;AACJ;AACA,cAAIwV,mBAAmB,GAAGzN,WAA1B;AAAA,cAAuC0N,YAAY,GAAG/C,GAAG,GAAGvI,KAAN,GAAc,CAApE;AAAA,cAAuEuL,UAAU,GAAG,IAAInf,KAAJ,CAAUkf,YAAV,CAApF;AAAA,cAA6GE,EAAE,GAAC,CAAhH;AAAA,cAAmHplB,CAAC,GAAC,CAArH;AAAA,cAAwHqlB,GAAG,GAAG,UAA9H;AAAA,cAA0IC,OAAO,GAAG,CAApJ;AAAA,cAAuJ5f,GAAvJ;AAAA,cAA4J6f,UAA5J;;AACA,eAAKvlB,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGklB,YAAhB,EAA8BllB,CAAC,EAA/B,EAAmCmlB,UAAU,CAACnlB,CAAD,CAAV,GAAgB,CAAC,CAAjB;;AACnC,eAAKA,CAAC,GAAGmiB,GAAT,EAAcniB,CAAC,IAAI4Z,KAAnB,EAA0B5Z,CAAC,EAA3B,EAA+B;AAC9B,gBAAI0F,GAAG,IAAI,IAAX,EAAiBA,GAAG,GAAG8f,SAAS,CAACvB,GAAD,EAAME,QAAN,EAAgBS,MAAM,GAAG,CAAzB,CAAf;AACjBE,YAAAA,EAAE,GAAG5C,MAAM,CAACliB,CAAD,CAAX;;AACA,gBAAI8kB,EAAE,IAAI,IAAV,EAAgB;AACf,kBAAIW,QAAQ,GAAG/f,GAAG,CAACof,EAAE,CAAC3b,GAAJ,CAAlB;;AACA,kBAAIsc,QAAQ,IAAI,IAAhB,EAAsB;AACrBJ,gBAAAA,GAAG,GAAII,QAAQ,GAAGJ,GAAZ,GAAmBI,QAAnB,GAA8B,CAAC,CAArC,CADqB,CACkB;;AACvCN,gBAAAA,UAAU,CAACnlB,CAAC,GAAC4Z,KAAH,CAAV,GAAsB6L,QAAtB;AACAZ,gBAAAA,EAAE,GAAGZ,GAAG,CAACwB,QAAD,CAAR;AACAxB,gBAAAA,GAAG,CAACwB,QAAD,CAAH,GAAgB,IAAhB;AACA,oBAAIZ,EAAE,KAAKC,EAAX,EAAeH,UAAU,CAACzP,MAAD,EAAS2P,EAAT,EAAaC,EAAb,EAAiB1C,KAAjB,EAAwB5K,WAAxB,EAAqC/H,EAArC,CAAV;AACf,oBAAIqV,EAAE,CAAC5L,GAAH,IAAU,IAAd,EAAoB1B,WAAW,GAAGsN,EAAE,CAAC5L,GAAjB;AACpBoM,gBAAAA,OAAO;AACP;AACD;AACD;;AACD9N,UAAAA,WAAW,GAAGyN,mBAAd;AACA,cAAIK,OAAO,KAAKV,MAAM,GAAGT,QAAT,GAAoB,CAApC,EAAuCD,WAAW,CAACD,GAAD,EAAME,QAAN,EAAgBS,MAAM,GAAG,CAAzB,CAAX;AACvC,cAAIU,OAAO,KAAK,CAAhB,EAAmBrD,WAAW,CAAC/M,MAAD,EAASgN,MAAT,EAAiBtI,KAAjB,EAAwBuI,GAAG,GAAG,CAA9B,EAAiCC,KAAjC,EAAwC5K,WAAxC,EAAqD/H,EAArD,CAAX,CAAnB,KACK;AACJ,gBAAI4V,GAAG,KAAK,CAAC,CAAb,EAAgB;AACf;AACA;AACAE,cAAAA,UAAU,GAAGG,cAAc,CAACP,UAAD,CAA3B;AACAC,cAAAA,EAAE,GAAGG,UAAU,CAACxlB,MAAX,GAAoB,CAAzB;;AACA,mBAAKC,CAAC,GAAGmiB,GAAT,EAAcniB,CAAC,IAAI4Z,KAAnB,EAA0B5Z,CAAC,EAA3B,EAA+B;AAC9BwkB,gBAAAA,CAAC,GAAGtC,MAAM,CAACliB,CAAD,CAAV;AACA,oBAAImlB,UAAU,CAACnlB,CAAC,GAAC4Z,KAAH,CAAV,KAAwB,CAAC,CAA7B,EAAgCyI,UAAU,CAACnN,MAAD,EAASsP,CAAT,EAAYpC,KAAZ,EAAmB3S,EAAnB,EAAuB+H,WAAvB,CAAV,CAAhC,KACK;AACJ,sBAAI+N,UAAU,CAACH,EAAD,CAAV,KAAmBplB,CAAC,GAAG4Z,KAA3B,EAAkCwL,EAAE,GAApC,KACKxC,UAAU,CAAC1N,MAAD,EAAS8P,UAAU,CAACR,CAAD,CAAnB,EAAwBhN,WAAxB,CAAV;AACL;AACD,oBAAIgN,CAAC,CAACtL,GAAF,IAAS,IAAb,EAAmB1B,WAAW,GAAG0K,MAAM,CAACliB,CAAD,CAAN,CAAUkZ,GAAxB;AACnB;AACD,aAdD,MAcO;AACN,mBAAKlZ,CAAC,GAAGmiB,GAAT,EAAcniB,CAAC,IAAI4Z,KAAnB,EAA0B5Z,CAAC,EAA3B,EAA+B;AAC9BwkB,gBAAAA,CAAC,GAAGtC,MAAM,CAACliB,CAAD,CAAV;AACA,oBAAImlB,UAAU,CAACnlB,CAAC,GAAC4Z,KAAH,CAAV,KAAwB,CAAC,CAA7B,EAAgCyI,UAAU,CAACnN,MAAD,EAASsP,CAAT,EAAYpC,KAAZ,EAAmB3S,EAAnB,EAAuB+H,WAAvB,CAAV;AAChC,oBAAIgN,CAAC,CAACtL,GAAF,IAAS,IAAb,EAAmB1B,WAAW,GAAG0K,MAAM,CAACliB,CAAD,CAAN,CAAUkZ,GAAxB;AACnB;AACD;AACD;AACD;AACD;AACD;AACD;;AACD,WAASyL,UAAT,CAAoBzP,MAApB,EAA4B+O,GAA5B,EAAiCtC,MAAjC,EAAyCS,KAAzC,EAAgD5K,WAAhD,EAA6D/H,EAA7D,EAAiE;AAChE,QAAIkW,MAAM,GAAG1B,GAAG,CAAClL,GAAjB;AAAA,QAAsBA,GAAG,GAAG4I,MAAM,CAAC5I,GAAnC;;AACA,QAAI4M,MAAM,KAAK5M,GAAf,EAAoB;AACnB4I,MAAAA,MAAM,CAACvI,KAAP,GAAe6K,GAAG,CAAC7K,KAAnB;AACAuI,MAAAA,MAAM,CAACtI,MAAP,GAAgB4K,GAAG,CAAC5K,MAApB;AACA,UAAIuM,eAAe,CAACjE,MAAD,EAASsC,GAAT,CAAnB,EAAkC;;AAClC,UAAI,OAAO0B,MAAP,KAAkB,QAAtB,EAAgC;AAC/B,YAAIhE,MAAM,CAAC7W,KAAP,IAAgB,IAApB,EAA0B;AACzB+a,UAAAA,eAAe,CAAClE,MAAM,CAAC7W,KAAR,EAAe6W,MAAf,EAAuBS,KAAvB,CAAf;AACA;;AACD,gBAAQuD,MAAR;AACC,eAAK,GAAL;AAAUG,YAAAA,UAAU,CAAC7B,GAAD,EAAMtC,MAAN,CAAV;AAAyB;;AACnC,eAAK,GAAL;AAAUoE,YAAAA,UAAU,CAAC7Q,MAAD,EAAS+O,GAAT,EAActC,MAAd,EAAsBlS,EAAtB,EAA0B+H,WAA1B,CAAV;AAAkD;;AAC5D,eAAK,GAAL;AAAUwO,YAAAA,cAAc,CAAC9Q,MAAD,EAAS+O,GAAT,EAActC,MAAd,EAAsBS,KAAtB,EAA6B5K,WAA7B,EAA0C/H,EAA1C,CAAd;AAA6D;;AACvE;AAASwW,YAAAA,aAAa,CAAChC,GAAD,EAAMtC,MAAN,EAAcS,KAAd,EAAqB3S,EAArB,CAAb;AAJV;AAMA,OAVD,MAWKyW,eAAe,CAAChR,MAAD,EAAS+O,GAAT,EAActC,MAAd,EAAsBS,KAAtB,EAA6B5K,WAA7B,EAA0C/H,EAA1C,CAAf;AACL,KAhBD,MAiBK;AACJiV,MAAAA,UAAU,CAACT,GAAD,CAAV;AACA5B,MAAAA,UAAU,CAACnN,MAAD,EAASyM,MAAT,EAAiBS,KAAjB,EAAwB3S,EAAxB,EAA4B+H,WAA5B,CAAV;AACA;AACD;;AACD,WAASsO,UAAT,CAAoB7B,GAApB,EAAyBtC,MAAzB,EAAiC;AAChC,QAAIsC,GAAG,CAAC5O,QAAJ,CAAasI,QAAb,OAA4BgE,MAAM,CAACtM,QAAP,CAAgBsI,QAAhB,EAAhC,EAA4D;AAC3DsG,MAAAA,GAAG,CAAC/K,GAAJ,CAAQiN,SAAR,GAAoBxE,MAAM,CAACtM,QAA3B;AACA;;AACDsM,IAAAA,MAAM,CAACzI,GAAP,GAAa+K,GAAG,CAAC/K,GAAjB;AACA;;AACD,WAAS6M,UAAT,CAAoB7Q,MAApB,EAA4B+O,GAA5B,EAAiCtC,MAAjC,EAAyClS,EAAzC,EAA6C+H,WAA7C,EAA0D;AACzD,QAAIyM,GAAG,CAAC5O,QAAJ,KAAiBsM,MAAM,CAACtM,QAA5B,EAAsC;AACrC2P,MAAAA,UAAU,CAACf,GAAD,CAAV;AACAzB,MAAAA,UAAU,CAACtN,MAAD,EAASyM,MAAT,EAAiBlS,EAAjB,EAAqB+H,WAArB,CAAV;AACA,KAHD,MAIKmK,MAAM,CAACzI,GAAP,GAAa+K,GAAG,CAAC/K,GAAjB,EAAsByI,MAAM,CAACxI,OAAP,GAAiB8K,GAAG,CAAC9K,OAA3C;AACL;;AACD,WAAS6M,cAAT,CAAwB9Q,MAAxB,EAAgC+O,GAAhC,EAAqCtC,MAArC,EAA6CS,KAA7C,EAAoD5K,WAApD,EAAiE/H,EAAjE,EAAqE;AACpEuU,IAAAA,WAAW,CAAC9O,MAAD,EAAS+O,GAAG,CAAC5O,QAAb,EAAuBsM,MAAM,CAACtM,QAA9B,EAAwC+M,KAAxC,EAA+C5K,WAA/C,EAA4D/H,EAA5D,CAAX;AACA,QAAI0J,OAAO,GAAG,CAAd;AAAA,QAAiBiK,SAAS,GAAGzB,MAAM,CAACtM,QAApC;AACAsM,IAAAA,MAAM,CAACzI,GAAP,GAAa,IAAb;;AACA,QAAIkK,SAAS,IAAI,IAAjB,EAAuB;AACtB,WAAK,IAAIpjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGojB,SAAS,CAACrjB,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;AAC1C,YAAI8W,KAAK,GAAGsM,SAAS,CAACpjB,CAAD,CAArB;;AACA,YAAI8W,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACoC,GAAN,IAAa,IAAlC,EAAwC;AACvC,cAAIyI,MAAM,CAACzI,GAAP,IAAc,IAAlB,EAAwByI,MAAM,CAACzI,GAAP,GAAapC,KAAK,CAACoC,GAAnB;AACxBC,UAAAA,OAAO,IAAIrC,KAAK,CAACqC,OAAN,IAAiB,CAA5B;AACA;AACD;;AACD,UAAIA,OAAO,KAAK,CAAhB,EAAmBwI,MAAM,CAACxI,OAAP,GAAiBA,OAAjB;AACnB;AACD;;AACD,WAAS8M,aAAT,CAAuBhC,GAAvB,EAA4BtC,MAA5B,EAAoCS,KAApC,EAA2C3S,EAA3C,EAA+C;AAC9C,QAAI6T,OAAO,GAAG3B,MAAM,CAACzI,GAAP,GAAa+K,GAAG,CAAC/K,GAA/B;AACAzJ,IAAAA,EAAE,GAAGiS,YAAY,CAACC,MAAD,CAAZ,IAAwBlS,EAA7B;;AACA,QAAIkS,MAAM,CAAC5I,GAAP,KAAe,UAAnB,EAA+B;AAC9B,UAAI4I,MAAM,CAAC7W,KAAP,IAAgB,IAApB,EAA0B6W,MAAM,CAAC7W,KAAP,GAAe,EAAf;;AAC1B,UAAI6W,MAAM,CAAC5M,IAAP,IAAe,IAAnB,EAAyB;AACxB4M,QAAAA,MAAM,CAAC7W,KAAP,CAAad,KAAb,GAAqB2X,MAAM,CAAC5M,IAA5B,CADwB,CACS;;AACjC4M,QAAAA,MAAM,CAAC5M,IAAP,GAAcnN,SAAd;AACA;AACD;;AACDwe,IAAAA,WAAW,CAACzE,MAAD,EAASsC,GAAG,CAACnZ,KAAb,EAAoB6W,MAAM,CAAC7W,KAA3B,EAAkC2E,EAAlC,CAAX;;AACA,QAAIkS,MAAM,CAAC7W,KAAP,IAAgB,IAAhB,IAAwB6W,MAAM,CAAC7W,KAAP,CAAa2Y,eAAb,IAAgC,IAA5D,EAAkE;AACjEC,MAAAA,kBAAkB,CAAC/B,MAAD,CAAlB;AACA,KAFD,MAGK,IAAIsC,GAAG,CAAClP,IAAJ,IAAY,IAAZ,IAAoB4M,MAAM,CAAC5M,IAAP,IAAe,IAAnC,IAA2C4M,MAAM,CAAC5M,IAAP,KAAgB,EAA/D,EAAmE;AACvE,UAAIkP,GAAG,CAAClP,IAAJ,CAAS4I,QAAT,OAAwBgE,MAAM,CAAC5M,IAAP,CAAY4I,QAAZ,EAA5B,EAAoDsG,GAAG,CAAC/K,GAAJ,CAAQpE,UAAR,CAAmBqR,SAAnB,GAA+BxE,MAAM,CAAC5M,IAAtC;AACpD,KAFI,MAGA;AACJ,UAAIkP,GAAG,CAAClP,IAAJ,IAAY,IAAhB,EAAsBkP,GAAG,CAAC5O,QAAJ,GAAe,CAACyD,KAAK,CAAC,GAAD,EAAMlR,SAAN,EAAiBA,SAAjB,EAA4Bqc,GAAG,CAAClP,IAAhC,EAAsCnN,SAAtC,EAAiDqc,GAAG,CAAC/K,GAAJ,CAAQpE,UAAzD,CAAN,CAAf;AACtB,UAAI6M,MAAM,CAAC5M,IAAP,IAAe,IAAnB,EAAyB4M,MAAM,CAACtM,QAAP,GAAkB,CAACyD,KAAK,CAAC,GAAD,EAAMlR,SAAN,EAAiBA,SAAjB,EAA4B+Z,MAAM,CAAC5M,IAAnC,EAAyCnN,SAAzC,EAAoDA,SAApD,CAAN,CAAlB;AACzBoc,MAAAA,WAAW,CAACV,OAAD,EAAUW,GAAG,CAAC5O,QAAd,EAAwBsM,MAAM,CAACtM,QAA/B,EAAyC+M,KAAzC,EAAgD,IAAhD,EAAsD3S,EAAtD,CAAX;AACA;AACD;;AACD,WAASyW,eAAT,CAAyBhR,MAAzB,EAAiC+O,GAAjC,EAAsCtC,MAAtC,EAA8CS,KAA9C,EAAqD5K,WAArD,EAAkE/H,EAAlE,EAAsE;AACrEkS,IAAAA,MAAM,CAACrI,QAAP,GAAkBR,KAAK,CAACS,SAAN,CAAgBwI,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAACvI,KAAP,CAAa2B,IAA3B,EAAiC4G,MAAjC,CAAhB,CAAlB;AACA,QAAIA,MAAM,CAACrI,QAAP,KAAoBqI,MAAxB,EAAgC,MAAM3G,KAAK,CAAC,wDAAD,CAAX;AAChC6K,IAAAA,eAAe,CAAClE,MAAM,CAACvI,KAAR,EAAeuI,MAAf,EAAuBS,KAAvB,CAAf;AACA,QAAIT,MAAM,CAAC7W,KAAP,IAAgB,IAApB,EAA0B+a,eAAe,CAAClE,MAAM,CAAC7W,KAAR,EAAe6W,MAAf,EAAuBS,KAAvB,CAAf;;AAC1B,QAAIT,MAAM,CAACrI,QAAP,IAAmB,IAAvB,EAA6B;AAC5B,UAAI2K,GAAG,CAAC3K,QAAJ,IAAgB,IAApB,EAA0B+I,UAAU,CAACnN,MAAD,EAASyM,MAAM,CAACrI,QAAhB,EAA0B8I,KAA1B,EAAiC3S,EAAjC,EAAqC+H,WAArC,CAAV,CAA1B,KACKmN,UAAU,CAACzP,MAAD,EAAS+O,GAAG,CAAC3K,QAAb,EAAuBqI,MAAM,CAACrI,QAA9B,EAAwC8I,KAAxC,EAA+C5K,WAA/C,EAA4D/H,EAA5D,CAAV;AACLkS,MAAAA,MAAM,CAACzI,GAAP,GAAayI,MAAM,CAACrI,QAAP,CAAgBJ,GAA7B;AACAyI,MAAAA,MAAM,CAACxI,OAAP,GAAiBwI,MAAM,CAACrI,QAAP,CAAgBH,OAAjC;AACA,KALD,MAMK,IAAI8K,GAAG,CAAC3K,QAAJ,IAAgB,IAApB,EAA0B;AAC9BoL,MAAAA,UAAU,CAACT,GAAG,CAAC3K,QAAL,CAAV;AACAqI,MAAAA,MAAM,CAACzI,GAAP,GAAatR,SAAb;AACA+Z,MAAAA,MAAM,CAACxI,OAAP,GAAiB,CAAjB;AACA,KAJI,MAKA;AACJwI,MAAAA,MAAM,CAACzI,GAAP,GAAa+K,GAAG,CAAC/K,GAAjB;AACAyI,MAAAA,MAAM,CAACxI,OAAP,GAAiB8K,GAAG,CAAC9K,OAArB;AACA;AACD;;AACD,WAASqM,SAAT,CAAmBtD,MAAnB,EAA2BtI,KAA3B,EAAkCuI,GAAlC,EAAuC;AACtC,QAAIzc,GAAG,GAAGgM,MAAM,CAACoS,MAAP,CAAc,IAAd,CAAV;;AACA,WAAOlK,KAAK,GAAGuI,GAAf,EAAoBvI,KAAK,EAAzB,EAA6B;AAC5B,UAAI+H,MAAM,GAAGO,MAAM,CAACtI,KAAD,CAAnB;;AACA,UAAI+H,MAAM,IAAI,IAAd,EAAoB;AACnB,YAAIxY,GAAG,GAAGwY,MAAM,CAACxY,GAAjB;AACA,YAAIA,GAAG,IAAI,IAAX,EAAiBzD,GAAG,CAACyD,GAAD,CAAH,GAAWyQ,KAAX;AACjB;AACD;;AACD,WAAOlU,GAAP;AACA,GAtgBmC,CAugBpC;AACA;AACA;AACA;AACA;;;AACA,WAASggB,cAAT,CAAwB3a,CAAxB,EAA2B;AAC1B,QAAI+B,CAAC,GAAG/B,CAAC,CAAClF,KAAF,EAAR;AACA,QAAIoQ,MAAM,GAAG,EAAb;AACAA,IAAAA,MAAM,CAACtQ,IAAP,CAAY,CAAZ;AACA,QAAI0gB,CAAJ;AACA,QAAI7B,CAAJ;;AACA,SAAK,IAAIxkB,CAAC,GAAG,CAAR,EAAWsmB,EAAE,GAAGvb,CAAC,CAAChL,MAAvB,EAA+BC,CAAC,GAAGsmB,EAAnC,EAAuC,EAAEtmB,CAAzC,EAA4C;AAC3C,UAAI+K,CAAC,CAAC/K,CAAD,CAAD,KAAS,CAAC,CAAd,EAAiB;AAChB;AACA;;AACD,UAAIumB,CAAC,GAAGtQ,MAAM,CAACA,MAAM,CAAClW,MAAP,GAAgB,CAAjB,CAAd;;AACA,UAAIgL,CAAC,CAACwb,CAAD,CAAD,GAAOxb,CAAC,CAAC/K,CAAD,CAAZ,EAAiB;AAChB8M,QAAAA,CAAC,CAAC9M,CAAD,CAAD,GAAOumB,CAAP;AACAtQ,QAAAA,MAAM,CAACtQ,IAAP,CAAY3F,CAAZ;AACA;AACA;;AACDqmB,MAAAA,CAAC,GAAG,CAAJ;AACA7B,MAAAA,CAAC,GAAGvO,MAAM,CAAClW,MAAP,GAAgB,CAApB;;AACA,aAAOsmB,CAAC,GAAG7B,CAAX,EAAc;AACb,YAAInZ,CAAC,GAAI,CAACgb,CAAC,GAAG7B,CAAL,IAAU,CAAX,GAAgB,CAAxB,CADa,CACa;;AAC1B,YAAIzZ,CAAC,CAACkL,MAAM,CAAC5K,CAAD,CAAP,CAAD,GAAeN,CAAC,CAAC/K,CAAD,CAApB,EAAyB;AACxBqmB,UAAAA,CAAC,GAAGhb,CAAC,GAAG,CAAR;AACA,SAFD,MAGK;AACJmZ,UAAAA,CAAC,GAAGnZ,CAAJ;AACA;AACD;;AACD,UAAIN,CAAC,CAAC/K,CAAD,CAAD,GAAO+K,CAAC,CAACkL,MAAM,CAACoQ,CAAD,CAAP,CAAZ,EAAyB;AACxB,YAAIA,CAAC,GAAG,CAAR,EAAW;AACVvZ,UAAAA,CAAC,CAAC9M,CAAD,CAAD,GAAOiW,MAAM,CAACoQ,CAAC,GAAG,CAAL,CAAb;AACA;;AACDpQ,QAAAA,MAAM,CAACoQ,CAAD,CAAN,GAAYrmB,CAAZ;AACA;AACD;;AACDqmB,IAAAA,CAAC,GAAGpQ,MAAM,CAAClW,MAAX;AACAykB,IAAAA,CAAC,GAAGvO,MAAM,CAACoQ,CAAC,GAAG,CAAL,CAAV;;AACA,WAAOA,CAAC,KAAK,CAAb,EAAgB;AACfpQ,MAAAA,MAAM,CAACoQ,CAAD,CAAN,GAAY7B,CAAZ;AACAA,MAAAA,CAAC,GAAG1X,CAAC,CAAC0X,CAAD,CAAL;AACA;;AACD,WAAOvO,MAAP;AACA;;AACD,WAAS+O,UAAT,CAAoBrD,MAApB,EAA4B;AAC3B,QAAI6E,MAAM,GAAG7E,MAAM,CAACxI,OAApB;;AACA,QAAIqN,MAAM,IAAI,IAAV,IAAkB7E,MAAM,CAACzI,GAAP,IAAc,IAApC,EAA0C;AACzC,UAAIxE,QAAQ,GAAG0M,IAAI,CAAC+B,sBAAL,EAAf;;AACA,UAAIqD,MAAM,GAAG,CAAb,EAAgB;AACf,YAAItN,GAAG,GAAGyI,MAAM,CAACzI,GAAjB;;AACA,eAAO,EAAEsN,MAAT,EAAiB9R,QAAQ,CAACzR,WAAT,CAAqBiW,GAAG,CAAC1B,WAAzB;;AACjB9C,QAAAA,QAAQ,CAACuC,YAAT,CAAsBiC,GAAtB,EAA2BxE,QAAQ,CAACI,UAApC;AACA;;AACD,aAAOJ,QAAP;AACA,KARD,MASK,OAAOiN,MAAM,CAACzI,GAAd;AACL;;AACD,WAASuL,cAAT,CAAwBvC,MAAxB,EAAgCliB,CAAhC,EAAmCwX,WAAnC,EAAgD;AAC/C,WAAOxX,CAAC,GAAGkiB,MAAM,CAACniB,MAAlB,EAA0BC,CAAC,EAA3B,EAA+B;AAC9B,UAAIkiB,MAAM,CAACliB,CAAD,CAAN,IAAa,IAAb,IAAqBkiB,MAAM,CAACliB,CAAD,CAAN,CAAUkZ,GAAV,IAAiB,IAA1C,EAAgD,OAAOgJ,MAAM,CAACliB,CAAD,CAAN,CAAUkZ,GAAjB;AAChD;;AACD,WAAO1B,WAAP;AACA;;AACD,WAASoL,UAAT,CAAoB1N,MAApB,EAA4BgE,GAA5B,EAAiC1B,WAAjC,EAA8C;AAC7C,QAAIA,WAAW,IAAI,IAAnB,EAAyBtC,MAAM,CAAC+B,YAAP,CAAoBiC,GAApB,EAAyB1B,WAAzB,EAAzB,KACKtC,MAAM,CAACjS,WAAP,CAAmBiW,GAAnB;AACL;;AACD,WAASwK,kBAAT,CAA4B/B,MAA5B,EAAoC;AACnC,QAAIyB,SAAS,GAAGzB,MAAM,CAACtM,QAAvB;;AACA,QAAI+N,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACrjB,MAAV,KAAqB,CAA1C,IAA+CqjB,SAAS,CAAC,CAAD,CAAT,CAAarK,GAAb,KAAqB,GAAxE,EAA6E;AAC5E,UAAI0N,OAAO,GAAGrD,SAAS,CAAC,CAAD,CAAT,CAAa/N,QAA3B;AACA,UAAIsM,MAAM,CAACzI,GAAP,CAAW9V,SAAX,KAAyBqjB,OAA7B,EAAsC9E,MAAM,CAACzI,GAAP,CAAW9V,SAAX,GAAuBqjB,OAAvB;AACtC,KAHD,MAIK,IAAI9E,MAAM,CAAC5M,IAAP,IAAe,IAAf,IAAuBqO,SAAS,IAAI,IAAb,IAAqBA,SAAS,CAACrjB,MAAV,KAAqB,CAArE,EAAwE,MAAM,IAAIib,KAAJ,CAAU,iDAAV,CAAN;AAC7E,GAplBmC,CAqlBpC;;;AACA,WAASkJ,WAAT,CAAqBhC,MAArB,EAA6BtI,KAA7B,EAAoCuI,GAApC,EAAyC;AACxC,SAAK,IAAIniB,CAAC,GAAG4Z,KAAb,EAAoB5Z,CAAC,GAAGmiB,GAAxB,EAA6BniB,CAAC,EAA9B,EAAkC;AACjC,UAAI2hB,MAAM,GAAGO,MAAM,CAACliB,CAAD,CAAnB;AACA,UAAI2hB,MAAM,IAAI,IAAd,EAAoB+C,UAAU,CAAC/C,MAAD,CAAV;AACpB;AACD;;AACD,WAAS+C,UAAT,CAAoB/C,MAApB,EAA4B;AAC3B,QAAI+E,QAAQ,GAAG,CAAf;AAAA,QAAkBC,MAAM,GAAG,CAA3B;AACA,QAAI7E,QAAQ,GAAGH,MAAM,CAACvI,KAAtB;;AACA,QAAI,OAAOuI,MAAM,CAAC5I,GAAd,KAAsB,QAAtB,IAAkC,OAAO4I,MAAM,CAACvI,KAAP,CAAawN,cAApB,KAAuC,UAA7E,EAAyF;AACxF,UAAI3Q,MAAM,GAAG8L,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAACvI,KAAP,CAAawN,cAA3B,EAA2CjF,MAA3C,CAAb;;AACA,UAAI1L,MAAM,IAAI,IAAV,IAAkB,OAAOA,MAAM,CAACiG,IAAd,KAAuB,UAA7C,EAAyD;AACxDwK,QAAAA,QAAQ;AACRzQ,QAAAA,MAAM,CAACiG,IAAP,CAAY2K,YAAZ,EAA0BA,YAA1B;AACA;AACD;;AACD,QAAIlF,MAAM,CAAC7W,KAAP,IAAgB,OAAO6W,MAAM,CAAC7W,KAAP,CAAa8b,cAApB,KAAuC,UAA3D,EAAuE;AACtE,UAAI3Q,MAAM,GAAG8L,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAAC7W,KAAP,CAAa8b,cAA3B,EAA2CjF,MAA3C,CAAb;;AACA,UAAI1L,MAAM,IAAI,IAAV,IAAkB,OAAOA,MAAM,CAACiG,IAAd,KAAuB,UAA7C,EAAyD;AACxDwK,QAAAA,QAAQ;AACRzQ,QAAAA,MAAM,CAACiG,IAAP,CAAY2K,YAAZ,EAA0BA,YAA1B;AACA;AACD;;AACDA,IAAAA,YAAY;;AACZ,aAASA,YAAT,GAAwB;AACvB,UAAI,EAAEF,MAAF,KAAaD,QAAjB,EAA2B;AAC1B7E,QAAAA,UAAU,CAACF,MAAD,EAASG,QAAT,CAAV;AACAgF,QAAAA,QAAQ,CAACnF,MAAD,CAAR;;AACA,YAAIA,MAAM,CAACzI,GAAX,EAAgB;AACf,cAAIhE,MAAM,GAAGyM,MAAM,CAACzI,GAAP,CAAW1H,UAAxB;AACA,cAAIgV,MAAM,GAAG7E,MAAM,CAACxI,OAAP,IAAkB,CAA/B;;AACA,iBAAO,EAAEqN,MAAT,EAAiBtR,MAAM,CAACzR,WAAP,CAAmBke,MAAM,CAACzI,GAAP,CAAW1B,WAA9B;;AACjBtC,UAAAA,MAAM,CAACzR,WAAP,CAAmBke,MAAM,CAACzI,GAA1B;AACA;AACD;AACD;AACD;;AACD,WAAS4N,QAAT,CAAkBnF,MAAlB,EAA0B;AACzB,QAAI,OAAOA,MAAM,CAAC5I,GAAd,KAAsB,QAAtB,IAAkC,OAAO4I,MAAM,CAACvI,KAAP,CAAa0N,QAApB,KAAiC,UAAvE,EAAmF/E,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAACvI,KAAP,CAAa0N,QAA3B,EAAqCnF,MAArC;AACnF,QAAIA,MAAM,CAAC7W,KAAP,IAAgB,OAAO6W,MAAM,CAAC7W,KAAP,CAAagc,QAApB,KAAiC,UAArD,EAAiE/E,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAAC7W,KAAP,CAAagc,QAA3B,EAAqCnF,MAArC;;AACjE,QAAI,OAAOA,MAAM,CAAC5I,GAAd,KAAsB,QAA1B,EAAoC;AACnC,UAAI4I,MAAM,CAACrI,QAAP,IAAmB,IAAvB,EAA6BwN,QAAQ,CAACnF,MAAM,CAACrI,QAAR,CAAR;AAC7B,KAFD,MAEO;AACN,UAAI8J,SAAS,GAAGzB,MAAM,CAACtM,QAAvB;;AACA,UAAIrP,KAAK,CAAC+D,OAAN,CAAcqZ,SAAd,CAAJ,EAA8B;AAC7B,aAAK,IAAIpjB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGojB,SAAS,CAACrjB,MAA9B,EAAsCC,CAAC,EAAvC,EAA2C;AAC1C,cAAI8W,KAAK,GAAGsM,SAAS,CAACpjB,CAAD,CAArB;AACA,cAAI8W,KAAK,IAAI,IAAb,EAAmBgQ,QAAQ,CAAChQ,KAAD,CAAR;AACnB;AACD;AACD;AACD,GAzoBmC,CA0oBpC;;;AACA,WAAS0M,QAAT,CAAkB7B,MAAlB,EAA0B0B,MAA1B,EAAkC5T,EAAlC,EAAsC;AACrC,SAAK,IAAItG,GAAT,IAAgBka,MAAhB,EAAwB;AACvB0D,MAAAA,OAAO,CAACpF,MAAD,EAASxY,GAAT,EAAc,IAAd,EAAoBka,MAAM,CAACla,GAAD,CAA1B,EAAiCsG,EAAjC,CAAP;AACA;AACD;;AACD,WAASsX,OAAT,CAAiBpF,MAAjB,EAAyBxY,GAAzB,EAA8B8a,GAA9B,EAAmCja,KAAnC,EAA0CyF,EAA1C,EAA8C;AAC7C,QAAItG,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,IAAzB,IAAiCa,KAAK,IAAI,IAA1C,IAAkDgd,iBAAiB,CAAC7d,GAAD,CAAnE,IAA6E8a,GAAG,KAAKja,KAAR,IAAiB,CAACid,eAAe,CAACtF,MAAD,EAASxY,GAAT,CAAlC,IAAoD,OAAOa,KAAP,KAAiB,QAArJ,EAA+J;AAC/J,QAAIb,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAkBA,GAAG,CAAC,CAAD,CAAH,KAAW,GAAjC,EAAsC,OAAO+d,WAAW,CAACvF,MAAD,EAASxY,GAAT,EAAca,KAAd,CAAlB;AACtC,QAAIb,GAAG,CAACtD,KAAJ,CAAU,CAAV,EAAa,CAAb,MAAoB,QAAxB,EAAkC8b,MAAM,CAACzI,GAAP,CAAWiO,cAAX,CAA0B,8BAA1B,EAA0Dhe,GAAG,CAACtD,KAAJ,CAAU,CAAV,CAA1D,EAAwEmE,KAAxE,EAAlC,KACK,IAAIb,GAAG,KAAK,OAAZ,EAAqBie,WAAW,CAACzF,MAAM,CAACzI,GAAR,EAAa+K,GAAb,EAAkBja,KAAlB,CAAX,CAArB,KACA,IAAIqd,cAAc,CAAC1F,MAAD,EAASxY,GAAT,EAAcsG,EAAd,CAAlB,EAAqC;AACzC,UAAItG,GAAG,KAAK,OAAZ,EAAqB;AACpB;;AACA;AACA;AACA,YAAI,CAACwY,MAAM,CAAC5I,GAAP,KAAe,OAAf,IAA0B4I,MAAM,CAAC5I,GAAP,KAAe,UAA1C,KAAyD4I,MAAM,CAACzI,GAAP,CAAWlP,KAAX,KAAqB,KAAKA,KAAnF,IAA4F2X,MAAM,CAACzI,GAAP,KAAe8I,aAAa,EAA5H,EAAgI,OAJ5G,CAKpB;;AACA,YAAIL,MAAM,CAAC5I,GAAP,KAAe,QAAf,IAA2BkL,GAAG,KAAK,IAAnC,IAA2CtC,MAAM,CAACzI,GAAP,CAAWlP,KAAX,KAAqB,KAAKA,KAAzE,EAAgF,OAN5D,CAOpB;;AACA,YAAI2X,MAAM,CAAC5I,GAAP,KAAe,QAAf,IAA2BkL,GAAG,KAAK,IAAnC,IAA2CtC,MAAM,CAACzI,GAAP,CAAWlP,KAAX,KAAqB,KAAKA,KAAzE,EAAgF;AAChF;AACA,OAXwC,CAYzC;;;AACA,UAAI2X,MAAM,CAAC5I,GAAP,KAAe,OAAf,IAA0B5P,GAAG,KAAK,MAAtC,EAA8CwY,MAAM,CAACzI,GAAP,CAAW3X,YAAX,CAAwB4H,GAAxB,EAA6Ba,KAA7B,EAA9C,KACK2X,MAAM,CAACzI,GAAP,CAAW/P,GAAX,IAAkBa,KAAlB;AACL,KAfI,MAeE;AACN,UAAI,OAAOA,KAAP,KAAiB,SAArB,EAAgC;AAC/B,YAAIA,KAAJ,EAAW2X,MAAM,CAACzI,GAAP,CAAW3X,YAAX,CAAwB4H,GAAxB,EAA6B,EAA7B,EAAX,KACKwY,MAAM,CAACzI,GAAP,CAAWlO,eAAX,CAA2B7B,GAA3B;AACL,OAHD,MAIKwY,MAAM,CAACzI,GAAP,CAAW3X,YAAX,CAAwB4H,GAAG,KAAK,WAAR,GAAsB,OAAtB,GAAgCA,GAAxD,EAA6Da,KAA7D;AACL;AACD;;AACD,WAASY,UAAT,CAAoB+W,MAApB,EAA4BxY,GAA5B,EAAiC8a,GAAjC,EAAsCxU,EAAtC,EAA0C;AACzC,QAAItG,GAAG,KAAK,KAAR,IAAiBA,GAAG,KAAK,IAAzB,IAAiC8a,GAAG,IAAI,IAAxC,IAAgD+C,iBAAiB,CAAC7d,GAAD,CAArE,EAA4E;AAC5E,QAAIA,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAkBA,GAAG,CAAC,CAAD,CAAH,KAAW,GAA7B,IAAoC,CAAC6d,iBAAiB,CAAC7d,GAAD,CAA1D,EAAiE+d,WAAW,CAACvF,MAAD,EAASxY,GAAT,EAAcvB,SAAd,CAAX,CAAjE,KACK,IAAIuB,GAAG,KAAK,OAAZ,EAAqBie,WAAW,CAACzF,MAAM,CAACzI,GAAR,EAAa+K,GAAb,EAAkB,IAAlB,CAAX,CAArB,KACA,IACJoD,cAAc,CAAC1F,MAAD,EAASxY,GAAT,EAAcsG,EAAd,CAAd,IACGtG,GAAG,KAAK,WADX,IAEG,EAAEA,GAAG,KAAK,OAAR,KACJwY,MAAM,CAAC5I,GAAP,KAAe,QAAf,IACG4I,MAAM,CAAC5I,GAAP,KAAe,QAAf,IAA2B4I,MAAM,CAACzI,GAAP,CAAWoO,aAAX,KAA6B,CAAC,CAAzD,IAA8D3F,MAAM,CAACzI,GAAP,KAAe8I,aAAa,EAFzF,CAAF,CAFH,IAMG,EAAEL,MAAM,CAAC5I,GAAP,KAAe,OAAf,IAA0B5P,GAAG,KAAK,MAApC,CAPC,EAQH;AACDwY,MAAAA,MAAM,CAACzI,GAAP,CAAW/P,GAAX,IAAkB,IAAlB;AACA,KAVI,MAUE;AACN,UAAIoe,WAAW,GAAGpe,GAAG,CAAC1D,OAAJ,CAAY,GAAZ,CAAlB;AACA,UAAI8hB,WAAW,KAAK,CAAC,CAArB,EAAwBpe,GAAG,GAAGA,GAAG,CAACtD,KAAJ,CAAU0hB,WAAW,GAAG,CAAxB,CAAN;AACxB,UAAItD,GAAG,KAAK,KAAZ,EAAmBtC,MAAM,CAACzI,GAAP,CAAWlO,eAAX,CAA2B7B,GAAG,KAAK,WAAR,GAAsB,OAAtB,GAAgCA,GAA3D;AACnB;AACD;;AACD,WAASwa,kBAAT,CAA4BhC,MAA5B,EAAoC0B,MAApC,EAA4C;AAC3C,QAAI,WAAWA,MAAf,EAAuB;AACtB,UAAGA,MAAM,CAACrZ,KAAP,KAAiB,IAApB,EAA0B;AACzB,YAAI2X,MAAM,CAACzI,GAAP,CAAWoO,aAAX,KAA6B,CAAC,CAAlC,EAAqC3F,MAAM,CAACzI,GAAP,CAAWlP,KAAX,GAAmB,IAAnB;AACrC,OAFD,MAEO;AACN,YAAIwd,UAAU,GAAG,KAAKnE,MAAM,CAACrZ,KAA7B,CADM,CAC6B;;AACnC,YAAI2X,MAAM,CAACzI,GAAP,CAAWlP,KAAX,KAAqBwd,UAArB,IAAmC7F,MAAM,CAACzI,GAAP,CAAWoO,aAAX,KAA6B,CAAC,CAArE,EAAwE;AACvE3F,UAAAA,MAAM,CAACzI,GAAP,CAAWlP,KAAX,GAAmBwd,UAAnB;AACA;AACD;AACD;;AACD,QAAI,mBAAmBnE,MAAvB,EAA+B0D,OAAO,CAACpF,MAAD,EAAS,eAAT,EAA0B,IAA1B,EAAgC0B,MAAM,CAACiE,aAAvC,EAAsD1f,SAAtD,CAAP;AAC/B;;AACD,WAASwe,WAAT,CAAqBzE,MAArB,EAA6BsC,GAA7B,EAAkCZ,MAAlC,EAA0C5T,EAA1C,EAA8C;AAC7C,QAAI4T,MAAM,IAAI,IAAd,EAAoB;AACnB,WAAK,IAAIla,GAAT,IAAgBka,MAAhB,EAAwB;AACvB0D,QAAAA,OAAO,CAACpF,MAAD,EAASxY,GAAT,EAAc8a,GAAG,IAAIA,GAAG,CAAC9a,GAAD,CAAxB,EAA+Bka,MAAM,CAACla,GAAD,CAArC,EAA4CsG,EAA5C,CAAP;AACA;AACD;;AACD,QAAI/F,GAAJ;;AACA,QAAIua,GAAG,IAAI,IAAX,EAAiB;AAChB,WAAK,IAAI9a,GAAT,IAAgB8a,GAAhB,EAAqB;AACpB,YAAK,CAACva,GAAG,GAAGua,GAAG,CAAC9a,GAAD,CAAV,KAAoB,IAArB,KAA+Bka,MAAM,IAAI,IAAV,IAAkBA,MAAM,CAACla,GAAD,CAAN,IAAe,IAAhE,CAAJ,EAA2E;AAC1EyB,UAAAA,UAAU,CAAC+W,MAAD,EAASxY,GAAT,EAAcO,GAAd,EAAmB+F,EAAnB,CAAV;AACA;AACD;AACD;AACD;;AACD,WAASwX,eAAT,CAAyBtF,MAAzB,EAAiC9W,IAAjC,EAAuC;AACtC,WAAOA,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,SAA7B,IAA0CA,IAAI,KAAK,eAAnD,IAAsEA,IAAI,KAAK,UAAT,IAAuB8W,MAAM,CAACzI,GAAP,KAAe8I,aAAa,EAAzH,IAA+HL,MAAM,CAAC5I,GAAP,KAAe,QAAf,IAA2B4I,MAAM,CAACzI,GAAP,CAAW1H,UAAX,KAA0B4P,IAAI,CAACY,aAAhM;AACA;;AACD,WAASgF,iBAAT,CAA2Bnc,IAA3B,EAAiC;AAChC,WAAOA,IAAI,KAAK,QAAT,IAAqBA,IAAI,KAAK,UAA9B,IAA4CA,IAAI,KAAK,UAArD,IAAmEA,IAAI,KAAK,UAA5E,IAA0FA,IAAI,KAAK,gBAAnG,IAAuHA,IAAI,KAAK,gBAAvI;AACA;;AACD,WAASwc,cAAT,CAAwB1F,MAAxB,EAAgCxY,GAAhC,EAAqCsG,EAArC,EAAyC;AACxC;AACA,WAAOA,EAAE,KAAK7H,SAAP,MACN;AACA+Z,IAAAA,MAAM,CAAC5I,GAAP,CAAWtT,OAAX,CAAmB,GAAnB,IAA0B,CAAC,CAA3B,IAAgCkc,MAAM,CAAC7W,KAAP,IAAgB,IAAhB,IAAwB6W,MAAM,CAAC7W,KAAP,CAAaX,EAArE,IACA;AACAhB,IAAAA,GAAG,KAAK,MAAR,IAAkBA,GAAG,KAAK,MAA1B,IAAoCA,GAAG,KAAK,MAA5C,IAAsDA,GAAG,KAAK,OAA9D,IAAyEA,GAAG,KAAK,QAJ3E,CAImF;AACzF;AALM,SAMFA,GAAG,IAAIwY,MAAM,CAACzI,GANnB;AAOA,GA3uBmC,CA4uBpC;;;AACA,MAAIuO,cAAc,GAAG,QAArB;;AACA,WAASC,WAAT,CAAqBC,OAArB,EAA8B;AAAE,WAAO,MAAMA,OAAO,CAACD,WAAR,EAAb;AAAoC;;AACpE,WAASE,YAAT,CAAsBze,GAAtB,EAA2B;AAC1B,WAAOA,GAAG,CAAC,CAAD,CAAH,KAAW,GAAX,IAAkBA,GAAG,CAAC,CAAD,CAAH,KAAW,GAA7B,GAAmCA,GAAnC,GACNA,GAAG,KAAK,UAAR,GAAqB,OAArB,GACCA,GAAG,CAACR,OAAJ,CAAY8e,cAAZ,EAA4BC,WAA5B,CAFF;AAGA;;AACD,WAASN,WAAT,CAAqB9D,OAArB,EAA8BW,GAA9B,EAAmCpjB,KAAnC,EAA0C;AACzC,QAAIojB,GAAG,KAAKpjB,KAAZ,EAAmB,CAClB;AACA,KAFD,MAEO,IAAIA,KAAK,IAAI,IAAb,EAAmB;AACzB;AACAyiB,MAAAA,OAAO,CAACziB,KAAR,CAAcgnB,OAAd,GAAwB,EAAxB;AACA,KAHM,MAGA,IAAI,OAAOhnB,KAAP,KAAiB,QAArB,EAA+B;AACrC;AACAyiB,MAAAA,OAAO,CAACziB,KAAR,CAAcgnB,OAAd,GAAwBhnB,KAAxB;AACA,KAHM,MAGA,IAAIojB,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAAlC,EAA4C;AAClD;AACAX,MAAAA,OAAO,CAACziB,KAAR,CAAcgnB,OAAd,GAAwB,EAAxB,CAFkD,CAGlD;;AACA,WAAK,IAAI1e,GAAT,IAAgBtI,KAAhB,EAAuB;AACtB,YAAImJ,KAAK,GAAGnJ,KAAK,CAACsI,GAAD,CAAjB;AACA,YAAIa,KAAK,IAAI,IAAb,EAAmBsZ,OAAO,CAACziB,KAAR,CAAciN,WAAd,CAA0B8Z,YAAY,CAACze,GAAD,CAAtC,EAA6C0R,MAAM,CAAC7Q,KAAD,CAAnD;AACnB;AACD,KARM,MAQA;AACN;AACA;AACA,WAAK,IAAIb,GAAT,IAAgBtI,KAAhB,EAAuB;AACtB,YAAImJ,KAAK,GAAGnJ,KAAK,CAACsI,GAAD,CAAjB;;AACA,YAAIa,KAAK,IAAI,IAAT,IAAiB,CAACA,KAAK,GAAG6Q,MAAM,CAAC7Q,KAAD,CAAf,MAA4B6Q,MAAM,CAACoJ,GAAG,CAAC9a,GAAD,CAAJ,CAAvD,EAAmE;AAClEma,UAAAA,OAAO,CAACziB,KAAR,CAAciN,WAAd,CAA0B8Z,YAAY,CAACze,GAAD,CAAtC,EAA6Ca,KAA7C;AACA;AACD,OARK,CASN;;;AACA,WAAK,IAAIb,GAAT,IAAgB8a,GAAhB,EAAqB;AACpB,YAAIA,GAAG,CAAC9a,GAAD,CAAH,IAAY,IAAZ,IAAoBtI,KAAK,CAACsI,GAAD,CAAL,IAAc,IAAtC,EAA4C;AAC3Cma,UAAAA,OAAO,CAACziB,KAAR,CAAcinB,cAAd,CAA6BF,YAAY,CAACze,GAAD,CAAzC;AACA;AACD;AACD;AACD,GArxBmC,CAsxBpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,WAAS4e,SAAT,GAAqB,CAAE;;AACvBA,EAAAA,SAAS,CAAC9hB,SAAV,GAAsByL,MAAM,CAACoS,MAAP,CAAc,IAAd,CAAtB;;AACAiE,EAAAA,SAAS,CAAC9hB,SAAV,CAAoB+hB,WAApB,GAAkC,UAAUrkB,EAAV,EAAc;AAC/C,QAAIskB,QAAQ,GAAG,KAAK,OAAOtkB,EAAE,CAACuO,IAAf,CAAf;AACA,QAAI+D,MAAJ;AACA,QAAI,OAAOgS,QAAP,KAAoB,UAAxB,EAAoChS,MAAM,GAAGgS,QAAQ,CAACpgB,IAAT,CAAclE,EAAE,CAACukB,aAAjB,EAAgCvkB,EAAhC,CAAT,CAApC,KACK,IAAI,OAAOskB,QAAQ,CAACD,WAAhB,KAAgC,UAApC,EAAgDC,QAAQ,CAACD,WAAT,CAAqBrkB,EAArB;AACrD,QAAIA,EAAE,CAACwkB,MAAH,KAAc,KAAlB,EAAyBxkB,EAAE,CAACwkB,MAAH,GAAYvgB,SAAZ,CAAzB,KACK,IAAI,OAAO4Z,OAAP,KAAmB,UAAvB,EAAmCA,OAAO;;AAC/C,QAAIvL,MAAM,KAAK,KAAf,EAAsB;AACrBtS,MAAAA,EAAE,CAACmO,cAAH;AACAnO,MAAAA,EAAE,CAACwB,eAAH;AACA;AACD,GAXD,CAnyBoC,CA+yBpC;;;AACA,WAAS+hB,WAAT,CAAqBvF,MAArB,EAA6BxY,GAA7B,EAAkCa,KAAlC,EAAyC;AACxC,QAAI2X,MAAM,CAACtI,MAAP,IAAiB,IAArB,EAA2B;AAC1B,UAAIsI,MAAM,CAACtI,MAAP,CAAclQ,GAAd,MAAuBa,KAA3B,EAAkC;;AAClC,UAAIA,KAAK,IAAI,IAAT,KAAkB,OAAOA,KAAP,KAAiB,UAAjB,IAA+B,OAAOA,KAAP,KAAiB,QAAlE,CAAJ,EAAiF;AAChF,YAAI2X,MAAM,CAACtI,MAAP,CAAclQ,GAAd,KAAsB,IAA1B,EAAgCwY,MAAM,CAACzI,GAAP,CAAW1W,gBAAX,CAA4B2G,GAAG,CAACtD,KAAJ,CAAU,CAAV,CAA5B,EAA0C8b,MAAM,CAACtI,MAAjD,EAAyD,KAAzD;AAChCsI,QAAAA,MAAM,CAACtI,MAAP,CAAclQ,GAAd,IAAqBa,KAArB;AACA,OAHD,MAGO;AACN,YAAI2X,MAAM,CAACtI,MAAP,CAAclQ,GAAd,KAAsB,IAA1B,EAAgCwY,MAAM,CAACzI,GAAP,CAAWnI,mBAAX,CAA+B5H,GAAG,CAACtD,KAAJ,CAAU,CAAV,CAA/B,EAA6C8b,MAAM,CAACtI,MAApD,EAA4D,KAA5D;AAChCsI,QAAAA,MAAM,CAACtI,MAAP,CAAclQ,GAAd,IAAqBvB,SAArB;AACA;AACD,KATD,MASO,IAAIoC,KAAK,IAAI,IAAT,KAAkB,OAAOA,KAAP,KAAiB,UAAjB,IAA+B,OAAOA,KAAP,KAAiB,QAAlE,CAAJ,EAAiF;AACvF2X,MAAAA,MAAM,CAACtI,MAAP,GAAgB,IAAI0O,SAAJ,EAAhB;AACApG,MAAAA,MAAM,CAACzI,GAAP,CAAW1W,gBAAX,CAA4B2G,GAAG,CAACtD,KAAJ,CAAU,CAAV,CAA5B,EAA0C8b,MAAM,CAACtI,MAAjD,EAAyD,KAAzD;AACAsI,MAAAA,MAAM,CAACtI,MAAP,CAAclQ,GAAd,IAAqBa,KAArB;AACA;AACD,GA/zBmC,CAg0BpC;;;AACA,WAASsY,aAAT,CAAuB8F,MAAvB,EAA+BzG,MAA/B,EAAuCS,KAAvC,EAA8C;AAC7C,QAAI,OAAOgG,MAAM,CAACC,MAAd,KAAyB,UAA7B,EAAyCtG,QAAQ,CAACla,IAAT,CAAcugB,MAAM,CAACC,MAArB,EAA6B1G,MAA7B;AACzC,QAAI,OAAOyG,MAAM,CAACE,QAAd,KAA2B,UAA/B,EAA2ClG,KAAK,CAACzc,IAAN,CAAWoc,QAAQ,CAAC3F,IAAT,CAAcgM,MAAM,CAACE,QAArB,EAA+B3G,MAA/B,CAAX;AAC3C;;AACD,WAASkE,eAAT,CAAyBuC,MAAzB,EAAiCzG,MAAjC,EAAyCS,KAAzC,EAAgD;AAC/C,QAAI,OAAOgG,MAAM,CAACG,QAAd,KAA2B,UAA/B,EAA2CnG,KAAK,CAACzc,IAAN,CAAWoc,QAAQ,CAAC3F,IAAT,CAAcgM,MAAM,CAACG,QAArB,EAA+B5G,MAA/B,CAAX;AAC3C;;AACD,WAASiE,eAAT,CAAyBjE,MAAzB,EAAiCsC,GAAjC,EAAsC;AACrC,OAAG;AACF,UAAItC,MAAM,CAAC7W,KAAP,IAAgB,IAAhB,IAAwB,OAAO6W,MAAM,CAAC7W,KAAP,CAAa0d,cAApB,KAAuC,UAAnE,EAA+E;AAC9E,YAAItd,KAAK,GAAG6W,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAAC7W,KAAP,CAAa0d,cAA3B,EAA2C7G,MAA3C,EAAmDsC,GAAnD,CAAZ;AACA,YAAI/Y,KAAK,KAAKtD,SAAV,IAAuB,CAACsD,KAA5B,EAAmC;AACnC;;AACD,UAAI,OAAOyW,MAAM,CAAC5I,GAAd,KAAsB,QAAtB,IAAkC,OAAO4I,MAAM,CAACvI,KAAP,CAAaoP,cAApB,KAAuC,UAA7E,EAAyF;AACxF,YAAItd,KAAK,GAAG6W,QAAQ,CAACla,IAAT,CAAc8Z,MAAM,CAACvI,KAAP,CAAaoP,cAA3B,EAA2C7G,MAA3C,EAAmDsC,GAAnD,CAAZ;AACA,YAAI/Y,KAAK,KAAKtD,SAAV,IAAuB,CAACsD,KAA5B,EAAmC;AACnC;;AACD,aAAO,KAAP;AACA,KAVD,QAUS,KAVT,EADqC,CAWpB;;;AACjByW,IAAAA,MAAM,CAACzI,GAAP,GAAa+K,GAAG,CAAC/K,GAAjB;AACAyI,IAAAA,MAAM,CAACxI,OAAP,GAAiB8K,GAAG,CAAC9K,OAArB;AACAwI,IAAAA,MAAM,CAACrI,QAAP,GAAkB2K,GAAG,CAAC3K,QAAtB;AACA,WAAO,IAAP;AACA;;AACD,WAASmP,MAAT,CAAgBvP,GAAhB,EAAqBgJ,MAArB,EAA6B;AAC5B,QAAI,CAAChJ,GAAL,EAAU,MAAM,IAAI8B,KAAJ,CAAU,mFAAV,CAAN;AACV,QAAIoH,KAAK,GAAG,EAAZ;AACA,QAAIsG,MAAM,GAAG1G,aAAa,EAA1B;AACA,QAAI1Q,SAAS,GAAG4H,GAAG,CAACyP,YAApB,CAJ4B,CAK5B;;AACA,QAAIzP,GAAG,CAACgJ,MAAJ,IAAc,IAAlB,EAAwBhJ,GAAG,CAAClE,WAAJ,GAAkB,EAAlB;AACxBkN,IAAAA,MAAM,GAAGpJ,KAAK,CAACU,iBAAN,CAAwBxT,KAAK,CAAC+D,OAAN,CAAcmY,MAAd,IAAwBA,MAAxB,GAAiC,CAACA,MAAD,CAAzD,CAAT;AACA8B,IAAAA,WAAW,CAAC9K,GAAD,EAAMA,GAAG,CAACgJ,MAAV,EAAkBA,MAAlB,EAA0BE,KAA1B,EAAiC,IAAjC,EAAuC9Q,SAAS,KAAK,8BAAd,GAA+C1J,SAA/C,GAA2D0J,SAAlG,CAAX;AACA4H,IAAAA,GAAG,CAACgJ,MAAJ,GAAaA,MAAb,CAT4B,CAU5B;;AACA,QAAIwG,MAAM,IAAI,IAAV,IAAkB1G,aAAa,OAAO0G,MAAtC,IAAgD,OAAOA,MAAM,CAAC7Y,KAAd,KAAwB,UAA5E,EAAwF6Y,MAAM,CAAC7Y,KAAP;;AACxF,SAAK,IAAI7P,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoiB,KAAK,CAACriB,MAA1B,EAAkCC,CAAC,EAAnC,EAAuCoiB,KAAK,CAACpiB,CAAD,CAAL;AACvC;;AACD,SAAO;AAACyoB,IAAAA,MAAM,EAAEA,MAAT;AAAiBhH,IAAAA,SAAS,EAAEA;AAA5B,GAAP;AACA,CAx2BD;;AAy2BA,SAASmH,QAAT,CAAkB/oB,QAAlB,EAA4B;AAC3B,MAAIgpB,OAAO,GAAG,IAAd;AACA,SAAO,YAAW;AACjB,QAAIA,OAAO,KAAK,IAAhB,EAAsB;AACrBA,MAAAA,OAAO,GAAGC,qBAAqB,CAAC,YAAW;AAC1CD,QAAAA,OAAO,GAAG,IAAV;AACAhpB,QAAAA,QAAQ;AACR,OAH8B,CAA/B;AAIA;AACD,GAPD;AAQA;;AACD,IAAIkpB,GAAG,GAAG,UAASjL,OAAT,EAAkBkL,YAAlB,EAAgC;AACzC,MAAIC,aAAa,GAAG9H,YAAY,CAACrD,OAAD,CAAhC;AACA,MAAIoL,SAAS,GAAG,EAAhB;AACA,MAAIC,SAAS,GAAG,KAAhB;;AACA,WAASC,SAAT,CAAmBjgB,GAAnB,EAAwBtJ,QAAxB,EAAkC;AACjCwpB,IAAAA,WAAW,CAAClgB,GAAD,CAAX;AACA+f,IAAAA,SAAS,CAACvjB,IAAV,CAAewD,GAAf,EAAoBtJ,QAApB;AACA;;AACD,WAASwpB,WAAT,CAAqBlgB,GAArB,EAA0B;AACzB,QAAIxB,KAAK,GAAGuhB,SAAS,CAACzjB,OAAV,CAAkB0D,GAAlB,CAAZ;AACA,QAAIxB,KAAK,GAAG,CAAC,CAAb,EAAgBuhB,SAAS,CAACnjB,MAAV,CAAiB4B,KAAjB,EAAwB,CAAxB;AAChB;;AACD,WAAS2hB,IAAT,GAAgB;AACf,QAAIH,SAAJ,EAAe,MAAM,IAAInO,KAAJ,CAAU,6BAAV,CAAN;AACfmO,IAAAA,SAAS,GAAG,IAAZ;;AACA,SAAK,IAAInpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkpB,SAAS,CAACnpB,MAA9B,EAAsCC,CAAC,IAAE,CAAzC,EAA4C,IAAI;AAACkpB,MAAAA,SAAS,CAAClpB,CAAD,CAAT;AAAe,KAApB,CAAqB,OAAOE,CAAP,EAAU;AAAC,UAAI,OAAOC,OAAP,KAAmB,WAAvB,EAAoCA,OAAO,CAACS,KAAR,CAAcV,CAAd;AAAiB;;AACjIipB,IAAAA,SAAS,GAAG,KAAZ;AACA;;AACD,MAAIhB,MAAM,GAAG,CAACa,YAAY,IAAIJ,QAAjB,EAA2BU,IAA3B,CAAb;AACAnB,EAAAA,MAAM,CAACmB,IAAP,GAAcA,IAAd;AACAL,EAAAA,aAAa,CAACxH,SAAd,CAAwB0G,MAAxB;AACA,SAAO;AAACiB,IAAAA,SAAS,EAAEA,SAAZ;AAAuBC,IAAAA,WAAW,EAAEA,WAApC;AAAiDlB,IAAAA,MAAM,EAAEA,MAAzD;AAAiEM,IAAAA,MAAM,EAAEQ,aAAa,CAACR;AAAvF,GAAP;AACA,CAtBD;;AAuBA,IAAIc,aAAa,GAAGR,GAAG,CAACjlB,MAAD,CAAvB;;AACAod,cAAc,CAACD,qBAAf,CAAqCsI,aAAa,CAACpB,MAAnD;;AACA,IAAIqB,GAAG,GAAG,UAASC,cAAT,EAAyB;AAClC,SAAO,UAASC,IAAT,EAAeC,SAAf,EAA0B;AAChC,QAAIA,SAAS,KAAK,IAAlB,EAAwB;AACvBF,MAAAA,cAAc,CAAChB,MAAf,CAAsBiB,IAAtB,EAA4B,EAA5B;AACAD,MAAAA,cAAc,CAACJ,WAAf,CAA2BK,IAA3B;AACA;AACA;;AAED,QAAIC,SAAS,CAAC5O,IAAV,IAAkB,IAAlB,IAA0B,OAAO4O,SAAP,KAAqB,UAAnD,EAA+D,MAAM,IAAI3O,KAAJ,CAAU,8DAAV,CAAN;;AAE/D,QAAI4O,IAAI,GAAG,YAAW;AACrBH,MAAAA,cAAc,CAAChB,MAAf,CAAsBiB,IAAtB,EAA4B5Q,KAAK,CAAC6Q,SAAD,CAAjC;AACA,KAFD;;AAGAF,IAAAA,cAAc,CAACL,SAAf,CAAyBM,IAAzB,EAA+BE,IAA/B;AACAA,IAAAA,IAAI;AACJ,GAdD;AAeA,CAhBD;;AAiBAzO,CAAC,CAAC0O,KAAF,GAAUL,GAAG,CAACD,aAAD,CAAb;AACA,IAAI/L,OAAO,GAAGpC,eAAd;;AACA,IAAI0O,gBAAgB,GAAG,UAASC,MAAT,EAAiB;AACvC,MAAIA,MAAM,KAAK,EAAX,IAAiBA,MAAM,IAAI,IAA/B,EAAqC,OAAO,EAAP;AACrC,MAAIA,MAAM,CAACrd,MAAP,CAAc,CAAd,MAAqB,GAAzB,EAA8Bqd,MAAM,GAAGA,MAAM,CAAClkB,KAAP,CAAa,CAAb,CAAT;AAC9B,MAAImkB,OAAO,GAAGD,MAAM,CAACld,KAAP,CAAa,GAAb,CAAd;AAAA,MAAiCod,KAAK,GAAG,EAAzC;AAAA,MAA6CC,QAAQ,GAAG,EAAxD;;AACA,OAAK,IAAIlqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgqB,OAAO,CAACjqB,MAA5B,EAAoCC,CAAC,EAArC,EAAyC;AACxC,QAAImqB,KAAK,GAAGH,OAAO,CAAChqB,CAAD,CAAP,CAAW6M,KAAX,CAAiB,GAAjB,CAAZ;AACA,QAAIud,IAAI,GAAGC,kBAAkB,CAACF,KAAK,CAAC,CAAD,CAAN,CAA7B;AACA,QAAIG,MAAM,GAAGH,KAAK,CAACpqB,MAAN,KAAiB,CAAjB,GAAqBsqB,kBAAkB,CAACF,KAAK,CAAC,CAAD,CAAN,CAAvC,GAAoD,EAAjE;AACA,QAAIG,MAAM,KAAK,MAAf,EAAuBA,MAAM,GAAG,IAAT,CAAvB,KACK,IAAIA,MAAM,KAAK,OAAf,EAAwBA,MAAM,GAAG,KAAT;AAC7B,QAAIC,MAAM,GAAGH,IAAI,CAACvd,KAAL,CAAW,UAAX,CAAb;AACA,QAAI2d,MAAM,GAAGP,KAAb;AACA,QAAIG,IAAI,CAAC3kB,OAAL,CAAa,GAAb,IAAoB,CAAC,CAAzB,EAA4B8kB,MAAM,CAACE,GAAP;;AAC5B,SAAK,IAAIC,EAAE,GAAG,CAAd,EAAiBA,EAAE,GAAGH,MAAM,CAACxqB,MAA7B,EAAqC2qB,EAAE,EAAvC,EAA2C;AAC1C,UAAIC,KAAK,GAAGJ,MAAM,CAACG,EAAD,CAAlB;AAAA,UAAwBE,SAAS,GAAGL,MAAM,CAACG,EAAE,GAAG,CAAN,CAA1C;AACA,UAAIG,QAAQ,GAAGD,SAAS,IAAI,EAAb,IAAmB,CAAChhB,KAAK,CAACsC,QAAQ,CAAC0e,SAAD,EAAY,EAAZ,CAAT,CAAxC;AACA,UAAIE,OAAO,GAAGJ,EAAE,KAAKH,MAAM,CAACxqB,MAAP,GAAgB,CAArC;;AACA,UAAI4qB,KAAK,KAAK,EAAd,EAAkB;AACjB,YAAIP,IAAI,GAAGG,MAAM,CAAC1kB,KAAP,CAAa,CAAb,EAAgB6kB,EAAhB,EAAoB9d,IAApB,EAAX;AACA,YAAIsd,QAAQ,CAACE,IAAD,CAAR,IAAkB,IAAtB,EAA4BF,QAAQ,CAACE,IAAD,CAAR,GAAiB,CAAjB;AAC5BO,QAAAA,KAAK,GAAGT,QAAQ,CAACE,IAAD,CAAR,EAAR;AACA;;AACD,UAAII,MAAM,CAACG,KAAD,CAAN,IAAiB,IAArB,EAA2B;AAC1BH,QAAAA,MAAM,CAACG,KAAD,CAAN,GAAgBG,OAAO,GAAGR,MAAH,GAAYO,QAAQ,GAAG,EAAH,GAAQ,EAAnD;AACA;;AACDL,MAAAA,MAAM,GAAGA,MAAM,CAACG,KAAD,CAAf;AACA;AACD;;AACD,SAAOV,KAAP;AACA,CA7BD;;AA8BA,IAAIc,UAAU,GAAG,UAASjN,OAAT,EAAkB;AAClC,MAAIkN,iBAAiB,GAAG,OAAOlN,OAAO,CAACxa,OAAR,CAAgBC,SAAvB,KAAqC,UAA7D;AACA,MAAI0nB,UAAU,GAAG,OAAOnP,YAAP,KAAwB,UAAxB,GAAqCA,YAArC,GAAoDzY,UAArE;;AACA,WAASkW,SAAT,CAAmB2R,SAAnB,EAA8B;AAC7B,QAAIC,KAAK,GAAGrN,OAAO,CAACsN,QAAR,CAAiBF,SAAjB,EAA4BviB,OAA5B,CAAoC,0BAApC,EAAgE0hB,kBAAhE,CAAZ;AACA,QAAIa,SAAS,KAAK,UAAd,IAA4BC,KAAK,CAAC,CAAD,CAAL,KAAa,GAA7C,EAAkDA,KAAK,GAAG,MAAMA,KAAd;AAClD,WAAOA,KAAP;AACA;;AACD,MAAIE,OAAJ;;AACA,WAASC,aAAT,CAAuBzrB,QAAvB,EAAiC;AAChC,WAAO,YAAW;AACjB,UAAIwrB,OAAO,IAAI,IAAf,EAAqB;AACrBA,MAAAA,OAAO,GAAGJ,UAAU,CAAC,YAAW;AAC/BI,QAAAA,OAAO,GAAG,IAAV;AACAxrB,QAAAA,QAAQ;AACR,OAHmB,CAApB;AAIA,KAND;AAOA;;AACD,WAAS0rB,SAAT,CAAmBC,IAAnB,EAAyBC,SAAzB,EAAoCC,QAApC,EAA8C;AAC7C,QAAIC,UAAU,GAAGH,IAAI,CAAC/lB,OAAL,CAAa,GAAb,CAAjB;AACA,QAAImmB,SAAS,GAAGJ,IAAI,CAAC/lB,OAAL,CAAa,GAAb,CAAhB;AACA,QAAIomB,OAAO,GAAGF,UAAU,GAAG,CAAC,CAAd,GAAkBA,UAAlB,GAA+BC,SAAS,GAAG,CAAC,CAAb,GAAiBA,SAAjB,GAA6BJ,IAAI,CAACzrB,MAA/E;;AACA,QAAI4rB,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACpB,UAAIG,QAAQ,GAAGF,SAAS,GAAG,CAAC,CAAb,GAAiBA,SAAjB,GAA6BJ,IAAI,CAACzrB,MAAjD;AACA,UAAIgsB,WAAW,GAAGjC,gBAAgB,CAAC0B,IAAI,CAAC3lB,KAAL,CAAW8lB,UAAU,GAAG,CAAxB,EAA2BG,QAA3B,CAAD,CAAlC;;AACA,WAAK,IAAIE,IAAT,IAAiBD,WAAjB,EAA8BN,SAAS,CAACO,IAAD,CAAT,GAAkBD,WAAW,CAACC,IAAD,CAA7B;AAC9B;;AACD,QAAIJ,SAAS,GAAG,CAAC,CAAjB,EAAoB;AACnB,UAAIK,UAAU,GAAGnC,gBAAgB,CAAC0B,IAAI,CAAC3lB,KAAL,CAAW+lB,SAAS,GAAG,CAAvB,CAAD,CAAjC;;AACA,WAAK,IAAII,IAAT,IAAiBC,UAAjB,EAA6BP,QAAQ,CAACM,IAAD,CAAR,GAAiBC,UAAU,CAACD,IAAD,CAA3B;AAC7B;;AACD,WAAOR,IAAI,CAAC3lB,KAAL,CAAW,CAAX,EAAcgmB,OAAd,CAAP;AACA;;AACD,MAAIK,MAAM,GAAG;AAACC,IAAAA,MAAM,EAAE;AAAT,GAAb;;AACAD,EAAAA,MAAM,CAACE,OAAP,GAAiB,YAAW;AAC3B,QAAIC,KAAK,GAAGH,MAAM,CAACC,MAAP,CAAczf,MAAd,CAAqB,CAArB,CAAZ;;AACA,YAAQ2f,KAAR;AACC,WAAK,GAAL;AAAU,eAAO9S,SAAS,CAAC,MAAD,CAAT,CAAkB1T,KAAlB,CAAwBqmB,MAAM,CAACC,MAAP,CAAcpsB,MAAtC,CAAP;;AACV,WAAK,GAAL;AAAU,eAAOwZ,SAAS,CAAC,QAAD,CAAT,CAAoB1T,KAApB,CAA0BqmB,MAAM,CAACC,MAAP,CAAcpsB,MAAxC,IAAkDwZ,SAAS,CAAC,MAAD,CAAlE;;AACV;AAAS,eAAOA,SAAS,CAAC,UAAD,CAAT,CAAsB1T,KAAtB,CAA4BqmB,MAAM,CAACC,MAAP,CAAcpsB,MAA1C,IAAoDwZ,SAAS,CAAC,QAAD,CAA7D,GAA0EA,SAAS,CAAC,MAAD,CAA1F;AAHV;AAKA,GAPD;;AAQA2S,EAAAA,MAAM,CAACI,OAAP,GAAiB,UAASd,IAAT,EAAeL,KAAf,EAAsB1Y,OAAtB,EAA+B;AAC/C,QAAIgZ,SAAS,GAAG,EAAhB;AAAA,QAAoBC,QAAQ,GAAG,EAA/B;AACAF,IAAAA,IAAI,GAAGD,SAAS,CAACC,IAAD,EAAOC,SAAP,EAAkBC,QAAlB,CAAhB;;AACA,QAAIP,KAAK,IAAI,IAAb,EAAmB;AAClB,WAAK,IAAIa,IAAT,IAAiBb,KAAjB,EAAwBM,SAAS,CAACO,IAAD,CAAT,GAAkBb,KAAK,CAACa,IAAD,CAAvB;;AACxBR,MAAAA,IAAI,GAAGA,IAAI,CAAC7iB,OAAL,CAAa,YAAb,EAA2B,UAAS4jB,MAAT,EAAiBC,KAAjB,EAAwB;AACzD,eAAOf,SAAS,CAACe,KAAD,CAAhB;AACA,eAAOrB,KAAK,CAACqB,KAAD,CAAZ;AACA,OAHM,CAAP;AAIA;;AACD,QAAIrZ,KAAK,GAAGuK,gBAAgB,CAAC+N,SAAD,CAA5B;AACA,QAAItY,KAAJ,EAAWqY,IAAI,IAAI,MAAMrY,KAAd;AACX,QAAIsZ,IAAI,GAAG/O,gBAAgB,CAACgO,QAAD,CAA3B;AACA,QAAIe,IAAJ,EAAUjB,IAAI,IAAI,MAAMiB,IAAd;;AACV,QAAIzB,iBAAJ,EAAuB;AACtB,UAAI5R,KAAK,GAAG3G,OAAO,GAAGA,OAAO,CAAC2G,KAAX,GAAmB,IAAtC;AACA,UAAItX,KAAK,GAAG2Q,OAAO,GAAGA,OAAO,CAAC3Q,KAAX,GAAmB,IAAtC;AACAgc,MAAAA,OAAO,CAAC4O,UAAR;AACA,UAAIja,OAAO,IAAIA,OAAO,CAAC9J,OAAvB,EAAgCmV,OAAO,CAACxa,OAAR,CAAgBqpB,YAAhB,CAA6BvT,KAA7B,EAAoCtX,KAApC,EAA2CoqB,MAAM,CAACC,MAAP,GAAgBX,IAA3D,EAAhC,KACK1N,OAAO,CAACxa,OAAR,CAAgBC,SAAhB,CAA0B6V,KAA1B,EAAiCtX,KAAjC,EAAwCoqB,MAAM,CAACC,MAAP,GAAgBX,IAAxD;AACL,KAND,MAOK1N,OAAO,CAACsN,QAAR,CAAiBwB,IAAjB,GAAwBV,MAAM,CAACC,MAAP,GAAgBX,IAAxC;AACL,GAtBD;;AAuBAU,EAAAA,MAAM,CAACW,YAAP,GAAsB,UAASC,MAAT,EAAiB/P,OAAjB,EAA0BC,MAA1B,EAAkC;AACvD,aAAS+P,YAAT,GAAwB;AACvB,UAAIvB,IAAI,GAAGU,MAAM,CAACE,OAAP,EAAX;AACA,UAAIY,MAAM,GAAG,EAAb;AACA,UAAIC,QAAQ,GAAG1B,SAAS,CAACC,IAAD,EAAOwB,MAAP,EAAeA,MAAf,CAAxB;AACA,UAAI5T,KAAK,GAAG0E,OAAO,CAACxa,OAAR,CAAgB8V,KAA5B;;AACA,UAAIA,KAAK,IAAI,IAAb,EAAmB;AAClB,aAAK,IAAI8T,CAAT,IAAc9T,KAAd,EAAqB4T,MAAM,CAACE,CAAD,CAAN,GAAY9T,KAAK,CAAC8T,CAAD,CAAjB;AACrB;;AACD,WAAK,IAAIC,MAAT,IAAmBL,MAAnB,EAA2B;AAC1B,YAAIM,OAAO,GAAG,IAAI5Y,MAAJ,CAAW,MAAM2Y,MAAM,CAACxkB,OAAP,CAAe,gBAAf,EAAiC,OAAjC,EAA0CA,OAA1C,CAAkD,UAAlD,EAA8D,WAA9D,CAAN,GAAmF,MAA9F,CAAd;;AACA,YAAIykB,OAAO,CAAC1mB,IAAR,CAAaumB,QAAb,CAAJ,EAA4B;AAC3BA,UAAAA,QAAQ,CAACtkB,OAAT,CAAiBykB,OAAjB,EAA0B,YAAW;AACpC,gBAAIC,IAAI,GAAGF,MAAM,CAAC1iB,KAAP,CAAa,UAAb,KAA4B,EAAvC;AACA,gBAAI6I,MAAM,GAAG,GAAGzN,KAAH,CAASgC,IAAT,CAAcM,SAAd,EAAyB,CAAzB,EAA4B,CAAC,CAA7B,CAAb;;AACA,iBAAK,IAAInI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqtB,IAAI,CAACttB,MAAzB,EAAiCC,CAAC,EAAlC,EAAsC;AACrCgtB,cAAAA,MAAM,CAACK,IAAI,CAACrtB,CAAD,CAAJ,CAAQ2I,OAAR,CAAgB,OAAhB,EAAyB,EAAzB,CAAD,CAAN,GAAuC0hB,kBAAkB,CAAC/W,MAAM,CAACtT,CAAD,CAAP,CAAzD;AACA;;AACD+c,YAAAA,OAAO,CAAC+P,MAAM,CAACK,MAAD,CAAP,EAAiBH,MAAjB,EAAyBxB,IAAzB,EAA+B2B,MAA/B,CAAP;AACA,WAPD;AAQA;AACA;AACD;;AACDnQ,MAAAA,MAAM,CAACwO,IAAD,EAAOwB,MAAP,CAAN;AACA;;AACD,QAAIhC,iBAAJ,EAAuBlN,OAAO,CAAC4O,UAAR,GAAqBpB,aAAa,CAACyB,YAAD,CAAlC,CAAvB,KACK,IAAIb,MAAM,CAACC,MAAP,CAAczf,MAAd,CAAqB,CAArB,MAA4B,GAAhC,EAAqCoR,OAAO,CAACwP,YAAR,GAAuBP,YAAvB;AAC1CA,IAAAA,YAAY;AACZ,GA5BD;;AA6BA,SAAOb,MAAP;AACA,CA/FD;;AAgGA,IAAIqB,GAAG,GAAG,UAASzP,OAAT,EAAkB2L,cAAlB,EAAkC;AAC3C,MAAI+D,YAAY,GAAGzC,UAAU,CAACjN,OAAD,CAA7B;;AACA,MAAI2P,QAAQ,GAAG,UAASC,EAAT,EAAa;AAAC,WAAOA,EAAP;AAAU,GAAvC;;AACA,MAAIC,OAAJ,EAAahE,SAAb,EAAwBiE,MAAxB,EAAgCC,WAAhC,EAA6CC,UAA7C;;AACA,MAAIC,KAAK,GAAG,UAASrE,IAAT,EAAesE,YAAf,EAA6BlB,MAA7B,EAAqC;AAChD,QAAIpD,IAAI,IAAI,IAAZ,EAAkB,MAAM,IAAI1O,KAAJ,CAAU,sEAAV,CAAN;;AAClB,aAASiT,IAAT,GAAgB;AACf,UAAIN,OAAO,IAAI,IAAf,EAAqBlE,cAAc,CAAChB,MAAf,CAAsBiB,IAAtB,EAA4BiE,OAAO,CAAC7U,KAAK,CAAC6Q,SAAD,EAAYiE,MAAM,CAACzkB,GAAnB,EAAwBykB,MAAxB,CAAN,CAAnC;AACrB;;AACD,QAAIM,OAAO,GAAG,YAAW;AACxBD,MAAAA,IAAI;AACJC,MAAAA,OAAO,GAAGzE,cAAc,CAACtB,MAAzB;AACA,KAHD;;AAIAsB,IAAAA,cAAc,CAACL,SAAf,CAAyBM,IAAzB,EAA+BuE,IAA/B;;AACA,QAAIE,IAAI,GAAG,UAAS3C,IAAT,EAAe;AACzB,UAAIA,IAAI,KAAKwC,YAAb,EAA2BR,YAAY,CAAClB,OAAb,CAAqB0B,YAArB,EAAmC,IAAnC,EAAyC;AAACrlB,QAAAA,OAAO,EAAE;AAAV,OAAzC,EAA3B,KACK,MAAM,IAAIqS,KAAJ,CAAU,qCAAqCgT,YAA/C,CAAN;AACL,KAHD;;AAIAR,IAAAA,YAAY,CAACX,YAAb,CAA0BC,MAA1B,EAAkC,UAASsB,OAAT,EAAkBpB,MAAlB,EAA0BxB,IAA1B,EAAgC;AACjE,UAAI6C,MAAM,GAAGP,UAAU,GAAG,UAASQ,aAAT,EAAwBC,IAAxB,EAA8B;AACvD,YAAIF,MAAM,KAAKP,UAAf,EAA2B;AAC3BnE,QAAAA,SAAS,GAAG4E,IAAI,IAAI,IAAR,KAAiB,OAAOA,IAAI,CAACxT,IAAZ,KAAqB,UAArB,IAAmC,OAAOwT,IAAP,KAAgB,UAApE,IAAiFA,IAAjF,GAAwF,KAApG;AACAX,QAAAA,MAAM,GAAGZ,MAAT,EAAiBa,WAAW,GAAGrC,IAA/B,EAAqCsC,UAAU,GAAG,IAAlD;AACAH,QAAAA,OAAO,GAAG,CAACW,aAAa,CAAC7F,MAAd,IAAwBgF,QAAzB,EAAmCrR,IAAnC,CAAwCkS,aAAxC,CAAV;AACAJ,QAAAA,OAAO;AACP,OAND;;AAOA,UAAIE,OAAO,CAACrT,IAAR,IAAgB,OAAOqT,OAAP,KAAmB,UAAvC,EAAmDC,MAAM,CAAC,EAAD,EAAKD,OAAL,CAAN,CAAnD,KACK;AACJ,YAAIA,OAAO,CAACI,OAAZ,EAAqB;AACpBhR,UAAAA,OAAO,CAACT,OAAR,CAAgBqR,OAAO,CAACI,OAAR,CAAgBxB,MAAhB,EAAwBxB,IAAxB,CAAhB,EAA+CtP,IAA/C,CAAoD,UAASuS,QAAT,EAAmB;AACtEJ,YAAAA,MAAM,CAACD,OAAD,EAAUK,QAAV,CAAN;AACA,WAFD,EAEGN,IAFH;AAGA,SAJD,MAKKE,MAAM,CAACD,OAAD,EAAU,KAAV,CAAN;AACL;AACD,KAjBD,EAiBGD,IAjBH;AAkBA,GAhCD;;AAiCAJ,EAAAA,KAAK,CAACW,GAAN,GAAY,UAASlD,IAAT,EAAemD,KAAf,EAAsBlc,OAAtB,EAA+B;AAC1C,QAAIqb,UAAU,IAAI,IAAlB,EAAwB;AACvBrb,MAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;AACAA,MAAAA,OAAO,CAAC9J,OAAR,GAAkB,IAAlB;AACA;;AACDmlB,IAAAA,UAAU,GAAG,IAAb;AACAN,IAAAA,YAAY,CAAClB,OAAb,CAAqBd,IAArB,EAA2BmD,KAA3B,EAAkClc,OAAlC;AACA,GAPD;;AAQAsb,EAAAA,KAAK,CAACrmB,GAAN,GAAY,YAAW;AAAC,WAAOmmB,WAAP;AAAmB,GAA3C;;AACAE,EAAAA,KAAK,CAAC5B,MAAN,GAAe,UAASA,MAAT,EAAiB;AAACqB,IAAAA,YAAY,CAACrB,MAAb,GAAsBA,MAAtB;AAA6B,GAA9D;;AACA,MAAIyC,IAAI,GAAG,UAASnc,OAAT,EAAkBoc,MAAlB,EAA0B;AACpCA,IAAAA,MAAM,CAAC3V,GAAP,CAAW3X,YAAX,CAAwB,MAAxB,EAAgCisB,YAAY,CAACrB,MAAb,GAAsB0C,MAAM,CAAC/jB,KAAP,CAAa8hB,IAAnE;;AACAiC,IAAAA,MAAM,CAAC3V,GAAP,CAAW4V,OAAX,GAAqB,UAAS5uB,CAAT,EAAY;AAChC,UAAIA,CAAC,CAAC6uB,OAAF,IAAa7uB,CAAC,CAAC8uB,OAAf,IAA0B9uB,CAAC,CAAC+uB,QAA5B,IAAwC/uB,CAAC,CAACgvB,KAAF,KAAY,CAAxD,EAA2D;AAC3DhvB,MAAAA,CAAC,CAAC4R,cAAF;AACA5R,MAAAA,CAAC,CAACioB,MAAF,GAAW,KAAX;AACA,UAAIyE,IAAI,GAAG,KAAKlqB,YAAL,CAAkB,MAAlB,CAAX;AACA,UAAIkqB,IAAI,CAACnnB,OAAL,CAAa+nB,YAAY,CAACrB,MAA1B,MAAsC,CAA1C,EAA6CS,IAAI,GAAGA,IAAI,CAAC/mB,KAAL,CAAW2nB,YAAY,CAACrB,MAAb,CAAoBpsB,MAA/B,CAAP;AAC7CguB,MAAAA,KAAK,CAACW,GAAN,CAAU9B,IAAV,EAAgBhlB,SAAhB,EAA2B6K,OAA3B;AACA,KAPD;AAQA,GAVD;;AAWAsb,EAAAA,KAAK,CAACa,IAAN,GAAa,UAASO,KAAT,EAAgB;AAC5B,QAAIA,KAAK,CAACpW,GAAN,IAAa,IAAjB,EAAuB,OAAO6V,IAAI,CAACxS,IAAL,CAAUwS,IAAV,EAAgBO,KAAhB,CAAP;AACvB,WAAOP,IAAI,CAAC,EAAD,EAAKO,KAAL,CAAX;AACA,GAHD;;AAIApB,EAAAA,KAAK,CAACqB,KAAN,GAAc,UAASC,IAAT,EAAe;AAC5B,QAAG,OAAOzB,MAAP,KAAkB,WAAlB,IAAiC,OAAOyB,IAAP,KAAgB,WAApD,EAAiE,OAAOzB,MAAM,CAACyB,IAAD,CAAb;AACjE,WAAOzB,MAAP;AACA,GAHD;;AAIA,SAAOG,KAAP;AACA,CAnED;;AAoEA5S,CAAC,CAAC4S,KAAF,GAAUR,GAAG,CAACzpB,MAAD,EAASylB,aAAT,CAAb;;AACA,IAAI+F,GAAG,GAAGnO,YAAY,CAACrd,MAAD,CAAtB;;AACAqX,CAAC,CAACsN,MAAF,GAAW6G,GAAG,CAAC7G,MAAf;AACAtN,CAAC,CAACgN,MAAF,GAAWoB,aAAa,CAACpB,MAAzB;AACAhN,CAAC,CAAC2D,OAAF,GAAYoC,cAAc,CAACpC,OAA3B;AACA3D,CAAC,CAACuF,KAAF,GAAUQ,cAAc,CAACR,KAAzB;AACAvF,CAAC,CAAC2O,gBAAF,GAAqBA,gBAArB;AACA3O,CAAC,CAACuC,gBAAF,GAAqBA,gBAArB;AACAvC,CAAC,CAACoU,OAAF,GAAY,YAAZ;AACApU,CAAC,CAACT,KAAF,GAAU5B,KAAV;AACAqC,CAAC,CAACC,eAAF,GAAoBA,eAApB;eAEeD;;AACf,IAAIqU,EAAE,GAAGrU,CAAC,CAACA,CAAX;AAAA,IAAasU,MAAM,GAAGtU,CAAC,CAACF,KAAxB;AAAA,IAA8ByU,SAAS,GAAGvU,CAAC,CAACzG,QAA5C;AAAA,IAAqDib,MAAM,GAAGxU,CAAC,CAAC0O,KAAhE;AAAA,IAAsE+F,MAAM,GAAGzU,CAAC,CAAC4S,KAAjF;AAAA,IAAuF8B,OAAO,GAAG1U,CAAC,CAACsN,MAAnG;AAAA,IAA0GqH,OAAO,GAAG3U,CAAC,CAACgN,MAAtH;AAAA,IAA6H4H,QAAQ,GAAG5U,CAAC,CAAC2D,OAA1I;AAAA,IAAkJkR,MAAM,GAAG7U,CAAC,CAACuF,KAA7J;AAAA,IAAmKuP,iBAAiB,GAAG9U,CAAC,CAAC2O,gBAAzL;AAAA,IAA0MoG,iBAAiB,GAAG/U,CAAC,CAACuC,gBAAhO;AAAA,IAAiPyS,QAAQ,GAAGhV,CAAC,CAACoU,OAA9P;AAAA,IAAsQa,MAAM,GAAGjV,CAAC,CAACT,KAAjR;AAAA,IAAuR2V,gBAAgB,GAAGlV,CAAC,CAACC,eAA5S;;;;;;;;;;;;;;;;;;AC7iDA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AATgC;AAChCkV,OAAO,CAAC,eAAD,CAAP;;AASAxsB,MAAM,CAACysB,CAAP,GAAWA,gBAAX;AACAzsB,MAAM,CAACqX,CAAP,GAAWA,gBAAX;AAEArX,MAAM,CAACpE,QAAP,GAAkBoE,MAAM,CAACpE,QAAP,IAAmB,EAArC;AAEAoE,MAAM,CAACpE,QAAP,CAAgB8wB,YAAhB,GAA+BhwB,qBAA/B;AACAsD,MAAM,CAACpE,QAAP,CAAgB+wB,cAAhB,GAAiCpuB,uBAAjC;AACAyB,MAAM,CAACpE,QAAP,CAAgBgxB,iBAAhB,GAAoCvvB,0BAApC;AAEA,yBAAWzB,QAAX","file":"javascript.e85c570d.js","sourceRoot":"..\\..\\..\\src","sourcesContent":["function doInitializationWithGlobal(VETERANS) {\r\n    let initialized = false;\r\n\r\n    function loadingFinished() {\r\n        if (initialized)\r\n            return;\r\n\r\n        initialized = true;\r\n\r\n        VETERANS['startup'] = function(callback) {\r\n            callback();\r\n        };\r\n\r\n        let waiters = VETERANS['__waiters'];\r\n\r\n        if (waiters && waiters.length) {\r\n            for (let i = 0, n = waiters.length; i < n; i++) {\r\n                try {\r\n                    waiters[i]();\r\n                } catch (e) {\r\n                    console.log(\"Error during startup function\", e);\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    if (document.readyState === 'loading') {\r\n        document.onreadystatechange = function() {\r\n            if (document.readyState === \"interactive\" || document.readyState === \"complete\") {\r\n                loadingFinished();\r\n            }\r\n        };\r\n    } else {\r\n        loadingFinished();\r\n    }\r\n}\r\n\r\nexport default doInitializationWithGlobal;","function redComponent(elementId) {\r\n    let el = document.getElementById(elementId);\r\n\r\n    if (!el) {\r\n        console.error(\"No element with id \" + elementId);\r\n        return;\r\n    }\r\n\r\n    el.style.backgroundColor = \"red\";\r\n    el.style.width = \"100px\";\r\n    el.style.height = \"100px\";\r\n    el.style.display = \"block\";\r\n}\r\n\r\nexport default redComponent;","var jwcounter = 1;\r\nfunction jwPlayerComponent() {\r\n    document.querySelectorAll('.player-jw').forEach(el => {\r\n        let elId = 'player-jw-' + (jwcounter++);\r\n        el.setAttribute('id', elId)\r\n        var setupObj = {\r\n            file : el.dataset.m3u8,\r\n            image : el.dataset.poster,\r\n        };\r\n        if(el.dataset.title){\r\n            setupObj['title'] = el.dataset.title;\r\n        }\r\n        if(el.dataset.mediaid){\r\n            setupObj['mediaid'] = el.dataset.mediaid;\r\n            setupObj['ga'] = {\r\n                label : 'mediaid'\r\n            };\r\n        }\r\n        if(el.dataset.playerlogo != null){\r\n            if(el.dataset.playerlogo == 0){\r\n                setupObj['logo'] = false;\r\n            }\r\n        }\r\n\r\n        if(el.dataset.vertical){\r\n            // setupObj['width'] = \"50%\";\r\n            setupObj['aspectratio'] = \"9:16\";\r\n        }\r\n        jwplayer(elId).setup(setupObj);\r\n    })\r\n}\r\n\r\nexport default jwPlayerComponent;","import jwPlayerComponent from \"./jwPlayerComponent\";\r\n\r\nfunction modalComponent() {\r\n    let modalLinks = document.querySelectorAll(\"[data-open-modal]\");\r\n    \r\n    for (let modalLink of modalLinks) {\r\n        modalLink.addEventListener(\"click\", function() {\r\n            let idModalToLoad = modalLink.getAttribute(\"data-open-modal\");\r\n            let modalToLoad = document.getElementById(idModalToLoad);\r\n            \r\n            let backdrop = document.createElement(\"div\");\r\n            backdrop.classList.add(\"panel-drop-background\");\r\n            document.body.classList.add(\"no-scroll\");\r\n            document.body.appendChild(backdrop);\r\n\r\n            let componentModal = null;\r\n            if (modalToLoad) {\r\n                componentModal = document.createElement(\"div\");\r\n                componentModal.classList.add(\"component-modal\");\r\n                let componentModalWindow = document.createElement(\"div\");\r\n                componentModalWindow.classList.add(\"component-modal__window\");\r\n                componentModal.appendChild(componentModalWindow);\r\n                componentModalWindow.innerHTML = modalToLoad.innerHTML;\r\n                setTimeout(function(){\r\n                    jwPlayerComponent()\r\n                }, 200)\r\n            }\r\n\r\n            setTimeout(function() {\r\n                backdrop.classList.add(\"panel-drop-background--show\");\r\n                if(componentModal) {\r\n                    setTimeout(function() {\r\n                        document.body.appendChild(componentModal);\r\n                    }, 100);\r\n                }\r\n            }, 50);\r\n\r\n            history.pushState({}, \"\");\r\n            let fnRemoveBackdrop = () => {\r\n                if (componentModal) {\r\n                    document.body.removeChild(componentModal);\r\n                }\r\n                document.body.classList.remove(\"no-scroll\");\r\n                backdrop.classList.remove(\"panel-drop-background--show\");\r\n                setTimeout(function() {\r\n                    document.body.removeChild(backdrop);\r\n                }, 250);\r\n            };\r\n            \r\n            if (componentModal) {\r\n                componentModal.addEventListener(\"click\", function(ev) {\r\n                    if(ev.target === componentModal) {\r\n                        history.back();\r\n                    }\r\n                });\r\n            } else {\r\n                backdrop.addEventListener(\"click\", function(ev) {\r\n                    if(ev.target === backdrop) {\r\n                        history.back();\r\n                    }\r\n                });\r\n            }\r\n\r\n            window.addEventListener(\"popstate\", function() {\r\n                fnRemoveBackdrop();\r\n            });\r\n        });\r\n    }\r\n}\r\n\r\nexport default modalComponent;","(function () {\r\n\r\n    function hideOpenedMenus() {\r\n        for (let menu of document.getElementsByClassName(\"component-dropdown--opened\")) {\r\n            menu.classList.remove('component-dropdown--opened');\r\n        }\r\n    }\r\n\r\n    function switchDropdown(buttonClass, dropdownClass) {\r\n        let dropdownEl = document.getElementsByClassName(dropdownClass)[0];\r\n        let show = !dropdownEl.classList.contains(\"component-dropdown--opened\");\r\n\r\n        hideOpenedMenus();\r\n\r\n        let div_el = document.getElementsByClassName(buttonClass);\r\n        let div_el_bar = document.getElementsByClassName(\"template-HB__header\")[0];\r\n        let rect = div_el[0].getBoundingClientRect();\r\n        let x = rect.left + div_el[0].offsetWidth;\r\n        let y = div_el_bar.offsetHeight;\r\n\r\n        dropdownEl.style.top = y + \"px\";\r\n\r\n        if (!show) {\r\n            dropdownEl.classList.add(\"component-dropdown--closing\");\r\n            setTimeout(function () {\r\n                dropdownEl.classList.remove(\"component-dropdown--closing\");\r\n            }, 500);\r\n        }\r\n\r\n        if (show) {\r\n            dropdownEl.classList.add('component-dropdown--opened');\r\n        } else {\r\n            dropdownEl.classList.remove('component-dropdown--opened');\r\n        }\r\n\r\n        x -= dropdownEl.offsetWidth;\r\n        dropdownEl.style.left = x + \"px\";\r\n    }\r\n\r\n    function initMenus() {\r\n\r\n        document.getElementsByClassName(\"accountbar__products\")[0].addEventListener(\"click\", function (e) {\r\n            e.stopPropagation();\r\n            switchDropdown(\"accountbar__products\", \"component-dropdown--products\");\r\n        });\r\n\r\n        if(document.getElementsByClassName(\"accountbar__user_profile\").length){\r\n            document.getElementsByClassName(\"accountbar__user_profile\")[0].addEventListener(\"click\", function (e) {\r\n                e.stopPropagation();\r\n                switchDropdown(\"accountbar__user_profile\", \"component-dropdown--user-info\");\r\n            });\r\n        }\r\n\r\n        for (let drop of document.getElementsByClassName(\"component-dropdown\")) {\r\n            drop.addEventListener(\"click\", function (e) { e.stopPropagation(); });\r\n        }\r\n\r\n        document.body.addEventListener(\"click\", function (e) {\r\n            hideOpenedMenus();\r\n        });\r\n    }\r\n\r\n    initMenus();\r\n})();\r\n","/* MIT https://github.com/kenwheeler/cash */\nconst doc = document, win = window, div = doc.createElement('div'), { filter, indexOf, map, push, reverse, slice, some, splice } = Array.prototype;\nconst idRe = /^#[\\w-]*$/, classRe = /^\\.[\\w-]*$/, htmlRe = /<.+>/, tagRe = /^\\w+$/;\n// @require ./variables.ts\nfunction find(selector, context = doc) {\n    return context !== doc && context.nodeType !== 1 && context.nodeType !== 9\n        ? []\n        : classRe.test(selector)\n            ? context.getElementsByClassName(selector.slice(1))\n            : tagRe.test(selector)\n                ? context.getElementsByTagName(selector)\n                : context.querySelectorAll(selector);\n}\n// @require ./find.ts\n// @require ./variables.ts\nclass Cash {\n    constructor(selector, context = doc) {\n        if (!selector)\n            return;\n        if (isCash(selector))\n            return selector;\n        let eles = selector;\n        if (isString(selector)) {\n            const ctx = isCash(context) ? context[0] : context;\n            eles = idRe.test(selector)\n                ? ctx.getElementById(selector.slice(1))\n                : htmlRe.test(selector)\n                    ? parseHTML(selector)\n                    : find(selector, ctx);\n            if (!eles)\n                return;\n        }\n        else if (isFunction(selector)) {\n            return this.ready(selector); //FIXME: `fn.ready` is not included in `core`, but it's actually a core functionality\n        }\n        if (eles.nodeType || eles === win)\n            eles = [eles];\n        this.length = eles.length;\n        for (let i = 0, l = this.length; i < l; i++) {\n            this[i] = eles[i];\n        }\n    }\n    init(selector, context) {\n        return new Cash(selector, context);\n    }\n}\nconst cash = Cash.prototype.init;\ncash.fn = cash.prototype = Cash.prototype; // Ensuring that `cash () instanceof cash`\nCash.prototype.length = 0;\nCash.prototype.splice = splice; // Ensuring a cash collection gets printed as array-like in Chrome\nif (typeof Symbol === 'function') {\n    Cash.prototype[Symbol['iterator']] = Array.prototype[Symbol['iterator']];\n}\nCash.prototype.get = function (index) {\n    if (index === undefined)\n        return slice.call(this);\n    return this[index < 0 ? index + this.length : index];\n};\nCash.prototype.eq = function (index) {\n    return cash(this.get(index));\n};\nCash.prototype.first = function () {\n    return this.eq(0);\n};\nCash.prototype.last = function () {\n    return this.eq(-1);\n};\nCash.prototype.map = function (callback) {\n    return cash(map.call(this, (ele, i) => callback.call(ele, i, ele)));\n};\nCash.prototype.slice = function () {\n    return cash(slice.apply(this, arguments));\n};\n// @require ./cash.ts\nconst dashAlphaRe = /-([a-z])/g;\nfunction camelCaseReplace(all, letter) {\n    return letter.toUpperCase();\n}\nfunction camelCase(str) {\n    return str.replace(dashAlphaRe, camelCaseReplace);\n}\ncash.camelCase = camelCase;\n// @require ./cash.ts\nfunction each(arr, callback) {\n    for (let i = 0, l = arr.length; i < l; i++) {\n        if (callback.call(arr[i], i, arr[i]) === false)\n            break;\n    }\n}\ncash.each = each;\nCash.prototype.each = function (callback) {\n    each(this, callback);\n    return this;\n};\nCash.prototype.removeProp = function (prop) {\n    return this.each((i, ele) => { delete ele[prop]; });\n};\n// @require ./cash.ts\nfunction extend(target, ...objs) {\n    let args = arguments, length = args.length;\n    for (let i = (length < 2 ? 0 : 1); i < length; i++) {\n        for (let key in args[i]) {\n            target[key] = args[i][key];\n        }\n    }\n    return target;\n}\nCash.prototype.extend = function (plugins) {\n    return extend(cash.fn, plugins);\n};\ncash.extend = extend;\n// @require ./cash.ts\nlet guid = 1;\ncash.guid = guid;\n// @require ./cash.ts\nfunction matches(ele, selector) {\n    const matches = ele && (ele.matches || ele['webkitMatchesSelector'] || ele['mozMatchesSelector'] || ele['msMatchesSelector'] || ele['oMatchesSelector']);\n    return !!matches && matches.call(ele, selector);\n}\ncash.matches = matches;\n// @require ./variables.ts\nfunction pluck(arr, prop, deep) {\n    const plucked = [];\n    for (let i = 0, l = arr.length; i < l; i++) {\n        let val = arr[i][prop];\n        while (val != null) {\n            plucked.push(val);\n            if (!deep)\n                break;\n            val = val[prop];\n        }\n    }\n    return plucked;\n}\n// @require ./cash.ts\nfunction isCash(x) {\n    return x instanceof Cash;\n}\nfunction isFunction(x) {\n    return typeof x === 'function';\n}\nfunction isString(x) {\n    return typeof x === 'string';\n}\nfunction isNumeric(x) {\n    return !isNaN(parseFloat(x)) && isFinite(x);\n}\nconst { isArray } = Array;\ncash.isFunction = isFunction;\ncash.isString = isString;\ncash.isNumeric = isNumeric;\ncash.isArray = isArray;\nCash.prototype.prop = function (prop, value) {\n    if (!prop)\n        return;\n    if (isString(prop)) {\n        if (arguments.length < 2)\n            return this[0] && this[0][prop];\n        return this.each((i, ele) => { ele[prop] = value; });\n    }\n    for (let key in prop) {\n        this.prop(key, prop[key]);\n    }\n    return this;\n};\n// @require ./matches.ts\n// @require ./type_checking.ts\nfunction getCompareFunction(comparator) {\n    return isString(comparator)\n        ? (i, ele) => matches(ele, comparator)\n        : isFunction(comparator)\n            ? comparator\n            : isCash(comparator)\n                ? (i, ele) => comparator.is(ele)\n                : (i, ele) => ele === comparator;\n}\nCash.prototype.filter = function (comparator) {\n    if (!comparator)\n        return cash();\n    const compare = getCompareFunction(comparator);\n    return cash(filter.call(this, (ele, i) => compare.call(ele, i, ele)));\n};\n// @require collection/filter.ts\nfunction filtered(collection, comparator) {\n    return !comparator || !collection.length ? collection : collection.filter(comparator);\n}\n// @require ./type_checking.ts\nconst splitValuesRe = /\\S+/g;\nfunction getSplitValues(str) {\n    return isString(str) ? str.match(splitValuesRe) || [] : [];\n}\nCash.prototype.hasClass = function (cls) {\n    return cls && some.call(this, ele => ele.classList.contains(cls));\n};\nCash.prototype.removeAttr = function (attr) {\n    const attrs = getSplitValues(attr);\n    if (!attrs.length)\n        return this;\n    return this.each((i, ele) => {\n        each(attrs, (i, a) => {\n            ele.removeAttribute(a);\n        });\n    });\n};\nfunction attr(attr, value) {\n    if (!attr)\n        return;\n    if (isString(attr)) {\n        if (arguments.length < 2) {\n            if (!this[0])\n                return;\n            const value = this[0].getAttribute(attr);\n            return value === null ? undefined : value;\n        }\n        if (value === null)\n            return this.removeAttr(attr);\n        return this.each((i, ele) => { ele.setAttribute(attr, value); });\n    }\n    for (let key in attr) {\n        this.attr(key, attr[key]);\n    }\n    return this;\n}\nCash.prototype.attr = attr;\nCash.prototype.toggleClass = function (cls, force) {\n    const classes = getSplitValues(cls), isForce = (force !== undefined);\n    if (!classes.length)\n        return this;\n    return this.each((i, ele) => {\n        each(classes, (i, c) => {\n            if (isForce) {\n                force ? ele.classList.add(c) : ele.classList.remove(c);\n            }\n            else {\n                ele.classList.toggle(c);\n            }\n        });\n    });\n};\nCash.prototype.addClass = function (cls) {\n    return this.toggleClass(cls, true);\n};\nCash.prototype.removeClass = function (cls) {\n    return !arguments.length ? this.attr('class', '') : this.toggleClass(cls, false);\n};\n// @optional ./add_class.ts\n// @optional ./attr.ts\n// @optional ./has_class.ts\n// @optional ./prop.ts\n// @optional ./remove_attr.ts\n// @optional ./remove_class.ts\n// @optional ./remove_prop.ts\n// @optional ./toggle_class.ts\n// @require ./cash.ts\n// @require ./variables\nfunction unique(arr) {\n    return arr.length > 1 ? filter.call(arr, (item, index, self) => indexOf.call(self, item) === index) : arr;\n}\ncash.unique = unique;\nCash.prototype.add = function (selector, context) {\n    return cash(unique(this.get().concat(cash(selector, context).get())));\n};\n// @require core/variables.ts\nfunction computeStyle(ele, prop, isVariable) {\n    if (ele.nodeType !== 1 || !prop)\n        return;\n    const style = win.getComputedStyle(ele, null);\n    return prop ? (isVariable ? style.getPropertyValue(prop) || undefined : style[prop]) : style;\n}\n// @require ./compute_style.ts\nfunction computeStyleInt(ele, prop) {\n    return parseInt(computeStyle(ele, prop), 10) || 0;\n}\nconst cssVariableRe = /^--/;\n// @require ./variables.ts\nfunction isCSSVariable(prop) {\n    return cssVariableRe.test(prop);\n}\n// @require core/camel_case.ts\n// @require core/cash.ts\n// @require core/each.ts\n// @require core/variables.ts\n// @require ./is_css_variable.ts\nconst prefixedProps = {}, { style } = div, vendorsPrefixes = ['webkit', 'moz', 'ms', 'o'];\nfunction getPrefixedProp(prop, isVariable = isCSSVariable(prop)) {\n    if (isVariable)\n        return prop;\n    if (!prefixedProps[prop]) {\n        const propCC = camelCase(prop), propUC = `${propCC.charAt(0).toUpperCase()}${propCC.slice(1)}`, props = (`${propCC} ${vendorsPrefixes.join(`${propUC} `)}${propUC}`).split(' ');\n        each(props, (i, p) => {\n            if (p in style) {\n                prefixedProps[prop] = p;\n                return false;\n            }\n        });\n    }\n    return prefixedProps[prop];\n}\n;\ncash.prefixedProp = getPrefixedProp;\n// @require core/type_checking.ts\n// @require ./is_css_variable.ts\nconst numericProps = {\n    animationIterationCount: true,\n    columnCount: true,\n    flexGrow: true,\n    flexShrink: true,\n    fontWeight: true,\n    lineHeight: true,\n    opacity: true,\n    order: true,\n    orphans: true,\n    widows: true,\n    zIndex: true\n};\nfunction getSuffixedValue(prop, value, isVariable = isCSSVariable(prop)) {\n    return !isVariable && !numericProps[prop] && isNumeric(value) ? `${value}px` : value;\n}\nfunction css(prop, value) {\n    if (isString(prop)) {\n        const isVariable = isCSSVariable(prop);\n        prop = getPrefixedProp(prop, isVariable);\n        if (arguments.length < 2)\n            return this[0] && computeStyle(this[0], prop, isVariable);\n        if (!prop)\n            return this;\n        value = getSuffixedValue(prop, value, isVariable);\n        return this.each((i, ele) => {\n            if (ele.nodeType !== 1)\n                return;\n            if (isVariable) {\n                ele.style.setProperty(prop, value);\n            }\n            else {\n                ele.style[prop] = value; //TSC\n            }\n        });\n    }\n    for (let key in prop) {\n        this.css(key, prop[key]);\n    }\n    return this;\n}\n;\nCash.prototype.css = css;\n// @optional ./css.ts\nconst dataNamespace = '__cashData', dataAttributeRe = /^data-(.*)/;\n// @require core/cash.ts\n// @require ./helpers/variables.ts\nfunction hasData(ele) {\n    return dataNamespace in ele;\n}\ncash.hasData = hasData;\n// @require ./variables.ts\nfunction getDataCache(ele) {\n    return ele[dataNamespace] = (ele[dataNamespace] || {});\n}\n// @require attributes/attr.ts\n// @require ./get_data_cache.ts\nfunction getData(ele, key) {\n    const cache = getDataCache(ele);\n    if (key) {\n        if (!(key in cache)) {\n            let value = ele.dataset ? ele.dataset[key] || ele.dataset[camelCase(key)] : cash(ele).attr(`data-${key}`);\n            if (value !== undefined) {\n                try {\n                    value = JSON.parse(value);\n                }\n                catch (e) { }\n                cache[key] = value;\n            }\n        }\n        return cache[key];\n    }\n    return cache;\n}\n// @require ./variables.ts\n// @require ./get_data_cache.ts\nfunction removeData(ele, key) {\n    if (key === undefined) {\n        delete ele[dataNamespace];\n    }\n    else {\n        delete getDataCache(ele)[key];\n    }\n}\n// @require ./get_data_cache.ts\nfunction setData(ele, key, value) {\n    getDataCache(ele)[key] = value;\n}\nfunction data(name, value) {\n    if (!name) {\n        if (!this[0])\n            return;\n        each(this[0].attributes, (i, attr) => {\n            const match = attr.name.match(dataAttributeRe);\n            if (!match)\n                return;\n            this.data(match[1]);\n        });\n        return getData(this[0]);\n    }\n    if (isString(name)) {\n        if (value === undefined)\n            return this[0] && getData(this[0], name);\n        return this.each((i, ele) => setData(ele, name, value));\n    }\n    for (let key in name) {\n        this.data(key, name[key]);\n    }\n    return this;\n}\nCash.prototype.data = data;\nCash.prototype.removeData = function (key) {\n    return this.each((i, ele) => removeData(ele, key));\n};\n// @optional ./data.ts\n// @optional ./remove_data.ts\n// @require css/helpers/compute_style_int.ts\nfunction getExtraSpace(ele, xAxis) {\n    return computeStyleInt(ele, `border${xAxis ? 'Left' : 'Top'}Width`) + computeStyleInt(ele, `padding${xAxis ? 'Left' : 'Top'}`) + computeStyleInt(ele, `padding${xAxis ? 'Right' : 'Bottom'}`) + computeStyleInt(ele, `border${xAxis ? 'Right' : 'Bottom'}Width`);\n}\neach(['Width', 'Height'], (i, prop) => {\n    Cash.prototype[`inner${prop}`] = function () {\n        if (!this[0])\n            return;\n        if (this[0] === win)\n            return win[`inner${prop}`];\n        return this[0][`client${prop}`];\n    };\n});\neach(['width', 'height'], (index, prop) => {\n    Cash.prototype[prop] = function (value) {\n        if (!this[0])\n            return value === undefined ? undefined : this;\n        if (!arguments.length) {\n            if (this[0] === win)\n                return this[0][camelCase(`outer-${prop}`)];\n            return this[0].getBoundingClientRect()[prop] - getExtraSpace(this[0], !index);\n        }\n        const valueNumber = parseInt(value, 10);\n        return this.each((i, ele) => {\n            if (ele.nodeType !== 1)\n                return;\n            const boxSizing = computeStyle(ele, 'boxSizing');\n            ele.style[prop] = getSuffixedValue(prop, valueNumber + (boxSizing === 'border-box' ? getExtraSpace(ele, !index) : 0));\n        });\n    };\n});\neach(['Width', 'Height'], (index, prop) => {\n    Cash.prototype[`outer${prop}`] = function (includeMargins) {\n        if (!this[0])\n            return;\n        if (this[0] === win)\n            return win[`outer${prop}`];\n        return this[0][`offset${prop}`] + (includeMargins ? computeStyleInt(this[0], `margin${!index ? 'Left' : 'Top'}`) + computeStyleInt(this[0], `margin${!index ? 'Right' : 'Bottom'}`) : 0);\n    };\n});\n// @optional ./inner.ts\n// @optional ./normal.ts\n// @optional ./outer.ts\n// @require css/helpers/compute_style.ts\nconst defaultDisplay = {};\nfunction getDefaultDisplay(tagName) {\n    if (defaultDisplay[tagName])\n        return defaultDisplay[tagName];\n    const ele = doc.createElement(tagName);\n    doc.body.appendChild(ele);\n    const display = computeStyle(ele, 'display');\n    doc.body.removeChild(ele);\n    return defaultDisplay[tagName] = display !== 'none' ? display : 'block';\n}\n// @require css/helpers/compute_style.ts\nfunction isHidden(ele) {\n    return computeStyle(ele, 'display') === 'none';\n}\nCash.prototype.toggle = function (force) {\n    return this.each((i, ele) => {\n        force = force !== undefined ? force : isHidden(ele);\n        if (force) {\n            ele.style.display = '';\n            if (isHidden(ele)) {\n                ele.style.display = getDefaultDisplay(ele.tagName);\n            }\n        }\n        else {\n            ele.style.display = 'none';\n        }\n    });\n};\nCash.prototype.hide = function () {\n    return this.toggle(false);\n};\nCash.prototype.show = function () {\n    return this.toggle(true);\n};\n// @optional ./hide.ts\n// @optional ./show.ts\n// @optional ./toggle.ts\nfunction hasNamespaces(ns1, ns2) {\n    return !ns2 || !some.call(ns2, ns => ns1.indexOf(ns) < 0);\n}\nconst eventsNamespace = '__cashEvents', eventsNamespacesSeparator = '.', eventsFocus = { focus: 'focusin', blur: 'focusout' }, eventsHover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }, eventsMouseRe = /^(?:mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;\n// @require ./variables.ts\nfunction getEventNameBubbling(name) {\n    return eventsHover[name] || eventsFocus[name] || name;\n}\n// @require ./variables.ts\nfunction getEventsCache(ele) {\n    return ele[eventsNamespace] = (ele[eventsNamespace] || {});\n}\n// @require core/guid.ts\n// @require events/helpers/get_events_cache.ts\nfunction addEvent(ele, name, namespaces, selector, callback) {\n    callback['guid'] = (callback['guid'] || guid++);\n    const eventCache = getEventsCache(ele);\n    eventCache[name] = (eventCache[name] || []);\n    eventCache[name].push([namespaces, selector, callback]);\n    ele.addEventListener(name, callback); //TSC\n}\n// @require ./variables.ts\nfunction parseEventName(eventName) {\n    const parts = eventName.split(eventsNamespacesSeparator);\n    return [parts[0], parts.slice(1).sort()]; // [name, namespace[]]\n}\n// @require ./get_events_cache.ts\n// @require ./has_namespaces.ts\n// @require ./parse_event_name.ts\nfunction removeEvent(ele, name, namespaces, selector, callback) {\n    const cache = getEventsCache(ele);\n    if (!name) {\n        for (name in cache) {\n            removeEvent(ele, name, namespaces, selector, callback);\n        }\n        delete ele[eventsNamespace];\n    }\n    else if (cache[name]) {\n        cache[name] = cache[name].filter(([ns, sel, cb]) => {\n            if ((callback && cb['guid'] !== callback['guid']) || !hasNamespaces(ns, namespaces) || (selector && selector !== sel))\n                return true;\n            ele.removeEventListener(name, cb);\n        });\n    }\n}\nCash.prototype.off = function (eventFullName, selector, callback) {\n    if (eventFullName === undefined) {\n        this.each((i, ele) => removeEvent(ele));\n    }\n    else {\n        if (isFunction(selector)) {\n            callback = selector;\n            selector = '';\n        }\n        each(getSplitValues(eventFullName), (i, eventFullName) => {\n            const [name, namespaces] = parseEventName(getEventNameBubbling(eventFullName));\n            this.each((i, ele) => removeEvent(ele, name, namespaces, selector, callback)); //TSC\n        });\n    }\n    return this;\n};\nfunction on(eventFullName, selector, callback, _one) {\n    if (!isString(eventFullName)) {\n        for (let key in eventFullName) {\n            this.on(key, selector, eventFullName[key]);\n        }\n        return this;\n    }\n    if (isFunction(selector)) {\n        callback = selector;\n        selector = '';\n    }\n    each(getSplitValues(eventFullName), (i, eventFullName) => {\n        const [name, namespaces] = parseEventName(getEventNameBubbling(eventFullName));\n        this.each((i, ele) => {\n            const finalCallback = function (event) {\n                if (event.namespace && !hasNamespaces(namespaces, event.namespace.split(eventsNamespacesSeparator)))\n                    return;\n                let thisArg = ele;\n                if (selector) {\n                    let target = event.target;\n                    while (!matches(target, selector)) { //TSC\n                        if (target === ele)\n                            return;\n                        target = target.parentNode;\n                        if (!target)\n                            return;\n                    }\n                    thisArg = target;\n                    event.__delegate = true;\n                }\n                if (event.__delegate) {\n                    Object.defineProperty(event, 'currentTarget', {\n                        configurable: true,\n                        get() {\n                            return thisArg;\n                        }\n                    });\n                }\n                const returnValue = callback.call(thisArg, event, event.data); //TSC\n                if (_one) {\n                    removeEvent(ele, name, namespaces, selector, finalCallback); //TSC\n                }\n                if (returnValue === false) {\n                    event.preventDefault();\n                    event.stopPropagation();\n                }\n            };\n            finalCallback['guid'] = callback['guid'] = (callback['guid'] || guid++);\n            addEvent(ele, name, namespaces, selector, finalCallback); //TSC\n        });\n    });\n    return this;\n}\nCash.prototype.on = on;\nfunction one(eventFullName, selector, callback) {\n    return this.on(eventFullName, selector, callback, true); //TSC\n}\n;\nCash.prototype.one = one;\nCash.prototype.ready = function (callback) {\n    const finalCallback = () => callback(cash);\n    if (doc.readyState !== 'loading') {\n        setTimeout(finalCallback);\n    }\n    else {\n        doc.addEventListener('DOMContentLoaded', finalCallback);\n    }\n    return this;\n};\nCash.prototype.trigger = function (eventFullName, data) {\n    let evt = eventFullName;\n    if (isString(eventFullName)) {\n        const [name, namespaces] = parseEventName(eventFullName), type = eventsMouseRe.test(name) ? 'MouseEvents' : 'HTMLEvents';\n        evt = doc.createEvent(type);\n        evt.initEvent(name, true, true);\n        evt['namespace'] = namespaces.join(eventsNamespacesSeparator);\n    }\n    evt['data'] = data;\n    const isEventFocus = (evt['type'] in eventsFocus);\n    return this.each((i, ele) => {\n        if (isEventFocus && isFunction(ele[evt['type']])) {\n            ele[evt['type']]();\n        }\n        else {\n            ele.dispatchEvent(evt);\n        }\n    });\n};\n// @optional ./off.ts\n// @optional ./on.ts\n// @optional ./one.ts\n// @optional ./ready.ts\n// @optional ./trigger.ts\n// @require core/pluck.ts\n// @require core/variables.ts\nfunction getValue(ele) {\n    if (ele.multiple)\n        return pluck(filter.call(ele.options, option => option.selected && !option.disabled && !option.parentNode.disabled), 'value');\n    return ele.value || '';\n}\nconst queryEncodeSpaceRe = /%20/g;\nfunction queryEncode(prop, value) {\n    return `&${encodeURIComponent(prop)}=${encodeURIComponent(value).replace(queryEncodeSpaceRe, '+')}`;\n}\n// @require core/cash.ts\n// @require core/each.ts\n// @require core/type_checking.ts\n// @require ./helpers/get_value.ts\n// @require ./helpers/query_encode.ts\nconst skippableRe = /file|reset|submit|button|image/i, checkableRe = /radio|checkbox/i;\nCash.prototype.serialize = function () {\n    let query = '';\n    this.each((i, ele) => {\n        each(ele.elements || [ele], (i, ele) => {\n            if (ele.disabled || !ele.name || ele.tagName === 'FIELDSET' || skippableRe.test(ele.type) || (checkableRe.test(ele.type) && !ele.checked))\n                return;\n            const value = getValue(ele);\n            if (value === undefined)\n                return;\n            const values = isArray(value) ? value : [value];\n            each(values, (i, value) => {\n                query += queryEncode(ele.name, value);\n            });\n        });\n    });\n    return query.substr(1);\n};\nfunction val(value) {\n    if (value === undefined)\n        return this[0] && getValue(this[0]);\n    return this.each((i, ele) => {\n        if (ele.tagName === 'SELECT') {\n            const eleValue = isArray(value) ? value : (value === null ? [] : [value]);\n            each(ele.options, (i, option) => {\n                option.selected = eleValue.indexOf(option.value) >= 0;\n            });\n        }\n        else {\n            ele.value = value === null ? '' : value;\n        }\n    });\n}\nCash.prototype.val = val;\nCash.prototype.clone = function () {\n    return this.map((i, ele) => ele.cloneNode(true));\n};\nCash.prototype.detach = function () {\n    return this.each((i, ele) => {\n        if (ele.parentNode) {\n            ele.parentNode.removeChild(ele);\n        }\n    });\n};\n// @require ./cash.ts\n// @require ./variables.ts\n// @require ./type_checking.ts\n// @require collection/get.ts\n// @require manipulation/detach.ts\nconst fragmentRe = /^\\s*<(\\w+)[^>]*>/, singleTagRe = /^\\s*<(\\w+)\\s*\\/?>(?:<\\/\\1>)?\\s*$/;\nlet containers;\nfunction initContainers() {\n    if (containers)\n        return;\n    const table = doc.createElement('table'), tr = doc.createElement('tr');\n    containers = {\n        '*': div,\n        tr: doc.createElement('tbody'),\n        td: tr,\n        th: tr,\n        thead: table,\n        tbody: table,\n        tfoot: table,\n    };\n}\nfunction parseHTML(html) {\n    initContainers();\n    if (!isString(html))\n        return [];\n    if (singleTagRe.test(html))\n        return [doc.createElement(RegExp.$1)];\n    const fragment = fragmentRe.test(html) && RegExp.$1, container = containers[fragment] || containers['*'];\n    container.innerHTML = html;\n    return cash(container.childNodes).detach().get();\n}\ncash.parseHTML = parseHTML;\nCash.prototype.empty = function () {\n    const ele = this[0];\n    if (ele) {\n        while (ele.firstChild) {\n            ele.removeChild(ele.firstChild);\n        }\n    }\n    return this;\n};\nfunction html(html) {\n    if (html === undefined)\n        return this[0] && this[0].innerHTML;\n    return this.each((i, ele) => { ele.innerHTML = html; });\n}\nCash.prototype.html = html;\nCash.prototype.remove = function () {\n    return this.detach().off();\n};\nfunction text(text) {\n    if (text === undefined)\n        return this[0] ? this[0].textContent : '';\n    return this.each((i, ele) => { ele.textContent = text; });\n}\n;\nCash.prototype.text = text;\nCash.prototype.unwrap = function () {\n    this.parent().each((i, ele) => {\n        const $ele = cash(ele);\n        $ele.replaceWith($ele.children());\n    });\n    return this;\n};\n// @require core/cash.ts\n// @require core/variables.ts\nconst docEle = doc.documentElement;\nCash.prototype.offset = function () {\n    const ele = this[0];\n    if (!ele)\n        return;\n    const rect = ele.getBoundingClientRect();\n    return {\n        top: rect.top + win.pageYOffset - docEle.clientTop,\n        left: rect.left + win.pageXOffset - docEle.clientLeft\n    };\n};\nCash.prototype.offsetParent = function () {\n    return cash(this[0] && this[0].offsetParent);\n};\nCash.prototype.position = function () {\n    const ele = this[0];\n    if (!ele)\n        return;\n    return {\n        left: ele.offsetLeft,\n        top: ele.offsetTop\n    };\n};\nCash.prototype.children = function (comparator) {\n    let result = [];\n    this.each((i, ele) => { push.apply(result, ele.children); });\n    return filtered(cash(unique(result)), comparator);\n};\nCash.prototype.contents = function () {\n    let result = [];\n    this.each((i, ele) => {\n        push.apply(result, ele.tagName === 'IFRAME' ? [ele.contentDocument] : ele.childNodes);\n    });\n    return cash(unique(result));\n};\nCash.prototype.find = function (selector) {\n    const result = [];\n    for (let i = 0, l = this.length; i < l; i++) {\n        const found = find(selector, this[i]);\n        if (found.length) {\n            push.apply(result, found);\n        }\n    }\n    return cash(unique(result));\n};\n// @require collection/filter.ts\n// @require collection/filter.ts\n// @require traversal/find.ts\nconst scriptTypeRe = /^$|^module$|\\/(?:java|ecma)script/i, HTMLCDATARe = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\nfunction evalScripts(node) {\n    const collection = cash(node);\n    collection.filter('script').add(collection.find('script')).each((i, ele) => {\n        if (!ele.src && scriptTypeRe.test(ele.type)) { // The script type is supported\n            if (ele.ownerDocument.documentElement.contains(ele)) { // The element is attached to the DOM // Using `documentElement` for broader browser support\n                eval(ele.textContent.replace(HTMLCDATARe, ''));\n            }\n        }\n    });\n}\n// @require ./eval_scripts.ts\nfunction insertElement(anchor, child, prepend, prependTarget) {\n    if (prepend) {\n        anchor.insertBefore(child, prependTarget);\n    }\n    else {\n        anchor.appendChild(child);\n    }\n    evalScripts(child);\n}\n// @require core/each.ts\n// @require core/type_checking.ts\n// @require ./insert_element.ts\nfunction insertContent(parent, child, prepend) {\n    each(parent, (index, parentEle) => {\n        each(child, (i, childEle) => {\n            insertElement(parentEle, !index ? childEle : childEle.cloneNode(true), prepend, prepend && parentEle.firstChild);\n        });\n    });\n}\nCash.prototype.append = function () {\n    each(arguments, (i, selector) => {\n        insertContent(this, cash(selector));\n    });\n    return this;\n};\nCash.prototype.appendTo = function (selector) {\n    insertContent(cash(selector), this);\n    return this;\n};\nCash.prototype.insertAfter = function (selector) {\n    cash(selector).each((index, ele) => {\n        const parent = ele.parentNode;\n        if (parent) {\n            this.each((i, e) => {\n                insertElement(parent, !index ? e : e.cloneNode(true), true, ele.nextSibling);\n            });\n        }\n    });\n    return this;\n};\nCash.prototype.after = function () {\n    each(reverse.apply(arguments), (i, selector) => {\n        reverse.apply(cash(selector).slice()).insertAfter(this);\n    });\n    return this;\n};\nCash.prototype.insertBefore = function (selector) {\n    cash(selector).each((index, ele) => {\n        const parent = ele.parentNode;\n        if (parent) {\n            this.each((i, e) => {\n                insertElement(parent, !index ? e : e.cloneNode(true), true, ele);\n            });\n        }\n    });\n    return this;\n};\nCash.prototype.before = function () {\n    each(arguments, (i, selector) => {\n        cash(selector).insertBefore(this);\n    });\n    return this;\n};\nCash.prototype.prepend = function () {\n    each(arguments, (i, selector) => {\n        insertContent(this, cash(selector), true);\n    });\n    return this;\n};\nCash.prototype.prependTo = function (selector) {\n    insertContent(cash(selector), reverse.apply(this.slice()), true);\n    return this;\n};\nCash.prototype.replaceWith = function (selector) {\n    return this.before(selector).remove();\n};\nCash.prototype.replaceAll = function (selector) {\n    cash(selector).replaceWith(this);\n    return this;\n};\nCash.prototype.wrapAll = function (selector) {\n    if (this[0]) {\n        const structure = cash(selector);\n        this.first().before(structure);\n        let wrapper = structure[0];\n        while (wrapper.children.length)\n            wrapper = wrapper.firstElementChild;\n        this.appendTo(wrapper);\n    }\n    return this;\n};\nCash.prototype.wrap = function (selector) {\n    return this.each((index, ele) => {\n        const wrapper = cash(selector)[0];\n        cash(ele).wrapAll(!index ? wrapper : wrapper.cloneNode(true));\n    });\n};\nCash.prototype.wrapInner = function (selector) {\n    return this.each((i, ele) => {\n        const $ele = cash(ele), contents = $ele.contents();\n        contents.length ? contents.wrapAll(selector) : $ele.append(selector);\n    });\n};\nCash.prototype.has = function (selector) {\n    const comparator = isString(selector)\n        ? (i, ele) => !!find(selector, ele).length\n        : (i, ele) => ele.contains(selector);\n    return this.filter(comparator);\n};\nCash.prototype.is = function (comparator) {\n    if (!comparator || !this[0])\n        return false;\n    const compare = getCompareFunction(comparator);\n    let check = false;\n    this.each((i, ele) => {\n        check = compare.call(ele, i, ele);\n        return !check;\n    });\n    return check;\n};\nCash.prototype.next = function (comparator, _all) {\n    return filtered(cash(unique(pluck(this, 'nextElementSibling', _all))), comparator);\n};\nCash.prototype.nextAll = function (comparator) {\n    return this.next(comparator, true);\n};\nCash.prototype.not = function (comparator) {\n    if (!comparator || !this[0])\n        return this;\n    const compare = getCompareFunction(comparator);\n    return this.filter((i, ele) => !compare.call(ele, i, ele));\n};\nCash.prototype.parent = function (comparator) {\n    return filtered(cash(unique(pluck(this, 'parentNode'))), comparator);\n};\nCash.prototype.index = function (selector) {\n    const child = selector ? cash(selector)[0] : this[0], collection = selector ? this : cash(child).parent().children();\n    return indexOf.call(collection, child);\n};\nCash.prototype.closest = function (comparator) {\n    if (!comparator || !this[0])\n        return cash();\n    const filtered = this.filter(comparator);\n    if (filtered.length)\n        return filtered;\n    return this.parent().closest(comparator);\n};\nCash.prototype.parents = function (comparator) {\n    return filtered(cash(unique(pluck(this, 'parentElement', true))), comparator);\n};\nCash.prototype.prev = function (comparator, _all) {\n    return filtered(cash(unique(pluck(this, 'previousElementSibling', _all))), comparator);\n};\nCash.prototype.prevAll = function (comparator) {\n    return this.prev(comparator, true);\n};\nCash.prototype.siblings = function (comparator) {\n    const ele = this[0];\n    return filtered(this.parent().children().filter((i, child) => child !== ele), comparator);\n};\n// @optional ./children.ts\n// @optional ./closest.ts\n// @optional ./contents.ts\n// @optional ./find.ts\n// @optional ./has.ts\n// @optional ./is.ts\n// @optional ./next.ts\n// @optional ./not.ts\n// @optional ./parent.ts\n// @optional ./parents.ts\n// @optional ./prev.ts\n// @optional ./siblings.ts\n// @optional attributes/index.ts\n// @optional collection/index.ts\n// @optional css/index.ts\n// @optional data/index.ts\n// @optional dimensions/index.ts\n// @optional effects/index.ts\n// @optional events/index.ts\n// @optional forms/index.ts\n// @optional manipulation/index.ts\n// @optional offset/index.ts\n// @optional traversal/index.ts\n// @require core/index.ts\n// @priority -100\n// @require ./cash.ts\nexport default cash;\n\n","function Vnode(tag, key, attrs0, children0, text, dom) {\n\treturn {tag: tag, key: key, attrs: attrs0, children: children0, text: text, dom: dom, domSize: undefined, state: undefined, events: undefined, instance: undefined}\n}\nVnode.normalize = function(node) {\n\tif (Array.isArray(node)) return Vnode(\"[\", undefined, undefined, Vnode.normalizeChildren(node), undefined, undefined)\n\tif (node != null && typeof node !== \"object\") return Vnode(\"#\", undefined, undefined, node === false ? \"\" : node, undefined, undefined)\n\treturn node\n}\nVnode.normalizeChildren = function(input) {\n\tvar children0 = []\n\tfor (var i = 0; i < input.length; i++) {\n\t\tchildren0[i] = Vnode.normalize(input[i])\n\t}\n\treturn children0\n}\n// Call via `hyperscriptVnode0.apply(startOffset, arguments)`\n//\n// The reason I do it this way, forwarding the arguments and passing the start\n// offset in `this`, is so I don't have to create a temporary array in a\n// performance-critical path.\n//\n// In native ES6, I'd instead add a final `...args` parameter to the\n// `hyperscript0` and `fragment` factories and define this as\n// `hyperscriptVnode0(...args)`, since modern engines do optimize that away. But\n// ES5 (what Mithril requires thanks to IE support) doesn't give me that luxury,\n// and engines aren't nearly intelligent enough to do either of these:\n//\n// 1. Elide the allocation for `[].slice.call(arguments, 1)` when it's passed to\n//    another function only to be indexed.\n// 2. Elide an `arguments` allocation when it's passed to any function other\n//    than `Function.prototype.apply` or `Reflect.apply`.\n//\n// In ES6, it'd probably look closer to this (I'd need to profile it, though):\n// var hyperscriptVnode = function(attrs1, ...children1) {\n//     if (attrs1 == null || typeof attrs1 === \"object\" && attrs1.tag == null && !Array.isArray(attrs1)) {\n//         if (children1.length === 1 && Array.isArray(children1[0])) children1 = children1[0]\n//     } else {\n//         children1 = children1.length === 0 && Array.isArray(attrs1) ? attrs1 : [attrs1, ...children1]\n//         attrs1 = undefined\n//     }\n//\n//     if (attrs1 == null) attrs1 = {}\n//     return Vnode(\"\", attrs1.key, attrs1, children1)\n// }\nvar hyperscriptVnode = function() {\n\tvar attrs1 = arguments[this], start = this + 1, children1\n\tif (attrs1 == null) {\n\t\tattrs1 = {}\n\t} else if (typeof attrs1 !== \"object\" || attrs1.tag != null || Array.isArray(attrs1)) {\n\t\tattrs1 = {}\n\t\tstart = this\n\t}\n\tif (arguments.length === start + 1) {\n\t\tchildren1 = arguments[start]\n\t\tif (!Array.isArray(children1)) children1 = [children1]\n\t} else {\n\t\tchildren1 = []\n\t\twhile (start < arguments.length) children1.push(arguments[start++])\n\t}\n\treturn Vnode(\"\", attrs1.key, attrs1, children1)\n}\nvar selectorParser = /(?:(^|#|\\.)([^#\\.\\[\\]]+))|(\\[(.+?)(?:\\s*=\\s*(\"|'|)((?:\\\\[\"'\\]]|.)*?)\\5)?\\])/g\nvar selectorCache = {}\nvar hasOwn = {}.hasOwnProperty\nfunction isEmpty(object) {\n\tfor (var key in object) if (hasOwn.call(object, key)) return false\n\treturn true\n}\nfunction compileSelector(selector) {\n\tvar match, tag = \"div\", classes = [], attrs = {}\n\twhile (match = selectorParser.exec(selector)) {\n\t\tvar type = match[1], value = match[2]\n\t\tif (type === \"\" && value !== \"\") tag = value\n\t\telse if (type === \"#\") attrs.id = value\n\t\telse if (type === \".\") classes.push(value)\n\t\telse if (match[3][0] === \"[\") {\n\t\t\tvar attrValue = match[6]\n\t\t\tif (attrValue) attrValue = attrValue.replace(/\\\\([\"'])/g, \"$1\").replace(/\\\\\\\\/g, \"\\\\\")\n\t\t\tif (match[4] === \"class\") classes.push(attrValue)\n\t\t\telse attrs[match[4]] = attrValue === \"\" ? attrValue : attrValue || true\n\t\t}\n\t}\n\tif (classes.length > 0) attrs.className = classes.join(\" \")\n\treturn selectorCache[selector] = {tag: tag, attrs: attrs}\n}\nfunction execSelector(state, vnode) {\n\tvar attrs = vnode.attrs\n\tvar children = Vnode.normalizeChildren(vnode.children)\n\tvar hasClass = hasOwn.call(attrs, \"class\")\n\tvar className = hasClass ? attrs.class : attrs.className\n\tvnode.tag = state.tag\n\tvnode.attrs = null\n\tvnode.children = undefined\n\tif (!isEmpty(state.attrs) && !isEmpty(attrs)) {\n\t\tvar newAttrs = {}\n\t\tfor (var key in attrs) {\n\t\t\tif (hasOwn.call(attrs, key)) newAttrs[key] = attrs[key]\n\t\t}\n\t\tattrs = newAttrs\n\t}\n\tfor (var key in state.attrs) {\n\t\tif (hasOwn.call(state.attrs, key) && key !== \"className\" && !hasOwn.call(attrs, key)){\n\t\t\tattrs[key] = state.attrs[key]\n\t\t}\n\t}\n\tif (className != null || state.attrs.className != null) attrs.className =\n\t\tclassName != null\n\t\t\t? state.attrs.className != null\n\t\t\t\t? String(state.attrs.className) + \" \" + String(className)\n\t\t\t\t: className\n\t\t\t: state.attrs.className != null\n\t\t\t\t? state.attrs.className\n\t\t\t\t: null\n\tif (hasClass) attrs.class = null\n\tfor (var key in attrs) {\n\t\tif (hasOwn.call(attrs, key) && key !== \"key\") {\n\t\t\tvnode.attrs = attrs\n\t\t\tbreak\n\t\t}\n\t}\n\tif (Array.isArray(children) && children.length === 1 && children[0] != null && children[0].tag === \"#\") {\n\t\tvnode.text = children[0].children\n\t} else {\n\t\tvnode.children = children\n\t}\n\treturn vnode\n}\nfunction hyperscript(selector) {\n\tif (selector == null || typeof selector !== \"string\" && typeof selector !== \"function\" && typeof selector.view !== \"function\") {\n\t\tthrow Error(\"The selector must be either a string or a component.\");\n\t}\n\tvar vnode = hyperscriptVnode.apply(1, arguments)\n\tif (typeof selector === \"string\") {\n\t\tvnode.children = Vnode.normalizeChildren(vnode.children)\n\t\tif (selector !== \"[\") return execSelector(selectorCache[selector] || compileSelector(selector), vnode)\n\t}\n\t\n\tvnode.tag = selector\n\treturn vnode\n}\nhyperscript.trust = function(html) {\n\tif (html == null) html = \"\"\n\treturn Vnode(\"<\", undefined, undefined, html, undefined, undefined)\n}\nhyperscript.fragment = function() {\n\tvar vnode2 = hyperscriptVnode.apply(0, arguments)\n\tvnode2.tag = \"[\"\n\tvnode2.children = Vnode.normalizeChildren(vnode2.children)\n\treturn vnode2\n}\nvar m = function m() { return hyperscript.apply(this, arguments) }\nm.m = hyperscript\nm.trust = hyperscript.trust\nm.fragment = hyperscript.fragment\n/** @constructor */\nvar PromisePolyfill = function(executor) {\n\tif (!(this instanceof PromisePolyfill)) throw new Error(\"Promise must be called with `new`\")\n\tif (typeof executor !== \"function\") throw new TypeError(\"executor must be a function\")\n\tvar self = this, resolvers = [], rejectors = [], resolveCurrent = handler(resolvers, true), rejectCurrent = handler(rejectors, false)\n\tvar instance = self._instance = {resolvers: resolvers, rejectors: rejectors}\n\tvar callAsync = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction handler(list, shouldAbsorb) {\n\t\treturn function execute(value) {\n\t\t\tvar then\n\t\t\ttry {\n\t\t\t\tif (shouldAbsorb && value != null && (typeof value === \"object\" || typeof value === \"function\") && typeof (then = value.then) === \"function\") {\n\t\t\t\t\tif (value === self) throw new TypeError(\"Promise can't be resolved w/ itself\")\n\t\t\t\t\texecuteOnce(then.bind(value))\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallAsync(function() {\n\t\t\t\t\t\tif (!shouldAbsorb && list.length === 0) console.error(\"Possible unhandled promise rejection:\", value)\n\t\t\t\t\t\tfor (var i = 0; i < list.length; i++) list[i](value)\n\t\t\t\t\t\tresolvers.length = 0, rejectors.length = 0\n\t\t\t\t\t\tinstance.state = shouldAbsorb\n\t\t\t\t\t\tinstance.retry = function() {execute(value)}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e) {\n\t\t\t\trejectCurrent(e)\n\t\t\t}\n\t\t}\n\t}\n\tfunction executeOnce(then) {\n\t\tvar runs = 0\n\t\tfunction run(fn) {\n\t\t\treturn function(value) {\n\t\t\t\tif (runs++ > 0) return\n\t\t\t\tfn(value)\n\t\t\t}\n\t\t}\n\t\tvar onerror = run(rejectCurrent)\n\t\ttry {then(run(resolveCurrent), onerror)} catch (e) {onerror(e)}\n\t}\n\texecuteOnce(executor)\n}\nPromisePolyfill.prototype.then = function(onFulfilled, onRejection) {\n\tvar self = this, instance = self._instance\n\tfunction handle(callback, list, next, state) {\n\t\tlist.push(function(value) {\n\t\t\tif (typeof callback !== \"function\") next(value)\n\t\t\telse try {resolveNext(callback(value))} catch (e) {if (rejectNext) rejectNext(e)}\n\t\t})\n\t\tif (typeof instance.retry === \"function\" && state === instance.state) instance.retry()\n\t}\n\tvar resolveNext, rejectNext\n\tvar promise = new PromisePolyfill(function(resolve, reject) {resolveNext = resolve, rejectNext = reject})\n\thandle(onFulfilled, instance.resolvers, resolveNext, true), handle(onRejection, instance.rejectors, rejectNext, false)\n\treturn promise\n}\nPromisePolyfill.prototype.catch = function(onRejection) {\n\treturn this.then(null, onRejection)\n}\nPromisePolyfill.prototype.finally = function(callback) {\n\treturn this.then(\n\t\tfunction(value) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn value\n\t\t\t})\n\t\t},\n\t\tfunction(reason) {\n\t\t\treturn PromisePolyfill.resolve(callback()).then(function() {\n\t\t\t\treturn PromisePolyfill.reject(reason);\n\t\t\t})\n\t\t}\n\t)\n}\nPromisePolyfill.resolve = function(value) {\n\tif (value instanceof PromisePolyfill) return value\n\treturn new PromisePolyfill(function(resolve) {resolve(value)})\n}\nPromisePolyfill.reject = function(value) {\n\treturn new PromisePolyfill(function(resolve, reject) {reject(value)})\n}\nPromisePolyfill.all = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tvar total = list.length, count = 0, values = []\n\t\tif (list.length === 0) resolve([])\n\t\telse for (var i = 0; i < list.length; i++) {\n\t\t\t(function(i) {\n\t\t\t\tfunction consume(value) {\n\t\t\t\t\tcount++\n\t\t\t\t\tvalues[i] = value\n\t\t\t\t\tif (count === total) resolve(values)\n\t\t\t\t}\n\t\t\t\tif (list[i] != null && (typeof list[i] === \"object\" || typeof list[i] === \"function\") && typeof list[i].then === \"function\") {\n\t\t\t\t\tlist[i].then(consume, reject)\n\t\t\t\t}\n\t\t\t\telse consume(list[i])\n\t\t\t})(i)\n\t\t}\n\t})\n}\nPromisePolyfill.race = function(list) {\n\treturn new PromisePolyfill(function(resolve, reject) {\n\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\tlist[i].then(resolve, reject)\n\t\t}\n\t})\n}\nif (typeof window !== \"undefined\") {\n\tif (typeof window.Promise === \"undefined\") {\n\t\twindow.Promise = PromisePolyfill\n\t} else if (!window.Promise.prototype.finally) {\n\t\twindow.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tvar PromisePolyfill = window.Promise\n} else if (typeof global !== \"undefined\") {\n\tif (typeof global.Promise === \"undefined\") {\n\t\tglobal.Promise = PromisePolyfill\n\t} else if (!global.Promise.prototype.finally) {\n\t\tglobal.Promise.prototype.finally = PromisePolyfill.prototype.finally\n\t}\n\tvar PromisePolyfill = global.Promise\n} else {\n}\nvar buildQueryString = function(object) {\n\tif (Object.prototype.toString.call(object) !== \"[object Object]\") return \"\"\n\tvar args = []\n\tfor (var key in object) {\n\t\tdestructure(key, object[key])\n\t}\n\treturn args.join(\"&\")\n\tfunction destructure(key, value) {\n\t\tif (Array.isArray(value)) {\n\t\t\tfor (var i = 0; i < value.length; i++) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse if (Object.prototype.toString.call(value) === \"[object Object]\") {\n\t\t\tfor (var i in value) {\n\t\t\t\tdestructure(key + \"[\" + i + \"]\", value[i])\n\t\t\t}\n\t\t}\n\t\telse args.push(encodeURIComponent(key) + (value != null && value !== \"\" ? \"=\" + encodeURIComponent(value) : \"\"))\n\t}\n}\nvar _12 = function($window, Promise) {\n\tvar callbackCount = 0\n\tvar oncompletion\n\tfunction makeRequest(factory) {\n\t\treturn function(url, args) {\n\t\t\tif (typeof url !== \"string\") { args = url; url = url.url }\n\t\t\telse if (args == null) args = {}\n\t\t\tvar promise0 = new Promise(function(resolve, reject) {\n\t\t\t\tfactory(url, args, function (data) {\n\t\t\t\t\tif (typeof args.type === \"function\") {\n\t\t\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\t\t\tfor (var i = 0; i < data.length; i++) {\n\t\t\t\t\t\t\t\tdata[i] = new args.type(data[i])\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse data = new args.type(data)\n\t\t\t\t\t}\n\t\t\t\t\tresolve(data)\n\t\t\t\t}, reject)\n\t\t\t})\n\t\t\tif (args.background === true) return promise0\n\t\t\tvar count = 0\n\t\t\tfunction complete() {\n\t\t\t\tif (--count === 0 && typeof oncompletion === \"function\") oncompletion()\n\t\t\t}\n\t\t\treturn wrap(promise0)\n\t\t\tfunction wrap(promise0) {\n\t\t\t\tvar then0 = promise0.then\n\t\t\t\tpromise0.then = function() {\n\t\t\t\t\tcount++\n\t\t\t\t\tvar next = then0.apply(promise0, arguments)\n\t\t\t\t\tnext.then(complete, function(e) {\n\t\t\t\t\t\tcomplete()\n\t\t\t\t\t\tif (count === 0) throw e\n\t\t\t\t\t})\n\t\t\t\t\treturn wrap(next)\n\t\t\t\t}\n\t\t\t\treturn promise0\n\t\t\t}\n\t\t}\n\t}\n\tfunction hasHeader(args, name) {\n\t\tfor (var key in args.headers) {\n\t\t\tif ({}.hasOwnProperty.call(args.headers, key) && name.test(key)) return true\n\t\t}\n\t\treturn false\n\t}\n\tfunction interpolate(url, data, assemble) {\n\t\tif (data == null) return url\n\t\turl = url.replace(/:([^\\/]+)/gi, function (m0, key) {\n\t\t\treturn data[key] != null ? data[key] : m0\n\t\t})\n\t\tif (assemble && data != null) {\n\t\t\tvar querystring = buildQueryString(data)\n\t\t\tif (querystring) url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + querystring\n\t\t}\n\t\treturn url\n\t}\n\treturn {\n\t\trequest: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar method = args.method != null ? args.method.toUpperCase() : \"GET\"\n\t\t\tvar useBody = method !== \"GET\" && method !== \"TRACE\" &&\n\t\t\t\t(typeof args.useBody !== \"boolean\" || args.useBody)\n\t\t\tvar data = args.data\n\t\t\tvar assumeJSON = (args.serialize == null || args.serialize === JSON.serialize) && !(data instanceof $window.FormData)\n\t\t\tif (useBody) {\n\t\t\t\tif (typeof args.serialize === \"function\") data = args.serialize(data)\n\t\t\t\telse if (!(data instanceof $window.FormData)) data = JSON.stringify(data)\n\t\t\t}\n\t\t\tvar xhr = new $window.XMLHttpRequest(),\n\t\t\t\taborted = false,\n\t\t\t\t_abort = xhr.abort\n\t\t\txhr.abort = function abort() {\n\t\t\t\taborted = true\n\t\t\t\t_abort.call(xhr)\n\t\t\t}\n\t\t\txhr.open(method, interpolate(url, args.data, !useBody), typeof args.async !== \"boolean\" || args.async, typeof args.user === \"string\" ? args.user : undefined, typeof args.password === \"string\" ? args.password : undefined)\n\t\t\tif (assumeJSON && useBody && !hasHeader(args, /^content-type0$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Content-Type\", \"application/json; charset=utf-8\")\n\t\t\t}\n\t\t\tif (typeof args.deserialize !== \"function\" && !hasHeader(args, /^accept$/i)) {\n\t\t\t\txhr.setRequestHeader(\"Accept\", \"application/json, text/*\")\n\t\t\t}\n\t\t\tif (args.withCredentials) xhr.withCredentials = args.withCredentials\n\t\t\tif (args.timeout) xhr.timeout = args.timeout\n\t\t\tif (args.responseType) xhr.responseType = args.responseType\n\t\t\tfor (var key in args.headers) {\n\t\t\t\tif ({}.hasOwnProperty.call(args.headers, key)) {\n\t\t\t\t\txhr.setRequestHeader(key, args.headers[key])\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof args.config === \"function\") xhr = args.config(xhr, args) || xhr\n\t\t\txhr.onreadystatechange = function() {\n\t\t\t\t// Don't throw errors on xhr.abort().\n\t\t\t\tif(aborted) return\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar success = (xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || (/^file:\\/\\//i).test(url)\n\t\t\t\t\t\tvar response = xhr.responseText\n\t\t\t\t\t\tif (typeof args.extract === \"function\") {\n\t\t\t\t\t\t\tresponse = args.extract(xhr, args)\n\t\t\t\t\t\t\tsuccess = true\n\t\t\t\t\t\t} else if (typeof args.deserialize === \"function\") {\n\t\t\t\t\t\t\tresponse = args.deserialize(response)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttry {response = response ? JSON.parse(response) : null}\n\t\t\t\t\t\t\tcatch (e) {throw new Error(\"Invalid JSON: \" + response)}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (success) resolve(response)\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar error = new Error(xhr.responseText)\n\t\t\t\t\t\t\terror.code = xhr.status\n\t\t\t\t\t\t\terror.response = response\n\t\t\t\t\t\t\treject(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch (e) {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (useBody && data != null) xhr.send(data)\n\t\t\telse xhr.send()\n\t\t}),\n\t\tjsonp: makeRequest(function(url, args, resolve, reject) {\n\t\t\tvar callbackName = args.callbackName || \"_mithril_\" + Math.round(Math.random() * 1e16) + \"_\" + callbackCount++\n\t\t\tvar script = $window.document.createElement(\"script\")\n\t\t\t$window[callbackName] = function(data) {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\tresolve(data)\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\tscript.onerror = function() {\n\t\t\t\tscript.parentNode.removeChild(script)\n\t\t\t\treject(new Error(\"JSONP request failed\"))\n\t\t\t\tdelete $window[callbackName]\n\t\t\t}\n\t\t\turl = interpolate(url, args.data, true)\n\t\t\tscript.src = url + (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") +\n\t\t\t\tencodeURIComponent(args.callbackKey || \"callback\") + \"=\" +\n\t\t\t\tencodeURIComponent(callbackName)\n\t\t\t$window.document.documentElement.appendChild(script)\n\t\t}),\n\t\tsetCompletionCallback: function(callback) {\n\t\t\toncompletion = callback\n\t\t},\n\t}\n}\nvar requestService = _12(window, PromisePolyfill)\nvar coreRenderer = function($window) {\n\tvar $doc = $window.document\n\tvar nameSpace = {\n\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\tmath: \"http://www.w3.org/1998/Math/MathML\"\n\t}\n\tvar redraw0\n\tfunction setRedraw(callback) {return redraw0 = callback}\n\tfunction getNameSpace(vnode3) {\n\t\treturn vnode3.attrs && vnode3.attrs.xmlns || nameSpace[vnode3.tag]\n\t}\n\t//sanity check to discourage people from doing `vnode3.state = ...`\n\tfunction checkState(vnode3, original) {\n\t\tif (vnode3.state !== original) throw new Error(\"`vnode.state` must not be modified\")\n\t}\n\t//Note: the hook is passed as the `this` argument to allow proxying the\n\t//arguments without requiring a full array allocation to do so. It also\n\t//takes advantage of the fact the current `vnode3` is the first argument in\n\t//all lifecycle methods.\n\tfunction callHook(vnode3) {\n\t\tvar original = vnode3.state\n\t\ttry {\n\t\t\treturn this.apply(original, arguments)\n\t\t} finally {\n\t\t\tcheckState(vnode3, original)\n\t\t}\n\t}\n\t// IE11 (at least) throws an UnspecifiedError when accessing document.activeElement when\n\t// inside an iframe. Catch and swallow this error1, and heavy-handidly return null.\n\tfunction activeElement() {\n\t\ttry {\n\t\t\treturn $doc.activeElement\n\t\t} catch (e) {\n\t\t\treturn null\n\t\t}\n\t}\n\t//create\n\tfunction createNodes(parent, vnodes, start, end, hooks, nextSibling, ns) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode3 = vnodes[i]\n\t\t\tif (vnode3 != null) {\n\t\t\t\tcreateNode(parent, vnode3, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t}\n\tfunction createNode(parent, vnode3, hooks, ns, nextSibling) {\n\t\tvar tag = vnode3.tag\n\t\tif (typeof tag === \"string\") {\n\t\t\tvnode3.state = {}\n\t\t\tif (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks)\n\t\t\tswitch (tag) {\n\t\t\t\tcase \"#\": createText(parent, vnode3, nextSibling); break\n\t\t\t\tcase \"<\": createHTML(parent, vnode3, ns, nextSibling); break\n\t\t\t\tcase \"[\": createFragment(parent, vnode3, hooks, ns, nextSibling); break\n\t\t\t\tdefault: createElement(parent, vnode3, hooks, ns, nextSibling)\n\t\t\t}\n\t\t}\n\t\telse createComponent(parent, vnode3, hooks, ns, nextSibling)\n\t}\n\tfunction createText(parent, vnode3, nextSibling) {\n\t\tvnode3.dom = $doc.createTextNode(vnode3.children)\n\t\tinsertNode(parent, vnode3.dom, nextSibling)\n\t}\n\tvar possibleParents = {caption: \"table\", thead: \"table\", tbody: \"table\", tfoot: \"table\", tr: \"tbody\", th: \"tr\", td: \"tr\", colgroup: \"table\", col: \"colgroup\"}\n\tfunction createHTML(parent, vnode3, ns, nextSibling) {\n\t\tvar match0 = vnode3.children.match(/^\\s*?<(\\w+)/im) || []\n\t\t// not using the proper parent makes the child element(s) vanish.\n\t\t//     var div = document.createElement(\"div\")\n\t\t//     div.innerHTML = \"<td>i</td><td>j</td>\"\n\t\t//     console.log(div.innerHTML)\n\t\t// --> \"ij\", no <td> in sight.\n\t\tvar temp = $doc.createElement(possibleParents[match0[1]] || \"div\")\n\t\tif (ns === \"http://www.w3.org/2000/svg\") {\n\t\t\ttemp.innerHTML = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\">\" + vnode3.children + \"</svg>\"\n\t\t\ttemp = temp.firstChild\n\t\t} else {\n\t\t\ttemp.innerHTML = vnode3.children\n\t\t}\n\t\tvnode3.dom = temp.firstChild\n\t\tvnode3.domSize = temp.childNodes.length\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tvar child\n\t\twhile (child = temp.firstChild) {\n\t\t\tfragment.appendChild(child)\n\t\t}\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createFragment(parent, vnode3, hooks, ns, nextSibling) {\n\t\tvar fragment = $doc.createDocumentFragment()\n\t\tif (vnode3.children != null) {\n\t\t\tvar children3 = vnode3.children\n\t\t\tcreateNodes(fragment, children3, 0, children3.length, hooks, null, ns)\n\t\t}\n\t\tvnode3.dom = fragment.firstChild\n\t\tvnode3.domSize = fragment.childNodes.length\n\t\tinsertNode(parent, fragment, nextSibling)\n\t}\n\tfunction createElement(parent, vnode3, hooks, ns, nextSibling) {\n\t\tvar tag = vnode3.tag\n\t\tvar attrs2 = vnode3.attrs\n\t\tvar is = attrs2 && attrs2.is\n\t\tns = getNameSpace(vnode3) || ns\n\t\tvar element = ns ?\n\t\t\tis ? $doc.createElementNS(ns, tag, {is: is}) : $doc.createElementNS(ns, tag) :\n\t\t\tis ? $doc.createElement(tag, {is: is}) : $doc.createElement(tag)\n\t\tvnode3.dom = element\n\t\tif (attrs2 != null) {\n\t\t\tsetAttrs(vnode3, attrs2, ns)\n\t\t}\n\t\tinsertNode(parent, element, nextSibling)\n\t\tif (attrs2 != null && attrs2.contenteditable != null) {\n\t\t\tsetContentEditable(vnode3)\n\t\t}\n\t\telse {\n\t\t\tif (vnode3.text != null) {\n\t\t\t\tif (vnode3.text !== \"\") element.textContent = vnode3.text\n\t\t\t\telse vnode3.children = [Vnode(\"#\", undefined, undefined, vnode3.text, undefined, undefined)]\n\t\t\t}\n\t\t\tif (vnode3.children != null) {\n\t\t\t\tvar children3 = vnode3.children\n\t\t\t\tcreateNodes(element, children3, 0, children3.length, hooks, null, ns)\n\t\t\t\tif (vnode3.tag === \"select\" && attrs2 != null) setLateSelectAttrs(vnode3, attrs2)\n\t\t\t}\n\t\t}\n\t}\n\tfunction initComponent(vnode3, hooks) {\n\t\tvar sentinel\n\t\tif (typeof vnode3.tag.view === \"function\") {\n\t\t\tvnode3.state = Object.create(vnode3.tag)\n\t\t\tsentinel = vnode3.state.view\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t} else {\n\t\t\tvnode3.state = void 0\n\t\t\tsentinel = vnode3.tag\n\t\t\tif (sentinel.$$reentrantLock$$ != null) return\n\t\t\tsentinel.$$reentrantLock$$ = true\n\t\t\tvnode3.state = (vnode3.tag.prototype != null && typeof vnode3.tag.prototype.view === \"function\") ? new vnode3.tag(vnode3) : vnode3.tag(vnode3)\n\t\t}\n\t\tinitLifecycle(vnode3.state, vnode3, hooks)\n\t\tif (vnode3.attrs != null) initLifecycle(vnode3.attrs, vnode3, hooks)\n\t\tvnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3))\n\t\tif (vnode3.instance === vnode3) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tsentinel.$$reentrantLock$$ = null\n\t}\n\tfunction createComponent(parent, vnode3, hooks, ns, nextSibling) {\n\t\tinitComponent(vnode3, hooks)\n\t\tif (vnode3.instance != null) {\n\t\t\tcreateNode(parent, vnode3.instance, hooks, ns, nextSibling)\n\t\t\tvnode3.dom = vnode3.instance.dom\n\t\t\tvnode3.domSize = vnode3.dom != null ? vnode3.instance.domSize : 0\n\t\t}\n\t\telse {\n\t\t\tvnode3.domSize = 0\n\t\t}\n\t}\n\t//update\n\t/**\n\t * @param {Element|Fragment} parent - the parent element\n\t * @param {Vnode[] | null} old - the list of vnodes of the last `render()` call for\n\t *                               this part of the tree\n\t * @param {Vnode[] | null} vnodes - as above, but for the current `render()` call.\n\t * @param {Function[]} hooks - an accumulator of post-render hooks (oncreate/onupdate)\n\t * @param {Element | null} nextSibling - the next0 DOM node if we're dealing with a\n\t *                                       fragment that is not the last item in its\n\t *                                       parent\n\t * @param {'svg' | 'math' | String | null} ns) - the current XML namespace, if any\n\t * @returns void\n\t */\n\t// This function diffs and patches lists of vnodes, both keyed and unkeyed.\n\t//\n\t// We will:\n\t//\n\t// 1. describe its general structure\n\t// 2. focus on the diff algorithm optimizations\n\t// 3. discuss DOM node operations.\n\t// ## Overview:\n\t//\n\t// The updateNodes() function:\n\t// - deals with trivial cases\n\t// - determines whether the lists are keyed or unkeyed based on the first non-null node\n\t//   of each list.\n\t// - diffs them and patches the DOM if needed (that's the brunt of the code)\n\t// - manages the leftovers: after diffing, are there:\n\t//   - old nodes left to remove?\n\t// \t - new nodes to insert?\n\t// \t deal with them!\n\t//\n\t// The lists are only iterated over once, with an exception for the nodes in `old` that\n\t// are visited in the fourth part of the diff and in the `removeNodes` loop.\n\t// ## Diffing\n\t//\n\t// Reading https://github.com/localvoid/ivi/blob/ddc09d06abaef45248e6133f7040d00d3c6be853/packages/ivi/src/vdom/implementation.ts#L617-L837\n\t// may be good for context on longest increasing subsequence-based logic for moving nodes.\n\t//\n\t// In order to diff keyed lists, one has to\n\t//\n\t// 1) match0 nodes in both lists, per key, and update them accordingly\n\t// 2) create the nodes present in the new list, but absent in the old one\n\t// 3) remove the nodes present in the old list, but absent in the new one\n\t// 4) figure out what nodes in 1) to move in order to minimize the DOM operations.\n\t//\n\t// To achieve 1) one can create a dictionary of keys => index0 (for the old list), then1 iterate\n\t// over the new list and for each new vnode3, find the corresponding vnode3 in the old list using\n\t// the map.\n\t// 2) is achieved in the same step: if a new node has no corresponding entry in the map, it is new\n\t// and must be created.\n\t// For the removals, we actually remove the nodes that have been updated from the old list.\n\t// The nodes that remain in that list after 1) and 2) have been performed can be safely removed.\n\t// The fourth step is a bit more complex and relies on the longest increasing subsequence (LIS)\n\t// algorithm.\n\t//\n\t// the longest increasing subsequence is the list of nodes that can remain in place. Imagine going\n\t// from `1,2,3,4,5` to `4,5,1,2,3` where the numbers are not necessarily the keys, but the indices\n\t// corresponding to the keyed nodes in the old list (keyed nodes `e,d,c,b,a` => `b,a,e,d,c` would\n\t//  match0 the above lists, for example).\n\t//\n\t// In there are two increasing subsequences: `4,5` and `1,2,3`, the latter being the longest. We\n\t// can update those nodes without moving them, and only call `insertNode` on `4` and `5`.\n\t//\n\t// @localvoid adapted the algo to also support node deletions and insertions (the `lis` is actually\n\t// the longest increasing subsequence *of old nodes still present in the new list*).\n\t//\n\t// It is a general algorithm that is fireproof in all circumstances, but it requires the allocation\n\t// and the construction of a `key => oldIndex` map, and three arrays (one with `newIndex => oldIndex`,\n\t// the `LIS` and a temporary one to create the LIS).\n\t//\n\t// So we cheat where we can: if the tails of the lists are identical, they are guaranteed to be part of\n\t// the LIS and can be updated without moving them.\n\t//\n\t// If two nodes are swapped, they are guaranteed not to be part of the LIS, and must be moved (with\n\t// the exception of the last node if the list is fully reversed).\n\t//\n\t// ## Finding the next0 sibling.\n\t//\n\t// `updateNode()` and `createNode()` expect a nextSibling parameter to perform DOM operations.\n\t// When the list is being traversed top-down, at any index0, the DOM nodes up to the previous\n\t// vnode3 reflect the content of the new list, whereas the rest of the DOM nodes reflect the old\n\t// list. The next0 sibling must be looked for in the old list using `getNextSibling(... oldStart + 1 ...)`.\n\t//\n\t// In the other scenarios (swaps, upwards traversal, map-based diff),\n\t// the new vnodes list is traversed upwards. The DOM nodes at the bottom of the list reflect the\n\t// bottom part of the new vnodes list, and we can use the `v.dom`  value of the previous node\n\t// as the next0 sibling (cached in the `nextSibling` variable).\n\t// ## DOM node moves\n\t//\n\t// In most scenarios `updateNode()` and `createNode()` perform the DOM operations. However,\n\t// this is not the case if the node moved (second and fourth part of the diff algo). We move\n\t// the old DOM nodes before updateNode runs0 because it enables us to use the cached `nextSibling`\n\t// variable rather than fetching it using `getNextSibling()`.\n\t//\n\t// The fourth part of the diff currently inserts nodes unconditionally, leading to issues\n\t// like #1791 and #1999. We need to be smarter about those situations where adjascent old\n\t// nodes remain together in the new list in a way that isn't covered by parts one and\n\t// three of the diff algo.\n\tfunction updateNodes(parent, old, vnodes, hooks, nextSibling, ns) {\n\t\tif (old === vnodes || old == null && vnodes == null) return\n\t\telse if (old == null || old.length === 0) createNodes(parent, vnodes, 0, vnodes.length, hooks, nextSibling, ns)\n\t\telse if (vnodes == null || vnodes.length === 0) removeNodes(old, 0, old.length)\n\t\telse {\n\t\t\tvar start = 0, oldStart = 0, isOldKeyed = null, isKeyed = null\n\t\t\tfor (; oldStart < old.length; oldStart++) {\n\t\t\t\tif (old[oldStart] != null) {\n\t\t\t\t\tisOldKeyed = old[oldStart].key != null\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (; start < vnodes.length; start++) {\n\t\t\t\tif (vnodes[start] != null) {\n\t\t\t\t\tisKeyed = vnodes[start].key != null\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isKeyed === null && isOldKeyed == null) return // both lists are full of nulls\n\t\t\tif (isOldKeyed !== isKeyed) {\n\t\t\t\tremoveNodes(old, oldStart, old.length)\n\t\t\t\tcreateNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else if (!isKeyed) {\n\t\t\t\t// Don't index0 past the end of either list (causes deopts).\n\t\t\t\tvar commonLength = old.length < vnodes.length ? old.length : vnodes.length\n\t\t\t\t// Rewind if necessary to the first non-null index0 on either side.\n\t\t\t\t// We could alternatively either explicitly create or remove nodes when `start !== oldStart`\n\t\t\t\t// but that would be optimizing for sparse lists which are more rare than dense ones.\n\t\t\t\tstart = start < oldStart ? start : oldStart\n\t\t\t\tfor (; start < commonLength; start++) {\n\t\t\t\t\to = old[start]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o === v || o == null && v == null) continue\n\t\t\t\t\telse if (o == null) createNode(parent, v, hooks, ns, getNextSibling(old, start + 1, nextSibling))\n\t\t\t\t\telse if (v == null) removeNode(o)\n\t\t\t\t\telse updateNode(parent, o, v, hooks, getNextSibling(old, start + 1, nextSibling), ns)\n\t\t\t\t}\n\t\t\t\tif (old.length > commonLength) removeNodes(old, start, old.length)\n\t\t\t\tif (vnodes.length > commonLength) createNodes(parent, vnodes, start, vnodes.length, hooks, nextSibling, ns)\n\t\t\t} else {\n\t\t\t\t// keyed diff\n\t\t\t\tvar oldEnd = old.length - 1, end = vnodes.length - 1, map, o, v, oe, ve, topSibling\n\t\t\t\t// bottom-up\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\tif (oe == null) oldEnd--\n\t\t\t\t\telse if (ve == null) end--\n\t\t\t\t\telse if (oe.key === ve.key) {\n\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\toldEnd--, end--\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// top-down\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t\tif (o == null) oldStart++\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (o.key === v.key) {\n\t\t\t\t\t\toldStart++, start++\n\t\t\t\t\t\tif (o !== v) updateNode(parent, o, v, hooks, getNextSibling(old, oldStart, nextSibling), ns)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// swaps and list reversals\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (o == null) oldStart++\n\t\t\t\t\telse if (v == null) start++\n\t\t\t\t\telse if (oe == null) oldEnd--\n\t\t\t\t\telse if (ve == null) end--\n\t\t\t\t\telse if (start === end) break\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (o.key !== ve.key || oe.key !== v.key) break\n\t\t\t\t\t\ttopSibling = getNextSibling(old, oldStart, nextSibling)\n\t\t\t\t\t\tinsertNode(parent, toFragment(oe), topSibling)\n\t\t\t\t\t\tif (oe !== v) updateNode(parent, oe, v, hooks, topSibling, ns)\n\t\t\t\t\t\tif (++start <= --end) insertNode(parent, toFragment(o), nextSibling)\n\t\t\t\t\t\tif (o !== ve) updateNode(parent, o, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\toldStart++; oldEnd--\n\t\t\t\t\t}\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t\to = old[oldStart]\n\t\t\t\t\tv = vnodes[start]\n\t\t\t\t}\n\t\t\t\t// bottom up once again\n\t\t\t\twhile (oldEnd >= oldStart && end >= start) {\n\t\t\t\t\tif (oe == null) oldEnd--\n\t\t\t\t\telse if (ve == null) end--\n\t\t\t\t\telse if (oe.key === ve.key) {\n\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\toldEnd--, end--\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\toe = old[oldEnd]\n\t\t\t\t\tve = vnodes[end]\n\t\t\t\t}\n\t\t\t\tif (start > end) removeNodes(old, oldStart, oldEnd + 1)\n\t\t\t\telse if (oldStart > oldEnd) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\telse {\n\t\t\t\t\t// inspired by ivi https://github.com/ivijs/ivi/ by Boris Kaul\n\t\t\t\t\tvar originalNextSibling = nextSibling, vnodesLength = end - start + 1, oldIndices = new Array(vnodesLength), li=0, i=0, pos = 2147483647, matched = 0, map, lisIndices\n\t\t\t\t\tfor (i = 0; i < vnodesLength; i++) oldIndices[i] = -1\n\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\tif (map == null) map = getKeyMap(old, oldStart, oldEnd + 1)\n\t\t\t\t\t\tve = vnodes[i]\n\t\t\t\t\t\tif (ve != null) {\n\t\t\t\t\t\t\tvar oldIndex = map[ve.key]\n\t\t\t\t\t\t\tif (oldIndex != null) {\n\t\t\t\t\t\t\t\tpos = (oldIndex < pos) ? oldIndex : -1 // becomes -1 if nodes were re-ordered\n\t\t\t\t\t\t\t\toldIndices[i-start] = oldIndex\n\t\t\t\t\t\t\t\toe = old[oldIndex]\n\t\t\t\t\t\t\t\told[oldIndex] = null\n\t\t\t\t\t\t\t\tif (oe !== ve) updateNode(parent, oe, ve, hooks, nextSibling, ns)\n\t\t\t\t\t\t\t\tif (ve.dom != null) nextSibling = ve.dom\n\t\t\t\t\t\t\t\tmatched++\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tnextSibling = originalNextSibling\n\t\t\t\t\tif (matched !== oldEnd - oldStart + 1) removeNodes(old, oldStart, oldEnd + 1)\n\t\t\t\t\tif (matched === 0) createNodes(parent, vnodes, start, end + 1, hooks, nextSibling, ns)\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (pos === -1) {\n\t\t\t\t\t\t\t// the indices of the indices of the items that are part of the\n\t\t\t\t\t\t\t// longest increasing subsequence in the oldIndices list\n\t\t\t\t\t\t\tlisIndices = makeLisIndices(oldIndices)\n\t\t\t\t\t\t\tli = lisIndices.length - 1\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tif (lisIndices[li] === i - start) li--\n\t\t\t\t\t\t\t\t\telse insertNode(parent, toFragment(v), nextSibling)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfor (i = end; i >= start; i--) {\n\t\t\t\t\t\t\t\tv = vnodes[i]\n\t\t\t\t\t\t\t\tif (oldIndices[i-start] === -1) createNode(parent, v, hooks, ns, nextSibling)\n\t\t\t\t\t\t\t\tif (v.dom != null) nextSibling = vnodes[i].dom\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction updateNode(parent, old, vnode3, hooks, nextSibling, ns) {\n\t\tvar oldTag = old.tag, tag = vnode3.tag\n\t\tif (oldTag === tag) {\n\t\t\tvnode3.state = old.state\n\t\t\tvnode3.events = old.events\n\t\t\tif (shouldNotUpdate(vnode3, old)) return\n\t\t\tif (typeof oldTag === \"string\") {\n\t\t\t\tif (vnode3.attrs != null) {\n\t\t\t\t\tupdateLifecycle(vnode3.attrs, vnode3, hooks)\n\t\t\t\t}\n\t\t\t\tswitch (oldTag) {\n\t\t\t\t\tcase \"#\": updateText(old, vnode3); break\n\t\t\t\t\tcase \"<\": updateHTML(parent, old, vnode3, ns, nextSibling); break\n\t\t\t\t\tcase \"[\": updateFragment(parent, old, vnode3, hooks, nextSibling, ns); break\n\t\t\t\t\tdefault: updateElement(old, vnode3, hooks, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t\telse updateComponent(parent, old, vnode3, hooks, nextSibling, ns)\n\t\t}\n\t\telse {\n\t\t\tremoveNode(old)\n\t\t\tcreateNode(parent, vnode3, hooks, ns, nextSibling)\n\t\t}\n\t}\n\tfunction updateText(old, vnode3) {\n\t\tif (old.children.toString() !== vnode3.children.toString()) {\n\t\t\told.dom.nodeValue = vnode3.children\n\t\t}\n\t\tvnode3.dom = old.dom\n\t}\n\tfunction updateHTML(parent, old, vnode3, ns, nextSibling) {\n\t\tif (old.children !== vnode3.children) {\n\t\t\ttoFragment(old)\n\t\t\tcreateHTML(parent, vnode3, ns, nextSibling)\n\t\t}\n\t\telse vnode3.dom = old.dom, vnode3.domSize = old.domSize\n\t}\n\tfunction updateFragment(parent, old, vnode3, hooks, nextSibling, ns) {\n\t\tupdateNodes(parent, old.children, vnode3.children, hooks, nextSibling, ns)\n\t\tvar domSize = 0, children3 = vnode3.children\n\t\tvnode3.dom = null\n\t\tif (children3 != null) {\n\t\t\tfor (var i = 0; i < children3.length; i++) {\n\t\t\t\tvar child = children3[i]\n\t\t\t\tif (child != null && child.dom != null) {\n\t\t\t\t\tif (vnode3.dom == null) vnode3.dom = child.dom\n\t\t\t\t\tdomSize += child.domSize || 1\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (domSize !== 1) vnode3.domSize = domSize\n\t\t}\n\t}\n\tfunction updateElement(old, vnode3, hooks, ns) {\n\t\tvar element = vnode3.dom = old.dom\n\t\tns = getNameSpace(vnode3) || ns\n\t\tif (vnode3.tag === \"textarea\") {\n\t\t\tif (vnode3.attrs == null) vnode3.attrs = {}\n\t\t\tif (vnode3.text != null) {\n\t\t\t\tvnode3.attrs.value = vnode3.text //FIXME handle0 multiple children3\n\t\t\t\tvnode3.text = undefined\n\t\t\t}\n\t\t}\n\t\tupdateAttrs(vnode3, old.attrs, vnode3.attrs, ns)\n\t\tif (vnode3.attrs != null && vnode3.attrs.contenteditable != null) {\n\t\t\tsetContentEditable(vnode3)\n\t\t}\n\t\telse if (old.text != null && vnode3.text != null && vnode3.text !== \"\") {\n\t\t\tif (old.text.toString() !== vnode3.text.toString()) old.dom.firstChild.nodeValue = vnode3.text\n\t\t}\n\t\telse {\n\t\t\tif (old.text != null) old.children = [Vnode(\"#\", undefined, undefined, old.text, undefined, old.dom.firstChild)]\n\t\t\tif (vnode3.text != null) vnode3.children = [Vnode(\"#\", undefined, undefined, vnode3.text, undefined, undefined)]\n\t\t\tupdateNodes(element, old.children, vnode3.children, hooks, null, ns)\n\t\t}\n\t}\n\tfunction updateComponent(parent, old, vnode3, hooks, nextSibling, ns) {\n\t\tvnode3.instance = Vnode.normalize(callHook.call(vnode3.state.view, vnode3))\n\t\tif (vnode3.instance === vnode3) throw Error(\"A view cannot return the vnode it received as argument\")\n\t\tupdateLifecycle(vnode3.state, vnode3, hooks)\n\t\tif (vnode3.attrs != null) updateLifecycle(vnode3.attrs, vnode3, hooks)\n\t\tif (vnode3.instance != null) {\n\t\t\tif (old.instance == null) createNode(parent, vnode3.instance, hooks, ns, nextSibling)\n\t\t\telse updateNode(parent, old.instance, vnode3.instance, hooks, nextSibling, ns)\n\t\t\tvnode3.dom = vnode3.instance.dom\n\t\t\tvnode3.domSize = vnode3.instance.domSize\n\t\t}\n\t\telse if (old.instance != null) {\n\t\t\tremoveNode(old.instance)\n\t\t\tvnode3.dom = undefined\n\t\t\tvnode3.domSize = 0\n\t\t}\n\t\telse {\n\t\t\tvnode3.dom = old.dom\n\t\t\tvnode3.domSize = old.domSize\n\t\t}\n\t}\n\tfunction getKeyMap(vnodes, start, end) {\n\t\tvar map = Object.create(null)\n\t\tfor (; start < end; start++) {\n\t\t\tvar vnode3 = vnodes[start]\n\t\t\tif (vnode3 != null) {\n\t\t\t\tvar key = vnode3.key\n\t\t\t\tif (key != null) map[key] = start\n\t\t\t}\n\t\t}\n\t\treturn map\n\t}\n\t// Lifted from ivi https://github.com/ivijs/ivi/\n\t// takes a list of unique numbers (-1 is special and can\n\t// occur multiple times) and returns an array with the indices\n\t// of the items that are part of the longest increasing\n\t// subsequece\n\tfunction makeLisIndices(a) {\n\t\tvar p = a.slice()\n\t\tvar result = []\n\t\tresult.push(0)\n\t\tvar u\n\t\tvar v\n\t\tfor (var i = 0, il = a.length; i < il; ++i) {\n\t\t\tif (a[i] === -1) {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tvar j = result[result.length - 1]\n\t\t\tif (a[j] < a[i]) {\n\t\t\t\tp[i] = j\n\t\t\t\tresult.push(i)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tu = 0\n\t\t\tv = result.length - 1\n\t\t\twhile (u < v) {\n\t\t\t\tvar c = ((u + v) / 2) | 0 // eslint-disable-line no-bitwise\n\t\t\t\tif (a[result[c]] < a[i]) {\n\t\t\t\t\tu = c + 1\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tv = c\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (a[i] < a[result[u]]) {\n\t\t\t\tif (u > 0) {\n\t\t\t\t\tp[i] = result[u - 1]\n\t\t\t\t}\n\t\t\t\tresult[u] = i\n\t\t\t}\n\t\t}\n\t\tu = result.length\n\t\tv = result[u - 1]\n\t\twhile (u-- > 0) {\n\t\t\tresult[u] = v\n\t\t\tv = p[v]\n\t\t}\n\t\treturn result\n\t}\n\tfunction toFragment(vnode3) {\n\t\tvar count0 = vnode3.domSize\n\t\tif (count0 != null || vnode3.dom == null) {\n\t\t\tvar fragment = $doc.createDocumentFragment()\n\t\t\tif (count0 > 0) {\n\t\t\t\tvar dom = vnode3.dom\n\t\t\t\twhile (--count0) fragment.appendChild(dom.nextSibling)\n\t\t\t\tfragment.insertBefore(dom, fragment.firstChild)\n\t\t\t}\n\t\t\treturn fragment\n\t\t}\n\t\telse return vnode3.dom\n\t}\n\tfunction getNextSibling(vnodes, i, nextSibling) {\n\t\tfor (; i < vnodes.length; i++) {\n\t\t\tif (vnodes[i] != null && vnodes[i].dom != null) return vnodes[i].dom\n\t\t}\n\t\treturn nextSibling\n\t}\n\tfunction insertNode(parent, dom, nextSibling) {\n\t\tif (nextSibling != null) parent.insertBefore(dom, nextSibling)\n\t\telse parent.appendChild(dom)\n\t}\n\tfunction setContentEditable(vnode3) {\n\t\tvar children3 = vnode3.children\n\t\tif (children3 != null && children3.length === 1 && children3[0].tag === \"<\") {\n\t\t\tvar content = children3[0].children\n\t\t\tif (vnode3.dom.innerHTML !== content) vnode3.dom.innerHTML = content\n\t\t}\n\t\telse if (vnode3.text != null || children3 != null && children3.length !== 0) throw new Error(\"Child node of a contenteditable must be trusted\")\n\t}\n\t//remove\n\tfunction removeNodes(vnodes, start, end) {\n\t\tfor (var i = start; i < end; i++) {\n\t\t\tvar vnode3 = vnodes[i]\n\t\t\tif (vnode3 != null) removeNode(vnode3)\n\t\t}\n\t}\n\tfunction removeNode(vnode3) {\n\t\tvar expected = 1, called = 0\n\t\tvar original = vnode3.state\n\t\tif (typeof vnode3.tag !== \"string\" && typeof vnode3.state.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode3.state.onbeforeremove, vnode3)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tif (vnode3.attrs && typeof vnode3.attrs.onbeforeremove === \"function\") {\n\t\t\tvar result = callHook.call(vnode3.attrs.onbeforeremove, vnode3)\n\t\t\tif (result != null && typeof result.then === \"function\") {\n\t\t\t\texpected++\n\t\t\t\tresult.then(continuation, continuation)\n\t\t\t}\n\t\t}\n\t\tcontinuation()\n\t\tfunction continuation() {\n\t\t\tif (++called === expected) {\n\t\t\t\tcheckState(vnode3, original)\n\t\t\t\tonremove(vnode3)\n\t\t\t\tif (vnode3.dom) {\n\t\t\t\t\tvar parent = vnode3.dom.parentNode\n\t\t\t\t\tvar count0 = vnode3.domSize || 1\n\t\t\t\t\twhile (--count0) parent.removeChild(vnode3.dom.nextSibling)\n\t\t\t\t\tparent.removeChild(vnode3.dom)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction onremove(vnode3) {\n\t\tif (typeof vnode3.tag !== \"string\" && typeof vnode3.state.onremove === \"function\") callHook.call(vnode3.state.onremove, vnode3)\n\t\tif (vnode3.attrs && typeof vnode3.attrs.onremove === \"function\") callHook.call(vnode3.attrs.onremove, vnode3)\n\t\tif (typeof vnode3.tag !== \"string\") {\n\t\t\tif (vnode3.instance != null) onremove(vnode3.instance)\n\t\t} else {\n\t\t\tvar children3 = vnode3.children\n\t\t\tif (Array.isArray(children3)) {\n\t\t\t\tfor (var i = 0; i < children3.length; i++) {\n\t\t\t\t\tvar child = children3[i]\n\t\t\t\t\tif (child != null) onremove(child)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t//attrs2\n\tfunction setAttrs(vnode3, attrs2, ns) {\n\t\tfor (var key in attrs2) {\n\t\t\tsetAttr(vnode3, key, null, attrs2[key], ns)\n\t\t}\n\t}\n\tfunction setAttr(vnode3, key, old, value, ns) {\n\t\tif (key === \"key\" || key === \"is\" || value == null || isLifecycleMethod(key) || (old === value && !isFormAttribute(vnode3, key)) && typeof value !== \"object\") return\n\t\tif (key[0] === \"o\" && key[1] === \"n\") return updateEvent(vnode3, key, value)\n\t\tif (key.slice(0, 6) === \"xlink:\") vnode3.dom.setAttributeNS(\"http://www.w3.org/1999/xlink\", key.slice(6), value)\n\t\telse if (key === \"style\") updateStyle(vnode3.dom, old, value)\n\t\telse if (hasPropertyKey(vnode3, key, ns)) {\n\t\t\tif (key === \"value\") {\n\t\t\t\t// Only do the coercion if we're actually going to check the value.\n\t\t\t\t/* eslint-disable no-implicit-coercion */\n\t\t\t\t//setting input[value] to same value by typing on focused element moves cursor to end in Chrome\n\t\t\t\tif ((vnode3.tag === \"input\" || vnode3.tag === \"textarea\") && vnode3.dom.value === \"\" + value && vnode3.dom === activeElement()) return\n\t\t\t\t//setting select[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode3.tag === \"select\" && old !== null && vnode3.dom.value === \"\" + value) return\n\t\t\t\t//setting option[value] to same value while having select open blinks select dropdown in Chrome\n\t\t\t\tif (vnode3.tag === \"option\" && old !== null && vnode3.dom.value === \"\" + value) return\n\t\t\t\t/* eslint-enable no-implicit-coercion */\n\t\t\t}\n\t\t\t// If you assign an input type1 that is not supported by IE 11 with an assignment expression, an error1 will occur.\n\t\t\tif (vnode3.tag === \"input\" && key === \"type\") vnode3.dom.setAttribute(key, value)\n\t\t\telse vnode3.dom[key] = value\n\t\t} else {\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\tif (value) vnode3.dom.setAttribute(key, \"\")\n\t\t\t\telse vnode3.dom.removeAttribute(key)\n\t\t\t}\n\t\t\telse vnode3.dom.setAttribute(key === \"className\" ? \"class\" : key, value)\n\t\t}\n\t}\n\tfunction removeAttr(vnode3, key, old, ns) {\n\t\tif (key === \"key\" || key === \"is\" || old == null || isLifecycleMethod(key)) return\n\t\tif (key[0] === \"o\" && key[1] === \"n\" && !isLifecycleMethod(key)) updateEvent(vnode3, key, undefined)\n\t\telse if (key === \"style\") updateStyle(vnode3.dom, old, null)\n\t\telse if (\n\t\t\thasPropertyKey(vnode3, key, ns)\n\t\t\t&& key !== \"className\"\n\t\t\t&& !(key === \"value\" && (\n\t\t\t\tvnode3.tag === \"option\"\n\t\t\t\t|| vnode3.tag === \"select\" && vnode3.dom.selectedIndex === -1 && vnode3.dom === activeElement()\n\t\t\t))\n\t\t\t&& !(vnode3.tag === \"input\" && key === \"type\")\n\t\t) {\n\t\t\tvnode3.dom[key] = null\n\t\t} else {\n\t\t\tvar nsLastIndex = key.indexOf(\":\")\n\t\t\tif (nsLastIndex !== -1) key = key.slice(nsLastIndex + 1)\n\t\t\tif (old !== false) vnode3.dom.removeAttribute(key === \"className\" ? \"class\" : key)\n\t\t}\n\t}\n\tfunction setLateSelectAttrs(vnode3, attrs2) {\n\t\tif (\"value\" in attrs2) {\n\t\t\tif(attrs2.value === null) {\n\t\t\t\tif (vnode3.dom.selectedIndex !== -1) vnode3.dom.value = null\n\t\t\t} else {\n\t\t\t\tvar normalized = \"\" + attrs2.value // eslint-disable-line no-implicit-coercion\n\t\t\t\tif (vnode3.dom.value !== normalized || vnode3.dom.selectedIndex === -1) {\n\t\t\t\t\tvnode3.dom.value = normalized\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (\"selectedIndex\" in attrs2) setAttr(vnode3, \"selectedIndex\", null, attrs2.selectedIndex, undefined)\n\t}\n\tfunction updateAttrs(vnode3, old, attrs2, ns) {\n\t\tif (attrs2 != null) {\n\t\t\tfor (var key in attrs2) {\n\t\t\t\tsetAttr(vnode3, key, old && old[key], attrs2[key], ns)\n\t\t\t}\n\t\t}\n\t\tvar val\n\t\tif (old != null) {\n\t\t\tfor (var key in old) {\n\t\t\t\tif (((val = old[key]) != null) && (attrs2 == null || attrs2[key] == null)) {\n\t\t\t\t\tremoveAttr(vnode3, key, val, ns)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tfunction isFormAttribute(vnode3, attr) {\n\t\treturn attr === \"value\" || attr === \"checked\" || attr === \"selectedIndex\" || attr === \"selected\" && vnode3.dom === activeElement() || vnode3.tag === \"option\" && vnode3.dom.parentNode === $doc.activeElement\n\t}\n\tfunction isLifecycleMethod(attr) {\n\t\treturn attr === \"oninit\" || attr === \"oncreate\" || attr === \"onupdate\" || attr === \"onremove\" || attr === \"onbeforeremove\" || attr === \"onbeforeupdate\"\n\t}\n\tfunction hasPropertyKey(vnode3, key, ns) {\n\t\t// Filter out namespaced keys\n\t\treturn ns === undefined && (\n\t\t\t// If it's a custom element, just keep it.\n\t\t\tvnode3.tag.indexOf(\"-\") > -1 || vnode3.attrs != null && vnode3.attrs.is ||\n\t\t\t// If it's a normal element, let's try to avoid a few browser bugs.\n\t\t\tkey !== \"href\" && key !== \"list\" && key !== \"form\" && key !== \"width\" && key !== \"height\"// && key !== \"type\"\n\t\t\t// Defer the property check until *after* we check everything.\n\t\t) && key in vnode3.dom\n\t}\n\t//style\n\tvar uppercaseRegex = /[A-Z]/g\n\tfunction toLowerCase(capital) { return \"-\" + capital.toLowerCase() }\n\tfunction normalizeKey(key) {\n\t\treturn key[0] === \"-\" && key[1] === \"-\" ? key :\n\t\t\tkey === \"cssFloat\" ? \"float\" :\n\t\t\t\tkey.replace(uppercaseRegex, toLowerCase)\n\t}\n\tfunction updateStyle(element, old, style) {\n\t\tif (old === style) {\n\t\t\t// Styles are equivalent, do nothing.\n\t\t} else if (style == null) {\n\t\t\t// New style is missing, just clear it.\n\t\t\telement.style.cssText = \"\"\n\t\t} else if (typeof style !== \"object\") {\n\t\t\t// New style is a string, let engine deal with patching.\n\t\t\telement.style.cssText = style\n\t\t} else if (old == null || typeof old !== \"object\") {\n\t\t\t// `old` is missing or a string, `style` is an object.\n\t\t\telement.style.cssText = \"\"\n\t\t\t// Add new style properties\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null) element.style.setProperty(normalizeKey(key), String(value))\n\t\t\t}\n\t\t} else {\n\t\t\t// Both old & new are (different) objects.\n\t\t\t// Update style properties that have changed\n\t\t\tfor (var key in style) {\n\t\t\t\tvar value = style[key]\n\t\t\t\tif (value != null && (value = String(value)) !== String(old[key])) {\n\t\t\t\t\telement.style.setProperty(normalizeKey(key), value)\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Remove style properties that no longer exist\n\t\t\tfor (var key in old) {\n\t\t\t\tif (old[key] != null && style[key] == null) {\n\t\t\t\t\telement.style.removeProperty(normalizeKey(key))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Here's an explanation of how this works:\n\t// 1. The event names are always (by design) prefixed by `on`.\n\t// 2. The EventListener interface accepts either a function or an object\n\t//    with a `handleEvent` method0.\n\t// 3. The object does not inherit from `Object.prototype`, to avoid\n\t//    any potential interference with that (e.g. setters).\n\t// 4. The event name is remapped to the handler0 before calling it.\n\t// 5. In function-based event handlers, `ev.target === this`. We replicate\n\t//    that below.\n\t// 6. In function-based event handlers, `return false` prevents the default\n\t//    action and stops event propagation. We replicate that below.\n\tfunction EventDict() {}\n\tEventDict.prototype = Object.create(null)\n\tEventDict.prototype.handleEvent = function (ev) {\n\t\tvar handler0 = this[\"on\" + ev.type]\n\t\tvar result\n\t\tif (typeof handler0 === \"function\") result = handler0.call(ev.currentTarget, ev)\n\t\telse if (typeof handler0.handleEvent === \"function\") handler0.handleEvent(ev)\n\t\tif (ev.redraw === false) ev.redraw = undefined\n\t\telse if (typeof redraw0 === \"function\") redraw0()\n\t\tif (result === false) {\n\t\t\tev.preventDefault()\n\t\t\tev.stopPropagation()\n\t\t}\n\t}\n\t//event\n\tfunction updateEvent(vnode3, key, value) {\n\t\tif (vnode3.events != null) {\n\t\t\tif (vnode3.events[key] === value) return\n\t\t\tif (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\t\tif (vnode3.events[key] == null) vnode3.dom.addEventListener(key.slice(2), vnode3.events, false)\n\t\t\t\tvnode3.events[key] = value\n\t\t\t} else {\n\t\t\t\tif (vnode3.events[key] != null) vnode3.dom.removeEventListener(key.slice(2), vnode3.events, false)\n\t\t\t\tvnode3.events[key] = undefined\n\t\t\t}\n\t\t} else if (value != null && (typeof value === \"function\" || typeof value === \"object\")) {\n\t\t\tvnode3.events = new EventDict()\n\t\t\tvnode3.dom.addEventListener(key.slice(2), vnode3.events, false)\n\t\t\tvnode3.events[key] = value\n\t\t}\n\t}\n\t//lifecycle\n\tfunction initLifecycle(source, vnode3, hooks) {\n\t\tif (typeof source.oninit === \"function\") callHook.call(source.oninit, vnode3)\n\t\tif (typeof source.oncreate === \"function\") hooks.push(callHook.bind(source.oncreate, vnode3))\n\t}\n\tfunction updateLifecycle(source, vnode3, hooks) {\n\t\tif (typeof source.onupdate === \"function\") hooks.push(callHook.bind(source.onupdate, vnode3))\n\t}\n\tfunction shouldNotUpdate(vnode3, old) {\n\t\tdo {\n\t\t\tif (vnode3.attrs != null && typeof vnode3.attrs.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode3.attrs.onbeforeupdate, vnode3, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\tif (typeof vnode3.tag !== \"string\" && typeof vnode3.state.onbeforeupdate === \"function\") {\n\t\t\t\tvar force = callHook.call(vnode3.state.onbeforeupdate, vnode3, old)\n\t\t\t\tif (force !== undefined && !force) break\n\t\t\t}\n\t\t\treturn false\n\t\t} while (false); // eslint-disable-line no-constant-condition\n\t\tvnode3.dom = old.dom\n\t\tvnode3.domSize = old.domSize\n\t\tvnode3.instance = old.instance\n\t\treturn true\n\t}\n\tfunction render(dom, vnodes) {\n\t\tif (!dom) throw new Error(\"Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.\")\n\t\tvar hooks = []\n\t\tvar active = activeElement()\n\t\tvar namespace = dom.namespaceURI\n\t\t// First time rendering0 into a node clears it out\n\t\tif (dom.vnodes == null) dom.textContent = \"\"\n\t\tvnodes = Vnode.normalizeChildren(Array.isArray(vnodes) ? vnodes : [vnodes])\n\t\tupdateNodes(dom, dom.vnodes, vnodes, hooks, null, namespace === \"http://www.w3.org/1999/xhtml\" ? undefined : namespace)\n\t\tdom.vnodes = vnodes\n\t\t// `document.activeElement` can return null: https://html.spec.whatwg.org/multipage/interaction.html#dom-document-activeelement\n\t\tif (active != null && activeElement() !== active && typeof active.focus === \"function\") active.focus()\n\t\tfor (var i = 0; i < hooks.length; i++) hooks[i]()\n\t}\n\treturn {render: render, setRedraw: setRedraw}\n}\nfunction throttle(callback) {\n\tvar pending = null\n\treturn function() {\n\t\tif (pending === null) {\n\t\t\tpending = requestAnimationFrame(function() {\n\t\t\t\tpending = null\n\t\t\t\tcallback()\n\t\t\t})\n\t\t}\n\t}\n}\nvar _15 = function($window, throttleMock) {\n\tvar renderService = coreRenderer($window)\n\tvar callbacks = []\n\tvar rendering = false\n\tfunction subscribe(key, callback) {\n\t\tunsubscribe(key)\n\t\tcallbacks.push(key, callback)\n\t}\n\tfunction unsubscribe(key) {\n\t\tvar index = callbacks.indexOf(key)\n\t\tif (index > -1) callbacks.splice(index, 2)\n\t}\n\tfunction sync() {\n\t\tif (rendering) throw new Error(\"Nested m.redraw.sync() call\")\n\t\trendering = true\n\t\tfor (var i = 1; i < callbacks.length; i+=2) try {callbacks[i]()} catch (e) {if (typeof console !== \"undefined\") console.error(e)}\n\t\trendering = false\n\t}\n\tvar redraw = (throttleMock || throttle)(sync)\n\tredraw.sync = sync\n\trenderService.setRedraw(redraw)\n\treturn {subscribe: subscribe, unsubscribe: unsubscribe, redraw: redraw, render: renderService.render}\n}\nvar redrawService = _15(window)\nrequestService.setCompletionCallback(redrawService.redraw)\nvar _20 = function(redrawService0) {\n\treturn function(root, component) {\n\t\tif (component === null) {\n\t\t\tredrawService0.render(root, [])\n\t\t\tredrawService0.unsubscribe(root)\n\t\t\treturn\n\t\t}\n\t\t\n\t\tif (component.view == null && typeof component !== \"function\") throw new Error(\"m.mount(element, component) expects a component, not a vnode\")\n\t\t\n\t\tvar run0 = function() {\n\t\t\tredrawService0.render(root, Vnode(component))\n\t\t}\n\t\tredrawService0.subscribe(root, run0)\n\t\trun0()\n\t}\n}\nm.mount = _20(redrawService)\nvar Promise = PromisePolyfill\nvar parseQueryString = function(string) {\n\tif (string === \"\" || string == null) return {}\n\tif (string.charAt(0) === \"?\") string = string.slice(1)\n\tvar entries = string.split(\"&\"), data2 = {}, counters = {}\n\tfor (var i = 0; i < entries.length; i++) {\n\t\tvar entry = entries[i].split(\"=\")\n\t\tvar key2 = decodeURIComponent(entry[0])\n\t\tvar value0 = entry.length === 2 ? decodeURIComponent(entry[1]) : \"\"\n\t\tif (value0 === \"true\") value0 = true\n\t\telse if (value0 === \"false\") value0 = false\n\t\tvar levels = key2.split(/\\]\\[?|\\[/)\n\t\tvar cursor = data2\n\t\tif (key2.indexOf(\"[\") > -1) levels.pop()\n\t\tfor (var j0 = 0; j0 < levels.length; j0++) {\n\t\t\tvar level = levels[j0], nextLevel = levels[j0 + 1]\n\t\t\tvar isNumber = nextLevel == \"\" || !isNaN(parseInt(nextLevel, 10))\n\t\t\tvar isValue = j0 === levels.length - 1\n\t\t\tif (level === \"\") {\n\t\t\t\tvar key2 = levels.slice(0, j0).join()\n\t\t\t\tif (counters[key2] == null) counters[key2] = 0\n\t\t\t\tlevel = counters[key2]++\n\t\t\t}\n\t\t\tif (cursor[level] == null) {\n\t\t\t\tcursor[level] = isValue ? value0 : isNumber ? [] : {}\n\t\t\t}\n\t\t\tcursor = cursor[level]\n\t\t}\n\t}\n\treturn data2\n}\nvar coreRouter = function($window) {\n\tvar supportsPushState = typeof $window.history.pushState === \"function\"\n\tvar callAsync0 = typeof setImmediate === \"function\" ? setImmediate : setTimeout\n\tfunction normalize(fragment0) {\n\t\tvar data1 = $window.location[fragment0].replace(/(?:%[a-f89][a-f0-9])+/gim, decodeURIComponent)\n\t\tif (fragment0 === \"pathname\" && data1[0] !== \"/\") data1 = \"/\" + data1\n\t\treturn data1\n\t}\n\tvar asyncId\n\tfunction debounceAsync(callback) {\n\t\treturn function() {\n\t\t\tif (asyncId != null) return\n\t\t\tasyncId = callAsync0(function() {\n\t\t\t\tasyncId = null\n\t\t\t\tcallback()\n\t\t\t})\n\t\t}\n\t}\n\tfunction parsePath(path, queryData, hashData) {\n\t\tvar queryIndex = path.indexOf(\"?\")\n\t\tvar hashIndex = path.indexOf(\"#\")\n\t\tvar pathEnd = queryIndex > -1 ? queryIndex : hashIndex > -1 ? hashIndex : path.length\n\t\tif (queryIndex > -1) {\n\t\t\tvar queryEnd = hashIndex > -1 ? hashIndex : path.length\n\t\t\tvar queryParams = parseQueryString(path.slice(queryIndex + 1, queryEnd))\n\t\t\tfor (var key1 in queryParams) queryData[key1] = queryParams[key1]\n\t\t}\n\t\tif (hashIndex > -1) {\n\t\t\tvar hashParams = parseQueryString(path.slice(hashIndex + 1))\n\t\t\tfor (var key1 in hashParams) hashData[key1] = hashParams[key1]\n\t\t}\n\t\treturn path.slice(0, pathEnd)\n\t}\n\tvar router = {prefix: \"#!\"}\n\trouter.getPath = function() {\n\t\tvar type2 = router.prefix.charAt(0)\n\t\tswitch (type2) {\n\t\t\tcase \"#\": return normalize(\"hash\").slice(router.prefix.length)\n\t\t\tcase \"?\": return normalize(\"search\").slice(router.prefix.length) + normalize(\"hash\")\n\t\t\tdefault: return normalize(\"pathname\").slice(router.prefix.length) + normalize(\"search\") + normalize(\"hash\")\n\t\t}\n\t}\n\trouter.setPath = function(path, data1, options) {\n\t\tvar queryData = {}, hashData = {}\n\t\tpath = parsePath(path, queryData, hashData)\n\t\tif (data1 != null) {\n\t\t\tfor (var key1 in data1) queryData[key1] = data1[key1]\n\t\t\tpath = path.replace(/:([^\\/]+)/g, function(match1, token) {\n\t\t\t\tdelete queryData[token]\n\t\t\t\treturn data1[token]\n\t\t\t})\n\t\t}\n\t\tvar query = buildQueryString(queryData)\n\t\tif (query) path += \"?\" + query\n\t\tvar hash = buildQueryString(hashData)\n\t\tif (hash) path += \"#\" + hash\n\t\tif (supportsPushState) {\n\t\t\tvar state = options ? options.state : null\n\t\t\tvar title = options ? options.title : null\n\t\t\t$window.onpopstate()\n\t\t\tif (options && options.replace) $window.history.replaceState(state, title, router.prefix + path)\n\t\t\telse $window.history.pushState(state, title, router.prefix + path)\n\t\t}\n\t\telse $window.location.href = router.prefix + path\n\t}\n\trouter.defineRoutes = function(routes, resolve, reject) {\n\t\tfunction resolveRoute() {\n\t\t\tvar path = router.getPath()\n\t\t\tvar params = {}\n\t\t\tvar pathname = parsePath(path, params, params)\n\t\t\tvar state = $window.history.state\n\t\t\tif (state != null) {\n\t\t\t\tfor (var k in state) params[k] = state[k]\n\t\t\t}\n\t\t\tfor (var route0 in routes) {\n\t\t\t\tvar matcher = new RegExp(\"^\" + route0.replace(/:[^\\/]+?\\.{3}/g, \"(.*?)\").replace(/:[^\\/]+/g, \"([^\\\\/]+)\") + \"\\/?$\")\n\t\t\t\tif (matcher.test(pathname)) {\n\t\t\t\t\tpathname.replace(matcher, function() {\n\t\t\t\t\t\tvar keys = route0.match(/:[^\\/]+/g) || []\n\t\t\t\t\t\tvar values = [].slice.call(arguments, 1, -2)\n\t\t\t\t\t\tfor (var i = 0; i < keys.length; i++) {\n\t\t\t\t\t\t\tparams[keys[i].replace(/:|\\./g, \"\")] = decodeURIComponent(values[i])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve(routes[route0], params, path, route0)\n\t\t\t\t\t})\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\treject(path, params)\n\t\t}\n\t\tif (supportsPushState) $window.onpopstate = debounceAsync(resolveRoute)\n\t\telse if (router.prefix.charAt(0) === \"#\") $window.onhashchange = resolveRoute\n\t\tresolveRoute()\n\t}\n\treturn router\n}\nvar _24 = function($window, redrawService0) {\n\tvar routeService = coreRouter($window)\n\tvar identity = function(v0) {return v0}\n\tvar render1, component, attrs3, currentPath, lastUpdate\n\tvar route = function(root, defaultRoute, routes) {\n\t\tif (root == null) throw new Error(\"Ensure the DOM element that was passed to `m.route` is not undefined\")\n\t\tfunction run1() {\n\t\t\tif (render1 != null) redrawService0.render(root, render1(Vnode(component, attrs3.key, attrs3)))\n\t\t}\n\t\tvar redraw3 = function() {\n\t\t\trun1()\n\t\t\tredraw3 = redrawService0.redraw\n\t\t}\n\t\tredrawService0.subscribe(root, run1)\n\t\tvar bail = function(path) {\n\t\t\tif (path !== defaultRoute) routeService.setPath(defaultRoute, null, {replace: true})\n\t\t\telse throw new Error(\"Could not resolve default route \" + defaultRoute)\n\t\t}\n\t\trouteService.defineRoutes(routes, function(payload, params, path) {\n\t\t\tvar update = lastUpdate = function(routeResolver, comp) {\n\t\t\t\tif (update !== lastUpdate) return\n\t\t\t\tcomponent = comp != null && (typeof comp.view === \"function\" || typeof comp === \"function\")? comp : \"div\"\n\t\t\t\tattrs3 = params, currentPath = path, lastUpdate = null\n\t\t\t\trender1 = (routeResolver.render || identity).bind(routeResolver)\n\t\t\t\tredraw3()\n\t\t\t}\n\t\t\tif (payload.view || typeof payload === \"function\") update({}, payload)\n\t\t\telse {\n\t\t\t\tif (payload.onmatch) {\n\t\t\t\t\tPromise.resolve(payload.onmatch(params, path)).then(function(resolved) {\n\t\t\t\t\t\tupdate(payload, resolved)\n\t\t\t\t\t}, bail)\n\t\t\t\t}\n\t\t\t\telse update(payload, \"div\")\n\t\t\t}\n\t\t}, bail)\n\t}\n\troute.set = function(path, data0, options) {\n\t\tif (lastUpdate != null) {\n\t\t\toptions = options || {}\n\t\t\toptions.replace = true\n\t\t}\n\t\tlastUpdate = null\n\t\trouteService.setPath(path, data0, options)\n\t}\n\troute.get = function() {return currentPath}\n\troute.prefix = function(prefix) {routeService.prefix = prefix}\n\tvar link = function(options, vnode5) {\n\t\tvnode5.dom.setAttribute(\"href\", routeService.prefix + vnode5.attrs.href)\n\t\tvnode5.dom.onclick = function(e) {\n\t\t\tif (e.ctrlKey || e.metaKey || e.shiftKey || e.which === 2) return\n\t\t\te.preventDefault()\n\t\t\te.redraw = false\n\t\t\tvar href = this.getAttribute(\"href\")\n\t\t\tif (href.indexOf(routeService.prefix) === 0) href = href.slice(routeService.prefix.length)\n\t\t\troute.set(href, undefined, options)\n\t\t}\n\t}\n\troute.link = function(args0) {\n\t\tif (args0.tag == null) return link.bind(link, args0)\n\t\treturn link({}, args0)\n\t}\n\troute.param = function(key0) {\n\t\tif(typeof attrs3 !== \"undefined\" && typeof key0 !== \"undefined\") return attrs3[key0]\n\t\treturn attrs3\n\t}\n\treturn route\n}\nm.route = _24(window, redrawService)\nvar _31 = coreRenderer(window)\nm.render = _31.render\nm.redraw = redrawService.redraw\nm.request = requestService.request\nm.jsonp = requestService.jsonp\nm.parseQueryString = parseQueryString\nm.buildQueryString = buildQueryString\nm.version = \"2.0.0-rc.4\"\nm.vnode = Vnode\nm.PromisePolyfill = PromisePolyfill\n\nexport default m\nvar _m = m.m,_trust = m.trust,_fragment = m.fragment,_mount = m.mount,_route = m.route,_render = m.render,_redraw = m.redraw,_request = m.request,_jsonp = m.jsonp,_parseQueryString = m.parseQueryString,_buildQueryString = m.buildQueryString,_version = m.version,_vnode = m.vnode,_PromisePolyfill = m.PromisePolyfill\nexport {_m as m,_trust as trust,_fragment as fragment,_mount as mount,_route as route,_render as render,_redraw as redraw,_request as request,_jsonp as jsonp,_parseQueryString as parseQueryString,_buildQueryString as buildQueryString,_version as version,_vnode as vnode,_PromisePolyfill as PromisePolyfill}","\r\nimport '../css/index.scss';     // so that parcel parcels it\r\nrequire('normalize.css')\r\nimport 'normalize.css';\r\nimport initialize from './initialize';\r\nimport redComponent from './redComponent';\r\nimport modalComponent from './modalComponent';\r\nimport jwPlayerComponent from \"./jwPlayerComponent\";\r\nimport initDropdown from './init_dropdown';\r\nimport $ from 'cash-dom'\r\nimport m from 'mithril'\r\nwindow.$ = $;\r\nwindow.m = m;\r\n\r\nwindow.VETERANS = window.VETERANS || {};\r\n\r\nwindow.VETERANS.REDCOMPONENT = redComponent;\r\nwindow.VETERANS.MODALCOMPONENT = modalComponent;\r\nwindow.VETERANS.JWPLAYERCOMPONENT = jwPlayerComponent;\r\n\r\ninitialize(VETERANS);\r\n"]}