{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://nanohub3/./assets/js/modules/Accordions.js","webpack://nanohub3/./node_modules/assert/build/assert.js","webpack://nanohub3/./node_modules/assert/build/internal/assert/assertion_error.js","webpack://nanohub3/./node_modules/assert/build/internal/errors.js","webpack://nanohub3/./node_modules/assert/build/internal/util/comparisons.js","webpack://nanohub3/./node_modules/call-bind/callBound.js","webpack://nanohub3/./node_modules/call-bind/index.js","webpack://nanohub3/./node_modules/console-browserify/index.js","webpack://nanohub3/./node_modules/define-properties/index.js","webpack://nanohub3/./node_modules/es6-object-assign/index.js","webpack://nanohub3/./node_modules/for-each/index.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.core.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.dropdownMenu.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.equalizer.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.reveal.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.tabs.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.box.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.box.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.imageLoader.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.keyboard.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.keyboard.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.motion.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.nest.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.nest.min.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.touch.js","webpack://nanohub3/./node_modules/foundation-sites/dist/js/plugins/foundation.util.triggers.js","webpack://nanohub3/./node_modules/function-bind/implementation.js","webpack://nanohub3/./node_modules/function-bind/index.js","webpack://nanohub3/./node_modules/get-intrinsic/index.js","webpack://nanohub3/./node_modules/has-property-descriptors/index.js","webpack://nanohub3/./node_modules/has-symbols/index.js","webpack://nanohub3/./node_modules/has-symbols/shams.js","webpack://nanohub3/./node_modules/has-tostringtag/shams.js","webpack://nanohub3/./node_modules/has/src/index.js","webpack://nanohub3/./node_modules/inherits/inherits_browser.js","webpack://nanohub3/./node_modules/is-arguments/index.js","webpack://nanohub3/./node_modules/is-callable/index.js","webpack://nanohub3/./node_modules/is-generator-function/index.js","webpack://nanohub3/./node_modules/is-nan/implementation.js","webpack://nanohub3/./node_modules/is-nan/index.js","webpack://nanohub3/./node_modules/is-nan/polyfill.js","webpack://nanohub3/./node_modules/is-nan/shim.js","webpack://nanohub3/./node_modules/is-typed-array/index.js","webpack://nanohub3/./node_modules/jquery/dist/jquery.js","webpack://nanohub3/./node_modules/object-is/implementation.js","webpack://nanohub3/./node_modules/object-is/index.js","webpack://nanohub3/./node_modules/object-is/polyfill.js","webpack://nanohub3/./node_modules/object-is/shim.js","webpack://nanohub3/./node_modules/object-keys/implementation.js","webpack://nanohub3/./node_modules/object-keys/index.js","webpack://nanohub3/./node_modules/object-keys/isArguments.js","webpack://nanohub3/./node_modules/process/browser.js","webpack://nanohub3/./node_modules/util/support/isBufferBrowser.js","webpack://nanohub3/./node_modules/util/support/types.js","webpack://nanohub3/./node_modules/util/util.js","webpack://nanohub3/./node_modules/which-typed-array/index.js","webpack://nanohub3/./node_modules/available-typed-arrays/index.js","webpack://nanohub3/./node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","webpack://nanohub3/webpack/bootstrap","webpack://nanohub3/webpack/runtime/global","webpack://nanohub3/webpack/runtime/make namespace object","webpack://nanohub3/./assets/js/app.js"],"sourcesContent":["class Accordions {\r\n init() {\r\n // Accordions\r\n const accordions = document.querySelector('.accordions');\r\n if (accordions) {\r\n var accordionLinks = document.querySelectorAll(\".acc-link\");\r\n // var accordionControls = document.querySelector(\".acc-controls\");\r\n // // accordion controls - open all / close all\r\n // accordionControls.onclick = function (e) {\r\n // e.preventDefault();\r\n // this.classList.toggle(\"open\");\r\n // if(this.classList.contains('open')){\r\n // //this.innerHTML(\"Open all\");\r\n // accordionControls.innerHTML = \"Close all\";\r\n // this.setAttribute('aria-expanded', 'true');\r\n // this.classList.remove(\"close\");\r\n // this.classList.add(\"open\");\r\n // for (var i = 0; i < accordionLinks.length; i++) {\r\n // accordionLinks[i].classList.remove(\"close\");\r\n // accordionLinks[i].classList.add(\"open\");\r\n // accordionLinks[i].setAttribute('aria-expanded', 'true');\r\n // } \r\n // }else{\r\n // //this.innerHTML(\"Close all\");\r\n // accordionControls.innerHTML = \"Open all\";\r\n // this.setAttribute('aria-expanded', 'false'); \r\n // this.classList.remove(\"open\");\r\n // this.classList.add(\"close\");\r\n // for (var i = 0; i < accordionLinks.length; i++) {\r\n // accordionLinks[i].classList.remove(\"open\");\r\n // accordionLinks[i].classList.add(\"close\");\r\n // accordionLinks[i].setAttribute('aria-expanded', 'false');\r\n // }\r\n // }\r\n // }\r\n for (var i = 0; i < accordionLinks.length; i++) {\r\n var accordionLink = accordionLinks[i];\r\n accordionLink.onclick = function (e) {\r\n e.preventDefault();\r\n this.classList.toggle(\"open\");\r\n if(this.classList.contains('open')){\r\n this.setAttribute('aria-expanded', 'true');\r\n }else{\r\n this.setAttribute('aria-expanded', 'false');\r\n } \r\n };\r\n }\r\n }\r\n }\r\n \r\n }\r\n \r\n export default Accordions;","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError = /*#__PURE__*/function (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n var intrinsic = GetIntrinsic(name, !!allowMissing);\n\n if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n return callBind(intrinsic);\n }\n\n return intrinsic;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n } catch (e) {\n // IE 8 has a broken defineProperty\n $defineProperty = null;\n }\n}\n\nmodule.exports = function callBind(originalFunction) {\n var func = $reflectApply(bind, $call, arguments);\n\n if ($gOPD && $defineProperty) {\n var desc = $gOPD(func, 'length');\n\n if (desc.configurable) {\n // original length, plus the receiver, minus any additional arguments (after the receiver)\n $defineProperty(func, 'length', {\n value: 1 + $max(0, originalFunction.length - (arguments.length - 1))\n });\n }\n }\n\n return func;\n};\n\nvar applyBind = function applyBind() {\n return $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n $defineProperty(module.exports, 'apply', {\n value: applyBind\n });\n} else {\n module.exports.apply = applyBind;\n}","/*global window, global*/\nvar util = require(\"util\");\n\nvar assert = require(\"assert\");\n\nfunction now() {\n return new Date().getTime();\n}\n\nvar slice = Array.prototype.slice;\nvar console;\nvar times = {};\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console;\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console;\n} else {\n console = {};\n}\n\nvar functions = [[log, \"log\"], [info, \"info\"], [warn, \"warn\"], [error, \"error\"], [time, \"time\"], [timeEnd, \"timeEnd\"], [trace, \"trace\"], [dir, \"dir\"], [consoleAssert, \"assert\"]];\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i];\n var f = tuple[0];\n var name = tuple[1];\n\n if (!console[name]) {\n console[name] = f;\n }\n}\n\nmodule.exports = console;\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments);\n}\n\nfunction warn() {\n console.log.apply(console, arguments);\n}\n\nfunction error() {\n console.warn.apply(console, arguments);\n}\n\nfunction time(label) {\n times[label] = now();\n}\n\nfunction timeEnd(label) {\n var time = times[label];\n\n if (!time) {\n throw new Error(\"No such label: \" + label);\n }\n\n delete times[label];\n var duration = now() - time;\n console.log(label + \": \" + duration + \"ms\");\n}\n\nfunction trace() {\n var err = new Error();\n err.name = \"Trace\";\n err.message = util.format.apply(null, arguments);\n console.error(err.stack);\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\");\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1);\n assert.ok(false, util.format.apply(null, arr));\n }\n}","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value; // eslint-disable-line no-param-reassign\n }\n};\n\nvar defineProperties = function (object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.core\"] = factory(require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"] = factory(root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 0);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./js/entries/plugins/foundation.core.js\":\n /*!***********************************************!*\\\n !*** ./js/entries/plugins/foundation.core.js ***!\n \\***********************************************/\n\n /*! exports provided: Foundation, Plugin, rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.core */\n \"./js/foundation.core.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ../../foundation.core.plugin */\n \"./js/foundation.core.plugin.js\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ../../foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Plugin\", function () {\n return _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"rtl\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"transitionend\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onLoad\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function () {\n return _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"ignoreMousedisappear\"];\n }); // --- Foundation Core API ---\n // Initialize Foundation and add some utilities to its public API for backward compatibility.\n // Please note that every utility do not have to be added to the core API.\n\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].addToJquery(jquery__WEBPACK_IMPORTED_MODULE_0___default.a); // Every plugin depends on plugin now, we can include that on the core for the\n // script inclusion path.\n\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].Plugin = _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_2__[\"Plugin\"]; // These are now separated out, but historically were a part of this module,\n // and since this is here for backwards compatibility we include them in\n // this entry.\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].rtl = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"rtl\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].GetYoDigits = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].transitionend = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].RegExpEscape = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"RegExpEscape\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"].onLoad = _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"onLoad\"];\n window.Foundation = _foundation_core__WEBPACK_IMPORTED_MODULE_1__[\"Foundation\"]; // --- Foundation Core exports ---\n // Export \"Plugin\" and all core utilities, since the `foundation.core` entry plays the role of\n // all core source files.\n\n /***/\n },\n\n /***/\n \"./js/foundation.core.js\":\n /*!*******************************!*\\\n !*** ./js/foundation.core.js ***!\n \\*******************************/\n\n /*! exports provided: Foundation */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return Foundation;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./js/foundation.util.mediaQuery.js\");\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var FOUNDATION_VERSION = '6.7.4'; // Global Foundation object\n // This is attached to the window, or used as a module for AMD/Browserify\n\n var Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function plugin(_plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = name || functionName(_plugin); // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n\n var attrName = hyphenate(className); // Add to the Foundation object and the plugins list (for reflowing)\n\n this._plugins[attrName] = this[className] = _plugin;\n },\n\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function registerPlugin(plugin, name) {\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"GetYoDigits\"])(6, pluginName);\n\n if (!plugin.$element.attr(\"data-\".concat(pluginName))) {\n plugin.$element.attr(\"data-\".concat(pluginName), plugin.uuid);\n }\n\n if (!plugin.$element.data('zfPlugin')) {\n plugin.$element.data('zfPlugin', plugin);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n plugin.$element.trigger(\"init.zf.\".concat(pluginName));\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function unregisterPlugin(plugin) {\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n\n plugin.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in plugin) {\n if (typeof plugin[prop] === 'function') {\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function reInit(plugins) {\n var isJQ = plugins instanceof jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n\n try {\n if (isJQ) {\n plugins.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('zfPlugin')._init();\n });\n } else {\n var type = _typeof(plugins),\n _this = this,\n fns = {\n 'object': function object(plgs) {\n plgs.forEach(function (p) {\n p = hyphenate(p);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + p + ']').foundation('_init');\n });\n },\n 'string': function string() {\n plugins = hyphenate(plugins);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-' + plugins + ']').foundation('_init');\n },\n 'undefined': function undefined() {\n this.object(Object.keys(_this._plugins));\n }\n };\n\n fns[type](plugins);\n }\n } catch (err) {\n console.error(err);\n } finally {\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function reflow(elem, plugins) {\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n } // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this; // Iterate through each plugin\n\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(plugins, function (i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name]; // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(elem).find('[data-' + name + ']').addBack('[data-' + name + ']').filter(function () {\n return typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data(\"zfPlugin\") === 'undefined';\n }); // For each plugin found, initialize it\n\n $elem.each(function () {\n var $el = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n opts = {\n reflow: true\n };\n\n if ($el.attr('data-options')) {\n $el.attr('data-options').split(';').forEach(function (option) {\n var opt = option.split(':').map(function (el) {\n return el.trim();\n });\n if (opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n\n try {\n $el.data('zfPlugin', new plugin(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), opts));\n } catch (er) {\n console.error(er);\n } finally {\n return;\n }\n });\n });\n },\n getFnName: functionName,\n addToJquery: function addToJquery() {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function foundation(method) {\n var type = _typeof(method),\n $noJS = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.no-js');\n\n if ($noJS.length) {\n $noJS.removeClass('no-js');\n }\n\n if (type === 'undefined') {\n //needs to initialize the Foundation object, or an individual plugin.\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_2__[\"MediaQuery\"]._init();\n\n Foundation.reflow(this);\n } else if (type === 'string') {\n //an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1); //collect all the arguments, if necessary\n\n var plugClass = this.data('zfPlugin'); //determine the class of plugin\n\n if (typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined') {\n //make sure both the class and method exist\n if (this.length === 1) {\n //if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n } else {\n this.each(function (i, el) {\n //otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply(jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).data('zfPlugin'), args);\n });\n }\n } else {\n //error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n } else {\n //error for invalid argument type\n throw new TypeError(\"We're sorry, \".concat(type, \" is not a valid parameter. You must use a string representing the method you wish to invoke.\"));\n }\n\n return this;\n };\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.foundation = foundation;\n return jquery__WEBPACK_IMPORTED_MODULE_0___default.a;\n }\n };\n Foundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function throttle(func, delay) {\n var timer = null;\n return function () {\n var context = this,\n args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n };\n window.Foundation = Foundation; // Polyfill for requestAnimationFrame\n\n (function () {\n if (!Date.now || !window.Date.now) window.Date.now = Date.now = function () {\n return new Date().getTime();\n };\n var vendors = ['webkit', 'moz'];\n\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp + 'RequestAnimationFrame'];\n window.cancelAnimationFrame = window[vp + 'CancelAnimationFrame'] || window[vp + 'CancelRequestAnimationFrame'];\n }\n\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n\n window.requestAnimationFrame = function (callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function () {\n callback(lastTime = nextTime);\n }, nextTime - now);\n };\n\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n\n\n if (!window.performance || !window.performance.now) {\n window.performance = {\n start: Date.now(),\n now: function now() {\n return Date.now() - this.start;\n }\n };\n }\n })();\n\n if (!Function.prototype.bind) {\n /* eslint-disable no-extend-native */\n Function.prototype.bind = function (oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function fNOP() {},\n fBound = function fBound() {\n return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n\n fBound.prototype = new fNOP();\n return fBound;\n };\n } // Polyfill to get the name of a function in IE9\n\n\n function functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = funcNameRegex.exec(fn.toString());\n return results && results.length > 1 ? results[1].trim() : \"\";\n } else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n } else {\n return fn.prototype.constructor.name;\n }\n }\n\n function parseValue(str) {\n if ('true' === str) return true;else if ('false' === str) return false;else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n } // Convert PascalCase to kebab-case\n // Thank you: http://stackoverflow.com/a/8955580\n\n\n function hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.core.plugin.js\":\n /*!**************************************!*\\\n !*** ./js/foundation.core.plugin.js ***!\n \\**************************************/\n\n /*! exports provided: Plugin */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Plugin\", function () {\n return Plugin;\n });\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./js/foundation.core.utils.js\");\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n } // Abstract class for providing lifecycle hooks. Expect plugins to define AT LEAST\n // {function} _setup (replaces previous constructor),\n // {function} _destroy (replaces previous destroy)\n\n\n var Plugin = /*#__PURE__*/function () {\n function Plugin(element, options) {\n _classCallCheck(this, Plugin);\n\n this._setup(element, options);\n\n var pluginName = getPluginName(this);\n this.uuid = Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_0__[\"GetYoDigits\"])(6, pluginName);\n\n if (!this.$element.attr(\"data-\".concat(pluginName))) {\n this.$element.attr(\"data-\".concat(pluginName), this.uuid);\n }\n\n if (!this.$element.data('zfPlugin')) {\n this.$element.data('zfPlugin', this);\n }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n\n\n this.$element.trigger(\"init.zf.\".concat(pluginName));\n }\n\n _createClass(Plugin, [{\n key: \"destroy\",\n value: function destroy() {\n this._destroy();\n\n var pluginName = getPluginName(this);\n this.$element.removeAttr(\"data-\".concat(pluginName)).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(\"destroyed.zf.\".concat(pluginName));\n\n for (var prop in this) {\n if (this.hasOwnProperty(prop)) {\n this[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n }\n }]);\n\n return Plugin;\n }(); // Convert PascalCase to kebab-case\n // Thank you: http://stackoverflow.com/a/8955580\n\n\n function hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n }\n\n function getPluginName(obj) {\n return hyphenate(obj.className);\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.core.utils.js\":\n /*!*************************************!*\\\n !*** ./js/foundation.core.utils.js ***!\n \\*************************************/\n\n /*! exports provided: rtl, GetYoDigits, RegExpEscape, transitionend, onLoad, ignoreMousedisappear */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"rtl\", function () {\n return rtl;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"GetYoDigits\", function () {\n return GetYoDigits;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"RegExpEscape\", function () {\n return RegExpEscape;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"transitionend\", function () {\n return transitionend;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onLoad\", function () {\n return onLoad;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"ignoreMousedisappear\", function () {\n return ignoreMousedisappear;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); // Core Foundation Utilities, utilized in a number of places.\n\n /**\n * Returns a boolean for RTL support\n */\n\n\n function rtl() {\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').attr('dir') === 'rtl';\n }\n /**\n * returns a random base-36 uid with namespacing\n * @function\n * @param {Number} length - number of random base-36 digits desired. Increase for more random strings.\n * @param {String} namespace - name of plugin to be incorporated in uid, optional.\n * @default {String} '' - if no plugin name is provided, nothing is appended to the uid.\n * @returns {String} - unique id\n */\n\n\n function GetYoDigits() {\n var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 6;\n var namespace = arguments.length > 1 ? arguments[1] : undefined;\n var str = '';\n var chars = '0123456789abcdefghijklmnopqrstuvwxyz';\n var charsLength = chars.length;\n\n for (var i = 0; i < length; i++) {\n str += chars[Math.floor(Math.random() * charsLength)];\n }\n\n return namespace ? \"\".concat(str, \"-\").concat(namespace) : str;\n }\n /**\n * Escape a string so it can be used as a regexp pattern\n * @function\n * @see https://stackoverflow.com/a/9310752/4317384\n *\n * @param {String} str - string to escape.\n * @returns {String} - escaped string\n */\n\n\n function RegExpEscape(str) {\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n }\n\n function transitionend($elem) {\n var transitions = {\n 'transition': 'transitionend',\n 'WebkitTransition': 'webkitTransitionEnd',\n 'MozTransition': 'transitionend',\n 'OTransition': 'otransitionend'\n };\n var elem = document.createElement('div'),\n end;\n\n for (var transition in transitions) {\n if (typeof elem.style[transition] !== 'undefined') {\n end = transitions[transition];\n }\n }\n\n if (end) {\n return end;\n } else {\n setTimeout(function () {\n $elem.triggerHandler('transitionend', [$elem]);\n }, 1);\n return 'transitionend';\n }\n }\n /**\n * Return an event type to listen for window load.\n *\n * If `$elem` is passed, an event will be triggered on `$elem`. If window is already loaded, the event will still be triggered.\n * If `handler` is passed, attach it to the event on `$elem`.\n * Calling `onLoad` without handler allows you to get the event type that will be triggered before attaching the handler by yourself.\n * @function\n *\n * @param {Object} [] $elem - jQuery element on which the event will be triggered if passed.\n * @param {Function} [] handler - function to attach to the event.\n * @returns {String} - event type that should or will be triggered.\n */\n\n\n function onLoad($elem, handler) {\n var didLoad = document.readyState === 'complete';\n var eventType = (didLoad ? '_didLoad' : 'load') + '.zf.util.onLoad';\n\n var cb = function cb() {\n return $elem.triggerHandler(eventType);\n };\n\n if ($elem) {\n if (handler) $elem.one(eventType, handler);\n if (didLoad) setTimeout(cb);else jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).one('load', cb);\n }\n\n return eventType;\n }\n /**\n * Retuns an handler for the `mouseleave` that ignore disappeared mouses.\n *\n * If the mouse \"disappeared\" from the document (like when going on a browser UI element, See https://git.io/zf-11410),\n * the event is ignored.\n * - If the `ignoreLeaveWindow` is `true`, the event is ignored when the user actually left the window\n * (like by switching to an other window with [Alt]+[Tab]).\n * - If the `ignoreReappear` is `true`, the event will be ignored when the mouse will reappear later on the document\n * outside of the element it left.\n *\n * @function\n *\n * @param {Function} [] handler - handler for the filtered `mouseleave` event to watch.\n * @param {Object} [] options - object of options:\n * - {Boolean} [false] ignoreLeaveWindow - also ignore when the user switched windows.\n * - {Boolean} [false] ignoreReappear - also ignore when the mouse reappeared outside of the element it left.\n * @returns {Function} - filtered handler to use to listen on the `mouseleave` event.\n */\n\n\n function ignoreMousedisappear(handler) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$ignoreLeaveWindo = _ref.ignoreLeaveWindow,\n ignoreLeaveWindow = _ref$ignoreLeaveWindo === void 0 ? false : _ref$ignoreLeaveWindo,\n _ref$ignoreReappear = _ref.ignoreReappear,\n ignoreReappear = _ref$ignoreReappear === void 0 ? false : _ref$ignoreReappear;\n\n return function leaveEventHandler(eLeave) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n var callback = handler.bind.apply(handler, [this, eLeave].concat(rest)); // The mouse left: call the given callback if the mouse entered elsewhere\n\n if (eLeave.relatedTarget !== null) {\n return callback();\n } // Otherwise, check if the mouse actually left the window.\n // In firefox if the user switched between windows, the window sill have the focus by the time\n // the event is triggered. We have to debounce the event to test this case.\n\n\n setTimeout(function leaveEventDebouncer() {\n if (!ignoreLeaveWindow && document.hasFocus && !document.hasFocus()) {\n return callback();\n } // Otherwise, wait for the mouse to reeapear outside of the element,\n\n\n if (!ignoreReappear) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).one('mouseenter', function reenterEventHandler(eReenter) {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(eLeave.currentTarget).has(eReenter.target).length) {\n // Fill where the mouse finally entered.\n eLeave.relatedTarget = eReenter.target;\n callback();\n }\n });\n }\n }, 0);\n };\n }\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.mediaQuery.js\":\n /*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n\n /*! exports provided: MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return MediaQuery;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n } // Default set of media queries\n // const defaultQueries = {\n // 'default' : 'only screen',\n // landscape : 'only screen and (orientation: landscape)',\n // portrait : 'only screen and (orientation: portrait)',\n // retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n // 'only screen and (min--moz-device-pixel-ratio: 2),' +\n // 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n // 'only screen and (min-device-pixel-ratio: 2),' +\n // 'only screen and (min-resolution: 192dpi),' +\n // 'only screen and (min-resolution: 2dppx)'\n // };\n // matchMedia() polyfill - Test a CSS media type/query in JS.\n // Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n /* eslint-disable */\n\n\n window.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n /* eslint-enable */\n\n var MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit: function _reInit() {\n this.isInitialized = false;\n\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only: function only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo: function upTo(size) {\n var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n\n if (nextSize) {\n return !this.atLeast(nextSize);\n } // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n\n\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n var parts = size.trim().split(' ').filter(function (p) {\n return !!p.length;\n });\n\n var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n if (bpModifier === 'only') {\n return this.only(bpSize);\n } // At least the breakpoint (included)\n\n\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n } // Up to the breakpoint (included)\n\n\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\n \"));\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next: function next(size) {\n var _this = this;\n\n var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\n });\n\n if (queryIndex === -1) {\n throw new Error(\"\\n Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n \"));\n }\n\n var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName: function _getQueryName(value) {\n if (typeof value === 'string') return value;\n if (_typeof(value) === 'object') return value.name;\n throw new TypeError(\"\\n Invalid value passed to MediaQuery._getQueryName().\\n Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n \"));\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this2 = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n }; // Thank you: https://github.com/sindresorhus/query-string\n\n function parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n }\n /***/\n\n },\n\n /***/\n 0:\n /*!*****************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.core.js ***!\n \\*****************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.core.js */\n \"./js/entries/plugins/foundation.core.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, n) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = n(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"./foundation.util.touch\", \"jquery\"], n) : \"object\" == typeof exports ? exports[\"foundation.dropdownMenu\"] = n(require(\"./foundation.core\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"./foundation.util.touch\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.dropdownMenu\"] = n(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.box\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.keyboard\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.nest\"], e.__FOUNDATION_EXTERNAL__[\"foundation.util.touch\"], e.jQuery));\n}(window, function (t, o, i, r, s, u) {\n return d = {\n \"./foundation.core\": function (e, n) {\n e.exports = t;\n },\n \"./foundation.util.box\": function (e, n) {\n e.exports = o;\n },\n \"./foundation.util.keyboard\": function (e, n) {\n e.exports = i;\n },\n \"./foundation.util.nest\": function (e, n) {\n e.exports = r;\n },\n \"./foundation.util.touch\": function (e, n) {\n e.exports = s;\n },\n \"./js/entries/plugins/foundation.dropdownMenu.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n);\n var o = t(\"./foundation.core\");\n t.d(n, \"Foundation\", function () {\n return o.Foundation;\n });\n var i = t(\"./js/foundation.dropdownMenu.js\");\n t.d(n, \"DropdownMenu\", function () {\n return i.DropdownMenu;\n }), o.Foundation.plugin(i.DropdownMenu, \"DropdownMenu\");\n },\n \"./js/foundation.dropdownMenu.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n), t.d(n, \"DropdownMenu\", function () {\n return o;\n });\n var n = t(\"jquery\"),\n f = t.n(n),\n u = t(\"./foundation.core\"),\n p = t(\"./foundation.util.keyboard\"),\n r = t(\"./foundation.util.nest\"),\n s = t(\"./foundation.util.box\"),\n a = t(\"./foundation.util.touch\");\n\n function i(e) {\n return (i = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (e) {\n return typeof e;\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : typeof e;\n })(e);\n }\n\n function d(e, n) {\n for (var t = 0; t < n.length; t++) {\n var o = n[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, o.key, o);\n }\n }\n\n function l(e, n) {\n return (l = Object.setPrototypeOf || function (e, n) {\n return e.__proto__ = n, e;\n })(e, n);\n }\n\n function c(t) {\n var o = function () {\n if (\"undefined\" == typeof Reflect || !Reflect.construct) return !1;\n if (Reflect.construct.sham) return !1;\n if (\"function\" == typeof Proxy) return !0;\n\n try {\n return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})), !0;\n } catch (e) {\n return !1;\n }\n }();\n\n return function () {\n var e,\n n = h(t);\n return function (e, n) {\n {\n if (n && (\"object\" === i(n) || \"function\" == typeof n)) return n;\n if (void 0 !== n) throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return function (e) {\n if (void 0 !== e) return e;\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }(e);\n }(this, o ? (e = h(this).constructor, Reflect.construct(n, arguments, e)) : n.apply(this, arguments));\n };\n }\n\n function h(e) {\n return (h = Object.setPrototypeOf ? Object.getPrototypeOf : function (e) {\n return e.__proto__ || Object.getPrototypeOf(e);\n })(e);\n }\n\n var o = function () {\n !function (e, n) {\n if (\"function\" != typeof n && null !== n) throw new TypeError(\"Super expression must either be null or a function\");\n e.prototype = Object.create(n && n.prototype, {\n constructor: {\n value: e,\n writable: !0,\n configurable: !0\n }\n }), n && l(e, n);\n }(i, u[\"Plugin\"]);\n var e,\n n,\n t,\n o = c(i);\n\n function i() {\n return function (e, n) {\n if (!(e instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, i), o.apply(this, arguments);\n }\n\n return e = i, (n = [{\n key: \"_setup\",\n value: function (e, n) {\n this.$element = e, this.options = f.a.extend({}, i.defaults, this.$element.data(), n), this.className = \"DropdownMenu\", a.Touch.init(f.a), this._init(), p.Keyboard.register(\"DropdownMenu\", {\n ENTER: \"open\",\n SPACE: \"open\",\n ARROW_RIGHT: \"next\",\n ARROW_UP: \"up\",\n ARROW_DOWN: \"down\",\n ARROW_LEFT: \"previous\",\n ESCAPE: \"close\"\n });\n }\n }, {\n key: \"_init\",\n value: function () {\n r.Nest.Feather(this.$element, \"dropdown\");\n var e = this.$element.find(\"li.is-dropdown-submenu-parent\");\n this.$element.children(\".is-dropdown-submenu-parent\").children(\".is-dropdown-submenu\").addClass(\"first-sub\"), this.$menuItems = this.$element.find('li[role=\"none\"]'), this.$tabs = this.$element.children('li[role=\"none\"]'), this.$tabs.find(\"ul.is-dropdown-submenu\").addClass(this.options.verticalClass), \"auto\" === this.options.alignment ? this.$element.hasClass(this.options.rightClass) || Object(u.rtl)() || this.$element.parents(\".top-bar-right\").is(\"*\") ? (this.options.alignment = \"right\", e.addClass(\"opens-left\")) : (this.options.alignment = \"left\", e.addClass(\"opens-right\")) : \"right\" === this.options.alignment ? e.addClass(\"opens-left\") : e.addClass(\"opens-right\"), this.changed = !1, this._events();\n }\n }, {\n key: \"_isVertical\",\n value: function () {\n return \"block\" === this.$tabs.css(\"display\") || \"column\" === this.$element.css(\"flex-direction\");\n }\n }, {\n key: \"_isRtl\",\n value: function () {\n return this.$element.hasClass(\"align-right\") || Object(u.rtl)() && !this.$element.hasClass(\"align-left\");\n }\n }, {\n key: \"_events\",\n value: function () {\n var c = this,\n r = \"ontouchstart\" in window || void 0 !== window.ontouchstart,\n s = \"is-dropdown-submenu-parent\";\n (this.options.clickOpen || r) && this.$menuItems.on(\"click.zf.dropdownMenu touchstart.zf.dropdownMenu\", function (e) {\n var n = f()(e.target).parentsUntil(\"ul\", \".\".concat(s)),\n t = n.hasClass(s),\n o = \"true\" === n.attr(\"data-is-click\"),\n i = n.children(\".is-dropdown-submenu\");\n t && (o ? !c.options.closeOnClick || !c.options.clickOpen && !r || c.options.forceFollow && r || (e.stopImmediatePropagation(), e.preventDefault(), c._hide(n)) : (e.stopImmediatePropagation(), e.preventDefault(), c._show(i), n.add(n.parentsUntil(c.$element, \".\".concat(s))).attr(\"data-is-click\", !0)));\n }), c.options.closeOnClickInside && this.$menuItems.on(\"click.zf.dropdownMenu\", function () {\n f()(this).hasClass(s) || c._hide();\n }), r && this.options.disableHoverOnTouch && (this.options.disableHover = !0), this.options.disableHover || this.$menuItems.on(\"mouseenter.zf.dropdownMenu\", function () {\n var e = f()(this);\n e.hasClass(s) && (clearTimeout(e.data(\"_delay\")), e.data(\"_delay\", setTimeout(function () {\n c._show(e.children(\".is-dropdown-submenu\"));\n }, c.options.hoverDelay)));\n }).on(\"mouseleave.zf.dropdownMenu\", Object(u.ignoreMousedisappear)(function () {\n var e = f()(this);\n\n if (e.hasClass(s) && c.options.autoclose) {\n if (\"true\" === e.attr(\"data-is-click\") && c.options.clickOpen) return !1;\n clearTimeout(e.data(\"_delay\")), e.data(\"_delay\", setTimeout(function () {\n c._hide(e);\n }, c.options.closingTime));\n }\n })), this.$menuItems.on(\"keydown.zf.dropdownMenu\", function (n) {\n var t,\n o,\n i = f()(n.target).parentsUntil(\"ul\", '[role=\"none\"]'),\n e = -1 < c.$tabs.index(i),\n r = e ? c.$tabs : i.siblings(\"li\").add(i);\n r.each(function (e) {\n f()(this).is(i) && (t = r.eq(e - 1), o = r.eq(e + 1));\n });\n\n function s() {\n o.children(\"a:first\").focus(), n.preventDefault();\n }\n\n function u() {\n t.children(\"a:first\").focus(), n.preventDefault();\n }\n\n function a() {\n var e = i.children(\"ul.is-dropdown-submenu\");\n e.length && (c._show(e), i.find(\"li > a:first\").focus(), n.preventDefault());\n }\n\n function d() {\n var e = i.parent(\"ul\").parent(\"li\");\n e.children(\"a:first\").focus(), c._hide(e), n.preventDefault();\n }\n\n var l = {\n open: a,\n close: function () {\n c._hide(c.$element), c.$menuItems.eq(0).children(\"a\").focus(), n.preventDefault();\n }\n };\n e ? c._isVertical() ? c._isRtl() ? f.a.extend(l, {\n down: s,\n up: u,\n next: d,\n previous: a\n }) : f.a.extend(l, {\n down: s,\n up: u,\n next: a,\n previous: d\n }) : c._isRtl() ? f.a.extend(l, {\n next: u,\n previous: s,\n down: a,\n up: d\n }) : f.a.extend(l, {\n next: s,\n previous: u,\n down: a,\n up: d\n }) : c._isRtl() ? f.a.extend(l, {\n next: d,\n previous: a,\n down: s,\n up: u\n }) : f.a.extend(l, {\n next: a,\n previous: d,\n down: s,\n up: u\n }), p.Keyboard.handleKey(n, \"DropdownMenu\", l);\n });\n }\n }, {\n key: \"_addBodyHandler\",\n value: function () {\n var n = this,\n e = f()(document.body);\n this._removeBodyHandler(), e.on(\"click.zf.dropdownMenu tap.zf.dropdownMenu\", function (e) {\n !f()(e.target).closest(n.$element).length && (n._hide(), n._removeBodyHandler());\n });\n }\n }, {\n key: \"_removeBodyHandler\",\n value: function () {\n f()(document.body).off(\"click.zf.dropdownMenu tap.zf.dropdownMenu\");\n }\n }, {\n key: \"_show\",\n value: function (t) {\n var e = this.$tabs.index(this.$tabs.filter(function (e, n) {\n return 0 < f()(n).find(t).length;\n })),\n n = t.parent(\"li.is-dropdown-submenu-parent\").siblings(\"li.is-dropdown-submenu-parent\");\n this._hide(n, e), t.css(\"visibility\", \"hidden\").addClass(\"js-dropdown-active\").parent(\"li.is-dropdown-submenu-parent\").addClass(\"is-active\"), s.Box.ImNotTouchingYou(t, null, !0) || (n = \"left\" === this.options.alignment ? \"-right\" : \"-left\", (e = t.parent(\".is-dropdown-submenu-parent\")).removeClass(\"opens\".concat(n)).addClass(\"opens-\".concat(this.options.alignment)), s.Box.ImNotTouchingYou(t, null, !0) || e.removeClass(\"opens-\".concat(this.options.alignment)).addClass(\"opens-inner\"), this.changed = !0), t.css(\"visibility\", \"\"), this.options.closeOnClick && this._addBodyHandler(), this.$element.trigger(\"show.zf.dropdownMenu\", [t]);\n }\n }, {\n key: \"_hide\",\n value: function (e, n) {\n var t,\n o = e && e.length ? e : void 0 !== n ? this.$tabs.not(function (e) {\n return e === n;\n }) : this.$element;\n (o.hasClass(\"is-active\") || 0 < o.find(\".is-active\").length) && ((t = o.find(\"li.is-active\")).add(o).attr({\n \"data-is-click\": !1\n }).removeClass(\"is-active\"), o.find(\"ul.js-dropdown-active\").removeClass(\"js-dropdown-active\"), (this.changed || o.find(\"opens-inner\").length) && (e = \"left\" === this.options.alignment ? \"right\" : \"left\", o.find(\"li.is-dropdown-submenu-parent\").add(o).removeClass(\"opens-inner opens-\".concat(this.options.alignment)).addClass(\"opens-\".concat(e)), this.changed = !1), clearTimeout(t.data(\"_delay\")), this._removeBodyHandler(), this.$element.trigger(\"hide.zf.dropdownMenu\", [o]));\n }\n }, {\n key: \"_destroy\",\n value: function () {\n this.$menuItems.off(\".zf.dropdownMenu\").removeAttr(\"data-is-click\").removeClass(\"is-right-arrow is-left-arrow is-down-arrow opens-right opens-left opens-inner\"), f()(document.body).off(\".zf.dropdownMenu\"), r.Nest.Burn(this.$element, \"dropdown\");\n }\n }]) && d(e.prototype, n), t && d(e, t), i;\n }();\n\n o.defaults = {\n disableHover: !1,\n disableHoverOnTouch: !0,\n autoclose: !0,\n hoverDelay: 50,\n clickOpen: !1,\n closingTime: 500,\n alignment: \"auto\",\n closeOnClick: !0,\n closeOnClickInside: !0,\n verticalClass: \"vertical\",\n rightClass: \"align-right\",\n forceFollow: !0\n };\n },\n 5: function (e, n, t) {\n e.exports = t(\"./js/entries/plugins/foundation.dropdownMenu.js\");\n },\n jquery: function (e, n) {\n e.exports = u;\n }\n }, l = {}, a.m = d, a.c = l, a.d = function (e, n, t) {\n a.o(e, n) || Object.defineProperty(e, n, {\n enumerable: !0,\n get: t\n });\n }, a.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, a.t = function (n, e) {\n if (1 & e && (n = a(n)), 8 & e) return n;\n if (4 & e && \"object\" == typeof n && n && n.__esModule) return n;\n var t = Object.create(null);\n if (a.r(t), Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: n\n }), 2 & e && \"string\" != typeof n) for (var o in n) a.d(t, o, function (e) {\n return n[e];\n }.bind(null, o));\n return t;\n }, a.n = function (e) {\n var n = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return a.d(n, \"a\", n), n;\n }, a.o = function (e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n }, a.p = \"\", a(a.s = 5);\n\n function a(e) {\n if (l[e]) return l[e].exports;\n var n = l[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return d[e].call(n.exports, n, n.exports, a), n.l = !0, n.exports;\n }\n\n var d, l;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.mediaQuery\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.equalizer\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.mediaQuery\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.equalizer\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 6);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.imageLoader\":\n /*!****************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n \\****************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n /***/\n },\n\n /***/\n \"./foundation.util.mediaQuery\":\n /*!************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n \\************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.equalizer.js\":\n /*!****************************************************!*\\\n !*** ./js/entries/plugins/foundation.equalizer.js ***!\n \\****************************************************/\n\n /*! exports provided: Foundation, Equalizer */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.equalizer */\n \"./js/foundation.equalizer.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Equalizer\", function () {\n return _foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_equalizer__WEBPACK_IMPORTED_MODULE_1__[\"Equalizer\"], 'Equalizer');\n /***/\n\n },\n\n /***/\n \"./js/foundation.equalizer.js\":\n /*!************************************!*\\\n !*** ./js/foundation.equalizer.js ***!\n \\************************************/\n\n /*! exports provided: Equalizer */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Equalizer\", function () {\n return Equalizer;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./foundation.util.mediaQuery\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.imageLoader */\n \"./foundation.util.imageLoader\");\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Equalizer module.\n * @module foundation.equalizer\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.imageLoader if equalizer contains images\n */\n\n\n var Equalizer = /*#__PURE__*/function (_Plugin) {\n _inherits(Equalizer, _Plugin);\n\n var _super = _createSuper(Equalizer);\n\n function Equalizer() {\n _classCallCheck(this, Equalizer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Equalizer, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of Equalizer.\n * @class\n * @name Equalizer\n * @fires Equalizer#init\n * @param {Object} element - jQuery object to add the trigger to.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Equalizer.defaults, this.$element.data(), options);\n this.className = 'Equalizer'; // ie9 back compat\n\n this._init();\n }\n /**\n * Initializes the Equalizer plugin and calls functions to get equalizer functioning on load.\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var eqId = this.$element.attr('data-equalizer') || '';\n var $watched = this.$element.find(\"[data-equalizer-watch=\\\"\".concat(eqId, \"\\\"]\"));\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"]._init();\n\n this.$watched = $watched.length ? $watched : this.$element.find('[data-equalizer-watch]');\n this.$element.attr('data-resize', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n this.$element.attr('data-mutate', eqId || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'eq'));\n this.hasNested = this.$element.find('[data-equalizer]').length > 0;\n this.isNested = this.$element.parentsUntil(document.body, '[data-equalizer]').length > 0;\n this.isOn = false;\n this._bindHandler = {\n onResizeMeBound: this._onResizeMe.bind(this),\n onPostEqualizedBound: this._onPostEqualized.bind(this)\n };\n var imgs = this.$element.find('img');\n var tooSmall;\n\n if (this.options.equalizeOn) {\n tooSmall = this._checkMQ();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._checkMQ.bind(this));\n } else {\n this._events();\n }\n\n if (typeof tooSmall !== 'undefined' && tooSmall === false || typeof tooSmall === 'undefined') {\n if (imgs.length) {\n Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_2__[\"onImagesLoaded\"])(imgs, this._reflow.bind(this));\n } else {\n this._reflow();\n }\n }\n }\n /**\n * Removes event listeners if the breakpoint is too small.\n * @private\n */\n\n }, {\n key: \"_pauseEvents\",\n value: function _pauseEvents() {\n this.isOn = false;\n this.$element.off({\n '.zf.equalizer': this._bindHandler.onPostEqualizedBound,\n 'resizeme.zf.trigger': this._bindHandler.onResizeMeBound,\n 'mutateme.zf.trigger': this._bindHandler.onResizeMeBound\n });\n }\n /**\n * function to handle $elements resizeme.zf.trigger, with bound this on _bindHandler.onResizeMeBound\n * @private\n */\n\n }, {\n key: \"_onResizeMe\",\n value: function _onResizeMe() {\n this._reflow();\n }\n /**\n * function to handle $elements postequalized.zf.equalizer, with bound this on _bindHandler.onPostEqualizedBound\n * @private\n */\n\n }, {\n key: \"_onPostEqualized\",\n value: function _onPostEqualized(e) {\n if (e.target !== this.$element[0]) {\n this._reflow();\n }\n }\n /**\n * Initializes events for Equalizer.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n this._pauseEvents();\n\n if (this.hasNested) {\n this.$element.on('postequalized.zf.equalizer', this._bindHandler.onPostEqualizedBound);\n } else {\n this.$element.on('resizeme.zf.trigger', this._bindHandler.onResizeMeBound);\n this.$element.on('mutateme.zf.trigger', this._bindHandler.onResizeMeBound);\n }\n\n this.isOn = true;\n }\n /**\n * Checks the current breakpoint to the minimum required size.\n * @private\n */\n\n }, {\n key: \"_checkMQ\",\n value: function _checkMQ() {\n var tooSmall = !_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"].is(this.options.equalizeOn);\n\n if (tooSmall) {\n if (this.isOn) {\n this._pauseEvents();\n\n this.$watched.css('height', 'auto');\n }\n } else {\n if (!this.isOn) {\n this._events();\n }\n }\n\n return tooSmall;\n }\n /**\n * A noop version for the plugin\n * @private\n */\n\n }, {\n key: \"_killswitch\",\n value: function _killswitch() {\n return;\n }\n /**\n * Calls necessary functions to update Equalizer upon DOM change\n * @private\n */\n\n }, {\n key: \"_reflow\",\n value: function _reflow() {\n if (!this.options.equalizeOnStack) {\n if (this._isStacked()) {\n this.$watched.css('height', 'auto');\n return false;\n }\n }\n\n if (this.options.equalizeByRow) {\n this.getHeightsByRow(this.applyHeightByRow.bind(this));\n } else {\n this.getHeights(this.applyHeight.bind(this));\n }\n }\n /**\n * Manually determines if the first 2 elements are *NOT* stacked.\n * @private\n */\n\n }, {\n key: \"_isStacked\",\n value: function _isStacked() {\n if (!this.$watched[0] || !this.$watched[1]) {\n return true;\n }\n\n return this.$watched[0].getBoundingClientRect().top !== this.$watched[1].getBoundingClientRect().top;\n }\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} heights - An array of heights of children within Equalizer container\n */\n\n }, {\n key: \"getHeights\",\n value: function getHeights(cb) {\n var heights = [];\n\n for (var i = 0, len = this.$watched.length; i < len; i++) {\n this.$watched[i].style.height = 'auto';\n heights.push(this.$watched[i].offsetHeight);\n }\n\n cb(heights);\n }\n /**\n * Finds the outer heights of children contained within an Equalizer parent and returns them in an array\n * @param {Function} cb - A non-optional callback to return the heights array to.\n * @returns {Array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n */\n\n }, {\n key: \"getHeightsByRow\",\n value: function getHeightsByRow(cb) {\n var lastElTopOffset = this.$watched.length ? this.$watched.first().offset().top : 0,\n groups = [],\n group = 0; //group by Row\n\n groups[group] = [];\n\n for (var i = 0, len = this.$watched.length; i < len; i++) {\n this.$watched[i].style.height = 'auto'; //maybe could use this.$watched[i].offsetTop\n\n var elOffsetTop = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.$watched[i]).offset().top;\n\n if (elOffsetTop !== lastElTopOffset) {\n group++;\n groups[group] = [];\n lastElTopOffset = elOffsetTop;\n }\n\n groups[group].push([this.$watched[i], this.$watched[i].offsetHeight]);\n }\n\n for (var j = 0, ln = groups.length; j < ln; j++) {\n var heights = jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[j]).map(function () {\n return this[1];\n }).get();\n var max = Math.max.apply(null, heights);\n groups[j].push(max);\n }\n\n cb(groups);\n }\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest\n * @param {array} heights - An array of heights of children within Equalizer container\n * @fires Equalizer#preequalized\n * @fires Equalizer#postequalized\n */\n\n }, {\n key: \"applyHeight\",\n value: function applyHeight(heights) {\n var max = Math.max.apply(null, heights);\n /**\n * Fires before the heights are applied\n * @event Equalizer#preequalized\n */\n\n this.$element.trigger('preequalized.zf.equalizer');\n this.$watched.css('height', max);\n /**\n * Fires when the heights have been applied\n * @event Equalizer#postequalized\n */\n\n this.$element.trigger('postequalized.zf.equalizer');\n }\n /**\n * Changes the CSS height property of each child in an Equalizer parent to match the tallest by row\n * @param {array} groups - An array of heights of children within Equalizer container grouped by row with element,height and max as last child\n * @fires Equalizer#preequalized\n * @fires Equalizer#preequalizedrow\n * @fires Equalizer#postequalizedrow\n * @fires Equalizer#postequalized\n */\n\n }, {\n key: \"applyHeightByRow\",\n value: function applyHeightByRow(groups) {\n /**\n * Fires before the heights are applied\n */\n this.$element.trigger('preequalized.zf.equalizer');\n\n for (var i = 0, len = groups.length; i < len; i++) {\n var groupsILength = groups[i].length,\n max = groups[i][groupsILength - 1];\n\n if (groupsILength <= 2) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][0][0]).css({\n 'height': 'auto'\n });\n continue;\n }\n /**\n * Fires before the heights per row are applied\n * @event Equalizer#preequalizedrow\n */\n\n\n this.$element.trigger('preequalizedrow.zf.equalizer');\n\n for (var j = 0, lenJ = groupsILength - 1; j < lenJ; j++) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(groups[i][j][0]).css({\n 'height': max\n });\n }\n /**\n * Fires when the heights per row have been applied\n * @event Equalizer#postequalizedrow\n */\n\n\n this.$element.trigger('postequalizedrow.zf.equalizer');\n }\n /**\n * Fires when the heights have been applied\n */\n\n\n this.$element.trigger('postequalized.zf.equalizer');\n }\n /**\n * Destroys an instance of Equalizer.\n * @function\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this._pauseEvents();\n\n this.$watched.css('height', 'auto');\n }\n }]);\n\n return Equalizer;\n }(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"Plugin\"]);\n /**\n * Default settings for plugin\n */\n\n\n Equalizer.defaults = {\n /**\n * Enable height equalization when stacked on smaller screens.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeOnStack: false,\n\n /**\n * Enable height equalization row by row.\n * @option\n * @type {boolean}\n * @default false\n */\n equalizeByRow: false,\n\n /**\n * String representing the minimum breakpoint size the plugin should equalize heights on.\n * @option\n * @type {string}\n * @default ''\n */\n equalizeOn: ''\n };\n /***/\n },\n\n /***/\n 6:\n /*!**********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.equalizer.js ***!\n \\**********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.equalizer.js */\n \"./js/entries/plugins/foundation.equalizer.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.keyboard\", \"./foundation.util.mediaQuery\", \"./foundation.util.motion\", \"./foundation.util.touch\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.reveal\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.mediaQuery\"), require(\"./foundation.util.motion\"), require(\"./foundation.util.touch\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.reveal\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 14);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.keyboard\":\n /*!****************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n \\****************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n /***/\n },\n\n /***/\n \"./foundation.util.mediaQuery\":\n /*!************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.mediaQuery\"],\"amd\":\"./foundation.util.mediaQuery\",\"commonjs\":\"./foundation.util.mediaQuery\",\"commonjs2\":\"./foundation.util.mediaQuery\"} ***!\n \\************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_mediaQuery__;\n /***/\n },\n\n /***/\n \"./foundation.util.motion\":\n /*!********************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n \\********************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n /***/\n },\n\n /***/\n \"./foundation.util.touch\":\n /*!****************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.touch\"],\"amd\":\"./foundation.util.touch\",\"commonjs\":\"./foundation.util.touch\",\"commonjs2\":\"./foundation.util.touch\"} ***!\n \\****************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_touch__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.reveal.js\":\n /*!*************************************************!*\\\n !*** ./js/entries/plugins/foundation.reveal.js ***!\n \\*************************************************/\n\n /*! exports provided: Foundation, Reveal */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.reveal */\n \"./js/foundation.reveal.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Reveal\", function () {\n return _foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_reveal__WEBPACK_IMPORTED_MODULE_1__[\"Reveal\"], 'Reveal');\n /***/\n\n },\n\n /***/\n \"./js/foundation.reveal.js\":\n /*!*********************************!*\\\n !*** ./js/foundation.reveal.js ***!\n \\*********************************/\n\n /*! exports provided: Reveal */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Reveal\", function () {\n return Reveal;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.plugin */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.keyboard */\n \"./foundation.util.keyboard\");\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.util.mediaQuery */\n \"./foundation.util.mediaQuery\");\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__);\n /* harmony import */\n\n\n var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(\n /*! ./foundation.util.triggers */\n \"./js/foundation.util.triggers.js\");\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(\n /*! ./foundation.util.touch */\n \"./foundation.util.touch\");\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Reveal module.\n * @module foundation.reveal\n * @requires foundation.util.keyboard\n * @requires foundation.util.touch\n * @requires foundation.util.triggers\n * @requires foundation.util.mediaQuery\n * @requires foundation.util.motion if using animations\n */\n\n\n var Reveal = /*#__PURE__*/function (_Plugin) {\n _inherits(Reveal, _Plugin);\n\n var _super = _createSuper(Reveal);\n\n function Reveal() {\n _classCallCheck(this, Reveal);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Reveal, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of Reveal.\n * @class\n * @name Reveal\n * @param {jQuery} element - jQuery object to use for the modal.\n * @param {Object} options - optional parameters.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Reveal.defaults, this.$element.data(), options);\n this.className = 'Reveal'; // ie9 back compat\n\n this._init(); // Touch and Triggers init are idempotent, just need to make sure they are initialized\n\n\n _foundation_util_touch__WEBPACK_IMPORTED_MODULE_6__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_5__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Reveal', {\n 'ESCAPE': 'close'\n });\n }\n /**\n * Initializes the modal by adding the overlay and close buttons, (if selected).\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"]._init();\n\n this.id = this.$element.attr('id');\n this.isActive = false;\n this.cached = {\n mq: _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_3__[\"MediaQuery\"].current\n };\n this.$anchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-open=\\\"\".concat(this.id, \"\\\"]\")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-toggle=\\\"\".concat(this.id, \"\\\"]\"));\n this.$anchor.attr({\n 'aria-controls': this.id,\n 'aria-haspopup': 'dialog',\n 'tabindex': 0\n });\n\n if (this.options.fullScreen || this.$element.hasClass('full')) {\n this.options.fullScreen = true;\n this.options.overlay = false;\n }\n\n if (this.options.overlay && !this.$overlay) {\n this.$overlay = this._makeOverlay(this.id);\n }\n\n this.$element.attr({\n 'role': 'dialog',\n 'aria-hidden': true,\n 'data-yeti-box': this.id,\n 'data-resize': this.id\n });\n\n if (this.$overlay) {\n this.$element.detach().appendTo(this.$overlay);\n } else {\n this.$element.detach().appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo));\n this.$element.addClass('without-overlay');\n }\n\n this._events();\n\n if (this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n return _this2.open();\n });\n }\n }\n /**\n * Creates an overlay div to display behind the modal.\n * @private\n */\n\n }, {\n key: \"_makeOverlay\",\n value: function _makeOverlay() {\n var additionalOverlayClasses = '';\n\n if (this.options.additionalOverlayClasses) {\n additionalOverlayClasses = ' ' + this.options.additionalOverlayClasses;\n }\n\n return jquery__WEBPACK_IMPORTED_MODULE_0___default()('
').addClass('reveal-overlay' + additionalOverlayClasses).appendTo(this.options.appendTo);\n }\n /**\n * Updates position of modal\n * TODO: Figure out if we actually need to cache these values or if it doesn't matter\n * @private\n */\n\n }, {\n key: \"_updatePosition\",\n value: function _updatePosition() {\n var width = this.$element.outerWidth();\n var outerWidth = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).width();\n var height = this.$element.outerHeight();\n var outerHeight = jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height();\n var left,\n top = null;\n\n if (this.options.hOffset === 'auto') {\n left = parseInt((outerWidth - width) / 2, 10);\n } else {\n left = parseInt(this.options.hOffset, 10);\n }\n\n if (this.options.vOffset === 'auto') {\n if (height > outerHeight) {\n top = parseInt(Math.min(100, outerHeight / 10), 10);\n } else {\n top = parseInt((outerHeight - height) / 4, 10);\n }\n } else if (this.options.vOffset !== null) {\n top = parseInt(this.options.vOffset, 10);\n }\n\n if (top !== null) {\n this.$element.css({\n top: top + 'px'\n });\n } // only worry about left if we don't have an overlay or we have a horizontal offset,\n // otherwise we're perfectly in the middle\n\n\n if (!this.$overlay || this.options.hOffset !== 'auto') {\n this.$element.css({\n left: left + 'px'\n });\n this.$element.css({\n margin: '0px'\n });\n }\n }\n /**\n * Adds event handlers for the modal.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n var _this3 = this;\n\n var _this = this;\n\n this.$element.on({\n 'open.zf.trigger': this.open.bind(this),\n 'close.zf.trigger': function closeZfTrigger(event, $element) {\n if (event.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default()(event.target).parents('[data-closable]')[0] === $element) {\n // only close reveal when it's explicitly called\n return _this3.close.apply(_this3);\n }\n },\n 'toggle.zf.trigger': this.toggle.bind(this),\n 'resizeme.zf.trigger': function resizemeZfTrigger() {\n _this._updatePosition();\n }\n });\n\n if (this.options.closeOnClick && this.options.overlay) {\n this.$overlay.off('.zf.reveal').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(\"hashchange.zf.reveal:\".concat(this.id), this._handleState.bind(this));\n }\n }\n /**\n * Handles modal methods on back/forward button clicks or any other event that triggers hashchange.\n * @private\n */\n\n }, {\n key: \"_handleState\",\n value: function _handleState() {\n if (window.location.hash === '#' + this.id && !this.isActive) {\n this.open();\n } else {\n this.close();\n }\n }\n /**\n * Disables the scroll when Reveal is shown to prevent the background from shifting\n * @param {number} scrollTop - Scroll to visually apply, window current scroll by default\n */\n\n }, {\n key: \"_disableScroll\",\n value: function _disableScroll(scrollTop) {\n scrollTop = scrollTop || jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop();\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", -scrollTop);\n }\n }\n /**\n * Reenables the scroll when Reveal closes\n * @param {number} scrollTop - Scroll to restore, html \"top\" property by default (as set by `_disableScroll`)\n */\n\n }, {\n key: \"_enableScroll\",\n value: function _enableScroll(scrollTop) {\n scrollTop = scrollTop || parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\", \"\");\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).scrollTop(-scrollTop);\n }\n }\n /**\n * Opens the modal controlled by `this.$anchor`, and closes all others by default.\n * @function\n * @fires Reveal#closeme\n * @fires Reveal#open\n */\n\n }, {\n key: \"open\",\n value: function open() {\n var _this4 = this; // either update or replace browser history\n\n\n var hash = \"#\".concat(this.id);\n\n if (this.options.deepLink && window.location.hash !== hash) {\n if (window.history.pushState) {\n if (this.options.updateHistory) {\n window.history.pushState({}, '', hash);\n } else {\n window.history.replaceState({}, '', hash);\n }\n } else {\n window.location.hash = hash;\n }\n } // Remember anchor that opened it to set focus back later, have general anchors as fallback\n\n\n this.$activeAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement).is(this.$anchor) ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.activeElement) : this.$anchor;\n this.isActive = true; // Make elements invisible, but remove display: none so we can get size and positioning\n\n this.$element.css({\n 'visibility': 'hidden'\n }).show().scrollTop(0);\n\n if (this.options.overlay) {\n this.$overlay.css({\n 'visibility': 'hidden'\n }).show();\n }\n\n this._updatePosition();\n\n this.$element.hide().css({\n 'visibility': ''\n });\n\n if (this.$overlay) {\n this.$overlay.css({\n 'visibility': ''\n }).hide();\n\n if (this.$element.hasClass('fast')) {\n this.$overlay.addClass('fast');\n } else if (this.$element.hasClass('slow')) {\n this.$overlay.addClass('slow');\n }\n }\n\n if (!this.options.multipleOpened) {\n /**\n * Fires immediately before the modal opens.\n * Closes any other modals that are currently open\n * @event Reveal#closeme\n */\n this.$element.trigger('closeme.zf.reveal', this.id);\n }\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._disableScroll();\n }\n\n var _this = this; // Motion UI method of reveal\n\n\n if (this.options.animationIn) {\n var afterAnimation = function afterAnimation() {\n _this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _this._addGlobalClasses();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(_this.$element);\n };\n\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$overlay, 'fade-in');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateIn(this.$element, this.options.animationIn, function () {\n if (_this4.$element) {\n // protect against object having been removed\n _this4.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(_this4.$element);\n afterAnimation();\n }\n });\n } // jQuery method of reveal\n else {\n if (this.options.overlay) {\n this.$overlay.show(0);\n }\n\n this.$element.show(this.options.showDelay);\n } // handle accessibility\n\n\n this.$element.attr({\n 'aria-hidden': false,\n 'tabindex': -1\n }).focus();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].trapFocus(this.$element);\n\n this._addGlobalClasses();\n\n this._addGlobalListeners();\n /**\n * Fires when the modal has successfully opened.\n * @event Reveal#open\n */\n\n\n this.$element.trigger('open.zf.reveal');\n }\n /**\n * Adds classes and listeners on document required by open modals.\n *\n * The following classes are added and updated:\n * - `.is-reveal-open` - Prevents the scroll on document\n * - `.zf-has-scroll` - Displays a disabled scrollbar on document if required like if the\n * scroll was not disabled. This prevent a \"shift\" of the page content due\n * the scrollbar disappearing when the modal opens.\n *\n * @private\n */\n\n }, {\n key: \"_addGlobalClasses\",\n value: function _addGlobalClasses() {\n var updateScrollbarClass = function updateScrollbarClass() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').toggleClass('zf-has-scroll', !!(jquery__WEBPACK_IMPORTED_MODULE_0___default()(document).height() > jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).height()));\n };\n\n this.$element.on('resizeme.zf.trigger.revealScrollbarListener', function () {\n return updateScrollbarClass();\n });\n updateScrollbarClass();\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').addClass('is-reveal-open');\n }\n /**\n * Removes classes and listeners on document that were required by open modals.\n * @private\n */\n\n }, {\n key: \"_removeGlobalClasses\",\n value: function _removeGlobalClasses() {\n this.$element.off('resizeme.zf.trigger.revealScrollbarListener');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('is-reveal-open');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html').removeClass('zf-has-scroll');\n }\n /**\n * Adds extra event handlers for the body and window if necessary.\n * @private\n */\n\n }, {\n key: \"_addGlobalListeners\",\n value: function _addGlobalListeners() {\n var _this = this;\n\n if (!this.$element) {\n return;\n } // If we're in the middle of cleanup, don't freak out\n\n\n this.focusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].findFocusable(this.$element);\n\n if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').on('click.zf.dropdown tap.zf.dropdown', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target) || !jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(document, e.target)) {\n return;\n }\n\n _this.close();\n });\n }\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('keydown.zf.reveal', function (e) {\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Reveal', {\n close: function close() {\n if (_this.options.closeOnEsc) {\n _this.close();\n }\n }\n });\n });\n }\n }\n /**\n * Closes the modal.\n * @function\n * @fires Reveal#closed\n */\n\n }, {\n key: \"close\",\n value: function close() {\n if (!this.isActive || !this.$element.is(':visible')) {\n return false;\n }\n\n var _this = this; // Motion UI method of hiding\n\n\n if (this.options.animationOut) {\n if (this.options.overlay) {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$overlay, 'fade-out');\n }\n\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_4__[\"Motion\"].animateOut(this.$element, this.options.animationOut, finishUp);\n } // jQuery method of hiding\n else {\n this.$element.hide(this.options.hideDelay);\n\n if (this.options.overlay) {\n this.$overlay.hide(0, finishUp);\n } else {\n finishUp();\n }\n } // Conditionals to remove extra event listeners added on open\n\n\n if (this.options.closeOnEsc) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('keydown.zf.reveal');\n }\n\n if (!this.options.overlay && this.options.closeOnClick) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').off('click.zf.dropdown tap.zf.dropdown');\n }\n\n this.$element.off('keydown.zf.reveal');\n\n function finishUp() {\n // Get the current top before the modal is closed and restore the scroll after.\n // TODO: use component properties instead of HTML properties\n // See https://github.com/foundation/foundation-sites/pull/10786\n var scrollTop = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"html\").css(\"top\"), 10);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].releaseFocus(_this.$element);\n\n _this.$element.attr('aria-hidden', true);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n _this._enableScroll(scrollTop);\n }\n /**\n * Fires when the modal is done closing.\n * @event Reveal#closed\n */\n\n\n _this.$element.trigger('closed.zf.reveal');\n }\n /**\n * Resets the modal content\n * This prevents a running video to keep going in the background\n */\n\n\n if (this.options.resetOnClose) {\n this.$element.html(this.$element.html());\n }\n\n this.isActive = false; // If deepLink and we did not switched to an other modal...\n\n if (_this.options.deepLink && window.location.hash === \"#\".concat(this.id)) {\n // Remove the history hash\n if (window.history.replaceState) {\n var urlWithoutHash = window.location.pathname + window.location.search;\n\n if (this.options.updateHistory) {\n window.history.pushState({}, '', urlWithoutHash); // remove the hash\n } else {\n window.history.replaceState('', document.title, urlWithoutHash);\n }\n } else {\n window.location.hash = '';\n }\n }\n\n this.$activeAnchor.focus();\n }\n /**\n * Toggles the open/closed state of a modal.\n * @function\n */\n\n }, {\n key: \"toggle\",\n value: function toggle() {\n if (this.isActive) {\n this.close();\n } else {\n this.open();\n }\n }\n }, {\n key: \"_destroy\",\n value:\n /**\n * Destroys an instance of a modal.\n * @function\n */\n function _destroy() {\n if (this.options.overlay) {\n this.$element.appendTo(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()\n\n this.$overlay.hide().off().remove();\n }\n\n this.$element.hide().off();\n this.$anchor.off('.zf');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(\".zf.reveal:\".concat(this.id));\n if (this.onLoadListener) jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()('.reveal:visible').length === 0) {\n this._removeGlobalClasses(); // also remove .is-reveal-open from the html element when there is no opened reveal\n\n }\n }\n }]);\n\n return Reveal;\n }(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\n Reveal.defaults = {\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationIn: '',\n\n /**\n * Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.\n * @option\n * @type {string}\n * @default ''\n */\n animationOut: '',\n\n /**\n * Time, in ms, to delay the opening of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n showDelay: 0,\n\n /**\n * Time, in ms, to delay the closing of a modal after a click if no animation used.\n * @option\n * @type {number}\n * @default 0\n */\n hideDelay: 0,\n\n /**\n * Allows a click on the body/overlay to close the modal.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnClick: true,\n\n /**\n * Allows the modal to close if the user presses the `ESCAPE` key.\n * @option\n * @type {boolean}\n * @default true\n */\n closeOnEsc: true,\n\n /**\n * If true, allows multiple modals to be displayed at once.\n * @option\n * @type {boolean}\n * @default false\n */\n multipleOpened: false,\n\n /**\n * Distance, in pixels, the modal should push down from the top of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n vOffset: 'auto',\n\n /**\n * Distance, in pixels, the modal should push in from the side of the screen.\n * @option\n * @type {number|string}\n * @default auto\n */\n hOffset: 'auto',\n\n /**\n * Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.\n * @option\n * @type {boolean}\n * @default false\n */\n fullScreen: false,\n\n /**\n * Allows the modal to generate an overlay div, which will cover the view when modal opens.\n * @option\n * @type {boolean}\n * @default true\n */\n overlay: true,\n\n /**\n * Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.\n * @option\n * @type {boolean}\n * @default false\n */\n resetOnClose: false,\n\n /**\n * Link the location hash to the modal.\n * Set the location hash when the modal is opened/closed, and open/close the modal when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open modal\n * @option\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the modal to append to custom div.\n * @option\n * @type {string}\n * @default \"body\"\n */\n appendTo: \"body\",\n\n /**\n * Allows adding additional class names to the reveal overlay.\n * @option\n * @type {string}\n * @default ''\n */\n additionalOverlayClasses: ''\n };\n /***/\n },\n\n /***/\n \"./js/foundation.util.triggers.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.triggers.js ***!\n \\****************************************/\n\n /*! exports provided: Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return Triggers;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n }();\n\n var triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n };\n\n var Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n };\n Triggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n e.stopPropagation();\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n }; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\n Triggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n }; // Elements with [data-close] will close a plugin that supports it when clicked.\n // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\n Triggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\n Triggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n }; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\n Triggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n }; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\n Triggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n }; // More Global/complex listeners and triggers\n\n\n Triggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n }; // Global, parses whole document.\n\n Triggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames = plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n };\n\n function debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n }\n\n Triggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n };\n\n Triggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n };\n\n Triggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n };\n\n Triggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n };\n\n Triggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener(250);\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n };\n\n Triggers.init = function (__, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n };\n /***/\n\n },\n\n /***/\n 14:\n /*!*******************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.reveal.js ***!\n \\*******************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.reveal.js */\n \"./js/entries/plugins/foundation.reveal.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.imageLoader\", \"./foundation.util.keyboard\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.tabs\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.imageLoader\"), require(\"./foundation.util.keyboard\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.tabs\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 18);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.imageLoader\":\n /*!****************************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.imageLoader\"],\"amd\":\"./foundation.util.imageLoader\",\"commonjs\":\"./foundation.util.imageLoader\",\"commonjs2\":\"./foundation.util.imageLoader\"} ***!\n \\****************************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_imageLoader__;\n /***/\n },\n\n /***/\n \"./foundation.util.keyboard\":\n /*!****************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n \\****************************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.tabs.js\":\n /*!***********************************************!*\\\n !*** ./js/entries/plugins/foundation.tabs.js ***!\n \\***********************************************/\n\n /*! exports provided: Foundation, Tabs */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.tabs */\n \"./js/foundation.tabs.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tabs\", function () {\n return _foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_tabs__WEBPACK_IMPORTED_MODULE_1__[\"Tabs\"], 'Tabs');\n /***/\n\n },\n\n /***/\n \"./js/foundation.tabs.js\":\n /*!*******************************!*\\\n !*** ./js/foundation.tabs.js ***!\n \\*******************************/\n\n /*! exports provided: Tabs */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Tabs\", function () {\n return Tabs;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.plugin */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.keyboard */\n \"./foundation.util.keyboard\");\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(\n /*! ./foundation.util.imageLoader */\n \"./foundation.util.imageLoader\");\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n }\n\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n /**\n * Tabs module.\n * @module foundation.tabs\n * @requires foundation.util.keyboard\n * @requires foundation.util.imageLoader if tabs contain images\n */\n\n\n var Tabs = /*#__PURE__*/function (_Plugin) {\n _inherits(Tabs, _Plugin);\n\n var _super = _createSuper(Tabs);\n\n function Tabs() {\n _classCallCheck(this, Tabs);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Tabs, [{\n key: \"_setup\",\n value:\n /**\n * Creates a new instance of tabs.\n * @class\n * @name Tabs\n * @fires Tabs#init\n * @param {jQuery} element - jQuery object to make into tabs.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Tabs.defaults, this.$element.data(), options);\n this.className = 'Tabs'; // ie9 back compat\n\n this._init();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].register('Tabs', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'previous',\n 'ARROW_DOWN': 'next',\n 'ARROW_LEFT': 'previous' // 'TAB': 'next',\n // 'SHIFT_TAB': 'previous'\n\n });\n }\n /**\n * Initializes the tabs by showing and focusing (if autoFocus=true) the preset active tab.\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n var _this2 = this;\n\n var _this = this;\n\n this._isInitializing = true;\n this.$element.attr({\n 'role': 'tablist'\n });\n this.$tabTitles = this.$element.find(\".\".concat(this.options.linkClass));\n this.$tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-tabs-content=\\\"\".concat(this.$element[0].id, \"\\\"]\"));\n this.$tabTitles.each(function () {\n var $elem = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $link = $elem.find('a'),\n isActive = $elem.hasClass(\"\".concat(_this.options.linkActiveClass)),\n hash = $link.attr('data-tabs-target') || $link[0].hash.slice(1),\n linkId = $link[0].id ? $link[0].id : \"\".concat(hash, \"-label\"),\n $tabContent = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(hash));\n $elem.attr({\n 'role': 'presentation'\n });\n $link.attr({\n 'role': 'tab',\n 'aria-controls': hash,\n 'aria-selected': isActive,\n 'id': linkId,\n 'tabindex': isActive ? '0' : '-1'\n });\n $tabContent.attr({\n 'role': 'tabpanel',\n 'aria-labelledby': linkId\n }); // Save up the initial hash to return to it later when going back in history\n\n if (isActive) {\n _this._initialAnchor = \"#\".concat(hash);\n }\n\n if (!isActive) {\n $tabContent.attr('aria-hidden', 'true');\n }\n\n if (isActive && _this.options.autoFocus) {\n _this.onLoadListener = Object(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n scrollTop: $elem.offset().top\n }, _this.options.deepLinkSmudgeDelay, function () {\n $link.focus();\n });\n });\n }\n });\n\n if (this.options.matchHeight) {\n var $images = this.$tabContent.find('img');\n\n if ($images.length) {\n Object(_foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_3__[\"onImagesLoaded\"])($images, this._setHeight.bind(this));\n } else {\n this._setHeight();\n }\n } // Current context-bound function to open tabs on page load or history hashchange\n\n\n this._checkDeepLink = function () {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (_this2._isInitializing) return; // Otherwise, move to the initial anchor\n\n if (_this2._initialAnchor) anchor = _this2._initialAnchor;\n }\n\n var anchorNoHash = anchor.indexOf('#') >= 0 ? anchor.slice(1) : anchor;\n var $anchor = anchorNoHash && jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(anchorNoHash));\n\n var $link = anchor && _this2.$element.find(\"[href$=\\\"\".concat(anchor, \"\\\"],[data-tabs-target=\\\"\").concat(anchorNoHash, \"\\\"]\")).first(); // Whether the anchor element that has been found is part of this element\n\n\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, select it\n if ($anchor && $anchor.length && $link && $link.length) {\n _this2.selectTab($anchor, true);\n } // Otherwise, collapse everything\n else {\n _this2._collapse();\n } // Roll up a little to show the titles\n\n\n if (_this2.options.deepLinkSmudge) {\n var offset = _this2.$element.offset();\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({\n scrollTop: offset.top - _this2.options.deepLinkSmudgeOffset\n }, _this2.options.deepLinkSmudgeDelay);\n }\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Tabs#deeplink\n */\n\n\n _this2.$element.trigger('deeplink.zf.tabs', [$link, $anchor]);\n }\n }; //use browser to open a tab, if it exists in this tabset\n\n\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n /**\n * Adds event handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_events\",\n value: function _events() {\n this._addKeyHandler();\n\n this._addClickHandler();\n\n this._setHeightMqHandler = null;\n\n if (this.options.matchHeight) {\n this._setHeightMqHandler = this._setHeight.bind(this);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('hashchange', this._checkDeepLink);\n }\n }\n /**\n * Adds click handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_addClickHandler\",\n value: function _addClickHandler() {\n var _this = this;\n\n this.$element.off('click.zf.tabs').on('click.zf.tabs', \".\".concat(this.options.linkClass), function (e) {\n e.preventDefault();\n\n _this._handleTabChange(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n });\n }\n /**\n * Adds keyboard event handlers for items within the tabs.\n * @private\n */\n\n }, {\n key: \"_addKeyHandler\",\n value: function _addKeyHandler() {\n var _this = this;\n\n this.$tabTitles.off('keydown.zf.tabs').on('keydown.zf.tabs', function (e) {\n if (e.which === 9) return;\n var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $elements = $element.parent('ul').children('li'),\n $prevElement,\n $nextElement;\n $elements.each(function (i) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n if (_this.options.wrapOnKeys) {\n $prevElement = i === 0 ? $elements.last() : $elements.eq(i - 1);\n $nextElement = i === $elements.length - 1 ? $elements.first() : $elements.eq(i + 1);\n } else {\n $prevElement = $elements.eq(Math.max(0, i - 1));\n $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n }\n\n return;\n }\n }); // handle keyboard event with keyboard util\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_2__[\"Keyboard\"].handleKey(e, 'Tabs', {\n open: function open() {\n $element.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($element);\n },\n previous: function previous() {\n $prevElement.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($prevElement);\n },\n next: function next() {\n $nextElement.find('[role=\"tab\"]').focus();\n\n _this._handleTabChange($nextElement);\n },\n handled: function handled() {\n e.preventDefault();\n }\n });\n });\n }\n /**\n * Opens the tab `$targetContent` defined by `$target`. Collapses active tab.\n * @param {jQuery} $target - Tab to open.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @fires Tabs#change\n * @function\n */\n\n }, {\n key: \"_handleTabChange\",\n value: function _handleTabChange($target, historyHandled) {\n // With `activeCollapse`, if the target is the active Tab, collapse it.\n if ($target.hasClass(\"\".concat(this.options.linkActiveClass))) {\n if (this.options.activeCollapse) {\n this._collapse();\n }\n\n return;\n }\n\n var $oldTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass)),\n $tabLink = $target.find('[role=\"tab\"]'),\n target = $tabLink.attr('data-tabs-target'),\n anchor = target && target.length ? \"#\".concat(target) : $tabLink[0].hash,\n $targetContent = this.$tabContent.find(anchor); //close old tab\n\n this._collapseTab($oldTab); //open new tab\n\n\n this._openTab($target); //either replace or update browser history\n\n\n if (this.options.deepLink && !historyHandled) {\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n /**\n * Fires when the plugin has successfully changed tabs.\n * @event Tabs#change\n */\n\n\n this.$element.trigger('change.zf.tabs', [$target, $targetContent]); //fire to children a mutation event\n\n $targetContent.find(\"[data-mutate]\").trigger(\"mutateme.zf.trigger\");\n }\n /**\n * Opens the tab `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to open.\n * @function\n */\n\n }, {\n key: \"_openTab\",\n value: function _openTab($target) {\n var $tabLink = $target.find('[role=\"tab\"]'),\n hash = $tabLink.attr('data-tabs-target') || $tabLink[0].hash.slice(1),\n $targetContent = this.$tabContent.find(\"#\".concat(hash));\n $target.addClass(\"\".concat(this.options.linkActiveClass));\n $tabLink.attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n });\n $targetContent.addClass(\"\".concat(this.options.panelActiveClass)).removeAttr('aria-hidden');\n }\n /**\n * Collapses `$targetContent` defined by `$target`.\n * @param {jQuery} $target - Tab to collapse.\n * @function\n */\n\n }, {\n key: \"_collapseTab\",\n value: function _collapseTab($target) {\n var $targetAnchor = $target.removeClass(\"\".concat(this.options.linkActiveClass)).find('[role=\"tab\"]').attr({\n 'aria-selected': 'false',\n 'tabindex': -1\n });\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat($targetAnchor.attr('aria-controls'))).removeClass(\"\".concat(this.options.panelActiveClass)).attr({\n 'aria-hidden': 'true'\n });\n }\n /**\n * Collapses the active Tab.\n * @fires Tabs#collapse\n * @function\n */\n\n }, {\n key: \"_collapse\",\n value: function _collapse() {\n var $activeTab = this.$element.find(\".\".concat(this.options.linkClass, \".\").concat(this.options.linkActiveClass));\n\n if ($activeTab.length) {\n this._collapseTab($activeTab);\n /**\n * Fires when the plugin has successfully collapsed tabs.\n * @event Tabs#collapse\n */\n\n\n this.$element.trigger('collapse.zf.tabs', [$activeTab]);\n }\n }\n /**\n * Public method for selecting a content pane to display.\n * @param {jQuery | String} elem - jQuery object or string of the id of the pane to display.\n * @param {boolean} historyHandled - browser has already handled a history update\n * @function\n */\n\n }, {\n key: \"selectTab\",\n value: function selectTab(elem, historyHandled) {\n var idStr, hashIdStr;\n\n if (_typeof(elem) === 'object') {\n idStr = elem[0].id;\n } else {\n idStr = elem;\n }\n\n if (idStr.indexOf('#') < 0) {\n hashIdStr = \"#\".concat(idStr);\n } else {\n hashIdStr = idStr;\n idStr = idStr.slice(1);\n }\n\n var $target = this.$tabTitles.has(\"[href$=\\\"\".concat(hashIdStr, \"\\\"],[data-tabs-target=\\\"\").concat(idStr, \"\\\"]\")).first();\n\n this._handleTabChange($target, historyHandled);\n }\n }, {\n key: \"_setHeight\",\n value:\n /**\n * Sets the height of each panel to the height of the tallest panel.\n * If enabled in options, gets called on media query change.\n * If loading content via external source, can be called directly or with _reflow.\n * If enabled with `data-match-height=\"true\"`, tabs sets to equal height\n * @function\n * @private\n */\n function _setHeight() {\n var max = 0,\n _this = this; // Lock down the `this` value for the root tabs object\n\n\n if (!this.$tabContent) {\n return;\n }\n\n this.$tabContent.find(\".\".concat(this.options.panelClass)).css('min-height', '').each(function () {\n var panel = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n isActive = panel.hasClass(\"\".concat(_this.options.panelActiveClass)); // get the options from the parent instead of trying to get them from the child\n\n if (!isActive) {\n panel.css({\n 'visibility': 'hidden',\n 'display': 'block'\n });\n }\n\n var temp = this.getBoundingClientRect().height;\n\n if (!isActive) {\n panel.css({\n 'visibility': '',\n 'display': ''\n });\n }\n\n max = temp > max ? temp : max;\n }).css('min-height', \"\".concat(max, \"px\"));\n }\n /**\n * Destroys an instance of tabs.\n * @fires Tabs#destroyed\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n this.$element.find(\".\".concat(this.options.linkClass)).off('.zf.tabs').hide().end().find(\".\".concat(this.options.panelClass)).hide();\n\n if (this.options.matchHeight) {\n if (this._setHeightMqHandler != null) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('changed.zf.mediaquery', this._setHeightMqHandler);\n }\n }\n\n if (this.options.deepLink) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off('hashchange', this._checkDeepLink);\n }\n\n if (this.onLoadListener) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(this.onLoadListener);\n }\n }\n }]);\n\n return Tabs;\n }(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__[\"Plugin\"]);\n\n Tabs.defaults = {\n /**\n * Link the location hash to the active pane.\n * Set the location hash when the active pane changes, and open the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the tab panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n\n /**\n * If `deepLinkSmudge` is enabled, animation offset from the top for the deep link adjustment\n * @option\n * @type {number}\n * @default 0\n */\n deepLinkSmudgeOffset: 0,\n\n /**\n * If `deepLink` is enabled, update the browser history with the open tab\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false,\n\n /**\n * Allows the window to scroll to content of active pane on load.\n * Not recommended if more than one tab panel per page.\n * @option\n * @type {boolean}\n * @default false\n */\n autoFocus: false,\n\n /**\n * Allows keyboard input to 'wrap' around the tab links.\n * @option\n * @type {boolean}\n * @default true\n */\n wrapOnKeys: true,\n\n /**\n * Allows the tab content panes to match heights if set to true.\n * @option\n * @type {boolean}\n * @default false\n */\n matchHeight: false,\n\n /**\n * Allows active tabs to collapse when clicked.\n * @option\n * @type {boolean}\n * @default false\n */\n activeCollapse: false,\n\n /**\n * Class applied to `li`'s in tab link list.\n * @option\n * @type {string}\n * @default 'tabs-title'\n */\n linkClass: 'tabs-title',\n\n /**\n * Class applied to the active `li` in tab link list.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n linkActiveClass: 'is-active',\n\n /**\n * Class applied to the content containers.\n * @option\n * @type {string}\n * @default 'tabs-panel'\n */\n panelClass: 'tabs-panel',\n\n /**\n * Class applied to the active content container.\n * @option\n * @type {string}\n * @default 'is-active'\n */\n panelActiveClass: 'is-active'\n };\n /***/\n },\n\n /***/\n 18:\n /*!*****************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.tabs.js ***!\n \\*****************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.tabs.js */\n \"./js/entries/plugins/foundation.tabs.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.box\"] = factory(require(\"./foundation.core\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 21);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.box.js\":\n /*!***************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.box.js ***!\n \\***************************************************/\n\n /*! exports provided: Foundation, Box */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.box */\n \"./js/foundation.util.box.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Box\", function () {\n return _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Box = _foundation_util_box__WEBPACK_IMPORTED_MODULE_1__[\"Box\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.box.js\":\n /*!***********************************!*\\\n !*** ./js/foundation.util.box.js ***!\n \\***********************************/\n\n /*! exports provided: Box */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Box\", function () {\n return Box;\n });\n\n var Box = {\n ImNotTouchingYou: ImNotTouchingYou,\n OverlapArea: OverlapArea,\n GetDimensions: GetDimensions,\n GetExplicitOffsets: GetExplicitOffsets\n };\n /**\n * Compares the dimensions of an element to a container and determines collision events with container.\n * @function\n * @param {jQuery} element - jQuery object to test for collisions.\n * @param {jQuery} parent - jQuery object to use as bounding container.\n * @param {Boolean} lrOnly - set to true to check left and right values only.\n * @param {Boolean} tbOnly - set to true to check top and bottom values only.\n * @default if no parent object passed, detects collisions with `window`.\n * @returns {Boolean} - true if collision free, false if a collision in any direction.\n */\n\n function ImNotTouchingYou(element, parent, lrOnly, tbOnly, ignoreBottom) {\n return OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) === 0;\n }\n\n function OverlapArea(element, parent, lrOnly, tbOnly, ignoreBottom) {\n var eleDims = GetDimensions(element),\n topOver,\n bottomOver,\n leftOver,\n rightOver;\n\n if (parent) {\n var parDims = GetDimensions(parent);\n bottomOver = parDims.height + parDims.offset.top - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - parDims.offset.top;\n leftOver = eleDims.offset.left - parDims.offset.left;\n rightOver = parDims.width + parDims.offset.left - (eleDims.offset.left + eleDims.width);\n } else {\n bottomOver = eleDims.windowDims.height + eleDims.windowDims.offset.top - (eleDims.offset.top + eleDims.height);\n topOver = eleDims.offset.top - eleDims.windowDims.offset.top;\n leftOver = eleDims.offset.left - eleDims.windowDims.offset.left;\n rightOver = eleDims.windowDims.width - (eleDims.offset.left + eleDims.width);\n }\n\n bottomOver = ignoreBottom ? 0 : Math.min(bottomOver, 0);\n topOver = Math.min(topOver, 0);\n leftOver = Math.min(leftOver, 0);\n rightOver = Math.min(rightOver, 0);\n\n if (lrOnly) {\n return leftOver + rightOver;\n }\n\n if (tbOnly) {\n return topOver + bottomOver;\n } // use sum of squares b/c we care about overlap area.\n\n\n return Math.sqrt(topOver * topOver + bottomOver * bottomOver + leftOver * leftOver + rightOver * rightOver);\n }\n /**\n * Uses native methods to return an object of dimension values.\n * @function\n * @param {jQuery || HTML} element - jQuery object or DOM element for which to get the dimensions. Can be any element other that document or window.\n * @returns {Object} - nested object of integer pixel values\n * TODO - if element is window, return only those values.\n */\n\n\n function GetDimensions(elem) {\n elem = elem.length ? elem[0] : elem;\n\n if (elem === window || elem === document) {\n throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n }\n\n var rect = elem.getBoundingClientRect(),\n parRect = elem.parentNode.getBoundingClientRect(),\n winRect = document.body.getBoundingClientRect(),\n winY = window.pageYOffset,\n winX = window.pageXOffset;\n return {\n width: rect.width,\n height: rect.height,\n offset: {\n top: rect.top + winY,\n left: rect.left + winX\n },\n parentDims: {\n width: parRect.width,\n height: parRect.height,\n offset: {\n top: parRect.top + winY,\n left: parRect.left + winX\n }\n },\n windowDims: {\n width: winRect.width,\n height: winRect.height,\n offset: {\n top: winY,\n left: winX\n }\n }\n };\n }\n /**\n * Returns an object of top and left integer pixel values for dynamically rendered elements,\n * such as: Tooltip, Reveal, and Dropdown. Maintained for backwards compatibility, and where\n * you don't know alignment, but generally from\n * 6.4 forward you should use GetExplicitOffsets, as GetOffsets conflates position and alignment.\n * @function\n * @param {jQuery} element - jQuery object for the element being positioned.\n * @param {jQuery} anchor - jQuery object for the element's anchor point.\n * @param {String} position - a string relating to the desired position of the element, relative to it's anchor\n * @param {Number} vOffset - integer pixel value of desired vertical separation between anchor and element.\n * @param {Number} hOffset - integer pixel value of desired horizontal separation between anchor and element.\n * @param {Boolean} isOverflow - if a collision event is detected, sets to true to default the element to full width - any desired offset.\n * TODO alter/rewrite to work with `em` values as well/instead of pixels\n */\n\n\n function GetExplicitOffsets(element, anchor, position, alignment, vOffset, hOffset, isOverflow) {\n var $eleDims = GetDimensions(element),\n $anchorDims = anchor ? GetDimensions(anchor) : null;\n var topVal, leftVal;\n\n if ($anchorDims !== null) {\n // set position related attribute\n switch (position) {\n case 'top':\n topVal = $anchorDims.offset.top - ($eleDims.height + vOffset);\n break;\n\n case 'bottom':\n topVal = $anchorDims.offset.top + $anchorDims.height + vOffset;\n break;\n\n case 'left':\n leftVal = $anchorDims.offset.left - ($eleDims.width + hOffset);\n break;\n\n case 'right':\n leftVal = $anchorDims.offset.left + $anchorDims.width + hOffset;\n break;\n } // set alignment related attribute\n\n\n switch (position) {\n case 'top':\n case 'bottom':\n switch (alignment) {\n case 'left':\n leftVal = $anchorDims.offset.left + hOffset;\n break;\n\n case 'right':\n leftVal = $anchorDims.offset.left - $eleDims.width + $anchorDims.width - hOffset;\n break;\n\n case 'center':\n leftVal = isOverflow ? hOffset : $anchorDims.offset.left + $anchorDims.width / 2 - $eleDims.width / 2 + hOffset;\n break;\n }\n\n break;\n\n case 'right':\n case 'left':\n switch (alignment) {\n case 'bottom':\n topVal = $anchorDims.offset.top - vOffset + $anchorDims.height - $eleDims.height;\n break;\n\n case 'top':\n topVal = $anchorDims.offset.top + vOffset;\n break;\n\n case 'center':\n topVal = $anchorDims.offset.top + vOffset + $anchorDims.height / 2 - $eleDims.height / 2;\n break;\n }\n\n break;\n }\n }\n\n return {\n top: topVal,\n left: leftVal\n };\n }\n /***/\n\n },\n\n /***/\n 21:\n /*!*********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.box.js ***!\n \\*********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.box.js */\n \"./js/entries/plugins/foundation.util.box.js\");\n /***/\n }\n /******/\n\n })\n );\n});","!function (t, e) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = e(require(\"./foundation.core\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\"], e) : \"object\" == typeof exports ? exports[\"foundation.util.box\"] = e(require(\"./foundation.core\")) : (t.__FOUNDATION_EXTERNAL__ = t.__FOUNDATION_EXTERNAL__ || {}, t.__FOUNDATION_EXTERNAL__[\"foundation.util.box\"] = e(t.__FOUNDATION_EXTERNAL__[\"foundation.core\"]));\n}(window, function (o) {\n return n = {\n \"./foundation.core\": function (t, e) {\n t.exports = o;\n },\n \"./js/entries/plugins/foundation.util.box.js\": function (t, e, o) {\n \"use strict\";\n\n o.r(e);\n var n = o(\"./foundation.core\");\n o.d(e, \"Foundation\", function () {\n return n.Foundation;\n });\n var i = o(\"./js/foundation.util.box.js\");\n o.d(e, \"Box\", function () {\n return i.Box;\n }), n.Foundation.Box = i.Box;\n },\n \"./js/foundation.util.box.js\": function (t, e, o) {\n \"use strict\";\n\n o.r(e), o.d(e, \"Box\", function () {\n return n;\n });\n var n = {\n ImNotTouchingYou: function (t, e, o, n, i) {\n return 0 === f(t, e, o, n, i);\n },\n OverlapArea: f,\n GetDimensions: c,\n GetExplicitOffsets: function (t, e, o, n, i, f, r) {\n var s,\n u,\n a = c(t),\n d = e ? c(e) : null;\n\n if (null !== d) {\n switch (o) {\n case \"top\":\n s = d.offset.top - (a.height + i);\n break;\n\n case \"bottom\":\n s = d.offset.top + d.height + i;\n break;\n\n case \"left\":\n u = d.offset.left - (a.width + f);\n break;\n\n case \"right\":\n u = d.offset.left + d.width + f;\n }\n\n switch (o) {\n case \"top\":\n case \"bottom\":\n switch (n) {\n case \"left\":\n u = d.offset.left + f;\n break;\n\n case \"right\":\n u = d.offset.left - a.width + d.width - f;\n break;\n\n case \"center\":\n u = r ? f : d.offset.left + d.width / 2 - a.width / 2 + f;\n }\n\n break;\n\n case \"right\":\n case \"left\":\n switch (n) {\n case \"bottom\":\n s = d.offset.top - i + d.height - a.height;\n break;\n\n case \"top\":\n s = d.offset.top + i;\n break;\n\n case \"center\":\n s = d.offset.top + i + d.height / 2 - a.height / 2;\n }\n\n }\n }\n\n return {\n top: s,\n left: u\n };\n }\n };\n\n function f(t, e, o, n, i) {\n var f,\n r,\n s,\n t = c(t);\n return t = e ? (f = (e = c(e)).height + e.offset.top - (t.offset.top + t.height), r = t.offset.top - e.offset.top, s = t.offset.left - e.offset.left, e.width + e.offset.left - (t.offset.left + t.width)) : (f = t.windowDims.height + t.windowDims.offset.top - (t.offset.top + t.height), r = t.offset.top - t.windowDims.offset.top, s = t.offset.left - t.windowDims.offset.left, t.windowDims.width - (t.offset.left + t.width)), f = i ? 0 : Math.min(f, 0), r = Math.min(r, 0), s = Math.min(s, 0), t = Math.min(t, 0), o ? s + t : n ? r + f : Math.sqrt(r * r + f * f + s * s + t * t);\n }\n\n function c(t) {\n if ((t = t.length ? t[0] : t) === window || t === document) throw new Error(\"I'm sorry, Dave. I'm afraid I can't do that.\");\n var e = t.getBoundingClientRect(),\n o = t.parentNode.getBoundingClientRect(),\n n = document.body.getBoundingClientRect(),\n i = window.pageYOffset,\n t = window.pageXOffset;\n return {\n width: e.width,\n height: e.height,\n offset: {\n top: e.top + i,\n left: e.left + t\n },\n parentDims: {\n width: o.width,\n height: o.height,\n offset: {\n top: o.top + i,\n left: o.left + t\n }\n },\n windowDims: {\n width: n.width,\n height: n.height,\n offset: {\n top: i,\n left: t\n }\n }\n };\n }\n },\n 21: function (t, e, o) {\n t.exports = o(\"./js/entries/plugins/foundation.util.box.js\");\n }\n }, f = {}, i.m = n, i.c = f, i.d = function (t, e, o) {\n i.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: o\n });\n }, i.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, i.t = function (e, t) {\n if (1 & t && (e = i(e)), 8 & t) return e;\n if (4 & t && \"object\" == typeof e && e && e.__esModule) return e;\n var o = Object.create(null);\n if (i.r(o), Object.defineProperty(o, \"default\", {\n enumerable: !0,\n value: e\n }), 2 & t && \"string\" != typeof e) for (var n in e) i.d(o, n, function (t) {\n return e[t];\n }.bind(null, n));\n return o;\n }, i.n = function (t) {\n var e = t && t.__esModule ? function () {\n return t.default;\n } : function () {\n return t;\n };\n return i.d(e, \"a\", e), e;\n }, i.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, i.p = \"\", i(i.s = 21);\n\n function i(t) {\n if (f[t]) return f[t].exports;\n var e = f[t] = {\n i: t,\n l: !1,\n exports: {}\n };\n return n[t].call(e.exports, e, e.exports, i), e.l = !0, e.exports;\n }\n\n var n, f;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.imageLoader\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.imageLoader\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 22);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.imageLoader.js\":\n /*!***********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.imageLoader.js ***!\n \\***********************************************************/\n\n /*! exports provided: Foundation, onImagesLoaded */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.imageLoader */\n \"./js/foundation.util.imageLoader.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function () {\n return _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].onImagesLoaded = _foundation_util_imageLoader__WEBPACK_IMPORTED_MODULE_1__[\"onImagesLoaded\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.imageLoader.js\":\n /*!*******************************************!*\\\n !*** ./js/foundation.util.imageLoader.js ***!\n \\*******************************************/\n\n /*! exports provided: onImagesLoaded */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"onImagesLoaded\", function () {\n return onImagesLoaded;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /**\n * Runs a callback function when images are fully loaded.\n * @param {Object} images - Image(s) to check if loaded.\n * @param {Func} callback - Function to execute when image is fully loaded.\n */\n\n\n function onImagesLoaded(images, callback) {\n var unloaded = images.length;\n\n if (unloaded === 0) {\n callback();\n }\n\n images.each(function () {\n // Check if image is loaded\n if (this.complete && typeof this.naturalWidth !== 'undefined') {\n singleImageLoaded();\n } else {\n // If the above check failed, simulate loading on detached element.\n var image = new Image(); // Still count image as loaded if it finalizes with an error.\n\n var events = \"load.zf.images error.zf.images\";\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(image).one(events, function me() {\n // Unbind the event listeners. We're using 'one' but only one of the two events will have fired.\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off(events, me);\n singleImageLoaded();\n });\n image.src = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('src');\n }\n });\n\n function singleImageLoaded() {\n unloaded--;\n\n if (unloaded === 0) {\n callback();\n }\n }\n }\n /***/\n\n },\n\n /***/\n 22:\n /*!*****************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.imageLoader.js ***!\n \\*****************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.imageLoader.js */\n \"./js/entries/plugins/foundation.util.imageLoader.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.keyboard\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 23);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.keyboard.js\":\n /*!********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\********************************************************/\n\n /*! exports provided: Foundation, Keyboard */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.keyboard */\n \"./js/foundation.util.keyboard.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Keyboard\", function () {\n return _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Keyboard = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.keyboard.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.keyboard.js ***!\n \\****************************************/\n\n /*! exports provided: Keyboard */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Keyboard\", function () {\n return Keyboard;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /*******************************************\n * *\n * This util was created by Marius Olbertz *\n * Please thank Marius on GitHub /owlbertz *\n * or the web http://www.mariusolbertz.de/ *\n * *\n ******************************************/\n\n\n var keyCodes = {\n 9: 'TAB',\n 13: 'ENTER',\n 27: 'ESCAPE',\n 32: 'SPACE',\n 35: 'END',\n 36: 'HOME',\n 37: 'ARROW_LEFT',\n 38: 'ARROW_UP',\n 39: 'ARROW_RIGHT',\n 40: 'ARROW_DOWN'\n };\n var commands = {}; // Functions pulled out to be referenceable from internals\n\n function findFocusable($element) {\n if (!$element) {\n return false;\n }\n\n return $element.find('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]').filter(function () {\n if (!jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is(':visible') || jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('tabindex') < 0) {\n return false;\n } //only have visible elements and those that have a tabindex greater or equal 0\n\n\n return true;\n }).sort(function (a, b) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex')) {\n return 0;\n }\n\n var aTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex'), 10),\n bTabIndex = parseInt(jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex'), 10); // Undefined is treated the same as 0\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(a).attr('tabindex') === 'undefined' && bTabIndex > 0) {\n return 1;\n }\n\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default()(b).attr('tabindex') === 'undefined' && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex === 0 && bTabIndex > 0) {\n return 1;\n }\n\n if (bTabIndex === 0 && aTabIndex > 0) {\n return -1;\n }\n\n if (aTabIndex < bTabIndex) {\n return -1;\n }\n\n if (aTabIndex > bTabIndex) {\n return 1;\n }\n });\n }\n\n function parseKey(event) {\n var key = keyCodes[event.which || event.keyCode] || String.fromCharCode(event.which).toUpperCase(); // Remove un-printable characters, e.g. for `fromCharCode` calls for CTRL only events\n\n key = key.replace(/\\W+/, '');\n if (event.shiftKey) key = \"SHIFT_\".concat(key);\n if (event.ctrlKey) key = \"CTRL_\".concat(key);\n if (event.altKey) key = \"ALT_\".concat(key); // Remove trailing underscore, in case only modifiers were used (e.g. only `CTRL_ALT`)\n\n key = key.replace(/_$/, '');\n return key;\n }\n\n var Keyboard = {\n keys: getKeyCodes(keyCodes),\n\n /**\n * Parses the (keyboard) event and returns a String that represents its key\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n * @param {Event} event - the event generated by the event handler\n * @return String key - String that represents the key pressed\n */\n parseKey: parseKey,\n\n /**\n * Handles the given (keyboard) event\n * @param {Event} event - the event generated by the event handler\n * @param {String} component - Foundation component's name, e.g. Slider or Reveal\n * @param {Objects} functions - collection of functions that are to be executed\n */\n handleKey: function handleKey(event, component, functions) {\n var commandList = commands[component],\n keyCode = this.parseKey(event),\n cmds,\n command,\n fn;\n if (!commandList) return console.warn('Component not defined!'); // Ignore the event if it was already handled\n\n if (event.zfIsKeyHandled === true) return; // This component does not differentiate between ltr and rtl\n\n if (typeof commandList.ltr === 'undefined') {\n cmds = commandList; // use plain list\n } else {\n // merge ltr and rtl: if document is rtl, rtl overwrites ltr and vice versa\n if (Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"rtl\"])()) cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.ltr, commandList.rtl);else cmds = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, commandList.rtl, commandList.ltr);\n }\n\n command = cmds[keyCode];\n fn = functions[command]; // Execute the handler if found\n\n if (fn && typeof fn === 'function') {\n var returnValue = fn.apply(); // Mark the event as \"handled\" to prevent future handlings\n\n event.zfIsKeyHandled = true; // Execute function when event was handled\n\n if (functions.handled || typeof functions.handled === 'function') {\n functions.handled(returnValue);\n }\n } else {\n // Execute function when event was not handled\n if (functions.unhandled || typeof functions.unhandled === 'function') {\n functions.unhandled();\n }\n }\n },\n\n /**\n * Finds all focusable elements within the given `$element`\n * @param {jQuery} $element - jQuery object to search within\n * @return {jQuery} $focusable - all focusable elements within `$element`\n */\n findFocusable: findFocusable,\n\n /**\n * Returns the component name name\n * @param {Object} component - Foundation component, e.g. Slider or Reveal\n * @return String componentName\n */\n register: function register(componentName, cmds) {\n commands[componentName] = cmds;\n },\n // TODO9438: These references to Keyboard need to not require global. Will 'this' work in this context?\n //\n\n /**\n * Traps the focus in the given element.\n * @param {jQuery} $element jQuery object to trap the foucs into.\n */\n trapFocus: function trapFocus($element) {\n var $focusable = findFocusable($element),\n $firstFocusable = $focusable.eq(0),\n $lastFocusable = $focusable.eq(-1);\n $element.on('keydown.zf.trapfocus', function (event) {\n if (event.target === $lastFocusable[0] && parseKey(event) === 'TAB') {\n event.preventDefault();\n $firstFocusable.focus();\n } else if (event.target === $firstFocusable[0] && parseKey(event) === 'SHIFT_TAB') {\n event.preventDefault();\n $lastFocusable.focus();\n }\n });\n },\n\n /**\n * Releases the trapped focus from the given element.\n * @param {jQuery} $element jQuery object to release the focus for.\n */\n releaseFocus: function releaseFocus($element) {\n $element.off('keydown.zf.trapfocus');\n }\n };\n /*\n * Constants for easier comparing.\n * Can be used like Foundation.parseKey(event) === Foundation.keys.SPACE\n */\n\n function getKeyCodes(kcs) {\n var k = {};\n\n for (var kc in kcs) {\n if (kcs.hasOwnProperty(kc)) k[kcs[kc]] = kcs[kc];\n }\n\n return k;\n }\n /***/\n\n },\n\n /***/\n 23:\n /*!**************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.keyboard.js ***!\n \\**************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.keyboard.js */\n \"./js/entries/plugins/foundation.util.keyboard.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, t) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = t(require(\"./foundation.core\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"jquery\"], t) : \"object\" == typeof exports ? exports[\"foundation.util.keyboard\"] = t(require(\"./foundation.core\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.util.keyboard\"] = t(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.jQuery));\n}(window, function (n, r) {\n return i = {\n \"./foundation.core\": function (e, t) {\n e.exports = n;\n },\n \"./js/entries/plugins/foundation.util.keyboard.js\": function (e, t, n) {\n \"use strict\";\n\n n.r(t);\n var r = n(\"./foundation.core\");\n n.d(t, \"Foundation\", function () {\n return r.Foundation;\n });\n var o = n(\"./js/foundation.util.keyboard.js\");\n n.d(t, \"Keyboard\", function () {\n return o.Keyboard;\n }), r.Foundation.Keyboard = o.Keyboard;\n },\n \"./js/foundation.util.keyboard.js\": function (e, t, n) {\n \"use strict\";\n\n n.r(t), n.d(t, \"Keyboard\", function () {\n return f;\n });\n var t = n(\"jquery\"),\n o = n.n(t),\n i = n(\"./foundation.core\"),\n r = {\n 9: \"TAB\",\n 13: \"ENTER\",\n 27: \"ESCAPE\",\n 32: \"SPACE\",\n 35: \"END\",\n 36: \"HOME\",\n 37: \"ARROW_LEFT\",\n 38: \"ARROW_UP\",\n 39: \"ARROW_RIGHT\",\n 40: \"ARROW_DOWN\"\n },\n u = {};\n\n function a(e) {\n return !!e && e.find(\"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]\").filter(function () {\n return !(!o()(this).is(\":visible\") || o()(this).attr(\"tabindex\") < 0);\n }).sort(function (e, t) {\n if (o()(e).attr(\"tabindex\") === o()(t).attr(\"tabindex\")) return 0;\n var n = parseInt(o()(e).attr(\"tabindex\"), 10),\n r = parseInt(o()(t).attr(\"tabindex\"), 10);\n return void 0 === o()(e).attr(\"tabindex\") && 0 < r ? 1 : void 0 === o()(t).attr(\"tabindex\") && 0 < n ? -1 : 0 === n && 0 < r ? 1 : 0 === r && 0 < n || n < r ? -1 : r < n ? 1 : void 0;\n });\n }\n\n function d(e) {\n var t = (t = r[e.which || e.keyCode] || String.fromCharCode(e.which).toUpperCase()).replace(/\\W+/, \"\");\n return e.shiftKey && (t = \"SHIFT_\".concat(t)), e.ctrlKey && (t = \"CTRL_\".concat(t)), t = (t = e.altKey ? \"ALT_\".concat(t) : t).replace(/_$/, \"\");\n }\n\n var f = {\n keys: function (e) {\n var t,\n n = {};\n\n for (t in e) e.hasOwnProperty(t) && (n[e[t]] = e[t]);\n\n return n;\n }(r),\n parseKey: d,\n handleKey: function (e, t, n) {\n var r = u[t],\n t = this.parseKey(e);\n if (!r) return console.warn(\"Component not defined!\");\n !0 !== e.zfIsKeyHandled && ((t = n[(void 0 === r.ltr ? r : Object(i.rtl)() ? o.a.extend({}, r.ltr, r.rtl) : o.a.extend({}, r.rtl, r.ltr))[t]]) && \"function\" == typeof t ? (t = t.apply(), e.zfIsKeyHandled = !0, !n.handled && \"function\" != typeof n.handled || n.handled(t)) : !n.unhandled && \"function\" != typeof n.unhandled || n.unhandled());\n },\n findFocusable: a,\n register: function (e, t) {\n u[e] = t;\n },\n trapFocus: function (e) {\n var t = a(e),\n n = t.eq(0),\n r = t.eq(-1);\n e.on(\"keydown.zf.trapfocus\", function (e) {\n e.target === r[0] && \"TAB\" === d(e) ? (e.preventDefault(), n.focus()) : e.target === n[0] && \"SHIFT_TAB\" === d(e) && (e.preventDefault(), r.focus());\n });\n },\n releaseFocus: function (e) {\n e.off(\"keydown.zf.trapfocus\");\n }\n };\n },\n 23: function (e, t, n) {\n e.exports = n(\"./js/entries/plugins/foundation.util.keyboard.js\");\n },\n jquery: function (e, t) {\n e.exports = r;\n }\n }, u = {}, o.m = i, o.c = u, o.d = function (e, t, n) {\n o.o(e, t) || Object.defineProperty(e, t, {\n enumerable: !0,\n get: n\n });\n }, o.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, o.t = function (t, e) {\n if (1 & e && (t = o(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (o.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var r in t) o.d(n, r, function (e) {\n return t[e];\n }.bind(null, r));\n return n;\n }, o.n = function (e) {\n var t = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return o.d(t, \"a\", t), t;\n }, o.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, o.p = \"\", o(o.s = 23);\n\n function o(e) {\n if (u[e]) return u[e].exports;\n var t = u[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return i[e].call(t.exports, t, t.exports, o), t.l = !0, t.exports;\n }\n\n var i, u;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.mediaQuery\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.mediaQuery\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 24);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.mediaQuery.js\":\n /*!**********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\**********************************************************/\n\n /*! exports provided: Foundation, MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.mediaQuery */\n \"./js/foundation.util.mediaQuery.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery = _foundation_util_mediaQuery__WEBPACK_IMPORTED_MODULE_1__[\"MediaQuery\"];\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].MediaQuery._init();\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.mediaQuery.js\":\n /*!******************************************!*\\\n !*** ./js/foundation.util.mediaQuery.js ***!\n \\******************************************/\n\n /*! exports provided: MediaQuery */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"MediaQuery\", function () {\n return MediaQuery;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n } // Default set of media queries\n // const defaultQueries = {\n // 'default' : 'only screen',\n // landscape : 'only screen and (orientation: landscape)',\n // portrait : 'only screen and (orientation: portrait)',\n // retina : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +\n // 'only screen and (min--moz-device-pixel-ratio: 2),' +\n // 'only screen and (-o-min-device-pixel-ratio: 2/1),' +\n // 'only screen and (min-device-pixel-ratio: 2),' +\n // 'only screen and (min-resolution: 192dpi),' +\n // 'only screen and (min-resolution: 2dppx)'\n // };\n // matchMedia() polyfill - Test a CSS media type/query in JS.\n // Authors & copyright © 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. MIT license\n\n /* eslint-disable */\n\n\n window.matchMedia || (window.matchMedia = function () {\n \"use strict\"; // For browsers that support matchMedium api such as IE 9 and webkit\n\n var styleMedia = window.styleMedia || window.media; // For those that don't support matchMedium\n\n if (!styleMedia) {\n var style = document.createElement('style'),\n script = document.getElementsByTagName('script')[0],\n info = null;\n style.type = 'text/css';\n style.id = 'matchmediajs-test';\n\n if (!script) {\n document.head.appendChild(style);\n } else {\n script.parentNode.insertBefore(style, script);\n } // 'style.currentStyle' is used by IE <= 8 and 'window.getComputedStyle' for all other browsers\n\n\n info = 'getComputedStyle' in window && window.getComputedStyle(style, null) || style.currentStyle;\n styleMedia = {\n matchMedium: function matchMedium(media) {\n var text = '@media ' + media + '{ #matchmediajs-test { width: 1px; } }'; // 'style.styleSheet' is used by IE <= 8 and 'style.textContent' for all other browsers\n\n if (style.styleSheet) {\n style.styleSheet.cssText = text;\n } else {\n style.textContent = text;\n } // Test if media query is true or false\n\n\n return info.width === '1px';\n }\n };\n }\n\n return function (media) {\n return {\n matches: styleMedia.matchMedium(media || 'all'),\n media: media || 'all'\n };\n };\n }());\n /* eslint-enable */\n\n var MediaQuery = {\n queries: [],\n current: '',\n\n /**\n * Initializes the media query helper, by extracting the breakpoint list from the CSS and activating the breakpoint watcher.\n * @function\n * @private\n */\n _init: function _init() {\n // make sure the initialization is only done once when calling _init() several times\n if (this.isInitialized === true) {\n return this;\n } else {\n this.isInitialized = true;\n }\n\n var self = this;\n var $meta = jquery__WEBPACK_IMPORTED_MODULE_0___default()('meta.foundation-mq');\n\n if (!$meta.length) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('').appendTo(document.head);\n }\n\n var extractedStyles = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.foundation-mq').css('font-family');\n var namedQueries;\n namedQueries = parseStyleToObject(extractedStyles);\n self.queries = []; // reset\n\n for (var key in namedQueries) {\n if (namedQueries.hasOwnProperty(key)) {\n self.queries.push({\n name: key,\n value: \"only screen and (min-width: \".concat(namedQueries[key], \")\")\n });\n }\n }\n\n this.current = this._getCurrentSize();\n\n this._watcher();\n },\n\n /**\n * Reinitializes the media query helper.\n * Useful if your CSS breakpoint configuration has just been loaded or has changed since the initialization.\n * @function\n * @private\n */\n _reInit: function _reInit() {\n this.isInitialized = false;\n\n this._init();\n },\n\n /**\n * Checks if the screen is at least as wide as a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's smaller.\n */\n atLeast: function atLeast(size) {\n var query = this.get(size);\n\n if (query) {\n return window.matchMedia(query).matches;\n }\n\n return false;\n },\n\n /**\n * Checks if the screen is within the given breakpoint.\n * If smaller than the breakpoint of larger than its upper limit it returns false.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` otherwise.\n */\n only: function only(size) {\n return size === this._getCurrentSize();\n },\n\n /**\n * Checks if the screen is within a breakpoint or smaller.\n * @function\n * @param {String} size - Name of the breakpoint to check.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it's larger.\n */\n upTo: function upTo(size) {\n var nextSize = this.next(size); // If the next breakpoint does not match, the screen is smaller than\n // the upper limit of this breakpoint.\n\n if (nextSize) {\n return !this.atLeast(nextSize);\n } // If there is no next breakpoint, the \"size\" breakpoint does not have\n // an upper limit and the screen will always be within it or smaller.\n\n\n return true;\n },\n\n /**\n * Checks if the screen matches to a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to check, either 'small only' or 'small'. Omitting 'only' falls back to using atLeast() method.\n * @returns {Boolean} `true` if the breakpoint matches, `false` if it does not.\n */\n is: function is(size) {\n var parts = size.trim().split(' ').filter(function (p) {\n return !!p.length;\n });\n\n var _parts = _slicedToArray(parts, 2),\n bpSize = _parts[0],\n _parts$ = _parts[1],\n bpModifier = _parts$ === void 0 ? '' : _parts$; // Only the breakpont\n\n\n if (bpModifier === 'only') {\n return this.only(bpSize);\n } // At least the breakpoint (included)\n\n\n if (!bpModifier || bpModifier === 'up') {\n return this.atLeast(bpSize);\n } // Up to the breakpoint (included)\n\n\n if (bpModifier === 'down') {\n return this.upTo(bpSize);\n }\n\n throw new Error(\"\\n Invalid breakpoint passed to MediaQuery.is().\\n Expected a breakpoint name formatted like \\\" \\\", got \\\"\".concat(size, \"\\\".\\n \"));\n },\n\n /**\n * Gets the media query of a breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint to get.\n * @returns {String|null} - The media query of the breakpoint, or `null` if the breakpoint doesn't exist.\n */\n get: function get(size) {\n for (var i in this.queries) {\n if (this.queries.hasOwnProperty(i)) {\n var query = this.queries[i];\n if (size === query.name) return query.value;\n }\n }\n\n return null;\n },\n\n /**\n * Get the breakpoint following the given breakpoint.\n * @function\n * @param {String} size - Name of the breakpoint.\n * @returns {String|null} - The name of the following breakpoint, or `null` if the passed breakpoint was the last one.\n */\n next: function next(size) {\n var _this = this;\n\n var queryIndex = this.queries.findIndex(function (q) {\n return _this._getQueryName(q) === size;\n });\n\n if (queryIndex === -1) {\n throw new Error(\"\\n Unknown breakpoint \\\"\".concat(size, \"\\\" passed to MediaQuery.next().\\n Ensure it is present in your Sass \\\"$breakpoints\\\" setting.\\n \"));\n }\n\n var nextQuery = this.queries[queryIndex + 1];\n return nextQuery ? nextQuery.name : null;\n },\n\n /**\n * Returns the name of the breakpoint related to the given value.\n * @function\n * @private\n * @param {String|Object} value - Breakpoint name or query object.\n * @returns {String} Name of the breakpoint.\n */\n _getQueryName: function _getQueryName(value) {\n if (typeof value === 'string') return value;\n if (_typeof(value) === 'object') return value.name;\n throw new TypeError(\"\\n Invalid value passed to MediaQuery._getQueryName().\\n Expected a breakpoint name (String) or a breakpoint query (Object), got \\\"\".concat(value, \"\\\" (\").concat(_typeof(value), \")\\n \"));\n },\n\n /**\n * Gets the current breakpoint name by testing every breakpoint and returning the last one to match (the biggest one).\n * @function\n * @private\n * @returns {String} Name of the current breakpoint.\n */\n _getCurrentSize: function _getCurrentSize() {\n var matched;\n\n for (var i = 0; i < this.queries.length; i++) {\n var query = this.queries[i];\n\n if (window.matchMedia(query.value).matches) {\n matched = query;\n }\n }\n\n return matched && this._getQueryName(matched);\n },\n\n /**\n * Activates the breakpoint watcher, which fires an event on the window whenever the breakpoint changes.\n * @function\n * @private\n */\n _watcher: function _watcher() {\n var _this2 = this;\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('resize.zf.trigger', function () {\n var newSize = _this2._getCurrentSize(),\n currentSize = _this2.current;\n\n if (newSize !== currentSize) {\n // Change the current media query\n _this2.current = newSize; // Broadcast the media query change on the window\n\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).trigger('changed.zf.mediaquery', [newSize, currentSize]);\n }\n });\n }\n }; // Thank you: https://github.com/sindresorhus/query-string\n\n function parseStyleToObject(str) {\n var styleObject = {};\n\n if (typeof str !== 'string') {\n return styleObject;\n }\n\n str = str.trim().slice(1, -1); // browsers re-quote string style values\n\n if (!str) {\n return styleObject;\n }\n\n styleObject = str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = parts[0];\n var val = parts[1];\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = typeof val === 'undefined' ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n return styleObject;\n }\n /***/\n\n },\n\n /***/\n 24:\n /*!****************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.mediaQuery.js ***!\n \\****************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.mediaQuery.js */\n \"./js/entries/plugins/foundation.util.mediaQuery.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.motion\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 25);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.motion.js\":\n /*!******************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.motion.js ***!\n \\******************************************************/\n\n /*! exports provided: Foundation, Motion, Move */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.motion */\n \"./js/foundation.util.motion.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Motion\", function () {\n return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"];\n });\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Move\", function () {\n return _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Motion = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Motion\"];\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Move = _foundation_util_motion__WEBPACK_IMPORTED_MODULE_1__[\"Move\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.motion.js\":\n /*!**************************************!*\\\n !*** ./js/foundation.util.motion.js ***!\n \\**************************************/\n\n /*! exports provided: Move, Motion */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Move\", function () {\n return Move;\n });\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Motion\", function () {\n return Motion;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /**\n * Motion module.\n * @module foundation.motion\n */\n\n\n var initClasses = ['mui-enter', 'mui-leave'];\n var activeClasses = ['mui-enter-active', 'mui-leave-active'];\n var Motion = {\n animateIn: function animateIn(element, animation, cb) {\n animate(true, element, animation, cb);\n },\n animateOut: function animateOut(element, animation, cb) {\n animate(false, element, animation, cb);\n }\n };\n\n function Move(duration, elem, fn) {\n var anim,\n prog,\n start = null;\n\n if (duration === 0) {\n fn.apply(elem);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n return;\n }\n\n function move(ts) {\n if (!start) start = ts;\n prog = ts - start;\n fn.apply(elem);\n\n if (prog < duration) {\n anim = window.requestAnimationFrame(move, elem);\n } else {\n window.cancelAnimationFrame(anim);\n elem.trigger('finished.zf.animate', [elem]).triggerHandler('finished.zf.animate', [elem]);\n }\n }\n\n anim = window.requestAnimationFrame(move);\n }\n /**\n * Animates an element in or out using a CSS transition class.\n * @function\n * @private\n * @param {Boolean} isIn - Defines if the animation is in or out.\n * @param {Object} element - jQuery or HTML object to animate.\n * @param {String} animation - CSS class to use.\n * @param {Function} cb - Callback to run when animation is finished.\n */\n\n\n function animate(isIn, element, animation, cb) {\n element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(element).eq(0);\n if (!element.length) return;\n var initClass = isIn ? initClasses[0] : initClasses[1];\n var activeClass = isIn ? activeClasses[0] : activeClasses[1]; // Set up the animation\n\n reset();\n element.addClass(animation).css('transition', 'none');\n requestAnimationFrame(function () {\n element.addClass(initClass);\n if (isIn) element.show();\n }); // Start the animation\n\n requestAnimationFrame(function () {\n // will trigger the browser to synchronously calculate the style and layout\n // also called reflow or layout thrashing\n // see https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n element[0].offsetWidth;\n element.css('transition', '').addClass(activeClass);\n }); // Clean up the animation when it finishes\n\n element.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"transitionend\"])(element), finish); // Hides the element (for out animations), resets the element, and runs a callback\n\n function finish() {\n if (!isIn) element.hide();\n reset();\n if (cb) cb.apply(element);\n } // Resets transitions and removes motion-specific classes\n\n\n function reset() {\n element[0].style.transitionDuration = 0;\n element.removeClass(\"\".concat(initClass, \" \").concat(activeClass, \" \").concat(animation));\n }\n }\n /***/\n\n },\n\n /***/\n 25:\n /*!************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.motion.js ***!\n \\************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.motion.js */\n \"./js/entries/plugins/foundation.util.motion.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.nest\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 26);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.nest.js\":\n /*!****************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.nest.js ***!\n \\****************************************************/\n\n /*! exports provided: Foundation, Nest */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.nest */\n \"./js/foundation.util.nest.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Nest\", function () {\n return _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"];\n });\n\n _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].Nest = _foundation_util_nest__WEBPACK_IMPORTED_MODULE_1__[\"Nest\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.nest.js\":\n /*!************************************!*\\\n !*** ./js/foundation.util.nest.js ***!\n \\************************************/\n\n /*! exports provided: Nest */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Nest\", function () {\n return Nest;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n var Nest = {\n Feather: function Feather(menu) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zf';\n menu.attr('role', 'menubar');\n menu.find('a').attr({\n 'role': 'menuitem'\n });\n var items = menu.find('li').attr({\n 'role': 'none'\n }),\n subMenuClass = \"is-\".concat(type, \"-submenu\"),\n subItemClass = \"\".concat(subMenuClass, \"-item\"),\n hasSubClass = \"is-\".concat(type, \"-submenu-parent\"),\n applyAria = type !== 'accordion'; // Accordions handle their own ARIA attriutes.\n\n items.each(function () {\n var $item = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $sub = $item.children('ul');\n\n if ($sub.length) {\n $item.addClass(hasSubClass);\n\n if (applyAria) {\n $item.children('a:first').attr({\n 'aria-haspopup': true,\n 'aria-label': $item.children('a:first').text()\n }); // Note: Drilldowns behave differently in how they hide, and so need\n // additional attributes. We should look if this possibly over-generalized\n // utility (Nest) is appropriate when we rework menus in 6.4\n\n if (type === 'drilldown') {\n $item.attr({\n 'aria-expanded': false\n });\n }\n }\n\n $sub.addClass(\"submenu \".concat(subMenuClass)).attr({\n 'data-submenu': '',\n 'role': 'menubar'\n });\n\n if (type === 'drilldown') {\n $sub.attr({\n 'aria-hidden': true\n });\n }\n }\n\n if ($item.parent('[data-submenu]').length) {\n $item.addClass(\"is-submenu-item \".concat(subItemClass));\n }\n });\n return;\n },\n Burn: function Burn(menu, type) {\n var //items = menu.find('li'),\n subMenuClass = \"is-\".concat(type, \"-submenu\"),\n subItemClass = \"\".concat(subMenuClass, \"-item\"),\n hasSubClass = \"is-\".concat(type, \"-submenu-parent\");\n menu.find('>li, > li > ul, .menu, .menu > li, [data-submenu] > li').removeClass(\"\".concat(subMenuClass, \" \").concat(subItemClass, \" \").concat(hasSubClass, \" is-submenu-item submenu is-active\")).removeAttr('data-submenu').css('display', '');\n }\n };\n /***/\n },\n\n /***/\n 26:\n /*!**********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.nest.js ***!\n \\**********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.nest.js */\n \"./js/entries/plugins/foundation.util.nest.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","!function (e, n) {\n \"object\" == typeof exports && \"object\" == typeof module ? module.exports = n(require(\"./foundation.core\"), require(\"jquery\")) : \"function\" == typeof define && define.amd ? define([\"./foundation.core\", \"jquery\"], n) : \"object\" == typeof exports ? exports[\"foundation.util.nest\"] = n(require(\"./foundation.core\"), require(\"jquery\")) : (e.__FOUNDATION_EXTERNAL__ = e.__FOUNDATION_EXTERNAL__ || {}, e.__FOUNDATION_EXTERNAL__[\"foundation.util.nest\"] = n(e.__FOUNDATION_EXTERNAL__[\"foundation.core\"], e.jQuery));\n}(window, function (t, r) {\n return u = {\n \"./foundation.core\": function (e, n) {\n e.exports = t;\n },\n \"./js/entries/plugins/foundation.util.nest.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n);\n var r = t(\"./foundation.core\");\n t.d(n, \"Foundation\", function () {\n return r.Foundation;\n });\n var o = t(\"./js/foundation.util.nest.js\");\n t.d(n, \"Nest\", function () {\n return o.Nest;\n }), r.Foundation.Nest = o.Nest;\n },\n \"./js/foundation.util.nest.js\": function (e, n, t) {\n \"use strict\";\n\n t.r(n), t.d(n, \"Nest\", function () {\n return r;\n });\n var n = t(\"jquery\"),\n a = t.n(n),\n r = {\n Feather: function (e) {\n var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : \"zf\";\n e.attr(\"role\", \"menubar\"), e.find(\"a\").attr({\n role: \"menuitem\"\n });\n var e = e.find(\"li\").attr({\n role: \"none\"\n }),\n r = \"is-\".concat(t, \"-submenu\"),\n o = \"\".concat(r, \"-item\"),\n u = \"is-\".concat(t, \"-submenu-parent\"),\n i = \"accordion\" !== t;\n e.each(function () {\n var e = a()(this),\n n = e.children(\"ul\");\n n.length && (e.addClass(u), i && (e.children(\"a:first\").attr({\n \"aria-haspopup\": !0,\n \"aria-label\": e.children(\"a:first\").text()\n }), \"drilldown\" === t && e.attr({\n \"aria-expanded\": !1\n })), n.addClass(\"submenu \".concat(r)).attr({\n \"data-submenu\": \"\",\n role: \"menubar\"\n }), \"drilldown\" === t && n.attr({\n \"aria-hidden\": !0\n })), e.parent(\"[data-submenu]\").length && e.addClass(\"is-submenu-item \".concat(o));\n });\n },\n Burn: function (e, n) {\n var t = \"is-\".concat(n, \"-submenu\"),\n r = \"\".concat(t, \"-item\"),\n n = \"is-\".concat(n, \"-submenu-parent\");\n e.find(\">li, > li > ul, .menu, .menu > li, [data-submenu] > li\").removeClass(\"\".concat(t, \" \").concat(r, \" \").concat(n, \" is-submenu-item submenu is-active\")).removeAttr(\"data-submenu\").css(\"display\", \"\");\n }\n };\n },\n 26: function (e, n, t) {\n e.exports = t(\"./js/entries/plugins/foundation.util.nest.js\");\n },\n jquery: function (e, n) {\n e.exports = r;\n }\n }, i = {}, o.m = u, o.c = i, o.d = function (e, n, t) {\n o.o(e, n) || Object.defineProperty(e, n, {\n enumerable: !0,\n get: t\n });\n }, o.r = function (e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }, o.t = function (n, e) {\n if (1 & e && (n = o(n)), 8 & e) return n;\n if (4 & e && \"object\" == typeof n && n && n.__esModule) return n;\n var t = Object.create(null);\n if (o.r(t), Object.defineProperty(t, \"default\", {\n enumerable: !0,\n value: n\n }), 2 & e && \"string\" != typeof n) for (var r in n) o.d(t, r, function (e) {\n return n[e];\n }.bind(null, r));\n return t;\n }, o.n = function (e) {\n var n = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return o.d(n, \"a\", n), n;\n }, o.o = function (e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n }, o.p = \"\", o(o.s = 26);\n\n function o(e) {\n if (i[e]) return i[e].exports;\n var n = i[e] = {\n i: e,\n l: !1,\n exports: {}\n };\n return u[e].call(n.exports, n, n.exports, o), n.l = !0, n.exports;\n }\n\n var u, i;\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.touch\"] = factory(require(\"./foundation.core\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.touch\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 28);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.touch.js\":\n /*!*****************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.touch.js ***!\n \\*****************************************************/\n\n /*! exports provided: Foundation, Touch */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ../../foundation.util.touch */\n \"./js/foundation.util.touch.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Touch\", function () {\n return _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"];\n });\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_2__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_2__[\"Foundation\"];\n });\n\n _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n\n window.Foundation.Touch = _foundation_util_touch__WEBPACK_IMPORTED_MODULE_1__[\"Touch\"];\n /***/\n },\n\n /***/\n \"./js/foundation.util.touch.js\":\n /*!*************************************!*\\\n !*** ./js/foundation.util.touch.js ***!\n \\*************************************/\n\n /*! exports provided: Touch */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Touch\", function () {\n return Touch;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\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\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n } //**************************************************\n //**Work inspired by multiple jquery swipe plugins**\n //**Done by Yohai Ararat ***************************\n //**************************************************\n\n\n var Touch = {};\n var startPosX,\n startTime,\n elapsedTime,\n startEvent,\n isMoving = false,\n didMoved = false;\n\n function onTouchEnd(e) {\n this.removeEventListener('touchmove', onTouchMove);\n this.removeEventListener('touchend', onTouchEnd); // If the touch did not move, consider it as a \"tap\"\n\n if (!didMoved) {\n var tapEvent = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('tap', startEvent || e);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(tapEvent);\n }\n\n startEvent = null;\n isMoving = false;\n didMoved = false;\n }\n\n function onTouchMove(e) {\n if (true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault) {\n e.preventDefault();\n }\n\n if (isMoving) {\n var x = e.touches[0].pageX; // var y = e.touches[0].pageY;\n\n var dx = startPosX - x; // var dy = startPosY - y;\n\n var dir;\n didMoved = true;\n elapsedTime = new Date().getTime() - startTime;\n\n if (Math.abs(dx) >= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.moveThreshold && elapsedTime <= jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.timeThreshold) {\n dir = dx > 0 ? 'left' : 'right';\n } // else if(Math.abs(dy) >= $.spotSwipe.moveThreshold && elapsedTime <= $.spotSwipe.timeThreshold) {\n // dir = dy > 0 ? 'down' : 'up';\n // }\n\n\n if (dir) {\n e.preventDefault();\n onTouchEnd.apply(this, arguments);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event('swipe', Object.assign({}, e)), dir).trigger(jquery__WEBPACK_IMPORTED_MODULE_0___default.a.Event(\"swipe\".concat(dir), Object.assign({}, e)));\n }\n }\n }\n\n function onTouchStart(e) {\n if (e.touches.length === 1) {\n startPosX = e.touches[0].pageX;\n startEvent = e;\n isMoving = true;\n didMoved = false;\n startTime = new Date().getTime();\n this.addEventListener('touchmove', onTouchMove, {\n passive: true === jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe.preventDefault\n });\n this.addEventListener('touchend', onTouchEnd, false);\n }\n }\n\n function init() {\n this.addEventListener && this.addEventListener('touchstart', onTouchStart, {\n passive: true\n });\n } // function teardown() {\n // this.removeEventListener('touchstart', onTouchStart);\n // }\n\n\n var SpotSwipe = /*#__PURE__*/function () {\n function SpotSwipe() {\n _classCallCheck(this, SpotSwipe);\n\n this.version = '1.0.0';\n this.enabled = 'ontouchstart' in document.documentElement;\n this.preventDefault = false;\n this.moveThreshold = 75;\n this.timeThreshold = 200;\n\n this._init();\n }\n\n _createClass(SpotSwipe, [{\n key: \"_init\",\n value: function _init() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.swipe = {\n setup: init\n };\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special.tap = {\n setup: init\n };\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.each(['left', 'up', 'down', 'right'], function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.event.special[\"swipe\".concat(this)] = {\n setup: function setup() {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).on('swipe', jquery__WEBPACK_IMPORTED_MODULE_0___default.a.noop);\n }\n };\n });\n }\n }]);\n\n return SpotSwipe;\n }();\n /****************************************************\n * As far as I can tell, both setupSpotSwipe and *\n * setupTouchHandler should be idempotent, *\n * because they directly replace functions & *\n * values, and do not add event handlers directly. *\n ****************************************************/\n\n\n Touch.setupSpotSwipe = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe = new SpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n };\n /****************************************************\n * Method for adding pseudo drag events to elements *\n ***************************************************/\n\n\n Touch.setupTouchHandler = function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.fn.addTouch = function () {\n this.each(function (i, el) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(el).bind('touchstart touchmove touchend touchcancel', function (event) {\n //we pass the original event object because the jQuery event\n //object is normalized to w3c specs and does not provide the TouchList\n handleTouch(event);\n });\n });\n\n var handleTouch = function handleTouch(event) {\n var touches = event.changedTouches,\n first = touches[0],\n eventTypes = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n },\n type = eventTypes[event.type],\n simulatedEvent;\n\n if ('MouseEvent' in window && typeof window.MouseEvent === 'function') {\n simulatedEvent = new window.MouseEvent(type, {\n 'bubbles': true,\n 'cancelable': true,\n 'screenX': first.screenX,\n 'screenY': first.screenY,\n 'clientX': first.clientX,\n 'clientY': first.clientY\n });\n } else {\n simulatedEvent = document.createEvent('MouseEvent');\n simulatedEvent.initMouseEvent(type, true, true, window, 1, first.screenX, first.screenY, first.clientX, first.clientY, false, false, false, false, 0\n /*left*/\n , null);\n }\n\n first.target.dispatchEvent(simulatedEvent);\n };\n };\n };\n\n Touch.init = function () {\n if (typeof jquery__WEBPACK_IMPORTED_MODULE_0___default.a.spotSwipe === 'undefined') {\n Touch.setupSpotSwipe(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n Touch.setupTouchHandler(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);\n }\n };\n /***/\n\n },\n\n /***/\n 28:\n /*!***********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.touch.js ***!\n \\***********************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.touch.js */\n \"./js/entries/plugins/foundation.util.touch.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));else if (typeof define === 'function' && define.amd) define([\"./foundation.core\", \"./foundation.util.motion\", \"jquery\"], factory);else if (typeof exports === 'object') exports[\"foundation.util.triggers\"] = factory(require(\"./foundation.core\"), require(\"./foundation.util.motion\"), require(\"jquery\"));else root[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.triggers\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.motion\"], root[\"jQuery\"]);\n})(window, function (__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && typeof value === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 29);\n /******/\n }\n /************************************************************************/\n\n /******/\n ({\n /***/\n \"./foundation.core\":\n /*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n /***/\n },\n\n /***/\n \"./foundation.util.motion\":\n /*!********************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.motion\"],\"amd\":\"./foundation.util.motion\",\"commonjs\":\"./foundation.util.motion\",\"commonjs2\":\"./foundation.util.motion\"} ***!\n \\********************************************************************************************************************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;\n /***/\n },\n\n /***/\n \"./js/entries/plugins/foundation.util.triggers.js\":\n /*!********************************************************!*\\\n !*** ./js/entries/plugins/foundation.util.triggers.js ***!\n \\********************************************************/\n\n /*! exports provided: Foundation, Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! ./foundation.core */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Foundation\", function () {\n return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"];\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ../../foundation.util.triggers */\n \"./js/foundation.util.triggers.js\");\n /* harmony reexport (safe) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"];\n });\n\n _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_2__[\"Triggers\"].init(jquery__WEBPACK_IMPORTED_MODULE_1___default.a, _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]);\n /***/\n\n },\n\n /***/\n \"./js/foundation.util.triggers.js\":\n /*!****************************************!*\\\n !*** ./js/foundation.util.triggers.js ***!\n \\****************************************/\n\n /*! exports provided: Triggers */\n\n /***/\n function (module, __webpack_exports__, __webpack_require__) {\n \"use strict\";\n\n __webpack_require__.r(__webpack_exports__);\n /* harmony export (binding) */\n\n\n __webpack_require__.d(__webpack_exports__, \"Triggers\", function () {\n return Triggers;\n });\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\n /*! jquery */\n \"jquery\");\n /* harmony import */\n\n\n var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(\n /*! ./foundation.core.utils */\n \"./foundation.core\");\n /* harmony import */\n\n\n var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(\n /*! ./foundation.util.motion */\n \"./foundation.util.motion\");\n /* harmony import */\n\n\n var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var MutationObserver = function () {\n var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];\n\n for (var i = 0; i < prefixes.length; i++) {\n if (\"\".concat(prefixes[i], \"MutationObserver\") in window) {\n return window[\"\".concat(prefixes[i], \"MutationObserver\")];\n }\n }\n\n return false;\n }();\n\n var triggers = function triggers(el, type) {\n el.data(type).split(' ').forEach(function (id) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler'](\"\".concat(type, \".zf.trigger\"), [el]);\n });\n };\n\n var Triggers = {\n Listeners: {\n Basic: {},\n Global: {}\n },\n Initializers: {}\n };\n Triggers.Listeners.Basic = {\n openListener: function openListener() {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');\n },\n closeListener: function closeListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');\n }\n },\n toggleListener: function toggleListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');\n\n if (id) {\n triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');\n }\n },\n closeableListener: function closeableListener(e) {\n var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable'); // Only close the first closable element. See https://git.io/zf-7833\n\n e.stopPropagation();\n\n if (animation !== '') {\n _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__[\"Motion\"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');\n });\n } else {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');\n }\n },\n toggleFocusListener: function toggleFocusListener() {\n var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"#\".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);\n }\n }; // Elements with [data-open] will reveal a plugin that supports it when clicked.\n\n Triggers.Initializers.addOpenListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);\n $elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);\n }; // Elements with [data-close] will close a plugin that supports it when clicked.\n // If used without a value on [data-close], the event will bubble, allowing it to close a parent component.\n\n\n Triggers.Initializers.addCloseListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);\n $elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);\n }; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.\n\n\n Triggers.Initializers.addToggleListener = function ($elem) {\n $elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);\n $elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);\n }; // Elements with [data-closable] will respond to close.zf.trigger events.\n\n\n Triggers.Initializers.addCloseableListener = function ($elem) {\n $elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);\n $elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);\n }; // Elements with [data-toggle-focus] will respond to coming in and out of focus\n\n\n Triggers.Initializers.addToggleFocusListener = function ($elem) {\n $elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);\n $elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);\n }; // More Global/complex listeners and triggers\n\n\n Triggers.Listeners.Global = {\n resizeListener: function resizeListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');\n });\n } //trigger all listening elements and signal a resize event\n\n\n $nodes.attr('data-events', \"resize\");\n },\n scrollListener: function scrollListener($nodes) {\n if (!MutationObserver) {\n //fallback for IE 9\n $nodes.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');\n });\n } //trigger all listening elements and signal a scroll event\n\n\n $nodes.attr('data-events', \"scroll\");\n },\n closeMeListener: function closeMeListener(e, pluginId) {\n var plugin = e.namespace.split('.')[0];\n var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()(\"[data-\".concat(plugin, \"]\")).not(\"[data-yeti-box=\\\"\".concat(pluginId, \"\\\"]\"));\n plugins.each(function () {\n var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n\n _this.triggerHandler('close.zf.trigger', [_this]);\n });\n }\n }; // Global, parses whole document.\n\n Triggers.Initializers.addClosemeListener = function (pluginName) {\n var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),\n plugNames = ['dropdown', 'tooltip', 'reveal'];\n\n if (pluginName) {\n if (typeof pluginName === 'string') {\n plugNames.push(pluginName);\n } else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {\n plugNames = plugNames.concat(pluginName);\n } else {\n console.error('Plugin names must be strings');\n }\n }\n\n if (yetiBoxes.length) {\n var listeners = plugNames.map(function (name) {\n return \"closeme.zf.\".concat(name);\n }).join(' ');\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);\n }\n };\n\n function debounceGlobalListener(debounce, trigger, listener) {\n var timer,\n args = Array.prototype.slice.call(arguments, 3);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on(trigger, function () {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = setTimeout(function () {\n listener.apply(null, args);\n }, debounce || 10); //default time to emit scroll event\n });\n }\n\n Triggers.Initializers.addResizeListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);\n }\n };\n\n Triggers.Initializers.addScrollListener = function (debounce) {\n var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');\n\n if ($nodes.length) {\n debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);\n }\n };\n\n Triggers.Initializers.addMutationEventsListener = function ($elem) {\n if (!MutationObserver) {\n return false;\n }\n\n var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback\n\n var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {\n var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type\n\n switch (mutationRecordsList[0].type) {\n case \"attributes\":\n if ($target.attr(\"data-events\") === \"scroll\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);\n }\n\n if ($target.attr(\"data-events\") === \"resize\" && mutationRecordsList[0].attributeName === \"data-events\") {\n $target.triggerHandler('resizeme.zf.trigger', [$target]);\n }\n\n if (mutationRecordsList[0].attributeName === \"style\") {\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n }\n\n break;\n\n case \"childList\":\n $target.closest(\"[data-mutate]\").attr(\"data-events\", \"mutate\");\n $target.closest(\"[data-mutate]\").triggerHandler('mutateme.zf.trigger', [$target.closest(\"[data-mutate]\")]);\n break;\n\n default:\n return false;\n //nothing\n }\n };\n\n if ($nodes.length) {\n //for each element that needs to listen for resizing, scrolling, or mutation add a single observer\n for (var i = 0; i <= $nodes.length - 1; i++) {\n var elementObserver = new MutationObserver(listeningElementsMutation);\n elementObserver.observe($nodes[i], {\n attributes: true,\n childList: true,\n characterData: false,\n subtree: true,\n attributeFilter: [\"data-events\", \"style\"]\n });\n }\n }\n };\n\n Triggers.Initializers.addSimpleListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addOpenListener($document);\n Triggers.Initializers.addCloseListener($document);\n Triggers.Initializers.addToggleListener($document);\n Triggers.Initializers.addCloseableListener($document);\n Triggers.Initializers.addToggleFocusListener($document);\n };\n\n Triggers.Initializers.addGlobalListeners = function () {\n var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);\n Triggers.Initializers.addMutationEventsListener($document);\n Triggers.Initializers.addResizeListener(250);\n Triggers.Initializers.addScrollListener();\n Triggers.Initializers.addClosemeListener();\n };\n\n Triggers.init = function (__, Foundation) {\n Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__[\"onLoad\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(window), function () {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized !== true) {\n Triggers.Initializers.addSimpleListeners();\n Triggers.Initializers.addGlobalListeners();\n jquery__WEBPACK_IMPORTED_MODULE_0___default.a.triggersInitialized = true;\n }\n });\n\n if (Foundation) {\n Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.\n\n Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;\n }\n };\n /***/\n\n },\n\n /***/\n 29:\n /*!**************************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.util.triggers.js ***!\n \\**************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports, __webpack_require__) {\n module.exports = __webpack_require__(\n /*! /Users/joeworkman/Development/foundation-sites/js/entries/plugins/foundation.util.triggers.js */\n \"./js/entries/plugins/foundation.util.triggers.js\");\n /***/\n },\n\n /***/\n \"jquery\":\n /*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n\n /*! no static exports found */\n\n /***/\n function (module, exports) {\n module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n /***/\n }\n /******/\n\n })\n );\n});","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n\nvar undefined;\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError; // eslint-disable-next-line consistent-return\n\nvar getEvalledConstructor = function (expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n } catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nif ($gOPD) {\n try {\n $gOPD({}, '');\n } catch (e) {\n $gOPD = null; // this is IE 8, which has a broken gOPD\n }\n}\n\nvar throwTypeError = function () {\n throw new $TypeError();\n};\n\nvar ThrowTypeError = $gOPD ? function () {\n try {\n // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n arguments.callee; // IE 8 does not throw here\n\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n return $gOPD(arguments, 'callee').get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n}() : throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n '%Array%': Array,\n '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '%AsyncFromSyncIteratorPrototype%': undefined,\n '%AsyncFunction%': needsEval,\n '%AsyncGenerator%': needsEval,\n '%AsyncGeneratorFunction%': needsEval,\n '%AsyncIteratorPrototype%': needsEval,\n '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n '%Boolean%': Boolean,\n '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '%Date%': Date,\n '%decodeURI%': decodeURI,\n '%decodeURIComponent%': decodeURIComponent,\n '%encodeURI%': encodeURI,\n '%encodeURIComponent%': encodeURIComponent,\n '%Error%': Error,\n '%eval%': eval,\n // eslint-disable-line no-eval\n '%EvalError%': EvalError,\n '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n '%Function%': $Function,\n '%GeneratorFunction%': needsEval,\n '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '%isFinite%': isFinite,\n '%isNaN%': isNaN,\n '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n '%Map%': typeof Map === 'undefined' ? undefined : Map,\n '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '%Math%': Math,\n '%Number%': Number,\n '%Object%': Object,\n '%parseFloat%': parseFloat,\n '%parseInt%': parseInt,\n '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '%RangeError%': RangeError,\n '%ReferenceError%': ReferenceError,\n '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '%RegExp%': RegExp,\n '%Set%': typeof Set === 'undefined' ? undefined : Set,\n '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '%String%': String,\n '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '%Symbol%': hasSymbols ? Symbol : undefined,\n '%SyntaxError%': $SyntaxError,\n '%ThrowTypeError%': ThrowTypeError,\n '%TypedArray%': TypedArray,\n '%TypeError%': $TypeError,\n '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '%URIError%': URIError,\n '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n var value;\n\n if (name === '%AsyncFunction%') {\n value = getEvalledConstructor('async function () {}');\n } else if (name === '%GeneratorFunction%') {\n value = getEvalledConstructor('function* () {}');\n } else if (name === '%AsyncGeneratorFunction%') {\n value = getEvalledConstructor('async function* () {}');\n } else if (name === '%AsyncGenerator%') {\n var fn = doEval('%AsyncGeneratorFunction%');\n\n if (fn) {\n value = fn.prototype;\n }\n } else if (name === '%AsyncIteratorPrototype%') {\n var gen = doEval('%AsyncGenerator%');\n\n if (gen) {\n value = getProto(gen.prototype);\n }\n }\n\n INTRINSICS[name] = value;\n return value;\n};\n\nvar LEGACY_ALIASES = {\n '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n '%ArrayPrototype%': ['Array', 'prototype'],\n '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n '%BooleanPrototype%': ['Boolean', 'prototype'],\n '%DataViewPrototype%': ['DataView', 'prototype'],\n '%DatePrototype%': ['Date', 'prototype'],\n '%ErrorPrototype%': ['Error', 'prototype'],\n '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n '%FunctionPrototype%': ['Function', 'prototype'],\n '%Generator%': ['GeneratorFunction', 'prototype'],\n '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n '%JSONParse%': ['JSON', 'parse'],\n '%JSONStringify%': ['JSON', 'stringify'],\n '%MapPrototype%': ['Map', 'prototype'],\n '%NumberPrototype%': ['Number', 'prototype'],\n '%ObjectPrototype%': ['Object', 'prototype'],\n '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n '%PromisePrototype%': ['Promise', 'prototype'],\n '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n '%Promise_all%': ['Promise', 'all'],\n '%Promise_reject%': ['Promise', 'reject'],\n '%Promise_resolve%': ['Promise', 'resolve'],\n '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n '%RegExpPrototype%': ['RegExp', 'prototype'],\n '%SetPrototype%': ['Set', 'prototype'],\n '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n '%StringPrototype%': ['String', 'prototype'],\n '%SymbolPrototype%': ['Symbol', 'prototype'],\n '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n '%URIErrorPrototype%': ['URIError', 'prototype'],\n '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\n\nvar hasOwn = require('has');\n\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\n\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\n/** Used to match backslashes in property paths. */\n\nvar stringToPath = function stringToPath(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n\n if (first === '%' && last !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n } else if (last === '%' && first !== '%') {\n throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n }\n\n var result = [];\n $replace(string, rePropName, function (match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n });\n return result;\n};\n/* end adaptation */\n\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n var intrinsicName = name;\n var alias;\n\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = '%' + alias[0] + '%';\n }\n\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n\n if (typeof value === 'undefined' && !allowMissing) {\n throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return {\n alias: alias,\n name: intrinsicName,\n value: value\n };\n }\n\n throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (typeof name !== 'string' || name.length === 0) {\n throw new $TypeError('intrinsic name must be a non-empty string');\n }\n\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n if ($exec(/^%?[^%]*%?$/g, name) === null) {\n throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n }\n\n var parts = stringToPath(name);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n\n if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n throw new $SyntaxError('property names with quotes must have matching quotes');\n }\n\n if (part === 'constructor' || !isOwn) {\n skipFurtherCaching = true;\n }\n\n intrinsicBaseName += '.' + part;\n intrinsicRealName = '%' + intrinsicBaseName + '%';\n\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n }\n\n return void undefined;\n }\n\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc; // By convention, when a data property is converted to an accessor\n // property to emulate a data property that does not suffer from\n // the override mistake, that accessor's getter is marked with\n // an `originalValue` property. Here, when we detect this, we\n // uphold the illusion by pretending to see that original data\n // property, i.e., returning the value rather than the getter\n // itself.\n\n if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n\n return value;\n};","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n if ($defineProperty) {\n try {\n $defineProperty({}, 'a', {\n value: 1\n });\n return true;\n } catch (e) {\n // IE 8 has a broken defineProperty\n return false;\n }\n }\n\n return false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n // node v0.6 has a bug where array lengths can be Set but not Defined\n if (!hasPropertyDescriptors()) {\n return null;\n }\n\n try {\n return $defineProperty([], 'length', {\n value: 1\n }).length !== 1;\n } catch (e) {\n // In Firefox 4-22, defining length on an array throws an exception.\n return true;\n }\n};\n\nmodule.exports = hasPropertyDescriptors;","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\n\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== 'function') {\n return false;\n }\n\n if (typeof Symbol !== 'function') {\n return false;\n }\n\n if (typeof origSymbol('foo') !== 'symbol') {\n return false;\n }\n\n if (typeof Symbol('bar') !== 'symbol') {\n return false;\n }\n\n return hasSymbolSham();\n};","'use strict';\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\n\nmodule.exports = function hasSymbols() {\n if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n return false;\n }\n\n if (typeof Symbol.iterator === 'symbol') {\n return true;\n }\n\n var obj = {};\n var sym = Symbol('test');\n var symObj = Object(sym);\n\n if (typeof sym === 'string') {\n return false;\n }\n\n if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n return false;\n }\n\n if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n return false;\n } // temp disabled per https://github.com/ljharb/object.assign/issues/17\n // if (sym instanceof Symbol) { return false; }\n // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n // if (!(symObj instanceof Symbol)) { return false; }\n // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\n var symVal = 42;\n obj[sym] = symVal;\n\n for (sym in obj) {\n return false;\n } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\n\n if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n\n var syms = Object.getOwnPropertySymbols(obj);\n\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n\n if (typeof Object.getOwnPropertyDescriptor === 'function') {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n\n return true;\n};","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function () {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\n\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n try {\n badArrayLike = Object.defineProperty({}, 'length', {\n get: function () {\n throw isCallableMarker;\n }\n });\n isCallableMarker = {}; // eslint-disable-next-line no-throw-literal\n\n reflectApply(function () {\n throw 42;\n }, null, badArrayLike);\n } catch (_) {\n if (_ !== isCallableMarker) {\n reflectApply = null;\n }\n }\n} else {\n reflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\n\nvar isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false; // not a function\n }\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\n/* globals document: false */\n\nvar documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {};\nmodule.exports = reflectApply ? function isCallable(value) {\n if (value === documentDotAll) {\n return true;\n }\n\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && typeof value !== 'object') {\n return false;\n }\n\n if (typeof value === 'function' && !value.prototype) {\n return true;\n }\n\n try {\n reflectApply(value, null, badArrayLike);\n } catch (e) {\n if (e !== isCallableMarker) {\n return false;\n }\n }\n\n return !isES6ClassFn(value);\n} : function isCallable(value) {\n if (value === documentDotAll) {\n return true;\n }\n\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && typeof value !== 'object') {\n return false;\n }\n\n if (typeof value === 'function' && !value.prototype) {\n return true;\n }\n\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n\n if (isES6ClassFn(value)) {\n return false;\n }\n\n var strClass = toStr.call(value);\n return strClass === fnClass || strClass === genClass;\n};","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar getProto = Object.getPrototypeOf;\n\nvar getGeneratorFunc = function () {\n // eslint-disable-line consistent-return\n if (!hasToStringTag) {\n return false;\n }\n\n try {\n return Function('return function*() {}')();\n } catch (e) {}\n};\n\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n if (typeof fn !== 'function') {\n return false;\n }\n\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === '[object GeneratorFunction]';\n }\n\n if (!getProto) {\n return false;\n }\n\n if (typeof GeneratorFunction === 'undefined') {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n\n return getProto(fn) === GeneratorFunction;\n};","'use strict';\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n return value !== value;\n};","'use strict';\n\nvar callBind = require('call-bind');\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = polyfill;","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n if (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n return Number.isNaN;\n }\n\n return implementation;\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar getPolyfill = require('./polyfill');\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\n\nmodule.exports = function shimNumberIsNaN() {\n var polyfill = getPolyfill();\n define(Number, {\n isNaN: polyfill\n }, {\n isNaN: function testIsNaN() {\n return Number.isNaN !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nvar forEach = require('for-each');\n\nvar availableTypedArrays = require('available-typed-arrays');\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n\n return -1;\n};\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\n\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\n\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nif (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function (typedArray) {\n var arr = new g[typedArray]();\n\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n\n toStrTags[typedArray] = descriptor.get;\n }\n });\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n var anyTrue = false;\n forEach(toStrTags, function (getter, typedArray) {\n if (!anyTrue) {\n try {\n anyTrue = getter.call(value) === typedArray;\n } catch (e) {\n /**/\n }\n }\n });\n return anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n if (!hasToStringTag || !(Symbol.toStringTag in value)) {\n var tag = $slice($toString(value), 8, -1);\n return $indexOf(typedArrays, tag) > -1;\n }\n\n if (!gOPD) {\n return false;\n }\n\n return tryTypedArrays(value);\n};","/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if (typeof module === \"object\" && typeof module.exports === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function (selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function () {\n return slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function (num) {\n // Return all the elements in a clean array\n if (num == null) {\n return slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function (elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function (callback) {\n return jQuery.each(this, callback);\n },\n map: function (callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function () {\n return this.pushStack(slice.apply(this, arguments));\n },\n first: function () {\n return this.eq(0);\n },\n last: function () {\n return this.eq(-1);\n },\n even: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function () {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function (i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function () {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (typeof target !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function (msg) {\n throw new Error(msg);\n },\n noop: function () {},\n isPlainObject: function (obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function (obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function (code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function (obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function (arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function (elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function (first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function (elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function (elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function (a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function (list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function (escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function (ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function () {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function (match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function (match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function (match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function (nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function (className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function (name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function (type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function (pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function (elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function (elem) {\n return elem === docElem;\n },\n \"focus\": function (elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function (elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function (elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function (elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function (elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function (elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function (elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function (elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function (seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function (elem, dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var siblings = function (n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function (selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function (selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function (selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function (selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function (target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function (selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function (elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function (selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function (selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function (elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function (elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function (elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function (elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function (elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function (elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function (elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function (elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function (elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function (elem) {\n return siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function (elem) {\n return siblings(elem.firstChild);\n },\n contents: function (elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n fired,\n // Flag to prevent firing\n locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function () {\n // Enforce single-firing\n locked = locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function () {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function () {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function (fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function () {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function () {\n locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function () {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function () {\n locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function () {\n return !!locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function (context, args) {\n if (!locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function () {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function () {\n return !!fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function (func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function (fn) {\n return promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n () {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function (onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function () {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n typeof returned === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function (obj) {\n return obj != null ? jQuery.extend(obj, promise) : promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n promise.promise(deferred); // Call given func if any\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function (singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function (i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function (wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function (elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function (owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function (owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function (owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function (owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function (owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function (owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function (owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function (elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function (elem, name, data) {\n return dataUser.access(elem, name, data);\n },\n removeData: function (elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function (elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function (elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function (key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (typeof key === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function (key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function (elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function (elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function () {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function (elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function (type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function (type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function (type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function (type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function () {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function (elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function (elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function () {\n return showHide(this, true);\n },\n hide: function () {\n return showHide(this);\n },\n toggle: function (state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (typeof types === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function (event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function (elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function (elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function (nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function (event, handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function (name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function (value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function (originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function (data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function (event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function (event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function (event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function () {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function () {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function () {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function (event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function () {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function () {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function (event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn);\n },\n one: function (types, selector, data, fn) {\n return on(this, types, selector, data, fn, 1);\n },\n off: function (types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (typeof types === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function (html) {\n return html;\n },\n clone: function (elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function (elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function (selector) {\n return remove(this, selector, true);\n },\n remove: function (selector) {\n return remove(this, selector);\n },\n text: function (value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function () {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function () {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function () {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function (dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function (value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function () {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function (elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function (elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function () {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function () {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function () {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function () {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function () {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function () {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function () {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function (elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function (elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = typeof value; // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function (elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function (elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function (elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function (value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function (name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function (elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function () {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function (percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function (tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function (tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function (tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function (p) {\n return p;\n },\n swing: function (p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function () {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function (prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function (gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function (props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function (callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function (speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function (prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function () {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function (type, clearQueue, gotoEnd) {\n var stopQueue = function (hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function (type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function (name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function (name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function (elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function (elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function (elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function (name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function (name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function (elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function (elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function (elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function (value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function (value, stateVal) {\n var type = typeof value,\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function (selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function (value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function (elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function (elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function (elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function (elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function (e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function (event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function (type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function (type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function (type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function (event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function () {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function () {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function (key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function () {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function () {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\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\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 (#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; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\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\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\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); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\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\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\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\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\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\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 } // Check to see if we have a response for the expected dataType\n\n\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\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\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(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // 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]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\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\n return {\n state: \"success\",\n data: response\n };\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 /*\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 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 ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // 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 } // Force options to be an object\n\n\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\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\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\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function (type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function (map) {\n var code;\n\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\n return this;\n },\n // Cancel the request\n abort: function (statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // 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\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\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 } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\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 (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // 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\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // 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 } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\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[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\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 } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\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 } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\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\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // 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\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(statusCode);\n statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\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 } // The url can be an options object (which then must have .url)\n\n\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\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function () {}\n },\n dataFilter: function (response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function (html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function (html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function (html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function (selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function (headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n callback = function (type) {\n return function () {\n if (callback) {\n callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = callback();\n errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n callback = callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (callback) {\n throw e;\n }\n }\n },\n abort: function () {\n if (callback) {\n callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\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 }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\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(\"