{"version":3,"file":"index.mjs","sources":["../../../../../packages/composables/use-handler/index.ts"],"sourcesContent":["import { VcViewerProvider, AnyFunction } from '@vue-cesium/utils/types'\nimport { ref } from 'vue'\nimport { TouchHold } from '@vue-cesium/directives'\nimport defer from '@vue-cesium/utils/defer'\n\ninterface HandlerActions {\n  handleMouseClick?: AnyFunction<void>\n  handleMouseDown?: AnyFunction<void>\n  handleMouseUp?: AnyFunction<void>\n  handleMouseMove?: AnyFunction<void>\n  handleDoubleClick?: AnyFunction<void>\n  handleMouseWheel?: AnyFunction<void>\n  handlePinch?: AnyFunction<void>\n}\n\nexport default function (\n  $services: VcViewerProvider,\n  {\n    handleMouseClick = undefined,\n    handleMouseDown = undefined,\n    handleMouseUp = undefined,\n    handleMouseMove = undefined,\n    handleDoubleClick = undefined,\n    handleMouseWheel = undefined,\n    handlePinch = undefined\n  }: HandlerActions\n) {\n  // state\n  const handler = ref<Cesium.ScreenSpaceEventHandler | undefined>(undefined)\n  const isActive = ref(false)\n\n  //methods\n  const activate = () => {\n    if (isActive.value) {\n      return\n    }\n\n    const { ScreenSpaceEventType, KeyboardEventModifier, ScreenSpaceEventHandler } = Cesium\n    if (!handler.value) {\n      const { viewer } = $services\n      handler.value = new ScreenSpaceEventHandler(viewer.canvas)\n      TouchHold.beforeMount(viewer.canvas, {\n        arg: '2000',\n        value: onTouchHold,\n        touchStart: onTouchStart,\n        touchEnd: onTouchEnd,\n        modifiers: {}\n      })\n    }\n\n    const sseh = handler.value\n    sseh.setInputAction(onLeftClick, ScreenSpaceEventType.LEFT_CLICK)\n    sseh.setInputAction(onLeftClickShift, ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onLeftClickCtrl, ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onLeftDown, ScreenSpaceEventType.LEFT_DOWN)\n    sseh.setInputAction(onLeftDownShift, ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onLeftDownCtrl, ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onLeftUp, ScreenSpaceEventType.LEFT_UP)\n    sseh.setInputAction(onLeftUpShift, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onLeftUpCtrl, ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onRightClick, ScreenSpaceEventType.RIGHT_CLICK)\n    sseh.setInputAction(onRightClickShift, ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onRightClickCtrl, ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onRightDown, ScreenSpaceEventType.RIGHT_DOWN)\n    sseh.setInputAction(onRightDownShift, ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onRightDownCtrl, ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onRightUp, ScreenSpaceEventType.RIGHT_UP)\n    sseh.setInputAction(onRightUpShift, ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onRightUpCtrl, ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onMiddleClick, ScreenSpaceEventType.MIDDLE_CLICK)\n    sseh.setInputAction(onMiddleClickShift, ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onMiddleClickCtrl, ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onMiddleDown, ScreenSpaceEventType.MIDDLE_DOWN)\n    sseh.setInputAction(onMiddleDownShift, ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onMiddleDownCtrl, ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onMiddleUp, ScreenSpaceEventType.MIDDLE_UP)\n    sseh.setInputAction(onMiddleUpShift, ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onMiddleUpCtrl, ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onDoubleClick, ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\n    sseh.setInputAction(onDoubleClickShift, ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onDoubleClickCtrl, ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onMouseMove, ScreenSpaceEventType.MOUSE_MOVE)\n    sseh.setInputAction(onMouseMoveShift, ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onMouseMoveCtrl, ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onMouseWheel, ScreenSpaceEventType.WHEEL)\n    sseh.setInputAction(onMouseWheelShift, ScreenSpaceEventType.WHEEL, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onMouseWheelCtrl, ScreenSpaceEventType.WHEEL, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onPinchStart, ScreenSpaceEventType.PINCH_START)\n    sseh.setInputAction(onPinchStartShift, ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onPinchStartCtrl, ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onPinchEnd, ScreenSpaceEventType.PINCH_END)\n    sseh.setInputAction(onPinchEndShift, ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onPinchEndCtrl, ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.CTRL)\n\n    sseh.setInputAction(onPinchMove, ScreenSpaceEventType.PINCH_MOVE)\n    sseh.setInputAction(onPinchMoveShift, ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.SHIFT)\n    sseh.setInputAction(onPinchMoveCtrl, ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.CTRL)\n    isActive.value = true\n  }\n\n  const deactivate = () => {\n    if (!isActive.value) {\n      return\n    }\n    const { ScreenSpaceEventType, KeyboardEventModifier } = Cesium\n\n    const sseh = handler.value\n    if (!sseh) {\n      return\n    }\n\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_UP, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.RIGHT_UP, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_DOWN, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.MIDDLE_UP, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.LEFT_DOUBLE_CLICK, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE)\n    sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.MOUSE_MOVE, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.WHEEL)\n    sseh.removeInputAction(ScreenSpaceEventType.WHEEL, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.WHEEL, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_START)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_START, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_END)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_END, KeyboardEventModifier.CTRL)\n\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.SHIFT)\n    sseh.removeInputAction(ScreenSpaceEventType.PINCH_MOVE, KeyboardEventModifier.CTRL)\n\n    const { viewer } = $services\n    TouchHold.beforeUnmount(viewer.canvas)\n    isActive.value = false\n  }\n\n  const destroy = () => {\n    handler.value?.destroy()\n    handler.value = undefined\n  }\n\n  const onLeftClick = movement => {\n    handleMouseClick?.(movement, {\n      button: 0\n    })\n  }\n\n  const onLeftClickShift = movement => {\n    handleMouseClick?.(movement, {\n      button: 0,\n      shift: true\n    })\n  }\n\n  const onLeftClickCtrl = movement => {\n    handleMouseClick?.(movement, {\n      button: 0,\n      ctrl: true\n    })\n  }\n\n  const onMiddleClick = movement => {\n    handleMouseClick?.(movement, {\n      button: 1\n    })\n  }\n\n  const onMiddleClickShift = movement => {\n    handleMouseClick?.(movement, {\n      button: 1,\n      shift: true\n    })\n  }\n\n  const onMiddleClickCtrl = movement => {\n    handleMouseClick?.(movement, {\n      button: 1,\n      ctrl: true\n    })\n  }\n\n  let touchPromise = undefined\n  const onRightClick = movement => {\n    if (touchPromise) {\n      touchPromise?.promise?.then(flag => {\n        flag &&\n          handleMouseClick?.(movement, {\n            button: 2\n          })\n      })\n    } else {\n      handleMouseClick?.(movement, {\n        button: 2\n      })\n    }\n  }\n\n  const onRightClickShift = movement => {\n    handleMouseClick?.(movement, {\n      button: 2,\n      shift: true\n    })\n  }\n\n  const onRightClickCtrl = movement => {\n    handleMouseClick?.(movement, {\n      button: 2,\n      ctrl: true\n    })\n  }\n\n  const onLeftDown = movement => {\n    handleMouseDown?.(movement, {\n      button: 0\n    })\n  }\n\n  const onLeftDownShift = movement => {\n    handleMouseDown?.(movement, {\n      button: 0,\n      shift: true\n    })\n  }\n\n  const onLeftDownCtrl = movement => {\n    handleMouseDown?.(movement, {\n      button: 0,\n      ctrl: true\n    })\n  }\n\n  const onMiddleDown = movement => {\n    handleMouseDown?.(movement, {\n      button: 1\n    })\n  }\n\n  const onMiddleDownShift = movement => {\n    handleMouseDown?.(movement, {\n      button: 1,\n      shift: true\n    })\n  }\n\n  const onMiddleDownCtrl = movement => {\n    handleMouseDown?.(movement, {\n      button: 1,\n      ctrl: true\n    })\n  }\n\n  const onRightDown = movement => {\n    handleMouseDown?.(movement, {\n      button: 2\n    })\n  }\n\n  const onRightDownShift = movement => {\n    handleMouseDown?.(movement, {\n      button: 2,\n      shift: true\n    })\n  }\n\n  const onRightDownCtrl = movement => {\n    handleMouseDown?.(movement, {\n      button: 2,\n      ctrl: true\n    })\n  }\n\n  const onLeftUp = movement => {\n    handleMouseUp?.(movement, {\n      button: 0\n    })\n  }\n\n  const onLeftUpShift = movement => {\n    handleMouseUp?.(movement, {\n      button: 0,\n      shift: true\n    })\n  }\n\n  const onLeftUpCtrl = movement => {\n    handleMouseUp?.(movement, {\n      button: 0,\n      ctrl: true\n    })\n  }\n\n  const onMiddleUp = movement => {\n    handleMouseUp?.(movement, {\n      button: 1,\n      ctrl: true\n    })\n  }\n\n  const onMiddleUpShift = movement => {\n    handleMouseUp?.(movement, {\n      button: 1,\n      shift: true\n    })\n  }\n\n  const onMiddleUpCtrl = movement => {\n    handleMouseUp?.(movement, {\n      button: 1,\n      ctrl: true\n    })\n  }\n\n  const onRightUp = movement => {\n    handleMouseUp?.(movement, {\n      button: 2\n    })\n  }\n\n  const onRightUpShift = movement => {\n    handleMouseUp?.(movement, {\n      button: 2,\n      shift: true\n    })\n  }\n\n  const onRightUpCtrl = movement => {\n    handleMouseUp?.(movement, {\n      button: 2,\n      ctrl: true\n    })\n  }\n\n  const onDoubleClick = movement => {\n    handleDoubleClick?.(movement, {\n      button: 0\n    })\n  }\n\n  const onDoubleClickShift = movement => {\n    handleDoubleClick?.(movement, {\n      button: 0,\n      shift: true\n    })\n  }\n\n  const onDoubleClickCtrl = movement => {\n    handleDoubleClick?.(movement, {\n      button: 0,\n      ctrl: true\n    })\n  }\n\n  const onMouseMove = movement => {\n    handleMouseMove?.(movement)\n  }\n\n  const onMouseMoveShift = movement => {\n    handleMouseMove?.(movement, {\n      shift: true\n    })\n  }\n\n  const onMouseMoveCtrl = movement => {\n    handleMouseMove?.(movement, {\n      ctrl: true\n    })\n  }\n\n  const onMouseWheel = e => {\n    handleMouseWheel?.(e)\n  }\n\n  const onMouseWheelShift = e => {\n    handleMouseWheel?.(e, {\n      shift: true\n    })\n  }\n\n  const onMouseWheelCtrl = e => {\n    handleMouseWheel?.(e, {\n      ctrl: true\n    })\n  }\n\n  const onPinchStart = e => {\n    handlePinch?.(e, {\n      start: true\n    })\n  }\n\n  const onPinchStartShift = e => {\n    handlePinch?.(e, {\n      start: true,\n      shift: true\n    })\n  }\n\n  const onPinchStartCtrl = e => {\n    handlePinch?.(e, {\n      start: true,\n      ctrl: true\n    })\n  }\n\n  const onPinchEnd = e => {\n    handlePinch?.(e, {\n      end: true\n    })\n  }\n\n  const onPinchEndShift = e => {\n    handlePinch?.(e, {\n      end: true,\n      shift: true\n    })\n  }\n\n  const onPinchEndCtrl = e => {\n    handlePinch?.(e, {\n      end: true,\n      ctrl: true\n    })\n  }\n\n  const onPinchMove = e => {\n    handlePinch?.(e, {\n      move: true\n    })\n  }\n\n  const onPinchMoveShift = e => {\n    handlePinch?.(e, {\n      move: true,\n      shift: true\n    })\n  }\n\n  const onPinchMoveCtrl = e => {\n    handlePinch?.(e, {\n      move: true,\n      ctrl: true\n    })\n  }\n\n  const onTouchHold = e => {\n    if (e.touch) {\n      const movement = {\n        position: {\n          x: e.position.left,\n          y: e.position.top\n        }\n      }\n      handleDoubleClick?.(movement, {\n        button: 0\n      })\n    }\n\n    touchPromise.resolve(false)\n  }\n\n  const onTouchEnd = (e: TouchEvent) => {\n    touchPromise.resolve(true)\n  }\n\n  const onTouchStart = (e: TouchEvent) => {\n    touchPromise = defer()\n  }\n\n  return {\n    activate,\n    deactivate,\n    destroy,\n    isActive\n  }\n}\n"],"names":[],"mappings":";;;;;;AAeA,mBAAA,CACE,SACA,EAAA;AAAA,EACE,gBAAmB,GAAA,KAAA,CAAA;AAAA,EACnB,eAAkB,GAAA,KAAA,CAAA;AAAA,EAClB,aAAgB,GAAA,KAAA,CAAA;AAAA,EAChB,eAAkB,GAAA,KAAA,CAAA;AAAA,EAClB,iBAAoB,GAAA,KAAA,CAAA;AAAA,EACpB,gBAAmB,GAAA,KAAA,CAAA;AAAA,EACnB,WAAc,GAAA,KAAA,CAAA;AAChB,CACA,EAAA;AAEA,EAAM,MAAA,OAAA,GAAU,IAAgD,KAAS,CAAA,CAAA,CAAA;AACzE,EAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAG1B,EAAA,MAAM,WAAW,MAAM;AACrB,IAAA,IAAI,SAAS,KAAO,EAAA;AAClB,MAAA,OAAA;AAAA,KACF;AAEA,IAAA,MAAM,EAAE,oBAAA,EAAsB,qBAAuB,EAAA,uBAAA,EAA4B,GAAA,MAAA,CAAA;AACjF,IAAI,IAAA,CAAC,QAAQ,KAAO,EAAA;AAClB,MAAM,MAAA,EAAE,QAAW,GAAA,SAAA,CAAA;AACnB,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAI,uBAAwB,CAAA,MAAA,CAAO,MAAM,CAAA,CAAA;AACzD,MAAU,SAAA,CAAA,WAAA,CAAY,OAAO,MAAQ,EAAA;AAAA,QACnC,GAAK,EAAA,MAAA;AAAA,QACL,KAAO,EAAA,WAAA;AAAA,QACP,UAAY,EAAA,YAAA;AAAA,QACZ,QAAU,EAAA,UAAA;AAAA,QACV,WAAW,EAAC;AAAA,OACb,CAAA,CAAA;AAAA,KACH;AAEA,IAAA,MAAM,OAAO,OAAQ,CAAA,KAAA,CAAA;AACrB,IAAK,IAAA,CAAA,cAAA,CAAe,WAAa,EAAA,oBAAA,CAAqB,UAAU,CAAA,CAAA;AAChE,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,KAAK,CAAA,CAAA;AAClG,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,IAAI,CAAA,CAAA;AAEhG,IAAK,IAAA,CAAA,cAAA,CAAe,UAAY,EAAA,oBAAA,CAAqB,SAAS,CAAA,CAAA;AAC9D,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,KAAK,CAAA,CAAA;AAChG,IAAA,IAAA,CAAK,cAAe,CAAA,cAAA,EAAgB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,IAAI,CAAA,CAAA;AAE9F,IAAK,IAAA,CAAA,cAAA,CAAe,QAAU,EAAA,oBAAA,CAAqB,OAAO,CAAA,CAAA;AAC1D,IAAA,IAAA,CAAK,cAAe,CAAA,aAAA,EAAe,oBAAqB,CAAA,OAAA,EAAS,sBAAsB,KAAK,CAAA,CAAA;AAC5F,IAAA,IAAA,CAAK,cAAe,CAAA,YAAA,EAAc,oBAAqB,CAAA,OAAA,EAAS,sBAAsB,IAAI,CAAA,CAAA;AAE1F,IAAK,IAAA,CAAA,cAAA,CAAe,YAAc,EAAA,oBAAA,CAAqB,WAAW,CAAA,CAAA;AAClE,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,KAAK,CAAA,CAAA;AACpG,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,IAAI,CAAA,CAAA;AAElG,IAAK,IAAA,CAAA,cAAA,CAAe,WAAa,EAAA,oBAAA,CAAqB,UAAU,CAAA,CAAA;AAChE,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,KAAK,CAAA,CAAA;AAClG,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,IAAI,CAAA,CAAA;AAEhG,IAAK,IAAA,CAAA,cAAA,CAAe,SAAW,EAAA,oBAAA,CAAqB,QAAQ,CAAA,CAAA;AAC5D,IAAA,IAAA,CAAK,cAAe,CAAA,cAAA,EAAgB,oBAAqB,CAAA,QAAA,EAAU,sBAAsB,KAAK,CAAA,CAAA;AAC9F,IAAA,IAAA,CAAK,cAAe,CAAA,aAAA,EAAe,oBAAqB,CAAA,QAAA,EAAU,sBAAsB,IAAI,CAAA,CAAA;AAE5F,IAAK,IAAA,CAAA,cAAA,CAAe,aAAe,EAAA,oBAAA,CAAqB,YAAY,CAAA,CAAA;AACpE,IAAA,IAAA,CAAK,cAAe,CAAA,kBAAA,EAAoB,oBAAqB,CAAA,YAAA,EAAc,sBAAsB,KAAK,CAAA,CAAA;AACtG,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,YAAA,EAAc,sBAAsB,IAAI,CAAA,CAAA;AAEpG,IAAK,IAAA,CAAA,cAAA,CAAe,YAAc,EAAA,oBAAA,CAAqB,WAAW,CAAA,CAAA;AAClE,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,KAAK,CAAA,CAAA;AACpG,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,IAAI,CAAA,CAAA;AAElG,IAAK,IAAA,CAAA,cAAA,CAAe,UAAY,EAAA,oBAAA,CAAqB,SAAS,CAAA,CAAA;AAC9D,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,KAAK,CAAA,CAAA;AAChG,IAAA,IAAA,CAAK,cAAe,CAAA,cAAA,EAAgB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,IAAI,CAAA,CAAA;AAE9F,IAAK,IAAA,CAAA,cAAA,CAAe,aAAe,EAAA,oBAAA,CAAqB,iBAAiB,CAAA,CAAA;AACzE,IAAA,IAAA,CAAK,cAAe,CAAA,kBAAA,EAAoB,oBAAqB,CAAA,iBAAA,EAAmB,sBAAsB,KAAK,CAAA,CAAA;AAC3G,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,iBAAA,EAAmB,sBAAsB,IAAI,CAAA,CAAA;AAEzG,IAAK,IAAA,CAAA,cAAA,CAAe,WAAa,EAAA,oBAAA,CAAqB,UAAU,CAAA,CAAA;AAChE,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,KAAK,CAAA,CAAA;AAClG,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,IAAI,CAAA,CAAA;AAEhG,IAAK,IAAA,CAAA,cAAA,CAAe,YAAc,EAAA,oBAAA,CAAqB,KAAK,CAAA,CAAA;AAC5D,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,KAAA,EAAO,sBAAsB,KAAK,CAAA,CAAA;AAC9F,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,KAAA,EAAO,sBAAsB,IAAI,CAAA,CAAA;AAE5F,IAAK,IAAA,CAAA,cAAA,CAAe,YAAc,EAAA,oBAAA,CAAqB,WAAW,CAAA,CAAA;AAClE,IAAA,IAAA,CAAK,cAAe,CAAA,iBAAA,EAAmB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,KAAK,CAAA,CAAA;AACpG,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,WAAA,EAAa,sBAAsB,IAAI,CAAA,CAAA;AAElG,IAAK,IAAA,CAAA,cAAA,CAAe,UAAY,EAAA,oBAAA,CAAqB,SAAS,CAAA,CAAA;AAC9D,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,KAAK,CAAA,CAAA;AAChG,IAAA,IAAA,CAAK,cAAe,CAAA,cAAA,EAAgB,oBAAqB,CAAA,SAAA,EAAW,sBAAsB,IAAI,CAAA,CAAA;AAE9F,IAAK,IAAA,CAAA,cAAA,CAAe,WAAa,EAAA,oBAAA,CAAqB,UAAU,CAAA,CAAA;AAChE,IAAA,IAAA,CAAK,cAAe,CAAA,gBAAA,EAAkB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,KAAK,CAAA,CAAA;AAClG,IAAA,IAAA,CAAK,cAAe,CAAA,eAAA,EAAiB,oBAAqB,CAAA,UAAA,EAAY,sBAAsB,IAAI,CAAA,CAAA;AAChG,IAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAI,IAAA,CAAC,SAAS,KAAO,EAAA;AACnB,MAAA,OAAA;AAAA,KACF;AACA,IAAM,MAAA,EAAE,oBAAsB,EAAA,qBAAA,EAA0B,GAAA,MAAA,CAAA;AAExD,IAAA,MAAM,OAAO,OAAQ,CAAA,KAAA,CAAA;AACrB,IAAA,IAAI,CAAC,IAAM,EAAA;AACT,MAAA,OAAA;AAAA,KACF;AAEA,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,UAAU,CAAA,CAAA;AACtD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACnF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAElF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,SAAS,CAAA,CAAA;AACrD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAClF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEjF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,OAAO,CAAA,CAAA;AACnD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,OAAS,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAChF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,OAAS,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAE/E,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,WAAW,CAAA,CAAA;AACvD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACpF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEnF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,UAAU,CAAA,CAAA;AACtD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACnF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAElF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,QAAQ,CAAA,CAAA;AACpD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,QAAU,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACjF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,QAAU,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEhF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,YAAY,CAAA,CAAA;AACxD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,YAAc,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACrF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,YAAc,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEpF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,WAAW,CAAA,CAAA;AACvD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACpF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEnF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,SAAS,CAAA,CAAA;AACrD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAClF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEjF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,iBAAiB,CAAA,CAAA;AAC7D,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,iBAAmB,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAC1F,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,iBAAmB,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEzF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,UAAU,CAAA,CAAA;AACtD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACnF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAElF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,KAAK,CAAA,CAAA;AACjD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,KAAO,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAC9E,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,KAAO,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAE7E,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,WAAW,CAAA,CAAA;AACvD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACpF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,WAAa,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEnF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,SAAS,CAAA,CAAA;AACrD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AAClF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,SAAW,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAEjF,IAAK,IAAA,CAAA,iBAAA,CAAkB,qBAAqB,UAAU,CAAA,CAAA;AACtD,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,KAAK,CAAA,CAAA;AACnF,IAAA,IAAA,CAAK,iBAAkB,CAAA,oBAAA,CAAqB,UAAY,EAAA,qBAAA,CAAsB,IAAI,CAAA,CAAA;AAElF,IAAM,MAAA,EAAE,QAAW,GAAA,SAAA,CAAA;AACnB,IAAU,SAAA,CAAA,aAAA,CAAc,OAAO,MAAM,CAAA,CAAA;AACrC,IAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAAA,GACnB,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AA7LxB,IAAA,IAAA,EAAA,CAAA;AA8LI,IAAA,CAAA,EAAA,GAAA,OAAA,CAAQ,UAAR,IAAe,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAA,EAAA,CAAA;AACf,IAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA,CAAA;AAAA,GAClB,CAAA;AAEA,EAAA,MAAM,cAAc,CAAY,QAAA,KAAA;AAC9B,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAY,QAAA,KAAA;AACnC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAY,QAAA,KAAA;AAClC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,CAAY,QAAA,KAAA;AAChC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,qBAAqB,CAAY,QAAA,KAAA;AACrC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAY,QAAA,KAAA;AACpC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,YAAe,GAAA,KAAA,CAAA,CAAA;AACnB,EAAA,MAAM,eAAe,CAAY,QAAA,KAAA;AA3OnC,IAAA,IAAA,EAAA,CAAA;AA4OI,IAAA,IAAI,YAAc,EAAA;AAChB,MAAc,CAAA,EAAA,GAAA,YAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,YAAA,CAAA,OAAA,KAAd,IAAuB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAK,CAAQ,IAAA,KAAA;AAClC,QAAA,IAAA,KACE,qDAAmB,QAAU,EAAA;AAAA,UAC3B,MAAQ,EAAA,CAAA;AAAA,SACV,CAAA,CAAA,CAAA;AAAA,OACJ,CAAA,CAAA;AAAA,KACK,MAAA;AACL,MAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,QAC3B,MAAQ,EAAA,CAAA;AAAA,OACV,CAAA,CAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAY,QAAA,KAAA;AACpC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAY,QAAA,KAAA;AACnC,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,QAAU,EAAA;AAAA,MAC3B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,CAAY,QAAA,KAAA;AAC7B,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAY,QAAA,KAAA;AAClC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAiB,CAAY,QAAA,KAAA;AACjC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,CAAY,QAAA,KAAA;AAC/B,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAY,QAAA,KAAA;AACpC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAY,QAAA,KAAA;AACnC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAc,CAAY,QAAA,KAAA;AAC9B,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAY,QAAA,KAAA;AACnC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAY,QAAA,KAAA;AAClC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,WAAW,CAAY,QAAA,KAAA;AAC3B,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,CAAY,QAAA,KAAA;AAChC,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,CAAY,QAAA,KAAA;AAC/B,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,CAAY,QAAA,KAAA;AAC7B,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAY,QAAA,KAAA;AAClC,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAiB,CAAY,QAAA,KAAA;AACjC,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,YAAY,CAAY,QAAA,KAAA;AAC5B,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAiB,CAAY,QAAA,KAAA;AACjC,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,CAAY,QAAA,KAAA;AAChC,IAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgB,QAAU,EAAA;AAAA,MACxB,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,gBAAgB,CAAY,QAAA,KAAA;AAChC,IAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,QAAU,EAAA;AAAA,MAC5B,MAAQ,EAAA,CAAA;AAAA,KACV,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,qBAAqB,CAAY,QAAA,KAAA;AACrC,IAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,QAAU,EAAA;AAAA,MAC5B,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAY,QAAA,KAAA;AACpC,IAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,QAAU,EAAA;AAAA,MAC5B,MAAQ,EAAA,CAAA;AAAA,MACR,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAc,CAAY,QAAA,KAAA;AAC9B,IAAkB,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAA,QAAA,CAAA,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAY,QAAA,KAAA;AACnC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAY,QAAA,KAAA;AAClC,IAAA,eAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,eAAA,CAAkB,QAAU,EAAA;AAAA,MAC1B,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,CAAK,CAAA,KAAA;AACxB,IAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,CAAA,CAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAK,CAAA,KAAA;AAC7B,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,CAAG,EAAA;AAAA,MACpB,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAK,CAAA,KAAA;AAC5B,IAAA,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAmB,CAAG,EAAA;AAAA,MACpB,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,eAAe,CAAK,CAAA,KAAA;AACxB,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,oBAAoB,CAAK,CAAA,KAAA;AAC7B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,KAAO,EAAA,IAAA;AAAA,MACP,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAK,CAAA,KAAA;AAC5B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,KAAO,EAAA,IAAA;AAAA,MACP,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,CAAK,CAAA,KAAA;AACtB,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,GAAK,EAAA,IAAA;AAAA,KACP,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAK,CAAA,KAAA;AAC3B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,GAAK,EAAA,IAAA;AAAA,MACL,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,iBAAiB,CAAK,CAAA,KAAA;AAC1B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,GAAK,EAAA,IAAA;AAAA,MACL,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAc,CAAK,CAAA,KAAA;AACvB,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,mBAAmB,CAAK,CAAA,KAAA;AAC5B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,IAAM,EAAA,IAAA;AAAA,MACN,KAAO,EAAA,IAAA;AAAA,KACT,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,kBAAkB,CAAK,CAAA,KAAA;AAC3B,IAAA,WAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,WAAA,CAAc,CAAG,EAAA;AAAA,MACf,IAAM,EAAA,IAAA;AAAA,MACN,IAAM,EAAA,IAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,cAAc,CAAK,CAAA,KAAA;AACvB,IAAA,IAAI,EAAE,KAAO,EAAA;AACX,MAAA,MAAM,QAAW,GAAA;AAAA,QACf,QAAU,EAAA;AAAA,UACR,CAAA,EAAG,EAAE,QAAS,CAAA,IAAA;AAAA,UACd,CAAA,EAAG,EAAE,QAAS,CAAA,GAAA;AAAA,SAChB;AAAA,OACF,CAAA;AACA,MAAA,iBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,iBAAA,CAAoB,QAAU,EAAA;AAAA,QAC5B,MAAQ,EAAA,CAAA;AAAA,OACV,CAAA,CAAA;AAAA,KACF;AAEA,IAAA,YAAA,CAAa,QAAQ,KAAK,CAAA,CAAA;AAAA,GAC5B,CAAA;AAEA,EAAM,MAAA,UAAA,GAAa,CAAC,CAAkB,KAAA;AACpC,IAAA,YAAA,CAAa,QAAQ,IAAI,CAAA,CAAA;AAAA,GAC3B,CAAA;AAEA,EAAM,MAAA,YAAA,GAAe,CAAC,CAAkB,KAAA;AACtC,IAAA,YAAA,GAAe,KAAM,EAAA,CAAA;AAAA,GACvB,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,GACF,CAAA;AACF;;;;"}