/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/contract/Contract.bs.js":
/*!***********************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/contract/Contract.bs.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Js_exn = __webpack_require__(/*! rescript/lib/js/js_exn.js */ \"../../../../../node_modules/rescript/lib/js/js_exn.js\");\nvar Caml_obj = __webpack_require__(/*! rescript/lib/js/caml_obj.js */ \"../../../../../node_modules/rescript/lib/js/caml_obj.js\");\nvar Belt_List = __webpack_require__(/*! rescript/lib/js/belt_List.js */ \"../../../../../node_modules/rescript/lib/js/belt_List.js\");\nvar Js_option = __webpack_require__(/*! rescript/lib/js/js_option.js */ \"../../../../../node_modules/rescript/lib/js/js_option.js\");\n\nfunction _assert(result, message) {\n  return result;\n}\n\nfunction test(message, func) {\n  if (Curry._1(func, undefined)) {\n    return ;\n  } else {\n    return Js_exn.raiseError(message);\n  }\n}\n\nfunction requireCheck(f, isTest) {\n  if (isTest) {\n    return Curry._1(f, undefined);\n  }\n  \n}\n\nfunction ensureCheck(returnVal, f, isTest) {\n  if (isTest) {\n    Curry._1(f, returnVal);\n    return returnVal;\n  } else {\n    return returnVal;\n  }\n}\n\nfunction assertPass(param) {\n  return true;\n}\n\nfunction assertTrue(source) {\n  return source === true;\n}\n\nfunction assertFalse(source) {\n  return source === false;\n}\n\nfunction assertJsTrue(source) {\n  return source === true;\n}\n\nfunction assertJsFalse(source) {\n  return source === false;\n}\n\nfunction assertIsBool(source) {\n  if (source === true) {\n    return true;\n  } else {\n    return source === false;\n  }\n}\n\nvar _isNullableExist = (function(source) {\n    return source !== undefined && source !== null;\n});\n\nvar assertNullableExist = _isNullableExist;\n\nfunction _isNullableListExist(sourceList) {\n  return Js_option.isNone(Belt_List.getBy(sourceList, (function (source) {\n                    return source == null;\n                  })));\n}\n\nvar assertNullableListExist = _isNullableListExist;\n\nvar assertExist = Js_option.isSome;\n\nvar assertNotExist = Js_option.isNone;\n\nfunction _getEqualMessage(source, target) {\n  return \"\\\"expect to be \" + target + \", but actual is \" + source + \"\\\"\";\n}\n\nfunction assertEqual(kind, source, target) {\n  _getEqualMessage(source, target);\n  return Caml_obj.equal(source, target);\n}\n\nfunction _getNotEqualMessage(source, target) {\n  return \"\\\"expect not to be \" + target + \", but actual is \" + source + \"\\\"\";\n}\n\nfunction assertNotEqual(kind, source, target) {\n  _getNotEqualMessage(source, target);\n  return Caml_obj.notequal(source, target);\n}\n\nfunction assertGt(kind, source, target) {\n  return Caml_obj.greaterthan(source, target);\n}\n\nfunction assertGte(kind, source, target) {\n  return Caml_obj.greaterequal(source, target);\n}\n\nfunction assertLt(kind, source, target) {\n  return Caml_obj.lessthan(source, target);\n}\n\nfunction assertLte(kind, source, target) {\n  return Caml_obj.lessequal(source, target);\n}\n\nfunction $eq(a, b) {\n  return assertEqual(/* Int */0, a, b);\n}\n\nfunction $eq$eq$dot(a, b) {\n  return assertEqual(/* Float */1, a, b);\n}\n\nfunction $eq$eq$caret(a, b) {\n  return assertEqual(/* String */2, a, b);\n}\n\nfunction $less$great$eq(a, b) {\n  return assertNotEqual(/* Int */0, a, b);\n}\n\nfunction $less$great$eq$dot(a, b) {\n  return assertNotEqual(/* Float */1, a, b);\n}\n\nvar $great = Caml_obj.greaterthan;\n\nvar $great$dot = Caml_obj.greaterthan;\n\nvar $great$eq = Caml_obj.greaterequal;\n\nvar $great$eq$dot = Caml_obj.greaterequal;\n\nvar $less = Caml_obj.lessthan;\n\nvar $less$dot = Caml_obj.lessthan;\n\nvar $less$eq = Caml_obj.lessequal;\n\nvar $less$eq$dot = Caml_obj.lessequal;\n\nvar Operators = {\n  $eq: $eq,\n  $eq$eq$dot: $eq$eq$dot,\n  $eq$eq$caret: $eq$eq$caret,\n  $less$great$eq: $less$great$eq,\n  $less$great$eq$dot: $less$great$eq$dot,\n  $great: $great,\n  $great$dot: $great$dot,\n  $great$eq: $great$eq,\n  $great$eq$dot: $great$eq$dot,\n  $less: $less,\n  $less$dot: $less$dot,\n  $less$eq: $less$eq,\n  $less$eq$dot: $less$eq$dot\n};\n\nexports._assert = _assert;\nexports.test = test;\nexports.requireCheck = requireCheck;\nexports.ensureCheck = ensureCheck;\nexports.assertPass = assertPass;\nexports.assertTrue = assertTrue;\nexports.assertFalse = assertFalse;\nexports.assertJsTrue = assertJsTrue;\nexports.assertJsFalse = assertJsFalse;\nexports.assertIsBool = assertIsBool;\nexports._isNullableExist = _isNullableExist;\nexports.assertNullableExist = assertNullableExist;\nexports._isNullableListExist = _isNullableListExist;\nexports.assertNullableListExist = assertNullableListExist;\nexports.assertExist = assertExist;\nexports.assertNotExist = assertNotExist;\nexports._getEqualMessage = _getEqualMessage;\nexports.assertEqual = assertEqual;\nexports._getNotEqualMessage = _getNotEqualMessage;\nexports.assertNotEqual = assertNotEqual;\nexports.assertGt = assertGt;\nexports.assertGte = assertGte;\nexports.assertLt = assertLt;\nexports.assertLte = assertLte;\nexports.Operators = Operators;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/contract/Contract.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/log/Log.bs.js":
/*!*************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/log/Log.bs.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Belt_List = __webpack_require__(/*! rescript/lib/js/belt_List.js */ \"../../../../../node_modules/rescript/lib/js/belt_List.js\");\n\nfunction printForDebug(value) {\n  console.log(JSON.stringify(value));\n  return value;\n}\n\nfunction printStringForDebug(value) {\n  console.log(value);\n  return value;\n}\n\nfunction printListForDebug(list) {\n  console.log(Belt_List.toArray(list));\n  return list;\n}\n\nfunction error(message) {\n  console.error(message);\n}\n\nfunction logForDebug(value) {\n  console.log(value);\n  console.trace();\n}\n\nfunction log(value) {\n  console.log(JSON.stringify(value));\n}\n\nfunction debugWithFunc(func, isTest) {\n  if (isTest) {\n    return Curry._1(func, undefined);\n  }\n  \n}\n\nfunction _debug(msg) {\n  console.debug(msg);\n}\n\nfunction debug(buildMessageFunc, isTest) {\n  if (!isTest) {\n    return ;\n  }\n  var msg = Curry._1(buildMessageFunc, undefined);\n  console.debug(msg);\n  console.trace();\n}\n\nfunction getJsonStr(json) {\n  return JSON.stringify(json);\n}\n\nfunction buildDebugMessage(description, params, param) {\n  return \"\\n  Debug:\\n\\n  description\\n  \" + description + \"\\n\\n  params\\n  \" + params + \"\\n\\n  \";\n}\n\nfunction buildDebugJsonMessage(description, $$var, param) {\n  var varStr = JSON.stringify($$var);\n  return \"\\n  DebugJson:\\n\\n  description\\n  \" + description + \"\\n\\n  variable value\\n  \" + varStr + \"\\n  \";\n}\n\nfunction buildFatalMessage(title, description, reason, solution, params) {\n  return \"\\n  Fatal:\\n\\n  title\\n  \" + title + \"\\n\\n  description\\n  \" + description + \"\\n\\n  reason\\n  \" + reason + \"\\n\\n  solution\\n  \" + solution + \"\\n\\n  params\\n  \" + params + \"\\n\\n   \";\n}\n\nfunction buildErrorMessage(title, description, reason, solution, params) {\n  return \"\\n  Error:\\n\\n  title\\n  \" + title + \"\\n\\n  description\\n  \" + description + \"\\n\\n  reason\\n  \" + reason + \"\\n\\n  solution\\n  \" + solution + \"\\n\\n  params\\n  \" + params + \"\\n\\n   \";\n}\n\nfunction buildAssertMessage(expect, actual) {\n  return \"expect \" + expect + \", but actual \" + actual;\n}\n\nexports.printForDebug = printForDebug;\nexports.printStringForDebug = printStringForDebug;\nexports.printListForDebug = printListForDebug;\nexports.error = error;\nexports.logForDebug = logForDebug;\nexports.log = log;\nexports.debugWithFunc = debugWithFunc;\nexports._debug = _debug;\nexports.debug = debug;\nexports.getJsonStr = getJsonStr;\nexports.buildDebugMessage = buildDebugMessage;\nexports.buildDebugJsonMessage = buildDebugJsonMessage;\nexports.buildFatalMessage = buildFatalMessage;\nexports.buildErrorMessage = buildErrorMessage;\nexports.buildAssertMessage = buildAssertMessage;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/log/Log.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js":
/*!***********************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Js_array = __webpack_require__(/*! rescript/lib/js/js_array.js */ \"../../../../../node_modules/rescript/lib/js/js_array.js\");\nvar Belt_Array = __webpack_require__(/*! rescript/lib/js/belt_Array.js */ \"../../../../../node_modules/rescript/lib/js/belt_Array.js\");\nvar Caml_array = __webpack_require__(/*! rescript/lib/js/caml_array.js */ \"../../../../../node_modules/rescript/lib/js/caml_array.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Log$Meta3dCommonlib = __webpack_require__(/*! ../log/Log.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/log/Log.bs.js\");\nvar Result$Meta3dCommonlib = __webpack_require__(/*! ./Result.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Result.bs.js\");\nvar Contract$Meta3dCommonlib = __webpack_require__(/*! ../contract/Contract.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/contract/Contract.bs.js\");\nvar OptionSt$Meta3dCommonlib = __webpack_require__(/*! ./OptionSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js\");\nvar PromiseSt$Meta3dCommonlib = __webpack_require__(/*! ./PromiseSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js\");\nvar MutableHashMap$Meta3dCommonlib = __webpack_require__(/*! ./hash_map/MutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/MutableHashMap.bs.js\");\n\nvar _getExn = ((nullableData) => { if (nullableData !== undefined) { return nullableData; } throw new Error(\"Not_found\") });\n\nfunction getExn(arr, index) {\n  return _getExn(arr[index]);\n}\n\nfunction length(prim) {\n  return prim.length;\n}\n\nfunction find(arr, func) {\n  return Js_array.find(func, arr);\n}\n\nfunction includes(arr, value) {\n  return Js_array.includes(value, arr);\n}\n\nfunction includesByFunc(arr, func) {\n  return OptionSt$Meta3dCommonlib.isSome(Js_array.find(func, arr));\n}\n\nfunction sliceFrom(arr, index) {\n  return Js_array.sliceFrom(index, arr);\n}\n\nfunction slice(arr, start, end_) {\n  return Js_array.slice(start, end_, arr);\n}\n\nfunction copy(prim) {\n  return prim.slice();\n}\n\nfunction reduceOneParam(arr, func, param) {\n  return Belt_Array.reduceU(arr, param, func);\n}\n\nfunction reduceOneParami(arr, func, param) {\n  var mutableParam = param;\n  for(var i = 0 ,i_finish = arr.length; i < i_finish; ++i){\n    mutableParam = func(mutableParam, arr[i], i);\n  }\n  return mutableParam;\n}\n\nfunction traverseResultM(arr, func) {\n  if (arr.length === 0) {\n    return Result$Meta3dCommonlib.succeed([]);\n  } else {\n    return Result$Meta3dCommonlib.bind(Curry._1(func, _getExn(arr[0])), (function (h) {\n                  return Result$Meta3dCommonlib.bind(traverseResultM(Js_array.sliceFrom(1, arr), func), (function (t) {\n                                return Result$Meta3dCommonlib.succeed(Js_array.concat(t, [h]));\n                              }));\n                }));\n  }\n}\n\nfunction _id(value) {\n  return value;\n}\n\nfunction sequenceResultM(arr) {\n  return traverseResultM(arr, _id);\n}\n\nfunction traverseReducePromiseM(arr, func, param) {\n  if (arr.length === 0) {\n    return Promise.resolve(param);\n  } else {\n    return PromiseSt$Meta3dCommonlib.bind(func(param, Caml_array.get(arr, 0)), (function (h) {\n                  return traverseReducePromiseM(Js_array.sliceFrom(1, arr), func, h);\n                }));\n  }\n}\n\nfunction traverseReduceResultM(arr, func, param) {\n  if (arr.length === 0) {\n    return Result$Meta3dCommonlib.succeed(param);\n  } else {\n    return Result$Meta3dCommonlib.bind(func(param, Caml_array.get(arr, 0)), (function (h) {\n                  return traverseReduceResultM(Js_array.sliceFrom(1, arr), func, h);\n                }));\n  }\n}\n\nfunction unsafeGetFirst(arr) {\n  return arr[0];\n}\n\nfunction getFirst(arr) {\n  if (arr.length >= 1) {\n    return Caml_option.some(Caml_array.get(arr, 0));\n  }\n  \n}\n\nfunction push(arr, value) {\n  Js_array.push(value, arr);\n  return arr;\n}\n\nfunction forEach(arr, func) {\n  Js_array.forEach(func, arr);\n}\n\nfunction map(arr, func) {\n  return Js_array.map(func, arr);\n}\n\nfunction mapi(arr, func) {\n  return Js_array.mapi(func, arr);\n}\n\nfunction filter(arr, func) {\n  return Js_array.filter(func, arr);\n}\n\nfunction reverse(arr) {\n  return arr.slice().reverse();\n}\n\nfunction deleteBySwap(arr, isDebug, index, lastIndex) {\n  Contract$Meta3dCommonlib.requireCheck((function (param) {\n          var len = arr.length;\n          Contract$Meta3dCommonlib.test(Log$Meta3dCommonlib.buildAssertMessage(\"lastIndex:\" + lastIndex + \" === arr.length:\" + len, \"not\"), (function (param) {\n                  return Contract$Meta3dCommonlib.assertEqual(/* Int */0, arr.length - 1 | 0, lastIndex);\n                }));\n        }), isDebug);\n  arr[index] = arr[lastIndex];\n  arr.pop();\n}\n\nfunction range(a, b) {\n  var result = [];\n  for(var i = a; i <= b; ++i){\n    Js_array.push(i, result);\n  }\n  return result;\n}\n\nfunction removeDuplicateItems(arr) {\n  var resultArr = [];\n  var map = MutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined);\n  for(var i = 0 ,i_finish = arr.length; i < i_finish; ++i){\n    var item = arr[i];\n    var key = item.toString();\n    var match = MutableHashMap$Meta3dCommonlib.get(map, key);\n    if (match !== undefined) {\n      \n    } else {\n      Js_array.push(item, resultArr);\n      MutableHashMap$Meta3dCommonlib.set(map, key, item);\n    }\n  }\n  return resultArr;\n}\n\nfunction removeDuplicateItemsWithBuildKeyFunc(arr, buildKeyFunc) {\n  var resultArr = [];\n  var map = MutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined);\n  for(var i = 0 ,i_finish = arr.length; i < i_finish; ++i){\n    var item = arr[i];\n    var key = buildKeyFunc(item);\n    var match = MutableHashMap$Meta3dCommonlib.get(map, key);\n    if (match !== undefined) {\n      \n    } else {\n      Js_array.push(item, resultArr);\n      MutableHashMap$Meta3dCommonlib.set(map, key, item);\n    }\n  }\n  return resultArr;\n}\n\nfunction chunk(arr, size) {\n  var match = Belt_Array.reduceU(arr, [\n        [],\n        []\n      ], (function (param, value) {\n          var group = param[1];\n          var result = param[0];\n          if (group.length < size) {\n            return [\n                    result,\n                    push(group, value)\n                  ];\n          } else {\n            return [\n                    push(result, group),\n                    [value]\n                  ];\n          }\n        }));\n  var group = match[1];\n  var result = match[0];\n  if (group.length > 0) {\n    return push(result, group);\n  } else {\n    return result;\n  }\n}\n\nfunction sort(arr, func) {\n  return Js_array.sortInPlaceWith(func, arr);\n}\n\nexports._getExn = _getExn;\nexports.getExn = getExn;\nexports.length = length;\nexports.find = find;\nexports.includes = includes;\nexports.includesByFunc = includesByFunc;\nexports.sliceFrom = sliceFrom;\nexports.slice = slice;\nexports.copy = copy;\nexports.reduceOneParam = reduceOneParam;\nexports.reduceOneParami = reduceOneParami;\nexports.traverseResultM = traverseResultM;\nexports._id = _id;\nexports.sequenceResultM = sequenceResultM;\nexports.traverseReducePromiseM = traverseReducePromiseM;\nexports.traverseReduceResultM = traverseReduceResultM;\nexports.unsafeGetFirst = unsafeGetFirst;\nexports.getFirst = getFirst;\nexports.push = push;\nexports.forEach = forEach;\nexports.map = map;\nexports.mapi = mapi;\nexports.filter = filter;\nexports.reverse = reverse;\nexports.deleteBySwap = deleteBySwap;\nexports.range = range;\nexports.removeDuplicateItems = removeDuplicateItems;\nexports.removeDuplicateItemsWithBuildKeyFunc = removeDuplicateItemsWithBuildKeyFunc;\nexports.chunk = chunk;\nexports.sort = sort;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Exception.bs.js":
/*!*************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Exception.bs.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nvar throwErr = ((err) => {\n    throw err;\n});\n\nvar buildErr = ((message) => {\nreturn new Error(message);\n});\n\nexports.throwErr = throwErr;\nexports.buildErr = buildErr;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Exception.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js":
/*!**************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Js_null_undefined = __webpack_require__(/*! rescript/lib/js/js_null_undefined.js */ \"../../../../../node_modules/rescript/lib/js/js_null_undefined.js\");\nvar OptionSt$Meta3dCommonlib = __webpack_require__(/*! ./OptionSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js\");\n\nfunction getExn(data) {\n  return OptionSt$Meta3dCommonlib.getExn(OptionSt$Meta3dCommonlib.fromNullable(data));\n}\n\nfunction $$return(data) {\n  return data;\n}\n\nfunction getWithDefault(nullableData, $$default) {\n  return OptionSt$Meta3dCommonlib.getWithDefault(OptionSt$Meta3dCommonlib.fromNullable(nullableData), $$default);\n}\n\nfunction bind(nullableData, func) {\n  return OptionSt$Meta3dCommonlib.toNullable(OptionSt$Meta3dCommonlib.bind(OptionSt$Meta3dCommonlib.fromNullable(nullableData), (function (val) {\n                    return OptionSt$Meta3dCommonlib.fromNullable(func(val));\n                  })));\n}\n\nfunction isNullable(prim) {\n  return prim == null;\n}\n\nfunction getEmpty(param) {\n  \n}\n\nvar map = Js_null_undefined.bind;\n\nexports.getExn = getExn;\nexports.$$return = $$return;\nexports.getWithDefault = getWithDefault;\nexports.map = map;\nexports.bind = bind;\nexports.isNullable = isNullable;\nexports.getEmpty = getEmpty;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js":
/*!************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Belt_Option = __webpack_require__(/*! rescript/lib/js/belt_Option.js */ \"../../../../../node_modules/rescript/lib/js/belt_Option.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Js_null_undefined = __webpack_require__(/*! rescript/lib/js/js_null_undefined.js */ \"../../../../../node_modules/rescript/lib/js/js_null_undefined.js\");\nvar Result$Meta3dCommonlib = __webpack_require__(/*! ./Result.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Result.bs.js\");\n\nfunction unsafeGet(prim) {\n  return prim;\n}\n\nvar _getExn = ((nullableData) => {\n  if (nullableData !== undefined) {\n    return nullableData;\n  }\n\n  throw new Error(\"Not_found\")\n});\n\nvar getExn = _getExn;\n\nfunction buildFailResult(param) {\n  return Result$Meta3dCommonlib.failWith(\"data not exist in option data\");\n}\n\nfunction get(optionData) {\n  if (optionData !== undefined) {\n    return Result$Meta3dCommonlib.succeed(Caml_option.valFromOption(optionData));\n  } else {\n    return Result$Meta3dCommonlib.failWith(\"data not exist in option data\");\n  }\n}\n\nfunction fromNullable(optionData) {\n  if (optionData == null) {\n    return ;\n  } else {\n    return Caml_option.some(optionData);\n  }\n}\n\nvar toNullable = Js_null_undefined.from_opt;\n\nfunction toStrictNullable(optionData) {\n  if (optionData !== undefined) {\n    return Caml_option.valFromOption(optionData);\n  } else {\n    return null;\n  }\n}\n\nfunction forEachResult(optionData, func) {\n  if (optionData !== undefined) {\n    return Curry._1(func, Caml_option.valFromOption(optionData));\n  } else {\n    return Result$Meta3dCommonlib.succeed(undefined);\n  }\n}\n\nfunction sequenceResultM(optionData) {\n  if (optionData !== undefined) {\n    return Result$Meta3dCommonlib.mapSuccess(optionData, (function (value) {\n                  return Caml_option.some(value);\n                }));\n  } else {\n    return Result$Meta3dCommonlib.succeed(undefined);\n  }\n}\n\nfunction open_(optionOptionData) {\n  if (optionOptionData !== undefined) {\n    return Caml_option.valFromOption(optionOptionData);\n  }\n  \n}\n\nvar getWithDefault = Belt_Option.getWithDefault;\n\nvar isSome = Belt_Option.isSome;\n\nvar map = Belt_Option.map;\n\nvar bind = Belt_Option.flatMap;\n\nexports.unsafeGet = unsafeGet;\nexports._getExn = _getExn;\nexports.getExn = getExn;\nexports.buildFailResult = buildFailResult;\nexports.get = get;\nexports.getWithDefault = getWithDefault;\nexports.isSome = isSome;\nexports.map = map;\nexports.bind = bind;\nexports.fromNullable = fromNullable;\nexports.toNullable = toNullable;\nexports.toStrictNullable = toStrictNullable;\nexports.forEachResult = forEachResult;\nexports.sequenceResultM = sequenceResultM;\nexports.open_ = open_;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js":
/*!*************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Js_promise = __webpack_require__(/*! rescript/lib/js/js_promise.js */ \"../../../../../node_modules/rescript/lib/js/js_promise.js\");\n\nfunction bind(p, func) {\n  return Js_promise.then_(func, p);\n}\n\nfunction map(p, func) {\n  return Js_promise.then_((function (v) {\n                return Promise.resolve(Curry._1(func, v));\n              }), p);\n}\n\nexports.bind = bind;\nexports.map = map;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Result.bs.js":
/*!**********************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Result.bs.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Js_exn = __webpack_require__(/*! rescript/lib/js/js_exn.js */ \"../../../../../node_modules/rescript/lib/js/js_exn.js\");\nvar Caml_js_exceptions = __webpack_require__(/*! rescript/lib/js/caml_js_exceptions.js */ \"../../../../../node_modules/rescript/lib/js/caml_js_exceptions.js\");\nvar Exception$Meta3dCommonlib = __webpack_require__(/*! ./Exception.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Exception.bs.js\");\n\nfunction succeed(x) {\n  return {\n          TAG: /* Ok */0,\n          _0: x\n        };\n}\n\nfunction fail(x) {\n  return {\n          TAG: /* Error */1,\n          _0: x\n        };\n}\n\nvar _buildErr = Exception$Meta3dCommonlib.buildErr;\n\nfunction failWith(x) {\n  return {\n          TAG: /* Error */1,\n          _0: Exception$Meta3dCommonlib.buildErr(x)\n        };\n}\n\nfunction isSuccess(result) {\n  if (result.TAG === /* Ok */0) {\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction either(result, successFunc, failureFunc) {\n  if (result.TAG === /* Ok */0) {\n    return Curry._1(successFunc, result._0);\n  } else {\n    return Curry._1(failureFunc, result._0);\n  }\n}\n\nfunction bind(result, switchFunc) {\n  return either(result, switchFunc, fail);\n}\n\nfunction tap(result, oneTrackFunc) {\n  return either(result, (function (result) {\n                Curry._1(oneTrackFunc, result);\n                return {\n                        TAG: /* Ok */0,\n                        _0: result\n                      };\n              }), fail);\n}\n\nfunction tryCatch(oneTrackFunc) {\n  try {\n    return {\n            TAG: /* Ok */0,\n            _0: Curry._1(oneTrackFunc, undefined)\n          };\n  }\n  catch (raw_e){\n    var e = Caml_js_exceptions.internalToOCamlException(raw_e);\n    if (e.RE_EXN_ID === Js_exn.$$Error) {\n      return {\n              TAG: /* Error */1,\n              _0: e._1\n            };\n    } else {\n      return {\n              TAG: /* Error */1,\n              _0: Exception$Meta3dCommonlib.buildErr(\"unknown error: \" + e)\n            };\n    }\n  }\n}\n\nfunction mapSuccess(result, mapFunc) {\n  if (result.TAG === /* Ok */0) {\n    return {\n            TAG: /* Ok */0,\n            _0: Curry._1(mapFunc, result._0)\n          };\n  } else {\n    return {\n            TAG: /* Error */1,\n            _0: result._0\n          };\n  }\n}\n\nfunction handleFail(result, handleFailFunc) {\n  if (result.TAG === /* Ok */0) {\n    return result._0;\n  } else {\n    return Curry._1(handleFailFunc, result._0);\n  }\n}\n\nfunction getExn(result) {\n  return handleFail(result, Exception$Meta3dCommonlib.throwErr);\n}\n\nfunction toNullable(result) {\n  if (result.TAG === /* Ok */0) {\n    return result._0;\n  } else {\n    return null;\n  }\n}\n\nfunction open_(resultResultData) {\n  if (resultResultData.TAG === /* Ok */0) {\n    return resultResultData._0;\n  } else {\n    return {\n            TAG: /* Error */1,\n            _0: resultResultData._0\n          };\n  }\n}\n\nexports.succeed = succeed;\nexports.fail = fail;\nexports._buildErr = _buildErr;\nexports.failWith = failWith;\nexports.isSuccess = isSuccess;\nexports.either = either;\nexports.bind = bind;\nexports.tap = tap;\nexports.tryCatch = tryCatch;\nexports.mapSuccess = mapSuccess;\nexports.handleFail = handleFail;\nexports.getExn = getExn;\nexports.toNullable = toNullable;\nexports.open_ = open_;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/Result.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/HashMap.bs.js":
/*!********************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/HashMap.bs.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Js_dict = __webpack_require__(/*! rescript/lib/js/js_dict.js */ \"../../../../../node_modules/rescript/lib/js/js_dict.js\");\nvar Js_array = __webpack_require__(/*! rescript/lib/js/js_array.js */ \"../../../../../node_modules/rescript/lib/js/js_array.js\");\nvar Belt_Array = __webpack_require__(/*! rescript/lib/js/belt_Array.js */ \"../../../../../node_modules/rescript/lib/js/belt_Array.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Js_null_undefined = __webpack_require__(/*! rescript/lib/js/js_null_undefined.js */ \"../../../../../node_modules/rescript/lib/js/js_null_undefined.js\");\nvar NullUtils$Meta3dCommonlib = __webpack_require__(/*! ../utils/NullUtils.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/utils/NullUtils.bs.js\");\n\nfunction createEmpty(hintSizeOpt, param) {\n  return {};\n}\n\nfunction unsafeGet(map, key) {\n  return map[key];\n}\n\nfunction get(map, key) {\n  var value = map[key];\n  if (NullUtils$Meta3dCommonlib.isEmpty(value)) {\n    return ;\n  } else {\n    return Caml_option.some(value);\n  }\n}\n\nvar _getExn = ((nullableData) => {\n  if (nullableData !== undefined) {\n    return nullableData;\n  }\n\n  throw new Error(\"Not_found\")\n});\n\nfunction getExn(map, key) {\n  return _getExn(map[key]);\n}\n\nfunction getNullable(map, key) {\n  return Js_null_undefined.fromOption(get(map, key));\n}\n\nfunction has(map, key) {\n  return !NullUtils$Meta3dCommonlib.isEmpty(map[key]);\n}\n\nvar entries = Js_dict.entries;\n\nfunction _mutableSet(map, key, value) {\n  map[key] = value;\n  return map;\n}\n\nfunction _createEmpty(param) {\n  return {};\n}\n\nfunction _reduceArray(arr, func, param) {\n  return Belt_Array.reduceU(arr, param, func);\n}\n\nfunction copy(map) {\n  return Belt_Array.reduceU(Js_dict.entries(map), {}, (function (newMap, param) {\n                return _mutableSet(newMap, param[0], param[1]);\n              }));\n}\n\nfunction getValidValues(map) {\n  var __x = Js_dict.values(map);\n  return Js_array.filter(NullUtils$Meta3dCommonlib.isInMap, __x);\n}\n\nfunction map(map$1, func) {\n  return Js_dict.map(func, map$1);\n}\n\nfunction merge(sourceMap, targetMap) {\n  return Belt_Array.reduceU(Js_dict.entries(sourceMap), targetMap, (function (targetMap, param) {\n                return _mutableSet(targetMap, param[0], param[1]);\n              }));\n}\n\nexports.createEmpty = createEmpty;\nexports.unsafeGet = unsafeGet;\nexports.get = get;\nexports._getExn = _getExn;\nexports.getExn = getExn;\nexports.getNullable = getNullable;\nexports.has = has;\nexports.entries = entries;\nexports._mutableSet = _mutableSet;\nexports._createEmpty = _createEmpty;\nexports._reduceArray = _reduceArray;\nexports.copy = copy;\nexports.getValidValues = getValidValues;\nexports.map = map;\nexports.merge = merge;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/HashMap.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js":
/*!*****************************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js ***!
  \*****************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar HashMap$Meta3dCommonlib = __webpack_require__(/*! ./HashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/HashMap.bs.js\");\n\nfunction set(map, key, value) {\n  var newMap = HashMap$Meta3dCommonlib.copy(map);\n  newMap[key] = value;\n  return newMap;\n}\n\nfunction deleteVal(map, key) {\n  var newMap = HashMap$Meta3dCommonlib.copy(map);\n  newMap[key] = undefined;\n  return newMap;\n}\n\nvar createEmpty = HashMap$Meta3dCommonlib.createEmpty;\n\nvar unsafeGet = HashMap$Meta3dCommonlib.unsafeGet;\n\nvar get = HashMap$Meta3dCommonlib.get;\n\nvar getExn = HashMap$Meta3dCommonlib.getExn;\n\nvar getNullable = HashMap$Meta3dCommonlib.getNullable;\n\nvar has = HashMap$Meta3dCommonlib.has;\n\nvar getValidValues = HashMap$Meta3dCommonlib.getValidValues;\n\nvar copy = HashMap$Meta3dCommonlib.copy;\n\nvar entries = HashMap$Meta3dCommonlib.entries;\n\nvar map = HashMap$Meta3dCommonlib.map;\n\nvar merge = HashMap$Meta3dCommonlib.merge;\n\nexports.createEmpty = createEmpty;\nexports.set = set;\nexports.unsafeGet = unsafeGet;\nexports.get = get;\nexports.getExn = getExn;\nexports.getNullable = getNullable;\nexports.has = has;\nexports.deleteVal = deleteVal;\nexports.getValidValues = getValidValues;\nexports.copy = copy;\nexports.entries = entries;\nexports.map = map;\nexports.merge = merge;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/MutableHashMap.bs.js":
/*!***************************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/MutableHashMap.bs.js ***!
  \***************************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar HashMap$Meta3dCommonlib = __webpack_require__(/*! ./HashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/HashMap.bs.js\");\n\nfunction set(map, key, value) {\n  map[key] = value;\n  return map;\n}\n\nfunction deleteVal(map, key) {\n  map[key] = undefined;\n  return map;\n}\n\nvar createEmpty = HashMap$Meta3dCommonlib.createEmpty;\n\nvar unsafeGet = HashMap$Meta3dCommonlib.unsafeGet;\n\nvar get = HashMap$Meta3dCommonlib.get;\n\nvar getExn = HashMap$Meta3dCommonlib.getExn;\n\nvar getNullable = HashMap$Meta3dCommonlib.getNullable;\n\nvar has = HashMap$Meta3dCommonlib.has;\n\nvar getValidValues = HashMap$Meta3dCommonlib.getValidValues;\n\nvar copy = HashMap$Meta3dCommonlib.copy;\n\nvar entries = HashMap$Meta3dCommonlib.entries;\n\nvar map = HashMap$Meta3dCommonlib.map;\n\nvar merge = HashMap$Meta3dCommonlib.merge;\n\nexports.createEmpty = createEmpty;\nexports.set = set;\nexports.unsafeGet = unsafeGet;\nexports.get = get;\nexports.getExn = getExn;\nexports.getNullable = getNullable;\nexports.has = has;\nexports.deleteVal = deleteVal;\nexports.getValidValues = getValidValues;\nexports.copy = copy;\nexports.entries = entries;\nexports.map = map;\nexports.merge = merge;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/MutableHashMap.bs.js?");

/***/ }),

