{"version":3,"file":"js/application-51a188ff4604c2373cba.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.min.js","webpack:///./node_modules/jquery-ui/ui/version.js","webpack:///./node_modules/jquery-ui/ui/widget.js","webpack:///./node_modules/jquery/src/ajax.js","webpack:///./node_modules/jquery/src/ajax/jsonp.js","webpack:///./node_modules/jquery/src/ajax/load.js","webpack:///./node_modules/jquery/src/ajax/script.js","webpack:///./node_modules/jquery/src/ajax/var/location.js","webpack:///./node_modules/jquery/src/ajax/var/nonce.js","webpack:///./node_modules/jquery/src/ajax/var/rquery.js","webpack:///./node_modules/jquery/src/ajax/xhr.js","webpack:///./node_modules/jquery/src/attributes.js","webpack:///./node_modules/jquery/src/attributes/attr.js","webpack:///./node_modules/jquery/src/attributes/classes.js","webpack:///./node_modules/jquery/src/attributes/prop.js","webpack:///./node_modules/jquery/src/attributes/support.js","webpack:///./node_modules/jquery/src/attributes/val.js","webpack:///./node_modules/jquery/src/callbacks.js","webpack:///./node_modules/jquery/src/core.js","webpack:///./node_modules/jquery/src/core/DOMEval.js","webpack:///./node_modules/jquery/src/core/access.js","webpack:///./node_modules/jquery/src/core/camelCase.js","webpack:///./node_modules/jquery/src/core/init.js","webpack:///./node_modules/jquery/src/core/isAttached.js","webpack:///./node_modules/jquery/src/core/nodeName.js","webpack:///./node_modules/jquery/src/core/parseHTML.js","webpack:///./node_modules/jquery/src/core/parseXML.js","webpack:///./node_modules/jquery/src/core/ready.js","webpack:///./node_modules/jquery/src/core/readyException.js","webpack:///./node_modules/jquery/src/core/stripAndCollapse.js","webpack:///./node_modules/jquery/src/core/support.js","webpack:///./node_modules/jquery/src/core/toType.js","webpack:///./node_modules/jquery/src/core/var/rsingleTag.js","webpack:///./node_modules/jquery/src/css.js","webpack:///./node_modules/jquery/src/css/addGetHookIf.js","webpack:///./node_modules/jquery/src/css/adjustCSS.js","webpack:///./node_modules/jquery/src/css/curCSS.js","webpack:///./node_modules/jquery/src/css/finalPropName.js","webpack:///./node_modules/jquery/src/css/hiddenVisibleSelectors.js","webpack:///./node_modules/jquery/src/css/showHide.js","webpack:///./node_modules/jquery/src/css/support.js","webpack:///./node_modules/jquery/src/css/var/cssExpand.js","webpack:///./node_modules/jquery/src/css/var/getStyles.js","webpack:///./node_modules/jquery/src/css/var/isHiddenWithinTree.js","webpack:///./node_modules/jquery/src/css/var/rboxStyle.js","webpack:///./node_modules/jquery/src/css/var/rcustomProp.js","webpack:///./node_modules/jquery/src/css/var/rnumnonpx.js","webpack:///./node_modules/jquery/src/css/var/swap.js","webpack:///./node_modules/jquery/src/data.js","webpack:///./node_modules/jquery/src/data/Data.js","webpack:///./node_modules/jquery/src/data/var/acceptData.js","webpack:///./node_modules/jquery/src/data/var/dataPriv.js","webpack:///./node_modules/jquery/src/data/var/dataUser.js","webpack:///./node_modules/jquery/src/deferred.js","webpack:///./node_modules/jquery/src/deferred/exceptionHook.js","webpack:///./node_modules/jquery/src/deprecated.js","webpack:///./node_modules/jquery/src/deprecated/ajax-event-alias.js","webpack:///./node_modules/jquery/src/deprecated/event.js","webpack:///./node_modules/jquery/src/dimensions.js","webpack:///./node_modules/jquery/src/effects.js","webpack:///./node_modules/jquery/src/effects/Tween.js","webpack:///./node_modules/jquery/src/effects/animatedSelector.js","webpack:///./node_modules/jquery/src/event.js","webpack:///./node_modules/jquery/src/event/trigger.js","webpack:///./node_modules/jquery/src/exports/amd.js","webpack:///./node_modules/jquery/src/exports/global.js","webpack:///./node_modules/jquery/src/jquery.js","webpack:///./node_modules/jquery/src/manipulation.js","webpack:///./node_modules/jquery/src/manipulation/_evalUrl.js","webpack:///./node_modules/jquery/src/manipulation/buildFragment.js","webpack:///./node_modules/jquery/src/manipulation/getAll.js","webpack:///./node_modules/jquery/src/manipulation/setGlobalEval.js","webpack:///./node_modules/jquery/src/manipulation/support.js","webpack:///./node_modules/jquery/src/manipulation/var/rscriptType.js","webpack:///./node_modules/jquery/src/manipulation/var/rtagName.js","webpack:///./node_modules/jquery/src/manipulation/wrapMap.js","webpack:///./node_modules/jquery/src/offset.js","webpack:///./node_modules/jquery/src/queue.js","webpack:///./node_modules/jquery/src/queue/delay.js","webpack:///./node_modules/jquery/src/selector.js","webpack:///./node_modules/jquery/src/selector/contains.js","webpack:///./node_modules/jquery/src/selector/escapeSelector.js","webpack:///./node_modules/jquery/src/serialize.js","webpack:///./node_modules/jquery/src/traversing.js","webpack:///./node_modules/jquery/src/traversing/findFilter.js","webpack:///./node_modules/jquery/src/traversing/var/dir.js","webpack:///./node_modules/jquery/src/traversing/var/rneedsContext.js","webpack:///./node_modules/jquery/src/traversing/var/siblings.js","webpack:///./node_modules/jquery/src/var/ObjectFunctionString.js","webpack:///./node_modules/jquery/src/var/arr.js","webpack:///./node_modules/jquery/src/var/class2type.js","webpack:///./node_modules/jquery/src/var/document.js","webpack:///./node_modules/jquery/src/var/documentElement.js","webpack:///./node_modules/jquery/src/var/flat.js","webpack:///./node_modules/jquery/src/var/fnToString.js","webpack:///./node_modules/jquery/src/var/getProto.js","webpack:///./node_modules/jquery/src/var/hasOwn.js","webpack:///./node_modules/jquery/src/var/indexOf.js","webpack:///./node_modules/jquery/src/var/isFunction.js","webpack:///./node_modules/jquery/src/var/isWindow.js","webpack:///./node_modules/jquery/src/var/pnum.js","webpack:///./node_modules/jquery/src/var/pop.js","webpack:///./node_modules/jquery/src/var/push.js","webpack:///./node_modules/jquery/src/var/rcheckableType.js","webpack:///./node_modules/jquery/src/var/rcssNum.js","webpack:///./node_modules/jquery/src/var/rnothtmlwhite.js","webpack:///./node_modules/jquery/src/var/rtrimCSS.js","webpack:///./node_modules/jquery/src/var/slice.js","webpack:///./node_modules/jquery/src/var/sort.js","webpack:///./node_modules/jquery/src/var/splice.js","webpack:///./node_modules/jquery/src/var/support.js","webpack:///./node_modules/jquery/src/var/toString.js","webpack:///./node_modules/jquery/src/var/whitespace.js","webpack:///./node_modules/jquery/src/wrap.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///(webpack)/buildin/global.js"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/application.js\");\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./app/javascript/channels sync recursive _channel\\\\.js$\";","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nrequire(\"@rails/ujs\").start()\n// require(\"turbolinks\").start()\nrequire(\"@rails/activestorage\").start()\nrequire(\"channels\")\n\nrequire(\"jquery\")\nrequire(\"jquery-ui\")\nrequire('bootstrap/dist/js/bootstrap.min.js')\n\n// Uncomment to copy all static images under ../images to the output folder and reference\n// them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>)\n// or the `imagePath` JavaScript helper below.\n//\n// const images = require.context('../images', true)\n// const imagePath = (name) => images(name, true)\n","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n function md5blk(s) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n }\n function md5blk_array(a) {\n var md5blks = [],\n i;\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n return md5blks;\n }\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(state, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n function rhex(n) {\n var s = \"\",\n j;\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n return s;\n }\n function hex(x) {\n var i;\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n return x.join(\"\");\n }\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n return Math.min(val, length);\n }\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n if (to !== undefined) {\n end = clamp(to, length);\n }\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n return str;\n }\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n return returnUInt8Array ? arr : buff;\n }\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n return String.fromCharCode.apply(String, bytes);\n }\n function SparkMD5() {\n this.reset();\n }\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n if (i > 55) {\n md5cycle(this._hash, tail);\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n this._finish(tail, length);\n ret = hex(this._hash);\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n this.reset();\n return ret;\n };\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n return SparkMD5;\n });\n });\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n var createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n return root.querySelector(selector);\n }\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n return event;\n }\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n var id = 0;\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n return object[methodName].apply(object, messages);\n }\n }\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n _this.dispatch(\"end\");\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n var controllers = this.createDirectUploadControllers();\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n _this.dispatch(\"end\");\n }\n };\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n function didClick(event) {\n var target = event.target;\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n submitButtonsByForm.delete(form);\n }\n function disable(input) {\n input.disabled = true;\n }\n function enable(input) {\n input.disabled = false;\n }\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n expando = '_ujsData';\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n return element[expando][key] = value;\n };\n Rails.isContentEditable = function (element) {\n var isEditable;\n isEditable = false;\n while (true) {\n if (element.isContentEditable) {\n isEditable = true;\n break;\n }\n element = element.parentElement;\n if (!element) {\n break;\n }\n }\n return isEditable;\n };\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n return result;\n };\n }\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n options.accept = AcceptHeaders[options.dataType];\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n return options;\n };\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n xhr.withCredentials = !!options.withCredentials;\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n return xhr;\n };\n processResponse = function (response, type) {\n var parser, script;\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n return response;\n };\n Rails.href = function (element) {\n return element.href;\n };\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n if (additionalParam) {\n params.push(additionalParam);\n }\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n if (!message) {\n return true;\n }\n answer = false;\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n callback = fire(element, 'confirm:complete', [answer]);\n }\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n Rails.enableElement = function (e) {\n var element;\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n element = e.target;\n } else {\n element = e;\n }\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n if (isContentEditable(element)) {\n return;\n }\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n disableLinkElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n disableFormElement = function (element) {\n var replacement;\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n replacement = element.getAttribute('data-disable-with');\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n setData(element, 'ujs:enable-with', null);\n }\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var isContentEditable, stopEverything;\n stopEverything = Rails.stopEverything;\n isContentEditable = Rails.isContentEditable;\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n if (!method) {\n return;\n }\n if (isContentEditable(this)) {\n return;\n }\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isContentEditable,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n if (!isRemote(element)) {\n return true;\n }\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n if (isContentEditable(element)) {\n fire(element, 'ajax:stopped');\n return false;\n }\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n if (!form) {\n return;\n }\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","/*!\n * Bootstrap v4.6.2 (https://getbootstrap.com/)\n * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n!function (t, e) {\n \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports, require(\"jquery\"), require(\"popper.js\")) : \"function\" == typeof define && define.amd ? define([\"exports\", \"jquery\", \"popper.js\"], e) : e((t = \"undefined\" != typeof globalThis ? globalThis : t || self).bootstrap = {}, t.jQuery, t.Popper);\n}(this, function (t, e, n) {\n \"use strict\";\n\n function i(t) {\n return t && \"object\" == typeof t && \"default\" in t ? t : {\n default: t\n };\n }\n var o = i(e),\n a = i(n);\n function s(t, e) {\n for (var n = 0; n < e.length; n++) {\n var i = e[n];\n i.enumerable = i.enumerable || !1, i.configurable = !0, \"value\" in i && (i.writable = !0), Object.defineProperty(t, i.key, i);\n }\n }\n function l(t, e, n) {\n return e && s(t.prototype, e), n && s(t, n), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), t;\n }\n function r() {\n return r = Object.assign ? Object.assign.bind() : function (t) {\n for (var e = 1; e < arguments.length; e++) {\n var n = arguments[e];\n for (var i in n) Object.prototype.hasOwnProperty.call(n, i) && (t[i] = n[i]);\n }\n return t;\n }, r.apply(this, arguments);\n }\n function u(t, e) {\n return u = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, u(t, e);\n }\n var f = \"transitionend\";\n var d = {\n TRANSITION_END: \"bsTransitionEnd\",\n getUID: function (t) {\n do {\n t += ~~(1e6 * Math.random());\n } while (document.getElementById(t));\n return t;\n },\n getSelectorFromElement: function (t) {\n var e = t.getAttribute(\"data-target\");\n if (!e || \"#\" === e) {\n var n = t.getAttribute(\"href\");\n e = n && \"#\" !== n ? n.trim() : \"\";\n }\n try {\n return document.querySelector(e) ? e : null;\n } catch (t) {\n return null;\n }\n },\n getTransitionDurationFromElement: function (t) {\n if (!t) return 0;\n var e = o.default(t).css(\"transition-duration\"),\n n = o.default(t).css(\"transition-delay\"),\n i = parseFloat(e),\n a = parseFloat(n);\n return i || a ? (e = e.split(\",\")[0], n = n.split(\",\")[0], 1e3 * (parseFloat(e) + parseFloat(n))) : 0;\n },\n reflow: function (t) {\n return t.offsetHeight;\n },\n triggerTransitionEnd: function (t) {\n o.default(t).trigger(f);\n },\n supportsTransitionEnd: function () {\n return Boolean(f);\n },\n isElement: function (t) {\n return (t[0] || t).nodeType;\n },\n typeCheckConfig: function (t, e, n) {\n for (var i in n) if (Object.prototype.hasOwnProperty.call(n, i)) {\n var o = n[i],\n a = e[i],\n s = a && d.isElement(a) ? \"element\" : null === (l = a) || \"undefined\" == typeof l ? \"\" + l : {}.toString.call(l).match(/\\s([a-z]+)/i)[1].toLowerCase();\n if (!new RegExp(o).test(s)) throw new Error(t.toUpperCase() + ': Option \"' + i + '\" provided type \"' + s + '\" but expected type \"' + o + '\".');\n }\n var l;\n },\n findShadowRoot: function (t) {\n if (!document.documentElement.attachShadow) return null;\n if (\"function\" == typeof t.getRootNode) {\n var e = t.getRootNode();\n return e instanceof ShadowRoot ? e : null;\n }\n return t instanceof ShadowRoot ? t : t.parentNode ? d.findShadowRoot(t.parentNode) : null;\n },\n jQueryDetection: function () {\n if (\"undefined\" == typeof o.default) throw new TypeError(\"Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.\");\n var t = o.default.fn.jquery.split(\" \")[0].split(\".\");\n if (t[0] < 2 && t[1] < 9 || 1 === t[0] && 9 === t[1] && t[2] < 1 || t[0] >= 4) throw new Error(\"Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0\");\n }\n };\n d.jQueryDetection(), o.default.fn.emulateTransitionEnd = function (t) {\n var e = this,\n n = !1;\n return o.default(this).one(d.TRANSITION_END, function () {\n n = !0;\n }), setTimeout(function () {\n n || d.triggerTransitionEnd(e);\n }, t), this;\n }, o.default.event.special[d.TRANSITION_END] = {\n bindType: f,\n delegateType: f,\n handle: function (t) {\n if (o.default(t.target).is(this)) return t.handleObj.handler.apply(this, arguments);\n }\n };\n var c = \"bs.alert\",\n h = o.default.fn.alert,\n g = function () {\n function t(t) {\n this._element = t;\n }\n var e = t.prototype;\n return e.close = function (t) {\n var e = this._element;\n t && (e = this._getRootElement(t)), this._triggerCloseEvent(e).isDefaultPrevented() || this._removeElement(e);\n }, e.dispose = function () {\n o.default.removeData(this._element, c), this._element = null;\n }, e._getRootElement = function (t) {\n var e = d.getSelectorFromElement(t),\n n = !1;\n return e && (n = document.querySelector(e)), n || (n = o.default(t).closest(\".alert\")[0]), n;\n }, e._triggerCloseEvent = function (t) {\n var e = o.default.Event(\"close.bs.alert\");\n return o.default(t).trigger(e), e;\n }, e._removeElement = function (t) {\n var e = this;\n if (o.default(t).removeClass(\"show\"), o.default(t).hasClass(\"fade\")) {\n var n = d.getTransitionDurationFromElement(t);\n o.default(t).one(d.TRANSITION_END, function (n) {\n return e._destroyElement(t, n);\n }).emulateTransitionEnd(n);\n } else this._destroyElement(t);\n }, e._destroyElement = function (t) {\n o.default(t).detach().trigger(\"closed.bs.alert\").remove();\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this),\n i = n.data(c);\n i || (i = new t(this), n.data(c, i)), \"close\" === e && i[e](this);\n });\n }, t._handleDismiss = function (t) {\n return function (e) {\n e && e.preventDefault(), t.close(this);\n };\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.alert.data-api\", '[data-dismiss=\"alert\"]', g._handleDismiss(new g())), o.default.fn.alert = g._jQueryInterface, o.default.fn.alert.Constructor = g, o.default.fn.alert.noConflict = function () {\n return o.default.fn.alert = h, g._jQueryInterface;\n };\n var m = \"bs.button\",\n p = o.default.fn.button,\n _ = \"active\",\n v = '[data-toggle^=\"button\"]',\n y = 'input:not([type=\"hidden\"])',\n b = \".btn\",\n E = function () {\n function t(t) {\n this._element = t, this.shouldAvoidTriggerChange = !1;\n }\n var e = t.prototype;\n return e.toggle = function () {\n var t = !0,\n e = !0,\n n = o.default(this._element).closest('[data-toggle=\"buttons\"]')[0];\n if (n) {\n var i = this._element.querySelector(y);\n if (i) {\n if (\"radio\" === i.type) if (i.checked && this._element.classList.contains(_)) t = !1;else {\n var a = n.querySelector(\".active\");\n a && o.default(a).removeClass(_);\n }\n t && (\"checkbox\" !== i.type && \"radio\" !== i.type || (i.checked = !this._element.classList.contains(_)), this.shouldAvoidTriggerChange || o.default(i).trigger(\"change\")), i.focus(), e = !1;\n }\n }\n this._element.hasAttribute(\"disabled\") || this._element.classList.contains(\"disabled\") || (e && this._element.setAttribute(\"aria-pressed\", !this._element.classList.contains(_)), t && o.default(this._element).toggleClass(_));\n }, e.dispose = function () {\n o.default.removeData(this._element, m), this._element = null;\n }, t._jQueryInterface = function (e, n) {\n return this.each(function () {\n var i = o.default(this),\n a = i.data(m);\n a || (a = new t(this), i.data(m, a)), a.shouldAvoidTriggerChange = n, \"toggle\" === e && a[e]();\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.button.data-api\", v, function (t) {\n var e = t.target,\n n = e;\n if (o.default(e).hasClass(\"btn\") || (e = o.default(e).closest(b)[0]), !e || e.hasAttribute(\"disabled\") || e.classList.contains(\"disabled\")) t.preventDefault();else {\n var i = e.querySelector(y);\n if (i && (i.hasAttribute(\"disabled\") || i.classList.contains(\"disabled\"))) return void t.preventDefault();\n \"INPUT\" !== n.tagName && \"LABEL\" === e.tagName || E._jQueryInterface.call(o.default(e), \"toggle\", \"INPUT\" === n.tagName);\n }\n }).on(\"focus.bs.button.data-api blur.bs.button.data-api\", v, function (t) {\n var e = o.default(t.target).closest(b)[0];\n o.default(e).toggleClass(\"focus\", /^focus(in)?$/.test(t.type));\n }), o.default(window).on(\"load.bs.button.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-toggle=\"buttons\"] .btn')), e = 0, n = t.length; e < n; e++) {\n var i = t[e],\n o = i.querySelector(y);\n o.checked || o.hasAttribute(\"checked\") ? i.classList.add(_) : i.classList.remove(_);\n }\n for (var a = 0, s = (t = [].slice.call(document.querySelectorAll('[data-toggle=\"button\"]'))).length; a < s; a++) {\n var l = t[a];\n \"true\" === l.getAttribute(\"aria-pressed\") ? l.classList.add(_) : l.classList.remove(_);\n }\n }), o.default.fn.button = E._jQueryInterface, o.default.fn.button.Constructor = E, o.default.fn.button.noConflict = function () {\n return o.default.fn.button = p, E._jQueryInterface;\n };\n var T = \"carousel\",\n w = \"bs.carousel\",\n C = o.default.fn[T],\n S = \"active\",\n N = \"next\",\n D = \"prev\",\n A = \"slid.bs.carousel\",\n I = \".active.carousel-item\",\n k = {\n interval: 5e3,\n keyboard: !0,\n slide: !1,\n pause: \"hover\",\n wrap: !0,\n touch: !0\n },\n O = {\n interval: \"(number|boolean)\",\n keyboard: \"boolean\",\n slide: \"(boolean|string)\",\n pause: \"(string|boolean)\",\n wrap: \"boolean\",\n touch: \"boolean\"\n },\n j = {\n TOUCH: \"touch\",\n PEN: \"pen\"\n },\n P = function () {\n function t(t, e) {\n this._items = null, this._interval = null, this._activeElement = null, this._isPaused = !1, this._isSliding = !1, this.touchTimeout = null, this.touchStartX = 0, this.touchDeltaX = 0, this._config = this._getConfig(e), this._element = t, this._indicatorsElement = this._element.querySelector(\".carousel-indicators\"), this._touchSupported = \"ontouchstart\" in document.documentElement || navigator.maxTouchPoints > 0, this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent), this._addEventListeners();\n }\n var e = t.prototype;\n return e.next = function () {\n this._isSliding || this._slide(N);\n }, e.nextWhenVisible = function () {\n var t = o.default(this._element);\n !document.hidden && t.is(\":visible\") && \"hidden\" !== t.css(\"visibility\") && this.next();\n }, e.prev = function () {\n this._isSliding || this._slide(D);\n }, e.pause = function (t) {\n t || (this._isPaused = !0), this._element.querySelector(\".carousel-item-next, .carousel-item-prev\") && (d.triggerTransitionEnd(this._element), this.cycle(!0)), clearInterval(this._interval), this._interval = null;\n }, e.cycle = function (t) {\n t || (this._isPaused = !1), this._interval && (clearInterval(this._interval), this._interval = null), this._config.interval && !this._isPaused && (this._updateInterval(), this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval));\n }, e.to = function (t) {\n var e = this;\n this._activeElement = this._element.querySelector(I);\n var n = this._getItemIndex(this._activeElement);\n if (!(t > this._items.length - 1 || t < 0)) if (this._isSliding) o.default(this._element).one(A, function () {\n return e.to(t);\n });else {\n if (n === t) return this.pause(), void this.cycle();\n var i = t > n ? N : D;\n this._slide(i, this._items[t]);\n }\n }, e.dispose = function () {\n o.default(this._element).off(\".bs.carousel\"), o.default.removeData(this._element, w), this._items = null, this._config = null, this._element = null, this._interval = null, this._isPaused = null, this._isSliding = null, this._activeElement = null, this._indicatorsElement = null;\n }, e._getConfig = function (t) {\n return t = r({}, k, t), d.typeCheckConfig(T, t, O), t;\n }, e._handleSwipe = function () {\n var t = Math.abs(this.touchDeltaX);\n if (!(t <= 40)) {\n var e = t / this.touchDeltaX;\n this.touchDeltaX = 0, e > 0 && this.prev(), e < 0 && this.next();\n }\n }, e._addEventListeners = function () {\n var t = this;\n this._config.keyboard && o.default(this._element).on(\"keydown.bs.carousel\", function (e) {\n return t._keydown(e);\n }), \"hover\" === this._config.pause && o.default(this._element).on(\"mouseenter.bs.carousel\", function (e) {\n return t.pause(e);\n }).on(\"mouseleave.bs.carousel\", function (e) {\n return t.cycle(e);\n }), this._config.touch && this._addTouchEventListeners();\n }, e._addTouchEventListeners = function () {\n var t = this;\n if (this._touchSupported) {\n var e = function (e) {\n t._pointerEvent && j[e.originalEvent.pointerType.toUpperCase()] ? t.touchStartX = e.originalEvent.clientX : t._pointerEvent || (t.touchStartX = e.originalEvent.touches[0].clientX);\n },\n n = function (e) {\n t._pointerEvent && j[e.originalEvent.pointerType.toUpperCase()] && (t.touchDeltaX = e.originalEvent.clientX - t.touchStartX), t._handleSwipe(), \"hover\" === t._config.pause && (t.pause(), t.touchTimeout && clearTimeout(t.touchTimeout), t.touchTimeout = setTimeout(function (e) {\n return t.cycle(e);\n }, 500 + t._config.interval));\n };\n o.default(this._element.querySelectorAll(\".carousel-item img\")).on(\"dragstart.bs.carousel\", function (t) {\n return t.preventDefault();\n }), this._pointerEvent ? (o.default(this._element).on(\"pointerdown.bs.carousel\", function (t) {\n return e(t);\n }), o.default(this._element).on(\"pointerup.bs.carousel\", function (t) {\n return n(t);\n }), this._element.classList.add(\"pointer-event\")) : (o.default(this._element).on(\"touchstart.bs.carousel\", function (t) {\n return e(t);\n }), o.default(this._element).on(\"touchmove.bs.carousel\", function (e) {\n return function (e) {\n t.touchDeltaX = e.originalEvent.touches && e.originalEvent.touches.length > 1 ? 0 : e.originalEvent.touches[0].clientX - t.touchStartX;\n }(e);\n }), o.default(this._element).on(\"touchend.bs.carousel\", function (t) {\n return n(t);\n }));\n }\n }, e._keydown = function (t) {\n if (!/input|textarea/i.test(t.target.tagName)) switch (t.which) {\n case 37:\n t.preventDefault(), this.prev();\n break;\n case 39:\n t.preventDefault(), this.next();\n }\n }, e._getItemIndex = function (t) {\n return this._items = t && t.parentNode ? [].slice.call(t.parentNode.querySelectorAll(\".carousel-item\")) : [], this._items.indexOf(t);\n }, e._getItemByDirection = function (t, e) {\n var n = t === N,\n i = t === D,\n o = this._getItemIndex(e),\n a = this._items.length - 1;\n if ((i && 0 === o || n && o === a) && !this._config.wrap) return e;\n var s = (o + (t === D ? -1 : 1)) % this._items.length;\n return -1 === s ? this._items[this._items.length - 1] : this._items[s];\n }, e._triggerSlideEvent = function (t, e) {\n var n = this._getItemIndex(t),\n i = this._getItemIndex(this._element.querySelector(I)),\n a = o.default.Event(\"slide.bs.carousel\", {\n relatedTarget: t,\n direction: e,\n from: i,\n to: n\n });\n return o.default(this._element).trigger(a), a;\n }, e._setActiveIndicatorElement = function (t) {\n if (this._indicatorsElement) {\n var e = [].slice.call(this._indicatorsElement.querySelectorAll(\".active\"));\n o.default(e).removeClass(S);\n var n = this._indicatorsElement.children[this._getItemIndex(t)];\n n && o.default(n).addClass(S);\n }\n }, e._updateInterval = function () {\n var t = this._activeElement || this._element.querySelector(I);\n if (t) {\n var e = parseInt(t.getAttribute(\"data-interval\"), 10);\n e ? (this._config.defaultInterval = this._config.defaultInterval || this._config.interval, this._config.interval = e) : this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n }, e._slide = function (t, e) {\n var n,\n i,\n a,\n s = this,\n l = this._element.querySelector(I),\n r = this._getItemIndex(l),\n u = e || l && this._getItemByDirection(t, l),\n f = this._getItemIndex(u),\n c = Boolean(this._interval);\n if (t === N ? (n = \"carousel-item-left\", i = \"carousel-item-next\", a = \"left\") : (n = \"carousel-item-right\", i = \"carousel-item-prev\", a = \"right\"), u && o.default(u).hasClass(S)) this._isSliding = !1;else if (!this._triggerSlideEvent(u, a).isDefaultPrevented() && l && u) {\n this._isSliding = !0, c && this.pause(), this._setActiveIndicatorElement(u), this._activeElement = u;\n var h = o.default.Event(A, {\n relatedTarget: u,\n direction: a,\n from: r,\n to: f\n });\n if (o.default(this._element).hasClass(\"slide\")) {\n o.default(u).addClass(i), d.reflow(u), o.default(l).addClass(n), o.default(u).addClass(n);\n var g = d.getTransitionDurationFromElement(l);\n o.default(l).one(d.TRANSITION_END, function () {\n o.default(u).removeClass(n + \" \" + i).addClass(S), o.default(l).removeClass(\"active \" + i + \" \" + n), s._isSliding = !1, setTimeout(function () {\n return o.default(s._element).trigger(h);\n }, 0);\n }).emulateTransitionEnd(g);\n } else o.default(l).removeClass(S), o.default(u).addClass(S), this._isSliding = !1, o.default(this._element).trigger(h);\n c && this.cycle();\n }\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this).data(w),\n i = r({}, k, o.default(this).data());\n \"object\" == typeof e && (i = r({}, i, e));\n var a = \"string\" == typeof e ? e : i.slide;\n if (n || (n = new t(this, i), o.default(this).data(w, n)), \"number\" == typeof e) n.to(e);else if (\"string\" == typeof a) {\n if (\"undefined\" == typeof n[a]) throw new TypeError('No method named \"' + a + '\"');\n n[a]();\n } else i.interval && i.ride && (n.pause(), n.cycle());\n });\n }, t._dataApiClickHandler = function (e) {\n var n = d.getSelectorFromElement(this);\n if (n) {\n var i = o.default(n)[0];\n if (i && o.default(i).hasClass(\"carousel\")) {\n var a = r({}, o.default(i).data(), o.default(this).data()),\n s = this.getAttribute(\"data-slide-to\");\n s && (a.interval = !1), t._jQueryInterface.call(o.default(i), a), s && o.default(i).data(w).to(s), e.preventDefault();\n }\n }\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return k;\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.carousel.data-api\", \"[data-slide], [data-slide-to]\", P._dataApiClickHandler), o.default(window).on(\"load.bs.carousel.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-ride=\"carousel\"]')), e = 0, n = t.length; e < n; e++) {\n var i = o.default(t[e]);\n P._jQueryInterface.call(i, i.data());\n }\n }), o.default.fn[T] = P._jQueryInterface, o.default.fn[T].Constructor = P, o.default.fn[T].noConflict = function () {\n return o.default.fn[T] = C, P._jQueryInterface;\n };\n var L = \"collapse\",\n R = \"bs.collapse\",\n x = o.default.fn[L],\n q = \"show\",\n F = \"collapse\",\n Q = \"collapsing\",\n B = \"collapsed\",\n H = \"width\",\n U = '[data-toggle=\"collapse\"]',\n M = {\n toggle: !0,\n parent: \"\"\n },\n W = {\n toggle: \"boolean\",\n parent: \"(string|element)\"\n },\n V = function () {\n function t(t, e) {\n this._isTransitioning = !1, this._element = t, this._config = this._getConfig(e), this._triggerArray = [].slice.call(document.querySelectorAll('[data-toggle=\"collapse\"][href=\"#' + t.id + '\"],[data-toggle=\"collapse\"][data-target=\"#' + t.id + '\"]'));\n for (var n = [].slice.call(document.querySelectorAll(U)), i = 0, o = n.length; i < o; i++) {\n var a = n[i],\n s = d.getSelectorFromElement(a),\n l = [].slice.call(document.querySelectorAll(s)).filter(function (e) {\n return e === t;\n });\n null !== s && l.length > 0 && (this._selector = s, this._triggerArray.push(a));\n }\n this._parent = this._config.parent ? this._getParent() : null, this._config.parent || this._addAriaAndCollapsedClass(this._element, this._triggerArray), this._config.toggle && this.toggle();\n }\n var e = t.prototype;\n return e.toggle = function () {\n o.default(this._element).hasClass(q) ? this.hide() : this.show();\n }, e.show = function () {\n var e,\n n,\n i = this;\n if (!(this._isTransitioning || o.default(this._element).hasClass(q) || (this._parent && 0 === (e = [].slice.call(this._parent.querySelectorAll(\".show, .collapsing\")).filter(function (t) {\n return \"string\" == typeof i._config.parent ? t.getAttribute(\"data-parent\") === i._config.parent : t.classList.contains(F);\n })).length && (e = null), e && (n = o.default(e).not(this._selector).data(R)) && n._isTransitioning))) {\n var a = o.default.Event(\"show.bs.collapse\");\n if (o.default(this._element).trigger(a), !a.isDefaultPrevented()) {\n e && (t._jQueryInterface.call(o.default(e).not(this._selector), \"hide\"), n || o.default(e).data(R, null));\n var s = this._getDimension();\n o.default(this._element).removeClass(F).addClass(Q), this._element.style[s] = 0, this._triggerArray.length && o.default(this._triggerArray).removeClass(B).attr(\"aria-expanded\", !0), this.setTransitioning(!0);\n var l = \"scroll\" + (s[0].toUpperCase() + s.slice(1)),\n r = d.getTransitionDurationFromElement(this._element);\n o.default(this._element).one(d.TRANSITION_END, function () {\n o.default(i._element).removeClass(Q).addClass(\"collapse show\"), i._element.style[s] = \"\", i.setTransitioning(!1), o.default(i._element).trigger(\"shown.bs.collapse\");\n }).emulateTransitionEnd(r), this._element.style[s] = this._element[l] + \"px\";\n }\n }\n }, e.hide = function () {\n var t = this;\n if (!this._isTransitioning && o.default(this._element).hasClass(q)) {\n var e = o.default.Event(\"hide.bs.collapse\");\n if (o.default(this._element).trigger(e), !e.isDefaultPrevented()) {\n var n = this._getDimension();\n this._element.style[n] = this._element.getBoundingClientRect()[n] + \"px\", d.reflow(this._element), o.default(this._element).addClass(Q).removeClass(\"collapse show\");\n var i = this._triggerArray.length;\n if (i > 0) for (var a = 0; a < i; a++) {\n var s = this._triggerArray[a],\n l = d.getSelectorFromElement(s);\n null !== l && (o.default([].slice.call(document.querySelectorAll(l))).hasClass(q) || o.default(s).addClass(B).attr(\"aria-expanded\", !1));\n }\n this.setTransitioning(!0), this._element.style[n] = \"\";\n var r = d.getTransitionDurationFromElement(this._element);\n o.default(this._element).one(d.TRANSITION_END, function () {\n t.setTransitioning(!1), o.default(t._element).removeClass(Q).addClass(F).trigger(\"hidden.bs.collapse\");\n }).emulateTransitionEnd(r);\n }\n }\n }, e.setTransitioning = function (t) {\n this._isTransitioning = t;\n }, e.dispose = function () {\n o.default.removeData(this._element, R), this._config = null, this._parent = null, this._element = null, this._triggerArray = null, this._isTransitioning = null;\n }, e._getConfig = function (t) {\n return (t = r({}, M, t)).toggle = Boolean(t.toggle), d.typeCheckConfig(L, t, W), t;\n }, e._getDimension = function () {\n return o.default(this._element).hasClass(H) ? H : \"height\";\n }, e._getParent = function () {\n var e,\n n = this;\n d.isElement(this._config.parent) ? (e = this._config.parent, \"undefined\" != typeof this._config.parent.jquery && (e = this._config.parent[0])) : e = document.querySelector(this._config.parent);\n var i = '[data-toggle=\"collapse\"][data-parent=\"' + this._config.parent + '\"]',\n a = [].slice.call(e.querySelectorAll(i));\n return o.default(a).each(function (e, i) {\n n._addAriaAndCollapsedClass(t._getTargetFromElement(i), [i]);\n }), e;\n }, e._addAriaAndCollapsedClass = function (t, e) {\n var n = o.default(t).hasClass(q);\n e.length && o.default(e).toggleClass(B, !n).attr(\"aria-expanded\", n);\n }, t._getTargetFromElement = function (t) {\n var e = d.getSelectorFromElement(t);\n return e ? document.querySelector(e) : null;\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this),\n i = n.data(R),\n a = r({}, M, n.data(), \"object\" == typeof e && e ? e : {});\n if (!i && a.toggle && \"string\" == typeof e && /show|hide/.test(e) && (a.toggle = !1), i || (i = new t(this, a), n.data(R, i)), \"string\" == typeof e) {\n if (\"undefined\" == typeof i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e]();\n }\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return M;\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.collapse.data-api\", U, function (t) {\n \"A\" === t.currentTarget.tagName && t.preventDefault();\n var e = o.default(this),\n n = d.getSelectorFromElement(this),\n i = [].slice.call(document.querySelectorAll(n));\n o.default(i).each(function () {\n var t = o.default(this),\n n = t.data(R) ? \"toggle\" : e.data();\n V._jQueryInterface.call(t, n);\n });\n }), o.default.fn[L] = V._jQueryInterface, o.default.fn[L].Constructor = V, o.default.fn[L].noConflict = function () {\n return o.default.fn[L] = x, V._jQueryInterface;\n };\n var z = \"dropdown\",\n K = \"bs.dropdown\",\n X = o.default.fn[z],\n Y = new RegExp(\"38|40|27\"),\n $ = \"disabled\",\n J = \"show\",\n G = \"dropdown-menu-right\",\n Z = \"hide.bs.dropdown\",\n tt = \"hidden.bs.dropdown\",\n et = \"click.bs.dropdown.data-api\",\n nt = \"keydown.bs.dropdown.data-api\",\n it = '[data-toggle=\"dropdown\"]',\n ot = \".dropdown-menu\",\n at = {\n offset: 0,\n flip: !0,\n boundary: \"scrollParent\",\n reference: \"toggle\",\n display: \"dynamic\",\n popperConfig: null\n },\n st = {\n offset: \"(number|string|function)\",\n flip: \"boolean\",\n boundary: \"(string|element)\",\n reference: \"(string|element)\",\n display: \"string\",\n popperConfig: \"(null|object)\"\n },\n lt = function () {\n function t(t, e) {\n this._element = t, this._popper = null, this._config = this._getConfig(e), this._menu = this._getMenuElement(), this._inNavbar = this._detectNavbar(), this._addEventListeners();\n }\n var e = t.prototype;\n return e.toggle = function () {\n if (!this._element.disabled && !o.default(this._element).hasClass($)) {\n var e = o.default(this._menu).hasClass(J);\n t._clearMenus(), e || this.show(!0);\n }\n }, e.show = function (e) {\n if (void 0 === e && (e = !1), !(this._element.disabled || o.default(this._element).hasClass($) || o.default(this._menu).hasClass(J))) {\n var n = {\n relatedTarget: this._element\n },\n i = o.default.Event(\"show.bs.dropdown\", n),\n s = t._getParentFromElement(this._element);\n if (o.default(s).trigger(i), !i.isDefaultPrevented()) {\n if (!this._inNavbar && e) {\n if (\"undefined\" == typeof a.default) throw new TypeError(\"Bootstrap's dropdowns require Popper (https://popper.js.org)\");\n var l = this._element;\n \"parent\" === this._config.reference ? l = s : d.isElement(this._config.reference) && (l = this._config.reference, \"undefined\" != typeof this._config.reference.jquery && (l = this._config.reference[0])), \"scrollParent\" !== this._config.boundary && o.default(s).addClass(\"position-static\"), this._popper = new a.default(l, this._menu, this._getPopperConfig());\n }\n \"ontouchstart\" in document.documentElement && 0 === o.default(s).closest(\".navbar-nav\").length && o.default(document.body).children().on(\"mouseover\", null, o.default.noop), this._element.focus(), this._element.setAttribute(\"aria-expanded\", !0), o.default(this._menu).toggleClass(J), o.default(s).toggleClass(J).trigger(o.default.Event(\"shown.bs.dropdown\", n));\n }\n }\n }, e.hide = function () {\n if (!this._element.disabled && !o.default(this._element).hasClass($) && o.default(this._menu).hasClass(J)) {\n var e = {\n relatedTarget: this._element\n },\n n = o.default.Event(Z, e),\n i = t._getParentFromElement(this._element);\n o.default(i).trigger(n), n.isDefaultPrevented() || (this._popper && this._popper.destroy(), o.default(this._menu).toggleClass(J), o.default(i).toggleClass(J).trigger(o.default.Event(tt, e)));\n }\n }, e.dispose = function () {\n o.default.removeData(this._element, K), o.default(this._element).off(\".bs.dropdown\"), this._element = null, this._menu = null, null !== this._popper && (this._popper.destroy(), this._popper = null);\n }, e.update = function () {\n this._inNavbar = this._detectNavbar(), null !== this._popper && this._popper.scheduleUpdate();\n }, e._addEventListeners = function () {\n var t = this;\n o.default(this._element).on(\"click.bs.dropdown\", function (e) {\n e.preventDefault(), e.stopPropagation(), t.toggle();\n });\n }, e._getConfig = function (t) {\n return t = r({}, this.constructor.Default, o.default(this._element).data(), t), d.typeCheckConfig(z, t, this.constructor.DefaultType), t;\n }, e._getMenuElement = function () {\n if (!this._menu) {\n var e = t._getParentFromElement(this._element);\n e && (this._menu = e.querySelector(ot));\n }\n return this._menu;\n }, e._getPlacement = function () {\n var t = o.default(this._element.parentNode),\n e = \"bottom-start\";\n return t.hasClass(\"dropup\") ? e = o.default(this._menu).hasClass(G) ? \"top-end\" : \"top-start\" : t.hasClass(\"dropright\") ? e = \"right-start\" : t.hasClass(\"dropleft\") ? e = \"left-start\" : o.default(this._menu).hasClass(G) && (e = \"bottom-end\"), e;\n }, e._detectNavbar = function () {\n return o.default(this._element).closest(\".navbar\").length > 0;\n }, e._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this._config.offset ? e.fn = function (e) {\n return e.offsets = r({}, e.offsets, t._config.offset(e.offsets, t._element)), e;\n } : e.offset = this._config.offset, e;\n }, e._getPopperConfig = function () {\n var t = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n };\n return \"static\" === this._config.display && (t.modifiers.applyStyle = {\n enabled: !1\n }), r({}, t, this._config.popperConfig);\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this).data(K);\n if (n || (n = new t(this, \"object\" == typeof e ? e : null), o.default(this).data(K, n)), \"string\" == typeof e) {\n if (\"undefined\" == typeof n[e]) throw new TypeError('No method named \"' + e + '\"');\n n[e]();\n }\n });\n }, t._clearMenus = function (e) {\n if (!e || 3 !== e.which && (\"keyup\" !== e.type || 9 === e.which)) for (var n = [].slice.call(document.querySelectorAll(it)), i = 0, a = n.length; i < a; i++) {\n var s = t._getParentFromElement(n[i]),\n l = o.default(n[i]).data(K),\n r = {\n relatedTarget: n[i]\n };\n if (e && \"click\" === e.type && (r.clickEvent = e), l) {\n var u = l._menu;\n if (o.default(s).hasClass(J) && !(e && (\"click\" === e.type && /input|textarea/i.test(e.target.tagName) || \"keyup\" === e.type && 9 === e.which) && o.default.contains(s, e.target))) {\n var f = o.default.Event(Z, r);\n o.default(s).trigger(f), f.isDefaultPrevented() || (\"ontouchstart\" in document.documentElement && o.default(document.body).children().off(\"mouseover\", null, o.default.noop), n[i].setAttribute(\"aria-expanded\", \"false\"), l._popper && l._popper.destroy(), o.default(u).removeClass(J), o.default(s).removeClass(J).trigger(o.default.Event(tt, r)));\n }\n }\n }\n }, t._getParentFromElement = function (t) {\n var e,\n n = d.getSelectorFromElement(t);\n return n && (e = document.querySelector(n)), e || t.parentNode;\n }, t._dataApiKeydownHandler = function (e) {\n if (!(/input|textarea/i.test(e.target.tagName) ? 32 === e.which || 27 !== e.which && (40 !== e.which && 38 !== e.which || o.default(e.target).closest(ot).length) : !Y.test(e.which)) && !this.disabled && !o.default(this).hasClass($)) {\n var n = t._getParentFromElement(this),\n i = o.default(n).hasClass(J);\n if (i || 27 !== e.which) {\n if (e.preventDefault(), e.stopPropagation(), !i || 27 === e.which || 32 === e.which) return 27 === e.which && o.default(n.querySelector(it)).trigger(\"focus\"), void o.default(this).trigger(\"click\");\n var a = [].slice.call(n.querySelectorAll(\".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)\")).filter(function (t) {\n return o.default(t).is(\":visible\");\n });\n if (0 !== a.length) {\n var s = a.indexOf(e.target);\n 38 === e.which && s > 0 && s--, 40 === e.which && s < a.length - 1 && s++, s < 0 && (s = 0), a[s].focus();\n }\n }\n }\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return at;\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return st;\n }\n }]), t;\n }();\n o.default(document).on(nt, it, lt._dataApiKeydownHandler).on(nt, ot, lt._dataApiKeydownHandler).on(et + \" keyup.bs.dropdown.data-api\", lt._clearMenus).on(et, it, function (t) {\n t.preventDefault(), t.stopPropagation(), lt._jQueryInterface.call(o.default(this), \"toggle\");\n }).on(et, \".dropdown form\", function (t) {\n t.stopPropagation();\n }), o.default.fn[z] = lt._jQueryInterface, o.default.fn[z].Constructor = lt, o.default.fn[z].noConflict = function () {\n return o.default.fn[z] = X, lt._jQueryInterface;\n };\n var rt = \"bs.modal\",\n ut = o.default.fn.modal,\n ft = \"modal-open\",\n dt = \"fade\",\n ct = \"show\",\n ht = \"modal-static\",\n gt = \"hidden.bs.modal\",\n mt = \"show.bs.modal\",\n pt = \"focusin.bs.modal\",\n _t = \"resize.bs.modal\",\n vt = \"click.dismiss.bs.modal\",\n yt = \"keydown.dismiss.bs.modal\",\n bt = \"mousedown.dismiss.bs.modal\",\n Et = \".fixed-top, .fixed-bottom, .is-fixed, .sticky-top\",\n Tt = {\n backdrop: !0,\n keyboard: !0,\n focus: !0,\n show: !0\n },\n wt = {\n backdrop: \"(boolean|string)\",\n keyboard: \"boolean\",\n focus: \"boolean\",\n show: \"boolean\"\n },\n Ct = function () {\n function t(t, e) {\n this._config = this._getConfig(e), this._element = t, this._dialog = t.querySelector(\".modal-dialog\"), this._backdrop = null, this._isShown = !1, this._isBodyOverflowing = !1, this._ignoreBackdropClick = !1, this._isTransitioning = !1, this._scrollbarWidth = 0;\n }\n var e = t.prototype;\n return e.toggle = function (t) {\n return this._isShown ? this.hide() : this.show(t);\n }, e.show = function (t) {\n var e = this;\n if (!this._isShown && !this._isTransitioning) {\n var n = o.default.Event(mt, {\n relatedTarget: t\n });\n o.default(this._element).trigger(n), n.isDefaultPrevented() || (this._isShown = !0, o.default(this._element).hasClass(dt) && (this._isTransitioning = !0), this._checkScrollbar(), this._setScrollbar(), this._adjustDialog(), this._setEscapeEvent(), this._setResizeEvent(), o.default(this._element).on(vt, '[data-dismiss=\"modal\"]', function (t) {\n return e.hide(t);\n }), o.default(this._dialog).on(bt, function () {\n o.default(e._element).one(\"mouseup.dismiss.bs.modal\", function (t) {\n o.default(t.target).is(e._element) && (e._ignoreBackdropClick = !0);\n });\n }), this._showBackdrop(function () {\n return e._showElement(t);\n }));\n }\n }, e.hide = function (t) {\n var e = this;\n if (t && t.preventDefault(), this._isShown && !this._isTransitioning) {\n var n = o.default.Event(\"hide.bs.modal\");\n if (o.default(this._element).trigger(n), this._isShown && !n.isDefaultPrevented()) {\n this._isShown = !1;\n var i = o.default(this._element).hasClass(dt);\n if (i && (this._isTransitioning = !0), this._setEscapeEvent(), this._setResizeEvent(), o.default(document).off(pt), o.default(this._element).removeClass(ct), o.default(this._element).off(vt), o.default(this._dialog).off(bt), i) {\n var a = d.getTransitionDurationFromElement(this._element);\n o.default(this._element).one(d.TRANSITION_END, function (t) {\n return e._hideModal(t);\n }).emulateTransitionEnd(a);\n } else this._hideModal();\n }\n }\n }, e.dispose = function () {\n [window, this._element, this._dialog].forEach(function (t) {\n return o.default(t).off(\".bs.modal\");\n }), o.default(document).off(pt), o.default.removeData(this._element, rt), this._config = null, this._element = null, this._dialog = null, this._backdrop = null, this._isShown = null, this._isBodyOverflowing = null, this._ignoreBackdropClick = null, this._isTransitioning = null, this._scrollbarWidth = null;\n }, e.handleUpdate = function () {\n this._adjustDialog();\n }, e._getConfig = function (t) {\n return t = r({}, Tt, t), d.typeCheckConfig(\"modal\", t, wt), t;\n }, e._triggerBackdropTransition = function () {\n var t = this,\n e = o.default.Event(\"hidePrevented.bs.modal\");\n if (o.default(this._element).trigger(e), !e.isDefaultPrevented()) {\n var n = this._element.scrollHeight > document.documentElement.clientHeight;\n n || (this._element.style.overflowY = \"hidden\"), this._element.classList.add(ht);\n var i = d.getTransitionDurationFromElement(this._dialog);\n o.default(this._element).off(d.TRANSITION_END), o.default(this._element).one(d.TRANSITION_END, function () {\n t._element.classList.remove(ht), n || o.default(t._element).one(d.TRANSITION_END, function () {\n t._element.style.overflowY = \"\";\n }).emulateTransitionEnd(t._element, i);\n }).emulateTransitionEnd(i), this._element.focus();\n }\n }, e._showElement = function (t) {\n var e = this,\n n = o.default(this._element).hasClass(dt),\n i = this._dialog ? this._dialog.querySelector(\".modal-body\") : null;\n this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE || document.body.appendChild(this._element), this._element.style.display = \"block\", this._element.removeAttribute(\"aria-hidden\"), this._element.setAttribute(\"aria-modal\", !0), this._element.setAttribute(\"role\", \"dialog\"), o.default(this._dialog).hasClass(\"modal-dialog-scrollable\") && i ? i.scrollTop = 0 : this._element.scrollTop = 0, n && d.reflow(this._element), o.default(this._element).addClass(ct), this._config.focus && this._enforceFocus();\n var a = o.default.Event(\"shown.bs.modal\", {\n relatedTarget: t\n }),\n s = function () {\n e._config.focus && e._element.focus(), e._isTransitioning = !1, o.default(e._element).trigger(a);\n };\n if (n) {\n var l = d.getTransitionDurationFromElement(this._dialog);\n o.default(this._dialog).one(d.TRANSITION_END, s).emulateTransitionEnd(l);\n } else s();\n }, e._enforceFocus = function () {\n var t = this;\n o.default(document).off(pt).on(pt, function (e) {\n document !== e.target && t._element !== e.target && 0 === o.default(t._element).has(e.target).length && t._element.focus();\n });\n }, e._setEscapeEvent = function () {\n var t = this;\n this._isShown ? o.default(this._element).on(yt, function (e) {\n t._config.keyboard && 27 === e.which ? (e.preventDefault(), t.hide()) : t._config.keyboard || 27 !== e.which || t._triggerBackdropTransition();\n }) : this._isShown || o.default(this._element).off(yt);\n }, e._setResizeEvent = function () {\n var t = this;\n this._isShown ? o.default(window).on(_t, function (e) {\n return t.handleUpdate(e);\n }) : o.default(window).off(_t);\n }, e._hideModal = function () {\n var t = this;\n this._element.style.display = \"none\", this._element.setAttribute(\"aria-hidden\", !0), this._element.removeAttribute(\"aria-modal\"), this._element.removeAttribute(\"role\"), this._isTransitioning = !1, this._showBackdrop(function () {\n o.default(document.body).removeClass(ft), t._resetAdjustments(), t._resetScrollbar(), o.default(t._element).trigger(gt);\n });\n }, e._removeBackdrop = function () {\n this._backdrop && (o.default(this._backdrop).remove(), this._backdrop = null);\n }, e._showBackdrop = function (t) {\n var e = this,\n n = o.default(this._element).hasClass(dt) ? dt : \"\";\n if (this._isShown && this._config.backdrop) {\n if (this._backdrop = document.createElement(\"div\"), this._backdrop.className = \"modal-backdrop\", n && this._backdrop.classList.add(n), o.default(this._backdrop).appendTo(document.body), o.default(this._element).on(vt, function (t) {\n e._ignoreBackdropClick ? e._ignoreBackdropClick = !1 : t.target === t.currentTarget && (\"static\" === e._config.backdrop ? e._triggerBackdropTransition() : e.hide());\n }), n && d.reflow(this._backdrop), o.default(this._backdrop).addClass(ct), !t) return;\n if (!n) return void t();\n var i = d.getTransitionDurationFromElement(this._backdrop);\n o.default(this._backdrop).one(d.TRANSITION_END, t).emulateTransitionEnd(i);\n } else if (!this._isShown && this._backdrop) {\n o.default(this._backdrop).removeClass(ct);\n var a = function () {\n e._removeBackdrop(), t && t();\n };\n if (o.default(this._element).hasClass(dt)) {\n var s = d.getTransitionDurationFromElement(this._backdrop);\n o.default(this._backdrop).one(d.TRANSITION_END, a).emulateTransitionEnd(s);\n } else a();\n } else t && t();\n }, e._adjustDialog = function () {\n var t = this._element.scrollHeight > document.documentElement.clientHeight;\n !this._isBodyOverflowing && t && (this._element.style.paddingLeft = this._scrollbarWidth + \"px\"), this._isBodyOverflowing && !t && (this._element.style.paddingRight = this._scrollbarWidth + \"px\");\n }, e._resetAdjustments = function () {\n this._element.style.paddingLeft = \"\", this._element.style.paddingRight = \"\";\n }, e._checkScrollbar = function () {\n var t = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(t.left + t.right) < window.innerWidth, this._scrollbarWidth = this._getScrollbarWidth();\n }, e._setScrollbar = function () {\n var t = this;\n if (this._isBodyOverflowing) {\n var e = [].slice.call(document.querySelectorAll(Et)),\n n = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n o.default(e).each(function (e, n) {\n var i = n.style.paddingRight,\n a = o.default(n).css(\"padding-right\");\n o.default(n).data(\"padding-right\", i).css(\"padding-right\", parseFloat(a) + t._scrollbarWidth + \"px\");\n }), o.default(n).each(function (e, n) {\n var i = n.style.marginRight,\n a = o.default(n).css(\"margin-right\");\n o.default(n).data(\"margin-right\", i).css(\"margin-right\", parseFloat(a) - t._scrollbarWidth + \"px\");\n });\n var i = document.body.style.paddingRight,\n a = o.default(document.body).css(\"padding-right\");\n o.default(document.body).data(\"padding-right\", i).css(\"padding-right\", parseFloat(a) + this._scrollbarWidth + \"px\");\n }\n o.default(document.body).addClass(ft);\n }, e._resetScrollbar = function () {\n var t = [].slice.call(document.querySelectorAll(Et));\n o.default(t).each(function (t, e) {\n var n = o.default(e).data(\"padding-right\");\n o.default(e).removeData(\"padding-right\"), e.style.paddingRight = n || \"\";\n });\n var e = [].slice.call(document.querySelectorAll(\".sticky-top\"));\n o.default(e).each(function (t, e) {\n var n = o.default(e).data(\"margin-right\");\n \"undefined\" != typeof n && o.default(e).css(\"margin-right\", n).removeData(\"margin-right\");\n });\n var n = o.default(document.body).data(\"padding-right\");\n o.default(document.body).removeData(\"padding-right\"), document.body.style.paddingRight = n || \"\";\n }, e._getScrollbarWidth = function () {\n var t = document.createElement(\"div\");\n t.className = \"modal-scrollbar-measure\", document.body.appendChild(t);\n var e = t.getBoundingClientRect().width - t.clientWidth;\n return document.body.removeChild(t), e;\n }, t._jQueryInterface = function (e, n) {\n return this.each(function () {\n var i = o.default(this).data(rt),\n a = r({}, Tt, o.default(this).data(), \"object\" == typeof e && e ? e : {});\n if (i || (i = new t(this, a), o.default(this).data(rt, i)), \"string\" == typeof e) {\n if (\"undefined\" == typeof i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e](n);\n } else a.show && i.show(n);\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return Tt;\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.modal.data-api\", '[data-toggle=\"modal\"]', function (t) {\n var e,\n n = this,\n i = d.getSelectorFromElement(this);\n i && (e = document.querySelector(i));\n var a = o.default(e).data(rt) ? \"toggle\" : r({}, o.default(e).data(), o.default(this).data());\n \"A\" !== this.tagName && \"AREA\" !== this.tagName || t.preventDefault();\n var s = o.default(e).one(mt, function (t) {\n t.isDefaultPrevented() || s.one(gt, function () {\n o.default(n).is(\":visible\") && n.focus();\n });\n });\n Ct._jQueryInterface.call(o.default(e), a, this);\n }), o.default.fn.modal = Ct._jQueryInterface, o.default.fn.modal.Constructor = Ct, o.default.fn.modal.noConflict = function () {\n return o.default.fn.modal = ut, Ct._jQueryInterface;\n };\n var St = [\"background\", \"cite\", \"href\", \"itemtype\", \"longdesc\", \"poster\", \"src\", \"xlink:href\"],\n Nt = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,\n Dt = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n function At(t, e, n) {\n if (0 === t.length) return t;\n if (n && \"function\" == typeof n) return n(t);\n for (var i = new window.DOMParser().parseFromString(t, \"text/html\"), o = Object.keys(e), a = [].slice.call(i.body.querySelectorAll(\"*\")), s = function (t, n) {\n var i = a[t],\n s = i.nodeName.toLowerCase();\n if (-1 === o.indexOf(i.nodeName.toLowerCase())) return i.parentNode.removeChild(i), \"continue\";\n var l = [].slice.call(i.attributes),\n r = [].concat(e[\"*\"] || [], e[s] || []);\n l.forEach(function (t) {\n (function (t, e) {\n var n = t.nodeName.toLowerCase();\n if (-1 !== e.indexOf(n)) return -1 === St.indexOf(n) || Boolean(Nt.test(t.nodeValue) || Dt.test(t.nodeValue));\n for (var i = e.filter(function (t) {\n return t instanceof RegExp;\n }), o = 0, a = i.length; o < a; o++) if (i[o].test(n)) return !0;\n return !1;\n })(t, r) || i.removeAttribute(t.nodeName);\n });\n }, l = 0, r = a.length; l < r; l++) s(l);\n return i.body.innerHTML;\n }\n var It = \"tooltip\",\n kt = \"bs.tooltip\",\n Ot = o.default.fn.tooltip,\n jt = new RegExp(\"(^|\\\\s)bs-tooltip\\\\S+\", \"g\"),\n Pt = [\"sanitize\", \"whiteList\", \"sanitizeFn\"],\n Lt = \"fade\",\n Rt = \"show\",\n xt = \"show\",\n qt = \"out\",\n Ft = \"hover\",\n Qt = \"focus\",\n Bt = {\n AUTO: \"auto\",\n TOP: \"top\",\n RIGHT: \"right\",\n BOTTOM: \"bottom\",\n LEFT: \"left\"\n },\n Ht = {\n animation: !0,\n template: '
',\n trigger: \"hover focus\",\n title: \"\",\n delay: 0,\n html: !1,\n selector: !1,\n placement: \"top\",\n offset: 0,\n container: !1,\n fallbackPlacement: \"flip\",\n boundary: \"scrollParent\",\n customClass: \"\",\n sanitize: !0,\n sanitizeFn: null,\n whiteList: {\n \"*\": [\"class\", \"dir\", \"id\", \"lang\", \"role\", /^aria-[\\w-]*$/i],\n a: [\"target\", \"href\", \"title\", \"rel\"],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: [\"src\", \"srcset\", \"alt\", \"title\", \"width\", \"height\"],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n },\n popperConfig: null\n },\n Ut = {\n animation: \"boolean\",\n template: \"string\",\n title: \"(string|element|function)\",\n trigger: \"string\",\n delay: \"(number|object)\",\n html: \"boolean\",\n selector: \"(string|boolean)\",\n placement: \"(string|function)\",\n offset: \"(number|string|function)\",\n container: \"(string|element|boolean)\",\n fallbackPlacement: \"(string|array)\",\n boundary: \"(string|element)\",\n customClass: \"(string|function)\",\n sanitize: \"boolean\",\n sanitizeFn: \"(null|function)\",\n whiteList: \"object\",\n popperConfig: \"(null|object)\"\n },\n Mt = {\n HIDE: \"hide.bs.tooltip\",\n HIDDEN: \"hidden.bs.tooltip\",\n SHOW: \"show.bs.tooltip\",\n SHOWN: \"shown.bs.tooltip\",\n INSERTED: \"inserted.bs.tooltip\",\n CLICK: \"click.bs.tooltip\",\n FOCUSIN: \"focusin.bs.tooltip\",\n FOCUSOUT: \"focusout.bs.tooltip\",\n MOUSEENTER: \"mouseenter.bs.tooltip\",\n MOUSELEAVE: \"mouseleave.bs.tooltip\"\n },\n Wt = function () {\n function t(t, e) {\n if (\"undefined\" == typeof a.default) throw new TypeError(\"Bootstrap's tooltips require Popper (https://popper.js.org)\");\n this._isEnabled = !0, this._timeout = 0, this._hoverState = \"\", this._activeTrigger = {}, this._popper = null, this.element = t, this.config = this._getConfig(e), this.tip = null, this._setListeners();\n }\n var e = t.prototype;\n return e.enable = function () {\n this._isEnabled = !0;\n }, e.disable = function () {\n this._isEnabled = !1;\n }, e.toggleEnabled = function () {\n this._isEnabled = !this._isEnabled;\n }, e.toggle = function (t) {\n if (this._isEnabled) if (t) {\n var e = this.constructor.DATA_KEY,\n n = o.default(t.currentTarget).data(e);\n n || (n = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(e, n)), n._activeTrigger.click = !n._activeTrigger.click, n._isWithActiveTrigger() ? n._enter(null, n) : n._leave(null, n);\n } else {\n if (o.default(this.getTipElement()).hasClass(Rt)) return void this._leave(null, this);\n this._enter(null, this);\n }\n }, e.dispose = function () {\n clearTimeout(this._timeout), o.default.removeData(this.element, this.constructor.DATA_KEY), o.default(this.element).off(this.constructor.EVENT_KEY), o.default(this.element).closest(\".modal\").off(\"hide.bs.modal\", this._hideModalHandler), this.tip && o.default(this.tip).remove(), this._isEnabled = null, this._timeout = null, this._hoverState = null, this._activeTrigger = null, this._popper && this._popper.destroy(), this._popper = null, this.element = null, this.config = null, this.tip = null;\n }, e.show = function () {\n var t = this;\n if (\"none\" === o.default(this.element).css(\"display\")) throw new Error(\"Please use show on visible elements\");\n var e = o.default.Event(this.constructor.Event.SHOW);\n if (this.isWithContent() && this._isEnabled) {\n o.default(this.element).trigger(e);\n var n = d.findShadowRoot(this.element),\n i = o.default.contains(null !== n ? n : this.element.ownerDocument.documentElement, this.element);\n if (e.isDefaultPrevented() || !i) return;\n var s = this.getTipElement(),\n l = d.getUID(this.constructor.NAME);\n s.setAttribute(\"id\", l), this.element.setAttribute(\"aria-describedby\", l), this.setContent(), this.config.animation && o.default(s).addClass(Lt);\n var r = \"function\" == typeof this.config.placement ? this.config.placement.call(this, s, this.element) : this.config.placement,\n u = this._getAttachment(r);\n this.addAttachmentClass(u);\n var f = this._getContainer();\n o.default(s).data(this.constructor.DATA_KEY, this), o.default.contains(this.element.ownerDocument.documentElement, this.tip) || o.default(s).appendTo(f), o.default(this.element).trigger(this.constructor.Event.INSERTED), this._popper = new a.default(this.element, s, this._getPopperConfig(u)), o.default(s).addClass(Rt), o.default(s).addClass(this.config.customClass), \"ontouchstart\" in document.documentElement && o.default(document.body).children().on(\"mouseover\", null, o.default.noop);\n var c = function () {\n t.config.animation && t._fixTransition();\n var e = t._hoverState;\n t._hoverState = null, o.default(t.element).trigger(t.constructor.Event.SHOWN), e === qt && t._leave(null, t);\n };\n if (o.default(this.tip).hasClass(Lt)) {\n var h = d.getTransitionDurationFromElement(this.tip);\n o.default(this.tip).one(d.TRANSITION_END, c).emulateTransitionEnd(h);\n } else c();\n }\n }, e.hide = function (t) {\n var e = this,\n n = this.getTipElement(),\n i = o.default.Event(this.constructor.Event.HIDE),\n a = function () {\n e._hoverState !== xt && n.parentNode && n.parentNode.removeChild(n), e._cleanTipClass(), e.element.removeAttribute(\"aria-describedby\"), o.default(e.element).trigger(e.constructor.Event.HIDDEN), null !== e._popper && e._popper.destroy(), t && t();\n };\n if (o.default(this.element).trigger(i), !i.isDefaultPrevented()) {\n if (o.default(n).removeClass(Rt), \"ontouchstart\" in document.documentElement && o.default(document.body).children().off(\"mouseover\", null, o.default.noop), this._activeTrigger.click = !1, this._activeTrigger.focus = !1, this._activeTrigger.hover = !1, o.default(this.tip).hasClass(Lt)) {\n var s = d.getTransitionDurationFromElement(n);\n o.default(n).one(d.TRANSITION_END, a).emulateTransitionEnd(s);\n } else a();\n this._hoverState = \"\";\n }\n }, e.update = function () {\n null !== this._popper && this._popper.scheduleUpdate();\n }, e.isWithContent = function () {\n return Boolean(this.getTitle());\n }, e.addAttachmentClass = function (t) {\n o.default(this.getTipElement()).addClass(\"bs-tooltip-\" + t);\n }, e.getTipElement = function () {\n return this.tip = this.tip || o.default(this.config.template)[0], this.tip;\n }, e.setContent = function () {\n var t = this.getTipElement();\n this.setElementContent(o.default(t.querySelectorAll(\".tooltip-inner\")), this.getTitle()), o.default(t).removeClass(\"fade show\");\n }, e.setElementContent = function (t, e) {\n \"object\" != typeof e || !e.nodeType && !e.jquery ? this.config.html ? (this.config.sanitize && (e = At(e, this.config.whiteList, this.config.sanitizeFn)), t.html(e)) : t.text(e) : this.config.html ? o.default(e).parent().is(t) || t.empty().append(e) : t.text(o.default(e).text());\n }, e.getTitle = function () {\n var t = this.element.getAttribute(\"data-original-title\");\n return t || (t = \"function\" == typeof this.config.title ? this.config.title.call(this.element) : this.config.title), t;\n }, e._getPopperConfig = function (t) {\n var e = this;\n return r({}, {\n placement: t,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: \".arrow\"\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function (t) {\n t.originalPlacement !== t.placement && e._handlePopperPlacementChange(t);\n },\n onUpdate: function (t) {\n return e._handlePopperPlacementChange(t);\n }\n }, this.config.popperConfig);\n }, e._getOffset = function () {\n var t = this,\n e = {};\n return \"function\" == typeof this.config.offset ? e.fn = function (e) {\n return e.offsets = r({}, e.offsets, t.config.offset(e.offsets, t.element)), e;\n } : e.offset = this.config.offset, e;\n }, e._getContainer = function () {\n return !1 === this.config.container ? document.body : d.isElement(this.config.container) ? o.default(this.config.container) : o.default(document).find(this.config.container);\n }, e._getAttachment = function (t) {\n return Bt[t.toUpperCase()];\n }, e._setListeners = function () {\n var t = this;\n this.config.trigger.split(\" \").forEach(function (e) {\n if (\"click\" === e) o.default(t.element).on(t.constructor.Event.CLICK, t.config.selector, function (e) {\n return t.toggle(e);\n });else if (\"manual\" !== e) {\n var n = e === Ft ? t.constructor.Event.MOUSEENTER : t.constructor.Event.FOCUSIN,\n i = e === Ft ? t.constructor.Event.MOUSELEAVE : t.constructor.Event.FOCUSOUT;\n o.default(t.element).on(n, t.config.selector, function (e) {\n return t._enter(e);\n }).on(i, t.config.selector, function (e) {\n return t._leave(e);\n });\n }\n }), this._hideModalHandler = function () {\n t.element && t.hide();\n }, o.default(this.element).closest(\".modal\").on(\"hide.bs.modal\", this._hideModalHandler), this.config.selector ? this.config = r({}, this.config, {\n trigger: \"manual\",\n selector: \"\"\n }) : this._fixTitle();\n }, e._fixTitle = function () {\n var t = typeof this.element.getAttribute(\"data-original-title\");\n (this.element.getAttribute(\"title\") || \"string\" !== t) && (this.element.setAttribute(\"data-original-title\", this.element.getAttribute(\"title\") || \"\"), this.element.setAttribute(\"title\", \"\"));\n }, e._enter = function (t, e) {\n var n = this.constructor.DATA_KEY;\n (e = e || o.default(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(n, e)), t && (e._activeTrigger[\"focusin\" === t.type ? Qt : Ft] = !0), o.default(e.getTipElement()).hasClass(Rt) || e._hoverState === xt ? e._hoverState = xt : (clearTimeout(e._timeout), e._hoverState = xt, e.config.delay && e.config.delay.show ? e._timeout = setTimeout(function () {\n e._hoverState === xt && e.show();\n }, e.config.delay.show) : e.show());\n }, e._leave = function (t, e) {\n var n = this.constructor.DATA_KEY;\n (e = e || o.default(t.currentTarget).data(n)) || (e = new this.constructor(t.currentTarget, this._getDelegateConfig()), o.default(t.currentTarget).data(n, e)), t && (e._activeTrigger[\"focusout\" === t.type ? Qt : Ft] = !1), e._isWithActiveTrigger() || (clearTimeout(e._timeout), e._hoverState = qt, e.config.delay && e.config.delay.hide ? e._timeout = setTimeout(function () {\n e._hoverState === qt && e.hide();\n }, e.config.delay.hide) : e.hide());\n }, e._isWithActiveTrigger = function () {\n for (var t in this._activeTrigger) if (this._activeTrigger[t]) return !0;\n return !1;\n }, e._getConfig = function (t) {\n var e = o.default(this.element).data();\n return Object.keys(e).forEach(function (t) {\n -1 !== Pt.indexOf(t) && delete e[t];\n }), \"number\" == typeof (t = r({}, this.constructor.Default, e, \"object\" == typeof t && t ? t : {})).delay && (t.delay = {\n show: t.delay,\n hide: t.delay\n }), \"number\" == typeof t.title && (t.title = t.title.toString()), \"number\" == typeof t.content && (t.content = t.content.toString()), d.typeCheckConfig(It, t, this.constructor.DefaultType), t.sanitize && (t.template = At(t.template, t.whiteList, t.sanitizeFn)), t;\n }, e._getDelegateConfig = function () {\n var t = {};\n if (this.config) for (var e in this.config) this.constructor.Default[e] !== this.config[e] && (t[e] = this.config[e]);\n return t;\n }, e._cleanTipClass = function () {\n var t = o.default(this.getTipElement()),\n e = t.attr(\"class\").match(jt);\n null !== e && e.length && t.removeClass(e.join(\"\"));\n }, e._handlePopperPlacementChange = function (t) {\n this.tip = t.instance.popper, this._cleanTipClass(), this.addAttachmentClass(this._getAttachment(t.placement));\n }, e._fixTransition = function () {\n var t = this.getTipElement(),\n e = this.config.animation;\n null === t.getAttribute(\"x-placement\") && (o.default(t).removeClass(Lt), this.config.animation = !1, this.hide(), this.show(), this.config.animation = e);\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this),\n i = n.data(kt),\n a = \"object\" == typeof e && e;\n if ((i || !/dispose|hide/.test(e)) && (i || (i = new t(this, a), n.data(kt, i)), \"string\" == typeof e)) {\n if (\"undefined\" == typeof i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e]();\n }\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return Ht;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return It;\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return kt;\n }\n }, {\n key: \"Event\",\n get: function () {\n return Mt;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.tooltip\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return Ut;\n }\n }]), t;\n }();\n o.default.fn.tooltip = Wt._jQueryInterface, o.default.fn.tooltip.Constructor = Wt, o.default.fn.tooltip.noConflict = function () {\n return o.default.fn.tooltip = Ot, Wt._jQueryInterface;\n };\n var Vt = \"bs.popover\",\n zt = o.default.fn.popover,\n Kt = new RegExp(\"(^|\\\\s)bs-popover\\\\S+\", \"g\"),\n Xt = r({}, Wt.Default, {\n placement: \"right\",\n trigger: \"click\",\n content: \"\",\n template: '

'\n }),\n Yt = r({}, Wt.DefaultType, {\n content: \"(string|element|function)\"\n }),\n $t = {\n HIDE: \"hide.bs.popover\",\n HIDDEN: \"hidden.bs.popover\",\n SHOW: \"show.bs.popover\",\n SHOWN: \"shown.bs.popover\",\n INSERTED: \"inserted.bs.popover\",\n CLICK: \"click.bs.popover\",\n FOCUSIN: \"focusin.bs.popover\",\n FOCUSOUT: \"focusout.bs.popover\",\n MOUSEENTER: \"mouseenter.bs.popover\",\n MOUSELEAVE: \"mouseleave.bs.popover\"\n },\n Jt = function (t) {\n var e, n;\n function i() {\n return t.apply(this, arguments) || this;\n }\n n = t, (e = i).prototype = Object.create(n.prototype), e.prototype.constructor = e, u(e, n);\n var a = i.prototype;\n return a.isWithContent = function () {\n return this.getTitle() || this._getContent();\n }, a.addAttachmentClass = function (t) {\n o.default(this.getTipElement()).addClass(\"bs-popover-\" + t);\n }, a.getTipElement = function () {\n return this.tip = this.tip || o.default(this.config.template)[0], this.tip;\n }, a.setContent = function () {\n var t = o.default(this.getTipElement());\n this.setElementContent(t.find(\".popover-header\"), this.getTitle());\n var e = this._getContent();\n \"function\" == typeof e && (e = e.call(this.element)), this.setElementContent(t.find(\".popover-body\"), e), t.removeClass(\"fade show\");\n }, a._getContent = function () {\n return this.element.getAttribute(\"data-content\") || this.config.content;\n }, a._cleanTipClass = function () {\n var t = o.default(this.getTipElement()),\n e = t.attr(\"class\").match(Kt);\n null !== e && e.length > 0 && t.removeClass(e.join(\"\"));\n }, i._jQueryInterface = function (t) {\n return this.each(function () {\n var e = o.default(this).data(Vt),\n n = \"object\" == typeof t ? t : null;\n if ((e || !/dispose|hide/.test(t)) && (e || (e = new i(this, n), o.default(this).data(Vt, e)), \"string\" == typeof t)) {\n if (\"undefined\" == typeof e[t]) throw new TypeError('No method named \"' + t + '\"');\n e[t]();\n }\n });\n }, l(i, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return Xt;\n }\n }, {\n key: \"NAME\",\n get: function () {\n return \"popover\";\n }\n }, {\n key: \"DATA_KEY\",\n get: function () {\n return Vt;\n }\n }, {\n key: \"Event\",\n get: function () {\n return $t;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function () {\n return \".bs.popover\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return Yt;\n }\n }]), i;\n }(Wt);\n o.default.fn.popover = Jt._jQueryInterface, o.default.fn.popover.Constructor = Jt, o.default.fn.popover.noConflict = function () {\n return o.default.fn.popover = zt, Jt._jQueryInterface;\n };\n var Gt = \"scrollspy\",\n Zt = \"bs.scrollspy\",\n te = o.default.fn[Gt],\n ee = \"active\",\n ne = \"position\",\n ie = \".nav, .list-group\",\n oe = {\n offset: 10,\n method: \"auto\",\n target: \"\"\n },\n ae = {\n offset: \"number\",\n method: \"string\",\n target: \"(string|element)\"\n },\n se = function () {\n function t(t, e) {\n var n = this;\n this._element = t, this._scrollElement = \"BODY\" === t.tagName ? window : t, this._config = this._getConfig(e), this._selector = this._config.target + \" .nav-link,\" + this._config.target + \" .list-group-item,\" + this._config.target + \" .dropdown-item\", this._offsets = [], this._targets = [], this._activeTarget = null, this._scrollHeight = 0, o.default(this._scrollElement).on(\"scroll.bs.scrollspy\", function (t) {\n return n._process(t);\n }), this.refresh(), this._process();\n }\n var e = t.prototype;\n return e.refresh = function () {\n var t = this,\n e = this._scrollElement === this._scrollElement.window ? \"offset\" : ne,\n n = \"auto\" === this._config.method ? e : this._config.method,\n i = n === ne ? this._getScrollTop() : 0;\n this._offsets = [], this._targets = [], this._scrollHeight = this._getScrollHeight(), [].slice.call(document.querySelectorAll(this._selector)).map(function (t) {\n var e,\n a = d.getSelectorFromElement(t);\n if (a && (e = document.querySelector(a)), e) {\n var s = e.getBoundingClientRect();\n if (s.width || s.height) return [o.default(e)[n]().top + i, a];\n }\n return null;\n }).filter(Boolean).sort(function (t, e) {\n return t[0] - e[0];\n }).forEach(function (e) {\n t._offsets.push(e[0]), t._targets.push(e[1]);\n });\n }, e.dispose = function () {\n o.default.removeData(this._element, Zt), o.default(this._scrollElement).off(\".bs.scrollspy\"), this._element = null, this._scrollElement = null, this._config = null, this._selector = null, this._offsets = null, this._targets = null, this._activeTarget = null, this._scrollHeight = null;\n }, e._getConfig = function (t) {\n if (\"string\" != typeof (t = r({}, oe, \"object\" == typeof t && t ? t : {})).target && d.isElement(t.target)) {\n var e = o.default(t.target).attr(\"id\");\n e || (e = d.getUID(Gt), o.default(t.target).attr(\"id\", e)), t.target = \"#\" + e;\n }\n return d.typeCheckConfig(Gt, t, ae), t;\n }, e._getScrollTop = function () {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n }, e._getScrollHeight = function () {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }, e._getOffsetHeight = function () {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n }, e._process = function () {\n var t = this._getScrollTop() + this._config.offset,\n e = this._getScrollHeight(),\n n = this._config.offset + e - this._getOffsetHeight();\n if (this._scrollHeight !== e && this.refresh(), t >= n) {\n var i = this._targets[this._targets.length - 1];\n this._activeTarget !== i && this._activate(i);\n } else {\n if (this._activeTarget && t < this._offsets[0] && this._offsets[0] > 0) return this._activeTarget = null, void this._clear();\n for (var o = this._offsets.length; o--;) this._activeTarget !== this._targets[o] && t >= this._offsets[o] && (\"undefined\" == typeof this._offsets[o + 1] || t < this._offsets[o + 1]) && this._activate(this._targets[o]);\n }\n }, e._activate = function (t) {\n this._activeTarget = t, this._clear();\n var e = this._selector.split(\",\").map(function (e) {\n return e + '[data-target=\"' + t + '\"],' + e + '[href=\"' + t + '\"]';\n }),\n n = o.default([].slice.call(document.querySelectorAll(e.join(\",\"))));\n n.hasClass(\"dropdown-item\") ? (n.closest(\".dropdown\").find(\".dropdown-toggle\").addClass(ee), n.addClass(ee)) : (n.addClass(ee), n.parents(ie).prev(\".nav-link, .list-group-item\").addClass(ee), n.parents(ie).prev(\".nav-item\").children(\".nav-link\").addClass(ee)), o.default(this._scrollElement).trigger(\"activate.bs.scrollspy\", {\n relatedTarget: t\n });\n }, e._clear = function () {\n [].slice.call(document.querySelectorAll(this._selector)).filter(function (t) {\n return t.classList.contains(ee);\n }).forEach(function (t) {\n return t.classList.remove(ee);\n });\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this).data(Zt);\n if (n || (n = new t(this, \"object\" == typeof e && e), o.default(this).data(Zt, n)), \"string\" == typeof e) {\n if (\"undefined\" == typeof n[e]) throw new TypeError('No method named \"' + e + '\"');\n n[e]();\n }\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"Default\",\n get: function () {\n return oe;\n }\n }]), t;\n }();\n o.default(window).on(\"load.bs.scrollspy.data-api\", function () {\n for (var t = [].slice.call(document.querySelectorAll('[data-spy=\"scroll\"]')), e = t.length; e--;) {\n var n = o.default(t[e]);\n se._jQueryInterface.call(n, n.data());\n }\n }), o.default.fn[Gt] = se._jQueryInterface, o.default.fn[Gt].Constructor = se, o.default.fn[Gt].noConflict = function () {\n return o.default.fn[Gt] = te, se._jQueryInterface;\n };\n var le = \"bs.tab\",\n re = o.default.fn.tab,\n ue = \"active\",\n fe = \"fade\",\n de = \"show\",\n ce = \".active\",\n he = \"> li > .active\",\n ge = function () {\n function t(t) {\n this._element = t;\n }\n var e = t.prototype;\n return e.show = function () {\n var t = this;\n if (!(this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && o.default(this._element).hasClass(ue) || o.default(this._element).hasClass(\"disabled\") || this._element.hasAttribute(\"disabled\"))) {\n var e,\n n,\n i = o.default(this._element).closest(\".nav, .list-group\")[0],\n a = d.getSelectorFromElement(this._element);\n if (i) {\n var s = \"UL\" === i.nodeName || \"OL\" === i.nodeName ? he : ce;\n n = (n = o.default.makeArray(o.default(i).find(s)))[n.length - 1];\n }\n var l = o.default.Event(\"hide.bs.tab\", {\n relatedTarget: this._element\n }),\n r = o.default.Event(\"show.bs.tab\", {\n relatedTarget: n\n });\n if (n && o.default(n).trigger(l), o.default(this._element).trigger(r), !r.isDefaultPrevented() && !l.isDefaultPrevented()) {\n a && (e = document.querySelector(a)), this._activate(this._element, i);\n var u = function () {\n var e = o.default.Event(\"hidden.bs.tab\", {\n relatedTarget: t._element\n }),\n i = o.default.Event(\"shown.bs.tab\", {\n relatedTarget: n\n });\n o.default(n).trigger(e), o.default(t._element).trigger(i);\n };\n e ? this._activate(e, e.parentNode, u) : u();\n }\n }\n }, e.dispose = function () {\n o.default.removeData(this._element, le), this._element = null;\n }, e._activate = function (t, e, n) {\n var i = this,\n a = (!e || \"UL\" !== e.nodeName && \"OL\" !== e.nodeName ? o.default(e).children(ce) : o.default(e).find(he))[0],\n s = n && a && o.default(a).hasClass(fe),\n l = function () {\n return i._transitionComplete(t, a, n);\n };\n if (a && s) {\n var r = d.getTransitionDurationFromElement(a);\n o.default(a).removeClass(de).one(d.TRANSITION_END, l).emulateTransitionEnd(r);\n } else l();\n }, e._transitionComplete = function (t, e, n) {\n if (e) {\n o.default(e).removeClass(ue);\n var i = o.default(e.parentNode).find(\"> .dropdown-menu .active\")[0];\n i && o.default(i).removeClass(ue), \"tab\" === e.getAttribute(\"role\") && e.setAttribute(\"aria-selected\", !1);\n }\n o.default(t).addClass(ue), \"tab\" === t.getAttribute(\"role\") && t.setAttribute(\"aria-selected\", !0), d.reflow(t), t.classList.contains(fe) && t.classList.add(de);\n var a = t.parentNode;\n if (a && \"LI\" === a.nodeName && (a = a.parentNode), a && o.default(a).hasClass(\"dropdown-menu\")) {\n var s = o.default(t).closest(\".dropdown\")[0];\n if (s) {\n var l = [].slice.call(s.querySelectorAll(\".dropdown-toggle\"));\n o.default(l).addClass(ue);\n }\n t.setAttribute(\"aria-expanded\", !0);\n }\n n && n();\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this),\n i = n.data(le);\n if (i || (i = new t(this), n.data(le, i)), \"string\" == typeof e) {\n if (\"undefined\" == typeof i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e]();\n }\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }]), t;\n }();\n o.default(document).on(\"click.bs.tab.data-api\", '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]', function (t) {\n t.preventDefault(), ge._jQueryInterface.call(o.default(this), \"show\");\n }), o.default.fn.tab = ge._jQueryInterface, o.default.fn.tab.Constructor = ge, o.default.fn.tab.noConflict = function () {\n return o.default.fn.tab = re, ge._jQueryInterface;\n };\n var me = \"bs.toast\",\n pe = o.default.fn.toast,\n _e = \"hide\",\n ve = \"show\",\n ye = \"showing\",\n be = \"click.dismiss.bs.toast\",\n Ee = {\n animation: !0,\n autohide: !0,\n delay: 500\n },\n Te = {\n animation: \"boolean\",\n autohide: \"boolean\",\n delay: \"number\"\n },\n we = function () {\n function t(t, e) {\n this._element = t, this._config = this._getConfig(e), this._timeout = null, this._setListeners();\n }\n var e = t.prototype;\n return e.show = function () {\n var t = this,\n e = o.default.Event(\"show.bs.toast\");\n if (o.default(this._element).trigger(e), !e.isDefaultPrevented()) {\n this._clearTimeout(), this._config.animation && this._element.classList.add(\"fade\");\n var n = function () {\n t._element.classList.remove(ye), t._element.classList.add(ve), o.default(t._element).trigger(\"shown.bs.toast\"), t._config.autohide && (t._timeout = setTimeout(function () {\n t.hide();\n }, t._config.delay));\n };\n if (this._element.classList.remove(_e), d.reflow(this._element), this._element.classList.add(ye), this._config.animation) {\n var i = d.getTransitionDurationFromElement(this._element);\n o.default(this._element).one(d.TRANSITION_END, n).emulateTransitionEnd(i);\n } else n();\n }\n }, e.hide = function () {\n if (this._element.classList.contains(ve)) {\n var t = o.default.Event(\"hide.bs.toast\");\n o.default(this._element).trigger(t), t.isDefaultPrevented() || this._close();\n }\n }, e.dispose = function () {\n this._clearTimeout(), this._element.classList.contains(ve) && this._element.classList.remove(ve), o.default(this._element).off(be), o.default.removeData(this._element, me), this._element = null, this._config = null;\n }, e._getConfig = function (t) {\n return t = r({}, Ee, o.default(this._element).data(), \"object\" == typeof t && t ? t : {}), d.typeCheckConfig(\"toast\", t, this.constructor.DefaultType), t;\n }, e._setListeners = function () {\n var t = this;\n o.default(this._element).on(be, '[data-dismiss=\"toast\"]', function () {\n return t.hide();\n });\n }, e._close = function () {\n var t = this,\n e = function () {\n t._element.classList.add(_e), o.default(t._element).trigger(\"hidden.bs.toast\");\n };\n if (this._element.classList.remove(ve), this._config.animation) {\n var n = d.getTransitionDurationFromElement(this._element);\n o.default(this._element).one(d.TRANSITION_END, e).emulateTransitionEnd(n);\n } else e();\n }, e._clearTimeout = function () {\n clearTimeout(this._timeout), this._timeout = null;\n }, t._jQueryInterface = function (e) {\n return this.each(function () {\n var n = o.default(this),\n i = n.data(me);\n if (i || (i = new t(this, \"object\" == typeof e && e), n.data(me, i)), \"string\" == typeof e) {\n if (\"undefined\" == typeof i[e]) throw new TypeError('No method named \"' + e + '\"');\n i[e](this);\n }\n });\n }, l(t, null, [{\n key: \"VERSION\",\n get: function () {\n return \"4.6.2\";\n }\n }, {\n key: \"DefaultType\",\n get: function () {\n return Te;\n }\n }, {\n key: \"Default\",\n get: function () {\n return Ee;\n }\n }]), t;\n }();\n o.default.fn.toast = we._jQueryInterface, o.default.fn.toast.Constructor = we, o.default.fn.toast.noConflict = function () {\n return o.default.fn.toast = pe, we._jQueryInterface;\n }, t.Alert = g, t.Button = E, t.Carousel = P, t.Collapse = V, t.Dropdown = lt, t.Modal = Ct, t.Popover = Jt, t.Scrollspy = se, t.Tab = ge, t.Toast = we, t.Tooltip = Wt, t.Util = d, Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n});","(function (factory) {\n \"use strict\";\n\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"jquery\"], factory);\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function ($) {\n \"use strict\";\n\n $.ui = $.ui || {};\n return $.ui.version = \"1.14.1\";\n});","/*!\n * jQuery UI Widget 1.14.1\n * https://jqueryui.com\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license.\n * https://jquery.org/license\n */\n\n//>>label: Widget\n//>>group: Core\n//>>description: Provides a factory for creating stateful widgets with a common API.\n//>>docs: https://api.jqueryui.com/jQuery.widget/\n//>>demos: https://jqueryui.com/widget/\n\n(function (factory) {\n \"use strict\";\n\n if (typeof define === \"function\" && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"jquery\", \"./version\"], factory);\n } else {\n // Browser globals\n factory(jQuery);\n }\n})(function ($) {\n \"use strict\";\n\n var widgetUuid = 0;\n var widgetHasOwnProperty = Array.prototype.hasOwnProperty;\n var widgetSlice = Array.prototype.slice;\n $.cleanData = function (orig) {\n return function (elems) {\n var events, elem, i;\n for (i = 0; (elem = elems[i]) != null; i++) {\n // Only trigger remove when necessary to save time\n events = $._data(elem, \"events\");\n if (events && events.remove) {\n $(elem).triggerHandler(\"remove\");\n }\n }\n orig(elems);\n };\n }($.cleanData);\n $.widget = function (name, base, prototype) {\n var existingConstructor, constructor, basePrototype;\n\n // ProxiedPrototype allows the provided prototype to remain unmodified\n // so that it can be used as a mixin for multiple widgets (#8876)\n var proxiedPrototype = {};\n var namespace = name.split(\".\")[0];\n name = name.split(\".\")[1];\n if (name === \"__proto__\" || name === \"constructor\") {\n return $.error(\"Invalid widget name: \" + name);\n }\n var fullName = namespace + \"-\" + name;\n if (!prototype) {\n prototype = base;\n base = $.Widget;\n }\n if (Array.isArray(prototype)) {\n prototype = $.extend.apply(null, [{}].concat(prototype));\n }\n\n // Create selector for plugin\n $.expr.pseudos[fullName.toLowerCase()] = function (elem) {\n return !!$.data(elem, fullName);\n };\n $[namespace] = $[namespace] || {};\n existingConstructor = $[namespace][name];\n constructor = $[namespace][name] = function (options, element) {\n // Allow instantiation without \"new\" keyword\n if (!this || !this._createWidget) {\n return new constructor(options, element);\n }\n\n // Allow instantiation without initializing for simple inheritance\n // must use \"new\" keyword (the code above always passes args)\n if (arguments.length) {\n this._createWidget(options, element);\n }\n };\n\n // Extend with the existing constructor to carry over any static properties\n $.extend(constructor, existingConstructor, {\n version: prototype.version,\n // Copy the object used to create the prototype in case we need to\n // redefine the widget later\n _proto: $.extend({}, prototype),\n // Track widgets that inherit from this widget in case this widget is\n // redefined after a widget inherits from it\n _childConstructors: []\n });\n basePrototype = new base();\n\n // We need to make the options hash a property directly on the new instance\n // otherwise we'll modify the options hash on the prototype that we're\n // inheriting from\n basePrototype.options = $.widget.extend({}, basePrototype.options);\n $.each(prototype, function (prop, value) {\n if (typeof value !== \"function\") {\n proxiedPrototype[prop] = value;\n return;\n }\n proxiedPrototype[prop] = function () {\n function _super() {\n return base.prototype[prop].apply(this, arguments);\n }\n function _superApply(args) {\n return base.prototype[prop].apply(this, args);\n }\n return function () {\n var __super = this._super;\n var __superApply = this._superApply;\n var returnValue;\n this._super = _super;\n this._superApply = _superApply;\n returnValue = value.apply(this, arguments);\n this._super = __super;\n this._superApply = __superApply;\n return returnValue;\n };\n }();\n });\n constructor.prototype = $.widget.extend(basePrototype, {\n // TODO: remove support for widgetEventPrefix\n // always use the name + a colon as the prefix, e.g., draggable:start\n // don't prefix for widgets that aren't DOM-based\n widgetEventPrefix: existingConstructor ? basePrototype.widgetEventPrefix || name : name\n }, proxiedPrototype, {\n constructor: constructor,\n namespace: namespace,\n widgetName: name,\n widgetFullName: fullName\n });\n\n // If this widget is being redefined then we need to find all widgets that\n // are inheriting from it and redefine all of them so that they inherit from\n // the new version of this widget. We're essentially trying to replace one\n // level in the prototype chain.\n if (existingConstructor) {\n $.each(existingConstructor._childConstructors, function (i, child) {\n var childPrototype = child.prototype;\n\n // Redefine the child widget using the same prototype that was\n // originally used, but inherit from the new version of the base\n $.widget(childPrototype.namespace + \".\" + childPrototype.widgetName, constructor, child._proto);\n });\n\n // Remove the list of existing child constructors from the old constructor\n // so the old child constructors can be garbage collected\n delete existingConstructor._childConstructors;\n } else {\n base._childConstructors.push(constructor);\n }\n $.widget.bridge(name, constructor);\n return constructor;\n };\n $.widget.extend = function (target) {\n var input = widgetSlice.call(arguments, 1);\n var inputIndex = 0;\n var inputLength = input.length;\n var key;\n var value;\n for (; inputIndex < inputLength; inputIndex++) {\n for (key in input[inputIndex]) {\n value = input[inputIndex][key];\n if (widgetHasOwnProperty.call(input[inputIndex], key) && value !== undefined) {\n // Clone objects\n if ($.isPlainObject(value)) {\n target[key] = $.isPlainObject(target[key]) ? $.widget.extend({}, target[key], value) :\n // Don't extend strings, arrays, etc. with objects\n $.widget.extend({}, value);\n\n // Copy everything else by reference\n } else {\n target[key] = value;\n }\n }\n }\n }\n return target;\n };\n $.widget.bridge = function (name, object) {\n var fullName = object.prototype.widgetFullName || name;\n $.fn[name] = function (options) {\n var isMethodCall = typeof options === \"string\";\n var args = widgetSlice.call(arguments, 1);\n var returnValue = this;\n if (isMethodCall) {\n // If this is an empty collection, we need to have the instance method\n // return undefined instead of the jQuery instance\n if (!this.length && options === \"instance\") {\n returnValue = undefined;\n } else {\n this.each(function () {\n var methodValue;\n var instance = $.data(this, fullName);\n if (options === \"instance\") {\n returnValue = instance;\n return false;\n }\n if (!instance) {\n return $.error(\"cannot call methods on \" + name + \" prior to initialization; \" + \"attempted to call method '\" + options + \"'\");\n }\n if (typeof instance[options] !== \"function\" || options.charAt(0) === \"_\") {\n return $.error(\"no such method '\" + options + \"' for \" + name + \" widget instance\");\n }\n methodValue = instance[options].apply(instance, args);\n if (methodValue !== instance && methodValue !== undefined) {\n returnValue = methodValue && methodValue.jquery ? returnValue.pushStack(methodValue.get()) : methodValue;\n return false;\n }\n });\n }\n } else {\n // Allow multiple hashes to be passed on init\n if (args.length) {\n options = $.widget.extend.apply(null, [options].concat(args));\n }\n this.each(function () {\n var instance = $.data(this, fullName);\n if (instance) {\n instance.option(options || {});\n if (instance._init) {\n instance._init();\n }\n } else {\n $.data(this, fullName, new object(options, this));\n }\n });\n }\n return returnValue;\n };\n };\n $.Widget = function /* options, element */ () {};\n $.Widget._childConstructors = [];\n $.Widget.prototype = {\n widgetName: \"widget\",\n widgetEventPrefix: \"\",\n defaultElement: \"
\",\n options: {\n classes: {},\n disabled: false,\n // Callbacks\n create: null\n },\n _createWidget: function (options, element) {\n element = $(element || this.defaultElement || this)[0];\n this.element = $(element);\n this.uuid = widgetUuid++;\n this.eventNamespace = \".\" + this.widgetName + this.uuid;\n this.bindings = $();\n this.hoverable = $();\n this.focusable = $();\n this.classesElementLookup = {};\n if (element !== this) {\n $.data(element, this.widgetFullName, this);\n this._on(true, this.element, {\n remove: function (event) {\n if (event.target === element) {\n this.destroy();\n }\n }\n });\n this.document = $(element.style ?\n // Element within the document\n element.ownerDocument :\n // Element is window or document\n element.document || element);\n this.window = $(this.document[0].defaultView || this.document[0].parentWindow);\n }\n this.options = $.widget.extend({}, this.options, this._getCreateOptions(), options);\n this._create();\n if (this.options.disabled) {\n this._setOptionDisabled(this.options.disabled);\n }\n this._trigger(\"create\", null, this._getCreateEventData());\n this._init();\n },\n _getCreateOptions: function () {\n return {};\n },\n _getCreateEventData: $.noop,\n _create: $.noop,\n _init: $.noop,\n destroy: function () {\n var that = this;\n this._destroy();\n $.each(this.classesElementLookup, function (key, value) {\n that._removeClass(value, key);\n });\n\n // We can probably remove the unbind calls in 2.0\n // all event bindings should go through this._on()\n this.element.off(this.eventNamespace).removeData(this.widgetFullName);\n this.widget().off(this.eventNamespace).removeAttr(\"aria-disabled\");\n\n // Clean up events and states\n this.bindings.off(this.eventNamespace);\n },\n _destroy: $.noop,\n widget: function () {\n return this.element;\n },\n option: function (key, value) {\n var options = key;\n var parts;\n var curOption;\n var i;\n if (arguments.length === 0) {\n // Don't return a reference to the internal hash\n return $.widget.extend({}, this.options);\n }\n if (typeof key === \"string\") {\n // Handle nested keys, e.g., \"foo.bar\" => { foo: { bar: ___ } }\n options = {};\n parts = key.split(\".\");\n key = parts.shift();\n if (parts.length) {\n curOption = options[key] = $.widget.extend({}, this.options[key]);\n for (i = 0; i < parts.length - 1; i++) {\n curOption[parts[i]] = curOption[parts[i]] || {};\n curOption = curOption[parts[i]];\n }\n key = parts.pop();\n if (arguments.length === 1) {\n return curOption[key] === undefined ? null : curOption[key];\n }\n curOption[key] = value;\n } else {\n if (arguments.length === 1) {\n return this.options[key] === undefined ? null : this.options[key];\n }\n options[key] = value;\n }\n }\n this._setOptions(options);\n return this;\n },\n _setOptions: function (options) {\n var key;\n for (key in options) {\n this._setOption(key, options[key]);\n }\n return this;\n },\n _setOption: function (key, value) {\n if (key === \"classes\") {\n this._setOptionClasses(value);\n }\n this.options[key] = value;\n if (key === \"disabled\") {\n this._setOptionDisabled(value);\n }\n return this;\n },\n _setOptionClasses: function (value) {\n var classKey, elements, currentElements;\n for (classKey in value) {\n currentElements = this.classesElementLookup[classKey];\n if (value[classKey] === this.options.classes[classKey] || !currentElements || !currentElements.length) {\n continue;\n }\n\n // We are doing this to create a new jQuery object because the _removeClass() call\n // on the next line is going to destroy the reference to the current elements being\n // tracked. We need to save a copy of this collection so that we can add the new classes\n // below.\n elements = $(currentElements.get());\n this._removeClass(currentElements, classKey);\n\n // We don't use _addClass() here, because that uses this.options.classes\n // for generating the string of classes. We want to use the value passed in from\n // _setOption(), this is the new value of the classes option which was passed to\n // _setOption(). We pass this value directly to _classes().\n elements.addClass(this._classes({\n element: elements,\n keys: classKey,\n classes: value,\n add: true\n }));\n }\n },\n _setOptionDisabled: function (value) {\n this._toggleClass(this.widget(), this.widgetFullName + \"-disabled\", null, !!value);\n\n // If the widget is becoming disabled, then nothing is interactive\n if (value) {\n this._removeClass(this.hoverable, null, \"ui-state-hover\");\n this._removeClass(this.focusable, null, \"ui-state-focus\");\n }\n },\n enable: function () {\n return this._setOptions({\n disabled: false\n });\n },\n disable: function () {\n return this._setOptions({\n disabled: true\n });\n },\n _classes: function (options) {\n var full = [];\n var that = this;\n options = $.extend({\n element: this.element,\n classes: this.options.classes || {}\n }, options);\n function bindRemoveEvent() {\n var nodesToBind = [];\n options.element.each(function (_, element) {\n var isTracked = $.map(that.classesElementLookup, function (elements) {\n return elements;\n }).some(function (elements) {\n return elements.is(element);\n });\n if (!isTracked) {\n nodesToBind.push(element);\n }\n });\n that._on($(nodesToBind), {\n remove: \"_untrackClassesElement\"\n });\n }\n function processClassString(classes, checkOption) {\n var current, i;\n for (i = 0; i < classes.length; i++) {\n current = that.classesElementLookup[classes[i]] || $();\n if (options.add) {\n bindRemoveEvent();\n current = $($.uniqueSort(current.get().concat(options.element.get())));\n } else {\n current = $(current.not(options.element).get());\n }\n that.classesElementLookup[classes[i]] = current;\n full.push(classes[i]);\n if (checkOption && options.classes[classes[i]]) {\n full.push(options.classes[classes[i]]);\n }\n }\n }\n if (options.keys) {\n processClassString(options.keys.match(/\\S+/g) || [], true);\n }\n if (options.extra) {\n processClassString(options.extra.match(/\\S+/g) || []);\n }\n return full.join(\" \");\n },\n _untrackClassesElement: function (event) {\n var that = this;\n $.each(that.classesElementLookup, function (key, value) {\n if ($.inArray(event.target, value) !== -1) {\n that.classesElementLookup[key] = $(value.not(event.target).get());\n }\n });\n this._off($(event.target));\n },\n _removeClass: function (element, keys, extra) {\n return this._toggleClass(element, keys, extra, false);\n },\n _addClass: function (element, keys, extra) {\n return this._toggleClass(element, keys, extra, true);\n },\n _toggleClass: function (element, keys, extra, add) {\n add = typeof add === \"boolean\" ? add : extra;\n var shift = typeof element === \"string\" || element === null,\n options = {\n extra: shift ? keys : extra,\n keys: shift ? element : keys,\n element: shift ? this.element : element,\n add: add\n };\n options.element.toggleClass(this._classes(options), add);\n return this;\n },\n _on: function (suppressDisabledCheck, element, handlers) {\n var delegateElement;\n var instance = this;\n\n // No suppressDisabledCheck flag, shuffle arguments\n if (typeof suppressDisabledCheck !== \"boolean\") {\n handlers = element;\n element = suppressDisabledCheck;\n suppressDisabledCheck = false;\n }\n\n // No element argument, shuffle and use this.element\n if (!handlers) {\n handlers = element;\n element = this.element;\n delegateElement = this.widget();\n } else {\n element = delegateElement = $(element);\n this.bindings = this.bindings.add(element);\n }\n $.each(handlers, function (event, handler) {\n function handlerProxy() {\n // Allow widgets to customize the disabled handling\n // - disabled as an array instead of boolean\n // - disabled class as method for disabling individual parts\n if (!suppressDisabledCheck && (instance.options.disabled === true || $(this).hasClass(\"ui-state-disabled\"))) {\n return;\n }\n return (typeof handler === \"string\" ? instance[handler] : handler).apply(instance, arguments);\n }\n\n // Copy the guid so direct unbinding works\n if (typeof handler !== \"string\") {\n handlerProxy.guid = handler.guid = handler.guid || handlerProxy.guid || $.guid++;\n }\n var match = event.match(/^([\\w:-]*)\\s*(.*)$/);\n var eventName = match[1] + instance.eventNamespace;\n var selector = match[2];\n if (selector) {\n delegateElement.on(eventName, selector, handlerProxy);\n } else {\n element.on(eventName, handlerProxy);\n }\n });\n },\n _off: function (element, eventName) {\n eventName = (eventName || \"\").split(\" \").join(this.eventNamespace + \" \") + this.eventNamespace;\n element.off(eventName);\n\n // Clear the stack to avoid memory leaks (#10056)\n this.bindings = $(this.bindings.not(element).get());\n this.focusable = $(this.focusable.not(element).get());\n this.hoverable = $(this.hoverable.not(element).get());\n },\n _delay: function (handler, delay) {\n function handlerProxy() {\n return (typeof handler === \"string\" ? instance[handler] : handler).apply(instance, arguments);\n }\n var instance = this;\n return setTimeout(handlerProxy, delay || 0);\n },\n _hoverable: function (element) {\n this.hoverable = this.hoverable.add(element);\n this._on(element, {\n mouseenter: function (event) {\n this._addClass($(event.currentTarget), null, \"ui-state-hover\");\n },\n mouseleave: function (event) {\n this._removeClass($(event.currentTarget), null, \"ui-state-hover\");\n }\n });\n },\n _focusable: function (element) {\n this.focusable = this.focusable.add(element);\n this._on(element, {\n focusin: function (event) {\n this._addClass($(event.currentTarget), null, \"ui-state-focus\");\n },\n focusout: function (event) {\n this._removeClass($(event.currentTarget), null, \"ui-state-focus\");\n }\n });\n },\n _trigger: function (type, event, data) {\n var prop, orig;\n var callback = this.options[type];\n data = data || {};\n event = $.Event(event);\n event.type = (type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type).toLowerCase();\n\n // The original event may come from any element\n // so we need to reset the target on the new event\n event.target = this.element[0];\n\n // Copy original event properties over to the new event\n orig = event.originalEvent;\n if (orig) {\n for (prop in orig) {\n if (!(prop in event)) {\n event[prop] = orig[prop];\n }\n }\n }\n this.element.trigger(event, data);\n return !(typeof callback === \"function\" && callback.apply(this.element[0], [event].concat(data)) === false || event.isDefaultPrevented());\n }\n };\n $.each({\n show: \"fadeIn\",\n hide: \"fadeOut\"\n }, function (method, defaultEffect) {\n $.Widget.prototype[\"_\" + method] = function (element, options, callback) {\n if (typeof options === \"string\") {\n options = {\n effect: options\n };\n }\n var hasOptions;\n var effectName = !options ? method : options === true || typeof options === \"number\" ? defaultEffect : options.effect || defaultEffect;\n options = options || {};\n if (typeof options === \"number\") {\n options = {\n duration: options\n };\n } else if (options === true) {\n options = {};\n }\n hasOptions = !$.isEmptyObject(options);\n options.complete = callback;\n if (options.delay) {\n element.delay(options.delay);\n }\n if (hasOptions && $.effects && $.effects.effect[effectName]) {\n element[method](options);\n } else if (effectName !== method && element[effectName]) {\n element[effectName](options.duration, options.easing, callback);\n } else {\n element.queue(function (next) {\n $(this)[method]();\n if (callback) {\n callback.call(element[0]);\n }\n next();\n });\n }\n };\n });\n return $.widget;\n});","define([\"./core\", \"./var/document\", \"./var/isFunction\", \"./var/rnothtmlwhite\", \"./ajax/var/location\", \"./ajax/var/nonce\", \"./ajax/var/rquery\", \"./core/init\", \"./core/parseXML\", \"./event/trigger\", \"./deferred\", \"./serialize\" // jQuery.param\n], function (jQuery, document, isFunction, rnothtmlwhite, location, nonce, rquery) {\n \"use strict\";\n\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // trac-7653, trac-8125, trac-8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href;\n\n // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func);\n\n // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n }\n\n // Base inspection function for prefilters and transports\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n }\n\n // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes trac-9887\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n return target;\n }\n\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes;\n\n // Remove auto dataType and get content-type in the process\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n }\n\n // Check if we're dealing with a known content-type\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n }\n\n // Check to see if we have a response for the expected dataType\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n if (!firstDataType) {\n firstDataType = type;\n }\n }\n\n // Or just use first one\n finalDataType = finalDataType || firstDataType;\n }\n\n // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n return responses[finalDataType];\n }\n }\n\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice();\n\n // Create converters map with lowercased keys\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n current = dataTypes.shift();\n\n // Convert to each sequential dataType\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n }\n\n // Apply the dataFilter if provided\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n prev = current;\n current = dataTypes.shift();\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev;\n\n // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n // If none found, seek a pair\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2];\n\n // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n break;\n }\n }\n }\n }\n\n // Apply converter (if not an equivalence)\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n return {\n state: \"success\",\n data: response\n };\n }\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function (target, settings) {\n return settings ?\n // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function (url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (typeof url === \"object\") {\n options = url;\n url = undefined;\n }\n\n // Force options to be an object\n options = options || {};\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function (key) {\n var match;\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function () {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function (name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n statusCode[code] = [statusCode[code], map[code]];\n }\n }\n }\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n if (transport) {\n transport.abort(finalText);\n }\n done(0, finalText);\n return this;\n }\n };\n\n // Attach deferreds\n deferred.promise(jqXHR);\n\n // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n // We also use the url parameter if available\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n // Alias method option to type as per ticket trac-12004\n s.type = options.method || options.type || s.method || s.type;\n\n // Extract dataTypes list\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n // A cross-domain request is in order when the origin doesn't match the current origin.\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\");\n\n // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n try {\n urlAnchor.href = s.url;\n\n // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n }\n\n // Convert data if not already a string\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n }\n\n // Apply prefilters\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n // If request was aborted inside a prefilter, stop there\n if (completed) {\n return jqXHR;\n }\n\n // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n fireGlobals = jQuery.event && s.global;\n\n // Watch for a new set of requests\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n }\n\n // Uppercase the type\n s.type = s.type.toUpperCase();\n\n // Determine if request has content\n s.hasContent = !rnoContent.test(s.type);\n\n // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n cacheURL = s.url.replace(rhash, \"\");\n\n // More options handling for requests with no content\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length);\n\n // If data is available and should be processed, append data to url\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n // trac-9682: remove data so that it's not used in an eventual retry\n delete s.data;\n }\n\n // Add or update anti-cache param if needed\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n }\n\n // Put hash and anti-cache on the URL that will be requested (gh-1732)\n s.url = cacheURL + uncached;\n\n // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n }\n\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n }\n\n // Set the correct header, if data is being sent\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n }\n\n // Set the Accepts header for the server, depending on the dataType\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n // Check for headers option\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n }\n\n // Allow custom headers/mimetypes and early abort\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n }\n\n // Aborting is no longer a cancellation\n strAbort = \"abort\";\n\n // Install callbacks on deferreds\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error);\n\n // Get transport\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n // If no transport, we auto-abort\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1;\n\n // Send global event\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n }\n\n // If request was aborted inside ajaxSend, stop there\n if (completed) {\n return jqXHR;\n }\n\n // Timeout\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n }\n\n // Propagate others as results\n done(-1, e);\n }\n }\n\n // Callback for when everything is done\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText;\n\n // Ignore repeat invocations\n if (completed) {\n return;\n }\n completed = true;\n\n // Clear timeout if it exists\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n }\n\n // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n transport = undefined;\n\n // Cache response headers\n responseHeadersString = headers || \"\";\n\n // Set readyState\n jqXHR.readyState = status > 0 ? 4 : 0;\n\n // Determine if successful\n isSuccess = status >= 200 && status < 300 || status === 304;\n\n // Get response data\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n }\n\n // Use a noop converter for missing script but not if jsonp\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n s.converters[\"text script\"] = function () {};\n }\n\n // Convert no matter what (that way responseXXX fields are always set)\n response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n // If successful, handle type chaining\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n modified = jqXHR.getResponseHeader(\"etag\");\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n }\n\n // if no content\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\";\n\n // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\";\n\n // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n if (status || !statusText) {\n statusText = \"error\";\n if (status < 0) {\n status = 0;\n }\n }\n }\n\n // Set data for the fake xhr object\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n // Success/Error\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n }\n\n // Status-dependent callbacks\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n }\n\n // Complete\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n // Handle the global AJAX counter\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n return jqXHR;\n },\n getJSON: function (url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function (url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n }\n\n // The url can be an options object (which then must have .url)\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n return jQuery;\n});","define([\"../core\", \"../var/isFunction\", \"./var/nonce\", \"./var/rquery\", \"../ajax\"], function (jQuery, isFunction, nonce, rquery) {\n \"use strict\";\n\n var oldCallbacks = [],\n rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n // Default jsonp settings\n jQuery.ajaxSetup({\n jsonp: \"callback\",\n jsonpCallback: function () {\n var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce.guid++;\n this[callback] = true;\n return callback;\n }\n });\n\n // Detect, normalize options and install callbacks for jsonp requests\n jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n var callbackName,\n overwritten,\n responseContainer,\n jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data) && \"data\");\n\n // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n // Get callback name, remembering preexisting value associated with it\n callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback;\n\n // Insert callback into url or form data\n if (jsonProp) {\n s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n } else if (s.jsonp !== false) {\n s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n }\n\n // Use data converter to retrieve json after script execution\n s.converters[\"script json\"] = function () {\n if (!responseContainer) {\n jQuery.error(callbackName + \" was not called\");\n }\n return responseContainer[0];\n };\n\n // Force json dataType\n s.dataTypes[0] = \"json\";\n\n // Install callback\n overwritten = window[callbackName];\n window[callbackName] = function () {\n responseContainer = arguments;\n };\n\n // Clean-up function (fires after converters)\n jqXHR.always(function () {\n // If previous value didn't exist - remove it\n if (overwritten === undefined) {\n jQuery(window).removeProp(callbackName);\n\n // Otherwise restore preexisting value\n } else {\n window[callbackName] = overwritten;\n }\n\n // Save back as free\n if (s[callbackName]) {\n // Make sure that re-using the options doesn't screw things around\n s.jsonpCallback = originalSettings.jsonpCallback;\n\n // Save the callback name for future use\n oldCallbacks.push(callbackName);\n }\n\n // Call if it was a function and we have a response\n if (responseContainer && isFunction(overwritten)) {\n overwritten(responseContainer[0]);\n }\n responseContainer = overwritten = undefined;\n });\n\n // Delegate to script\n return \"script\";\n }\n });\n});","define([\"../core\", \"../core/stripAndCollapse\", \"../var/isFunction\", \"../core/parseHTML\", \"../ajax\", \"../traversing\", \"../manipulation\", \"../selector\"], function (jQuery, stripAndCollapse, isFunction) {\n \"use strict\";\n\n /**\n * Load a url into a page\n */\n jQuery.fn.load = function (url, params, callback) {\n var selector,\n type,\n response,\n self = this,\n off = url.indexOf(\" \");\n if (off > -1) {\n selector = stripAndCollapse(url.slice(off));\n url = url.slice(0, off);\n }\n\n // If it's a function\n if (isFunction(params)) {\n // We assume that it's the callback\n callback = params;\n params = undefined;\n\n // Otherwise, build a param string\n } else if (params && typeof params === \"object\") {\n type = \"POST\";\n }\n\n // If we have elements to modify, make the request\n if (self.length > 0) {\n jQuery.ajax({\n url: url,\n // If \"type\" variable is undefined, then \"GET\" method will be used.\n // Make value of this field explicit since\n // user can override it through ajaxSetup method\n type: type || \"GET\",\n dataType: \"html\",\n data: params\n }).done(function (responseText) {\n // Save response for use in complete callback\n response = arguments;\n self.html(selector ?\n // If a selector was specified, locate the right elements in a dummy div\n // Exclude scripts to avoid IE 'Permission Denied' errors\n jQuery(\"
\").append(jQuery.parseHTML(responseText)).find(selector) :\n // Otherwise use the full result\n responseText);\n\n // If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n // but they are ignored because response was set above.\n // If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n }).always(callback && function (jqXHR, status) {\n self.each(function () {\n callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\n });\n });\n }\n return this;\n };\n});","define([\"../core\", \"../var/document\", \"../ajax\"], function (jQuery, document) {\n \"use strict\";\n\n // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n });\n\n // Install script dataType\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function (text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n });\n\n // Handle cache's special case and crossDomain\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n });\n\n // Bind script tag hack transport\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, callback;\n return {\n send: function (_, complete) {\n script = jQuery(\"