HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/textanalyse/web_console/node_modules/vega-view/build/vega-view.min.js.map
{"version":3,"file":"vega-view.min.js","sources":["../src/aria.js","../src/cursor.js","../src/data.js","../src/render-size.js","../src/events-extend.js","../src/events.js","../src/hover.js","../src/element.js","../../../node_modules/d3-array/src/ticks.js","../src/bind.js","../src/initialize-renderer.js","../src/trap.js","../src/initialize.js","../src/padding.js","../src/render-headless.js","../src/size.js","../src/state.js","../../../node_modules/d3-timer/src/timer.js","../src/tooltip.js","../src/View.js","../src/runtime.js","../src/background.js","../src/timer.js","../../../node_modules/d3-timer/src/interval.js","../src/finalize.js","../src/scale.js","../src/initialize-handler.js","../src/render-to-image-url.js","../src/render-to-canvas.js","../src/render-to-svg.js","../src/watchPixelRatio.js"],"sourcesContent":["// initialize aria role and label attributes\nexport function initializeAria(view) {\n  const el = view.container();\n  if (el) {\n    el.setAttribute('role', 'graphics-document');\n    el.setAttribute('aria-roleDescription', 'visualization');\n    ariaLabel(el, view.description());\n  }\n}\n\n// update aria-label if we have a DOM container element\nexport function ariaLabel(el, desc) {\n  if (el) desc == null\n    ? el.removeAttribute('aria-label')\n    : el.setAttribute('aria-label', desc);\n}\n","import {isString} from 'vega-util';\n\nconst Default = 'default';\n\nexport default function(view) {\n  // get cursor signal, add to dataflow if needed\n  const cursor = view._signals.cursor || (view._signals.cursor = view.add({\n    user: Default,\n    item: null\n  }));\n\n  // evaluate cursor on each pointermove event\n  view.on(view.events('view', 'pointermove'), cursor,\n    (_, event) => {\n      const value = cursor.value,\n            user = value ? (isString(value) ? value : value.user) : Default,\n            item = event.item && event.item.cursor || null;\n\n      return (value && user === value.user && item == value.item)\n        ? value\n        : {user: user, item: item};\n    }\n  );\n\n  // when cursor signal updates, set visible cursor\n  view.add(null, function(_) {\n    let user = _.cursor,\n        item = this.value;\n\n    if (!isString(user)) {\n      item = user.item;\n      user = user.user;\n    }\n\n    setCursor(view, user && user !== Default ? user : (item || user));\n\n    return item;\n  }, {cursor: cursor});\n}\n\nexport function setCursor(view, cursor) {\n  const el = view.globalCursor()\n    ? (typeof document !== 'undefined' && document.body)\n    : view.container();\n\n  if (el) {\n    return cursor == null\n      ? el.style.removeProperty('cursor')\n      : (el.style.cursor = cursor);\n  }\n}\n","import {changeset, isChangeSet} from 'vega-dataflow';\nimport {error, hasOwnProperty, truthy} from 'vega-util';\n\nexport function dataref(view, name) {\n  var data = view._runtime.data;\n  if (!hasOwnProperty(data, name)) {\n    error('Unrecognized data set: ' + name);\n  }\n  return data[name];\n}\n\nexport function data(name, values) {\n  return arguments.length < 2\n    ? dataref(this, name).values.value\n    : change.call(this, name, changeset().remove(truthy).insert(values));\n}\n\nexport function change(name, changes) {\n  if (!isChangeSet(changes)) {\n    error('Second argument to changes must be a changeset.');\n  }\n  const dataset = dataref(this, name);\n  dataset.modified = true;\n  return this.pulse(dataset.input, changes);\n}\n\nexport function insert(name, _) {\n  return change.call(this, name, changeset().insert(_));\n}\n\nexport function remove(name, _) {\n  return change.call(this, name, changeset().remove(_));\n}\n","export function width(view) {\n  var padding = view.padding();\n  return Math.max(0, view._viewWidth + padding.left + padding.right);\n}\n\nexport function height(view) {\n  var padding = view.padding();\n  return Math.max(0, view._viewHeight + padding.top + padding.bottom);\n}\n\nexport function offset(view) {\n  var padding = view.padding(),\n      origin = view._origin;\n  return [\n    padding.left + origin[0],\n    padding.top + origin[1]\n  ];\n}\n\nexport function resizeRenderer(view) {\n  var origin = offset(view),\n      w = width(view),\n      h = height(view);\n\n  view._renderer.background(view.background());\n  view._renderer.resize(w, h, origin);\n  view._handler.origin(origin);\n\n  view._resizeListeners.forEach(handler => {\n    try {\n      handler(w, h);\n    } catch (error) {\n      view.error(error);\n    }\n  });\n}\n","import {offset} from './render-size';\nimport {constant, isString} from 'vega-util';\nimport {point} from 'vega-scenegraph';\n\n/**\n * Extend an event with additional view-specific methods.\n * Adds a new property ('vega') to an event that provides a number\n * of methods for querying information about the current interaction.\n * The vega object provides the following methods:\n *   view - Returns the backing View instance.\n *   item - Returns the currently active scenegraph item (if any).\n *   group - Returns the currently active scenegraph group (if any).\n *     This method accepts a single string-typed argument indicating the name\n *     of the desired parent group. The scenegraph will be traversed from\n *     the item up towards the root to search for a matching group. If no\n *     argument is provided the enclosing group for the active item is\n *     returned, unless the item it itself a group, in which case it is\n *     returned directly.\n *   xy - Returns a two-element array containing the x and y coordinates for\n *     mouse or touch events. For touch events, this is based on the first\n *     elements in the changedTouches array. This method accepts a single\n *     argument: either an item instance or mark name that should serve as\n *     the reference coordinate system. If no argument is provided the\n *     top-level view coordinate system is assumed.\n *   x - Returns the current x-coordinate, accepts the same arguments as xy.\n *   y - Returns the current y-coordinate, accepts the same arguments as xy.\n * @param {Event} event - The input event to extend.\n * @param {Item} item - The currently active scenegraph item (if any).\n * @return {Event} - The extended input event.\n */\nexport default function(view, event, item) {\n  var r  = view._renderer,\n      el = r && r.canvas(),\n      p, e, translate;\n\n  if (el) {\n    translate = offset(view);\n    e = event.changedTouches ? event.changedTouches[0] : event;\n    p = point(e, el);\n    p[0] -= translate[0];\n    p[1] -= translate[1];\n  }\n\n  event.dataflow = view;\n  event.item = item;\n  event.vega = extension(view, item, p);\n  return event;\n}\n\nfunction extension(view, item, point) {\n  const itemGroup = item\n    ? item.mark.marktype === 'group' ? item : item.mark.group\n    : null;\n\n  function group(name) {\n    var g = itemGroup, i;\n    if (name) for (i = item; i; i = i.mark.group) {\n      if (i.mark.name === name) { g = i; break; }\n    }\n    return g && g.mark && g.mark.interactive ? g : {};\n  }\n\n  function xy(item) {\n    if (!item) return point;\n    if (isString(item)) item = group(item);\n\n    const p = point.slice();\n    while (item) {\n      p[0] -= item.x || 0;\n      p[1] -= item.y || 0;\n      item = item.mark && item.mark.group;\n    }\n    return p;\n  }\n\n  return {\n    view:  constant(view),\n    item:  constant(item || {}),\n    group: group,\n    xy:    xy,\n    x:     item => xy(item)[0],\n    y:     item => xy(item)[1]\n  };\n}\n","import eventExtend from './events-extend';\nimport {EventStream} from 'vega-dataflow';\nimport {array, extend, isArray, isObject, toSet} from 'vega-util';\n\nconst VIEW = 'view',\n      TIMER = 'timer',\n      WINDOW = 'window',\n      NO_TRAP = {trap: false};\n\n/**\n * Initialize event handling configuration.\n * @param {object} config - The configuration settings.\n * @return {object}\n */\nexport function initializeEventConfig(config) {\n  const events = extend({defaults: {}}, config);\n\n  const unpack = (obj, keys) => {\n    keys.forEach(k => {\n      if (isArray(obj[k])) obj[k] = toSet(obj[k]);\n    });\n  };\n\n  unpack(events.defaults, ['prevent', 'allow']);\n  unpack(events, ['view', 'window', 'selector']);\n\n  return events;\n}\n\nexport function trackEventListener(view, sources, type, handler) {\n  view._eventListeners.push({\n    type: type,\n    sources: array(sources),\n    handler: handler\n  });\n}\n\nfunction prevent(view, type) {\n  var def = view._eventConfig.defaults,\n      prevent = def.prevent,\n      allow = def.allow;\n\n  return prevent === false || allow === true ? false\n    : prevent === true || allow === false ? true\n    : prevent ? prevent[type]\n    : allow ? !allow[type]\n    : view.preventDefault();\n}\n\nfunction permit(view, key, type) {\n  const rule = view._eventConfig && view._eventConfig[key];\n\n  if (rule === false || (isObject(rule) && !rule[type])) {\n    view.warn(`Blocked ${key} ${type} event listener.`);\n    return false;\n  }\n\n  return true;\n}\n\n/**\n * Create a new event stream from an event source.\n * @param {object} source - The event source to monitor.\n * @param {string} type - The event type.\n * @param {function(object): boolean} [filter] - Event filter function.\n * @return {EventStream}\n */\nexport function events(source, type, filter) {\n  var view = this,\n      s = new EventStream(filter),\n      send = function(e, item) {\n        view.runAsync(null, () => {\n          if (source === VIEW && prevent(view, type)) {\n            e.preventDefault();\n          }\n          s.receive(eventExtend(view, e, item));\n        });\n      },\n      sources;\n\n  if (source === TIMER) {\n    if (permit(view, 'timer', type)) {\n      view.timer(send, type);\n    }\n  }\n\n  else if (source === VIEW) {\n    if (permit(view, 'view', type)) {\n      // send traps errors, so use {trap: false} option\n      view.addEventListener(type, send, NO_TRAP);\n    }\n  }\n\n  else {\n    if (source === WINDOW) {\n      if (permit(view, 'window', type) && typeof window !== 'undefined') {\n        sources = [window];\n      }\n    } else if (typeof document !== 'undefined') {\n      if (permit(view, 'selector', type)) {\n        sources = Array.from(document.querySelectorAll(source));\n      }\n    }\n\n    if (!sources) {\n      view.warn('Can not resolve event source: ' + source);\n    } else {\n      for (var i=0, n=sources.length; i<n; ++i) {\n        sources[i].addEventListener(type, send);\n      }\n      trackEventListener(view, sources, type, send);\n    }\n  }\n\n  return s;\n}\n","function itemFilter(event) {\n  return event.item;\n}\n\nfunction markTarget(event) {\n  // grab upstream collector feeding the mark operator\n  return event.item.mark.source;\n}\n\nfunction invoke(name) {\n  return function(_, event) {\n    return event.vega.view()\n      .changeset()\n      .encode(event.item, name);\n  };\n}\n\nexport default function(hoverSet, leaveSet) {\n  hoverSet = [hoverSet || 'hover'];\n  leaveSet = [leaveSet || 'update', hoverSet[0]];\n\n  // invoke hover set upon pointerover\n  this.on(\n    this.events('view', 'pointerover', itemFilter),\n    markTarget,\n    invoke(hoverSet)\n  );\n\n  // invoke leave set upon pointerout\n  this.on(\n    this.events('view', 'pointerout', itemFilter),\n    markTarget,\n    invoke(leaveSet)\n  );\n\n  return this;\n}\n","export default function(tag, attr, text) {\n  const el = document.createElement(tag);\n  for (const key in attr) el.setAttribute(key, attr[key]);\n  if (text != null) el.textContent = text;\n  return el;\n}\n","const e10 = Math.sqrt(50),\n    e5 = Math.sqrt(10),\n    e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n  const step = (stop - start) / Math.max(0, count),\n      power = Math.floor(Math.log10(step)),\n      error = step / Math.pow(10, power),\n      factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n  let i1, i2, inc;\n  if (power < 0) {\n    inc = Math.pow(10, -power) / factor;\n    i1 = Math.round(start * inc);\n    i2 = Math.round(stop * inc);\n    if (i1 / inc < start) ++i1;\n    if (i2 / inc > stop) --i2;\n    inc = -inc;\n  } else {\n    inc = Math.pow(10, power) * factor;\n    i1 = Math.round(start / inc);\n    i2 = Math.round(stop / inc);\n    if (i1 * inc < start) ++i1;\n    if (i2 * inc > stop) --i2;\n  }\n  if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n  return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  if (!(count > 0)) return [];\n  if (start === stop) return [start];\n  const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n  if (!(i2 >= i1)) return [];\n  const n = i2 - i1 + 1, ticks = new Array(n);\n  if (reverse) {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n  } else {\n    if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n    else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n  }\n  return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n  stop = +stop, start = +start, count = +count;\n  const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n  return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","import element from './element';\nimport {trackEventListener} from './events';\nimport {debounce} from 'vega-util';\nimport {tickStep} from 'd3-array';\n\nconst BindClass = 'vega-bind',\n      NameClass = 'vega-bind-name',\n      RadioClass = 'vega-bind-radio';\n\n/**\n * Bind a signal to an external HTML input element. The resulting two-way\n * binding will propagate input changes to signals, and propagate signal\n * changes to the input element state. If this view instance has no parent\n * element, we assume the view is headless and no bindings are created.\n * @param {Element|string} el - The parent DOM element to which the input\n *   element should be appended as a child. If string-valued, this argument\n *   will be treated as a CSS selector. If null or undefined, the parent\n *   element of this view will be used as the element.\n * @param {object} param - The binding parameters which specify the signal\n *   to bind to, the input element type, and type-specific configuration.\n * @return {View} - This view instance.\n */\nexport default function(view, el, binding) {\n  if (!el) return;\n\n  const param = binding.param;\n  let bind = binding.state;\n\n  if (!bind) {\n    bind = binding.state = {\n      elements: null,\n      active: false,\n      set: null,\n      update: value => {\n        if (value != view.signal(param.signal)) {\n          view.runAsync(null, () => {\n            bind.source = true;\n            view.signal(param.signal, value);\n          });\n        }\n      }\n    };\n    if (param.debounce) {\n      bind.update = debounce(param.debounce, bind.update);\n    }\n  }\n\n  const create = param.input == null && param.element ? target : generate;\n  create(bind, el, param, view);\n\n  if (!bind.active) {\n    view.on(view._signals[param.signal], null, () => {\n      bind.source\n        ? (bind.source = false)\n        : bind.set(view.signal(param.signal));\n    });\n    bind.active = true;\n  }\n\n  return bind;\n}\n\n/**\n * Bind the signal to an external EventTarget.\n */\nfunction target(bind, node, param, view) {\n  const type = param.event || 'input';\n  const handler = () => bind.update(node.value);\n\n  // initialize signal value to external input value\n  view.signal(param.signal, node.value);\n\n  // listen for changes on the element\n  node.addEventListener(type, handler);\n\n  // register with view, so we can remove it upon finalization\n  trackEventListener(view, node, type, handler);\n\n  // propagate change to element\n  bind.set = value => {\n    node.value = value;\n    node.dispatchEvent(event(type));\n  };\n}\n\nfunction event(type) {\n  return typeof Event !== 'undefined' ? new Event(type) : { type };\n}\n\n/**\n * Generate an HTML input form element and bind it to a signal.\n */\nfunction generate(bind, el, param, view) {\n  const value = view.signal(param.signal);\n  const div = element('div', {'class': BindClass});\n\n  const wrapper = param.input === 'radio'\n    ? div\n    : div.appendChild(element('label'));\n\n  wrapper.appendChild(element('span',\n    {'class': NameClass},\n    (param.name || param.signal)\n  ));\n\n  el.appendChild(div);\n\n  let input = form;\n  switch (param.input) {\n    case 'checkbox': input = checkbox; break;\n    case 'select':   input = select; break;\n    case 'radio':    input = radio; break;\n    case 'range':    input = range; break;\n  }\n\n  input(bind, wrapper, param, value);\n}\n\n/**\n * Generates an arbitrary input form element.\n * The input type is controlled via user-provided parameters.\n */\nfunction form(bind, el, param, value) {\n  const node = element('input');\n\n  for (const key in param) {\n    if (key !== 'signal' && key !== 'element') {\n      node.setAttribute(key === 'input' ? 'type' : key, param[key]);\n    }\n  }\n  node.setAttribute('name', param.signal);\n  node.value = value;\n\n  el.appendChild(node);\n  node.addEventListener('input', () => bind.update(node.value));\n\n  bind.elements = [node];\n  bind.set = value => node.value = value;\n}\n\n/**\n * Generates a checkbox input element.\n */\nfunction checkbox(bind, el, param, value) {\n  const attr = {type: 'checkbox', name: param.signal};\n  if (value) attr.checked = true;\n  const node = element('input', attr);\n\n  el.appendChild(node);\n  node.addEventListener('change', () => bind.update(node.checked));\n\n  bind.elements = [node];\n  bind.set = value => node.checked = !!value || null;\n}\n\n/**\n * Generates a selection list input element.\n */\nfunction select(bind, el, param, value) {\n  const node = element('select', {name: param.signal}),\n        labels = param.labels || [];\n\n  param.options.forEach((option, i) => {\n    const attr = {value: option};\n    if (valuesEqual(option, value)) attr.selected = true;\n    node.appendChild(element('option', attr, (labels[i] || option)+''));\n  });\n\n  el.appendChild(node);\n\n  node.addEventListener('change', () => {\n    bind.update(param.options[node.selectedIndex]);\n  });\n\n  bind.elements = [node];\n  bind.set = value => {\n    for (let i = 0, n = param.options.length; i < n; ++i) {\n      if (valuesEqual(param.options[i], value)) {\n        node.selectedIndex = i; return;\n      }\n    }\n  };\n}\n\n/**\n * Generates a radio button group.\n */\nfunction radio(bind, el, param, value) {\n  const group = element('span', {'class': RadioClass}),\n        labels = param.labels || [];\n\n  el.appendChild(group);\n\n  bind.elements = param.options.map((option, i) => {\n    const attr = {\n      type:  'radio',\n      name:  param.signal,\n      value: option\n    };\n    if (valuesEqual(option, value)) attr.checked = true;\n\n    const input = element('input', attr);\n    input.addEventListener('change', () => bind.update(option));\n\n    const label = element('label', {}, (labels[i] || option)+'');\n    label.prepend(input);\n    group.appendChild(label);\n\n    return input;\n  });\n\n  bind.set = value => {\n    const nodes = bind.elements,\n          n = nodes.length;\n    for (let i = 0; i < n; ++i) {\n      if (valuesEqual(nodes[i].value, value)) nodes[i].checked = true;\n    }\n  };\n}\n\n/**\n * Generates a slider input element.\n */\nfunction range(bind, el, param, value) {\n  value = value !== undefined ? value : ((+param.max) + (+param.min)) / 2;\n\n  const max = param.max != null ? param.max : Math.max(100, +value) || 100,\n        min = param.min || Math.min(0, max, +value) || 0,\n        step = param.step || tickStep(min, max, 100);\n\n  const node = element('input', {\n    type:  'range',\n    name:  param.signal,\n    min:   min,\n    max:   max,\n    step:  step\n  });\n  node.value = value;\n\n  const span = element('span', {}, +value);\n\n  el.appendChild(node);\n  el.appendChild(span);\n\n  const update = () => {\n    span.textContent = node.value;\n    bind.update(+node.value);\n  };\n\n  // subscribe to both input and change\n  node.addEventListener('input', update);\n  node.addEventListener('change', update);\n\n  bind.elements = [node];\n  bind.set = value => {\n    node.value = value;\n    span.textContent = value;\n  };\n}\n\nfunction valuesEqual(a, b) {\n  return a === b || (a+'' === b+'');\n}\n","import {height, offset, width} from './render-size';\n\nexport default function(view, r, el, constructor, scaleFactor, opt) {\n  r = r || new constructor(view.loader());\n  return r\n    .initialize(el, width(view), height(view), offset(view), scaleFactor, opt)\n    .background(view.background());\n}\n","export default function(view, fn) {\n  return !fn ? null : function() {\n    try {\n      fn.apply(this, arguments);\n    } catch (error) {\n      view.error(error);\n    }\n  };\n}\n","import {initializeAria} from './aria';\nimport bind from './bind';\nimport element from './element';\nimport initializeRenderer from './initialize-renderer';\nimport initializeHandler from './initialize-handler';\nimport {CanvasHandler, renderModule} from 'vega-scenegraph';\n\nexport default function(el, elBind) {\n  const view = this,\n        type = view._renderType,\n        config = view._eventConfig.bind,\n        module = renderModule(type);\n\n  // containing dom element\n  el = view._el = el ? lookup(view, el, true) : null;\n\n  // initialize aria attributes\n  initializeAria(view);\n\n  // select appropriate renderer & handler\n  if (!module) view.error('Unrecognized renderer type: ' + type);\n  const Handler = module.handler || CanvasHandler,\n        Renderer = (el ? module.renderer : module.headless);\n\n  // initialize renderer and input handler\n  view._renderer = !Renderer ? null\n    : initializeRenderer(view, view._renderer, el, Renderer);\n  view._handler = initializeHandler(view, view._handler, el, Handler);\n  view._redraw = true;\n\n  // initialize signal bindings\n  if (el && config !== 'none') {\n    elBind = elBind ? (view._elBind = lookup(view, elBind, true))\n      : el.appendChild(element('form', {'class': 'vega-bindings'}));\n\n    view._bind.forEach(_ => {\n      if (_.param.element && config !== 'container') {\n        _.element = lookup(view, _.param.element, !!_.param.input);\n      }\n    });\n\n    view._bind.forEach(_ => {\n      bind(view, _.element || elBind, _);\n    });\n  }\n\n  return view;\n}\n\nfunction lookup(view, el, clear) {\n  if (typeof el === 'string') {\n    if (typeof document !== 'undefined') {\n      el = document.querySelector(el);\n      if (!el) {\n        view.error('Signal bind element not found: ' + el);\n        return null;\n      }\n    } else {\n      view.error('DOM document instance not found.');\n      return null;\n    }\n  }\n  if (el && clear) {\n    try {\n      el.textContent = '';\n    } catch (e) {\n      el = null;\n      view.error(e);\n    }\n  }\n  return el;\n}\n","import {isObject} from 'vega-util';\n\nconst number = _ => +_ || 0;\n\nconst paddingObject = _ => ({top: _, bottom: _, left: _, right: _});\n\nexport default function(_) {\n  return isObject(_)\n    ? {\n        top:    number(_.top),\n        bottom: number(_.bottom),\n        left:   number(_.left),\n        right:  number(_.right)\n      }\n    : paddingObject(number(_));\n}\n","import initializeRenderer from './initialize-renderer';\nimport {renderModule} from 'vega-scenegraph';\nimport {error} from 'vega-util';\n\n/**\n * Render the current scene in a headless fashion.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A Promise that resolves to a renderer.\n */\nexport default async function(view, type, scaleFactor, opt) {\n  const module = renderModule(type),\n        ctr = module && module.headless;\n\n  if (!ctr) error('Unrecognized renderer type: ' + type);\n\n  await view.runAsync();\n  return initializeRenderer(view, null, null, ctr, scaleFactor, opt)\n    .renderAsync(view._scenegraph.root);\n}\n","var Width = 'width',\n    Height = 'height',\n    Padding = 'padding',\n    Skip = {skip: true};\n\nexport function viewWidth(view, width) {\n  var a = view.autosize(),\n      p = view.padding();\n  return width - (a && a.contains === Padding ? p.left + p.right : 0);\n}\n\nexport function viewHeight(view, height) {\n  var a = view.autosize(),\n      p = view.padding();\n  return height - (a && a.contains === Padding ? p.top + p.bottom : 0);\n}\n\nexport function initializeResize(view) {\n  var s = view._signals,\n      w = s[Width],\n      h = s[Height],\n      p = s[Padding];\n\n  function resetSize() {\n    view._autosize = view._resize = 1;\n  }\n\n  // respond to width signal\n  view._resizeWidth = view.add(null,\n    _ => {\n      view._width = _.size;\n      view._viewWidth = viewWidth(view, _.size);\n      resetSize();\n    },\n    {size: w}\n  );\n\n  // respond to height signal\n  view._resizeHeight = view.add(null,\n    _ => {\n      view._height = _.size;\n      view._viewHeight = viewHeight(view, _.size);\n      resetSize();\n    },\n    {size: h}\n  );\n\n  // respond to padding signal\n  const resizePadding = view.add(null, resetSize, {pad: p});\n\n  // set rank to run immediately after source signal\n  view._resizeWidth.rank = w.rank + 1;\n  view._resizeHeight.rank = h.rank + 1;\n  resizePadding.rank = p.rank + 1;\n}\n\nexport function resizeView(viewWidth, viewHeight, width, height, origin, auto) {\n  this.runAfter(view => {\n    let rerun = 0;\n\n    // reset autosize flag\n    view._autosize = 0;\n\n    // width value changed: update signal, skip resize op\n    if (view.width() !== width) {\n      rerun = 1;\n      view.signal(Width, width, Skip); // set width, skip update calc\n      view._resizeWidth.skip(true); // skip width resize handler\n    }\n\n    // height value changed: update signal, skip resize op\n    if (view.height() !== height) {\n      rerun = 1;\n      view.signal(Height, height, Skip); // set height, skip update calc\n      view._resizeHeight.skip(true); // skip height resize handler\n    }\n\n    // view width changed: update view property, set resize flag\n    if (view._viewWidth !== viewWidth) {\n      view._resize = 1;\n      view._viewWidth = viewWidth;\n    }\n\n    // view height changed: update view property, set resize flag\n    if (view._viewHeight !== viewHeight) {\n      view._resize = 1;\n      view._viewHeight = viewHeight;\n    }\n\n    // origin changed: update view property, set resize flag\n    if (view._origin[0] !== origin[0] || view._origin[1] !== origin[1]) {\n      view._resize = 1;\n      view._origin = origin;\n    }\n\n    // run dataflow on width/height signal change\n    if (rerun) view.run('enter');\n    if (auto) view.runAfter(v => v.resize());\n  }, false, 1);\n}\n","import {transforms} from 'vega-dataflow';\nimport {isArray} from 'vega-util';\n\n/**\n * Get the current view state, consisting of signal values and/or data sets.\n * @param {object} [options] - Options flags indicating which state to export.\n *   If unspecified, all signals and data sets will be exported.\n * @param {function(string, Operator):boolean} [options.signals] - Optional\n *   predicate function for testing if a signal should be included in the\n *   exported state. If unspecified, all signals will be included, except for\n *   those named 'parent' or those which refer to a Transform value.\n * @param {function(string, object):boolean} [options.data] - Optional\n *   predicate function for testing if a data set's input should be included\n *   in the exported state. If unspecified, all data sets that have been\n *   explicitly modified will be included.\n * @param {boolean} [options.recurse=true] - Flag indicating if the exported\n *   state should recursively include state from group mark sub-contexts.\n * @return {object} - An object containing the exported state values.\n */\nexport function getState(options) {\n  return this._runtime.getState(options || {\n    data:    dataTest,\n    signals: signalTest,\n    recurse: true\n  });\n}\n\nfunction dataTest(name, data) {\n  return data.modified\n      && isArray(data.input.value)\n      && !name.startsWith('_:vega:_');\n}\n\nfunction signalTest(name, op) {\n  return !(name === 'parent' || op instanceof transforms.proxy);\n}\n\n/**\n * Sets the current view state and updates the view by invoking run.\n * @param {object} state - A state object containing signal and/or\n *   data set values, following the format used by the getState method.\n * @return {View} - This view instance.\n */\nexport function setState(state) {\n  this.runAsync(null,\n    v => { v._trigger = false; v._runtime.setState(state); },\n    v => { v._trigger = true; }\n  );\n  return this;\n}\n","var frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nexport function Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nexport function timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nexport function timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n","import {isArray, isDate, isObject} from 'vega-util';\n\nexport default function(handler, event, item, value) {\n  const el = handler.element();\n  if (el) el.setAttribute('title', formatTooltip(value));\n}\n\nfunction formatTooltip(value) {\n  return value == null ? ''\n    : isArray(value) ? formatArray(value)\n    : isObject(value) && !isDate(value) ? formatObject(value)\n    : value + '';\n}\n\nfunction formatObject(obj) {\n  return Object.keys(obj).map(key => {\n    const v = obj[key];\n    return key + ': ' + (isArray(v) ? formatArray(v) : formatValue(v));\n  }).join('\\n');\n}\n\nfunction formatArray(value) {\n  return '[' + value.map(formatValue).join(', ') + ']';\n}\n\nfunction formatValue(value) {\n  return isArray(value) ? '[\\u2026]'\n    : isObject(value) && !isDate(value) ? '{\\u2026}'\n    : value;\n}\n","import {ariaLabel} from './aria';\nimport background from './background';\nimport cursor, {setCursor} from './cursor';\nimport {change, data, dataref, insert, remove} from './data';\nimport {events, initializeEventConfig} from './events';\nimport hover from './hover';\nimport finalize from './finalize';\nimport initialize from './initialize';\nimport padding from './padding';\nimport renderToImageURL from './render-to-image-url';\nimport renderToCanvas from './render-to-canvas';\nimport renderToSVG from './render-to-svg';\nimport {resizeRenderer} from './render-size';\nimport runtime from './runtime';\nimport {scale} from './scale';\nimport {initializeResize, resizeView, viewHeight, viewWidth} from './size';\nimport {getState, setState} from './state';\nimport timer from './timer';\nimport defaultTooltip from './tooltip';\nimport trap from './trap';\nimport watchPixelRatio from './watchPixelRatio';\n\nimport {Dataflow, asyncCallback} from 'vega-dataflow';\nimport {locale} from 'vega-format';\nimport {\n  CanvasHandler, RenderType, Scenegraph, renderModule\n} from 'vega-scenegraph';\nimport {\n  error, extend, hasOwnProperty, inherits, stringValue\n} from 'vega-util';\n\n/**\n * Create a new View instance from a Vega dataflow runtime specification.\n * The generated View will not immediately be ready for display. Callers\n * should also invoke the initialize method (e.g., to set the parent\n * DOM element in browser-based deployment) and then invoke the run\n * method to evaluate the dataflow graph. Rendering will automatically\n * be performed upon dataflow runs.\n * @constructor\n * @param {object} spec - The Vega dataflow runtime specification.\n */\nexport default function View(spec, options) {\n  const view = this;\n  options = options || {};\n\n  Dataflow.call(view);\n  if (options.loader) view.loader(options.loader);\n  if (options.logger) view.logger(options.logger);\n  if (options.logLevel != null) view.logLevel(options.logLevel);\n  if (options.locale || spec.locale) {\n    const loc = extend({}, spec.locale, options.locale);\n    view.locale(locale(loc.number, loc.time));\n  }\n\n  view._el = null;\n  view._elBind = null;\n  view._renderType = options.renderer || RenderType.Canvas;\n  view._scenegraph = new Scenegraph();\n  const root = view._scenegraph.root;\n\n  // initialize renderer, handler and event management\n  view._renderer = null;\n  view._tooltip = options.tooltip || defaultTooltip,\n  view._redraw = true;\n  view._handler = new CanvasHandler().scene(root);\n  view._globalCursor = false;\n  view._preventDefault = false;\n  view._timers = [];\n  view._eventListeners = [];\n  view._resizeListeners = [];\n\n  // initialize event configuration\n  view._eventConfig = initializeEventConfig(spec.eventConfig);\n  view.globalCursor(view._eventConfig.globalCursor);\n\n  // initialize dataflow graph\n  const ctx = runtime(view, spec, options.expr);\n  view._runtime = ctx;\n  view._signals = ctx.signals;\n  view._bind = (spec.bindings || []).map(_ => ({\n    state: null,\n    param: extend({}, _)\n  }));\n\n  // initialize scenegraph\n  if (ctx.root) ctx.root.set(root);\n  root.source = ctx.data.root.input;\n  view.pulse(\n    ctx.data.root.input,\n    view.changeset().insert(root.items)\n  );\n\n  // initialize view size\n  view._width = view.width();\n  view._height = view.height();\n  view._viewWidth = viewWidth(view, view._width);\n  view._viewHeight = viewHeight(view, view._height);\n  view._origin = [0, 0];\n  view._resize = 0;\n  view._autosize = 1;\n  initializeResize(view);\n\n  // initialize background color\n  background(view);\n\n  // initialize cursor\n  cursor(view);\n\n  // initialize view description\n  view.description(spec.description);\n\n  // initialize hover proessing, if requested\n  if (options.hover) view.hover();\n\n  // initialize DOM container(s) and renderer\n  if (options.container) view.initialize(options.container, options.bind);\n\n  if (options.watchPixelRatio) view._watchPixelRatio();\n}\n\nfunction lookupSignal(view, name) {\n  return hasOwnProperty(view._signals, name)\n    ? view._signals[name]\n    : error('Unrecognized signal name: ' + stringValue(name));\n}\n\nfunction findOperatorHandler(op, handler) {\n  const h = (op._targets || [])\n    .filter(op => op._update && op._update.handler === handler);\n  return h.length ? h[0] : null;\n}\n\nfunction addOperatorListener(view, name, op, handler) {\n  let h = findOperatorHandler(op, handler);\n  if (!h) {\n    h = trap(view, () => handler(name, op.value));\n    h.handler = handler;\n    view.on(op, null, h);\n  }\n  return view;\n}\n\nfunction removeOperatorListener(view, op, handler) {\n  const h = findOperatorHandler(op, handler);\n  if (h) op._targets.remove(h);\n  return view;\n}\n\ninherits(View, Dataflow, {\n  // -- DATAFLOW / RENDERING ----\n\n  async evaluate(encode, prerun, postrun) {\n    // evaluate dataflow and prerun\n    await Dataflow.prototype.evaluate.call(this, encode, prerun);\n\n    // render as needed\n    if (this._redraw || this._resize) {\n      try {\n        if (this._renderer) {\n          if (this._resize) {\n            this._resize = 0;\n            resizeRenderer(this);\n          }\n          await this._renderer.renderAsync(this._scenegraph.root);\n        }\n        this._redraw = false;\n      } catch (e) {\n        this.error(e);\n      }\n    }\n\n    // evaluate postrun\n    if (postrun) asyncCallback(this, postrun);\n\n    return this;\n  },\n\n  dirty(item) {\n    this._redraw = true;\n    this._renderer && this._renderer.dirty(item);\n  },\n\n  // -- GET / SET ----\n\n  description(text) {\n    if (arguments.length) {\n      const desc = text != null ? (text + '') : null;\n      if (desc !== this._desc) ariaLabel(this._el, this._desc = desc);\n      return this;\n    }\n    return this._desc;\n  },\n\n  container() {\n    return this._el;\n  },\n\n  scenegraph() {\n    return this._scenegraph;\n  },\n\n  origin() {\n    return this._origin.slice();\n  },\n\n  signal(name, value, options) {\n    const op = lookupSignal(this, name);\n    return arguments.length === 1\n      ? op.value\n      : this.update(op, value, options);\n  },\n\n  width(_) {\n    return arguments.length ? this.signal('width', _) : this.signal('width');\n  },\n\n  height(_) {\n    return arguments.length ? this.signal('height', _) : this.signal('height');\n  },\n\n  padding(_) {\n    return arguments.length\n      ? this.signal('padding', padding(_))\n      : padding(this.signal('padding'));\n  },\n\n  autosize(_) {\n    return arguments.length ? this.signal('autosize', _) : this.signal('autosize');\n  },\n\n  background(_) {\n    return arguments.length ? this.signal('background', _) : this.signal('background');\n  },\n\n  renderer(type) {\n    if (!arguments.length) return this._renderType;\n    if (!renderModule(type)) error('Unrecognized renderer type: ' + type);\n    if (type !== this._renderType) {\n      this._renderType = type;\n      this._resetRenderer();\n    }\n    return this;\n  },\n\n  tooltip(handler) {\n    if (!arguments.length) return this._tooltip;\n    if (handler !== this._tooltip) {\n      this._tooltip = handler;\n      this._resetRenderer();\n    }\n    return this;\n  },\n\n  loader(loader) {\n    if (!arguments.length) return this._loader;\n    if (loader !== this._loader) {\n      Dataflow.prototype.loader.call(this, loader);\n      this._resetRenderer();\n    }\n    return this;\n  },\n\n  resize() {\n    // set flag to perform autosize\n    this._autosize = 1;\n    // touch autosize signal to ensure top-level ViewLayout runs\n    return this.touch(lookupSignal(this, 'autosize'));\n  },\n\n  _resetRenderer() {\n    if (this._renderer) {\n      this._renderer = null;\n      this.initialize(this._el, this._elBind);\n    }\n  },\n\n  // -- SIZING ----\n  _resizeView: resizeView,\n\n  // -- EVENT HANDLING ----\n\n  addEventListener(type, handler, options) {\n    let callback = handler;\n    if (!(options && options.trap === false)) {\n      // wrap callback in error handler\n      callback = trap(this, handler);\n      callback.raw = handler;\n    }\n    this._handler.on(type, callback);\n    return this;\n  },\n\n  removeEventListener(type, handler) {\n    var handlers = this._handler.handlers(type),\n        i = handlers.length, h, t;\n\n    // search registered handlers, remove if match found\n    while (--i >= 0) {\n      t = handlers[i].type;\n      h = handlers[i].handler;\n      if (type === t && (handler === h || handler === h.raw)) {\n        this._handler.off(t, h);\n        break;\n      }\n    }\n    return this;\n  },\n\n  addResizeListener(handler) {\n    const l = this._resizeListeners;\n    if (!l.includes(handler)) {\n      // add handler if it isn't already registered\n      // note: error trapping handled elsewhere, so\n      // no need to wrap handlers here\n      l.push(handler);\n    }\n    return this;\n  },\n\n  removeResizeListener(handler) {\n    var l = this._resizeListeners,\n        i = l.indexOf(handler);\n    if (i >= 0) {\n      l.splice(i, 1);\n    }\n    return this;\n  },\n\n  addSignalListener(name, handler) {\n    return addOperatorListener(this, name, lookupSignal(this, name), handler);\n  },\n\n  removeSignalListener(name, handler) {\n    return removeOperatorListener(this, lookupSignal(this, name), handler);\n  },\n\n  addDataListener(name, handler) {\n    return addOperatorListener(this, name, dataref(this, name).values, handler);\n  },\n\n  removeDataListener(name, handler) {\n    return removeOperatorListener(this, dataref(this, name).values, handler);\n  },\n\n  globalCursor(_) {\n    if (arguments.length) {\n      if (this._globalCursor !== !!_) {\n        const prev = setCursor(this, null); // clear previous cursor\n        this._globalCursor = !!_;\n        if (prev) setCursor(this, prev); // swap cursor\n      }\n      return this;\n    } else {\n      return this._globalCursor;\n    }\n  },\n\n  preventDefault(_) {\n    if (arguments.length) {\n      this._preventDefault = _;\n      return this;\n    } else {\n      return this._preventDefault;\n    }\n  },\n\n  timer,\n  events,\n  finalize,\n  hover,\n\n  // -- DATA ----\n  data,\n  change,\n  insert,\n  remove,\n\n  // -- SCALES --\n  scale,\n\n  // -- INITIALIZATION ----\n  initialize,\n\n  // -- HEADLESS RENDERING ----\n  toImageURL: renderToImageURL,\n  toCanvas: renderToCanvas,\n  toSVG: renderToSVG,\n\n  // -- SAVE / RESTORE STATE ----\n  getState,\n  setState,\n\n  // RE-RENDER ON ZOOM\n  _watchPixelRatio: watchPixelRatio\n});\n","import {transforms} from 'vega-dataflow';\nimport {functionContext} from 'vega-functions';\nimport {context} from 'vega-runtime';\n\nexport default function(view, spec, expr) {\n  return context(view, transforms, functionContext, expr).parse(spec);\n}\n","export default function(view) {\n  // respond to background signal\n  view.add(null, _ => {\n    view._background = _.bg;\n    view._resize = 1;\n    return _.bg;\n  }, { bg: view._signals.background });\n}\n","import {interval} from 'd3-timer';\n\nexport default function(callback, delay) {\n  function tick(elapsed) {\n    callback({timestamp: Date.now(), elapsed: elapsed});\n  }\n  this._timers.push(interval(tick, delay));\n}\n","import {Timer, now} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n  var t = new Timer, total = delay;\n  if (delay == null) return t.restart(callback, delay, time), t;\n  t._restart = t.restart;\n  t.restart = function(callback, delay, time) {\n    delay = +delay, time = time == null ? now() : +time;\n    t._restart(function tick(elapsed) {\n      elapsed += total;\n      t._restart(tick, total += delay, time);\n      callback(elapsed);\n    }, delay, time);\n  }\n  t.restart(callback, delay, time);\n  return t;\n}\n","/**\n * Finalize a View instance that is being removed.\n * Cancel any running timers.\n * Remove all external event listeners.\n * Remove any currently displayed tooltip.\n */\nexport default function() {\n  var tooltip = this._tooltip,\n      timers = this._timers,\n      handlers = this._handler.handlers(),\n      listeners = this._eventListeners,\n      n, m, e, h, t;\n\n  n = timers.length;\n  while (--n >= 0) {\n    timers[n].stop();\n  }\n\n  n = listeners.length;\n  while (--n >= 0) {\n    e = listeners[n];\n    m = e.sources.length;\n    while (--m >= 0) {\n      e.sources[m].removeEventListener(e.type, e.handler);\n    }\n  }\n\n  if (tooltip) {\n    tooltip.call(this, this._handler, null, null, null);\n  }\n\n  // turn off all registered handlers\n  n = handlers.length;\n  while (--n >= 0) {\n    t = handlers[n].type;\n    h = handlers[n].handler;\n    this._handler.off(t, h);\n  }\n\n  return this;\n}\n","import {error, hasOwnProperty} from 'vega-util';\n\nexport function scale(name) {\n  var scales = this._runtime.scales;\n  if (!hasOwnProperty(scales, name)) {\n    error('Unrecognized scale or projection: ' + name);\n  }\n  return scales[name].value;\n}\n","import {offset} from './render-size';\nimport trap from './trap';\n\nexport default function(view, prevHandler, el, constructor) {\n  // instantiate scenegraph handler\n  const handler = new constructor(view.loader(), trap(view, view.tooltip()))\n    .scene(view.scenegraph().root)\n    .initialize(el, offset(view), view);\n\n  // transfer event handlers\n  if (prevHandler) {\n    prevHandler.handlers().forEach(h => {\n      handler.on(h.type, h.handler);\n    });\n  }\n\n  return handler;\n}\n","import renderHeadless from './render-headless';\nimport {RenderType as Type} from 'vega-scenegraph';\nimport {error} from 'vega-util';\n\n/**\n * Produce an image URL for the visualization. Depending on the type\n * parameter, the generated URL contains data for either a PNG or SVG image.\n * The URL can be used (for example) to download images of the visualization.\n * This method is asynchronous, returning a Promise instance.\n * @param {string} type - The image type. One of 'svg', 'png' or 'canvas'.\n *   The 'canvas' and 'png' types are synonyms for a PNG image.\n * @return {Promise} - A promise that resolves to an image URL.\n */\nexport default async function(type, scaleFactor) {\n  if (type !== Type.Canvas && type !== Type.SVG && type !== Type.PNG) {\n    error('Unrecognized image type: ' + type);\n  }\n\n  const r = await renderHeadless(this, type, scaleFactor);\n  return type === Type.SVG\n    ? toBlobURL(r.svg(), 'image/svg+xml')\n    : r.canvas().toDataURL('image/png');\n}\n\nfunction toBlobURL(data, mime) {\n  const blob = new Blob([data], {type: mime});\n  return window.URL.createObjectURL(blob);\n}\n","import renderHeadless from './render-headless';\nimport {RenderType} from 'vega-scenegraph';\n\n/**\n * Produce a Canvas instance containing a rendered visualization.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A promise that resolves to a Canvas instance.\n */\nexport default async function(scaleFactor, opt) {\n  const r = await renderHeadless(this, RenderType.Canvas, scaleFactor, opt);\n  return r.canvas();\n}\n","import renderHeadless from './render-headless';\nimport {RenderType} from 'vega-scenegraph';\n\n/**\n * Produce a rendered SVG string of the visualization.\n * This method is asynchronous, returning a Promise instance.\n * @return {Promise} - A promise that resolves to an SVG string.\n */\nexport default async function(scaleFactor) {\n  const r = await renderHeadless(this, RenderType.SVG, scaleFactor);\n  return r.svg();\n}\n","export default function() {\n  // based on https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#monitoring_screen_resolution_or_zoom_level_changes\n  if (this.renderer() === 'canvas' && this._renderer._canvas) {\n    let remove = null;\n    const updatePixelRatio = () => {\n      if (remove != null) {\n        remove();\n      }\n      const media = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);\n      media.addEventListener('change', updatePixelRatio);\n      remove = () => {\n        media.removeEventListener('change', updatePixelRatio);\n      };\n\n      this._renderer._canvas.getContext('2d').pixelRatio = window.devicePixelRatio || 1;\n      this._redraw = true;\n      this._resize = 1;\n      this.resize().runAsync();\n    };\n    updatePixelRatio();\n  }\n}"],"names":["ariaLabel","el","desc","removeAttribute","setAttribute","Default","setCursor","view","cursor","globalCursor","document","body","container","style","removeProperty","dataref","name","data","_runtime","hasOwnProperty","error","change","changes","isChangeSet","dataset","this","modified","pulse","input","width","padding","Math","max","_viewWidth","left","right","height","_viewHeight","top","bottom","offset","origin","_origin","eventExtend","event","item","p","e","translate","r","_renderer","canvas","changedTouches","point","dataflow","vega","itemGroup","mark","marktype","group","i","g","interactive","xy","isString","slice","x","y","constant","extension","VIEW","NO_TRAP","trap","trackEventListener","sources","type","handler","_eventListeners","push","array","permit","key","rule","_eventConfig","isObject","warn","itemFilter","markTarget","source","invoke","_","changeset","encode","element","tag","attr","text","createElement","textContent","e10","sqrt","e5","e2","tickSpec","start","stop","count","step","power","floor","log10","pow","factor","i1","i2","inc","round","tickIncrement","BindClass","NameClass","RadioClass","target","bind","node","param","update","value","signal","addEventListener","set","dispatchEvent","Event","generate","div","class","wrapper","appendChild","form","checkbox","select","radio","range","elements","checked","labels","options","forEach","option","valuesEqual","selected","selectedIndex","n","length","map","label","prepend","nodes","undefined","min","reverse","tickStep","span","a","b","initializeRenderer","constructor","scaleFactor","opt","loader","initialize","background","fn","apply","arguments","lookup","clear","querySelector","number","paddingObject","async","renderHeadless","module","renderModule","ctr","headless","runAsync","renderAsync","_scenegraph","root","Width","Height","Padding","Skip","skip","viewWidth","autosize","contains","viewHeight","dataTest","isArray","startsWith","signalTest","op","transforms","proxy","taskHead","taskTail","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","_next","wake","t","call","timerFlush","t0","t2","t1","time","Infinity","sleep","nap","poke","delay","clearTimeout","clearInterval","setInterval","defaultTooltip","formatArray","isDate","obj","Object","keys","v","formatValue","join","formatTooltip","View","spec","Dataflow","logger","logLevel","locale","loc","extend","_el","_elBind","_renderType","renderer","RenderType","Canvas","Scenegraph","_tooltip","tooltip","_redraw","_handler","CanvasHandler","scene","_globalCursor","_preventDefault","_timers","_resizeListeners","config","events","defaults","unpack","k","toSet","initializeEventConfig","eventConfig","ctx","expr","context","functionContext","parse","runtime","_signals","signals","_bind","bindings","state","insert","items","_width","_height","_resize","_autosize","s","w","h","resetSize","_resizeWidth","add","size","_resizeHeight","resizePadding","pad","rank","initializeResize","_background","bg","user","on","description","hover","watchPixelRatio","_watchPixelRatio","lookupSignal","stringValue","findOperatorHandler","_targets","filter","_update","addOperatorListener","removeOperatorListener","remove","prototype","restart","callback","TypeError","inherits","evaluate","prerun","postrun","resize","asyncCallback","dirty","_desc","scenegraph","_resetRenderer","_loader","touch","_resizeView","auto","runAfter","rerun","run","raw","removeEventListener","handlers","off","addResizeListener","l","includes","removeResizeListener","indexOf","splice","addSignalListener","removeSignalListener","addDataListener","values","removeDataListener","prev","preventDefault","timer","total","_restart","tick","elapsed","timestamp","EventStream","send","def","prevent","allow","receive","Array","from","querySelectorAll","finalize","m","timers","listeners","hoverSet","leaveSet","truthy","scale","scales","elBind","initializeAria","Handler","Renderer","prevHandler","initializeHandler","binding","active","debounce","toImageURL","Type","SVG","PNG","mime","blob","Blob","URL","createObjectURL","toBlobURL","svg","toDataURL","toCanvas","toSVG","getState","recurse","setState","_trigger","_canvas","updatePixelRatio","media","matchMedia","devicePixelRatio","getContext","pixelRatio"],"mappings":"ghBAWO,SAASA,EAAUC,EAAIC,GACxBD,IAAY,MAARC,EACJD,EAAGE,gBAAgB,cACnBF,EAAGG,aAAa,aAAcF,GACpC,CCbA,MAAMG,EAAU,UAsCT,SAASC,EAAUC,EAAMC,GAC9B,MAAMP,EAAKM,EAAKE,eACS,oBAAbC,UAA4BA,SAASC,KAC7CJ,EAAKK,YAET,GAAIX,EACF,OAAiB,MAAVO,EACHP,EAAGY,MAAMC,eAAe,UACvBb,EAAGY,MAAML,OAASA,CAE3B,CC/CO,SAASO,EAAQR,EAAMS,GAC5B,IAAIC,EAAOV,EAAKW,SAASD,KAIzB,OAHKE,EAAcA,eAACF,EAAMD,IACxBI,QAAM,0BAA4BJ,GAE7BC,EAAKD,EACd,CAQO,SAASK,EAAOL,EAAMM,GACtBC,EAAAA,YAAYD,IACfF,EAAKA,MAAC,mDAER,MAAMI,EAAUT,EAAQU,KAAMT,GAE9B,OADAQ,EAAQE,UAAW,EACZD,KAAKE,MAAMH,EAAQI,MAAON,EACnC,CCxBO,SAASO,EAAMtB,GACpB,IAAIuB,EAAUvB,EAAKuB,UACnB,OAAOC,KAAKC,IAAI,EAAGzB,EAAK0B,WAAaH,EAAQI,KAAOJ,EAAQK,MAC9D,CAEO,SAASC,EAAO7B,GACrB,IAAIuB,EAAUvB,EAAKuB,UACnB,OAAOC,KAAKC,IAAI,EAAGzB,EAAK8B,YAAcP,EAAQQ,IAAMR,EAAQS,OAC9D,CAEO,SAASC,EAAOjC,GACrB,IAAIuB,EAAUvB,EAAKuB,UACfW,EAASlC,EAAKmC,QAClB,MAAO,CACLZ,EAAQI,KAAOO,EAAO,GACtBX,EAAQQ,IAAMG,EAAO,GAEzB,CCae,SAAAE,EAASpC,EAAMqC,EAAOC,GACnC,IAEIC,EAAGC,EAAGC,EAFNC,EAAK1C,EAAK2C,UACVjD,EAAKgD,GAAKA,EAAEE,SAchB,OAXIlD,IACF+C,EAAYR,EAAOjC,GACnBwC,EAAIH,EAAMQ,eAAiBR,EAAMQ,eAAe,GAAKR,GACrDE,EAAIO,EAAKA,MAACN,EAAG9C,IACX,IAAM+C,EAAU,GAClBF,EAAE,IAAME,EAAU,IAGpBJ,EAAMU,SAAW/C,EACjBqC,EAAMC,KAAOA,EACbD,EAAMW,KAIR,SAAmBhD,EAAMsC,EAAMQ,GAC7B,MAAMG,EAAYX,EACS,UAAvBA,EAAKY,KAAKC,SAAuBb,EAAOA,EAAKY,KAAKE,MAClD,KAEJ,SAASA,EAAM3C,GACb,IAAmB4C,EAAfC,EAAIL,EACR,GAAIxC,EAAM,IAAK4C,EAAIf,EAAMe,EAAGA,EAAIA,EAAEH,KAAKE,MACrC,GAAIC,EAAEH,KAAKzC,OAASA,EAAM,CAAE6C,EAAID,EAAG,KAAO,CAE5C,OAAOC,GAAKA,EAAEJ,MAAQI,EAAEJ,KAAKK,YAAcD,EAAI,EACjD,CAEA,SAASE,EAAGlB,GACV,IAAKA,EAAM,OAAOQ,EACdW,EAAAA,SAASnB,KAAOA,EAAOc,EAAMd,IAEjC,MAAMC,EAAIO,EAAMY,QAChB,KAAOpB,GACLC,EAAE,IAAMD,EAAKqB,GAAK,EAClBpB,EAAE,IAAMD,EAAKsB,GAAK,EAClBtB,EAAOA,EAAKY,MAAQZ,EAAKY,KAAKE,MAEhC,OAAOb,CACT,CAEA,MAAO,CACLvC,KAAO6D,EAAQA,SAAC7D,GAChBsC,KAAOuB,EAAAA,SAASvB,GAAQ,IACxBc,MAAOA,EACPI,GAAOA,EACPG,EAAOrB,GAAQkB,EAAGlB,GAAM,GACxBsB,EAAOtB,GAAQkB,EAAGlB,GAAM,GAE5B,CAtCewB,CAAU9D,EAAMsC,EAAMC,GAC5BF,CACT,CC3CA,MAAM0B,EAAO,OAGPC,EAAU,CAACC,MAAM,GAsBhB,SAASC,EAAmBlE,EAAMmE,EAASC,EAAMC,GACtDrE,EAAKsE,gBAAgBC,KAAK,CACxBH,KAAMA,EACND,QAASK,EAAKA,MAACL,GACfE,QAASA,GAEb,CAcA,SAASI,EAAOzE,EAAM0E,EAAKN,GACzB,MAAMO,EAAO3E,EAAK4E,cAAgB5E,EAAK4E,aAAaF,GAEpD,SAAa,IAATC,GAAmBE,EAAQA,SAACF,KAAUA,EAAKP,MAC7CpE,EAAK8E,KAAK,WAAWJ,KAAON,sBACrB,EAIX,CC1DA,SAASW,EAAW1C,GAClB,OAAOA,EAAMC,IACf,CAEA,SAAS0C,EAAW3C,GAElB,OAAOA,EAAMC,KAAKY,KAAK+B,MACzB,CAEA,SAASC,EAAOzE,GACd,OAAO,SAAS0E,EAAG9C,GACjB,OAAOA,EAAMW,KAAKhD,OACfoF,YACAC,OAAOhD,EAAMC,KAAM7B,GAE1B,CCfe,SAAA6E,EAASC,EAAKC,EAAMC,GACjC,MAAM/F,EAAKS,SAASuF,cAAcH,GAClC,IAAK,MAAMb,KAAOc,EAAM9F,EAAGG,aAAa6E,EAAKc,EAAKd,IAElD,OADY,MAARe,IAAc/F,EAAGiG,YAAcF,GAC5B/F,CACT,CCLA,MAAMkG,EAAMpE,KAAKqE,KAAK,IAClBC,EAAKtE,KAAKqE,KAAK,IACfE,EAAKvE,KAAKqE,KAAK,GAEnB,SAASG,EAASC,EAAOC,EAAMC,GAC7B,MAAMC,GAAQF,EAAOD,GAASzE,KAAKC,IAAI,EAAG0E,GACtCE,EAAQ7E,KAAK8E,MAAM9E,KAAK+E,MAAMH,IAC9BvF,EAAQuF,EAAO5E,KAAKgF,IAAI,GAAIH,GAC5BI,EAAS5F,GAAS+E,EAAM,GAAK/E,GAASiF,EAAK,EAAIjF,GAASkF,EAAK,EAAI,EACrE,IAAIW,EAAIC,EAAIC,EAeZ,OAdIP,EAAQ,GACVO,EAAMpF,KAAKgF,IAAI,IAAKH,GAASI,EAC7BC,EAAKlF,KAAKqF,MAAMZ,EAAQW,GACxBD,EAAKnF,KAAKqF,MAAMX,EAAOU,GACnBF,EAAKE,EAAMX,KAASS,EACpBC,EAAKC,EAAMV,KAAQS,EACvBC,GAAOA,IAEPA,EAAMpF,KAAKgF,IAAI,GAAIH,GAASI,EAC5BC,EAAKlF,KAAKqF,MAAMZ,EAAQW,GACxBD,EAAKnF,KAAKqF,MAAMX,EAAOU,GACnBF,EAAKE,EAAMX,KAASS,EACpBC,EAAKC,EAAMV,KAAQS,GAErBA,EAAKD,GAAM,IAAOP,GAASA,EAAQ,EAAUH,EAASC,EAAOC,EAAc,EAARC,GAChE,CAACO,EAAIC,EAAIC,EAClB,CAmBO,SAASE,EAAcb,EAAOC,EAAMC,GAEzC,OAAOH,EADOC,GAASA,EAAvBC,GAAQA,EAAsBC,GAASA,GACH,EACtC,CC3CA,MAAMY,EAAY,YACZC,EAAY,iBACZC,EAAa,kBA0DnB,SAASC,EAAOC,EAAMC,EAAMC,EAAOrH,GACjC,MAAMoE,EAAOiD,EAAMhF,OAAS,QACtBgC,EAAUA,IAAM8C,EAAKG,OAAOF,EAAKG,OAGvCvH,EAAKwH,OAAOH,EAAMG,OAAQJ,EAAKG,OAG/BH,EAAKK,iBAAiBrD,EAAMC,GAG5BH,EAAmBlE,EAAMoH,EAAMhD,EAAMC,GAGrC8C,EAAKO,IAAMH,IACTH,EAAKG,MAAQA,EACbH,EAAKO,cAIT,SAAevD,GACb,MAAwB,oBAAVwD,MAAwB,IAAIA,MAAMxD,GAAQ,CAAEA,OAC5D,CANuB/B,CAAM+B,GAAM,CAEnC,CASA,SAASyD,EAASV,EAAMzH,EAAI2H,EAAOrH,GACjC,MAAMuH,EAAQvH,EAAKwH,OAAOH,EAAMG,QAC1BM,EAAMxC,EAAQ,MAAO,CAACyC,MAAShB,IAE/BiB,EAA0B,UAAhBX,EAAMhG,MAClByG,EACAA,EAAIG,YAAY3C,EAAQ,UAE5B0C,EAAQC,YAAY3C,EAAQ,OAC1B,CAACyC,MAASf,GACTK,EAAM5G,MAAQ4G,EAAMG,SAGvB9H,EAAGuI,YAAYH,GAEf,IAAIzG,EAAQ6G,EACZ,OAAQb,EAAMhG,OACZ,IAAK,WAAYA,EAAQ8G,EAAU,MACnC,IAAK,SAAY9G,EAAQ+G,EAAQ,MACjC,IAAK,QAAY/G,EAAQgH,EAAO,MAChC,IAAK,QAAYhH,EAAQiH,EAG3BjH,EAAM8F,EAAMa,EAASX,EAAOE,EAC9B,CAMA,SAASW,EAAKf,EAAMzH,EAAI2H,EAAOE,GAC7B,MAAMH,EAAO9B,EAAQ,SAErB,IAAK,MAAMZ,KAAO2C,EACJ,WAAR3C,GAA4B,YAARA,GACtB0C,EAAKvH,aAAqB,UAAR6E,EAAkB,OAASA,EAAK2C,EAAM3C,IAG5D0C,EAAKvH,aAAa,OAAQwH,EAAMG,QAChCJ,EAAKG,MAAQA,EAEb7H,EAAGuI,YAAYb,GACfA,EAAKK,iBAAiB,SAAS,IAAMN,EAAKG,OAAOF,EAAKG,SAEtDJ,EAAKoB,SAAW,CAACnB,GACjBD,EAAKO,IAAMH,GAASH,EAAKG,MAAQA,CACnC,CAKA,SAASY,EAAShB,EAAMzH,EAAI2H,EAAOE,GACjC,MAAM/B,EAAO,CAACpB,KAAM,WAAY3D,KAAM4G,EAAMG,QACxCD,IAAO/B,EAAKgD,SAAU,GAC1B,MAAMpB,EAAO9B,EAAQ,QAASE,GAE9B9F,EAAGuI,YAAYb,GACfA,EAAKK,iBAAiB,UAAU,IAAMN,EAAKG,OAAOF,EAAKoB,WAEvDrB,EAAKoB,SAAW,CAACnB,GACjBD,EAAKO,IAAMH,GAASH,EAAKoB,UAAYjB,GAAS,IAChD,CAKA,SAASa,EAAOjB,EAAMzH,EAAI2H,EAAOE,GAC/B,MAAMH,EAAO9B,EAAQ,SAAU,CAAC7E,KAAM4G,EAAMG,SACtCiB,EAASpB,EAAMoB,QAAU,GAE/BpB,EAAMqB,QAAQC,SAAQ,CAACC,EAAQvF,KAC7B,MAAMmC,EAAO,CAAC+B,MAAOqB,GACjBC,EAAYD,EAAQrB,KAAQ/B,EAAKsD,UAAW,GAChD1B,EAAKa,YAAY3C,EAAQ,SAAUE,GAAOiD,EAAOpF,IAAMuF,GAAQ,IAAI,IAGrElJ,EAAGuI,YAAYb,GAEfA,EAAKK,iBAAiB,UAAU,KAC9BN,EAAKG,OAAOD,EAAMqB,QAAQtB,EAAK2B,eAAe,IAGhD5B,EAAKoB,SAAW,CAACnB,GACjBD,EAAKO,IAAMH,IACT,IAAK,IAAIlE,EAAI,EAAG2F,EAAI3B,EAAMqB,QAAQO,OAAQ5F,EAAI2F,IAAK3F,EACjD,GAAIwF,EAAYxB,EAAMqB,QAAQrF,GAAIkE,GACR,YAAxBH,EAAK2B,cAAgB1F,EAEzB,CAEJ,CAKA,SAASgF,EAAMlB,EAAMzH,EAAI2H,EAAOE,GAC9B,MAAMnE,EAAQkC,EAAQ,OAAQ,CAACyC,MAASd,IAClCwB,EAASpB,EAAMoB,QAAU,GAE/B/I,EAAGuI,YAAY7E,GAEf+D,EAAKoB,SAAWlB,EAAMqB,QAAQQ,KAAI,CAACN,EAAQvF,KACzC,MAAMmC,EAAO,CACXpB,KAAO,QACP3D,KAAO4G,EAAMG,OACbD,MAAOqB,GAELC,EAAYD,EAAQrB,KAAQ/B,EAAKgD,SAAU,GAE/C,MAAMnH,EAAQiE,EAAQ,QAASE,GAC/BnE,EAAMoG,iBAAiB,UAAU,IAAMN,EAAKG,OAAOsB,KAEnD,MAAMO,EAAQ7D,EAAQ,QAAS,CAAE,GAAGmD,EAAOpF,IAAMuF,GAAQ,IAIzD,OAHAO,EAAMC,QAAQ/H,GACd+B,EAAM6E,YAAYkB,GAEX9H,CAAK,IAGd8F,EAAKO,IAAMH,IACT,MAAM8B,EAAQlC,EAAKoB,SACbS,EAAIK,EAAMJ,OAChB,IAAK,IAAI5F,EAAI,EAAGA,EAAI2F,IAAK3F,EACnBwF,EAAYQ,EAAMhG,GAAGkE,MAAOA,KAAQ8B,EAAMhG,GAAGmF,SAAU,EAC7D,CAEJ,CAKA,SAASF,EAAMnB,EAAMzH,EAAI2H,EAAOE,GAC9BA,OAAkB+B,IAAV/B,EAAsBA,IAAWF,EAAM5F,MAAS4F,EAAMkC,KAAQ,EAEtE,MAAM9H,EAAmB,MAAb4F,EAAM5F,IAAc4F,EAAM5F,IAAMD,KAAKC,IAAI,KAAM8F,IAAU,IAC/DgC,EAAMlC,EAAMkC,KAAO/H,KAAK+H,IAAI,EAAG9H,GAAM8F,IAAU,EAC/CnB,EAAOiB,EAAMjB,MDlLd,SAAkBH,EAAOC,EAAMC,GACNA,GAASA,EACvC,MAAMqD,GADNtD,GAAQA,IAAMD,GAASA,GACOW,EAAM4C,EAAU1C,EAAcZ,EAAMD,EAAOE,GAASW,EAAcb,EAAOC,EAAMC,GAC7G,OAAQqD,GAAW,EAAI,IAAM5C,EAAM,EAAI,GAAKA,EAAMA,EACpD,CC8K6B6C,CAASF,EAAK9H,EAAK,KAExC2F,EAAO9B,EAAQ,QAAS,CAC5BlB,KAAO,QACP3D,KAAO4G,EAAMG,OACb+B,IAAOA,EACP9H,IAAOA,EACP2E,KAAOA,IAETgB,EAAKG,MAAQA,EAEb,MAAMmC,EAAOpE,EAAQ,OAAQ,CAAA,GAAKiC,GAElC7H,EAAGuI,YAAYb,GACf1H,EAAGuI,YAAYyB,GAEf,MAAMpC,EAASA,KACboC,EAAK/D,YAAcyB,EAAKG,MACxBJ,EAAKG,QAAQF,EAAKG,MAAM,EAI1BH,EAAKK,iBAAiB,QAASH,GAC/BF,EAAKK,iBAAiB,SAAUH,GAEhCH,EAAKoB,SAAW,CAACnB,GACjBD,EAAKO,IAAMH,IACTH,EAAKG,MAAQA,EACbmC,EAAK/D,YAAc4B,CAAK,CAE5B,CAEA,SAASsB,EAAYc,EAAGC,GACtB,OAAOD,IAAMC,GAAMD,EAAE,IAAOC,EAAE,EAChC,CCpQe,SAAAC,EAAS7J,EAAM0C,EAAGhD,EAAIoK,EAAaC,EAAaC,GAE7D,OADAtH,EAAIA,GAAK,IAAIoH,EAAY9J,EAAKiK,WAE3BC,WAAWxK,EAAI4B,EAAMtB,GAAO6B,EAAO7B,GAAOiC,EAAOjC,GAAO+J,EAAaC,GACrEG,WAAWnK,EAAKmK,aACrB,CCPe,SAAAlG,EAASjE,EAAMoK,GAC5B,OAAQA,EAAY,WAClB,IACEA,EAAGC,MAAMnJ,KAAMoJ,UAChB,CAAC,MAAOzJ,GACPb,EAAKa,MAAMA,EACb,GALW,IAOf,CCyCA,SAAS0J,EAAOvK,EAAMN,EAAI8K,GACxB,GAAkB,iBAAP9K,EAAiB,CAC1B,GAAwB,oBAAbS,SAQT,OADAH,EAAKa,MAAM,oCACJ,KANP,KADAnB,EAAKS,SAASsK,cAAc/K,IAG1B,OADAM,EAAKa,MAAM,kCAAoCnB,GACxC,IAMb,CACA,GAAIA,GAAM8K,EACR,IACE9K,EAAGiG,YAAc,EAClB,CAAC,MAAOnD,GACP9C,EAAK,KACLM,EAAKa,MAAM2B,EACb,CAEF,OAAO9C,CACT,CCrEA,MAAMgL,EAASvF,IAAMA,GAAK,EAIX,SAAA5D,EAAS4D,GACtB,OAAON,EAAAA,SAASM,GACZ,CACEpD,IAAQ2I,EAAOvF,EAAEpD,KACjBC,OAAQ0I,EAAOvF,EAAEnD,QACjBL,KAAQ+I,EAAOvF,EAAExD,MACjBC,MAAQ8I,EAAOvF,EAAEvD,QARHuD,KAAM,CAACpD,IAAKoD,EAAGnD,OAAQmD,EAAGxD,KAAMwD,EAAGvD,MAAOuD,IAU1DwF,CAAcD,EAAOvF,GAC3B,CCNeyF,eAAAC,EAAe7K,EAAMoE,EAAM2F,EAAaC,GACrD,MAAMc,EAASC,EAAYA,aAAC3G,GACtB4G,EAAMF,GAAUA,EAAOG,SAK7B,OAHKD,GAAKnK,EAAAA,MAAM,+BAAiCuD,SAE3CpE,EAAKkL,WACJrB,EAAmB7J,EAAM,KAAM,KAAMgL,EAAKjB,EAAaC,GAC3DmB,YAAYnL,EAAKoL,YAAYC,KAClC,CClBA,IAAIC,EAAQ,QACRC,EAAS,SACTC,EAAU,UACVC,EAAO,CAACC,MAAM,GAEX,SAASC,EAAU3L,EAAMsB,GAC9B,IAAIqI,EAAI3J,EAAK4L,WACTrJ,EAAIvC,EAAKuB,UACb,OAAOD,GAASqI,GAAKA,EAAEkC,WAAaL,EAAUjJ,EAAEZ,KAAOY,EAAEX,MAAQ,EACnE,CAEO,SAASkK,EAAW9L,EAAM6B,GAC/B,IAAI8H,EAAI3J,EAAK4L,WACTrJ,EAAIvC,EAAKuB,UACb,OAAOM,GAAU8H,GAAKA,EAAEkC,WAAaL,EAAUjJ,EAAER,IAAMQ,EAAEP,OAAS,EACpE,CCYA,SAAS+J,EAAStL,EAAMC,GACtB,OAAOA,EAAKS,UACL6K,EAAOA,QAACtL,EAAKW,MAAMkG,SAClB9G,EAAKwL,WAAW,WAC1B,CAEA,SAASC,EAAWzL,EAAM0L,GACxB,QAAkB,WAAT1L,GAAqB0L,aAAcC,EAAUA,WAACC,MACzD,CCnCA,IAIIC,GACAC,GALAC,GAAQ,EACRC,GAAU,EACVC,GAAW,EACXC,GAAY,IAGZC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,iBAAhBC,aAA4BA,YAAYC,IAAMD,YAAcE,KAC3EC,GAA6B,iBAAXC,QAAuBA,OAAOC,sBAAwBD,OAAOC,sBAAsBlG,KAAKiG,QAAU,SAASE,GAAKC,WAAWD,EAAG,KAE7I,SAASL,KACd,OAAOJ,KAAaM,GAASK,IAAWX,GAAWE,GAAME,MAAQH,GACnE,CAEA,SAASU,KACPX,GAAW,CACb,CAEO,SAASY,KACdvM,KAAKwM,MACLxM,KAAKyM,MACLzM,KAAK0M,MAAQ,IACf,CA0CA,SAASC,KACPhB,IAAYD,GAAYG,GAAME,OAASH,GACvCN,GAAQC,GAAU,EAClB,KAdK,WACLQ,OACET,GAEF,IADA,IAAkBhK,EAAdsL,EAAIxB,GACDwB,IACAtL,EAAIqK,GAAWiB,EAAEH,QAAU,GAAGG,EAAEJ,MAAMK,UAAKzE,EAAW9G,GAC3DsL,EAAIA,EAAEF,QAENpB,EACJ,CAMIwB,EACF,CAAU,QACRxB,GAAQ,EAWZ,WACE,IAAIyB,EAAmBC,EAAfC,EAAK7B,GAAc8B,EAAOC,IAClC,KAAOF,GACDA,EAAGT,OACDU,EAAOD,EAAGR,QAAOS,EAAOD,EAAGR,OAC/BM,EAAKE,EAAIA,EAAKA,EAAGP,QAEjBM,EAAKC,EAAGP,MAAOO,EAAGP,MAAQ,KAC1BO,EAAKF,EAAKA,EAAGL,MAAQM,EAAK5B,GAAW4B,GAGzC3B,GAAW0B,EACXK,GAAMF,EACR,CAvBIG,GACA1B,GAAW,CACb,CACF,CAEA,SAAS2B,KACP,IAAIvB,EAAMF,GAAME,MAAOwB,EAAQxB,EAAML,GACjC6B,EAAQ9B,KAAWG,IAAa2B,EAAO7B,GAAYK,EACzD,CAiBA,SAASqB,GAAMF,GACT5B,KACAC,KAASA,GAAUiC,aAAajC,KACxB2B,EAAOvB,GACP,IACNuB,EAAOC,MAAU5B,GAAUc,WAAWM,GAAMO,EAAOrB,GAAME,MAAQH,KACjEJ,KAAUA,GAAWiC,cAAcjC,OAElCA,KAAUE,GAAYG,GAAME,MAAOP,GAAWkC,YAAYJ,GAAM7B,KACrEH,GAAQ,EAAGW,GAASU,KAExB,CC3Ge,SAAAgB,GAASxK,EAAShC,EAAOC,EAAMiF,GAC5C,MAAM7H,EAAK2E,EAAQiB,UACf5F,GAAIA,EAAGG,aAAa,QAG1B,SAAuB0H,GACrB,OAAgB,MAATA,EAAgB,GACnByE,EAAAA,QAAQzE,GAASuH,GAAYvH,GAC7B1C,EAAAA,SAAS0C,KAAWwH,EAAMA,OAACxH,IAIXyH,EAJiCzH,EAK9C0H,OAAOC,KAAKF,GAAK9F,KAAIxE,IAC1B,MAAMyK,EAAIH,EAAItK,GACd,OAAOA,EAAM,MAAQsH,EAAOA,QAACmD,GAAKL,GAAYK,GAAKC,GAAYD,GAAG,IACjEE,KAAK,OAPJ9H,EAAQ,GAGd,IAAsByH,CAFtB,CARmCM,CAAc/H,GACjD,CAgBA,SAASuH,GAAYvH,GACnB,MAAO,IAAMA,EAAM2B,IAAIkG,IAAaC,KAAK,MAAQ,GACnD,CAEA,SAASD,GAAY7H,GACnB,OAAOyE,UAAQzE,GAAS,MACpB1C,EAAAA,SAAS0C,KAAWwH,SAAOxH,GAAS,MACpCA,CACN,CCYe,SAASgI,GAAKC,EAAM9G,GACjC,MAAM1I,EAAOkB,KAOb,GANAwH,EAAUA,GAAW,GAErB+G,WAAS1B,KAAK/N,GACV0I,EAAQuB,QAAQjK,EAAKiK,OAAOvB,EAAQuB,QACpCvB,EAAQgH,QAAQ1P,EAAK0P,OAAOhH,EAAQgH,QAChB,MAApBhH,EAAQiH,UAAkB3P,EAAK2P,SAASjH,EAAQiH,UAChDjH,EAAQkH,QAAUJ,EAAKI,OAAQ,CACjC,MAAMC,EAAMC,EAAAA,OAAO,CAAE,EAAEN,EAAKI,OAAQlH,EAAQkH,QAC5C5P,EAAK4P,OAAOA,SAAOC,EAAInF,OAAQmF,EAAIzB,MACrC,CAEApO,EAAK+P,IAAM,KACX/P,EAAKgQ,QAAU,KACfhQ,EAAKiQ,YAAcvH,EAAQwH,UAAYC,EAAAA,WAAWC,OAClDpQ,EAAKoL,YAAc,IAAIiF,EAAAA,WACvB,MAAMhF,EAAOrL,EAAKoL,YAAYC,KAG9BrL,EAAK2C,UAAY,KACjB3C,EAAKsQ,SAAW5H,EAAQ6H,SAAW1B,GACnC7O,EAAKwQ,SAAU,EACfxQ,EAAKyQ,UAAW,IAAIC,EAAAA,eAAgBC,MAAMtF,GAC1CrL,EAAK4Q,eAAgB,EACrB5Q,EAAK6Q,iBAAkB,EACvB7Q,EAAK8Q,QAAU,GACf9Q,EAAKsE,gBAAkB,GACvBtE,EAAK+Q,iBAAmB,GAGxB/Q,EAAK4E,ad1DA,SAA+BoM,GACpC,MAAMC,EAASnB,EAAAA,OAAO,CAACoB,SAAU,CAAC,GAAIF,GAEhCG,EAASA,CAACnC,EAAKE,KACnBA,EAAKvG,SAAQyI,IACPpF,UAAQgD,EAAIoC,MAAKpC,EAAIoC,GAAKC,EAAKA,MAACrC,EAAIoC,IAAG,GAC3C,EAMJ,OAHAD,EAAOF,EAAOC,SAAU,CAAC,UAAW,UACpCC,EAAOF,EAAQ,CAAC,OAAQ,SAAU,aAE3BA,CACT,Cc6CsBK,CAAsB9B,EAAK+B,aAC/CvR,EAAKE,aAAaF,EAAK4E,aAAa1E,cAGpC,MAAMsR,ECxEO,SAASxR,EAAMwP,EAAMiC,GAClC,OAAOC,EAAOA,QAAC1R,EAAMoM,aAAYuF,EAAAA,gBAAiBF,GAAMG,MAAMpC,EAChE,CDsEcqC,CAAQ7R,EAAMwP,EAAM9G,EAAQ+I,MACxCzR,EAAKW,SAAW6Q,EAChBxR,EAAK8R,SAAWN,EAAIO,QACpB/R,EAAKgS,OAASxC,EAAKyC,UAAY,IAAI/I,KAAI/D,IAAM,CAC3C+M,MAAO,KACP7K,MAAOyI,EAAAA,OAAO,CAAE,EAAE3K,OAIhBqM,EAAInG,MAAMmG,EAAInG,KAAK3D,IAAI2D,GAC3BA,EAAKpG,OAASuM,EAAI9Q,KAAK2K,KAAKhK,MAC5BrB,EAAKoB,MACHoQ,EAAI9Q,KAAK2K,KAAKhK,MACdrB,EAAKoF,YAAY+M,OAAO9G,EAAK+G,QAI/BpS,EAAKqS,OAASrS,EAAKsB,QACnBtB,EAAKsS,QAAUtS,EAAK6B,SACpB7B,EAAK0B,WAAaiK,EAAU3L,EAAMA,EAAKqS,QACvCrS,EAAK8B,YAAcgK,EAAW9L,EAAMA,EAAKsS,SACzCtS,EAAKmC,QAAU,CAAC,EAAG,GACnBnC,EAAKuS,QAAU,EACfvS,EAAKwS,UAAY,EJlFZ,SAA0BxS,GAC/B,IAAIyS,EAAIzS,EAAK8R,SACTY,EAAID,EAAEnH,GACNqH,EAAIF,EAAElH,GACNhJ,EAAIkQ,EAAEjH,GAEV,SAASoH,IACP5S,EAAKwS,UAAYxS,EAAKuS,QAAU,CAClC,CAGAvS,EAAK6S,aAAe7S,EAAK8S,IAAI,MAC3B3N,IACEnF,EAAKqS,OAASlN,EAAE4N,KAChB/S,EAAK0B,WAAaiK,EAAU3L,EAAMmF,EAAE4N,MACpCH,GAAW,GAEb,CAACG,KAAML,IAIT1S,EAAKgT,cAAgBhT,EAAK8S,IAAI,MAC5B3N,IACEnF,EAAKsS,QAAUnN,EAAE4N,KACjB/S,EAAK8B,YAAcgK,EAAW9L,EAAMmF,EAAE4N,MACtCH,GAAW,GAEb,CAACG,KAAMJ,IAIT,MAAMM,EAAgBjT,EAAK8S,IAAI,KAAMF,EAAW,CAACM,IAAK3Q,IAGtDvC,EAAK6S,aAAaM,KAAOT,EAAES,KAAO,EAClCnT,EAAKgT,cAAcG,KAAOR,EAAEQ,KAAO,EACnCF,EAAcE,KAAO5Q,EAAE4Q,KAAO,CAChC,CI8CEC,CAAiBpT,GEpGJ,SAASA,GAEtBA,EAAK8S,IAAI,MAAM3N,IACbnF,EAAKqT,YAAclO,EAAEmO,GACrBtT,EAAKuS,QAAU,EACRpN,EAAEmO,KACR,CAAEA,GAAItT,EAAK8R,SAAS3H,YACzB,CFgGEA,CAAWnK,GlBnGE,SAASA,GAEtB,MAAMC,EAASD,EAAK8R,SAAS7R,SAAWD,EAAK8R,SAAS7R,OAASD,EAAK8S,IAAI,CACtES,KAAMzT,EACNwC,KAAM,QAIRtC,EAAKwT,GAAGxT,EAAKiR,OAAO,OAAQ,eAAgBhR,GAC1C,CAACkF,EAAG9C,KACF,MAAMkF,EAAQtH,EAAOsH,MACfgM,EAAOhM,EAAS9D,WAAS8D,GAASA,EAAQA,EAAMgM,KAAQzT,EACxDwC,EAAOD,EAAMC,MAAQD,EAAMC,KAAKrC,QAAU,KAEhD,OAAQsH,GAASgM,IAAShM,EAAMgM,MAAQjR,GAAQiF,EAAMjF,KAClDiF,EACA,CAACgM,KAAMA,EAAMjR,KAAMA,EAAK,IAKhCtC,EAAK8S,IAAI,MAAM,SAAS3N,GACtB,IAAIoO,EAAOpO,EAAElF,OACTqC,EAAOpB,KAAKqG,MAShB,OAPK9D,EAAAA,SAAS8P,KACZjR,EAAOiR,EAAKjR,KACZiR,EAAOA,EAAKA,MAGdxT,EAAUC,EAAMuT,GAAQA,IAASzT,EAAUyT,EAAQjR,GAAQiR,GAEpDjR,CACT,GAAG,CAACrC,OAAQA,GACd,CkBoEEA,CAAOD,GAGPA,EAAKyT,YAAYjE,EAAKiE,aAGlB/K,EAAQgL,OAAO1T,EAAK0T,QAGpBhL,EAAQrI,WAAWL,EAAKkK,WAAWxB,EAAQrI,UAAWqI,EAAQvB,MAE9DuB,EAAQiL,iBAAiB3T,EAAK4T,kBACpC,CAEA,SAASC,GAAa7T,EAAMS,GAC1B,OAAOG,EAAcA,eAACZ,EAAK8R,SAAUrR,GACjCT,EAAK8R,SAASrR,GACdI,EAAAA,MAAM,6BAA+BiT,EAAAA,YAAYrT,GACvD,CAEA,SAASsT,GAAoB5H,EAAI9H,GAC/B,MAAMsO,GAAKxG,EAAG6H,UAAY,IACvBC,QAAO9H,GAAMA,EAAG+H,SAAW/H,EAAG+H,QAAQ7P,UAAYA,IACrD,OAAOsO,EAAE1J,OAAS0J,EAAE,GAAK,IAC3B,CAEA,SAASwB,GAAoBnU,EAAMS,EAAM0L,EAAI9H,GAC3C,IAAIsO,EAAIoB,GAAoB5H,EAAI9H,GAMhC,OALKsO,IACHA,EAAI1O,EAAKjE,GAAM,IAAMqE,EAAQ5D,EAAM0L,EAAG5E,SACtCoL,EAAEtO,QAAUA,EACZrE,EAAKwT,GAAGrH,EAAI,KAAMwG,IAEb3S,CACT,CAEA,SAASoU,GAAuBpU,EAAMmM,EAAI9H,GACxC,MAAMsO,EAAIoB,GAAoB5H,EAAI9H,GAElC,OADIsO,GAAGxG,EAAG6H,SAASK,OAAO1B,GACnB3S,CACT,CFxHAyN,GAAM6G,UAA8B,CAClCxK,YAAa2D,GACb8G,QAAS,SAASC,EAAU/F,EAAOL,GACjC,GAAwB,mBAAboG,EAAyB,MAAM,IAAIC,UAAU,8BACxDrG,GAAgB,MAARA,EAAenB,MAASmB,IAAkB,MAATK,EAAgB,GAAKA,GACzDvN,KAAK0M,OAASrB,KAAarL,OAC1BqL,GAAUA,GAASqB,MAAQ1M,KAC1BoL,GAAWpL,KAChBqL,GAAWrL,MAEbA,KAAKwM,MAAQ8G,EACbtT,KAAKyM,MAAQS,EACbE,IACD,EACDpI,KAAM,WACAhF,KAAKwM,QACPxM,KAAKwM,MAAQ,KACbxM,KAAKyM,MAAQU,IACbC,KAEJ,GEsGFoG,EAAAA,SAASnF,GAAME,EAAAA,SAAU,CAGvB,cAAMkF,CAAStP,EAAQuP,EAAQC,GAK7B,SAHMpF,EAAAA,SAAS6E,UAAUK,SAAS5G,KAAK7M,KAAMmE,EAAQuP,GAGjD1T,KAAKsP,SAAWtP,KAAKqR,QACvB,IACMrR,KAAKyB,YACHzB,KAAKqR,UACPrR,KAAKqR,QAAU,EhB5IrBrQ,EAASD,EADgBjC,EgB8IJkB,MhB5IrBwR,EAAIpR,EAAMtB,GACV2S,EAAI9Q,EAAO7B,GAEfA,EAAK2C,UAAUwH,WAAWnK,EAAKmK,cAC/BnK,EAAK2C,UAAUmS,OAAOpC,EAAGC,EAAGzQ,GAC5BlC,EAAKyQ,SAASvO,OAAOA,GAErBlC,EAAK+Q,iBAAiBpI,SAAQtE,IAC5B,IACEA,EAAQqO,EAAGC,EACZ,CAAC,MAAO9R,GACPb,EAAKa,MAAMA,EACb,YgBkIYK,KAAKyB,UAAUwI,YAAYjK,KAAKkK,YAAYC,OAEpDnK,KAAKsP,SAAU,CAChB,CAAC,MAAOhO,GACPtB,KAAKL,MAAM2B,EACb,ChBrJC,IAAwBxC,EACzBkC,EACAwQ,EACAC,EgBwJF,OAFIkC,GAASE,EAAAA,cAAc7T,KAAM2T,GAE1B3T,IACR,EAED8T,KAAAA,CAAM1S,GACJpB,KAAKsP,SAAU,EACftP,KAAKyB,WAAazB,KAAKyB,UAAUqS,MAAM1S,EACxC,EAIDmR,WAAAA,CAAYhO,GACV,GAAI6E,UAAUrB,OAAQ,CACpB,MAAMtJ,EAAe,MAAR8F,EAAgBA,EAAO,GAAM,KAE1C,OADI9F,IAASuB,KAAK+T,OAAOxV,EAAUyB,KAAK6O,IAAK7O,KAAK+T,MAAQtV,GACnDuB,IACT,CACA,OAAOA,KAAK+T,KACb,EAED5U,SAAAA,GACE,OAAOa,KAAK6O,GACb,EAEDmF,UAAAA,GACE,OAAOhU,KAAKkK,WACb,EAEDlJ,MAAAA,GACE,OAAOhB,KAAKiB,QAAQuB,OACrB,EAED8D,MAAAA,CAAO/G,EAAM8G,EAAOmB,GAClB,MAAMyD,EAAK0H,GAAa3S,KAAMT,GAC9B,OAA4B,IAArB6J,UAAUrB,OACbkD,EAAG5E,MACHrG,KAAKoG,OAAO6E,EAAI5E,EAAOmB,EAC5B,EAEDpH,KAAAA,CAAM6D,GACJ,OAAOmF,UAAUrB,OAAS/H,KAAKsG,OAAO,QAASrC,GAAKjE,KAAKsG,OAAO,QACjE,EAED3F,MAAAA,CAAOsD,GACL,OAAOmF,UAAUrB,OAAS/H,KAAKsG,OAAO,SAAUrC,GAAKjE,KAAKsG,OAAO,SAClE,EAEDjG,OAAAA,CAAQ4D,GACN,OAAOmF,UAAUrB,OACb/H,KAAKsG,OAAO,UAAWjG,EAAQ4D,IAC/B5D,EAAQL,KAAKsG,OAAO,WACzB,EAEDoE,QAAAA,CAASzG,GACP,OAAOmF,UAAUrB,OAAS/H,KAAKsG,OAAO,WAAYrC,GAAKjE,KAAKsG,OAAO,WACpE,EAED2C,UAAAA,CAAWhF,GACT,OAAOmF,UAAUrB,OAAS/H,KAAKsG,OAAO,aAAcrC,GAAKjE,KAAKsG,OAAO,aACtE,EAED0I,QAAAA,CAAS9L,GACP,OAAKkG,UAAUrB,QACV8B,EAAYA,aAAC3G,IAAOvD,EAAAA,MAAM,+BAAiCuD,GAC5DA,IAASlD,KAAK+O,cAChB/O,KAAK+O,YAAc7L,EACnBlD,KAAKiU,kBAEAjU,MANuBA,KAAK+O,WAOpC,EAEDM,OAAAA,CAAQlM,GACN,OAAKiG,UAAUrB,QACX5E,IAAYnD,KAAKoP,WACnBpP,KAAKoP,SAAWjM,EAChBnD,KAAKiU,kBAEAjU,MALuBA,KAAKoP,QAMpC,EAEDrG,MAAAA,CAAOA,GACL,OAAKK,UAAUrB,QACXgB,IAAW/I,KAAKkU,UAClB3F,EAAQA,SAAC6E,UAAUrK,OAAO8D,KAAK7M,KAAM+I,GACrC/I,KAAKiU,kBAEAjU,MALuBA,KAAKkU,OAMpC,EAEDN,MAAAA,GAIE,OAFA5T,KAAKsR,UAAY,EAEVtR,KAAKmU,MAAMxB,GAAa3S,KAAM,YACtC,EAEDiU,cAAAA,GACMjU,KAAKyB,YACPzB,KAAKyB,UAAY,KACjBzB,KAAKgJ,WAAWhJ,KAAK6O,IAAK7O,KAAK8O,SAElC,EAGDsF,YJ7NK,SAAoB3J,EAAWG,EAAYxK,EAAOO,EAAQK,EAAQqT,GACvErU,KAAKsU,UAASxV,IACZ,IAAIyV,EAAQ,EAGZzV,EAAKwS,UAAY,EAGbxS,EAAKsB,UAAYA,IACnBmU,EAAQ,EACRzV,EAAKwH,OAAO8D,EAAOhK,EAAOmK,GAC1BzL,EAAK6S,aAAanH,MAAK,IAIrB1L,EAAK6B,WAAaA,IACpB4T,EAAQ,EACRzV,EAAKwH,OAAO+D,EAAQ1J,EAAQ4J,GAC5BzL,EAAKgT,cAActH,MAAK,IAItB1L,EAAK0B,aAAeiK,IACtB3L,EAAKuS,QAAU,EACfvS,EAAK0B,WAAaiK,GAIhB3L,EAAK8B,cAAgBgK,IACvB9L,EAAKuS,QAAU,EACfvS,EAAK8B,YAAcgK,GAIjB9L,EAAKmC,QAAQ,KAAOD,EAAO,IAAMlC,EAAKmC,QAAQ,KAAOD,EAAO,KAC9DlC,EAAKuS,QAAU,EACfvS,EAAKmC,QAAUD,GAIbuT,GAAOzV,EAAK0V,IAAI,SAChBH,GAAMvV,EAAKwV,UAASrG,GAAKA,EAAE2F,UAAS,IACvC,EAAO,EACZ,EIsLErN,gBAAAA,CAAiBrD,EAAMC,EAASqE,GAC9B,IAAI8L,EAAWnQ,EAOf,OANMqE,IAA4B,IAAjBA,EAAQzE,OAEvBuQ,EAAWvQ,EAAK/C,KAAMmD,GACtBmQ,EAASmB,IAAMtR,GAEjBnD,KAAKuP,SAAS+C,GAAGpP,EAAMoQ,GAChBtT,IACR,EAED0U,mBAAAA,CAAoBxR,EAAMC,GAKxB,IAJA,IACyBsO,EAAG7E,EADxB+H,EAAW3U,KAAKuP,SAASoF,SAASzR,GAClCf,EAAIwS,EAAS5M,SAGR5F,GAAK,GAGZ,GAFAyK,EAAI+H,EAASxS,GAAGe,KAChBuO,EAAIkD,EAASxS,GAAGgB,QACZD,IAAS0J,IAAMzJ,IAAYsO,GAAKtO,IAAYsO,EAAEgD,KAAM,CACtDzU,KAAKuP,SAASqF,IAAIhI,EAAG6E,GACrB,KACF,CAEF,OAAOzR,IACR,EAED6U,iBAAAA,CAAkB1R,GAChB,MAAM2R,EAAI9U,KAAK6P,iBAOf,OANKiF,EAAEC,SAAS5R,IAId2R,EAAEzR,KAAKF,GAEFnD,IACR,EAEDgV,oBAAAA,CAAqB7R,GACnB,IAAI2R,EAAI9U,KAAK6P,iBACT1N,EAAI2S,EAAEG,QAAQ9R,GAIlB,OAHIhB,GAAK,GACP2S,EAAEI,OAAO/S,EAAG,GAEPnC,IACR,EAEDmV,iBAAAA,CAAkB5V,EAAM4D,GACtB,OAAO8P,GAAoBjT,KAAMT,EAAMoT,GAAa3S,KAAMT,GAAO4D,EAClE,EAEDiS,oBAAAA,CAAqB7V,EAAM4D,GACzB,OAAO+P,GAAuBlT,KAAM2S,GAAa3S,KAAMT,GAAO4D,EAC/D,EAEDkS,eAAAA,CAAgB9V,EAAM4D,GACpB,OAAO8P,GAAoBjT,KAAMT,EAAMD,EAAQU,KAAMT,GAAM+V,OAAQnS,EACpE,EAEDoS,kBAAAA,CAAmBhW,EAAM4D,GACvB,OAAO+P,GAAuBlT,KAAMV,EAAQU,KAAMT,GAAM+V,OAAQnS,EACjE,EAEDnE,YAAAA,CAAaiF,GACX,GAAImF,UAAUrB,OAAQ,CACpB,GAAI/H,KAAK0P,kBAAoBzL,EAAG,CAC9B,MAAMuR,EAAO3W,EAAUmB,KAAM,MAC7BA,KAAK0P,gBAAkBzL,EACnBuR,GAAM3W,EAAUmB,KAAMwV,EAC5B,CACA,OAAOxV,IACT,CACE,OAAOA,KAAK0P,aAEf,EAED+F,cAAAA,CAAexR,GACb,OAAImF,UAAUrB,QACZ/H,KAAK2P,gBAAkB1L,EAChBjE,MAEAA,KAAK2P,eAEf,EAED+F,MG5Wa,SAASpC,EAAU/F,GAIhCvN,KAAK4P,QAAQvM,KCJA,SAASiQ,EAAU/F,EAAOL,GACvC,IAAIN,EAAI,IAAIL,GAAOoJ,EAAQpI,EAC3B,OAAa,MAATA,GAAsBX,EAAEyG,QAAQC,EAAU/F,EAAOL,GAAON,IAC5DA,EAAEgJ,SAAWhJ,EAAEyG,QACfzG,EAAEyG,QAAU,SAASC,EAAU/F,EAAOL,GACpCK,GAASA,EAAOL,EAAe,MAARA,EAAenB,MAASmB,EAC/CN,EAAEgJ,UAAS,SAASC,EAAKC,GACvBA,GAAWH,EACX/I,EAAEgJ,SAASC,EAAMF,GAASpI,EAAOL,GACjCoG,EAASwC,EACX,GAAGvI,EAAOL,IAEZN,EAAEyG,QAAQC,EAAU/F,EAAOL,GACpBN,EACT,CDVoBpB,EAHlB,SAAcsK,GACZxC,EAAS,CAACyC,UAAW/J,KAAKD,MAAO+J,QAASA,GAC5C,GACiCvI,GACnC,EHwWEwC,Od5SK,SAAgBhM,EAAQb,EAAM6P,GACnC,IAUI9P,EAVAnE,EAAOkB,KACPuR,EAAI,IAAIyE,EAAWA,YAACjD,GACpBkD,EAAO,SAAS3U,EAAGF,GACjBtC,EAAKkL,SAAS,MAAM,KACdjG,IAAWlB,GAnCzB,SAAiB/D,EAAMoE,GACrB,IAAIgT,EAAMpX,EAAK4E,aAAasM,SACxBmG,EAAUD,EAAIC,QACdC,EAAQF,EAAIE,MAEhB,OAAmB,IAAZD,IAA+B,IAAVC,KACZ,IAAZD,IAA8B,IAAVC,IACpBD,EAAUA,EAAQjT,GAClBkT,GAASA,EAAMlT,GACfpE,EAAK2W,kBACX,CAyBiCU,CAAQrX,EAAMoE,IACnC5B,EAAEmU,iBAEJlE,EAAE8E,QAAQnV,EAAYpC,EAAMwC,EAAGF,GAAM,GAExC,EAGL,GA3EY,UA2ER2C,EACER,EAAOzE,EAAM,QAASoE,IACxBpE,EAAK4W,MAAMO,EAAM/S,QAIhB,GAAIa,IAAWlB,EACdU,EAAOzE,EAAM,OAAQoE,IAEvBpE,EAAKyH,iBAAiBrD,EAAM+S,EAAMnT,QAepC,GAlGW,WAwFPiB,EACER,EAAOzE,EAAM,SAAUoE,IAA2B,oBAAXgJ,SACzCjJ,EAAU,CAACiJ,SAEgB,oBAAbjN,UACZsE,EAAOzE,EAAM,WAAYoE,KAC3BD,EAAUqT,MAAMC,KAAKtX,SAASuX,iBAAiBzS,KAI9Cd,EAEE,CACL,IAAK,IAAId,EAAE,EAAG2F,EAAE7E,EAAQ8E,OAAQ5F,EAAE2F,IAAK3F,EACrCc,EAAQd,GAAGoE,iBAAiBrD,EAAM+S,GAEpCjT,EAAmBlE,EAAMmE,EAASC,EAAM+S,EAC1C,MANEnX,EAAK8E,KAAK,iCAAmCG,GASjD,OAAOwN,CACT,Ec6PEkF,SK1Wa,WACb,IAII3O,EAAG4O,EAAGpV,EAAGmQ,EAAG7E,EAJZyC,EAAUrP,KAAKoP,SACfuH,EAAS3W,KAAK4P,QACd+E,EAAW3U,KAAKuP,SAASoF,WACzBiC,EAAY5W,KAAKoD,gBAIrB,IADA0E,EAAI6O,EAAO5O,SACFD,GAAK,GACZ6O,EAAO7O,GAAG9C,OAIZ,IADA8C,EAAI8O,EAAU7O,SACLD,GAAK,GAGZ,IADA4O,GADApV,EAAIsV,EAAU9O,IACR7E,QAAQ8E,SACL2O,GAAK,GACZpV,EAAE2B,QAAQyT,GAAGhC,oBAAoBpT,EAAE4B,KAAM5B,EAAE6B,SAU/C,IANIkM,GACFA,EAAQxC,KAAK7M,KAAMA,KAAKuP,SAAU,KAAM,KAAM,MAIhDzH,EAAI6M,EAAS5M,SACJD,GAAK,GACZ8E,EAAI+H,EAAS7M,GAAG5E,KAChBuO,EAAIkD,EAAS7M,GAAG3E,QAChBnD,KAAKuP,SAASqF,IAAIhI,EAAG6E,GAGvB,OAAOzR,IACT,ELyUEwS,MbhWa,SAASqE,EAAUC,GAkBhC,OAhBAA,EAAW,CAACA,GAAY,UADxBD,EAAW,CAACA,GAAY,UACmB,IAG3C7W,KAAKsS,GACHtS,KAAK+P,OAAO,OAAQ,cAAelM,GACnCC,EACAE,EAAO6S,IAIT7W,KAAKsS,GACHtS,KAAK+P,OAAO,OAAQ,aAAclM,GAClCC,EACAE,EAAO8S,IAGF9W,IACT,EagVER,KjBzWK,SAAcD,EAAM+V,GACzB,OAAOlM,UAAUrB,OAAS,EACtBzI,EAAQU,KAAMT,GAAM+V,OAAOjP,MAC3BzG,EAAOiN,KAAK7M,KAAMT,EAAM2E,EAAAA,YAAYiP,OAAO4D,EAAAA,QAAQ9F,OAAOqE,GAChE,EiBsWE1V,SACAqR,OjB5VK,SAAgB1R,EAAM0E,GAC3B,OAAOrE,EAAOiN,KAAK7M,KAAMT,EAAM2E,EAAAA,YAAY+M,OAAOhN,GACpD,EiB2VEkP,OjBzVK,SAAgB5T,EAAM0E,GAC3B,OAAOrE,EAAOiN,KAAK7M,KAAMT,EAAM2E,EAAAA,YAAYiP,OAAOlP,GACpD,EiB0VE+S,MMxXK,SAAezX,GACpB,IAAI0X,EAASjX,KAAKP,SAASwX,OAI3B,OAHKvX,EAAcA,eAACuX,EAAQ1X,IAC1BI,QAAM,qCAAuCJ,GAExC0X,EAAO1X,GAAM8G,KACtB,ENqXE2C,WPtXa,SAASxK,EAAI0Y,GAC1B,MAAMpY,EAAOkB,KACPkD,EAAOpE,EAAKiQ,YACZe,EAAShR,EAAK4E,aAAauC,KAC3B2D,EAASC,EAAAA,aAAa3G,GAG5B1E,EAAKM,EAAK+P,IAAMrQ,EAAK6K,EAAOvK,EAAMN,GAAI,GAAQ,KZbzC,SAAwBM,GAC7B,MAAMN,EAAKM,EAAKK,YACZX,IACFA,EAAGG,aAAa,OAAQ,qBACxBH,EAAGG,aAAa,uBAAwB,iBACxCJ,EAAUC,EAAIM,EAAKyT,eAEvB,CYSE4E,CAAerY,GAGV8K,GAAQ9K,EAAKa,MAAM,+BAAiCuD,GACzD,MAAMkU,EAAUxN,EAAOzG,SAAWqM,EAAaA,cACzC6H,EAAY7Y,EAAKoL,EAAOoF,SAAWpF,EAAOG,SAwBhD,OArBAjL,EAAK2C,UAAa4V,EACd1O,EAAmB7J,EAAMA,EAAK2C,UAAWjD,EAAI6Y,GADpB,KAE7BvY,EAAKyQ,ScxBQ,SAASzQ,EAAMwY,EAAa9Y,EAAIoK,GAE7C,MAAMzF,EAAU,IAAIyF,EAAY9J,EAAKiK,SAAUhG,EAAKjE,EAAMA,EAAKuQ,YAC5DI,MAAM3Q,EAAKkV,aAAa7J,MACxBnB,WAAWxK,EAAIuC,EAAOjC,GAAOA,GAShC,OANIwY,GACFA,EAAY3C,WAAWlN,SAAQgK,IAC7BtO,EAAQmP,GAAGb,EAAEvO,KAAMuO,EAAEtO,QAAQ,IAI1BA,CACT,CdUkBoU,CAAkBzY,EAAMA,EAAKyQ,SAAU/Q,EAAI4Y,GAC3DtY,EAAKwQ,SAAU,EAGX9Q,GAAiB,SAAXsR,IACRoH,EAASA,EAAUpY,EAAKgQ,QAAUzF,EAAOvK,EAAMoY,GAAQ,GACnD1Y,EAAGuI,YAAY3C,EAAQ,OAAQ,CAACyC,MAAS,mBAE7C/H,EAAKgS,MAAMrJ,SAAQxD,IACbA,EAAEkC,MAAM/B,SAAsB,cAAX0L,IACrB7L,EAAEG,QAAUiF,EAAOvK,EAAMmF,EAAEkC,MAAM/B,UAAWH,EAAEkC,MAAMhG,OACtD,IAGFrB,EAAKgS,MAAMrJ,SAAQxD,KHnBR,SAASnF,EAAMN,EAAIgZ,GAChC,IAAKhZ,EAAI,OAET,MAAM2H,EAAQqR,EAAQrR,MACtB,IAAIF,EAAOuR,EAAQxG,MAEd/K,IACHA,EAAOuR,EAAQxG,MAAQ,CACrB3J,SAAU,KACVoQ,QAAQ,EACRjR,IAAK,KACLJ,OAAQC,IACFA,GAASvH,EAAKwH,OAAOH,EAAMG,SAC7BxH,EAAKkL,SAAS,MAAM,KAClB/D,EAAKlC,QAAS,EACdjF,EAAKwH,OAAOH,EAAMG,OAAQD,EAAM,GAEpC,GAGAF,EAAMuR,WACRzR,EAAKG,OAASsR,WAASvR,EAAMuR,SAAUzR,EAAKG,WAIlB,MAAfD,EAAMhG,OAAiBgG,EAAM/B,QAAU4B,EAASW,GACxDV,EAAMzH,EAAI2H,EAAOrH,GAEnBmH,EAAKwR,SACR3Y,EAAKwT,GAAGxT,EAAK8R,SAASzK,EAAMG,QAAS,MAAM,KACzCL,EAAKlC,OACAkC,EAAKlC,QAAS,EACfkC,EAAKO,IAAI1H,EAAKwH,OAAOH,EAAMG,QAAQ,IAEzCL,EAAKwR,QAAS,EAIlB,CGlBMxR,CAAKnH,EAAMmF,EAAEG,SAAW8S,EAAQjT,EAAE,KAI/BnF,CACT,EOiVE6Y,WQnXajO,eAAexG,EAAM2F,GAC9B3F,IAAS0U,aAAK1I,QAAUhM,IAAS0U,EAAI3I,WAAC4I,KAAO3U,IAAS0U,EAAI3I,WAAC6I,KAC7DnY,QAAM,4BAA8BuD,GAGtC,MAAM1B,QAAUmI,EAAe3J,KAAMkD,EAAM2F,GAC3C,OAAO3F,IAAS0U,EAAI3I,WAAC4I,IAKvB,SAAmBrY,EAAMuY,GACvB,MAAMC,EAAO,IAAIC,KAAK,CAACzY,GAAO,CAAC0D,KAAM6U,IACrC,OAAO7L,OAAOgM,IAAIC,gBAAgBH,EACpC,CAPMI,CAAU5W,EAAE6W,MAAO,iBACnB7W,EAAEE,SAAS4W,UAAU,YAC3B,ER2WEC,SSzXa7O,eAAeb,EAAaC,GAEzC,aADgBa,EAAe3J,KAAMiP,EAAUA,WAACC,OAAQrG,EAAaC,IAC5DpH,QACX,ETuXE8W,MU1Xa9O,eAAeb,GAE5B,aADgBc,EAAe3J,KAAMiP,EAAAA,WAAW4I,IAAKhP,IAC5CwP,KACX,EV0XEI,SHlXK,SAAkBjR,GACvB,OAAOxH,KAAKP,SAASgZ,SAASjR,GAAW,CACvChI,KAASqL,EACTgG,QAAS7F,EACT0N,SAAS,GAEb,EG6WEC,SH3VK,SAAkB3H,GAKvB,OAJAhR,KAAKgK,SAAS,MACZiE,IAAOA,EAAE2K,UAAW,EAAO3K,EAAExO,SAASkZ,SAAS3H,EAAM,IACrD/C,IAAOA,EAAE2K,UAAW,CAAI,IAEnB5Y,IACT,EGwVE0S,iBWzYa,WAEb,GAAwB,WAApB1S,KAAKgP,YAA2BhP,KAAKyB,UAAUoX,QAAS,CAC1D,IAAI1F,EAAS,KACb,MAAM2F,EAAmBA,KACT,MAAV3F,GACFA,IAEF,MAAM4F,EAAQC,WAAW,gBAAgB9M,OAAO+M,yBAChDF,EAAMxS,iBAAiB,SAAUuS,GACjC3F,EAASA,KACP4F,EAAMrE,oBAAoB,SAAUoE,EAAiB,EAGvD9Y,KAAKyB,UAAUoX,QAAQK,WAAW,MAAMC,WAAajN,OAAO+M,kBAAoB,EAChFjZ,KAAKsP,SAAU,EACftP,KAAKqR,QAAU,EACfrR,KAAK4T,SAAS5J,UAAU,EAE1B8O,GACF,CACF","x_google_ignoreList":[8,17,23]}