/***/ "../../../../../defaults/meta3d-commonlib/lib/js/src/structure/utils/NullUtils.bs.js":
/*!*******************************************************************************************!*\
  !*** ../../../../../defaults/meta3d-commonlib/lib/js/src/structure/utils/NullUtils.bs.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction isUndefined(value) {\n  return value === undefined;\n}\n\nfunction isEmpty(value) {\n  if (value === null) {\n    return true;\n  } else {\n    return value === undefined;\n  }\n}\n\nfunction isNotInMap(value) {\n  return value === undefined;\n}\n\nfunction isInMap(value) {\n  return value !== undefined;\n}\n\nexports.isUndefined = isUndefined;\nexports.isEmpty = isEmpty;\nexports.isNotInMap = isNotInMap;\nexports.isInMap = isInMap;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../defaults/meta3d-commonlib/lib/js/src/structure/utils/NullUtils.bs.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/belt_Array.js":
/*!*****************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/belt_Array.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml = __webpack_require__(/*! ./caml.js */ \"../../../../../node_modules/rescript/lib/js/caml.js\");\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Js_math = __webpack_require__(/*! ./js_math.js */ \"../../../../../node_modules/rescript/lib/js/js_math.js\");\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\n\nfunction get(arr, i) {\n  if (i >= 0 && i < arr.length) {\n    return Caml_option.some(arr[i]);\n  }\n  \n}\n\nfunction getExn(arr, i) {\n  if (!(i >= 0 && i < arr.length)) {\n    throw {\n          RE_EXN_ID: \"Assert_failure\",\n          _1: [\n            \"belt_Array.ml\",\n            35,\n            2\n          ],\n          Error: new Error()\n        };\n  }\n  return arr[i];\n}\n\nfunction set(arr, i, v) {\n  if (i >= 0 && i < arr.length) {\n    arr[i] = v;\n    return true;\n  } else {\n    return false;\n  }\n}\n\nfunction setExn(arr, i, v) {\n  if (!(i >= 0 && i < arr.length)) {\n    throw {\n          RE_EXN_ID: \"Assert_failure\",\n          _1: [\n            \"belt_Array.ml\",\n            45,\n            2\n          ],\n          Error: new Error()\n        };\n  }\n  arr[i] = v;\n}\n\nfunction swapUnsafe(xs, i, j) {\n  var tmp = xs[i];\n  xs[i] = xs[j];\n  xs[j] = tmp;\n}\n\nfunction shuffleInPlace(xs) {\n  var len = xs.length;\n  for(var i = 0; i < len; ++i){\n    swapUnsafe(xs, i, Js_math.random_int(i, len));\n  }\n}\n\nfunction shuffle(xs) {\n  var result = xs.slice(0);\n  shuffleInPlace(result);\n  return result;\n}\n\nfunction reverseInPlace(xs) {\n  var len = xs.length;\n  var ofs = 0;\n  for(var i = 0 ,i_finish = len / 2 | 0; i < i_finish; ++i){\n    swapUnsafe(xs, ofs + i | 0, ((ofs + len | 0) - i | 0) - 1 | 0);\n  }\n}\n\nfunction reverse(xs) {\n  var len = xs.length;\n  var result = new Array(len);\n  for(var i = 0; i < len; ++i){\n    result[i] = xs[(len - 1 | 0) - i | 0];\n  }\n  return result;\n}\n\nfunction make(l, f) {\n  if (l <= 0) {\n    return [];\n  }\n  var res = new Array(l);\n  for(var i = 0; i < l; ++i){\n    res[i] = f;\n  }\n  return res;\n}\n\nfunction makeByU(l, f) {\n  if (l <= 0) {\n    return [];\n  }\n  var res = new Array(l);\n  for(var i = 0; i < l; ++i){\n    res[i] = f(i);\n  }\n  return res;\n}\n\nfunction makeBy(l, f) {\n  return makeByU(l, Curry.__1(f));\n}\n\nfunction makeByAndShuffleU(l, f) {\n  var u = makeByU(l, f);\n  shuffleInPlace(u);\n  return u;\n}\n\nfunction makeByAndShuffle(l, f) {\n  return makeByAndShuffleU(l, Curry.__1(f));\n}\n\nfunction range(start, finish) {\n  var cut = finish - start | 0;\n  if (cut < 0) {\n    return [];\n  }\n  var arr = new Array(cut + 1 | 0);\n  for(var i = 0; i <= cut; ++i){\n    arr[i] = start + i | 0;\n  }\n  return arr;\n}\n\nfunction rangeBy(start, finish, step) {\n  var cut = finish - start | 0;\n  if (cut < 0 || step <= 0) {\n    return [];\n  }\n  var nb = (cut / step | 0) + 1 | 0;\n  var arr = new Array(nb);\n  var cur = start;\n  for(var i = 0; i < nb; ++i){\n    arr[i] = cur;\n    cur = cur + step | 0;\n  }\n  return arr;\n}\n\nfunction zip(xs, ys) {\n  var lenx = xs.length;\n  var leny = ys.length;\n  var len = lenx < leny ? lenx : leny;\n  var s = new Array(len);\n  for(var i = 0; i < len; ++i){\n    s[i] = [\n      xs[i],\n      ys[i]\n    ];\n  }\n  return s;\n}\n\nfunction zipByU(xs, ys, f) {\n  var lenx = xs.length;\n  var leny = ys.length;\n  var len = lenx < leny ? lenx : leny;\n  var s = new Array(len);\n  for(var i = 0; i < len; ++i){\n    s[i] = f(xs[i], ys[i]);\n  }\n  return s;\n}\n\nfunction zipBy(xs, ys, f) {\n  return zipByU(xs, ys, Curry.__2(f));\n}\n\nfunction concat(a1, a2) {\n  var l1 = a1.length;\n  var l2 = a2.length;\n  var a1a2 = new Array(l1 + l2 | 0);\n  for(var i = 0; i < l1; ++i){\n    a1a2[i] = a1[i];\n  }\n  for(var i$1 = 0; i$1 < l2; ++i$1){\n    a1a2[l1 + i$1 | 0] = a2[i$1];\n  }\n  return a1a2;\n}\n\nfunction concatMany(arrs) {\n  var lenArrs = arrs.length;\n  var totalLen = 0;\n  for(var i = 0; i < lenArrs; ++i){\n    totalLen = totalLen + arrs[i].length | 0;\n  }\n  var result = new Array(totalLen);\n  totalLen = 0;\n  for(var j = 0; j < lenArrs; ++j){\n    var cur = arrs[j];\n    for(var k = 0 ,k_finish = cur.length; k < k_finish; ++k){\n      result[totalLen] = cur[k];\n      totalLen = totalLen + 1 | 0;\n    }\n  }\n  return result;\n}\n\nfunction slice(a, offset, len) {\n  if (len <= 0) {\n    return [];\n  }\n  var lena = a.length;\n  var ofs = offset < 0 ? Caml.int_max(lena + offset | 0, 0) : offset;\n  var hasLen = lena - ofs | 0;\n  var copyLength = hasLen < len ? hasLen : len;\n  if (copyLength <= 0) {\n    return [];\n  }\n  var result = new Array(copyLength);\n  for(var i = 0; i < copyLength; ++i){\n    result[i] = a[ofs + i | 0];\n  }\n  return result;\n}\n\nfunction sliceToEnd(a, offset) {\n  var lena = a.length;\n  var ofs = offset < 0 ? Caml.int_max(lena + offset | 0, 0) : offset;\n  var len = lena > ofs ? lena - ofs | 0 : 0;\n  var result = new Array(len);\n  for(var i = 0; i < len; ++i){\n    result[i] = a[ofs + i | 0];\n  }\n  return result;\n}\n\nfunction fill(a, offset, len, v) {\n  if (len <= 0) {\n    return ;\n  }\n  var lena = a.length;\n  var ofs = offset < 0 ? Caml.int_max(lena + offset | 0, 0) : offset;\n  var hasLen = lena - ofs | 0;\n  var fillLength = hasLen < len ? hasLen : len;\n  if (fillLength <= 0) {\n    return ;\n  }\n  for(var i = ofs ,i_finish = ofs + fillLength | 0; i < i_finish; ++i){\n    a[i] = v;\n  }\n}\n\nfunction blitUnsafe(a1, srcofs1, a2, srcofs2, blitLength) {\n  if (srcofs2 <= srcofs1) {\n    for(var j = 0; j < blitLength; ++j){\n      a2[j + srcofs2 | 0] = a1[j + srcofs1 | 0];\n    }\n    return ;\n  }\n  for(var j$1 = blitLength - 1 | 0; j$1 >= 0; --j$1){\n    a2[j$1 + srcofs2 | 0] = a1[j$1 + srcofs1 | 0];\n  }\n}\n\nfunction blit(a1, ofs1, a2, ofs2, len) {\n  var lena1 = a1.length;\n  var lena2 = a2.length;\n  var srcofs1 = ofs1 < 0 ? Caml.int_max(lena1 + ofs1 | 0, 0) : ofs1;\n  var srcofs2 = ofs2 < 0 ? Caml.int_max(lena2 + ofs2 | 0, 0) : ofs2;\n  var blitLength = Caml.int_min(len, Caml.int_min(lena1 - srcofs1 | 0, lena2 - srcofs2 | 0));\n  if (srcofs2 <= srcofs1) {\n    for(var j = 0; j < blitLength; ++j){\n      a2[j + srcofs2 | 0] = a1[j + srcofs1 | 0];\n    }\n    return ;\n  }\n  for(var j$1 = blitLength - 1 | 0; j$1 >= 0; --j$1){\n    a2[j$1 + srcofs2 | 0] = a1[j$1 + srcofs1 | 0];\n  }\n}\n\nfunction forEachU(a, f) {\n  for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){\n    f(a[i]);\n  }\n}\n\nfunction forEach(a, f) {\n  forEachU(a, Curry.__1(f));\n}\n\nfunction mapU(a, f) {\n  var l = a.length;\n  var r = new Array(l);\n  for(var i = 0; i < l; ++i){\n    r[i] = f(a[i]);\n  }\n  return r;\n}\n\nfunction map(a, f) {\n  return mapU(a, Curry.__1(f));\n}\n\nfunction flatMapU(a, f) {\n  return concatMany(mapU(a, f));\n}\n\nfunction flatMap(a, f) {\n  return concatMany(mapU(a, Curry.__1(f)));\n}\n\nfunction getByU(a, p) {\n  var l = a.length;\n  var i = 0;\n  var r;\n  while(r === undefined && i < l) {\n    var v = a[i];\n    if (p(v)) {\n      r = Caml_option.some(v);\n    }\n    i = i + 1 | 0;\n  };\n  return r;\n}\n\nfunction getBy(a, p) {\n  return getByU(a, Curry.__1(p));\n}\n\nfunction getIndexByU(a, p) {\n  var l = a.length;\n  var i = 0;\n  var r;\n  while(r === undefined && i < l) {\n    var v = a[i];\n    if (p(v)) {\n      r = i;\n    }\n    i = i + 1 | 0;\n  };\n  return r;\n}\n\nfunction getIndexBy(a, p) {\n  return getIndexByU(a, Curry.__1(p));\n}\n\nfunction keepU(a, f) {\n  var l = a.length;\n  var r = new Array(l);\n  var j = 0;\n  for(var i = 0; i < l; ++i){\n    var v = a[i];\n    if (f(v)) {\n      r[j] = v;\n      j = j + 1 | 0;\n    }\n    \n  }\n  r.length = j;\n  return r;\n}\n\nfunction keep(a, f) {\n  return keepU(a, Curry.__1(f));\n}\n\nfunction keepWithIndexU(a, f) {\n  var l = a.length;\n  var r = new Array(l);\n  var j = 0;\n  for(var i = 0; i < l; ++i){\n    var v = a[i];\n    if (f(v, i)) {\n      r[j] = v;\n      j = j + 1 | 0;\n    }\n    \n  }\n  r.length = j;\n  return r;\n}\n\nfunction keepWithIndex(a, f) {\n  return keepWithIndexU(a, Curry.__2(f));\n}\n\nfunction keepMapU(a, f) {\n  var l = a.length;\n  var r = new Array(l);\n  var j = 0;\n  for(var i = 0; i < l; ++i){\n    var v = a[i];\n    var v$1 = f(v);\n    if (v$1 !== undefined) {\n      r[j] = Caml_option.valFromOption(v$1);\n      j = j + 1 | 0;\n    }\n    \n  }\n  r.length = j;\n  return r;\n}\n\nfunction keepMap(a, f) {\n  return keepMapU(a, Curry.__1(f));\n}\n\nfunction forEachWithIndexU(a, f) {\n  for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){\n    f(i, a[i]);\n  }\n}\n\nfunction forEachWithIndex(a, f) {\n  forEachWithIndexU(a, Curry.__2(f));\n}\n\nfunction mapWithIndexU(a, f) {\n  var l = a.length;\n  var r = new Array(l);\n  for(var i = 0; i < l; ++i){\n    r[i] = f(i, a[i]);\n  }\n  return r;\n}\n\nfunction mapWithIndex(a, f) {\n  return mapWithIndexU(a, Curry.__2(f));\n}\n\nfunction reduceU(a, x, f) {\n  var r = x;\n  for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){\n    r = f(r, a[i]);\n  }\n  return r;\n}\n\nfunction reduce(a, x, f) {\n  return reduceU(a, x, Curry.__2(f));\n}\n\nfunction reduceReverseU(a, x, f) {\n  var r = x;\n  for(var i = a.length - 1 | 0; i >= 0; --i){\n    r = f(r, a[i]);\n  }\n  return r;\n}\n\nfunction reduceReverse(a, x, f) {\n  return reduceReverseU(a, x, Curry.__2(f));\n}\n\nfunction reduceReverse2U(a, b, x, f) {\n  var r = x;\n  var len = Caml.int_min(a.length, b.length);\n  for(var i = len - 1 | 0; i >= 0; --i){\n    r = f(r, a[i], b[i]);\n  }\n  return r;\n}\n\nfunction reduceReverse2(a, b, x, f) {\n  return reduceReverse2U(a, b, x, Curry.__3(f));\n}\n\nfunction reduceWithIndexU(a, x, f) {\n  var r = x;\n  for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){\n    r = f(r, a[i], i);\n  }\n  return r;\n}\n\nfunction reduceWithIndex(a, x, f) {\n  return reduceWithIndexU(a, x, Curry.__3(f));\n}\n\nfunction everyU(arr, b) {\n  var len = arr.length;\n  var _i = 0;\n  while(true) {\n    var i = _i;\n    if (i === len) {\n      return true;\n    }\n    if (!b(arr[i])) {\n      return false;\n    }\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction every(arr, f) {\n  return everyU(arr, Curry.__1(f));\n}\n\nfunction someU(arr, b) {\n  var len = arr.length;\n  var _i = 0;\n  while(true) {\n    var i = _i;\n    if (i === len) {\n      return false;\n    }\n    if (b(arr[i])) {\n      return true;\n    }\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction some(arr, f) {\n  return someU(arr, Curry.__1(f));\n}\n\nfunction everyAux2(arr1, arr2, _i, b, len) {\n  while(true) {\n    var i = _i;\n    if (i === len) {\n      return true;\n    }\n    if (!b(arr1[i], arr2[i])) {\n      return false;\n    }\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction every2U(a, b, p) {\n  return everyAux2(a, b, 0, p, Caml.int_min(a.length, b.length));\n}\n\nfunction every2(a, b, p) {\n  return every2U(a, b, Curry.__2(p));\n}\n\nfunction some2U(a, b, p) {\n  var _i = 0;\n  var len = Caml.int_min(a.length, b.length);\n  while(true) {\n    var i = _i;\n    if (i === len) {\n      return false;\n    }\n    if (p(a[i], b[i])) {\n      return true;\n    }\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction some2(a, b, p) {\n  return some2U(a, b, Curry.__2(p));\n}\n\nfunction eqU(a, b, p) {\n  var lena = a.length;\n  var lenb = b.length;\n  if (lena === lenb) {\n    return everyAux2(a, b, 0, p, lena);\n  } else {\n    return false;\n  }\n}\n\nfunction eq(a, b, p) {\n  return eqU(a, b, Curry.__2(p));\n}\n\nfunction cmpU(a, b, p) {\n  var lena = a.length;\n  var lenb = b.length;\n  if (lena > lenb) {\n    return 1;\n  } else if (lena < lenb) {\n    return -1;\n  } else {\n    var _i = 0;\n    while(true) {\n      var i = _i;\n      if (i === lena) {\n        return 0;\n      }\n      var c = p(a[i], b[i]);\n      if (c !== 0) {\n        return c;\n      }\n      _i = i + 1 | 0;\n      continue ;\n    };\n  }\n}\n\nfunction cmp(a, b, p) {\n  return cmpU(a, b, Curry.__2(p));\n}\n\nfunction partitionU(a, f) {\n  var l = a.length;\n  var i = 0;\n  var j = 0;\n  var a1 = new Array(l);\n  var a2 = new Array(l);\n  for(var ii = 0; ii < l; ++ii){\n    var v = a[ii];\n    if (f(v)) {\n      a1[i] = v;\n      i = i + 1 | 0;\n    } else {\n      a2[j] = v;\n      j = j + 1 | 0;\n    }\n  }\n  a1.length = i;\n  a2.length = j;\n  return [\n          a1,\n          a2\n        ];\n}\n\nfunction partition(a, f) {\n  return partitionU(a, Curry.__1(f));\n}\n\nfunction unzip(a) {\n  var l = a.length;\n  var a1 = new Array(l);\n  var a2 = new Array(l);\n  for(var i = 0; i < l; ++i){\n    var match = a[i];\n    a1[i] = match[0];\n    a2[i] = match[1];\n  }\n  return [\n          a1,\n          a2\n        ];\n}\n\nfunction joinWithU(a, sep, toString) {\n  var l = a.length;\n  if (l === 0) {\n    return \"\";\n  }\n  var lastIndex = l - 1 | 0;\n  var _i = 0;\n  var _res = \"\";\n  while(true) {\n    var res = _res;\n    var i = _i;\n    if (i === lastIndex) {\n      return res + toString(a[i]);\n    }\n    _res = res + (toString(a[i]) + sep);\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction joinWith(a, sep, toString) {\n  return joinWithU(a, sep, Curry.__1(toString));\n}\n\nfunction initU(n, f) {\n  var v = new Array(n);\n  for(var i = 0; i < n; ++i){\n    v[i] = f(i);\n  }\n  return v;\n}\n\nfunction init(n, f) {\n  return initU(n, Curry.__1(f));\n}\n\nexports.get = get;\nexports.getExn = getExn;\nexports.set = set;\nexports.setExn = setExn;\nexports.shuffleInPlace = shuffleInPlace;\nexports.shuffle = shuffle;\nexports.reverseInPlace = reverseInPlace;\nexports.reverse = reverse;\nexports.make = make;\nexports.range = range;\nexports.rangeBy = rangeBy;\nexports.makeByU = makeByU;\nexports.makeBy = makeBy;\nexports.makeByAndShuffleU = makeByAndShuffleU;\nexports.makeByAndShuffle = makeByAndShuffle;\nexports.zip = zip;\nexports.zipByU = zipByU;\nexports.zipBy = zipBy;\nexports.unzip = unzip;\nexports.concat = concat;\nexports.concatMany = concatMany;\nexports.slice = slice;\nexports.sliceToEnd = sliceToEnd;\nexports.fill = fill;\nexports.blit = blit;\nexports.blitUnsafe = blitUnsafe;\nexports.forEachU = forEachU;\nexports.forEach = forEach;\nexports.mapU = mapU;\nexports.map = map;\nexports.flatMapU = flatMapU;\nexports.flatMap = flatMap;\nexports.getByU = getByU;\nexports.getBy = getBy;\nexports.getIndexByU = getIndexByU;\nexports.getIndexBy = getIndexBy;\nexports.keepU = keepU;\nexports.keep = keep;\nexports.keepWithIndexU = keepWithIndexU;\nexports.keepWithIndex = keepWithIndex;\nexports.keepMapU = keepMapU;\nexports.keepMap = keepMap;\nexports.forEachWithIndexU = forEachWithIndexU;\nexports.forEachWithIndex = forEachWithIndex;\nexports.mapWithIndexU = mapWithIndexU;\nexports.mapWithIndex = mapWithIndex;\nexports.partitionU = partitionU;\nexports.partition = partition;\nexports.reduceU = reduceU;\nexports.reduce = reduce;\nexports.reduceReverseU = reduceReverseU;\nexports.reduceReverse = reduceReverse;\nexports.reduceReverse2U = reduceReverse2U;\nexports.reduceReverse2 = reduceReverse2;\nexports.reduceWithIndexU = reduceWithIndexU;\nexports.reduceWithIndex = reduceWithIndex;\nexports.joinWithU = joinWithU;\nexports.joinWith = joinWith;\nexports.someU = someU;\nexports.some = some;\nexports.everyU = everyU;\nexports.every = every;\nexports.every2U = every2U;\nexports.every2 = every2;\nexports.some2U = some2U;\nexports.some2 = some2;\nexports.cmpU = cmpU;\nexports.cmp = cmp;\nexports.eqU = eqU;\nexports.eq = eq;\nexports.initU = initU;\nexports.init = init;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/belt_Array.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/belt_List.js":
/*!****************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/belt_List.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Belt_Array = __webpack_require__(/*! ./belt_Array.js */ \"../../../../../node_modules/rescript/lib/js/belt_Array.js\");\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Belt_SortArray = __webpack_require__(/*! ./belt_SortArray.js */ \"../../../../../node_modules/rescript/lib/js/belt_SortArray.js\");\n\nfunction head(x) {\n  if (x) {\n    return Caml_option.some(x.hd);\n  }\n  \n}\n\nfunction headExn(x) {\n  if (x) {\n    return x.hd;\n  }\n  throw {\n        RE_EXN_ID: \"Not_found\",\n        Error: new Error()\n      };\n}\n\nfunction tail(x) {\n  if (x) {\n    return x.tl;\n  }\n  \n}\n\nfunction tailExn(x) {\n  if (x) {\n    return x.tl;\n  }\n  throw {\n        RE_EXN_ID: \"Not_found\",\n        Error: new Error()\n      };\n}\n\nfunction add(xs, x) {\n  return {\n          hd: x,\n          tl: xs\n        };\n}\n\nfunction get(x, n) {\n  if (n < 0) {\n    return ;\n  } else {\n    var _x = x;\n    var _n = n;\n    while(true) {\n      var n$1 = _n;\n      var x$1 = _x;\n      if (!x$1) {\n        return ;\n      }\n      if (n$1 === 0) {\n        return Caml_option.some(x$1.hd);\n      }\n      _n = n$1 - 1 | 0;\n      _x = x$1.tl;\n      continue ;\n    };\n  }\n}\n\nfunction getExn(x, n) {\n  if (n < 0) {\n    throw {\n          RE_EXN_ID: \"Not_found\",\n          Error: new Error()\n        };\n  }\n  var _x = x;\n  var _n = n;\n  while(true) {\n    var n$1 = _n;\n    var x$1 = _x;\n    if (x$1) {\n      if (n$1 === 0) {\n        return x$1.hd;\n      }\n      _n = n$1 - 1 | 0;\n      _x = x$1.tl;\n      continue ;\n    }\n    throw {\n          RE_EXN_ID: \"Not_found\",\n          Error: new Error()\n        };\n  };\n}\n\nfunction partitionAux(p, _cell, _precX, _precY) {\n  while(true) {\n    var precY = _precY;\n    var precX = _precX;\n    var cell = _cell;\n    if (!cell) {\n      return ;\n    }\n    var t = cell.tl;\n    var h = cell.hd;\n    var next = {\n      hd: h,\n      tl: /* [] */0\n    };\n    if (p(h)) {\n      precX.tl = next;\n      _precX = next;\n      _cell = t;\n      continue ;\n    }\n    precY.tl = next;\n    _precY = next;\n    _cell = t;\n    continue ;\n  };\n}\n\nfunction splitAux(_cell, _precX, _precY) {\n  while(true) {\n    var precY = _precY;\n    var precX = _precX;\n    var cell = _cell;\n    if (!cell) {\n      return ;\n    }\n    var match = cell.hd;\n    var nextA = {\n      hd: match[0],\n      tl: /* [] */0\n    };\n    var nextB = {\n      hd: match[1],\n      tl: /* [] */0\n    };\n    precX.tl = nextA;\n    precY.tl = nextB;\n    _precY = nextB;\n    _precX = nextA;\n    _cell = cell.tl;\n    continue ;\n  };\n}\n\nfunction copyAuxCont(_cellX, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return prec;\n    }\n    var next = {\n      hd: cellX.hd,\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellX = cellX.tl;\n    continue ;\n  };\n}\n\nfunction copyAuxWitFilter(f, _cellX, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    var t = cellX.tl;\n    var h = cellX.hd;\n    if (f(h)) {\n      var next = {\n        hd: h,\n        tl: /* [] */0\n      };\n      prec.tl = next;\n      _prec = next;\n      _cellX = t;\n      continue ;\n    }\n    _cellX = t;\n    continue ;\n  };\n}\n\nfunction copyAuxWithFilterIndex(f, _cellX, _prec, _i) {\n  while(true) {\n    var i = _i;\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    var t = cellX.tl;\n    var h = cellX.hd;\n    if (f(h, i)) {\n      var next = {\n        hd: h,\n        tl: /* [] */0\n      };\n      prec.tl = next;\n      _i = i + 1 | 0;\n      _prec = next;\n      _cellX = t;\n      continue ;\n    }\n    _i = i + 1 | 0;\n    _cellX = t;\n    continue ;\n  };\n}\n\nfunction copyAuxWitFilterMap(f, _cellX, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    var t = cellX.tl;\n    var h = f(cellX.hd);\n    if (h !== undefined) {\n      var next = {\n        hd: Caml_option.valFromOption(h),\n        tl: /* [] */0\n      };\n      prec.tl = next;\n      _prec = next;\n      _cellX = t;\n      continue ;\n    }\n    _cellX = t;\n    continue ;\n  };\n}\n\nfunction removeAssocAuxWithMap(_cellX, x, _prec, f) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return false;\n    }\n    var t = cellX.tl;\n    var h = cellX.hd;\n    if (f(h[0], x)) {\n      prec.tl = t;\n      return true;\n    }\n    var next = {\n      hd: h,\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellX = t;\n    continue ;\n  };\n}\n\nfunction setAssocAuxWithMap(_cellX, x, k, _prec, eq) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return false;\n    }\n    var t = cellX.tl;\n    var h = cellX.hd;\n    if (eq(h[0], x)) {\n      prec.tl = {\n        hd: [\n          x,\n          k\n        ],\n        tl: t\n      };\n      return true;\n    }\n    var next = {\n      hd: h,\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellX = t;\n    continue ;\n  };\n}\n\nfunction copyAuxWithMap(_cellX, _prec, f) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    var next = {\n      hd: f(cellX.hd),\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellX = cellX.tl;\n    continue ;\n  };\n}\n\nfunction zipAux(_cellX, _cellY, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellY = _cellY;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    if (!cellY) {\n      return ;\n    }\n    var next = {\n      hd: [\n        cellX.hd,\n        cellY.hd\n      ],\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellY = cellY.tl;\n    _cellX = cellX.tl;\n    continue ;\n  };\n}\n\nfunction copyAuxWithMap2(f, _cellX, _cellY, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellY = _cellY;\n    var cellX = _cellX;\n    if (!cellX) {\n      return ;\n    }\n    if (!cellY) {\n      return ;\n    }\n    var next = {\n      hd: f(cellX.hd, cellY.hd),\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellY = cellY.tl;\n    _cellX = cellX.tl;\n    continue ;\n  };\n}\n\nfunction copyAuxWithMapI(f, _i, _cellX, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cellX = _cellX;\n    var i = _i;\n    if (!cellX) {\n      return ;\n    }\n    var next = {\n      hd: f(i, cellX.hd),\n      tl: /* [] */0\n    };\n    prec.tl = next;\n    _prec = next;\n    _cellX = cellX.tl;\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction takeAux(_n, _cell, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cell = _cell;\n    var n = _n;\n    if (n === 0) {\n      return true;\n    }\n    if (!cell) {\n      return false;\n    }\n    var cell$1 = {\n      hd: cell.hd,\n      tl: /* [] */0\n    };\n    prec.tl = cell$1;\n    _prec = cell$1;\n    _cell = cell.tl;\n    _n = n - 1 | 0;\n    continue ;\n  };\n}\n\nfunction splitAtAux(_n, _cell, _prec) {\n  while(true) {\n    var prec = _prec;\n    var cell = _cell;\n    var n = _n;\n    if (n === 0) {\n      return cell;\n    }\n    if (!cell) {\n      return ;\n    }\n    var cell$1 = {\n      hd: cell.hd,\n      tl: /* [] */0\n    };\n    prec.tl = cell$1;\n    _prec = cell$1;\n    _cell = cell.tl;\n    _n = n - 1 | 0;\n    continue ;\n  };\n}\n\nfunction take(lst, n) {\n  if (n < 0) {\n    return ;\n  }\n  if (n === 0) {\n    return /* [] */0;\n  }\n  if (!lst) {\n    return ;\n  }\n  var cell = {\n    hd: lst.hd,\n    tl: /* [] */0\n  };\n  var has = takeAux(n - 1 | 0, lst.tl, cell);\n  if (has) {\n    return cell;\n  }\n  \n}\n\nfunction drop(lst, n) {\n  if (n < 0) {\n    return ;\n  } else {\n    var _l = lst;\n    var _n = n;\n    while(true) {\n      var n$1 = _n;\n      var l = _l;\n      if (n$1 === 0) {\n        return l;\n      }\n      if (!l) {\n        return ;\n      }\n      _n = n$1 - 1 | 0;\n      _l = l.tl;\n      continue ;\n    };\n  }\n}\n\nfunction splitAt(lst, n) {\n  if (n < 0) {\n    return ;\n  }\n  if (n === 0) {\n    return [\n            /* [] */0,\n            lst\n          ];\n  }\n  if (!lst) {\n    return ;\n  }\n  var cell = {\n    hd: lst.hd,\n    tl: /* [] */0\n  };\n  var rest = splitAtAux(n - 1 | 0, lst.tl, cell);\n  if (rest !== undefined) {\n    return [\n            cell,\n            rest\n          ];\n  }\n  \n}\n\nfunction concat(xs, ys) {\n  if (!xs) {\n    return ys;\n  }\n  var cell = {\n    hd: xs.hd,\n    tl: /* [] */0\n  };\n  copyAuxCont(xs.tl, cell).tl = ys;\n  return cell;\n}\n\nfunction mapU(xs, f) {\n  if (!xs) {\n    return /* [] */0;\n  }\n  var cell = {\n    hd: f(xs.hd),\n    tl: /* [] */0\n  };\n  copyAuxWithMap(xs.tl, cell, f);\n  return cell;\n}\n\nfunction map(xs, f) {\n  return mapU(xs, Curry.__1(f));\n}\n\nfunction zipByU(l1, l2, f) {\n  if (!l1) {\n    return /* [] */0;\n  }\n  if (!l2) {\n    return /* [] */0;\n  }\n  var cell = {\n    hd: f(l1.hd, l2.hd),\n    tl: /* [] */0\n  };\n  copyAuxWithMap2(f, l1.tl, l2.tl, cell);\n  return cell;\n}\n\nfunction zipBy(l1, l2, f) {\n  return zipByU(l1, l2, Curry.__2(f));\n}\n\nfunction mapWithIndexU(xs, f) {\n  if (!xs) {\n    return /* [] */0;\n  }\n  var cell = {\n    hd: f(0, xs.hd),\n    tl: /* [] */0\n  };\n  copyAuxWithMapI(f, 1, xs.tl, cell);\n  return cell;\n}\n\nfunction mapWithIndex(xs, f) {\n  return mapWithIndexU(xs, Curry.__2(f));\n}\n\nfunction makeByU(n, f) {\n  if (n <= 0) {\n    return /* [] */0;\n  }\n  var headX = {\n    hd: f(0),\n    tl: /* [] */0\n  };\n  var cur = headX;\n  var i = 1;\n  while(i < n) {\n    var v = {\n      hd: f(i),\n      tl: /* [] */0\n    };\n    cur.tl = v;\n    cur = v;\n    i = i + 1 | 0;\n  };\n  return headX;\n}\n\nfunction makeBy(n, f) {\n  return makeByU(n, Curry.__1(f));\n}\n\nfunction make(n, v) {\n  if (n <= 0) {\n    return /* [] */0;\n  }\n  var headX = {\n    hd: v,\n    tl: /* [] */0\n  };\n  var cur = headX;\n  var i = 1;\n  while(i < n) {\n    var v$1 = {\n      hd: v,\n      tl: /* [] */0\n    };\n    cur.tl = v$1;\n    cur = v$1;\n    i = i + 1 | 0;\n  };\n  return headX;\n}\n\nfunction length(xs) {\n  var _x = xs;\n  var _acc = 0;\n  while(true) {\n    var acc = _acc;\n    var x = _x;\n    if (!x) {\n      return acc;\n    }\n    _acc = acc + 1 | 0;\n    _x = x.tl;\n    continue ;\n  };\n}\n\nfunction fillAux(arr, _i, _x) {\n  while(true) {\n    var x = _x;\n    var i = _i;\n    if (!x) {\n      return ;\n    }\n    arr[i] = x.hd;\n    _x = x.tl;\n    _i = i + 1 | 0;\n    continue ;\n  };\n}\n\nfunction fromArray(a) {\n  var _i = a.length - 1 | 0;\n  var _res = /* [] */0;\n  while(true) {\n    var res = _res;\n    var i = _i;\n    if (i < 0) {\n      return res;\n    }\n    _res = {\n      hd: a[i],\n      tl: res\n    };\n    _i = i - 1 | 0;\n    continue ;\n  };\n}\n\nfunction toArray(x) {\n  var len = length(x);\n  var arr = new Array(len);\n  fillAux(arr, 0, x);\n  return arr;\n}\n\nfunction shuffle(xs) {\n  var v = toArray(xs);\n  Belt_Array.shuffleInPlace(v);\n  return fromArray(v);\n}\n\nfunction reverseConcat(_l1, _l2) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      return l2;\n    }\n    _l2 = {\n      hd: l1.hd,\n      tl: l2\n    };\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction reverse(l) {\n  return reverseConcat(l, /* [] */0);\n}\n\nfunction flattenAux(_prec, _xs) {\n  while(true) {\n    var xs = _xs;\n    var prec = _prec;\n    if (xs) {\n      _xs = xs.tl;\n      _prec = copyAuxCont(xs.hd, prec);\n      continue ;\n    }\n    prec.tl = /* [] */0;\n    return ;\n  };\n}\n\nfunction flatten(_xs) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return /* [] */0;\n    }\n    var match = xs.hd;\n    if (match) {\n      var cell = {\n        hd: match.hd,\n        tl: /* [] */0\n      };\n      flattenAux(copyAuxCont(match.tl, cell), xs.tl);\n      return cell;\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction concatMany(xs) {\n  var len = xs.length;\n  if (len === 1) {\n    return xs[0];\n  }\n  if (len === 0) {\n    return /* [] */0;\n  }\n  var len$1 = xs.length;\n  var v = xs[len$1 - 1 | 0];\n  for(var i = len$1 - 2 | 0; i >= 0; --i){\n    v = concat(xs[i], v);\n  }\n  return v;\n}\n\nfunction mapReverseU(l, f) {\n  var _accu = /* [] */0;\n  var _xs = l;\n  while(true) {\n    var xs = _xs;\n    var accu = _accu;\n    if (!xs) {\n      return accu;\n    }\n    _xs = xs.tl;\n    _accu = {\n      hd: f(xs.hd),\n      tl: accu\n    };\n    continue ;\n  };\n}\n\nfunction mapReverse(l, f) {\n  return mapReverseU(l, Curry.__1(f));\n}\n\nfunction forEachU(_xs, f) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return ;\n    }\n    f(xs.hd);\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction forEach(xs, f) {\n  forEachU(xs, Curry.__1(f));\n}\n\nfunction forEachWithIndexU(l, f) {\n  var _xs = l;\n  var _i = 0;\n  while(true) {\n    var i = _i;\n    var xs = _xs;\n    if (!xs) {\n      return ;\n    }\n    f(i, xs.hd);\n    _i = i + 1 | 0;\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction forEachWithIndex(l, f) {\n  forEachWithIndexU(l, Curry.__2(f));\n}\n\nfunction reduceU(_l, _accu, f) {\n  while(true) {\n    var accu = _accu;\n    var l = _l;\n    if (!l) {\n      return accu;\n    }\n    _accu = f(accu, l.hd);\n    _l = l.tl;\n    continue ;\n  };\n}\n\nfunction reduce(l, accu, f) {\n  return reduceU(l, accu, Curry.__2(f));\n}\n\nfunction reduceReverseUnsafeU(l, accu, f) {\n  if (l) {\n    return f(reduceReverseUnsafeU(l.tl, accu, f), l.hd);\n  } else {\n    return accu;\n  }\n}\n\nfunction reduceReverseU(l, acc, f) {\n  var len = length(l);\n  if (len < 1000) {\n    return reduceReverseUnsafeU(l, acc, f);\n  } else {\n    return Belt_Array.reduceReverseU(toArray(l), acc, f);\n  }\n}\n\nfunction reduceReverse(l, accu, f) {\n  return reduceReverseU(l, accu, Curry.__2(f));\n}\n\nfunction reduceWithIndexU(l, acc, f) {\n  var _l = l;\n  var _acc = acc;\n  var _i = 0;\n  while(true) {\n    var i = _i;\n    var acc$1 = _acc;\n    var l$1 = _l;\n    if (!l$1) {\n      return acc$1;\n    }\n    _i = i + 1 | 0;\n    _acc = f(acc$1, l$1.hd, i);\n    _l = l$1.tl;\n    continue ;\n  };\n}\n\nfunction reduceWithIndex(l, acc, f) {\n  return reduceWithIndexU(l, acc, Curry.__3(f));\n}\n\nfunction mapReverse2U(l1, l2, f) {\n  var _l1 = l1;\n  var _l2 = l2;\n  var _accu = /* [] */0;\n  while(true) {\n    var accu = _accu;\n    var l2$1 = _l2;\n    var l1$1 = _l1;\n    if (!l1$1) {\n      return accu;\n    }\n    if (!l2$1) {\n      return accu;\n    }\n    _accu = {\n      hd: f(l1$1.hd, l2$1.hd),\n      tl: accu\n    };\n    _l2 = l2$1.tl;\n    _l1 = l1$1.tl;\n    continue ;\n  };\n}\n\nfunction mapReverse2(l1, l2, f) {\n  return mapReverse2U(l1, l2, Curry.__2(f));\n}\n\nfunction forEach2U(_l1, _l2, f) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      return ;\n    }\n    if (!l2) {\n      return ;\n    }\n    f(l1.hd, l2.hd);\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction forEach2(l1, l2, f) {\n  forEach2U(l1, l2, Curry.__2(f));\n}\n\nfunction reduce2U(_l1, _l2, _accu, f) {\n  while(true) {\n    var accu = _accu;\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      return accu;\n    }\n    if (!l2) {\n      return accu;\n    }\n    _accu = f(accu, l1.hd, l2.hd);\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction reduce2(l1, l2, acc, f) {\n  return reduce2U(l1, l2, acc, Curry.__3(f));\n}\n\nfunction reduceReverse2UnsafeU(l1, l2, accu, f) {\n  if (l1 && l2) {\n    return f(reduceReverse2UnsafeU(l1.tl, l2.tl, accu, f), l1.hd, l2.hd);\n  } else {\n    return accu;\n  }\n}\n\nfunction reduceReverse2U(l1, l2, acc, f) {\n  var len = length(l1);\n  if (len < 1000) {\n    return reduceReverse2UnsafeU(l1, l2, acc, f);\n  } else {\n    return Belt_Array.reduceReverse2U(toArray(l1), toArray(l2), acc, f);\n  }\n}\n\nfunction reduceReverse2(l1, l2, acc, f) {\n  return reduceReverse2U(l1, l2, acc, Curry.__3(f));\n}\n\nfunction everyU(_xs, p) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return true;\n    }\n    if (!p(xs.hd)) {\n      return false;\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction every(xs, p) {\n  return everyU(xs, Curry.__1(p));\n}\n\nfunction someU(_xs, p) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return false;\n    }\n    if (p(xs.hd)) {\n      return true;\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction some(xs, p) {\n  return someU(xs, Curry.__1(p));\n}\n\nfunction every2U(_l1, _l2, p) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      return true;\n    }\n    if (!l2) {\n      return true;\n    }\n    if (!p(l1.hd, l2.hd)) {\n      return false;\n    }\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction every2(l1, l2, p) {\n  return every2U(l1, l2, Curry.__2(p));\n}\n\nfunction cmpByLength(_l1, _l2) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      if (l2) {\n        return -1;\n      } else {\n        return 0;\n      }\n    }\n    if (!l2) {\n      return 1;\n    }\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction cmpU(_l1, _l2, p) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      if (l2) {\n        return -1;\n      } else {\n        return 0;\n      }\n    }\n    if (!l2) {\n      return 1;\n    }\n    var c = p(l1.hd, l2.hd);\n    if (c !== 0) {\n      return c;\n    }\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction cmp(l1, l2, f) {\n  return cmpU(l1, l2, Curry.__2(f));\n}\n\nfunction eqU(_l1, _l2, p) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      if (l2) {\n        return false;\n      } else {\n        return true;\n      }\n    }\n    if (!l2) {\n      return false;\n    }\n    if (!p(l1.hd, l2.hd)) {\n      return false;\n    }\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction eq(l1, l2, f) {\n  return eqU(l1, l2, Curry.__2(f));\n}\n\nfunction some2U(_l1, _l2, p) {\n  while(true) {\n    var l2 = _l2;\n    var l1 = _l1;\n    if (!l1) {\n      return false;\n    }\n    if (!l2) {\n      return false;\n    }\n    if (p(l1.hd, l2.hd)) {\n      return true;\n    }\n    _l2 = l2.tl;\n    _l1 = l1.tl;\n    continue ;\n  };\n}\n\nfunction some2(l1, l2, p) {\n  return some2U(l1, l2, Curry.__2(p));\n}\n\nfunction hasU(_xs, x, eq) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return false;\n    }\n    if (eq(xs.hd, x)) {\n      return true;\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction has(xs, x, eq) {\n  return hasU(xs, x, Curry.__2(eq));\n}\n\nfunction getAssocU(_xs, x, eq) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return ;\n    }\n    var match = xs.hd;\n    if (eq(match[0], x)) {\n      return Caml_option.some(match[1]);\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction getAssoc(xs, x, eq) {\n  return getAssocU(xs, x, Curry.__2(eq));\n}\n\nfunction hasAssocU(_xs, x, eq) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return false;\n    }\n    if (eq(xs.hd[0], x)) {\n      return true;\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction hasAssoc(xs, x, eq) {\n  return hasAssocU(xs, x, Curry.__2(eq));\n}\n\nfunction removeAssocU(xs, x, eq) {\n  if (!xs) {\n    return /* [] */0;\n  }\n  var l = xs.tl;\n  var pair = xs.hd;\n  if (eq(pair[0], x)) {\n    return l;\n  }\n  var cell = {\n    hd: pair,\n    tl: /* [] */0\n  };\n  var removed = removeAssocAuxWithMap(l, x, cell, eq);\n  if (removed) {\n    return cell;\n  } else {\n    return xs;\n  }\n}\n\nfunction removeAssoc(xs, x, eq) {\n  return removeAssocU(xs, x, Curry.__2(eq));\n}\n\nfunction setAssocU(xs, x, k, eq) {\n  if (!xs) {\n    return {\n            hd: [\n              x,\n              k\n            ],\n            tl: /* [] */0\n          };\n  }\n  var l = xs.tl;\n  var pair = xs.hd;\n  if (eq(pair[0], x)) {\n    return {\n            hd: [\n              x,\n              k\n            ],\n            tl: l\n          };\n  }\n  var cell = {\n    hd: pair,\n    tl: /* [] */0\n  };\n  var replaced = setAssocAuxWithMap(l, x, k, cell, eq);\n  if (replaced) {\n    return cell;\n  } else {\n    return {\n            hd: [\n              x,\n              k\n            ],\n            tl: xs\n          };\n  }\n}\n\nfunction setAssoc(xs, x, k, eq) {\n  return setAssocU(xs, x, k, Curry.__2(eq));\n}\n\nfunction sortU(xs, cmp) {\n  var arr = toArray(xs);\n  Belt_SortArray.stableSortInPlaceByU(arr, cmp);\n  return fromArray(arr);\n}\n\nfunction sort(xs, cmp) {\n  return sortU(xs, Curry.__2(cmp));\n}\n\nfunction getByU(_xs, p) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return ;\n    }\n    var x = xs.hd;\n    if (p(x)) {\n      return Caml_option.some(x);\n    }\n    _xs = xs.tl;\n    continue ;\n  };\n}\n\nfunction getBy(xs, p) {\n  return getByU(xs, Curry.__1(p));\n}\n\nfunction keepU(_xs, p) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return /* [] */0;\n    }\n    var t = xs.tl;\n    var h = xs.hd;\n    if (p(h)) {\n      var cell = {\n        hd: h,\n        tl: /* [] */0\n      };\n      copyAuxWitFilter(p, t, cell);\n      return cell;\n    }\n    _xs = t;\n    continue ;\n  };\n}\n\nfunction keep(xs, p) {\n  return keepU(xs, Curry.__1(p));\n}\n\nfunction keepWithIndexU(xs, p) {\n  var _xs = xs;\n  var _i = 0;\n  while(true) {\n    var i = _i;\n    var xs$1 = _xs;\n    if (!xs$1) {\n      return /* [] */0;\n    }\n    var t = xs$1.tl;\n    var h = xs$1.hd;\n    if (p(h, i)) {\n      var cell = {\n        hd: h,\n        tl: /* [] */0\n      };\n      copyAuxWithFilterIndex(p, t, cell, i + 1 | 0);\n      return cell;\n    }\n    _i = i + 1 | 0;\n    _xs = t;\n    continue ;\n  };\n}\n\nfunction keepWithIndex(xs, p) {\n  return keepWithIndexU(xs, Curry.__2(p));\n}\n\nfunction keepMapU(_xs, p) {\n  while(true) {\n    var xs = _xs;\n    if (!xs) {\n      return /* [] */0;\n    }\n    var t = xs.tl;\n    var h = p(xs.hd);\n    if (h !== undefined) {\n      var cell = {\n        hd: Caml_option.valFromOption(h),\n        tl: /* [] */0\n      };\n      copyAuxWitFilterMap(p, t, cell);\n      return cell;\n    }\n    _xs = t;\n    continue ;\n  };\n}\n\nfunction keepMap(xs, p) {\n  return keepMapU(xs, Curry.__1(p));\n}\n\nfunction partitionU(l, p) {\n  if (!l) {\n    return [\n            /* [] */0,\n            /* [] */0\n          ];\n  }\n  var h = l.hd;\n  var nextX = {\n    hd: h,\n    tl: /* [] */0\n  };\n  var nextY = {\n    hd: h,\n    tl: /* [] */0\n  };\n  var b = p(h);\n  partitionAux(p, l.tl, nextX, nextY);\n  if (b) {\n    return [\n            nextX,\n            nextY.tl\n          ];\n  } else {\n    return [\n            nextX.tl,\n            nextY\n          ];\n  }\n}\n\nfunction partition(l, p) {\n  return partitionU(l, Curry.__1(p));\n}\n\nfunction unzip(xs) {\n  if (!xs) {\n    return [\n            /* [] */0,\n            /* [] */0\n          ];\n  }\n  var match = xs.hd;\n  var cellX = {\n    hd: match[0],\n    tl: /* [] */0\n  };\n  var cellY = {\n    hd: match[1],\n    tl: /* [] */0\n  };\n  splitAux(xs.tl, cellX, cellY);\n  return [\n          cellX,\n          cellY\n        ];\n}\n\nfunction zip(l1, l2) {\n  if (!l1) {\n    return /* [] */0;\n  }\n  if (!l2) {\n    return /* [] */0;\n  }\n  var cell = {\n    hd: [\n      l1.hd,\n      l2.hd\n    ],\n    tl: /* [] */0\n  };\n  zipAux(l1.tl, l2.tl, cell);\n  return cell;\n}\n\nvar size = length;\n\nvar filter = keep;\n\nvar filterWithIndex = keepWithIndex;\n\nexports.length = length;\nexports.size = size;\nexports.head = head;\nexports.headExn = headExn;\nexports.tail = tail;\nexports.tailExn = tailExn;\nexports.add = add;\nexports.get = get;\nexports.getExn = getExn;\nexports.make = make;\nexports.makeByU = makeByU;\nexports.makeBy = makeBy;\nexports.shuffle = shuffle;\nexports.drop = drop;\nexports.take = take;\nexports.splitAt = splitAt;\nexports.concat = concat;\nexports.concatMany = concatMany;\nexports.reverseConcat = reverseConcat;\nexports.flatten = flatten;\nexports.mapU = mapU;\nexports.map = map;\nexports.zip = zip;\nexports.zipByU = zipByU;\nexports.zipBy = zipBy;\nexports.mapWithIndexU = mapWithIndexU;\nexports.mapWithIndex = mapWithIndex;\nexports.fromArray = fromArray;\nexports.toArray = toArray;\nexports.reverse = reverse;\nexports.mapReverseU = mapReverseU;\nexports.mapReverse = mapReverse;\nexports.forEachU = forEachU;\nexports.forEach = forEach;\nexports.forEachWithIndexU = forEachWithIndexU;\nexports.forEachWithIndex = forEachWithIndex;\nexports.reduceU = reduceU;\nexports.reduce = reduce;\nexports.reduceWithIndexU = reduceWithIndexU;\nexports.reduceWithIndex = reduceWithIndex;\nexports.reduceReverseU = reduceReverseU;\nexports.reduceReverse = reduceReverse;\nexports.mapReverse2U = mapReverse2U;\nexports.mapReverse2 = mapReverse2;\nexports.forEach2U = forEach2U;\nexports.forEach2 = forEach2;\nexports.reduce2U = reduce2U;\nexports.reduce2 = reduce2;\nexports.reduceReverse2U = reduceReverse2U;\nexports.reduceReverse2 = reduceReverse2;\nexports.everyU = everyU;\nexports.every = every;\nexports.someU = someU;\nexports.some = some;\nexports.every2U = every2U;\nexports.every2 = every2;\nexports.some2U = some2U;\nexports.some2 = some2;\nexports.cmpByLength = cmpByLength;\nexports.cmpU = cmpU;\nexports.cmp = cmp;\nexports.eqU = eqU;\nexports.eq = eq;\nexports.hasU = hasU;\nexports.has = has;\nexports.getByU = getByU;\nexports.getBy = getBy;\nexports.keepU = keepU;\nexports.keep = keep;\nexports.filter = filter;\nexports.keepWithIndexU = keepWithIndexU;\nexports.keepWithIndex = keepWithIndex;\nexports.filterWithIndex = filterWithIndex;\nexports.keepMapU = keepMapU;\nexports.keepMap = keepMap;\nexports.partitionU = partitionU;\nexports.partition = partition;\nexports.unzip = unzip;\nexports.getAssocU = getAssocU;\nexports.getAssoc = getAssoc;\nexports.hasAssocU = hasAssocU;\nexports.hasAssoc = hasAssoc;\nexports.removeAssocU = removeAssocU;\nexports.removeAssoc = removeAssoc;\nexports.setAssocU = setAssocU;\nexports.setAssoc = setAssoc;\nexports.sortU = sortU;\nexports.sort = sort;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/belt_List.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/belt_Option.js":
/*!******************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/belt_Option.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\n\nfunction keepU(opt, p) {\n  if (opt !== undefined && p(Caml_option.valFromOption(opt))) {\n    return opt;\n  }\n  \n}\n\nfunction keep(opt, p) {\n  return keepU(opt, Curry.__1(p));\n}\n\nfunction forEachU(opt, f) {\n  if (opt !== undefined) {\n    return f(Caml_option.valFromOption(opt));\n  }\n  \n}\n\nfunction forEach(opt, f) {\n  forEachU(opt, Curry.__1(f));\n}\n\nfunction getExn(x) {\n  if (x !== undefined) {\n    return Caml_option.valFromOption(x);\n  }\n  throw {\n        RE_EXN_ID: \"Not_found\",\n        Error: new Error()\n      };\n}\n\nfunction mapWithDefaultU(opt, $$default, f) {\n  if (opt !== undefined) {\n    return f(Caml_option.valFromOption(opt));\n  } else {\n    return $$default;\n  }\n}\n\nfunction mapWithDefault(opt, $$default, f) {\n  return mapWithDefaultU(opt, $$default, Curry.__1(f));\n}\n\nfunction mapU(opt, f) {\n  if (opt !== undefined) {\n    return Caml_option.some(f(Caml_option.valFromOption(opt)));\n  }\n  \n}\n\nfunction map(opt, f) {\n  return mapU(opt, Curry.__1(f));\n}\n\nfunction flatMapU(opt, f) {\n  if (opt !== undefined) {\n    return f(Caml_option.valFromOption(opt));\n  }\n  \n}\n\nfunction flatMap(opt, f) {\n  return flatMapU(opt, Curry.__1(f));\n}\n\nfunction getWithDefault(opt, $$default) {\n  if (opt !== undefined) {\n    return Caml_option.valFromOption(opt);\n  } else {\n    return $$default;\n  }\n}\n\nfunction orElse(opt, other) {\n  if (opt !== undefined) {\n    return opt;\n  } else {\n    return other;\n  }\n}\n\nfunction isSome(param) {\n  return param !== undefined;\n}\n\nfunction isNone(x) {\n  return x === undefined;\n}\n\nfunction eqU(a, b, f) {\n  if (a !== undefined) {\n    if (b !== undefined) {\n      return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));\n    } else {\n      return false;\n    }\n  } else {\n    return b === undefined;\n  }\n}\n\nfunction eq(a, b, f) {\n  return eqU(a, b, Curry.__2(f));\n}\n\nfunction cmpU(a, b, f) {\n  if (a !== undefined) {\n    if (b !== undefined) {\n      return f(Caml_option.valFromOption(a), Caml_option.valFromOption(b));\n    } else {\n      return 1;\n    }\n  } else if (b !== undefined) {\n    return -1;\n  } else {\n    return 0;\n  }\n}\n\nfunction cmp(a, b, f) {\n  return cmpU(a, b, Curry.__2(f));\n}\n\nexports.keepU = keepU;\nexports.keep = keep;\nexports.forEachU = forEachU;\nexports.forEach = forEach;\nexports.getExn = getExn;\nexports.mapWithDefaultU = mapWithDefaultU;\nexports.mapWithDefault = mapWithDefault;\nexports.mapU = mapU;\nexports.map = map;\nexports.flatMapU = flatMapU;\nexports.flatMap = flatMap;\nexports.getWithDefault = getWithDefault;\nexports.orElse = orElse;\nexports.isSome = isSome;\nexports.isNone = isNone;\nexports.eqU = eqU;\nexports.eq = eq;\nexports.cmpU = cmpU;\nexports.cmp = cmp;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/belt_Option.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/belt_SortArray.js":
/*!*********************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/belt_SortArray.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Belt_Array = __webpack_require__(/*! ./belt_Array.js */ \"../../../../../node_modules/rescript/lib/js/belt_Array.js\");\n\nfunction sortedLengthAuxMore(xs, _prec, _acc, len, lt) {\n  while(true) {\n    var acc = _acc;\n    var prec = _prec;\n    if (acc >= len) {\n      return acc;\n    }\n    var v = xs[acc];\n    if (!lt(v, prec)) {\n      return acc;\n    }\n    _acc = acc + 1 | 0;\n    _prec = v;\n    continue ;\n  };\n}\n\nfunction strictlySortedLengthU(xs, lt) {\n  var len = xs.length;\n  if (len === 0 || len === 1) {\n    return len;\n  }\n  var x0 = xs[0];\n  var x1 = xs[1];\n  if (lt(x0, x1)) {\n    var _prec = x1;\n    var _acc = 2;\n    while(true) {\n      var acc = _acc;\n      var prec = _prec;\n      if (acc >= len) {\n        return acc;\n      }\n      var v = xs[acc];\n      if (!lt(prec, v)) {\n        return acc;\n      }\n      _acc = acc + 1 | 0;\n      _prec = v;\n      continue ;\n    };\n  } else if (lt(x1, x0)) {\n    return -sortedLengthAuxMore(xs, x1, 2, len, lt) | 0;\n  } else {\n    return 1;\n  }\n}\n\nfunction strictlySortedLength(xs, lt) {\n  return strictlySortedLengthU(xs, Curry.__2(lt));\n}\n\nfunction isSortedU(a, cmp) {\n  var len = a.length;\n  if (len === 0) {\n    return true;\n  } else {\n    var _i = 0;\n    var last_bound = len - 1 | 0;\n    while(true) {\n      var i = _i;\n      if (i === last_bound) {\n        return true;\n      }\n      if (cmp(a[i], a[i + 1 | 0]) > 0) {\n        return false;\n      }\n      _i = i + 1 | 0;\n      continue ;\n    };\n  }\n}\n\nfunction isSorted(a, cmp) {\n  return isSortedU(a, Curry.__2(cmp));\n}\n\nfunction merge(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  var src1r = src1ofs + src1len | 0;\n  var src2r = src2ofs + src2len | 0;\n  var _i1 = src1ofs;\n  var _s1 = src[src1ofs];\n  var _i2 = src2ofs;\n  var _s2 = src2[src2ofs];\n  var _d = dstofs;\n  while(true) {\n    var d = _d;\n    var s2 = _s2;\n    var i2 = _i2;\n    var s1 = _s1;\n    var i1 = _i1;\n    if (cmp(s1, s2) <= 0) {\n      dst[d] = s1;\n      var i1$1 = i1 + 1 | 0;\n      if (i1$1 >= src1r) {\n        return Belt_Array.blitUnsafe(src2, i2, dst, d + 1 | 0, src2r - i2 | 0);\n      }\n      _d = d + 1 | 0;\n      _s1 = src[i1$1];\n      _i1 = i1$1;\n      continue ;\n    }\n    dst[d] = s2;\n    var i2$1 = i2 + 1 | 0;\n    if (i2$1 >= src2r) {\n      return Belt_Array.blitUnsafe(src, i1, dst, d + 1 | 0, src1r - i1 | 0);\n    }\n    _d = d + 1 | 0;\n    _s2 = src2[i2$1];\n    _i2 = i2$1;\n    continue ;\n  };\n}\n\nfunction unionU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  var src1r = src1ofs + src1len | 0;\n  var src2r = src2ofs + src2len | 0;\n  var _i1 = src1ofs;\n  var _s1 = src[src1ofs];\n  var _i2 = src2ofs;\n  var _s2 = src2[src2ofs];\n  var _d = dstofs;\n  while(true) {\n    var d = _d;\n    var s2 = _s2;\n    var i2 = _i2;\n    var s1 = _s1;\n    var i1 = _i1;\n    var c = cmp(s1, s2);\n    if (c < 0) {\n      dst[d] = s1;\n      var i1$1 = i1 + 1 | 0;\n      var d$1 = d + 1 | 0;\n      if (i1$1 < src1r) {\n        _d = d$1;\n        _s1 = src[i1$1];\n        _i1 = i1$1;\n        continue ;\n      }\n      Belt_Array.blitUnsafe(src2, i2, dst, d$1, src2r - i2 | 0);\n      return (d$1 + src2r | 0) - i2 | 0;\n    }\n    if (c === 0) {\n      dst[d] = s1;\n      var i1$2 = i1 + 1 | 0;\n      var i2$1 = i2 + 1 | 0;\n      var d$2 = d + 1 | 0;\n      if (!(i1$2 < src1r && i2$1 < src2r)) {\n        if (i1$2 === src1r) {\n          Belt_Array.blitUnsafe(src2, i2$1, dst, d$2, src2r - i2$1 | 0);\n          return (d$2 + src2r | 0) - i2$1 | 0;\n        } else {\n          Belt_Array.blitUnsafe(src, i1$2, dst, d$2, src1r - i1$2 | 0);\n          return (d$2 + src1r | 0) - i1$2 | 0;\n        }\n      }\n      _d = d$2;\n      _s2 = src2[i2$1];\n      _i2 = i2$1;\n      _s1 = src[i1$2];\n      _i1 = i1$2;\n      continue ;\n    }\n    dst[d] = s2;\n    var i2$2 = i2 + 1 | 0;\n    var d$3 = d + 1 | 0;\n    if (i2$2 < src2r) {\n      _d = d$3;\n      _s2 = src2[i2$2];\n      _i2 = i2$2;\n      continue ;\n    }\n    Belt_Array.blitUnsafe(src, i1, dst, d$3, src1r - i1 | 0);\n    return (d$3 + src1r | 0) - i1 | 0;\n  };\n}\n\nfunction union(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  return unionU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, Curry.__2(cmp));\n}\n\nfunction intersectU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  var src1r = src1ofs + src1len | 0;\n  var src2r = src2ofs + src2len | 0;\n  var _i1 = src1ofs;\n  var _s1 = src[src1ofs];\n  var _i2 = src2ofs;\n  var _s2 = src2[src2ofs];\n  var _d = dstofs;\n  while(true) {\n    var d = _d;\n    var s2 = _s2;\n    var i2 = _i2;\n    var s1 = _s1;\n    var i1 = _i1;\n    var c = cmp(s1, s2);\n    if (c < 0) {\n      var i1$1 = i1 + 1 | 0;\n      if (i1$1 >= src1r) {\n        return d;\n      }\n      _s1 = src[i1$1];\n      _i1 = i1$1;\n      continue ;\n    }\n    if (c === 0) {\n      dst[d] = s1;\n      var i1$2 = i1 + 1 | 0;\n      var i2$1 = i2 + 1 | 0;\n      var d$1 = d + 1 | 0;\n      if (!(i1$2 < src1r && i2$1 < src2r)) {\n        return d$1;\n      }\n      _d = d$1;\n      _s2 = src2[i2$1];\n      _i2 = i2$1;\n      _s1 = src[i1$2];\n      _i1 = i1$2;\n      continue ;\n    }\n    var i2$2 = i2 + 1 | 0;\n    if (i2$2 >= src2r) {\n      return d;\n    }\n    _s2 = src2[i2$2];\n    _i2 = i2$2;\n    continue ;\n  };\n}\n\nfunction intersect(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  return intersectU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, Curry.__2(cmp));\n}\n\nfunction diffU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  var src1r = src1ofs + src1len | 0;\n  var src2r = src2ofs + src2len | 0;\n  var _i1 = src1ofs;\n  var _s1 = src[src1ofs];\n  var _i2 = src2ofs;\n  var _s2 = src2[src2ofs];\n  var _d = dstofs;\n  while(true) {\n    var d = _d;\n    var s2 = _s2;\n    var i2 = _i2;\n    var s1 = _s1;\n    var i1 = _i1;\n    var c = cmp(s1, s2);\n    if (c < 0) {\n      dst[d] = s1;\n      var d$1 = d + 1 | 0;\n      var i1$1 = i1 + 1 | 0;\n      if (i1$1 >= src1r) {\n        return d$1;\n      }\n      _d = d$1;\n      _s1 = src[i1$1];\n      _i1 = i1$1;\n      continue ;\n    }\n    if (c === 0) {\n      var i1$2 = i1 + 1 | 0;\n      var i2$1 = i2 + 1 | 0;\n      if (!(i1$2 < src1r && i2$1 < src2r)) {\n        if (i1$2 === src1r) {\n          return d;\n        } else {\n          Belt_Array.blitUnsafe(src, i1$2, dst, d, src1r - i1$2 | 0);\n          return (d + src1r | 0) - i1$2 | 0;\n        }\n      }\n      _s2 = src2[i2$1];\n      _i2 = i2$1;\n      _s1 = src[i1$2];\n      _i1 = i1$2;\n      continue ;\n    }\n    var i2$2 = i2 + 1 | 0;\n    if (i2$2 < src2r) {\n      _s2 = src2[i2$2];\n      _i2 = i2$2;\n      continue ;\n    }\n    Belt_Array.blitUnsafe(src, i1, dst, d, src1r - i1 | 0);\n    return (d + src1r | 0) - i1 | 0;\n  };\n}\n\nfunction diff(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, cmp) {\n  return diffU(src, src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs, Curry.__2(cmp));\n}\n\nfunction insertionSort(src, srcofs, dst, dstofs, len, cmp) {\n  for(var i = 0; i < len; ++i){\n    var e = src[srcofs + i | 0];\n    var j = (dstofs + i | 0) - 1 | 0;\n    while(j >= dstofs && cmp(dst[j], e) > 0) {\n      dst[j + 1 | 0] = dst[j];\n      j = j - 1 | 0;\n    };\n    dst[j + 1 | 0] = e;\n  }\n}\n\nfunction sortTo(src, srcofs, dst, dstofs, len, cmp) {\n  if (len <= 5) {\n    return insertionSort(src, srcofs, dst, dstofs, len, cmp);\n  }\n  var l1 = len / 2 | 0;\n  var l2 = len - l1 | 0;\n  sortTo(src, srcofs + l1 | 0, dst, dstofs + l1 | 0, l2, cmp);\n  sortTo(src, srcofs, src, srcofs + l2 | 0, l1, cmp);\n  merge(src, srcofs + l2 | 0, l1, dst, dstofs + l1 | 0, l2, dst, dstofs, cmp);\n}\n\nfunction stableSortInPlaceByU(a, cmp) {\n  var l = a.length;\n  if (l <= 5) {\n    return insertionSort(a, 0, a, 0, l, cmp);\n  }\n  var l1 = l / 2 | 0;\n  var l2 = l - l1 | 0;\n  var t = new Array(l2);\n  sortTo(a, l1, t, 0, l2, cmp);\n  sortTo(a, 0, a, l2, l1, cmp);\n  merge(a, l2, l1, t, 0, l2, a, 0, cmp);\n}\n\nfunction stableSortInPlaceBy(a, cmp) {\n  stableSortInPlaceByU(a, Curry.__2(cmp));\n}\n\nfunction stableSortByU(a, cmp) {\n  var b = a.slice(0);\n  stableSortInPlaceByU(b, cmp);\n  return b;\n}\n\nfunction stableSortBy(a, cmp) {\n  return stableSortByU(a, Curry.__2(cmp));\n}\n\nfunction binarySearchByU(sorted, key, cmp) {\n  var len = sorted.length;\n  if (len === 0) {\n    return -1;\n  }\n  var lo = sorted[0];\n  var c = cmp(key, lo);\n  if (c < 0) {\n    return -1;\n  }\n  var hi = sorted[len - 1 | 0];\n  var c2 = cmp(key, hi);\n  if (c2 > 0) {\n    return -(len + 1 | 0) | 0;\n  } else {\n    var _lo = 0;\n    var _hi = len - 1 | 0;\n    while(true) {\n      var hi$1 = _hi;\n      var lo$1 = _lo;\n      var mid = (lo$1 + hi$1 | 0) / 2 | 0;\n      var midVal = sorted[mid];\n      var c$1 = cmp(key, midVal);\n      if (c$1 === 0) {\n        return mid;\n      }\n      if (c$1 < 0) {\n        if (hi$1 === mid) {\n          if (cmp(sorted[lo$1], key) === 0) {\n            return lo$1;\n          } else {\n            return -(hi$1 + 1 | 0) | 0;\n          }\n        }\n        _hi = mid;\n        continue ;\n      }\n      if (lo$1 === mid) {\n        if (cmp(sorted[hi$1], key) === 0) {\n          return hi$1;\n        } else {\n          return -(hi$1 + 1 | 0) | 0;\n        }\n      }\n      _lo = mid;\n      continue ;\n    };\n  }\n}\n\nfunction binarySearchBy(sorted, key, cmp) {\n  return binarySearchByU(sorted, key, Curry.__2(cmp));\n}\n\nvar Int;\n\nvar $$String;\n\nexports.Int = Int;\nexports.$$String = $$String;\nexports.strictlySortedLengthU = strictlySortedLengthU;\nexports.strictlySortedLength = strictlySortedLength;\nexports.isSortedU = isSortedU;\nexports.isSorted = isSorted;\nexports.stableSortInPlaceByU = stableSortInPlaceByU;\nexports.stableSortInPlaceBy = stableSortInPlaceBy;\nexports.stableSortByU = stableSortByU;\nexports.stableSortBy = stableSortBy;\nexports.binarySearchByU = binarySearchByU;\nexports.binarySearchBy = binarySearchBy;\nexports.unionU = unionU;\nexports.union = union;\nexports.intersectU = intersectU;\nexports.intersect = intersect;\nexports.diffU = diffU;\nexports.diff = diff;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/belt_SortArray.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml.js":
/*!***********************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction int_compare(x, y) {\n  if (x < y) {\n    return -1;\n  } else if (x === y) {\n    return 0;\n  } else {\n    return 1;\n  }\n}\n\nfunction bool_compare(x, y) {\n  if (x) {\n    if (y) {\n      return 0;\n    } else {\n      return 1;\n    }\n  } else if (y) {\n    return -1;\n  } else {\n    return 0;\n  }\n}\n\nfunction float_compare(x, y) {\n  if (x === y) {\n    return 0;\n  } else if (x < y) {\n    return -1;\n  } else if (x > y || x === x) {\n    return 1;\n  } else if (y === y) {\n    return -1;\n  } else {\n    return 0;\n  }\n}\n\nfunction string_compare(s1, s2) {\n  if (s1 === s2) {\n    return 0;\n  } else if (s1 < s2) {\n    return -1;\n  } else {\n    return 1;\n  }\n}\n\nfunction bool_min(x, y) {\n  if (x) {\n    return y;\n  } else {\n    return x;\n  }\n}\n\nfunction int_min(x, y) {\n  if (x < y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction float_min(x, y) {\n  if (x < y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction string_min(x, y) {\n  if (x < y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction bool_max(x, y) {\n  if (x) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction int_max(x, y) {\n  if (x > y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction float_max(x, y) {\n  if (x > y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction string_max(x, y) {\n  if (x > y) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction i64_eq(x, y) {\n  if (x[1] === y[1]) {\n    return x[0] === y[0];\n  } else {\n    return false;\n  }\n}\n\nfunction i64_ge(param, param$1) {\n  var other_hi = param$1[0];\n  var hi = param[0];\n  if (hi > other_hi) {\n    return true;\n  } else if (hi < other_hi) {\n    return false;\n  } else {\n    return param[1] >= param$1[1];\n  }\n}\n\nfunction i64_neq(x, y) {\n  return !i64_eq(x, y);\n}\n\nfunction i64_lt(x, y) {\n  return !i64_ge(x, y);\n}\n\nfunction i64_gt(x, y) {\n  if (x[0] > y[0]) {\n    return true;\n  } else if (x[0] < y[0]) {\n    return false;\n  } else {\n    return x[1] > y[1];\n  }\n}\n\nfunction i64_le(x, y) {\n  return !i64_gt(x, y);\n}\n\nfunction i64_min(x, y) {\n  if (i64_ge(x, y)) {\n    return y;\n  } else {\n    return x;\n  }\n}\n\nfunction i64_max(x, y) {\n  if (i64_gt(x, y)) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nexports.int_compare = int_compare;\nexports.bool_compare = bool_compare;\nexports.float_compare = float_compare;\nexports.string_compare = string_compare;\nexports.bool_min = bool_min;\nexports.int_min = int_min;\nexports.float_min = float_min;\nexports.string_min = string_min;\nexports.bool_max = bool_max;\nexports.int_max = int_max;\nexports.float_max = float_max;\nexports.string_max = string_max;\nexports.i64_eq = i64_eq;\nexports.i64_neq = i64_neq;\nexports.i64_lt = i64_lt;\nexports.i64_gt = i64_gt;\nexports.i64_le = i64_le;\nexports.i64_ge = i64_ge;\nexports.i64_min = i64_min;\nexports.i64_max = i64_max;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_array.js":
/*!*****************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_array.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction sub(x, offset, len) {\n  var result = new Array(len);\n  var j = 0;\n  var i = offset;\n  while(j < len) {\n    result[j] = x[i];\n    j = j + 1 | 0;\n    i = i + 1 | 0;\n  };\n  return result;\n}\n\nfunction len(_acc, _l) {\n  while(true) {\n    var l = _l;\n    var acc = _acc;\n    if (!l) {\n      return acc;\n    }\n    _l = l.tl;\n    _acc = l.hd.length + acc | 0;\n    continue ;\n  };\n}\n\nfunction fill(arr, _i, _l) {\n  while(true) {\n    var l = _l;\n    var i = _i;\n    if (!l) {\n      return ;\n    }\n    var x = l.hd;\n    var l$1 = x.length;\n    var k = i;\n    var j = 0;\n    while(j < l$1) {\n      arr[k] = x[j];\n      k = k + 1 | 0;\n      j = j + 1 | 0;\n    };\n    _l = l.tl;\n    _i = k;\n    continue ;\n  };\n}\n\nfunction concat(l) {\n  var v = len(0, l);\n  var result = new Array(v);\n  fill(result, 0, l);\n  return result;\n}\n\nfunction set(xs, index, newval) {\n  if (index < 0 || index >= xs.length) {\n    throw {\n          RE_EXN_ID: \"Invalid_argument\",\n          _1: \"index out of bounds\",\n          Error: new Error()\n        };\n  }\n  xs[index] = newval;\n}\n\nfunction get(xs, index) {\n  if (index < 0 || index >= xs.length) {\n    throw {\n          RE_EXN_ID: \"Invalid_argument\",\n          _1: \"index out of bounds\",\n          Error: new Error()\n        };\n  }\n  return xs[index];\n}\n\nfunction make(len, init) {\n  var b = new Array(len);\n  for(var i = 0; i < len; ++i){\n    b[i] = init;\n  }\n  return b;\n}\n\nfunction make_float(len) {\n  var b = new Array(len);\n  for(var i = 0; i < len; ++i){\n    b[i] = 0;\n  }\n  return b;\n}\n\nfunction blit(a1, i1, a2, i2, len) {\n  if (i2 <= i1) {\n    for(var j = 0; j < len; ++j){\n      a2[j + i2 | 0] = a1[j + i1 | 0];\n    }\n    return ;\n  }\n  for(var j$1 = len - 1 | 0; j$1 >= 0; --j$1){\n    a2[j$1 + i2 | 0] = a1[j$1 + i1 | 0];\n  }\n}\n\nfunction dup(prim) {\n  return prim.slice(0);\n}\n\nexports.dup = dup;\nexports.sub = sub;\nexports.concat = concat;\nexports.make = make;\nexports.make_float = make_float;\nexports.blit = blit;\nexports.get = get;\nexports.set = set;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_array.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_exceptions.js":
/*!**********************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_exceptions.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nvar id = {\n  contents: 0\n};\n\nfunction create(str) {\n  id.contents = id.contents + 1 | 0;\n  return str + (\"/\" + id.contents);\n}\n\nfunction is_extension(e) {\n  if (e == null) {\n    return false;\n  } else {\n    return typeof e.RE_EXN_ID === \"string\";\n  }\n}\n\nfunction exn_slot_name(x) {\n  return x.RE_EXN_ID;\n}\n\nexports.id = id;\nexports.create = create;\nexports.is_extension = is_extension;\nexports.exn_slot_name = exn_slot_name;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_exceptions.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_js_exceptions.js":
/*!*************************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_js_exceptions.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Caml_exceptions = __webpack_require__(/*! ./caml_exceptions.js */ \"../../../../../node_modules/rescript/lib/js/caml_exceptions.js\");\n\nvar $$Error = \"JsError\";\n\nfunction internalToOCamlException(e) {\n  if (Caml_exceptions.is_extension(e)) {\n    return e;\n  } else {\n    return {\n            RE_EXN_ID: \"JsError\",\n            _1: e\n          };\n  }\n}\n\nfunction as_js_exn(exn) {\n  if (exn.RE_EXN_ID === $$Error) {\n    return Caml_option.some(exn._1);\n  }\n  \n}\n\nexports.$$Error = $$Error;\nexports.internalToOCamlException = internalToOCamlException;\nexports.as_js_exn = as_js_exn;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_js_exceptions.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_obj.js":
/*!***************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_obj.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml = __webpack_require__(/*! ./caml.js */ \"../../../../../node_modules/rescript/lib/js/caml.js\");\n\nvar for_in = (function(o,foo){\n        for (var x in o) { foo(x) }});\n\nvar obj_dup = (function(x){\n  if(Array.isArray(x)){\n    var len = x.length  \n    var v = new Array(len)\n    for(var i = 0 ; i < len ; ++i){\n      v[i] = x[i]\n    }\n    if(x.TAG !== undefined){\n      v.TAG = x.TAG // TODO this can be removed eventually\n    }  \n    return v \n  } \n  return Object.assign({},x)    \n});\n\nvar update_dummy = (function(x,y){\n  var k  \n  if(Array.isArray(y)){\n    for(k = 0; k < y.length ; ++k){\n      x[k] = y[k]\n    }\n    if(y.TAG !== undefined){\n      x.TAG = y.TAG\n    }\n  } else {\n    for (var k in y){\n      x[k] = y[k]\n    }\n  }\n});\n\nfunction compare(a, b) {\n  if (a === b) {\n    return 0;\n  }\n  var a_type = typeof a;\n  var b_type = typeof b;\n  switch (a_type) {\n    case \"boolean\" :\n        if (b_type === \"boolean\") {\n          return Caml.bool_compare(a, b);\n        }\n        break;\n    case \"function\" :\n        if (b_type === \"function\") {\n          throw {\n                RE_EXN_ID: \"Invalid_argument\",\n                _1: \"compare: functional value\",\n                Error: new Error()\n              };\n        }\n        break;\n    case \"number\" :\n        if (b_type === \"number\") {\n          return Caml.float_compare(a, b);\n        }\n        break;\n    case \"string\" :\n        if (b_type === \"string\") {\n          return Caml.string_compare(a, b);\n        } else {\n          return 1;\n        }\n    case \"undefined\" :\n        return -1;\n    default:\n      \n  }\n  switch (b_type) {\n    case \"string\" :\n        return -1;\n    case \"undefined\" :\n        return 1;\n    default:\n      if (a_type === \"boolean\") {\n        return 1;\n      }\n      if (b_type === \"boolean\") {\n        return -1;\n      }\n      if (a_type === \"function\") {\n        return 1;\n      }\n      if (b_type === \"function\") {\n        return -1;\n      }\n      if (a_type === \"number\") {\n        if (b === null || b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n          return 1;\n        } else {\n          return -1;\n        }\n      }\n      if (b_type === \"number\") {\n        if (a === null || a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n          return -1;\n        } else {\n          return 1;\n        }\n      }\n      if (a === null) {\n        if (b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n          return 1;\n        } else {\n          return -1;\n        }\n      }\n      if (b === null) {\n        if (a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n          return -1;\n        } else {\n          return 1;\n        }\n      }\n      if (a.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n        if (b.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n          return aux_obj_compare(a, b);\n        } else {\n          return -1;\n        }\n      }\n      var tag_a = a.TAG | 0;\n      var tag_b = b.TAG | 0;\n      if (tag_a === 248) {\n        return Caml.int_compare(a[1], b[1]);\n      }\n      if (tag_a === 251) {\n        throw {\n              RE_EXN_ID: \"Invalid_argument\",\n              _1: \"equal: abstract value\",\n              Error: new Error()\n            };\n      }\n      if (tag_a !== tag_b) {\n        if (tag_a < tag_b) {\n          return -1;\n        } else {\n          return 1;\n        }\n      }\n      var len_a = a.length | 0;\n      var len_b = b.length | 0;\n      if (len_a === len_b) {\n        if (Array.isArray(a)) {\n          var _i = 0;\n          while(true) {\n            var i = _i;\n            if (i === len_a) {\n              return 0;\n            }\n            var res = compare(a[i], b[i]);\n            if (res !== 0) {\n              return res;\n            }\n            _i = i + 1 | 0;\n            continue ;\n          };\n        } else if ((a instanceof Date && b instanceof Date)) {\n          return (a - b);\n        } else {\n          return aux_obj_compare(a, b);\n        }\n      } else if (len_a < len_b) {\n        var _i$1 = 0;\n        while(true) {\n          var i$1 = _i$1;\n          if (i$1 === len_a) {\n            return -1;\n          }\n          var res$1 = compare(a[i$1], b[i$1]);\n          if (res$1 !== 0) {\n            return res$1;\n          }\n          _i$1 = i$1 + 1 | 0;\n          continue ;\n        };\n      } else {\n        var _i$2 = 0;\n        while(true) {\n          var i$2 = _i$2;\n          if (i$2 === len_b) {\n            return 1;\n          }\n          var res$2 = compare(a[i$2], b[i$2]);\n          if (res$2 !== 0) {\n            return res$2;\n          }\n          _i$2 = i$2 + 1 | 0;\n          continue ;\n        };\n      }\n  }\n}\n\nfunction aux_obj_compare(a, b) {\n  var min_key_lhs = {\n    contents: undefined\n  };\n  var min_key_rhs = {\n    contents: undefined\n  };\n  var do_key = function (param, key) {\n    var min_key = param[2];\n    var b = param[1];\n    if (!(!Object.prototype.hasOwnProperty.call(b, key) || compare(param[0][key], b[key]) > 0)) {\n      return ;\n    }\n    var mk = min_key.contents;\n    if (mk !== undefined && key >= mk) {\n      return ;\n    } else {\n      min_key.contents = key;\n      return ;\n    }\n  };\n  var partial_arg = [\n    a,\n    b,\n    min_key_rhs\n  ];\n  var do_key_a = function (param) {\n    return do_key(partial_arg, param);\n  };\n  var partial_arg$1 = [\n    b,\n    a,\n    min_key_lhs\n  ];\n  var do_key_b = function (param) {\n    return do_key(partial_arg$1, param);\n  };\n  for_in(a, do_key_a);\n  for_in(b, do_key_b);\n  var match = min_key_lhs.contents;\n  var match$1 = min_key_rhs.contents;\n  if (match !== undefined) {\n    if (match$1 !== undefined) {\n      return Caml.string_compare(match, match$1);\n    } else {\n      return -1;\n    }\n  } else if (match$1 !== undefined) {\n    return 1;\n  } else {\n    return 0;\n  }\n}\n\nfunction equal(a, b) {\n  if (a === b) {\n    return true;\n  }\n  var a_type = typeof a;\n  if (a_type === \"string\" || a_type === \"number\" || a_type === \"boolean\" || a_type === \"undefined\" || a === null) {\n    return false;\n  }\n  var b_type = typeof b;\n  if (a_type === \"function\" || b_type === \"function\") {\n    throw {\n          RE_EXN_ID: \"Invalid_argument\",\n          _1: \"equal: functional value\",\n          Error: new Error()\n        };\n  }\n  if (b_type === \"number\" || b_type === \"undefined\" || b === null) {\n    return false;\n  }\n  var tag_a = a.TAG | 0;\n  var tag_b = b.TAG | 0;\n  if (tag_a === 248) {\n    return a[1] === b[1];\n  }\n  if (tag_a === 251) {\n    throw {\n          RE_EXN_ID: \"Invalid_argument\",\n          _1: \"equal: abstract value\",\n          Error: new Error()\n        };\n  }\n  if (tag_a !== tag_b) {\n    return false;\n  }\n  var len_a = a.length | 0;\n  var len_b = b.length | 0;\n  if (len_a === len_b) {\n    if (Array.isArray(a)) {\n      var _i = 0;\n      while(true) {\n        var i = _i;\n        if (i === len_a) {\n          return true;\n        }\n        if (!equal(a[i], b[i])) {\n          return false;\n        }\n        _i = i + 1 | 0;\n        continue ;\n      };\n    } else if ((a instanceof Date && b instanceof Date)) {\n      return !(a > b || a < b);\n    } else {\n      var result = {\n        contents: true\n      };\n      var do_key_a = function (key) {\n        if (!Object.prototype.hasOwnProperty.call(b, key)) {\n          result.contents = false;\n          return ;\n        }\n        \n      };\n      var do_key_b = function (key) {\n        if (!Object.prototype.hasOwnProperty.call(a, key) || !equal(b[key], a[key])) {\n          result.contents = false;\n          return ;\n        }\n        \n      };\n      for_in(a, do_key_a);\n      if (result.contents) {\n        for_in(b, do_key_b);\n      }\n      return result.contents;\n    }\n  } else {\n    return false;\n  }\n}\n\nfunction equal_null(x, y) {\n  if (y !== null) {\n    return equal(x, y);\n  } else {\n    return x === y;\n  }\n}\n\nfunction equal_undefined(x, y) {\n  if (y !== undefined) {\n    return equal(x, y);\n  } else {\n    return x === y;\n  }\n}\n\nfunction equal_nullable(x, y) {\n  if (y == null) {\n    return x === y;\n  } else {\n    return equal(x, y);\n  }\n}\n\nfunction notequal(a, b) {\n  if (typeof a === \"number\" && typeof b === \"number\") {\n    return a !== b;\n  } else {\n    return !equal(a, b);\n  }\n}\n\nfunction greaterequal(a, b) {\n  if (typeof a === \"number\" && typeof b === \"number\") {\n    return a >= b;\n  } else {\n    return compare(a, b) >= 0;\n  }\n}\n\nfunction greaterthan(a, b) {\n  if (typeof a === \"number\" && typeof b === \"number\") {\n    return a > b;\n  } else {\n    return compare(a, b) > 0;\n  }\n}\n\nfunction lessequal(a, b) {\n  if (typeof a === \"number\" && typeof b === \"number\") {\n    return a <= b;\n  } else {\n    return compare(a, b) <= 0;\n  }\n}\n\nfunction lessthan(a, b) {\n  if (typeof a === \"number\" && typeof b === \"number\") {\n    return a < b;\n  } else {\n    return compare(a, b) < 0;\n  }\n}\n\nfunction min(x, y) {\n  if (compare(x, y) <= 0) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nfunction max(x, y) {\n  if (compare(x, y) >= 0) {\n    return x;\n  } else {\n    return y;\n  }\n}\n\nexports.obj_dup = obj_dup;\nexports.update_dummy = update_dummy;\nexports.compare = compare;\nexports.equal = equal;\nexports.equal_null = equal_null;\nexports.equal_undefined = equal_undefined;\nexports.equal_nullable = equal_nullable;\nexports.notequal = notequal;\nexports.greaterequal = greaterequal;\nexports.greaterthan = greaterthan;\nexports.lessthan = lessthan;\nexports.lessequal = lessequal;\nexports.min = min;\nexports.max = max;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_obj.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_option.js":
/*!******************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_option.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction isNested(x) {\n  return x.BS_PRIVATE_NESTED_SOME_NONE !== undefined;\n}\n\nfunction some(x) {\n  if (x === undefined) {\n    return {\n            BS_PRIVATE_NESTED_SOME_NONE: 0\n          };\n  } else if (x !== null && x.BS_PRIVATE_NESTED_SOME_NONE !== undefined) {\n    return {\n            BS_PRIVATE_NESTED_SOME_NONE: x.BS_PRIVATE_NESTED_SOME_NONE + 1 | 0\n          };\n  } else {\n    return x;\n  }\n}\n\nfunction nullable_to_opt(x) {\n  if (x == null) {\n    return ;\n  } else {\n    return some(x);\n  }\n}\n\nfunction undefined_to_opt(x) {\n  if (x === undefined) {\n    return ;\n  } else {\n    return some(x);\n  }\n}\n\nfunction null_to_opt(x) {\n  if (x === null) {\n    return ;\n  } else {\n    return some(x);\n  }\n}\n\nfunction valFromOption(x) {\n  if (!(x !== null && x.BS_PRIVATE_NESTED_SOME_NONE !== undefined)) {\n    return x;\n  }\n  var depth = x.BS_PRIVATE_NESTED_SOME_NONE;\n  if (depth === 0) {\n    return ;\n  } else {\n    return {\n            BS_PRIVATE_NESTED_SOME_NONE: depth - 1 | 0\n          };\n  }\n}\n\nfunction option_get(x) {\n  if (x === undefined) {\n    return ;\n  } else {\n    return valFromOption(x);\n  }\n}\n\nfunction option_unwrap(x) {\n  if (x !== undefined) {\n    return x.VAL;\n  } else {\n    return x;\n  }\n}\n\nexports.nullable_to_opt = nullable_to_opt;\nexports.undefined_to_opt = undefined_to_opt;\nexports.null_to_opt = null_to_opt;\nexports.valFromOption = valFromOption;\nexports.some = some;\nexports.isNested = isNested;\nexports.option_get = option_get;\nexports.option_unwrap = option_unwrap;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_option.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/caml_splice_call.js":
/*!***********************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/caml_splice_call.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nvar spliceApply = (function(fn,args){\n  var i, argLen; \n  argLen = args.length\n  var applied = []\n  for(i = 0; i < argLen - 1; ++i){\n    applied.push(args[i])\n  }\n  var lastOne = args[argLen - 1]\n  for(i = 0; i < lastOne.length; ++i ){\n    applied.push(lastOne[i])\n  }\n  return fn.apply(null,applied)\n});\n\nvar spliceNewApply = (function (ctor,args){\n  var i, argLen;\n  argLen = args.length\n  var applied = [null] // Function.prototype.bind.apply(fn, args) requires the first element in `args` to be `null`\n  for(i = 0; i < argLen - 1; ++i){\n    applied.push(args[i])\n  }\n  var lastOne = args[argLen - 1]\n  for(i = 0; i < lastOne.length; ++i ){\n    applied.push(lastOne[i])\n  }\n  var C = Function.prototype.bind.apply(ctor, applied)\n  return new C()\n});\n\nvar spliceObjApply = (function(obj,name,args){\n  var i, argLen; \n  argLen = args.length\n  var applied = []\n  for(i = 0; i < argLen - 1; ++i){\n    applied.push(args[i])\n  }\n  var lastOne = args[argLen - 1]\n  for(i = 0; i < lastOne.length; ++i ){\n    applied.push(lastOne[i])\n  }\n  return (obj[name]).apply(obj,applied)\n});\n\nexports.spliceApply = spliceApply;\nexports.spliceNewApply = spliceNewApply;\nexports.spliceObjApply = spliceObjApply;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/caml_splice_call.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/curry.js":
/*!************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/curry.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml_array = __webpack_require__(/*! ./caml_array.js */ \"../../../../../node_modules/rescript/lib/js/caml_array.js\");\n\nfunction app(_f, _args) {\n  while(true) {\n    var args = _args;\n    var f = _f;\n    var init_arity = f.length;\n    var arity = init_arity === 0 ? 1 : init_arity;\n    var len = args.length;\n    var d = arity - len | 0;\n    if (d === 0) {\n      return f.apply(null, args);\n    }\n    if (d >= 0) {\n      return (function(f,args){\n      return function (x) {\n        return app(f, args.concat([x]));\n      }\n      }(f,args));\n    }\n    _args = Caml_array.sub(args, arity, -d | 0);\n    _f = f.apply(null, Caml_array.sub(args, 0, arity));\n    continue ;\n  };\n}\n\nfunction _1(o, a0) {\n  var arity = o.length;\n  if (arity === 1) {\n    return o(a0);\n  } else {\n    switch (arity) {\n      case 1 :\n          return o(a0);\n      case 2 :\n          return function (param) {\n            return o(a0, param);\n          };\n      case 3 :\n          return function (param, param$1) {\n            return o(a0, param, param$1);\n          };\n      case 4 :\n          return function (param, param$1, param$2) {\n            return o(a0, param, param$1, param$2);\n          };\n      case 5 :\n          return function (param, param$1, param$2, param$3) {\n            return o(a0, param, param$1, param$2, param$3);\n          };\n      case 6 :\n          return function (param, param$1, param$2, param$3, param$4) {\n            return o(a0, param, param$1, param$2, param$3, param$4);\n          };\n      case 7 :\n          return function (param, param$1, param$2, param$3, param$4, param$5) {\n            return o(a0, param, param$1, param$2, param$3, param$4, param$5);\n          };\n      default:\n        return app(o, [a0]);\n    }\n  }\n}\n\nfunction __1(o) {\n  var arity = o.length;\n  if (arity === 1) {\n    return o;\n  } else {\n    return function (a0) {\n      return _1(o, a0);\n    };\n  }\n}\n\nfunction _2(o, a0, a1) {\n  var arity = o.length;\n  if (arity === 2) {\n    return o(a0, a1);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [a1]);\n      case 2 :\n          return o(a0, a1);\n      case 3 :\n          return function (param) {\n            return o(a0, a1, param);\n          };\n      case 4 :\n          return function (param, param$1) {\n            return o(a0, a1, param, param$1);\n          };\n      case 5 :\n          return function (param, param$1, param$2) {\n            return o(a0, a1, param, param$1, param$2);\n          };\n      case 6 :\n          return function (param, param$1, param$2, param$3) {\n            return o(a0, a1, param, param$1, param$2, param$3);\n          };\n      case 7 :\n          return function (param, param$1, param$2, param$3, param$4) {\n            return o(a0, a1, param, param$1, param$2, param$3, param$4);\n          };\n      default:\n        return app(o, [\n                    a0,\n                    a1\n                  ]);\n    }\n  }\n}\n\nfunction __2(o) {\n  var arity = o.length;\n  if (arity === 2) {\n    return o;\n  } else {\n    return function (a0, a1) {\n      return _2(o, a0, a1);\n    };\n  }\n}\n\nfunction _3(o, a0, a1, a2) {\n  var arity = o.length;\n  if (arity === 3) {\n    return o(a0, a1, a2);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [a2]);\n      case 3 :\n          return o(a0, a1, a2);\n      case 4 :\n          return function (param) {\n            return o(a0, a1, a2, param);\n          };\n      case 5 :\n          return function (param, param$1) {\n            return o(a0, a1, a2, param, param$1);\n          };\n      case 6 :\n          return function (param, param$1, param$2) {\n            return o(a0, a1, a2, param, param$1, param$2);\n          };\n      case 7 :\n          return function (param, param$1, param$2, param$3) {\n            return o(a0, a1, a2, param, param$1, param$2, param$3);\n          };\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2\n                  ]);\n    }\n  }\n}\n\nfunction __3(o) {\n  var arity = o.length;\n  if (arity === 3) {\n    return o;\n  } else {\n    return function (a0, a1, a2) {\n      return _3(o, a0, a1, a2);\n    };\n  }\n}\n\nfunction _4(o, a0, a1, a2, a3) {\n  var arity = o.length;\n  if (arity === 4) {\n    return o(a0, a1, a2, a3);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2,\n                      a3\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [\n                      a2,\n                      a3\n                    ]);\n      case 3 :\n          return app(o(a0, a1, a2), [a3]);\n      case 4 :\n          return o(a0, a1, a2, a3);\n      case 5 :\n          return function (param) {\n            return o(a0, a1, a2, a3, param);\n          };\n      case 6 :\n          return function (param, param$1) {\n            return o(a0, a1, a2, a3, param, param$1);\n          };\n      case 7 :\n          return function (param, param$1, param$2) {\n            return o(a0, a1, a2, a3, param, param$1, param$2);\n          };\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2,\n                    a3\n                  ]);\n    }\n  }\n}\n\nfunction __4(o) {\n  var arity = o.length;\n  if (arity === 4) {\n    return o;\n  } else {\n    return function (a0, a1, a2, a3) {\n      return _4(o, a0, a1, a2, a3);\n    };\n  }\n}\n\nfunction _5(o, a0, a1, a2, a3, a4) {\n  var arity = o.length;\n  if (arity === 5) {\n    return o(a0, a1, a2, a3, a4);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2,\n                      a3,\n                      a4\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [\n                      a2,\n                      a3,\n                      a4\n                    ]);\n      case 3 :\n          return app(o(a0, a1, a2), [\n                      a3,\n                      a4\n                    ]);\n      case 4 :\n          return app(o(a0, a1, a2, a3), [a4]);\n      case 5 :\n          return o(a0, a1, a2, a3, a4);\n      case 6 :\n          return function (param) {\n            return o(a0, a1, a2, a3, a4, param);\n          };\n      case 7 :\n          return function (param, param$1) {\n            return o(a0, a1, a2, a3, a4, param, param$1);\n          };\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2,\n                    a3,\n                    a4\n                  ]);\n    }\n  }\n}\n\nfunction __5(o) {\n  var arity = o.length;\n  if (arity === 5) {\n    return o;\n  } else {\n    return function (a0, a1, a2, a3, a4) {\n      return _5(o, a0, a1, a2, a3, a4);\n    };\n  }\n}\n\nfunction _6(o, a0, a1, a2, a3, a4, a5) {\n  var arity = o.length;\n  if (arity === 6) {\n    return o(a0, a1, a2, a3, a4, a5);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2,\n                      a3,\n                      a4,\n                      a5\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [\n                      a2,\n                      a3,\n                      a4,\n                      a5\n                    ]);\n      case 3 :\n          return app(o(a0, a1, a2), [\n                      a3,\n                      a4,\n                      a5\n                    ]);\n      case 4 :\n          return app(o(a0, a1, a2, a3), [\n                      a4,\n                      a5\n                    ]);\n      case 5 :\n          return app(o(a0, a1, a2, a3, a4), [a5]);\n      case 6 :\n          return o(a0, a1, a2, a3, a4, a5);\n      case 7 :\n          return function (param) {\n            return o(a0, a1, a2, a3, a4, a5, param);\n          };\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2,\n                    a3,\n                    a4,\n                    a5\n                  ]);\n    }\n  }\n}\n\nfunction __6(o) {\n  var arity = o.length;\n  if (arity === 6) {\n    return o;\n  } else {\n    return function (a0, a1, a2, a3, a4, a5) {\n      return _6(o, a0, a1, a2, a3, a4, a5);\n    };\n  }\n}\n\nfunction _7(o, a0, a1, a2, a3, a4, a5, a6) {\n  var arity = o.length;\n  if (arity === 7) {\n    return o(a0, a1, a2, a3, a4, a5, a6);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2,\n                      a3,\n                      a4,\n                      a5,\n                      a6\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [\n                      a2,\n                      a3,\n                      a4,\n                      a5,\n                      a6\n                    ]);\n      case 3 :\n          return app(o(a0, a1, a2), [\n                      a3,\n                      a4,\n                      a5,\n                      a6\n                    ]);\n      case 4 :\n          return app(o(a0, a1, a2, a3), [\n                      a4,\n                      a5,\n                      a6\n                    ]);\n      case 5 :\n          return app(o(a0, a1, a2, a3, a4), [\n                      a5,\n                      a6\n                    ]);\n      case 6 :\n          return app(o(a0, a1, a2, a3, a4, a5), [a6]);\n      case 7 :\n          return o(a0, a1, a2, a3, a4, a5, a6);\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2,\n                    a3,\n                    a4,\n                    a5,\n                    a6\n                  ]);\n    }\n  }\n}\n\nfunction __7(o) {\n  var arity = o.length;\n  if (arity === 7) {\n    return o;\n  } else {\n    return function (a0, a1, a2, a3, a4, a5, a6) {\n      return _7(o, a0, a1, a2, a3, a4, a5, a6);\n    };\n  }\n}\n\nfunction _8(o, a0, a1, a2, a3, a4, a5, a6, a7) {\n  var arity = o.length;\n  if (arity === 8) {\n    return o(a0, a1, a2, a3, a4, a5, a6, a7);\n  } else {\n    switch (arity) {\n      case 1 :\n          return app(o(a0), [\n                      a1,\n                      a2,\n                      a3,\n                      a4,\n                      a5,\n                      a6,\n                      a7\n                    ]);\n      case 2 :\n          return app(o(a0, a1), [\n                      a2,\n                      a3,\n                      a4,\n                      a5,\n                      a6,\n                      a7\n                    ]);\n      case 3 :\n          return app(o(a0, a1, a2), [\n                      a3,\n                      a4,\n                      a5,\n                      a6,\n                      a7\n                    ]);\n      case 4 :\n          return app(o(a0, a1, a2, a3), [\n                      a4,\n                      a5,\n                      a6,\n                      a7\n                    ]);\n      case 5 :\n          return app(o(a0, a1, a2, a3, a4), [\n                      a5,\n                      a6,\n                      a7\n                    ]);\n      case 6 :\n          return app(o(a0, a1, a2, a3, a4, a5), [\n                      a6,\n                      a7\n                    ]);\n      case 7 :\n          return app(o(a0, a1, a2, a3, a4, a5, a6), [a7]);\n      default:\n        return app(o, [\n                    a0,\n                    a1,\n                    a2,\n                    a3,\n                    a4,\n                    a5,\n                    a6,\n                    a7\n                  ]);\n    }\n  }\n}\n\nfunction __8(o) {\n  var arity = o.length;\n  if (arity === 8) {\n    return o;\n  } else {\n    return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n      return _8(o, a0, a1, a2, a3, a4, a5, a6, a7);\n    };\n  }\n}\n\nexports.app = app;\nexports._1 = _1;\nexports.__1 = __1;\nexports._2 = _2;\nexports.__2 = __2;\nexports._3 = _3;\nexports.__3 = __3;\nexports._4 = _4;\nexports.__4 = __4;\nexports._5 = _5;\nexports.__5 = __5;\nexports._6 = _6;\nexports.__6 = __6;\nexports._7 = _7;\nexports.__7 = __7;\nexports._8 = _8;\nexports.__8 = __8;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/curry.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_array.js":
/*!***************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_array.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar Caml_splice_call = __webpack_require__(/*! ./caml_splice_call.js */ \"../../../../../node_modules/rescript/lib/js/caml_splice_call.js\");\n\nfunction copyWithin(to_, obj) {\n  return obj.copyWithin(to_);\n}\n\nfunction copyWithinFrom(to_, from, obj) {\n  return obj.copyWithin(to_, from);\n}\n\nfunction copyWithinFromRange(to_, start, end_, obj) {\n  return obj.copyWithin(to_, start, end_);\n}\n\nfunction fillInPlace(arg1, obj) {\n  return obj.fill(arg1);\n}\n\nfunction fillFromInPlace(arg1, from, obj) {\n  return obj.fill(arg1, from);\n}\n\nfunction fillRangeInPlace(arg1, start, end_, obj) {\n  return obj.fill(arg1, start, end_);\n}\n\nfunction push(arg1, obj) {\n  return obj.push(arg1);\n}\n\nfunction pushMany(arg1, obj) {\n  return Caml_splice_call.spliceObjApply(obj, \"push\", [arg1]);\n}\n\nfunction sortInPlaceWith(arg1, obj) {\n  return obj.sort(Curry.__2(arg1));\n}\n\nfunction spliceInPlace(pos, remove, add, obj) {\n  return Caml_splice_call.spliceObjApply(obj, \"splice\", [\n              pos,\n              remove,\n              add\n            ]);\n}\n\nfunction removeFromInPlace(pos, obj) {\n  return obj.splice(pos);\n}\n\nfunction removeCountInPlace(pos, count, obj) {\n  return obj.splice(pos, count);\n}\n\nfunction unshift(arg1, obj) {\n  return obj.unshift(arg1);\n}\n\nfunction unshiftMany(arg1, obj) {\n  return Caml_splice_call.spliceObjApply(obj, \"unshift\", [arg1]);\n}\n\nfunction concat(arg1, obj) {\n  return obj.concat(arg1);\n}\n\nfunction concatMany(arg1, obj) {\n  return Caml_splice_call.spliceObjApply(obj, \"concat\", [arg1]);\n}\n\nfunction includes(arg1, obj) {\n  return obj.includes(arg1);\n}\n\nfunction indexOf(arg1, obj) {\n  return obj.indexOf(arg1);\n}\n\nfunction indexOfFrom(arg1, from, obj) {\n  return obj.indexOf(arg1, from);\n}\n\nfunction joinWith(arg1, obj) {\n  return obj.join(arg1);\n}\n\nfunction lastIndexOf(arg1, obj) {\n  return obj.lastIndexOf(arg1);\n}\n\nfunction lastIndexOfFrom(arg1, from, obj) {\n  return obj.lastIndexOf(arg1, from);\n}\n\nfunction slice(start, end_, obj) {\n  return obj.slice(start, end_);\n}\n\nfunction sliceFrom(arg1, obj) {\n  return obj.slice(arg1);\n}\n\nfunction every(arg1, obj) {\n  return obj.every(Curry.__1(arg1));\n}\n\nfunction everyi(arg1, obj) {\n  return obj.every(Curry.__2(arg1));\n}\n\nfunction filter(arg1, obj) {\n  return obj.filter(Curry.__1(arg1));\n}\n\nfunction filteri(arg1, obj) {\n  return obj.filter(Curry.__2(arg1));\n}\n\nfunction find(arg1, obj) {\n  return Caml_option.undefined_to_opt(obj.find(Curry.__1(arg1)));\n}\n\nfunction findi(arg1, obj) {\n  return Caml_option.undefined_to_opt(obj.find(Curry.__2(arg1)));\n}\n\nfunction findIndex(arg1, obj) {\n  return obj.findIndex(Curry.__1(arg1));\n}\n\nfunction findIndexi(arg1, obj) {\n  return obj.findIndex(Curry.__2(arg1));\n}\n\nfunction forEach(arg1, obj) {\n  obj.forEach(Curry.__1(arg1));\n}\n\nfunction forEachi(arg1, obj) {\n  obj.forEach(Curry.__2(arg1));\n}\n\nfunction map(arg1, obj) {\n  return obj.map(Curry.__1(arg1));\n}\n\nfunction mapi(arg1, obj) {\n  return obj.map(Curry.__2(arg1));\n}\n\nfunction reduce(arg1, arg2, obj) {\n  return obj.reduce(Curry.__2(arg1), arg2);\n}\n\nfunction reducei(arg1, arg2, obj) {\n  return obj.reduce(Curry.__3(arg1), arg2);\n}\n\nfunction reduceRight(arg1, arg2, obj) {\n  return obj.reduceRight(Curry.__2(arg1), arg2);\n}\n\nfunction reduceRighti(arg1, arg2, obj) {\n  return obj.reduceRight(Curry.__3(arg1), arg2);\n}\n\nfunction some(arg1, obj) {\n  return obj.some(Curry.__1(arg1));\n}\n\nfunction somei(arg1, obj) {\n  return obj.some(Curry.__2(arg1));\n}\n\nexports.copyWithin = copyWithin;\nexports.copyWithinFrom = copyWithinFrom;\nexports.copyWithinFromRange = copyWithinFromRange;\nexports.fillInPlace = fillInPlace;\nexports.fillFromInPlace = fillFromInPlace;\nexports.fillRangeInPlace = fillRangeInPlace;\nexports.push = push;\nexports.pushMany = pushMany;\nexports.sortInPlaceWith = sortInPlaceWith;\nexports.spliceInPlace = spliceInPlace;\nexports.removeFromInPlace = removeFromInPlace;\nexports.removeCountInPlace = removeCountInPlace;\nexports.unshift = unshift;\nexports.unshiftMany = unshiftMany;\nexports.concat = concat;\nexports.concatMany = concatMany;\nexports.includes = includes;\nexports.indexOf = indexOf;\nexports.indexOfFrom = indexOfFrom;\nexports.joinWith = joinWith;\nexports.lastIndexOf = lastIndexOf;\nexports.lastIndexOfFrom = lastIndexOfFrom;\nexports.slice = slice;\nexports.sliceFrom = sliceFrom;\nexports.every = every;\nexports.everyi = everyi;\nexports.filter = filter;\nexports.filteri = filteri;\nexports.find = find;\nexports.findi = findi;\nexports.findIndex = findIndex;\nexports.findIndexi = findIndexi;\nexports.forEach = forEach;\nexports.forEachi = forEachi;\nexports.map = map;\nexports.mapi = mapi;\nexports.reduce = reduce;\nexports.reducei = reducei;\nexports.reduceRight = reduceRight;\nexports.reduceRighti = reduceRighti;\nexports.some = some;\nexports.somei = somei;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_array.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_dict.js":
/*!**************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_dict.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\n\nfunction get(dict, k) {\n  if ((k in dict)) {\n    return Caml_option.some(dict[k]);\n  }\n  \n}\n\nvar unsafeDeleteKey = (function (dict,key){\n      delete dict[key];\n     });\n\nfunction entries(dict) {\n  var keys = Object.keys(dict);\n  var l = keys.length;\n  var values = new Array(l);\n  for(var i = 0; i < l; ++i){\n    var key = keys[i];\n    values[i] = [\n      key,\n      dict[key]\n    ];\n  }\n  return values;\n}\n\nfunction values(dict) {\n  var keys = Object.keys(dict);\n  var l = keys.length;\n  var values$1 = new Array(l);\n  for(var i = 0; i < l; ++i){\n    values$1[i] = dict[keys[i]];\n  }\n  return values$1;\n}\n\nfunction fromList(entries) {\n  var dict = {};\n  var _param = entries;\n  while(true) {\n    var param = _param;\n    if (!param) {\n      return dict;\n    }\n    var match = param.hd;\n    dict[match[0]] = match[1];\n    _param = param.tl;\n    continue ;\n  };\n}\n\nfunction fromArray(entries) {\n  var dict = {};\n  var l = entries.length;\n  for(var i = 0; i < l; ++i){\n    var match = entries[i];\n    dict[match[0]] = match[1];\n  }\n  return dict;\n}\n\nfunction map(f, source) {\n  var target = {};\n  var keys = Object.keys(source);\n  var l = keys.length;\n  for(var i = 0; i < l; ++i){\n    var key = keys[i];\n    target[key] = f(source[key]);\n  }\n  return target;\n}\n\nexports.get = get;\nexports.unsafeDeleteKey = unsafeDeleteKey;\nexports.entries = entries;\nexports.values = values;\nexports.fromList = fromList;\nexports.fromArray = fromArray;\nexports.map = map;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_dict.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_exn.js":
/*!*************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_exn.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction raiseError(str) {\n  throw new Error(str);\n}\n\nfunction raiseEvalError(str) {\n  throw new EvalError(str);\n}\n\nfunction raiseRangeError(str) {\n  throw new RangeError(str);\n}\n\nfunction raiseReferenceError(str) {\n  throw new ReferenceError(str);\n}\n\nfunction raiseSyntaxError(str) {\n  throw new SyntaxError(str);\n}\n\nfunction raiseTypeError(str) {\n  throw new TypeError(str);\n}\n\nfunction raiseUriError(str) {\n  throw new URIError(str);\n}\n\nvar $$Error$1 = \"JsError\";\n\nexports.$$Error = $$Error$1;\nexports.raiseError = raiseError;\nexports.raiseEvalError = raiseEvalError;\nexports.raiseRangeError = raiseRangeError;\nexports.raiseReferenceError = raiseReferenceError;\nexports.raiseSyntaxError = raiseSyntaxError;\nexports.raiseTypeError = raiseTypeError;\nexports.raiseUriError = raiseUriError;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_exn.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_int.js":
/*!*************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_int.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("\n\n\nfunction equal(x, y) {\n  return x === y;\n}\n\nvar max = 2147483647;\n\nvar min = -2147483648;\n\nexports.equal = equal;\nexports.max = max;\nexports.min = min;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_int.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_math.js":
/*!**************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_math.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Js_int = __webpack_require__(/*! ./js_int.js */ \"../../../../../node_modules/rescript/lib/js/js_int.js\");\n\nfunction unsafe_ceil(prim) {\n  return Math.ceil(prim);\n}\n\nfunction ceil_int(f) {\n  if (f > Js_int.max) {\n    return Js_int.max;\n  } else if (f < Js_int.min) {\n    return Js_int.min;\n  } else {\n    return Math.ceil(f);\n  }\n}\n\nfunction unsafe_floor(prim) {\n  return Math.floor(prim);\n}\n\nfunction floor_int(f) {\n  if (f > Js_int.max) {\n    return Js_int.max;\n  } else if (f < Js_int.min) {\n    return Js_int.min;\n  } else {\n    return Math.floor(f);\n  }\n}\n\nfunction random_int(min, max) {\n  return floor_int(Math.random() * (max - min | 0)) + min | 0;\n}\n\nvar ceil = ceil_int;\n\nvar floor = floor_int;\n\nexports.unsafe_ceil = unsafe_ceil;\nexports.ceil_int = ceil_int;\nexports.ceil = ceil;\nexports.unsafe_floor = unsafe_floor;\nexports.floor_int = floor_int;\nexports.floor = floor;\nexports.random_int = random_int;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_math.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_null_undefined.js":
/*!************************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_null_undefined.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\n\nfunction bind(x, f) {\n  if (x == null) {\n    return x;\n  } else {\n    return f(x);\n  }\n}\n\nfunction iter(x, f) {\n  if (!(x == null)) {\n    return f(x);\n  }\n  \n}\n\nfunction fromOption(x) {\n  if (x !== undefined) {\n    return Caml_option.valFromOption(x);\n  }\n  \n}\n\nvar from_opt = fromOption;\n\nexports.bind = bind;\nexports.iter = iter;\nexports.fromOption = fromOption;\nexports.from_opt = from_opt;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_null_undefined.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_option.js":
/*!****************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_option.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Caml_option = __webpack_require__(/*! ./caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\n\nfunction some(x) {\n  return Caml_option.some(x);\n}\n\nfunction isSome(param) {\n  return param !== undefined;\n}\n\nfunction isSomeValue(eq, v, x) {\n  if (x !== undefined) {\n    return eq(v, Caml_option.valFromOption(x));\n  } else {\n    return false;\n  }\n}\n\nfunction isNone(param) {\n  return param === undefined;\n}\n\nfunction getExn(x) {\n  if (x !== undefined) {\n    return Caml_option.valFromOption(x);\n  }\n  throw new Error(\"getExn\");\n}\n\nfunction equal(eq, a, b) {\n  if (a !== undefined) {\n    if (b !== undefined) {\n      return eq(Caml_option.valFromOption(a), Caml_option.valFromOption(b));\n    } else {\n      return false;\n    }\n  } else {\n    return b === undefined;\n  }\n}\n\nfunction andThen(f, x) {\n  if (x !== undefined) {\n    return f(Caml_option.valFromOption(x));\n  }\n  \n}\n\nfunction map(f, x) {\n  if (x !== undefined) {\n    return Caml_option.some(f(Caml_option.valFromOption(x)));\n  }\n  \n}\n\nfunction getWithDefault(a, x) {\n  if (x !== undefined) {\n    return Caml_option.valFromOption(x);\n  } else {\n    return a;\n  }\n}\n\nfunction filter(f, x) {\n  if (x === undefined) {\n    return ;\n  }\n  var x$1 = Caml_option.valFromOption(x);\n  if (f(x$1)) {\n    return Caml_option.some(x$1);\n  }\n  \n}\n\nfunction firstSome(a, b) {\n  if (a !== undefined) {\n    return a;\n  } else if (b !== undefined) {\n    return b;\n  } else {\n    return ;\n  }\n}\n\nvar $$default = getWithDefault;\n\nexports.some = some;\nexports.isSome = isSome;\nexports.isSomeValue = isSomeValue;\nexports.isNone = isNone;\nexports.getExn = getExn;\nexports.equal = equal;\nexports.andThen = andThen;\nexports.map = map;\nexports.getWithDefault = getWithDefault;\nexports.$$default = $$default;\nexports[\"default\"] = $$default;\nexports.__esModule = true;\nexports.filter = filter;\nexports.firstSome = firstSome;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_option.js?");

/***/ }),

