{
  "version": 3,
  "sources": ["node_modules/imba/src/imba/events/helpers.imba", "node_modules/imba/src/imba/events/touch.imba"],
  "sourcesContent": ["export const navigator = new class\n\n\tget ios?\n\t\tlet nav = global.navigator.platform or ''\n\t\treturn true if nav.match(/iPhone|iPod|iPad/)\n\t\treturn true if nav == 'MacIntel' and global.navigator.maxTouchPoints > 2\n\t\treturn false\n\nexport def toElement sel, source\n\tlet el = source\n\t\n\tif sel isa Element\n\t\treturn sel\n\n\tif typeof sel == 'string'\n\t\tif sel == 'this' or sel == ''\n\t\t\treturn el\n\t\telif sel == 'up'\n\t\t\treturn el.parentNode\n\t\telif sel == 'op'\n\t\t\treturn el.offsetParent\n\t\telse\n\t\t\treturn el.closest(sel) or el.querySelector(sel) or global.document.querySelector(sel)\n\t\n\treturn null\n\nexport def parseDimension val\n\tif typeof val == 'string'\n\t\tlet [m,num,unit] = val.match(/^([-+]?[\\d\\.]+)(%|\\w+)$/)\n\t\treturn [parseFloat(num),unit]\n\telif typeof val == 'number'\n\t\treturn [val]\n\nexport def round val,step = 1\n\tlet inv = 1.0 / step\n\tMath.round(val * inv) / inv\n\t\nexport def clamp val,min,max\n\tif min > max\n\t\tMath.max(max,Math.min(min,val))\n\telse\n\t\tMath.min(max,Math.max(min,val))\n\nexport def createScale a0,a1,b0r,b1r,s = 0.1\n\tlet [b0,b0u] = parseDimension(b0r)\n\tlet [b1,b1u] = parseDimension(b1r)\n\tlet [sv,su] = parseDimension(s)\n\t\n\tb0 = (a1 - a0) * (b0 / 100) if b0u == '%'\n\tb1 = (a1 - a0) * (b1 / 100) if b1u == '%'\n\t\n\tsv = (b1 - b0) * (sv / 100) if su == '%'\n\t\n\treturn do(value,fit)\n\t\tlet pct = (value - a0) / (a1 - a0)\n\t\tlet val = b0 + (b1 - b0) * pct\n\t\t# console.log 'scaling',value,[a0,a1],[b0,b1],s,val\n\t\tval = round(val,sv) if s\n\t\tval = clamp(val,b0,b1) if fit\n\t\treturn val", "# imba$imbaPath=global\n\nimport {Event,Element} from '../dom/core'\nimport {listen,once,emit,unlisten} from '../utils'\n\nimport * as helpers from './helpers'\n\nexport def use_events_touch\n\tyes\n\t\nlet iosMoveIframeFix = null\n\nclass Touch\n\tdef constructor e,handler,el\n\t\tphase = 'init'\n\t\tevents = []\n\t\toriginalEvent = e\n\t\thandler = handler\n\t\ttarget = currentTarget = el\n\t\t#mods = {}\n\t\n\tset event value\n\t\tevents.push(value)\n\n\tget ctrlKey do originalEvent.ctrlKey\n\tget altKey do originalEvent.altKey\n\tget shiftKey do originalEvent.shiftKey\n\tget metaKey do originalEvent.metaKey\n\tget isPrimary do originalEvent.isPrimary\n\tget pointerType do originalEvent.pointerType\n\t\n\tget start\n\t\toriginalEvent\n\n\tget originalTarget\n\t\toriginalEvent.target\n\t\t\n\tget event\n\t\tevents[events.length - 1]\n\t\n\tget elapsed\n\t\tevent.timeStamp - events[0].timeStamp\n\t\n\tget type do event.type\n\tget pointerId do originalEvent.pointerId\n\tget pressure do event.pressure\n\tget clientX do event.clientX\n\tget clientY do event.clientY\n\tget offsetX do event.offsetX\n\tget offsetY do event.offsetY\n\tget active? do phase != 'ended'\n\tget ended? do phase == 'ended'\n\t\t\n\tget dx\n\t\t#dx == undefined ? event.x - start.x : #dx\n\t\n\tget dy\n\t\t#dy == undefined ? event.y - start.y : #dy\n\n\tdef stopImmediatePropagation\n\t\tcancelBubble = yes\n\t\tevent.stopImmediatePropagation!\n\t\tself\n\n\tdef stopPropagation\n\t\tcancelBubble = yes\n\t\tevent.stopPropagation!\n\t\tself\n\n\tdef preventDefault\n\t\tdefaultPrevented = yes\n\t\tevent.preventDefault!\n\t\t\n\tdef emit name, ...params do emit(self,name,params)\n\tdef on name, ...params do listen(self,name,...params)\n\tdef once name, ...params do once(self,name,...params)\n\tdef un name, ...params do unlisten(self,name,...params)\n\t\t\n\tdef @flag name, sel\n\t\tconst {element} = #context\n\t\tconst ts = Date.now!\n\n\t\tif #step.setup =? yes\n\t\t\telement.flags.incr(name)\n\t\t\tonce(self,'end') do\n\t\t\t\telement.flags.decr(name)\n\n\t\treturn yes\n\n\t\n\tdef @lock\n\t\t#capture!\n\t\tyes\n\n\tdef #capture\n\t\tif #locked =? yes\n\t\t\t#context.element.setPointerCapture(pointerId)\n\t\t\n\tget #step\n\t\t#mods[#context.step] ||= {}\n\n\tdef #cancel\n\t\t#teardown!\n\t\t\n\tdef @moved a,b\n\t\tlet o = #step\n\t\tconst {element,state,event} = #context\n\n\t\tunless o.setup\n\t\t\tlet th = a or 4\n\t\t\tif typeof a == 'string' and a.match(/^(up|down|left|right|x|y)$/)\n\t\t\t\to.dir = a\n\t\t\t\tth = b or 4\n\t\t\t\t\n\t\t\tif typeof b == 'string' and b.match(/^(up|down|left|right|x|y)$/)\n\t\t\t\to.dir = b\n\n\t\t\to.setup = yes\n\t\t\tlet [tv,tu] = helpers.parseDimension(th)\n\t\t\to.threshold = tv\n\t\t\to.sy = tv\n\t\t\to.x0 = x\n\t\t\to.y0 = y\n\t\t\to.dir ||= 'dist'\n\t\t\to.x = o.left = o.right = o.y = o.up = o.down = o.dist = 0\n\t\t\tif (tu and tu != 'px')\n\t\t\t\tconsole.warn 'only px threshold allowed in @touch.moved'\n\n\t\tif o.active\n\t\t\treturn yes\n\t\t\t\n\t\tif o.cancelled\n\t\t\treturn no\n\t\t\n\t\tlet th = o.threshold\n\t\tlet dx = x - o.x0\n\t\tlet dy = y - o.y0\n\t\t\n\t\to.x = Math.max(o.x,Math.abs(dx))\n\t\to.y = Math.max(o.y,Math.abs(dy))\n\t\to.left = Math.max(o.left,-dx)\n\t\to.right = Math.max(o.right,dx)\n\t\to.up = Math.max(o.up,-dy)\n\t\to.down = Math.max(o.down,dy)\n\t\to.dist = Math.max(o.dist,Math.sqrt(dx*dx + dy*dy))\n\t\t\n\t\tlet val = o[o.dir]\n\n\t\tif val > th and val >= o.x and val >= o.y\n\t\t\to.active = yes\n\t\t\tlet pinned = state.pinTarget\n\t\t\telement.flags.incr('_move_')\n\t\t\tpinned.flags.incr('_move_') if pinned\n\t\t\tpreventDefault!\n\n\t\t\tonce(self,'end') do\n\t\t\t\tpinned.flags.decr('_move_') if pinned\n\t\t\t\telement.flags.decr('_move_')\n\t\t\treturn true\n\t\t\t\n\t\telif o.x > th or o.y > th\n\t\t\to.cancelled = yes\n\t\t\t# #cancel!\n\t\t\treturn no\n\t\t\t\n\t\treturn no\n\t\n\tdef @hold time = 250\n\t\tlet o = #step\n\t\tlet el = #context.element\n\t\t\n\t\treturn no if o.cancelled\n\t\t\n\t\tif o.setup and !o.active\n\t\t\tlet x = clientX\n\t\t\tlet y = clientY\n\t\t\t\n\t\t\tlet dx = x - o.x\n\t\t\tlet dy = y - o.y\n\t\t\tlet dr = Math.sqrt(dx*dx + dy*dy)\n\t\t\t# cancel\n\t\t\tif dr > 5 and !o.cancelled\n\t\t\t\tclearTimeout(o.timeout)\n\t\t\t\to.cancelled = yes\n\t\t\t\t# #cancel!\n\t\t\t\n\t\tif o.setup =? yes\n\t\t\to.active = no\n\t\t\to.x = clientX\n\t\t\to.y = clientY\n\t\t\to.timeout = setTimeout(&,time) do\n\t\t\t\to.active = yes\n\t\t\t\tpreventDefault!\n\t\t\t\tel.flags.incr(\"_hold_\")\n\t\t\t\n\t\t\tonce(self,'end') do\n\t\t\t\tif o.active\n\t\t\t\t\tel.flags.decr(\"_hold_\")\n\t\t\t\tclearTimeout(o.timeout)\n\t\t\t\t\n\t\t\t# Should this also cancel if starting to move before this?\n\n\t\treturn o.active\n\t\t\n\tdef @sync item,xalias='x',yalias='y'\n\t\tlet o = #step\n\n\t\tif o.setup =? yes\n\t\t\to.x = item[xalias] or 0\n\t\t\to.y = item[yalias] or 0\n\t\t\to.tx = x\n\t\t\to.ty = y\n\t\telse\n\t\t\titem[xalias] = o.x + (x - o.tx) if xalias\n\t\t\titem[yalias] = o.y + (y - o.ty) if yalias\n\t\t\t\n\t\t#context.commit = yes\n\t\treturn yes\n\t\t\n\tdef @apply item,xalias='x',yalias='y'\n\t\titem[xalias] = x if xalias\n\t\titem[yalias] = y if yalias\n\t\t#context.commit = yes\n\t\treturn yes\n\t\t\n\tdef @css xalias='x',yalias='y'\n\t\t\n\t\tlet o = #step\n\t\tif o.setup =? yes\n\t\t\to.el = #context.element\n\t\t\to.x = o.el.#x or 0\n\t\t\to.y = o.el.#y or 0\n\t\t\to.tx = x\n\t\t\to.ty = y\n\t\telse\n\t\t\tlet x = o.el.#x = o.x + (x - o.tx)\n\t\t\tlet y = o.el.#y = o.y + (y - o.ty)\n\n\t\t\to.el.style.setProperty(\"--x\",x + 'px') if xalias\n\t\t\to.el.style.setProperty(\"--y\",y + 'px') if yalias\t\t\t\n\t\treturn yes\n\t\t\t\n\tdef @end\n\t\treturn phase == 'ended'\n\t\t\n\tdef @shift\n\t\treturn !!shiftKey\n\n\tdef @alt\n\t\treturn !!altKey\n\n\tdef @ctrl\n\t\treturn !!ctrlKey\n\n\tdef @meta\n\t\treturn !!metaKey\n\t\t\n\tdef @primary\n\t\treturn !!isPrimary\n\t\n\tdef @mouse\n\t\treturn pointerType == 'mouse'\n\t\n\tdef @pen\n\t\treturn pointerType == 'pen'\n\t\n\tdef @touch\n\t\treturn pointerType == 'touch'\n\t\n\tdef @pressure threshold = 0.5\n\t\treturn pressure >= threshold\n\t\t\n\tdef @log ...params\n\t\tconsole.info(...params)\n\t\treturn true\n\t\t\n\tdef @left do originalEvent.button == 0\n\n\tdef @middle do originalEvent.button == 1\n\n\tdef @right do originalEvent.button == 2\n\t\t\n\tdef @round sx=1,sy=sx \n\t\tx = helpers.round(x,sx)\n\t\ty = helpers.round(y,sy)\n\t\treturn yes\n\t\t\n\tdef #reframe ...params\n\t\tlet o = #step\n\t\t\n\t\tif o.setup =? yes\n\t\t\tlet el = target\n\t\t\tlet len = params.length\n\t\t\tlet box = params[0]\n\t\t\tlet min = 0\n\t\t\tlet max = 100%\n\t\t\tlet snap = 1\n\t\t\tlet typ = typeof box\n\t\t\t\n\t\t\tif typ == 'number' or (typ == 'string' and (/^([-+]?\\d[\\d\\.]*)(%|\\w+)$/).test(box)) or box isa Array\n\t\t\t\tbox = null\n\n\t\t\telif typ == 'string'\n\t\t\t\tif box == 'this' or box == ''\n\t\t\t\t\tbox = el\n\t\t\t\telif box == 'up'\n\t\t\t\t\tbox = el.parentNode\n\t\t\t\telif box == 'op'\n\t\t\t\t\tbox = el.offsetParent\n\t\t\t\telse\n\t\t\t\t\tbox = el.closest(box) or el.querySelector(box)\n\n\t\t\tif box == null\n\t\t\t\tlen++\n\t\t\t\tparams.unshift(box = el)\n\t\t\t\n\t\t\tif len == 2\n\t\t\t\tsnap = params[1]\n\t\t\telif len > 2\n\t\t\t\t[min,max,snap=1] = params.slice(1)\n\n\t\t\tlet rect = box.getBoundingClientRect!\n\t\t\tmin = [min,min] unless min isa Array\n\t\t\tmax = [max,max] unless max isa Array\n\t\t\tsnap = [snap,snap] unless snap isa Array\n\n\t\t\to.rect = rect\n\t\t\to.x = helpers.createScale(rect.left,rect.right,min[0],max[0],snap[0])\n\t\t\to.y = helpers.createScale(rect.top,rect.bottom,min[1],max[1],snap[1])\n\t\t\tx0 = x = o.x(x,o.clamp)\n\t\t\ty0 = y = o.y(y,o.clamp)\n\t\telse\n\t\t\tlet x = x = o.x(x,o.clamp)\n\t\t\tlet y = y = o.y(y,o.clamp)\n\t\t\t#dx = x - x0\n\t\t\t#dy = y - y0\n\n\t\treturn yes\n\t\n\tdef @fit ...params\n\t\t#step.clamp = yes\n\t\t#reframe(...params)\n\t\n\tdef @reframe ...params\n\t\t#reframe(...params)\n\t\n\t###\n\tAllow pinning the touch to a certain point in an element, so that\n\tall future x,y values are relative to this pinned point.\n\tYou can include relative anchors for x and y\n\n\tMake x,y relative to the center of the parent:\n\t\t<box.target> <div.handle @touch.pin('.target',0.5,0.5)>\n\n\t(targetElement,anchorX?, anchorY?)\n\t###\n\tdef @pin ...params\n\t\tlet o = #step\n\t\t\n\t\t# TODO warn if pin comes after reframe\n\n\t\tif o.setup =? yes\n\t\t\tlet box = helpers.toElement(params[0],target)\n\n\t\t\tunless box isa Element\n\t\t\t\tparams.unshift(box = target)\n\t\t\t\n\t\t\tlet ax = params[1] or 0\n\t\t\tlet ay = params[2] ?= ax\n\t\t\tlet rect = box.getBoundingClientRect!\n\t\t\t\n\t\t\to.x = clientX - (rect.left + rect.width * ax)\n\t\t\to.y = clientY - (rect.top + rect.height * ay)\n\n\t\t\tif box\n\t\t\t\t#pinTarget = box\n\t\t\t\tbox.flags.incr('_touch_')\n\t\t\t\tonce(self,'end') do box.flags.decr('_touch_')\n\t\t\t# console.log 'pinning',o,box\n\t\t\n\t\tx -= o.x\n\t\ty -= o.y\n\t\treturn yes\n\nextend class Element\n\tdef on$touch(mods,context,handler,o)\n\t\thandler.type = 'touch'\n\t\tself.addEventListener('pointerdown',handler,{passive: false})\n\t\tif helpers.navigator.ios? and global.parent != global\n\t\t\tif iosMoveIframeFix =? true\n\t\t\t\tglobal.parent.postMessage('setupTouchFix')\n\n\t\treturn handler\n\t\t\nif $web$ and global.parent == global and helpers.navigator.ios?\n\tlet fix = do(e)\n\t\tif e.data == 'setupTouchFix'\n\t\t\tglobal.addEventListener('touchmove',&,{passive: false}) do false\n\t\t\tglobal.removeEventListener('message',fix)\n\tglobal.addEventListener('message',fix)\n\t\t\ndef Event.touch$handle\n\tlet e = event\n\tlet el = element\n\tlet id = state.pointerId\n\tlet m = modifiers\n\tlet handler = self.handler\n\tlet ios = helpers.navigator.ios?\n\n\tcurrent = state\n\n\tif id != undefined\n\t\treturn id == e.pointerId\n\t\t\n\t\n\t# reject the touch before creation for certain modifiers\n\t# TODO should allow specifying pen OR mouse etc\n\t# FIXME these will not work with negated modifiers\n\treturn if m.ctrl and !e.ctrlKey\n\treturn if m.alt and !e.altKey\n\treturn if m.meta and !e.metaKey\n\treturn if m.shift and !e.shiftKey\n\treturn if m.if and !!m.if[0] == false\n\treturn if m.self and e.target != el\n\treturn if m.primary and !e.isPrimary\n\treturn if m.pen and e.pointerType != 'pen'\n\treturn if m.mouse and e.pointerType != 'mouse'\n\treturn if m.touch and e.pointerType != 'touch'\n\treturn if m.sel and !e.target.matches(String(m.sel[0]))\n\t\n\tlet t = state = handler.state = current = new Touch(e,handler,el)\n\tid = t.pointerId\n\n\tlet canceller = do(e)\n\t\te.preventDefault!\n\t\treturn false\n\n\tlet teardown = null\n\tlet sym = Symbol!\n\t\n\tlet onclick = do(e)\n\t\t# console.debug \"ONCLICK!\",e,e.pointerId,t.clientX,t.clientY,e.clientX,e.clientY\n\t\tlet tx = t.clientX\n\t\tlet ty = t.clientY\n\t\tlet ex = e.clientX\n\t\tlet ey = e.clientY\n\n\t\tif (t.#locked or t.defaultPrevented) and ((e.pointerId == t.pointerId) or (tx == ex and ty == ey))\n\t\t\te.preventDefault!\n\t\t\te.stopPropagation!\n\t\t\t\n\t\tif onclick\n\t\t\tglobal.removeEventListener('click',onclick,capture:true)\n\t\t\tonclick = null\n\t\treturn\n\t\t\n\tlet ontouch = do(e)\n\t\tif t.type == 'touchmove' and e.changedTouches[0].identifier != id\n\t\t\treturn \t\n\t\t# console.debug 'ontouch',e.type,t.defaultPrevented,e.changedTouches\n\t\tif t.defaultPrevented or t.#locked\n\t\t\te.preventDefault!\n\t\t\n\tlet listener = do(e)\n\t\tlet typ = e.type\n\t\tlet ph = t.phase\n\t\t# console.debug \"listen\",e.type,e.pointerId\n\t\treturn if e.pointerId and t.pointerId != e.pointerId\n\t\t\n\t\tif e[sym]\n\t\t\treturn\n\n\t\te[sym] = yes\n\t\t\n\t\t\n\t\tlet end = typ == 'pointerup' or typ == 'pointercancel'\n\t\t\n\t\t# if the pressure is suddenly 0 it indicates there has been a\n\t\t# pointerup event not captured by the browser\n\t\tif e.pressure == 0 and e.pointerType == 'mouse' and typ == 'pointermove' and t.originalEvent.pressure > 0\n\t\t\treturn teardown(e)\n\t\t\n\t\tif typ == 'pointercancel'\n\t\t\tt.x = t.clientX\n\t\t\tt.y = t.clientY\n\t\telse\n\t\t\tt.x = e.clientX\n\t\t\tt.y = e.clientY\n\t\t\t\n\t\tt.event = e\n\n\t\tif end\n\t\t\tt.phase = 'ended'\n\t\t\t\n\t\ttry handler.handleEvent(t)\n\t\t\n\t\tif ph == 'init' and !end\n\t\t\tt.phase = 'active'\n\t\t\t\n\t\tif end and teardown\n\t\t\tteardown(e)\n\t\n\tlet disposed = no\n\n\tteardown = do(e)\n\t\treturn if disposed\n\t\tdisposed = yes\n\t\tel.flags.decr('_touch_')\n\n\t\tif t.phase != 'ended'\n\t\t\tt.phase = 'ended'\n\t\t\tt.x = t.clientX\n\t\t\tt.y = t.clientY\n\t\t\thandler.handleEvent(t)\n\n\t\tt.emit('end')\n\t\t\n\t\tunless m.passive\n\t\t\tif (--handler.prevents) == 0\n\t\t\t\tel.style.removeProperty('touch-action')\n\n\t\thandler.state = {}\n\n\t\tglobal.removeEventListener('pointermove',listener,passive:!!m.passive)\n\t\tglobal.removeEventListener('pointerup',listener)\n\t\tglobal.removeEventListener('pointercancel',listener)\n\n\t\tsetTimeout(&,100) do\n\t\t\tif onclick\n\t\t\t\tglobal.removeEventListener('click',onclick,capture:true)\n\t\t\t\tonclick = null\n\t\t\t\t\n\t\t\tif ios and ontouch\n\t\t\t\tglobal.removeEventListener('touchend',ontouch)\n\t\t\t\tglobal.removeEventListener('touchmove',ontouch,{passive: false})\n\t\t\t\tontouch = null\n\n\t\tif !m.passive\n\t\t\tglobal.document.removeEventListener('selectstart',canceller,capture:true)\n\t\t\n\tt.#teardown = teardown\n\t\n\tif !m.passive\n\t\thandler.prevents ||= 0\n\t\thandler.prevents++\n\t\tel.style.setProperty('touch-action','none')\n\t\tel.offsetWidth\n\n\tel.flags.incr('_touch_')\n\tglobal.addEventListener('pointermove',listener,passive:!!m.passive)\n\tglobal.addEventListener('pointerup',listener)\n\tglobal.addEventListener('pointercancel',listener)\n\tglobal.addEventListener('click',onclick,capture:true)\n\n\tif ios and !m.passive\n\t\tglobal.addEventListener('touchend',ontouch)\n\t\tglobal.addEventListener('touchmove',ontouch,{passive: false})\n\n\tif !m.passive\n\t\tglobal.document.addEventListener('selectstart',canceller,capture:true)\n\n\tlistener(e)\n\treturn false"],
  "mappings": ";kLA0BO,WAAmB,EAAG,CAC5B,GAAU,MAAA,IAAO,SAAQ,CACpB,GAAA,CAAC,EAAE,EAAI,GAAQ,EAAI,MAAM,2BAC7B,MAAO,CAAC,WAAW,GAAK,WACb,MAAA,IAAO,SAClB,MAAO,CAAC,GAEH,WAAU,EAAI,EAAO,EAAC,CACxB,GAAA,GAAM,EAAM,EAChB,MAAA,MAAK,MAAM,EAAM,GAAO,EAElB,WAAU,EAAI,EAAI,EAAG,CAC3B,MAAG,GAAM,EACR,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,IAE1B,KAAK,IAAI,EAAI,KAAK,IAAI,EAAI,IAErB,WAAgB,EAAG,EAAG,EAAI,EAAI,EAAI,GAAG,CACvC,GAAA,CAAC,EAAG,GAAO,EAAe,GAC1B,CAAC,EAAG,GAAO,EAAe,GAC1B,CAAC,EAAG,GAAM,EAAe,GAED,MAAG,IAAO,KAAtC,GAAM,GAAK,GAAO,GAAK,MACQ,GAAO,KAAtC,GAAM,GAAK,GAAO,GAAK,MAEQ,GAAM,KAArC,GAAM,GAAK,GAAO,GAAK,MAEhB,SAAG,EAAM,EAAI,CACf,GAAA,GAAO,GAAQ,GAAO,GAAK,GAC3B,EAAM,EAAM,GAAK,GAAM,EAEP,MAAG,IAAvB,GAAM,EAAM,EAAI,IACU,GAA1B,GAAM,EAAM,EAAI,EAAG,IACZ,geCpDF,aAAoB,CAC1B,MAAA,GAEG,GAAA,GAAmB,KAEvB,OAAW,CACN,YAAY,EAAE,EAAQ,EAAE,CAC3B,KAAA,MAAQ,OACR,KAAA,OAAS,GACT,KAAA,cAAgB,OAChB,QAAU,EACV,KAAA,OAAS,KAAA,cAAgB,UACjB,MAEL,OAAM,EAAK,CACd,KAAA,OAAO,KAAK,MAET,UAAO,CAAI,MAAA,MAAA,cAAc,WACzB,SAAM,CAAI,MAAA,MAAA,cAAc,UACxB,WAAQ,CAAI,MAAA,MAAA,cAAc,YAC1B,UAAO,CAAI,MAAA,MAAA,cAAc,WACzB,YAAS,CAAI,MAAA,MAAA,cAAc,aAC3B,cAAW,CAAI,MAAA,MAAA,cAAc,eAE7B,QAAK,CACR,MAAA,MAAA,iBAEG,iBAAc,CACjB,MAAA,MAAA,cAAc,UAEX,QAAK,CACR,MAAA,MAAA,OAAO,KAAA,OAAO,OAAS,MAEpB,UAAO,CACV,MAAA,MAAA,MAAM,UAAY,KAAA,OAAO,GAAG,aAEzB,OAAI,CAAI,MAAA,MAAA,MAAM,QACd,YAAS,CAAI,MAAA,MAAA,cAAc,aAC3B,WAAQ,CAAI,MAAA,MAAA,MAAM,YAClB,UAAO,CAAI,MAAA,MAAA,MAAM,WACjB,UAAO,CAAI,MAAA,MAAA,MAAM,WACjB,UAAO,CAAI,MAAA,MAAA,MAAM,WACjB,UAAO,CAAI,MAAA,MAAA,MAAM,WACjB,eAAO,CAAI,MAAA,MAAA,OAAS,WACpB,cAAM,CAAI,MAAA,MAAA,OAAS,WAEnB,KAAE,iBACE,KAAY,KAAA,MAAM,EAAI,KAAA,MAAM,EAAC,KAAA,MAEjC,KAAE,iBACE,KAAY,KAAA,MAAM,EAAI,KAAA,MAAM,EAAC,KAAA,GAEjC,0BAAwB,CAC3B,YAAA,aAAe,GACf,KAAA,MAAM,2BACN,KAEG,iBAAe,CAClB,YAAA,aAAe,GACf,KAAA,MAAM,kBACN,KAEG,gBAAc,CACjB,YAAA,iBAAmB,GACnB,KAAA,MAAM,iBAEH,KAAK,KAAS,EAAM,CAAI,MAAA,GAAK,KAAK,EAAK,GACvC,GAAG,KAAS,EAAM,CAAI,MAAA,GAAO,KAAK,EAAQ,GAAA,GAC1C,KAAK,KAAS,EAAM,CAAI,MAAA,GAAK,KAAK,EAAQ,GAAA,GAC1C,GAAG,KAAS,EAAM,CAAI,MAAA,GAAS,KAAK,EAAQ,GAAA,GAE5C,WAAM,EAAM,EAAG,CACZ,GAAA,CAAC,QAAA,GAAQ,KAAA,GACT,EAAK,KAAK,MAEhB,MAAE,MAAA,GAAO,OAAS,GAAG,MAAA,GAAZ,MAAS,GAAG,IAAA,KACpB,GAAQ,MAAM,KAAK,GACnB,EAAK,KAAK,MAAO,UAAE,CAClB,MAAA,GAAQ,MAAM,KAAK,MAEd,GAGJ,YAAK,kBAER,QAEW,CACX,GAAE,KAAA,IAAY,GAAG,MAAA,GAAH,GAAG,IAAA,kBACP,QAAQ,kBAAkB,KAAA,eAElC,IAAM,2BACH,EAAA,KAAA,GAAU,OAAI,GAAA,GAAM,SAEf,kBAGP,YAAO,EAAE,EAAC,CACT,GAAA,GAAC,KAAA,GACC,CAAC,QAAA,EAAQ,MAAA,EAAM,MAAA,GAAM,KAAA,GAE3B,GAAO,CAAA,EAAE,MAAK,CACT,GAAA,GAAK,GAAK,EACd,AAAU,MAAA,IAAK,UAAa,EAAE,MAAM,+BACnC,GAAE,IAAM,EACR,EAAK,GAAK,GAED,MAAA,IAAK,UAAa,EAAE,MAAM,+BACnC,GAAE,IAAM,GAET,EAAE,MAAQ,GACN,GAAA,CAAC,EAAG,GAAM,AAAQ,EAAe,GACrC,EAAE,UAAY,EACd,EAAE,GAAK,EACP,EAAE,GAAK,KAAA,EACP,EAAE,GAAK,KAAA,EACP,EAAE,KAAF,GAAE,IAAQ,QACV,EAAE,EAAI,EAAE,KAAO,EAAE,MAAQ,EAAE,EAAI,EAAE,GAAK,EAAE,KAAO,EAAE,KAAO,EACpD,GAAO,GAAM,MAChB,QAAQ,KAAK,6CAEf,GAAG,EAAE,OACJ,MAAO,GAER,GAAG,EAAE,UACJ,MAAO,GAEJ,GAAA,GAAK,EAAE,UACP,EAAK,KAAA,EAAI,EAAE,GACX,EAAK,KAAA,EAAI,EAAE,GAEf,EAAE,EAAI,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,IAC5B,EAAE,EAAI,KAAK,IAAI,EAAE,EAAE,KAAK,IAAI,IAC5B,EAAE,KAAO,KAAK,IAAI,EAAE,KAAM,CAAA,GAC1B,EAAE,MAAQ,KAAK,IAAI,EAAE,MAAM,GAC3B,EAAE,GAAK,KAAK,IAAI,EAAE,GAAI,CAAA,GACtB,EAAE,KAAO,KAAK,IAAI,EAAE,KAAK,GACzB,EAAE,KAAO,KAAK,IAAI,EAAE,KAAK,KAAK,KAAK,EAAG,EAAK,EAAG,IAE1C,GAAA,GAAM,EAAE,EAAE,KAEd,GAAG,EAAM,GAAO,GAAO,EAAE,GAAM,GAAO,EAAE,EAAC,CACxC,EAAE,OAAS,GACP,GAAA,GAAS,EAAM,UACnB,SAAQ,MAAM,KAAK,UACY,GAA/B,EAAO,MAAM,KAAK,UAClB,KAAA,iBAEA,EAAK,KAAK,MAAO,UAAE,CACU,MAAG,IAA/B,EAAO,MAAM,KAAK,UAClB,EAAQ,MAAM,KAAK,YACb,WAEH,EAAE,EAAI,GAAM,EAAE,EAAI,EACtB,SAAE,UAAY,GAEP,GAER,MAAO,GAEJ,WAAM,EAAO,IAAG,YACf,GAAA,GAAC,KAAA,GACD,EAAE,KAAA,GAAY,QAER,GAAG,EAAE,UAAf,MAAO,GAEP,GAAG,EAAE,OAAW,CAAA,EAAE,OAAM,CACnB,GAAA,GAAI,KAAA,QACJ,EAAI,KAAA,QAEJ,EAAK,EAAI,EAAE,EACX,EAAK,EAAI,EAAE,EAGf,AAAG,AAFM,KAAK,KAAK,EAAG,EAAK,EAAG,GAEtB,GAAO,CAAA,EAAE,WAChB,cAAa,EAAE,SACf,EAAE,UAAY,IAGhB,MAAG,GAAE,OAAS,GAAX,GAAE,MAAS,GAAG,IAAA,KAChB,GAAE,OAAS,GACX,EAAE,EAAI,KAAA,QACN,EAAE,EAAI,KAAA,QACN,EAAE,QAAU,WAAmB,UAAE,CAChC,SAAE,OAAS,GACX,EAAA,iBACA,EAAG,MAAM,KAAK,WAHU,GAKzB,EAAK,EAAK,MAAO,UAAE,CAClB,MAAG,GAAE,QACJ,EAAG,MAAM,KAAK,UACf,aAAa,EAAE,YAIV,EAAE,OAEN,WAAM,EAAK,EAAO,IAAI,EAAO,IAAG,CAC/B,GAAA,GAAC,KAAA,GAEL,MAAG,GAAE,OAAS,GAAX,GAAE,MAAS,GAAG,IAAA,IAChB,GAAE,EAAI,EAAK,IAAW,EACtB,EAAE,EAAI,EAAK,IAAW,EACtB,EAAE,GAAK,KAAA,EACP,EAAE,GAAK,KAAA,GAE4B,IAAnC,GAAK,GAAU,EAAE,EAAK,MAAA,EAAI,EAAE,KACO,GAAnC,GAAK,GAAU,EAAE,EAAK,MAAA,EAAI,EAAE,cAEpB,OAAS,GACX,GAEJ,YAAO,EAAK,EAAO,IAAI,EAAO,IAAG,CACnB,MAAG,IAApB,GAAK,GAAU,KAAA,GACK,GAApB,GAAK,GAAU,KAAA,WACN,OAAS,GACX,GAEJ,UAAK,EAAO,IAAI,EAAO,IAAG,CAEzB,GAAA,GAAC,KAAA,GACL,GAAG,EAAE,OAAS,GAAX,GAAE,MAAS,GAAG,IAAA,GAChB,EAAE,GAAE,KAAA,GAAY,QAChB,EAAE,EAAI,EAAE,GAAE,IAAO,EACjB,EAAE,EAAI,EAAE,GAAE,IAAO,EACjB,EAAE,GAAK,KAAA,EACP,EAAE,GAAK,KAAA,MACJ,CACC,GAAA,GAAI,EAAE,GAAE,GAAM,EAAE,EAAK,MAAA,EAAI,EAAE,IAC3B,EAAI,EAAE,GAAE,GAAM,EAAE,EAAK,MAAA,EAAI,EAAE,IAEQ,AAAG,GAA1C,EAAE,GAAG,MAAM,YAAY,MAAM,EAAI,MACS,GAA1C,EAAE,GAAG,MAAM,YAAY,MAAM,EAAI,MAClC,MAAO,GAEJ,WAAI,CACP,MAAO,MAAA,OAAS,QAEb,aAAM,CACT,MAAS,CAAA,CAAA,KAAA,SAEN,WAAI,CACP,MAAS,CAAA,CAAA,KAAA,OAEN,YAAK,CACR,MAAS,CAAA,CAAA,KAAA,QAEN,YAAK,CACR,MAAS,CAAA,CAAA,KAAA,QAEN,eAAQ,CACX,MAAS,CAAA,CAAA,KAAA,UAEN,aAAM,CACT,MAAO,MAAA,aAAe,QAEnB,WAAI,CACP,MAAO,MAAA,aAAe,MAEnB,aAAM,CACT,MAAO,MAAA,aAAe,QAEnB,eAAU,EAAY,GAAG,CAC5B,MAAO,MAAA,UAAY,EAEhB,aAAQ,EAAM,CACjB,eAAQ,KAAQ,GAAA,GACT,GAEJ,YAAK,CAAI,MAAA,MAAA,cAAc,QAAU,EAEjC,cAAO,CAAI,MAAA,MAAA,cAAc,QAAU,EAEnC,aAAM,CAAI,MAAA,MAAA,cAAc,QAAU,EAElC,YAAO,EAAG,EAAE,EAAG,EAAG,CACrB,YAAA,EAAI,AAAQ,EAAM,KAAA,EAAE,GACpB,KAAA,EAAI,AAAQ,EAAM,KAAA,EAAE,GACb,UAEQ,EAAM,CACjB,GAAA,GAAC,KAAA,GAEL,GAAG,EAAE,OAAS,GAAX,GAAE,MAAS,GAAG,IAAA,GAAA,CACZ,GAAA,GAAK,KAAA,OACL,EAAM,EAAO,OACb,EAAM,EAAO,GACb,EAAM,EACN,EAAM,OACN,EAAO,EACP,EAAa,MAAA,GAEjB,AAAG,GAAO,UAAa,GAAO,UAAc,4BAA6B,KAAK,IAAS,YAAQ,OAC9F,EAAM,KAEF,GAAO,UACX,CAAG,GAAO,QAAU,GAAO,GAC1B,EAAM,EACP,AAAK,GAAO,KACX,EAAM,EAAG,WACV,AAAK,GAAO,KACX,EAAM,EAAG,aAET,EAAM,EAAG,QAAQ,IAAQ,EAAG,cAAc,IAEzC,GAAO,MACT,KACA,EAAO,QAAQ,EAAM,IAEtB,AAAG,GAAO,EACT,EAAO,EAAO,GACV,EAAM,GACV,EAAC,EAAI,EAAI,EAAK,GAAK,EAAO,MAAM,IAE7B,GAAA,GAAO,EAAI,wBACC,AAAO,YAAQ,QAA/B,GAAM,CAAC,EAAI,IACY,YAAQ,QAA/B,GAAM,CAAC,EAAI,IACe,YAAS,QAAnC,GAAO,CAAC,EAAK,IAEb,EAAE,KAAO,EACT,EAAE,EAAI,AAAQ,EAAY,EAAK,KAAK,EAAK,MAAM,EAAI,GAAG,EAAI,GAAG,EAAK,IAClE,EAAE,EAAI,AAAQ,EAAY,EAAK,IAAI,EAAK,OAAO,EAAI,GAAG,EAAI,GAAG,EAAK,IAClE,KAAA,GAAK,KAAA,EAAI,EAAE,EAAE,KAAA,EAAE,EAAE,OACjB,KAAA,GAAK,KAAA,EAAI,EAAE,EAAE,KAAA,EAAE,EAAE,WACd,CACC,GAAA,GAAI,KAAA,EAAI,EAAE,EAAE,KAAA,EAAE,EAAE,OAChB,EAAI,KAAA,EAAI,EAAE,EAAE,KAAA,EAAE,EAAE,eACd,EAAI,KAAA,WACJ,EAAI,KAAA,GAEX,MAAO,GAEJ,aAAQ,EAAM,gBACX,MAAQ,WACF,GAAA,GAET,iBAAY,EAAM,gBACT,GAAA,GAYT,aAAQ,EAAM,CACb,GAAA,GAAC,KAAA,GAIL,GAAG,EAAE,OAAS,GAAX,GAAE,MAAS,GAAG,IAAA,GAAA,CACZ,GAAA,GAAM,AAAQ,EAAU,EAAO,GAAG,KAAA,QAEtC,AAAO,YAAQ,IACd,EAAO,QAAQ,EAAM,KAAA,QAElB,GAAA,GAAK,EAAO,IAAM,EAClB,EAAK,EAAO,IAAC,KAAR,EAAO,GAAM,EAAb,EAAO,GACZ,EAAO,EAAI,wBAEf,EAAE,EAAI,KAAA,QAAW,GAAK,KAAO,EAAK,MAAQ,GAC1C,EAAE,EAAI,KAAA,QAAW,GAAK,IAAM,EAAK,OAAS,GAEvC,YACW,EACb,EAAI,MAAM,KAAK,WACf,EAAK,KAAK,MAAO,UAAE,CAAC,MAAA,GAAI,MAAM,KAAK,cAGrC,YAAA,GAAK,EAAE,EACP,KAAA,GAAK,EAAE,EACA,KAEF,OAAK,CACP,SAAS,EAAK,EAAQ,EAAQ,EAAE,CACnC,SAAQ,KAAO,QACf,KAAK,iBAAiB,cAAc,EAAQ,CAAC,QAAS,KACnD,AAAQ,EAAU,WAAS,WAAO,QAAU,YAC3C,IAAoB,GAApB,GAAoB,GAAI,IAAA,KAC1B,WAAO,OAAO,YAAY,iBAErB,MARI,EAAO,UAAA,EAAA,WAUpB,GAAG,AAAU,WAAO,QAAU,YAAW,AAAQ,EAAU,UAAI,CAC1D,GAAA,GAAM,SAAG,EAAE,CACd,GAAG,EAAE,MAAQ,gBACZ,kBAAO,iBAAiB,YAAgC,UAAE,CAAC,MAAA,IAArB,CAAC,QAAS,KAChD,WAAO,oBAAoB,UAAU,IACvC,WAAO,iBAAiB,UAAU,KAEzB,aAAY,UAAA,CACjB,GAAA,GAAI,KAAA,MACJ,EAAK,KAAA,QACL,EAAK,KAAA,MAAM,UACX,EAAI,KAAA,UACJ,EAAU,KAAK,QACf,EAAM,AAAQ,EAAU,UAI5B,GAFA,KAAA,QAAU,KAAA,MAEP,GAAM,KACR,MAAO,IAAM,EAAE,UAgBT,GAVG,EAAE,MAAU,CAAA,EAAE,SACd,EAAE,KAAS,CAAA,EAAE,QACb,EAAE,MAAU,CAAA,EAAE,SACd,EAAE,OAAW,CAAA,EAAE,UACf,EAAE,IAAS,CAAA,EAAE,GAAG,IAChB,EAAE,MAAS,EAAE,QAAU,GACvB,EAAE,SAAa,CAAA,EAAE,WACjB,EAAE,KAAQ,EAAE,aAAe,OAC3B,EAAE,OAAU,EAAE,aAAe,SAC7B,EAAE,OAAU,EAAE,aAAe,SAC7B,EAAE,KAAS,CAAA,EAAE,OAAO,QAAQ,OAAO,EAAE,IAAI,KAAnD,OAEI,GAAA,GAAI,KAAA,MAAQ,EAAQ,MAAQ,KAAA,QAAc,GAAA,GAAM,EAAE,EAAQ,GAC9D,EAAK,EAAE,UAEH,GAAA,GAAY,SAAG,EAAE,CACpB,SAAE,iBACK,IAEJ,EAAW,KACX,EAAM,SAEN,EAAU,SAAG,EAAE,CAEd,GAAA,GAAK,EAAE,QACP,EAAK,EAAE,QACP,EAAK,EAAE,QACP,EAAK,EAAE,QAEX,AAAI,GAAC,IAAY,EAAE,mBAAwB,GAAE,WAAa,EAAE,WAAe,GAAM,GAAO,GAAM,IAC7F,GAAE,iBACF,EAAE,mBAEA,GACF,YAAO,oBAAoB,QAAQ,EAAO,CAAC,QAAQ,KACnD,EAAU,OAGR,EAAU,SAAG,EAAE,CAClB,GAAG,IAAE,MAAQ,aAAgB,EAAE,eAAe,GAAG,YAAc,IAG5D,GAAE,kBAAoB,EAAC,IACzB,MAAA,GAAE,kBAEA,EAAW,SAAG,EAAE,CACf,GAAA,GAAM,EAAE,KACR,EAAK,EAAE,MAIX,GAFU,EAAE,WAAc,EAAE,WAAa,EAAE,WAExC,EAAE,GACJ,OAED,EAAE,GAAO,GAGL,GAAA,GAAM,GAAO,aAAe,GAAO,gBAIvC,GAAG,EAAE,UAAY,GAAM,EAAE,aAAe,SAAY,GAAO,eAAkB,EAAE,cAAc,SAAW,EACvG,MAAO,GAAS,GAEjB,AAAG,GAAO,gBACT,GAAE,EAAI,EAAE,QACR,EAAE,EAAI,EAAE,SAER,GAAE,EAAI,EAAE,QACR,EAAE,EAAI,EAAE,SAET,EAAE,MAAQ,EAEP,GACF,GAAE,MAAQ,aAEP,EAAQ,YAAY,SA9e1B,EAAA,EAmfE,GAHG,GAAM,QAAY,CAAA,GACpB,GAAE,MAAQ,UAER,GAAQ,EACV,MAAA,GAAS,IAEP,EAAW,GAEf,SAAW,SAAG,EAAE,CACR,GAAG,IACV,GAAW,GACX,EAAG,MAAM,KAAK,WAEX,EAAE,OAAS,SACb,GAAE,MAAQ,QACV,EAAE,EAAI,EAAE,QACR,EAAE,EAAI,EAAE,QACR,EAAQ,YAAY,IAErB,EAAE,KAAK,OAEA,EAAE,SACN,EAAI,EAAQ,UAAa,GAC1B,EAAG,MAAM,eAAe,gBAE1B,EAAQ,MAAQ,GAEhB,WAAO,oBAAoB,cAAc,EAAQ,CAAC,QAAU,CAAA,CAAA,EAAE,UAC9D,WAAO,oBAAoB,YAAY,GACvC,WAAO,oBAAoB,gBAAgB,GAE3C,WAAkB,UAAE,CAKnB,GAJG,GACF,YAAO,oBAAoB,QAAQ,EAAO,CAAC,QAAQ,KACnD,EAAU,MAER,GAAQ,EACV,kBAAO,oBAAoB,WAAW,GACtC,WAAO,oBAAoB,YAAY,EAAQ,CAAC,QAAS,KACzD,EAAU,MARC,KAUT,CAAA,EAAE,SACL,MAAA,YAAO,SAAS,oBAAoB,cAAc,EAAS,CAAC,QAAQ,MAEtE,EAAC,GAAa,EAEV,EAAE,SACL,GAAQ,UAAR,GAAQ,SAAa,GACrB,EAAQ,WACR,EAAG,MAAM,YAAY,eAAe,QACpC,EAAG,aAEJ,EAAG,MAAM,KAAK,WACd,WAAO,iBAAiB,cAAc,EAAQ,CAAC,QAAU,CAAA,CAAA,EAAE,UAC3D,WAAO,iBAAiB,YAAY,GACpC,WAAO,iBAAiB,gBAAgB,GACxC,WAAO,iBAAiB,QAAQ,EAAO,CAAC,QAAQ,KAE7C,GAAS,CAAA,EAAE,SACb,YAAO,iBAAiB,WAAW,GACnC,WAAO,iBAAiB,YAAY,EAAQ,CAAC,QAAS,MAEnD,EAAE,SACL,WAAO,SAAS,iBAAiB,cAAc,EAAS,CAAC,QAAQ,KAElE,EAAS,GACF",
  "names": []
}