-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts.map
More file actions
1 lines (1 loc) · 609 KB
/
scripts.map
File metadata and controls
1 lines (1 loc) · 609 KB
1
{"version":3,"sources":["webpack:///D:/Duivan/HOME/Univ-Proj/general/bootstrap/dist/js/bootstrap.js","webpack:///D:/Duivan/HOME/Univ-Proj/general/jquery/dist/jquery.js","webpack:///D:/Duivan/HOME/Univ-Proj/general/tether/dist/js/tether.js","webpack:///D:/Duivan/HOME/Univ-Proj/~/script-loader/addScript.js","webpack:///D:/Duivan/HOME/Univ-Proj/general/bootstrap/dist/js/bootstrap.js?40a9","webpack:///D:/Duivan/HOME/Univ-Proj/general/jquery/dist/jquery.js?88d0","webpack:///D:/Duivan/HOME/Univ-Proj/general/tether/dist/js/tether.js?0def"],"names":[],"mappings":"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","file":"scripts.bundle.js","sourcesContent":["module.exports = \"/*!\\r\\n * Bootstrap v4.0.0-alpha.4 (http://getbootstrap.com)\\r\\n * Copyright 2011-2016 [object Object]\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n */\\r\\n\\r\\nif (typeof jQuery === 'undefined') {\\r\\n throw new Error('Bootstrap\\\\'s JavaScript requires jQuery')\\r\\n}\\r\\n\\r\\n+function ($) {\\r\\n var version = $.fn.jquery.split(' ')[0].split('.')\\r\\n if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] >= 4)) {\\r\\n throw new Error('Bootstrap\\\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\\r\\n }\\r\\n}(jQuery);\\r\\n\\r\\n\\r\\n+function ($) {\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): util.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\\r\\n\\r\\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\\r\\n\\r\\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\\r\\n\\r\\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\\r\\n\\r\\nvar Util = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Private TransitionEnd Helpers\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var transition = false;\\r\\n\\r\\n var MAX_UID = 1000000;\\r\\n\\r\\n var TransitionEndEvent = {\\r\\n WebkitTransition: 'webkitTransitionEnd',\\r\\n MozTransition: 'transitionend',\\r\\n OTransition: 'oTransitionEnd otransitionend',\\r\\n transition: 'transitionend'\\r\\n };\\r\\n\\r\\n // shoutout AngusCroll (https://goo.gl/pxwQGp)\\r\\n function toType(obj) {\\r\\n return ({}).toString.call(obj).match(/\\\\s([a-zA-Z]+)/)[1].toLowerCase();\\r\\n }\\r\\n\\r\\n function isElement(obj) {\\r\\n return (obj[0] || obj).nodeType;\\r\\n }\\r\\n\\r\\n function getSpecialTransitionEndEvent() {\\r\\n return {\\r\\n bindType: transition.end,\\r\\n delegateType: transition.end,\\r\\n handle: function handle(event) {\\r\\n if ($(event.target).is(this)) {\\r\\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\\r\\n }\\r\\n return undefined;\\r\\n }\\r\\n };\\r\\n }\\r\\n\\r\\n function transitionEndTest() {\\r\\n if (window.QUnit) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n var el = document.createElement('bootstrap');\\r\\n\\r\\n for (var _name in TransitionEndEvent) {\\r\\n if (el.style[_name] !== undefined) {\\r\\n return { end: TransitionEndEvent[_name] };\\r\\n }\\r\\n }\\r\\n\\r\\n return false;\\r\\n }\\r\\n\\r\\n function transitionEndEmulator(duration) {\\r\\n var _this = this;\\r\\n\\r\\n var called = false;\\r\\n\\r\\n $(this).one(Util.TRANSITION_END, function () {\\r\\n called = true;\\r\\n });\\r\\n\\r\\n setTimeout(function () {\\r\\n if (!called) {\\r\\n Util.triggerTransitionEnd(_this);\\r\\n }\\r\\n }, duration);\\r\\n\\r\\n return this;\\r\\n }\\r\\n\\r\\n function setTransitionEndSupport() {\\r\\n transition = transitionEndTest();\\r\\n\\r\\n $.fn.emulateTransitionEnd = transitionEndEmulator;\\r\\n\\r\\n if (Util.supportsTransitionEnd()) {\\r\\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\\r\\n }\\r\\n }\\r\\n\\r\\n /**\\r\\n * --------------------------------------------------------------------------\\r\\n * Public Util Api\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Util = {\\r\\n\\r\\n TRANSITION_END: 'bsTransitionEnd',\\r\\n\\r\\n getUID: function getUID(prefix) {\\r\\n do {\\r\\n /* eslint-disable no-bitwise */\\r\\n prefix += ~ ~(Math.random() * MAX_UID); // \\\"~~\\\" acts like a faster Math.floor() here\\r\\n /* eslint-enable no-bitwise */\\r\\n } while (document.getElementById(prefix));\\r\\n return prefix;\\r\\n },\\r\\n\\r\\n getSelectorFromElement: function getSelectorFromElement(element) {\\r\\n var selector = element.getAttribute('data-target');\\r\\n\\r\\n if (!selector) {\\r\\n selector = element.getAttribute('href') || '';\\r\\n selector = /^#[a-z]/i.test(selector) ? selector : null;\\r\\n }\\r\\n\\r\\n return selector;\\r\\n },\\r\\n\\r\\n reflow: function reflow(element) {\\r\\n new Function('bs', 'return bs')(element.offsetHeight);\\r\\n },\\r\\n\\r\\n triggerTransitionEnd: function triggerTransitionEnd(element) {\\r\\n $(element).trigger(transition.end);\\r\\n },\\r\\n\\r\\n supportsTransitionEnd: function supportsTransitionEnd() {\\r\\n return Boolean(transition);\\r\\n },\\r\\n\\r\\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\\r\\n for (var property in configTypes) {\\r\\n if (configTypes.hasOwnProperty(property)) {\\r\\n var expectedTypes = configTypes[property];\\r\\n var value = config[property];\\r\\n var valueType = undefined;\\r\\n\\r\\n if (value && isElement(value)) {\\r\\n valueType = 'element';\\r\\n } else {\\r\\n valueType = toType(value);\\r\\n }\\r\\n\\r\\n if (!new RegExp(expectedTypes).test(valueType)) {\\r\\n throw new Error(componentName.toUpperCase() + ': ' + ('Option \\\"' + property + '\\\" provided type \\\"' + valueType + '\\\" ') + ('but expected type \\\"' + expectedTypes + '\\\".'));\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n };\\r\\n\\r\\n setTransitionEndSupport();\\r\\n\\r\\n return Util;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): alert.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Alert = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'alert';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.alert';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 150;\\r\\n\\r\\n var Selector = {\\r\\n DISMISS: '[data-dismiss=\\\"alert\\\"]'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n CLOSE: 'close' + EVENT_KEY,\\r\\n CLOSED: 'closed' + EVENT_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n ALERT: 'alert',\\r\\n FADE: 'fade',\\r\\n IN: 'in'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Alert = (function () {\\r\\n function Alert(element) {\\r\\n _classCallCheck(this, Alert);\\r\\n\\r\\n this._element = element;\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Alert, [{\\r\\n key: 'close',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function close(element) {\\r\\n element = element || this._element;\\r\\n\\r\\n var rootElement = this._getRootElement(element);\\r\\n var customEvent = this._triggerCloseEvent(rootElement);\\r\\n\\r\\n if (customEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n this._removeElement(rootElement);\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n this._element = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getRootElement',\\r\\n value: function _getRootElement(element) {\\r\\n var selector = Util.getSelectorFromElement(element);\\r\\n var parent = false;\\r\\n\\r\\n if (selector) {\\r\\n parent = $(selector)[0];\\r\\n }\\r\\n\\r\\n if (!parent) {\\r\\n parent = $(element).closest('.' + ClassName.ALERT)[0];\\r\\n }\\r\\n\\r\\n return parent;\\r\\n }\\r\\n }, {\\r\\n key: '_triggerCloseEvent',\\r\\n value: function _triggerCloseEvent(element) {\\r\\n var closeEvent = $.Event(Event.CLOSE);\\r\\n\\r\\n $(element).trigger(closeEvent);\\r\\n return closeEvent;\\r\\n }\\r\\n }, {\\r\\n key: '_removeElement',\\r\\n value: function _removeElement(element) {\\r\\n $(element).removeClass(ClassName.IN);\\r\\n\\r\\n if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {\\r\\n this._destroyElement(element);\\r\\n return;\\r\\n }\\r\\n\\r\\n $(element).one(Util.TRANSITION_END, $.proxy(this._destroyElement, this, element)).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n }\\r\\n }, {\\r\\n key: '_destroyElement',\\r\\n value: function _destroyElement(element) {\\r\\n $(element).detach().trigger(Event.CLOSED).remove();\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var $element = $(this);\\r\\n var data = $element.data(DATA_KEY);\\r\\n\\r\\n if (!data) {\\r\\n data = new Alert(this);\\r\\n $element.data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (config === 'close') {\\r\\n data[config](this);\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_handleDismiss',\\r\\n value: function _handleDismiss(alertInstance) {\\r\\n return function (event) {\\r\\n if (event) {\\r\\n event.preventDefault();\\r\\n }\\r\\n\\r\\n alertInstance.close(this);\\r\\n };\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Alert;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Alert._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Alert;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Alert._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Alert;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): button.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Button = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'button';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.button';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n\\r\\n var ClassName = {\\r\\n ACTIVE: 'active',\\r\\n BUTTON: 'btn',\\r\\n FOCUS: 'focus'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n DATA_TOGGLE_CARROT: '[data-toggle^=\\\"button\\\"]',\\r\\n DATA_TOGGLE: '[data-toggle=\\\"buttons\\\"]',\\r\\n INPUT: 'input',\\r\\n ACTIVE: '.active',\\r\\n BUTTON: '.btn'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,\\r\\n FOCUS_BLUR_DATA_API: 'focus' + EVENT_KEY + DATA_API_KEY + ' ' + ('blur' + EVENT_KEY + DATA_API_KEY)\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Button = (function () {\\r\\n function Button(element) {\\r\\n _classCallCheck(this, Button);\\r\\n\\r\\n this._element = element;\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Button, [{\\r\\n key: 'toggle',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function toggle() {\\r\\n var triggerChangeEvent = true;\\r\\n var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];\\r\\n\\r\\n if (rootElement) {\\r\\n var input = $(this._element).find(Selector.INPUT)[0];\\r\\n\\r\\n if (input) {\\r\\n if (input.type === 'radio') {\\r\\n if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {\\r\\n triggerChangeEvent = false;\\r\\n } else {\\r\\n var activeElement = $(rootElement).find(Selector.ACTIVE)[0];\\r\\n\\r\\n if (activeElement) {\\r\\n $(activeElement).removeClass(ClassName.ACTIVE);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n if (triggerChangeEvent) {\\r\\n input.checked = !$(this._element).hasClass(ClassName.ACTIVE);\\r\\n $(this._element).trigger('change');\\r\\n }\\r\\n\\r\\n input.focus();\\r\\n }\\r\\n } else {\\r\\n this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));\\r\\n }\\r\\n\\r\\n if (triggerChangeEvent) {\\r\\n $(this._element).toggleClass(ClassName.ACTIVE);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n this._element = null;\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n\\r\\n if (!data) {\\r\\n data = new Button(this);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (config === 'toggle') {\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Button;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\\r\\n event.preventDefault();\\r\\n\\r\\n var button = event.target;\\r\\n\\r\\n if (!$(button).hasClass(ClassName.BUTTON)) {\\r\\n button = $(button).closest(Selector.BUTTON);\\r\\n }\\r\\n\\r\\n Button._jQueryInterface.call($(button), 'toggle');\\r\\n }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {\\r\\n var button = $(event.target).closest(Selector.BUTTON)[0];\\r\\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Button._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Button;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Button._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Button;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): carousel.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Carousel = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'carousel';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.carousel';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 600;\\r\\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\\r\\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\\r\\n\\r\\n var Default = {\\r\\n interval: 5000,\\r\\n keyboard: true,\\r\\n slide: false,\\r\\n pause: 'hover',\\r\\n wrap: true\\r\\n };\\r\\n\\r\\n var DefaultType = {\\r\\n interval: '(number|boolean)',\\r\\n keyboard: 'boolean',\\r\\n slide: '(boolean|string)',\\r\\n pause: '(string|boolean)',\\r\\n wrap: 'boolean'\\r\\n };\\r\\n\\r\\n var Direction = {\\r\\n NEXT: 'next',\\r\\n PREVIOUS: 'prev'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n SLIDE: 'slide' + EVENT_KEY,\\r\\n SLID: 'slid' + EVENT_KEY,\\r\\n KEYDOWN: 'keydown' + EVENT_KEY,\\r\\n MOUSEENTER: 'mouseenter' + EVENT_KEY,\\r\\n MOUSELEAVE: 'mouseleave' + EVENT_KEY,\\r\\n LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n CAROUSEL: 'carousel',\\r\\n ACTIVE: 'active',\\r\\n SLIDE: 'slide',\\r\\n RIGHT: 'right',\\r\\n LEFT: 'left',\\r\\n ITEM: 'carousel-item'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n ACTIVE: '.active',\\r\\n ACTIVE_ITEM: '.active.carousel-item',\\r\\n ITEM: '.carousel-item',\\r\\n NEXT_PREV: '.next, .prev',\\r\\n INDICATORS: '.carousel-indicators',\\r\\n DATA_SLIDE: '[data-slide], [data-slide-to]',\\r\\n DATA_RIDE: '[data-ride=\\\"carousel\\\"]'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Carousel = (function () {\\r\\n function Carousel(element, config) {\\r\\n _classCallCheck(this, Carousel);\\r\\n\\r\\n this._items = null;\\r\\n this._interval = null;\\r\\n this._activeElement = null;\\r\\n\\r\\n this._isPaused = false;\\r\\n this._isSliding = false;\\r\\n\\r\\n this._config = this._getConfig(config);\\r\\n this._element = $(element)[0];\\r\\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];\\r\\n\\r\\n this._addEventListeners();\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Carousel, [{\\r\\n key: 'next',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function next() {\\r\\n if (!this._isSliding) {\\r\\n this._slide(Direction.NEXT);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'nextWhenVisible',\\r\\n value: function nextWhenVisible() {\\r\\n // Don't call next when the page isn't visible\\r\\n if (!document.hidden) {\\r\\n this.next();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'prev',\\r\\n value: function prev() {\\r\\n if (!this._isSliding) {\\r\\n this._slide(Direction.PREVIOUS);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'pause',\\r\\n value: function pause(event) {\\r\\n if (!event) {\\r\\n this._isPaused = true;\\r\\n }\\r\\n\\r\\n if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {\\r\\n Util.triggerTransitionEnd(this._element);\\r\\n this.cycle(true);\\r\\n }\\r\\n\\r\\n clearInterval(this._interval);\\r\\n this._interval = null;\\r\\n }\\r\\n }, {\\r\\n key: 'cycle',\\r\\n value: function cycle(event) {\\r\\n if (!event) {\\r\\n this._isPaused = false;\\r\\n }\\r\\n\\r\\n if (this._interval) {\\r\\n clearInterval(this._interval);\\r\\n this._interval = null;\\r\\n }\\r\\n\\r\\n if (this._config.interval && !this._isPaused) {\\r\\n this._interval = setInterval($.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'to',\\r\\n value: function to(index) {\\r\\n var _this2 = this;\\r\\n\\r\\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\\r\\n\\r\\n var activeIndex = this._getItemIndex(this._activeElement);\\r\\n\\r\\n if (index > this._items.length - 1 || index < 0) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (this._isSliding) {\\r\\n $(this._element).one(Event.SLID, function () {\\r\\n return _this2.to(index);\\r\\n });\\r\\n return;\\r\\n }\\r\\n\\r\\n if (activeIndex === index) {\\r\\n this.pause();\\r\\n this.cycle();\\r\\n return;\\r\\n }\\r\\n\\r\\n var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS;\\r\\n\\r\\n this._slide(direction, this._items[index]);\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $(this._element).off(EVENT_KEY);\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n\\r\\n this._items = null;\\r\\n this._config = null;\\r\\n this._element = null;\\r\\n this._interval = null;\\r\\n this._isPaused = null;\\r\\n this._isSliding = null;\\r\\n this._activeElement = null;\\r\\n this._indicatorsElement = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getConfig',\\r\\n value: function _getConfig(config) {\\r\\n config = $.extend({}, Default, config);\\r\\n Util.typeCheckConfig(NAME, config, DefaultType);\\r\\n return config;\\r\\n }\\r\\n }, {\\r\\n key: '_addEventListeners',\\r\\n value: function _addEventListeners() {\\r\\n if (this._config.keyboard) {\\r\\n $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this));\\r\\n }\\r\\n\\r\\n if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) {\\r\\n $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this));\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_keydown',\\r\\n value: function _keydown(event) {\\r\\n event.preventDefault();\\r\\n\\r\\n if (/input|textarea/i.test(event.target.tagName)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n switch (event.which) {\\r\\n case ARROW_LEFT_KEYCODE:\\r\\n this.prev();\\r\\n break;\\r\\n case ARROW_RIGHT_KEYCODE:\\r\\n this.next();\\r\\n break;\\r\\n default:\\r\\n return;\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_getItemIndex',\\r\\n value: function _getItemIndex(element) {\\r\\n this._items = $.makeArray($(element).parent().find(Selector.ITEM));\\r\\n return this._items.indexOf(element);\\r\\n }\\r\\n }, {\\r\\n key: '_getItemByDirection',\\r\\n value: function _getItemByDirection(direction, activeElement) {\\r\\n var isNextDirection = direction === Direction.NEXT;\\r\\n var isPrevDirection = direction === Direction.PREVIOUS;\\r\\n var activeIndex = this._getItemIndex(activeElement);\\r\\n var lastItemIndex = this._items.length - 1;\\r\\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\\r\\n\\r\\n if (isGoingToWrap && !this._config.wrap) {\\r\\n return activeElement;\\r\\n }\\r\\n\\r\\n var delta = direction === Direction.PREVIOUS ? -1 : 1;\\r\\n var itemIndex = (activeIndex + delta) % this._items.length;\\r\\n\\r\\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\\r\\n }\\r\\n }, {\\r\\n key: '_triggerSlideEvent',\\r\\n value: function _triggerSlideEvent(relatedTarget, directionalClassname) {\\r\\n var slideEvent = $.Event(Event.SLIDE, {\\r\\n relatedTarget: relatedTarget,\\r\\n direction: directionalClassname\\r\\n });\\r\\n\\r\\n $(this._element).trigger(slideEvent);\\r\\n\\r\\n return slideEvent;\\r\\n }\\r\\n }, {\\r\\n key: '_setActiveIndicatorElement',\\r\\n value: function _setActiveIndicatorElement(element) {\\r\\n if (this._indicatorsElement) {\\r\\n $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\\r\\n\\r\\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\\r\\n\\r\\n if (nextIndicator) {\\r\\n $(nextIndicator).addClass(ClassName.ACTIVE);\\r\\n }\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_slide',\\r\\n value: function _slide(direction, element) {\\r\\n var _this3 = this;\\r\\n\\r\\n var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];\\r\\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\\r\\n\\r\\n var isCycling = Boolean(this._interval);\\r\\n\\r\\n var directionalClassName = direction === Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT;\\r\\n\\r\\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\\r\\n this._isSliding = false;\\r\\n return;\\r\\n }\\r\\n\\r\\n var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName);\\r\\n if (slideEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (!activeElement || !nextElement) {\\r\\n // some weirdness is happening, so we bail\\r\\n return;\\r\\n }\\r\\n\\r\\n this._isSliding = true;\\r\\n\\r\\n if (isCycling) {\\r\\n this.pause();\\r\\n }\\r\\n\\r\\n this._setActiveIndicatorElement(nextElement);\\r\\n\\r\\n var slidEvent = $.Event(Event.SLID, {\\r\\n relatedTarget: nextElement,\\r\\n direction: directionalClassName\\r\\n });\\r\\n\\r\\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {\\r\\n\\r\\n $(nextElement).addClass(direction);\\r\\n\\r\\n Util.reflow(nextElement);\\r\\n\\r\\n $(activeElement).addClass(directionalClassName);\\r\\n $(nextElement).addClass(directionalClassName);\\r\\n\\r\\n $(activeElement).one(Util.TRANSITION_END, function () {\\r\\n $(nextElement).removeClass(directionalClassName).removeClass(direction);\\r\\n\\r\\n $(nextElement).addClass(ClassName.ACTIVE);\\r\\n\\r\\n $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName);\\r\\n\\r\\n _this3._isSliding = false;\\r\\n\\r\\n setTimeout(function () {\\r\\n return $(_this3._element).trigger(slidEvent);\\r\\n }, 0);\\r\\n }).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n } else {\\r\\n $(activeElement).removeClass(ClassName.ACTIVE);\\r\\n $(nextElement).addClass(ClassName.ACTIVE);\\r\\n\\r\\n this._isSliding = false;\\r\\n $(this._element).trigger(slidEvent);\\r\\n }\\r\\n\\r\\n if (isCycling) {\\r\\n this.cycle();\\r\\n }\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n var _config = $.extend({}, Default, $(this).data());\\r\\n\\r\\n if (typeof config === 'object') {\\r\\n $.extend(_config, config);\\r\\n }\\r\\n\\r\\n var action = typeof config === 'string' ? config : _config.slide;\\r\\n\\r\\n if (!data) {\\r\\n data = new Carousel(this, _config);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'number') {\\r\\n data.to(config);\\r\\n } else if (typeof action === 'string') {\\r\\n if (data[action] === undefined) {\\r\\n throw new Error('No method named \\\"' + action + '\\\"');\\r\\n }\\r\\n data[action]();\\r\\n } else if (_config.interval) {\\r\\n data.pause();\\r\\n data.cycle();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_dataApiClickHandler',\\r\\n value: function _dataApiClickHandler(event) {\\r\\n var selector = Util.getSelectorFromElement(this);\\r\\n\\r\\n if (!selector) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var target = $(selector)[0];\\r\\n\\r\\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var config = $.extend({}, $(target).data(), $(this).data());\\r\\n var slideIndex = this.getAttribute('data-slide-to');\\r\\n\\r\\n if (slideIndex) {\\r\\n config.interval = false;\\r\\n }\\r\\n\\r\\n Carousel._jQueryInterface.call($(target), config);\\r\\n\\r\\n if (slideIndex) {\\r\\n $(target).data(DATA_KEY).to(slideIndex);\\r\\n }\\r\\n\\r\\n event.preventDefault();\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Carousel;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);\\r\\n\\r\\n $(window).on(Event.LOAD_DATA_API, function () {\\r\\n $(Selector.DATA_RIDE).each(function () {\\r\\n var $carousel = $(this);\\r\\n Carousel._jQueryInterface.call($carousel, $carousel.data());\\r\\n });\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Carousel._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Carousel;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Carousel._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Carousel;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): collapse.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Collapse = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'collapse';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.collapse';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 600;\\r\\n\\r\\n var Default = {\\r\\n toggle: true,\\r\\n parent: ''\\r\\n };\\r\\n\\r\\n var DefaultType = {\\r\\n toggle: 'boolean',\\r\\n parent: 'string'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n IN: 'in',\\r\\n COLLAPSE: 'collapse',\\r\\n COLLAPSING: 'collapsing',\\r\\n COLLAPSED: 'collapsed'\\r\\n };\\r\\n\\r\\n var Dimension = {\\r\\n WIDTH: 'width',\\r\\n HEIGHT: 'height'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n ACTIVES: '.panel > .in, .panel > .collapsing',\\r\\n DATA_TOGGLE: '[data-toggle=\\\"collapse\\\"]'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Collapse = (function () {\\r\\n function Collapse(element, config) {\\r\\n _classCallCheck(this, Collapse);\\r\\n\\r\\n this._isTransitioning = false;\\r\\n this._element = element;\\r\\n this._config = this._getConfig(config);\\r\\n this._triggerArray = $.makeArray($('[data-toggle=\\\"collapse\\\"][href=\\\"#' + element.id + '\\\"],' + ('[data-toggle=\\\"collapse\\\"][data-target=\\\"#' + element.id + '\\\"]')));\\r\\n\\r\\n this._parent = this._config.parent ? this._getParent() : null;\\r\\n\\r\\n if (!this._config.parent) {\\r\\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\\r\\n }\\r\\n\\r\\n if (this._config.toggle) {\\r\\n this.toggle();\\r\\n }\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Collapse, [{\\r\\n key: 'toggle',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function toggle() {\\r\\n if ($(this._element).hasClass(ClassName.IN)) {\\r\\n this.hide();\\r\\n } else {\\r\\n this.show();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'show',\\r\\n value: function show() {\\r\\n var _this4 = this;\\r\\n\\r\\n if (this._isTransitioning || $(this._element).hasClass(ClassName.IN)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var actives = undefined;\\r\\n var activesData = undefined;\\r\\n\\r\\n if (this._parent) {\\r\\n actives = $.makeArray($(Selector.ACTIVES));\\r\\n if (!actives.length) {\\r\\n actives = null;\\r\\n }\\r\\n }\\r\\n\\r\\n if (actives) {\\r\\n activesData = $(actives).data(DATA_KEY);\\r\\n if (activesData && activesData._isTransitioning) {\\r\\n return;\\r\\n }\\r\\n }\\r\\n\\r\\n var startEvent = $.Event(Event.SHOW);\\r\\n $(this._element).trigger(startEvent);\\r\\n if (startEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (actives) {\\r\\n Collapse._jQueryInterface.call($(actives), 'hide');\\r\\n if (!activesData) {\\r\\n $(actives).data(DATA_KEY, null);\\r\\n }\\r\\n }\\r\\n\\r\\n var dimension = this._getDimension();\\r\\n\\r\\n $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);\\r\\n\\r\\n this._element.style[dimension] = 0;\\r\\n this._element.setAttribute('aria-expanded', true);\\r\\n\\r\\n if (this._triggerArray.length) {\\r\\n $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);\\r\\n }\\r\\n\\r\\n this.setTransitioning(true);\\r\\n\\r\\n var complete = function complete() {\\r\\n $(_this4._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.IN);\\r\\n\\r\\n _this4._element.style[dimension] = '';\\r\\n\\r\\n _this4.setTransitioning(false);\\r\\n\\r\\n $(_this4._element).trigger(Event.SHOWN);\\r\\n };\\r\\n\\r\\n if (!Util.supportsTransitionEnd()) {\\r\\n complete();\\r\\n return;\\r\\n }\\r\\n\\r\\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\\r\\n var scrollSize = 'scroll' + capitalizedDimension;\\r\\n\\r\\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n\\r\\n this._element.style[dimension] = this._element[scrollSize] + 'px';\\r\\n }\\r\\n }, {\\r\\n key: 'hide',\\r\\n value: function hide() {\\r\\n var _this5 = this;\\r\\n\\r\\n if (this._isTransitioning || !$(this._element).hasClass(ClassName.IN)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var startEvent = $.Event(Event.HIDE);\\r\\n $(this._element).trigger(startEvent);\\r\\n if (startEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var dimension = this._getDimension();\\r\\n var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';\\r\\n\\r\\n this._element.style[dimension] = this._element[offsetDimension] + 'px';\\r\\n\\r\\n Util.reflow(this._element);\\r\\n\\r\\n $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.IN);\\r\\n\\r\\n this._element.setAttribute('aria-expanded', false);\\r\\n\\r\\n if (this._triggerArray.length) {\\r\\n $(this._triggerArray).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);\\r\\n }\\r\\n\\r\\n this.setTransitioning(true);\\r\\n\\r\\n var complete = function complete() {\\r\\n _this5.setTransitioning(false);\\r\\n $(_this5._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);\\r\\n };\\r\\n\\r\\n this._element.style[dimension] = 0;\\r\\n\\r\\n if (!Util.supportsTransitionEnd()) {\\r\\n complete();\\r\\n return;\\r\\n }\\r\\n\\r\\n $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n }\\r\\n }, {\\r\\n key: 'setTransitioning',\\r\\n value: function setTransitioning(isTransitioning) {\\r\\n this._isTransitioning = isTransitioning;\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n\\r\\n this._config = null;\\r\\n this._parent = null;\\r\\n this._element = null;\\r\\n this._triggerArray = null;\\r\\n this._isTransitioning = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getConfig',\\r\\n value: function _getConfig(config) {\\r\\n config = $.extend({}, Default, config);\\r\\n config.toggle = Boolean(config.toggle); // coerce string values\\r\\n Util.typeCheckConfig(NAME, config, DefaultType);\\r\\n return config;\\r\\n }\\r\\n }, {\\r\\n key: '_getDimension',\\r\\n value: function _getDimension() {\\r\\n var hasWidth = $(this._element).hasClass(Dimension.WIDTH);\\r\\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;\\r\\n }\\r\\n }, {\\r\\n key: '_getParent',\\r\\n value: function _getParent() {\\r\\n var _this6 = this;\\r\\n\\r\\n var parent = $(this._config.parent)[0];\\r\\n var selector = '[data-toggle=\\\"collapse\\\"][data-parent=\\\"' + this._config.parent + '\\\"]';\\r\\n\\r\\n $(parent).find(selector).each(function (i, element) {\\r\\n _this6._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\\r\\n });\\r\\n\\r\\n return parent;\\r\\n }\\r\\n }, {\\r\\n key: '_addAriaAndCollapsedClass',\\r\\n value: function _addAriaAndCollapsedClass(element, triggerArray) {\\r\\n if (element) {\\r\\n var isOpen = $(element).hasClass(ClassName.IN);\\r\\n element.setAttribute('aria-expanded', isOpen);\\r\\n\\r\\n if (triggerArray.length) {\\r\\n $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_getTargetFromElement',\\r\\n value: function _getTargetFromElement(element) {\\r\\n var selector = Util.getSelectorFromElement(element);\\r\\n return selector ? $(selector)[0] : null;\\r\\n }\\r\\n }, {\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var $this = $(this);\\r\\n var data = $this.data(DATA_KEY);\\r\\n var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);\\r\\n\\r\\n if (!data && _config.toggle && /show|hide/.test(config)) {\\r\\n _config.toggle = false;\\r\\n }\\r\\n\\r\\n if (!data) {\\r\\n data = new Collapse(this, _config);\\r\\n $this.data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Collapse;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\\r\\n event.preventDefault();\\r\\n\\r\\n var target = Collapse._getTargetFromElement(this);\\r\\n var data = $(target).data(DATA_KEY);\\r\\n var config = data ? 'toggle' : $(this).data();\\r\\n\\r\\n Collapse._jQueryInterface.call($(target), config);\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Collapse._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Collapse;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Collapse._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Collapse;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): dropdown.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Dropdown = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'dropdown';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.dropdown';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\\r\\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\\r\\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\\r\\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\\r\\n\\r\\n var Event = {\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n CLICK: 'click' + EVENT_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY,\\r\\n KEYDOWN_DATA_API: 'keydown' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n BACKDROP: 'dropdown-backdrop',\\r\\n DISABLED: 'disabled',\\r\\n OPEN: 'open'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n BACKDROP: '.dropdown-backdrop',\\r\\n DATA_TOGGLE: '[data-toggle=\\\"dropdown\\\"]',\\r\\n FORM_CHILD: '.dropdown form',\\r\\n ROLE_MENU: '[role=\\\"menu\\\"]',\\r\\n ROLE_LISTBOX: '[role=\\\"listbox\\\"]',\\r\\n NAVBAR_NAV: '.navbar-nav',\\r\\n VISIBLE_ITEMS: '[role=\\\"menu\\\"] li:not(.disabled) a, ' + '[role=\\\"listbox\\\"] li:not(.disabled) a'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Dropdown = (function () {\\r\\n function Dropdown(element) {\\r\\n _classCallCheck(this, Dropdown);\\r\\n\\r\\n this._element = element;\\r\\n\\r\\n this._addEventListeners();\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Dropdown, [{\\r\\n key: 'toggle',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function toggle() {\\r\\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n var parent = Dropdown._getParentFromElement(this);\\r\\n var isActive = $(parent).hasClass(ClassName.OPEN);\\r\\n\\r\\n Dropdown._clearMenus();\\r\\n\\r\\n if (isActive) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {\\r\\n\\r\\n // if mobile we use a backdrop because click events don't delegate\\r\\n var dropdown = document.createElement('div');\\r\\n dropdown.className = ClassName.BACKDROP;\\r\\n $(dropdown).insertBefore(this);\\r\\n $(dropdown).on('click', Dropdown._clearMenus);\\r\\n }\\r\\n\\r\\n var relatedTarget = { relatedTarget: this };\\r\\n var showEvent = $.Event(Event.SHOW, relatedTarget);\\r\\n\\r\\n $(parent).trigger(showEvent);\\r\\n\\r\\n if (showEvent.isDefaultPrevented()) {\\r\\n return false;\\r\\n }\\r\\n\\r\\n this.focus();\\r\\n this.setAttribute('aria-expanded', 'true');\\r\\n\\r\\n $(parent).toggleClass(ClassName.OPEN);\\r\\n $(parent).trigger($.Event(Event.SHOWN, relatedTarget));\\r\\n\\r\\n return false;\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n $(this._element).off(EVENT_KEY);\\r\\n this._element = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_addEventListeners',\\r\\n value: function _addEventListeners() {\\r\\n $(this._element).on(Event.CLICK, this.toggle);\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n\\r\\n if (!data) {\\r\\n $(this).data(DATA_KEY, data = new Dropdown(this));\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config].call(this);\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_clearMenus',\\r\\n value: function _clearMenus(event) {\\r\\n if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var backdrop = $(Selector.BACKDROP)[0];\\r\\n if (backdrop) {\\r\\n backdrop.parentNode.removeChild(backdrop);\\r\\n }\\r\\n\\r\\n var toggles = $.makeArray($(Selector.DATA_TOGGLE));\\r\\n\\r\\n for (var i = 0; i < toggles.length; i++) {\\r\\n var _parent = Dropdown._getParentFromElement(toggles[i]);\\r\\n var relatedTarget = { relatedTarget: toggles[i] };\\r\\n\\r\\n if (!$(_parent).hasClass(ClassName.OPEN)) {\\r\\n continue;\\r\\n }\\r\\n\\r\\n if (event && event.type === 'click' && /input|textarea/i.test(event.target.tagName) && $.contains(_parent, event.target)) {\\r\\n continue;\\r\\n }\\r\\n\\r\\n var hideEvent = $.Event(Event.HIDE, relatedTarget);\\r\\n $(_parent).trigger(hideEvent);\\r\\n if (hideEvent.isDefaultPrevented()) {\\r\\n continue;\\r\\n }\\r\\n\\r\\n toggles[i].setAttribute('aria-expanded', 'false');\\r\\n\\r\\n $(_parent).removeClass(ClassName.OPEN).trigger($.Event(Event.HIDDEN, relatedTarget));\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_getParentFromElement',\\r\\n value: function _getParentFromElement(element) {\\r\\n var parent = undefined;\\r\\n var selector = Util.getSelectorFromElement(element);\\r\\n\\r\\n if (selector) {\\r\\n parent = $(selector)[0];\\r\\n }\\r\\n\\r\\n return parent || element.parentNode;\\r\\n }\\r\\n }, {\\r\\n key: '_dataApiKeydownHandler',\\r\\n value: function _dataApiKeydownHandler(event) {\\r\\n if (!/(38|40|27|32)/.test(event.which) || /input|textarea/i.test(event.target.tagName)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n event.preventDefault();\\r\\n event.stopPropagation();\\r\\n\\r\\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var parent = Dropdown._getParentFromElement(this);\\r\\n var isActive = $(parent).hasClass(ClassName.OPEN);\\r\\n\\r\\n if (!isActive && event.which !== ESCAPE_KEYCODE || isActive && event.which === ESCAPE_KEYCODE) {\\r\\n\\r\\n if (event.which === ESCAPE_KEYCODE) {\\r\\n var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];\\r\\n $(toggle).trigger('focus');\\r\\n }\\r\\n\\r\\n $(this).trigger('click');\\r\\n return;\\r\\n }\\r\\n\\r\\n var items = $.makeArray($(Selector.VISIBLE_ITEMS));\\r\\n\\r\\n items = items.filter(function (item) {\\r\\n return item.offsetWidth || item.offsetHeight;\\r\\n });\\r\\n\\r\\n if (!items.length) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var index = items.indexOf(event.target);\\r\\n\\r\\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\\r\\n // up\\r\\n index--;\\r\\n }\\r\\n\\r\\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\\r\\n // down\\r\\n index++;\\r\\n }\\r\\n\\r\\n if (index < 0) {\\r\\n index = 0;\\r\\n }\\r\\n\\r\\n items[index].focus();\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Dropdown;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {\\r\\n e.stopPropagation();\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Dropdown._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Dropdown;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Dropdown._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Dropdown;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): modal.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Modal = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'modal';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.modal';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 300;\\r\\n var BACKDROP_TRANSITION_DURATION = 150;\\r\\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\\r\\n\\r\\n var Default = {\\r\\n backdrop: true,\\r\\n keyboard: true,\\r\\n focus: true,\\r\\n show: true\\r\\n };\\r\\n\\r\\n var DefaultType = {\\r\\n backdrop: '(boolean|string)',\\r\\n keyboard: 'boolean',\\r\\n focus: 'boolean',\\r\\n show: 'boolean'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n FOCUSIN: 'focusin' + EVENT_KEY,\\r\\n RESIZE: 'resize' + EVENT_KEY,\\r\\n CLICK_DISMISS: 'click.dismiss' + EVENT_KEY,\\r\\n KEYDOWN_DISMISS: 'keydown.dismiss' + EVENT_KEY,\\r\\n MOUSEUP_DISMISS: 'mouseup.dismiss' + EVENT_KEY,\\r\\n MOUSEDOWN_DISMISS: 'mousedown.dismiss' + EVENT_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\\r\\n BACKDROP: 'modal-backdrop',\\r\\n OPEN: 'modal-open',\\r\\n FADE: 'fade',\\r\\n IN: 'in'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n DIALOG: '.modal-dialog',\\r\\n DATA_TOGGLE: '[data-toggle=\\\"modal\\\"]',\\r\\n DATA_DISMISS: '[data-dismiss=\\\"modal\\\"]',\\r\\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Modal = (function () {\\r\\n function Modal(element, config) {\\r\\n _classCallCheck(this, Modal);\\r\\n\\r\\n this._config = this._getConfig(config);\\r\\n this._element = element;\\r\\n this._dialog = $(element).find(Selector.DIALOG)[0];\\r\\n this._backdrop = null;\\r\\n this._isShown = false;\\r\\n this._isBodyOverflowing = false;\\r\\n this._ignoreBackdropClick = false;\\r\\n this._originalBodyPadding = 0;\\r\\n this._scrollbarWidth = 0;\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Modal, [{\\r\\n key: 'toggle',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function toggle(relatedTarget) {\\r\\n return this._isShown ? this.hide() : this.show(relatedTarget);\\r\\n }\\r\\n }, {\\r\\n key: 'show',\\r\\n value: function show(relatedTarget) {\\r\\n var _this7 = this;\\r\\n\\r\\n var showEvent = $.Event(Event.SHOW, {\\r\\n relatedTarget: relatedTarget\\r\\n });\\r\\n\\r\\n $(this._element).trigger(showEvent);\\r\\n\\r\\n if (this._isShown || showEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n this._isShown = true;\\r\\n\\r\\n this._checkScrollbar();\\r\\n this._setScrollbar();\\r\\n\\r\\n $(document.body).addClass(ClassName.OPEN);\\r\\n\\r\\n this._setEscapeEvent();\\r\\n this._setResizeEvent();\\r\\n\\r\\n $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, $.proxy(this.hide, this));\\r\\n\\r\\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {\\r\\n $(_this7._element).one(Event.MOUSEUP_DISMISS, function (event) {\\r\\n if ($(event.target).is(_this7._element)) {\\r\\n _this7._ignoreBackdropClick = true;\\r\\n }\\r\\n });\\r\\n });\\r\\n\\r\\n this._showBackdrop($.proxy(this._showElement, this, relatedTarget));\\r\\n }\\r\\n }, {\\r\\n key: 'hide',\\r\\n value: function hide(event) {\\r\\n if (event) {\\r\\n event.preventDefault();\\r\\n }\\r\\n\\r\\n var hideEvent = $.Event(Event.HIDE);\\r\\n\\r\\n $(this._element).trigger(hideEvent);\\r\\n\\r\\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n this._isShown = false;\\r\\n\\r\\n this._setEscapeEvent();\\r\\n this._setResizeEvent();\\r\\n\\r\\n $(document).off(Event.FOCUSIN);\\r\\n\\r\\n $(this._element).removeClass(ClassName.IN);\\r\\n\\r\\n $(this._element).off(Event.CLICK_DISMISS);\\r\\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\\r\\n\\r\\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\\r\\n\\r\\n $(this._element).one(Util.TRANSITION_END, $.proxy(this._hideModal, this)).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n } else {\\r\\n this._hideModal();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n\\r\\n $(window).off(EVENT_KEY);\\r\\n $(document).off(EVENT_KEY);\\r\\n $(this._element).off(EVENT_KEY);\\r\\n $(this._backdrop).off(EVENT_KEY);\\r\\n\\r\\n this._config = null;\\r\\n this._element = null;\\r\\n this._dialog = null;\\r\\n this._backdrop = null;\\r\\n this._isShown = null;\\r\\n this._isBodyOverflowing = null;\\r\\n this._ignoreBackdropClick = null;\\r\\n this._originalBodyPadding = null;\\r\\n this._scrollbarWidth = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getConfig',\\r\\n value: function _getConfig(config) {\\r\\n config = $.extend({}, Default, config);\\r\\n Util.typeCheckConfig(NAME, config, DefaultType);\\r\\n return config;\\r\\n }\\r\\n }, {\\r\\n key: '_showElement',\\r\\n value: function _showElement(relatedTarget) {\\r\\n var _this8 = this;\\r\\n\\r\\n var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);\\r\\n\\r\\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\\r\\n // don't move modals dom position\\r\\n document.body.appendChild(this._element);\\r\\n }\\r\\n\\r\\n this._element.style.display = 'block';\\r\\n this._element.removeAttribute('aria-hidden');\\r\\n this._element.scrollTop = 0;\\r\\n\\r\\n if (transition) {\\r\\n Util.reflow(this._element);\\r\\n }\\r\\n\\r\\n $(this._element).addClass(ClassName.IN);\\r\\n\\r\\n if (this._config.focus) {\\r\\n this._enforceFocus();\\r\\n }\\r\\n\\r\\n var shownEvent = $.Event(Event.SHOWN, {\\r\\n relatedTarget: relatedTarget\\r\\n });\\r\\n\\r\\n var transitionComplete = function transitionComplete() {\\r\\n if (_this8._config.focus) {\\r\\n _this8._element.focus();\\r\\n }\\r\\n $(_this8._element).trigger(shownEvent);\\r\\n };\\r\\n\\r\\n if (transition) {\\r\\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n } else {\\r\\n transitionComplete();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_enforceFocus',\\r\\n value: function _enforceFocus() {\\r\\n var _this9 = this;\\r\\n\\r\\n $(document).off(Event.FOCUSIN) // guard against infinite focus loop\\r\\n .on(Event.FOCUSIN, function (event) {\\r\\n if (document !== event.target && _this9._element !== event.target && !$(_this9._element).has(event.target).length) {\\r\\n _this9._element.focus();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_setEscapeEvent',\\r\\n value: function _setEscapeEvent() {\\r\\n var _this10 = this;\\r\\n\\r\\n if (this._isShown && this._config.keyboard) {\\r\\n $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {\\r\\n if (event.which === ESCAPE_KEYCODE) {\\r\\n _this10.hide();\\r\\n }\\r\\n });\\r\\n } else if (!this._isShown) {\\r\\n $(this._element).off(Event.KEYDOWN_DISMISS);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_setResizeEvent',\\r\\n value: function _setResizeEvent() {\\r\\n if (this._isShown) {\\r\\n $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this));\\r\\n } else {\\r\\n $(window).off(Event.RESIZE);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_hideModal',\\r\\n value: function _hideModal() {\\r\\n var _this11 = this;\\r\\n\\r\\n this._element.style.display = 'none';\\r\\n this._element.setAttribute('aria-hidden', 'true');\\r\\n this._showBackdrop(function () {\\r\\n $(document.body).removeClass(ClassName.OPEN);\\r\\n _this11._resetAdjustments();\\r\\n _this11._resetScrollbar();\\r\\n $(_this11._element).trigger(Event.HIDDEN);\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_removeBackdrop',\\r\\n value: function _removeBackdrop() {\\r\\n if (this._backdrop) {\\r\\n $(this._backdrop).remove();\\r\\n this._backdrop = null;\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_showBackdrop',\\r\\n value: function _showBackdrop(callback) {\\r\\n var _this12 = this;\\r\\n\\r\\n var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\\r\\n\\r\\n if (this._isShown && this._config.backdrop) {\\r\\n var doAnimate = Util.supportsTransitionEnd() && animate;\\r\\n\\r\\n this._backdrop = document.createElement('div');\\r\\n this._backdrop.className = ClassName.BACKDROP;\\r\\n\\r\\n if (animate) {\\r\\n $(this._backdrop).addClass(animate);\\r\\n }\\r\\n\\r\\n $(this._backdrop).appendTo(document.body);\\r\\n\\r\\n $(this._element).on(Event.CLICK_DISMISS, function (event) {\\r\\n if (_this12._ignoreBackdropClick) {\\r\\n _this12._ignoreBackdropClick = false;\\r\\n return;\\r\\n }\\r\\n if (event.target !== event.currentTarget) {\\r\\n return;\\r\\n }\\r\\n if (_this12._config.backdrop === 'static') {\\r\\n _this12._element.focus();\\r\\n } else {\\r\\n _this12.hide();\\r\\n }\\r\\n });\\r\\n\\r\\n if (doAnimate) {\\r\\n Util.reflow(this._backdrop);\\r\\n }\\r\\n\\r\\n $(this._backdrop).addClass(ClassName.IN);\\r\\n\\r\\n if (!callback) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (!doAnimate) {\\r\\n callback();\\r\\n return;\\r\\n }\\r\\n\\r\\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\\r\\n } else if (!this._isShown && this._backdrop) {\\r\\n $(this._backdrop).removeClass(ClassName.IN);\\r\\n\\r\\n var callbackRemove = function callbackRemove() {\\r\\n _this12._removeBackdrop();\\r\\n if (callback) {\\r\\n callback();\\r\\n }\\r\\n };\\r\\n\\r\\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\\r\\n $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);\\r\\n } else {\\r\\n callbackRemove();\\r\\n }\\r\\n } else if (callback) {\\r\\n callback();\\r\\n }\\r\\n }\\r\\n\\r\\n // ----------------------------------------------------------------------\\r\\n // the following methods are used to handle overflowing modals\\r\\n // todo (fat): these should probably be refactored out of modal.js\\r\\n // ----------------------------------------------------------------------\\r\\n\\r\\n }, {\\r\\n key: '_handleUpdate',\\r\\n value: function _handleUpdate() {\\r\\n this._adjustDialog();\\r\\n }\\r\\n }, {\\r\\n key: '_adjustDialog',\\r\\n value: function _adjustDialog() {\\r\\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\\r\\n\\r\\n if (!this._isBodyOverflowing && isModalOverflowing) {\\r\\n this._element.style.paddingLeft = this._scrollbarWidth + 'px';\\r\\n }\\r\\n\\r\\n if (this._isBodyOverflowing && !isModalOverflowing) {\\r\\n this._element.style.paddingRight = this._scrollbarWidth + 'px';\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_resetAdjustments',\\r\\n value: function _resetAdjustments() {\\r\\n this._element.style.paddingLeft = '';\\r\\n this._element.style.paddingRight = '';\\r\\n }\\r\\n }, {\\r\\n key: '_checkScrollbar',\\r\\n value: function _checkScrollbar() {\\r\\n this._isBodyOverflowing = document.body.clientWidth < window.innerWidth;\\r\\n this._scrollbarWidth = this._getScrollbarWidth();\\r\\n }\\r\\n }, {\\r\\n key: '_setScrollbar',\\r\\n value: function _setScrollbar() {\\r\\n var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);\\r\\n\\r\\n this._originalBodyPadding = document.body.style.paddingRight || '';\\r\\n\\r\\n if (this._isBodyOverflowing) {\\r\\n document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_resetScrollbar',\\r\\n value: function _resetScrollbar() {\\r\\n document.body.style.paddingRight = this._originalBodyPadding;\\r\\n }\\r\\n }, {\\r\\n key: '_getScrollbarWidth',\\r\\n value: function _getScrollbarWidth() {\\r\\n // thx d.walsh\\r\\n var scrollDiv = document.createElement('div');\\r\\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\\r\\n document.body.appendChild(scrollDiv);\\r\\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\\r\\n document.body.removeChild(scrollDiv);\\r\\n return scrollbarWidth;\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config, relatedTarget) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);\\r\\n\\r\\n if (!data) {\\r\\n data = new Modal(this, _config);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config](relatedTarget);\\r\\n } else if (_config.show) {\\r\\n data.show(relatedTarget);\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Modal;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\\r\\n var _this13 = this;\\r\\n\\r\\n var target = undefined;\\r\\n var selector = Util.getSelectorFromElement(this);\\r\\n\\r\\n if (selector) {\\r\\n target = $(selector)[0];\\r\\n }\\r\\n\\r\\n var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());\\r\\n\\r\\n if (this.tagName === 'A') {\\r\\n event.preventDefault();\\r\\n }\\r\\n\\r\\n var $target = $(target).one(Event.SHOW, function (showEvent) {\\r\\n if (showEvent.isDefaultPrevented()) {\\r\\n // only register focus restorer if modal will actually get shown\\r\\n return;\\r\\n }\\r\\n\\r\\n $target.one(Event.HIDDEN, function () {\\r\\n if ($(_this13).is(':visible')) {\\r\\n _this13.focus();\\r\\n }\\r\\n });\\r\\n });\\r\\n\\r\\n Modal._jQueryInterface.call($(target), config, this);\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Modal._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Modal;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Modal._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Modal;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): scrollspy.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar ScrollSpy = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'scrollspy';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.scrollspy';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n\\r\\n var Default = {\\r\\n offset: 10,\\r\\n method: 'auto',\\r\\n target: ''\\r\\n };\\r\\n\\r\\n var DefaultType = {\\r\\n offset: 'number',\\r\\n method: 'string',\\r\\n target: '(string|element)'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n ACTIVATE: 'activate' + EVENT_KEY,\\r\\n SCROLL: 'scroll' + EVENT_KEY,\\r\\n LOAD_DATA_API: 'load' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n DROPDOWN_ITEM: 'dropdown-item',\\r\\n DROPDOWN_MENU: 'dropdown-menu',\\r\\n NAV_LINK: 'nav-link',\\r\\n NAV: 'nav',\\r\\n ACTIVE: 'active'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n DATA_SPY: '[data-spy=\\\"scroll\\\"]',\\r\\n ACTIVE: '.active',\\r\\n LIST_ITEM: '.list-item',\\r\\n LI: 'li',\\r\\n LI_DROPDOWN: 'li.dropdown',\\r\\n NAV_LINKS: '.nav-link',\\r\\n DROPDOWN: '.dropdown',\\r\\n DROPDOWN_ITEMS: '.dropdown-item',\\r\\n DROPDOWN_TOGGLE: '.dropdown-toggle'\\r\\n };\\r\\n\\r\\n var OffsetMethod = {\\r\\n OFFSET: 'offset',\\r\\n POSITION: 'position'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var ScrollSpy = (function () {\\r\\n function ScrollSpy(element, config) {\\r\\n _classCallCheck(this, ScrollSpy);\\r\\n\\r\\n this._element = element;\\r\\n this._scrollElement = element.tagName === 'BODY' ? window : element;\\r\\n this._config = this._getConfig(config);\\r\\n this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);\\r\\n this._offsets = [];\\r\\n this._targets = [];\\r\\n this._activeTarget = null;\\r\\n this._scrollHeight = 0;\\r\\n\\r\\n $(this._scrollElement).on(Event.SCROLL, $.proxy(this._process, this));\\r\\n\\r\\n this.refresh();\\r\\n this._process();\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(ScrollSpy, [{\\r\\n key: 'refresh',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function refresh() {\\r\\n var _this14 = this;\\r\\n\\r\\n var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;\\r\\n\\r\\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\\r\\n\\r\\n var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;\\r\\n\\r\\n this._offsets = [];\\r\\n this._targets = [];\\r\\n\\r\\n this._scrollHeight = this._getScrollHeight();\\r\\n\\r\\n var targets = $.makeArray($(this._selector));\\r\\n\\r\\n targets.map(function (element) {\\r\\n var target = undefined;\\r\\n var targetSelector = Util.getSelectorFromElement(element);\\r\\n\\r\\n if (targetSelector) {\\r\\n target = $(targetSelector)[0];\\r\\n }\\r\\n\\r\\n if (target && (target.offsetWidth || target.offsetHeight)) {\\r\\n // todo (fat): remove sketch reliance on jQuery position/offset\\r\\n return [$(target)[offsetMethod]().top + offsetBase, targetSelector];\\r\\n }\\r\\n return null;\\r\\n }).filter(function (item) {\\r\\n return item;\\r\\n }).sort(function (a, b) {\\r\\n return a[0] - b[0];\\r\\n }).forEach(function (item) {\\r\\n _this14._offsets.push(item[0]);\\r\\n _this14._targets.push(item[1]);\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeData(this._element, DATA_KEY);\\r\\n $(this._scrollElement).off(EVENT_KEY);\\r\\n\\r\\n this._element = null;\\r\\n this._scrollElement = null;\\r\\n this._config = null;\\r\\n this._selector = null;\\r\\n this._offsets = null;\\r\\n this._targets = null;\\r\\n this._activeTarget = null;\\r\\n this._scrollHeight = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getConfig',\\r\\n value: function _getConfig(config) {\\r\\n config = $.extend({}, Default, config);\\r\\n\\r\\n if (typeof config.target !== 'string') {\\r\\n var id = $(config.target).attr('id');\\r\\n if (!id) {\\r\\n id = Util.getUID(NAME);\\r\\n $(config.target).attr('id', id);\\r\\n }\\r\\n config.target = '#' + id;\\r\\n }\\r\\n\\r\\n Util.typeCheckConfig(NAME, config, DefaultType);\\r\\n\\r\\n return config;\\r\\n }\\r\\n }, {\\r\\n key: '_getScrollTop',\\r\\n value: function _getScrollTop() {\\r\\n return this._scrollElement === window ? this._scrollElement.scrollY : this._scrollElement.scrollTop;\\r\\n }\\r\\n }, {\\r\\n key: '_getScrollHeight',\\r\\n value: function _getScrollHeight() {\\r\\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\\r\\n }\\r\\n }, {\\r\\n key: '_process',\\r\\n value: function _process() {\\r\\n var scrollTop = this._getScrollTop() + this._config.offset;\\r\\n var scrollHeight = this._getScrollHeight();\\r\\n var maxScroll = this._config.offset + scrollHeight - this._scrollElement.offsetHeight;\\r\\n\\r\\n if (this._scrollHeight !== scrollHeight) {\\r\\n this.refresh();\\r\\n }\\r\\n\\r\\n if (scrollTop >= maxScroll) {\\r\\n var target = this._targets[this._targets.length - 1];\\r\\n\\r\\n if (this._activeTarget !== target) {\\r\\n this._activate(target);\\r\\n }\\r\\n }\\r\\n\\r\\n if (this._activeTarget && scrollTop < this._offsets[0]) {\\r\\n this._activeTarget = null;\\r\\n this._clear();\\r\\n return;\\r\\n }\\r\\n\\r\\n for (var i = this._offsets.length; i--;) {\\r\\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (this._offsets[i + 1] === undefined || scrollTop < this._offsets[i + 1]);\\r\\n\\r\\n if (isActiveTarget) {\\r\\n this._activate(this._targets[i]);\\r\\n }\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_activate',\\r\\n value: function _activate(target) {\\r\\n this._activeTarget = target;\\r\\n\\r\\n this._clear();\\r\\n\\r\\n var queries = this._selector.split(',');\\r\\n queries = queries.map(function (selector) {\\r\\n return selector + '[data-target=\\\"' + target + '\\\"],' + (selector + '[href=\\\"' + target + '\\\"]');\\r\\n });\\r\\n\\r\\n var $link = $(queries.join(','));\\r\\n\\r\\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\\r\\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\\r\\n $link.addClass(ClassName.ACTIVE);\\r\\n } else {\\r\\n // todo (fat) this is kinda sus...\\r\\n // recursively add actives to tested nav-links\\r\\n $link.parents(Selector.LI).find(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);\\r\\n }\\r\\n\\r\\n $(this._scrollElement).trigger(Event.ACTIVATE, {\\r\\n relatedTarget: target\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: '_clear',\\r\\n value: function _clear() {\\r\\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n var _config = typeof config === 'object' && config || null;\\r\\n\\r\\n if (!data) {\\r\\n data = new ScrollSpy(this, _config);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return ScrollSpy;\\r\\n })();\\r\\n\\r\\n $(window).on(Event.LOAD_DATA_API, function () {\\r\\n var scrollSpys = $.makeArray($(Selector.DATA_SPY));\\r\\n\\r\\n for (var i = scrollSpys.length; i--;) {\\r\\n var $spy = $(scrollSpys[i]);\\r\\n ScrollSpy._jQueryInterface.call($spy, $spy.data());\\r\\n }\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = ScrollSpy._jQueryInterface;\\r\\n $.fn[NAME].Constructor = ScrollSpy;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return ScrollSpy._jQueryInterface;\\r\\n };\\r\\n\\r\\n return ScrollSpy;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): tab.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Tab = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'tab';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.tab';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var DATA_API_KEY = '.data-api';\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 150;\\r\\n\\r\\n var Event = {\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n CLICK_DATA_API: 'click' + EVENT_KEY + DATA_API_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n DROPDOWN_MENU: 'dropdown-menu',\\r\\n ACTIVE: 'active',\\r\\n FADE: 'fade',\\r\\n IN: 'in'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n A: 'a',\\r\\n LI: 'li',\\r\\n DROPDOWN: '.dropdown',\\r\\n UL: 'ul:not(.dropdown-menu)',\\r\\n FADE_CHILD: '> .nav-item .fade, > .fade',\\r\\n ACTIVE: '.active',\\r\\n ACTIVE_CHILD: '> .nav-item > .active, > .active',\\r\\n DATA_TOGGLE: '[data-toggle=\\\"tab\\\"], [data-toggle=\\\"pill\\\"]',\\r\\n DROPDOWN_TOGGLE: '.dropdown-toggle',\\r\\n DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Tab = (function () {\\r\\n function Tab(element) {\\r\\n _classCallCheck(this, Tab);\\r\\n\\r\\n this._element = element;\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Data Api implementation\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Tab, [{\\r\\n key: 'show',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function show() {\\r\\n var _this15 = this;\\r\\n\\r\\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var target = undefined;\\r\\n var previous = undefined;\\r\\n var ulElement = $(this._element).closest(Selector.UL)[0];\\r\\n var selector = Util.getSelectorFromElement(this._element);\\r\\n\\r\\n if (ulElement) {\\r\\n previous = $.makeArray($(ulElement).find(Selector.ACTIVE));\\r\\n previous = previous[previous.length - 1];\\r\\n }\\r\\n\\r\\n var hideEvent = $.Event(Event.HIDE, {\\r\\n relatedTarget: this._element\\r\\n });\\r\\n\\r\\n var showEvent = $.Event(Event.SHOW, {\\r\\n relatedTarget: previous\\r\\n });\\r\\n\\r\\n if (previous) {\\r\\n $(previous).trigger(hideEvent);\\r\\n }\\r\\n\\r\\n $(this._element).trigger(showEvent);\\r\\n\\r\\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (selector) {\\r\\n target = $(selector)[0];\\r\\n }\\r\\n\\r\\n this._activate(this._element, ulElement);\\r\\n\\r\\n var complete = function complete() {\\r\\n var hiddenEvent = $.Event(Event.HIDDEN, {\\r\\n relatedTarget: _this15._element\\r\\n });\\r\\n\\r\\n var shownEvent = $.Event(Event.SHOWN, {\\r\\n relatedTarget: previous\\r\\n });\\r\\n\\r\\n $(previous).trigger(hiddenEvent);\\r\\n $(_this15._element).trigger(shownEvent);\\r\\n };\\r\\n\\r\\n if (target) {\\r\\n this._activate(target, target.parentNode, complete);\\r\\n } else {\\r\\n complete();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n $.removeClass(this._element, DATA_KEY);\\r\\n this._element = null;\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_activate',\\r\\n value: function _activate(element, container, callback) {\\r\\n var active = $(container).find(Selector.ACTIVE_CHILD)[0];\\r\\n var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));\\r\\n\\r\\n var complete = $.proxy(this._transitionComplete, this, element, active, isTransitioning, callback);\\r\\n\\r\\n if (active && isTransitioning) {\\r\\n $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n } else {\\r\\n complete();\\r\\n }\\r\\n\\r\\n if (active) {\\r\\n $(active).removeClass(ClassName.IN);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_transitionComplete',\\r\\n value: function _transitionComplete(element, active, isTransitioning, callback) {\\r\\n if (active) {\\r\\n $(active).removeClass(ClassName.ACTIVE);\\r\\n\\r\\n var dropdownChild = $(active).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];\\r\\n\\r\\n if (dropdownChild) {\\r\\n $(dropdownChild).removeClass(ClassName.ACTIVE);\\r\\n }\\r\\n\\r\\n active.setAttribute('aria-expanded', false);\\r\\n }\\r\\n\\r\\n $(element).addClass(ClassName.ACTIVE);\\r\\n element.setAttribute('aria-expanded', true);\\r\\n\\r\\n if (isTransitioning) {\\r\\n Util.reflow(element);\\r\\n $(element).addClass(ClassName.IN);\\r\\n } else {\\r\\n $(element).removeClass(ClassName.FADE);\\r\\n }\\r\\n\\r\\n if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\\r\\n\\r\\n var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];\\r\\n if (dropdownElement) {\\r\\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);\\r\\n }\\r\\n\\r\\n element.setAttribute('aria-expanded', true);\\r\\n }\\r\\n\\r\\n if (callback) {\\r\\n callback();\\r\\n }\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var $this = $(this);\\r\\n var data = $this.data(DATA_KEY);\\r\\n\\r\\n if (!data) {\\r\\n data = data = new Tab(this);\\r\\n $this.data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Tab;\\r\\n })();\\r\\n\\r\\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\\r\\n event.preventDefault();\\r\\n Tab._jQueryInterface.call($(this), 'show');\\r\\n });\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n $.fn[NAME] = Tab._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Tab;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Tab._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Tab;\\r\\n})(jQuery);\\r\\n\\r\\n/* global Tether */\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): tooltip.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Tooltip = (function ($) {\\r\\n\\r\\n /**\\r\\n * Check for Tether dependency\\r\\n * Tether - http://github.hubspot.com/tether/\\r\\n */\\r\\n if (window.Tether === undefined) {\\r\\n throw new Error('Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)');\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'tooltip';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.tooltip';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n var TRANSITION_DURATION = 150;\\r\\n var CLASS_PREFIX = 'bs-tether';\\r\\n\\r\\n var Default = {\\r\\n animation: true,\\r\\n template: '<div class=\\\"tooltip\\\" role=\\\"tooltip\\\">' + '<div class=\\\"tooltip-arrow\\\"></div>' + '<div class=\\\"tooltip-inner\\\"></div></div>',\\r\\n trigger: 'hover focus',\\r\\n title: '',\\r\\n delay: 0,\\r\\n html: false,\\r\\n selector: false,\\r\\n placement: 'top',\\r\\n offset: '0 0',\\r\\n constraints: []\\r\\n };\\r\\n\\r\\n var DefaultType = {\\r\\n animation: 'boolean',\\r\\n template: 'string',\\r\\n title: '(string|element|function)',\\r\\n trigger: 'string',\\r\\n delay: '(number|object)',\\r\\n html: 'boolean',\\r\\n selector: '(string|boolean)',\\r\\n placement: '(string|function)',\\r\\n offset: 'string',\\r\\n constraints: 'array'\\r\\n };\\r\\n\\r\\n var AttachmentMap = {\\r\\n TOP: 'bottom center',\\r\\n RIGHT: 'middle left',\\r\\n BOTTOM: 'top center',\\r\\n LEFT: 'middle right'\\r\\n };\\r\\n\\r\\n var HoverState = {\\r\\n IN: 'in',\\r\\n OUT: 'out'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n INSERTED: 'inserted' + EVENT_KEY,\\r\\n CLICK: 'click' + EVENT_KEY,\\r\\n FOCUSIN: 'focusin' + EVENT_KEY,\\r\\n FOCUSOUT: 'focusout' + EVENT_KEY,\\r\\n MOUSEENTER: 'mouseenter' + EVENT_KEY,\\r\\n MOUSELEAVE: 'mouseleave' + EVENT_KEY\\r\\n };\\r\\n\\r\\n var ClassName = {\\r\\n FADE: 'fade',\\r\\n IN: 'in'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n TOOLTIP: '.tooltip',\\r\\n TOOLTIP_INNER: '.tooltip-inner'\\r\\n };\\r\\n\\r\\n var TetherClass = {\\r\\n element: false,\\r\\n enabled: false\\r\\n };\\r\\n\\r\\n var Trigger = {\\r\\n HOVER: 'hover',\\r\\n FOCUS: 'focus',\\r\\n CLICK: 'click',\\r\\n MANUAL: 'manual'\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Tooltip = (function () {\\r\\n function Tooltip(element, config) {\\r\\n _classCallCheck(this, Tooltip);\\r\\n\\r\\n // private\\r\\n this._isEnabled = true;\\r\\n this._timeout = 0;\\r\\n this._hoverState = '';\\r\\n this._activeTrigger = {};\\r\\n this._tether = null;\\r\\n\\r\\n // protected\\r\\n this.element = element;\\r\\n this.config = this._getConfig(config);\\r\\n this.tip = null;\\r\\n\\r\\n this._setListeners();\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n // getters\\r\\n\\r\\n _createClass(Tooltip, [{\\r\\n key: 'enable',\\r\\n\\r\\n // public\\r\\n\\r\\n value: function enable() {\\r\\n this._isEnabled = true;\\r\\n }\\r\\n }, {\\r\\n key: 'disable',\\r\\n value: function disable() {\\r\\n this._isEnabled = false;\\r\\n }\\r\\n }, {\\r\\n key: 'toggleEnabled',\\r\\n value: function toggleEnabled() {\\r\\n this._isEnabled = !this._isEnabled;\\r\\n }\\r\\n }, {\\r\\n key: 'toggle',\\r\\n value: function toggle(event) {\\r\\n if (event) {\\r\\n var dataKey = this.constructor.DATA_KEY;\\r\\n var context = $(event.currentTarget).data(dataKey);\\r\\n\\r\\n if (!context) {\\r\\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\\r\\n $(event.currentTarget).data(dataKey, context);\\r\\n }\\r\\n\\r\\n context._activeTrigger.click = !context._activeTrigger.click;\\r\\n\\r\\n if (context._isWithActiveTrigger()) {\\r\\n context._enter(null, context);\\r\\n } else {\\r\\n context._leave(null, context);\\r\\n }\\r\\n } else {\\r\\n\\r\\n if ($(this.getTipElement()).hasClass(ClassName.IN)) {\\r\\n this._leave(null, this);\\r\\n return;\\r\\n }\\r\\n\\r\\n this._enter(null, this);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'dispose',\\r\\n value: function dispose() {\\r\\n clearTimeout(this._timeout);\\r\\n\\r\\n this.cleanupTether();\\r\\n\\r\\n $.removeData(this.element, this.constructor.DATA_KEY);\\r\\n\\r\\n $(this.element).off(this.constructor.EVENT_KEY);\\r\\n\\r\\n if (this.tip) {\\r\\n $(this.tip).remove();\\r\\n }\\r\\n\\r\\n this._isEnabled = null;\\r\\n this._timeout = null;\\r\\n this._hoverState = null;\\r\\n this._activeTrigger = null;\\r\\n this._tether = null;\\r\\n\\r\\n this.element = null;\\r\\n this.config = null;\\r\\n this.tip = null;\\r\\n }\\r\\n }, {\\r\\n key: 'show',\\r\\n value: function show() {\\r\\n var _this16 = this;\\r\\n\\r\\n var showEvent = $.Event(this.constructor.Event.SHOW);\\r\\n\\r\\n if (this.isWithContent() && this._isEnabled) {\\r\\n $(this.element).trigger(showEvent);\\r\\n\\r\\n var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);\\r\\n\\r\\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var tip = this.getTipElement();\\r\\n var tipId = Util.getUID(this.constructor.NAME);\\r\\n\\r\\n tip.setAttribute('id', tipId);\\r\\n this.element.setAttribute('aria-describedby', tipId);\\r\\n\\r\\n this.setContent();\\r\\n\\r\\n if (this.config.animation) {\\r\\n $(tip).addClass(ClassName.FADE);\\r\\n }\\r\\n\\r\\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\\r\\n\\r\\n var attachment = this._getAttachment(placement);\\r\\n\\r\\n $(tip).data(this.constructor.DATA_KEY, this).appendTo(document.body);\\r\\n\\r\\n $(this.element).trigger(this.constructor.Event.INSERTED);\\r\\n\\r\\n this._tether = new Tether({\\r\\n attachment: attachment,\\r\\n element: tip,\\r\\n target: this.element,\\r\\n classes: TetherClass,\\r\\n classPrefix: CLASS_PREFIX,\\r\\n offset: this.config.offset,\\r\\n constraints: this.config.constraints,\\r\\n addTargetClasses: false\\r\\n });\\r\\n\\r\\n Util.reflow(tip);\\r\\n this._tether.position();\\r\\n\\r\\n $(tip).addClass(ClassName.IN);\\r\\n\\r\\n var complete = function complete() {\\r\\n var prevHoverState = _this16._hoverState;\\r\\n _this16._hoverState = null;\\r\\n\\r\\n $(_this16.element).trigger(_this16.constructor.Event.SHOWN);\\r\\n\\r\\n if (prevHoverState === HoverState.OUT) {\\r\\n _this16._leave(null, _this16);\\r\\n }\\r\\n };\\r\\n\\r\\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\\r\\n $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);\\r\\n return;\\r\\n }\\r\\n\\r\\n complete();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'hide',\\r\\n value: function hide(callback) {\\r\\n var _this17 = this;\\r\\n\\r\\n var tip = this.getTipElement();\\r\\n var hideEvent = $.Event(this.constructor.Event.HIDE);\\r\\n var complete = function complete() {\\r\\n if (_this17._hoverState !== HoverState.IN && tip.parentNode) {\\r\\n tip.parentNode.removeChild(tip);\\r\\n }\\r\\n\\r\\n _this17.element.removeAttribute('aria-describedby');\\r\\n $(_this17.element).trigger(_this17.constructor.Event.HIDDEN);\\r\\n _this17.cleanupTether();\\r\\n\\r\\n if (callback) {\\r\\n callback();\\r\\n }\\r\\n };\\r\\n\\r\\n $(this.element).trigger(hideEvent);\\r\\n\\r\\n if (hideEvent.isDefaultPrevented()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n $(tip).removeClass(ClassName.IN);\\r\\n\\r\\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\\r\\n\\r\\n $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);\\r\\n } else {\\r\\n complete();\\r\\n }\\r\\n\\r\\n this._hoverState = '';\\r\\n }\\r\\n\\r\\n // protected\\r\\n\\r\\n }, {\\r\\n key: 'isWithContent',\\r\\n value: function isWithContent() {\\r\\n return Boolean(this.getTitle());\\r\\n }\\r\\n }, {\\r\\n key: 'getTipElement',\\r\\n value: function getTipElement() {\\r\\n return this.tip = this.tip || $(this.config.template)[0];\\r\\n }\\r\\n }, {\\r\\n key: 'setContent',\\r\\n value: function setContent() {\\r\\n var $tip = $(this.getTipElement());\\r\\n\\r\\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());\\r\\n\\r\\n $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN);\\r\\n\\r\\n this.cleanupTether();\\r\\n }\\r\\n }, {\\r\\n key: 'setElementContent',\\r\\n value: function setElementContent($element, content) {\\r\\n var html = this.config.html;\\r\\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\\r\\n // content is a DOM node or a jQuery\\r\\n if (html) {\\r\\n if (!$(content).parent().is($element)) {\\r\\n $element.empty().append(content);\\r\\n }\\r\\n } else {\\r\\n $element.text($(content).text());\\r\\n }\\r\\n } else {\\r\\n $element[html ? 'html' : 'text'](content);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'getTitle',\\r\\n value: function getTitle() {\\r\\n var title = this.element.getAttribute('data-original-title');\\r\\n\\r\\n if (!title) {\\r\\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\\r\\n }\\r\\n\\r\\n return title;\\r\\n }\\r\\n }, {\\r\\n key: 'cleanupTether',\\r\\n value: function cleanupTether() {\\r\\n if (this._tether) {\\r\\n this._tether.destroy();\\r\\n }\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getAttachment',\\r\\n value: function _getAttachment(placement) {\\r\\n return AttachmentMap[placement.toUpperCase()];\\r\\n }\\r\\n }, {\\r\\n key: '_setListeners',\\r\\n value: function _setListeners() {\\r\\n var _this18 = this;\\r\\n\\r\\n var triggers = this.config.trigger.split(' ');\\r\\n\\r\\n triggers.forEach(function (trigger) {\\r\\n if (trigger === 'click') {\\r\\n $(_this18.element).on(_this18.constructor.Event.CLICK, _this18.config.selector, $.proxy(_this18.toggle, _this18));\\r\\n } else if (trigger !== Trigger.MANUAL) {\\r\\n var eventIn = trigger === Trigger.HOVER ? _this18.constructor.Event.MOUSEENTER : _this18.constructor.Event.FOCUSIN;\\r\\n var eventOut = trigger === Trigger.HOVER ? _this18.constructor.Event.MOUSELEAVE : _this18.constructor.Event.FOCUSOUT;\\r\\n\\r\\n $(_this18.element).on(eventIn, _this18.config.selector, $.proxy(_this18._enter, _this18)).on(eventOut, _this18.config.selector, $.proxy(_this18._leave, _this18));\\r\\n }\\r\\n });\\r\\n\\r\\n if (this.config.selector) {\\r\\n this.config = $.extend({}, this.config, {\\r\\n trigger: 'manual',\\r\\n selector: ''\\r\\n });\\r\\n } else {\\r\\n this._fixTitle();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_fixTitle',\\r\\n value: function _fixTitle() {\\r\\n var titleType = typeof this.element.getAttribute('data-original-title');\\r\\n if (this.element.getAttribute('title') || titleType !== 'string') {\\r\\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\\r\\n this.element.setAttribute('title', '');\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: '_enter',\\r\\n value: function _enter(event, context) {\\r\\n var dataKey = this.constructor.DATA_KEY;\\r\\n\\r\\n context = context || $(event.currentTarget).data(dataKey);\\r\\n\\r\\n if (!context) {\\r\\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\\r\\n $(event.currentTarget).data(dataKey, context);\\r\\n }\\r\\n\\r\\n if (event) {\\r\\n context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;\\r\\n }\\r\\n\\r\\n if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) {\\r\\n context._hoverState = HoverState.IN;\\r\\n return;\\r\\n }\\r\\n\\r\\n clearTimeout(context._timeout);\\r\\n\\r\\n context._hoverState = HoverState.IN;\\r\\n\\r\\n if (!context.config.delay || !context.config.delay.show) {\\r\\n context.show();\\r\\n return;\\r\\n }\\r\\n\\r\\n context._timeout = setTimeout(function () {\\r\\n if (context._hoverState === HoverState.IN) {\\r\\n context.show();\\r\\n }\\r\\n }, context.config.delay.show);\\r\\n }\\r\\n }, {\\r\\n key: '_leave',\\r\\n value: function _leave(event, context) {\\r\\n var dataKey = this.constructor.DATA_KEY;\\r\\n\\r\\n context = context || $(event.currentTarget).data(dataKey);\\r\\n\\r\\n if (!context) {\\r\\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\\r\\n $(event.currentTarget).data(dataKey, context);\\r\\n }\\r\\n\\r\\n if (event) {\\r\\n context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;\\r\\n }\\r\\n\\r\\n if (context._isWithActiveTrigger()) {\\r\\n return;\\r\\n }\\r\\n\\r\\n clearTimeout(context._timeout);\\r\\n\\r\\n context._hoverState = HoverState.OUT;\\r\\n\\r\\n if (!context.config.delay || !context.config.delay.hide) {\\r\\n context.hide();\\r\\n return;\\r\\n }\\r\\n\\r\\n context._timeout = setTimeout(function () {\\r\\n if (context._hoverState === HoverState.OUT) {\\r\\n context.hide();\\r\\n }\\r\\n }, context.config.delay.hide);\\r\\n }\\r\\n }, {\\r\\n key: '_isWithActiveTrigger',\\r\\n value: function _isWithActiveTrigger() {\\r\\n for (var trigger in this._activeTrigger) {\\r\\n if (this._activeTrigger[trigger]) {\\r\\n return true;\\r\\n }\\r\\n }\\r\\n\\r\\n return false;\\r\\n }\\r\\n }, {\\r\\n key: '_getConfig',\\r\\n value: function _getConfig(config) {\\r\\n config = $.extend({}, this.constructor.Default, $(this.element).data(), config);\\r\\n\\r\\n if (config.delay && typeof config.delay === 'number') {\\r\\n config.delay = {\\r\\n show: config.delay,\\r\\n hide: config.delay\\r\\n };\\r\\n }\\r\\n\\r\\n Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);\\r\\n\\r\\n return config;\\r\\n }\\r\\n }, {\\r\\n key: '_getDelegateConfig',\\r\\n value: function _getDelegateConfig() {\\r\\n var config = {};\\r\\n\\r\\n if (this.config) {\\r\\n for (var key in this.config) {\\r\\n if (this.constructor.Default[key] !== this.config[key]) {\\r\\n config[key] = this.config[key];\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n return config;\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n var _config = typeof config === 'object' ? config : null;\\r\\n\\r\\n if (!data && /destroy|hide/.test(config)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (!data) {\\r\\n data = new Tooltip(this, _config);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }, {\\r\\n key: 'NAME',\\r\\n get: function get() {\\r\\n return NAME;\\r\\n }\\r\\n }, {\\r\\n key: 'DATA_KEY',\\r\\n get: function get() {\\r\\n return DATA_KEY;\\r\\n }\\r\\n }, {\\r\\n key: 'Event',\\r\\n get: function get() {\\r\\n return Event;\\r\\n }\\r\\n }, {\\r\\n key: 'EVENT_KEY',\\r\\n get: function get() {\\r\\n return EVENT_KEY;\\r\\n }\\r\\n }, {\\r\\n key: 'DefaultType',\\r\\n get: function get() {\\r\\n return DefaultType;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Tooltip;\\r\\n })();\\r\\n\\r\\n $.fn[NAME] = Tooltip._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Tooltip;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Tooltip._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Tooltip;\\r\\n})(jQuery);\\r\\n\\r\\n/**\\r\\n * --------------------------------------------------------------------------\\r\\n * Bootstrap (v4.0.0-alpha.4): popover.js\\r\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\r\\n * --------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\nvar Popover = (function ($) {\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Constants\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var NAME = 'popover';\\r\\n var VERSION = '4.0.0-alpha.4';\\r\\n var DATA_KEY = 'bs.popover';\\r\\n var EVENT_KEY = '.' + DATA_KEY;\\r\\n var JQUERY_NO_CONFLICT = $.fn[NAME];\\r\\n\\r\\n var Default = $.extend({}, Tooltip.Default, {\\r\\n placement: 'right',\\r\\n trigger: 'click',\\r\\n content: '',\\r\\n template: '<div class=\\\"popover\\\" role=\\\"tooltip\\\">' + '<div class=\\\"popover-arrow\\\"></div>' + '<h3 class=\\\"popover-title\\\"></h3>' + '<div class=\\\"popover-content\\\"></div></div>'\\r\\n });\\r\\n\\r\\n var DefaultType = $.extend({}, Tooltip.DefaultType, {\\r\\n content: '(string|element|function)'\\r\\n });\\r\\n\\r\\n var ClassName = {\\r\\n FADE: 'fade',\\r\\n IN: 'in'\\r\\n };\\r\\n\\r\\n var Selector = {\\r\\n TITLE: '.popover-title',\\r\\n CONTENT: '.popover-content',\\r\\n ARROW: '.popover-arrow'\\r\\n };\\r\\n\\r\\n var Event = {\\r\\n HIDE: 'hide' + EVENT_KEY,\\r\\n HIDDEN: 'hidden' + EVENT_KEY,\\r\\n SHOW: 'show' + EVENT_KEY,\\r\\n SHOWN: 'shown' + EVENT_KEY,\\r\\n INSERTED: 'inserted' + EVENT_KEY,\\r\\n CLICK: 'click' + EVENT_KEY,\\r\\n FOCUSIN: 'focusin' + EVENT_KEY,\\r\\n FOCUSOUT: 'focusout' + EVENT_KEY,\\r\\n MOUSEENTER: 'mouseenter' + EVENT_KEY,\\r\\n MOUSELEAVE: 'mouseleave' + EVENT_KEY\\r\\n };\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * Class Definition\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n var Popover = (function (_Tooltip) {\\r\\n _inherits(Popover, _Tooltip);\\r\\n\\r\\n function Popover() {\\r\\n _classCallCheck(this, Popover);\\r\\n\\r\\n _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments);\\r\\n }\\r\\n\\r\\n /**\\r\\n * ------------------------------------------------------------------------\\r\\n * jQuery\\r\\n * ------------------------------------------------------------------------\\r\\n */\\r\\n\\r\\n _createClass(Popover, [{\\r\\n key: 'isWithContent',\\r\\n\\r\\n // overrides\\r\\n\\r\\n value: function isWithContent() {\\r\\n return this.getTitle() || this._getContent();\\r\\n }\\r\\n }, {\\r\\n key: 'getTipElement',\\r\\n value: function getTipElement() {\\r\\n return this.tip = this.tip || $(this.config.template)[0];\\r\\n }\\r\\n }, {\\r\\n key: 'setContent',\\r\\n value: function setContent() {\\r\\n var $tip = $(this.getTipElement());\\r\\n\\r\\n // we use append for html objects to maintain js events\\r\\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle());\\r\\n this.setElementContent($tip.find(Selector.CONTENT), this._getContent());\\r\\n\\r\\n $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN);\\r\\n\\r\\n this.cleanupTether();\\r\\n }\\r\\n\\r\\n // private\\r\\n\\r\\n }, {\\r\\n key: '_getContent',\\r\\n value: function _getContent() {\\r\\n return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);\\r\\n }\\r\\n\\r\\n // static\\r\\n\\r\\n }], [{\\r\\n key: '_jQueryInterface',\\r\\n value: function _jQueryInterface(config) {\\r\\n return this.each(function () {\\r\\n var data = $(this).data(DATA_KEY);\\r\\n var _config = typeof config === 'object' ? config : null;\\r\\n\\r\\n if (!data && /destroy|hide/.test(config)) {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (!data) {\\r\\n data = new Popover(this, _config);\\r\\n $(this).data(DATA_KEY, data);\\r\\n }\\r\\n\\r\\n if (typeof config === 'string') {\\r\\n if (data[config] === undefined) {\\r\\n throw new Error('No method named \\\"' + config + '\\\"');\\r\\n }\\r\\n data[config]();\\r\\n }\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'VERSION',\\r\\n\\r\\n // getters\\r\\n\\r\\n get: function get() {\\r\\n return VERSION;\\r\\n }\\r\\n }, {\\r\\n key: 'Default',\\r\\n get: function get() {\\r\\n return Default;\\r\\n }\\r\\n }, {\\r\\n key: 'NAME',\\r\\n get: function get() {\\r\\n return NAME;\\r\\n }\\r\\n }, {\\r\\n key: 'DATA_KEY',\\r\\n get: function get() {\\r\\n return DATA_KEY;\\r\\n }\\r\\n }, {\\r\\n key: 'Event',\\r\\n get: function get() {\\r\\n return Event;\\r\\n }\\r\\n }, {\\r\\n key: 'EVENT_KEY',\\r\\n get: function get() {\\r\\n return EVENT_KEY;\\r\\n }\\r\\n }, {\\r\\n key: 'DefaultType',\\r\\n get: function get() {\\r\\n return DefaultType;\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Popover;\\r\\n })(Tooltip);\\r\\n\\r\\n $.fn[NAME] = Popover._jQueryInterface;\\r\\n $.fn[NAME].Constructor = Popover;\\r\\n $.fn[NAME].noConflict = function () {\\r\\n $.fn[NAME] = JQUERY_NO_CONFLICT;\\r\\n return Popover._jQueryInterface;\\r\\n };\\r\\n\\r\\n return Popover;\\r\\n})(jQuery);\\r\\n\\r\\n}(jQuery);\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/~/raw-loader!D:/Duivan/HOME/Univ-Proj/~/source-map-loader!D:/Duivan/HOME/Univ-Proj/general/bootstrap/dist/js/bootstrap.js\n// module id = 1093\n// module chunks = 2","module.exports = \"/*!\\r\\n * jQuery JavaScript Library v3.1.1\\r\\n * https://jquery.com/\\r\\n *\\r\\n * Includes Sizzle.js\\r\\n * https://sizzlejs.com/\\r\\n *\\r\\n * Copyright jQuery Foundation and other contributors\\r\\n * Released under the MIT license\\r\\n * https://jquery.org/license\\r\\n *\\r\\n * Date: 2016-09-22T22:30Z\\r\\n */\\r\\n( function( global, factory ) {\\r\\n\\r\\n\\t\\\"use strict\\\";\\r\\n\\r\\n\\tif ( typeof module === \\\"object\\\" && typeof module.exports === \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t// For CommonJS and CommonJS-like environments where a proper `window`\\r\\n\\t\\t// is present, execute the factory and get jQuery.\\r\\n\\t\\t// For environments that do not have a `window` with a `document`\\r\\n\\t\\t// (such as Node.js), expose a factory as module.exports.\\r\\n\\t\\t// This accentuates the need for the creation of a real `window`.\\r\\n\\t\\t// e.g. var jQuery = require(\\\"jquery\\\")(window);\\r\\n\\t\\t// See ticket #14549 for more info.\\r\\n\\t\\tmodule.exports = global.document ?\\r\\n\\t\\t\\tfactory( global, true ) :\\r\\n\\t\\t\\tfunction( w ) {\\r\\n\\t\\t\\t\\tif ( !w.document ) {\\r\\n\\t\\t\\t\\t\\tthrow new Error( \\\"jQuery requires a window with a document\\\" );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn factory( w );\\r\\n\\t\\t\\t};\\r\\n\\t} else {\\r\\n\\t\\tfactory( global );\\r\\n\\t}\\r\\n\\r\\n// Pass this if window is not defined yet\\r\\n} )( typeof window !== \\\"undefined\\\" ? window : this, function( window, noGlobal ) {\\r\\n\\r\\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\\r\\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\\r\\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\\r\\n// enough that all such attempts are guarded in a try block.\\r\\n\\\"use strict\\\";\\r\\n\\r\\nvar arr = [];\\r\\n\\r\\nvar document = window.document;\\r\\n\\r\\nvar getProto = Object.getPrototypeOf;\\r\\n\\r\\nvar slice = arr.slice;\\r\\n\\r\\nvar concat = arr.concat;\\r\\n\\r\\nvar push = arr.push;\\r\\n\\r\\nvar indexOf = arr.indexOf;\\r\\n\\r\\nvar class2type = {};\\r\\n\\r\\nvar toString = class2type.toString;\\r\\n\\r\\nvar hasOwn = class2type.hasOwnProperty;\\r\\n\\r\\nvar fnToString = hasOwn.toString;\\r\\n\\r\\nvar ObjectFunctionString = fnToString.call( Object );\\r\\n\\r\\nvar support = {};\\r\\n\\r\\n\\r\\n\\r\\n\\tfunction DOMEval( code, doc ) {\\r\\n\\t\\tdoc = doc || document;\\r\\n\\r\\n\\t\\tvar script = doc.createElement( \\\"script\\\" );\\r\\n\\r\\n\\t\\tscript.text = code;\\r\\n\\t\\tdoc.head.appendChild( script ).parentNode.removeChild( script );\\r\\n\\t}\\r\\n/* global Symbol */\\r\\n// Defining this global in .eslintrc.json would create a danger of using the global\\r\\n// unguarded in another place, it seems safer to define global only for this module\\r\\n\\r\\n\\r\\n\\r\\nvar\\r\\n\\tversion = \\\"3.1.1\\\",\\r\\n\\r\\n\\t// Define a local copy of jQuery\\r\\n\\tjQuery = function( selector, context ) {\\r\\n\\r\\n\\t\\t// The jQuery object is actually just the init constructor 'enhanced'\\r\\n\\t\\t// Need init if jQuery is called (just allow error to be thrown if not included)\\r\\n\\t\\treturn new jQuery.fn.init( selector, context );\\r\\n\\t},\\r\\n\\r\\n\\t// Support: Android <=4.0 only\\r\\n\\t// Make sure we trim BOM and NBSP\\r\\n\\trtrim = /^[\\\\s\\\\uFEFF\\\\xA0]+|[\\\\s\\\\uFEFF\\\\xA0]+$/g,\\r\\n\\r\\n\\t// Matches dashed string for camelizing\\r\\n\\trmsPrefix = /^-ms-/,\\r\\n\\trdashAlpha = /-([a-z])/g,\\r\\n\\r\\n\\t// Used by jQuery.camelCase as callback to replace()\\r\\n\\tfcamelCase = function( all, letter ) {\\r\\n\\t\\treturn letter.toUpperCase();\\r\\n\\t};\\r\\n\\r\\njQuery.fn = jQuery.prototype = {\\r\\n\\r\\n\\t// The current version of jQuery being used\\r\\n\\tjquery: version,\\r\\n\\r\\n\\tconstructor: jQuery,\\r\\n\\r\\n\\t// The default length of a jQuery object is 0\\r\\n\\tlength: 0,\\r\\n\\r\\n\\ttoArray: function() {\\r\\n\\t\\treturn slice.call( this );\\r\\n\\t},\\r\\n\\r\\n\\t// Get the Nth element in the matched element set OR\\r\\n\\t// Get the whole matched element set as a clean array\\r\\n\\tget: function( num ) {\\r\\n\\r\\n\\t\\t// Return all the elements in a clean array\\r\\n\\t\\tif ( num == null ) {\\r\\n\\t\\t\\treturn slice.call( this );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Return just the one element from the set\\r\\n\\t\\treturn num < 0 ? this[ num + this.length ] : this[ num ];\\r\\n\\t},\\r\\n\\r\\n\\t// Take an array of elements and push it onto the stack\\r\\n\\t// (returning the new matched element set)\\r\\n\\tpushStack: function( elems ) {\\r\\n\\r\\n\\t\\t// Build a new jQuery matched element set\\r\\n\\t\\tvar ret = jQuery.merge( this.constructor(), elems );\\r\\n\\r\\n\\t\\t// Add the old object onto the stack (as a reference)\\r\\n\\t\\tret.prevObject = this;\\r\\n\\r\\n\\t\\t// Return the newly-formed element set\\r\\n\\t\\treturn ret;\\r\\n\\t},\\r\\n\\r\\n\\t// Execute a callback for every element in the matched set.\\r\\n\\teach: function( callback ) {\\r\\n\\t\\treturn jQuery.each( this, callback );\\r\\n\\t},\\r\\n\\r\\n\\tmap: function( callback ) {\\r\\n\\t\\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\\r\\n\\t\\t\\treturn callback.call( elem, i, elem );\\r\\n\\t\\t} ) );\\r\\n\\t},\\r\\n\\r\\n\\tslice: function() {\\r\\n\\t\\treturn this.pushStack( slice.apply( this, arguments ) );\\r\\n\\t},\\r\\n\\r\\n\\tfirst: function() {\\r\\n\\t\\treturn this.eq( 0 );\\r\\n\\t},\\r\\n\\r\\n\\tlast: function() {\\r\\n\\t\\treturn this.eq( -1 );\\r\\n\\t},\\r\\n\\r\\n\\teq: function( i ) {\\r\\n\\t\\tvar len = this.length,\\r\\n\\t\\t\\tj = +i + ( i < 0 ? len : 0 );\\r\\n\\t\\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\\r\\n\\t},\\r\\n\\r\\n\\tend: function() {\\r\\n\\t\\treturn this.prevObject || this.constructor();\\r\\n\\t},\\r\\n\\r\\n\\t// For internal use only.\\r\\n\\t// Behaves like an Array's method, not like a jQuery method.\\r\\n\\tpush: push,\\r\\n\\tsort: arr.sort,\\r\\n\\tsplice: arr.splice\\r\\n};\\r\\n\\r\\njQuery.extend = jQuery.fn.extend = function() {\\r\\n\\tvar options, name, src, copy, copyIsArray, clone,\\r\\n\\t\\ttarget = arguments[ 0 ] || {},\\r\\n\\t\\ti = 1,\\r\\n\\t\\tlength = arguments.length,\\r\\n\\t\\tdeep = false;\\r\\n\\r\\n\\t// Handle a deep copy situation\\r\\n\\tif ( typeof target === \\\"boolean\\\" ) {\\r\\n\\t\\tdeep = target;\\r\\n\\r\\n\\t\\t// Skip the boolean and the target\\r\\n\\t\\ttarget = arguments[ i ] || {};\\r\\n\\t\\ti++;\\r\\n\\t}\\r\\n\\r\\n\\t// Handle case when target is a string or something (possible in deep copy)\\r\\n\\tif ( typeof target !== \\\"object\\\" && !jQuery.isFunction( target ) ) {\\r\\n\\t\\ttarget = {};\\r\\n\\t}\\r\\n\\r\\n\\t// Extend jQuery itself if only one argument is passed\\r\\n\\tif ( i === length ) {\\r\\n\\t\\ttarget = this;\\r\\n\\t\\ti--;\\r\\n\\t}\\r\\n\\r\\n\\tfor ( ; i < length; i++ ) {\\r\\n\\r\\n\\t\\t// Only deal with non-null/undefined values\\r\\n\\t\\tif ( ( options = arguments[ i ] ) != null ) {\\r\\n\\r\\n\\t\\t\\t// Extend the base object\\r\\n\\t\\t\\tfor ( name in options ) {\\r\\n\\t\\t\\t\\tsrc = target[ name ];\\r\\n\\t\\t\\t\\tcopy = options[ name ];\\r\\n\\r\\n\\t\\t\\t\\t// Prevent never-ending loop\\r\\n\\t\\t\\t\\tif ( target === copy ) {\\r\\n\\t\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Recurse if we're merging plain objects or arrays\\r\\n\\t\\t\\t\\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\\r\\n\\t\\t\\t\\t\\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( copyIsArray ) {\\r\\n\\t\\t\\t\\t\\t\\tcopyIsArray = false;\\r\\n\\t\\t\\t\\t\\t\\tclone = src && jQuery.isArray( src ) ? src : [];\\r\\n\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\tclone = src && jQuery.isPlainObject( src ) ? src : {};\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Never move original objects, clone them\\r\\n\\t\\t\\t\\t\\ttarget[ name ] = jQuery.extend( deep, clone, copy );\\r\\n\\r\\n\\t\\t\\t\\t// Don't bring in undefined values\\r\\n\\t\\t\\t\\t} else if ( copy !== undefined ) {\\r\\n\\t\\t\\t\\t\\ttarget[ name ] = copy;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Return the modified object\\r\\n\\treturn target;\\r\\n};\\r\\n\\r\\njQuery.extend( {\\r\\n\\r\\n\\t// Unique for each copy of jQuery on the page\\r\\n\\texpando: \\\"jQuery\\\" + ( version + Math.random() ).replace( /\\\\D/g, \\\"\\\" ),\\r\\n\\r\\n\\t// Assume jQuery is ready without the ready module\\r\\n\\tisReady: true,\\r\\n\\r\\n\\terror: function( msg ) {\\r\\n\\t\\tthrow new Error( msg );\\r\\n\\t},\\r\\n\\r\\n\\tnoop: function() {},\\r\\n\\r\\n\\tisFunction: function( obj ) {\\r\\n\\t\\treturn jQuery.type( obj ) === \\\"function\\\";\\r\\n\\t},\\r\\n\\r\\n\\tisArray: Array.isArray,\\r\\n\\r\\n\\tisWindow: function( obj ) {\\r\\n\\t\\treturn obj != null && obj === obj.window;\\r\\n\\t},\\r\\n\\r\\n\\tisNumeric: function( obj ) {\\r\\n\\r\\n\\t\\t// As of jQuery 3.0, isNumeric is limited to\\r\\n\\t\\t// strings and numbers (primitives or objects)\\r\\n\\t\\t// that can be coerced to finite numbers (gh-2662)\\r\\n\\t\\tvar type = jQuery.type( obj );\\r\\n\\t\\treturn ( type === \\\"number\\\" || type === \\\"string\\\" ) &&\\r\\n\\r\\n\\t\\t\\t// parseFloat NaNs numeric-cast false positives (\\\"\\\")\\r\\n\\t\\t\\t// ...but misinterprets leading-number strings, particularly hex literals (\\\"0x...\\\")\\r\\n\\t\\t\\t// subtraction forces infinities to NaN\\r\\n\\t\\t\\t!isNaN( obj - parseFloat( obj ) );\\r\\n\\t},\\r\\n\\r\\n\\tisPlainObject: function( obj ) {\\r\\n\\t\\tvar proto, Ctor;\\r\\n\\r\\n\\t\\t// Detect obvious negatives\\r\\n\\t\\t// Use toString instead of jQuery.type to catch host objects\\r\\n\\t\\tif ( !obj || toString.call( obj ) !== \\\"[object Object]\\\" ) {\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tproto = getProto( obj );\\r\\n\\r\\n\\t\\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\\r\\n\\t\\tif ( !proto ) {\\r\\n\\t\\t\\treturn true;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Objects with prototype are plain iff they were constructed by a global Object function\\r\\n\\t\\tCtor = hasOwn.call( proto, \\\"constructor\\\" ) && proto.constructor;\\r\\n\\t\\treturn typeof Ctor === \\\"function\\\" && fnToString.call( Ctor ) === ObjectFunctionString;\\r\\n\\t},\\r\\n\\r\\n\\tisEmptyObject: function( obj ) {\\r\\n\\r\\n\\t\\t/* eslint-disable no-unused-vars */\\r\\n\\t\\t// See https://github.com/eslint/eslint/issues/6125\\r\\n\\t\\tvar name;\\r\\n\\r\\n\\t\\tfor ( name in obj ) {\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t}\\r\\n\\t\\treturn true;\\r\\n\\t},\\r\\n\\r\\n\\ttype: function( obj ) {\\r\\n\\t\\tif ( obj == null ) {\\r\\n\\t\\t\\treturn obj + \\\"\\\";\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Support: Android <=2.3 only (functionish RegExp)\\r\\n\\t\\treturn typeof obj === \\\"object\\\" || typeof obj === \\\"function\\\" ?\\r\\n\\t\\t\\tclass2type[ toString.call( obj ) ] || \\\"object\\\" :\\r\\n\\t\\t\\ttypeof obj;\\r\\n\\t},\\r\\n\\r\\n\\t// Evaluates a script in a global context\\r\\n\\tglobalEval: function( code ) {\\r\\n\\t\\tDOMEval( code );\\r\\n\\t},\\r\\n\\r\\n\\t// Convert dashed to camelCase; used by the css and data modules\\r\\n\\t// Support: IE <=9 - 11, Edge 12 - 13\\r\\n\\t// Microsoft forgot to hump their vendor prefix (#9572)\\r\\n\\tcamelCase: function( string ) {\\r\\n\\t\\treturn string.replace( rmsPrefix, \\\"ms-\\\" ).replace( rdashAlpha, fcamelCase );\\r\\n\\t},\\r\\n\\r\\n\\tnodeName: function( elem, name ) {\\r\\n\\t\\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\\r\\n\\t},\\r\\n\\r\\n\\teach: function( obj, callback ) {\\r\\n\\t\\tvar length, i = 0;\\r\\n\\r\\n\\t\\tif ( isArrayLike( obj ) ) {\\r\\n\\t\\t\\tlength = obj.length;\\r\\n\\t\\t\\tfor ( ; i < length; i++ ) {\\r\\n\\t\\t\\t\\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tfor ( i in obj ) {\\r\\n\\t\\t\\t\\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn obj;\\r\\n\\t},\\r\\n\\r\\n\\t// Support: Android <=4.0 only\\r\\n\\ttrim: function( text ) {\\r\\n\\t\\treturn text == null ?\\r\\n\\t\\t\\t\\\"\\\" :\\r\\n\\t\\t\\t( text + \\\"\\\" ).replace( rtrim, \\\"\\\" );\\r\\n\\t},\\r\\n\\r\\n\\t// results is for internal usage only\\r\\n\\tmakeArray: function( arr, results ) {\\r\\n\\t\\tvar ret = results || [];\\r\\n\\r\\n\\t\\tif ( arr != null ) {\\r\\n\\t\\t\\tif ( isArrayLike( Object( arr ) ) ) {\\r\\n\\t\\t\\t\\tjQuery.merge( ret,\\r\\n\\t\\t\\t\\t\\ttypeof arr === \\\"string\\\" ?\\r\\n\\t\\t\\t\\t\\t[ arr ] : arr\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tpush.call( ret, arr );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn ret;\\r\\n\\t},\\r\\n\\r\\n\\tinArray: function( elem, arr, i ) {\\r\\n\\t\\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\\r\\n\\t},\\r\\n\\r\\n\\t// Support: Android <=4.0 only, PhantomJS 1 only\\r\\n\\t// push.apply(_, arraylike) throws on ancient WebKit\\r\\n\\tmerge: function( first, second ) {\\r\\n\\t\\tvar len = +second.length,\\r\\n\\t\\t\\tj = 0,\\r\\n\\t\\t\\ti = first.length;\\r\\n\\r\\n\\t\\tfor ( ; j < len; j++ ) {\\r\\n\\t\\t\\tfirst[ i++ ] = second[ j ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tfirst.length = i;\\r\\n\\r\\n\\t\\treturn first;\\r\\n\\t},\\r\\n\\r\\n\\tgrep: function( elems, callback, invert ) {\\r\\n\\t\\tvar callbackInverse,\\r\\n\\t\\t\\tmatches = [],\\r\\n\\t\\t\\ti = 0,\\r\\n\\t\\t\\tlength = elems.length,\\r\\n\\t\\t\\tcallbackExpect = !invert;\\r\\n\\r\\n\\t\\t// Go through the array, only saving the items\\r\\n\\t\\t// that pass the validator function\\r\\n\\t\\tfor ( ; i < length; i++ ) {\\r\\n\\t\\t\\tcallbackInverse = !callback( elems[ i ], i );\\r\\n\\t\\t\\tif ( callbackInverse !== callbackExpect ) {\\r\\n\\t\\t\\t\\tmatches.push( elems[ i ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn matches;\\r\\n\\t},\\r\\n\\r\\n\\t// arg is for internal usage only\\r\\n\\tmap: function( elems, callback, arg ) {\\r\\n\\t\\tvar length, value,\\r\\n\\t\\t\\ti = 0,\\r\\n\\t\\t\\tret = [];\\r\\n\\r\\n\\t\\t// Go through the array, translating each of the items to their new values\\r\\n\\t\\tif ( isArrayLike( elems ) ) {\\r\\n\\t\\t\\tlength = elems.length;\\r\\n\\t\\t\\tfor ( ; i < length; i++ ) {\\r\\n\\t\\t\\t\\tvalue = callback( elems[ i ], i, arg );\\r\\n\\r\\n\\t\\t\\t\\tif ( value != null ) {\\r\\n\\t\\t\\t\\t\\tret.push( value );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t// Go through every key on the object,\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tfor ( i in elems ) {\\r\\n\\t\\t\\t\\tvalue = callback( elems[ i ], i, arg );\\r\\n\\r\\n\\t\\t\\t\\tif ( value != null ) {\\r\\n\\t\\t\\t\\t\\tret.push( value );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Flatten any nested arrays\\r\\n\\t\\treturn concat.apply( [], ret );\\r\\n\\t},\\r\\n\\r\\n\\t// A global GUID counter for objects\\r\\n\\tguid: 1,\\r\\n\\r\\n\\t// Bind a function to a context, optionally partially applying any\\r\\n\\t// arguments.\\r\\n\\tproxy: function( fn, context ) {\\r\\n\\t\\tvar tmp, args, proxy;\\r\\n\\r\\n\\t\\tif ( typeof context === \\\"string\\\" ) {\\r\\n\\t\\t\\ttmp = fn[ context ];\\r\\n\\t\\t\\tcontext = fn;\\r\\n\\t\\t\\tfn = tmp;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Quick check to determine if target is callable, in the spec\\r\\n\\t\\t// this throws a TypeError, but we will just return undefined.\\r\\n\\t\\tif ( !jQuery.isFunction( fn ) ) {\\r\\n\\t\\t\\treturn undefined;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Simulated bind\\r\\n\\t\\targs = slice.call( arguments, 2 );\\r\\n\\t\\tproxy = function() {\\r\\n\\t\\t\\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// Set the guid of unique handler to the same of original handler, so it can be removed\\r\\n\\t\\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\\r\\n\\r\\n\\t\\treturn proxy;\\r\\n\\t},\\r\\n\\r\\n\\tnow: Date.now,\\r\\n\\r\\n\\t// jQuery.support is not used in Core but other projects attach their\\r\\n\\t// properties to it so it needs to exist.\\r\\n\\tsupport: support\\r\\n} );\\r\\n\\r\\nif ( typeof Symbol === \\\"function\\\" ) {\\r\\n\\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\\r\\n}\\r\\n\\r\\n// Populate the class2type map\\r\\njQuery.each( \\\"Boolean Number String Function Array Date RegExp Object Error Symbol\\\".split( \\\" \\\" ),\\r\\nfunction( i, name ) {\\r\\n\\tclass2type[ \\\"[object \\\" + name + \\\"]\\\" ] = name.toLowerCase();\\r\\n} );\\r\\n\\r\\nfunction isArrayLike( obj ) {\\r\\n\\r\\n\\t// Support: real iOS 8.2 only (not reproducible in simulator)\\r\\n\\t// `in` check used to prevent JIT error (gh-2145)\\r\\n\\t// hasOwn isn't used here due to false negatives\\r\\n\\t// regarding Nodelist length in IE\\r\\n\\tvar length = !!obj && \\\"length\\\" in obj && obj.length,\\r\\n\\t\\ttype = jQuery.type( obj );\\r\\n\\r\\n\\tif ( type === \\\"function\\\" || jQuery.isWindow( obj ) ) {\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\r\\n\\treturn type === \\\"array\\\" || length === 0 ||\\r\\n\\t\\ttypeof length === \\\"number\\\" && length > 0 && ( length - 1 ) in obj;\\r\\n}\\r\\nvar Sizzle =\\r\\n/*!\\r\\n * Sizzle CSS Selector Engine v2.3.3\\r\\n * https://sizzlejs.com/\\r\\n *\\r\\n * Copyright jQuery Foundation and other contributors\\r\\n * Released under the MIT license\\r\\n * http://jquery.org/license\\r\\n *\\r\\n * Date: 2016-08-08\\r\\n */\\r\\n(function( window ) {\\r\\n\\r\\nvar i,\\r\\n\\tsupport,\\r\\n\\tExpr,\\r\\n\\tgetText,\\r\\n\\tisXML,\\r\\n\\ttokenize,\\r\\n\\tcompile,\\r\\n\\tselect,\\r\\n\\toutermostContext,\\r\\n\\tsortInput,\\r\\n\\thasDuplicate,\\r\\n\\r\\n\\t// Local document vars\\r\\n\\tsetDocument,\\r\\n\\tdocument,\\r\\n\\tdocElem,\\r\\n\\tdocumentIsHTML,\\r\\n\\trbuggyQSA,\\r\\n\\trbuggyMatches,\\r\\n\\tmatches,\\r\\n\\tcontains,\\r\\n\\r\\n\\t// Instance-specific data\\r\\n\\texpando = \\\"sizzle\\\" + 1 * new Date(),\\r\\n\\tpreferredDoc = window.document,\\r\\n\\tdirruns = 0,\\r\\n\\tdone = 0,\\r\\n\\tclassCache = createCache(),\\r\\n\\ttokenCache = createCache(),\\r\\n\\tcompilerCache = createCache(),\\r\\n\\tsortOrder = function( a, b ) {\\r\\n\\t\\tif ( a === b ) {\\r\\n\\t\\t\\thasDuplicate = true;\\r\\n\\t\\t}\\r\\n\\t\\treturn 0;\\r\\n\\t},\\r\\n\\r\\n\\t// Instance methods\\r\\n\\thasOwn = ({}).hasOwnProperty,\\r\\n\\tarr = [],\\r\\n\\tpop = arr.pop,\\r\\n\\tpush_native = arr.push,\\r\\n\\tpush = arr.push,\\r\\n\\tslice = arr.slice,\\r\\n\\t// Use a stripped-down indexOf as it's faster than native\\r\\n\\t// https://jsperf.com/thor-indexof-vs-for/5\\r\\n\\tindexOf = function( list, elem ) {\\r\\n\\t\\tvar i = 0,\\r\\n\\t\\t\\tlen = list.length;\\r\\n\\t\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\t\\tif ( list[i] === elem ) {\\r\\n\\t\\t\\t\\treturn i;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn -1;\\r\\n\\t},\\r\\n\\r\\n\\tbooleans = \\\"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\\\",\\r\\n\\r\\n\\t// Regular expressions\\r\\n\\r\\n\\t// http://www.w3.org/TR/css3-selectors/#whitespace\\r\\n\\twhitespace = \\\"[\\\\\\\\x20\\\\\\\\t\\\\\\\\r\\\\\\\\n\\\\\\\\f]\\\",\\r\\n\\r\\n\\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\\r\\n\\tidentifier = \\\"(?:\\\\\\\\\\\\\\\\.|[\\\\\\\\w-]|[^\\\\0-\\\\\\\\xa0])+\\\",\\r\\n\\r\\n\\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\\r\\n\\tattributes = \\\"\\\\\\\\[\\\" + whitespace + \\\"*(\\\" + identifier + \\\")(?:\\\" + whitespace +\\r\\n\\t\\t// Operator (capture 2)\\r\\n\\t\\t\\\"*([*^$|!~]?=)\\\" + whitespace +\\r\\n\\t\\t// \\\"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\\\"\\r\\n\\t\\t\\\"*(?:'((?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\\\\\\\\\'])*)'|\\\\\\\"((?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\\\\\\\\\\\\\\\\"])*)\\\\\\\"|(\\\" + identifier + \\\"))|)\\\" + whitespace +\\r\\n\\t\\t\\\"*\\\\\\\\]\\\",\\r\\n\\r\\n\\tpseudos = \\\":(\\\" + identifier + \\\")(?:\\\\\\\\((\\\" +\\r\\n\\t\\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\\r\\n\\t\\t// 1. quoted (capture 3; capture 4 or capture 5)\\r\\n\\t\\t\\\"('((?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\\\\\\\\\'])*)'|\\\\\\\"((?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\\\\\\\\\\\\\\\\"])*)\\\\\\\")|\\\" +\\r\\n\\t\\t// 2. simple (capture 6)\\r\\n\\t\\t\\\"((?:\\\\\\\\\\\\\\\\.|[^\\\\\\\\\\\\\\\\()[\\\\\\\\]]|\\\" + attributes + \\\")*)|\\\" +\\r\\n\\t\\t// 3. anything else (capture 2)\\r\\n\\t\\t\\\".*\\\" +\\r\\n\\t\\t\\\")\\\\\\\\)|)\\\",\\r\\n\\r\\n\\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\\r\\n\\trwhitespace = new RegExp( whitespace + \\\"+\\\", \\\"g\\\" ),\\r\\n\\trtrim = new RegExp( \\\"^\\\" + whitespace + \\\"+|((?:^|[^\\\\\\\\\\\\\\\\])(?:\\\\\\\\\\\\\\\\.)*)\\\" + whitespace + \\\"+$\\\", \\\"g\\\" ),\\r\\n\\r\\n\\trcomma = new RegExp( \\\"^\\\" + whitespace + \\\"*,\\\" + whitespace + \\\"*\\\" ),\\r\\n\\trcombinators = new RegExp( \\\"^\\\" + whitespace + \\\"*([>+~]|\\\" + whitespace + \\\")\\\" + whitespace + \\\"*\\\" ),\\r\\n\\r\\n\\trattributeQuotes = new RegExp( \\\"=\\\" + whitespace + \\\"*([^\\\\\\\\]'\\\\\\\"]*?)\\\" + whitespace + \\\"*\\\\\\\\]\\\", \\\"g\\\" ),\\r\\n\\r\\n\\trpseudo = new RegExp( pseudos ),\\r\\n\\tridentifier = new RegExp( \\\"^\\\" + identifier + \\\"$\\\" ),\\r\\n\\r\\n\\tmatchExpr = {\\r\\n\\t\\t\\\"ID\\\": new RegExp( \\\"^#(\\\" + identifier + \\\")\\\" ),\\r\\n\\t\\t\\\"CLASS\\\": new RegExp( \\\"^\\\\\\\\.(\\\" + identifier + \\\")\\\" ),\\r\\n\\t\\t\\\"TAG\\\": new RegExp( \\\"^(\\\" + identifier + \\\"|[*])\\\" ),\\r\\n\\t\\t\\\"ATTR\\\": new RegExp( \\\"^\\\" + attributes ),\\r\\n\\t\\t\\\"PSEUDO\\\": new RegExp( \\\"^\\\" + pseudos ),\\r\\n\\t\\t\\\"CHILD\\\": new RegExp( \\\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\\\\\(\\\" + whitespace +\\r\\n\\t\\t\\t\\\"*(even|odd|(([+-]|)(\\\\\\\\d*)n|)\\\" + whitespace + \\\"*(?:([+-]|)\\\" + whitespace +\\r\\n\\t\\t\\t\\\"*(\\\\\\\\d+)|))\\\" + whitespace + \\\"*\\\\\\\\)|)\\\", \\\"i\\\" ),\\r\\n\\t\\t\\\"bool\\\": new RegExp( \\\"^(?:\\\" + booleans + \\\")$\\\", \\\"i\\\" ),\\r\\n\\t\\t// For use in libraries implementing .is()\\r\\n\\t\\t// We use this for POS matching in `select`\\r\\n\\t\\t\\\"needsContext\\\": new RegExp( \\\"^\\\" + whitespace + \\\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\\\\\(\\\" +\\r\\n\\t\\t\\twhitespace + \\\"*((?:-\\\\\\\\d)?\\\\\\\\d*)\\\" + whitespace + \\\"*\\\\\\\\)|)(?=[^-]|$)\\\", \\\"i\\\" )\\r\\n\\t},\\r\\n\\r\\n\\trinputs = /^(?:input|select|textarea|button)$/i,\\r\\n\\trheader = /^h\\\\d$/i,\\r\\n\\r\\n\\trnative = /^[^{]+\\\\{\\\\s*\\\\[native \\\\w/,\\r\\n\\r\\n\\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\\r\\n\\trquickExpr = /^(?:#([\\\\w-]+)|(\\\\w+)|\\\\.([\\\\w-]+))$/,\\r\\n\\r\\n\\trsibling = /[+~]/,\\r\\n\\r\\n\\t// CSS escapes\\r\\n\\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\\r\\n\\trunescape = new RegExp( \\\"\\\\\\\\\\\\\\\\([\\\\\\\\da-f]{1,6}\\\" + whitespace + \\\"?|(\\\" + whitespace + \\\")|.)\\\", \\\"ig\\\" ),\\r\\n\\tfunescape = function( _, escaped, escapedWhitespace ) {\\r\\n\\t\\tvar high = \\\"0x\\\" + escaped - 0x10000;\\r\\n\\t\\t// NaN means non-codepoint\\r\\n\\t\\t// Support: Firefox<24\\r\\n\\t\\t// Workaround erroneous numeric interpretation of +\\\"0x\\\"\\r\\n\\t\\treturn high !== high || escapedWhitespace ?\\r\\n\\t\\t\\tescaped :\\r\\n\\t\\t\\thigh < 0 ?\\r\\n\\t\\t\\t\\t// BMP codepoint\\r\\n\\t\\t\\t\\tString.fromCharCode( high + 0x10000 ) :\\r\\n\\t\\t\\t\\t// Supplemental Plane codepoint (surrogate pair)\\r\\n\\t\\t\\t\\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\\r\\n\\t},\\r\\n\\r\\n\\t// CSS string/identifier serialization\\r\\n\\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\\r\\n\\trcssescape = /([\\\\0-\\\\x1f\\\\x7f]|^-?\\\\d)|^-$|[^\\\\0-\\\\x1f\\\\x7f-\\\\uFFFF\\\\w-]/g,\\r\\n\\tfcssescape = function( ch, asCodePoint ) {\\r\\n\\t\\tif ( asCodePoint ) {\\r\\n\\r\\n\\t\\t\\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\\r\\n\\t\\t\\tif ( ch === \\\"\\\\0\\\" ) {\\r\\n\\t\\t\\t\\treturn \\\"\\\\uFFFD\\\";\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Control characters and (dependent upon position) numbers get escaped as code points\\r\\n\\t\\t\\treturn ch.slice( 0, -1 ) + \\\"\\\\\\\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \\\" \\\";\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Other potentially-special ASCII characters get backslash-escaped\\r\\n\\t\\treturn \\\"\\\\\\\\\\\" + ch;\\r\\n\\t},\\r\\n\\r\\n\\t// Used for iframes\\r\\n\\t// See setDocument()\\r\\n\\t// Removing the function wrapper causes a \\\"Permission Denied\\\"\\r\\n\\t// error in IE\\r\\n\\tunloadHandler = function() {\\r\\n\\t\\tsetDocument();\\r\\n\\t},\\r\\n\\r\\n\\tdisabledAncestor = addCombinator(\\r\\n\\t\\tfunction( elem ) {\\r\\n\\t\\t\\treturn elem.disabled === true && (\\\"form\\\" in elem || \\\"label\\\" in elem);\\r\\n\\t\\t},\\r\\n\\t\\t{ dir: \\\"parentNode\\\", next: \\\"legend\\\" }\\r\\n\\t);\\r\\n\\r\\n// Optimize for push.apply( _, NodeList )\\r\\ntry {\\r\\n\\tpush.apply(\\r\\n\\t\\t(arr = slice.call( preferredDoc.childNodes )),\\r\\n\\t\\tpreferredDoc.childNodes\\r\\n\\t);\\r\\n\\t// Support: Android<4.0\\r\\n\\t// Detect silently failing push.apply\\r\\n\\tarr[ preferredDoc.childNodes.length ].nodeType;\\r\\n} catch ( e ) {\\r\\n\\tpush = { apply: arr.length ?\\r\\n\\r\\n\\t\\t// Leverage slice if possible\\r\\n\\t\\tfunction( target, els ) {\\r\\n\\t\\t\\tpush_native.apply( target, slice.call(els) );\\r\\n\\t\\t} :\\r\\n\\r\\n\\t\\t// Support: IE<9\\r\\n\\t\\t// Otherwise append directly\\r\\n\\t\\tfunction( target, els ) {\\r\\n\\t\\t\\tvar j = target.length,\\r\\n\\t\\t\\t\\ti = 0;\\r\\n\\t\\t\\t// Can't trust NodeList.length\\r\\n\\t\\t\\twhile ( (target[j++] = els[i++]) ) {}\\r\\n\\t\\t\\ttarget.length = j - 1;\\r\\n\\t\\t}\\r\\n\\t};\\r\\n}\\r\\n\\r\\nfunction Sizzle( selector, context, results, seed ) {\\r\\n\\tvar m, i, elem, nid, match, groups, newSelector,\\r\\n\\t\\tnewContext = context && context.ownerDocument,\\r\\n\\r\\n\\t\\t// nodeType defaults to 9, since context defaults to document\\r\\n\\t\\tnodeType = context ? context.nodeType : 9;\\r\\n\\r\\n\\tresults = results || [];\\r\\n\\r\\n\\t// Return early from calls with invalid selector or context\\r\\n\\tif ( typeof selector !== \\\"string\\\" || !selector ||\\r\\n\\t\\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\\r\\n\\r\\n\\t\\treturn results;\\r\\n\\t}\\r\\n\\r\\n\\t// Try to shortcut find operations (as opposed to filters) in HTML documents\\r\\n\\tif ( !seed ) {\\r\\n\\r\\n\\t\\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\\r\\n\\t\\t\\tsetDocument( context );\\r\\n\\t\\t}\\r\\n\\t\\tcontext = context || document;\\r\\n\\r\\n\\t\\tif ( documentIsHTML ) {\\r\\n\\r\\n\\t\\t\\t// If the selector is sufficiently simple, try using a \\\"get*By*\\\" DOM method\\r\\n\\t\\t\\t// (excepting DocumentFragment context, where the methods don't exist)\\r\\n\\t\\t\\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\\r\\n\\r\\n\\t\\t\\t\\t// ID selector\\r\\n\\t\\t\\t\\tif ( (m = match[1]) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Document context\\r\\n\\t\\t\\t\\t\\tif ( nodeType === 9 ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( (elem = context.getElementById( m )) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Support: IE, Opera, Webkit\\r\\n\\t\\t\\t\\t\\t\\t\\t// TODO: identify versions\\r\\n\\t\\t\\t\\t\\t\\t\\t// getElementById can match elements by name instead of ID\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( elem.id === m ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tresults.push( elem );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Element context\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Support: IE, Opera, Webkit\\r\\n\\t\\t\\t\\t\\t\\t// TODO: identify versions\\r\\n\\t\\t\\t\\t\\t\\t// getElementById can match elements by name instead of ID\\r\\n\\t\\t\\t\\t\\t\\tif ( newContext && (elem = newContext.getElementById( m )) &&\\r\\n\\t\\t\\t\\t\\t\\t\\tcontains( context, elem ) &&\\r\\n\\t\\t\\t\\t\\t\\t\\telem.id === m ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\tresults.push( elem );\\r\\n\\t\\t\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Type selector\\r\\n\\t\\t\\t\\t} else if ( match[2] ) {\\r\\n\\t\\t\\t\\t\\tpush.apply( results, context.getElementsByTagName( selector ) );\\r\\n\\t\\t\\t\\t\\treturn results;\\r\\n\\r\\n\\t\\t\\t\\t// Class selector\\r\\n\\t\\t\\t\\t} else if ( (m = match[3]) && support.getElementsByClassName &&\\r\\n\\t\\t\\t\\t\\tcontext.getElementsByClassName ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tpush.apply( results, context.getElementsByClassName( m ) );\\r\\n\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Take advantage of querySelectorAll\\r\\n\\t\\t\\tif ( support.qsa &&\\r\\n\\t\\t\\t\\t!compilerCache[ selector + \\\" \\\" ] &&\\r\\n\\t\\t\\t\\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\\r\\n\\r\\n\\t\\t\\t\\tif ( nodeType !== 1 ) {\\r\\n\\t\\t\\t\\t\\tnewContext = context;\\r\\n\\t\\t\\t\\t\\tnewSelector = selector;\\r\\n\\r\\n\\t\\t\\t\\t// qSA looks outside Element context, which is not what we want\\r\\n\\t\\t\\t\\t// Thanks to Andrew Dupont for this workaround technique\\r\\n\\t\\t\\t\\t// Support: IE <=8\\r\\n\\t\\t\\t\\t// Exclude object elements\\r\\n\\t\\t\\t\\t} else if ( context.nodeName.toLowerCase() !== \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Capture the context ID, setting it first if necessary\\r\\n\\t\\t\\t\\t\\tif ( (nid = context.getAttribute( \\\"id\\\" )) ) {\\r\\n\\t\\t\\t\\t\\t\\tnid = nid.replace( rcssescape, fcssescape );\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\tcontext.setAttribute( \\\"id\\\", (nid = expando) );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Prefix every selector in the list\\r\\n\\t\\t\\t\\t\\tgroups = tokenize( selector );\\r\\n\\t\\t\\t\\t\\ti = groups.length;\\r\\n\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\t\\tgroups[i] = \\\"#\\\" + nid + \\\" \\\" + toSelector( groups[i] );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tnewSelector = groups.join( \\\",\\\" );\\r\\n\\r\\n\\t\\t\\t\\t\\t// Expand context for sibling selectors\\r\\n\\t\\t\\t\\t\\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\\r\\n\\t\\t\\t\\t\\t\\tcontext;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tif ( newSelector ) {\\r\\n\\t\\t\\t\\t\\ttry {\\r\\n\\t\\t\\t\\t\\t\\tpush.apply( results,\\r\\n\\t\\t\\t\\t\\t\\t\\tnewContext.querySelectorAll( newSelector )\\r\\n\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t\\t} catch ( qsaError ) {\\r\\n\\t\\t\\t\\t\\t} finally {\\r\\n\\t\\t\\t\\t\\t\\tif ( nid === expando ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcontext.removeAttribute( \\\"id\\\" );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// All others\\r\\n\\treturn select( selector.replace( rtrim, \\\"$1\\\" ), context, results, seed );\\r\\n}\\r\\n\\r\\n/**\\r\\n * Create key-value caches of limited size\\r\\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\\r\\n *\\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\\r\\n *\\tdeleting the oldest entry\\r\\n */\\r\\nfunction createCache() {\\r\\n\\tvar keys = [];\\r\\n\\r\\n\\tfunction cache( key, value ) {\\r\\n\\t\\t// Use (key + \\\" \\\") to avoid collision with native prototype properties (see Issue #157)\\r\\n\\t\\tif ( keys.push( key + \\\" \\\" ) > Expr.cacheLength ) {\\r\\n\\t\\t\\t// Only keep the most recent entries\\r\\n\\t\\t\\tdelete cache[ keys.shift() ];\\r\\n\\t\\t}\\r\\n\\t\\treturn (cache[ key + \\\" \\\" ] = value);\\r\\n\\t}\\r\\n\\treturn cache;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Mark a function for special use by Sizzle\\r\\n * @param {Function} fn The function to mark\\r\\n */\\r\\nfunction markFunction( fn ) {\\r\\n\\tfn[ expando ] = true;\\r\\n\\treturn fn;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Support testing using an element\\r\\n * @param {Function} fn Passed the created element and returns a boolean result\\r\\n */\\r\\nfunction assert( fn ) {\\r\\n\\tvar el = document.createElement(\\\"fieldset\\\");\\r\\n\\r\\n\\ttry {\\r\\n\\t\\treturn !!fn( el );\\r\\n\\t} catch (e) {\\r\\n\\t\\treturn false;\\r\\n\\t} finally {\\r\\n\\t\\t// Remove from its parent by default\\r\\n\\t\\tif ( el.parentNode ) {\\r\\n\\t\\t\\tel.parentNode.removeChild( el );\\r\\n\\t\\t}\\r\\n\\t\\t// release memory in IE\\r\\n\\t\\tel = null;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Adds the same handler for all of the specified attrs\\r\\n * @param {String} attrs Pipe-separated list of attributes\\r\\n * @param {Function} handler The method that will be applied\\r\\n */\\r\\nfunction addHandle( attrs, handler ) {\\r\\n\\tvar arr = attrs.split(\\\"|\\\"),\\r\\n\\t\\ti = arr.length;\\r\\n\\r\\n\\twhile ( i-- ) {\\r\\n\\t\\tExpr.attrHandle[ arr[i] ] = handler;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Checks document order of two siblings\\r\\n * @param {Element} a\\r\\n * @param {Element} b\\r\\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\\r\\n */\\r\\nfunction siblingCheck( a, b ) {\\r\\n\\tvar cur = b && a,\\r\\n\\t\\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\\r\\n\\t\\t\\ta.sourceIndex - b.sourceIndex;\\r\\n\\r\\n\\t// Use IE sourceIndex if available on both nodes\\r\\n\\tif ( diff ) {\\r\\n\\t\\treturn diff;\\r\\n\\t}\\r\\n\\r\\n\\t// Check if b follows a\\r\\n\\tif ( cur ) {\\r\\n\\t\\twhile ( (cur = cur.nextSibling) ) {\\r\\n\\t\\t\\tif ( cur === b ) {\\r\\n\\t\\t\\t\\treturn -1;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn a ? 1 : -1;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns a function to use in pseudos for input types\\r\\n * @param {String} type\\r\\n */\\r\\nfunction createInputPseudo( type ) {\\r\\n\\treturn function( elem ) {\\r\\n\\t\\tvar name = elem.nodeName.toLowerCase();\\r\\n\\t\\treturn name === \\\"input\\\" && elem.type === type;\\r\\n\\t};\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns a function to use in pseudos for buttons\\r\\n * @param {String} type\\r\\n */\\r\\nfunction createButtonPseudo( type ) {\\r\\n\\treturn function( elem ) {\\r\\n\\t\\tvar name = elem.nodeName.toLowerCase();\\r\\n\\t\\treturn (name === \\\"input\\\" || name === \\\"button\\\") && elem.type === type;\\r\\n\\t};\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns a function to use in pseudos for :enabled/:disabled\\r\\n * @param {Boolean} disabled true for :disabled; false for :enabled\\r\\n */\\r\\nfunction createDisabledPseudo( disabled ) {\\r\\n\\r\\n\\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\\r\\n\\treturn function( elem ) {\\r\\n\\r\\n\\t\\t// Only certain elements can match :enabled or :disabled\\r\\n\\t\\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\\r\\n\\t\\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\\r\\n\\t\\tif ( \\\"form\\\" in elem ) {\\r\\n\\r\\n\\t\\t\\t// Check for inherited disabledness on relevant non-disabled elements:\\r\\n\\t\\t\\t// * listed form-associated elements in a disabled fieldset\\r\\n\\t\\t\\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\\r\\n\\t\\t\\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\\r\\n\\t\\t\\t// * option elements in a disabled optgroup\\r\\n\\t\\t\\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\\r\\n\\t\\t\\t// All such elements have a \\\"form\\\" property.\\r\\n\\t\\t\\tif ( elem.parentNode && elem.disabled === false ) {\\r\\n\\r\\n\\t\\t\\t\\t// Option elements defer to a parent optgroup if present\\r\\n\\t\\t\\t\\tif ( \\\"label\\\" in elem ) {\\r\\n\\t\\t\\t\\t\\tif ( \\\"label\\\" in elem.parentNode ) {\\r\\n\\t\\t\\t\\t\\t\\treturn elem.parentNode.disabled === disabled;\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\treturn elem.disabled === disabled;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Support: IE 6 - 11\\r\\n\\t\\t\\t\\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\\r\\n\\t\\t\\t\\treturn elem.isDisabled === disabled ||\\r\\n\\r\\n\\t\\t\\t\\t\\t// Where there is no isDisabled, check manually\\r\\n\\t\\t\\t\\t\\t/* jshint -W018 */\\r\\n\\t\\t\\t\\t\\telem.isDisabled !== !disabled &&\\r\\n\\t\\t\\t\\t\\t\\tdisabledAncestor( elem ) === disabled;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn elem.disabled === disabled;\\r\\n\\r\\n\\t\\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\\r\\n\\t\\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\\r\\n\\t\\t// even exist on them, let alone have a boolean value.\\r\\n\\t\\t} else if ( \\\"label\\\" in elem ) {\\r\\n\\t\\t\\treturn elem.disabled === disabled;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Remaining elements are neither :enabled nor :disabled\\r\\n\\t\\treturn false;\\r\\n\\t};\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns a function to use in pseudos for positionals\\r\\n * @param {Function} fn\\r\\n */\\r\\nfunction createPositionalPseudo( fn ) {\\r\\n\\treturn markFunction(function( argument ) {\\r\\n\\t\\targument = +argument;\\r\\n\\t\\treturn markFunction(function( seed, matches ) {\\r\\n\\t\\t\\tvar j,\\r\\n\\t\\t\\t\\tmatchIndexes = fn( [], seed.length, argument ),\\r\\n\\t\\t\\t\\ti = matchIndexes.length;\\r\\n\\r\\n\\t\\t\\t// Match elements found at the specified indexes\\r\\n\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\tif ( seed[ (j = matchIndexes[i]) ] ) {\\r\\n\\t\\t\\t\\t\\tseed[j] = !(matches[j] = seed[j]);\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t});\\r\\n\\t});\\r\\n}\\r\\n\\r\\n/**\\r\\n * Checks a node for validity as a Sizzle context\\r\\n * @param {Element|Object=} context\\r\\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\\r\\n */\\r\\nfunction testContext( context ) {\\r\\n\\treturn context && typeof context.getElementsByTagName !== \\\"undefined\\\" && context;\\r\\n}\\r\\n\\r\\n// Expose support vars for convenience\\r\\nsupport = Sizzle.support = {};\\r\\n\\r\\n/**\\r\\n * Detects XML nodes\\r\\n * @param {Element|Object} elem An element or a document\\r\\n * @returns {Boolean} True iff elem is a non-HTML XML node\\r\\n */\\r\\nisXML = Sizzle.isXML = function( elem ) {\\r\\n\\t// documentElement is verified for cases where it doesn't yet exist\\r\\n\\t// (such as loading iframes in IE - #4833)\\r\\n\\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\\r\\n\\treturn documentElement ? documentElement.nodeName !== \\\"HTML\\\" : false;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Sets document-related variables once based on the current document\\r\\n * @param {Element|Object} [doc] An element or document object to use to set the document\\r\\n * @returns {Object} Returns the current document\\r\\n */\\r\\nsetDocument = Sizzle.setDocument = function( node ) {\\r\\n\\tvar hasCompare, subWindow,\\r\\n\\t\\tdoc = node ? node.ownerDocument || node : preferredDoc;\\r\\n\\r\\n\\t// Return early if doc is invalid or already selected\\r\\n\\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\\r\\n\\t\\treturn document;\\r\\n\\t}\\r\\n\\r\\n\\t// Update global variables\\r\\n\\tdocument = doc;\\r\\n\\tdocElem = document.documentElement;\\r\\n\\tdocumentIsHTML = !isXML( document );\\r\\n\\r\\n\\t// Support: IE 9-11, Edge\\r\\n\\t// Accessing iframe documents after unload throws \\\"permission denied\\\" errors (jQuery #13936)\\r\\n\\tif ( preferredDoc !== document &&\\r\\n\\t\\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\\r\\n\\r\\n\\t\\t// Support: IE 11, Edge\\r\\n\\t\\tif ( subWindow.addEventListener ) {\\r\\n\\t\\t\\tsubWindow.addEventListener( \\\"unload\\\", unloadHandler, false );\\r\\n\\r\\n\\t\\t// Support: IE 9 - 10 only\\r\\n\\t\\t} else if ( subWindow.attachEvent ) {\\r\\n\\t\\t\\tsubWindow.attachEvent( \\\"onunload\\\", unloadHandler );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t/* Attributes\\r\\n\\t---------------------------------------------------------------------- */\\r\\n\\r\\n\\t// Support: IE<8\\r\\n\\t// Verify that getAttribute really returns attributes and not properties\\r\\n\\t// (excepting IE8 booleans)\\r\\n\\tsupport.attributes = assert(function( el ) {\\r\\n\\t\\tel.className = \\\"i\\\";\\r\\n\\t\\treturn !el.getAttribute(\\\"className\\\");\\r\\n\\t});\\r\\n\\r\\n\\t/* getElement(s)By*\\r\\n\\t---------------------------------------------------------------------- */\\r\\n\\r\\n\\t// Check if getElementsByTagName(\\\"*\\\") returns only elements\\r\\n\\tsupport.getElementsByTagName = assert(function( el ) {\\r\\n\\t\\tel.appendChild( document.createComment(\\\"\\\") );\\r\\n\\t\\treturn !el.getElementsByTagName(\\\"*\\\").length;\\r\\n\\t});\\r\\n\\r\\n\\t// Support: IE<9\\r\\n\\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\\r\\n\\r\\n\\t// Support: IE<10\\r\\n\\t// Check if getElementById returns elements by name\\r\\n\\t// The broken getElementById methods don't pick up programmatically-set names,\\r\\n\\t// so use a roundabout getElementsByName test\\r\\n\\tsupport.getById = assert(function( el ) {\\r\\n\\t\\tdocElem.appendChild( el ).id = expando;\\r\\n\\t\\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\\r\\n\\t});\\r\\n\\r\\n\\t// ID filter and find\\r\\n\\tif ( support.getById ) {\\r\\n\\t\\tExpr.filter[\\\"ID\\\"] = function( id ) {\\r\\n\\t\\t\\tvar attrId = id.replace( runescape, funescape );\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\treturn elem.getAttribute(\\\"id\\\") === attrId;\\r\\n\\t\\t\\t};\\r\\n\\t\\t};\\r\\n\\t\\tExpr.find[\\\"ID\\\"] = function( id, context ) {\\r\\n\\t\\t\\tif ( typeof context.getElementById !== \\\"undefined\\\" && documentIsHTML ) {\\r\\n\\t\\t\\t\\tvar elem = context.getElementById( id );\\r\\n\\t\\t\\t\\treturn elem ? [ elem ] : [];\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t} else {\\r\\n\\t\\tExpr.filter[\\\"ID\\\"] = function( id ) {\\r\\n\\t\\t\\tvar attrId = id.replace( runescape, funescape );\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\tvar node = typeof elem.getAttributeNode !== \\\"undefined\\\" &&\\r\\n\\t\\t\\t\\t\\telem.getAttributeNode(\\\"id\\\");\\r\\n\\t\\t\\t\\treturn node && node.value === attrId;\\r\\n\\t\\t\\t};\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// Support: IE 6 - 7 only\\r\\n\\t\\t// getElementById is not reliable as a find shortcut\\r\\n\\t\\tExpr.find[\\\"ID\\\"] = function( id, context ) {\\r\\n\\t\\t\\tif ( typeof context.getElementById !== \\\"undefined\\\" && documentIsHTML ) {\\r\\n\\t\\t\\t\\tvar node, i, elems,\\r\\n\\t\\t\\t\\t\\telem = context.getElementById( id );\\r\\n\\r\\n\\t\\t\\t\\tif ( elem ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Verify the id attribute\\r\\n\\t\\t\\t\\t\\tnode = elem.getAttributeNode(\\\"id\\\");\\r\\n\\t\\t\\t\\t\\tif ( node && node.value === id ) {\\r\\n\\t\\t\\t\\t\\t\\treturn [ elem ];\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Fall back on getElementsByName\\r\\n\\t\\t\\t\\t\\telems = context.getElementsByName( id );\\r\\n\\t\\t\\t\\t\\ti = 0;\\r\\n\\t\\t\\t\\t\\twhile ( (elem = elems[i++]) ) {\\r\\n\\t\\t\\t\\t\\t\\tnode = elem.getAttributeNode(\\\"id\\\");\\r\\n\\t\\t\\t\\t\\t\\tif ( node && node.value === id ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn [ elem ];\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn [];\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t}\\r\\n\\r\\n\\t// Tag\\r\\n\\tExpr.find[\\\"TAG\\\"] = support.getElementsByTagName ?\\r\\n\\t\\tfunction( tag, context ) {\\r\\n\\t\\t\\tif ( typeof context.getElementsByTagName !== \\\"undefined\\\" ) {\\r\\n\\t\\t\\t\\treturn context.getElementsByTagName( tag );\\r\\n\\r\\n\\t\\t\\t// DocumentFragment nodes don't have gEBTN\\r\\n\\t\\t\\t} else if ( support.qsa ) {\\r\\n\\t\\t\\t\\treturn context.querySelectorAll( tag );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} :\\r\\n\\r\\n\\t\\tfunction( tag, context ) {\\r\\n\\t\\t\\tvar elem,\\r\\n\\t\\t\\t\\ttmp = [],\\r\\n\\t\\t\\t\\ti = 0,\\r\\n\\t\\t\\t\\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\\r\\n\\t\\t\\t\\tresults = context.getElementsByTagName( tag );\\r\\n\\r\\n\\t\\t\\t// Filter out possible comments\\r\\n\\t\\t\\tif ( tag === \\\"*\\\" ) {\\r\\n\\t\\t\\t\\twhile ( (elem = results[i++]) ) {\\r\\n\\t\\t\\t\\t\\tif ( elem.nodeType === 1 ) {\\r\\n\\t\\t\\t\\t\\t\\ttmp.push( elem );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn tmp;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn results;\\r\\n\\t\\t};\\r\\n\\r\\n\\t// Class\\r\\n\\tExpr.find[\\\"CLASS\\\"] = support.getElementsByClassName && function( className, context ) {\\r\\n\\t\\tif ( typeof context.getElementsByClassName !== \\\"undefined\\\" && documentIsHTML ) {\\r\\n\\t\\t\\treturn context.getElementsByClassName( className );\\r\\n\\t\\t}\\r\\n\\t};\\r\\n\\r\\n\\t/* QSA/matchesSelector\\r\\n\\t---------------------------------------------------------------------- */\\r\\n\\r\\n\\t// QSA and matchesSelector support\\r\\n\\r\\n\\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\\r\\n\\trbuggyMatches = [];\\r\\n\\r\\n\\t// qSa(:focus) reports false when true (Chrome 21)\\r\\n\\t// We allow this because of a bug in IE8/9 that throws an error\\r\\n\\t// whenever `document.activeElement` is accessed on an iframe\\r\\n\\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\\r\\n\\t// See https://bugs.jquery.com/ticket/13378\\r\\n\\trbuggyQSA = [];\\r\\n\\r\\n\\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\\r\\n\\t\\t// Build QSA regex\\r\\n\\t\\t// Regex strategy adopted from Diego Perini\\r\\n\\t\\tassert(function( el ) {\\r\\n\\t\\t\\t// Select is set to empty string on purpose\\r\\n\\t\\t\\t// This is to test IE's treatment of not explicitly\\r\\n\\t\\t\\t// setting a boolean content attribute,\\r\\n\\t\\t\\t// since its presence should be enough\\r\\n\\t\\t\\t// https://bugs.jquery.com/ticket/12359\\r\\n\\t\\t\\tdocElem.appendChild( el ).innerHTML = \\\"<a id='\\\" + expando + \\\"'></a>\\\" +\\r\\n\\t\\t\\t\\t\\\"<select id='\\\" + expando + \\\"-\\\\r\\\\\\\\' msallowcapture=''>\\\" +\\r\\n\\t\\t\\t\\t\\\"<option selected=''></option></select>\\\";\\r\\n\\r\\n\\t\\t\\t// Support: IE8, Opera 11-12.16\\r\\n\\t\\t\\t// Nothing should be selected when empty strings follow ^= or $= or *=\\r\\n\\t\\t\\t// The test attribute must be unknown in Opera but \\\"safe\\\" for WinRT\\r\\n\\t\\t\\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\\r\\n\\t\\t\\tif ( el.querySelectorAll(\\\"[msallowcapture^='']\\\").length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push( \\\"[*^$]=\\\" + whitespace + \\\"*(?:''|\\\\\\\"\\\\\\\")\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Support: IE8\\r\\n\\t\\t\\t// Boolean attributes and \\\"value\\\" are not treated correctly\\r\\n\\t\\t\\tif ( !el.querySelectorAll(\\\"[selected]\\\").length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push( \\\"\\\\\\\\[\\\" + whitespace + \\\"*(?:value|\\\" + booleans + \\\")\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\\r\\n\\t\\t\\tif ( !el.querySelectorAll( \\\"[id~=\\\" + expando + \\\"-]\\\" ).length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push(\\\"~=\\\");\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Webkit/Opera - :checked should return selected option elements\\r\\n\\t\\t\\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\\r\\n\\t\\t\\t// IE8 throws error here and will not see later tests\\r\\n\\t\\t\\tif ( !el.querySelectorAll(\\\":checked\\\").length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push(\\\":checked\\\");\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Support: Safari 8+, iOS 8+\\r\\n\\t\\t\\t// https://bugs.webkit.org/show_bug.cgi?id=136851\\r\\n\\t\\t\\t// In-page `selector#id sibling-combinator selector` fails\\r\\n\\t\\t\\tif ( !el.querySelectorAll( \\\"a#\\\" + expando + \\\"+*\\\" ).length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push(\\\".#.+[+~]\\\");\\r\\n\\t\\t\\t}\\r\\n\\t\\t});\\r\\n\\r\\n\\t\\tassert(function( el ) {\\r\\n\\t\\t\\tel.innerHTML = \\\"<a href='' disabled='disabled'></a>\\\" +\\r\\n\\t\\t\\t\\t\\\"<select disabled='disabled'><option/></select>\\\";\\r\\n\\r\\n\\t\\t\\t// Support: Windows 8 Native Apps\\r\\n\\t\\t\\t// The type and name attributes are restricted during .innerHTML assignment\\r\\n\\t\\t\\tvar input = document.createElement(\\\"input\\\");\\r\\n\\t\\t\\tinput.setAttribute( \\\"type\\\", \\\"hidden\\\" );\\r\\n\\t\\t\\tel.appendChild( input ).setAttribute( \\\"name\\\", \\\"D\\\" );\\r\\n\\r\\n\\t\\t\\t// Support: IE8\\r\\n\\t\\t\\t// Enforce case-sensitivity of name attribute\\r\\n\\t\\t\\tif ( el.querySelectorAll(\\\"[name=d]\\\").length ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push( \\\"name\\\" + whitespace + \\\"*[*^$|!~]?=\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\\r\\n\\t\\t\\t// IE8 throws error here and will not see later tests\\r\\n\\t\\t\\tif ( el.querySelectorAll(\\\":enabled\\\").length !== 2 ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push( \\\":enabled\\\", \\\":disabled\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Support: IE9-11+\\r\\n\\t\\t\\t// IE's :disabled selector does not pick up the children of disabled fieldsets\\r\\n\\t\\t\\tdocElem.appendChild( el ).disabled = true;\\r\\n\\t\\t\\tif ( el.querySelectorAll(\\\":disabled\\\").length !== 2 ) {\\r\\n\\t\\t\\t\\trbuggyQSA.push( \\\":enabled\\\", \\\":disabled\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Opera 10-11 does not throw on post-comma invalid pseudos\\r\\n\\t\\t\\tel.querySelectorAll(\\\"*,:x\\\");\\r\\n\\t\\t\\trbuggyQSA.push(\\\",.*:\\\");\\r\\n\\t\\t});\\r\\n\\t}\\r\\n\\r\\n\\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\\r\\n\\t\\tdocElem.webkitMatchesSelector ||\\r\\n\\t\\tdocElem.mozMatchesSelector ||\\r\\n\\t\\tdocElem.oMatchesSelector ||\\r\\n\\t\\tdocElem.msMatchesSelector) )) ) {\\r\\n\\r\\n\\t\\tassert(function( el ) {\\r\\n\\t\\t\\t// Check to see if it's possible to do matchesSelector\\r\\n\\t\\t\\t// on a disconnected node (IE 9)\\r\\n\\t\\t\\tsupport.disconnectedMatch = matches.call( el, \\\"*\\\" );\\r\\n\\r\\n\\t\\t\\t// This should fail with an exception\\r\\n\\t\\t\\t// Gecko does not error, returns false instead\\r\\n\\t\\t\\tmatches.call( el, \\\"[s!='']:x\\\" );\\r\\n\\t\\t\\trbuggyMatches.push( \\\"!=\\\", pseudos );\\r\\n\\t\\t});\\r\\n\\t}\\r\\n\\r\\n\\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\\\"|\\\") );\\r\\n\\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\\\"|\\\") );\\r\\n\\r\\n\\t/* Contains\\r\\n\\t---------------------------------------------------------------------- */\\r\\n\\thasCompare = rnative.test( docElem.compareDocumentPosition );\\r\\n\\r\\n\\t// Element contains another\\r\\n\\t// Purposefully self-exclusive\\r\\n\\t// As in, an element does not contain itself\\r\\n\\tcontains = hasCompare || rnative.test( docElem.contains ) ?\\r\\n\\t\\tfunction( a, b ) {\\r\\n\\t\\t\\tvar adown = a.nodeType === 9 ? a.documentElement : a,\\r\\n\\t\\t\\t\\tbup = b && b.parentNode;\\r\\n\\t\\t\\treturn a === bup || !!( bup && bup.nodeType === 1 && (\\r\\n\\t\\t\\t\\tadown.contains ?\\r\\n\\t\\t\\t\\t\\tadown.contains( bup ) :\\r\\n\\t\\t\\t\\t\\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\\r\\n\\t\\t\\t));\\r\\n\\t\\t} :\\r\\n\\t\\tfunction( a, b ) {\\r\\n\\t\\t\\tif ( b ) {\\r\\n\\t\\t\\t\\twhile ( (b = b.parentNode) ) {\\r\\n\\t\\t\\t\\t\\tif ( b === a ) {\\r\\n\\t\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t};\\r\\n\\r\\n\\t/* Sorting\\r\\n\\t---------------------------------------------------------------------- */\\r\\n\\r\\n\\t// Document order sorting\\r\\n\\tsortOrder = hasCompare ?\\r\\n\\tfunction( a, b ) {\\r\\n\\r\\n\\t\\t// Flag for duplicate removal\\r\\n\\t\\tif ( a === b ) {\\r\\n\\t\\t\\thasDuplicate = true;\\r\\n\\t\\t\\treturn 0;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Sort on method existence if only one input has compareDocumentPosition\\r\\n\\t\\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\\r\\n\\t\\tif ( compare ) {\\r\\n\\t\\t\\treturn compare;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Calculate position if both inputs belong to the same document\\r\\n\\t\\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\\r\\n\\t\\t\\ta.compareDocumentPosition( b ) :\\r\\n\\r\\n\\t\\t\\t// Otherwise we know they are disconnected\\r\\n\\t\\t\\t1;\\r\\n\\r\\n\\t\\t// Disconnected nodes\\r\\n\\t\\tif ( compare & 1 ||\\r\\n\\t\\t\\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\\r\\n\\r\\n\\t\\t\\t// Choose the first element that is related to our preferred document\\r\\n\\t\\t\\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\\r\\n\\t\\t\\t\\treturn -1;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\\r\\n\\t\\t\\t\\treturn 1;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Maintain original order\\r\\n\\t\\t\\treturn sortInput ?\\r\\n\\t\\t\\t\\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\\r\\n\\t\\t\\t\\t0;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn compare & 4 ? -1 : 1;\\r\\n\\t} :\\r\\n\\tfunction( a, b ) {\\r\\n\\t\\t// Exit early if the nodes are identical\\r\\n\\t\\tif ( a === b ) {\\r\\n\\t\\t\\thasDuplicate = true;\\r\\n\\t\\t\\treturn 0;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tvar cur,\\r\\n\\t\\t\\ti = 0,\\r\\n\\t\\t\\taup = a.parentNode,\\r\\n\\t\\t\\tbup = b.parentNode,\\r\\n\\t\\t\\tap = [ a ],\\r\\n\\t\\t\\tbp = [ b ];\\r\\n\\r\\n\\t\\t// Parentless nodes are either documents or disconnected\\r\\n\\t\\tif ( !aup || !bup ) {\\r\\n\\t\\t\\treturn a === document ? -1 :\\r\\n\\t\\t\\t\\tb === document ? 1 :\\r\\n\\t\\t\\t\\taup ? -1 :\\r\\n\\t\\t\\t\\tbup ? 1 :\\r\\n\\t\\t\\t\\tsortInput ?\\r\\n\\t\\t\\t\\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\\r\\n\\t\\t\\t\\t0;\\r\\n\\r\\n\\t\\t// If the nodes are siblings, we can do a quick check\\r\\n\\t\\t} else if ( aup === bup ) {\\r\\n\\t\\t\\treturn siblingCheck( a, b );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Otherwise we need full lists of their ancestors for comparison\\r\\n\\t\\tcur = a;\\r\\n\\t\\twhile ( (cur = cur.parentNode) ) {\\r\\n\\t\\t\\tap.unshift( cur );\\r\\n\\t\\t}\\r\\n\\t\\tcur = b;\\r\\n\\t\\twhile ( (cur = cur.parentNode) ) {\\r\\n\\t\\t\\tbp.unshift( cur );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Walk down the tree looking for a discrepancy\\r\\n\\t\\twhile ( ap[i] === bp[i] ) {\\r\\n\\t\\t\\ti++;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn i ?\\r\\n\\t\\t\\t// Do a sibling check if the nodes have a common ancestor\\r\\n\\t\\t\\tsiblingCheck( ap[i], bp[i] ) :\\r\\n\\r\\n\\t\\t\\t// Otherwise nodes in our document sort first\\r\\n\\t\\t\\tap[i] === preferredDoc ? -1 :\\r\\n\\t\\t\\tbp[i] === preferredDoc ? 1 :\\r\\n\\t\\t\\t0;\\r\\n\\t};\\r\\n\\r\\n\\treturn document;\\r\\n};\\r\\n\\r\\nSizzle.matches = function( expr, elements ) {\\r\\n\\treturn Sizzle( expr, null, null, elements );\\r\\n};\\r\\n\\r\\nSizzle.matchesSelector = function( elem, expr ) {\\r\\n\\t// Set document vars if needed\\r\\n\\tif ( ( elem.ownerDocument || elem ) !== document ) {\\r\\n\\t\\tsetDocument( elem );\\r\\n\\t}\\r\\n\\r\\n\\t// Make sure that attribute selectors are quoted\\r\\n\\texpr = expr.replace( rattributeQuotes, \\\"='$1']\\\" );\\r\\n\\r\\n\\tif ( support.matchesSelector && documentIsHTML &&\\r\\n\\t\\t!compilerCache[ expr + \\\" \\\" ] &&\\r\\n\\t\\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\\r\\n\\t\\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\\r\\n\\r\\n\\t\\ttry {\\r\\n\\t\\t\\tvar ret = matches.call( elem, expr );\\r\\n\\r\\n\\t\\t\\t// IE 9's matchesSelector returns false on disconnected nodes\\r\\n\\t\\t\\tif ( ret || support.disconnectedMatch ||\\r\\n\\t\\t\\t\\t\\t// As well, disconnected nodes are said to be in a document\\r\\n\\t\\t\\t\\t\\t// fragment in IE 9\\r\\n\\t\\t\\t\\t\\telem.document && elem.document.nodeType !== 11 ) {\\r\\n\\t\\t\\t\\treturn ret;\\r\\n\\t\\t\\t}\\r\\n\\t\\t} catch (e) {}\\r\\n\\t}\\r\\n\\r\\n\\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\\r\\n};\\r\\n\\r\\nSizzle.contains = function( context, elem ) {\\r\\n\\t// Set document vars if needed\\r\\n\\tif ( ( context.ownerDocument || context ) !== document ) {\\r\\n\\t\\tsetDocument( context );\\r\\n\\t}\\r\\n\\treturn contains( context, elem );\\r\\n};\\r\\n\\r\\nSizzle.attr = function( elem, name ) {\\r\\n\\t// Set document vars if needed\\r\\n\\tif ( ( elem.ownerDocument || elem ) !== document ) {\\r\\n\\t\\tsetDocument( elem );\\r\\n\\t}\\r\\n\\r\\n\\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\\r\\n\\t\\t// Don't get fooled by Object.prototype properties (jQuery #13807)\\r\\n\\t\\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\\r\\n\\t\\t\\tfn( elem, name, !documentIsHTML ) :\\r\\n\\t\\t\\tundefined;\\r\\n\\r\\n\\treturn val !== undefined ?\\r\\n\\t\\tval :\\r\\n\\t\\tsupport.attributes || !documentIsHTML ?\\r\\n\\t\\t\\telem.getAttribute( name ) :\\r\\n\\t\\t\\t(val = elem.getAttributeNode(name)) && val.specified ?\\r\\n\\t\\t\\t\\tval.value :\\r\\n\\t\\t\\t\\tnull;\\r\\n};\\r\\n\\r\\nSizzle.escape = function( sel ) {\\r\\n\\treturn (sel + \\\"\\\").replace( rcssescape, fcssescape );\\r\\n};\\r\\n\\r\\nSizzle.error = function( msg ) {\\r\\n\\tthrow new Error( \\\"Syntax error, unrecognized expression: \\\" + msg );\\r\\n};\\r\\n\\r\\n/**\\r\\n * Document sorting and removing duplicates\\r\\n * @param {ArrayLike} results\\r\\n */\\r\\nSizzle.uniqueSort = function( results ) {\\r\\n\\tvar elem,\\r\\n\\t\\tduplicates = [],\\r\\n\\t\\tj = 0,\\r\\n\\t\\ti = 0;\\r\\n\\r\\n\\t// Unless we *know* we can detect duplicates, assume their presence\\r\\n\\thasDuplicate = !support.detectDuplicates;\\r\\n\\tsortInput = !support.sortStable && results.slice( 0 );\\r\\n\\tresults.sort( sortOrder );\\r\\n\\r\\n\\tif ( hasDuplicate ) {\\r\\n\\t\\twhile ( (elem = results[i++]) ) {\\r\\n\\t\\t\\tif ( elem === results[ i ] ) {\\r\\n\\t\\t\\t\\tj = duplicates.push( i );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\twhile ( j-- ) {\\r\\n\\t\\t\\tresults.splice( duplicates[ j ], 1 );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Clear input after sorting to release objects\\r\\n\\t// See https://github.com/jquery/sizzle/pull/225\\r\\n\\tsortInput = null;\\r\\n\\r\\n\\treturn results;\\r\\n};\\r\\n\\r\\n/**\\r\\n * Utility function for retrieving the text value of an array of DOM nodes\\r\\n * @param {Array|Element} elem\\r\\n */\\r\\ngetText = Sizzle.getText = function( elem ) {\\r\\n\\tvar node,\\r\\n\\t\\tret = \\\"\\\",\\r\\n\\t\\ti = 0,\\r\\n\\t\\tnodeType = elem.nodeType;\\r\\n\\r\\n\\tif ( !nodeType ) {\\r\\n\\t\\t// If no nodeType, this is expected to be an array\\r\\n\\t\\twhile ( (node = elem[i++]) ) {\\r\\n\\t\\t\\t// Do not traverse comment nodes\\r\\n\\t\\t\\tret += getText( node );\\r\\n\\t\\t}\\r\\n\\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\\r\\n\\t\\t// Use textContent for elements\\r\\n\\t\\t// innerText usage removed for consistency of new lines (jQuery #11153)\\r\\n\\t\\tif ( typeof elem.textContent === \\\"string\\\" ) {\\r\\n\\t\\t\\treturn elem.textContent;\\r\\n\\t\\t} else {\\r\\n\\t\\t\\t// Traverse its children\\r\\n\\t\\t\\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\\r\\n\\t\\t\\t\\tret += getText( elem );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t} else if ( nodeType === 3 || nodeType === 4 ) {\\r\\n\\t\\treturn elem.nodeValue;\\r\\n\\t}\\r\\n\\t// Do not include comment or processing instruction nodes\\r\\n\\r\\n\\treturn ret;\\r\\n};\\r\\n\\r\\nExpr = Sizzle.selectors = {\\r\\n\\r\\n\\t// Can be adjusted by the user\\r\\n\\tcacheLength: 50,\\r\\n\\r\\n\\tcreatePseudo: markFunction,\\r\\n\\r\\n\\tmatch: matchExpr,\\r\\n\\r\\n\\tattrHandle: {},\\r\\n\\r\\n\\tfind: {},\\r\\n\\r\\n\\trelative: {\\r\\n\\t\\t\\\">\\\": { dir: \\\"parentNode\\\", first: true },\\r\\n\\t\\t\\\" \\\": { dir: \\\"parentNode\\\" },\\r\\n\\t\\t\\\"+\\\": { dir: \\\"previousSibling\\\", first: true },\\r\\n\\t\\t\\\"~\\\": { dir: \\\"previousSibling\\\" }\\r\\n\\t},\\r\\n\\r\\n\\tpreFilter: {\\r\\n\\t\\t\\\"ATTR\\\": function( match ) {\\r\\n\\t\\t\\tmatch[1] = match[1].replace( runescape, funescape );\\r\\n\\r\\n\\t\\t\\t// Move the given value to match[3] whether quoted or unquoted\\r\\n\\t\\t\\tmatch[3] = ( match[3] || match[4] || match[5] || \\\"\\\" ).replace( runescape, funescape );\\r\\n\\r\\n\\t\\t\\tif ( match[2] === \\\"~=\\\" ) {\\r\\n\\t\\t\\t\\tmatch[3] = \\\" \\\" + match[3] + \\\" \\\";\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn match.slice( 0, 4 );\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"CHILD\\\": function( match ) {\\r\\n\\t\\t\\t/* matches from matchExpr[\\\"CHILD\\\"]\\r\\n\\t\\t\\t\\t1 type (only|nth|...)\\r\\n\\t\\t\\t\\t2 what (child|of-type)\\r\\n\\t\\t\\t\\t3 argument (even|odd|\\\\d*|\\\\d*n([+-]\\\\d+)?|...)\\r\\n\\t\\t\\t\\t4 xn-component of xn+y argument ([+-]?\\\\d*n|)\\r\\n\\t\\t\\t\\t5 sign of xn-component\\r\\n\\t\\t\\t\\t6 x of xn-component\\r\\n\\t\\t\\t\\t7 sign of y-component\\r\\n\\t\\t\\t\\t8 y of y-component\\r\\n\\t\\t\\t*/\\r\\n\\t\\t\\tmatch[1] = match[1].toLowerCase();\\r\\n\\r\\n\\t\\t\\tif ( match[1].slice( 0, 3 ) === \\\"nth\\\" ) {\\r\\n\\t\\t\\t\\t// nth-* requires argument\\r\\n\\t\\t\\t\\tif ( !match[3] ) {\\r\\n\\t\\t\\t\\t\\tSizzle.error( match[0] );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// numeric x and y parameters for Expr.filter.CHILD\\r\\n\\t\\t\\t\\t// remember that false/true cast respectively to 0/1\\r\\n\\t\\t\\t\\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \\\"even\\\" || match[3] === \\\"odd\\\" ) );\\r\\n\\t\\t\\t\\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \\\"odd\\\" );\\r\\n\\r\\n\\t\\t\\t// other types prohibit arguments\\r\\n\\t\\t\\t} else if ( match[3] ) {\\r\\n\\t\\t\\t\\tSizzle.error( match[0] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn match;\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"PSEUDO\\\": function( match ) {\\r\\n\\t\\t\\tvar excess,\\r\\n\\t\\t\\t\\tunquoted = !match[6] && match[2];\\r\\n\\r\\n\\t\\t\\tif ( matchExpr[\\\"CHILD\\\"].test( match[0] ) ) {\\r\\n\\t\\t\\t\\treturn null;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Accept quoted arguments as-is\\r\\n\\t\\t\\tif ( match[3] ) {\\r\\n\\t\\t\\t\\tmatch[2] = match[4] || match[5] || \\\"\\\";\\r\\n\\r\\n\\t\\t\\t// Strip excess characters from unquoted arguments\\r\\n\\t\\t\\t} else if ( unquoted && rpseudo.test( unquoted ) &&\\r\\n\\t\\t\\t\\t// Get excess from tokenize (recursively)\\r\\n\\t\\t\\t\\t(excess = tokenize( unquoted, true )) &&\\r\\n\\t\\t\\t\\t// advance to the next closing parenthesis\\r\\n\\t\\t\\t\\t(excess = unquoted.indexOf( \\\")\\\", unquoted.length - excess ) - unquoted.length) ) {\\r\\n\\r\\n\\t\\t\\t\\t// excess is a negative index\\r\\n\\t\\t\\t\\tmatch[0] = match[0].slice( 0, excess );\\r\\n\\t\\t\\t\\tmatch[2] = unquoted.slice( 0, excess );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Return only captures needed by the pseudo filter method (type and argument)\\r\\n\\t\\t\\treturn match.slice( 0, 3 );\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tfilter: {\\r\\n\\r\\n\\t\\t\\\"TAG\\\": function( nodeNameSelector ) {\\r\\n\\t\\t\\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\\r\\n\\t\\t\\treturn nodeNameSelector === \\\"*\\\" ?\\r\\n\\t\\t\\t\\tfunction() { return true; } :\\r\\n\\t\\t\\t\\tfunction( elem ) {\\r\\n\\t\\t\\t\\t\\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\\r\\n\\t\\t\\t\\t};\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"CLASS\\\": function( className ) {\\r\\n\\t\\t\\tvar pattern = classCache[ className + \\\" \\\" ];\\r\\n\\r\\n\\t\\t\\treturn pattern ||\\r\\n\\t\\t\\t\\t(pattern = new RegExp( \\\"(^|\\\" + whitespace + \\\")\\\" + className + \\\"(\\\" + whitespace + \\\"|$)\\\" )) &&\\r\\n\\t\\t\\t\\tclassCache( className, function( elem ) {\\r\\n\\t\\t\\t\\t\\treturn pattern.test( typeof elem.className === \\\"string\\\" && elem.className || typeof elem.getAttribute !== \\\"undefined\\\" && elem.getAttribute(\\\"class\\\") || \\\"\\\" );\\r\\n\\t\\t\\t\\t});\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"ATTR\\\": function( name, operator, check ) {\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\tvar result = Sizzle.attr( elem, name );\\r\\n\\r\\n\\t\\t\\t\\tif ( result == null ) {\\r\\n\\t\\t\\t\\t\\treturn operator === \\\"!=\\\";\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tif ( !operator ) {\\r\\n\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tresult += \\\"\\\";\\r\\n\\r\\n\\t\\t\\t\\treturn operator === \\\"=\\\" ? result === check :\\r\\n\\t\\t\\t\\t\\toperator === \\\"!=\\\" ? result !== check :\\r\\n\\t\\t\\t\\t\\toperator === \\\"^=\\\" ? check && result.indexOf( check ) === 0 :\\r\\n\\t\\t\\t\\t\\toperator === \\\"*=\\\" ? check && result.indexOf( check ) > -1 :\\r\\n\\t\\t\\t\\t\\toperator === \\\"$=\\\" ? check && result.slice( -check.length ) === check :\\r\\n\\t\\t\\t\\t\\toperator === \\\"~=\\\" ? ( \\\" \\\" + result.replace( rwhitespace, \\\" \\\" ) + \\\" \\\" ).indexOf( check ) > -1 :\\r\\n\\t\\t\\t\\t\\toperator === \\\"|=\\\" ? result === check || result.slice( 0, check.length + 1 ) === check + \\\"-\\\" :\\r\\n\\t\\t\\t\\t\\tfalse;\\r\\n\\t\\t\\t};\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"CHILD\\\": function( type, what, argument, first, last ) {\\r\\n\\t\\t\\tvar simple = type.slice( 0, 3 ) !== \\\"nth\\\",\\r\\n\\t\\t\\t\\tforward = type.slice( -4 ) !== \\\"last\\\",\\r\\n\\t\\t\\t\\tofType = what === \\\"of-type\\\";\\r\\n\\r\\n\\t\\t\\treturn first === 1 && last === 0 ?\\r\\n\\r\\n\\t\\t\\t\\t// Shortcut for :nth-*(n)\\r\\n\\t\\t\\t\\tfunction( elem ) {\\r\\n\\t\\t\\t\\t\\treturn !!elem.parentNode;\\r\\n\\t\\t\\t\\t} :\\r\\n\\r\\n\\t\\t\\t\\tfunction( elem, context, xml ) {\\r\\n\\t\\t\\t\\t\\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\\r\\n\\t\\t\\t\\t\\t\\tdir = simple !== forward ? \\\"nextSibling\\\" : \\\"previousSibling\\\",\\r\\n\\t\\t\\t\\t\\t\\tparent = elem.parentNode,\\r\\n\\t\\t\\t\\t\\t\\tname = ofType && elem.nodeName.toLowerCase(),\\r\\n\\t\\t\\t\\t\\t\\tuseCache = !xml && !ofType,\\r\\n\\t\\t\\t\\t\\t\\tdiff = false;\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( parent ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// :(first|last|only)-(child|of-type)\\r\\n\\t\\t\\t\\t\\t\\tif ( simple ) {\\r\\n\\t\\t\\t\\t\\t\\t\\twhile ( dir ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnode = elem;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\twhile ( (node = node[ dir ]) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( ofType ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tnode.nodeName.toLowerCase() === name :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tnode.nodeType === 1 ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Reverse direction for :only-* (if we haven't yet done so)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tstart = dir = type === \\\"only\\\" && !start && \\\"nextSibling\\\";\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tstart = [ forward ? parent.firstChild : parent.lastChild ];\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// non-xml :nth-child(...) stores cache data on `parent`\\r\\n\\t\\t\\t\\t\\t\\tif ( forward && useCache ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Seek `elem` from a previously-cached index\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// ...in a gzip-friendly way\\r\\n\\t\\t\\t\\t\\t\\t\\tnode = parent;\\r\\n\\t\\t\\t\\t\\t\\t\\touterCache = node[ expando ] || (node[ expando ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Support: IE <9 only\\r\\n\\t\\t\\t\\t\\t\\t\\t// Defend against cloned attroperties (jQuery gh-1709)\\r\\n\\t\\t\\t\\t\\t\\t\\tuniqueCache = outerCache[ node.uniqueID ] ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t(outerCache[ node.uniqueID ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\tcache = uniqueCache[ type ] || [];\\r\\n\\t\\t\\t\\t\\t\\t\\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\\r\\n\\t\\t\\t\\t\\t\\t\\tdiff = nodeIndex && cache[ 2 ];\\r\\n\\t\\t\\t\\t\\t\\t\\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Fallback to seeking `elem` from the start\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t(diff = nodeIndex = 0) || start.pop()) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// When found, cache indexes on `parent` and break\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( node.nodeType === 1 && ++diff && node === elem ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t// Use previously-cached element index if available\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( useCache ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// ...in a gzip-friendly way\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnode = elem;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\touterCache = node[ expando ] || (node[ expando ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Support: IE <9 only\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Defend against cloned attroperties (jQuery gh-1709)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tuniqueCache = outerCache[ node.uniqueID ] ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(outerCache[ node.uniqueID ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tcache = uniqueCache[ type ] || [];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tdiff = nodeIndex;\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// xml :nth-child(...)\\r\\n\\t\\t\\t\\t\\t\\t\\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( diff === false ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Use the same loop as above to seek `elem` from the start\\r\\n\\t\\t\\t\\t\\t\\t\\t\\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t(diff = nodeIndex = 0) || start.pop()) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( ( ofType ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tnode.nodeName.toLowerCase() === name :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tnode.nodeType === 1 ) &&\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t++diff ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Cache the index of each encountered element\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( useCache ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\touterCache = node[ expando ] || (node[ expando ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: IE <9 only\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Defend against cloned attroperties (jQuery gh-1709)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tuniqueCache = outerCache[ node.uniqueID ] ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t(outerCache[ node.uniqueID ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tuniqueCache[ type ] = [ dirruns, diff ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( node === elem ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Incorporate the offset, then check against cycle size\\r\\n\\t\\t\\t\\t\\t\\tdiff -= last;\\r\\n\\t\\t\\t\\t\\t\\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t};\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"PSEUDO\\\": function( pseudo, argument ) {\\r\\n\\t\\t\\t// pseudo-class names are case-insensitive\\r\\n\\t\\t\\t// http://www.w3.org/TR/selectors/#pseudo-classes\\r\\n\\t\\t\\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\\r\\n\\t\\t\\t// Remember that setFilters inherits from pseudos\\r\\n\\t\\t\\tvar args,\\r\\n\\t\\t\\t\\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\\r\\n\\t\\t\\t\\t\\tSizzle.error( \\\"unsupported pseudo: \\\" + pseudo );\\r\\n\\r\\n\\t\\t\\t// The user may use createPseudo to indicate that\\r\\n\\t\\t\\t// arguments are needed to create the filter function\\r\\n\\t\\t\\t// just as Sizzle does\\r\\n\\t\\t\\tif ( fn[ expando ] ) {\\r\\n\\t\\t\\t\\treturn fn( argument );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// But maintain support for old signatures\\r\\n\\t\\t\\tif ( fn.length > 1 ) {\\r\\n\\t\\t\\t\\targs = [ pseudo, pseudo, \\\"\\\", argument ];\\r\\n\\t\\t\\t\\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\\r\\n\\t\\t\\t\\t\\tmarkFunction(function( seed, matches ) {\\r\\n\\t\\t\\t\\t\\t\\tvar idx,\\r\\n\\t\\t\\t\\t\\t\\t\\tmatched = fn( seed, argument ),\\r\\n\\t\\t\\t\\t\\t\\t\\ti = matched.length;\\r\\n\\t\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tidx = indexOf( seed, matched[i] );\\r\\n\\t\\t\\t\\t\\t\\t\\tseed[ idx ] = !( matches[ idx ] = matched[i] );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}) :\\r\\n\\t\\t\\t\\t\\tfunction( elem ) {\\r\\n\\t\\t\\t\\t\\t\\treturn fn( elem, 0, args );\\r\\n\\t\\t\\t\\t\\t};\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn fn;\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tpseudos: {\\r\\n\\t\\t// Potentially complex pseudos\\r\\n\\t\\t\\\"not\\\": markFunction(function( selector ) {\\r\\n\\t\\t\\t// Trim the selector passed to compile\\r\\n\\t\\t\\t// to avoid treating leading and trailing\\r\\n\\t\\t\\t// spaces as combinators\\r\\n\\t\\t\\tvar input = [],\\r\\n\\t\\t\\t\\tresults = [],\\r\\n\\t\\t\\t\\tmatcher = compile( selector.replace( rtrim, \\\"$1\\\" ) );\\r\\n\\r\\n\\t\\t\\treturn matcher[ expando ] ?\\r\\n\\t\\t\\t\\tmarkFunction(function( seed, matches, context, xml ) {\\r\\n\\t\\t\\t\\t\\tvar elem,\\r\\n\\t\\t\\t\\t\\t\\tunmatched = matcher( seed, null, xml, [] ),\\r\\n\\t\\t\\t\\t\\t\\ti = seed.length;\\r\\n\\r\\n\\t\\t\\t\\t\\t// Match elements unmatched by `matcher`\\r\\n\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( (elem = unmatched[i]) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tseed[i] = !(matches[i] = elem);\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}) :\\r\\n\\t\\t\\t\\tfunction( elem, context, xml ) {\\r\\n\\t\\t\\t\\t\\tinput[0] = elem;\\r\\n\\t\\t\\t\\t\\tmatcher( input, null, xml, results );\\r\\n\\t\\t\\t\\t\\t// Don't keep the element (issue #299)\\r\\n\\t\\t\\t\\t\\tinput[0] = null;\\r\\n\\t\\t\\t\\t\\treturn !results.pop();\\r\\n\\t\\t\\t\\t};\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"has\\\": markFunction(function( selector ) {\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\treturn Sizzle( selector, elem ).length > 0;\\r\\n\\t\\t\\t};\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"contains\\\": markFunction(function( text ) {\\r\\n\\t\\t\\ttext = text.replace( runescape, funescape );\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\\r\\n\\t\\t\\t};\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t// \\\"Whether an element is represented by a :lang() selector\\r\\n\\t\\t// is based solely on the element's language value\\r\\n\\t\\t// being equal to the identifier C,\\r\\n\\t\\t// or beginning with the identifier C immediately followed by \\\"-\\\".\\r\\n\\t\\t// The matching of C against the element's language value is performed case-insensitively.\\r\\n\\t\\t// The identifier C does not have to be a valid language name.\\\"\\r\\n\\t\\t// http://www.w3.org/TR/selectors/#lang-pseudo\\r\\n\\t\\t\\\"lang\\\": markFunction( function( lang ) {\\r\\n\\t\\t\\t// lang value must be a valid identifier\\r\\n\\t\\t\\tif ( !ridentifier.test(lang || \\\"\\\") ) {\\r\\n\\t\\t\\t\\tSizzle.error( \\\"unsupported lang: \\\" + lang );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tlang = lang.replace( runescape, funescape ).toLowerCase();\\r\\n\\t\\t\\treturn function( elem ) {\\r\\n\\t\\t\\t\\tvar elemLang;\\r\\n\\t\\t\\t\\tdo {\\r\\n\\t\\t\\t\\t\\tif ( (elemLang = documentIsHTML ?\\r\\n\\t\\t\\t\\t\\t\\telem.lang :\\r\\n\\t\\t\\t\\t\\t\\telem.getAttribute(\\\"xml:lang\\\") || elem.getAttribute(\\\"lang\\\")) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\telemLang = elemLang.toLowerCase();\\r\\n\\t\\t\\t\\t\\t\\treturn elemLang === lang || elemLang.indexOf( lang + \\\"-\\\" ) === 0;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\\r\\n\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t};\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t// Miscellaneous\\r\\n\\t\\t\\\"target\\\": function( elem ) {\\r\\n\\t\\t\\tvar hash = window.location && window.location.hash;\\r\\n\\t\\t\\treturn hash && hash.slice( 1 ) === elem.id;\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"root\\\": function( elem ) {\\r\\n\\t\\t\\treturn elem === docElem;\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"focus\\\": function( elem ) {\\r\\n\\t\\t\\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Boolean properties\\r\\n\\t\\t\\\"enabled\\\": createDisabledPseudo( false ),\\r\\n\\t\\t\\\"disabled\\\": createDisabledPseudo( true ),\\r\\n\\r\\n\\t\\t\\\"checked\\\": function( elem ) {\\r\\n\\t\\t\\t// In CSS3, :checked should return both checked and selected elements\\r\\n\\t\\t\\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\\r\\n\\t\\t\\tvar nodeName = elem.nodeName.toLowerCase();\\r\\n\\t\\t\\treturn (nodeName === \\\"input\\\" && !!elem.checked) || (nodeName === \\\"option\\\" && !!elem.selected);\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"selected\\\": function( elem ) {\\r\\n\\t\\t\\t// Accessing this property makes selected-by-default\\r\\n\\t\\t\\t// options in Safari work properly\\r\\n\\t\\t\\tif ( elem.parentNode ) {\\r\\n\\t\\t\\t\\telem.parentNode.selectedIndex;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn elem.selected === true;\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Contents\\r\\n\\t\\t\\\"empty\\\": function( elem ) {\\r\\n\\t\\t\\t// http://www.w3.org/TR/selectors/#empty-pseudo\\r\\n\\t\\t\\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\\r\\n\\t\\t\\t// but not by others (comment: 8; processing instruction: 7; etc.)\\r\\n\\t\\t\\t// nodeType < 6 works because attributes (2) do not appear as children\\r\\n\\t\\t\\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\\r\\n\\t\\t\\t\\tif ( elem.nodeType < 6 ) {\\r\\n\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn true;\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"parent\\\": function( elem ) {\\r\\n\\t\\t\\treturn !Expr.pseudos[\\\"empty\\\"]( elem );\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Element/input types\\r\\n\\t\\t\\\"header\\\": function( elem ) {\\r\\n\\t\\t\\treturn rheader.test( elem.nodeName );\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"input\\\": function( elem ) {\\r\\n\\t\\t\\treturn rinputs.test( elem.nodeName );\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"button\\\": function( elem ) {\\r\\n\\t\\t\\tvar name = elem.nodeName.toLowerCase();\\r\\n\\t\\t\\treturn name === \\\"input\\\" && elem.type === \\\"button\\\" || name === \\\"button\\\";\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t\\\"text\\\": function( elem ) {\\r\\n\\t\\t\\tvar attr;\\r\\n\\t\\t\\treturn elem.nodeName.toLowerCase() === \\\"input\\\" &&\\r\\n\\t\\t\\t\\telem.type === \\\"text\\\" &&\\r\\n\\r\\n\\t\\t\\t\\t// Support: IE<8\\r\\n\\t\\t\\t\\t// New HTML5 attribute values (e.g., \\\"search\\\") appear with elem.type === \\\"text\\\"\\r\\n\\t\\t\\t\\t( (attr = elem.getAttribute(\\\"type\\\")) == null || attr.toLowerCase() === \\\"text\\\" );\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Position-in-collection\\r\\n\\t\\t\\\"first\\\": createPositionalPseudo(function() {\\r\\n\\t\\t\\treturn [ 0 ];\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"last\\\": createPositionalPseudo(function( matchIndexes, length ) {\\r\\n\\t\\t\\treturn [ length - 1 ];\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"eq\\\": createPositionalPseudo(function( matchIndexes, length, argument ) {\\r\\n\\t\\t\\treturn [ argument < 0 ? argument + length : argument ];\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"even\\\": createPositionalPseudo(function( matchIndexes, length ) {\\r\\n\\t\\t\\tvar i = 0;\\r\\n\\t\\t\\tfor ( ; i < length; i += 2 ) {\\r\\n\\t\\t\\t\\tmatchIndexes.push( i );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn matchIndexes;\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"odd\\\": createPositionalPseudo(function( matchIndexes, length ) {\\r\\n\\t\\t\\tvar i = 1;\\r\\n\\t\\t\\tfor ( ; i < length; i += 2 ) {\\r\\n\\t\\t\\t\\tmatchIndexes.push( i );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn matchIndexes;\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"lt\\\": createPositionalPseudo(function( matchIndexes, length, argument ) {\\r\\n\\t\\t\\tvar i = argument < 0 ? argument + length : argument;\\r\\n\\t\\t\\tfor ( ; --i >= 0; ) {\\r\\n\\t\\t\\t\\tmatchIndexes.push( i );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn matchIndexes;\\r\\n\\t\\t}),\\r\\n\\r\\n\\t\\t\\\"gt\\\": createPositionalPseudo(function( matchIndexes, length, argument ) {\\r\\n\\t\\t\\tvar i = argument < 0 ? argument + length : argument;\\r\\n\\t\\t\\tfor ( ; ++i < length; ) {\\r\\n\\t\\t\\t\\tmatchIndexes.push( i );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn matchIndexes;\\r\\n\\t\\t})\\r\\n\\t}\\r\\n};\\r\\n\\r\\nExpr.pseudos[\\\"nth\\\"] = Expr.pseudos[\\\"eq\\\"];\\r\\n\\r\\n// Add button/input type pseudos\\r\\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\\r\\n\\tExpr.pseudos[ i ] = createInputPseudo( i );\\r\\n}\\r\\nfor ( i in { submit: true, reset: true } ) {\\r\\n\\tExpr.pseudos[ i ] = createButtonPseudo( i );\\r\\n}\\r\\n\\r\\n// Easy API for creating new setFilters\\r\\nfunction setFilters() {}\\r\\nsetFilters.prototype = Expr.filters = Expr.pseudos;\\r\\nExpr.setFilters = new setFilters();\\r\\n\\r\\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\\r\\n\\tvar matched, match, tokens, type,\\r\\n\\t\\tsoFar, groups, preFilters,\\r\\n\\t\\tcached = tokenCache[ selector + \\\" \\\" ];\\r\\n\\r\\n\\tif ( cached ) {\\r\\n\\t\\treturn parseOnly ? 0 : cached.slice( 0 );\\r\\n\\t}\\r\\n\\r\\n\\tsoFar = selector;\\r\\n\\tgroups = [];\\r\\n\\tpreFilters = Expr.preFilter;\\r\\n\\r\\n\\twhile ( soFar ) {\\r\\n\\r\\n\\t\\t// Comma and first run\\r\\n\\t\\tif ( !matched || (match = rcomma.exec( soFar )) ) {\\r\\n\\t\\t\\tif ( match ) {\\r\\n\\t\\t\\t\\t// Don't consume trailing commas as valid\\r\\n\\t\\t\\t\\tsoFar = soFar.slice( match[0].length ) || soFar;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tgroups.push( (tokens = []) );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tmatched = false;\\r\\n\\r\\n\\t\\t// Combinators\\r\\n\\t\\tif ( (match = rcombinators.exec( soFar )) ) {\\r\\n\\t\\t\\tmatched = match.shift();\\r\\n\\t\\t\\ttokens.push({\\r\\n\\t\\t\\t\\tvalue: matched,\\r\\n\\t\\t\\t\\t// Cast descendant combinators to space\\r\\n\\t\\t\\t\\ttype: match[0].replace( rtrim, \\\" \\\" )\\r\\n\\t\\t\\t});\\r\\n\\t\\t\\tsoFar = soFar.slice( matched.length );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Filters\\r\\n\\t\\tfor ( type in Expr.filter ) {\\r\\n\\t\\t\\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\\r\\n\\t\\t\\t\\t(match = preFilters[ type ]( match ))) ) {\\r\\n\\t\\t\\t\\tmatched = match.shift();\\r\\n\\t\\t\\t\\ttokens.push({\\r\\n\\t\\t\\t\\t\\tvalue: matched,\\r\\n\\t\\t\\t\\t\\ttype: type,\\r\\n\\t\\t\\t\\t\\tmatches: match\\r\\n\\t\\t\\t\\t});\\r\\n\\t\\t\\t\\tsoFar = soFar.slice( matched.length );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( !matched ) {\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Return the length of the invalid excess\\r\\n\\t// if we're just parsing\\r\\n\\t// Otherwise, throw an error or return tokens\\r\\n\\treturn parseOnly ?\\r\\n\\t\\tsoFar.length :\\r\\n\\t\\tsoFar ?\\r\\n\\t\\t\\tSizzle.error( selector ) :\\r\\n\\t\\t\\t// Cache the tokens\\r\\n\\t\\t\\ttokenCache( selector, groups ).slice( 0 );\\r\\n};\\r\\n\\r\\nfunction toSelector( tokens ) {\\r\\n\\tvar i = 0,\\r\\n\\t\\tlen = tokens.length,\\r\\n\\t\\tselector = \\\"\\\";\\r\\n\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\tselector += tokens[i].value;\\r\\n\\t}\\r\\n\\treturn selector;\\r\\n}\\r\\n\\r\\nfunction addCombinator( matcher, combinator, base ) {\\r\\n\\tvar dir = combinator.dir,\\r\\n\\t\\tskip = combinator.next,\\r\\n\\t\\tkey = skip || dir,\\r\\n\\t\\tcheckNonElements = base && key === \\\"parentNode\\\",\\r\\n\\t\\tdoneName = done++;\\r\\n\\r\\n\\treturn combinator.first ?\\r\\n\\t\\t// Check against closest ancestor/preceding element\\r\\n\\t\\tfunction( elem, context, xml ) {\\r\\n\\t\\t\\twhile ( (elem = elem[ dir ]) ) {\\r\\n\\t\\t\\t\\tif ( elem.nodeType === 1 || checkNonElements ) {\\r\\n\\t\\t\\t\\t\\treturn matcher( elem, context, xml );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t} :\\r\\n\\r\\n\\t\\t// Check against all ancestor/preceding elements\\r\\n\\t\\tfunction( elem, context, xml ) {\\r\\n\\t\\t\\tvar oldCache, uniqueCache, outerCache,\\r\\n\\t\\t\\t\\tnewCache = [ dirruns, doneName ];\\r\\n\\r\\n\\t\\t\\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\\r\\n\\t\\t\\tif ( xml ) {\\r\\n\\t\\t\\t\\twhile ( (elem = elem[ dir ]) ) {\\r\\n\\t\\t\\t\\t\\tif ( elem.nodeType === 1 || checkNonElements ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( matcher( elem, context, xml ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\twhile ( (elem = elem[ dir ]) ) {\\r\\n\\t\\t\\t\\t\\tif ( elem.nodeType === 1 || checkNonElements ) {\\r\\n\\t\\t\\t\\t\\t\\touterCache = elem[ expando ] || (elem[ expando ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Support: IE <9 only\\r\\n\\t\\t\\t\\t\\t\\t// Defend against cloned attroperties (jQuery gh-1709)\\r\\n\\t\\t\\t\\t\\t\\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\\r\\n\\t\\t\\t\\t\\t\\t\\telem = elem[ dir ] || elem;\\r\\n\\t\\t\\t\\t\\t\\t} else if ( (oldCache = uniqueCache[ key ]) &&\\r\\n\\t\\t\\t\\t\\t\\t\\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Assign to newCache so results back-propagate to previous elements\\r\\n\\t\\t\\t\\t\\t\\t\\treturn (newCache[ 2 ] = oldCache[ 2 ]);\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t// Reuse newcache so results back-propagate to previous elements\\r\\n\\t\\t\\t\\t\\t\\t\\tuniqueCache[ key ] = newCache;\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// A match means we're done; a fail means we have to keep checking\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t};\\r\\n}\\r\\n\\r\\nfunction elementMatcher( matchers ) {\\r\\n\\treturn matchers.length > 1 ?\\r\\n\\t\\tfunction( elem, context, xml ) {\\r\\n\\t\\t\\tvar i = matchers.length;\\r\\n\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\tif ( !matchers[i]( elem, context, xml ) ) {\\r\\n\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn true;\\r\\n\\t\\t} :\\r\\n\\t\\tmatchers[0];\\r\\n}\\r\\n\\r\\nfunction multipleContexts( selector, contexts, results ) {\\r\\n\\tvar i = 0,\\r\\n\\t\\tlen = contexts.length;\\r\\n\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\tSizzle( selector, contexts[i], results );\\r\\n\\t}\\r\\n\\treturn results;\\r\\n}\\r\\n\\r\\nfunction condense( unmatched, map, filter, context, xml ) {\\r\\n\\tvar elem,\\r\\n\\t\\tnewUnmatched = [],\\r\\n\\t\\ti = 0,\\r\\n\\t\\tlen = unmatched.length,\\r\\n\\t\\tmapped = map != null;\\r\\n\\r\\n\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\tif ( (elem = unmatched[i]) ) {\\r\\n\\t\\t\\tif ( !filter || filter( elem, context, xml ) ) {\\r\\n\\t\\t\\t\\tnewUnmatched.push( elem );\\r\\n\\t\\t\\t\\tif ( mapped ) {\\r\\n\\t\\t\\t\\t\\tmap.push( i );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn newUnmatched;\\r\\n}\\r\\n\\r\\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\\r\\n\\tif ( postFilter && !postFilter[ expando ] ) {\\r\\n\\t\\tpostFilter = setMatcher( postFilter );\\r\\n\\t}\\r\\n\\tif ( postFinder && !postFinder[ expando ] ) {\\r\\n\\t\\tpostFinder = setMatcher( postFinder, postSelector );\\r\\n\\t}\\r\\n\\treturn markFunction(function( seed, results, context, xml ) {\\r\\n\\t\\tvar temp, i, elem,\\r\\n\\t\\t\\tpreMap = [],\\r\\n\\t\\t\\tpostMap = [],\\r\\n\\t\\t\\tpreexisting = results.length,\\r\\n\\r\\n\\t\\t\\t// Get initial elements from seed or context\\r\\n\\t\\t\\telems = seed || multipleContexts( selector || \\\"*\\\", context.nodeType ? [ context ] : context, [] ),\\r\\n\\r\\n\\t\\t\\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\\r\\n\\t\\t\\tmatcherIn = preFilter && ( seed || !selector ) ?\\r\\n\\t\\t\\t\\tcondense( elems, preMap, preFilter, context, xml ) :\\r\\n\\t\\t\\t\\telems,\\r\\n\\r\\n\\t\\t\\tmatcherOut = matcher ?\\r\\n\\t\\t\\t\\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\\r\\n\\t\\t\\t\\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\\r\\n\\r\\n\\t\\t\\t\\t\\t// ...intermediate processing is necessary\\r\\n\\t\\t\\t\\t\\t[] :\\r\\n\\r\\n\\t\\t\\t\\t\\t// ...otherwise use results directly\\r\\n\\t\\t\\t\\t\\tresults :\\r\\n\\t\\t\\t\\tmatcherIn;\\r\\n\\r\\n\\t\\t// Find primary matches\\r\\n\\t\\tif ( matcher ) {\\r\\n\\t\\t\\tmatcher( matcherIn, matcherOut, context, xml );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Apply postFilter\\r\\n\\t\\tif ( postFilter ) {\\r\\n\\t\\t\\ttemp = condense( matcherOut, postMap );\\r\\n\\t\\t\\tpostFilter( temp, [], context, xml );\\r\\n\\r\\n\\t\\t\\t// Un-match failing elements by moving them back to matcherIn\\r\\n\\t\\t\\ti = temp.length;\\r\\n\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\tif ( (elem = temp[i]) ) {\\r\\n\\t\\t\\t\\t\\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( seed ) {\\r\\n\\t\\t\\tif ( postFinder || preFilter ) {\\r\\n\\t\\t\\t\\tif ( postFinder ) {\\r\\n\\t\\t\\t\\t\\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\\r\\n\\t\\t\\t\\t\\ttemp = [];\\r\\n\\t\\t\\t\\t\\ti = matcherOut.length;\\r\\n\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( (elem = matcherOut[i]) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t// Restore matcherIn since elem is not yet a final match\\r\\n\\t\\t\\t\\t\\t\\t\\ttemp.push( (matcherIn[i] = elem) );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tpostFinder( null, (matcherOut = []), temp, xml );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Move matched elements from seed to results to keep them synchronized\\r\\n\\t\\t\\t\\ti = matcherOut.length;\\r\\n\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\tif ( (elem = matcherOut[i]) &&\\r\\n\\t\\t\\t\\t\\t\\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tseed[temp] = !(results[temp] = elem);\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t// Add elements to results, through postFinder if defined\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tmatcherOut = condense(\\r\\n\\t\\t\\t\\tmatcherOut === results ?\\r\\n\\t\\t\\t\\t\\tmatcherOut.splice( preexisting, matcherOut.length ) :\\r\\n\\t\\t\\t\\t\\tmatcherOut\\r\\n\\t\\t\\t);\\r\\n\\t\\t\\tif ( postFinder ) {\\r\\n\\t\\t\\t\\tpostFinder( null, results, matcherOut, xml );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tpush.apply( results, matcherOut );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t});\\r\\n}\\r\\n\\r\\nfunction matcherFromTokens( tokens ) {\\r\\n\\tvar checkContext, matcher, j,\\r\\n\\t\\tlen = tokens.length,\\r\\n\\t\\tleadingRelative = Expr.relative[ tokens[0].type ],\\r\\n\\t\\timplicitRelative = leadingRelative || Expr.relative[\\\" \\\"],\\r\\n\\t\\ti = leadingRelative ? 1 : 0,\\r\\n\\r\\n\\t\\t// The foundational matcher ensures that elements are reachable from top-level context(s)\\r\\n\\t\\tmatchContext = addCombinator( function( elem ) {\\r\\n\\t\\t\\treturn elem === checkContext;\\r\\n\\t\\t}, implicitRelative, true ),\\r\\n\\t\\tmatchAnyContext = addCombinator( function( elem ) {\\r\\n\\t\\t\\treturn indexOf( checkContext, elem ) > -1;\\r\\n\\t\\t}, implicitRelative, true ),\\r\\n\\t\\tmatchers = [ function( elem, context, xml ) {\\r\\n\\t\\t\\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\\r\\n\\t\\t\\t\\t(checkContext = context).nodeType ?\\r\\n\\t\\t\\t\\t\\tmatchContext( elem, context, xml ) :\\r\\n\\t\\t\\t\\t\\tmatchAnyContext( elem, context, xml ) );\\r\\n\\t\\t\\t// Avoid hanging onto element (issue #299)\\r\\n\\t\\t\\tcheckContext = null;\\r\\n\\t\\t\\treturn ret;\\r\\n\\t\\t} ];\\r\\n\\r\\n\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\\r\\n\\t\\t\\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\\r\\n\\r\\n\\t\\t\\t// Return special upon seeing a positional matcher\\r\\n\\t\\t\\tif ( matcher[ expando ] ) {\\r\\n\\t\\t\\t\\t// Find the next relative operator (if any) for proper handling\\r\\n\\t\\t\\t\\tj = ++i;\\r\\n\\t\\t\\t\\tfor ( ; j < len; j++ ) {\\r\\n\\t\\t\\t\\t\\tif ( Expr.relative[ tokens[j].type ] ) {\\r\\n\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn setMatcher(\\r\\n\\t\\t\\t\\t\\ti > 1 && elementMatcher( matchers ),\\r\\n\\t\\t\\t\\t\\ti > 1 && toSelector(\\r\\n\\t\\t\\t\\t\\t\\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\\r\\n\\t\\t\\t\\t\\t\\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \\\" \\\" ? \\\"*\\\" : \\\"\\\" })\\r\\n\\t\\t\\t\\t\\t).replace( rtrim, \\\"$1\\\" ),\\r\\n\\t\\t\\t\\t\\tmatcher,\\r\\n\\t\\t\\t\\t\\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\\r\\n\\t\\t\\t\\t\\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\\r\\n\\t\\t\\t\\t\\tj < len && toSelector( tokens )\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tmatchers.push( matcher );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn elementMatcher( matchers );\\r\\n}\\r\\n\\r\\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\\r\\n\\tvar bySet = setMatchers.length > 0,\\r\\n\\t\\tbyElement = elementMatchers.length > 0,\\r\\n\\t\\tsuperMatcher = function( seed, context, xml, results, outermost ) {\\r\\n\\t\\t\\tvar elem, j, matcher,\\r\\n\\t\\t\\t\\tmatchedCount = 0,\\r\\n\\t\\t\\t\\ti = \\\"0\\\",\\r\\n\\t\\t\\t\\tunmatched = seed && [],\\r\\n\\t\\t\\t\\tsetMatched = [],\\r\\n\\t\\t\\t\\tcontextBackup = outermostContext,\\r\\n\\t\\t\\t\\t// We must always have either seed elements or outermost context\\r\\n\\t\\t\\t\\telems = seed || byElement && Expr.find[\\\"TAG\\\"]( \\\"*\\\", outermost ),\\r\\n\\t\\t\\t\\t// Use integer dirruns iff this is the outermost matcher\\r\\n\\t\\t\\t\\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\\r\\n\\t\\t\\t\\tlen = elems.length;\\r\\n\\r\\n\\t\\t\\tif ( outermost ) {\\r\\n\\t\\t\\t\\toutermostContext = context === document || context || outermost;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Add elements passing elementMatchers directly to results\\r\\n\\t\\t\\t// Support: IE<9, Safari\\r\\n\\t\\t\\t// Tolerate NodeList properties (IE: \\\"length\\\"; Safari: <number>) matching elements by id\\r\\n\\t\\t\\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\\r\\n\\t\\t\\t\\tif ( byElement && elem ) {\\r\\n\\t\\t\\t\\t\\tj = 0;\\r\\n\\t\\t\\t\\t\\tif ( !context && elem.ownerDocument !== document ) {\\r\\n\\t\\t\\t\\t\\t\\tsetDocument( elem );\\r\\n\\t\\t\\t\\t\\t\\txml = !documentIsHTML;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\twhile ( (matcher = elementMatchers[j++]) ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( matcher( elem, context || document, xml) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tresults.push( elem );\\r\\n\\t\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tif ( outermost ) {\\r\\n\\t\\t\\t\\t\\t\\tdirruns = dirrunsUnique;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Track unmatched elements for set filters\\r\\n\\t\\t\\t\\tif ( bySet ) {\\r\\n\\t\\t\\t\\t\\t// They will have gone through all possible matchers\\r\\n\\t\\t\\t\\t\\tif ( (elem = !matcher && elem) ) {\\r\\n\\t\\t\\t\\t\\t\\tmatchedCount--;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Lengthen the array for every element, matched or not\\r\\n\\t\\t\\t\\t\\tif ( seed ) {\\r\\n\\t\\t\\t\\t\\t\\tunmatched.push( elem );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\\r\\n\\t\\t\\t// makes the latter nonnegative.\\r\\n\\t\\t\\tmatchedCount += i;\\r\\n\\r\\n\\t\\t\\t// Apply set filters to unmatched elements\\r\\n\\t\\t\\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\\r\\n\\t\\t\\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\\r\\n\\t\\t\\t// no element matchers and no seed.\\r\\n\\t\\t\\t// Incrementing an initially-string \\\"0\\\" `i` allows `i` to remain a string only in that\\r\\n\\t\\t\\t// case, which will result in a \\\"00\\\" `matchedCount` that differs from `i` but is also\\r\\n\\t\\t\\t// numerically zero.\\r\\n\\t\\t\\tif ( bySet && i !== matchedCount ) {\\r\\n\\t\\t\\t\\tj = 0;\\r\\n\\t\\t\\t\\twhile ( (matcher = setMatchers[j++]) ) {\\r\\n\\t\\t\\t\\t\\tmatcher( unmatched, setMatched, context, xml );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tif ( seed ) {\\r\\n\\t\\t\\t\\t\\t// Reintegrate element matches to eliminate the need for sorting\\r\\n\\t\\t\\t\\t\\tif ( matchedCount > 0 ) {\\r\\n\\t\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( !(unmatched[i] || setMatched[i]) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tsetMatched[i] = pop.call( results );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Discard index placeholder values to get only actual matches\\r\\n\\t\\t\\t\\t\\tsetMatched = condense( setMatched );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Add matches to results\\r\\n\\t\\t\\t\\tpush.apply( results, setMatched );\\r\\n\\r\\n\\t\\t\\t\\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\\r\\n\\t\\t\\t\\tif ( outermost && !seed && setMatched.length > 0 &&\\r\\n\\t\\t\\t\\t\\t( matchedCount + setMatchers.length ) > 1 ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tSizzle.uniqueSort( results );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Override manipulation of globals by nested matchers\\r\\n\\t\\t\\tif ( outermost ) {\\r\\n\\t\\t\\t\\tdirruns = dirrunsUnique;\\r\\n\\t\\t\\t\\toutermostContext = contextBackup;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn unmatched;\\r\\n\\t\\t};\\r\\n\\r\\n\\treturn bySet ?\\r\\n\\t\\tmarkFunction( superMatcher ) :\\r\\n\\t\\tsuperMatcher;\\r\\n}\\r\\n\\r\\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\\r\\n\\tvar i,\\r\\n\\t\\tsetMatchers = [],\\r\\n\\t\\telementMatchers = [],\\r\\n\\t\\tcached = compilerCache[ selector + \\\" \\\" ];\\r\\n\\r\\n\\tif ( !cached ) {\\r\\n\\t\\t// Generate a function of recursive functions that can be used to check each element\\r\\n\\t\\tif ( !match ) {\\r\\n\\t\\t\\tmatch = tokenize( selector );\\r\\n\\t\\t}\\r\\n\\t\\ti = match.length;\\r\\n\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\tcached = matcherFromTokens( match[i] );\\r\\n\\t\\t\\tif ( cached[ expando ] ) {\\r\\n\\t\\t\\t\\tsetMatchers.push( cached );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\telementMatchers.push( cached );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Cache the compiled function\\r\\n\\t\\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\\r\\n\\r\\n\\t\\t// Save selector and tokenization\\r\\n\\t\\tcached.selector = selector;\\r\\n\\t}\\r\\n\\treturn cached;\\r\\n};\\r\\n\\r\\n/**\\r\\n * A low-level selection function that works with Sizzle's compiled\\r\\n * selector functions\\r\\n * @param {String|Function} selector A selector or a pre-compiled\\r\\n * selector function built with Sizzle.compile\\r\\n * @param {Element} context\\r\\n * @param {Array} [results]\\r\\n * @param {Array} [seed] A set of elements to match against\\r\\n */\\r\\nselect = Sizzle.select = function( selector, context, results, seed ) {\\r\\n\\tvar i, tokens, token, type, find,\\r\\n\\t\\tcompiled = typeof selector === \\\"function\\\" && selector,\\r\\n\\t\\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\\r\\n\\r\\n\\tresults = results || [];\\r\\n\\r\\n\\t// Try to minimize operations if there is only one selector in the list and no seed\\r\\n\\t// (the latter of which guarantees us context)\\r\\n\\tif ( match.length === 1 ) {\\r\\n\\r\\n\\t\\t// Reduce context if the leading compound selector is an ID\\r\\n\\t\\ttokens = match[0] = match[0].slice( 0 );\\r\\n\\t\\tif ( tokens.length > 2 && (token = tokens[0]).type === \\\"ID\\\" &&\\r\\n\\t\\t\\t\\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\\r\\n\\r\\n\\t\\t\\tcontext = ( Expr.find[\\\"ID\\\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\\r\\n\\t\\t\\tif ( !context ) {\\r\\n\\t\\t\\t\\treturn results;\\r\\n\\r\\n\\t\\t\\t// Precompiled matchers will still verify ancestry, so step up a level\\r\\n\\t\\t\\t} else if ( compiled ) {\\r\\n\\t\\t\\t\\tcontext = context.parentNode;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tselector = selector.slice( tokens.shift().value.length );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Fetch a seed set for right-to-left matching\\r\\n\\t\\ti = matchExpr[\\\"needsContext\\\"].test( selector ) ? 0 : tokens.length;\\r\\n\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\ttoken = tokens[i];\\r\\n\\r\\n\\t\\t\\t// Abort if we hit a combinator\\r\\n\\t\\t\\tif ( Expr.relative[ (type = token.type) ] ) {\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tif ( (find = Expr.find[ type ]) ) {\\r\\n\\t\\t\\t\\t// Search, expanding context for leading sibling combinators\\r\\n\\t\\t\\t\\tif ( (seed = find(\\r\\n\\t\\t\\t\\t\\ttoken.matches[0].replace( runescape, funescape ),\\r\\n\\t\\t\\t\\t\\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\\r\\n\\t\\t\\t\\t)) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// If seed is empty or no tokens remain, we can return early\\r\\n\\t\\t\\t\\t\\ttokens.splice( i, 1 );\\r\\n\\t\\t\\t\\t\\tselector = seed.length && toSelector( tokens );\\r\\n\\t\\t\\t\\t\\tif ( !selector ) {\\r\\n\\t\\t\\t\\t\\t\\tpush.apply( results, seed );\\r\\n\\t\\t\\t\\t\\t\\treturn results;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Compile and execute a filtering function if one is not provided\\r\\n\\t// Provide `match` to avoid retokenization if we modified the selector above\\r\\n\\t( compiled || compile( selector, match ) )(\\r\\n\\t\\tseed,\\r\\n\\t\\tcontext,\\r\\n\\t\\t!documentIsHTML,\\r\\n\\t\\tresults,\\r\\n\\t\\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\\r\\n\\t);\\r\\n\\treturn results;\\r\\n};\\r\\n\\r\\n// One-time assignments\\r\\n\\r\\n// Sort stability\\r\\nsupport.sortStable = expando.split(\\\"\\\").sort( sortOrder ).join(\\\"\\\") === expando;\\r\\n\\r\\n// Support: Chrome 14-35+\\r\\n// Always assume duplicates if they aren't passed to the comparison function\\r\\nsupport.detectDuplicates = !!hasDuplicate;\\r\\n\\r\\n// Initialize against the default document\\r\\nsetDocument();\\r\\n\\r\\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\\r\\n// Detached nodes confoundingly follow *each other*\\r\\nsupport.sortDetached = assert(function( el ) {\\r\\n\\t// Should return 1, but returns 4 (following)\\r\\n\\treturn el.compareDocumentPosition( document.createElement(\\\"fieldset\\\") ) & 1;\\r\\n});\\r\\n\\r\\n// Support: IE<8\\r\\n// Prevent attribute/property \\\"interpolation\\\"\\r\\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\\r\\nif ( !assert(function( el ) {\\r\\n\\tel.innerHTML = \\\"<a href='#'></a>\\\";\\r\\n\\treturn el.firstChild.getAttribute(\\\"href\\\") === \\\"#\\\" ;\\r\\n}) ) {\\r\\n\\taddHandle( \\\"type|href|height|width\\\", function( elem, name, isXML ) {\\r\\n\\t\\tif ( !isXML ) {\\r\\n\\t\\t\\treturn elem.getAttribute( name, name.toLowerCase() === \\\"type\\\" ? 1 : 2 );\\r\\n\\t\\t}\\r\\n\\t});\\r\\n}\\r\\n\\r\\n// Support: IE<9\\r\\n// Use defaultValue in place of getAttribute(\\\"value\\\")\\r\\nif ( !support.attributes || !assert(function( el ) {\\r\\n\\tel.innerHTML = \\\"<input/>\\\";\\r\\n\\tel.firstChild.setAttribute( \\\"value\\\", \\\"\\\" );\\r\\n\\treturn el.firstChild.getAttribute( \\\"value\\\" ) === \\\"\\\";\\r\\n}) ) {\\r\\n\\taddHandle( \\\"value\\\", function( elem, name, isXML ) {\\r\\n\\t\\tif ( !isXML && elem.nodeName.toLowerCase() === \\\"input\\\" ) {\\r\\n\\t\\t\\treturn elem.defaultValue;\\r\\n\\t\\t}\\r\\n\\t});\\r\\n}\\r\\n\\r\\n// Support: IE<9\\r\\n// Use getAttributeNode to fetch booleans when getAttribute lies\\r\\nif ( !assert(function( el ) {\\r\\n\\treturn el.getAttribute(\\\"disabled\\\") == null;\\r\\n}) ) {\\r\\n\\taddHandle( booleans, function( elem, name, isXML ) {\\r\\n\\t\\tvar val;\\r\\n\\t\\tif ( !isXML ) {\\r\\n\\t\\t\\treturn elem[ name ] === true ? name.toLowerCase() :\\r\\n\\t\\t\\t\\t\\t(val = elem.getAttributeNode( name )) && val.specified ?\\r\\n\\t\\t\\t\\t\\tval.value :\\r\\n\\t\\t\\t\\tnull;\\r\\n\\t\\t}\\r\\n\\t});\\r\\n}\\r\\n\\r\\nreturn Sizzle;\\r\\n\\r\\n})( window );\\r\\n\\r\\n\\r\\n\\r\\njQuery.find = Sizzle;\\r\\njQuery.expr = Sizzle.selectors;\\r\\n\\r\\n// Deprecated\\r\\njQuery.expr[ \\\":\\\" ] = jQuery.expr.pseudos;\\r\\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\\r\\njQuery.text = Sizzle.getText;\\r\\njQuery.isXMLDoc = Sizzle.isXML;\\r\\njQuery.contains = Sizzle.contains;\\r\\njQuery.escapeSelector = Sizzle.escape;\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar dir = function( elem, dir, until ) {\\r\\n\\tvar matched = [],\\r\\n\\t\\ttruncate = until !== undefined;\\r\\n\\r\\n\\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\\r\\n\\t\\tif ( elem.nodeType === 1 ) {\\r\\n\\t\\t\\tif ( truncate && jQuery( elem ).is( until ) ) {\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tmatched.push( elem );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn matched;\\r\\n};\\r\\n\\r\\n\\r\\nvar siblings = function( n, elem ) {\\r\\n\\tvar matched = [];\\r\\n\\r\\n\\tfor ( ; n; n = n.nextSibling ) {\\r\\n\\t\\tif ( n.nodeType === 1 && n !== elem ) {\\r\\n\\t\\t\\tmatched.push( n );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn matched;\\r\\n};\\r\\n\\r\\n\\r\\nvar rneedsContext = jQuery.expr.match.needsContext;\\r\\n\\r\\nvar rsingleTag = ( /^<([a-z][^\\\\/\\\\0>:\\\\x20\\\\t\\\\r\\\\n\\\\f]*)[\\\\x20\\\\t\\\\r\\\\n\\\\f]*\\\\/?>(?:<\\\\/\\\\1>|)$/i );\\r\\n\\r\\n\\r\\n\\r\\nvar risSimple = /^.[^:#\\\\[\\\\.,]*$/;\\r\\n\\r\\n// Implement the identical functionality for filter and not\\r\\nfunction winnow( elements, qualifier, not ) {\\r\\n\\tif ( jQuery.isFunction( qualifier ) ) {\\r\\n\\t\\treturn jQuery.grep( elements, function( elem, i ) {\\r\\n\\t\\t\\treturn !!qualifier.call( elem, i, elem ) !== not;\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\t// Single element\\r\\n\\tif ( qualifier.nodeType ) {\\r\\n\\t\\treturn jQuery.grep( elements, function( elem ) {\\r\\n\\t\\t\\treturn ( elem === qualifier ) !== not;\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\t// Arraylike of elements (jQuery, arguments, Array)\\r\\n\\tif ( typeof qualifier !== \\\"string\\\" ) {\\r\\n\\t\\treturn jQuery.grep( elements, function( elem ) {\\r\\n\\t\\t\\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\t// Simple selector that can be filtered directly, removing non-Elements\\r\\n\\tif ( risSimple.test( qualifier ) ) {\\r\\n\\t\\treturn jQuery.filter( qualifier, elements, not );\\r\\n\\t}\\r\\n\\r\\n\\t// Complex selector, compare the two sets, removing non-Elements\\r\\n\\tqualifier = jQuery.filter( qualifier, elements );\\r\\n\\treturn jQuery.grep( elements, function( elem ) {\\r\\n\\t\\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not && elem.nodeType === 1;\\r\\n\\t} );\\r\\n}\\r\\n\\r\\njQuery.filter = function( expr, elems, not ) {\\r\\n\\tvar elem = elems[ 0 ];\\r\\n\\r\\n\\tif ( not ) {\\r\\n\\t\\texpr = \\\":not(\\\" + expr + \\\")\\\";\\r\\n\\t}\\r\\n\\r\\n\\tif ( elems.length === 1 && elem.nodeType === 1 ) {\\r\\n\\t\\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\\r\\n\\t}\\r\\n\\r\\n\\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\\r\\n\\t\\treturn elem.nodeType === 1;\\r\\n\\t} ) );\\r\\n};\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tfind: function( selector ) {\\r\\n\\t\\tvar i, ret,\\r\\n\\t\\t\\tlen = this.length,\\r\\n\\t\\t\\tself = this;\\r\\n\\r\\n\\t\\tif ( typeof selector !== \\\"string\\\" ) {\\r\\n\\t\\t\\treturn this.pushStack( jQuery( selector ).filter( function() {\\r\\n\\t\\t\\t\\tfor ( i = 0; i < len; i++ ) {\\r\\n\\t\\t\\t\\t\\tif ( jQuery.contains( self[ i ], this ) ) {\\r\\n\\t\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} ) );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tret = this.pushStack( [] );\\r\\n\\r\\n\\t\\tfor ( i = 0; i < len; i++ ) {\\r\\n\\t\\t\\tjQuery.find( selector, self[ i ], ret );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\\r\\n\\t},\\r\\n\\tfilter: function( selector ) {\\r\\n\\t\\treturn this.pushStack( winnow( this, selector || [], false ) );\\r\\n\\t},\\r\\n\\tnot: function( selector ) {\\r\\n\\t\\treturn this.pushStack( winnow( this, selector || [], true ) );\\r\\n\\t},\\r\\n\\tis: function( selector ) {\\r\\n\\t\\treturn !!winnow(\\r\\n\\t\\t\\tthis,\\r\\n\\r\\n\\t\\t\\t// If this is a positional/relative selector, check membership in the returned set\\r\\n\\t\\t\\t// so $(\\\"p:first\\\").is(\\\"p:last\\\") won't return true for a doc with two \\\"p\\\".\\r\\n\\t\\t\\ttypeof selector === \\\"string\\\" && rneedsContext.test( selector ) ?\\r\\n\\t\\t\\t\\tjQuery( selector ) :\\r\\n\\t\\t\\t\\tselector || [],\\r\\n\\t\\t\\tfalse\\r\\n\\t\\t).length;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n// Initialize a jQuery object\\r\\n\\r\\n\\r\\n// A central reference to the root jQuery(document)\\r\\nvar rootjQuery,\\r\\n\\r\\n\\t// A simple way to check for HTML strings\\r\\n\\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\\r\\n\\t// Strict HTML recognition (#11290: must start with <)\\r\\n\\t// Shortcut simple #id case for speed\\r\\n\\trquickExpr = /^(?:\\\\s*(<[\\\\w\\\\W]+>)[^>]*|#([\\\\w-]+))$/,\\r\\n\\r\\n\\tinit = jQuery.fn.init = function( selector, context, root ) {\\r\\n\\t\\tvar match, elem;\\r\\n\\r\\n\\t\\t// HANDLE: $(\\\"\\\"), $(null), $(undefined), $(false)\\r\\n\\t\\tif ( !selector ) {\\r\\n\\t\\t\\treturn this;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Method init() accepts an alternate rootjQuery\\r\\n\\t\\t// so migrate can support jQuery.sub (gh-2101)\\r\\n\\t\\troot = root || rootjQuery;\\r\\n\\r\\n\\t\\t// Handle HTML strings\\r\\n\\t\\tif ( typeof selector === \\\"string\\\" ) {\\r\\n\\t\\t\\tif ( selector[ 0 ] === \\\"<\\\" &&\\r\\n\\t\\t\\t\\tselector[ selector.length - 1 ] === \\\">\\\" &&\\r\\n\\t\\t\\t\\tselector.length >= 3 ) {\\r\\n\\r\\n\\t\\t\\t\\t// Assume that strings that start and end with <> are HTML and skip the regex check\\r\\n\\t\\t\\t\\tmatch = [ null, selector, null ];\\r\\n\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tmatch = rquickExpr.exec( selector );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Match html or make sure no context is specified for #id\\r\\n\\t\\t\\tif ( match && ( match[ 1 ] || !context ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// HANDLE: $(html) -> $(array)\\r\\n\\t\\t\\t\\tif ( match[ 1 ] ) {\\r\\n\\t\\t\\t\\t\\tcontext = context instanceof jQuery ? context[ 0 ] : context;\\r\\n\\r\\n\\t\\t\\t\\t\\t// Option to run scripts is true for back-compat\\r\\n\\t\\t\\t\\t\\t// Intentionally let the error be thrown if parseHTML is not present\\r\\n\\t\\t\\t\\t\\tjQuery.merge( this, jQuery.parseHTML(\\r\\n\\t\\t\\t\\t\\t\\tmatch[ 1 ],\\r\\n\\t\\t\\t\\t\\t\\tcontext && context.nodeType ? context.ownerDocument || context : document,\\r\\n\\t\\t\\t\\t\\t\\ttrue\\r\\n\\t\\t\\t\\t\\t) );\\r\\n\\r\\n\\t\\t\\t\\t\\t// HANDLE: $(html, props)\\r\\n\\t\\t\\t\\t\\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\\r\\n\\t\\t\\t\\t\\t\\tfor ( match in context ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Properties of context are called as methods if possible\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( jQuery.isFunction( this[ match ] ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tthis[ match ]( context[ match ] );\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// ...and otherwise set as attributes\\r\\n\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tthis.attr( match, context[ match ] );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\r\\n\\t\\t\\t\\t// HANDLE: $(#id)\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\telem = document.getElementById( match[ 2 ] );\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( elem ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Inject the element directly into the jQuery object\\r\\n\\t\\t\\t\\t\\t\\tthis[ 0 ] = elem;\\r\\n\\t\\t\\t\\t\\t\\tthis.length = 1;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// HANDLE: $(expr, $(...))\\r\\n\\t\\t\\t} else if ( !context || context.jquery ) {\\r\\n\\t\\t\\t\\treturn ( context || root ).find( selector );\\r\\n\\r\\n\\t\\t\\t// HANDLE: $(expr, context)\\r\\n\\t\\t\\t// (which is just equivalent to: $(context).find(expr)\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\treturn this.constructor( context ).find( selector );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t// HANDLE: $(DOMElement)\\r\\n\\t\\t} else if ( selector.nodeType ) {\\r\\n\\t\\t\\tthis[ 0 ] = selector;\\r\\n\\t\\t\\tthis.length = 1;\\r\\n\\t\\t\\treturn this;\\r\\n\\r\\n\\t\\t// HANDLE: $(function)\\r\\n\\t\\t// Shortcut for document ready\\r\\n\\t\\t} else if ( jQuery.isFunction( selector ) ) {\\r\\n\\t\\t\\treturn root.ready !== undefined ?\\r\\n\\t\\t\\t\\troot.ready( selector ) :\\r\\n\\r\\n\\t\\t\\t\\t// Execute immediately if ready is not present\\r\\n\\t\\t\\t\\tselector( jQuery );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn jQuery.makeArray( selector, this );\\r\\n\\t};\\r\\n\\r\\n// Give the init function the jQuery prototype for later instantiation\\r\\ninit.prototype = jQuery.fn;\\r\\n\\r\\n// Initialize central reference\\r\\nrootjQuery = jQuery( document );\\r\\n\\r\\n\\r\\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\\r\\n\\r\\n\\t// Methods guaranteed to produce a unique set when starting from a unique set\\r\\n\\tguaranteedUnique = {\\r\\n\\t\\tchildren: true,\\r\\n\\t\\tcontents: true,\\r\\n\\t\\tnext: true,\\r\\n\\t\\tprev: true\\r\\n\\t};\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\thas: function( target ) {\\r\\n\\t\\tvar targets = jQuery( target, this ),\\r\\n\\t\\t\\tl = targets.length;\\r\\n\\r\\n\\t\\treturn this.filter( function() {\\r\\n\\t\\t\\tvar i = 0;\\r\\n\\t\\t\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\t\\t\\tif ( jQuery.contains( this, targets[ i ] ) ) {\\r\\n\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tclosest: function( selectors, context ) {\\r\\n\\t\\tvar cur,\\r\\n\\t\\t\\ti = 0,\\r\\n\\t\\t\\tl = this.length,\\r\\n\\t\\t\\tmatched = [],\\r\\n\\t\\t\\ttargets = typeof selectors !== \\\"string\\\" && jQuery( selectors );\\r\\n\\r\\n\\t\\t// Positional selectors never match, since there's no _selection_ context\\r\\n\\t\\tif ( !rneedsContext.test( selectors ) ) {\\r\\n\\t\\t\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\t\\t\\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Always skip document fragments\\r\\n\\t\\t\\t\\t\\tif ( cur.nodeType < 11 && ( targets ?\\r\\n\\t\\t\\t\\t\\t\\ttargets.index( cur ) > -1 :\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Don't pass non-elements to Sizzle\\r\\n\\t\\t\\t\\t\\t\\tcur.nodeType === 1 &&\\r\\n\\t\\t\\t\\t\\t\\t\\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tmatched.push( cur );\\r\\n\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\\r\\n\\t},\\r\\n\\r\\n\\t// Determine the position of an element within the set\\r\\n\\tindex: function( elem ) {\\r\\n\\r\\n\\t\\t// No argument, return index in parent\\r\\n\\t\\tif ( !elem ) {\\r\\n\\t\\t\\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Index in selector\\r\\n\\t\\tif ( typeof elem === \\\"string\\\" ) {\\r\\n\\t\\t\\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Locate the position of the desired element\\r\\n\\t\\treturn indexOf.call( this,\\r\\n\\r\\n\\t\\t\\t// If it receives a jQuery object, the first element is used\\r\\n\\t\\t\\telem.jquery ? elem[ 0 ] : elem\\r\\n\\t\\t);\\r\\n\\t},\\r\\n\\r\\n\\tadd: function( selector, context ) {\\r\\n\\t\\treturn this.pushStack(\\r\\n\\t\\t\\tjQuery.uniqueSort(\\r\\n\\t\\t\\t\\tjQuery.merge( this.get(), jQuery( selector, context ) )\\r\\n\\t\\t\\t)\\r\\n\\t\\t);\\r\\n\\t},\\r\\n\\r\\n\\taddBack: function( selector ) {\\r\\n\\t\\treturn this.add( selector == null ?\\r\\n\\t\\t\\tthis.prevObject : this.prevObject.filter( selector )\\r\\n\\t\\t);\\r\\n\\t}\\r\\n} );\\r\\n\\r\\nfunction sibling( cur, dir ) {\\r\\n\\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\\r\\n\\treturn cur;\\r\\n}\\r\\n\\r\\njQuery.each( {\\r\\n\\tparent: function( elem ) {\\r\\n\\t\\tvar parent = elem.parentNode;\\r\\n\\t\\treturn parent && parent.nodeType !== 11 ? parent : null;\\r\\n\\t},\\r\\n\\tparents: function( elem ) {\\r\\n\\t\\treturn dir( elem, \\\"parentNode\\\" );\\r\\n\\t},\\r\\n\\tparentsUntil: function( elem, i, until ) {\\r\\n\\t\\treturn dir( elem, \\\"parentNode\\\", until );\\r\\n\\t},\\r\\n\\tnext: function( elem ) {\\r\\n\\t\\treturn sibling( elem, \\\"nextSibling\\\" );\\r\\n\\t},\\r\\n\\tprev: function( elem ) {\\r\\n\\t\\treturn sibling( elem, \\\"previousSibling\\\" );\\r\\n\\t},\\r\\n\\tnextAll: function( elem ) {\\r\\n\\t\\treturn dir( elem, \\\"nextSibling\\\" );\\r\\n\\t},\\r\\n\\tprevAll: function( elem ) {\\r\\n\\t\\treturn dir( elem, \\\"previousSibling\\\" );\\r\\n\\t},\\r\\n\\tnextUntil: function( elem, i, until ) {\\r\\n\\t\\treturn dir( elem, \\\"nextSibling\\\", until );\\r\\n\\t},\\r\\n\\tprevUntil: function( elem, i, until ) {\\r\\n\\t\\treturn dir( elem, \\\"previousSibling\\\", until );\\r\\n\\t},\\r\\n\\tsiblings: function( elem ) {\\r\\n\\t\\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\\r\\n\\t},\\r\\n\\tchildren: function( elem ) {\\r\\n\\t\\treturn siblings( elem.firstChild );\\r\\n\\t},\\r\\n\\tcontents: function( elem ) {\\r\\n\\t\\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\\r\\n\\t}\\r\\n}, function( name, fn ) {\\r\\n\\tjQuery.fn[ name ] = function( until, selector ) {\\r\\n\\t\\tvar matched = jQuery.map( this, fn, until );\\r\\n\\r\\n\\t\\tif ( name.slice( -5 ) !== \\\"Until\\\" ) {\\r\\n\\t\\t\\tselector = until;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( selector && typeof selector === \\\"string\\\" ) {\\r\\n\\t\\t\\tmatched = jQuery.filter( selector, matched );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( this.length > 1 ) {\\r\\n\\r\\n\\t\\t\\t// Remove duplicates\\r\\n\\t\\t\\tif ( !guaranteedUnique[ name ] ) {\\r\\n\\t\\t\\t\\tjQuery.uniqueSort( matched );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Reverse order for parents* and prev-derivatives\\r\\n\\t\\t\\tif ( rparentsprev.test( name ) ) {\\r\\n\\t\\t\\t\\tmatched.reverse();\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.pushStack( matched );\\r\\n\\t};\\r\\n} );\\r\\nvar rnothtmlwhite = ( /[^\\\\x20\\\\t\\\\r\\\\n\\\\f]+/g );\\r\\n\\r\\n\\r\\n\\r\\n// Convert String-formatted options into Object-formatted ones\\r\\nfunction createOptions( options ) {\\r\\n\\tvar object = {};\\r\\n\\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\\r\\n\\t\\tobject[ flag ] = true;\\r\\n\\t} );\\r\\n\\treturn object;\\r\\n}\\r\\n\\r\\n/*\\r\\n * Create a callback list using the following parameters:\\r\\n *\\r\\n *\\toptions: an optional list of space-separated options that will change how\\r\\n *\\t\\t\\tthe callback list behaves or a more traditional option object\\r\\n *\\r\\n * By default a callback list will act like an event callback list and can be\\r\\n * \\\"fired\\\" multiple times.\\r\\n *\\r\\n * Possible options:\\r\\n *\\r\\n *\\tonce:\\t\\t\\twill ensure the callback list can only be fired once (like a Deferred)\\r\\n *\\r\\n *\\tmemory:\\t\\t\\twill keep track of previous values and will call any callback added\\r\\n *\\t\\t\\t\\t\\tafter the list has been fired right away with the latest \\\"memorized\\\"\\r\\n *\\t\\t\\t\\t\\tvalues (like a Deferred)\\r\\n *\\r\\n *\\tunique:\\t\\t\\twill ensure a callback can only be added once (no duplicate in the list)\\r\\n *\\r\\n *\\tstopOnFalse:\\tinterrupt callings when a callback returns false\\r\\n *\\r\\n */\\r\\njQuery.Callbacks = function( options ) {\\r\\n\\r\\n\\t// Convert options from String-formatted to Object-formatted if needed\\r\\n\\t// (we check in cache first)\\r\\n\\toptions = typeof options === \\\"string\\\" ?\\r\\n\\t\\tcreateOptions( options ) :\\r\\n\\t\\tjQuery.extend( {}, options );\\r\\n\\r\\n\\tvar // Flag to know if list is currently firing\\r\\n\\t\\tfiring,\\r\\n\\r\\n\\t\\t// Last fire value for non-forgettable lists\\r\\n\\t\\tmemory,\\r\\n\\r\\n\\t\\t// Flag to know if list was already fired\\r\\n\\t\\tfired,\\r\\n\\r\\n\\t\\t// Flag to prevent firing\\r\\n\\t\\tlocked,\\r\\n\\r\\n\\t\\t// Actual callback list\\r\\n\\t\\tlist = [],\\r\\n\\r\\n\\t\\t// Queue of execution data for repeatable lists\\r\\n\\t\\tqueue = [],\\r\\n\\r\\n\\t\\t// Index of currently firing callback (modified by add/remove as needed)\\r\\n\\t\\tfiringIndex = -1,\\r\\n\\r\\n\\t\\t// Fire callbacks\\r\\n\\t\\tfire = function() {\\r\\n\\r\\n\\t\\t\\t// Enforce single-firing\\r\\n\\t\\t\\tlocked = options.once;\\r\\n\\r\\n\\t\\t\\t// Execute callbacks for all pending executions,\\r\\n\\t\\t\\t// respecting firingIndex overrides and runtime changes\\r\\n\\t\\t\\tfired = firing = true;\\r\\n\\t\\t\\tfor ( ; queue.length; firingIndex = -1 ) {\\r\\n\\t\\t\\t\\tmemory = queue.shift();\\r\\n\\t\\t\\t\\twhile ( ++firingIndex < list.length ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Run callback and check for early termination\\r\\n\\t\\t\\t\\t\\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\\r\\n\\t\\t\\t\\t\\t\\toptions.stopOnFalse ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Jump to end and forget the data so .add doesn't re-fire\\r\\n\\t\\t\\t\\t\\t\\tfiringIndex = list.length;\\r\\n\\t\\t\\t\\t\\t\\tmemory = false;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Forget the data if we're done with it\\r\\n\\t\\t\\tif ( !options.memory ) {\\r\\n\\t\\t\\t\\tmemory = false;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tfiring = false;\\r\\n\\r\\n\\t\\t\\t// Clean up if we're done firing for good\\r\\n\\t\\t\\tif ( locked ) {\\r\\n\\r\\n\\t\\t\\t\\t// Keep an empty list if we have data for future add calls\\r\\n\\t\\t\\t\\tif ( memory ) {\\r\\n\\t\\t\\t\\t\\tlist = [];\\r\\n\\r\\n\\t\\t\\t\\t// Otherwise, this object is spent\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tlist = \\\"\\\";\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Actual Callbacks object\\r\\n\\t\\tself = {\\r\\n\\r\\n\\t\\t\\t// Add a callback or a collection of callbacks to the list\\r\\n\\t\\t\\tadd: function() {\\r\\n\\t\\t\\t\\tif ( list ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// If we have memory from a past run, we should fire after adding\\r\\n\\t\\t\\t\\t\\tif ( memory && !firing ) {\\r\\n\\t\\t\\t\\t\\t\\tfiringIndex = list.length - 1;\\r\\n\\t\\t\\t\\t\\t\\tqueue.push( memory );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t( function add( args ) {\\r\\n\\t\\t\\t\\t\\t\\tjQuery.each( args, function( _, arg ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( jQuery.isFunction( arg ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( !options.unique || !self.has( arg ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tlist.push( arg );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t} else if ( arg && arg.length && jQuery.type( arg ) !== \\\"string\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Inspect recursively\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tadd( arg );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t\\t} )( arguments );\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( memory && !firing ) {\\r\\n\\t\\t\\t\\t\\t\\tfire();\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Remove a callback from the list\\r\\n\\t\\t\\tremove: function() {\\r\\n\\t\\t\\t\\tjQuery.each( arguments, function( _, arg ) {\\r\\n\\t\\t\\t\\t\\tvar index;\\r\\n\\t\\t\\t\\t\\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\\r\\n\\t\\t\\t\\t\\t\\tlist.splice( index, 1 );\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Handle firing indexes\\r\\n\\t\\t\\t\\t\\t\\tif ( index <= firingIndex ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tfiringIndex--;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Check if a given callback is in the list.\\r\\n\\t\\t\\t// If no argument is given, return whether or not list has callbacks attached.\\r\\n\\t\\t\\thas: function( fn ) {\\r\\n\\t\\t\\t\\treturn fn ?\\r\\n\\t\\t\\t\\t\\tjQuery.inArray( fn, list ) > -1 :\\r\\n\\t\\t\\t\\t\\tlist.length > 0;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Remove all callbacks from the list\\r\\n\\t\\t\\tempty: function() {\\r\\n\\t\\t\\t\\tif ( list ) {\\r\\n\\t\\t\\t\\t\\tlist = [];\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Disable .fire and .add\\r\\n\\t\\t\\t// Abort any current/pending executions\\r\\n\\t\\t\\t// Clear all callbacks and values\\r\\n\\t\\t\\tdisable: function() {\\r\\n\\t\\t\\t\\tlocked = queue = [];\\r\\n\\t\\t\\t\\tlist = memory = \\\"\\\";\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tdisabled: function() {\\r\\n\\t\\t\\t\\treturn !list;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Disable .fire\\r\\n\\t\\t\\t// Also disable .add unless we have memory (since it would have no effect)\\r\\n\\t\\t\\t// Abort any pending executions\\r\\n\\t\\t\\tlock: function() {\\r\\n\\t\\t\\t\\tlocked = queue = [];\\r\\n\\t\\t\\t\\tif ( !memory && !firing ) {\\r\\n\\t\\t\\t\\t\\tlist = memory = \\\"\\\";\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tlocked: function() {\\r\\n\\t\\t\\t\\treturn !!locked;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Call all callbacks with the given context and arguments\\r\\n\\t\\t\\tfireWith: function( context, args ) {\\r\\n\\t\\t\\t\\tif ( !locked ) {\\r\\n\\t\\t\\t\\t\\targs = args || [];\\r\\n\\t\\t\\t\\t\\targs = [ context, args.slice ? args.slice() : args ];\\r\\n\\t\\t\\t\\t\\tqueue.push( args );\\r\\n\\t\\t\\t\\t\\tif ( !firing ) {\\r\\n\\t\\t\\t\\t\\t\\tfire();\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// Call all the callbacks with the given arguments\\r\\n\\t\\t\\tfire: function() {\\r\\n\\t\\t\\t\\tself.fireWith( this, arguments );\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// To know if the callbacks have already been called at least once\\r\\n\\t\\t\\tfired: function() {\\r\\n\\t\\t\\t\\treturn !!fired;\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\r\\n\\treturn self;\\r\\n};\\r\\n\\r\\n\\r\\nfunction Identity( v ) {\\r\\n\\treturn v;\\r\\n}\\r\\nfunction Thrower( ex ) {\\r\\n\\tthrow ex;\\r\\n}\\r\\n\\r\\nfunction adoptValue( value, resolve, reject ) {\\r\\n\\tvar method;\\r\\n\\r\\n\\ttry {\\r\\n\\r\\n\\t\\t// Check for promise aspect first to privilege synchronous behavior\\r\\n\\t\\tif ( value && jQuery.isFunction( ( method = value.promise ) ) ) {\\r\\n\\t\\t\\tmethod.call( value ).done( resolve ).fail( reject );\\r\\n\\r\\n\\t\\t// Other thenables\\r\\n\\t\\t} else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {\\r\\n\\t\\t\\tmethod.call( value, resolve, reject );\\r\\n\\r\\n\\t\\t// Other non-thenables\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// Support: Android 4.0 only\\r\\n\\t\\t\\t// Strict mode functions invoked without .call/.apply get global-object context\\r\\n\\t\\t\\tresolve.call( undefined, value );\\r\\n\\t\\t}\\r\\n\\r\\n\\t// For Promises/A+, convert exceptions into rejections\\r\\n\\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\\r\\n\\t// Deferred#then to conditionally suppress rejection.\\r\\n\\t} catch ( value ) {\\r\\n\\r\\n\\t\\t// Support: Android 4.0 only\\r\\n\\t\\t// Strict mode functions invoked without .call/.apply get global-object context\\r\\n\\t\\treject.call( undefined, value );\\r\\n\\t}\\r\\n}\\r\\n\\r\\njQuery.extend( {\\r\\n\\r\\n\\tDeferred: function( func ) {\\r\\n\\t\\tvar tuples = [\\r\\n\\r\\n\\t\\t\\t\\t// action, add listener, callbacks,\\r\\n\\t\\t\\t\\t// ... .then handlers, argument index, [final state]\\r\\n\\t\\t\\t\\t[ \\\"notify\\\", \\\"progress\\\", jQuery.Callbacks( \\\"memory\\\" ),\\r\\n\\t\\t\\t\\t\\tjQuery.Callbacks( \\\"memory\\\" ), 2 ],\\r\\n\\t\\t\\t\\t[ \\\"resolve\\\", \\\"done\\\", jQuery.Callbacks( \\\"once memory\\\" ),\\r\\n\\t\\t\\t\\t\\tjQuery.Callbacks( \\\"once memory\\\" ), 0, \\\"resolved\\\" ],\\r\\n\\t\\t\\t\\t[ \\\"reject\\\", \\\"fail\\\", jQuery.Callbacks( \\\"once memory\\\" ),\\r\\n\\t\\t\\t\\t\\tjQuery.Callbacks( \\\"once memory\\\" ), 1, \\\"rejected\\\" ]\\r\\n\\t\\t\\t],\\r\\n\\t\\t\\tstate = \\\"pending\\\",\\r\\n\\t\\t\\tpromise = {\\r\\n\\t\\t\\t\\tstate: function() {\\r\\n\\t\\t\\t\\t\\treturn state;\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\talways: function() {\\r\\n\\t\\t\\t\\t\\tdeferred.done( arguments ).fail( arguments );\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\\"catch\\\": function( fn ) {\\r\\n\\t\\t\\t\\t\\treturn promise.then( null, fn );\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Keep pipe for back-compat\\r\\n\\t\\t\\t\\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\\r\\n\\t\\t\\t\\t\\tvar fns = arguments;\\r\\n\\r\\n\\t\\t\\t\\t\\treturn jQuery.Deferred( function( newDefer ) {\\r\\n\\t\\t\\t\\t\\t\\tjQuery.each( tuples, function( i, tuple ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\\r\\n\\t\\t\\t\\t\\t\\t\\tvar fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\\r\\n\\t\\t\\t\\t\\t\\t\\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\\r\\n\\t\\t\\t\\t\\t\\t\\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\\r\\n\\t\\t\\t\\t\\t\\t\\tdeferred[ tuple[ 1 ] ]( function() {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvar returned = fn && fn.apply( this, arguments );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( returned && jQuery.isFunction( returned.promise ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\treturned.promise()\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t.progress( newDefer.notify )\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t.done( newDefer.resolve )\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t.fail( newDefer.reject );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tnewDefer[ tuple[ 0 ] + \\\"With\\\" ](\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthis,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tfn ? [ returned ] : arguments\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t\\t\\tfns = null;\\r\\n\\t\\t\\t\\t\\t} ).promise();\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\tthen: function( onFulfilled, onRejected, onProgress ) {\\r\\n\\t\\t\\t\\t\\tvar maxDepth = 0;\\r\\n\\t\\t\\t\\t\\tfunction resolve( depth, deferred, handler, special ) {\\r\\n\\t\\t\\t\\t\\t\\treturn function() {\\r\\n\\t\\t\\t\\t\\t\\t\\tvar that = this,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\targs = arguments,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tmightThrow = function() {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvar returned, then;\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ section 2.3.3.3.3\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-59\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Ignore double-resolution attempts\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( depth < maxDepth ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\treturned = handler.apply( that, args );\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ section 2.3.1\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-48\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( returned === deferred.promise() ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthrow new TypeError( \\\"Thenable self-resolution\\\" );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ sections 2.3.3.1, 3.5\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-54\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-75\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Retrieve `then` only once\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tthen = returned &&\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ section 2.3.4\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-64\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Only check objects and functions for thenability\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t( typeof returned === \\\"object\\\" ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttypeof returned === \\\"function\\\" ) &&\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\treturned.then;\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Handle a returned thenable\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( jQuery.isFunction( then ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Special processors (notify) just wait for resolution\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( special ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthen.call(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\treturned,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tresolve( maxDepth, deferred, Identity, special ),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tresolve( maxDepth, deferred, Thrower, special )\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Normal processors (resolve) also hook into progress\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// ...and disregard older resolution values\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmaxDepth++;\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthen.call(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\treturned,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tresolve( maxDepth, deferred, Identity, special ),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tresolve( maxDepth, deferred, Thrower, special ),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tresolve( maxDepth, deferred, Identity,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdeferred.notifyWith )\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Handle all other returned values\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Only substitute handlers pass on context\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// and multiple values (non-spec behavior)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( handler !== Identity ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthat = undefined;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\targs = [ returned ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Process the value(s)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Default process is resolve\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t( special || deferred.resolveWith )( that, args );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Only normal processors (resolve) catch and reject exceptions\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tprocess = special ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tmightThrow :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tfunction() {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\ttry {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tmightThrow();\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t} catch ( e ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( jQuery.Deferred.exceptionHook ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tjQuery.Deferred.exceptionHook( e,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tprocess.stackTrace );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ section 2.3.3.3.4.1\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-61\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Ignore post-resolution exceptions\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( depth + 1 >= maxDepth ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// Only substitute handlers pass on context\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// and multiple values (non-spec behavior)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tif ( handler !== Thrower ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tthat = undefined;\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\targs = [ e ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tdeferred.rejectWith( that, args );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Support: Promises/A+ section 2.3.3.3.1\\r\\n\\t\\t\\t\\t\\t\\t\\t// https://promisesaplus.com/#point-57\\r\\n\\t\\t\\t\\t\\t\\t\\t// Re-resolve promises immediately to dodge false rejection from\\r\\n\\t\\t\\t\\t\\t\\t\\t// subsequent errors\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( depth ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tprocess();\\r\\n\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Call an optional hook to record the stack, in case of exception\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// since it's otherwise lost when execution goes async\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( jQuery.Deferred.getStackHook ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tprocess.stackTrace = jQuery.Deferred.getStackHook();\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\twindow.setTimeout( process );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t};\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\treturn jQuery.Deferred( function( newDefer ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// progress_handlers.add( ... )\\r\\n\\t\\t\\t\\t\\t\\ttuples[ 0 ][ 3 ].add(\\r\\n\\t\\t\\t\\t\\t\\t\\tresolve(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t0,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnewDefer,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.isFunction( onProgress ) ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tonProgress :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tIdentity,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnewDefer.notifyWith\\r\\n\\t\\t\\t\\t\\t\\t\\t)\\r\\n\\t\\t\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// fulfilled_handlers.add( ... )\\r\\n\\t\\t\\t\\t\\t\\ttuples[ 1 ][ 3 ].add(\\r\\n\\t\\t\\t\\t\\t\\t\\tresolve(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t0,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnewDefer,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.isFunction( onFulfilled ) ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tonFulfilled :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tIdentity\\r\\n\\t\\t\\t\\t\\t\\t\\t)\\r\\n\\t\\t\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// rejected_handlers.add( ... )\\r\\n\\t\\t\\t\\t\\t\\ttuples[ 2 ][ 3 ].add(\\r\\n\\t\\t\\t\\t\\t\\t\\tresolve(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t0,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tnewDefer,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.isFunction( onRejected ) ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tonRejected :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tThrower\\r\\n\\t\\t\\t\\t\\t\\t\\t)\\r\\n\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t} ).promise();\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Get a promise for this deferred\\r\\n\\t\\t\\t\\t// If obj is provided, the promise aspect is added to the object\\r\\n\\t\\t\\t\\tpromise: function( obj ) {\\r\\n\\t\\t\\t\\t\\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tdeferred = {};\\r\\n\\r\\n\\t\\t// Add list-specific methods\\r\\n\\t\\tjQuery.each( tuples, function( i, tuple ) {\\r\\n\\t\\t\\tvar list = tuple[ 2 ],\\r\\n\\t\\t\\t\\tstateString = tuple[ 5 ];\\r\\n\\r\\n\\t\\t\\t// promise.progress = list.add\\r\\n\\t\\t\\t// promise.done = list.add\\r\\n\\t\\t\\t// promise.fail = list.add\\r\\n\\t\\t\\tpromise[ tuple[ 1 ] ] = list.add;\\r\\n\\r\\n\\t\\t\\t// Handle state\\r\\n\\t\\t\\tif ( stateString ) {\\r\\n\\t\\t\\t\\tlist.add(\\r\\n\\t\\t\\t\\t\\tfunction() {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// state = \\\"resolved\\\" (i.e., fulfilled)\\r\\n\\t\\t\\t\\t\\t\\t// state = \\\"rejected\\\"\\r\\n\\t\\t\\t\\t\\t\\tstate = stateString;\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t\\t// rejected_callbacks.disable\\r\\n\\t\\t\\t\\t\\t// fulfilled_callbacks.disable\\r\\n\\t\\t\\t\\t\\ttuples[ 3 - i ][ 2 ].disable,\\r\\n\\r\\n\\t\\t\\t\\t\\t// progress_callbacks.lock\\r\\n\\t\\t\\t\\t\\ttuples[ 0 ][ 2 ].lock\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// progress_handlers.fire\\r\\n\\t\\t\\t// fulfilled_handlers.fire\\r\\n\\t\\t\\t// rejected_handlers.fire\\r\\n\\t\\t\\tlist.add( tuple[ 3 ].fire );\\r\\n\\r\\n\\t\\t\\t// deferred.notify = function() { deferred.notifyWith(...) }\\r\\n\\t\\t\\t// deferred.resolve = function() { deferred.resolveWith(...) }\\r\\n\\t\\t\\t// deferred.reject = function() { deferred.rejectWith(...) }\\r\\n\\t\\t\\tdeferred[ tuple[ 0 ] ] = function() {\\r\\n\\t\\t\\t\\tdeferred[ tuple[ 0 ] + \\\"With\\\" ]( this === deferred ? undefined : this, arguments );\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\t// deferred.notifyWith = list.fireWith\\r\\n\\t\\t\\t// deferred.resolveWith = list.fireWith\\r\\n\\t\\t\\t// deferred.rejectWith = list.fireWith\\r\\n\\t\\t\\tdeferred[ tuple[ 0 ] + \\\"With\\\" ] = list.fireWith;\\r\\n\\t\\t} );\\r\\n\\r\\n\\t\\t// Make the deferred a promise\\r\\n\\t\\tpromise.promise( deferred );\\r\\n\\r\\n\\t\\t// Call given func if any\\r\\n\\t\\tif ( func ) {\\r\\n\\t\\t\\tfunc.call( deferred, deferred );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// All done!\\r\\n\\t\\treturn deferred;\\r\\n\\t},\\r\\n\\r\\n\\t// Deferred helper\\r\\n\\twhen: function( singleValue ) {\\r\\n\\t\\tvar\\r\\n\\r\\n\\t\\t\\t// count of uncompleted subordinates\\r\\n\\t\\t\\tremaining = arguments.length,\\r\\n\\r\\n\\t\\t\\t// count of unprocessed arguments\\r\\n\\t\\t\\ti = remaining,\\r\\n\\r\\n\\t\\t\\t// subordinate fulfillment data\\r\\n\\t\\t\\tresolveContexts = Array( i ),\\r\\n\\t\\t\\tresolveValues = slice.call( arguments ),\\r\\n\\r\\n\\t\\t\\t// the master Deferred\\r\\n\\t\\t\\tmaster = jQuery.Deferred(),\\r\\n\\r\\n\\t\\t\\t// subordinate callback factory\\r\\n\\t\\t\\tupdateFunc = function( i ) {\\r\\n\\t\\t\\t\\treturn function( value ) {\\r\\n\\t\\t\\t\\t\\tresolveContexts[ i ] = this;\\r\\n\\t\\t\\t\\t\\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\\r\\n\\t\\t\\t\\t\\tif ( !( --remaining ) ) {\\r\\n\\t\\t\\t\\t\\t\\tmaster.resolveWith( resolveContexts, resolveValues );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t};\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t// Single- and empty arguments are adopted like Promise.resolve\\r\\n\\t\\tif ( remaining <= 1 ) {\\r\\n\\t\\t\\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );\\r\\n\\r\\n\\t\\t\\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\\r\\n\\t\\t\\tif ( master.state() === \\\"pending\\\" ||\\r\\n\\t\\t\\t\\tjQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\\r\\n\\r\\n\\t\\t\\t\\treturn master.then();\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Multiple arguments are aggregated like Promise.all array elements\\r\\n\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn master.promise();\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n// These usually indicate a programmer mistake during development,\\r\\n// warn about them ASAP rather than swallowing them by default.\\r\\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\\r\\n\\r\\njQuery.Deferred.exceptionHook = function( error, stack ) {\\r\\n\\r\\n\\t// Support: IE 8 - 9 only\\r\\n\\t// Console exists when dev tools are open, which can happen at any time\\r\\n\\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\\r\\n\\t\\twindow.console.warn( \\\"jQuery.Deferred exception: \\\" + error.message, error.stack, stack );\\r\\n\\t}\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\njQuery.readyException = function( error ) {\\r\\n\\twindow.setTimeout( function() {\\r\\n\\t\\tthrow error;\\r\\n\\t} );\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// The deferred used on DOM ready\\r\\nvar readyList = jQuery.Deferred();\\r\\n\\r\\njQuery.fn.ready = function( fn ) {\\r\\n\\r\\n\\treadyList\\r\\n\\t\\t.then( fn )\\r\\n\\r\\n\\t\\t// Wrap jQuery.readyException in a function so that the lookup\\r\\n\\t\\t// happens at the time of error handling instead of callback\\r\\n\\t\\t// registration.\\r\\n\\t\\t.catch( function( error ) {\\r\\n\\t\\t\\tjQuery.readyException( error );\\r\\n\\t\\t} );\\r\\n\\r\\n\\treturn this;\\r\\n};\\r\\n\\r\\njQuery.extend( {\\r\\n\\r\\n\\t// Is the DOM ready to be used? Set to true once it occurs.\\r\\n\\tisReady: false,\\r\\n\\r\\n\\t// A counter to track how many items to wait for before\\r\\n\\t// the ready event fires. See #6781\\r\\n\\treadyWait: 1,\\r\\n\\r\\n\\t// Hold (or release) the ready event\\r\\n\\tholdReady: function( hold ) {\\r\\n\\t\\tif ( hold ) {\\r\\n\\t\\t\\tjQuery.readyWait++;\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tjQuery.ready( true );\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\t// Handle when the DOM is ready\\r\\n\\tready: function( wait ) {\\r\\n\\r\\n\\t\\t// Abort if there are pending holds or we're already ready\\r\\n\\t\\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Remember that the DOM is ready\\r\\n\\t\\tjQuery.isReady = true;\\r\\n\\r\\n\\t\\t// If a normal DOM Ready event fired, decrement, and wait if need be\\r\\n\\t\\tif ( wait !== true && --jQuery.readyWait > 0 ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// If there are functions bound, to execute\\r\\n\\t\\treadyList.resolveWith( document, [ jQuery ] );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.ready.then = readyList.then;\\r\\n\\r\\n// The ready event handler and self cleanup method\\r\\nfunction completed() {\\r\\n\\tdocument.removeEventListener( \\\"DOMContentLoaded\\\", completed );\\r\\n\\twindow.removeEventListener( \\\"load\\\", completed );\\r\\n\\tjQuery.ready();\\r\\n}\\r\\n\\r\\n// Catch cases where $(document).ready() is called\\r\\n// after the browser event has already occurred.\\r\\n// Support: IE <=9 - 10 only\\r\\n// Older IE sometimes signals \\\"interactive\\\" too soon\\r\\nif ( document.readyState === \\\"complete\\\" ||\\r\\n\\t( document.readyState !== \\\"loading\\\" && !document.documentElement.doScroll ) ) {\\r\\n\\r\\n\\t// Handle it asynchronously to allow scripts the opportunity to delay ready\\r\\n\\twindow.setTimeout( jQuery.ready );\\r\\n\\r\\n} else {\\r\\n\\r\\n\\t// Use the handy event callback\\r\\n\\tdocument.addEventListener( \\\"DOMContentLoaded\\\", completed );\\r\\n\\r\\n\\t// A fallback to window.onload, that will always work\\r\\n\\twindow.addEventListener( \\\"load\\\", completed );\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Multifunctional method to get and set values of a collection\\r\\n// The value/s can optionally be executed if it's a function\\r\\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\\r\\n\\tvar i = 0,\\r\\n\\t\\tlen = elems.length,\\r\\n\\t\\tbulk = key == null;\\r\\n\\r\\n\\t// Sets many values\\r\\n\\tif ( jQuery.type( key ) === \\\"object\\\" ) {\\r\\n\\t\\tchainable = true;\\r\\n\\t\\tfor ( i in key ) {\\r\\n\\t\\t\\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\\r\\n\\t\\t}\\r\\n\\r\\n\\t// Sets one value\\r\\n\\t} else if ( value !== undefined ) {\\r\\n\\t\\tchainable = true;\\r\\n\\r\\n\\t\\tif ( !jQuery.isFunction( value ) ) {\\r\\n\\t\\t\\traw = true;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( bulk ) {\\r\\n\\r\\n\\t\\t\\t// Bulk operations run against the entire set\\r\\n\\t\\t\\tif ( raw ) {\\r\\n\\t\\t\\t\\tfn.call( elems, value );\\r\\n\\t\\t\\t\\tfn = null;\\r\\n\\r\\n\\t\\t\\t// ...except when executing function values\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tbulk = fn;\\r\\n\\t\\t\\t\\tfn = function( elem, key, value ) {\\r\\n\\t\\t\\t\\t\\treturn bulk.call( jQuery( elem ), value );\\r\\n\\t\\t\\t\\t};\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( fn ) {\\r\\n\\t\\t\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\t\\t\\tfn(\\r\\n\\t\\t\\t\\t\\telems[ i ], key, raw ?\\r\\n\\t\\t\\t\\t\\tvalue :\\r\\n\\t\\t\\t\\t\\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tif ( chainable ) {\\r\\n\\t\\treturn elems;\\r\\n\\t}\\r\\n\\r\\n\\t// Gets\\r\\n\\tif ( bulk ) {\\r\\n\\t\\treturn fn.call( elems );\\r\\n\\t}\\r\\n\\r\\n\\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\\r\\n};\\r\\nvar acceptData = function( owner ) {\\r\\n\\r\\n\\t// Accepts only:\\r\\n\\t// - Node\\r\\n\\t// - Node.ELEMENT_NODE\\r\\n\\t// - Node.DOCUMENT_NODE\\r\\n\\t// - Object\\r\\n\\t// - Any\\r\\n\\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nfunction Data() {\\r\\n\\tthis.expando = jQuery.expando + Data.uid++;\\r\\n}\\r\\n\\r\\nData.uid = 1;\\r\\n\\r\\nData.prototype = {\\r\\n\\r\\n\\tcache: function( owner ) {\\r\\n\\r\\n\\t\\t// Check if the owner object already has a cache\\r\\n\\t\\tvar value = owner[ this.expando ];\\r\\n\\r\\n\\t\\t// If not, create one\\r\\n\\t\\tif ( !value ) {\\r\\n\\t\\t\\tvalue = {};\\r\\n\\r\\n\\t\\t\\t// We can accept data for non-element nodes in modern browsers,\\r\\n\\t\\t\\t// but we should not, see #8335.\\r\\n\\t\\t\\t// Always return an empty object.\\r\\n\\t\\t\\tif ( acceptData( owner ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// If it is a node unlikely to be stringify-ed or looped over\\r\\n\\t\\t\\t\\t// use plain assignment\\r\\n\\t\\t\\t\\tif ( owner.nodeType ) {\\r\\n\\t\\t\\t\\t\\towner[ this.expando ] = value;\\r\\n\\r\\n\\t\\t\\t\\t// Otherwise secure it in a non-enumerable property\\r\\n\\t\\t\\t\\t// configurable must be true to allow the property to be\\r\\n\\t\\t\\t\\t// deleted when data is removed\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tObject.defineProperty( owner, this.expando, {\\r\\n\\t\\t\\t\\t\\t\\tvalue: value,\\r\\n\\t\\t\\t\\t\\t\\tconfigurable: true\\r\\n\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn value;\\r\\n\\t},\\r\\n\\tset: function( owner, data, value ) {\\r\\n\\t\\tvar prop,\\r\\n\\t\\t\\tcache = this.cache( owner );\\r\\n\\r\\n\\t\\t// Handle: [ owner, key, value ] args\\r\\n\\t\\t// Always use camelCase key (gh-2257)\\r\\n\\t\\tif ( typeof data === \\\"string\\\" ) {\\r\\n\\t\\t\\tcache[ jQuery.camelCase( data ) ] = value;\\r\\n\\r\\n\\t\\t// Handle: [ owner, { properties } ] args\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// Copy the properties one-by-one to the cache object\\r\\n\\t\\t\\tfor ( prop in data ) {\\r\\n\\t\\t\\t\\tcache[ jQuery.camelCase( prop ) ] = data[ prop ];\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\treturn cache;\\r\\n\\t},\\r\\n\\tget: function( owner, key ) {\\r\\n\\t\\treturn key === undefined ?\\r\\n\\t\\t\\tthis.cache( owner ) :\\r\\n\\r\\n\\t\\t\\t// Always use camelCase key (gh-2257)\\r\\n\\t\\t\\towner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];\\r\\n\\t},\\r\\n\\taccess: function( owner, key, value ) {\\r\\n\\r\\n\\t\\t// In cases where either:\\r\\n\\t\\t//\\r\\n\\t\\t// 1. No key was specified\\r\\n\\t\\t// 2. A string key was specified, but no value provided\\r\\n\\t\\t//\\r\\n\\t\\t// Take the \\\"read\\\" path and allow the get method to determine\\r\\n\\t\\t// which value to return, respectively either:\\r\\n\\t\\t//\\r\\n\\t\\t// 1. The entire cache object\\r\\n\\t\\t// 2. The data stored at the key\\r\\n\\t\\t//\\r\\n\\t\\tif ( key === undefined ||\\r\\n\\t\\t\\t\\t( ( key && typeof key === \\\"string\\\" ) && value === undefined ) ) {\\r\\n\\r\\n\\t\\t\\treturn this.get( owner, key );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// When the key is not a string, or both a key and value\\r\\n\\t\\t// are specified, set or extend (existing objects) with either:\\r\\n\\t\\t//\\r\\n\\t\\t// 1. An object of properties\\r\\n\\t\\t// 2. A key and value\\r\\n\\t\\t//\\r\\n\\t\\tthis.set( owner, key, value );\\r\\n\\r\\n\\t\\t// Since the \\\"set\\\" path can have two possible entry points\\r\\n\\t\\t// return the expected data based on which path was taken[*]\\r\\n\\t\\treturn value !== undefined ? value : key;\\r\\n\\t},\\r\\n\\tremove: function( owner, key ) {\\r\\n\\t\\tvar i,\\r\\n\\t\\t\\tcache = owner[ this.expando ];\\r\\n\\r\\n\\t\\tif ( cache === undefined ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( key !== undefined ) {\\r\\n\\r\\n\\t\\t\\t// Support array or space separated string of keys\\r\\n\\t\\t\\tif ( jQuery.isArray( key ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// If key is an array of keys...\\r\\n\\t\\t\\t\\t// We always set camelCase keys, so remove that.\\r\\n\\t\\t\\t\\tkey = key.map( jQuery.camelCase );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tkey = jQuery.camelCase( key );\\r\\n\\r\\n\\t\\t\\t\\t// If a key with the spaces exists, use it.\\r\\n\\t\\t\\t\\t// Otherwise, create an array by matching non-whitespace\\r\\n\\t\\t\\t\\tkey = key in cache ?\\r\\n\\t\\t\\t\\t\\t[ key ] :\\r\\n\\t\\t\\t\\t\\t( key.match( rnothtmlwhite ) || [] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\ti = key.length;\\r\\n\\r\\n\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\tdelete cache[ key[ i ] ];\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Remove the expando if there's no more data\\r\\n\\t\\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\\r\\n\\r\\n\\t\\t\\t// Support: Chrome <=35 - 45\\r\\n\\t\\t\\t// Webkit & Blink performance suffers when deleting properties\\r\\n\\t\\t\\t// from DOM nodes, so set to undefined instead\\r\\n\\t\\t\\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\\r\\n\\t\\t\\tif ( owner.nodeType ) {\\r\\n\\t\\t\\t\\towner[ this.expando ] = undefined;\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tdelete owner[ this.expando ];\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\thasData: function( owner ) {\\r\\n\\t\\tvar cache = owner[ this.expando ];\\r\\n\\t\\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\\r\\n\\t}\\r\\n};\\r\\nvar dataPriv = new Data();\\r\\n\\r\\nvar dataUser = new Data();\\r\\n\\r\\n\\r\\n\\r\\n//\\tImplementation Summary\\r\\n//\\r\\n//\\t1. Enforce API surface and semantic compatibility with 1.9.x branch\\r\\n//\\t2. Improve the module's maintainability by reducing the storage\\r\\n//\\t\\tpaths to a single mechanism.\\r\\n//\\t3. Use the same single mechanism to support \\\"private\\\" and \\\"user\\\" data.\\r\\n//\\t4. _Never_ expose \\\"private\\\" data to user code (TODO: Drop _data, _removeData)\\r\\n//\\t5. Avoid exposing implementation details on user objects (eg. expando properties)\\r\\n//\\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\\r\\n\\r\\nvar rbrace = /^(?:\\\\{[\\\\w\\\\W]*\\\\}|\\\\[[\\\\w\\\\W]*\\\\])$/,\\r\\n\\trmultiDash = /[A-Z]/g;\\r\\n\\r\\nfunction getData( data ) {\\r\\n\\tif ( data === \\\"true\\\" ) {\\r\\n\\t\\treturn true;\\r\\n\\t}\\r\\n\\r\\n\\tif ( data === \\\"false\\\" ) {\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\r\\n\\tif ( data === \\\"null\\\" ) {\\r\\n\\t\\treturn null;\\r\\n\\t}\\r\\n\\r\\n\\t// Only convert to a number if it doesn't change the string\\r\\n\\tif ( data === +data + \\\"\\\" ) {\\r\\n\\t\\treturn +data;\\r\\n\\t}\\r\\n\\r\\n\\tif ( rbrace.test( data ) ) {\\r\\n\\t\\treturn JSON.parse( data );\\r\\n\\t}\\r\\n\\r\\n\\treturn data;\\r\\n}\\r\\n\\r\\nfunction dataAttr( elem, key, data ) {\\r\\n\\tvar name;\\r\\n\\r\\n\\t// If nothing was found internally, try to fetch any\\r\\n\\t// data from the HTML5 data-* attribute\\r\\n\\tif ( data === undefined && elem.nodeType === 1 ) {\\r\\n\\t\\tname = \\\"data-\\\" + key.replace( rmultiDash, \\\"-$&\\\" ).toLowerCase();\\r\\n\\t\\tdata = elem.getAttribute( name );\\r\\n\\r\\n\\t\\tif ( typeof data === \\\"string\\\" ) {\\r\\n\\t\\t\\ttry {\\r\\n\\t\\t\\t\\tdata = getData( data );\\r\\n\\t\\t\\t} catch ( e ) {}\\r\\n\\r\\n\\t\\t\\t// Make sure we set the data so it isn't changed later\\r\\n\\t\\t\\tdataUser.set( elem, key, data );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tdata = undefined;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn data;\\r\\n}\\r\\n\\r\\njQuery.extend( {\\r\\n\\thasData: function( elem ) {\\r\\n\\t\\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\\r\\n\\t},\\r\\n\\r\\n\\tdata: function( elem, name, data ) {\\r\\n\\t\\treturn dataUser.access( elem, name, data );\\r\\n\\t},\\r\\n\\r\\n\\tremoveData: function( elem, name ) {\\r\\n\\t\\tdataUser.remove( elem, name );\\r\\n\\t},\\r\\n\\r\\n\\t// TODO: Now that all calls to _data and _removeData have been replaced\\r\\n\\t// with direct calls to dataPriv methods, these can be deprecated.\\r\\n\\t_data: function( elem, name, data ) {\\r\\n\\t\\treturn dataPriv.access( elem, name, data );\\r\\n\\t},\\r\\n\\r\\n\\t_removeData: function( elem, name ) {\\r\\n\\t\\tdataPriv.remove( elem, name );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tdata: function( key, value ) {\\r\\n\\t\\tvar i, name, data,\\r\\n\\t\\t\\telem = this[ 0 ],\\r\\n\\t\\t\\tattrs = elem && elem.attributes;\\r\\n\\r\\n\\t\\t// Gets all values\\r\\n\\t\\tif ( key === undefined ) {\\r\\n\\t\\t\\tif ( this.length ) {\\r\\n\\t\\t\\t\\tdata = dataUser.get( elem );\\r\\n\\r\\n\\t\\t\\t\\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \\\"hasDataAttrs\\\" ) ) {\\r\\n\\t\\t\\t\\t\\ti = attrs.length;\\r\\n\\t\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Support: IE 11 only\\r\\n\\t\\t\\t\\t\\t\\t// The attrs elements can be null (#14894)\\r\\n\\t\\t\\t\\t\\t\\tif ( attrs[ i ] ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tname = attrs[ i ].name;\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( name.indexOf( \\\"data-\\\" ) === 0 ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname = jQuery.camelCase( name.slice( 5 ) );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tdataAttr( elem, name, data[ name ] );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tdataPriv.set( elem, \\\"hasDataAttrs\\\", true );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn data;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Sets multiple values\\r\\n\\t\\tif ( typeof key === \\\"object\\\" ) {\\r\\n\\t\\t\\treturn this.each( function() {\\r\\n\\t\\t\\t\\tdataUser.set( this, key );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn access( this, function( value ) {\\r\\n\\t\\t\\tvar data;\\r\\n\\r\\n\\t\\t\\t// The calling jQuery object (element matches) is not empty\\r\\n\\t\\t\\t// (and therefore has an element appears at this[ 0 ]) and the\\r\\n\\t\\t\\t// `value` parameter was not undefined. An empty jQuery object\\r\\n\\t\\t\\t// will result in `undefined` for elem = this[ 0 ] which will\\r\\n\\t\\t\\t// throw an exception if an attempt to read a data cache is made.\\r\\n\\t\\t\\tif ( elem && value === undefined ) {\\r\\n\\r\\n\\t\\t\\t\\t// Attempt to get data from the cache\\r\\n\\t\\t\\t\\t// The key will always be camelCased in Data\\r\\n\\t\\t\\t\\tdata = dataUser.get( elem, key );\\r\\n\\t\\t\\t\\tif ( data !== undefined ) {\\r\\n\\t\\t\\t\\t\\treturn data;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Attempt to \\\"discover\\\" the data in\\r\\n\\t\\t\\t\\t// HTML5 custom data-* attrs\\r\\n\\t\\t\\t\\tdata = dataAttr( elem, key );\\r\\n\\t\\t\\t\\tif ( data !== undefined ) {\\r\\n\\t\\t\\t\\t\\treturn data;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// We tried really hard, but the data doesn't exist.\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Set the data...\\r\\n\\t\\t\\tthis.each( function() {\\r\\n\\r\\n\\t\\t\\t\\t// We always store the camelCased key\\r\\n\\t\\t\\t\\tdataUser.set( this, key, value );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}, null, value, arguments.length > 1, null, true );\\r\\n\\t},\\r\\n\\r\\n\\tremoveData: function( key ) {\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tdataUser.remove( this, key );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\njQuery.extend( {\\r\\n\\tqueue: function( elem, type, data ) {\\r\\n\\t\\tvar queue;\\r\\n\\r\\n\\t\\tif ( elem ) {\\r\\n\\t\\t\\ttype = ( type || \\\"fx\\\" ) + \\\"queue\\\";\\r\\n\\t\\t\\tqueue = dataPriv.get( elem, type );\\r\\n\\r\\n\\t\\t\\t// Speed up dequeue by getting out quickly if this is just a lookup\\r\\n\\t\\t\\tif ( data ) {\\r\\n\\t\\t\\t\\tif ( !queue || jQuery.isArray( data ) ) {\\r\\n\\t\\t\\t\\t\\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tqueue.push( data );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn queue || [];\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tdequeue: function( elem, type ) {\\r\\n\\t\\ttype = type || \\\"fx\\\";\\r\\n\\r\\n\\t\\tvar queue = jQuery.queue( elem, type ),\\r\\n\\t\\t\\tstartLength = queue.length,\\r\\n\\t\\t\\tfn = queue.shift(),\\r\\n\\t\\t\\thooks = jQuery._queueHooks( elem, type ),\\r\\n\\t\\t\\tnext = function() {\\r\\n\\t\\t\\t\\tjQuery.dequeue( elem, type );\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t// If the fx queue is dequeued, always remove the progress sentinel\\r\\n\\t\\tif ( fn === \\\"inprogress\\\" ) {\\r\\n\\t\\t\\tfn = queue.shift();\\r\\n\\t\\t\\tstartLength--;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( fn ) {\\r\\n\\r\\n\\t\\t\\t// Add a progress sentinel to prevent the fx queue from being\\r\\n\\t\\t\\t// automatically dequeued\\r\\n\\t\\t\\tif ( type === \\\"fx\\\" ) {\\r\\n\\t\\t\\t\\tqueue.unshift( \\\"inprogress\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Clear up the last queue stop function\\r\\n\\t\\t\\tdelete hooks.stop;\\r\\n\\t\\t\\tfn.call( elem, next, hooks );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( !startLength && hooks ) {\\r\\n\\t\\t\\thooks.empty.fire();\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\t// Not public - generate a queueHooks object, or return the current one\\r\\n\\t_queueHooks: function( elem, type ) {\\r\\n\\t\\tvar key = type + \\\"queueHooks\\\";\\r\\n\\t\\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\\r\\n\\t\\t\\tempty: jQuery.Callbacks( \\\"once memory\\\" ).add( function() {\\r\\n\\t\\t\\t\\tdataPriv.remove( elem, [ type + \\\"queue\\\", key ] );\\r\\n\\t\\t\\t} )\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tqueue: function( type, data ) {\\r\\n\\t\\tvar setter = 2;\\r\\n\\r\\n\\t\\tif ( typeof type !== \\\"string\\\" ) {\\r\\n\\t\\t\\tdata = type;\\r\\n\\t\\t\\ttype = \\\"fx\\\";\\r\\n\\t\\t\\tsetter--;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( arguments.length < setter ) {\\r\\n\\t\\t\\treturn jQuery.queue( this[ 0 ], type );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn data === undefined ?\\r\\n\\t\\t\\tthis :\\r\\n\\t\\t\\tthis.each( function() {\\r\\n\\t\\t\\t\\tvar queue = jQuery.queue( this, type, data );\\r\\n\\r\\n\\t\\t\\t\\t// Ensure a hooks for this queue\\r\\n\\t\\t\\t\\tjQuery._queueHooks( this, type );\\r\\n\\r\\n\\t\\t\\t\\tif ( type === \\\"fx\\\" && queue[ 0 ] !== \\\"inprogress\\\" ) {\\r\\n\\t\\t\\t\\t\\tjQuery.dequeue( this, type );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} );\\r\\n\\t},\\r\\n\\tdequeue: function( type ) {\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tjQuery.dequeue( this, type );\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\tclearQueue: function( type ) {\\r\\n\\t\\treturn this.queue( type || \\\"fx\\\", [] );\\r\\n\\t},\\r\\n\\r\\n\\t// Get a promise resolved when queues of a certain type\\r\\n\\t// are emptied (fx is the type by default)\\r\\n\\tpromise: function( type, obj ) {\\r\\n\\t\\tvar tmp,\\r\\n\\t\\t\\tcount = 1,\\r\\n\\t\\t\\tdefer = jQuery.Deferred(),\\r\\n\\t\\t\\telements = this,\\r\\n\\t\\t\\ti = this.length,\\r\\n\\t\\t\\tresolve = function() {\\r\\n\\t\\t\\t\\tif ( !( --count ) ) {\\r\\n\\t\\t\\t\\t\\tdefer.resolveWith( elements, [ elements ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\tif ( typeof type !== \\\"string\\\" ) {\\r\\n\\t\\t\\tobj = type;\\r\\n\\t\\t\\ttype = undefined;\\r\\n\\t\\t}\\r\\n\\t\\ttype = type || \\\"fx\\\";\\r\\n\\r\\n\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\ttmp = dataPriv.get( elements[ i ], type + \\\"queueHooks\\\" );\\r\\n\\t\\t\\tif ( tmp && tmp.empty ) {\\r\\n\\t\\t\\t\\tcount++;\\r\\n\\t\\t\\t\\ttmp.empty.add( resolve );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\tresolve();\\r\\n\\t\\treturn defer.promise( obj );\\r\\n\\t}\\r\\n} );\\r\\nvar pnum = ( /[+-]?(?:\\\\d*\\\\.|)\\\\d+(?:[eE][+-]?\\\\d+|)/ ).source;\\r\\n\\r\\nvar rcssNum = new RegExp( \\\"^(?:([+-])=|)(\\\" + pnum + \\\")([a-z%]*)$\\\", \\\"i\\\" );\\r\\n\\r\\n\\r\\nvar cssExpand = [ \\\"Top\\\", \\\"Right\\\", \\\"Bottom\\\", \\\"Left\\\" ];\\r\\n\\r\\nvar isHiddenWithinTree = function( elem, el ) {\\r\\n\\r\\n\\t\\t// isHiddenWithinTree might be called from jQuery#filter function;\\r\\n\\t\\t// in that case, element will be second argument\\r\\n\\t\\telem = el || elem;\\r\\n\\r\\n\\t\\t// Inline style trumps all\\r\\n\\t\\treturn elem.style.display === \\\"none\\\" ||\\r\\n\\t\\t\\telem.style.display === \\\"\\\" &&\\r\\n\\r\\n\\t\\t\\t// Otherwise, check computed style\\r\\n\\t\\t\\t// Support: Firefox <=43 - 45\\r\\n\\t\\t\\t// Disconnected elements can have computed display: none, so first confirm that elem is\\r\\n\\t\\t\\t// in the document.\\r\\n\\t\\t\\tjQuery.contains( elem.ownerDocument, elem ) &&\\r\\n\\r\\n\\t\\t\\tjQuery.css( elem, \\\"display\\\" ) === \\\"none\\\";\\r\\n\\t};\\r\\n\\r\\nvar swap = function( elem, options, callback, args ) {\\r\\n\\tvar ret, name,\\r\\n\\t\\told = {};\\r\\n\\r\\n\\t// Remember the old values, and insert the new ones\\r\\n\\tfor ( name in options ) {\\r\\n\\t\\told[ name ] = elem.style[ name ];\\r\\n\\t\\telem.style[ name ] = options[ name ];\\r\\n\\t}\\r\\n\\r\\n\\tret = callback.apply( elem, args || [] );\\r\\n\\r\\n\\t// Revert the old values\\r\\n\\tfor ( name in options ) {\\r\\n\\t\\telem.style[ name ] = old[ name ];\\r\\n\\t}\\r\\n\\r\\n\\treturn ret;\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nfunction adjustCSS( elem, prop, valueParts, tween ) {\\r\\n\\tvar adjusted,\\r\\n\\t\\tscale = 1,\\r\\n\\t\\tmaxIterations = 20,\\r\\n\\t\\tcurrentValue = tween ?\\r\\n\\t\\t\\tfunction() {\\r\\n\\t\\t\\t\\treturn tween.cur();\\r\\n\\t\\t\\t} :\\r\\n\\t\\t\\tfunction() {\\r\\n\\t\\t\\t\\treturn jQuery.css( elem, prop, \\\"\\\" );\\r\\n\\t\\t\\t},\\r\\n\\t\\tinitial = currentValue(),\\r\\n\\t\\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \\\"\\\" : \\\"px\\\" ),\\r\\n\\r\\n\\t\\t// Starting value computation is required for potential unit mismatches\\r\\n\\t\\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \\\"px\\\" && +initial ) &&\\r\\n\\t\\t\\trcssNum.exec( jQuery.css( elem, prop ) );\\r\\n\\r\\n\\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\\r\\n\\r\\n\\t\\t// Trust units reported by jQuery.css\\r\\n\\t\\tunit = unit || initialInUnit[ 3 ];\\r\\n\\r\\n\\t\\t// Make sure we update the tween properties later on\\r\\n\\t\\tvalueParts = valueParts || [];\\r\\n\\r\\n\\t\\t// Iteratively approximate from a nonzero starting point\\r\\n\\t\\tinitialInUnit = +initial || 1;\\r\\n\\r\\n\\t\\tdo {\\r\\n\\r\\n\\t\\t\\t// If previous iteration zeroed out, double until we get *something*.\\r\\n\\t\\t\\t// Use string for doubling so we don't accidentally see scale as unchanged below\\r\\n\\t\\t\\tscale = scale || \\\".5\\\";\\r\\n\\r\\n\\t\\t\\t// Adjust and apply\\r\\n\\t\\t\\tinitialInUnit = initialInUnit / scale;\\r\\n\\t\\t\\tjQuery.style( elem, prop, initialInUnit + unit );\\r\\n\\r\\n\\t\\t// Update scale, tolerating zero or NaN from tween.cur()\\r\\n\\t\\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\\r\\n\\t\\t} while (\\r\\n\\t\\t\\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\\r\\n\\t\\t);\\r\\n\\t}\\r\\n\\r\\n\\tif ( valueParts ) {\\r\\n\\t\\tinitialInUnit = +initialInUnit || +initial || 0;\\r\\n\\r\\n\\t\\t// Apply relative offset (+=/-=) if specified\\r\\n\\t\\tadjusted = valueParts[ 1 ] ?\\r\\n\\t\\t\\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\\r\\n\\t\\t\\t+valueParts[ 2 ];\\r\\n\\t\\tif ( tween ) {\\r\\n\\t\\t\\ttween.unit = unit;\\r\\n\\t\\t\\ttween.start = initialInUnit;\\r\\n\\t\\t\\ttween.end = adjusted;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn adjusted;\\r\\n}\\r\\n\\r\\n\\r\\nvar defaultDisplayMap = {};\\r\\n\\r\\nfunction getDefaultDisplay( elem ) {\\r\\n\\tvar temp,\\r\\n\\t\\tdoc = elem.ownerDocument,\\r\\n\\t\\tnodeName = elem.nodeName,\\r\\n\\t\\tdisplay = defaultDisplayMap[ nodeName ];\\r\\n\\r\\n\\tif ( display ) {\\r\\n\\t\\treturn display;\\r\\n\\t}\\r\\n\\r\\n\\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\\r\\n\\tdisplay = jQuery.css( temp, \\\"display\\\" );\\r\\n\\r\\n\\ttemp.parentNode.removeChild( temp );\\r\\n\\r\\n\\tif ( display === \\\"none\\\" ) {\\r\\n\\t\\tdisplay = \\\"block\\\";\\r\\n\\t}\\r\\n\\tdefaultDisplayMap[ nodeName ] = display;\\r\\n\\r\\n\\treturn display;\\r\\n}\\r\\n\\r\\nfunction showHide( elements, show ) {\\r\\n\\tvar display, elem,\\r\\n\\t\\tvalues = [],\\r\\n\\t\\tindex = 0,\\r\\n\\t\\tlength = elements.length;\\r\\n\\r\\n\\t// Determine new display value for elements that need to change\\r\\n\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\telem = elements[ index ];\\r\\n\\t\\tif ( !elem.style ) {\\r\\n\\t\\t\\tcontinue;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tdisplay = elem.style.display;\\r\\n\\t\\tif ( show ) {\\r\\n\\r\\n\\t\\t\\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\\r\\n\\t\\t\\t// check is required in this first loop unless we have a nonempty display value (either\\r\\n\\t\\t\\t// inline or about-to-be-restored)\\r\\n\\t\\t\\tif ( display === \\\"none\\\" ) {\\r\\n\\t\\t\\t\\tvalues[ index ] = dataPriv.get( elem, \\\"display\\\" ) || null;\\r\\n\\t\\t\\t\\tif ( !values[ index ] ) {\\r\\n\\t\\t\\t\\t\\telem.style.display = \\\"\\\";\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tif ( elem.style.display === \\\"\\\" && isHiddenWithinTree( elem ) ) {\\r\\n\\t\\t\\t\\tvalues[ index ] = getDefaultDisplay( elem );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tif ( display !== \\\"none\\\" ) {\\r\\n\\t\\t\\t\\tvalues[ index ] = \\\"none\\\";\\r\\n\\r\\n\\t\\t\\t\\t// Remember what we're overwriting\\r\\n\\t\\t\\t\\tdataPriv.set( elem, \\\"display\\\", display );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Set the display of the elements in a second loop to avoid constant reflow\\r\\n\\tfor ( index = 0; index < length; index++ ) {\\r\\n\\t\\tif ( values[ index ] != null ) {\\r\\n\\t\\t\\telements[ index ].style.display = values[ index ];\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn elements;\\r\\n}\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tshow: function() {\\r\\n\\t\\treturn showHide( this, true );\\r\\n\\t},\\r\\n\\thide: function() {\\r\\n\\t\\treturn showHide( this );\\r\\n\\t},\\r\\n\\ttoggle: function( state ) {\\r\\n\\t\\tif ( typeof state === \\\"boolean\\\" ) {\\r\\n\\t\\t\\treturn state ? this.show() : this.hide();\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tif ( isHiddenWithinTree( this ) ) {\\r\\n\\t\\t\\t\\tjQuery( this ).show();\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tjQuery( this ).hide();\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\\r\\n\\r\\nvar rtagName = ( /<([a-z][^\\\\/\\\\0>\\\\x20\\\\t\\\\r\\\\n\\\\f]+)/i );\\r\\n\\r\\nvar rscriptType = ( /^$|\\\\/(?:java|ecma)script/i );\\r\\n\\r\\n\\r\\n\\r\\n// We have to close these tags to support XHTML (#13200)\\r\\nvar wrapMap = {\\r\\n\\r\\n\\t// Support: IE <=9 only\\r\\n\\toption: [ 1, \\\"<select multiple='multiple'>\\\", \\\"</select>\\\" ],\\r\\n\\r\\n\\t// XHTML parsers do not magically insert elements in the\\r\\n\\t// same way that tag soup parsers do. So we cannot shorten\\r\\n\\t// this by omitting <tbody> or other required elements.\\r\\n\\tthead: [ 1, \\\"<table>\\\", \\\"</table>\\\" ],\\r\\n\\tcol: [ 2, \\\"<table><colgroup>\\\", \\\"</colgroup></table>\\\" ],\\r\\n\\ttr: [ 2, \\\"<table><tbody>\\\", \\\"</tbody></table>\\\" ],\\r\\n\\ttd: [ 3, \\\"<table><tbody><tr>\\\", \\\"</tr></tbody></table>\\\" ],\\r\\n\\r\\n\\t_default: [ 0, \\\"\\\", \\\"\\\" ]\\r\\n};\\r\\n\\r\\n// Support: IE <=9 only\\r\\nwrapMap.optgroup = wrapMap.option;\\r\\n\\r\\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\\r\\nwrapMap.th = wrapMap.td;\\r\\n\\r\\n\\r\\nfunction getAll( context, tag ) {\\r\\n\\r\\n\\t// Support: IE <=9 - 11 only\\r\\n\\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\\r\\n\\tvar ret;\\r\\n\\r\\n\\tif ( typeof context.getElementsByTagName !== \\\"undefined\\\" ) {\\r\\n\\t\\tret = context.getElementsByTagName( tag || \\\"*\\\" );\\r\\n\\r\\n\\t} else if ( typeof context.querySelectorAll !== \\\"undefined\\\" ) {\\r\\n\\t\\tret = context.querySelectorAll( tag || \\\"*\\\" );\\r\\n\\r\\n\\t} else {\\r\\n\\t\\tret = [];\\r\\n\\t}\\r\\n\\r\\n\\tif ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) {\\r\\n\\t\\treturn jQuery.merge( [ context ], ret );\\r\\n\\t}\\r\\n\\r\\n\\treturn ret;\\r\\n}\\r\\n\\r\\n\\r\\n// Mark scripts as having already been evaluated\\r\\nfunction setGlobalEval( elems, refElements ) {\\r\\n\\tvar i = 0,\\r\\n\\t\\tl = elems.length;\\r\\n\\r\\n\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\tdataPriv.set(\\r\\n\\t\\t\\telems[ i ],\\r\\n\\t\\t\\t\\\"globalEval\\\",\\r\\n\\t\\t\\t!refElements || dataPriv.get( refElements[ i ], \\\"globalEval\\\" )\\r\\n\\t\\t);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n\\r\\nvar rhtml = /<|&#?\\\\w+;/;\\r\\n\\r\\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\\r\\n\\tvar elem, tmp, tag, wrap, contains, j,\\r\\n\\t\\tfragment = context.createDocumentFragment(),\\r\\n\\t\\tnodes = [],\\r\\n\\t\\ti = 0,\\r\\n\\t\\tl = elems.length;\\r\\n\\r\\n\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\telem = elems[ i ];\\r\\n\\r\\n\\t\\tif ( elem || elem === 0 ) {\\r\\n\\r\\n\\t\\t\\t// Add nodes directly\\r\\n\\t\\t\\tif ( jQuery.type( elem ) === \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t// Support: Android <=4.0 only, PhantomJS 1 only\\r\\n\\t\\t\\t\\t// push.apply(_, arraylike) throws on ancient WebKit\\r\\n\\t\\t\\t\\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\\r\\n\\r\\n\\t\\t\\t// Convert non-html into a text node\\r\\n\\t\\t\\t} else if ( !rhtml.test( elem ) ) {\\r\\n\\t\\t\\t\\tnodes.push( context.createTextNode( elem ) );\\r\\n\\r\\n\\t\\t\\t// Convert html into DOM nodes\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\ttmp = tmp || fragment.appendChild( context.createElement( \\\"div\\\" ) );\\r\\n\\r\\n\\t\\t\\t\\t// Deserialize a standard representation\\r\\n\\t\\t\\t\\ttag = ( rtagName.exec( elem ) || [ \\\"\\\", \\\"\\\" ] )[ 1 ].toLowerCase();\\r\\n\\t\\t\\t\\twrap = wrapMap[ tag ] || wrapMap._default;\\r\\n\\t\\t\\t\\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\\r\\n\\r\\n\\t\\t\\t\\t// Descend through wrappers to the right content\\r\\n\\t\\t\\t\\tj = wrap[ 0 ];\\r\\n\\t\\t\\t\\twhile ( j-- ) {\\r\\n\\t\\t\\t\\t\\ttmp = tmp.lastChild;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Support: Android <=4.0 only, PhantomJS 1 only\\r\\n\\t\\t\\t\\t// push.apply(_, arraylike) throws on ancient WebKit\\r\\n\\t\\t\\t\\tjQuery.merge( nodes, tmp.childNodes );\\r\\n\\r\\n\\t\\t\\t\\t// Remember the top-level container\\r\\n\\t\\t\\t\\ttmp = fragment.firstChild;\\r\\n\\r\\n\\t\\t\\t\\t// Ensure the created nodes are orphaned (#12392)\\r\\n\\t\\t\\t\\ttmp.textContent = \\\"\\\";\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Remove wrapper from fragment\\r\\n\\tfragment.textContent = \\\"\\\";\\r\\n\\r\\n\\ti = 0;\\r\\n\\twhile ( ( elem = nodes[ i++ ] ) ) {\\r\\n\\r\\n\\t\\t// Skip elements already in the context collection (trac-4087)\\r\\n\\t\\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\\r\\n\\t\\t\\tif ( ignored ) {\\r\\n\\t\\t\\t\\tignored.push( elem );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tcontinue;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tcontains = jQuery.contains( elem.ownerDocument, elem );\\r\\n\\r\\n\\t\\t// Append to fragment\\r\\n\\t\\ttmp = getAll( fragment.appendChild( elem ), \\\"script\\\" );\\r\\n\\r\\n\\t\\t// Preserve script evaluation history\\r\\n\\t\\tif ( contains ) {\\r\\n\\t\\t\\tsetGlobalEval( tmp );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Capture executables\\r\\n\\t\\tif ( scripts ) {\\r\\n\\t\\t\\tj = 0;\\r\\n\\t\\t\\twhile ( ( elem = tmp[ j++ ] ) ) {\\r\\n\\t\\t\\t\\tif ( rscriptType.test( elem.type || \\\"\\\" ) ) {\\r\\n\\t\\t\\t\\t\\tscripts.push( elem );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn fragment;\\r\\n}\\r\\n\\r\\n\\r\\n( function() {\\r\\n\\tvar fragment = document.createDocumentFragment(),\\r\\n\\t\\tdiv = fragment.appendChild( document.createElement( \\\"div\\\" ) ),\\r\\n\\t\\tinput = document.createElement( \\\"input\\\" );\\r\\n\\r\\n\\t// Support: Android 4.0 - 4.3 only\\r\\n\\t// Check state lost if the name is set (#11217)\\r\\n\\t// Support: Windows Web Apps (WWA)\\r\\n\\t// `name` and `type` must use .setAttribute for WWA (#14901)\\r\\n\\tinput.setAttribute( \\\"type\\\", \\\"radio\\\" );\\r\\n\\tinput.setAttribute( \\\"checked\\\", \\\"checked\\\" );\\r\\n\\tinput.setAttribute( \\\"name\\\", \\\"t\\\" );\\r\\n\\r\\n\\tdiv.appendChild( input );\\r\\n\\r\\n\\t// Support: Android <=4.1 only\\r\\n\\t// Older WebKit doesn't clone checked state correctly in fragments\\r\\n\\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\\r\\n\\r\\n\\t// Support: IE <=11 only\\r\\n\\t// Make sure textarea (and checkbox) defaultValue is properly cloned\\r\\n\\tdiv.innerHTML = \\\"<textarea>x</textarea>\\\";\\r\\n\\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\\r\\n} )();\\r\\nvar documentElement = document.documentElement;\\r\\n\\r\\n\\r\\n\\r\\nvar\\r\\n\\trkeyEvent = /^key/,\\r\\n\\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\\r\\n\\trtypenamespace = /^([^.]*)(?:\\\\.(.+)|)/;\\r\\n\\r\\nfunction returnTrue() {\\r\\n\\treturn true;\\r\\n}\\r\\n\\r\\nfunction returnFalse() {\\r\\n\\treturn false;\\r\\n}\\r\\n\\r\\n// Support: IE <=9 only\\r\\n// See #13393 for more info\\r\\nfunction safeActiveElement() {\\r\\n\\ttry {\\r\\n\\t\\treturn document.activeElement;\\r\\n\\t} catch ( err ) { }\\r\\n}\\r\\n\\r\\nfunction on( elem, types, selector, data, fn, one ) {\\r\\n\\tvar origFn, type;\\r\\n\\r\\n\\t// Types can be a map of types/handlers\\r\\n\\tif ( typeof types === \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t// ( types-Object, selector, data )\\r\\n\\t\\tif ( typeof selector !== \\\"string\\\" ) {\\r\\n\\r\\n\\t\\t\\t// ( types-Object, data )\\r\\n\\t\\t\\tdata = data || selector;\\r\\n\\t\\t\\tselector = undefined;\\r\\n\\t\\t}\\r\\n\\t\\tfor ( type in types ) {\\r\\n\\t\\t\\ton( elem, type, selector, data, types[ type ], one );\\r\\n\\t\\t}\\r\\n\\t\\treturn elem;\\r\\n\\t}\\r\\n\\r\\n\\tif ( data == null && fn == null ) {\\r\\n\\r\\n\\t\\t// ( types, fn )\\r\\n\\t\\tfn = selector;\\r\\n\\t\\tdata = selector = undefined;\\r\\n\\t} else if ( fn == null ) {\\r\\n\\t\\tif ( typeof selector === \\\"string\\\" ) {\\r\\n\\r\\n\\t\\t\\t// ( types, selector, fn )\\r\\n\\t\\t\\tfn = data;\\r\\n\\t\\t\\tdata = undefined;\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// ( types, data, fn )\\r\\n\\t\\t\\tfn = data;\\r\\n\\t\\t\\tdata = selector;\\r\\n\\t\\t\\tselector = undefined;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\tif ( fn === false ) {\\r\\n\\t\\tfn = returnFalse;\\r\\n\\t} else if ( !fn ) {\\r\\n\\t\\treturn elem;\\r\\n\\t}\\r\\n\\r\\n\\tif ( one === 1 ) {\\r\\n\\t\\torigFn = fn;\\r\\n\\t\\tfn = function( event ) {\\r\\n\\r\\n\\t\\t\\t// Can use an empty set, since event contains the info\\r\\n\\t\\t\\tjQuery().off( event );\\r\\n\\t\\t\\treturn origFn.apply( this, arguments );\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// Use same guid so caller can remove using origFn\\r\\n\\t\\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\\r\\n\\t}\\r\\n\\treturn elem.each( function() {\\r\\n\\t\\tjQuery.event.add( this, types, fn, data, selector );\\r\\n\\t} );\\r\\n}\\r\\n\\r\\n/*\\r\\n * Helper functions for managing events -- not part of the public interface.\\r\\n * Props to Dean Edwards' addEvent library for many of the ideas.\\r\\n */\\r\\njQuery.event = {\\r\\n\\r\\n\\tglobal: {},\\r\\n\\r\\n\\tadd: function( elem, types, handler, data, selector ) {\\r\\n\\r\\n\\t\\tvar handleObjIn, eventHandle, tmp,\\r\\n\\t\\t\\tevents, t, handleObj,\\r\\n\\t\\t\\tspecial, handlers, type, namespaces, origType,\\r\\n\\t\\t\\telemData = dataPriv.get( elem );\\r\\n\\r\\n\\t\\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\\r\\n\\t\\tif ( !elemData ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Caller can pass in an object of custom data in lieu of the handler\\r\\n\\t\\tif ( handler.handler ) {\\r\\n\\t\\t\\thandleObjIn = handler;\\r\\n\\t\\t\\thandler = handleObjIn.handler;\\r\\n\\t\\t\\tselector = handleObjIn.selector;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Ensure that invalid selectors throw exceptions at attach time\\r\\n\\t\\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\\r\\n\\t\\tif ( selector ) {\\r\\n\\t\\t\\tjQuery.find.matchesSelector( documentElement, selector );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Make sure that the handler has a unique ID, used to find/remove it later\\r\\n\\t\\tif ( !handler.guid ) {\\r\\n\\t\\t\\thandler.guid = jQuery.guid++;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Init the element's event structure and main handler, if this is the first\\r\\n\\t\\tif ( !( events = elemData.events ) ) {\\r\\n\\t\\t\\tevents = elemData.events = {};\\r\\n\\t\\t}\\r\\n\\t\\tif ( !( eventHandle = elemData.handle ) ) {\\r\\n\\t\\t\\teventHandle = elemData.handle = function( e ) {\\r\\n\\r\\n\\t\\t\\t\\t// Discard the second event of a jQuery.event.trigger() and\\r\\n\\t\\t\\t\\t// when an event is called after a page has unloaded\\r\\n\\t\\t\\t\\treturn typeof jQuery !== \\\"undefined\\\" && jQuery.event.triggered !== e.type ?\\r\\n\\t\\t\\t\\t\\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\\r\\n\\t\\t\\t};\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Handle multiple events separated by a space\\r\\n\\t\\ttypes = ( types || \\\"\\\" ).match( rnothtmlwhite ) || [ \\\"\\\" ];\\r\\n\\t\\tt = types.length;\\r\\n\\t\\twhile ( t-- ) {\\r\\n\\t\\t\\ttmp = rtypenamespace.exec( types[ t ] ) || [];\\r\\n\\t\\t\\ttype = origType = tmp[ 1 ];\\r\\n\\t\\t\\tnamespaces = ( tmp[ 2 ] || \\\"\\\" ).split( \\\".\\\" ).sort();\\r\\n\\r\\n\\t\\t\\t// There *must* be a type, no attaching namespace-only handlers\\r\\n\\t\\t\\tif ( !type ) {\\r\\n\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// If event changes its type, use the special event handlers for the changed type\\r\\n\\t\\t\\tspecial = jQuery.event.special[ type ] || {};\\r\\n\\r\\n\\t\\t\\t// If selector defined, determine special event api type, otherwise given type\\r\\n\\t\\t\\ttype = ( selector ? special.delegateType : special.bindType ) || type;\\r\\n\\r\\n\\t\\t\\t// Update special based on newly reset type\\r\\n\\t\\t\\tspecial = jQuery.event.special[ type ] || {};\\r\\n\\r\\n\\t\\t\\t// handleObj is passed to all event handlers\\r\\n\\t\\t\\thandleObj = jQuery.extend( {\\r\\n\\t\\t\\t\\ttype: type,\\r\\n\\t\\t\\t\\torigType: origType,\\r\\n\\t\\t\\t\\tdata: data,\\r\\n\\t\\t\\t\\thandler: handler,\\r\\n\\t\\t\\t\\tguid: handler.guid,\\r\\n\\t\\t\\t\\tselector: selector,\\r\\n\\t\\t\\t\\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\\r\\n\\t\\t\\t\\tnamespace: namespaces.join( \\\".\\\" )\\r\\n\\t\\t\\t}, handleObjIn );\\r\\n\\r\\n\\t\\t\\t// Init the event handler queue if we're the first\\r\\n\\t\\t\\tif ( !( handlers = events[ type ] ) ) {\\r\\n\\t\\t\\t\\thandlers = events[ type ] = [];\\r\\n\\t\\t\\t\\thandlers.delegateCount = 0;\\r\\n\\r\\n\\t\\t\\t\\t// Only use addEventListener if the special events handler returns false\\r\\n\\t\\t\\t\\tif ( !special.setup ||\\r\\n\\t\\t\\t\\t\\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( elem.addEventListener ) {\\r\\n\\t\\t\\t\\t\\t\\telem.addEventListener( type, eventHandle );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( special.add ) {\\r\\n\\t\\t\\t\\tspecial.add.call( elem, handleObj );\\r\\n\\r\\n\\t\\t\\t\\tif ( !handleObj.handler.guid ) {\\r\\n\\t\\t\\t\\t\\thandleObj.handler.guid = handler.guid;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Add to the element's handler list, delegates in front\\r\\n\\t\\t\\tif ( selector ) {\\r\\n\\t\\t\\t\\thandlers.splice( handlers.delegateCount++, 0, handleObj );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\thandlers.push( handleObj );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Keep track of which events have ever been used, for event optimization\\r\\n\\t\\t\\tjQuery.event.global[ type ] = true;\\r\\n\\t\\t}\\r\\n\\r\\n\\t},\\r\\n\\r\\n\\t// Detach an event or set of events from an element\\r\\n\\tremove: function( elem, types, handler, selector, mappedTypes ) {\\r\\n\\r\\n\\t\\tvar j, origCount, tmp,\\r\\n\\t\\t\\tevents, t, handleObj,\\r\\n\\t\\t\\tspecial, handlers, type, namespaces, origType,\\r\\n\\t\\t\\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\\r\\n\\r\\n\\t\\tif ( !elemData || !( events = elemData.events ) ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Once for each type.namespace in types; type may be omitted\\r\\n\\t\\ttypes = ( types || \\\"\\\" ).match( rnothtmlwhite ) || [ \\\"\\\" ];\\r\\n\\t\\tt = types.length;\\r\\n\\t\\twhile ( t-- ) {\\r\\n\\t\\t\\ttmp = rtypenamespace.exec( types[ t ] ) || [];\\r\\n\\t\\t\\ttype = origType = tmp[ 1 ];\\r\\n\\t\\t\\tnamespaces = ( tmp[ 2 ] || \\\"\\\" ).split( \\\".\\\" ).sort();\\r\\n\\r\\n\\t\\t\\t// Unbind all events (on this namespace, if provided) for the element\\r\\n\\t\\t\\tif ( !type ) {\\r\\n\\t\\t\\t\\tfor ( type in events ) {\\r\\n\\t\\t\\t\\t\\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tspecial = jQuery.event.special[ type ] || {};\\r\\n\\t\\t\\ttype = ( selector ? special.delegateType : special.bindType ) || type;\\r\\n\\t\\t\\thandlers = events[ type ] || [];\\r\\n\\t\\t\\ttmp = tmp[ 2 ] &&\\r\\n\\t\\t\\t\\tnew RegExp( \\\"(^|\\\\\\\\.)\\\" + namespaces.join( \\\"\\\\\\\\.(?:.*\\\\\\\\.|)\\\" ) + \\\"(\\\\\\\\.|$)\\\" );\\r\\n\\r\\n\\t\\t\\t// Remove matching events\\r\\n\\t\\t\\torigCount = j = handlers.length;\\r\\n\\t\\t\\twhile ( j-- ) {\\r\\n\\t\\t\\t\\thandleObj = handlers[ j ];\\r\\n\\r\\n\\t\\t\\t\\tif ( ( mappedTypes || origType === handleObj.origType ) &&\\r\\n\\t\\t\\t\\t\\t( !handler || handler.guid === handleObj.guid ) &&\\r\\n\\t\\t\\t\\t\\t( !tmp || tmp.test( handleObj.namespace ) ) &&\\r\\n\\t\\t\\t\\t\\t( !selector || selector === handleObj.selector ||\\r\\n\\t\\t\\t\\t\\t\\tselector === \\\"**\\\" && handleObj.selector ) ) {\\r\\n\\t\\t\\t\\t\\thandlers.splice( j, 1 );\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( handleObj.selector ) {\\r\\n\\t\\t\\t\\t\\t\\thandlers.delegateCount--;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tif ( special.remove ) {\\r\\n\\t\\t\\t\\t\\t\\tspecial.remove.call( elem, handleObj );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Remove generic event handler if we removed something and no more handlers exist\\r\\n\\t\\t\\t// (avoids potential for endless recursion during removal of special event handlers)\\r\\n\\t\\t\\tif ( origCount && !handlers.length ) {\\r\\n\\t\\t\\t\\tif ( !special.teardown ||\\r\\n\\t\\t\\t\\t\\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tjQuery.removeEvent( elem, type, elemData.handle );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tdelete events[ type ];\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Remove data and the expando if it's no longer used\\r\\n\\t\\tif ( jQuery.isEmptyObject( events ) ) {\\r\\n\\t\\t\\tdataPriv.remove( elem, \\\"handle events\\\" );\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tdispatch: function( nativeEvent ) {\\r\\n\\r\\n\\t\\t// Make a writable jQuery.Event from the native event object\\r\\n\\t\\tvar event = jQuery.event.fix( nativeEvent );\\r\\n\\r\\n\\t\\tvar i, j, ret, matched, handleObj, handlerQueue,\\r\\n\\t\\t\\targs = new Array( arguments.length ),\\r\\n\\t\\t\\thandlers = ( dataPriv.get( this, \\\"events\\\" ) || {} )[ event.type ] || [],\\r\\n\\t\\t\\tspecial = jQuery.event.special[ event.type ] || {};\\r\\n\\r\\n\\t\\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\\r\\n\\t\\targs[ 0 ] = event;\\r\\n\\r\\n\\t\\tfor ( i = 1; i < arguments.length; i++ ) {\\r\\n\\t\\t\\targs[ i ] = arguments[ i ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tevent.delegateTarget = this;\\r\\n\\r\\n\\t\\t// Call the preDispatch hook for the mapped type, and let it bail if desired\\r\\n\\t\\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Determine handlers\\r\\n\\t\\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\\r\\n\\r\\n\\t\\t// Run delegates first; they may want to stop propagation beneath us\\r\\n\\t\\ti = 0;\\r\\n\\t\\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\\r\\n\\t\\t\\tevent.currentTarget = matched.elem;\\r\\n\\r\\n\\t\\t\\tj = 0;\\r\\n\\t\\t\\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\\r\\n\\t\\t\\t\\t!event.isImmediatePropagationStopped() ) {\\r\\n\\r\\n\\t\\t\\t\\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\\r\\n\\t\\t\\t\\t// a subset or equal to those in the bound event (both can have no namespace).\\r\\n\\t\\t\\t\\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\tevent.handleObj = handleObj;\\r\\n\\t\\t\\t\\t\\tevent.data = handleObj.data;\\r\\n\\r\\n\\t\\t\\t\\t\\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\\r\\n\\t\\t\\t\\t\\t\\thandleObj.handler ).apply( matched.elem, args );\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( ret !== undefined ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( ( event.result = ret ) === false ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tevent.preventDefault();\\r\\n\\t\\t\\t\\t\\t\\t\\tevent.stopPropagation();\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Call the postDispatch hook for the mapped type\\r\\n\\t\\tif ( special.postDispatch ) {\\r\\n\\t\\t\\tspecial.postDispatch.call( this, event );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn event.result;\\r\\n\\t},\\r\\n\\r\\n\\thandlers: function( event, handlers ) {\\r\\n\\t\\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\\r\\n\\t\\t\\thandlerQueue = [],\\r\\n\\t\\t\\tdelegateCount = handlers.delegateCount,\\r\\n\\t\\t\\tcur = event.target;\\r\\n\\r\\n\\t\\t// Find delegate handlers\\r\\n\\t\\tif ( delegateCount &&\\r\\n\\r\\n\\t\\t\\t// Support: IE <=9\\r\\n\\t\\t\\t// Black-hole SVG <use> instance trees (trac-13180)\\r\\n\\t\\t\\tcur.nodeType &&\\r\\n\\r\\n\\t\\t\\t// Support: Firefox <=42\\r\\n\\t\\t\\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\\r\\n\\t\\t\\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\\r\\n\\t\\t\\t// Support: IE 11 only\\r\\n\\t\\t\\t// ...but not arrow key \\\"clicks\\\" of radio inputs, which can have `button` -1 (gh-2343)\\r\\n\\t\\t\\t!( event.type === \\\"click\\\" && event.button >= 1 ) ) {\\r\\n\\r\\n\\t\\t\\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\\r\\n\\r\\n\\t\\t\\t\\t// Don't check non-elements (#13208)\\r\\n\\t\\t\\t\\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\\r\\n\\t\\t\\t\\tif ( cur.nodeType === 1 && !( event.type === \\\"click\\\" && cur.disabled === true ) ) {\\r\\n\\t\\t\\t\\t\\tmatchedHandlers = [];\\r\\n\\t\\t\\t\\t\\tmatchedSelectors = {};\\r\\n\\t\\t\\t\\t\\tfor ( i = 0; i < delegateCount; i++ ) {\\r\\n\\t\\t\\t\\t\\t\\thandleObj = handlers[ i ];\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Don't conflict with Object.prototype properties (#13203)\\r\\n\\t\\t\\t\\t\\t\\tsel = handleObj.selector + \\\" \\\";\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tif ( matchedSelectors[ sel ] === undefined ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tmatchedSelectors[ sel ] = handleObj.needsContext ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery( sel, this ).index( cur ) > -1 :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.find( sel, this, null, [ cur ] ).length;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\tif ( matchedSelectors[ sel ] ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tmatchedHandlers.push( handleObj );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tif ( matchedHandlers.length ) {\\r\\n\\t\\t\\t\\t\\t\\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Add the remaining (directly-bound) handlers\\r\\n\\t\\tcur = this;\\r\\n\\t\\tif ( delegateCount < handlers.length ) {\\r\\n\\t\\t\\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn handlerQueue;\\r\\n\\t},\\r\\n\\r\\n\\taddProp: function( name, hook ) {\\r\\n\\t\\tObject.defineProperty( jQuery.Event.prototype, name, {\\r\\n\\t\\t\\tenumerable: true,\\r\\n\\t\\t\\tconfigurable: true,\\r\\n\\r\\n\\t\\t\\tget: jQuery.isFunction( hook ) ?\\r\\n\\t\\t\\t\\tfunction() {\\r\\n\\t\\t\\t\\t\\tif ( this.originalEvent ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn hook( this.originalEvent );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t} :\\r\\n\\t\\t\\t\\tfunction() {\\r\\n\\t\\t\\t\\t\\tif ( this.originalEvent ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn this.originalEvent[ name ];\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\tset: function( value ) {\\r\\n\\t\\t\\t\\tObject.defineProperty( this, name, {\\r\\n\\t\\t\\t\\t\\tenumerable: true,\\r\\n\\t\\t\\t\\t\\tconfigurable: true,\\r\\n\\t\\t\\t\\t\\twritable: true,\\r\\n\\t\\t\\t\\t\\tvalue: value\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tfix: function( originalEvent ) {\\r\\n\\t\\treturn originalEvent[ jQuery.expando ] ?\\r\\n\\t\\t\\toriginalEvent :\\r\\n\\t\\t\\tnew jQuery.Event( originalEvent );\\r\\n\\t},\\r\\n\\r\\n\\tspecial: {\\r\\n\\t\\tload: {\\r\\n\\r\\n\\t\\t\\t// Prevent triggered image.load events from bubbling to window.load\\r\\n\\t\\t\\tnoBubble: true\\r\\n\\t\\t},\\r\\n\\t\\tfocus: {\\r\\n\\r\\n\\t\\t\\t// Fire native event if possible so blur/focus sequence is correct\\r\\n\\t\\t\\ttrigger: function() {\\r\\n\\t\\t\\t\\tif ( this !== safeActiveElement() && this.focus ) {\\r\\n\\t\\t\\t\\t\\tthis.focus();\\r\\n\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tdelegateType: \\\"focusin\\\"\\r\\n\\t\\t},\\r\\n\\t\\tblur: {\\r\\n\\t\\t\\ttrigger: function() {\\r\\n\\t\\t\\t\\tif ( this === safeActiveElement() && this.blur ) {\\r\\n\\t\\t\\t\\t\\tthis.blur();\\r\\n\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tdelegateType: \\\"focusout\\\"\\r\\n\\t\\t},\\r\\n\\t\\tclick: {\\r\\n\\r\\n\\t\\t\\t// For checkbox, fire native event so checked state will be right\\r\\n\\t\\t\\ttrigger: function() {\\r\\n\\t\\t\\t\\tif ( this.type === \\\"checkbox\\\" && this.click && jQuery.nodeName( this, \\\"input\\\" ) ) {\\r\\n\\t\\t\\t\\t\\tthis.click();\\r\\n\\t\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t// For cross-browser consistency, don't fire native .click() on links\\r\\n\\t\\t\\t_default: function( event ) {\\r\\n\\t\\t\\t\\treturn jQuery.nodeName( event.target, \\\"a\\\" );\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\tbeforeunload: {\\r\\n\\t\\t\\tpostDispatch: function( event ) {\\r\\n\\r\\n\\t\\t\\t\\t// Support: Firefox 20+\\r\\n\\t\\t\\t\\t// Firefox doesn't alert if the returnValue field is not set.\\r\\n\\t\\t\\t\\tif ( event.result !== undefined && event.originalEvent ) {\\r\\n\\t\\t\\t\\t\\tevent.originalEvent.returnValue = event.result;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.removeEvent = function( elem, type, handle ) {\\r\\n\\r\\n\\t// This \\\"if\\\" is needed for plain objects\\r\\n\\tif ( elem.removeEventListener ) {\\r\\n\\t\\telem.removeEventListener( type, handle );\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.Event = function( src, props ) {\\r\\n\\r\\n\\t// Allow instantiation without the 'new' keyword\\r\\n\\tif ( !( this instanceof jQuery.Event ) ) {\\r\\n\\t\\treturn new jQuery.Event( src, props );\\r\\n\\t}\\r\\n\\r\\n\\t// Event object\\r\\n\\tif ( src && src.type ) {\\r\\n\\t\\tthis.originalEvent = src;\\r\\n\\t\\tthis.type = src.type;\\r\\n\\r\\n\\t\\t// Events bubbling up the document may have been marked as prevented\\r\\n\\t\\t// by a handler lower down the tree; reflect the correct value.\\r\\n\\t\\tthis.isDefaultPrevented = src.defaultPrevented ||\\r\\n\\t\\t\\t\\tsrc.defaultPrevented === undefined &&\\r\\n\\r\\n\\t\\t\\t\\t// Support: Android <=2.3 only\\r\\n\\t\\t\\t\\tsrc.returnValue === false ?\\r\\n\\t\\t\\treturnTrue :\\r\\n\\t\\t\\treturnFalse;\\r\\n\\r\\n\\t\\t// Create target properties\\r\\n\\t\\t// Support: Safari <=6 - 7 only\\r\\n\\t\\t// Target should not be a text node (#504, #13143)\\r\\n\\t\\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\\r\\n\\t\\t\\tsrc.target.parentNode :\\r\\n\\t\\t\\tsrc.target;\\r\\n\\r\\n\\t\\tthis.currentTarget = src.currentTarget;\\r\\n\\t\\tthis.relatedTarget = src.relatedTarget;\\r\\n\\r\\n\\t// Event type\\r\\n\\t} else {\\r\\n\\t\\tthis.type = src;\\r\\n\\t}\\r\\n\\r\\n\\t// Put explicitly provided properties onto the event object\\r\\n\\tif ( props ) {\\r\\n\\t\\tjQuery.extend( this, props );\\r\\n\\t}\\r\\n\\r\\n\\t// Create a timestamp if incoming event doesn't have one\\r\\n\\tthis.timeStamp = src && src.timeStamp || jQuery.now();\\r\\n\\r\\n\\t// Mark it as fixed\\r\\n\\tthis[ jQuery.expando ] = true;\\r\\n};\\r\\n\\r\\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\\r\\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\\r\\njQuery.Event.prototype = {\\r\\n\\tconstructor: jQuery.Event,\\r\\n\\tisDefaultPrevented: returnFalse,\\r\\n\\tisPropagationStopped: returnFalse,\\r\\n\\tisImmediatePropagationStopped: returnFalse,\\r\\n\\tisSimulated: false,\\r\\n\\r\\n\\tpreventDefault: function() {\\r\\n\\t\\tvar e = this.originalEvent;\\r\\n\\r\\n\\t\\tthis.isDefaultPrevented = returnTrue;\\r\\n\\r\\n\\t\\tif ( e && !this.isSimulated ) {\\r\\n\\t\\t\\te.preventDefault();\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\tstopPropagation: function() {\\r\\n\\t\\tvar e = this.originalEvent;\\r\\n\\r\\n\\t\\tthis.isPropagationStopped = returnTrue;\\r\\n\\r\\n\\t\\tif ( e && !this.isSimulated ) {\\r\\n\\t\\t\\te.stopPropagation();\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\tstopImmediatePropagation: function() {\\r\\n\\t\\tvar e = this.originalEvent;\\r\\n\\r\\n\\t\\tthis.isImmediatePropagationStopped = returnTrue;\\r\\n\\r\\n\\t\\tif ( e && !this.isSimulated ) {\\r\\n\\t\\t\\te.stopImmediatePropagation();\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tthis.stopPropagation();\\r\\n\\t}\\r\\n};\\r\\n\\r\\n// Includes all common event props including KeyEvent and MouseEvent specific props\\r\\njQuery.each( {\\r\\n\\taltKey: true,\\r\\n\\tbubbles: true,\\r\\n\\tcancelable: true,\\r\\n\\tchangedTouches: true,\\r\\n\\tctrlKey: true,\\r\\n\\tdetail: true,\\r\\n\\teventPhase: true,\\r\\n\\tmetaKey: true,\\r\\n\\tpageX: true,\\r\\n\\tpageY: true,\\r\\n\\tshiftKey: true,\\r\\n\\tview: true,\\r\\n\\t\\\"char\\\": true,\\r\\n\\tcharCode: true,\\r\\n\\tkey: true,\\r\\n\\tkeyCode: true,\\r\\n\\tbutton: true,\\r\\n\\tbuttons: true,\\r\\n\\tclientX: true,\\r\\n\\tclientY: true,\\r\\n\\toffsetX: true,\\r\\n\\toffsetY: true,\\r\\n\\tpointerId: true,\\r\\n\\tpointerType: true,\\r\\n\\tscreenX: true,\\r\\n\\tscreenY: true,\\r\\n\\ttargetTouches: true,\\r\\n\\ttoElement: true,\\r\\n\\ttouches: true,\\r\\n\\r\\n\\twhich: function( event ) {\\r\\n\\t\\tvar button = event.button;\\r\\n\\r\\n\\t\\t// Add which for key events\\r\\n\\t\\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\\r\\n\\t\\t\\treturn event.charCode != null ? event.charCode : event.keyCode;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Add which for click: 1 === left; 2 === middle; 3 === right\\r\\n\\t\\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\\r\\n\\t\\t\\tif ( button & 1 ) {\\r\\n\\t\\t\\t\\treturn 1;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( button & 2 ) {\\r\\n\\t\\t\\t\\treturn 3;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( button & 4 ) {\\r\\n\\t\\t\\t\\treturn 2;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn 0;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn event.which;\\r\\n\\t}\\r\\n}, jQuery.event.addProp );\\r\\n\\r\\n// Create mouseenter/leave events using mouseover/out and event-time checks\\r\\n// so that event delegation works in jQuery.\\r\\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\\r\\n//\\r\\n// Support: Safari 7 only\\r\\n// Safari sends mouseenter too often; see:\\r\\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\\r\\n// for the description of the bug (it existed in older Chrome versions as well).\\r\\njQuery.each( {\\r\\n\\tmouseenter: \\\"mouseover\\\",\\r\\n\\tmouseleave: \\\"mouseout\\\",\\r\\n\\tpointerenter: \\\"pointerover\\\",\\r\\n\\tpointerleave: \\\"pointerout\\\"\\r\\n}, function( orig, fix ) {\\r\\n\\tjQuery.event.special[ orig ] = {\\r\\n\\t\\tdelegateType: fix,\\r\\n\\t\\tbindType: fix,\\r\\n\\r\\n\\t\\thandle: function( event ) {\\r\\n\\t\\t\\tvar ret,\\r\\n\\t\\t\\t\\ttarget = this,\\r\\n\\t\\t\\t\\trelated = event.relatedTarget,\\r\\n\\t\\t\\t\\thandleObj = event.handleObj;\\r\\n\\r\\n\\t\\t\\t// For mouseenter/leave call the handler if related is outside the target.\\r\\n\\t\\t\\t// NB: No relatedTarget if the mouse left/entered the browser window\\r\\n\\t\\t\\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\\r\\n\\t\\t\\t\\tevent.type = handleObj.origType;\\r\\n\\t\\t\\t\\tret = handleObj.handler.apply( this, arguments );\\r\\n\\t\\t\\t\\tevent.type = fix;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn ret;\\r\\n\\t\\t}\\r\\n\\t};\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\r\\n\\ton: function( types, selector, data, fn ) {\\r\\n\\t\\treturn on( this, types, selector, data, fn );\\r\\n\\t},\\r\\n\\tone: function( types, selector, data, fn ) {\\r\\n\\t\\treturn on( this, types, selector, data, fn, 1 );\\r\\n\\t},\\r\\n\\toff: function( types, selector, fn ) {\\r\\n\\t\\tvar handleObj, type;\\r\\n\\t\\tif ( types && types.preventDefault && types.handleObj ) {\\r\\n\\r\\n\\t\\t\\t// ( event ) dispatched jQuery.Event\\r\\n\\t\\t\\thandleObj = types.handleObj;\\r\\n\\t\\t\\tjQuery( types.delegateTarget ).off(\\r\\n\\t\\t\\t\\thandleObj.namespace ?\\r\\n\\t\\t\\t\\t\\thandleObj.origType + \\\".\\\" + handleObj.namespace :\\r\\n\\t\\t\\t\\t\\thandleObj.origType,\\r\\n\\t\\t\\t\\thandleObj.selector,\\r\\n\\t\\t\\t\\thandleObj.handler\\r\\n\\t\\t\\t);\\r\\n\\t\\t\\treturn this;\\r\\n\\t\\t}\\r\\n\\t\\tif ( typeof types === \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t\\t// ( types-object [, selector] )\\r\\n\\t\\t\\tfor ( type in types ) {\\r\\n\\t\\t\\t\\tthis.off( type, selector, types[ type ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn this;\\r\\n\\t\\t}\\r\\n\\t\\tif ( selector === false || typeof selector === \\\"function\\\" ) {\\r\\n\\r\\n\\t\\t\\t// ( types [, fn] )\\r\\n\\t\\t\\tfn = selector;\\r\\n\\t\\t\\tselector = undefined;\\r\\n\\t\\t}\\r\\n\\t\\tif ( fn === false ) {\\r\\n\\t\\t\\tfn = returnFalse;\\r\\n\\t\\t}\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tjQuery.event.remove( this, types, fn, selector );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\nvar\\r\\n\\r\\n\\t/* eslint-disable max-len */\\r\\n\\r\\n\\t// See https://github.com/eslint/eslint/issues/3229\\r\\n\\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\\\/\\\\0>\\\\x20\\\\t\\\\r\\\\n\\\\f]*)[^>]*)\\\\/>/gi,\\r\\n\\r\\n\\t/* eslint-enable */\\r\\n\\r\\n\\t// Support: IE <=10 - 11, Edge 12 - 13\\r\\n\\t// In IE/Edge using regex groups here causes severe slowdowns.\\r\\n\\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\\r\\n\\trnoInnerhtml = /<script|<style|<link/i,\\r\\n\\r\\n\\t// checked=\\\"checked\\\" or checked\\r\\n\\trchecked = /checked\\\\s*(?:[^=]|=\\\\s*.checked.)/i,\\r\\n\\trscriptTypeMasked = /^true\\\\/(.*)/,\\r\\n\\trcleanScript = /^\\\\s*<!(?:\\\\[CDATA\\\\[|--)|(?:\\\\]\\\\]|--)>\\\\s*$/g;\\r\\n\\r\\nfunction manipulationTarget( elem, content ) {\\r\\n\\tif ( jQuery.nodeName( elem, \\\"table\\\" ) &&\\r\\n\\t\\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \\\"tr\\\" ) ) {\\r\\n\\r\\n\\t\\treturn elem.getElementsByTagName( \\\"tbody\\\" )[ 0 ] || elem;\\r\\n\\t}\\r\\n\\r\\n\\treturn elem;\\r\\n}\\r\\n\\r\\n// Replace/restore the type attribute of script elements for safe DOM manipulation\\r\\nfunction disableScript( elem ) {\\r\\n\\telem.type = ( elem.getAttribute( \\\"type\\\" ) !== null ) + \\\"/\\\" + elem.type;\\r\\n\\treturn elem;\\r\\n}\\r\\nfunction restoreScript( elem ) {\\r\\n\\tvar match = rscriptTypeMasked.exec( elem.type );\\r\\n\\r\\n\\tif ( match ) {\\r\\n\\t\\telem.type = match[ 1 ];\\r\\n\\t} else {\\r\\n\\t\\telem.removeAttribute( \\\"type\\\" );\\r\\n\\t}\\r\\n\\r\\n\\treturn elem;\\r\\n}\\r\\n\\r\\nfunction cloneCopyEvent( src, dest ) {\\r\\n\\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\\r\\n\\r\\n\\tif ( dest.nodeType !== 1 ) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\t// 1. Copy private data: events, handlers, etc.\\r\\n\\tif ( dataPriv.hasData( src ) ) {\\r\\n\\t\\tpdataOld = dataPriv.access( src );\\r\\n\\t\\tpdataCur = dataPriv.set( dest, pdataOld );\\r\\n\\t\\tevents = pdataOld.events;\\r\\n\\r\\n\\t\\tif ( events ) {\\r\\n\\t\\t\\tdelete pdataCur.handle;\\r\\n\\t\\t\\tpdataCur.events = {};\\r\\n\\r\\n\\t\\t\\tfor ( type in events ) {\\r\\n\\t\\t\\t\\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\\r\\n\\t\\t\\t\\t\\tjQuery.event.add( dest, type, events[ type ][ i ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// 2. Copy user data\\r\\n\\tif ( dataUser.hasData( src ) ) {\\r\\n\\t\\tudataOld = dataUser.access( src );\\r\\n\\t\\tudataCur = jQuery.extend( {}, udataOld );\\r\\n\\r\\n\\t\\tdataUser.set( dest, udataCur );\\r\\n\\t}\\r\\n}\\r\\n\\r\\n// Fix IE bugs, see support tests\\r\\nfunction fixInput( src, dest ) {\\r\\n\\tvar nodeName = dest.nodeName.toLowerCase();\\r\\n\\r\\n\\t// Fails to persist the checked state of a cloned checkbox or radio button.\\r\\n\\tif ( nodeName === \\\"input\\\" && rcheckableType.test( src.type ) ) {\\r\\n\\t\\tdest.checked = src.checked;\\r\\n\\r\\n\\t// Fails to return the selected option to the default selected state when cloning options\\r\\n\\t} else if ( nodeName === \\\"input\\\" || nodeName === \\\"textarea\\\" ) {\\r\\n\\t\\tdest.defaultValue = src.defaultValue;\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction domManip( collection, args, callback, ignored ) {\\r\\n\\r\\n\\t// Flatten any nested arrays\\r\\n\\targs = concat.apply( [], args );\\r\\n\\r\\n\\tvar fragment, first, scripts, hasScripts, node, doc,\\r\\n\\t\\ti = 0,\\r\\n\\t\\tl = collection.length,\\r\\n\\t\\tiNoClone = l - 1,\\r\\n\\t\\tvalue = args[ 0 ],\\r\\n\\t\\tisFunction = jQuery.isFunction( value );\\r\\n\\r\\n\\t// We can't cloneNode fragments that contain checked, in WebKit\\r\\n\\tif ( isFunction ||\\r\\n\\t\\t\\t( l > 1 && typeof value === \\\"string\\\" &&\\r\\n\\t\\t\\t\\t!support.checkClone && rchecked.test( value ) ) ) {\\r\\n\\t\\treturn collection.each( function( index ) {\\r\\n\\t\\t\\tvar self = collection.eq( index );\\r\\n\\t\\t\\tif ( isFunction ) {\\r\\n\\t\\t\\t\\targs[ 0 ] = value.call( this, index, self.html() );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tdomManip( self, args, callback, ignored );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\tif ( l ) {\\r\\n\\t\\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\\r\\n\\t\\tfirst = fragment.firstChild;\\r\\n\\r\\n\\t\\tif ( fragment.childNodes.length === 1 ) {\\r\\n\\t\\t\\tfragment = first;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Require either new content or an interest in ignored elements to invoke the callback\\r\\n\\t\\tif ( first || ignored ) {\\r\\n\\t\\t\\tscripts = jQuery.map( getAll( fragment, \\\"script\\\" ), disableScript );\\r\\n\\t\\t\\thasScripts = scripts.length;\\r\\n\\r\\n\\t\\t\\t// Use the original fragment for the last item\\r\\n\\t\\t\\t// instead of the first because it can end up\\r\\n\\t\\t\\t// being emptied incorrectly in certain situations (#8070).\\r\\n\\t\\t\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\t\\t\\tnode = fragment;\\r\\n\\r\\n\\t\\t\\t\\tif ( i !== iNoClone ) {\\r\\n\\t\\t\\t\\t\\tnode = jQuery.clone( node, true, true );\\r\\n\\r\\n\\t\\t\\t\\t\\t// Keep references to cloned scripts for later restoration\\r\\n\\t\\t\\t\\t\\tif ( hasScripts ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Support: Android <=4.0 only, PhantomJS 1 only\\r\\n\\t\\t\\t\\t\\t\\t// push.apply(_, arraylike) throws on ancient WebKit\\r\\n\\t\\t\\t\\t\\t\\tjQuery.merge( scripts, getAll( node, \\\"script\\\" ) );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tcallback.call( collection[ i ], node, i );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( hasScripts ) {\\r\\n\\t\\t\\t\\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\\r\\n\\r\\n\\t\\t\\t\\t// Reenable scripts\\r\\n\\t\\t\\t\\tjQuery.map( scripts, restoreScript );\\r\\n\\r\\n\\t\\t\\t\\t// Evaluate executable scripts on first document insertion\\r\\n\\t\\t\\t\\tfor ( i = 0; i < hasScripts; i++ ) {\\r\\n\\t\\t\\t\\t\\tnode = scripts[ i ];\\r\\n\\t\\t\\t\\t\\tif ( rscriptType.test( node.type || \\\"\\\" ) &&\\r\\n\\t\\t\\t\\t\\t\\t!dataPriv.access( node, \\\"globalEval\\\" ) &&\\r\\n\\t\\t\\t\\t\\t\\tjQuery.contains( doc, node ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tif ( node.src ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Optional AJAX dependency, but won't run scripts if not present\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( jQuery._evalUrl ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery._evalUrl( node.src );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\tDOMEval( node.textContent.replace( rcleanScript, \\\"\\\" ), doc );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn collection;\\r\\n}\\r\\n\\r\\nfunction remove( elem, selector, keepData ) {\\r\\n\\tvar node,\\r\\n\\t\\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\\r\\n\\t\\ti = 0;\\r\\n\\r\\n\\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\\r\\n\\t\\tif ( !keepData && node.nodeType === 1 ) {\\r\\n\\t\\t\\tjQuery.cleanData( getAll( node ) );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( node.parentNode ) {\\r\\n\\t\\t\\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\\r\\n\\t\\t\\t\\tsetGlobalEval( getAll( node, \\\"script\\\" ) );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tnode.parentNode.removeChild( node );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn elem;\\r\\n}\\r\\n\\r\\njQuery.extend( {\\r\\n\\thtmlPrefilter: function( html ) {\\r\\n\\t\\treturn html.replace( rxhtmlTag, \\\"<$1></$2>\\\" );\\r\\n\\t},\\r\\n\\r\\n\\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\\r\\n\\t\\tvar i, l, srcElements, destElements,\\r\\n\\t\\t\\tclone = elem.cloneNode( true ),\\r\\n\\t\\t\\tinPage = jQuery.contains( elem.ownerDocument, elem );\\r\\n\\r\\n\\t\\t// Fix IE cloning issues\\r\\n\\t\\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\\r\\n\\t\\t\\t\\t!jQuery.isXMLDoc( elem ) ) {\\r\\n\\r\\n\\t\\t\\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\\r\\n\\t\\t\\tdestElements = getAll( clone );\\r\\n\\t\\t\\tsrcElements = getAll( elem );\\r\\n\\r\\n\\t\\t\\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\\r\\n\\t\\t\\t\\tfixInput( srcElements[ i ], destElements[ i ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Copy the events from the original to the clone\\r\\n\\t\\tif ( dataAndEvents ) {\\r\\n\\t\\t\\tif ( deepDataAndEvents ) {\\r\\n\\t\\t\\t\\tsrcElements = srcElements || getAll( elem );\\r\\n\\t\\t\\t\\tdestElements = destElements || getAll( clone );\\r\\n\\r\\n\\t\\t\\t\\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\\r\\n\\t\\t\\t\\t\\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tcloneCopyEvent( elem, clone );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Preserve script evaluation history\\r\\n\\t\\tdestElements = getAll( clone, \\\"script\\\" );\\r\\n\\t\\tif ( destElements.length > 0 ) {\\r\\n\\t\\t\\tsetGlobalEval( destElements, !inPage && getAll( elem, \\\"script\\\" ) );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Return the cloned set\\r\\n\\t\\treturn clone;\\r\\n\\t},\\r\\n\\r\\n\\tcleanData: function( elems ) {\\r\\n\\t\\tvar data, elem, type,\\r\\n\\t\\t\\tspecial = jQuery.event.special,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\\r\\n\\t\\t\\tif ( acceptData( elem ) ) {\\r\\n\\t\\t\\t\\tif ( ( data = elem[ dataPriv.expando ] ) ) {\\r\\n\\t\\t\\t\\t\\tif ( data.events ) {\\r\\n\\t\\t\\t\\t\\t\\tfor ( type in data.events ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( special[ type ] ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.event.remove( elem, type );\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// This is a shortcut to avoid jQuery.event.remove's overhead\\r\\n\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tjQuery.removeEvent( elem, type, data.handle );\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Support: Chrome <=35 - 45+\\r\\n\\t\\t\\t\\t\\t// Assign undefined instead of using delete, see Data#remove\\r\\n\\t\\t\\t\\t\\telem[ dataPriv.expando ] = undefined;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tif ( elem[ dataUser.expando ] ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Support: Chrome <=35 - 45+\\r\\n\\t\\t\\t\\t\\t// Assign undefined instead of using delete, see Data#remove\\r\\n\\t\\t\\t\\t\\telem[ dataUser.expando ] = undefined;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tdetach: function( selector ) {\\r\\n\\t\\treturn remove( this, selector, true );\\r\\n\\t},\\r\\n\\r\\n\\tremove: function( selector ) {\\r\\n\\t\\treturn remove( this, selector );\\r\\n\\t},\\r\\n\\r\\n\\ttext: function( value ) {\\r\\n\\t\\treturn access( this, function( value ) {\\r\\n\\t\\t\\treturn value === undefined ?\\r\\n\\t\\t\\t\\tjQuery.text( this ) :\\r\\n\\t\\t\\t\\tthis.empty().each( function() {\\r\\n\\t\\t\\t\\t\\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\\r\\n\\t\\t\\t\\t\\t\\tthis.textContent = value;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t}, null, value, arguments.length );\\r\\n\\t},\\r\\n\\r\\n\\tappend: function() {\\r\\n\\t\\treturn domManip( this, arguments, function( elem ) {\\r\\n\\t\\t\\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\\r\\n\\t\\t\\t\\tvar target = manipulationTarget( this, elem );\\r\\n\\t\\t\\t\\ttarget.appendChild( elem );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tprepend: function() {\\r\\n\\t\\treturn domManip( this, arguments, function( elem ) {\\r\\n\\t\\t\\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\\r\\n\\t\\t\\t\\tvar target = manipulationTarget( this, elem );\\r\\n\\t\\t\\t\\ttarget.insertBefore( elem, target.firstChild );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tbefore: function() {\\r\\n\\t\\treturn domManip( this, arguments, function( elem ) {\\r\\n\\t\\t\\tif ( this.parentNode ) {\\r\\n\\t\\t\\t\\tthis.parentNode.insertBefore( elem, this );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tafter: function() {\\r\\n\\t\\treturn domManip( this, arguments, function( elem ) {\\r\\n\\t\\t\\tif ( this.parentNode ) {\\r\\n\\t\\t\\t\\tthis.parentNode.insertBefore( elem, this.nextSibling );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tempty: function() {\\r\\n\\t\\tvar elem,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\\r\\n\\t\\t\\tif ( elem.nodeType === 1 ) {\\r\\n\\r\\n\\t\\t\\t\\t// Prevent memory leaks\\r\\n\\t\\t\\t\\tjQuery.cleanData( getAll( elem, false ) );\\r\\n\\r\\n\\t\\t\\t\\t// Remove any remaining nodes\\r\\n\\t\\t\\t\\telem.textContent = \\\"\\\";\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this;\\r\\n\\t},\\r\\n\\r\\n\\tclone: function( dataAndEvents, deepDataAndEvents ) {\\r\\n\\t\\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\\r\\n\\t\\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\\r\\n\\r\\n\\t\\treturn this.map( function() {\\r\\n\\t\\t\\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\thtml: function( value ) {\\r\\n\\t\\treturn access( this, function( value ) {\\r\\n\\t\\t\\tvar elem = this[ 0 ] || {},\\r\\n\\t\\t\\t\\ti = 0,\\r\\n\\t\\t\\t\\tl = this.length;\\r\\n\\r\\n\\t\\t\\tif ( value === undefined && elem.nodeType === 1 ) {\\r\\n\\t\\t\\t\\treturn elem.innerHTML;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// See if we can take a shortcut and just use innerHTML\\r\\n\\t\\t\\tif ( typeof value === \\\"string\\\" && !rnoInnerhtml.test( value ) &&\\r\\n\\t\\t\\t\\t!wrapMap[ ( rtagName.exec( value ) || [ \\\"\\\", \\\"\\\" ] )[ 1 ].toLowerCase() ] ) {\\r\\n\\r\\n\\t\\t\\t\\tvalue = jQuery.htmlPrefilter( value );\\r\\n\\r\\n\\t\\t\\t\\ttry {\\r\\n\\t\\t\\t\\t\\tfor ( ; i < l; i++ ) {\\r\\n\\t\\t\\t\\t\\t\\telem = this[ i ] || {};\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Remove element nodes and prevent memory leaks\\r\\n\\t\\t\\t\\t\\t\\tif ( elem.nodeType === 1 ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tjQuery.cleanData( getAll( elem, false ) );\\r\\n\\t\\t\\t\\t\\t\\t\\telem.innerHTML = value;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\telem = 0;\\r\\n\\r\\n\\t\\t\\t\\t// If using innerHTML throws an exception, use the fallback method\\r\\n\\t\\t\\t\\t} catch ( e ) {}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( elem ) {\\r\\n\\t\\t\\t\\tthis.empty().append( value );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}, null, value, arguments.length );\\r\\n\\t},\\r\\n\\r\\n\\treplaceWith: function() {\\r\\n\\t\\tvar ignored = [];\\r\\n\\r\\n\\t\\t// Make the changes, replacing each non-ignored context element with the new content\\r\\n\\t\\treturn domManip( this, arguments, function( elem ) {\\r\\n\\t\\t\\tvar parent = this.parentNode;\\r\\n\\r\\n\\t\\t\\tif ( jQuery.inArray( this, ignored ) < 0 ) {\\r\\n\\t\\t\\t\\tjQuery.cleanData( getAll( this ) );\\r\\n\\t\\t\\t\\tif ( parent ) {\\r\\n\\t\\t\\t\\t\\tparent.replaceChild( elem, this );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t// Force callback invocation\\r\\n\\t\\t}, ignored );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.each( {\\r\\n\\tappendTo: \\\"append\\\",\\r\\n\\tprependTo: \\\"prepend\\\",\\r\\n\\tinsertBefore: \\\"before\\\",\\r\\n\\tinsertAfter: \\\"after\\\",\\r\\n\\treplaceAll: \\\"replaceWith\\\"\\r\\n}, function( name, original ) {\\r\\n\\tjQuery.fn[ name ] = function( selector ) {\\r\\n\\t\\tvar elems,\\r\\n\\t\\t\\tret = [],\\r\\n\\t\\t\\tinsert = jQuery( selector ),\\r\\n\\t\\t\\tlast = insert.length - 1,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tfor ( ; i <= last; i++ ) {\\r\\n\\t\\t\\telems = i === last ? this : this.clone( true );\\r\\n\\t\\t\\tjQuery( insert[ i ] )[ original ]( elems );\\r\\n\\r\\n\\t\\t\\t// Support: Android <=4.0 only, PhantomJS 1 only\\r\\n\\t\\t\\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\\r\\n\\t\\t\\tpush.apply( ret, elems.get() );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.pushStack( ret );\\r\\n\\t};\\r\\n} );\\r\\nvar rmargin = ( /^margin/ );\\r\\n\\r\\nvar rnumnonpx = new RegExp( \\\"^(\\\" + pnum + \\\")(?!px)[a-z%]+$\\\", \\\"i\\\" );\\r\\n\\r\\nvar getStyles = function( elem ) {\\r\\n\\r\\n\\t\\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\\r\\n\\t\\t// IE throws on elements created in popups\\r\\n\\t\\t// FF meanwhile throws on frame elements through \\\"defaultView.getComputedStyle\\\"\\r\\n\\t\\tvar view = elem.ownerDocument.defaultView;\\r\\n\\r\\n\\t\\tif ( !view || !view.opener ) {\\r\\n\\t\\t\\tview = window;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn view.getComputedStyle( elem );\\r\\n\\t};\\r\\n\\r\\n\\r\\n\\r\\n( function() {\\r\\n\\r\\n\\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\\r\\n\\t// so they're executed at the same time to save the second computation.\\r\\n\\tfunction computeStyleTests() {\\r\\n\\r\\n\\t\\t// This is a singleton, we need to execute it only once\\r\\n\\t\\tif ( !div ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tdiv.style.cssText =\\r\\n\\t\\t\\t\\\"box-sizing:border-box;\\\" +\\r\\n\\t\\t\\t\\\"position:relative;display:block;\\\" +\\r\\n\\t\\t\\t\\\"margin:auto;border:1px;padding:1px;\\\" +\\r\\n\\t\\t\\t\\\"top:1%;width:50%\\\";\\r\\n\\t\\tdiv.innerHTML = \\\"\\\";\\r\\n\\t\\tdocumentElement.appendChild( container );\\r\\n\\r\\n\\t\\tvar divStyle = window.getComputedStyle( div );\\r\\n\\t\\tpixelPositionVal = divStyle.top !== \\\"1%\\\";\\r\\n\\r\\n\\t\\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\\r\\n\\t\\treliableMarginLeftVal = divStyle.marginLeft === \\\"2px\\\";\\r\\n\\t\\tboxSizingReliableVal = divStyle.width === \\\"4px\\\";\\r\\n\\r\\n\\t\\t// Support: Android 4.0 - 4.3 only\\r\\n\\t\\t// Some styles come back with percentage values, even though they shouldn't\\r\\n\\t\\tdiv.style.marginRight = \\\"50%\\\";\\r\\n\\t\\tpixelMarginRightVal = divStyle.marginRight === \\\"4px\\\";\\r\\n\\r\\n\\t\\tdocumentElement.removeChild( container );\\r\\n\\r\\n\\t\\t// Nullify the div so it wouldn't be stored in the memory and\\r\\n\\t\\t// it will also be a sign that checks already performed\\r\\n\\t\\tdiv = null;\\r\\n\\t}\\r\\n\\r\\n\\tvar pixelPositionVal, boxSizingReliableVal, pixelMarginRightVal, reliableMarginLeftVal,\\r\\n\\t\\tcontainer = document.createElement( \\\"div\\\" ),\\r\\n\\t\\tdiv = document.createElement( \\\"div\\\" );\\r\\n\\r\\n\\t// Finish early in limited (non-browser) environments\\r\\n\\tif ( !div.style ) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\t// Support: IE <=9 - 11 only\\r\\n\\t// Style of cloned element affects source element cloned (#8908)\\r\\n\\tdiv.style.backgroundClip = \\\"content-box\\\";\\r\\n\\tdiv.cloneNode( true ).style.backgroundClip = \\\"\\\";\\r\\n\\tsupport.clearCloneStyle = div.style.backgroundClip === \\\"content-box\\\";\\r\\n\\r\\n\\tcontainer.style.cssText = \\\"border:0;width:8px;height:0;top:0;left:-9999px;\\\" +\\r\\n\\t\\t\\\"padding:0;margin-top:1px;position:absolute\\\";\\r\\n\\tcontainer.appendChild( div );\\r\\n\\r\\n\\tjQuery.extend( support, {\\r\\n\\t\\tpixelPosition: function() {\\r\\n\\t\\t\\tcomputeStyleTests();\\r\\n\\t\\t\\treturn pixelPositionVal;\\r\\n\\t\\t},\\r\\n\\t\\tboxSizingReliable: function() {\\r\\n\\t\\t\\tcomputeStyleTests();\\r\\n\\t\\t\\treturn boxSizingReliableVal;\\r\\n\\t\\t},\\r\\n\\t\\tpixelMarginRight: function() {\\r\\n\\t\\t\\tcomputeStyleTests();\\r\\n\\t\\t\\treturn pixelMarginRightVal;\\r\\n\\t\\t},\\r\\n\\t\\treliableMarginLeft: function() {\\r\\n\\t\\t\\tcomputeStyleTests();\\r\\n\\t\\t\\treturn reliableMarginLeftVal;\\r\\n\\t\\t}\\r\\n\\t} );\\r\\n} )();\\r\\n\\r\\n\\r\\nfunction curCSS( elem, name, computed ) {\\r\\n\\tvar width, minWidth, maxWidth, ret,\\r\\n\\t\\tstyle = elem.style;\\r\\n\\r\\n\\tcomputed = computed || getStyles( elem );\\r\\n\\r\\n\\t// Support: IE <=9 only\\r\\n\\t// getPropertyValue is only needed for .css('filter') (#12537)\\r\\n\\tif ( computed ) {\\r\\n\\t\\tret = computed.getPropertyValue( name ) || computed[ name ];\\r\\n\\r\\n\\t\\tif ( ret === \\\"\\\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\\r\\n\\t\\t\\tret = jQuery.style( elem, name );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// A tribute to the \\\"awesome hack by Dean Edwards\\\"\\r\\n\\t\\t// Android Browser returns percentage for some values,\\r\\n\\t\\t// but width seems to be reliably pixels.\\r\\n\\t\\t// This is against the CSSOM draft spec:\\r\\n\\t\\t// https://drafts.csswg.org/cssom/#resolved-values\\r\\n\\t\\tif ( !support.pixelMarginRight() && rnumnonpx.test( ret ) && rmargin.test( name ) ) {\\r\\n\\r\\n\\t\\t\\t// Remember the original values\\r\\n\\t\\t\\twidth = style.width;\\r\\n\\t\\t\\tminWidth = style.minWidth;\\r\\n\\t\\t\\tmaxWidth = style.maxWidth;\\r\\n\\r\\n\\t\\t\\t// Put in the new values to get a computed value out\\r\\n\\t\\t\\tstyle.minWidth = style.maxWidth = style.width = ret;\\r\\n\\t\\t\\tret = computed.width;\\r\\n\\r\\n\\t\\t\\t// Revert the changed values\\r\\n\\t\\t\\tstyle.width = width;\\r\\n\\t\\t\\tstyle.minWidth = minWidth;\\r\\n\\t\\t\\tstyle.maxWidth = maxWidth;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn ret !== undefined ?\\r\\n\\r\\n\\t\\t// Support: IE <=9 - 11 only\\r\\n\\t\\t// IE returns zIndex value as an integer.\\r\\n\\t\\tret + \\\"\\\" :\\r\\n\\t\\tret;\\r\\n}\\r\\n\\r\\n\\r\\nfunction addGetHookIf( conditionFn, hookFn ) {\\r\\n\\r\\n\\t// Define the hook, we'll check on the first run if it's really needed.\\r\\n\\treturn {\\r\\n\\t\\tget: function() {\\r\\n\\t\\t\\tif ( conditionFn() ) {\\r\\n\\r\\n\\t\\t\\t\\t// Hook not needed (or it's not possible to use it due\\r\\n\\t\\t\\t\\t// to missing dependency), remove it.\\r\\n\\t\\t\\t\\tdelete this.get;\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Hook needed; redefine it so that the support test is not executed again.\\r\\n\\t\\t\\treturn ( this.get = hookFn ).apply( this, arguments );\\r\\n\\t\\t}\\r\\n\\t};\\r\\n}\\r\\n\\r\\n\\r\\nvar\\r\\n\\r\\n\\t// Swappable if display is none or starts with table\\r\\n\\t// except \\\"table\\\", \\\"table-cell\\\", or \\\"table-caption\\\"\\r\\n\\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\\r\\n\\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\\r\\n\\tcssShow = { position: \\\"absolute\\\", visibility: \\\"hidden\\\", display: \\\"block\\\" },\\r\\n\\tcssNormalTransform = {\\r\\n\\t\\tletterSpacing: \\\"0\\\",\\r\\n\\t\\tfontWeight: \\\"400\\\"\\r\\n\\t},\\r\\n\\r\\n\\tcssPrefixes = [ \\\"Webkit\\\", \\\"Moz\\\", \\\"ms\\\" ],\\r\\n\\temptyStyle = document.createElement( \\\"div\\\" ).style;\\r\\n\\r\\n// Return a css property mapped to a potentially vendor prefixed property\\r\\nfunction vendorPropName( name ) {\\r\\n\\r\\n\\t// Shortcut for names that are not vendor prefixed\\r\\n\\tif ( name in emptyStyle ) {\\r\\n\\t\\treturn name;\\r\\n\\t}\\r\\n\\r\\n\\t// Check for vendor prefixed names\\r\\n\\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\\r\\n\\t\\ti = cssPrefixes.length;\\r\\n\\r\\n\\twhile ( i-- ) {\\r\\n\\t\\tname = cssPrefixes[ i ] + capName;\\r\\n\\t\\tif ( name in emptyStyle ) {\\r\\n\\t\\t\\treturn name;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction setPositiveNumber( elem, value, subtract ) {\\r\\n\\r\\n\\t// Any relative (+/-) values have already been\\r\\n\\t// normalized at this point\\r\\n\\tvar matches = rcssNum.exec( value );\\r\\n\\treturn matches ?\\r\\n\\r\\n\\t\\t// Guard against undefined \\\"subtract\\\", e.g., when used as in cssHooks\\r\\n\\t\\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \\\"px\\\" ) :\\r\\n\\t\\tvalue;\\r\\n}\\r\\n\\r\\nfunction augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {\\r\\n\\tvar i,\\r\\n\\t\\tval = 0;\\r\\n\\r\\n\\t// If we already have the right measurement, avoid augmentation\\r\\n\\tif ( extra === ( isBorderBox ? \\\"border\\\" : \\\"content\\\" ) ) {\\r\\n\\t\\ti = 4;\\r\\n\\r\\n\\t// Otherwise initialize for horizontal or vertical properties\\r\\n\\t} else {\\r\\n\\t\\ti = name === \\\"width\\\" ? 1 : 0;\\r\\n\\t}\\r\\n\\r\\n\\tfor ( ; i < 4; i += 2 ) {\\r\\n\\r\\n\\t\\t// Both box models exclude margin, so add it if we want it\\r\\n\\t\\tif ( extra === \\\"margin\\\" ) {\\r\\n\\t\\t\\tval += jQuery.css( elem, extra + cssExpand[ i ], true, styles );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( isBorderBox ) {\\r\\n\\r\\n\\t\\t\\t// border-box includes padding, so remove it if we want content\\r\\n\\t\\t\\tif ( extra === \\\"content\\\" ) {\\r\\n\\t\\t\\t\\tval -= jQuery.css( elem, \\\"padding\\\" + cssExpand[ i ], true, styles );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// At this point, extra isn't border nor margin, so remove border\\r\\n\\t\\t\\tif ( extra !== \\\"margin\\\" ) {\\r\\n\\t\\t\\t\\tval -= jQuery.css( elem, \\\"border\\\" + cssExpand[ i ] + \\\"Width\\\", true, styles );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// At this point, extra isn't content, so add padding\\r\\n\\t\\t\\tval += jQuery.css( elem, \\\"padding\\\" + cssExpand[ i ], true, styles );\\r\\n\\r\\n\\t\\t\\t// At this point, extra isn't content nor padding, so add border\\r\\n\\t\\t\\tif ( extra !== \\\"padding\\\" ) {\\r\\n\\t\\t\\t\\tval += jQuery.css( elem, \\\"border\\\" + cssExpand[ i ] + \\\"Width\\\", true, styles );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn val;\\r\\n}\\r\\n\\r\\nfunction getWidthOrHeight( elem, name, extra ) {\\r\\n\\r\\n\\t// Start with offset property, which is equivalent to the border-box value\\r\\n\\tvar val,\\r\\n\\t\\tvalueIsBorderBox = true,\\r\\n\\t\\tstyles = getStyles( elem ),\\r\\n\\t\\tisBorderBox = jQuery.css( elem, \\\"boxSizing\\\", false, styles ) === \\\"border-box\\\";\\r\\n\\r\\n\\t// Support: IE <=11 only\\r\\n\\t// Running getBoundingClientRect on a disconnected node\\r\\n\\t// in IE throws an error.\\r\\n\\tif ( elem.getClientRects().length ) {\\r\\n\\t\\tval = elem.getBoundingClientRect()[ name ];\\r\\n\\t}\\r\\n\\r\\n\\t// Some non-html elements return undefined for offsetWidth, so check for null/undefined\\r\\n\\t// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285\\r\\n\\t// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668\\r\\n\\tif ( val <= 0 || val == null ) {\\r\\n\\r\\n\\t\\t// Fall back to computed then uncomputed css if necessary\\r\\n\\t\\tval = curCSS( elem, name, styles );\\r\\n\\t\\tif ( val < 0 || val == null ) {\\r\\n\\t\\t\\tval = elem.style[ name ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Computed unit is not pixels. Stop here and return.\\r\\n\\t\\tif ( rnumnonpx.test( val ) ) {\\r\\n\\t\\t\\treturn val;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Check for style in case a browser which returns unreliable values\\r\\n\\t\\t// for getComputedStyle silently falls back to the reliable elem.style\\r\\n\\t\\tvalueIsBorderBox = isBorderBox &&\\r\\n\\t\\t\\t( support.boxSizingReliable() || val === elem.style[ name ] );\\r\\n\\r\\n\\t\\t// Normalize \\\"\\\", auto, and prepare for extra\\r\\n\\t\\tval = parseFloat( val ) || 0;\\r\\n\\t}\\r\\n\\r\\n\\t// Use the active box-sizing model to add/subtract irrelevant styles\\r\\n\\treturn ( val +\\r\\n\\t\\taugmentWidthOrHeight(\\r\\n\\t\\t\\telem,\\r\\n\\t\\t\\tname,\\r\\n\\t\\t\\textra || ( isBorderBox ? \\\"border\\\" : \\\"content\\\" ),\\r\\n\\t\\t\\tvalueIsBorderBox,\\r\\n\\t\\t\\tstyles\\r\\n\\t\\t)\\r\\n\\t) + \\\"px\\\";\\r\\n}\\r\\n\\r\\njQuery.extend( {\\r\\n\\r\\n\\t// Add in style property hooks for overriding the default\\r\\n\\t// behavior of getting and setting a style property\\r\\n\\tcssHooks: {\\r\\n\\t\\topacity: {\\r\\n\\t\\t\\tget: function( elem, computed ) {\\r\\n\\t\\t\\t\\tif ( computed ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// We should always get a number back from opacity\\r\\n\\t\\t\\t\\t\\tvar ret = curCSS( elem, \\\"opacity\\\" );\\r\\n\\t\\t\\t\\t\\treturn ret === \\\"\\\" ? \\\"1\\\" : ret;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\t// Don't automatically add \\\"px\\\" to these possibly-unitless properties\\r\\n\\tcssNumber: {\\r\\n\\t\\t\\\"animationIterationCount\\\": true,\\r\\n\\t\\t\\\"columnCount\\\": true,\\r\\n\\t\\t\\\"fillOpacity\\\": true,\\r\\n\\t\\t\\\"flexGrow\\\": true,\\r\\n\\t\\t\\\"flexShrink\\\": true,\\r\\n\\t\\t\\\"fontWeight\\\": true,\\r\\n\\t\\t\\\"lineHeight\\\": true,\\r\\n\\t\\t\\\"opacity\\\": true,\\r\\n\\t\\t\\\"order\\\": true,\\r\\n\\t\\t\\\"orphans\\\": true,\\r\\n\\t\\t\\\"widows\\\": true,\\r\\n\\t\\t\\\"zIndex\\\": true,\\r\\n\\t\\t\\\"zoom\\\": true\\r\\n\\t},\\r\\n\\r\\n\\t// Add in properties whose names you wish to fix before\\r\\n\\t// setting or getting the value\\r\\n\\tcssProps: {\\r\\n\\t\\t\\\"float\\\": \\\"cssFloat\\\"\\r\\n\\t},\\r\\n\\r\\n\\t// Get and set the style property on a DOM Node\\r\\n\\tstyle: function( elem, name, value, extra ) {\\r\\n\\r\\n\\t\\t// Don't set styles on text and comment nodes\\r\\n\\t\\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Make sure that we're working with the right name\\r\\n\\t\\tvar ret, type, hooks,\\r\\n\\t\\t\\torigName = jQuery.camelCase( name ),\\r\\n\\t\\t\\tstyle = elem.style;\\r\\n\\r\\n\\t\\tname = jQuery.cssProps[ origName ] ||\\r\\n\\t\\t\\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\\r\\n\\r\\n\\t\\t// Gets hook for the prefixed version, then unprefixed version\\r\\n\\t\\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\\r\\n\\r\\n\\t\\t// Check if we're setting a value\\r\\n\\t\\tif ( value !== undefined ) {\\r\\n\\t\\t\\ttype = typeof value;\\r\\n\\r\\n\\t\\t\\t// Convert \\\"+=\\\" or \\\"-=\\\" to relative numbers (#7345)\\r\\n\\t\\t\\tif ( type === \\\"string\\\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\\r\\n\\t\\t\\t\\tvalue = adjustCSS( elem, name, ret );\\r\\n\\r\\n\\t\\t\\t\\t// Fixes bug #9237\\r\\n\\t\\t\\t\\ttype = \\\"number\\\";\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Make sure that null and NaN values aren't set (#7116)\\r\\n\\t\\t\\tif ( value == null || value !== value ) {\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// If a number was passed in, add the unit (except for certain CSS properties)\\r\\n\\t\\t\\tif ( type === \\\"number\\\" ) {\\r\\n\\t\\t\\t\\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \\\"\\\" : \\\"px\\\" );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// background-* props affect original clone's values\\r\\n\\t\\t\\tif ( !support.clearCloneStyle && value === \\\"\\\" && name.indexOf( \\\"background\\\" ) === 0 ) {\\r\\n\\t\\t\\t\\tstyle[ name ] = \\\"inherit\\\";\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// If a hook was provided, use that value, otherwise just set the specified value\\r\\n\\t\\t\\tif ( !hooks || !( \\\"set\\\" in hooks ) ||\\r\\n\\t\\t\\t\\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\\r\\n\\r\\n\\t\\t\\t\\tstyle[ name ] = value;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// If a hook was provided get the non-computed value from there\\r\\n\\t\\t\\tif ( hooks && \\\"get\\\" in hooks &&\\r\\n\\t\\t\\t\\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\\r\\n\\r\\n\\t\\t\\t\\treturn ret;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Otherwise just get the value from the style object\\r\\n\\t\\t\\treturn style[ name ];\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tcss: function( elem, name, extra, styles ) {\\r\\n\\t\\tvar val, num, hooks,\\r\\n\\t\\t\\torigName = jQuery.camelCase( name );\\r\\n\\r\\n\\t\\t// Make sure that we're working with the right name\\r\\n\\t\\tname = jQuery.cssProps[ origName ] ||\\r\\n\\t\\t\\t( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName );\\r\\n\\r\\n\\t\\t// Try prefixed name followed by the unprefixed name\\r\\n\\t\\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\\r\\n\\r\\n\\t\\t// If a hook was provided get the computed value from there\\r\\n\\t\\tif ( hooks && \\\"get\\\" in hooks ) {\\r\\n\\t\\t\\tval = hooks.get( elem, true, extra );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Otherwise, if a way to get the computed value exists, use that\\r\\n\\t\\tif ( val === undefined ) {\\r\\n\\t\\t\\tval = curCSS( elem, name, styles );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Convert \\\"normal\\\" to computed value\\r\\n\\t\\tif ( val === \\\"normal\\\" && name in cssNormalTransform ) {\\r\\n\\t\\t\\tval = cssNormalTransform[ name ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Make numeric if forced or a qualifier was provided and val looks numeric\\r\\n\\t\\tif ( extra === \\\"\\\" || extra ) {\\r\\n\\t\\t\\tnum = parseFloat( val );\\r\\n\\t\\t\\treturn extra === true || isFinite( num ) ? num || 0 : val;\\r\\n\\t\\t}\\r\\n\\t\\treturn val;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.each( [ \\\"height\\\", \\\"width\\\" ], function( i, name ) {\\r\\n\\tjQuery.cssHooks[ name ] = {\\r\\n\\t\\tget: function( elem, computed, extra ) {\\r\\n\\t\\t\\tif ( computed ) {\\r\\n\\r\\n\\t\\t\\t\\t// Certain elements can have dimension info if we invisibly show them\\r\\n\\t\\t\\t\\t// but it must have a current display style that would benefit\\r\\n\\t\\t\\t\\treturn rdisplayswap.test( jQuery.css( elem, \\\"display\\\" ) ) &&\\r\\n\\r\\n\\t\\t\\t\\t\\t// Support: Safari 8+\\r\\n\\t\\t\\t\\t\\t// Table columns in Safari have non-zero offsetWidth & zero\\r\\n\\t\\t\\t\\t\\t// getBoundingClientRect().width unless display is changed.\\r\\n\\t\\t\\t\\t\\t// Support: IE <=11 only\\r\\n\\t\\t\\t\\t\\t// Running getBoundingClientRect on a disconnected node\\r\\n\\t\\t\\t\\t\\t// in IE throws an error.\\r\\n\\t\\t\\t\\t\\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\\r\\n\\t\\t\\t\\t\\t\\tswap( elem, cssShow, function() {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn getWidthOrHeight( elem, name, extra );\\r\\n\\t\\t\\t\\t\\t\\t} ) :\\r\\n\\t\\t\\t\\t\\t\\tgetWidthOrHeight( elem, name, extra );\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\tset: function( elem, value, extra ) {\\r\\n\\t\\t\\tvar matches,\\r\\n\\t\\t\\t\\tstyles = extra && getStyles( elem ),\\r\\n\\t\\t\\t\\tsubtract = extra && augmentWidthOrHeight(\\r\\n\\t\\t\\t\\t\\telem,\\r\\n\\t\\t\\t\\t\\tname,\\r\\n\\t\\t\\t\\t\\textra,\\r\\n\\t\\t\\t\\t\\tjQuery.css( elem, \\\"boxSizing\\\", false, styles ) === \\\"border-box\\\",\\r\\n\\t\\t\\t\\t\\tstyles\\r\\n\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t// Convert to pixels if value adjustment is needed\\r\\n\\t\\t\\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\\r\\n\\t\\t\\t\\t( matches[ 3 ] || \\\"px\\\" ) !== \\\"px\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\telem.style[ name ] = value;\\r\\n\\t\\t\\t\\tvalue = jQuery.css( elem, name );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn setPositiveNumber( elem, value, subtract );\\r\\n\\t\\t}\\r\\n\\t};\\r\\n} );\\r\\n\\r\\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\\r\\n\\tfunction( elem, computed ) {\\r\\n\\t\\tif ( computed ) {\\r\\n\\t\\t\\treturn ( parseFloat( curCSS( elem, \\\"marginLeft\\\" ) ) ||\\r\\n\\t\\t\\t\\telem.getBoundingClientRect().left -\\r\\n\\t\\t\\t\\t\\tswap( elem, { marginLeft: 0 }, function() {\\r\\n\\t\\t\\t\\t\\t\\treturn elem.getBoundingClientRect().left;\\r\\n\\t\\t\\t\\t\\t} )\\r\\n\\t\\t\\t\\t) + \\\"px\\\";\\r\\n\\t\\t}\\r\\n\\t}\\r\\n);\\r\\n\\r\\n// These hooks are used by animate to expand properties\\r\\njQuery.each( {\\r\\n\\tmargin: \\\"\\\",\\r\\n\\tpadding: \\\"\\\",\\r\\n\\tborder: \\\"Width\\\"\\r\\n}, function( prefix, suffix ) {\\r\\n\\tjQuery.cssHooks[ prefix + suffix ] = {\\r\\n\\t\\texpand: function( value ) {\\r\\n\\t\\t\\tvar i = 0,\\r\\n\\t\\t\\t\\texpanded = {},\\r\\n\\r\\n\\t\\t\\t\\t// Assumes a single number if not a string\\r\\n\\t\\t\\t\\tparts = typeof value === \\\"string\\\" ? value.split( \\\" \\\" ) : [ value ];\\r\\n\\r\\n\\t\\t\\tfor ( ; i < 4; i++ ) {\\r\\n\\t\\t\\t\\texpanded[ prefix + cssExpand[ i ] + suffix ] =\\r\\n\\t\\t\\t\\t\\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn expanded;\\r\\n\\t\\t}\\r\\n\\t};\\r\\n\\r\\n\\tif ( !rmargin.test( prefix ) ) {\\r\\n\\t\\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tcss: function( name, value ) {\\r\\n\\t\\treturn access( this, function( elem, name, value ) {\\r\\n\\t\\t\\tvar styles, len,\\r\\n\\t\\t\\t\\tmap = {},\\r\\n\\t\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\t\\tif ( jQuery.isArray( name ) ) {\\r\\n\\t\\t\\t\\tstyles = getStyles( elem );\\r\\n\\t\\t\\t\\tlen = name.length;\\r\\n\\r\\n\\t\\t\\t\\tfor ( ; i < len; i++ ) {\\r\\n\\t\\t\\t\\t\\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn map;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn value !== undefined ?\\r\\n\\t\\t\\t\\tjQuery.style( elem, name, value ) :\\r\\n\\t\\t\\t\\tjQuery.css( elem, name );\\r\\n\\t\\t}, name, value, arguments.length > 1 );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\nfunction Tween( elem, options, prop, end, easing ) {\\r\\n\\treturn new Tween.prototype.init( elem, options, prop, end, easing );\\r\\n}\\r\\njQuery.Tween = Tween;\\r\\n\\r\\nTween.prototype = {\\r\\n\\tconstructor: Tween,\\r\\n\\tinit: function( elem, options, prop, end, easing, unit ) {\\r\\n\\t\\tthis.elem = elem;\\r\\n\\t\\tthis.prop = prop;\\r\\n\\t\\tthis.easing = easing || jQuery.easing._default;\\r\\n\\t\\tthis.options = options;\\r\\n\\t\\tthis.start = this.now = this.cur();\\r\\n\\t\\tthis.end = end;\\r\\n\\t\\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \\\"\\\" : \\\"px\\\" );\\r\\n\\t},\\r\\n\\tcur: function() {\\r\\n\\t\\tvar hooks = Tween.propHooks[ this.prop ];\\r\\n\\r\\n\\t\\treturn hooks && hooks.get ?\\r\\n\\t\\t\\thooks.get( this ) :\\r\\n\\t\\t\\tTween.propHooks._default.get( this );\\r\\n\\t},\\r\\n\\trun: function( percent ) {\\r\\n\\t\\tvar eased,\\r\\n\\t\\t\\thooks = Tween.propHooks[ this.prop ];\\r\\n\\r\\n\\t\\tif ( this.options.duration ) {\\r\\n\\t\\t\\tthis.pos = eased = jQuery.easing[ this.easing ](\\r\\n\\t\\t\\t\\tpercent, this.options.duration * percent, 0, 1, this.options.duration\\r\\n\\t\\t\\t);\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tthis.pos = eased = percent;\\r\\n\\t\\t}\\r\\n\\t\\tthis.now = ( this.end - this.start ) * eased + this.start;\\r\\n\\r\\n\\t\\tif ( this.options.step ) {\\r\\n\\t\\t\\tthis.options.step.call( this.elem, this.now, this );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( hooks && hooks.set ) {\\r\\n\\t\\t\\thooks.set( this );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tTween.propHooks._default.set( this );\\r\\n\\t\\t}\\r\\n\\t\\treturn this;\\r\\n\\t}\\r\\n};\\r\\n\\r\\nTween.prototype.init.prototype = Tween.prototype;\\r\\n\\r\\nTween.propHooks = {\\r\\n\\t_default: {\\r\\n\\t\\tget: function( tween ) {\\r\\n\\t\\t\\tvar result;\\r\\n\\r\\n\\t\\t\\t// Use a property on the element directly when it is not a DOM element,\\r\\n\\t\\t\\t// or when there is no matching style property that exists.\\r\\n\\t\\t\\tif ( tween.elem.nodeType !== 1 ||\\r\\n\\t\\t\\t\\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\\r\\n\\t\\t\\t\\treturn tween.elem[ tween.prop ];\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Passing an empty string as a 3rd parameter to .css will automatically\\r\\n\\t\\t\\t// attempt a parseFloat and fallback to a string if the parse fails.\\r\\n\\t\\t\\t// Simple values such as \\\"10px\\\" are parsed to Float;\\r\\n\\t\\t\\t// complex values such as \\\"rotate(1rad)\\\" are returned as-is.\\r\\n\\t\\t\\tresult = jQuery.css( tween.elem, tween.prop, \\\"\\\" );\\r\\n\\r\\n\\t\\t\\t// Empty strings, null, undefined and \\\"auto\\\" are converted to 0.\\r\\n\\t\\t\\treturn !result || result === \\\"auto\\\" ? 0 : result;\\r\\n\\t\\t},\\r\\n\\t\\tset: function( tween ) {\\r\\n\\r\\n\\t\\t\\t// Use step hook for back compat.\\r\\n\\t\\t\\t// Use cssHook if its there.\\r\\n\\t\\t\\t// Use .style if available and use plain properties where available.\\r\\n\\t\\t\\tif ( jQuery.fx.step[ tween.prop ] ) {\\r\\n\\t\\t\\t\\tjQuery.fx.step[ tween.prop ]( tween );\\r\\n\\t\\t\\t} else if ( tween.elem.nodeType === 1 &&\\r\\n\\t\\t\\t\\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\\r\\n\\t\\t\\t\\t\\tjQuery.cssHooks[ tween.prop ] ) ) {\\r\\n\\t\\t\\t\\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\ttween.elem[ tween.prop ] = tween.now;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\n// Support: IE <=9 only\\r\\n// Panic based approach to setting things on disconnected nodes\\r\\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\\r\\n\\tset: function( tween ) {\\r\\n\\t\\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\\r\\n\\t\\t\\ttween.elem[ tween.prop ] = tween.now;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.easing = {\\r\\n\\tlinear: function( p ) {\\r\\n\\t\\treturn p;\\r\\n\\t},\\r\\n\\tswing: function( p ) {\\r\\n\\t\\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\\r\\n\\t},\\r\\n\\t_default: \\\"swing\\\"\\r\\n};\\r\\n\\r\\njQuery.fx = Tween.prototype.init;\\r\\n\\r\\n// Back compat <1.8 extension point\\r\\njQuery.fx.step = {};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar\\r\\n\\tfxNow, timerId,\\r\\n\\trfxtypes = /^(?:toggle|show|hide)$/,\\r\\n\\trrun = /queueHooks$/;\\r\\n\\r\\nfunction raf() {\\r\\n\\tif ( timerId ) {\\r\\n\\t\\twindow.requestAnimationFrame( raf );\\r\\n\\t\\tjQuery.fx.tick();\\r\\n\\t}\\r\\n}\\r\\n\\r\\n// Animations created synchronously will run synchronously\\r\\nfunction createFxNow() {\\r\\n\\twindow.setTimeout( function() {\\r\\n\\t\\tfxNow = undefined;\\r\\n\\t} );\\r\\n\\treturn ( fxNow = jQuery.now() );\\r\\n}\\r\\n\\r\\n// Generate parameters to create a standard animation\\r\\nfunction genFx( type, includeWidth ) {\\r\\n\\tvar which,\\r\\n\\t\\ti = 0,\\r\\n\\t\\tattrs = { height: type };\\r\\n\\r\\n\\t// If we include width, step value is 1 to do all cssExpand values,\\r\\n\\t// otherwise step value is 2 to skip over Left and Right\\r\\n\\tincludeWidth = includeWidth ? 1 : 0;\\r\\n\\tfor ( ; i < 4; i += 2 - includeWidth ) {\\r\\n\\t\\twhich = cssExpand[ i ];\\r\\n\\t\\tattrs[ \\\"margin\\\" + which ] = attrs[ \\\"padding\\\" + which ] = type;\\r\\n\\t}\\r\\n\\r\\n\\tif ( includeWidth ) {\\r\\n\\t\\tattrs.opacity = attrs.width = type;\\r\\n\\t}\\r\\n\\r\\n\\treturn attrs;\\r\\n}\\r\\n\\r\\nfunction createTween( value, prop, animation ) {\\r\\n\\tvar tween,\\r\\n\\t\\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \\\"*\\\" ] ),\\r\\n\\t\\tindex = 0,\\r\\n\\t\\tlength = collection.length;\\r\\n\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\\r\\n\\r\\n\\t\\t\\t// We're done with this property\\r\\n\\t\\t\\treturn tween;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction defaultPrefilter( elem, props, opts ) {\\r\\n\\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\\r\\n\\t\\tisBox = \\\"width\\\" in props || \\\"height\\\" in props,\\r\\n\\t\\tanim = this,\\r\\n\\t\\torig = {},\\r\\n\\t\\tstyle = elem.style,\\r\\n\\t\\thidden = elem.nodeType && isHiddenWithinTree( elem ),\\r\\n\\t\\tdataShow = dataPriv.get( elem, \\\"fxshow\\\" );\\r\\n\\r\\n\\t// Queue-skipping animations hijack the fx hooks\\r\\n\\tif ( !opts.queue ) {\\r\\n\\t\\thooks = jQuery._queueHooks( elem, \\\"fx\\\" );\\r\\n\\t\\tif ( hooks.unqueued == null ) {\\r\\n\\t\\t\\thooks.unqueued = 0;\\r\\n\\t\\t\\toldfire = hooks.empty.fire;\\r\\n\\t\\t\\thooks.empty.fire = function() {\\r\\n\\t\\t\\t\\tif ( !hooks.unqueued ) {\\r\\n\\t\\t\\t\\t\\toldfire();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t};\\r\\n\\t\\t}\\r\\n\\t\\thooks.unqueued++;\\r\\n\\r\\n\\t\\tanim.always( function() {\\r\\n\\r\\n\\t\\t\\t// Ensure the complete handler is called before this completes\\r\\n\\t\\t\\tanim.always( function() {\\r\\n\\t\\t\\t\\thooks.unqueued--;\\r\\n\\t\\t\\t\\tif ( !jQuery.queue( elem, \\\"fx\\\" ).length ) {\\r\\n\\t\\t\\t\\t\\thooks.empty.fire();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\t// Detect show/hide animations\\r\\n\\tfor ( prop in props ) {\\r\\n\\t\\tvalue = props[ prop ];\\r\\n\\t\\tif ( rfxtypes.test( value ) ) {\\r\\n\\t\\t\\tdelete props[ prop ];\\r\\n\\t\\t\\ttoggle = toggle || value === \\\"toggle\\\";\\r\\n\\t\\t\\tif ( value === ( hidden ? \\\"hide\\\" : \\\"show\\\" ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// Pretend to be hidden if this is a \\\"show\\\" and\\r\\n\\t\\t\\t\\t// there is still data from a stopped show/hide\\r\\n\\t\\t\\t\\tif ( value === \\\"show\\\" && dataShow && dataShow[ prop ] !== undefined ) {\\r\\n\\t\\t\\t\\t\\thidden = true;\\r\\n\\r\\n\\t\\t\\t\\t// Ignore all other no-op show/hide data\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Bail out if this is a no-op like .hide().hide()\\r\\n\\tpropTween = !jQuery.isEmptyObject( props );\\r\\n\\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\t// Restrict \\\"overflow\\\" and \\\"display\\\" styles during box animations\\r\\n\\tif ( isBox && elem.nodeType === 1 ) {\\r\\n\\r\\n\\t\\t// Support: IE <=9 - 11, Edge 12 - 13\\r\\n\\t\\t// Record all 3 overflow attributes because IE does not infer the shorthand\\r\\n\\t\\t// from identically-valued overflowX and overflowY\\r\\n\\t\\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\\r\\n\\r\\n\\t\\t// Identify a display type, preferring old show/hide data over the CSS cascade\\r\\n\\t\\trestoreDisplay = dataShow && dataShow.display;\\r\\n\\t\\tif ( restoreDisplay == null ) {\\r\\n\\t\\t\\trestoreDisplay = dataPriv.get( elem, \\\"display\\\" );\\r\\n\\t\\t}\\r\\n\\t\\tdisplay = jQuery.css( elem, \\\"display\\\" );\\r\\n\\t\\tif ( display === \\\"none\\\" ) {\\r\\n\\t\\t\\tif ( restoreDisplay ) {\\r\\n\\t\\t\\t\\tdisplay = restoreDisplay;\\r\\n\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t// Get nonempty value(s) by temporarily forcing visibility\\r\\n\\t\\t\\t\\tshowHide( [ elem ], true );\\r\\n\\t\\t\\t\\trestoreDisplay = elem.style.display || restoreDisplay;\\r\\n\\t\\t\\t\\tdisplay = jQuery.css( elem, \\\"display\\\" );\\r\\n\\t\\t\\t\\tshowHide( [ elem ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Animate inline elements as inline-block\\r\\n\\t\\tif ( display === \\\"inline\\\" || display === \\\"inline-block\\\" && restoreDisplay != null ) {\\r\\n\\t\\t\\tif ( jQuery.css( elem, \\\"float\\\" ) === \\\"none\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t// Restore the original display value at the end of pure show/hide animations\\r\\n\\t\\t\\t\\tif ( !propTween ) {\\r\\n\\t\\t\\t\\t\\tanim.done( function() {\\r\\n\\t\\t\\t\\t\\t\\tstyle.display = restoreDisplay;\\r\\n\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t\\tif ( restoreDisplay == null ) {\\r\\n\\t\\t\\t\\t\\t\\tdisplay = style.display;\\r\\n\\t\\t\\t\\t\\t\\trestoreDisplay = display === \\\"none\\\" ? \\\"\\\" : display;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tstyle.display = \\\"inline-block\\\";\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tif ( opts.overflow ) {\\r\\n\\t\\tstyle.overflow = \\\"hidden\\\";\\r\\n\\t\\tanim.always( function() {\\r\\n\\t\\t\\tstyle.overflow = opts.overflow[ 0 ];\\r\\n\\t\\t\\tstyle.overflowX = opts.overflow[ 1 ];\\r\\n\\t\\t\\tstyle.overflowY = opts.overflow[ 2 ];\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\t// Implement show/hide animations\\r\\n\\tpropTween = false;\\r\\n\\tfor ( prop in orig ) {\\r\\n\\r\\n\\t\\t// General show/hide setup for this element animation\\r\\n\\t\\tif ( !propTween ) {\\r\\n\\t\\t\\tif ( dataShow ) {\\r\\n\\t\\t\\t\\tif ( \\\"hidden\\\" in dataShow ) {\\r\\n\\t\\t\\t\\t\\thidden = dataShow.hidden;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tdataShow = dataPriv.access( elem, \\\"fxshow\\\", { display: restoreDisplay } );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Store hidden/visible for toggle so `.stop().toggle()` \\\"reverses\\\"\\r\\n\\t\\t\\tif ( toggle ) {\\r\\n\\t\\t\\t\\tdataShow.hidden = !hidden;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Show elements before animating them\\r\\n\\t\\t\\tif ( hidden ) {\\r\\n\\t\\t\\t\\tshowHide( [ elem ], true );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t/* eslint-disable no-loop-func */\\r\\n\\r\\n\\t\\t\\tanim.done( function() {\\r\\n\\r\\n\\t\\t\\t/* eslint-enable no-loop-func */\\r\\n\\r\\n\\t\\t\\t\\t// The final step of a \\\"hide\\\" animation is actually hiding the element\\r\\n\\t\\t\\t\\tif ( !hidden ) {\\r\\n\\t\\t\\t\\t\\tshowHide( [ elem ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tdataPriv.remove( elem, \\\"fxshow\\\" );\\r\\n\\t\\t\\t\\tfor ( prop in orig ) {\\r\\n\\t\\t\\t\\t\\tjQuery.style( elem, prop, orig[ prop ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Per-property setup\\r\\n\\t\\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\\r\\n\\t\\tif ( !( prop in dataShow ) ) {\\r\\n\\t\\t\\tdataShow[ prop ] = propTween.start;\\r\\n\\t\\t\\tif ( hidden ) {\\r\\n\\t\\t\\t\\tpropTween.end = propTween.start;\\r\\n\\t\\t\\t\\tpropTween.start = 0;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction propFilter( props, specialEasing ) {\\r\\n\\tvar index, name, easing, value, hooks;\\r\\n\\r\\n\\t// camelCase, specialEasing and expand cssHook pass\\r\\n\\tfor ( index in props ) {\\r\\n\\t\\tname = jQuery.camelCase( index );\\r\\n\\t\\teasing = specialEasing[ name ];\\r\\n\\t\\tvalue = props[ index ];\\r\\n\\t\\tif ( jQuery.isArray( value ) ) {\\r\\n\\t\\t\\teasing = value[ 1 ];\\r\\n\\t\\t\\tvalue = props[ index ] = value[ 0 ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( index !== name ) {\\r\\n\\t\\t\\tprops[ name ] = value;\\r\\n\\t\\t\\tdelete props[ index ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\thooks = jQuery.cssHooks[ name ];\\r\\n\\t\\tif ( hooks && \\\"expand\\\" in hooks ) {\\r\\n\\t\\t\\tvalue = hooks.expand( value );\\r\\n\\t\\t\\tdelete props[ name ];\\r\\n\\r\\n\\t\\t\\t// Not quite $.extend, this won't overwrite existing keys.\\r\\n\\t\\t\\t// Reusing 'index' because we have the correct \\\"name\\\"\\r\\n\\t\\t\\tfor ( index in value ) {\\r\\n\\t\\t\\t\\tif ( !( index in props ) ) {\\r\\n\\t\\t\\t\\t\\tprops[ index ] = value[ index ];\\r\\n\\t\\t\\t\\t\\tspecialEasing[ index ] = easing;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tspecialEasing[ name ] = easing;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction Animation( elem, properties, options ) {\\r\\n\\tvar result,\\r\\n\\t\\tstopped,\\r\\n\\t\\tindex = 0,\\r\\n\\t\\tlength = Animation.prefilters.length,\\r\\n\\t\\tdeferred = jQuery.Deferred().always( function() {\\r\\n\\r\\n\\t\\t\\t// Don't match elem in the :animated selector\\r\\n\\t\\t\\tdelete tick.elem;\\r\\n\\t\\t} ),\\r\\n\\t\\ttick = function() {\\r\\n\\t\\t\\tif ( stopped ) {\\r\\n\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tvar currentTime = fxNow || createFxNow(),\\r\\n\\t\\t\\t\\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\\r\\n\\r\\n\\t\\t\\t\\t// Support: Android 2.3 only\\r\\n\\t\\t\\t\\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\\r\\n\\t\\t\\t\\ttemp = remaining / animation.duration || 0,\\r\\n\\t\\t\\t\\tpercent = 1 - temp,\\r\\n\\t\\t\\t\\tindex = 0,\\r\\n\\t\\t\\t\\tlength = animation.tweens.length;\\r\\n\\r\\n\\t\\t\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\t\\t\\tanimation.tweens[ index ].run( percent );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\\r\\n\\r\\n\\t\\t\\tif ( percent < 1 && length ) {\\r\\n\\t\\t\\t\\treturn remaining;\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tdeferred.resolveWith( elem, [ animation ] );\\r\\n\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\tanimation = deferred.promise( {\\r\\n\\t\\t\\telem: elem,\\r\\n\\t\\t\\tprops: jQuery.extend( {}, properties ),\\r\\n\\t\\t\\topts: jQuery.extend( true, {\\r\\n\\t\\t\\t\\tspecialEasing: {},\\r\\n\\t\\t\\t\\teasing: jQuery.easing._default\\r\\n\\t\\t\\t}, options ),\\r\\n\\t\\t\\toriginalProperties: properties,\\r\\n\\t\\t\\toriginalOptions: options,\\r\\n\\t\\t\\tstartTime: fxNow || createFxNow(),\\r\\n\\t\\t\\tduration: options.duration,\\r\\n\\t\\t\\ttweens: [],\\r\\n\\t\\t\\tcreateTween: function( prop, end ) {\\r\\n\\t\\t\\t\\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\\r\\n\\t\\t\\t\\t\\t\\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\\r\\n\\t\\t\\t\\tanimation.tweens.push( tween );\\r\\n\\t\\t\\t\\treturn tween;\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tstop: function( gotoEnd ) {\\r\\n\\t\\t\\t\\tvar index = 0,\\r\\n\\r\\n\\t\\t\\t\\t\\t// If we are going to the end, we want to run all the tweens\\r\\n\\t\\t\\t\\t\\t// otherwise we skip this part\\r\\n\\t\\t\\t\\t\\tlength = gotoEnd ? animation.tweens.length : 0;\\r\\n\\t\\t\\t\\tif ( stopped ) {\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tstopped = true;\\r\\n\\t\\t\\t\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\t\\t\\t\\tanimation.tweens[ index ].run( 1 );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Resolve when we played the last frame; otherwise, reject\\r\\n\\t\\t\\t\\tif ( gotoEnd ) {\\r\\n\\t\\t\\t\\t\\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\\r\\n\\t\\t\\t\\t\\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t}\\r\\n\\t\\t} ),\\r\\n\\t\\tprops = animation.props;\\r\\n\\r\\n\\tpropFilter( props, animation.opts.specialEasing );\\r\\n\\r\\n\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\\r\\n\\t\\tif ( result ) {\\r\\n\\t\\t\\tif ( jQuery.isFunction( result.stop ) ) {\\r\\n\\t\\t\\t\\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\\r\\n\\t\\t\\t\\t\\tjQuery.proxy( result.stop, result );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn result;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tjQuery.map( props, createTween, animation );\\r\\n\\r\\n\\tif ( jQuery.isFunction( animation.opts.start ) ) {\\r\\n\\t\\tanimation.opts.start.call( elem, animation );\\r\\n\\t}\\r\\n\\r\\n\\tjQuery.fx.timer(\\r\\n\\t\\tjQuery.extend( tick, {\\r\\n\\t\\t\\telem: elem,\\r\\n\\t\\t\\tanim: animation,\\r\\n\\t\\t\\tqueue: animation.opts.queue\\r\\n\\t\\t} )\\r\\n\\t);\\r\\n\\r\\n\\t// attach callbacks from options\\r\\n\\treturn animation.progress( animation.opts.progress )\\r\\n\\t\\t.done( animation.opts.done, animation.opts.complete )\\r\\n\\t\\t.fail( animation.opts.fail )\\r\\n\\t\\t.always( animation.opts.always );\\r\\n}\\r\\n\\r\\njQuery.Animation = jQuery.extend( Animation, {\\r\\n\\r\\n\\ttweeners: {\\r\\n\\t\\t\\\"*\\\": [ function( prop, value ) {\\r\\n\\t\\t\\tvar tween = this.createTween( prop, value );\\r\\n\\t\\t\\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\\r\\n\\t\\t\\treturn tween;\\r\\n\\t\\t} ]\\r\\n\\t},\\r\\n\\r\\n\\ttweener: function( props, callback ) {\\r\\n\\t\\tif ( jQuery.isFunction( props ) ) {\\r\\n\\t\\t\\tcallback = props;\\r\\n\\t\\t\\tprops = [ \\\"*\\\" ];\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tprops = props.match( rnothtmlwhite );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tvar prop,\\r\\n\\t\\t\\tindex = 0,\\r\\n\\t\\t\\tlength = props.length;\\r\\n\\r\\n\\t\\tfor ( ; index < length; index++ ) {\\r\\n\\t\\t\\tprop = props[ index ];\\r\\n\\t\\t\\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\\r\\n\\t\\t\\tAnimation.tweeners[ prop ].unshift( callback );\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tprefilters: [ defaultPrefilter ],\\r\\n\\r\\n\\tprefilter: function( callback, prepend ) {\\r\\n\\t\\tif ( prepend ) {\\r\\n\\t\\t\\tAnimation.prefilters.unshift( callback );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tAnimation.prefilters.push( callback );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.speed = function( speed, easing, fn ) {\\r\\n\\tvar opt = speed && typeof speed === \\\"object\\\" ? jQuery.extend( {}, speed ) : {\\r\\n\\t\\tcomplete: fn || !fn && easing ||\\r\\n\\t\\t\\tjQuery.isFunction( speed ) && speed,\\r\\n\\t\\tduration: speed,\\r\\n\\t\\teasing: fn && easing || easing && !jQuery.isFunction( easing ) && easing\\r\\n\\t};\\r\\n\\r\\n\\t// Go to the end state if fx are off or if document is hidden\\r\\n\\tif ( jQuery.fx.off || document.hidden ) {\\r\\n\\t\\topt.duration = 0;\\r\\n\\r\\n\\t} else {\\r\\n\\t\\tif ( typeof opt.duration !== \\\"number\\\" ) {\\r\\n\\t\\t\\tif ( opt.duration in jQuery.fx.speeds ) {\\r\\n\\t\\t\\t\\topt.duration = jQuery.fx.speeds[ opt.duration ];\\r\\n\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\topt.duration = jQuery.fx.speeds._default;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Normalize opt.queue - true/undefined/null -> \\\"fx\\\"\\r\\n\\tif ( opt.queue == null || opt.queue === true ) {\\r\\n\\t\\topt.queue = \\\"fx\\\";\\r\\n\\t}\\r\\n\\r\\n\\t// Queueing\\r\\n\\topt.old = opt.complete;\\r\\n\\r\\n\\topt.complete = function() {\\r\\n\\t\\tif ( jQuery.isFunction( opt.old ) ) {\\r\\n\\t\\t\\topt.old.call( this );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( opt.queue ) {\\r\\n\\t\\t\\tjQuery.dequeue( this, opt.queue );\\r\\n\\t\\t}\\r\\n\\t};\\r\\n\\r\\n\\treturn opt;\\r\\n};\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tfadeTo: function( speed, to, easing, callback ) {\\r\\n\\r\\n\\t\\t// Show any hidden elements after setting opacity to 0\\r\\n\\t\\treturn this.filter( isHiddenWithinTree ).css( \\\"opacity\\\", 0 ).show()\\r\\n\\r\\n\\t\\t\\t// Animate to the value specified\\r\\n\\t\\t\\t.end().animate( { opacity: to }, speed, easing, callback );\\r\\n\\t},\\r\\n\\tanimate: function( prop, speed, easing, callback ) {\\r\\n\\t\\tvar empty = jQuery.isEmptyObject( prop ),\\r\\n\\t\\t\\toptall = jQuery.speed( speed, easing, callback ),\\r\\n\\t\\t\\tdoAnimation = function() {\\r\\n\\r\\n\\t\\t\\t\\t// Operate on a copy of prop so per-property easing won't be lost\\r\\n\\t\\t\\t\\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\\r\\n\\r\\n\\t\\t\\t\\t// Empty animations, or finishing resolves immediately\\r\\n\\t\\t\\t\\tif ( empty || dataPriv.get( this, \\\"finish\\\" ) ) {\\r\\n\\t\\t\\t\\t\\tanim.stop( true );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t};\\r\\n\\t\\t\\tdoAnimation.finish = doAnimation;\\r\\n\\r\\n\\t\\treturn empty || optall.queue === false ?\\r\\n\\t\\t\\tthis.each( doAnimation ) :\\r\\n\\t\\t\\tthis.queue( optall.queue, doAnimation );\\r\\n\\t},\\r\\n\\tstop: function( type, clearQueue, gotoEnd ) {\\r\\n\\t\\tvar stopQueue = function( hooks ) {\\r\\n\\t\\t\\tvar stop = hooks.stop;\\r\\n\\t\\t\\tdelete hooks.stop;\\r\\n\\t\\t\\tstop( gotoEnd );\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tif ( typeof type !== \\\"string\\\" ) {\\r\\n\\t\\t\\tgotoEnd = clearQueue;\\r\\n\\t\\t\\tclearQueue = type;\\r\\n\\t\\t\\ttype = undefined;\\r\\n\\t\\t}\\r\\n\\t\\tif ( clearQueue && type !== false ) {\\r\\n\\t\\t\\tthis.queue( type || \\\"fx\\\", [] );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tvar dequeue = true,\\r\\n\\t\\t\\t\\tindex = type != null && type + \\\"queueHooks\\\",\\r\\n\\t\\t\\t\\ttimers = jQuery.timers,\\r\\n\\t\\t\\t\\tdata = dataPriv.get( this );\\r\\n\\r\\n\\t\\t\\tif ( index ) {\\r\\n\\t\\t\\t\\tif ( data[ index ] && data[ index ].stop ) {\\r\\n\\t\\t\\t\\t\\tstopQueue( data[ index ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tfor ( index in data ) {\\r\\n\\t\\t\\t\\t\\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\\r\\n\\t\\t\\t\\t\\t\\tstopQueue( data[ index ] );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tfor ( index = timers.length; index--; ) {\\r\\n\\t\\t\\t\\tif ( timers[ index ].elem === this &&\\r\\n\\t\\t\\t\\t\\t( type == null || timers[ index ].queue === type ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\ttimers[ index ].anim.stop( gotoEnd );\\r\\n\\t\\t\\t\\t\\tdequeue = false;\\r\\n\\t\\t\\t\\t\\ttimers.splice( index, 1 );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Start the next in the queue if the last step wasn't forced.\\r\\n\\t\\t\\t// Timers currently will call their complete callbacks, which\\r\\n\\t\\t\\t// will dequeue but only if they were gotoEnd.\\r\\n\\t\\t\\tif ( dequeue || !gotoEnd ) {\\r\\n\\t\\t\\t\\tjQuery.dequeue( this, type );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\tfinish: function( type ) {\\r\\n\\t\\tif ( type !== false ) {\\r\\n\\t\\t\\ttype = type || \\\"fx\\\";\\r\\n\\t\\t}\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tvar index,\\r\\n\\t\\t\\t\\tdata = dataPriv.get( this ),\\r\\n\\t\\t\\t\\tqueue = data[ type + \\\"queue\\\" ],\\r\\n\\t\\t\\t\\thooks = data[ type + \\\"queueHooks\\\" ],\\r\\n\\t\\t\\t\\ttimers = jQuery.timers,\\r\\n\\t\\t\\t\\tlength = queue ? queue.length : 0;\\r\\n\\r\\n\\t\\t\\t// Enable finishing flag on private data\\r\\n\\t\\t\\tdata.finish = true;\\r\\n\\r\\n\\t\\t\\t// Empty the queue first\\r\\n\\t\\t\\tjQuery.queue( this, type, [] );\\r\\n\\r\\n\\t\\t\\tif ( hooks && hooks.stop ) {\\r\\n\\t\\t\\t\\thooks.stop.call( this, true );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Look for any active animations, and finish them\\r\\n\\t\\t\\tfor ( index = timers.length; index--; ) {\\r\\n\\t\\t\\t\\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\\r\\n\\t\\t\\t\\t\\ttimers[ index ].anim.stop( true );\\r\\n\\t\\t\\t\\t\\ttimers.splice( index, 1 );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Look for any animations in the old queue and finish them\\r\\n\\t\\t\\tfor ( index = 0; index < length; index++ ) {\\r\\n\\t\\t\\t\\tif ( queue[ index ] && queue[ index ].finish ) {\\r\\n\\t\\t\\t\\t\\tqueue[ index ].finish.call( this );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Turn off finishing flag\\r\\n\\t\\t\\tdelete data.finish;\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.each( [ \\\"toggle\\\", \\\"show\\\", \\\"hide\\\" ], function( i, name ) {\\r\\n\\tvar cssFn = jQuery.fn[ name ];\\r\\n\\tjQuery.fn[ name ] = function( speed, easing, callback ) {\\r\\n\\t\\treturn speed == null || typeof speed === \\\"boolean\\\" ?\\r\\n\\t\\t\\tcssFn.apply( this, arguments ) :\\r\\n\\t\\t\\tthis.animate( genFx( name, true ), speed, easing, callback );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\n// Generate shortcuts for custom animations\\r\\njQuery.each( {\\r\\n\\tslideDown: genFx( \\\"show\\\" ),\\r\\n\\tslideUp: genFx( \\\"hide\\\" ),\\r\\n\\tslideToggle: genFx( \\\"toggle\\\" ),\\r\\n\\tfadeIn: { opacity: \\\"show\\\" },\\r\\n\\tfadeOut: { opacity: \\\"hide\\\" },\\r\\n\\tfadeToggle: { opacity: \\\"toggle\\\" }\\r\\n}, function( name, props ) {\\r\\n\\tjQuery.fn[ name ] = function( speed, easing, callback ) {\\r\\n\\t\\treturn this.animate( props, speed, easing, callback );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\njQuery.timers = [];\\r\\njQuery.fx.tick = function() {\\r\\n\\tvar timer,\\r\\n\\t\\ti = 0,\\r\\n\\t\\ttimers = jQuery.timers;\\r\\n\\r\\n\\tfxNow = jQuery.now();\\r\\n\\r\\n\\tfor ( ; i < timers.length; i++ ) {\\r\\n\\t\\ttimer = timers[ i ];\\r\\n\\r\\n\\t\\t// Checks the timer has not already been removed\\r\\n\\t\\tif ( !timer() && timers[ i ] === timer ) {\\r\\n\\t\\t\\ttimers.splice( i--, 1 );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tif ( !timers.length ) {\\r\\n\\t\\tjQuery.fx.stop();\\r\\n\\t}\\r\\n\\tfxNow = undefined;\\r\\n};\\r\\n\\r\\njQuery.fx.timer = function( timer ) {\\r\\n\\tjQuery.timers.push( timer );\\r\\n\\tif ( timer() ) {\\r\\n\\t\\tjQuery.fx.start();\\r\\n\\t} else {\\r\\n\\t\\tjQuery.timers.pop();\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.fx.interval = 13;\\r\\njQuery.fx.start = function() {\\r\\n\\tif ( !timerId ) {\\r\\n\\t\\ttimerId = window.requestAnimationFrame ?\\r\\n\\t\\t\\twindow.requestAnimationFrame( raf ) :\\r\\n\\t\\t\\twindow.setInterval( jQuery.fx.tick, jQuery.fx.interval );\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.fx.stop = function() {\\r\\n\\tif ( window.cancelAnimationFrame ) {\\r\\n\\t\\twindow.cancelAnimationFrame( timerId );\\r\\n\\t} else {\\r\\n\\t\\twindow.clearInterval( timerId );\\r\\n\\t}\\r\\n\\r\\n\\ttimerId = null;\\r\\n};\\r\\n\\r\\njQuery.fx.speeds = {\\r\\n\\tslow: 600,\\r\\n\\tfast: 200,\\r\\n\\r\\n\\t// Default speed\\r\\n\\t_default: 400\\r\\n};\\r\\n\\r\\n\\r\\n// Based off of the plugin by Clint Helfers, with permission.\\r\\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\\r\\njQuery.fn.delay = function( time, type ) {\\r\\n\\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\\r\\n\\ttype = type || \\\"fx\\\";\\r\\n\\r\\n\\treturn this.queue( type, function( next, hooks ) {\\r\\n\\t\\tvar timeout = window.setTimeout( next, time );\\r\\n\\t\\thooks.stop = function() {\\r\\n\\t\\t\\twindow.clearTimeout( timeout );\\r\\n\\t\\t};\\r\\n\\t} );\\r\\n};\\r\\n\\r\\n\\r\\n( function() {\\r\\n\\tvar input = document.createElement( \\\"input\\\" ),\\r\\n\\t\\tselect = document.createElement( \\\"select\\\" ),\\r\\n\\t\\topt = select.appendChild( document.createElement( \\\"option\\\" ) );\\r\\n\\r\\n\\tinput.type = \\\"checkbox\\\";\\r\\n\\r\\n\\t// Support: Android <=4.3 only\\r\\n\\t// Default value for a checkbox should be \\\"on\\\"\\r\\n\\tsupport.checkOn = input.value !== \\\"\\\";\\r\\n\\r\\n\\t// Support: IE <=11 only\\r\\n\\t// Must access selectedIndex to make default options select\\r\\n\\tsupport.optSelected = opt.selected;\\r\\n\\r\\n\\t// Support: IE <=11 only\\r\\n\\t// An input loses its value after becoming a radio\\r\\n\\tinput = document.createElement( \\\"input\\\" );\\r\\n\\tinput.value = \\\"t\\\";\\r\\n\\tinput.type = \\\"radio\\\";\\r\\n\\tsupport.radioValue = input.value === \\\"t\\\";\\r\\n} )();\\r\\n\\r\\n\\r\\nvar boolHook,\\r\\n\\tattrHandle = jQuery.expr.attrHandle;\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tattr: function( name, value ) {\\r\\n\\t\\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\\r\\n\\t},\\r\\n\\r\\n\\tremoveAttr: function( name ) {\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tjQuery.removeAttr( this, name );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.extend( {\\r\\n\\tattr: function( elem, name, value ) {\\r\\n\\t\\tvar ret, hooks,\\r\\n\\t\\t\\tnType = elem.nodeType;\\r\\n\\r\\n\\t\\t// Don't get/set attributes on text, comment and attribute nodes\\r\\n\\t\\tif ( nType === 3 || nType === 8 || nType === 2 ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Fallback to prop when attributes are not supported\\r\\n\\t\\tif ( typeof elem.getAttribute === \\\"undefined\\\" ) {\\r\\n\\t\\t\\treturn jQuery.prop( elem, name, value );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Attribute hooks are determined by the lowercase version\\r\\n\\t\\t// Grab necessary hook if one is defined\\r\\n\\t\\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\\r\\n\\t\\t\\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\\r\\n\\t\\t\\t\\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( value !== undefined ) {\\r\\n\\t\\t\\tif ( value === null ) {\\r\\n\\t\\t\\t\\tjQuery.removeAttr( elem, name );\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( hooks && \\\"set\\\" in hooks &&\\r\\n\\t\\t\\t\\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\\r\\n\\t\\t\\t\\treturn ret;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\telem.setAttribute( name, value + \\\"\\\" );\\r\\n\\t\\t\\treturn value;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( hooks && \\\"get\\\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\\r\\n\\t\\t\\treturn ret;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tret = jQuery.find.attr( elem, name );\\r\\n\\r\\n\\t\\t// Non-existent attributes return null, we normalize to undefined\\r\\n\\t\\treturn ret == null ? undefined : ret;\\r\\n\\t},\\r\\n\\r\\n\\tattrHooks: {\\r\\n\\t\\ttype: {\\r\\n\\t\\t\\tset: function( elem, value ) {\\r\\n\\t\\t\\t\\tif ( !support.radioValue && value === \\\"radio\\\" &&\\r\\n\\t\\t\\t\\t\\tjQuery.nodeName( elem, \\\"input\\\" ) ) {\\r\\n\\t\\t\\t\\t\\tvar val = elem.value;\\r\\n\\t\\t\\t\\t\\telem.setAttribute( \\\"type\\\", value );\\r\\n\\t\\t\\t\\t\\tif ( val ) {\\r\\n\\t\\t\\t\\t\\t\\telem.value = val;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn value;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tremoveAttr: function( elem, value ) {\\r\\n\\t\\tvar name,\\r\\n\\t\\t\\ti = 0,\\r\\n\\r\\n\\t\\t\\t// Attribute names can contain non-HTML whitespace characters\\r\\n\\t\\t\\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\\r\\n\\t\\t\\tattrNames = value && value.match( rnothtmlwhite );\\r\\n\\r\\n\\t\\tif ( attrNames && elem.nodeType === 1 ) {\\r\\n\\t\\t\\twhile ( ( name = attrNames[ i++ ] ) ) {\\r\\n\\t\\t\\t\\telem.removeAttribute( name );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Hooks for boolean attributes\\r\\nboolHook = {\\r\\n\\tset: function( elem, value, name ) {\\r\\n\\t\\tif ( value === false ) {\\r\\n\\r\\n\\t\\t\\t// Remove boolean attributes when set to false\\r\\n\\t\\t\\tjQuery.removeAttr( elem, name );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\telem.setAttribute( name, name );\\r\\n\\t\\t}\\r\\n\\t\\treturn name;\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.each( jQuery.expr.match.bool.source.match( /\\\\w+/g ), function( i, name ) {\\r\\n\\tvar getter = attrHandle[ name ] || jQuery.find.attr;\\r\\n\\r\\n\\tattrHandle[ name ] = function( elem, name, isXML ) {\\r\\n\\t\\tvar ret, handle,\\r\\n\\t\\t\\tlowercaseName = name.toLowerCase();\\r\\n\\r\\n\\t\\tif ( !isXML ) {\\r\\n\\r\\n\\t\\t\\t// Avoid an infinite loop by temporarily removing this function from the getter\\r\\n\\t\\t\\thandle = attrHandle[ lowercaseName ];\\r\\n\\t\\t\\tattrHandle[ lowercaseName ] = ret;\\r\\n\\t\\t\\tret = getter( elem, name, isXML ) != null ?\\r\\n\\t\\t\\t\\tlowercaseName :\\r\\n\\t\\t\\t\\tnull;\\r\\n\\t\\t\\tattrHandle[ lowercaseName ] = handle;\\r\\n\\t\\t}\\r\\n\\t\\treturn ret;\\r\\n\\t};\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\\r\\n\\trclickable = /^(?:a|area)$/i;\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tprop: function( name, value ) {\\r\\n\\t\\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\\r\\n\\t},\\r\\n\\r\\n\\tremoveProp: function( name ) {\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tdelete this[ jQuery.propFix[ name ] || name ];\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.extend( {\\r\\n\\tprop: function( elem, name, value ) {\\r\\n\\t\\tvar ret, hooks,\\r\\n\\t\\t\\tnType = elem.nodeType;\\r\\n\\r\\n\\t\\t// Don't get/set properties on text, comment and attribute nodes\\r\\n\\t\\tif ( nType === 3 || nType === 8 || nType === 2 ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\\r\\n\\r\\n\\t\\t\\t// Fix name and attach hooks\\r\\n\\t\\t\\tname = jQuery.propFix[ name ] || name;\\r\\n\\t\\t\\thooks = jQuery.propHooks[ name ];\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( value !== undefined ) {\\r\\n\\t\\t\\tif ( hooks && \\\"set\\\" in hooks &&\\r\\n\\t\\t\\t\\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\\r\\n\\t\\t\\t\\treturn ret;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn ( elem[ name ] = value );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( hooks && \\\"get\\\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\\r\\n\\t\\t\\treturn ret;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn elem[ name ];\\r\\n\\t},\\r\\n\\r\\n\\tpropHooks: {\\r\\n\\t\\ttabIndex: {\\r\\n\\t\\t\\tget: function( elem ) {\\r\\n\\r\\n\\t\\t\\t\\t// Support: IE <=9 - 11 only\\r\\n\\t\\t\\t\\t// elem.tabIndex doesn't always return the\\r\\n\\t\\t\\t\\t// correct value when it hasn't been explicitly set\\r\\n\\t\\t\\t\\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\\r\\n\\t\\t\\t\\t// Use proper attribute retrieval(#12072)\\r\\n\\t\\t\\t\\tvar tabindex = jQuery.find.attr( elem, \\\"tabindex\\\" );\\r\\n\\r\\n\\t\\t\\t\\tif ( tabindex ) {\\r\\n\\t\\t\\t\\t\\treturn parseInt( tabindex, 10 );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tif (\\r\\n\\t\\t\\t\\t\\trfocusable.test( elem.nodeName ) ||\\r\\n\\t\\t\\t\\t\\trclickable.test( elem.nodeName ) &&\\r\\n\\t\\t\\t\\t\\telem.href\\r\\n\\t\\t\\t\\t) {\\r\\n\\t\\t\\t\\t\\treturn 0;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn -1;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\tpropFix: {\\r\\n\\t\\t\\\"for\\\": \\\"htmlFor\\\",\\r\\n\\t\\t\\\"class\\\": \\\"className\\\"\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Support: IE <=11 only\\r\\n// Accessing the selectedIndex property\\r\\n// forces the browser to respect setting selected\\r\\n// on the option\\r\\n// The getter ensures a default option is selected\\r\\n// when in an optgroup\\r\\n// eslint rule \\\"no-unused-expressions\\\" is disabled for this code\\r\\n// since it considers such accessions noop\\r\\nif ( !support.optSelected ) {\\r\\n\\tjQuery.propHooks.selected = {\\r\\n\\t\\tget: function( elem ) {\\r\\n\\r\\n\\t\\t\\t/* eslint no-unused-expressions: \\\"off\\\" */\\r\\n\\r\\n\\t\\t\\tvar parent = elem.parentNode;\\r\\n\\t\\t\\tif ( parent && parent.parentNode ) {\\r\\n\\t\\t\\t\\tparent.parentNode.selectedIndex;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn null;\\r\\n\\t\\t},\\r\\n\\t\\tset: function( elem ) {\\r\\n\\r\\n\\t\\t\\t/* eslint no-unused-expressions: \\\"off\\\" */\\r\\n\\r\\n\\t\\t\\tvar parent = elem.parentNode;\\r\\n\\t\\t\\tif ( parent ) {\\r\\n\\t\\t\\t\\tparent.selectedIndex;\\r\\n\\r\\n\\t\\t\\t\\tif ( parent.parentNode ) {\\r\\n\\t\\t\\t\\t\\tparent.parentNode.selectedIndex;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t};\\r\\n}\\r\\n\\r\\njQuery.each( [\\r\\n\\t\\\"tabIndex\\\",\\r\\n\\t\\\"readOnly\\\",\\r\\n\\t\\\"maxLength\\\",\\r\\n\\t\\\"cellSpacing\\\",\\r\\n\\t\\\"cellPadding\\\",\\r\\n\\t\\\"rowSpan\\\",\\r\\n\\t\\\"colSpan\\\",\\r\\n\\t\\\"useMap\\\",\\r\\n\\t\\\"frameBorder\\\",\\r\\n\\t\\\"contentEditable\\\"\\r\\n], function() {\\r\\n\\tjQuery.propFix[ this.toLowerCase() ] = this;\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\t// Strip and collapse whitespace according to HTML spec\\r\\n\\t// https://html.spec.whatwg.org/multipage/infrastructure.html#strip-and-collapse-whitespace\\r\\n\\tfunction stripAndCollapse( value ) {\\r\\n\\t\\tvar tokens = value.match( rnothtmlwhite ) || [];\\r\\n\\t\\treturn tokens.join( \\\" \\\" );\\r\\n\\t}\\r\\n\\r\\n\\r\\nfunction getClass( elem ) {\\r\\n\\treturn elem.getAttribute && elem.getAttribute( \\\"class\\\" ) || \\\"\\\";\\r\\n}\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\taddClass: function( value ) {\\r\\n\\t\\tvar classes, elem, cur, curValue, clazz, j, finalValue,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tif ( jQuery.isFunction( value ) ) {\\r\\n\\t\\t\\treturn this.each( function( j ) {\\r\\n\\t\\t\\t\\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( typeof value === \\\"string\\\" && value ) {\\r\\n\\t\\t\\tclasses = value.match( rnothtmlwhite ) || [];\\r\\n\\r\\n\\t\\t\\twhile ( ( elem = this[ i++ ] ) ) {\\r\\n\\t\\t\\t\\tcurValue = getClass( elem );\\r\\n\\t\\t\\t\\tcur = elem.nodeType === 1 && ( \\\" \\\" + stripAndCollapse( curValue ) + \\\" \\\" );\\r\\n\\r\\n\\t\\t\\t\\tif ( cur ) {\\r\\n\\t\\t\\t\\t\\tj = 0;\\r\\n\\t\\t\\t\\t\\twhile ( ( clazz = classes[ j++ ] ) ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( cur.indexOf( \\\" \\\" + clazz + \\\" \\\" ) < 0 ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcur += clazz + \\\" \\\";\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Only assign if different to avoid unneeded rendering.\\r\\n\\t\\t\\t\\t\\tfinalValue = stripAndCollapse( cur );\\r\\n\\t\\t\\t\\t\\tif ( curValue !== finalValue ) {\\r\\n\\t\\t\\t\\t\\t\\telem.setAttribute( \\\"class\\\", finalValue );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this;\\r\\n\\t},\\r\\n\\r\\n\\tremoveClass: function( value ) {\\r\\n\\t\\tvar classes, elem, cur, curValue, clazz, j, finalValue,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tif ( jQuery.isFunction( value ) ) {\\r\\n\\t\\t\\treturn this.each( function( j ) {\\r\\n\\t\\t\\t\\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( !arguments.length ) {\\r\\n\\t\\t\\treturn this.attr( \\\"class\\\", \\\"\\\" );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( typeof value === \\\"string\\\" && value ) {\\r\\n\\t\\t\\tclasses = value.match( rnothtmlwhite ) || [];\\r\\n\\r\\n\\t\\t\\twhile ( ( elem = this[ i++ ] ) ) {\\r\\n\\t\\t\\t\\tcurValue = getClass( elem );\\r\\n\\r\\n\\t\\t\\t\\t// This expression is here for better compressibility (see addClass)\\r\\n\\t\\t\\t\\tcur = elem.nodeType === 1 && ( \\\" \\\" + stripAndCollapse( curValue ) + \\\" \\\" );\\r\\n\\r\\n\\t\\t\\t\\tif ( cur ) {\\r\\n\\t\\t\\t\\t\\tj = 0;\\r\\n\\t\\t\\t\\t\\twhile ( ( clazz = classes[ j++ ] ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Remove *all* instances\\r\\n\\t\\t\\t\\t\\t\\twhile ( cur.indexOf( \\\" \\\" + clazz + \\\" \\\" ) > -1 ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcur = cur.replace( \\\" \\\" + clazz + \\\" \\\", \\\" \\\" );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Only assign if different to avoid unneeded rendering.\\r\\n\\t\\t\\t\\t\\tfinalValue = stripAndCollapse( cur );\\r\\n\\t\\t\\t\\t\\tif ( curValue !== finalValue ) {\\r\\n\\t\\t\\t\\t\\t\\telem.setAttribute( \\\"class\\\", finalValue );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this;\\r\\n\\t},\\r\\n\\r\\n\\ttoggleClass: function( value, stateVal ) {\\r\\n\\t\\tvar type = typeof value;\\r\\n\\r\\n\\t\\tif ( typeof stateVal === \\\"boolean\\\" && type === \\\"string\\\" ) {\\r\\n\\t\\t\\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( jQuery.isFunction( value ) ) {\\r\\n\\t\\t\\treturn this.each( function( i ) {\\r\\n\\t\\t\\t\\tjQuery( this ).toggleClass(\\r\\n\\t\\t\\t\\t\\tvalue.call( this, i, getClass( this ), stateVal ),\\r\\n\\t\\t\\t\\t\\tstateVal\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tvar className, i, self, classNames;\\r\\n\\r\\n\\t\\t\\tif ( type === \\\"string\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t// Toggle individual class names\\r\\n\\t\\t\\t\\ti = 0;\\r\\n\\t\\t\\t\\tself = jQuery( this );\\r\\n\\t\\t\\t\\tclassNames = value.match( rnothtmlwhite ) || [];\\r\\n\\r\\n\\t\\t\\t\\twhile ( ( className = classNames[ i++ ] ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Check each className given, space separated list\\r\\n\\t\\t\\t\\t\\tif ( self.hasClass( className ) ) {\\r\\n\\t\\t\\t\\t\\t\\tself.removeClass( className );\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\tself.addClass( className );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Toggle whole class name\\r\\n\\t\\t\\t} else if ( value === undefined || type === \\\"boolean\\\" ) {\\r\\n\\t\\t\\t\\tclassName = getClass( this );\\r\\n\\t\\t\\t\\tif ( className ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Store className if set\\r\\n\\t\\t\\t\\t\\tdataPriv.set( this, \\\"__className__\\\", className );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// If the element has a class name or if we're passed `false`,\\r\\n\\t\\t\\t\\t// then remove the whole classname (if there was one, the above saved it).\\r\\n\\t\\t\\t\\t// Otherwise bring back whatever was previously saved (if anything),\\r\\n\\t\\t\\t\\t// falling back to the empty string if nothing was stored.\\r\\n\\t\\t\\t\\tif ( this.setAttribute ) {\\r\\n\\t\\t\\t\\t\\tthis.setAttribute( \\\"class\\\",\\r\\n\\t\\t\\t\\t\\t\\tclassName || value === false ?\\r\\n\\t\\t\\t\\t\\t\\t\\\"\\\" :\\r\\n\\t\\t\\t\\t\\t\\tdataPriv.get( this, \\\"__className__\\\" ) || \\\"\\\"\\r\\n\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\thasClass: function( selector ) {\\r\\n\\t\\tvar className, elem,\\r\\n\\t\\t\\ti = 0;\\r\\n\\r\\n\\t\\tclassName = \\\" \\\" + selector + \\\" \\\";\\r\\n\\t\\twhile ( ( elem = this[ i++ ] ) ) {\\r\\n\\t\\t\\tif ( elem.nodeType === 1 &&\\r\\n\\t\\t\\t\\t( \\\" \\\" + stripAndCollapse( getClass( elem ) ) + \\\" \\\" ).indexOf( className ) > -1 ) {\\r\\n\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar rreturn = /\\\\r/g;\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tval: function( value ) {\\r\\n\\t\\tvar hooks, ret, isFunction,\\r\\n\\t\\t\\telem = this[ 0 ];\\r\\n\\r\\n\\t\\tif ( !arguments.length ) {\\r\\n\\t\\t\\tif ( elem ) {\\r\\n\\t\\t\\t\\thooks = jQuery.valHooks[ elem.type ] ||\\r\\n\\t\\t\\t\\t\\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\\r\\n\\r\\n\\t\\t\\t\\tif ( hooks &&\\r\\n\\t\\t\\t\\t\\t\\\"get\\\" in hooks &&\\r\\n\\t\\t\\t\\t\\t( ret = hooks.get( elem, \\\"value\\\" ) ) !== undefined\\r\\n\\t\\t\\t\\t) {\\r\\n\\t\\t\\t\\t\\treturn ret;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tret = elem.value;\\r\\n\\r\\n\\t\\t\\t\\t// Handle most common string cases\\r\\n\\t\\t\\t\\tif ( typeof ret === \\\"string\\\" ) {\\r\\n\\t\\t\\t\\t\\treturn ret.replace( rreturn, \\\"\\\" );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Handle cases where value is null/undef or number\\r\\n\\t\\t\\t\\treturn ret == null ? \\\"\\\" : ret;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tisFunction = jQuery.isFunction( value );\\r\\n\\r\\n\\t\\treturn this.each( function( i ) {\\r\\n\\t\\t\\tvar val;\\r\\n\\r\\n\\t\\t\\tif ( this.nodeType !== 1 ) {\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( isFunction ) {\\r\\n\\t\\t\\t\\tval = value.call( this, i, jQuery( this ).val() );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tval = value;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Treat null/undefined as \\\"\\\"; convert numbers to string\\r\\n\\t\\t\\tif ( val == null ) {\\r\\n\\t\\t\\t\\tval = \\\"\\\";\\r\\n\\r\\n\\t\\t\\t} else if ( typeof val === \\\"number\\\" ) {\\r\\n\\t\\t\\t\\tval += \\\"\\\";\\r\\n\\r\\n\\t\\t\\t} else if ( jQuery.isArray( val ) ) {\\r\\n\\t\\t\\t\\tval = jQuery.map( val, function( value ) {\\r\\n\\t\\t\\t\\t\\treturn value == null ? \\\"\\\" : value + \\\"\\\";\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\\r\\n\\r\\n\\t\\t\\t// If set returns undefined, fall back to normal setting\\r\\n\\t\\t\\tif ( !hooks || !( \\\"set\\\" in hooks ) || hooks.set( this, val, \\\"value\\\" ) === undefined ) {\\r\\n\\t\\t\\t\\tthis.value = val;\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.extend( {\\r\\n\\tvalHooks: {\\r\\n\\t\\toption: {\\r\\n\\t\\t\\tget: function( elem ) {\\r\\n\\r\\n\\t\\t\\t\\tvar val = jQuery.find.attr( elem, \\\"value\\\" );\\r\\n\\t\\t\\t\\treturn val != null ?\\r\\n\\t\\t\\t\\t\\tval :\\r\\n\\r\\n\\t\\t\\t\\t\\t// Support: IE <=10 - 11 only\\r\\n\\t\\t\\t\\t\\t// option.text throws exceptions (#14686, #14858)\\r\\n\\t\\t\\t\\t\\t// Strip and collapse whitespace\\r\\n\\t\\t\\t\\t\\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\\r\\n\\t\\t\\t\\t\\tstripAndCollapse( jQuery.text( elem ) );\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\tselect: {\\r\\n\\t\\t\\tget: function( elem ) {\\r\\n\\t\\t\\t\\tvar value, option, i,\\r\\n\\t\\t\\t\\t\\toptions = elem.options,\\r\\n\\t\\t\\t\\t\\tindex = elem.selectedIndex,\\r\\n\\t\\t\\t\\t\\tone = elem.type === \\\"select-one\\\",\\r\\n\\t\\t\\t\\t\\tvalues = one ? null : [],\\r\\n\\t\\t\\t\\t\\tmax = one ? index + 1 : options.length;\\r\\n\\r\\n\\t\\t\\t\\tif ( index < 0 ) {\\r\\n\\t\\t\\t\\t\\ti = max;\\r\\n\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\ti = one ? index : 0;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Loop through all the selected options\\r\\n\\t\\t\\t\\tfor ( ; i < max; i++ ) {\\r\\n\\t\\t\\t\\t\\toption = options[ i ];\\r\\n\\r\\n\\t\\t\\t\\t\\t// Support: IE <=9 only\\r\\n\\t\\t\\t\\t\\t// IE8-9 doesn't update selected after form reset (#2551)\\r\\n\\t\\t\\t\\t\\tif ( ( option.selected || i === index ) &&\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Don't return options that are disabled or in a disabled optgroup\\r\\n\\t\\t\\t\\t\\t\\t\\t!option.disabled &&\\r\\n\\t\\t\\t\\t\\t\\t\\t( !option.parentNode.disabled ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t!jQuery.nodeName( option.parentNode, \\\"optgroup\\\" ) ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Get the specific value for the option\\r\\n\\t\\t\\t\\t\\t\\tvalue = jQuery( option ).val();\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// We don't need an array for one selects\\r\\n\\t\\t\\t\\t\\t\\tif ( one ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn value;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Multi-Selects return an array\\r\\n\\t\\t\\t\\t\\t\\tvalues.push( value );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn values;\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\tset: function( elem, value ) {\\r\\n\\t\\t\\t\\tvar optionSet, option,\\r\\n\\t\\t\\t\\t\\toptions = elem.options,\\r\\n\\t\\t\\t\\t\\tvalues = jQuery.makeArray( value ),\\r\\n\\t\\t\\t\\t\\ti = options.length;\\r\\n\\r\\n\\t\\t\\t\\twhile ( i-- ) {\\r\\n\\t\\t\\t\\t\\toption = options[ i ];\\r\\n\\r\\n\\t\\t\\t\\t\\t/* eslint-disable no-cond-assign */\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( option.selected =\\r\\n\\t\\t\\t\\t\\t\\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\\r\\n\\t\\t\\t\\t\\t) {\\r\\n\\t\\t\\t\\t\\t\\toptionSet = true;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t/* eslint-enable no-cond-assign */\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Force browsers to behave consistently when non-matching value is set\\r\\n\\t\\t\\t\\tif ( !optionSet ) {\\r\\n\\t\\t\\t\\t\\telem.selectedIndex = -1;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\treturn values;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Radios and checkboxes getter/setter\\r\\njQuery.each( [ \\\"radio\\\", \\\"checkbox\\\" ], function() {\\r\\n\\tjQuery.valHooks[ this ] = {\\r\\n\\t\\tset: function( elem, value ) {\\r\\n\\t\\t\\tif ( jQuery.isArray( value ) ) {\\r\\n\\t\\t\\t\\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t};\\r\\n\\tif ( !support.checkOn ) {\\r\\n\\t\\tjQuery.valHooks[ this ].get = function( elem ) {\\r\\n\\t\\t\\treturn elem.getAttribute( \\\"value\\\" ) === null ? \\\"on\\\" : elem.value;\\r\\n\\t\\t};\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Return jQuery for attributes-only inclusion\\r\\n\\r\\n\\r\\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/;\\r\\n\\r\\njQuery.extend( jQuery.event, {\\r\\n\\r\\n\\ttrigger: function( event, data, elem, onlyHandlers ) {\\r\\n\\r\\n\\t\\tvar i, cur, tmp, bubbleType, ontype, handle, special,\\r\\n\\t\\t\\teventPath = [ elem || document ],\\r\\n\\t\\t\\ttype = hasOwn.call( event, \\\"type\\\" ) ? event.type : event,\\r\\n\\t\\t\\tnamespaces = hasOwn.call( event, \\\"namespace\\\" ) ? event.namespace.split( \\\".\\\" ) : [];\\r\\n\\r\\n\\t\\tcur = tmp = elem = elem || document;\\r\\n\\r\\n\\t\\t// Don't do events on text and comment nodes\\r\\n\\t\\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\\r\\n\\t\\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( type.indexOf( \\\".\\\" ) > -1 ) {\\r\\n\\r\\n\\t\\t\\t// Namespaced trigger; create a regexp to match event type in handle()\\r\\n\\t\\t\\tnamespaces = type.split( \\\".\\\" );\\r\\n\\t\\t\\ttype = namespaces.shift();\\r\\n\\t\\t\\tnamespaces.sort();\\r\\n\\t\\t}\\r\\n\\t\\tontype = type.indexOf( \\\":\\\" ) < 0 && \\\"on\\\" + type;\\r\\n\\r\\n\\t\\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\\r\\n\\t\\tevent = event[ jQuery.expando ] ?\\r\\n\\t\\t\\tevent :\\r\\n\\t\\t\\tnew jQuery.Event( type, typeof event === \\\"object\\\" && event );\\r\\n\\r\\n\\t\\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\\r\\n\\t\\tevent.isTrigger = onlyHandlers ? 2 : 3;\\r\\n\\t\\tevent.namespace = namespaces.join( \\\".\\\" );\\r\\n\\t\\tevent.rnamespace = event.namespace ?\\r\\n\\t\\t\\tnew RegExp( \\\"(^|\\\\\\\\.)\\\" + namespaces.join( \\\"\\\\\\\\.(?:.*\\\\\\\\.|)\\\" ) + \\\"(\\\\\\\\.|$)\\\" ) :\\r\\n\\t\\t\\tnull;\\r\\n\\r\\n\\t\\t// Clean up the event in case it is being reused\\r\\n\\t\\tevent.result = undefined;\\r\\n\\t\\tif ( !event.target ) {\\r\\n\\t\\t\\tevent.target = elem;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Clone any incoming data and prepend the event, creating the handler arg list\\r\\n\\t\\tdata = data == null ?\\r\\n\\t\\t\\t[ event ] :\\r\\n\\t\\t\\tjQuery.makeArray( data, [ event ] );\\r\\n\\r\\n\\t\\t// Allow special events to draw outside the lines\\r\\n\\t\\tspecial = jQuery.event.special[ type ] || {};\\r\\n\\t\\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Determine event propagation path in advance, per W3C events spec (#9951)\\r\\n\\t\\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\\r\\n\\t\\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\\r\\n\\r\\n\\t\\t\\tbubbleType = special.delegateType || type;\\r\\n\\t\\t\\tif ( !rfocusMorph.test( bubbleType + type ) ) {\\r\\n\\t\\t\\t\\tcur = cur.parentNode;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tfor ( ; cur; cur = cur.parentNode ) {\\r\\n\\t\\t\\t\\teventPath.push( cur );\\r\\n\\t\\t\\t\\ttmp = cur;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\\r\\n\\t\\t\\tif ( tmp === ( elem.ownerDocument || document ) ) {\\r\\n\\t\\t\\t\\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Fire handlers on the event path\\r\\n\\t\\ti = 0;\\r\\n\\t\\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\\r\\n\\r\\n\\t\\t\\tevent.type = i > 1 ?\\r\\n\\t\\t\\t\\tbubbleType :\\r\\n\\t\\t\\t\\tspecial.bindType || type;\\r\\n\\r\\n\\t\\t\\t// jQuery handler\\r\\n\\t\\t\\thandle = ( dataPriv.get( cur, \\\"events\\\" ) || {} )[ event.type ] &&\\r\\n\\t\\t\\t\\tdataPriv.get( cur, \\\"handle\\\" );\\r\\n\\t\\t\\tif ( handle ) {\\r\\n\\t\\t\\t\\thandle.apply( cur, data );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Native handler\\r\\n\\t\\t\\thandle = ontype && cur[ ontype ];\\r\\n\\t\\t\\tif ( handle && handle.apply && acceptData( cur ) ) {\\r\\n\\t\\t\\t\\tevent.result = handle.apply( cur, data );\\r\\n\\t\\t\\t\\tif ( event.result === false ) {\\r\\n\\t\\t\\t\\t\\tevent.preventDefault();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t\\tevent.type = type;\\r\\n\\r\\n\\t\\t// If nobody prevented the default action, do it now\\r\\n\\t\\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\\r\\n\\r\\n\\t\\t\\tif ( ( !special._default ||\\r\\n\\t\\t\\t\\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\\r\\n\\t\\t\\t\\tacceptData( elem ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// Call a native DOM method on the target with the same name as the event.\\r\\n\\t\\t\\t\\t// Don't do default actions on window, that's where global variables be (#6170)\\r\\n\\t\\t\\t\\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Don't re-trigger an onFOO event when we call its FOO() method\\r\\n\\t\\t\\t\\t\\ttmp = elem[ ontype ];\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( tmp ) {\\r\\n\\t\\t\\t\\t\\t\\telem[ ontype ] = null;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t// Prevent re-triggering of the same event, since we already bubbled it above\\r\\n\\t\\t\\t\\t\\tjQuery.event.triggered = type;\\r\\n\\t\\t\\t\\t\\telem[ type ]();\\r\\n\\t\\t\\t\\t\\tjQuery.event.triggered = undefined;\\r\\n\\r\\n\\t\\t\\t\\t\\tif ( tmp ) {\\r\\n\\t\\t\\t\\t\\t\\telem[ ontype ] = tmp;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn event.result;\\r\\n\\t},\\r\\n\\r\\n\\t// Piggyback on a donor event to simulate a different one\\r\\n\\t// Used only for `focus(in | out)` events\\r\\n\\tsimulate: function( type, elem, event ) {\\r\\n\\t\\tvar e = jQuery.extend(\\r\\n\\t\\t\\tnew jQuery.Event(),\\r\\n\\t\\t\\tevent,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\ttype: type,\\r\\n\\t\\t\\t\\tisSimulated: true\\r\\n\\t\\t\\t}\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\tjQuery.event.trigger( e, null, elem );\\r\\n\\t}\\r\\n\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\r\\n\\ttrigger: function( type, data ) {\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tjQuery.event.trigger( type, data, this );\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\ttriggerHandler: function( type, data ) {\\r\\n\\t\\tvar elem = this[ 0 ];\\r\\n\\t\\tif ( elem ) {\\r\\n\\t\\t\\treturn jQuery.event.trigger( type, data, elem, true );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\njQuery.each( ( \\\"blur focus focusin focusout resize scroll click dblclick \\\" +\\r\\n\\t\\\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \\\" +\\r\\n\\t\\\"change select submit keydown keypress keyup contextmenu\\\" ).split( \\\" \\\" ),\\r\\n\\tfunction( i, name ) {\\r\\n\\r\\n\\t// Handle event binding\\r\\n\\tjQuery.fn[ name ] = function( data, fn ) {\\r\\n\\t\\treturn arguments.length > 0 ?\\r\\n\\t\\t\\tthis.on( name, null, data, fn ) :\\r\\n\\t\\t\\tthis.trigger( name );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\thover: function( fnOver, fnOut ) {\\r\\n\\t\\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nsupport.focusin = \\\"onfocusin\\\" in window;\\r\\n\\r\\n\\r\\n// Support: Firefox <=44\\r\\n// Firefox doesn't have focus(in | out) events\\r\\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\\r\\n//\\r\\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\\r\\n// focus(in | out) events fire after focus & blur events,\\r\\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\\r\\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\\r\\nif ( !support.focusin ) {\\r\\n\\tjQuery.each( { focus: \\\"focusin\\\", blur: \\\"focusout\\\" }, function( orig, fix ) {\\r\\n\\r\\n\\t\\t// Attach a single capturing handler on the document while someone wants focusin/focusout\\r\\n\\t\\tvar handler = function( event ) {\\r\\n\\t\\t\\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tjQuery.event.special[ fix ] = {\\r\\n\\t\\t\\tsetup: function() {\\r\\n\\t\\t\\t\\tvar doc = this.ownerDocument || this,\\r\\n\\t\\t\\t\\t\\tattaches = dataPriv.access( doc, fix );\\r\\n\\r\\n\\t\\t\\t\\tif ( !attaches ) {\\r\\n\\t\\t\\t\\t\\tdoc.addEventListener( orig, handler, true );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tteardown: function() {\\r\\n\\t\\t\\t\\tvar doc = this.ownerDocument || this,\\r\\n\\t\\t\\t\\t\\tattaches = dataPriv.access( doc, fix ) - 1;\\r\\n\\r\\n\\t\\t\\t\\tif ( !attaches ) {\\r\\n\\t\\t\\t\\t\\tdoc.removeEventListener( orig, handler, true );\\r\\n\\t\\t\\t\\t\\tdataPriv.remove( doc, fix );\\r\\n\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tdataPriv.access( doc, fix, attaches );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t} );\\r\\n}\\r\\nvar location = window.location;\\r\\n\\r\\nvar nonce = jQuery.now();\\r\\n\\r\\nvar rquery = ( /\\\\?/ );\\r\\n\\r\\n\\r\\n\\r\\n// Cross-browser xml parsing\\r\\njQuery.parseXML = function( data ) {\\r\\n\\tvar xml;\\r\\n\\tif ( !data || typeof data !== \\\"string\\\" ) {\\r\\n\\t\\treturn null;\\r\\n\\t}\\r\\n\\r\\n\\t// Support: IE 9 - 11 only\\r\\n\\t// IE throws on parseFromString with invalid input.\\r\\n\\ttry {\\r\\n\\t\\txml = ( new window.DOMParser() ).parseFromString( data, \\\"text/xml\\\" );\\r\\n\\t} catch ( e ) {\\r\\n\\t\\txml = undefined;\\r\\n\\t}\\r\\n\\r\\n\\tif ( !xml || xml.getElementsByTagName( \\\"parsererror\\\" ).length ) {\\r\\n\\t\\tjQuery.error( \\\"Invalid XML: \\\" + data );\\r\\n\\t}\\r\\n\\treturn xml;\\r\\n};\\r\\n\\r\\n\\r\\nvar\\r\\n\\trbracket = /\\\\[\\\\]$/,\\r\\n\\trCRLF = /\\\\r?\\\\n/g,\\r\\n\\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\\r\\n\\trsubmittable = /^(?:input|select|textarea|keygen)/i;\\r\\n\\r\\nfunction buildParams( prefix, obj, traditional, add ) {\\r\\n\\tvar name;\\r\\n\\r\\n\\tif ( jQuery.isArray( obj ) ) {\\r\\n\\r\\n\\t\\t// Serialize array item.\\r\\n\\t\\tjQuery.each( obj, function( i, v ) {\\r\\n\\t\\t\\tif ( traditional || rbracket.test( prefix ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// Treat each array item as a scalar.\\r\\n\\t\\t\\t\\tadd( prefix, v );\\r\\n\\r\\n\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t// Item is non-scalar (array or object), encode its numeric index.\\r\\n\\t\\t\\t\\tbuildParams(\\r\\n\\t\\t\\t\\t\\tprefix + \\\"[\\\" + ( typeof v === \\\"object\\\" && v != null ? i : \\\"\\\" ) + \\\"]\\\",\\r\\n\\t\\t\\t\\t\\tv,\\r\\n\\t\\t\\t\\t\\ttraditional,\\r\\n\\t\\t\\t\\t\\tadd\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\r\\n\\t} else if ( !traditional && jQuery.type( obj ) === \\\"object\\\" ) {\\r\\n\\r\\n\\t\\t// Serialize object item.\\r\\n\\t\\tfor ( name in obj ) {\\r\\n\\t\\t\\tbuildParams( prefix + \\\"[\\\" + name + \\\"]\\\", obj[ name ], traditional, add );\\r\\n\\t\\t}\\r\\n\\r\\n\\t} else {\\r\\n\\r\\n\\t\\t// Serialize scalar item.\\r\\n\\t\\tadd( prefix, obj );\\r\\n\\t}\\r\\n}\\r\\n\\r\\n// Serialize an array of form elements or a set of\\r\\n// key/values into a query string\\r\\njQuery.param = function( a, traditional ) {\\r\\n\\tvar prefix,\\r\\n\\t\\ts = [],\\r\\n\\t\\tadd = function( key, valueOrFunction ) {\\r\\n\\r\\n\\t\\t\\t// If value is a function, invoke it and use its return value\\r\\n\\t\\t\\tvar value = jQuery.isFunction( valueOrFunction ) ?\\r\\n\\t\\t\\t\\tvalueOrFunction() :\\r\\n\\t\\t\\t\\tvalueOrFunction;\\r\\n\\r\\n\\t\\t\\ts[ s.length ] = encodeURIComponent( key ) + \\\"=\\\" +\\r\\n\\t\\t\\t\\tencodeURIComponent( value == null ? \\\"\\\" : value );\\r\\n\\t\\t};\\r\\n\\r\\n\\t// If an array was passed in, assume that it is an array of form elements.\\r\\n\\tif ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\\r\\n\\r\\n\\t\\t// Serialize the form elements\\r\\n\\t\\tjQuery.each( a, function() {\\r\\n\\t\\t\\tadd( this.name, this.value );\\r\\n\\t\\t} );\\r\\n\\r\\n\\t} else {\\r\\n\\r\\n\\t\\t// If traditional, encode the \\\"old\\\" way (the way 1.3.2 or older\\r\\n\\t\\t// did it), otherwise encode params recursively.\\r\\n\\t\\tfor ( prefix in a ) {\\r\\n\\t\\t\\tbuildParams( prefix, a[ prefix ], traditional, add );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Return the resulting serialization\\r\\n\\treturn s.join( \\\"&\\\" );\\r\\n};\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\tserialize: function() {\\r\\n\\t\\treturn jQuery.param( this.serializeArray() );\\r\\n\\t},\\r\\n\\tserializeArray: function() {\\r\\n\\t\\treturn this.map( function() {\\r\\n\\r\\n\\t\\t\\t// Can add propHook for \\\"elements\\\" to filter or add form elements\\r\\n\\t\\t\\tvar elements = jQuery.prop( this, \\\"elements\\\" );\\r\\n\\t\\t\\treturn elements ? jQuery.makeArray( elements ) : this;\\r\\n\\t\\t} )\\r\\n\\t\\t.filter( function() {\\r\\n\\t\\t\\tvar type = this.type;\\r\\n\\r\\n\\t\\t\\t// Use .is( \\\":disabled\\\" ) so that fieldset[disabled] works\\r\\n\\t\\t\\treturn this.name && !jQuery( this ).is( \\\":disabled\\\" ) &&\\r\\n\\t\\t\\t\\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\\r\\n\\t\\t\\t\\t( this.checked || !rcheckableType.test( type ) );\\r\\n\\t\\t} )\\r\\n\\t\\t.map( function( i, elem ) {\\r\\n\\t\\t\\tvar val = jQuery( this ).val();\\r\\n\\r\\n\\t\\t\\tif ( val == null ) {\\r\\n\\t\\t\\t\\treturn null;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( jQuery.isArray( val ) ) {\\r\\n\\t\\t\\t\\treturn jQuery.map( val, function( val ) {\\r\\n\\t\\t\\t\\t\\treturn { name: elem.name, value: val.replace( rCRLF, \\\"\\\\r\\\\n\\\" ) };\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn { name: elem.name, value: val.replace( rCRLF, \\\"\\\\r\\\\n\\\" ) };\\r\\n\\t\\t} ).get();\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\nvar\\r\\n\\tr20 = /%20/g,\\r\\n\\trhash = /#.*$/,\\r\\n\\trantiCache = /([?&])_=[^&]*/,\\r\\n\\trheaders = /^(.*?):[ \\\\t]*([^\\\\r\\\\n]*)$/mg,\\r\\n\\r\\n\\t// #7653, #8125, #8152: local protocol detection\\r\\n\\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\\r\\n\\trnoContent = /^(?:GET|HEAD)$/,\\r\\n\\trprotocol = /^\\\\/\\\\//,\\r\\n\\r\\n\\t/* Prefilters\\r\\n\\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\\r\\n\\t * 2) These are called:\\r\\n\\t * - BEFORE asking for a transport\\r\\n\\t * - AFTER param serialization (s.data is a string if s.processData is true)\\r\\n\\t * 3) key is the dataType\\r\\n\\t * 4) the catchall symbol \\\"*\\\" can be used\\r\\n\\t * 5) execution will start with transport dataType and THEN continue down to \\\"*\\\" if needed\\r\\n\\t */\\r\\n\\tprefilters = {},\\r\\n\\r\\n\\t/* Transports bindings\\r\\n\\t * 1) key is the dataType\\r\\n\\t * 2) the catchall symbol \\\"*\\\" can be used\\r\\n\\t * 3) selection will start with transport dataType and THEN go to \\\"*\\\" if needed\\r\\n\\t */\\r\\n\\ttransports = {},\\r\\n\\r\\n\\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\\r\\n\\tallTypes = \\\"*/\\\".concat( \\\"*\\\" ),\\r\\n\\r\\n\\t// Anchor tag for parsing the document origin\\r\\n\\toriginAnchor = document.createElement( \\\"a\\\" );\\r\\n\\toriginAnchor.href = location.href;\\r\\n\\r\\n// Base \\\"constructor\\\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\\r\\nfunction addToPrefiltersOrTransports( structure ) {\\r\\n\\r\\n\\t// dataTypeExpression is optional and defaults to \\\"*\\\"\\r\\n\\treturn function( dataTypeExpression, func ) {\\r\\n\\r\\n\\t\\tif ( typeof dataTypeExpression !== \\\"string\\\" ) {\\r\\n\\t\\t\\tfunc = dataTypeExpression;\\r\\n\\t\\t\\tdataTypeExpression = \\\"*\\\";\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tvar dataType,\\r\\n\\t\\t\\ti = 0,\\r\\n\\t\\t\\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\\r\\n\\r\\n\\t\\tif ( jQuery.isFunction( func ) ) {\\r\\n\\r\\n\\t\\t\\t// For each dataType in the dataTypeExpression\\r\\n\\t\\t\\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\\r\\n\\r\\n\\t\\t\\t\\t// Prepend if requested\\r\\n\\t\\t\\t\\tif ( dataType[ 0 ] === \\\"+\\\" ) {\\r\\n\\t\\t\\t\\t\\tdataType = dataType.slice( 1 ) || \\\"*\\\";\\r\\n\\t\\t\\t\\t\\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\\r\\n\\r\\n\\t\\t\\t\\t// Otherwise append\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t};\\r\\n}\\r\\n\\r\\n// Base inspection function for prefilters and transports\\r\\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\\r\\n\\r\\n\\tvar inspected = {},\\r\\n\\t\\tseekingTransport = ( structure === transports );\\r\\n\\r\\n\\tfunction inspect( dataType ) {\\r\\n\\t\\tvar selected;\\r\\n\\t\\tinspected[ dataType ] = true;\\r\\n\\t\\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\\r\\n\\t\\t\\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\\r\\n\\t\\t\\tif ( typeof dataTypeOrTransport === \\\"string\\\" &&\\r\\n\\t\\t\\t\\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\\r\\n\\r\\n\\t\\t\\t\\toptions.dataTypes.unshift( dataTypeOrTransport );\\r\\n\\t\\t\\t\\tinspect( dataTypeOrTransport );\\r\\n\\t\\t\\t\\treturn false;\\r\\n\\t\\t\\t} else if ( seekingTransport ) {\\r\\n\\t\\t\\t\\treturn !( selected = dataTypeOrTransport );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t\\treturn selected;\\r\\n\\t}\\r\\n\\r\\n\\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \\\"*\\\" ] && inspect( \\\"*\\\" );\\r\\n}\\r\\n\\r\\n// A special extend for ajax options\\r\\n// that takes \\\"flat\\\" options (not to be deep extended)\\r\\n// Fixes #9887\\r\\nfunction ajaxExtend( target, src ) {\\r\\n\\tvar key, deep,\\r\\n\\t\\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\\r\\n\\r\\n\\tfor ( key in src ) {\\r\\n\\t\\tif ( src[ key ] !== undefined ) {\\r\\n\\t\\t\\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\tif ( deep ) {\\r\\n\\t\\tjQuery.extend( true, target, deep );\\r\\n\\t}\\r\\n\\r\\n\\treturn target;\\r\\n}\\r\\n\\r\\n/* Handles responses to an ajax request:\\r\\n * - finds the right dataType (mediates between content-type and expected dataType)\\r\\n * - returns the corresponding response\\r\\n */\\r\\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\\r\\n\\r\\n\\tvar ct, type, finalDataType, firstDataType,\\r\\n\\t\\tcontents = s.contents,\\r\\n\\t\\tdataTypes = s.dataTypes;\\r\\n\\r\\n\\t// Remove auto dataType and get content-type in the process\\r\\n\\twhile ( dataTypes[ 0 ] === \\\"*\\\" ) {\\r\\n\\t\\tdataTypes.shift();\\r\\n\\t\\tif ( ct === undefined ) {\\r\\n\\t\\t\\tct = s.mimeType || jqXHR.getResponseHeader( \\\"Content-Type\\\" );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Check if we're dealing with a known content-type\\r\\n\\tif ( ct ) {\\r\\n\\t\\tfor ( type in contents ) {\\r\\n\\t\\t\\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\\r\\n\\t\\t\\t\\tdataTypes.unshift( type );\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t// Check to see if we have a response for the expected dataType\\r\\n\\tif ( dataTypes[ 0 ] in responses ) {\\r\\n\\t\\tfinalDataType = dataTypes[ 0 ];\\r\\n\\t} else {\\r\\n\\r\\n\\t\\t// Try convertible dataTypes\\r\\n\\t\\tfor ( type in responses ) {\\r\\n\\t\\t\\tif ( !dataTypes[ 0 ] || s.converters[ type + \\\" \\\" + dataTypes[ 0 ] ] ) {\\r\\n\\t\\t\\t\\tfinalDataType = type;\\r\\n\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tif ( !firstDataType ) {\\r\\n\\t\\t\\t\\tfirstDataType = type;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Or just use first one\\r\\n\\t\\tfinalDataType = finalDataType || firstDataType;\\r\\n\\t}\\r\\n\\r\\n\\t// If we found a dataType\\r\\n\\t// We add the dataType to the list if needed\\r\\n\\t// and return the corresponding response\\r\\n\\tif ( finalDataType ) {\\r\\n\\t\\tif ( finalDataType !== dataTypes[ 0 ] ) {\\r\\n\\t\\t\\tdataTypes.unshift( finalDataType );\\r\\n\\t\\t}\\r\\n\\t\\treturn responses[ finalDataType ];\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/* Chain conversions given the request and the original response\\r\\n * Also sets the responseXXX fields on the jqXHR instance\\r\\n */\\r\\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\\r\\n\\tvar conv2, current, conv, tmp, prev,\\r\\n\\t\\tconverters = {},\\r\\n\\r\\n\\t\\t// Work with a copy of dataTypes in case we need to modify it for conversion\\r\\n\\t\\tdataTypes = s.dataTypes.slice();\\r\\n\\r\\n\\t// Create converters map with lowercased keys\\r\\n\\tif ( dataTypes[ 1 ] ) {\\r\\n\\t\\tfor ( conv in s.converters ) {\\r\\n\\t\\t\\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tcurrent = dataTypes.shift();\\r\\n\\r\\n\\t// Convert to each sequential dataType\\r\\n\\twhile ( current ) {\\r\\n\\r\\n\\t\\tif ( s.responseFields[ current ] ) {\\r\\n\\t\\t\\tjqXHR[ s.responseFields[ current ] ] = response;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Apply the dataFilter if provided\\r\\n\\t\\tif ( !prev && isSuccess && s.dataFilter ) {\\r\\n\\t\\t\\tresponse = s.dataFilter( response, s.dataType );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tprev = current;\\r\\n\\t\\tcurrent = dataTypes.shift();\\r\\n\\r\\n\\t\\tif ( current ) {\\r\\n\\r\\n\\t\\t\\t// There's only work to do if current dataType is non-auto\\r\\n\\t\\t\\tif ( current === \\\"*\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\tcurrent = prev;\\r\\n\\r\\n\\t\\t\\t// Convert response if prev dataType is non-auto and differs from current\\r\\n\\t\\t\\t} else if ( prev !== \\\"*\\\" && prev !== current ) {\\r\\n\\r\\n\\t\\t\\t\\t// Seek a direct converter\\r\\n\\t\\t\\t\\tconv = converters[ prev + \\\" \\\" + current ] || converters[ \\\"* \\\" + current ];\\r\\n\\r\\n\\t\\t\\t\\t// If none found, seek a pair\\r\\n\\t\\t\\t\\tif ( !conv ) {\\r\\n\\t\\t\\t\\t\\tfor ( conv2 in converters ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// If conv2 outputs current\\r\\n\\t\\t\\t\\t\\t\\ttmp = conv2.split( \\\" \\\" );\\r\\n\\t\\t\\t\\t\\t\\tif ( tmp[ 1 ] === current ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// If prev can be converted to accepted input\\r\\n\\t\\t\\t\\t\\t\\t\\tconv = converters[ prev + \\\" \\\" + tmp[ 0 ] ] ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tconverters[ \\\"* \\\" + tmp[ 0 ] ];\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( conv ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Condense equivalence converters\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( conv === true ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tconv = converters[ conv2 ];\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Otherwise, insert the intermediate dataType\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t} else if ( converters[ conv2 ] !== true ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tcurrent = tmp[ 0 ];\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tdataTypes.unshift( tmp[ 1 ] );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Apply converter (if not an equivalence)\\r\\n\\t\\t\\t\\tif ( conv !== true ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Unless errors are allowed to bubble, catch and return them\\r\\n\\t\\t\\t\\t\\tif ( conv && s.throws ) {\\r\\n\\t\\t\\t\\t\\t\\tresponse = conv( response );\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\ttry {\\r\\n\\t\\t\\t\\t\\t\\t\\tresponse = conv( response );\\r\\n\\t\\t\\t\\t\\t\\t} catch ( e ) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tstate: \\\"parsererror\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\terror: conv ? e : \\\"No conversion from \\\" + prev + \\\" to \\\" + current\\r\\n\\t\\t\\t\\t\\t\\t\\t};\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn { state: \\\"success\\\", data: response };\\r\\n}\\r\\n\\r\\njQuery.extend( {\\r\\n\\r\\n\\t// Counter for holding the number of active queries\\r\\n\\tactive: 0,\\r\\n\\r\\n\\t// Last-Modified header cache for next request\\r\\n\\tlastModified: {},\\r\\n\\tetag: {},\\r\\n\\r\\n\\tajaxSettings: {\\r\\n\\t\\turl: location.href,\\r\\n\\t\\ttype: \\\"GET\\\",\\r\\n\\t\\tisLocal: rlocalProtocol.test( location.protocol ),\\r\\n\\t\\tglobal: true,\\r\\n\\t\\tprocessData: true,\\r\\n\\t\\tasync: true,\\r\\n\\t\\tcontentType: \\\"application/x-www-form-urlencoded; charset=UTF-8\\\",\\r\\n\\r\\n\\t\\t/*\\r\\n\\t\\ttimeout: 0,\\r\\n\\t\\tdata: null,\\r\\n\\t\\tdataType: null,\\r\\n\\t\\tusername: null,\\r\\n\\t\\tpassword: null,\\r\\n\\t\\tcache: null,\\r\\n\\t\\tthrows: false,\\r\\n\\t\\ttraditional: false,\\r\\n\\t\\theaders: {},\\r\\n\\t\\t*/\\r\\n\\r\\n\\t\\taccepts: {\\r\\n\\t\\t\\t\\\"*\\\": allTypes,\\r\\n\\t\\t\\ttext: \\\"text/plain\\\",\\r\\n\\t\\t\\thtml: \\\"text/html\\\",\\r\\n\\t\\t\\txml: \\\"application/xml, text/xml\\\",\\r\\n\\t\\t\\tjson: \\\"application/json, text/javascript\\\"\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\tcontents: {\\r\\n\\t\\t\\txml: /\\\\bxml\\\\b/,\\r\\n\\t\\t\\thtml: /\\\\bhtml/,\\r\\n\\t\\t\\tjson: /\\\\bjson\\\\b/\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\tresponseFields: {\\r\\n\\t\\t\\txml: \\\"responseXML\\\",\\r\\n\\t\\t\\ttext: \\\"responseText\\\",\\r\\n\\t\\t\\tjson: \\\"responseJSON\\\"\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// Data converters\\r\\n\\t\\t// Keys separate source (or catchall \\\"*\\\") and destination types with a single space\\r\\n\\t\\tconverters: {\\r\\n\\r\\n\\t\\t\\t// Convert anything to text\\r\\n\\t\\t\\t\\\"* text\\\": String,\\r\\n\\r\\n\\t\\t\\t// Text to html (true = no transformation)\\r\\n\\t\\t\\t\\\"text html\\\": true,\\r\\n\\r\\n\\t\\t\\t// Evaluate text as a json expression\\r\\n\\t\\t\\t\\\"text json\\\": JSON.parse,\\r\\n\\r\\n\\t\\t\\t// Parse text as xml\\r\\n\\t\\t\\t\\\"text xml\\\": jQuery.parseXML\\r\\n\\t\\t},\\r\\n\\r\\n\\t\\t// For options that shouldn't be deep extended:\\r\\n\\t\\t// you can add your own custom options here if\\r\\n\\t\\t// and when you create one that shouldn't be\\r\\n\\t\\t// deep extended (see ajaxExtend)\\r\\n\\t\\tflatOptions: {\\r\\n\\t\\t\\turl: true,\\r\\n\\t\\t\\tcontext: true\\r\\n\\t\\t}\\r\\n\\t},\\r\\n\\r\\n\\t// Creates a full fledged settings object into target\\r\\n\\t// with both ajaxSettings and settings fields.\\r\\n\\t// If target is omitted, writes into ajaxSettings.\\r\\n\\tajaxSetup: function( target, settings ) {\\r\\n\\t\\treturn settings ?\\r\\n\\r\\n\\t\\t\\t// Building a settings object\\r\\n\\t\\t\\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\\r\\n\\r\\n\\t\\t\\t// Extending ajaxSettings\\r\\n\\t\\t\\tajaxExtend( jQuery.ajaxSettings, target );\\r\\n\\t},\\r\\n\\r\\n\\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\\r\\n\\tajaxTransport: addToPrefiltersOrTransports( transports ),\\r\\n\\r\\n\\t// Main method\\r\\n\\tajax: function( url, options ) {\\r\\n\\r\\n\\t\\t// If url is an object, simulate pre-1.5 signature\\r\\n\\t\\tif ( typeof url === \\\"object\\\" ) {\\r\\n\\t\\t\\toptions = url;\\r\\n\\t\\t\\turl = undefined;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Force options to be an object\\r\\n\\t\\toptions = options || {};\\r\\n\\r\\n\\t\\tvar transport,\\r\\n\\r\\n\\t\\t\\t// URL without anti-cache param\\r\\n\\t\\t\\tcacheURL,\\r\\n\\r\\n\\t\\t\\t// Response headers\\r\\n\\t\\t\\tresponseHeadersString,\\r\\n\\t\\t\\tresponseHeaders,\\r\\n\\r\\n\\t\\t\\t// timeout handle\\r\\n\\t\\t\\ttimeoutTimer,\\r\\n\\r\\n\\t\\t\\t// Url cleanup var\\r\\n\\t\\t\\turlAnchor,\\r\\n\\r\\n\\t\\t\\t// Request state (becomes false upon send and true upon completion)\\r\\n\\t\\t\\tcompleted,\\r\\n\\r\\n\\t\\t\\t// To know if global events are to be dispatched\\r\\n\\t\\t\\tfireGlobals,\\r\\n\\r\\n\\t\\t\\t// Loop variable\\r\\n\\t\\t\\ti,\\r\\n\\r\\n\\t\\t\\t// uncached part of the url\\r\\n\\t\\t\\tuncached,\\r\\n\\r\\n\\t\\t\\t// Create the final options object\\r\\n\\t\\t\\ts = jQuery.ajaxSetup( {}, options ),\\r\\n\\r\\n\\t\\t\\t// Callbacks context\\r\\n\\t\\t\\tcallbackContext = s.context || s,\\r\\n\\r\\n\\t\\t\\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\\r\\n\\t\\t\\tglobalEventContext = s.context &&\\r\\n\\t\\t\\t\\t( callbackContext.nodeType || callbackContext.jquery ) ?\\r\\n\\t\\t\\t\\t\\tjQuery( callbackContext ) :\\r\\n\\t\\t\\t\\t\\tjQuery.event,\\r\\n\\r\\n\\t\\t\\t// Deferreds\\r\\n\\t\\t\\tdeferred = jQuery.Deferred(),\\r\\n\\t\\t\\tcompleteDeferred = jQuery.Callbacks( \\\"once memory\\\" ),\\r\\n\\r\\n\\t\\t\\t// Status-dependent callbacks\\r\\n\\t\\t\\tstatusCode = s.statusCode || {},\\r\\n\\r\\n\\t\\t\\t// Headers (they are sent all at once)\\r\\n\\t\\t\\trequestHeaders = {},\\r\\n\\t\\t\\trequestHeadersNames = {},\\r\\n\\r\\n\\t\\t\\t// Default abort message\\r\\n\\t\\t\\tstrAbort = \\\"canceled\\\",\\r\\n\\r\\n\\t\\t\\t// Fake xhr\\r\\n\\t\\t\\tjqXHR = {\\r\\n\\t\\t\\t\\treadyState: 0,\\r\\n\\r\\n\\t\\t\\t\\t// Builds headers hashtable if needed\\r\\n\\t\\t\\t\\tgetResponseHeader: function( key ) {\\r\\n\\t\\t\\t\\t\\tvar match;\\r\\n\\t\\t\\t\\t\\tif ( completed ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( !responseHeaders ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tresponseHeaders = {};\\r\\n\\t\\t\\t\\t\\t\\t\\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\tmatch = responseHeaders[ key.toLowerCase() ];\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn match == null ? null : match;\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Raw string\\r\\n\\t\\t\\t\\tgetAllResponseHeaders: function() {\\r\\n\\t\\t\\t\\t\\treturn completed ? responseHeadersString : null;\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Caches the header\\r\\n\\t\\t\\t\\tsetRequestHeader: function( name, value ) {\\r\\n\\t\\t\\t\\t\\tif ( completed == null ) {\\r\\n\\t\\t\\t\\t\\t\\tname = requestHeadersNames[ name.toLowerCase() ] =\\r\\n\\t\\t\\t\\t\\t\\t\\trequestHeadersNames[ name.toLowerCase() ] || name;\\r\\n\\t\\t\\t\\t\\t\\trequestHeaders[ name ] = value;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Overrides response content-type header\\r\\n\\t\\t\\t\\toverrideMimeType: function( type ) {\\r\\n\\t\\t\\t\\t\\tif ( completed == null ) {\\r\\n\\t\\t\\t\\t\\t\\ts.mimeType = type;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Status-dependent callbacks\\r\\n\\t\\t\\t\\tstatusCode: function( map ) {\\r\\n\\t\\t\\t\\t\\tvar code;\\r\\n\\t\\t\\t\\t\\tif ( map ) {\\r\\n\\t\\t\\t\\t\\t\\tif ( completed ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Execute the appropriate callbacks\\r\\n\\t\\t\\t\\t\\t\\t\\tjqXHR.always( map[ jqXHR.status ] );\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Lazy-add the new callbacks in a way that preserves old ones\\r\\n\\t\\t\\t\\t\\t\\t\\tfor ( code in map ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\t\\t// Cancel the request\\r\\n\\t\\t\\t\\tabort: function( statusText ) {\\r\\n\\t\\t\\t\\t\\tvar finalText = statusText || strAbort;\\r\\n\\t\\t\\t\\t\\tif ( transport ) {\\r\\n\\t\\t\\t\\t\\t\\ttransport.abort( finalText );\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tdone( 0, finalText );\\r\\n\\t\\t\\t\\t\\treturn this;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t// Attach deferreds\\r\\n\\t\\tdeferred.promise( jqXHR );\\r\\n\\r\\n\\t\\t// Add protocol if not provided (prefilters might expect it)\\r\\n\\t\\t// Handle falsy url in the settings object (#10093: consistency with old signature)\\r\\n\\t\\t// We also use the url parameter if available\\r\\n\\t\\ts.url = ( ( url || s.url || location.href ) + \\\"\\\" )\\r\\n\\t\\t\\t.replace( rprotocol, location.protocol + \\\"//\\\" );\\r\\n\\r\\n\\t\\t// Alias method option to type as per ticket #12004\\r\\n\\t\\ts.type = options.method || options.type || s.method || s.type;\\r\\n\\r\\n\\t\\t// Extract dataTypes list\\r\\n\\t\\ts.dataTypes = ( s.dataType || \\\"*\\\" ).toLowerCase().match( rnothtmlwhite ) || [ \\\"\\\" ];\\r\\n\\r\\n\\t\\t// A cross-domain request is in order when the origin doesn't match the current origin.\\r\\n\\t\\tif ( s.crossDomain == null ) {\\r\\n\\t\\t\\turlAnchor = document.createElement( \\\"a\\\" );\\r\\n\\r\\n\\t\\t\\t// Support: IE <=8 - 11, Edge 12 - 13\\r\\n\\t\\t\\t// IE throws exception on accessing the href property if url is malformed,\\r\\n\\t\\t\\t// e.g. http://example.com:80x/\\r\\n\\t\\t\\ttry {\\r\\n\\t\\t\\t\\turlAnchor.href = s.url;\\r\\n\\r\\n\\t\\t\\t\\t// Support: IE <=8 - 11 only\\r\\n\\t\\t\\t\\t// Anchor's host property isn't correctly set when s.url is relative\\r\\n\\t\\t\\t\\turlAnchor.href = urlAnchor.href;\\r\\n\\t\\t\\t\\ts.crossDomain = originAnchor.protocol + \\\"//\\\" + originAnchor.host !==\\r\\n\\t\\t\\t\\t\\turlAnchor.protocol + \\\"//\\\" + urlAnchor.host;\\r\\n\\t\\t\\t} catch ( e ) {\\r\\n\\r\\n\\t\\t\\t\\t// If there is an error parsing the URL, assume it is crossDomain,\\r\\n\\t\\t\\t\\t// it can be rejected by the transport if it is invalid\\r\\n\\t\\t\\t\\ts.crossDomain = true;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Convert data if not already a string\\r\\n\\t\\tif ( s.data && s.processData && typeof s.data !== \\\"string\\\" ) {\\r\\n\\t\\t\\ts.data = jQuery.param( s.data, s.traditional );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Apply prefilters\\r\\n\\t\\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\\r\\n\\r\\n\\t\\t// If request was aborted inside a prefilter, stop there\\r\\n\\t\\tif ( completed ) {\\r\\n\\t\\t\\treturn jqXHR;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// We can fire global events as of now if asked to\\r\\n\\t\\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\\r\\n\\t\\tfireGlobals = jQuery.event && s.global;\\r\\n\\r\\n\\t\\t// Watch for a new set of requests\\r\\n\\t\\tif ( fireGlobals && jQuery.active++ === 0 ) {\\r\\n\\t\\t\\tjQuery.event.trigger( \\\"ajaxStart\\\" );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Uppercase the type\\r\\n\\t\\ts.type = s.type.toUpperCase();\\r\\n\\r\\n\\t\\t// Determine if request has content\\r\\n\\t\\ts.hasContent = !rnoContent.test( s.type );\\r\\n\\r\\n\\t\\t// Save the URL in case we're toying with the If-Modified-Since\\r\\n\\t\\t// and/or If-None-Match header later on\\r\\n\\t\\t// Remove hash to simplify url manipulation\\r\\n\\t\\tcacheURL = s.url.replace( rhash, \\\"\\\" );\\r\\n\\r\\n\\t\\t// More options handling for requests with no content\\r\\n\\t\\tif ( !s.hasContent ) {\\r\\n\\r\\n\\t\\t\\t// Remember the hash so we can put it back\\r\\n\\t\\t\\tuncached = s.url.slice( cacheURL.length );\\r\\n\\r\\n\\t\\t\\t// If data is available, append data to url\\r\\n\\t\\t\\tif ( s.data ) {\\r\\n\\t\\t\\t\\tcacheURL += ( rquery.test( cacheURL ) ? \\\"&\\\" : \\\"?\\\" ) + s.data;\\r\\n\\r\\n\\t\\t\\t\\t// #9682: remove data so that it's not used in an eventual retry\\r\\n\\t\\t\\t\\tdelete s.data;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Add or update anti-cache param if needed\\r\\n\\t\\t\\tif ( s.cache === false ) {\\r\\n\\t\\t\\t\\tcacheURL = cacheURL.replace( rantiCache, \\\"$1\\\" );\\r\\n\\t\\t\\t\\tuncached = ( rquery.test( cacheURL ) ? \\\"&\\\" : \\\"?\\\" ) + \\\"_=\\\" + ( nonce++ ) + uncached;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\\r\\n\\t\\t\\ts.url = cacheURL + uncached;\\r\\n\\r\\n\\t\\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\\r\\n\\t\\t} else if ( s.data && s.processData &&\\r\\n\\t\\t\\t( s.contentType || \\\"\\\" ).indexOf( \\\"application/x-www-form-urlencoded\\\" ) === 0 ) {\\r\\n\\t\\t\\ts.data = s.data.replace( r20, \\\"+\\\" );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\\r\\n\\t\\tif ( s.ifModified ) {\\r\\n\\t\\t\\tif ( jQuery.lastModified[ cacheURL ] ) {\\r\\n\\t\\t\\t\\tjqXHR.setRequestHeader( \\\"If-Modified-Since\\\", jQuery.lastModified[ cacheURL ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tif ( jQuery.etag[ cacheURL ] ) {\\r\\n\\t\\t\\t\\tjqXHR.setRequestHeader( \\\"If-None-Match\\\", jQuery.etag[ cacheURL ] );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Set the correct header, if data is being sent\\r\\n\\t\\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\\r\\n\\t\\t\\tjqXHR.setRequestHeader( \\\"Content-Type\\\", s.contentType );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Set the Accepts header for the server, depending on the dataType\\r\\n\\t\\tjqXHR.setRequestHeader(\\r\\n\\t\\t\\t\\\"Accept\\\",\\r\\n\\t\\t\\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\\r\\n\\t\\t\\t\\ts.accepts[ s.dataTypes[ 0 ] ] +\\r\\n\\t\\t\\t\\t\\t( s.dataTypes[ 0 ] !== \\\"*\\\" ? \\\", \\\" + allTypes + \\\"; q=0.01\\\" : \\\"\\\" ) :\\r\\n\\t\\t\\t\\ts.accepts[ \\\"*\\\" ]\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\t// Check for headers option\\r\\n\\t\\tfor ( i in s.headers ) {\\r\\n\\t\\t\\tjqXHR.setRequestHeader( i, s.headers[ i ] );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Allow custom headers/mimetypes and early abort\\r\\n\\t\\tif ( s.beforeSend &&\\r\\n\\t\\t\\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\\r\\n\\r\\n\\t\\t\\t// Abort if not done already and return\\r\\n\\t\\t\\treturn jqXHR.abort();\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Aborting is no longer a cancellation\\r\\n\\t\\tstrAbort = \\\"abort\\\";\\r\\n\\r\\n\\t\\t// Install callbacks on deferreds\\r\\n\\t\\tcompleteDeferred.add( s.complete );\\r\\n\\t\\tjqXHR.done( s.success );\\r\\n\\t\\tjqXHR.fail( s.error );\\r\\n\\r\\n\\t\\t// Get transport\\r\\n\\t\\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\\r\\n\\r\\n\\t\\t// If no transport, we auto-abort\\r\\n\\t\\tif ( !transport ) {\\r\\n\\t\\t\\tdone( -1, \\\"No Transport\\\" );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tjqXHR.readyState = 1;\\r\\n\\r\\n\\t\\t\\t// Send global event\\r\\n\\t\\t\\tif ( fireGlobals ) {\\r\\n\\t\\t\\t\\tglobalEventContext.trigger( \\\"ajaxSend\\\", [ jqXHR, s ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// If request was aborted inside ajaxSend, stop there\\r\\n\\t\\t\\tif ( completed ) {\\r\\n\\t\\t\\t\\treturn jqXHR;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Timeout\\r\\n\\t\\t\\tif ( s.async && s.timeout > 0 ) {\\r\\n\\t\\t\\t\\ttimeoutTimer = window.setTimeout( function() {\\r\\n\\t\\t\\t\\t\\tjqXHR.abort( \\\"timeout\\\" );\\r\\n\\t\\t\\t\\t}, s.timeout );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\ttry {\\r\\n\\t\\t\\t\\tcompleted = false;\\r\\n\\t\\t\\t\\ttransport.send( requestHeaders, done );\\r\\n\\t\\t\\t} catch ( e ) {\\r\\n\\r\\n\\t\\t\\t\\t// Rethrow post-completion exceptions\\r\\n\\t\\t\\t\\tif ( completed ) {\\r\\n\\t\\t\\t\\t\\tthrow e;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Propagate others as results\\r\\n\\t\\t\\t\\tdone( -1, e );\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Callback for when everything is done\\r\\n\\t\\tfunction done( status, nativeStatusText, responses, headers ) {\\r\\n\\t\\t\\tvar isSuccess, success, error, response, modified,\\r\\n\\t\\t\\t\\tstatusText = nativeStatusText;\\r\\n\\r\\n\\t\\t\\t// Ignore repeat invocations\\r\\n\\t\\t\\tif ( completed ) {\\r\\n\\t\\t\\t\\treturn;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tcompleted = true;\\r\\n\\r\\n\\t\\t\\t// Clear timeout if it exists\\r\\n\\t\\t\\tif ( timeoutTimer ) {\\r\\n\\t\\t\\t\\twindow.clearTimeout( timeoutTimer );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Dereference transport for early garbage collection\\r\\n\\t\\t\\t// (no matter how long the jqXHR object will be used)\\r\\n\\t\\t\\ttransport = undefined;\\r\\n\\r\\n\\t\\t\\t// Cache response headers\\r\\n\\t\\t\\tresponseHeadersString = headers || \\\"\\\";\\r\\n\\r\\n\\t\\t\\t// Set readyState\\r\\n\\t\\t\\tjqXHR.readyState = status > 0 ? 4 : 0;\\r\\n\\r\\n\\t\\t\\t// Determine if successful\\r\\n\\t\\t\\tisSuccess = status >= 200 && status < 300 || status === 304;\\r\\n\\r\\n\\t\\t\\t// Get response data\\r\\n\\t\\t\\tif ( responses ) {\\r\\n\\t\\t\\t\\tresponse = ajaxHandleResponses( s, jqXHR, responses );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Convert no matter what (that way responseXXX fields are always set)\\r\\n\\t\\t\\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\\r\\n\\r\\n\\t\\t\\t// If successful, handle type chaining\\r\\n\\t\\t\\tif ( isSuccess ) {\\r\\n\\r\\n\\t\\t\\t\\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\\r\\n\\t\\t\\t\\tif ( s.ifModified ) {\\r\\n\\t\\t\\t\\t\\tmodified = jqXHR.getResponseHeader( \\\"Last-Modified\\\" );\\r\\n\\t\\t\\t\\t\\tif ( modified ) {\\r\\n\\t\\t\\t\\t\\t\\tjQuery.lastModified[ cacheURL ] = modified;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\tmodified = jqXHR.getResponseHeader( \\\"etag\\\" );\\r\\n\\t\\t\\t\\t\\tif ( modified ) {\\r\\n\\t\\t\\t\\t\\t\\tjQuery.etag[ cacheURL ] = modified;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// if no content\\r\\n\\t\\t\\t\\tif ( status === 204 || s.type === \\\"HEAD\\\" ) {\\r\\n\\t\\t\\t\\t\\tstatusText = \\\"nocontent\\\";\\r\\n\\r\\n\\t\\t\\t\\t// if not modified\\r\\n\\t\\t\\t\\t} else if ( status === 304 ) {\\r\\n\\t\\t\\t\\t\\tstatusText = \\\"notmodified\\\";\\r\\n\\r\\n\\t\\t\\t\\t// If we have data, let's convert it\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\tstatusText = response.state;\\r\\n\\t\\t\\t\\t\\tsuccess = response.data;\\r\\n\\t\\t\\t\\t\\terror = response.error;\\r\\n\\t\\t\\t\\t\\tisSuccess = !error;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t\\t// Extract error from statusText and normalize for non-aborts\\r\\n\\t\\t\\t\\terror = statusText;\\r\\n\\t\\t\\t\\tif ( status || !statusText ) {\\r\\n\\t\\t\\t\\t\\tstatusText = \\\"error\\\";\\r\\n\\t\\t\\t\\t\\tif ( status < 0 ) {\\r\\n\\t\\t\\t\\t\\t\\tstatus = 0;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Set data for the fake xhr object\\r\\n\\t\\t\\tjqXHR.status = status;\\r\\n\\t\\t\\tjqXHR.statusText = ( nativeStatusText || statusText ) + \\\"\\\";\\r\\n\\r\\n\\t\\t\\t// Success/Error\\r\\n\\t\\t\\tif ( isSuccess ) {\\r\\n\\t\\t\\t\\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Status-dependent callbacks\\r\\n\\t\\t\\tjqXHR.statusCode( statusCode );\\r\\n\\t\\t\\tstatusCode = undefined;\\r\\n\\r\\n\\t\\t\\tif ( fireGlobals ) {\\r\\n\\t\\t\\t\\tglobalEventContext.trigger( isSuccess ? \\\"ajaxSuccess\\\" : \\\"ajaxError\\\",\\r\\n\\t\\t\\t\\t\\t[ jqXHR, s, isSuccess ? success : error ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Complete\\r\\n\\t\\t\\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\\r\\n\\r\\n\\t\\t\\tif ( fireGlobals ) {\\r\\n\\t\\t\\t\\tglobalEventContext.trigger( \\\"ajaxComplete\\\", [ jqXHR, s ] );\\r\\n\\r\\n\\t\\t\\t\\t// Handle the global AJAX counter\\r\\n\\t\\t\\t\\tif ( !( --jQuery.active ) ) {\\r\\n\\t\\t\\t\\t\\tjQuery.event.trigger( \\\"ajaxStop\\\" );\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn jqXHR;\\r\\n\\t},\\r\\n\\r\\n\\tgetJSON: function( url, data, callback ) {\\r\\n\\t\\treturn jQuery.get( url, data, callback, \\\"json\\\" );\\r\\n\\t},\\r\\n\\r\\n\\tgetScript: function( url, callback ) {\\r\\n\\t\\treturn jQuery.get( url, undefined, callback, \\\"script\\\" );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.each( [ \\\"get\\\", \\\"post\\\" ], function( i, method ) {\\r\\n\\tjQuery[ method ] = function( url, data, callback, type ) {\\r\\n\\r\\n\\t\\t// Shift arguments if data argument was omitted\\r\\n\\t\\tif ( jQuery.isFunction( data ) ) {\\r\\n\\t\\t\\ttype = type || callback;\\r\\n\\t\\t\\tcallback = data;\\r\\n\\t\\t\\tdata = undefined;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// The url can be an options object (which then must have .url)\\r\\n\\t\\treturn jQuery.ajax( jQuery.extend( {\\r\\n\\t\\t\\turl: url,\\r\\n\\t\\t\\ttype: method,\\r\\n\\t\\t\\tdataType: type,\\r\\n\\t\\t\\tdata: data,\\r\\n\\t\\t\\tsuccess: callback\\r\\n\\t\\t}, jQuery.isPlainObject( url ) && url ) );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\n\\r\\njQuery._evalUrl = function( url ) {\\r\\n\\treturn jQuery.ajax( {\\r\\n\\t\\turl: url,\\r\\n\\r\\n\\t\\t// Make this explicit, since user can override this through ajaxSetup (#11264)\\r\\n\\t\\ttype: \\\"GET\\\",\\r\\n\\t\\tdataType: \\\"script\\\",\\r\\n\\t\\tcache: true,\\r\\n\\t\\tasync: false,\\r\\n\\t\\tglobal: false,\\r\\n\\t\\t\\\"throws\\\": true\\r\\n\\t} );\\r\\n};\\r\\n\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\twrapAll: function( html ) {\\r\\n\\t\\tvar wrap;\\r\\n\\r\\n\\t\\tif ( this[ 0 ] ) {\\r\\n\\t\\t\\tif ( jQuery.isFunction( html ) ) {\\r\\n\\t\\t\\t\\thtml = html.call( this[ 0 ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// The elements to wrap the target around\\r\\n\\t\\t\\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\\r\\n\\r\\n\\t\\t\\tif ( this[ 0 ].parentNode ) {\\r\\n\\t\\t\\t\\twrap.insertBefore( this[ 0 ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\twrap.map( function() {\\r\\n\\t\\t\\t\\tvar elem = this;\\r\\n\\r\\n\\t\\t\\t\\twhile ( elem.firstElementChild ) {\\r\\n\\t\\t\\t\\t\\telem = elem.firstElementChild;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn elem;\\r\\n\\t\\t\\t} ).append( this );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this;\\r\\n\\t},\\r\\n\\r\\n\\twrapInner: function( html ) {\\r\\n\\t\\tif ( jQuery.isFunction( html ) ) {\\r\\n\\t\\t\\treturn this.each( function( i ) {\\r\\n\\t\\t\\t\\tjQuery( this ).wrapInner( html.call( this, i ) );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\treturn this.each( function() {\\r\\n\\t\\t\\tvar self = jQuery( this ),\\r\\n\\t\\t\\t\\tcontents = self.contents();\\r\\n\\r\\n\\t\\t\\tif ( contents.length ) {\\r\\n\\t\\t\\t\\tcontents.wrapAll( html );\\r\\n\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tself.append( html );\\r\\n\\t\\t\\t}\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\twrap: function( html ) {\\r\\n\\t\\tvar isFunction = jQuery.isFunction( html );\\r\\n\\r\\n\\t\\treturn this.each( function( i ) {\\r\\n\\t\\t\\tjQuery( this ).wrapAll( isFunction ? html.call( this, i ) : html );\\r\\n\\t\\t} );\\r\\n\\t},\\r\\n\\r\\n\\tunwrap: function( selector ) {\\r\\n\\t\\tthis.parent( selector ).not( \\\"body\\\" ).each( function() {\\r\\n\\t\\t\\tjQuery( this ).replaceWith( this.childNodes );\\r\\n\\t\\t} );\\r\\n\\t\\treturn this;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\njQuery.expr.pseudos.hidden = function( elem ) {\\r\\n\\treturn !jQuery.expr.pseudos.visible( elem );\\r\\n};\\r\\njQuery.expr.pseudos.visible = function( elem ) {\\r\\n\\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\njQuery.ajaxSettings.xhr = function() {\\r\\n\\ttry {\\r\\n\\t\\treturn new window.XMLHttpRequest();\\r\\n\\t} catch ( e ) {}\\r\\n};\\r\\n\\r\\nvar xhrSuccessStatus = {\\r\\n\\r\\n\\t\\t// File protocol always yields status code 0, assume 200\\r\\n\\t\\t0: 200,\\r\\n\\r\\n\\t\\t// Support: IE <=9 only\\r\\n\\t\\t// #1450: sometimes IE returns 1223 when it should be 204\\r\\n\\t\\t1223: 204\\r\\n\\t},\\r\\n\\txhrSupported = jQuery.ajaxSettings.xhr();\\r\\n\\r\\nsupport.cors = !!xhrSupported && ( \\\"withCredentials\\\" in xhrSupported );\\r\\nsupport.ajax = xhrSupported = !!xhrSupported;\\r\\n\\r\\njQuery.ajaxTransport( function( options ) {\\r\\n\\tvar callback, errorCallback;\\r\\n\\r\\n\\t// Cross domain only allowed if supported through XMLHttpRequest\\r\\n\\tif ( support.cors || xhrSupported && !options.crossDomain ) {\\r\\n\\t\\treturn {\\r\\n\\t\\t\\tsend: function( headers, complete ) {\\r\\n\\t\\t\\t\\tvar i,\\r\\n\\t\\t\\t\\t\\txhr = options.xhr();\\r\\n\\r\\n\\t\\t\\t\\txhr.open(\\r\\n\\t\\t\\t\\t\\toptions.type,\\r\\n\\t\\t\\t\\t\\toptions.url,\\r\\n\\t\\t\\t\\t\\toptions.async,\\r\\n\\t\\t\\t\\t\\toptions.username,\\r\\n\\t\\t\\t\\t\\toptions.password\\r\\n\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t// Apply custom fields if provided\\r\\n\\t\\t\\t\\tif ( options.xhrFields ) {\\r\\n\\t\\t\\t\\t\\tfor ( i in options.xhrFields ) {\\r\\n\\t\\t\\t\\t\\t\\txhr[ i ] = options.xhrFields[ i ];\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Override mime type if needed\\r\\n\\t\\t\\t\\tif ( options.mimeType && xhr.overrideMimeType ) {\\r\\n\\t\\t\\t\\t\\txhr.overrideMimeType( options.mimeType );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// X-Requested-With header\\r\\n\\t\\t\\t\\t// For cross-domain requests, seeing as conditions for a preflight are\\r\\n\\t\\t\\t\\t// akin to a jigsaw puzzle, we simply never set it to be sure.\\r\\n\\t\\t\\t\\t// (it can always be set on a per-request basis or even using ajaxSetup)\\r\\n\\t\\t\\t\\t// For same-domain requests, won't change header if already provided.\\r\\n\\t\\t\\t\\tif ( !options.crossDomain && !headers[ \\\"X-Requested-With\\\" ] ) {\\r\\n\\t\\t\\t\\t\\theaders[ \\\"X-Requested-With\\\" ] = \\\"XMLHttpRequest\\\";\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Set headers\\r\\n\\t\\t\\t\\tfor ( i in headers ) {\\r\\n\\t\\t\\t\\t\\txhr.setRequestHeader( i, headers[ i ] );\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Callback\\r\\n\\t\\t\\t\\tcallback = function( type ) {\\r\\n\\t\\t\\t\\t\\treturn function() {\\r\\n\\t\\t\\t\\t\\t\\tif ( callback ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcallback = errorCallback = xhr.onload =\\r\\n\\t\\t\\t\\t\\t\\t\\t\\txhr.onerror = xhr.onabort = xhr.onreadystatechange = null;\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\tif ( type === \\\"abort\\\" ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\txhr.abort();\\r\\n\\t\\t\\t\\t\\t\\t\\t} else if ( type === \\\"error\\\" ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// Support: IE <=9 only\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// On a manual native abort, IE9 throws\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// errors on any property access that is not readyState\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( typeof xhr.status !== \\\"number\\\" ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tcomplete( 0, \\\"error\\\" );\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tcomplete(\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t// File: protocol always yields status 0; see #8605, #14207\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\txhr.status,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\txhr.statusText\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tcomplete(\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\txhrSuccessStatus[ xhr.status ] || xhr.status,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\txhr.statusText,\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// Support: IE <=9 only\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// IE9 has no XHR2 but throws on binary (trac-11426)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t// For XHR2 non-text, let the caller handle it (gh-2498)\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t( xhr.responseType || \\\"text\\\" ) !== \\\"text\\\" ||\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\ttypeof xhr.responseText !== \\\"string\\\" ?\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ binary: xhr.response } :\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t{ text: xhr.responseText },\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\txhr.getAllResponseHeaders()\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t};\\r\\n\\t\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\t\\t// Listen to events\\r\\n\\t\\t\\t\\txhr.onload = callback();\\r\\n\\t\\t\\t\\terrorCallback = xhr.onerror = callback( \\\"error\\\" );\\r\\n\\r\\n\\t\\t\\t\\t// Support: IE 9 only\\r\\n\\t\\t\\t\\t// Use onreadystatechange to replace onabort\\r\\n\\t\\t\\t\\t// to handle uncaught aborts\\r\\n\\t\\t\\t\\tif ( xhr.onabort !== undefined ) {\\r\\n\\t\\t\\t\\t\\txhr.onabort = errorCallback;\\r\\n\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\txhr.onreadystatechange = function() {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t// Check readyState before timeout as it changes\\r\\n\\t\\t\\t\\t\\t\\tif ( xhr.readyState === 4 ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\t// Allow onerror to be called first,\\r\\n\\t\\t\\t\\t\\t\\t\\t// but that will not handle a native abort\\r\\n\\t\\t\\t\\t\\t\\t\\t// Also, save errorCallback to a variable\\r\\n\\t\\t\\t\\t\\t\\t\\t// as xhr.onerror cannot be accessed\\r\\n\\t\\t\\t\\t\\t\\t\\twindow.setTimeout( function() {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tif ( callback ) {\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\terrorCallback();\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\t\\t} );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t};\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Create the abort callback\\r\\n\\t\\t\\t\\tcallback = callback( \\\"abort\\\" );\\r\\n\\r\\n\\t\\t\\t\\ttry {\\r\\n\\r\\n\\t\\t\\t\\t\\t// Do send the request (this may raise an exception)\\r\\n\\t\\t\\t\\t\\txhr.send( options.hasContent && options.data || null );\\r\\n\\t\\t\\t\\t} catch ( e ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// #14683: Only rethrow if this hasn't been notified as an error yet\\r\\n\\t\\t\\t\\t\\tif ( callback ) {\\r\\n\\t\\t\\t\\t\\t\\tthrow e;\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\tabort: function() {\\r\\n\\t\\t\\t\\tif ( callback ) {\\r\\n\\t\\t\\t\\t\\tcallback();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\\r\\njQuery.ajaxPrefilter( function( s ) {\\r\\n\\tif ( s.crossDomain ) {\\r\\n\\t\\ts.contents.script = false;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Install script dataType\\r\\njQuery.ajaxSetup( {\\r\\n\\taccepts: {\\r\\n\\t\\tscript: \\\"text/javascript, application/javascript, \\\" +\\r\\n\\t\\t\\t\\\"application/ecmascript, application/x-ecmascript\\\"\\r\\n\\t},\\r\\n\\tcontents: {\\r\\n\\t\\tscript: /\\\\b(?:java|ecma)script\\\\b/\\r\\n\\t},\\r\\n\\tconverters: {\\r\\n\\t\\t\\\"text script\\\": function( text ) {\\r\\n\\t\\t\\tjQuery.globalEval( text );\\r\\n\\t\\t\\treturn text;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Handle cache's special case and crossDomain\\r\\njQuery.ajaxPrefilter( \\\"script\\\", function( s ) {\\r\\n\\tif ( s.cache === undefined ) {\\r\\n\\t\\ts.cache = false;\\r\\n\\t}\\r\\n\\tif ( s.crossDomain ) {\\r\\n\\t\\ts.type = \\\"GET\\\";\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Bind script tag hack transport\\r\\njQuery.ajaxTransport( \\\"script\\\", function( s ) {\\r\\n\\r\\n\\t// This transport only deals with cross domain requests\\r\\n\\tif ( s.crossDomain ) {\\r\\n\\t\\tvar script, callback;\\r\\n\\t\\treturn {\\r\\n\\t\\t\\tsend: function( _, complete ) {\\r\\n\\t\\t\\t\\tscript = jQuery( \\\"<script>\\\" ).prop( {\\r\\n\\t\\t\\t\\t\\tcharset: s.scriptCharset,\\r\\n\\t\\t\\t\\t\\tsrc: s.url\\r\\n\\t\\t\\t\\t} ).on(\\r\\n\\t\\t\\t\\t\\t\\\"load error\\\",\\r\\n\\t\\t\\t\\t\\tcallback = function( evt ) {\\r\\n\\t\\t\\t\\t\\t\\tscript.remove();\\r\\n\\t\\t\\t\\t\\t\\tcallback = null;\\r\\n\\t\\t\\t\\t\\t\\tif ( evt ) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcomplete( evt.type === \\\"error\\\" ? 404 : 200, evt.type );\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t// Use native DOM manipulation to avoid our domManip AJAX trickery\\r\\n\\t\\t\\t\\tdocument.head.appendChild( script[ 0 ] );\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tabort: function() {\\r\\n\\t\\t\\t\\tif ( callback ) {\\r\\n\\t\\t\\t\\t\\tcallback();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar oldCallbacks = [],\\r\\n\\trjsonp = /(=)\\\\?(?=&|$)|\\\\?\\\\?/;\\r\\n\\r\\n// Default jsonp settings\\r\\njQuery.ajaxSetup( {\\r\\n\\tjsonp: \\\"callback\\\",\\r\\n\\tjsonpCallback: function() {\\r\\n\\t\\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \\\"_\\\" + ( nonce++ ) );\\r\\n\\t\\tthis[ callback ] = true;\\r\\n\\t\\treturn callback;\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Detect, normalize options and install callbacks for jsonp requests\\r\\njQuery.ajaxPrefilter( \\\"json jsonp\\\", function( s, originalSettings, jqXHR ) {\\r\\n\\r\\n\\tvar callbackName, overwritten, responseContainer,\\r\\n\\t\\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\\r\\n\\t\\t\\t\\\"url\\\" :\\r\\n\\t\\t\\ttypeof s.data === \\\"string\\\" &&\\r\\n\\t\\t\\t\\t( s.contentType || \\\"\\\" )\\r\\n\\t\\t\\t\\t\\t.indexOf( \\\"application/x-www-form-urlencoded\\\" ) === 0 &&\\r\\n\\t\\t\\t\\trjsonp.test( s.data ) && \\\"data\\\"\\r\\n\\t\\t);\\r\\n\\r\\n\\t// Handle iff the expected data type is \\\"jsonp\\\" or we have a parameter to set\\r\\n\\tif ( jsonProp || s.dataTypes[ 0 ] === \\\"jsonp\\\" ) {\\r\\n\\r\\n\\t\\t// Get callback name, remembering preexisting value associated with it\\r\\n\\t\\tcallbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?\\r\\n\\t\\t\\ts.jsonpCallback() :\\r\\n\\t\\t\\ts.jsonpCallback;\\r\\n\\r\\n\\t\\t// Insert callback into url or form data\\r\\n\\t\\tif ( jsonProp ) {\\r\\n\\t\\t\\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \\\"$1\\\" + callbackName );\\r\\n\\t\\t} else if ( s.jsonp !== false ) {\\r\\n\\t\\t\\ts.url += ( rquery.test( s.url ) ? \\\"&\\\" : \\\"?\\\" ) + s.jsonp + \\\"=\\\" + callbackName;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Use data converter to retrieve json after script execution\\r\\n\\t\\ts.converters[ \\\"script json\\\" ] = function() {\\r\\n\\t\\t\\tif ( !responseContainer ) {\\r\\n\\t\\t\\t\\tjQuery.error( callbackName + \\\" was not called\\\" );\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\treturn responseContainer[ 0 ];\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// Force json dataType\\r\\n\\t\\ts.dataTypes[ 0 ] = \\\"json\\\";\\r\\n\\r\\n\\t\\t// Install callback\\r\\n\\t\\toverwritten = window[ callbackName ];\\r\\n\\t\\twindow[ callbackName ] = function() {\\r\\n\\t\\t\\tresponseContainer = arguments;\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// Clean-up function (fires after converters)\\r\\n\\t\\tjqXHR.always( function() {\\r\\n\\r\\n\\t\\t\\t// If previous value didn't exist - remove it\\r\\n\\t\\t\\tif ( overwritten === undefined ) {\\r\\n\\t\\t\\t\\tjQuery( window ).removeProp( callbackName );\\r\\n\\r\\n\\t\\t\\t// Otherwise restore preexisting value\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\twindow[ callbackName ] = overwritten;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Save back as free\\r\\n\\t\\t\\tif ( s[ callbackName ] ) {\\r\\n\\r\\n\\t\\t\\t\\t// Make sure that re-using the options doesn't screw things around\\r\\n\\t\\t\\t\\ts.jsonpCallback = originalSettings.jsonpCallback;\\r\\n\\r\\n\\t\\t\\t\\t// Save the callback name for future use\\r\\n\\t\\t\\t\\toldCallbacks.push( callbackName );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Call if it was a function and we have a response\\r\\n\\t\\t\\tif ( responseContainer && jQuery.isFunction( overwritten ) ) {\\r\\n\\t\\t\\t\\toverwritten( responseContainer[ 0 ] );\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tresponseContainer = overwritten = undefined;\\r\\n\\t\\t} );\\r\\n\\r\\n\\t\\t// Delegate to script\\r\\n\\t\\treturn \\\"script\\\";\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Support: Safari 8 only\\r\\n// In Safari 8 documents created via document.implementation.createHTMLDocument\\r\\n// collapse sibling forms: the second one becomes a child of the first one.\\r\\n// Because of that, this security measure has to be disabled in Safari 8.\\r\\n// https://bugs.webkit.org/show_bug.cgi?id=137337\\r\\nsupport.createHTMLDocument = ( function() {\\r\\n\\tvar body = document.implementation.createHTMLDocument( \\\"\\\" ).body;\\r\\n\\tbody.innerHTML = \\\"<form></form><form></form>\\\";\\r\\n\\treturn body.childNodes.length === 2;\\r\\n} )();\\r\\n\\r\\n\\r\\n// Argument \\\"data\\\" should be string of html\\r\\n// context (optional): If specified, the fragment will be created in this context,\\r\\n// defaults to document\\r\\n// keepScripts (optional): If true, will include scripts passed in the html string\\r\\njQuery.parseHTML = function( data, context, keepScripts ) {\\r\\n\\tif ( typeof data !== \\\"string\\\" ) {\\r\\n\\t\\treturn [];\\r\\n\\t}\\r\\n\\tif ( typeof context === \\\"boolean\\\" ) {\\r\\n\\t\\tkeepScripts = context;\\r\\n\\t\\tcontext = false;\\r\\n\\t}\\r\\n\\r\\n\\tvar base, parsed, scripts;\\r\\n\\r\\n\\tif ( !context ) {\\r\\n\\r\\n\\t\\t// Stop scripts or inline event handlers from being executed immediately\\r\\n\\t\\t// by using document.implementation\\r\\n\\t\\tif ( support.createHTMLDocument ) {\\r\\n\\t\\t\\tcontext = document.implementation.createHTMLDocument( \\\"\\\" );\\r\\n\\r\\n\\t\\t\\t// Set the base href for the created document\\r\\n\\t\\t\\t// so any parsed elements with URLs\\r\\n\\t\\t\\t// are based on the document's URL (gh-2965)\\r\\n\\t\\t\\tbase = context.createElement( \\\"base\\\" );\\r\\n\\t\\t\\tbase.href = document.location.href;\\r\\n\\t\\t\\tcontext.head.appendChild( base );\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tcontext = document;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tparsed = rsingleTag.exec( data );\\r\\n\\tscripts = !keepScripts && [];\\r\\n\\r\\n\\t// Single tag\\r\\n\\tif ( parsed ) {\\r\\n\\t\\treturn [ context.createElement( parsed[ 1 ] ) ];\\r\\n\\t}\\r\\n\\r\\n\\tparsed = buildFragment( [ data ], context, scripts );\\r\\n\\r\\n\\tif ( scripts && scripts.length ) {\\r\\n\\t\\tjQuery( scripts ).remove();\\r\\n\\t}\\r\\n\\r\\n\\treturn jQuery.merge( [], parsed.childNodes );\\r\\n};\\r\\n\\r\\n\\r\\n/**\\r\\n * Load a url into a page\\r\\n */\\r\\njQuery.fn.load = function( url, params, callback ) {\\r\\n\\tvar selector, type, response,\\r\\n\\t\\tself = this,\\r\\n\\t\\toff = url.indexOf( \\\" \\\" );\\r\\n\\r\\n\\tif ( off > -1 ) {\\r\\n\\t\\tselector = stripAndCollapse( url.slice( off ) );\\r\\n\\t\\turl = url.slice( 0, off );\\r\\n\\t}\\r\\n\\r\\n\\t// If it's a function\\r\\n\\tif ( jQuery.isFunction( params ) ) {\\r\\n\\r\\n\\t\\t// We assume that it's the callback\\r\\n\\t\\tcallback = params;\\r\\n\\t\\tparams = undefined;\\r\\n\\r\\n\\t// Otherwise, build a param string\\r\\n\\t} else if ( params && typeof params === \\\"object\\\" ) {\\r\\n\\t\\ttype = \\\"POST\\\";\\r\\n\\t}\\r\\n\\r\\n\\t// If we have elements to modify, make the request\\r\\n\\tif ( self.length > 0 ) {\\r\\n\\t\\tjQuery.ajax( {\\r\\n\\t\\t\\turl: url,\\r\\n\\r\\n\\t\\t\\t// If \\\"type\\\" variable is undefined, then \\\"GET\\\" method will be used.\\r\\n\\t\\t\\t// Make value of this field explicit since\\r\\n\\t\\t\\t// user can override it through ajaxSetup method\\r\\n\\t\\t\\ttype: type || \\\"GET\\\",\\r\\n\\t\\t\\tdataType: \\\"html\\\",\\r\\n\\t\\t\\tdata: params\\r\\n\\t\\t} ).done( function( responseText ) {\\r\\n\\r\\n\\t\\t\\t// Save response for use in complete callback\\r\\n\\t\\t\\tresponse = arguments;\\r\\n\\r\\n\\t\\t\\tself.html( selector ?\\r\\n\\r\\n\\t\\t\\t\\t// If a selector was specified, locate the right elements in a dummy div\\r\\n\\t\\t\\t\\t// Exclude scripts to avoid IE 'Permission Denied' errors\\r\\n\\t\\t\\t\\tjQuery( \\\"<div>\\\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\\r\\n\\r\\n\\t\\t\\t\\t// Otherwise use the full result\\r\\n\\t\\t\\t\\tresponseText );\\r\\n\\r\\n\\t\\t// If the request succeeds, this function gets \\\"data\\\", \\\"status\\\", \\\"jqXHR\\\"\\r\\n\\t\\t// but they are ignored because response was set above.\\r\\n\\t\\t// If it fails, this function gets \\\"jqXHR\\\", \\\"status\\\", \\\"error\\\"\\r\\n\\t\\t} ).always( callback && function( jqXHR, status ) {\\r\\n\\t\\t\\tself.each( function() {\\r\\n\\t\\t\\t\\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\\r\\n\\t\\t\\t} );\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n\\r\\n\\treturn this;\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Attach a bunch of functions for handling common AJAX events\\r\\njQuery.each( [\\r\\n\\t\\\"ajaxStart\\\",\\r\\n\\t\\\"ajaxStop\\\",\\r\\n\\t\\\"ajaxComplete\\\",\\r\\n\\t\\\"ajaxError\\\",\\r\\n\\t\\\"ajaxSuccess\\\",\\r\\n\\t\\\"ajaxSend\\\"\\r\\n], function( i, type ) {\\r\\n\\tjQuery.fn[ type ] = function( fn ) {\\r\\n\\t\\treturn this.on( type, fn );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\n\\r\\n\\r\\n\\r\\njQuery.expr.pseudos.animated = function( elem ) {\\r\\n\\treturn jQuery.grep( jQuery.timers, function( fn ) {\\r\\n\\t\\treturn elem === fn.elem;\\r\\n\\t} ).length;\\r\\n};\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n/**\\r\\n * Gets a window from an element\\r\\n */\\r\\nfunction getWindow( elem ) {\\r\\n\\treturn jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;\\r\\n}\\r\\n\\r\\njQuery.offset = {\\r\\n\\tsetOffset: function( elem, options, i ) {\\r\\n\\t\\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\\r\\n\\t\\t\\tposition = jQuery.css( elem, \\\"position\\\" ),\\r\\n\\t\\t\\tcurElem = jQuery( elem ),\\r\\n\\t\\t\\tprops = {};\\r\\n\\r\\n\\t\\t// Set position first, in-case top/left are set even on static elem\\r\\n\\t\\tif ( position === \\\"static\\\" ) {\\r\\n\\t\\t\\telem.style.position = \\\"relative\\\";\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tcurOffset = curElem.offset();\\r\\n\\t\\tcurCSSTop = jQuery.css( elem, \\\"top\\\" );\\r\\n\\t\\tcurCSSLeft = jQuery.css( elem, \\\"left\\\" );\\r\\n\\t\\tcalculatePosition = ( position === \\\"absolute\\\" || position === \\\"fixed\\\" ) &&\\r\\n\\t\\t\\t( curCSSTop + curCSSLeft ).indexOf( \\\"auto\\\" ) > -1;\\r\\n\\r\\n\\t\\t// Need to be able to calculate position if either\\r\\n\\t\\t// top or left is auto and position is either absolute or fixed\\r\\n\\t\\tif ( calculatePosition ) {\\r\\n\\t\\t\\tcurPosition = curElem.position();\\r\\n\\t\\t\\tcurTop = curPosition.top;\\r\\n\\t\\t\\tcurLeft = curPosition.left;\\r\\n\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tcurTop = parseFloat( curCSSTop ) || 0;\\r\\n\\t\\t\\tcurLeft = parseFloat( curCSSLeft ) || 0;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( jQuery.isFunction( options ) ) {\\r\\n\\r\\n\\t\\t\\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\\r\\n\\t\\t\\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( options.top != null ) {\\r\\n\\t\\t\\tprops.top = ( options.top - curOffset.top ) + curTop;\\r\\n\\t\\t}\\r\\n\\t\\tif ( options.left != null ) {\\r\\n\\t\\t\\tprops.left = ( options.left - curOffset.left ) + curLeft;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif ( \\\"using\\\" in options ) {\\r\\n\\t\\t\\toptions.using.call( elem, props );\\r\\n\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tcurElem.css( props );\\r\\n\\t\\t}\\r\\n\\t}\\r\\n};\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\toffset: function( options ) {\\r\\n\\r\\n\\t\\t// Preserve chaining for setter\\r\\n\\t\\tif ( arguments.length ) {\\r\\n\\t\\t\\treturn options === undefined ?\\r\\n\\t\\t\\t\\tthis :\\r\\n\\t\\t\\t\\tthis.each( function( i ) {\\r\\n\\t\\t\\t\\t\\tjQuery.offset.setOffset( this, options, i );\\r\\n\\t\\t\\t\\t} );\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tvar docElem, win, rect, doc,\\r\\n\\t\\t\\telem = this[ 0 ];\\r\\n\\r\\n\\t\\tif ( !elem ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Support: IE <=11 only\\r\\n\\t\\t// Running getBoundingClientRect on a\\r\\n\\t\\t// disconnected node in IE throws an error\\r\\n\\t\\tif ( !elem.getClientRects().length ) {\\r\\n\\t\\t\\treturn { top: 0, left: 0 };\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\trect = elem.getBoundingClientRect();\\r\\n\\r\\n\\t\\t// Make sure element is not hidden (display: none)\\r\\n\\t\\tif ( rect.width || rect.height ) {\\r\\n\\t\\t\\tdoc = elem.ownerDocument;\\r\\n\\t\\t\\twin = getWindow( doc );\\r\\n\\t\\t\\tdocElem = doc.documentElement;\\r\\n\\r\\n\\t\\t\\treturn {\\r\\n\\t\\t\\t\\ttop: rect.top + win.pageYOffset - docElem.clientTop,\\r\\n\\t\\t\\t\\tleft: rect.left + win.pageXOffset - docElem.clientLeft\\r\\n\\t\\t\\t};\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Return zeros for disconnected and hidden elements (gh-2310)\\r\\n\\t\\treturn rect;\\r\\n\\t},\\r\\n\\r\\n\\tposition: function() {\\r\\n\\t\\tif ( !this[ 0 ] ) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tvar offsetParent, offset,\\r\\n\\t\\t\\telem = this[ 0 ],\\r\\n\\t\\t\\tparentOffset = { top: 0, left: 0 };\\r\\n\\r\\n\\t\\t// Fixed elements are offset from window (parentOffset = {top:0, left: 0},\\r\\n\\t\\t// because it is its only offset parent\\r\\n\\t\\tif ( jQuery.css( elem, \\\"position\\\" ) === \\\"fixed\\\" ) {\\r\\n\\r\\n\\t\\t\\t// Assume getBoundingClientRect is there when computed position is fixed\\r\\n\\t\\t\\toffset = elem.getBoundingClientRect();\\r\\n\\r\\n\\t\\t} else {\\r\\n\\r\\n\\t\\t\\t// Get *real* offsetParent\\r\\n\\t\\t\\toffsetParent = this.offsetParent();\\r\\n\\r\\n\\t\\t\\t// Get correct offsets\\r\\n\\t\\t\\toffset = this.offset();\\r\\n\\t\\t\\tif ( !jQuery.nodeName( offsetParent[ 0 ], \\\"html\\\" ) ) {\\r\\n\\t\\t\\t\\tparentOffset = offsetParent.offset();\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t// Add offsetParent borders\\r\\n\\t\\t\\tparentOffset = {\\r\\n\\t\\t\\t\\ttop: parentOffset.top + jQuery.css( offsetParent[ 0 ], \\\"borderTopWidth\\\", true ),\\r\\n\\t\\t\\t\\tleft: parentOffset.left + jQuery.css( offsetParent[ 0 ], \\\"borderLeftWidth\\\", true )\\r\\n\\t\\t\\t};\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Subtract parent offsets and element margins\\r\\n\\t\\treturn {\\r\\n\\t\\t\\ttop: offset.top - parentOffset.top - jQuery.css( elem, \\\"marginTop\\\", true ),\\r\\n\\t\\t\\tleft: offset.left - parentOffset.left - jQuery.css( elem, \\\"marginLeft\\\", true )\\r\\n\\t\\t};\\r\\n\\t},\\r\\n\\r\\n\\t// This method will return documentElement in the following cases:\\r\\n\\t// 1) For the element inside the iframe without offsetParent, this method will return\\r\\n\\t// documentElement of the parent window\\r\\n\\t// 2) For the hidden or detached element\\r\\n\\t// 3) For body or html element, i.e. in case of the html node - it will return itself\\r\\n\\t//\\r\\n\\t// but those exceptions were never presented as a real life use-cases\\r\\n\\t// and might be considered as more preferable results.\\r\\n\\t//\\r\\n\\t// This logic, however, is not guaranteed and can change at any point in the future\\r\\n\\toffsetParent: function() {\\r\\n\\t\\treturn this.map( function() {\\r\\n\\t\\t\\tvar offsetParent = this.offsetParent;\\r\\n\\r\\n\\t\\t\\twhile ( offsetParent && jQuery.css( offsetParent, \\\"position\\\" ) === \\\"static\\\" ) {\\r\\n\\t\\t\\t\\toffsetParent = offsetParent.offsetParent;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\treturn offsetParent || documentElement;\\r\\n\\t\\t} );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\n// Create scrollLeft and scrollTop methods\\r\\njQuery.each( { scrollLeft: \\\"pageXOffset\\\", scrollTop: \\\"pageYOffset\\\" }, function( method, prop ) {\\r\\n\\tvar top = \\\"pageYOffset\\\" === prop;\\r\\n\\r\\n\\tjQuery.fn[ method ] = function( val ) {\\r\\n\\t\\treturn access( this, function( elem, method, val ) {\\r\\n\\t\\t\\tvar win = getWindow( elem );\\r\\n\\r\\n\\t\\t\\tif ( val === undefined ) {\\r\\n\\t\\t\\t\\treturn win ? win[ prop ] : elem[ method ];\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\tif ( win ) {\\r\\n\\t\\t\\t\\twin.scrollTo(\\r\\n\\t\\t\\t\\t\\t!top ? val : win.pageXOffset,\\r\\n\\t\\t\\t\\t\\ttop ? val : win.pageYOffset\\r\\n\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\telem[ method ] = val;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}, method, val, arguments.length );\\r\\n\\t};\\r\\n} );\\r\\n\\r\\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\\r\\n// Add the top/left cssHooks using jQuery.fn.position\\r\\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\\r\\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\\r\\n// getComputedStyle returns percent when specified for top/left/bottom/right;\\r\\n// rather than make the css module depend on the offset module, just check for it here\\r\\njQuery.each( [ \\\"top\\\", \\\"left\\\" ], function( i, prop ) {\\r\\n\\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\\r\\n\\t\\tfunction( elem, computed ) {\\r\\n\\t\\t\\tif ( computed ) {\\r\\n\\t\\t\\t\\tcomputed = curCSS( elem, prop );\\r\\n\\r\\n\\t\\t\\t\\t// If curCSS returns percentage, fallback to offset\\r\\n\\t\\t\\t\\treturn rnumnonpx.test( computed ) ?\\r\\n\\t\\t\\t\\t\\tjQuery( elem ).position()[ prop ] + \\\"px\\\" :\\r\\n\\t\\t\\t\\t\\tcomputed;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t);\\r\\n} );\\r\\n\\r\\n\\r\\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\\r\\njQuery.each( { Height: \\\"height\\\", Width: \\\"width\\\" }, function( name, type ) {\\r\\n\\tjQuery.each( { padding: \\\"inner\\\" + name, content: type, \\\"\\\": \\\"outer\\\" + name },\\r\\n\\t\\tfunction( defaultExtra, funcName ) {\\r\\n\\r\\n\\t\\t// Margin is only for outerHeight, outerWidth\\r\\n\\t\\tjQuery.fn[ funcName ] = function( margin, value ) {\\r\\n\\t\\t\\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \\\"boolean\\\" ),\\r\\n\\t\\t\\t\\textra = defaultExtra || ( margin === true || value === true ? \\\"margin\\\" : \\\"border\\\" );\\r\\n\\r\\n\\t\\t\\treturn access( this, function( elem, type, value ) {\\r\\n\\t\\t\\t\\tvar doc;\\r\\n\\r\\n\\t\\t\\t\\tif ( jQuery.isWindow( elem ) ) {\\r\\n\\r\\n\\t\\t\\t\\t\\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\\r\\n\\t\\t\\t\\t\\treturn funcName.indexOf( \\\"outer\\\" ) === 0 ?\\r\\n\\t\\t\\t\\t\\t\\telem[ \\\"inner\\\" + name ] :\\r\\n\\t\\t\\t\\t\\t\\telem.document.documentElement[ \\\"client\\\" + name ];\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t// Get document width or height\\r\\n\\t\\t\\t\\tif ( elem.nodeType === 9 ) {\\r\\n\\t\\t\\t\\t\\tdoc = elem.documentElement;\\r\\n\\r\\n\\t\\t\\t\\t\\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\\r\\n\\t\\t\\t\\t\\t// whichever is greatest\\r\\n\\t\\t\\t\\t\\treturn Math.max(\\r\\n\\t\\t\\t\\t\\t\\telem.body[ \\\"scroll\\\" + name ], doc[ \\\"scroll\\\" + name ],\\r\\n\\t\\t\\t\\t\\t\\telem.body[ \\\"offset\\\" + name ], doc[ \\\"offset\\\" + name ],\\r\\n\\t\\t\\t\\t\\t\\tdoc[ \\\"client\\\" + name ]\\r\\n\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\treturn value === undefined ?\\r\\n\\r\\n\\t\\t\\t\\t\\t// Get width or height on the element, requesting but not forcing parseFloat\\r\\n\\t\\t\\t\\t\\tjQuery.css( elem, type, extra ) :\\r\\n\\r\\n\\t\\t\\t\\t\\t// Set width or height on the element\\r\\n\\t\\t\\t\\t\\tjQuery.style( elem, type, value, extra );\\r\\n\\t\\t\\t}, type, chainable ? margin : undefined, chainable );\\r\\n\\t\\t};\\r\\n\\t} );\\r\\n} );\\r\\n\\r\\n\\r\\njQuery.fn.extend( {\\r\\n\\r\\n\\tbind: function( types, data, fn ) {\\r\\n\\t\\treturn this.on( types, null, data, fn );\\r\\n\\t},\\r\\n\\tunbind: function( types, fn ) {\\r\\n\\t\\treturn this.off( types, null, fn );\\r\\n\\t},\\r\\n\\r\\n\\tdelegate: function( selector, types, data, fn ) {\\r\\n\\t\\treturn this.on( types, selector, data, fn );\\r\\n\\t},\\r\\n\\tundelegate: function( selector, types, fn ) {\\r\\n\\r\\n\\t\\t// ( namespace ) or ( selector, types [, fn] )\\r\\n\\t\\treturn arguments.length === 1 ?\\r\\n\\t\\t\\tthis.off( selector, \\\"**\\\" ) :\\r\\n\\t\\t\\tthis.off( types, selector || \\\"**\\\", fn );\\r\\n\\t}\\r\\n} );\\r\\n\\r\\njQuery.parseJSON = JSON.parse;\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n// Register as a named AMD module, since jQuery can be concatenated with other\\r\\n// files that may use define, but not via a proper concatenation script that\\r\\n// understands anonymous AMD modules. A named AMD is safest and most robust\\r\\n// way to register. Lowercase jquery is used because AMD module names are\\r\\n// derived from file names, and jQuery is normally delivered in a lowercase\\r\\n// file name. Do this after creating the global so that if an AMD module wants\\r\\n// to call noConflict to hide this version of jQuery, it will work.\\r\\n\\r\\n// Note that for maximum portability, libraries that are not jQuery should\\r\\n// declare themselves as anonymous modules, and avoid setting a global if an\\r\\n// AMD loader is present. jQuery is a special case. For more information, see\\r\\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\\r\\n\\r\\nif ( typeof define === \\\"function\\\" && define.amd ) {\\r\\n\\tdefine( \\\"jquery\\\", [], function() {\\r\\n\\t\\treturn jQuery;\\r\\n\\t} );\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nvar\\r\\n\\r\\n\\t// Map over jQuery in case of overwrite\\r\\n\\t_jQuery = window.jQuery,\\r\\n\\r\\n\\t// Map over the $ in case of overwrite\\r\\n\\t_$ = window.$;\\r\\n\\r\\njQuery.noConflict = function( deep ) {\\r\\n\\tif ( window.$ === jQuery ) {\\r\\n\\t\\twindow.$ = _$;\\r\\n\\t}\\r\\n\\r\\n\\tif ( deep && window.jQuery === jQuery ) {\\r\\n\\t\\twindow.jQuery = _jQuery;\\r\\n\\t}\\r\\n\\r\\n\\treturn jQuery;\\r\\n};\\r\\n\\r\\n// Expose jQuery and $ identifiers, even in AMD\\r\\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\\r\\n// and CommonJS for browser emulators (#13566)\\r\\nif ( !noGlobal ) {\\r\\n\\twindow.jQuery = window.$ = jQuery;\\r\\n}\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nreturn jQuery;\\r\\n} );\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/~/raw-loader!D:/Duivan/HOME/Univ-Proj/~/source-map-loader!D:/Duivan/HOME/Univ-Proj/general/jquery/dist/jquery.js\n// module id = 1094\n// module chunks = 2","module.exports = \"/*! tether 1.3.7 */\\r\\n\\r\\n(function(root, factory) {\\r\\n if (typeof define === 'function' && define.amd) {\\r\\n define(factory);\\r\\n } else if (typeof exports === 'object') {\\r\\n module.exports = factory(require, exports, module);\\r\\n } else {\\r\\n root.Tether = factory();\\r\\n }\\r\\n}(this, function(require, exports, module) {\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\\r\\n\\r\\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\\r\\n\\r\\nvar TetherBase = undefined;\\r\\nif (typeof TetherBase === 'undefined') {\\r\\n TetherBase = { modules: [] };\\r\\n}\\r\\n\\r\\nvar zeroElement = null;\\r\\n\\r\\n// Same as native getBoundingClientRect, except it takes into account parent <frame> offsets\\r\\n// if the element lies within a nested document (<frame> or <iframe>-like).\\r\\nfunction getActualBoundingClientRect(node) {\\r\\n var boundingRect = node.getBoundingClientRect();\\r\\n\\r\\n // The original object returned by getBoundingClientRect is immutable, so we clone it\\r\\n // We can't use extend because the properties are not considered part of the object by hasOwnProperty in IE9\\r\\n var rect = {};\\r\\n for (var k in boundingRect) {\\r\\n rect[k] = boundingRect[k];\\r\\n }\\r\\n\\r\\n if (node.ownerDocument !== document) {\\r\\n var _frameElement = node.ownerDocument.defaultView.frameElement;\\r\\n if (_frameElement) {\\r\\n var frameRect = getActualBoundingClientRect(_frameElement);\\r\\n rect.top += frameRect.top;\\r\\n rect.bottom += frameRect.top;\\r\\n rect.left += frameRect.left;\\r\\n rect.right += frameRect.left;\\r\\n }\\r\\n }\\r\\n\\r\\n return rect;\\r\\n}\\r\\n\\r\\nfunction getScrollParents(el) {\\r\\n // In firefox if the el is inside an iframe with display: none; window.getComputedStyle() will return null;\\r\\n // https://bugzilla.mozilla.org/show_bug.cgi?id=548397\\r\\n var computedStyle = getComputedStyle(el) || {};\\r\\n var position = computedStyle.position;\\r\\n var parents = [];\\r\\n\\r\\n if (position === 'fixed') {\\r\\n return [el];\\r\\n }\\r\\n\\r\\n var parent = el;\\r\\n while ((parent = parent.parentNode) && parent && parent.nodeType === 1) {\\r\\n var style = undefined;\\r\\n try {\\r\\n style = getComputedStyle(parent);\\r\\n } catch (err) {}\\r\\n\\r\\n if (typeof style === 'undefined' || style === null) {\\r\\n parents.push(parent);\\r\\n return parents;\\r\\n }\\r\\n\\r\\n var _style = style;\\r\\n var overflow = _style.overflow;\\r\\n var overflowX = _style.overflowX;\\r\\n var overflowY = _style.overflowY;\\r\\n\\r\\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\\r\\n if (position !== 'absolute' || ['relative', 'absolute', 'fixed'].indexOf(style.position) >= 0) {\\r\\n parents.push(parent);\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n parents.push(el.ownerDocument.body);\\r\\n\\r\\n // If the node is within a frame, account for the parent window scroll\\r\\n if (el.ownerDocument !== document) {\\r\\n parents.push(el.ownerDocument.defaultView);\\r\\n }\\r\\n\\r\\n return parents;\\r\\n}\\r\\n\\r\\nvar uniqueId = (function () {\\r\\n var id = 0;\\r\\n return function () {\\r\\n return ++id;\\r\\n };\\r\\n})();\\r\\n\\r\\nvar zeroPosCache = {};\\r\\nvar getOrigin = function getOrigin() {\\r\\n // getBoundingClientRect is unfortunately too accurate. It introduces a pixel or two of\\r\\n // jitter as the user scrolls that messes with our ability to detect if two positions\\r\\n // are equivilant or not. We place an element at the top left of the page that will\\r\\n // get the same jitter, so we can cancel the two out.\\r\\n var node = zeroElement;\\r\\n if (!node) {\\r\\n node = document.createElement('div');\\r\\n node.setAttribute('data-tether-id', uniqueId());\\r\\n extend(node.style, {\\r\\n top: 0,\\r\\n left: 0,\\r\\n position: 'absolute'\\r\\n });\\r\\n\\r\\n document.body.appendChild(node);\\r\\n\\r\\n zeroElement = node;\\r\\n }\\r\\n\\r\\n var id = node.getAttribute('data-tether-id');\\r\\n if (typeof zeroPosCache[id] === 'undefined') {\\r\\n zeroPosCache[id] = getActualBoundingClientRect(node);\\r\\n\\r\\n // Clear the cache when this position call is done\\r\\n defer(function () {\\r\\n delete zeroPosCache[id];\\r\\n });\\r\\n }\\r\\n\\r\\n return zeroPosCache[id];\\r\\n};\\r\\n\\r\\nfunction removeUtilElements() {\\r\\n if (zeroElement) {\\r\\n document.body.removeChild(zeroElement);\\r\\n }\\r\\n zeroElement = null;\\r\\n};\\r\\n\\r\\nfunction getBounds(el) {\\r\\n var doc = undefined;\\r\\n if (el === document) {\\r\\n doc = document;\\r\\n el = document.documentElement;\\r\\n } else {\\r\\n doc = el.ownerDocument;\\r\\n }\\r\\n\\r\\n var docEl = doc.documentElement;\\r\\n\\r\\n var box = getActualBoundingClientRect(el);\\r\\n\\r\\n var origin = getOrigin();\\r\\n\\r\\n box.top -= origin.top;\\r\\n box.left -= origin.left;\\r\\n\\r\\n if (typeof box.width === 'undefined') {\\r\\n box.width = document.body.scrollWidth - box.left - box.right;\\r\\n }\\r\\n if (typeof box.height === 'undefined') {\\r\\n box.height = document.body.scrollHeight - box.top - box.bottom;\\r\\n }\\r\\n\\r\\n box.top = box.top - docEl.clientTop;\\r\\n box.left = box.left - docEl.clientLeft;\\r\\n box.right = doc.body.clientWidth - box.width - box.left;\\r\\n box.bottom = doc.body.clientHeight - box.height - box.top;\\r\\n\\r\\n return box;\\r\\n}\\r\\n\\r\\nfunction getOffsetParent(el) {\\r\\n return el.offsetParent || document.documentElement;\\r\\n}\\r\\n\\r\\nvar _scrollBarSize = null;\\r\\nfunction getScrollBarSize() {\\r\\n if (_scrollBarSize) {\\r\\n return _scrollBarSize;\\r\\n }\\r\\n var inner = document.createElement('div');\\r\\n inner.style.width = '100%';\\r\\n inner.style.height = '200px';\\r\\n\\r\\n var outer = document.createElement('div');\\r\\n extend(outer.style, {\\r\\n position: 'absolute',\\r\\n top: 0,\\r\\n left: 0,\\r\\n pointerEvents: 'none',\\r\\n visibility: 'hidden',\\r\\n width: '200px',\\r\\n height: '150px',\\r\\n overflow: 'hidden'\\r\\n });\\r\\n\\r\\n outer.appendChild(inner);\\r\\n\\r\\n document.body.appendChild(outer);\\r\\n\\r\\n var widthContained = inner.offsetWidth;\\r\\n outer.style.overflow = 'scroll';\\r\\n var widthScroll = inner.offsetWidth;\\r\\n\\r\\n if (widthContained === widthScroll) {\\r\\n widthScroll = outer.clientWidth;\\r\\n }\\r\\n\\r\\n document.body.removeChild(outer);\\r\\n\\r\\n var width = widthContained - widthScroll;\\r\\n\\r\\n _scrollBarSize = { width: width, height: width };\\r\\n return _scrollBarSize;\\r\\n}\\r\\n\\r\\nfunction extend() {\\r\\n var out = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\\r\\n\\r\\n var args = [];\\r\\n\\r\\n Array.prototype.push.apply(args, arguments);\\r\\n\\r\\n args.slice(1).forEach(function (obj) {\\r\\n if (obj) {\\r\\n for (var key in obj) {\\r\\n if (({}).hasOwnProperty.call(obj, key)) {\\r\\n out[key] = obj[key];\\r\\n }\\r\\n }\\r\\n }\\r\\n });\\r\\n\\r\\n return out;\\r\\n}\\r\\n\\r\\nfunction removeClass(el, name) {\\r\\n if (typeof el.classList !== 'undefined') {\\r\\n name.split(' ').forEach(function (cls) {\\r\\n if (cls.trim()) {\\r\\n el.classList.remove(cls);\\r\\n }\\r\\n });\\r\\n } else {\\r\\n var regex = new RegExp('(^| )' + name.split(' ').join('|') + '( |$)', 'gi');\\r\\n var className = getClassName(el).replace(regex, ' ');\\r\\n setClassName(el, className);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction addClass(el, name) {\\r\\n if (typeof el.classList !== 'undefined') {\\r\\n name.split(' ').forEach(function (cls) {\\r\\n if (cls.trim()) {\\r\\n el.classList.add(cls);\\r\\n }\\r\\n });\\r\\n } else {\\r\\n removeClass(el, name);\\r\\n var cls = getClassName(el) + (' ' + name);\\r\\n setClassName(el, cls);\\r\\n }\\r\\n}\\r\\n\\r\\nfunction hasClass(el, name) {\\r\\n if (typeof el.classList !== 'undefined') {\\r\\n return el.classList.contains(name);\\r\\n }\\r\\n var className = getClassName(el);\\r\\n return new RegExp('(^| )' + name + '( |$)', 'gi').test(className);\\r\\n}\\r\\n\\r\\nfunction getClassName(el) {\\r\\n // Can't use just SVGAnimatedString here since nodes within a Frame in IE have\\r\\n // completely separately SVGAnimatedString base classes\\r\\n if (el.className instanceof el.ownerDocument.defaultView.SVGAnimatedString) {\\r\\n return el.className.baseVal;\\r\\n }\\r\\n return el.className;\\r\\n}\\r\\n\\r\\nfunction setClassName(el, className) {\\r\\n el.setAttribute('class', className);\\r\\n}\\r\\n\\r\\nfunction updateClasses(el, add, all) {\\r\\n // Of the set of 'all' classes, we need the 'add' classes, and only the\\r\\n // 'add' classes to be set.\\r\\n all.forEach(function (cls) {\\r\\n if (add.indexOf(cls) === -1 && hasClass(el, cls)) {\\r\\n removeClass(el, cls);\\r\\n }\\r\\n });\\r\\n\\r\\n add.forEach(function (cls) {\\r\\n if (!hasClass(el, cls)) {\\r\\n addClass(el, cls);\\r\\n }\\r\\n });\\r\\n}\\r\\n\\r\\nvar deferred = [];\\r\\n\\r\\nvar defer = function defer(fn) {\\r\\n deferred.push(fn);\\r\\n};\\r\\n\\r\\nvar flush = function flush() {\\r\\n var fn = undefined;\\r\\n while (fn = deferred.pop()) {\\r\\n fn();\\r\\n }\\r\\n};\\r\\n\\r\\nvar Evented = (function () {\\r\\n function Evented() {\\r\\n _classCallCheck(this, Evented);\\r\\n }\\r\\n\\r\\n _createClass(Evented, [{\\r\\n key: 'on',\\r\\n value: function on(event, handler, ctx) {\\r\\n var once = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3];\\r\\n\\r\\n if (typeof this.bindings === 'undefined') {\\r\\n this.bindings = {};\\r\\n }\\r\\n if (typeof this.bindings[event] === 'undefined') {\\r\\n this.bindings[event] = [];\\r\\n }\\r\\n this.bindings[event].push({ handler: handler, ctx: ctx, once: once });\\r\\n }\\r\\n }, {\\r\\n key: 'once',\\r\\n value: function once(event, handler, ctx) {\\r\\n this.on(event, handler, ctx, true);\\r\\n }\\r\\n }, {\\r\\n key: 'off',\\r\\n value: function off(event, handler) {\\r\\n if (typeof this.bindings === 'undefined' || typeof this.bindings[event] === 'undefined') {\\r\\n return;\\r\\n }\\r\\n\\r\\n if (typeof handler === 'undefined') {\\r\\n delete this.bindings[event];\\r\\n } else {\\r\\n var i = 0;\\r\\n while (i < this.bindings[event].length) {\\r\\n if (this.bindings[event][i].handler === handler) {\\r\\n this.bindings[event].splice(i, 1);\\r\\n } else {\\r\\n ++i;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'trigger',\\r\\n value: function trigger(event) {\\r\\n if (typeof this.bindings !== 'undefined' && this.bindings[event]) {\\r\\n var i = 0;\\r\\n\\r\\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\\r\\n args[_key - 1] = arguments[_key];\\r\\n }\\r\\n\\r\\n while (i < this.bindings[event].length) {\\r\\n var _bindings$event$i = this.bindings[event][i];\\r\\n var handler = _bindings$event$i.handler;\\r\\n var ctx = _bindings$event$i.ctx;\\r\\n var once = _bindings$event$i.once;\\r\\n\\r\\n var context = ctx;\\r\\n if (typeof context === 'undefined') {\\r\\n context = this;\\r\\n }\\r\\n\\r\\n handler.apply(context, args);\\r\\n\\r\\n if (once) {\\r\\n this.bindings[event].splice(i, 1);\\r\\n } else {\\r\\n ++i;\\r\\n }\\r\\n }\\r\\n }\\r\\n }\\r\\n }]);\\r\\n\\r\\n return Evented;\\r\\n})();\\r\\n\\r\\nTetherBase.Utils = {\\r\\n getActualBoundingClientRect: getActualBoundingClientRect,\\r\\n getScrollParents: getScrollParents,\\r\\n getBounds: getBounds,\\r\\n getOffsetParent: getOffsetParent,\\r\\n extend: extend,\\r\\n addClass: addClass,\\r\\n removeClass: removeClass,\\r\\n hasClass: hasClass,\\r\\n updateClasses: updateClasses,\\r\\n defer: defer,\\r\\n flush: flush,\\r\\n uniqueId: uniqueId,\\r\\n Evented: Evented,\\r\\n getScrollBarSize: getScrollBarSize,\\r\\n removeUtilElements: removeUtilElements\\r\\n};\\r\\n/* globals TetherBase, performance */\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\\r\\n\\r\\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\\r\\n\\r\\nvar _get = function get(_x6, _x7, _x8) { var _again = true; _function: while (_again) { var object = _x6, property = _x7, receiver = _x8; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x6 = parent; _x7 = property; _x8 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\\r\\n\\r\\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\\r\\n\\r\\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\\r\\n\\r\\nif (typeof TetherBase === 'undefined') {\\r\\n throw new Error('You must include the utils.js file before tether.js');\\r\\n}\\r\\n\\r\\nvar _TetherBase$Utils = TetherBase.Utils;\\r\\nvar getScrollParents = _TetherBase$Utils.getScrollParents;\\r\\nvar getBounds = _TetherBase$Utils.getBounds;\\r\\nvar getOffsetParent = _TetherBase$Utils.getOffsetParent;\\r\\nvar extend = _TetherBase$Utils.extend;\\r\\nvar addClass = _TetherBase$Utils.addClass;\\r\\nvar removeClass = _TetherBase$Utils.removeClass;\\r\\nvar updateClasses = _TetherBase$Utils.updateClasses;\\r\\nvar defer = _TetherBase$Utils.defer;\\r\\nvar flush = _TetherBase$Utils.flush;\\r\\nvar getScrollBarSize = _TetherBase$Utils.getScrollBarSize;\\r\\nvar removeUtilElements = _TetherBase$Utils.removeUtilElements;\\r\\n\\r\\nfunction within(a, b) {\\r\\n var diff = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2];\\r\\n\\r\\n return a + diff >= b && b >= a - diff;\\r\\n}\\r\\n\\r\\nvar transformKey = (function () {\\r\\n if (typeof document === 'undefined') {\\r\\n return '';\\r\\n }\\r\\n var el = document.createElement('div');\\r\\n\\r\\n var transforms = ['transform', 'WebkitTransform', 'OTransform', 'MozTransform', 'msTransform'];\\r\\n for (var i = 0; i < transforms.length; ++i) {\\r\\n var key = transforms[i];\\r\\n if (el.style[key] !== undefined) {\\r\\n return key;\\r\\n }\\r\\n }\\r\\n})();\\r\\n\\r\\nvar tethers = [];\\r\\n\\r\\nvar position = function position() {\\r\\n tethers.forEach(function (tether) {\\r\\n tether.position(false);\\r\\n });\\r\\n flush();\\r\\n};\\r\\n\\r\\nfunction now() {\\r\\n if (typeof performance !== 'undefined' && typeof performance.now !== 'undefined') {\\r\\n return performance.now();\\r\\n }\\r\\n return +new Date();\\r\\n}\\r\\n\\r\\n(function () {\\r\\n var lastCall = null;\\r\\n var lastDuration = null;\\r\\n var pendingTimeout = null;\\r\\n\\r\\n var tick = function tick() {\\r\\n if (typeof lastDuration !== 'undefined' && lastDuration > 16) {\\r\\n // We voluntarily throttle ourselves if we can't manage 60fps\\r\\n lastDuration = Math.min(lastDuration - 16, 250);\\r\\n\\r\\n // Just in case this is the last event, remember to position just once more\\r\\n pendingTimeout = setTimeout(tick, 250);\\r\\n return;\\r\\n }\\r\\n\\r\\n if (typeof lastCall !== 'undefined' && now() - lastCall < 10) {\\r\\n // Some browsers call events a little too frequently, refuse to run more than is reasonable\\r\\n return;\\r\\n }\\r\\n\\r\\n if (pendingTimeout != null) {\\r\\n clearTimeout(pendingTimeout);\\r\\n pendingTimeout = null;\\r\\n }\\r\\n\\r\\n lastCall = now();\\r\\n position();\\r\\n lastDuration = now() - lastCall;\\r\\n };\\r\\n\\r\\n if (typeof window !== 'undefined' && typeof window.addEventListener !== 'undefined') {\\r\\n ['resize', 'scroll', 'touchmove'].forEach(function (event) {\\r\\n window.addEventListener(event, tick);\\r\\n });\\r\\n }\\r\\n})();\\r\\n\\r\\nvar MIRROR_LR = {\\r\\n center: 'center',\\r\\n left: 'right',\\r\\n right: 'left'\\r\\n};\\r\\n\\r\\nvar MIRROR_TB = {\\r\\n middle: 'middle',\\r\\n top: 'bottom',\\r\\n bottom: 'top'\\r\\n};\\r\\n\\r\\nvar OFFSET_MAP = {\\r\\n top: 0,\\r\\n left: 0,\\r\\n middle: '50%',\\r\\n center: '50%',\\r\\n bottom: '100%',\\r\\n right: '100%'\\r\\n};\\r\\n\\r\\nvar autoToFixedAttachment = function autoToFixedAttachment(attachment, relativeToAttachment) {\\r\\n var left = attachment.left;\\r\\n var top = attachment.top;\\r\\n\\r\\n if (left === 'auto') {\\r\\n left = MIRROR_LR[relativeToAttachment.left];\\r\\n }\\r\\n\\r\\n if (top === 'auto') {\\r\\n top = MIRROR_TB[relativeToAttachment.top];\\r\\n }\\r\\n\\r\\n return { left: left, top: top };\\r\\n};\\r\\n\\r\\nvar attachmentToOffset = function attachmentToOffset(attachment) {\\r\\n var left = attachment.left;\\r\\n var top = attachment.top;\\r\\n\\r\\n if (typeof OFFSET_MAP[attachment.left] !== 'undefined') {\\r\\n left = OFFSET_MAP[attachment.left];\\r\\n }\\r\\n\\r\\n if (typeof OFFSET_MAP[attachment.top] !== 'undefined') {\\r\\n top = OFFSET_MAP[attachment.top];\\r\\n }\\r\\n\\r\\n return { left: left, top: top };\\r\\n};\\r\\n\\r\\nfunction addOffset() {\\r\\n var out = { top: 0, left: 0 };\\r\\n\\r\\n for (var _len = arguments.length, offsets = Array(_len), _key = 0; _key < _len; _key++) {\\r\\n offsets[_key] = arguments[_key];\\r\\n }\\r\\n\\r\\n offsets.forEach(function (_ref) {\\r\\n var top = _ref.top;\\r\\n var left = _ref.left;\\r\\n\\r\\n if (typeof top === 'string') {\\r\\n top = parseFloat(top, 10);\\r\\n }\\r\\n if (typeof left === 'string') {\\r\\n left = parseFloat(left, 10);\\r\\n }\\r\\n\\r\\n out.top += top;\\r\\n out.left += left;\\r\\n });\\r\\n\\r\\n return out;\\r\\n}\\r\\n\\r\\nfunction offsetToPx(offset, size) {\\r\\n if (typeof offset.left === 'string' && offset.left.indexOf('%') !== -1) {\\r\\n offset.left = parseFloat(offset.left, 10) / 100 * size.width;\\r\\n }\\r\\n if (typeof offset.top === 'string' && offset.top.indexOf('%') !== -1) {\\r\\n offset.top = parseFloat(offset.top, 10) / 100 * size.height;\\r\\n }\\r\\n\\r\\n return offset;\\r\\n}\\r\\n\\r\\nvar parseOffset = function parseOffset(value) {\\r\\n var _value$split = value.split(' ');\\r\\n\\r\\n var _value$split2 = _slicedToArray(_value$split, 2);\\r\\n\\r\\n var top = _value$split2[0];\\r\\n var left = _value$split2[1];\\r\\n\\r\\n return { top: top, left: left };\\r\\n};\\r\\nvar parseAttachment = parseOffset;\\r\\n\\r\\nvar TetherClass = (function (_Evented) {\\r\\n _inherits(TetherClass, _Evented);\\r\\n\\r\\n function TetherClass(options) {\\r\\n var _this = this;\\r\\n\\r\\n _classCallCheck(this, TetherClass);\\r\\n\\r\\n _get(Object.getPrototypeOf(TetherClass.prototype), 'constructor', this).call(this);\\r\\n this.position = this.position.bind(this);\\r\\n\\r\\n tethers.push(this);\\r\\n\\r\\n this.history = [];\\r\\n\\r\\n this.setOptions(options, false);\\r\\n\\r\\n TetherBase.modules.forEach(function (module) {\\r\\n if (typeof module.initialize !== 'undefined') {\\r\\n module.initialize.call(_this);\\r\\n }\\r\\n });\\r\\n\\r\\n this.position();\\r\\n }\\r\\n\\r\\n _createClass(TetherClass, [{\\r\\n key: 'getClass',\\r\\n value: function getClass() {\\r\\n var key = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0];\\r\\n var classes = this.options.classes;\\r\\n\\r\\n if (typeof classes !== 'undefined' && classes[key]) {\\r\\n return this.options.classes[key];\\r\\n } else if (this.options.classPrefix) {\\r\\n return this.options.classPrefix + '-' + key;\\r\\n } else {\\r\\n return key;\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'setOptions',\\r\\n value: function setOptions(options) {\\r\\n var _this2 = this;\\r\\n\\r\\n var pos = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];\\r\\n\\r\\n var defaults = {\\r\\n offset: '0 0',\\r\\n targetOffset: '0 0',\\r\\n targetAttachment: 'auto auto',\\r\\n classPrefix: 'tether'\\r\\n };\\r\\n\\r\\n this.options = extend(defaults, options);\\r\\n\\r\\n var _options = this.options;\\r\\n var element = _options.element;\\r\\n var target = _options.target;\\r\\n var targetModifier = _options.targetModifier;\\r\\n\\r\\n this.element = element;\\r\\n this.target = target;\\r\\n this.targetModifier = targetModifier;\\r\\n\\r\\n if (this.target === 'viewport') {\\r\\n this.target = document.body;\\r\\n this.targetModifier = 'visible';\\r\\n } else if (this.target === 'scroll-handle') {\\r\\n this.target = document.body;\\r\\n this.targetModifier = 'scroll-handle';\\r\\n }\\r\\n\\r\\n ['element', 'target'].forEach(function (key) {\\r\\n if (typeof _this2[key] === 'undefined') {\\r\\n throw new Error('Tether Error: Both element and target must be defined');\\r\\n }\\r\\n\\r\\n if (typeof _this2[key].jquery !== 'undefined') {\\r\\n _this2[key] = _this2[key][0];\\r\\n } else if (typeof _this2[key] === 'string') {\\r\\n _this2[key] = document.querySelector(_this2[key]);\\r\\n }\\r\\n });\\r\\n\\r\\n addClass(this.element, this.getClass('element'));\\r\\n if (!(this.options.addTargetClasses === false)) {\\r\\n addClass(this.target, this.getClass('target'));\\r\\n }\\r\\n\\r\\n if (!this.options.attachment) {\\r\\n throw new Error('Tether Error: You must provide an attachment');\\r\\n }\\r\\n\\r\\n this.targetAttachment = parseAttachment(this.options.targetAttachment);\\r\\n this.attachment = parseAttachment(this.options.attachment);\\r\\n this.offset = parseOffset(this.options.offset);\\r\\n this.targetOffset = parseOffset(this.options.targetOffset);\\r\\n\\r\\n if (typeof this.scrollParents !== 'undefined') {\\r\\n this.disable();\\r\\n }\\r\\n\\r\\n if (this.targetModifier === 'scroll-handle') {\\r\\n this.scrollParents = [this.target];\\r\\n } else {\\r\\n this.scrollParents = getScrollParents(this.target);\\r\\n }\\r\\n\\r\\n if (!(this.options.enabled === false)) {\\r\\n this.enable(pos);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'getTargetBounds',\\r\\n value: function getTargetBounds() {\\r\\n if (typeof this.targetModifier !== 'undefined') {\\r\\n if (this.targetModifier === 'visible') {\\r\\n if (this.target === document.body) {\\r\\n return { top: pageYOffset, left: pageXOffset, height: innerHeight, width: innerWidth };\\r\\n } else {\\r\\n var bounds = getBounds(this.target);\\r\\n\\r\\n var out = {\\r\\n height: bounds.height,\\r\\n width: bounds.width,\\r\\n top: bounds.top,\\r\\n left: bounds.left\\r\\n };\\r\\n\\r\\n out.height = Math.min(out.height, bounds.height - (pageYOffset - bounds.top));\\r\\n out.height = Math.min(out.height, bounds.height - (bounds.top + bounds.height - (pageYOffset + innerHeight)));\\r\\n out.height = Math.min(innerHeight, out.height);\\r\\n out.height -= 2;\\r\\n\\r\\n out.width = Math.min(out.width, bounds.width - (pageXOffset - bounds.left));\\r\\n out.width = Math.min(out.width, bounds.width - (bounds.left + bounds.width - (pageXOffset + innerWidth)));\\r\\n out.width = Math.min(innerWidth, out.width);\\r\\n out.width -= 2;\\r\\n\\r\\n if (out.top < pageYOffset) {\\r\\n out.top = pageYOffset;\\r\\n }\\r\\n if (out.left < pageXOffset) {\\r\\n out.left = pageXOffset;\\r\\n }\\r\\n\\r\\n return out;\\r\\n }\\r\\n } else if (this.targetModifier === 'scroll-handle') {\\r\\n var bounds = undefined;\\r\\n var target = this.target;\\r\\n if (target === document.body) {\\r\\n target = document.documentElement;\\r\\n\\r\\n bounds = {\\r\\n left: pageXOffset,\\r\\n top: pageYOffset,\\r\\n height: innerHeight,\\r\\n width: innerWidth\\r\\n };\\r\\n } else {\\r\\n bounds = getBounds(target);\\r\\n }\\r\\n\\r\\n var style = getComputedStyle(target);\\r\\n\\r\\n var hasBottomScroll = target.scrollWidth > target.clientWidth || [style.overflow, style.overflowX].indexOf('scroll') >= 0 || this.target !== document.body;\\r\\n\\r\\n var scrollBottom = 0;\\r\\n if (hasBottomScroll) {\\r\\n scrollBottom = 15;\\r\\n }\\r\\n\\r\\n var height = bounds.height - parseFloat(style.borderTopWidth) - parseFloat(style.borderBottomWidth) - scrollBottom;\\r\\n\\r\\n var out = {\\r\\n width: 15,\\r\\n height: height * 0.975 * (height / target.scrollHeight),\\r\\n left: bounds.left + bounds.width - parseFloat(style.borderLeftWidth) - 15\\r\\n };\\r\\n\\r\\n var fitAdj = 0;\\r\\n if (height < 408 && this.target === document.body) {\\r\\n fitAdj = -0.00011 * Math.pow(height, 2) - 0.00727 * height + 22.58;\\r\\n }\\r\\n\\r\\n if (this.target !== document.body) {\\r\\n out.height = Math.max(out.height, 24);\\r\\n }\\r\\n\\r\\n var scrollPercentage = this.target.scrollTop / (target.scrollHeight - height);\\r\\n out.top = scrollPercentage * (height - out.height - fitAdj) + bounds.top + parseFloat(style.borderTopWidth);\\r\\n\\r\\n if (this.target === document.body) {\\r\\n out.height = Math.max(out.height, 24);\\r\\n }\\r\\n\\r\\n return out;\\r\\n }\\r\\n } else {\\r\\n return getBounds(this.target);\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'clearCache',\\r\\n value: function clearCache() {\\r\\n this._cache = {};\\r\\n }\\r\\n }, {\\r\\n key: 'cache',\\r\\n value: function cache(k, getter) {\\r\\n // More than one module will often need the same DOM info, so\\r\\n // we keep a cache which is cleared on each position call\\r\\n if (typeof this._cache === 'undefined') {\\r\\n this._cache = {};\\r\\n }\\r\\n\\r\\n if (typeof this._cache[k] === 'undefined') {\\r\\n this._cache[k] = getter.call(this);\\r\\n }\\r\\n\\r\\n return this._cache[k];\\r\\n }\\r\\n }, {\\r\\n key: 'enable',\\r\\n value: function enable() {\\r\\n var _this3 = this;\\r\\n\\r\\n var pos = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\\r\\n\\r\\n if (!(this.options.addTargetClasses === false)) {\\r\\n addClass(this.target, this.getClass('enabled'));\\r\\n }\\r\\n addClass(this.element, this.getClass('enabled'));\\r\\n this.enabled = true;\\r\\n\\r\\n this.scrollParents.forEach(function (parent) {\\r\\n if (parent !== _this3.target.ownerDocument) {\\r\\n parent.addEventListener('scroll', _this3.position);\\r\\n }\\r\\n });\\r\\n\\r\\n if (pos) {\\r\\n this.position();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'disable',\\r\\n value: function disable() {\\r\\n var _this4 = this;\\r\\n\\r\\n removeClass(this.target, this.getClass('enabled'));\\r\\n removeClass(this.element, this.getClass('enabled'));\\r\\n this.enabled = false;\\r\\n\\r\\n if (typeof this.scrollParents !== 'undefined') {\\r\\n this.scrollParents.forEach(function (parent) {\\r\\n parent.removeEventListener('scroll', _this4.position);\\r\\n });\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'destroy',\\r\\n value: function destroy() {\\r\\n var _this5 = this;\\r\\n\\r\\n this.disable();\\r\\n\\r\\n tethers.forEach(function (tether, i) {\\r\\n if (tether === _this5) {\\r\\n tethers.splice(i, 1);\\r\\n }\\r\\n });\\r\\n\\r\\n // Remove any elements we were using for convenience from the DOM\\r\\n if (tethers.length === 0) {\\r\\n removeUtilElements();\\r\\n }\\r\\n }\\r\\n }, {\\r\\n key: 'updateAttachClasses',\\r\\n value: function updateAttachClasses(elementAttach, targetAttach) {\\r\\n var _this6 = this;\\r\\n\\r\\n elementAttach = elementAttach || this.attachment;\\r\\n targetAttach = targetAttach || this.targetAttachment;\\r\\n var sides = ['left', 'top', 'bottom', 'right', 'middle', 'center'];\\r\\n\\r\\n if (typeof this._addAttachClasses !== 'undefined' && this._addAttachClasses.length) {\\r\\n // updateAttachClasses can be called more than once in a position call, so\\r\\n // we need to clean up after ourselves such that when the last defer gets\\r\\n // ran it doesn't add any extra classes from previous calls.\\r\\n this._addAttachClasses.splice(0, this._addAttachClasses.length);\\r\\n }\\r\\n\\r\\n if (typeof this._addAttachClasses === 'undefined') {\\r\\n this._addAttachClasses = [];\\r\\n }\\r\\n var add = this._addAttachClasses;\\r\\n\\r\\n if (elementAttach.top) {\\r\\n add.push(this.getClass('element-attached') + '-' + elementAttach.top);\\r\\n }\\r\\n if (elementAttach.left) {\\r\\n add.push(this.getClass('element-attached') + '-' + elementAttach.left);\\r\\n }\\r\\n if (targetAttach.top) {\\r\\n add.push(this.getClass('target-attached') + '-' + targetAttach.top);\\r\\n }\\r\\n if (targetAttach.left) {\\r\\n add.push(this.getClass('target-attached') + '-' + targetAttach.left);\\r\\n }\\r\\n\\r\\n var all = [];\\r\\n sides.forEach(function (side) {\\r\\n all.push(_this6.getClass('element-attached') + '-' + side);\\r\\n all.push(_this6.getClass('target-attached') + '-' + side);\\r\\n });\\r\\n\\r\\n defer(function () {\\r\\n if (!(typeof _this6._addAttachClasses !== 'undefined')) {\\r\\n return;\\r\\n }\\r\\n\\r\\n updateClasses(_this6.element, _this6._addAttachClasses, all);\\r\\n if (!(_this6.options.addTargetClasses === false)) {\\r\\n updateClasses(_this6.target, _this6._addAttachClasses, all);\\r\\n }\\r\\n\\r\\n delete _this6._addAttachClasses;\\r\\n });\\r\\n }\\r\\n }, {\\r\\n key: 'position',\\r\\n value: function position() {\\r\\n var _this7 = this;\\r\\n\\r\\n var flushChanges = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\\r\\n\\r\\n // flushChanges commits the changes immediately, leave true unless you are positioning multiple\\r\\n // tethers (in which case call Tether.Utils.flush yourself when you're done)\\r\\n\\r\\n if (!this.enabled) {\\r\\n return;\\r\\n }\\r\\n\\r\\n this.clearCache();\\r\\n\\r\\n // Turn 'auto' attachments into the appropriate corner or edge\\r\\n var targetAttachment = autoToFixedAttachment(this.targetAttachment, this.attachment);\\r\\n\\r\\n this.updateAttachClasses(this.attachment, targetAttachment);\\r\\n\\r\\n var elementPos = this.cache('element-bounds', function () {\\r\\n return getBounds(_this7.element);\\r\\n });\\r\\n\\r\\n var width = elementPos.width;\\r\\n var height = elementPos.height;\\r\\n\\r\\n if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {\\r\\n var _lastSize = this.lastSize;\\r\\n\\r\\n // We cache the height and width to make it possible to position elements that are\\r\\n // getting hidden.\\r\\n width = _lastSize.width;\\r\\n height = _lastSize.height;\\r\\n } else {\\r\\n this.lastSize = { width: width, height: height };\\r\\n }\\r\\n\\r\\n var targetPos = this.cache('target-bounds', function () {\\r\\n return _this7.getTargetBounds();\\r\\n });\\r\\n var targetSize = targetPos;\\r\\n\\r\\n // Get an actual px offset from the attachment\\r\\n var offset = offsetToPx(attachmentToOffset(this.attachment), { width: width, height: height });\\r\\n var targetOffset = offsetToPx(attachmentToOffset(targetAttachment), targetSize);\\r\\n\\r\\n var manualOffset = offsetToPx(this.offset, { width: width, height: height });\\r\\n var manualTargetOffset = offsetToPx(this.targetOffset, targetSize);\\r\\n\\r\\n // Add the manually provided offset\\r\\n offset = addOffset(offset, manualOffset);\\r\\n targetOffset = addOffset(targetOffset, manualTargetOffset);\\r\\n\\r\\n // It's now our goal to make (element position + offset) == (target position + target offset)\\r\\n var left = targetPos.left + targetOffset.left - offset.left;\\r\\n var top = targetPos.top + targetOffset.top - offset.top;\\r\\n\\r\\n for (var i = 0; i < TetherBase.modules.length; ++i) {\\r\\n var _module2 = TetherBase.modules[i];\\r\\n var ret = _module2.position.call(this, {\\r\\n left: left,\\r\\n top: top,\\r\\n targetAttachment: targetAttachment,\\r\\n targetPos: targetPos,\\r\\n elementPos: elementPos,\\r\\n offset: offset,\\r\\n targetOffset: targetOffset,\\r\\n manualOffset: manualOffset,\\r\\n manualTargetOffset: manualTargetOffset,\\r\\n scrollbarSize: scrollbarSize,\\r\\n attachment: this.attachment\\r\\n });\\r\\n\\r\\n if (ret === false) {\\r\\n return false;\\r\\n } else if (typeof ret === 'undefined' || typeof ret !== 'object') {\\r\\n continue;\\r\\n } else {\\r\\n top = ret.top;\\r\\n left = ret.left;\\r\\n }\\r\\n }\\r\\n\\r\\n // We describe the position three different ways to give the optimizer\\r\\n // a chance to decide the best possible way to position the element\\r\\n // with the fewest repaints.\\r\\n var next = {\\r\\n // It's position relative to the page (absolute positioning when\\r\\n // the element is a child of the body)\\r\\n page: {\\r\\n top: top,\\r\\n left: left\\r\\n },\\r\\n\\r\\n // It's position relative to the viewport (fixed positioning)\\r\\n viewport: {\\r\\n top: top - pageYOffset,\\r\\n bottom: pageYOffset - top - height + innerHeight,\\r\\n left: left - pageXOffset,\\r\\n right: pageXOffset - left - width + innerWidth\\r\\n }\\r\\n };\\r\\n\\r\\n var doc = this.target.ownerDocument;\\r\\n var win = doc.defaultView;\\r\\n\\r\\n var scrollbarSize = undefined;\\r\\n if (win.innerHeight > doc.documentElement.clientHeight) {\\r\\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\\r\\n next.viewport.bottom -= scrollbarSize.height;\\r\\n }\\r\\n\\r\\n if (win.innerWidth > doc.documentElement.clientWidth) {\\r\\n scrollbarSize = this.cache('scrollbar-size', getScrollBarSize);\\r\\n next.viewport.right -= scrollbarSize.width;\\r\\n }\\r\\n\\r\\n if (['', 'static'].indexOf(doc.body.style.position) === -1 || ['', 'static'].indexOf(doc.body.parentElement.style.position) === -1) {\\r\\n // Absolute positioning in the body will be relative to the page, not the 'initial containing block'\\r\\n next.page.bottom = doc.body.scrollHeight - top - height;\\r\\n next.page.right = doc.body.scrollWidth - left - width;\\r\\n }\\r\\n\\r\\n if (typeof this.options.optimizations !== 'undefined' && this.options.optimizations.moveElement !== false && !(typeof this.targetModifier !== 'undefined')) {\\r\\n (function () {\\r\\n var offsetParent = _this7.cache('target-offsetparent', function () {\\r\\n return getOffsetParent(_this7.target);\\r\\n });\\r\\n var offsetPosition = _this7.cache('target-offsetparent-bounds', function () {\\r\\n return getBounds(offsetParent);\\r\\n });\\r\\n var offsetParentStyle = getComputedStyle(offsetParent);\\r\\n var offsetParentSize = offsetPosition;\\r\\n\\r\\n var offsetBorder = {};\\r\\n ['Top', 'Left', 'Bottom', 'Right'].forEach(function (side) {\\r\\n offsetBorder[side.toLowerCase()] = parseFloat(offsetParentStyle['border' + side + 'Width']);\\r\\n });\\r\\n\\r\\n offsetPosition.right = doc.body.scrollWidth - offsetPosition.left - offsetParentSize.width + offsetBorder.right;\\r\\n offsetPosition.bottom = doc.body.scrollHeight - offsetPosition.top - offsetParentSize.height + offsetBorder.bottom;\\r\\n\\r\\n if (next.page.top >= offsetPosition.top + offsetBorder.top && next.page.bottom >= offsetPosition.bottom) {\\r\\n if (next.page.left >= offsetPosition.left + offsetBorder.left && next.page.right >= offsetPosition.right) {\\r\\n // We're within the visible part of the target's scroll parent\\r\\n var scrollTop = offsetParent.scrollTop;\\r\\n var scrollLeft = offsetParent.scrollLeft;\\r\\n\\r\\n // It's position relative to the target's offset parent (absolute positioning when\\r\\n // the element is moved to be a child of the target's offset parent).\\r\\n next.offset = {\\r\\n top: next.page.top - offsetPosition.top + scrollTop - offsetBorder.top,\\r\\n left: next.page.left - offsetPosition.left + scrollLeft - offsetBorder.left\\r\\n };\\r\\n }\\r\\n }\\r\\n })();\\r\\n }\\r\\n\\r\\n // We could also travel up the DOM and try each containing context, rather than only\\r\\n // looking at the body, but we're gonna get diminishing returns.\\r\\n\\r\\n this.move(next);\\r\\n\\r\\n this.history.unshift(next);\\r\\n\\r\\n if (this.history.length > 3) {\\r\\n this.history.pop();\\r\\n }\\r\\n\\r\\n if (flushChanges) {\\r\\n flush();\\r\\n }\\r\\n\\r\\n return true;\\r\\n }\\r\\n\\r\\n // THE ISSUE\\r\\n }, {\\r\\n key: 'move',\\r\\n value: function move(pos) {\\r\\n var _this8 = this;\\r\\n\\r\\n if (!(typeof this.element.parentNode !== 'undefined')) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var same = {};\\r\\n\\r\\n for (var type in pos) {\\r\\n same[type] = {};\\r\\n\\r\\n for (var key in pos[type]) {\\r\\n var found = false;\\r\\n\\r\\n for (var i = 0; i < this.history.length; ++i) {\\r\\n var point = this.history[i];\\r\\n if (typeof point[type] !== 'undefined' && !within(point[type][key], pos[type][key])) {\\r\\n found = true;\\r\\n break;\\r\\n }\\r\\n }\\r\\n\\r\\n if (!found) {\\r\\n same[type][key] = true;\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n var css = { top: '', left: '', right: '', bottom: '' };\\r\\n\\r\\n var transcribe = function transcribe(_same, _pos) {\\r\\n var hasOptimizations = typeof _this8.options.optimizations !== 'undefined';\\r\\n var gpu = hasOptimizations ? _this8.options.optimizations.gpu : null;\\r\\n if (gpu !== false) {\\r\\n var yPos = undefined,\\r\\n xPos = undefined;\\r\\n if (_same.top) {\\r\\n css.top = 0;\\r\\n yPos = _pos.top;\\r\\n } else {\\r\\n css.bottom = 0;\\r\\n yPos = -_pos.bottom;\\r\\n }\\r\\n\\r\\n if (_same.left) {\\r\\n css.left = 0;\\r\\n xPos = _pos.left;\\r\\n } else {\\r\\n css.right = 0;\\r\\n xPos = -_pos.right;\\r\\n }\\r\\n\\r\\n if (window.matchMedia) {\\r\\n // HubSpot/tether#207\\r\\n var retina = window.matchMedia('only screen and (min-resolution: 1.3dppx)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 1.3)').matches;\\r\\n if (!retina) {\\r\\n xPos = Math.round(xPos);\\r\\n yPos = Math.round(yPos);\\r\\n }\\r\\n }\\r\\n\\r\\n css[transformKey] = 'translateX(' + xPos + 'px) translateY(' + yPos + 'px)';\\r\\n\\r\\n if (transformKey !== 'msTransform') {\\r\\n // The Z transform will keep this in the GPU (faster, and prevents artifacts),\\r\\n // but IE9 doesn't support 3d transforms and will choke.\\r\\n css[transformKey] += \\\" translateZ(0)\\\";\\r\\n }\\r\\n } else {\\r\\n if (_same.top) {\\r\\n css.top = _pos.top + 'px';\\r\\n } else {\\r\\n css.bottom = _pos.bottom + 'px';\\r\\n }\\r\\n\\r\\n if (_same.left) {\\r\\n css.left = _pos.left + 'px';\\r\\n } else {\\r\\n css.right = _pos.right + 'px';\\r\\n }\\r\\n }\\r\\n };\\r\\n\\r\\n var moved = false;\\r\\n if ((same.page.top || same.page.bottom) && (same.page.left || same.page.right)) {\\r\\n css.position = 'absolute';\\r\\n transcribe(same.page, pos.page);\\r\\n } else if ((same.viewport.top || same.viewport.bottom) && (same.viewport.left || same.viewport.right)) {\\r\\n css.position = 'fixed';\\r\\n transcribe(same.viewport, pos.viewport);\\r\\n } else if (typeof same.offset !== 'undefined' && same.offset.top && same.offset.left) {\\r\\n (function () {\\r\\n css.position = 'absolute';\\r\\n var offsetParent = _this8.cache('target-offsetparent', function () {\\r\\n return getOffsetParent(_this8.target);\\r\\n });\\r\\n\\r\\n if (getOffsetParent(_this8.element) !== offsetParent) {\\r\\n defer(function () {\\r\\n _this8.element.parentNode.removeChild(_this8.element);\\r\\n offsetParent.appendChild(_this8.element);\\r\\n });\\r\\n }\\r\\n\\r\\n transcribe(same.offset, pos.offset);\\r\\n moved = true;\\r\\n })();\\r\\n } else {\\r\\n css.position = 'absolute';\\r\\n transcribe({ top: true, left: true }, pos.page);\\r\\n }\\r\\n\\r\\n if (!moved) {\\r\\n var offsetParentIsBody = true;\\r\\n var currentNode = this.element.parentNode;\\r\\n while (currentNode && currentNode.nodeType === 1 && currentNode.tagName !== 'BODY') {\\r\\n if (getComputedStyle(currentNode).position !== 'static') {\\r\\n offsetParentIsBody = false;\\r\\n break;\\r\\n }\\r\\n\\r\\n currentNode = currentNode.parentNode;\\r\\n }\\r\\n\\r\\n if (!offsetParentIsBody) {\\r\\n this.element.parentNode.removeChild(this.element);\\r\\n this.element.ownerDocument.body.appendChild(this.element);\\r\\n }\\r\\n }\\r\\n\\r\\n // Any css change will trigger a repaint, so let's avoid one if nothing changed\\r\\n var writeCSS = {};\\r\\n var write = false;\\r\\n for (var key in css) {\\r\\n var val = css[key];\\r\\n var elVal = this.element.style[key];\\r\\n\\r\\n if (elVal !== val) {\\r\\n write = true;\\r\\n writeCSS[key] = val;\\r\\n }\\r\\n }\\r\\n\\r\\n if (write) {\\r\\n defer(function () {\\r\\n extend(_this8.element.style, writeCSS);\\r\\n _this8.trigger('repositioned');\\r\\n });\\r\\n }\\r\\n }\\r\\n }]);\\r\\n\\r\\n return TetherClass;\\r\\n})(Evented);\\r\\n\\r\\nTetherClass.modules = [];\\r\\n\\r\\nTetherBase.position = position;\\r\\n\\r\\nvar Tether = extend(TetherClass, TetherBase);\\r\\n/* globals TetherBase */\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\\r\\n\\r\\nvar _TetherBase$Utils = TetherBase.Utils;\\r\\nvar getBounds = _TetherBase$Utils.getBounds;\\r\\nvar extend = _TetherBase$Utils.extend;\\r\\nvar updateClasses = _TetherBase$Utils.updateClasses;\\r\\nvar defer = _TetherBase$Utils.defer;\\r\\n\\r\\nvar BOUNDS_FORMAT = ['left', 'top', 'right', 'bottom'];\\r\\n\\r\\nfunction getBoundingRect(tether, to) {\\r\\n if (to === 'scrollParent') {\\r\\n to = tether.scrollParents[0];\\r\\n } else if (to === 'window') {\\r\\n to = [pageXOffset, pageYOffset, innerWidth + pageXOffset, innerHeight + pageYOffset];\\r\\n }\\r\\n\\r\\n if (to === document) {\\r\\n to = to.documentElement;\\r\\n }\\r\\n\\r\\n if (typeof to.nodeType !== 'undefined') {\\r\\n (function () {\\r\\n var node = to;\\r\\n var size = getBounds(to);\\r\\n var pos = size;\\r\\n var style = getComputedStyle(to);\\r\\n\\r\\n to = [pos.left, pos.top, size.width + pos.left, size.height + pos.top];\\r\\n\\r\\n // Account any parent Frames scroll offset\\r\\n if (node.ownerDocument !== document) {\\r\\n var win = node.ownerDocument.defaultView;\\r\\n to[0] += win.pageXOffset;\\r\\n to[1] += win.pageYOffset;\\r\\n to[2] += win.pageXOffset;\\r\\n to[3] += win.pageYOffset;\\r\\n }\\r\\n\\r\\n BOUNDS_FORMAT.forEach(function (side, i) {\\r\\n side = side[0].toUpperCase() + side.substr(1);\\r\\n if (side === 'Top' || side === 'Left') {\\r\\n to[i] += parseFloat(style['border' + side + 'Width']);\\r\\n } else {\\r\\n to[i] -= parseFloat(style['border' + side + 'Width']);\\r\\n }\\r\\n });\\r\\n })();\\r\\n }\\r\\n\\r\\n return to;\\r\\n}\\r\\n\\r\\nTetherBase.modules.push({\\r\\n position: function position(_ref) {\\r\\n var _this = this;\\r\\n\\r\\n var top = _ref.top;\\r\\n var left = _ref.left;\\r\\n var targetAttachment = _ref.targetAttachment;\\r\\n\\r\\n if (!this.options.constraints) {\\r\\n return true;\\r\\n }\\r\\n\\r\\n var _cache = this.cache('element-bounds', function () {\\r\\n return getBounds(_this.element);\\r\\n });\\r\\n\\r\\n var height = _cache.height;\\r\\n var width = _cache.width;\\r\\n\\r\\n if (width === 0 && height === 0 && typeof this.lastSize !== 'undefined') {\\r\\n var _lastSize = this.lastSize;\\r\\n\\r\\n // Handle the item getting hidden as a result of our positioning without glitching\\r\\n // the classes in and out\\r\\n width = _lastSize.width;\\r\\n height = _lastSize.height;\\r\\n }\\r\\n\\r\\n var targetSize = this.cache('target-bounds', function () {\\r\\n return _this.getTargetBounds();\\r\\n });\\r\\n\\r\\n var targetHeight = targetSize.height;\\r\\n var targetWidth = targetSize.width;\\r\\n\\r\\n var allClasses = [this.getClass('pinned'), this.getClass('out-of-bounds')];\\r\\n\\r\\n this.options.constraints.forEach(function (constraint) {\\r\\n var outOfBoundsClass = constraint.outOfBoundsClass;\\r\\n var pinnedClass = constraint.pinnedClass;\\r\\n\\r\\n if (outOfBoundsClass) {\\r\\n allClasses.push(outOfBoundsClass);\\r\\n }\\r\\n if (pinnedClass) {\\r\\n allClasses.push(pinnedClass);\\r\\n }\\r\\n });\\r\\n\\r\\n allClasses.forEach(function (cls) {\\r\\n ['left', 'top', 'right', 'bottom'].forEach(function (side) {\\r\\n allClasses.push(cls + '-' + side);\\r\\n });\\r\\n });\\r\\n\\r\\n var addClasses = [];\\r\\n\\r\\n var tAttachment = extend({}, targetAttachment);\\r\\n var eAttachment = extend({}, this.attachment);\\r\\n\\r\\n this.options.constraints.forEach(function (constraint) {\\r\\n var to = constraint.to;\\r\\n var attachment = constraint.attachment;\\r\\n var pin = constraint.pin;\\r\\n\\r\\n if (typeof attachment === 'undefined') {\\r\\n attachment = '';\\r\\n }\\r\\n\\r\\n var changeAttachX = undefined,\\r\\n changeAttachY = undefined;\\r\\n if (attachment.indexOf(' ') >= 0) {\\r\\n var _attachment$split = attachment.split(' ');\\r\\n\\r\\n var _attachment$split2 = _slicedToArray(_attachment$split, 2);\\r\\n\\r\\n changeAttachY = _attachment$split2[0];\\r\\n changeAttachX = _attachment$split2[1];\\r\\n } else {\\r\\n changeAttachX = changeAttachY = attachment;\\r\\n }\\r\\n\\r\\n var bounds = getBoundingRect(_this, to);\\r\\n\\r\\n if (changeAttachY === 'target' || changeAttachY === 'both') {\\r\\n if (top < bounds[1] && tAttachment.top === 'top') {\\r\\n top += targetHeight;\\r\\n tAttachment.top = 'bottom';\\r\\n }\\r\\n\\r\\n if (top + height > bounds[3] && tAttachment.top === 'bottom') {\\r\\n top -= targetHeight;\\r\\n tAttachment.top = 'top';\\r\\n }\\r\\n }\\r\\n\\r\\n if (changeAttachY === 'together') {\\r\\n if (tAttachment.top === 'top') {\\r\\n if (eAttachment.top === 'bottom' && top < bounds[1]) {\\r\\n top += targetHeight;\\r\\n tAttachment.top = 'bottom';\\r\\n\\r\\n top += height;\\r\\n eAttachment.top = 'top';\\r\\n } else if (eAttachment.top === 'top' && top + height > bounds[3] && top - (height - targetHeight) >= bounds[1]) {\\r\\n top -= height - targetHeight;\\r\\n tAttachment.top = 'bottom';\\r\\n\\r\\n eAttachment.top = 'bottom';\\r\\n }\\r\\n }\\r\\n\\r\\n if (tAttachment.top === 'bottom') {\\r\\n if (eAttachment.top === 'top' && top + height > bounds[3]) {\\r\\n top -= targetHeight;\\r\\n tAttachment.top = 'top';\\r\\n\\r\\n top -= height;\\r\\n eAttachment.top = 'bottom';\\r\\n } else if (eAttachment.top === 'bottom' && top < bounds[1] && top + (height * 2 - targetHeight) <= bounds[3]) {\\r\\n top += height - targetHeight;\\r\\n tAttachment.top = 'top';\\r\\n\\r\\n eAttachment.top = 'top';\\r\\n }\\r\\n }\\r\\n\\r\\n if (tAttachment.top === 'middle') {\\r\\n if (top + height > bounds[3] && eAttachment.top === 'top') {\\r\\n top -= height;\\r\\n eAttachment.top = 'bottom';\\r\\n } else if (top < bounds[1] && eAttachment.top === 'bottom') {\\r\\n top += height;\\r\\n eAttachment.top = 'top';\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n if (changeAttachX === 'target' || changeAttachX === 'both') {\\r\\n if (left < bounds[0] && tAttachment.left === 'left') {\\r\\n left += targetWidth;\\r\\n tAttachment.left = 'right';\\r\\n }\\r\\n\\r\\n if (left + width > bounds[2] && tAttachment.left === 'right') {\\r\\n left -= targetWidth;\\r\\n tAttachment.left = 'left';\\r\\n }\\r\\n }\\r\\n\\r\\n if (changeAttachX === 'together') {\\r\\n if (left < bounds[0] && tAttachment.left === 'left') {\\r\\n if (eAttachment.left === 'right') {\\r\\n left += targetWidth;\\r\\n tAttachment.left = 'right';\\r\\n\\r\\n left += width;\\r\\n eAttachment.left = 'left';\\r\\n } else if (eAttachment.left === 'left') {\\r\\n left += targetWidth;\\r\\n tAttachment.left = 'right';\\r\\n\\r\\n left -= width;\\r\\n eAttachment.left = 'right';\\r\\n }\\r\\n } else if (left + width > bounds[2] && tAttachment.left === 'right') {\\r\\n if (eAttachment.left === 'left') {\\r\\n left -= targetWidth;\\r\\n tAttachment.left = 'left';\\r\\n\\r\\n left -= width;\\r\\n eAttachment.left = 'right';\\r\\n } else if (eAttachment.left === 'right') {\\r\\n left -= targetWidth;\\r\\n tAttachment.left = 'left';\\r\\n\\r\\n left += width;\\r\\n eAttachment.left = 'left';\\r\\n }\\r\\n } else if (tAttachment.left === 'center') {\\r\\n if (left + width > bounds[2] && eAttachment.left === 'left') {\\r\\n left -= width;\\r\\n eAttachment.left = 'right';\\r\\n } else if (left < bounds[0] && eAttachment.left === 'right') {\\r\\n left += width;\\r\\n eAttachment.left = 'left';\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n if (changeAttachY === 'element' || changeAttachY === 'both') {\\r\\n if (top < bounds[1] && eAttachment.top === 'bottom') {\\r\\n top += height;\\r\\n eAttachment.top = 'top';\\r\\n }\\r\\n\\r\\n if (top + height > bounds[3] && eAttachment.top === 'top') {\\r\\n top -= height;\\r\\n eAttachment.top = 'bottom';\\r\\n }\\r\\n }\\r\\n\\r\\n if (changeAttachX === 'element' || changeAttachX === 'both') {\\r\\n if (left < bounds[0]) {\\r\\n if (eAttachment.left === 'right') {\\r\\n left += width;\\r\\n eAttachment.left = 'left';\\r\\n } else if (eAttachment.left === 'center') {\\r\\n left += width / 2;\\r\\n eAttachment.left = 'left';\\r\\n }\\r\\n }\\r\\n\\r\\n if (left + width > bounds[2]) {\\r\\n if (eAttachment.left === 'left') {\\r\\n left -= width;\\r\\n eAttachment.left = 'right';\\r\\n } else if (eAttachment.left === 'center') {\\r\\n left -= width / 2;\\r\\n eAttachment.left = 'right';\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n if (typeof pin === 'string') {\\r\\n pin = pin.split(',').map(function (p) {\\r\\n return p.trim();\\r\\n });\\r\\n } else if (pin === true) {\\r\\n pin = ['top', 'left', 'right', 'bottom'];\\r\\n }\\r\\n\\r\\n pin = pin || [];\\r\\n\\r\\n var pinned = [];\\r\\n var oob = [];\\r\\n\\r\\n if (top < bounds[1]) {\\r\\n if (pin.indexOf('top') >= 0) {\\r\\n top = bounds[1];\\r\\n pinned.push('top');\\r\\n } else {\\r\\n oob.push('top');\\r\\n }\\r\\n }\\r\\n\\r\\n if (top + height > bounds[3]) {\\r\\n if (pin.indexOf('bottom') >= 0) {\\r\\n top = bounds[3] - height;\\r\\n pinned.push('bottom');\\r\\n } else {\\r\\n oob.push('bottom');\\r\\n }\\r\\n }\\r\\n\\r\\n if (left < bounds[0]) {\\r\\n if (pin.indexOf('left') >= 0) {\\r\\n left = bounds[0];\\r\\n pinned.push('left');\\r\\n } else {\\r\\n oob.push('left');\\r\\n }\\r\\n }\\r\\n\\r\\n if (left + width > bounds[2]) {\\r\\n if (pin.indexOf('right') >= 0) {\\r\\n left = bounds[2] - width;\\r\\n pinned.push('right');\\r\\n } else {\\r\\n oob.push('right');\\r\\n }\\r\\n }\\r\\n\\r\\n if (pinned.length) {\\r\\n (function () {\\r\\n var pinnedClass = undefined;\\r\\n if (typeof _this.options.pinnedClass !== 'undefined') {\\r\\n pinnedClass = _this.options.pinnedClass;\\r\\n } else {\\r\\n pinnedClass = _this.getClass('pinned');\\r\\n }\\r\\n\\r\\n addClasses.push(pinnedClass);\\r\\n pinned.forEach(function (side) {\\r\\n addClasses.push(pinnedClass + '-' + side);\\r\\n });\\r\\n })();\\r\\n }\\r\\n\\r\\n if (oob.length) {\\r\\n (function () {\\r\\n var oobClass = undefined;\\r\\n if (typeof _this.options.outOfBoundsClass !== 'undefined') {\\r\\n oobClass = _this.options.outOfBoundsClass;\\r\\n } else {\\r\\n oobClass = _this.getClass('out-of-bounds');\\r\\n }\\r\\n\\r\\n addClasses.push(oobClass);\\r\\n oob.forEach(function (side) {\\r\\n addClasses.push(oobClass + '-' + side);\\r\\n });\\r\\n })();\\r\\n }\\r\\n\\r\\n if (pinned.indexOf('left') >= 0 || pinned.indexOf('right') >= 0) {\\r\\n eAttachment.left = tAttachment.left = false;\\r\\n }\\r\\n if (pinned.indexOf('top') >= 0 || pinned.indexOf('bottom') >= 0) {\\r\\n eAttachment.top = tAttachment.top = false;\\r\\n }\\r\\n\\r\\n if (tAttachment.top !== targetAttachment.top || tAttachment.left !== targetAttachment.left || eAttachment.top !== _this.attachment.top || eAttachment.left !== _this.attachment.left) {\\r\\n _this.updateAttachClasses(eAttachment, tAttachment);\\r\\n _this.trigger('update', {\\r\\n attachment: eAttachment,\\r\\n targetAttachment: tAttachment\\r\\n });\\r\\n }\\r\\n });\\r\\n\\r\\n defer(function () {\\r\\n if (!(_this.options.addTargetClasses === false)) {\\r\\n updateClasses(_this.target, addClasses, allClasses);\\r\\n }\\r\\n updateClasses(_this.element, addClasses, allClasses);\\r\\n });\\r\\n\\r\\n return { top: top, left: left };\\r\\n }\\r\\n});\\r\\n/* globals TetherBase */\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _TetherBase$Utils = TetherBase.Utils;\\r\\nvar getBounds = _TetherBase$Utils.getBounds;\\r\\nvar updateClasses = _TetherBase$Utils.updateClasses;\\r\\nvar defer = _TetherBase$Utils.defer;\\r\\n\\r\\nTetherBase.modules.push({\\r\\n position: function position(_ref) {\\r\\n var _this = this;\\r\\n\\r\\n var top = _ref.top;\\r\\n var left = _ref.left;\\r\\n\\r\\n var _cache = this.cache('element-bounds', function () {\\r\\n return getBounds(_this.element);\\r\\n });\\r\\n\\r\\n var height = _cache.height;\\r\\n var width = _cache.width;\\r\\n\\r\\n var targetPos = this.getTargetBounds();\\r\\n\\r\\n var bottom = top + height;\\r\\n var right = left + width;\\r\\n\\r\\n var abutted = [];\\r\\n if (top <= targetPos.bottom && bottom >= targetPos.top) {\\r\\n ['left', 'right'].forEach(function (side) {\\r\\n var targetPosSide = targetPos[side];\\r\\n if (targetPosSide === left || targetPosSide === right) {\\r\\n abutted.push(side);\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n if (left <= targetPos.right && right >= targetPos.left) {\\r\\n ['top', 'bottom'].forEach(function (side) {\\r\\n var targetPosSide = targetPos[side];\\r\\n if (targetPosSide === top || targetPosSide === bottom) {\\r\\n abutted.push(side);\\r\\n }\\r\\n });\\r\\n }\\r\\n\\r\\n var allClasses = [];\\r\\n var addClasses = [];\\r\\n\\r\\n var sides = ['left', 'top', 'right', 'bottom'];\\r\\n allClasses.push(this.getClass('abutted'));\\r\\n sides.forEach(function (side) {\\r\\n allClasses.push(_this.getClass('abutted') + '-' + side);\\r\\n });\\r\\n\\r\\n if (abutted.length) {\\r\\n addClasses.push(this.getClass('abutted'));\\r\\n }\\r\\n\\r\\n abutted.forEach(function (side) {\\r\\n addClasses.push(_this.getClass('abutted') + '-' + side);\\r\\n });\\r\\n\\r\\n defer(function () {\\r\\n if (!(_this.options.addTargetClasses === false)) {\\r\\n updateClasses(_this.target, addClasses, allClasses);\\r\\n }\\r\\n updateClasses(_this.element, addClasses, allClasses);\\r\\n });\\r\\n\\r\\n return true;\\r\\n }\\r\\n});\\r\\n/* globals TetherBase */\\r\\n\\r\\n'use strict';\\r\\n\\r\\nvar _slicedToArray = (function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; })();\\r\\n\\r\\nTetherBase.modules.push({\\r\\n position: function position(_ref) {\\r\\n var top = _ref.top;\\r\\n var left = _ref.left;\\r\\n\\r\\n if (!this.options.shift) {\\r\\n return;\\r\\n }\\r\\n\\r\\n var shift = this.options.shift;\\r\\n if (typeof this.options.shift === 'function') {\\r\\n shift = this.options.shift.call(this, { top: top, left: left });\\r\\n }\\r\\n\\r\\n var shiftTop = undefined,\\r\\n shiftLeft = undefined;\\r\\n if (typeof shift === 'string') {\\r\\n shift = shift.split(' ');\\r\\n shift[1] = shift[1] || shift[0];\\r\\n\\r\\n var _shift = shift;\\r\\n\\r\\n var _shift2 = _slicedToArray(_shift, 2);\\r\\n\\r\\n shiftTop = _shift2[0];\\r\\n shiftLeft = _shift2[1];\\r\\n\\r\\n shiftTop = parseFloat(shiftTop, 10);\\r\\n shiftLeft = parseFloat(shiftLeft, 10);\\r\\n } else {\\r\\n shiftTop = shift.top;\\r\\n shiftLeft = shift.left;\\r\\n }\\r\\n\\r\\n top += shiftTop;\\r\\n left += shiftLeft;\\r\\n\\r\\n return { top: top, left: left };\\r\\n }\\r\\n});\\r\\nreturn Tether;\\r\\n\\r\\n}));\\r\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/~/raw-loader!D:/Duivan/HOME/Univ-Proj/~/source-map-loader!D:/Duivan/HOME/Univ-Proj/general/tether/dist/js/tether.js\n// module id = 1095\n// module chunks = 2","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nmodule.exports = function(src) {\r\n\tif (typeof execScript !== \"undefined\")\r\n\t\texecScript(src);\r\n\telse\r\n\t\teval.call(null, src);\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/~/script-loader/addScript.js\n// module id = 296\n// module chunks = 2","require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\raw-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\source-map-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\general\\\\bootstrap\\\\dist\\\\js\\\\bootstrap.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/general/bootstrap/dist/js/bootstrap.js\n// module id = 506\n// module chunks = 2","require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\raw-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\source-map-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\general\\\\jquery\\\\dist\\\\jquery.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/general/jquery/dist/jquery.js\n// module id = 507\n// module chunks = 2","require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\script-loader\\\\addScript.js\")(require(\"!!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\raw-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\node_modules\\\\source-map-loader\\\\index.js!D:\\\\Duivan\\\\HOME\\\\Univ-Proj\\\\general\\\\tether\\\\dist\\\\js\\\\tether.js\"))\n\n\n//////////////////\n// WEBPACK FOOTER\n// D:/Duivan/HOME/Univ-Proj/general/tether/dist/js/tether.js\n// module id = 508\n// module chunks = 2"],"sourceRoot":""}