/***/ "../../../../../node_modules/rescript/lib/js/js_promise.js":
/*!*****************************************************************!*\
  !*** ../../../../../node_modules/rescript/lib/js/js_promise.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! ./curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\n\nfunction then_(arg1, obj) {\n  return obj.then(Curry.__1(arg1));\n}\n\nfunction $$catch(arg1, obj) {\n  return obj.catch(Curry.__1(arg1));\n}\n\nexports.then_ = then_;\nexports.$$catch = $$catch;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/../../../../../node_modules/rescript/lib/js/js_promise.js?");

/***/ }),

/***/ "./lib/js/src/Main.bs.js":
/*!*******************************!*\
  !*** ./lib/js/src/Main.bs.js ***!
  \*******************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar UIManager$Meta3dUi = __webpack_require__(/*! ./UIManager.bs.js */ \"./lib/js/src/UIManager.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction getExtensionService(api) {\n  var partial_arg = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$1 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$2 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$3 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$4 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$5 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$6 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$7 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$8 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$9 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$10 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$11 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$12 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$13 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$14 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$15 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$16 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$17 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$18 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$19 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$20 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$21 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$22 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$23 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  var partial_arg$24 = [\n    api,\n    \"meta3d-imgui-renderer-protocol\"\n  ];\n  return {\n          registerElement: (function (meta3dState, elementContribute) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerElement(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementContribute));\n            }),\n          registerSkin: (function (meta3dState, skinContribute) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinContribute));\n            }),\n          registerUIControl: (function (meta3dState, uiControlContribute) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerUIControl(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlContribute));\n            }),\n          registerInput: (function (meta3dState, inputContribute) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.registerInput(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputContribute));\n            }),\n          render: (function (param, param$1, param$2) {\n              return UIManager$Meta3dUi.render(api, param, param$1, param$2);\n            }),\n          show: (function (meta3dState, elementName) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.show(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n            }),\n          hide: (function (meta3dState, elementName) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.hide(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName));\n            }),\n          isStateChange: (function (meta3dState, elementName) {\n              return UIManager$Meta3dUi.isStateChange(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n            }),\n          getElementState: (function (meta3dState, elementName) {\n              return UIManager$Meta3dUi.getElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), elementName);\n            }),\n          updateElementState: (function (meta3dState, updateElementStateFunc) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.updateElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), updateElementStateFunc));\n            }),\n          getSkin: (function (meta3dState, skinName) {\n              return UIManager$Meta3dUi.getSkin(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), skinName);\n            }),\n          getUIControlFunc: (function (meta3dState, uiControlName) {\n              return UIManager$Meta3dUi.getUIControlFuncExn(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n            }),\n          getInputFunc: (function (meta3dState, inputName) {\n              return UIManager$Meta3dUi.getInputFunc(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), inputName);\n            }),\n          getUIControlState: (function (meta3dState, uiControlName) {\n              return UIManager$Meta3dUi.getUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName);\n            }),\n          setUIControlState: (function (meta3dState, uiControlName, uiControlState) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setUIControlState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), uiControlName, uiControlState));\n            }),\n          setStyle: (function (meta3dState, style) {\n              return UIManager$Meta3dUi.setStyle(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], style);\n            }),\n          beginWindow: (function (meta3dState, label, flags) {\n              return UIManager$Meta3dUi.beginWindow(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], label, flags);\n            }),\n          endWindow: (function (meta3dState) {\n              return UIManager$Meta3dUi.endWindow(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ]);\n            }),\n          beginChild: (function (meta3dState, label) {\n              return UIManager$Meta3dUi.beginChild(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], label);\n            }),\n          endChild: (function (meta3dState) {\n              return UIManager$Meta3dUi.endChild(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ]);\n            }),\n          setNextWindowRect: (function (meta3dState, rect) {\n              return UIManager$Meta3dUi.setNextWindowRect(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], rect);\n            }),\n          addFBOTexture: (function (meta3dState, texture, rect) {\n              return UIManager$Meta3dUi.addFBOTexture(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], texture, rect);\n            }),\n          getFBOTexture: (function (meta3dState, textureID) {\n              return UIManager$Meta3dUi.getFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID);\n            }),\n          setFBOTexture: (function (meta3dState, textureID, texture) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setFBOTexture(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), textureID, texture));\n            }),\n          getWindowBarHeight: (function (meta3dState) {\n              return UIManager$Meta3dUi.getWindowBarHeight(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ]);\n            }),\n          getContext: (function (meta3dState) {\n              return UIManager$Meta3dUi.getContext(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ]);\n            }),\n          button: (function (meta3dState, label, size) {\n              return UIManager$Meta3dUi.button(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], label, size);\n            }),\n          setCursorPos: (function (meta3dState, pos) {\n              return UIManager$Meta3dUi.setCursorPos(meta3dState, [\n                          api,\n                          \"meta3d-imgui-renderer-protocol\"\n                        ], pos);\n            }),\n          loadImage: (function (param, param$1) {\n              return UIManager$Meta3dUi.loadImage(partial_arg, param, param$1);\n            }),\n          asset: (function (param, param$1, param$2, param$3) {\n              return UIManager$Meta3dUi.asset(partial_arg$1, param, param$1, param$2, param$3);\n            }),\n          handleDragDropTarget: (function (param, param$1) {\n              return UIManager$Meta3dUi.handleDragDropTarget(partial_arg$2, param, param$1);\n            }),\n          menu: (function (param, param$1, param$2, param$3) {\n              return UIManager$Meta3dUi.menu(partial_arg$3, param, param$1, param$2, param$3);\n            }),\n          tree: (function (param, param$1, param$2, param$3, param$4, param$5) {\n              return UIManager$Meta3dUi.tree(partial_arg$4, param, param$1, param$2, param$3, param$4, param$5);\n            }),\n          switchButton: (function (param, param$1, param$2, param$3) {\n              return UIManager$Meta3dUi.switchButton(partial_arg$5, param, param$1, param$2, param$3);\n            }),\n          imageButton: (function (param, param$1, param$2) {\n              return UIManager$Meta3dUi.imageButton(partial_arg$6, param, param$1, param$2);\n            }),\n          image: (function (param, param$1, param$2) {\n              return UIManager$Meta3dUi.image(partial_arg$7, param, param$1, param$2);\n            }),\n          inputText: (function (param, param$1, param$2, param$3, param$4) {\n              return UIManager$Meta3dUi.inputText(partial_arg$8, param, param$1, param$2, param$3, param$4);\n            }),\n          inputFloat1: (function (param, param$1, param$2, param$3, param$4, param$5) {\n              return UIManager$Meta3dUi.inputFloat1(partial_arg$9, param, param$1, param$2, param$3, param$4, param$5);\n            }),\n          inputFloat3: (function (param, param$1, param$2, param$3, param$4, param$5) {\n              return UIManager$Meta3dUi.inputFloat3(partial_arg$10, param, param$1, param$2, param$3, param$4, param$5);\n            }),\n          checkbox: (function (param, param$1, param$2) {\n              return UIManager$Meta3dUi.checkbox(partial_arg$11, param, param$1, param$2);\n            }),\n          collapsing: (function (param, param$1, param$2, param$3) {\n              return UIManager$Meta3dUi.collapsing(partial_arg$12, param, param$1, param$2, param$3);\n            }),\n          openModal: (function (param, param$1) {\n              return UIManager$Meta3dUi.openModal(partial_arg$13, param, param$1);\n            }),\n          closeCurrentModal: (function (param) {\n              return UIManager$Meta3dUi.closeCurrentModal(partial_arg$14, param);\n            }),\n          beginModal: (function (param, param$1) {\n              return UIManager$Meta3dUi.beginModal(partial_arg$15, param, param$1);\n            }),\n          endModal: (function (param) {\n              return UIManager$Meta3dUi.endModal(partial_arg$16, param);\n            }),\n          popup: (function (param, param$1, param$2, param$3) {\n              return UIManager$Meta3dUi.popup(partial_arg$17, param, param$1, param$2, param$3);\n            }),\n          imagePopup: (function (param, param$1, param$2, param$3, param$4) {\n              return UIManager$Meta3dUi.imagePopup(partial_arg$18, param, param$1, param$2, param$3, param$4);\n            }),\n          dummy: (function (param, param$1, param$2) {\n              return UIManager$Meta3dUi.dummy(partial_arg$19, param, param$1, param$2);\n            }),\n          list: (function (param, param$1, param$2, param$3, param$4, param$5, param$6) {\n              return UIManager$Meta3dUi.list(partial_arg$20, param, param$1, param$2, param$3, param$4, param$5, param$6);\n            }),\n          getItemRectMax: (function (param) {\n              return UIManager$Meta3dUi.getItemRectMax(partial_arg$21, param);\n            }),\n          getItemRectSize: (function (param) {\n              return UIManager$Meta3dUi.getItemRectSize(partial_arg$22, param);\n            }),\n          getWindowPos: (function (param) {\n              return UIManager$Meta3dUi.getWindowPos(partial_arg$23, param);\n            }),\n          getWindowSize: (function (param) {\n              return UIManager$Meta3dUi.getWindowSize(partial_arg$24, param);\n            }),\n          init: UIManager$Meta3dUi.init,\n          clear: UIManager$Meta3dUi.clear,\n          getCurrentElementState: (function (meta3dState) {\n              return UIManager$Meta3dUi.getCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"));\n            }),\n          setCurrentElementState: (function (meta3dState, currentElementState) {\n              return api.setExtensionState(meta3dState, \"meta3d-ui-protocol\", UIManager$Meta3dUi.setCurrentElementState(api.getExtensionState(meta3dState, \"meta3d-ui-protocol\"), currentElementState));\n            })\n        };\n}\n\nfunction createExtensionState(param, param$1) {\n  return {\n          elementFuncMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          elementStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          isShowMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          skinContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          inputContributeMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined),\n          currentElementName: undefined,\n          fboTextureMap: ImmutableHashMap$Meta3dCommonlib.createEmpty(undefined, undefined)\n        };\n}\n\nfunction getExtensionLife(api, param) {\n  return {\n          onRegister: null,\n          onRestore: NullableSt$Meta3dCommonlib.$$return(function (param, param$1) {\n                return UIManager$Meta3dUi.restore(api, param, param$1);\n              }),\n          onDeepCopy: NullableSt$Meta3dCommonlib.$$return(function (param) {\n                return UIManager$Meta3dUi.deepCopy(api, param);\n              }),\n          onStart: null,\n          onInit: null,\n          onUpdate: null\n        };\n}\n\nexports.getExtensionService = getExtensionService;\nexports.createExtensionState = createExtensionState;\nexports.getExtensionLife = getExtensionLife;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/Main.bs.js?");

/***/ }),

/***/ "./lib/js/src/UIManager.bs.js":
/*!************************************!*\
  !*** ./lib/js/src/UIManager.bs.js ***!
  \************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("\n\nvar Curry = __webpack_require__(/*! rescript/lib/js/curry.js */ \"../../../../../node_modules/rescript/lib/js/curry.js\");\nvar Caml_obj = __webpack_require__(/*! rescript/lib/js/caml_obj.js */ \"../../../../../node_modules/rescript/lib/js/caml_obj.js\");\nvar Js_array = __webpack_require__(/*! rescript/lib/js/js_array.js */ \"../../../../../node_modules/rescript/lib/js/js_array.js\");\nvar Caml_option = __webpack_require__(/*! rescript/lib/js/caml_option.js */ \"../../../../../node_modules/rescript/lib/js/caml_option.js\");\nvar ArraySt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/ArraySt.bs.js\");\nvar OptionSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/OptionSt.bs.js\");\nvar PromiseSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/PromiseSt.bs.js\");\nvar NullableSt$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/NullableSt.bs.js\");\nvar ImmutableHashMap$Meta3dCommonlib = __webpack_require__(/*! meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js */ \"../../../../../defaults/meta3d-commonlib/lib/js/src/structure/hash_map/ImmutableHashMap.bs.js\");\n\nfunction hide(state, elementName) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, false),\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction show(state, elementName) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: ImmutableHashMap$Meta3dCommonlib.set(state.isShowMap, elementName, true),\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction _markStateChange(state, elementName) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, true),\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction _markStateNotChange(state, elementName) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: ImmutableHashMap$Meta3dCommonlib.set(state.isStateChangeMap, elementName, false),\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction _markAllStateNotChange(state, needMarkStateNotChangeIds) {\n  return ArraySt$Meta3dCommonlib.reduceOneParam(needMarkStateNotChangeIds, _markStateNotChange, state);\n}\n\nfunction _getElementStateExn(param, elementName) {\n  return ImmutableHashMap$Meta3dCommonlib.getExn(param.elementStateMap, elementName);\n}\n\nfunction getElementState(param, elementName) {\n  return ImmutableHashMap$Meta3dCommonlib.getNullable(param.elementStateMap, elementName);\n}\n\nfunction _setElementState(state, elementName, elementState) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementStateMap, elementName, elementState),\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction _getElementExecOrderExn(state, elementName) {\n  return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, elementName);\n}\n\nfunction _setElementExecOrder(state, elementName, execOrder) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementExecOrderMap, elementName, execOrder),\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction _getCurrentElementName(state) {\n  return OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n}\n\nfunction _setCurrentElementName(state, elementName) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: elementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction updateElementState(state, updateElementStateFunc) {\n  var elementName = OptionSt$Meta3dCommonlib.getExn(state.currentElementName);\n  var oldElementState = _getElementStateExn(state, elementName);\n  var newElementState = Curry._1(updateElementStateFunc, oldElementState);\n  if (Caml_obj.notequal(oldElementState, newElementState)) {\n    return _setElementState(_markStateChange(state, elementName), elementName, newElementState);\n  } else {\n    return _markStateNotChange(state, elementName);\n  }\n}\n\nfunction _exec(meta3dState, state) {\n  var elementFuncMap = state.elementFuncMap;\n  var __x = ImmutableHashMap$Meta3dCommonlib.entries(state.isShowMap);\n  return ArraySt$Meta3dCommonlib.traverseReducePromiseM(Js_array.sortInPlaceWith((function (param, param$1) {\n                    return ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param[0]) - ImmutableHashMap$Meta3dCommonlib.getExn(state.elementExecOrderMap, param$1[0]) | 0;\n                  }), __x), (function (param, param$1) {\n                var needMarkStateNotChangeIds = param[1];\n                var meta3dState = param[0];\n                if (!param$1[1]) {\n                  return Promise.resolve([\n                              meta3dState,\n                              needMarkStateNotChangeIds\n                            ]);\n                }\n                var elementName = param$1[0];\n                var elementFunc = ImmutableHashMap$Meta3dCommonlib.getExn(elementFuncMap, elementName);\n                return PromiseSt$Meta3dCommonlib.map(elementFunc(meta3dState, _getElementStateExn(state, elementName)), (function (meta3dState) {\n                              return [\n                                      meta3dState,\n                                      ArraySt$Meta3dCommonlib.push(needMarkStateNotChangeIds, elementName)\n                                    ];\n                            }));\n              }), [\n              meta3dState,\n              []\n            ]);\n}\n\nfunction _invokeIMGUIRenderFunc(meta3dState, invokeFunc, param) {\n  var imguiRendererExtensionProtocolName = param[1];\n  var api = param[0];\n  var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n  var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n  var imguiRendererState$1 = invokeFunc(imguiRendererState, imguiRendererService);\n  return api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, imguiRendererState$1);\n}\n\nfunction _invokeIMGUIRenderFuncWithParam(meta3dState, invokeFunc, param) {\n  var imguiRendererExtensionProtocolName = param[1];\n  var api = param[0];\n  var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n  var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n  var match = invokeFunc(imguiRendererState, imguiRendererService);\n  var meta3dState$1 = api.setExtensionState(meta3dState, imguiRendererExtensionProtocolName, match[0]);\n  return [\n          meta3dState$1,\n          match[1]\n        ];\n}\n\nfunction _invokeIMGUIRenderFuncReturnData(meta3dState, invokeFunc, param) {\n  var imguiRendererExtensionProtocolName = param[1];\n  var api = param[0];\n  var imguiRendererState = api.getExtensionState(meta3dState, imguiRendererExtensionProtocolName);\n  var imguiRendererService = api.getExtensionService(meta3dState, imguiRendererExtensionProtocolName);\n  return invokeFunc(imguiRendererState, imguiRendererService);\n}\n\nfunction render(api, meta3dState, param, time) {\n  var imguiRendererExtensionProtocolName = param[1];\n  var uiExtensionProtocolName = param[0];\n  var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n  var meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, state);\n  var meta3dState$2 = _invokeIMGUIRenderFunc(meta3dState$1, (function (imguiRendererState, imguiRendererService) {\n          return imguiRendererService.beforeExec(imguiRendererState, time);\n        }), [\n        api,\n        imguiRendererExtensionProtocolName\n      ]);\n  return PromiseSt$Meta3dCommonlib.map(PromiseSt$Meta3dCommonlib.map(_exec(meta3dState$2, state), (function (param) {\n                    var meta3dState = param[0];\n                    var state = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n                    var state$1 = _markAllStateNotChange(state, param[1]);\n                    return api.setExtensionState(meta3dState, uiExtensionProtocolName, state$1);\n                  })), (function (meta3dState) {\n                return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                              Curry._1(imguiRendererService.afterExec, undefined);\n                              Curry._1(imguiRendererService.render, undefined);\n                              return imguiRendererState;\n                            }), [\n                            api,\n                            imguiRendererExtensionProtocolName\n                          ]);\n              }));\n}\n\nfunction _setElementFunc(state, elementName, elementFunc) {\n  return {\n          elementFuncMap: ImmutableHashMap$Meta3dCommonlib.set(state.elementFuncMap, elementName, elementFunc),\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction registerElement(state, param) {\n  var elementName = param.elementName;\n  return _markStateChange(show(_setElementExecOrder(_setElementState(_setElementFunc(_setCurrentElementName(state, elementName), elementName, param.elementFunc), elementName, param.elementState), elementName, param.execOrder), elementName), elementName);\n}\n\nfunction registerSkin(state, skinContribute) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.skinContributeMap, skinContribute.skinName, skinContribute),\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction registerUIControl(state, uiControlContribute) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlContributeMap, uiControlContribute.uiControlName, uiControlContribute),\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction registerInput(state, inputContribute) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: ImmutableHashMap$Meta3dCommonlib.set(state.inputContributeMap, inputContribute.inputName, inputContribute),\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction getSkin(state, skinName) {\n  return ImmutableHashMap$Meta3dCommonlib.getNullable(state.skinContributeMap, skinName);\n}\n\nfunction _getUIControlExn(state, uiControlName) {\n  return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName);\n}\n\nfunction getUIControlFuncExn(state, uiControlName) {\n  return ImmutableHashMap$Meta3dCommonlib.getExn(state.uiControlContributeMap, uiControlName).func;\n}\n\nfunction getInputFunc(state, inputName) {\n  return NullableSt$Meta3dCommonlib.map(ImmutableHashMap$Meta3dCommonlib.getNullable(state.inputContributeMap, inputName), (function (param) {\n                return param.func;\n              }));\n}\n\nfunction getUIControlState(state, uiControlName) {\n  return ImmutableHashMap$Meta3dCommonlib.getNullable(state.uiControlStateMap, uiControlName);\n}\n\nfunction setUIControlState(state, uiControlName, uiControlState) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: ImmutableHashMap$Meta3dCommonlib.set(state.uiControlStateMap, uiControlName, uiControlState),\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: state.fboTextureMap\n        };\n}\n\nfunction isStateChange(state, elementName) {\n  return ImmutableHashMap$Meta3dCommonlib.getExn(state.isStateChangeMap, elementName);\n}\n\nfunction setStyle(meta3dState, data, style) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return imguiRendererService.setStyle(imguiRendererState, style);\n              }), data);\n}\n\nfunction beginWindow(meta3dState, data, label, flags) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.beginWindow(label, flags);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction endWindow(meta3dState, data) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                Curry._1(imguiRendererService.endWindow, undefined);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction beginChild(meta3dState, data, label) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.beginChild(label);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction endChild(meta3dState, data) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                Curry._1(imguiRendererService.endChild, undefined);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction setNextWindowRect(meta3dState, data, rect) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.setNextWindowRect(rect);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction getFBOTexture(state, textureID) {\n  return ImmutableHashMap$Meta3dCommonlib.getNullable(state.fboTextureMap, textureID);\n}\n\nfunction setFBOTexture(state, textureID, texture) {\n  return {\n          elementFuncMap: state.elementFuncMap,\n          elementStateMap: state.elementStateMap,\n          elementExecOrderMap: state.elementExecOrderMap,\n          isShowMap: state.isShowMap,\n          isStateChangeMap: state.isStateChangeMap,\n          skinContributeMap: state.skinContributeMap,\n          uiControlContributeMap: state.uiControlContributeMap,\n          uiControlStateMap: state.uiControlStateMap,\n          inputContributeMap: state.inputContributeMap,\n          currentElementName: state.currentElementName,\n          fboTextureMap: ImmutableHashMap$Meta3dCommonlib.set(state.fboTextureMap, textureID, texture)\n        };\n}\n\nfunction addFBOTexture(meta3dState, data, texture, rect) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.addFBOTexture(texture, rect);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction getWindowBarHeight(meta3dState, data) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getWindowBarHeight, undefined);\n              }), data);\n}\n\nfunction getContext(meta3dState, data) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getContext, undefined);\n              }), data);\n}\n\nfunction button(meta3dState, data, label, size) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.button(label, size)\n                      ];\n              }), data);\n}\n\nfunction setCursorPos(meta3dState, data, pos) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.setCursorPos(pos);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction loadImage(data, meta3dState, imageBase64Src) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return imguiRendererService.loadImage(imageBase64Src);\n              }), data);\n}\n\nfunction asset(data, meta3dState, files, label, rect) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.asset(files, label, rect)\n                      ];\n              }), data);\n}\n\nfunction handleDragDropTarget(data, meta3dState, type_) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.handleDragDropTarget(type_)\n                      ];\n              }), data);\n}\n\nfunction menu(data, meta3dState, allLabels, windowName, rect) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.menu(allLabels, windowName, rect)\n                      ];\n              }), data);\n}\n\nfunction tree(data, meta3dState, treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.tree(treeData, treeNodeLabel, lastTreeSelectedData, windowName, rect)\n                      ];\n              }), data);\n}\n\nfunction switchButton(data, meta3dState, isRun, textures, size) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.switchButton(isRun, textures, size)\n                      ];\n              }), data);\n}\n\nfunction imageButton(data, meta3dState, texture, size) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.imageButton(texture, size)\n                      ];\n              }), data);\n}\n\nfunction image(data, meta3dState, texture, size) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.image(texture, size);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction inputText(data, meta3dState, label, value, maxLength, width) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.inputText(label, value, maxLength, width)\n                      ];\n              }), data);\n}\n\nfunction inputFloat1(data, meta3dState, label, value, step, stepFast, width) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.inputFloat1(label, value, step, stepFast, width)\n                      ];\n              }), data);\n}\n\nfunction inputFloat3(data, meta3dState, label, value, step, stepFast, width) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.inputFloat3(label, value, step, stepFast, width)\n                      ];\n              }), data);\n}\n\nfunction checkbox(data, meta3dState, label, value) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.checkbox(label, value)\n                      ];\n              }), data);\n}\n\nfunction collapsing(data, meta3dState, label, isOpen, cond) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.collapsing(label, isOpen, cond)\n                      ];\n              }), data);\n}\n\nfunction openModal(data, meta3dState, label) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.openModal(label);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction closeCurrentModal(data, meta3dState) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                Curry._1(imguiRendererService.closeCurrentModal, undefined);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction beginModal(data, meta3dState, label) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.beginModal(label)\n                      ];\n              }), data);\n}\n\nfunction endModal(data, meta3dState) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                Curry._1(imguiRendererService.endModal, undefined);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction popup(data, meta3dState, label, selectedValues, id) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.popup(label, selectedValues, id)\n                      ];\n              }), data);\n}\n\nfunction imagePopup(data, meta3dState, clickTexture, size, selectedValues, id) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.imagePopup(clickTexture, size, selectedValues, id)\n                      ];\n              }), data);\n}\n\nfunction dummy(data, meta3dState, width, height) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.dummy(width, height);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction list(data, meta3dState, label, size, items, itemSize, isRemoveable, removeTexture) {\n  return _invokeIMGUIRenderFuncWithParam(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return [\n                        imguiRendererState,\n                        imguiRendererService.list(label, size, items, itemSize, isRemoveable, removeTexture)\n                      ];\n              }), data);\n}\n\nfunction getItemRectMax(data, meta3dState) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getItemRectMax, undefined);\n              }), data);\n}\n\nfunction getItemRectSize(data, meta3dState) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getItemRectSize, undefined);\n              }), data);\n}\n\nfunction getWindowPos(data, meta3dState) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getWindowPos, undefined);\n              }), data);\n}\n\nfunction getWindowSize(data, meta3dState) {\n  return _invokeIMGUIRenderFuncReturnData(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                return Curry._1(imguiRendererService.getWindowSize, undefined);\n              }), data);\n}\n\nfunction clear(meta3dState, data, clearColor) {\n  return _invokeIMGUIRenderFunc(meta3dState, (function (imguiRendererState, imguiRendererService) {\n                imguiRendererService.clear(clearColor);\n                return imguiRendererState;\n              }), data);\n}\n\nfunction _getCurrentElementStateOption(state) {\n  return OptionSt$Meta3dCommonlib.bind(state.currentElementName, (function (currentElementName) {\n                return ImmutableHashMap$Meta3dCommonlib.get(state.elementStateMap, currentElementName);\n              }));\n}\n\nfunction getCurrentElementState(state) {\n  return getElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName));\n}\n\nfunction setCurrentElementState(state, currentElementState) {\n  return _setElementState(state, OptionSt$Meta3dCommonlib.getExn(state.currentElementName), currentElementState);\n}\n\nfunction init(meta3dState, param, isInitEvent, isDebug, canvas) {\n  var imguiRendererExtensionProtocolName = param[1];\n  var api = param[0];\n  var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n  var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n  var elementState = _getCurrentElementStateOption(uiState);\n  var meta3dState$1;\n  if (elementState !== undefined) {\n    var eventExtensionProtocolName = \"meta3d-event-protocol\";\n    var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n    var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n    var elementState$1 = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n            return ImmutableHashMap$Meta3dCommonlib.set(elementState, param[0], Curry._1(param[1].createState, meta3dState));\n          }), Caml_option.valFromOption(elementState));\n    var uiState$1 = setCurrentElementState(uiState, elementState$1);\n    meta3dState$1 = api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n  } else {\n    meta3dState$1 = meta3dState;\n  }\n  var imguiRendererState = api.getExtensionState(meta3dState$1, imguiRendererExtensionProtocolName);\n  var imguiRendererService = api.getExtensionService(meta3dState$1, imguiRendererExtensionProtocolName);\n  return PromiseSt$Meta3dCommonlib.map(imguiRendererService.init(imguiRendererState, isInitEvent, isDebug, canvas), (function (imguiRendererState) {\n                return api.setExtensionState(meta3dState$1, imguiRendererExtensionProtocolName, imguiRendererState);\n              }));\n}\n\nfunction restore(api, currentMeta3dState, targetMeta3dState) {\n  var eventExtensionProtocolName = \"meta3d-event-protocol\";\n  var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n  var eventService = api.getExtensionService(targetMeta3dState, eventExtensionProtocolName);\n  var eventState = api.getExtensionState(targetMeta3dState, eventExtensionProtocolName);\n  var currentUIState = api.getExtensionState(currentMeta3dState, uiExtensionProtocolName);\n  var currentElementState = NullableSt$Meta3dCommonlib.getExn(getElementState(currentUIState, OptionSt$Meta3dCommonlib.getExn(currentUIState.currentElementName)));\n  var targetUIState = api.getExtensionState(targetMeta3dState, uiExtensionProtocolName);\n  var targetElementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (targetElementState, param) {\n          var actionName = param[0];\n          return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].restore, (function (restore) {\n                            return ImmutableHashMap$Meta3dCommonlib.set(targetElementState, actionName, Curry._2(restore, ImmutableHashMap$Meta3dCommonlib.getExn(currentElementState, actionName), ImmutableHashMap$Meta3dCommonlib.getExn(targetElementState, actionName)));\n                          })), targetElementState);\n        }), NullableSt$Meta3dCommonlib.getExn(getElementState(targetUIState, OptionSt$Meta3dCommonlib.getExn(targetUIState.currentElementName))));\n  var targetUIState$1 = setCurrentElementState(targetUIState, targetElementState);\n  return api.setExtensionState(targetMeta3dState, uiExtensionProtocolName, {\n              elementFuncMap: targetUIState$1.elementFuncMap,\n              elementStateMap: targetUIState$1.elementStateMap,\n              elementExecOrderMap: targetUIState$1.elementExecOrderMap,\n              isShowMap: targetUIState$1.isShowMap,\n              isStateChangeMap: targetUIState$1.isStateChangeMap,\n              skinContributeMap: targetUIState$1.skinContributeMap,\n              uiControlContributeMap: targetUIState$1.uiControlContributeMap,\n              uiControlStateMap: currentUIState.uiControlStateMap,\n              inputContributeMap: targetUIState$1.inputContributeMap,\n              currentElementName: targetUIState$1.currentElementName,\n              fboTextureMap: targetUIState$1.fboTextureMap\n            });\n}\n\nfunction deepCopy(api, meta3dState) {\n  var eventExtensionProtocolName = \"meta3d-event-protocol\";\n  var uiExtensionProtocolName = \"meta3d-ui-protocol\";\n  var eventService = api.getExtensionService(meta3dState, eventExtensionProtocolName);\n  var eventState = api.getExtensionState(meta3dState, eventExtensionProtocolName);\n  var uiState = api.getExtensionState(meta3dState, uiExtensionProtocolName);\n  var elementState = ArraySt$Meta3dCommonlib.reduceOneParam(Curry._1(eventService.getAllActionContributes, eventState), (function (elementState, param) {\n          var actionName = param[0];\n          return NullableSt$Meta3dCommonlib.getWithDefault(NullableSt$Meta3dCommonlib.map(param[1].deepCopy, (function (deepCopy) {\n                            return ImmutableHashMap$Meta3dCommonlib.set(elementState, actionName, Curry._1(deepCopy, ImmutableHashMap$Meta3dCommonlib.getExn(elementState, actionName)));\n                          })), elementState);\n        }), NullableSt$Meta3dCommonlib.getExn(getElementState(uiState, OptionSt$Meta3dCommonlib.getExn(uiState.currentElementName))));\n  var uiState$1 = setCurrentElementState(uiState, elementState);\n  return api.setExtensionState(meta3dState, uiExtensionProtocolName, uiState$1);\n}\n\nexports.hide = hide;\nexports.show = show;\nexports._markStateChange = _markStateChange;\nexports._markStateNotChange = _markStateNotChange;\nexports._markAllStateNotChange = _markAllStateNotChange;\nexports._getElementStateExn = _getElementStateExn;\nexports.getElementState = getElementState;\nexports._setElementState = _setElementState;\nexports._getElementExecOrderExn = _getElementExecOrderExn;\nexports._setElementExecOrder = _setElementExecOrder;\nexports._getCurrentElementName = _getCurrentElementName;\nexports._setCurrentElementName = _setCurrentElementName;\nexports.updateElementState = updateElementState;\nexports._exec = _exec;\nexports._invokeIMGUIRenderFunc = _invokeIMGUIRenderFunc;\nexports._invokeIMGUIRenderFuncWithParam = _invokeIMGUIRenderFuncWithParam;\nexports._invokeIMGUIRenderFuncReturnData = _invokeIMGUIRenderFuncReturnData;\nexports.render = render;\nexports._setElementFunc = _setElementFunc;\nexports.registerElement = registerElement;\nexports.registerSkin = registerSkin;\nexports.registerUIControl = registerUIControl;\nexports.registerInput = registerInput;\nexports.getSkin = getSkin;\nexports._getUIControlExn = _getUIControlExn;\nexports.getUIControlFuncExn = getUIControlFuncExn;\nexports.getInputFunc = getInputFunc;\nexports.getUIControlState = getUIControlState;\nexports.setUIControlState = setUIControlState;\nexports.isStateChange = isStateChange;\nexports.setStyle = setStyle;\nexports.beginWindow = beginWindow;\nexports.endWindow = endWindow;\nexports.beginChild = beginChild;\nexports.endChild = endChild;\nexports.setNextWindowRect = setNextWindowRect;\nexports.getFBOTexture = getFBOTexture;\nexports.setFBOTexture = setFBOTexture;\nexports.addFBOTexture = addFBOTexture;\nexports.getWindowBarHeight = getWindowBarHeight;\nexports.getContext = getContext;\nexports.button = button;\nexports.setCursorPos = setCursorPos;\nexports.loadImage = loadImage;\nexports.asset = asset;\nexports.handleDragDropTarget = handleDragDropTarget;\nexports.menu = menu;\nexports.tree = tree;\nexports.switchButton = switchButton;\nexports.imageButton = imageButton;\nexports.image = image;\nexports.inputText = inputText;\nexports.inputFloat1 = inputFloat1;\nexports.inputFloat3 = inputFloat3;\nexports.checkbox = checkbox;\nexports.collapsing = collapsing;\nexports.openModal = openModal;\nexports.closeCurrentModal = closeCurrentModal;\nexports.beginModal = beginModal;\nexports.endModal = endModal;\nexports.popup = popup;\nexports.imagePopup = imagePopup;\nexports.dummy = dummy;\nexports.list = list;\nexports.getItemRectMax = getItemRectMax;\nexports.getItemRectSize = getItemRectSize;\nexports.getWindowPos = getWindowPos;\nexports.getWindowSize = getWindowSize;\nexports.clear = clear;\nexports._getCurrentElementStateOption = _getCurrentElementStateOption;\nexports.getCurrentElementState = getCurrentElementState;\nexports.setCurrentElementState = setCurrentElementState;\nexports.init = init;\nexports.restore = restore;\nexports.deepCopy = deepCopy;\n/* No side effect */\n\n\n//# sourceURL=webpack://Extension/./lib/js/src/UIManager.bs.js?");

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./lib/js/src/Main.bs.js");
/******/ 	window.Extension = __webpack_exports__;
/******/ 	
/******/ })()
;