hof 21.0.19-axios-beta → 21.0.20-axios-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/9651d42a-59d8-48e6-949c-655d9fa6db21.json +1 -0
- package/.nyc_output/processinfo/9651d42a-59d8-48e6-949c-655d9fa6db21.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/config/hof-defaults.js +1 -0
- package/frontend/govuk-template/build/govuk_template.html +17 -18
- package/frontend/govuk-template/govuk_template_generated.html +17 -18
- package/frontend/template-mixins/partials/forms/textarea-group.html +3 -3
- package/frontend/template-partials/views/partials/gatag.html +0 -1
- package/frontend/template-partials/views/partials/head.html +28 -0
- package/lib/ga-tag.js +18 -1
- package/middleware/cookies.js +2 -0
- package/model/apis/axios-settings.js +4 -4
- package/model/apis/html-to-pdf-converter.js +8 -11
- package/model/index.js +6 -21
- package/package.json +4 -4
- package/sandbox/public/js/bundle.js +965 -1130
- package/.nyc_output/61a079f0-003b-4167-8f31-77e3abe4f072.json +0 -1
- package/.nyc_output/processinfo/61a079f0-003b-4167-8f31-77e3abe4f072.json +0 -1
| @@ -21222,17 +21222,14 @@ $('.typeahead').each(function applyTypeahead() { | |
| 21222 21222 |  | 
| 21223 21223 | 
             
            },{"../../../frontend/themes/gov-uk/client-js":3,"jquery":17,"typeahead-aria":20}],17:[function(require,module,exports){
         | 
| 21224 21224 | 
             
            /*!
         | 
| 21225 | 
            -
             * jQuery JavaScript Library v3. | 
| 21225 | 
            +
             * jQuery JavaScript Library v3.7.1
         | 
| 21226 21226 | 
             
             * https://jquery.com/
         | 
| 21227 21227 | 
             
             *
         | 
| 21228 | 
            -
             * Includes Sizzle.js
         | 
| 21229 | 
            -
             * https://sizzlejs.com/
         | 
| 21230 | 
            -
             *
         | 
| 21231 21228 | 
             
             * Copyright OpenJS Foundation and other contributors
         | 
| 21232 21229 | 
             
             * Released under the MIT license
         | 
| 21233 21230 | 
             
             * https://jquery.org/license
         | 
| 21234 21231 | 
             
             *
         | 
| 21235 | 
            -
             * Date:  | 
| 21232 | 
            +
             * Date: 2023-08-28T13:37Z
         | 
| 21236 21233 | 
             
             */
         | 
| 21237 21234 | 
             
            ( function( global, factory ) {
         | 
| 21238 21235 |  | 
| @@ -21246,7 +21243,7 @@ $('.typeahead').each(function applyTypeahead() { | |
| 21246 21243 | 
             
            		// (such as Node.js), expose a factory as module.exports.
         | 
| 21247 21244 | 
             
            		// This accentuates the need for the creation of a real `window`.
         | 
| 21248 21245 | 
             
            		// e.g. var jQuery = require("jquery")(window);
         | 
| 21249 | 
            -
            		// See ticket  | 
| 21246 | 
            +
            		// See ticket trac-14549 for more info.
         | 
| 21250 21247 | 
             
            		module.exports = global.document ?
         | 
| 21251 21248 | 
             
            			factory( global, true ) :
         | 
| 21252 21249 | 
             
            			function( w ) {
         | 
| @@ -21373,8 +21370,9 @@ function toType( obj ) { | |
| 21373 21370 |  | 
| 21374 21371 |  | 
| 21375 21372 |  | 
| 21376 | 
            -
            var
         | 
| 21377 | 
            -
             | 
| 21373 | 
            +
            var version = "3.7.1",
         | 
| 21374 | 
            +
             | 
| 21375 | 
            +
            	rhtmlSuffix = /HTML$/i,
         | 
| 21378 21376 |  | 
| 21379 21377 | 
             
            	// Define a local copy of jQuery
         | 
| 21380 21378 | 
             
            	jQuery = function( selector, context ) {
         | 
| @@ -21620,6 +21618,38 @@ jQuery.extend( { | |
| 21620 21618 | 
             
            		return obj;
         | 
| 21621 21619 | 
             
            	},
         | 
| 21622 21620 |  | 
| 21621 | 
            +
             | 
| 21622 | 
            +
            	// Retrieve the text value of an array of DOM nodes
         | 
| 21623 | 
            +
            	text: function( elem ) {
         | 
| 21624 | 
            +
            		var node,
         | 
| 21625 | 
            +
            			ret = "",
         | 
| 21626 | 
            +
            			i = 0,
         | 
| 21627 | 
            +
            			nodeType = elem.nodeType;
         | 
| 21628 | 
            +
             | 
| 21629 | 
            +
            		if ( !nodeType ) {
         | 
| 21630 | 
            +
             | 
| 21631 | 
            +
            			// If no nodeType, this is expected to be an array
         | 
| 21632 | 
            +
            			while ( ( node = elem[ i++ ] ) ) {
         | 
| 21633 | 
            +
             | 
| 21634 | 
            +
            				// Do not traverse comment nodes
         | 
| 21635 | 
            +
            				ret += jQuery.text( node );
         | 
| 21636 | 
            +
            			}
         | 
| 21637 | 
            +
            		}
         | 
| 21638 | 
            +
            		if ( nodeType === 1 || nodeType === 11 ) {
         | 
| 21639 | 
            +
            			return elem.textContent;
         | 
| 21640 | 
            +
            		}
         | 
| 21641 | 
            +
            		if ( nodeType === 9 ) {
         | 
| 21642 | 
            +
            			return elem.documentElement.textContent;
         | 
| 21643 | 
            +
            		}
         | 
| 21644 | 
            +
            		if ( nodeType === 3 || nodeType === 4 ) {
         | 
| 21645 | 
            +
            			return elem.nodeValue;
         | 
| 21646 | 
            +
            		}
         | 
| 21647 | 
            +
             | 
| 21648 | 
            +
            		// Do not include comment or processing instruction nodes
         | 
| 21649 | 
            +
             | 
| 21650 | 
            +
            		return ret;
         | 
| 21651 | 
            +
            	},
         | 
| 21652 | 
            +
             | 
| 21623 21653 | 
             
            	// results is for internal usage only
         | 
| 21624 21654 | 
             
            	makeArray: function( arr, results ) {
         | 
| 21625 21655 | 
             
            		var ret = results || [];
         | 
| @@ -21642,6 +21672,15 @@ jQuery.extend( { | |
| 21642 21672 | 
             
            		return arr == null ? -1 : indexOf.call( arr, elem, i );
         | 
| 21643 21673 | 
             
            	},
         | 
| 21644 21674 |  | 
| 21675 | 
            +
            	isXMLDoc: function( elem ) {
         | 
| 21676 | 
            +
            		var namespace = elem && elem.namespaceURI,
         | 
| 21677 | 
            +
            			docElem = elem && ( elem.ownerDocument || elem ).documentElement;
         | 
| 21678 | 
            +
             | 
| 21679 | 
            +
            		// Assume HTML when documentElement doesn't yet exist, such as inside
         | 
| 21680 | 
            +
            		// document fragments.
         | 
| 21681 | 
            +
            		return !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || "HTML" );
         | 
| 21682 | 
            +
            	},
         | 
| 21683 | 
            +
             | 
| 21645 21684 | 
             
            	// Support: Android <=4.0 only, PhantomJS 1 only
         | 
| 21646 21685 | 
             
            	// push.apply(_, arraylike) throws on ancient WebKit
         | 
| 21647 21686 | 
             
            	merge: function( first, second ) {
         | 
| @@ -21743,43 +21782,98 @@ function isArrayLike( obj ) { | |
| 21743 21782 | 
             
            	return type === "array" || length === 0 ||
         | 
| 21744 21783 | 
             
            		typeof length === "number" && length > 0 && ( length - 1 ) in obj;
         | 
| 21745 21784 | 
             
            }
         | 
| 21746 | 
            -
             | 
| 21747 | 
            -
             | 
| 21748 | 
            -
              | 
| 21749 | 
            -
             | 
| 21750 | 
            -
              | 
| 21751 | 
            -
             | 
| 21752 | 
            -
             | 
| 21753 | 
            -
              | 
| 21754 | 
            -
             | 
| 21755 | 
            -
             | 
| 21756 | 
            -
              | 
| 21757 | 
            -
             | 
| 21785 | 
            +
             | 
| 21786 | 
            +
             | 
| 21787 | 
            +
            function nodeName( elem, name ) {
         | 
| 21788 | 
            +
             | 
| 21789 | 
            +
            	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
         | 
| 21790 | 
            +
             | 
| 21791 | 
            +
            }
         | 
| 21792 | 
            +
            var pop = arr.pop;
         | 
| 21793 | 
            +
             | 
| 21794 | 
            +
             | 
| 21795 | 
            +
            var sort = arr.sort;
         | 
| 21796 | 
            +
             | 
| 21797 | 
            +
             | 
| 21798 | 
            +
            var splice = arr.splice;
         | 
| 21799 | 
            +
             | 
| 21800 | 
            +
             | 
| 21801 | 
            +
            var whitespace = "[\\x20\\t\\r\\n\\f]";
         | 
| 21802 | 
            +
             | 
| 21803 | 
            +
             | 
| 21804 | 
            +
            var rtrimCSS = new RegExp(
         | 
| 21805 | 
            +
            	"^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$",
         | 
| 21806 | 
            +
            	"g"
         | 
| 21807 | 
            +
            );
         | 
| 21808 | 
            +
             | 
| 21809 | 
            +
             | 
| 21810 | 
            +
             | 
| 21811 | 
            +
             | 
| 21812 | 
            +
            // Note: an element does not contain itself
         | 
| 21813 | 
            +
            jQuery.contains = function( a, b ) {
         | 
| 21814 | 
            +
            	var bup = b && b.parentNode;
         | 
| 21815 | 
            +
             | 
| 21816 | 
            +
            	return a === bup || !!( bup && bup.nodeType === 1 && (
         | 
| 21817 | 
            +
             | 
| 21818 | 
            +
            		// Support: IE 9 - 11+
         | 
| 21819 | 
            +
            		// IE doesn't have `contains` on SVG.
         | 
| 21820 | 
            +
            		a.contains ?
         | 
| 21821 | 
            +
            			a.contains( bup ) :
         | 
| 21822 | 
            +
            			a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
         | 
| 21823 | 
            +
            	) );
         | 
| 21824 | 
            +
            };
         | 
| 21825 | 
            +
             | 
| 21826 | 
            +
             | 
| 21827 | 
            +
             | 
| 21828 | 
            +
             | 
| 21829 | 
            +
            // CSS string/identifier serialization
         | 
| 21830 | 
            +
            // https://drafts.csswg.org/cssom/#common-serializing-idioms
         | 
| 21831 | 
            +
            var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;
         | 
| 21832 | 
            +
             | 
| 21833 | 
            +
            function fcssescape( ch, asCodePoint ) {
         | 
| 21834 | 
            +
            	if ( asCodePoint ) {
         | 
| 21835 | 
            +
             | 
| 21836 | 
            +
            		// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
         | 
| 21837 | 
            +
            		if ( ch === "\0" ) {
         | 
| 21838 | 
            +
            			return "\uFFFD";
         | 
| 21839 | 
            +
            		}
         | 
| 21840 | 
            +
             | 
| 21841 | 
            +
            		// Control characters and (dependent upon position) numbers get escaped as code points
         | 
| 21842 | 
            +
            		return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
         | 
| 21843 | 
            +
            	}
         | 
| 21844 | 
            +
             | 
| 21845 | 
            +
            	// Other potentially-special ASCII characters get backslash-escaped
         | 
| 21846 | 
            +
            	return "\\" + ch;
         | 
| 21847 | 
            +
            }
         | 
| 21848 | 
            +
             | 
| 21849 | 
            +
            jQuery.escapeSelector = function( sel ) {
         | 
| 21850 | 
            +
            	return ( sel + "" ).replace( rcssescape, fcssescape );
         | 
| 21851 | 
            +
            };
         | 
| 21852 | 
            +
             | 
| 21853 | 
            +
             | 
| 21854 | 
            +
             | 
| 21855 | 
            +
             | 
| 21856 | 
            +
            var preferredDoc = document,
         | 
| 21857 | 
            +
            	pushNative = push;
         | 
| 21858 | 
            +
             | 
| 21859 | 
            +
            ( function() {
         | 
| 21860 | 
            +
             | 
| 21758 21861 | 
             
            var i,
         | 
| 21759 | 
            -
            	support,
         | 
| 21760 21862 | 
             
            	Expr,
         | 
| 21761 | 
            -
            	getText,
         | 
| 21762 | 
            -
            	isXML,
         | 
| 21763 | 
            -
            	tokenize,
         | 
| 21764 | 
            -
            	compile,
         | 
| 21765 | 
            -
            	select,
         | 
| 21766 21863 | 
             
            	outermostContext,
         | 
| 21767 21864 | 
             
            	sortInput,
         | 
| 21768 21865 | 
             
            	hasDuplicate,
         | 
| 21866 | 
            +
            	push = pushNative,
         | 
| 21769 21867 |  | 
| 21770 21868 | 
             
            	// Local document vars
         | 
| 21771 | 
            -
            	setDocument,
         | 
| 21772 21869 | 
             
            	document,
         | 
| 21773 | 
            -
            	 | 
| 21870 | 
            +
            	documentElement,
         | 
| 21774 21871 | 
             
            	documentIsHTML,
         | 
| 21775 21872 | 
             
            	rbuggyQSA,
         | 
| 21776 | 
            -
            	rbuggyMatches,
         | 
| 21777 21873 | 
             
            	matches,
         | 
| 21778 | 
            -
            	contains,
         | 
| 21779 21874 |  | 
| 21780 21875 | 
             
            	// Instance-specific data
         | 
| 21781 | 
            -
            	expando =  | 
| 21782 | 
            -
            	preferredDoc = window.document,
         | 
| 21876 | 
            +
            	expando = jQuery.expando,
         | 
| 21783 21877 | 
             
            	dirruns = 0,
         | 
| 21784 21878 | 
             
            	done = 0,
         | 
| 21785 21879 | 
             
            	classCache = createCache(),
         | 
| @@ -21793,47 +21887,22 @@ var i, | |
| 21793 21887 | 
             
            		return 0;
         | 
| 21794 21888 | 
             
            	},
         | 
| 21795 21889 |  | 
| 21796 | 
            -
            	 | 
| 21797 | 
            -
             | 
| 21798 | 
            -
            	arr = [],
         | 
| 21799 | 
            -
            	pop = arr.pop,
         | 
| 21800 | 
            -
            	pushNative = arr.push,
         | 
| 21801 | 
            -
            	push = arr.push,
         | 
| 21802 | 
            -
            	slice = arr.slice,
         | 
| 21803 | 
            -
             | 
| 21804 | 
            -
            	// Use a stripped-down indexOf as it's faster than native
         | 
| 21805 | 
            -
            	// https://jsperf.com/thor-indexof-vs-for/5
         | 
| 21806 | 
            -
            	indexOf = function( list, elem ) {
         | 
| 21807 | 
            -
            		var i = 0,
         | 
| 21808 | 
            -
            			len = list.length;
         | 
| 21809 | 
            -
            		for ( ; i < len; i++ ) {
         | 
| 21810 | 
            -
            			if ( list[ i ] === elem ) {
         | 
| 21811 | 
            -
            				return i;
         | 
| 21812 | 
            -
            			}
         | 
| 21813 | 
            -
            		}
         | 
| 21814 | 
            -
            		return -1;
         | 
| 21815 | 
            -
            	},
         | 
| 21816 | 
            -
             | 
| 21817 | 
            -
            	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" +
         | 
| 21818 | 
            -
            		"ismap|loop|multiple|open|readonly|required|scoped",
         | 
| 21890 | 
            +
            	booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" +
         | 
| 21891 | 
            +
            		"loop|multiple|open|readonly|required|scoped",
         | 
| 21819 21892 |  | 
| 21820 21893 | 
             
            	// Regular expressions
         | 
| 21821 21894 |  | 
| 21822 | 
            -
            	// http://www.w3.org/TR/css3-selectors/#whitespace
         | 
| 21823 | 
            -
            	whitespace = "[\\x20\\t\\r\\n\\f]",
         | 
| 21824 | 
            -
             | 
| 21825 21895 | 
             
            	// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram
         | 
| 21826 21896 | 
             
            	identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace +
         | 
| 21827 21897 | 
             
            		"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
         | 
| 21828 21898 |  | 
| 21829 | 
            -
            	// Attribute selectors:  | 
| 21899 | 
            +
            	// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors
         | 
| 21830 21900 | 
             
            	attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
         | 
| 21831 21901 |  | 
| 21832 21902 | 
             
            		// Operator (capture 2)
         | 
| 21833 21903 | 
             
            		"*([*^$|!~]?=)" + whitespace +
         | 
| 21834 21904 |  | 
| 21835 | 
            -
            		// "Attribute values must be CSS identifiers [capture 5]
         | 
| 21836 | 
            -
            		// or strings [capture 3 or capture 4]"
         | 
| 21905 | 
            +
            		// "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
         | 
| 21837 21906 | 
             
            		"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" +
         | 
| 21838 21907 | 
             
            		whitespace + "*\\]",
         | 
| 21839 21908 |  | 
| @@ -21852,101 +21921,88 @@ var i, | |
| 21852 21921 |  | 
| 21853 21922 | 
             
            	// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
         | 
| 21854 21923 | 
             
            	rwhitespace = new RegExp( whitespace + "+", "g" ),
         | 
| 21855 | 
            -
            	rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" +
         | 
| 21856 | 
            -
            		whitespace + "+$", "g" ),
         | 
| 21857 21924 |  | 
| 21858 21925 | 
             
            	rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
         | 
| 21859 | 
            -
            	 | 
| 21860 | 
            -
            		"*" ),
         | 
| 21926 | 
            +
            	rleadingCombinator = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" +
         | 
| 21927 | 
            +
            		whitespace + "*" ),
         | 
| 21861 21928 | 
             
            	rdescend = new RegExp( whitespace + "|>" ),
         | 
| 21862 21929 |  | 
| 21863 21930 | 
             
            	rpseudo = new RegExp( pseudos ),
         | 
| 21864 21931 | 
             
            	ridentifier = new RegExp( "^" + identifier + "$" ),
         | 
| 21865 21932 |  | 
| 21866 21933 | 
             
            	matchExpr = {
         | 
| 21867 | 
            -
            		 | 
| 21868 | 
            -
            		 | 
| 21869 | 
            -
            		 | 
| 21870 | 
            -
            		 | 
| 21871 | 
            -
            		 | 
| 21872 | 
            -
            		 | 
| 21873 | 
            -
            			 | 
| 21874 | 
            -
             | 
| 21875 | 
            -
             | 
| 21934 | 
            +
            		ID: new RegExp( "^#(" + identifier + ")" ),
         | 
| 21935 | 
            +
            		CLASS: new RegExp( "^\\.(" + identifier + ")" ),
         | 
| 21936 | 
            +
            		TAG: new RegExp( "^(" + identifier + "|[*])" ),
         | 
| 21937 | 
            +
            		ATTR: new RegExp( "^" + attributes ),
         | 
| 21938 | 
            +
            		PSEUDO: new RegExp( "^" + pseudos ),
         | 
| 21939 | 
            +
            		CHILD: new RegExp(
         | 
| 21940 | 
            +
            			"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" +
         | 
| 21941 | 
            +
            				whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" +
         | 
| 21942 | 
            +
            				whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
         | 
| 21943 | 
            +
            		bool: new RegExp( "^(?:" + booleans + ")$", "i" ),
         | 
| 21876 21944 |  | 
| 21877 21945 | 
             
            		// For use in libraries implementing .is()
         | 
| 21878 21946 | 
             
            		// We use this for POS matching in `select`
         | 
| 21879 | 
            -
            		 | 
| 21947 | 
            +
            		needsContext: new RegExp( "^" + whitespace +
         | 
| 21880 21948 | 
             
            			"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace +
         | 
| 21881 21949 | 
             
            			"*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
         | 
| 21882 21950 | 
             
            	},
         | 
| 21883 21951 |  | 
| 21884 | 
            -
            	rhtml = /HTML$/i,
         | 
| 21885 21952 | 
             
            	rinputs = /^(?:input|select|textarea|button)$/i,
         | 
| 21886 21953 | 
             
            	rheader = /^h\d$/i,
         | 
| 21887 21954 |  | 
| 21888 | 
            -
            	rnative = /^[^{]+\{\s*\[native \w/,
         | 
| 21889 | 
            -
             | 
| 21890 21955 | 
             
            	// Easily-parseable/retrievable ID or TAG or CLASS selectors
         | 
| 21891 21956 | 
             
            	rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
         | 
| 21892 21957 |  | 
| 21893 21958 | 
             
            	rsibling = /[+~]/,
         | 
| 21894 21959 |  | 
| 21895 21960 | 
             
            	// CSS escapes
         | 
| 21896 | 
            -
            	//  | 
| 21897 | 
            -
            	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + | 
| 21961 | 
            +
            	// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
         | 
| 21962 | 
            +
            	runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace +
         | 
| 21963 | 
            +
            		"?|\\\\([^\\r\\n\\f])", "g" ),
         | 
| 21898 21964 | 
             
            	funescape = function( escape, nonHex ) {
         | 
| 21899 21965 | 
             
            		var high = "0x" + escape.slice( 1 ) - 0x10000;
         | 
| 21900 21966 |  | 
| 21901 | 
            -
            		 | 
| 21967 | 
            +
            		if ( nonHex ) {
         | 
| 21902 21968 |  | 
| 21903 21969 | 
             
            			// Strip the backslash prefix from a non-hex escape sequence
         | 
| 21904 | 
            -
            			nonHex | 
| 21905 | 
            -
             | 
| 21906 | 
            -
            			// Replace a hexadecimal escape sequence with the encoded Unicode code point
         | 
| 21907 | 
            -
            			// Support: IE <=11+
         | 
| 21908 | 
            -
            			// For values outside the Basic Multilingual Plane (BMP), manually construct a
         | 
| 21909 | 
            -
            			// surrogate pair
         | 
| 21910 | 
            -
            			high < 0 ?
         | 
| 21911 | 
            -
            				String.fromCharCode( high + 0x10000 ) :
         | 
| 21912 | 
            -
            				String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
         | 
| 21913 | 
            -
            	},
         | 
| 21914 | 
            -
             | 
| 21915 | 
            -
            	// CSS string/identifier serialization
         | 
| 21916 | 
            -
            	// https://drafts.csswg.org/cssom/#common-serializing-idioms
         | 
| 21917 | 
            -
            	rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,
         | 
| 21918 | 
            -
            	fcssescape = function( ch, asCodePoint ) {
         | 
| 21919 | 
            -
            		if ( asCodePoint ) {
         | 
| 21920 | 
            -
             | 
| 21921 | 
            -
            			// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
         | 
| 21922 | 
            -
            			if ( ch === "\0" ) {
         | 
| 21923 | 
            -
            				return "\uFFFD";
         | 
| 21924 | 
            -
            			}
         | 
| 21925 | 
            -
             | 
| 21926 | 
            -
            			// Control characters and (dependent upon position) numbers get escaped as code points
         | 
| 21927 | 
            -
            			return ch.slice( 0, -1 ) + "\\" +
         | 
| 21928 | 
            -
            				ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
         | 
| 21970 | 
            +
            			return nonHex;
         | 
| 21929 21971 | 
             
            		}
         | 
| 21930 21972 |  | 
| 21931 | 
            -
            		//  | 
| 21932 | 
            -
            		 | 
| 21973 | 
            +
            		// Replace a hexadecimal escape sequence with the encoded Unicode code point
         | 
| 21974 | 
            +
            		// Support: IE <=11+
         | 
| 21975 | 
            +
            		// For values outside the Basic Multilingual Plane (BMP), manually construct a
         | 
| 21976 | 
            +
            		// surrogate pair
         | 
| 21977 | 
            +
            		return high < 0 ?
         | 
| 21978 | 
            +
            			String.fromCharCode( high + 0x10000 ) :
         | 
| 21979 | 
            +
            			String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
         | 
| 21933 21980 | 
             
            	},
         | 
| 21934 21981 |  | 
| 21935 | 
            -
            	// Used for iframes
         | 
| 21936 | 
            -
            	//  | 
| 21982 | 
            +
            	// Used for iframes; see `setDocument`.
         | 
| 21983 | 
            +
            	// Support: IE 9 - 11+, Edge 12 - 18+
         | 
| 21937 21984 | 
             
            	// Removing the function wrapper causes a "Permission Denied"
         | 
| 21938 | 
            -
            	// error in IE
         | 
| 21985 | 
            +
            	// error in IE/Edge.
         | 
| 21939 21986 | 
             
            	unloadHandler = function() {
         | 
| 21940 21987 | 
             
            		setDocument();
         | 
| 21941 21988 | 
             
            	},
         | 
| 21942 21989 |  | 
| 21943 21990 | 
             
            	inDisabledFieldset = addCombinator(
         | 
| 21944 21991 | 
             
            		function( elem ) {
         | 
| 21945 | 
            -
            			return elem.disabled === true &&  | 
| 21992 | 
            +
            			return elem.disabled === true && nodeName( elem, "fieldset" );
         | 
| 21946 21993 | 
             
            		},
         | 
| 21947 21994 | 
             
            		{ dir: "parentNode", next: "legend" }
         | 
| 21948 21995 | 
             
            	);
         | 
| 21949 21996 |  | 
| 21997 | 
            +
            // Support: IE <=9 only
         | 
| 21998 | 
            +
            // Accessing document.activeElement can throw unexpectedly
         | 
| 21999 | 
            +
            // https://bugs.jquery.com/ticket/13393
         | 
| 22000 | 
            +
            function safeActiveElement() {
         | 
| 22001 | 
            +
            	try {
         | 
| 22002 | 
            +
            		return document.activeElement;
         | 
| 22003 | 
            +
            	} catch ( err ) { }
         | 
| 22004 | 
            +
            }
         | 
| 22005 | 
            +
             | 
| 21950 22006 | 
             
            // Optimize for push.apply( _, NodeList )
         | 
| 21951 22007 | 
             
            try {
         | 
| 21952 22008 | 
             
            	push.apply(
         | 
| @@ -21954,32 +22010,22 @@ try { | |
| 21954 22010 | 
             
            		preferredDoc.childNodes
         | 
| 21955 22011 | 
             
            	);
         | 
| 21956 22012 |  | 
| 21957 | 
            -
            	// Support: Android | 
| 22013 | 
            +
            	// Support: Android <=4.0
         | 
| 21958 22014 | 
             
            	// Detect silently failing push.apply
         | 
| 21959 22015 | 
             
            	// eslint-disable-next-line no-unused-expressions
         | 
| 21960 22016 | 
             
            	arr[ preferredDoc.childNodes.length ].nodeType;
         | 
| 21961 22017 | 
             
            } catch ( e ) {
         | 
| 21962 | 
            -
            	push = { | 
| 21963 | 
            -
             | 
| 21964 | 
            -
            		// Leverage slice if possible
         | 
| 21965 | 
            -
            		function( target, els ) {
         | 
| 22018 | 
            +
            	push = {
         | 
| 22019 | 
            +
            		apply: function( target, els ) {
         | 
| 21966 22020 | 
             
            			pushNative.apply( target, slice.call( els ) );
         | 
| 21967 | 
            -
            		} | 
| 21968 | 
            -
             | 
| 21969 | 
            -
             | 
| 21970 | 
            -
            		// Otherwise append directly
         | 
| 21971 | 
            -
            		function( target, els ) {
         | 
| 21972 | 
            -
            			var j = target.length,
         | 
| 21973 | 
            -
            				i = 0;
         | 
| 21974 | 
            -
             | 
| 21975 | 
            -
            			// Can't trust NodeList.length
         | 
| 21976 | 
            -
            			while ( ( target[ j++ ] = els[ i++ ] ) ) {}
         | 
| 21977 | 
            -
            			target.length = j - 1;
         | 
| 22021 | 
            +
            		},
         | 
| 22022 | 
            +
            		call: function( target ) {
         | 
| 22023 | 
            +
            			pushNative.apply( target, slice.call( arguments, 1 ) );
         | 
| 21978 22024 | 
             
            		}
         | 
| 21979 22025 | 
             
            	};
         | 
| 21980 22026 | 
             
            }
         | 
| 21981 22027 |  | 
| 21982 | 
            -
            function  | 
| 22028 | 
            +
            function find( selector, context, results, seed ) {
         | 
| 21983 22029 | 
             
            	var m, i, elem, nid, match, groups, newSelector,
         | 
| 21984 22030 | 
             
            		newContext = context && context.ownerDocument,
         | 
| 21985 22031 |  | 
| @@ -22013,11 +22059,10 @@ function Sizzle( selector, context, results, seed ) { | |
| 22013 22059 | 
             
            					if ( nodeType === 9 ) {
         | 
| 22014 22060 | 
             
            						if ( ( elem = context.getElementById( m ) ) ) {
         | 
| 22015 22061 |  | 
| 22016 | 
            -
            							// Support: IE | 
| 22017 | 
            -
            							// TODO: identify versions
         | 
| 22062 | 
            +
            							// Support: IE 9 only
         | 
| 22018 22063 | 
             
            							// getElementById can match elements by name instead of ID
         | 
| 22019 22064 | 
             
            							if ( elem.id === m ) {
         | 
| 22020 | 
            -
            								 | 
| 22065 | 
            +
            								push.call( results, elem );
         | 
| 22021 22066 | 
             
            								return results;
         | 
| 22022 22067 | 
             
            							}
         | 
| 22023 22068 | 
             
            						} else {
         | 
| @@ -22027,14 +22072,13 @@ function Sizzle( selector, context, results, seed ) { | |
| 22027 22072 | 
             
            					// Element context
         | 
| 22028 22073 | 
             
            					} else {
         | 
| 22029 22074 |  | 
| 22030 | 
            -
            						// Support: IE | 
| 22031 | 
            -
            						// TODO: identify versions
         | 
| 22075 | 
            +
            						// Support: IE 9 only
         | 
| 22032 22076 | 
             
            						// getElementById can match elements by name instead of ID
         | 
| 22033 22077 | 
             
            						if ( newContext && ( elem = newContext.getElementById( m ) ) &&
         | 
| 22034 | 
            -
            							contains( context, elem ) &&
         | 
| 22078 | 
            +
            							find.contains( context, elem ) &&
         | 
| 22035 22079 | 
             
            							elem.id === m ) {
         | 
| 22036 22080 |  | 
| 22037 | 
            -
            							 | 
| 22081 | 
            +
            							push.call( results, elem );
         | 
| 22038 22082 | 
             
            							return results;
         | 
| 22039 22083 | 
             
            						}
         | 
| 22040 22084 | 
             
            					}
         | 
| @@ -22045,22 +22089,15 @@ function Sizzle( selector, context, results, seed ) { | |
| 22045 22089 | 
             
            					return results;
         | 
| 22046 22090 |  | 
| 22047 22091 | 
             
            				// Class selector
         | 
| 22048 | 
            -
            				} else if ( ( m = match[ 3 ] ) &&  | 
| 22049 | 
            -
            					context.getElementsByClassName ) {
         | 
| 22050 | 
            -
             | 
| 22092 | 
            +
            				} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {
         | 
| 22051 22093 | 
             
            					push.apply( results, context.getElementsByClassName( m ) );
         | 
| 22052 22094 | 
             
            					return results;
         | 
| 22053 22095 | 
             
            				}
         | 
| 22054 22096 | 
             
            			}
         | 
| 22055 22097 |  | 
| 22056 22098 | 
             
            			// Take advantage of querySelectorAll
         | 
| 22057 | 
            -
            			if (  | 
| 22058 | 
            -
            				! | 
| 22059 | 
            -
            				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&
         | 
| 22060 | 
            -
             | 
| 22061 | 
            -
            				// Support: IE 8 only
         | 
| 22062 | 
            -
            				// Exclude object elements
         | 
| 22063 | 
            -
            				( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) {
         | 
| 22099 | 
            +
            			if ( !nonnativeSelectorCache[ selector + " " ] &&
         | 
| 22100 | 
            +
            				( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {
         | 
| 22064 22101 |  | 
| 22065 22102 | 
             
            				newSelector = selector;
         | 
| 22066 22103 | 
             
            				newContext = context;
         | 
| @@ -22073,7 +22110,7 @@ function Sizzle( selector, context, results, seed ) { | |
| 22073 22110 | 
             
            				// as such selectors are not recognized by querySelectorAll.
         | 
| 22074 22111 | 
             
            				// Thanks to Andrew Dupont for this technique.
         | 
| 22075 22112 | 
             
            				if ( nodeType === 1 &&
         | 
| 22076 | 
            -
            					( rdescend.test( selector ) ||  | 
| 22113 | 
            +
            					( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {
         | 
| 22077 22114 |  | 
| 22078 22115 | 
             
            					// Expand context for sibling selectors
         | 
| 22079 22116 | 
             
            					newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
         | 
| @@ -22081,11 +22118,15 @@ function Sizzle( selector, context, results, seed ) { | |
| 22081 22118 |  | 
| 22082 22119 | 
             
            					// We can use :scope instead of the ID hack if the browser
         | 
| 22083 22120 | 
             
            					// supports it & if we're not changing the context.
         | 
| 22084 | 
            -
            					 | 
| 22121 | 
            +
            					// Support: IE 11+, Edge 17 - 18+
         | 
| 22122 | 
            +
            					// IE/Edge sometimes throw a "Permission denied" error when
         | 
| 22123 | 
            +
            					// strict-comparing two documents; shallow comparisons work.
         | 
| 22124 | 
            +
            					// eslint-disable-next-line eqeqeq
         | 
| 22125 | 
            +
            					if ( newContext != context || !support.scope ) {
         | 
| 22085 22126 |  | 
| 22086 22127 | 
             
            						// Capture the context ID, setting it first if necessary
         | 
| 22087 22128 | 
             
            						if ( ( nid = context.getAttribute( "id" ) ) ) {
         | 
| 22088 | 
            -
            							nid =  | 
| 22129 | 
            +
            							nid = jQuery.escapeSelector( nid );
         | 
| 22089 22130 | 
             
            						} else {
         | 
| 22090 22131 | 
             
            							context.setAttribute( "id", ( nid = expando ) );
         | 
| 22091 22132 | 
             
            						}
         | 
| @@ -22118,7 +22159,7 @@ function Sizzle( selector, context, results, seed ) { | |
| 22118 22159 | 
             
            	}
         | 
| 22119 22160 |  | 
| 22120 22161 | 
             
            	// All others
         | 
| 22121 | 
            -
            	return select( selector.replace(  | 
| 22162 | 
            +
            	return select( selector.replace( rtrimCSS, "$1" ), context, results, seed );
         | 
| 22122 22163 | 
             
            }
         | 
| 22123 22164 |  | 
| 22124 22165 | 
             
            /**
         | 
| @@ -22132,7 +22173,8 @@ function createCache() { | |
| 22132 22173 |  | 
| 22133 22174 | 
             
            	function cache( key, value ) {
         | 
| 22134 22175 |  | 
| 22135 | 
            -
            		// Use (key + " ") to avoid collision with native prototype properties | 
| 22176 | 
            +
            		// Use (key + " ") to avoid collision with native prototype properties
         | 
| 22177 | 
            +
            		// (see https://github.com/jquery/sizzle/issues/157)
         | 
| 22136 22178 | 
             
            		if ( keys.push( key + " " ) > Expr.cacheLength ) {
         | 
| 22137 22179 |  | 
| 22138 22180 | 
             
            			// Only keep the most recent entries
         | 
| @@ -22144,7 +22186,7 @@ function createCache() { | |
| 22144 22186 | 
             
            }
         | 
| 22145 22187 |  | 
| 22146 22188 | 
             
            /**
         | 
| 22147 | 
            -
             * Mark a function for special use by  | 
| 22189 | 
            +
             * Mark a function for special use by jQuery selector module
         | 
| 22148 22190 | 
             
             * @param {Function} fn The function to mark
         | 
| 22149 22191 | 
             
             */
         | 
| 22150 22192 | 
             
            function markFunction( fn ) {
         | 
| @@ -22175,56 +22217,13 @@ function assert( fn ) { | |
| 22175 22217 | 
             
            	}
         | 
| 22176 22218 | 
             
            }
         | 
| 22177 22219 |  | 
| 22178 | 
            -
            /**
         | 
| 22179 | 
            -
             * Adds the same handler for all of the specified attrs
         | 
| 22180 | 
            -
             * @param {String} attrs Pipe-separated list of attributes
         | 
| 22181 | 
            -
             * @param {Function} handler The method that will be applied
         | 
| 22182 | 
            -
             */
         | 
| 22183 | 
            -
            function addHandle( attrs, handler ) {
         | 
| 22184 | 
            -
            	var arr = attrs.split( "|" ),
         | 
| 22185 | 
            -
            		i = arr.length;
         | 
| 22186 | 
            -
             | 
| 22187 | 
            -
            	while ( i-- ) {
         | 
| 22188 | 
            -
            		Expr.attrHandle[ arr[ i ] ] = handler;
         | 
| 22189 | 
            -
            	}
         | 
| 22190 | 
            -
            }
         | 
| 22191 | 
            -
             | 
| 22192 | 
            -
            /**
         | 
| 22193 | 
            -
             * Checks document order of two siblings
         | 
| 22194 | 
            -
             * @param {Element} a
         | 
| 22195 | 
            -
             * @param {Element} b
         | 
| 22196 | 
            -
             * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
         | 
| 22197 | 
            -
             */
         | 
| 22198 | 
            -
            function siblingCheck( a, b ) {
         | 
| 22199 | 
            -
            	var cur = b && a,
         | 
| 22200 | 
            -
            		diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
         | 
| 22201 | 
            -
            			a.sourceIndex - b.sourceIndex;
         | 
| 22202 | 
            -
             | 
| 22203 | 
            -
            	// Use IE sourceIndex if available on both nodes
         | 
| 22204 | 
            -
            	if ( diff ) {
         | 
| 22205 | 
            -
            		return diff;
         | 
| 22206 | 
            -
            	}
         | 
| 22207 | 
            -
             | 
| 22208 | 
            -
            	// Check if b follows a
         | 
| 22209 | 
            -
            	if ( cur ) {
         | 
| 22210 | 
            -
            		while ( ( cur = cur.nextSibling ) ) {
         | 
| 22211 | 
            -
            			if ( cur === b ) {
         | 
| 22212 | 
            -
            				return -1;
         | 
| 22213 | 
            -
            			}
         | 
| 22214 | 
            -
            		}
         | 
| 22215 | 
            -
            	}
         | 
| 22216 | 
            -
             | 
| 22217 | 
            -
            	return a ? 1 : -1;
         | 
| 22218 | 
            -
            }
         | 
| 22219 | 
            -
             | 
| 22220 22220 | 
             
            /**
         | 
| 22221 22221 | 
             
             * Returns a function to use in pseudos for input types
         | 
| 22222 22222 | 
             
             * @param {String} type
         | 
| 22223 22223 | 
             
             */
         | 
| 22224 22224 | 
             
            function createInputPseudo( type ) {
         | 
| 22225 22225 | 
             
            	return function( elem ) {
         | 
| 22226 | 
            -
            		 | 
| 22227 | 
            -
            		return name === "input" && elem.type === type;
         | 
| 22226 | 
            +
            		return nodeName( elem, "input" ) && elem.type === type;
         | 
| 22228 22227 | 
             
            	};
         | 
| 22229 22228 | 
             
            }
         | 
| 22230 22229 |  | 
| @@ -22234,8 +22233,8 @@ function createInputPseudo( type ) { | |
| 22234 22233 | 
             
             */
         | 
| 22235 22234 | 
             
            function createButtonPseudo( type ) {
         | 
| 22236 22235 | 
             
            	return function( elem ) {
         | 
| 22237 | 
            -
            		 | 
| 22238 | 
            -
             | 
| 22236 | 
            +
            		return ( nodeName( elem, "input" ) || nodeName( elem, "button" ) ) &&
         | 
| 22237 | 
            +
            			elem.type === type;
         | 
| 22239 22238 | 
             
            	};
         | 
| 22240 22239 | 
             
            }
         | 
| 22241 22240 |  | 
| @@ -22271,14 +22270,13 @@ function createDisabledPseudo( disabled ) { | |
| 22271 22270 | 
             
            					}
         | 
| 22272 22271 | 
             
            				}
         | 
| 22273 22272 |  | 
| 22274 | 
            -
            				// Support: IE 6 - 11
         | 
| 22273 | 
            +
            				// Support: IE 6 - 11+
         | 
| 22275 22274 | 
             
            				// Use the isDisabled shortcut property to check for disabled fieldset ancestors
         | 
| 22276 22275 | 
             
            				return elem.isDisabled === disabled ||
         | 
| 22277 22276 |  | 
| 22278 22277 | 
             
            					// Where there is no isDisabled, check manually
         | 
| 22279 | 
            -
            					/* jshint -W018 */
         | 
| 22280 22278 | 
             
            					elem.isDisabled !== !disabled &&
         | 
| 22281 | 
            -
             | 
| 22279 | 
            +
            						inDisabledFieldset( elem ) === disabled;
         | 
| 22282 22280 | 
             
            			}
         | 
| 22283 22281 |  | 
| 22284 22282 | 
             
            			return elem.disabled === disabled;
         | 
| @@ -22318,7 +22316,7 @@ function createPositionalPseudo( fn ) { | |
| 22318 22316 | 
             
            }
         | 
| 22319 22317 |  | 
| 22320 22318 | 
             
            /**
         | 
| 22321 | 
            -
             * Checks a node for validity as a  | 
| 22319 | 
            +
             * Checks a node for validity as a jQuery selector context
         | 
| 22322 22320 | 
             
             * @param {Element|Object=} context
         | 
| 22323 22321 | 
             
             * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
         | 
| 22324 22322 | 
             
             */
         | 
| @@ -22326,31 +22324,13 @@ function testContext( context ) { | |
| 22326 22324 | 
             
            	return context && typeof context.getElementsByTagName !== "undefined" && context;
         | 
| 22327 22325 | 
             
            }
         | 
| 22328 22326 |  | 
| 22329 | 
            -
            // Expose support vars for convenience
         | 
| 22330 | 
            -
            support = Sizzle.support = {};
         | 
| 22331 | 
            -
             | 
| 22332 | 
            -
            /**
         | 
| 22333 | 
            -
             * Detects XML nodes
         | 
| 22334 | 
            -
             * @param {Element|Object} elem An element or a document
         | 
| 22335 | 
            -
             * @returns {Boolean} True iff elem is a non-HTML XML node
         | 
| 22336 | 
            -
             */
         | 
| 22337 | 
            -
            isXML = Sizzle.isXML = function( elem ) {
         | 
| 22338 | 
            -
            	var namespace = elem && elem.namespaceURI,
         | 
| 22339 | 
            -
            		docElem = elem && ( elem.ownerDocument || elem ).documentElement;
         | 
| 22340 | 
            -
             | 
| 22341 | 
            -
            	// Support: IE <=8
         | 
| 22342 | 
            -
            	// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
         | 
| 22343 | 
            -
            	// https://bugs.jquery.com/ticket/4833
         | 
| 22344 | 
            -
            	return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
         | 
| 22345 | 
            -
            };
         | 
| 22346 | 
            -
             | 
| 22347 22327 | 
             
            /**
         | 
| 22348 22328 | 
             
             * Sets document-related variables once based on the current document
         | 
| 22349 | 
            -
             * @param {Element|Object} [ | 
| 22329 | 
            +
             * @param {Element|Object} [node] An element or document object to use to set the document
         | 
| 22350 22330 | 
             
             * @returns {Object} Returns the current document
         | 
| 22351 22331 | 
             
             */
         | 
| 22352 | 
            -
             | 
| 22353 | 
            -
            	var  | 
| 22332 | 
            +
            function setDocument( node ) {
         | 
| 22333 | 
            +
            	var subWindow,
         | 
| 22354 22334 | 
             
            		doc = node ? node.ownerDocument || node : preferredDoc;
         | 
| 22355 22335 |  | 
| 22356 22336 | 
             
            	// Return early if doc is invalid or already selected
         | 
| @@ -22364,87 +22344,90 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22364 22344 |  | 
| 22365 22345 | 
             
            	// Update global variables
         | 
| 22366 22346 | 
             
            	document = doc;
         | 
| 22367 | 
            -
            	 | 
| 22368 | 
            -
            	documentIsHTML = ! | 
| 22347 | 
            +
            	documentElement = document.documentElement;
         | 
| 22348 | 
            +
            	documentIsHTML = !jQuery.isXMLDoc( document );
         | 
| 22349 | 
            +
             | 
| 22350 | 
            +
            	// Support: iOS 7 only, IE 9 - 11+
         | 
| 22351 | 
            +
            	// Older browsers didn't support unprefixed `matches`.
         | 
| 22352 | 
            +
            	matches = documentElement.matches ||
         | 
| 22353 | 
            +
            		documentElement.webkitMatchesSelector ||
         | 
| 22354 | 
            +
            		documentElement.msMatchesSelector;
         | 
| 22369 22355 |  | 
| 22370 22356 | 
             
            	// Support: IE 9 - 11+, Edge 12 - 18+
         | 
| 22371 | 
            -
            	// Accessing iframe documents after unload throws "permission denied" errors | 
| 22372 | 
            -
            	//  | 
| 22373 | 
            -
            	// IE | 
| 22374 | 
            -
            	//  | 
| 22375 | 
            -
            	 | 
| 22376 | 
            -
            	if ( preferredDoc != document &&
         | 
| 22377 | 
            -
            		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
         | 
| 22357 | 
            +
            	// Accessing iframe documents after unload throws "permission denied" errors
         | 
| 22358 | 
            +
            	// (see trac-13936).
         | 
| 22359 | 
            +
            	// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,
         | 
| 22360 | 
            +
            	// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.
         | 
| 22361 | 
            +
            	if ( documentElement.msMatchesSelector &&
         | 
| 22378 22362 |  | 
| 22379 | 
            -
            		// Support: IE 11 | 
| 22380 | 
            -
            		 | 
| 22381 | 
            -
             | 
| 22363 | 
            +
            		// Support: IE 11+, Edge 17 - 18+
         | 
| 22364 | 
            +
            		// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 22365 | 
            +
            		// two documents; shallow comparisons work.
         | 
| 22366 | 
            +
            		// eslint-disable-next-line eqeqeq
         | 
| 22367 | 
            +
            		preferredDoc != document &&
         | 
| 22368 | 
            +
            		( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {
         | 
| 22382 22369 |  | 
| 22383 | 
            -
            		// Support: IE 9 -  | 
| 22384 | 
            -
            		 | 
| 22385 | 
            -
            			subWindow.attachEvent( "onunload", unloadHandler );
         | 
| 22386 | 
            -
            		}
         | 
| 22370 | 
            +
            		// Support: IE 9 - 11+, Edge 12 - 18+
         | 
| 22371 | 
            +
            		subWindow.addEventListener( "unload", unloadHandler );
         | 
| 22387 22372 | 
             
            	}
         | 
| 22388 22373 |  | 
| 22389 | 
            -
            	// Support: IE  | 
| 22390 | 
            -
            	//  | 
| 22391 | 
            -
            	//  | 
| 22392 | 
            -
            	//  | 
| 22393 | 
            -
            	 | 
| 22394 | 
            -
             | 
| 22395 | 
            -
            		 | 
| 22396 | 
            -
             | 
| 22397 | 
            -
            			!el.querySelectorAll( ":scope fieldset div" ).length;
         | 
| 22374 | 
            +
            	// Support: IE <10
         | 
| 22375 | 
            +
            	// Check if getElementById returns elements by name
         | 
| 22376 | 
            +
            	// The broken getElementById methods don't pick up programmatically-set names,
         | 
| 22377 | 
            +
            	// so use a roundabout getElementsByName test
         | 
| 22378 | 
            +
            	support.getById = assert( function( el ) {
         | 
| 22379 | 
            +
            		documentElement.appendChild( el ).id = jQuery.expando;
         | 
| 22380 | 
            +
            		return !document.getElementsByName ||
         | 
| 22381 | 
            +
            			!document.getElementsByName( jQuery.expando ).length;
         | 
| 22398 22382 | 
             
            	} );
         | 
| 22399 22383 |  | 
| 22400 | 
            -
            	 | 
| 22401 | 
            -
            	 | 
| 22402 | 
            -
             | 
| 22403 | 
            -
            	 | 
| 22404 | 
            -
             | 
| 22405 | 
            -
            	// (excepting IE8 booleans)
         | 
| 22406 | 
            -
            	support.attributes = assert( function( el ) {
         | 
| 22407 | 
            -
            		el.className = "i";
         | 
| 22408 | 
            -
            		return !el.getAttribute( "className" );
         | 
| 22384 | 
            +
            	// Support: IE 9 only
         | 
| 22385 | 
            +
            	// Check to see if it's possible to do matchesSelector
         | 
| 22386 | 
            +
            	// on a disconnected node.
         | 
| 22387 | 
            +
            	support.disconnectedMatch = assert( function( el ) {
         | 
| 22388 | 
            +
            		return matches.call( el, "*" );
         | 
| 22409 22389 | 
             
            	} );
         | 
| 22410 22390 |  | 
| 22411 | 
            -
            	 | 
| 22412 | 
            -
            	 | 
| 22413 | 
            -
             | 
| 22414 | 
            -
             | 
| 22415 | 
            -
            	support.getElementsByTagName = assert( function( el ) {
         | 
| 22416 | 
            -
            		el.appendChild( document.createComment( "" ) );
         | 
| 22417 | 
            -
            		return !el.getElementsByTagName( "*" ).length;
         | 
| 22391 | 
            +
            	// Support: IE 9 - 11+, Edge 12 - 18+
         | 
| 22392 | 
            +
            	// IE/Edge don't support the :scope pseudo-class.
         | 
| 22393 | 
            +
            	support.scope = assert( function() {
         | 
| 22394 | 
            +
            		return document.querySelectorAll( ":scope" );
         | 
| 22418 22395 | 
             
            	} );
         | 
| 22419 22396 |  | 
| 22420 | 
            -
            	// Support:  | 
| 22421 | 
            -
            	 | 
| 22422 | 
            -
             | 
| 22423 | 
            -
            	//  | 
| 22424 | 
            -
            	//  | 
| 22425 | 
            -
            	//  | 
| 22426 | 
            -
            	//  | 
| 22427 | 
            -
            	 | 
| 22428 | 
            -
             | 
| 22429 | 
            -
             | 
| 22397 | 
            +
            	// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only
         | 
| 22398 | 
            +
            	// Make sure the `:has()` argument is parsed unforgivingly.
         | 
| 22399 | 
            +
            	// We include `*` in the test to detect buggy implementations that are
         | 
| 22400 | 
            +
            	// _selectively_ forgiving (specifically when the list includes at least
         | 
| 22401 | 
            +
            	// one valid selector).
         | 
| 22402 | 
            +
            	// Note that we treat complete lack of support for `:has()` as if it were
         | 
| 22403 | 
            +
            	// spec-compliant support, which is fine because use of `:has()` in such
         | 
| 22404 | 
            +
            	// environments will fail in the qSA path and fall back to jQuery traversal
         | 
| 22405 | 
            +
            	// anyway.
         | 
| 22406 | 
            +
            	support.cssHas = assert( function() {
         | 
| 22407 | 
            +
            		try {
         | 
| 22408 | 
            +
            			document.querySelector( ":has(*,:jqfake)" );
         | 
| 22409 | 
            +
            			return false;
         | 
| 22410 | 
            +
            		} catch ( e ) {
         | 
| 22411 | 
            +
            			return true;
         | 
| 22412 | 
            +
            		}
         | 
| 22430 22413 | 
             
            	} );
         | 
| 22431 22414 |  | 
| 22432 22415 | 
             
            	// ID filter and find
         | 
| 22433 22416 | 
             
            	if ( support.getById ) {
         | 
| 22434 | 
            -
            		Expr.filter | 
| 22417 | 
            +
            		Expr.filter.ID = function( id ) {
         | 
| 22435 22418 | 
             
            			var attrId = id.replace( runescape, funescape );
         | 
| 22436 22419 | 
             
            			return function( elem ) {
         | 
| 22437 22420 | 
             
            				return elem.getAttribute( "id" ) === attrId;
         | 
| 22438 22421 | 
             
            			};
         | 
| 22439 22422 | 
             
            		};
         | 
| 22440 | 
            -
            		Expr.find | 
| 22423 | 
            +
            		Expr.find.ID = function( id, context ) {
         | 
| 22441 22424 | 
             
            			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
         | 
| 22442 22425 | 
             
            				var elem = context.getElementById( id );
         | 
| 22443 22426 | 
             
            				return elem ? [ elem ] : [];
         | 
| 22444 22427 | 
             
            			}
         | 
| 22445 22428 | 
             
            		};
         | 
| 22446 22429 | 
             
            	} else {
         | 
| 22447 | 
            -
            		Expr.filter | 
| 22430 | 
            +
            		Expr.filter.ID =  function( id ) {
         | 
| 22448 22431 | 
             
            			var attrId = id.replace( runescape, funescape );
         | 
| 22449 22432 | 
             
            			return function( elem ) {
         | 
| 22450 22433 | 
             
            				var node = typeof elem.getAttributeNode !== "undefined" &&
         | 
| @@ -22455,7 +22438,7 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22455 22438 |  | 
| 22456 22439 | 
             
            		// Support: IE 6 - 7 only
         | 
| 22457 22440 | 
             
            		// getElementById is not reliable as a find shortcut
         | 
| 22458 | 
            -
            		Expr.find | 
| 22441 | 
            +
            		Expr.find.ID = function( id, context ) {
         | 
| 22459 22442 | 
             
            			if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
         | 
| 22460 22443 | 
             
            				var node, i, elems,
         | 
| 22461 22444 | 
             
            					elem = context.getElementById( id );
         | 
| @@ -22485,40 +22468,18 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22485 22468 | 
             
            	}
         | 
| 22486 22469 |  | 
| 22487 22470 | 
             
            	// Tag
         | 
| 22488 | 
            -
            	Expr.find | 
| 22489 | 
            -
            		 | 
| 22490 | 
            -
            			 | 
| 22491 | 
            -
            				return context.getElementsByTagName( tag );
         | 
| 22492 | 
            -
             | 
| 22493 | 
            -
            			// DocumentFragment nodes don't have gEBTN
         | 
| 22494 | 
            -
            			} else if ( support.qsa ) {
         | 
| 22495 | 
            -
            				return context.querySelectorAll( tag );
         | 
| 22496 | 
            -
            			}
         | 
| 22497 | 
            -
            		} :
         | 
| 22498 | 
            -
             | 
| 22499 | 
            -
            		function( tag, context ) {
         | 
| 22500 | 
            -
            			var elem,
         | 
| 22501 | 
            -
            				tmp = [],
         | 
| 22502 | 
            -
            				i = 0,
         | 
| 22503 | 
            -
             | 
| 22504 | 
            -
            				// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
         | 
| 22505 | 
            -
            				results = context.getElementsByTagName( tag );
         | 
| 22471 | 
            +
            	Expr.find.TAG = function( tag, context ) {
         | 
| 22472 | 
            +
            		if ( typeof context.getElementsByTagName !== "undefined" ) {
         | 
| 22473 | 
            +
            			return context.getElementsByTagName( tag );
         | 
| 22506 22474 |  | 
| 22507 | 
            -
             | 
| 22508 | 
            -
             | 
| 22509 | 
            -
             | 
| 22510 | 
            -
             | 
| 22511 | 
            -
             | 
| 22512 | 
            -
            					}
         | 
| 22513 | 
            -
            				}
         | 
| 22514 | 
            -
             | 
| 22515 | 
            -
            				return tmp;
         | 
| 22516 | 
            -
            			}
         | 
| 22517 | 
            -
            			return results;
         | 
| 22518 | 
            -
            		};
         | 
| 22475 | 
            +
            		// DocumentFragment nodes don't have gEBTN
         | 
| 22476 | 
            +
            		} else {
         | 
| 22477 | 
            +
            			return context.querySelectorAll( tag );
         | 
| 22478 | 
            +
            		}
         | 
| 22479 | 
            +
            	};
         | 
| 22519 22480 |  | 
| 22520 22481 | 
             
            	// Class
         | 
| 22521 | 
            -
            	Expr.find | 
| 22482 | 
            +
            	Expr.find.CLASS = function( className, context ) {
         | 
| 22522 22483 | 
             
            		if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
         | 
| 22523 22484 | 
             
            			return context.getElementsByClassName( className );
         | 
| 22524 22485 | 
             
            		}
         | 
| @@ -22529,177 +22490,94 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22529 22490 |  | 
| 22530 22491 | 
             
            	// QSA and matchesSelector support
         | 
| 22531 22492 |  | 
| 22532 | 
            -
            	// matchesSelector(:active) reports false when true (IE9/Opera 11.5)
         | 
| 22533 | 
            -
            	rbuggyMatches = [];
         | 
| 22534 | 
            -
             | 
| 22535 | 
            -
            	// qSa(:focus) reports false when true (Chrome 21)
         | 
| 22536 | 
            -
            	// We allow this because of a bug in IE8/9 that throws an error
         | 
| 22537 | 
            -
            	// whenever `document.activeElement` is accessed on an iframe
         | 
| 22538 | 
            -
            	// So, we allow :focus to pass through QSA all the time to avoid the IE error
         | 
| 22539 | 
            -
            	// See https://bugs.jquery.com/ticket/13378
         | 
| 22540 22493 | 
             
            	rbuggyQSA = [];
         | 
| 22541 22494 |  | 
| 22542 | 
            -
            	 | 
| 22543 | 
            -
             | 
| 22544 | 
            -
             | 
| 22545 | 
            -
            		// Regex strategy adopted from Diego Perini
         | 
| 22546 | 
            -
            		assert( function( el ) {
         | 
| 22547 | 
            -
             | 
| 22548 | 
            -
            			var input;
         | 
| 22549 | 
            -
             | 
| 22550 | 
            -
            			// Select is set to empty string on purpose
         | 
| 22551 | 
            -
            			// This is to test IE's treatment of not explicitly
         | 
| 22552 | 
            -
            			// setting a boolean content attribute,
         | 
| 22553 | 
            -
            			// since its presence should be enough
         | 
| 22554 | 
            -
            			// https://bugs.jquery.com/ticket/12359
         | 
| 22555 | 
            -
            			docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
         | 
| 22556 | 
            -
            				"<select id='" + expando + "-\r\\' msallowcapture=''>" +
         | 
| 22557 | 
            -
            				"<option selected=''></option></select>";
         | 
| 22558 | 
            -
             | 
| 22559 | 
            -
            			// Support: IE8, Opera 11-12.16
         | 
| 22560 | 
            -
            			// Nothing should be selected when empty strings follow ^= or $= or *=
         | 
| 22561 | 
            -
            			// The test attribute must be unknown in Opera but "safe" for WinRT
         | 
| 22562 | 
            -
            			// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
         | 
| 22563 | 
            -
            			if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) {
         | 
| 22564 | 
            -
            				rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
         | 
| 22565 | 
            -
            			}
         | 
| 22566 | 
            -
             | 
| 22567 | 
            -
            			// Support: IE8
         | 
| 22568 | 
            -
            			// Boolean attributes and "value" are not treated correctly
         | 
| 22569 | 
            -
            			if ( !el.querySelectorAll( "[selected]" ).length ) {
         | 
| 22570 | 
            -
            				rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
         | 
| 22571 | 
            -
            			}
         | 
| 22572 | 
            -
             | 
| 22573 | 
            -
            			// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
         | 
| 22574 | 
            -
            			if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
         | 
| 22575 | 
            -
            				rbuggyQSA.push( "~=" );
         | 
| 22576 | 
            -
            			}
         | 
| 22577 | 
            -
             | 
| 22578 | 
            -
            			// Support: IE 11+, Edge 15 - 18+
         | 
| 22579 | 
            -
            			// IE 11/Edge don't find elements on a `[name='']` query in some cases.
         | 
| 22580 | 
            -
            			// Adding a temporary attribute to the document before the selection works
         | 
| 22581 | 
            -
            			// around the issue.
         | 
| 22582 | 
            -
            			// Interestingly, IE 10 & older don't seem to have the issue.
         | 
| 22583 | 
            -
            			input = document.createElement( "input" );
         | 
| 22584 | 
            -
            			input.setAttribute( "name", "" );
         | 
| 22585 | 
            -
            			el.appendChild( input );
         | 
| 22586 | 
            -
            			if ( !el.querySelectorAll( "[name='']" ).length ) {
         | 
| 22587 | 
            -
            				rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
         | 
| 22588 | 
            -
            					whitespace + "*(?:''|\"\")" );
         | 
| 22589 | 
            -
            			}
         | 
| 22590 | 
            -
             | 
| 22591 | 
            -
            			// Webkit/Opera - :checked should return selected option elements
         | 
| 22592 | 
            -
            			// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
         | 
| 22593 | 
            -
            			// IE8 throws error here and will not see later tests
         | 
| 22594 | 
            -
            			if ( !el.querySelectorAll( ":checked" ).length ) {
         | 
| 22595 | 
            -
            				rbuggyQSA.push( ":checked" );
         | 
| 22596 | 
            -
            			}
         | 
| 22597 | 
            -
             | 
| 22598 | 
            -
            			// Support: Safari 8+, iOS 8+
         | 
| 22599 | 
            -
            			// https://bugs.webkit.org/show_bug.cgi?id=136851
         | 
| 22600 | 
            -
            			// In-page `selector#id sibling-combinator selector` fails
         | 
| 22601 | 
            -
            			if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
         | 
| 22602 | 
            -
            				rbuggyQSA.push( ".#.+[+~]" );
         | 
| 22603 | 
            -
            			}
         | 
| 22604 | 
            -
             | 
| 22605 | 
            -
            			// Support: Firefox <=3.6 - 5 only
         | 
| 22606 | 
            -
            			// Old Firefox doesn't throw on a badly-escaped identifier.
         | 
| 22607 | 
            -
            			el.querySelectorAll( "\\\f" );
         | 
| 22608 | 
            -
            			rbuggyQSA.push( "[\\r\\n\\f]" );
         | 
| 22609 | 
            -
            		} );
         | 
| 22610 | 
            -
             | 
| 22611 | 
            -
            		assert( function( el ) {
         | 
| 22612 | 
            -
            			el.innerHTML = "<a href='' disabled='disabled'></a>" +
         | 
| 22613 | 
            -
            				"<select disabled='disabled'><option/></select>";
         | 
| 22495 | 
            +
            	// Build QSA regex
         | 
| 22496 | 
            +
            	// Regex strategy adopted from Diego Perini
         | 
| 22497 | 
            +
            	assert( function( el ) {
         | 
| 22614 22498 |  | 
| 22615 | 
            -
             | 
| 22616 | 
            -
            			// The type and name attributes are restricted during .innerHTML assignment
         | 
| 22617 | 
            -
            			var input = document.createElement( "input" );
         | 
| 22618 | 
            -
            			input.setAttribute( "type", "hidden" );
         | 
| 22619 | 
            -
            			el.appendChild( input ).setAttribute( "name", "D" );
         | 
| 22499 | 
            +
            		var input;
         | 
| 22620 22500 |  | 
| 22621 | 
            -
             | 
| 22622 | 
            -
            			 | 
| 22623 | 
            -
            			 | 
| 22624 | 
            -
             | 
| 22625 | 
            -
            			}
         | 
| 22501 | 
            +
            		documentElement.appendChild( el ).innerHTML =
         | 
| 22502 | 
            +
            			"<a id='" + expando + "' href='' disabled='disabled'></a>" +
         | 
| 22503 | 
            +
            			"<select id='" + expando + "-\r\\' disabled='disabled'>" +
         | 
| 22504 | 
            +
            			"<option selected=''></option></select>";
         | 
| 22626 22505 |  | 
| 22627 | 
            -
             | 
| 22628 | 
            -
             | 
| 22629 | 
            -
             | 
| 22630 | 
            -
             | 
| 22631 | 
            -
             | 
| 22506 | 
            +
            		// Support: iOS <=7 - 8 only
         | 
| 22507 | 
            +
            		// Boolean attributes and "value" are not treated correctly in some XML documents
         | 
| 22508 | 
            +
            		if ( !el.querySelectorAll( "[selected]" ).length ) {
         | 
| 22509 | 
            +
            			rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
         | 
| 22510 | 
            +
            		}
         | 
| 22632 22511 |  | 
| 22633 | 
            -
             | 
| 22634 | 
            -
             | 
| 22635 | 
            -
            			 | 
| 22636 | 
            -
             | 
| 22637 | 
            -
            				rbuggyQSA.push( ":enabled", ":disabled" );
         | 
| 22638 | 
            -
            			}
         | 
| 22512 | 
            +
            		// Support: iOS <=7 - 8 only
         | 
| 22513 | 
            +
            		if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
         | 
| 22514 | 
            +
            			rbuggyQSA.push( "~=" );
         | 
| 22515 | 
            +
            		}
         | 
| 22639 22516 |  | 
| 22640 | 
            -
             | 
| 22641 | 
            -
             | 
| 22642 | 
            -
             | 
| 22643 | 
            -
             | 
| 22644 | 
            -
             | 
| 22645 | 
            -
             | 
| 22517 | 
            +
            		// Support: iOS 8 only
         | 
| 22518 | 
            +
            		// https://bugs.webkit.org/show_bug.cgi?id=136851
         | 
| 22519 | 
            +
            		// In-page `selector#id sibling-combinator selector` fails
         | 
| 22520 | 
            +
            		if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
         | 
| 22521 | 
            +
            			rbuggyQSA.push( ".#.+[+~]" );
         | 
| 22522 | 
            +
            		}
         | 
| 22646 22523 |  | 
| 22647 | 
            -
             | 
| 22648 | 
            -
            		 | 
| 22649 | 
            -
            		 | 
| 22650 | 
            -
            		 | 
| 22651 | 
            -
            		 | 
| 22524 | 
            +
            		// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
         | 
| 22525 | 
            +
            		// In some of the document kinds, these selectors wouldn't work natively.
         | 
| 22526 | 
            +
            		// This is probably OK but for backwards compatibility we want to maintain
         | 
| 22527 | 
            +
            		// handling them through jQuery traversal in jQuery 3.x.
         | 
| 22528 | 
            +
            		if ( !el.querySelectorAll( ":checked" ).length ) {
         | 
| 22529 | 
            +
            			rbuggyQSA.push( ":checked" );
         | 
| 22530 | 
            +
            		}
         | 
| 22652 22531 |  | 
| 22653 | 
            -
            		 | 
| 22532 | 
            +
            		// Support: Windows 8 Native Apps
         | 
| 22533 | 
            +
            		// The type and name attributes are restricted during .innerHTML assignment
         | 
| 22534 | 
            +
            		input = document.createElement( "input" );
         | 
| 22535 | 
            +
            		input.setAttribute( "type", "hidden" );
         | 
| 22536 | 
            +
            		el.appendChild( input ).setAttribute( "name", "D" );
         | 
| 22537 | 
            +
             | 
| 22538 | 
            +
            		// Support: IE 9 - 11+
         | 
| 22539 | 
            +
            		// IE's :disabled selector does not pick up the children of disabled fieldsets
         | 
| 22540 | 
            +
            		// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+
         | 
| 22541 | 
            +
            		// In some of the document kinds, these selectors wouldn't work natively.
         | 
| 22542 | 
            +
            		// This is probably OK but for backwards compatibility we want to maintain
         | 
| 22543 | 
            +
            		// handling them through jQuery traversal in jQuery 3.x.
         | 
| 22544 | 
            +
            		documentElement.appendChild( el ).disabled = true;
         | 
| 22545 | 
            +
            		if ( el.querySelectorAll( ":disabled" ).length !== 2 ) {
         | 
| 22546 | 
            +
            			rbuggyQSA.push( ":enabled", ":disabled" );
         | 
| 22547 | 
            +
            		}
         | 
| 22548 | 
            +
             | 
| 22549 | 
            +
            		// Support: IE 11+, Edge 15 - 18+
         | 
| 22550 | 
            +
            		// IE 11/Edge don't find elements on a `[name='']` query in some cases.
         | 
| 22551 | 
            +
            		// Adding a temporary attribute to the document before the selection works
         | 
| 22552 | 
            +
            		// around the issue.
         | 
| 22553 | 
            +
            		// Interestingly, IE 10 & older don't seem to have the issue.
         | 
| 22554 | 
            +
            		input = document.createElement( "input" );
         | 
| 22555 | 
            +
            		input.setAttribute( "name", "" );
         | 
| 22556 | 
            +
            		el.appendChild( input );
         | 
| 22557 | 
            +
            		if ( !el.querySelectorAll( "[name='']" ).length ) {
         | 
| 22558 | 
            +
            			rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" +
         | 
| 22559 | 
            +
            				whitespace + "*(?:''|\"\")" );
         | 
| 22560 | 
            +
            		}
         | 
| 22561 | 
            +
            	} );
         | 
| 22654 22562 |  | 
| 22655 | 
            -
             | 
| 22656 | 
            -
            			// on a disconnected node (IE 9)
         | 
| 22657 | 
            -
            			support.disconnectedMatch = matches.call( el, "*" );
         | 
| 22563 | 
            +
            	if ( !support.cssHas ) {
         | 
| 22658 22564 |  | 
| 22659 | 
            -
             | 
| 22660 | 
            -
             | 
| 22661 | 
            -
             | 
| 22662 | 
            -
             | 
| 22663 | 
            -
            		 | 
| 22565 | 
            +
            		// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+
         | 
| 22566 | 
            +
            		// Our regular `try-catch` mechanism fails to detect natively-unsupported
         | 
| 22567 | 
            +
            		// pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`)
         | 
| 22568 | 
            +
            		// in browsers that parse the `:has()` argument as a forgiving selector list.
         | 
| 22569 | 
            +
            		// https://drafts.csswg.org/selectors/#relational now requires the argument
         | 
| 22570 | 
            +
            		// to be parsed unforgivingly, but browsers have not yet fully adjusted.
         | 
| 22571 | 
            +
            		rbuggyQSA.push( ":has" );
         | 
| 22664 22572 | 
             
            	}
         | 
| 22665 22573 |  | 
| 22666 22574 | 
             
            	rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) );
         | 
| 22667 | 
            -
            	rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) );
         | 
| 22668 | 
            -
             | 
| 22669 | 
            -
            	/* Contains
         | 
| 22670 | 
            -
            	---------------------------------------------------------------------- */
         | 
| 22671 | 
            -
            	hasCompare = rnative.test( docElem.compareDocumentPosition );
         | 
| 22672 | 
            -
             | 
| 22673 | 
            -
            	// Element contains another
         | 
| 22674 | 
            -
            	// Purposefully self-exclusive
         | 
| 22675 | 
            -
            	// As in, an element does not contain itself
         | 
| 22676 | 
            -
            	contains = hasCompare || rnative.test( docElem.contains ) ?
         | 
| 22677 | 
            -
            		function( a, b ) {
         | 
| 22678 | 
            -
            			var adown = a.nodeType === 9 ? a.documentElement : a,
         | 
| 22679 | 
            -
            				bup = b && b.parentNode;
         | 
| 22680 | 
            -
            			return a === bup || !!( bup && bup.nodeType === 1 && (
         | 
| 22681 | 
            -
            				adown.contains ?
         | 
| 22682 | 
            -
            					adown.contains( bup ) :
         | 
| 22683 | 
            -
            					a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
         | 
| 22684 | 
            -
            			) );
         | 
| 22685 | 
            -
            		} :
         | 
| 22686 | 
            -
            		function( a, b ) {
         | 
| 22687 | 
            -
            			if ( b ) {
         | 
| 22688 | 
            -
            				while ( ( b = b.parentNode ) ) {
         | 
| 22689 | 
            -
            					if ( b === a ) {
         | 
| 22690 | 
            -
            						return true;
         | 
| 22691 | 
            -
            					}
         | 
| 22692 | 
            -
            				}
         | 
| 22693 | 
            -
            			}
         | 
| 22694 | 
            -
            			return false;
         | 
| 22695 | 
            -
            		};
         | 
| 22696 22575 |  | 
| 22697 22576 | 
             
            	/* Sorting
         | 
| 22698 22577 | 
             
            	---------------------------------------------------------------------- */
         | 
| 22699 22578 |  | 
| 22700 22579 | 
             
            	// Document order sorting
         | 
| 22701 | 
            -
            	sortOrder =  | 
| 22702 | 
            -
            	function( a, b ) {
         | 
| 22580 | 
            +
            	sortOrder = function( a, b ) {
         | 
| 22703 22581 |  | 
| 22704 22582 | 
             
            		// Flag for duplicate removal
         | 
| 22705 22583 | 
             
            		if ( a === b ) {
         | 
| @@ -22733,8 +22611,8 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22733 22611 | 
             
            			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 22734 22612 | 
             
            			// two documents; shallow comparisons work.
         | 
| 22735 22613 | 
             
            			// eslint-disable-next-line eqeqeq
         | 
| 22736 | 
            -
            			if ( a  | 
| 22737 | 
            -
            				contains( preferredDoc, a ) ) {
         | 
| 22614 | 
            +
            			if ( a === document || a.ownerDocument == preferredDoc &&
         | 
| 22615 | 
            +
            				find.contains( preferredDoc, a ) ) {
         | 
| 22738 22616 | 
             
            				return -1;
         | 
| 22739 22617 | 
             
            			}
         | 
| 22740 22618 |  | 
| @@ -22742,100 +22620,33 @@ setDocument = Sizzle.setDocument = function( node ) { | |
| 22742 22620 | 
             
            			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 22743 22621 | 
             
            			// two documents; shallow comparisons work.
         | 
| 22744 22622 | 
             
            			// eslint-disable-next-line eqeqeq
         | 
| 22745 | 
            -
            			if ( b  | 
| 22746 | 
            -
            				contains( preferredDoc, b ) ) {
         | 
| 22623 | 
            +
            			if ( b === document || b.ownerDocument == preferredDoc &&
         | 
| 22624 | 
            +
            				find.contains( preferredDoc, b ) ) {
         | 
| 22747 22625 | 
             
            				return 1;
         | 
| 22748 22626 | 
             
            			}
         | 
| 22749 22627 |  | 
| 22750 22628 | 
             
            			// Maintain original order
         | 
| 22751 22629 | 
             
            			return sortInput ?
         | 
| 22752 | 
            -
            				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
         | 
| 22630 | 
            +
            				( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :
         | 
| 22753 22631 | 
             
            				0;
         | 
| 22754 22632 | 
             
            		}
         | 
| 22755 22633 |  | 
| 22756 22634 | 
             
            		return compare & 4 ? -1 : 1;
         | 
| 22757 | 
            -
            	} :
         | 
| 22758 | 
            -
            	function( a, b ) {
         | 
| 22759 | 
            -
             | 
| 22760 | 
            -
            		// Exit early if the nodes are identical
         | 
| 22761 | 
            -
            		if ( a === b ) {
         | 
| 22762 | 
            -
            			hasDuplicate = true;
         | 
| 22763 | 
            -
            			return 0;
         | 
| 22764 | 
            -
            		}
         | 
| 22765 | 
            -
             | 
| 22766 | 
            -
            		var cur,
         | 
| 22767 | 
            -
            			i = 0,
         | 
| 22768 | 
            -
            			aup = a.parentNode,
         | 
| 22769 | 
            -
            			bup = b.parentNode,
         | 
| 22770 | 
            -
            			ap = [ a ],
         | 
| 22771 | 
            -
            			bp = [ b ];
         | 
| 22772 | 
            -
             | 
| 22773 | 
            -
            		// Parentless nodes are either documents or disconnected
         | 
| 22774 | 
            -
            		if ( !aup || !bup ) {
         | 
| 22775 | 
            -
             | 
| 22776 | 
            -
            			// Support: IE 11+, Edge 17 - 18+
         | 
| 22777 | 
            -
            			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 22778 | 
            -
            			// two documents; shallow comparisons work.
         | 
| 22779 | 
            -
            			/* eslint-disable eqeqeq */
         | 
| 22780 | 
            -
            			return a == document ? -1 :
         | 
| 22781 | 
            -
            				b == document ? 1 :
         | 
| 22782 | 
            -
            				/* eslint-enable eqeqeq */
         | 
| 22783 | 
            -
            				aup ? -1 :
         | 
| 22784 | 
            -
            				bup ? 1 :
         | 
| 22785 | 
            -
            				sortInput ?
         | 
| 22786 | 
            -
            				( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
         | 
| 22787 | 
            -
            				0;
         | 
| 22788 | 
            -
             | 
| 22789 | 
            -
            		// If the nodes are siblings, we can do a quick check
         | 
| 22790 | 
            -
            		} else if ( aup === bup ) {
         | 
| 22791 | 
            -
            			return siblingCheck( a, b );
         | 
| 22792 | 
            -
            		}
         | 
| 22793 | 
            -
             | 
| 22794 | 
            -
            		// Otherwise we need full lists of their ancestors for comparison
         | 
| 22795 | 
            -
            		cur = a;
         | 
| 22796 | 
            -
            		while ( ( cur = cur.parentNode ) ) {
         | 
| 22797 | 
            -
            			ap.unshift( cur );
         | 
| 22798 | 
            -
            		}
         | 
| 22799 | 
            -
            		cur = b;
         | 
| 22800 | 
            -
            		while ( ( cur = cur.parentNode ) ) {
         | 
| 22801 | 
            -
            			bp.unshift( cur );
         | 
| 22802 | 
            -
            		}
         | 
| 22803 | 
            -
             | 
| 22804 | 
            -
            		// Walk down the tree looking for a discrepancy
         | 
| 22805 | 
            -
            		while ( ap[ i ] === bp[ i ] ) {
         | 
| 22806 | 
            -
            			i++;
         | 
| 22807 | 
            -
            		}
         | 
| 22808 | 
            -
             | 
| 22809 | 
            -
            		return i ?
         | 
| 22810 | 
            -
             | 
| 22811 | 
            -
            			// Do a sibling check if the nodes have a common ancestor
         | 
| 22812 | 
            -
            			siblingCheck( ap[ i ], bp[ i ] ) :
         | 
| 22813 | 
            -
             | 
| 22814 | 
            -
            			// Otherwise nodes in our document sort first
         | 
| 22815 | 
            -
            			// Support: IE 11+, Edge 17 - 18+
         | 
| 22816 | 
            -
            			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 22817 | 
            -
            			// two documents; shallow comparisons work.
         | 
| 22818 | 
            -
            			/* eslint-disable eqeqeq */
         | 
| 22819 | 
            -
            			ap[ i ] == preferredDoc ? -1 :
         | 
| 22820 | 
            -
            			bp[ i ] == preferredDoc ? 1 :
         | 
| 22821 | 
            -
            			/* eslint-enable eqeqeq */
         | 
| 22822 | 
            -
            			0;
         | 
| 22823 22635 | 
             
            	};
         | 
| 22824 22636 |  | 
| 22825 22637 | 
             
            	return document;
         | 
| 22826 | 
            -
            } | 
| 22638 | 
            +
            }
         | 
| 22827 22639 |  | 
| 22828 | 
            -
             | 
| 22829 | 
            -
            	return  | 
| 22640 | 
            +
            find.matches = function( expr, elements ) {
         | 
| 22641 | 
            +
            	return find( expr, null, null, elements );
         | 
| 22830 22642 | 
             
            };
         | 
| 22831 22643 |  | 
| 22832 | 
            -
             | 
| 22644 | 
            +
            find.matchesSelector = function( elem, expr ) {
         | 
| 22833 22645 | 
             
            	setDocument( elem );
         | 
| 22834 22646 |  | 
| 22835 | 
            -
            	if (  | 
| 22647 | 
            +
            	if ( documentIsHTML &&
         | 
| 22836 22648 | 
             
            		!nonnativeSelectorCache[ expr + " " ] &&
         | 
| 22837 | 
            -
            		( ! | 
| 22838 | 
            -
            		( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {
         | 
| 22649 | 
            +
            		( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
         | 
| 22839 22650 |  | 
| 22840 22651 | 
             
            		try {
         | 
| 22841 22652 | 
             
            			var ret = matches.call( elem, expr );
         | 
| @@ -22843,9 +22654,9 @@ Sizzle.matchesSelector = function( elem, expr ) { | |
| 22843 22654 | 
             
            			// IE 9's matchesSelector returns false on disconnected nodes
         | 
| 22844 22655 | 
             
            			if ( ret || support.disconnectedMatch ||
         | 
| 22845 22656 |  | 
| 22846 | 
            -
             | 
| 22847 | 
            -
             | 
| 22848 | 
            -
             | 
| 22657 | 
            +
            					// As well, disconnected nodes are said to be in a document
         | 
| 22658 | 
            +
            					// fragment in IE 9
         | 
| 22659 | 
            +
            					elem.document && elem.document.nodeType !== 11 ) {
         | 
| 22849 22660 | 
             
            				return ret;
         | 
| 22850 22661 | 
             
            			}
         | 
| 22851 22662 | 
             
            		} catch ( e ) {
         | 
| @@ -22853,10 +22664,10 @@ Sizzle.matchesSelector = function( elem, expr ) { | |
| 22853 22664 | 
             
            		}
         | 
| 22854 22665 | 
             
            	}
         | 
| 22855 22666 |  | 
| 22856 | 
            -
            	return  | 
| 22667 | 
            +
            	return find( expr, document, null, [ elem ] ).length > 0;
         | 
| 22857 22668 | 
             
            };
         | 
| 22858 22669 |  | 
| 22859 | 
            -
             | 
| 22670 | 
            +
            find.contains = function( context, elem ) {
         | 
| 22860 22671 |  | 
| 22861 22672 | 
             
            	// Set document vars if needed
         | 
| 22862 22673 | 
             
            	// Support: IE 11+, Edge 17 - 18+
         | 
| @@ -22866,10 +22677,11 @@ Sizzle.contains = function( context, elem ) { | |
| 22866 22677 | 
             
            	if ( ( context.ownerDocument || context ) != document ) {
         | 
| 22867 22678 | 
             
            		setDocument( context );
         | 
| 22868 22679 | 
             
            	}
         | 
| 22869 | 
            -
            	return contains( context, elem );
         | 
| 22680 | 
            +
            	return jQuery.contains( context, elem );
         | 
| 22870 22681 | 
             
            };
         | 
| 22871 22682 |  | 
| 22872 | 
            -
             | 
| 22683 | 
            +
             | 
| 22684 | 
            +
            find.attr = function( elem, name ) {
         | 
| 22873 22685 |  | 
| 22874 22686 | 
             
            	// Set document vars if needed
         | 
| 22875 22687 | 
             
            	// Support: IE 11+, Edge 17 - 18+
         | 
| @@ -22882,25 +22694,19 @@ Sizzle.attr = function( elem, name ) { | |
| 22882 22694 |  | 
| 22883 22695 | 
             
            	var fn = Expr.attrHandle[ name.toLowerCase() ],
         | 
| 22884 22696 |  | 
| 22885 | 
            -
            		// Don't get fooled by Object.prototype properties ( | 
| 22697 | 
            +
            		// Don't get fooled by Object.prototype properties (see trac-13807)
         | 
| 22886 22698 | 
             
            		val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
         | 
| 22887 22699 | 
             
            			fn( elem, name, !documentIsHTML ) :
         | 
| 22888 22700 | 
             
            			undefined;
         | 
| 22889 22701 |  | 
| 22890 | 
            -
            	 | 
| 22891 | 
            -
            		val | 
| 22892 | 
            -
             | 
| 22893 | 
            -
            			elem.getAttribute( name ) :
         | 
| 22894 | 
            -
            			( val = elem.getAttributeNode( name ) ) && val.specified ?
         | 
| 22895 | 
            -
            				val.value :
         | 
| 22896 | 
            -
            				null;
         | 
| 22897 | 
            -
            };
         | 
| 22702 | 
            +
            	if ( val !== undefined ) {
         | 
| 22703 | 
            +
            		return val;
         | 
| 22704 | 
            +
            	}
         | 
| 22898 22705 |  | 
| 22899 | 
            -
             | 
| 22900 | 
            -
            	return ( sel + "" ).replace( rcssescape, fcssescape );
         | 
| 22706 | 
            +
            	return elem.getAttribute( name );
         | 
| 22901 22707 | 
             
            };
         | 
| 22902 22708 |  | 
| 22903 | 
            -
             | 
| 22709 | 
            +
            find.error = function( msg ) {
         | 
| 22904 22710 | 
             
            	throw new Error( "Syntax error, unrecognized expression: " + msg );
         | 
| 22905 22711 | 
             
            };
         | 
| 22906 22712 |  | 
| @@ -22908,16 +22714,20 @@ Sizzle.error = function( msg ) { | |
| 22908 22714 | 
             
             * Document sorting and removing duplicates
         | 
| 22909 22715 | 
             
             * @param {ArrayLike} results
         | 
| 22910 22716 | 
             
             */
         | 
| 22911 | 
            -
             | 
| 22717 | 
            +
            jQuery.uniqueSort = function( results ) {
         | 
| 22912 22718 | 
             
            	var elem,
         | 
| 22913 22719 | 
             
            		duplicates = [],
         | 
| 22914 22720 | 
             
            		j = 0,
         | 
| 22915 22721 | 
             
            		i = 0;
         | 
| 22916 22722 |  | 
| 22917 22723 | 
             
            	// Unless we *know* we can detect duplicates, assume their presence
         | 
| 22918 | 
            -
            	 | 
| 22919 | 
            -
            	 | 
| 22920 | 
            -
            	 | 
| 22724 | 
            +
            	//
         | 
| 22725 | 
            +
            	// Support: Android <=4.0+
         | 
| 22726 | 
            +
            	// Testing for detecting duplicates is unpredictable so instead assume we can't
         | 
| 22727 | 
            +
            	// depend on duplicate detection in all browsers without a stable sort.
         | 
| 22728 | 
            +
            	hasDuplicate = !support.sortStable;
         | 
| 22729 | 
            +
            	sortInput = !support.sortStable && slice.call( results, 0 );
         | 
| 22730 | 
            +
            	sort.call( results, sortOrder );
         | 
| 22921 22731 |  | 
| 22922 22732 | 
             
            	if ( hasDuplicate ) {
         | 
| 22923 22733 | 
             
            		while ( ( elem = results[ i++ ] ) ) {
         | 
| @@ -22926,7 +22736,7 @@ Sizzle.uniqueSort = function( results ) { | |
| 22926 22736 | 
             
            			}
         | 
| 22927 22737 | 
             
            		}
         | 
| 22928 22738 | 
             
            		while ( j-- ) {
         | 
| 22929 | 
            -
            			 | 
| 22739 | 
            +
            			splice.call( results, duplicates[ j ], 1 );
         | 
| 22930 22740 | 
             
            		}
         | 
| 22931 22741 | 
             
            	}
         | 
| 22932 22742 |  | 
| @@ -22937,47 +22747,11 @@ Sizzle.uniqueSort = function( results ) { | |
| 22937 22747 | 
             
            	return results;
         | 
| 22938 22748 | 
             
            };
         | 
| 22939 22749 |  | 
| 22940 | 
            -
             | 
| 22941 | 
            -
              | 
| 22942 | 
            -
             * @param {Array|Element} elem
         | 
| 22943 | 
            -
             */
         | 
| 22944 | 
            -
            getText = Sizzle.getText = function( elem ) {
         | 
| 22945 | 
            -
            	var node,
         | 
| 22946 | 
            -
            		ret = "",
         | 
| 22947 | 
            -
            		i = 0,
         | 
| 22948 | 
            -
            		nodeType = elem.nodeType;
         | 
| 22949 | 
            -
             | 
| 22950 | 
            -
            	if ( !nodeType ) {
         | 
| 22951 | 
            -
             | 
| 22952 | 
            -
            		// If no nodeType, this is expected to be an array
         | 
| 22953 | 
            -
            		while ( ( node = elem[ i++ ] ) ) {
         | 
| 22954 | 
            -
             | 
| 22955 | 
            -
            			// Do not traverse comment nodes
         | 
| 22956 | 
            -
            			ret += getText( node );
         | 
| 22957 | 
            -
            		}
         | 
| 22958 | 
            -
            	} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
         | 
| 22959 | 
            -
             | 
| 22960 | 
            -
            		// Use textContent for elements
         | 
| 22961 | 
            -
            		// innerText usage removed for consistency of new lines (jQuery #11153)
         | 
| 22962 | 
            -
            		if ( typeof elem.textContent === "string" ) {
         | 
| 22963 | 
            -
            			return elem.textContent;
         | 
| 22964 | 
            -
            		} else {
         | 
| 22965 | 
            -
             | 
| 22966 | 
            -
            			// Traverse its children
         | 
| 22967 | 
            -
            			for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
         | 
| 22968 | 
            -
            				ret += getText( elem );
         | 
| 22969 | 
            -
            			}
         | 
| 22970 | 
            -
            		}
         | 
| 22971 | 
            -
            	} else if ( nodeType === 3 || nodeType === 4 ) {
         | 
| 22972 | 
            -
            		return elem.nodeValue;
         | 
| 22973 | 
            -
            	}
         | 
| 22974 | 
            -
             | 
| 22975 | 
            -
            	// Do not include comment or processing instruction nodes
         | 
| 22976 | 
            -
             | 
| 22977 | 
            -
            	return ret;
         | 
| 22750 | 
            +
            jQuery.fn.uniqueSort = function() {
         | 
| 22751 | 
            +
            	return this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );
         | 
| 22978 22752 | 
             
            };
         | 
| 22979 22753 |  | 
| 22980 | 
            -
            Expr =  | 
| 22754 | 
            +
            Expr = jQuery.expr = {
         | 
| 22981 22755 |  | 
| 22982 22756 | 
             
            	// Can be adjusted by the user
         | 
| 22983 22757 | 
             
            	cacheLength: 50,
         | 
| @@ -22998,12 +22772,12 @@ Expr = Sizzle.selectors = { | |
| 22998 22772 | 
             
            	},
         | 
| 22999 22773 |  | 
| 23000 22774 | 
             
            	preFilter: {
         | 
| 23001 | 
            -
            		 | 
| 22775 | 
            +
            		ATTR: function( match ) {
         | 
| 23002 22776 | 
             
            			match[ 1 ] = match[ 1 ].replace( runescape, funescape );
         | 
| 23003 22777 |  | 
| 23004 22778 | 
             
            			// Move the given value to match[3] whether quoted or unquoted
         | 
| 23005 | 
            -
            			match[ 3 ] = ( match[ 3 ] || match[ 4 ] ||
         | 
| 23006 | 
            -
            				 | 
| 22779 | 
            +
            			match[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || "" )
         | 
| 22780 | 
            +
            				.replace( runescape, funescape );
         | 
| 23007 22781 |  | 
| 23008 22782 | 
             
            			if ( match[ 2 ] === "~=" ) {
         | 
| 23009 22783 | 
             
            				match[ 3 ] = " " + match[ 3 ] + " ";
         | 
| @@ -23012,7 +22786,7 @@ Expr = Sizzle.selectors = { | |
| 23012 22786 | 
             
            			return match.slice( 0, 4 );
         | 
| 23013 22787 | 
             
            		},
         | 
| 23014 22788 |  | 
| 23015 | 
            -
            		 | 
| 22789 | 
            +
            		CHILD: function( match ) {
         | 
| 23016 22790 |  | 
| 23017 22791 | 
             
            			/* matches from matchExpr["CHILD"]
         | 
| 23018 22792 | 
             
            				1 type (only|nth|...)
         | 
| @@ -23030,29 +22804,30 @@ Expr = Sizzle.selectors = { | |
| 23030 22804 |  | 
| 23031 22805 | 
             
            				// nth-* requires argument
         | 
| 23032 22806 | 
             
            				if ( !match[ 3 ] ) {
         | 
| 23033 | 
            -
            					 | 
| 22807 | 
            +
            					find.error( match[ 0 ] );
         | 
| 23034 22808 | 
             
            				}
         | 
| 23035 22809 |  | 
| 23036 22810 | 
             
            				// numeric x and y parameters for Expr.filter.CHILD
         | 
| 23037 22811 | 
             
            				// remember that false/true cast respectively to 0/1
         | 
| 23038 22812 | 
             
            				match[ 4 ] = +( match[ 4 ] ?
         | 
| 23039 22813 | 
             
            					match[ 5 ] + ( match[ 6 ] || 1 ) :
         | 
| 23040 | 
            -
            					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) | 
| 22814 | 
            +
            					2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" )
         | 
| 22815 | 
            +
            				);
         | 
| 23041 22816 | 
             
            				match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" );
         | 
| 23042 22817 |  | 
| 23043 | 
            -
             | 
| 22818 | 
            +
            			// other types prohibit arguments
         | 
| 23044 22819 | 
             
            			} else if ( match[ 3 ] ) {
         | 
| 23045 | 
            -
            				 | 
| 22820 | 
            +
            				find.error( match[ 0 ] );
         | 
| 23046 22821 | 
             
            			}
         | 
| 23047 22822 |  | 
| 23048 22823 | 
             
            			return match;
         | 
| 23049 22824 | 
             
            		},
         | 
| 23050 22825 |  | 
| 23051 | 
            -
            		 | 
| 22826 | 
            +
            		PSEUDO: function( match ) {
         | 
| 23052 22827 | 
             
            			var excess,
         | 
| 23053 22828 | 
             
            				unquoted = !match[ 6 ] && match[ 2 ];
         | 
| 23054 22829 |  | 
| 23055 | 
            -
            			if ( matchExpr | 
| 22830 | 
            +
            			if ( matchExpr.CHILD.test( match[ 0 ] ) ) {
         | 
| 23056 22831 | 
             
            				return null;
         | 
| 23057 22832 | 
             
            			}
         | 
| 23058 22833 |  | 
| @@ -23081,36 +22856,36 @@ Expr = Sizzle.selectors = { | |
| 23081 22856 |  | 
| 23082 22857 | 
             
            	filter: {
         | 
| 23083 22858 |  | 
| 23084 | 
            -
            		 | 
| 23085 | 
            -
            			var  | 
| 22859 | 
            +
            		TAG: function( nodeNameSelector ) {
         | 
| 22860 | 
            +
            			var expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
         | 
| 23086 22861 | 
             
            			return nodeNameSelector === "*" ?
         | 
| 23087 22862 | 
             
            				function() {
         | 
| 23088 22863 | 
             
            					return true;
         | 
| 23089 22864 | 
             
            				} :
         | 
| 23090 22865 | 
             
            				function( elem ) {
         | 
| 23091 | 
            -
            					return  | 
| 22866 | 
            +
            					return nodeName( elem, expectedNodeName );
         | 
| 23092 22867 | 
             
            				};
         | 
| 23093 22868 | 
             
            		},
         | 
| 23094 22869 |  | 
| 23095 | 
            -
            		 | 
| 22870 | 
            +
            		CLASS: function( className ) {
         | 
| 23096 22871 | 
             
            			var pattern = classCache[ className + " " ];
         | 
| 23097 22872 |  | 
| 23098 22873 | 
             
            			return pattern ||
         | 
| 23099 | 
            -
            				( pattern = new RegExp( "(^|" + whitespace +
         | 
| 23100 | 
            -
            					" | 
| 23101 | 
            -
             | 
| 23102 | 
            -
             | 
| 23103 | 
            -
             | 
| 23104 | 
            -
             | 
| 23105 | 
            -
             | 
| 23106 | 
            -
             | 
| 23107 | 
            -
             | 
| 22874 | 
            +
            				( pattern = new RegExp( "(^|" + whitespace + ")" + className +
         | 
| 22875 | 
            +
            					"(" + whitespace + "|$)" ) ) &&
         | 
| 22876 | 
            +
            				classCache( className, function( elem ) {
         | 
| 22877 | 
            +
            					return pattern.test(
         | 
| 22878 | 
            +
            						typeof elem.className === "string" && elem.className ||
         | 
| 22879 | 
            +
            							typeof elem.getAttribute !== "undefined" &&
         | 
| 22880 | 
            +
            								elem.getAttribute( "class" ) ||
         | 
| 22881 | 
            +
            							""
         | 
| 22882 | 
            +
            					);
         | 
| 23108 22883 | 
             
            				} );
         | 
| 23109 22884 | 
             
            		},
         | 
| 23110 22885 |  | 
| 23111 | 
            -
            		 | 
| 22886 | 
            +
            		ATTR: function( name, operator, check ) {
         | 
| 23112 22887 | 
             
            			return function( elem ) {
         | 
| 23113 | 
            -
            				var result =  | 
| 22888 | 
            +
            				var result = find.attr( elem, name );
         | 
| 23114 22889 |  | 
| 23115 22890 | 
             
            				if ( result == null ) {
         | 
| 23116 22891 | 
             
            					return operator === "!=";
         | 
| @@ -23121,22 +22896,34 @@ Expr = Sizzle.selectors = { | |
| 23121 22896 |  | 
| 23122 22897 | 
             
            				result += "";
         | 
| 23123 22898 |  | 
| 23124 | 
            -
            				 | 
| 23125 | 
            -
             | 
| 23126 | 
            -
            				 | 
| 23127 | 
            -
             | 
| 23128 | 
            -
            					 | 
| 23129 | 
            -
             | 
| 23130 | 
            -
             | 
| 23131 | 
            -
            					 | 
| 23132 | 
            -
             | 
| 23133 | 
            -
             | 
| 23134 | 
            -
             | 
| 22899 | 
            +
            				if ( operator === "=" ) {
         | 
| 22900 | 
            +
            					return result === check;
         | 
| 22901 | 
            +
            				}
         | 
| 22902 | 
            +
            				if ( operator === "!=" ) {
         | 
| 22903 | 
            +
            					return result !== check;
         | 
| 22904 | 
            +
            				}
         | 
| 22905 | 
            +
            				if ( operator === "^=" ) {
         | 
| 22906 | 
            +
            					return check && result.indexOf( check ) === 0;
         | 
| 22907 | 
            +
            				}
         | 
| 22908 | 
            +
            				if ( operator === "*=" ) {
         | 
| 22909 | 
            +
            					return check && result.indexOf( check ) > -1;
         | 
| 22910 | 
            +
            				}
         | 
| 22911 | 
            +
            				if ( operator === "$=" ) {
         | 
| 22912 | 
            +
            					return check && result.slice( -check.length ) === check;
         | 
| 22913 | 
            +
            				}
         | 
| 22914 | 
            +
            				if ( operator === "~=" ) {
         | 
| 22915 | 
            +
            					return ( " " + result.replace( rwhitespace, " " ) + " " )
         | 
| 22916 | 
            +
            						.indexOf( check ) > -1;
         | 
| 22917 | 
            +
            				}
         | 
| 22918 | 
            +
            				if ( operator === "|=" ) {
         | 
| 22919 | 
            +
            					return result === check || result.slice( 0, check.length + 1 ) === check + "-";
         | 
| 22920 | 
            +
            				}
         | 
| 23135 22921 |  | 
| 22922 | 
            +
            				return false;
         | 
| 23136 22923 | 
             
            			};
         | 
| 23137 22924 | 
             
            		},
         | 
| 23138 22925 |  | 
| 23139 | 
            -
            		 | 
| 22926 | 
            +
            		CHILD: function( type, what, _argument, first, last ) {
         | 
| 23140 22927 | 
             
            			var simple = type.slice( 0, 3 ) !== "nth",
         | 
| 23141 22928 | 
             
            				forward = type.slice( -4 ) !== "last",
         | 
| 23142 22929 | 
             
            				ofType = what === "of-type";
         | 
| @@ -23149,7 +22936,7 @@ Expr = Sizzle.selectors = { | |
| 23149 22936 | 
             
            				} :
         | 
| 23150 22937 |  | 
| 23151 22938 | 
             
            				function( elem, _context, xml ) {
         | 
| 23152 | 
            -
            					var cache,  | 
| 22939 | 
            +
            					var cache, outerCache, node, nodeIndex, start,
         | 
| 23153 22940 | 
             
            						dir = simple !== forward ? "nextSibling" : "previousSibling",
         | 
| 23154 22941 | 
             
            						parent = elem.parentNode,
         | 
| 23155 22942 | 
             
            						name = ofType && elem.nodeName.toLowerCase(),
         | 
| @@ -23164,7 +22951,7 @@ Expr = Sizzle.selectors = { | |
| 23164 22951 | 
             
            								node = elem;
         | 
| 23165 22952 | 
             
            								while ( ( node = node[ dir ] ) ) {
         | 
| 23166 22953 | 
             
            									if ( ofType ?
         | 
| 23167 | 
            -
            										 | 
| 22954 | 
            +
            										nodeName( node, name ) :
         | 
| 23168 22955 | 
             
            										node.nodeType === 1 ) {
         | 
| 23169 22956 |  | 
| 23170 22957 | 
             
            										return false;
         | 
| @@ -23183,17 +22970,8 @@ Expr = Sizzle.selectors = { | |
| 23183 22970 | 
             
            						if ( forward && useCache ) {
         | 
| 23184 22971 |  | 
| 23185 22972 | 
             
            							// Seek `elem` from a previously-cached index
         | 
| 23186 | 
            -
             | 
| 23187 | 
            -
            							 | 
| 23188 | 
            -
            							node = parent;
         | 
| 23189 | 
            -
            							outerCache = node[ expando ] || ( node[ expando ] = {} );
         | 
| 23190 | 
            -
             | 
| 23191 | 
            -
            							// Support: IE <9 only
         | 
| 23192 | 
            -
            							// Defend against cloned attroperties (jQuery gh-1709)
         | 
| 23193 | 
            -
            							uniqueCache = outerCache[ node.uniqueID ] ||
         | 
| 23194 | 
            -
            								( outerCache[ node.uniqueID ] = {} );
         | 
| 23195 | 
            -
             | 
| 23196 | 
            -
            							cache = uniqueCache[ type ] || [];
         | 
| 22973 | 
            +
            							outerCache = parent[ expando ] || ( parent[ expando ] = {} );
         | 
| 22974 | 
            +
            							cache = outerCache[ type ] || [];
         | 
| 23197 22975 | 
             
            							nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
         | 
| 23198 22976 | 
             
            							diff = nodeIndex && cache[ 2 ];
         | 
| 23199 22977 | 
             
            							node = nodeIndex && parent.childNodes[ nodeIndex ];
         | 
| @@ -23205,7 +22983,7 @@ Expr = Sizzle.selectors = { | |
| 23205 22983 |  | 
| 23206 22984 | 
             
            								// When found, cache indexes on `parent` and break
         | 
| 23207 22985 | 
             
            								if ( node.nodeType === 1 && ++diff && node === elem ) {
         | 
| 23208 | 
            -
            									 | 
| 22986 | 
            +
            									outerCache[ type ] = [ dirruns, nodeIndex, diff ];
         | 
| 23209 22987 | 
             
            									break;
         | 
| 23210 22988 | 
             
            								}
         | 
| 23211 22989 | 
             
            							}
         | 
| @@ -23214,17 +22992,8 @@ Expr = Sizzle.selectors = { | |
| 23214 22992 |  | 
| 23215 22993 | 
             
            							// Use previously-cached element index if available
         | 
| 23216 22994 | 
             
            							if ( useCache ) {
         | 
| 23217 | 
            -
             | 
| 23218 | 
            -
            								 | 
| 23219 | 
            -
            								node = elem;
         | 
| 23220 | 
            -
            								outerCache = node[ expando ] || ( node[ expando ] = {} );
         | 
| 23221 | 
            -
             | 
| 23222 | 
            -
            								// Support: IE <9 only
         | 
| 23223 | 
            -
            								// Defend against cloned attroperties (jQuery gh-1709)
         | 
| 23224 | 
            -
            								uniqueCache = outerCache[ node.uniqueID ] ||
         | 
| 23225 | 
            -
            									( outerCache[ node.uniqueID ] = {} );
         | 
| 23226 | 
            -
             | 
| 23227 | 
            -
            								cache = uniqueCache[ type ] || [];
         | 
| 22995 | 
            +
            								outerCache = elem[ expando ] || ( elem[ expando ] = {} );
         | 
| 22996 | 
            +
            								cache = outerCache[ type ] || [];
         | 
| 23228 22997 | 
             
            								nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
         | 
| 23229 22998 | 
             
            								diff = nodeIndex;
         | 
| 23230 22999 | 
             
            							}
         | 
| @@ -23238,7 +23007,7 @@ Expr = Sizzle.selectors = { | |
| 23238 23007 | 
             
            									( diff = nodeIndex = 0 ) || start.pop() ) ) {
         | 
| 23239 23008 |  | 
| 23240 23009 | 
             
            									if ( ( ofType ?
         | 
| 23241 | 
            -
            										 | 
| 23010 | 
            +
            										nodeName( node, name ) :
         | 
| 23242 23011 | 
             
            										node.nodeType === 1 ) &&
         | 
| 23243 23012 | 
             
            										++diff ) {
         | 
| 23244 23013 |  | 
| @@ -23246,13 +23015,7 @@ Expr = Sizzle.selectors = { | |
| 23246 23015 | 
             
            										if ( useCache ) {
         | 
| 23247 23016 | 
             
            											outerCache = node[ expando ] ||
         | 
| 23248 23017 | 
             
            												( node[ expando ] = {} );
         | 
| 23249 | 
            -
             | 
| 23250 | 
            -
            											// Support: IE <9 only
         | 
| 23251 | 
            -
            											// Defend against cloned attroperties (jQuery gh-1709)
         | 
| 23252 | 
            -
            											uniqueCache = outerCache[ node.uniqueID ] ||
         | 
| 23253 | 
            -
            												( outerCache[ node.uniqueID ] = {} );
         | 
| 23254 | 
            -
             | 
| 23255 | 
            -
            											uniqueCache[ type ] = [ dirruns, diff ];
         | 
| 23018 | 
            +
            											outerCache[ type ] = [ dirruns, diff ];
         | 
| 23256 23019 | 
             
            										}
         | 
| 23257 23020 |  | 
| 23258 23021 | 
             
            										if ( node === elem ) {
         | 
| @@ -23270,19 +23033,19 @@ Expr = Sizzle.selectors = { | |
| 23270 23033 | 
             
            				};
         | 
| 23271 23034 | 
             
            		},
         | 
| 23272 23035 |  | 
| 23273 | 
            -
            		 | 
| 23036 | 
            +
            		PSEUDO: function( pseudo, argument ) {
         | 
| 23274 23037 |  | 
| 23275 23038 | 
             
            			// pseudo-class names are case-insensitive
         | 
| 23276 | 
            -
            			//  | 
| 23039 | 
            +
            			// https://www.w3.org/TR/selectors/#pseudo-classes
         | 
| 23277 23040 | 
             
            			// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
         | 
| 23278 23041 | 
             
            			// Remember that setFilters inherits from pseudos
         | 
| 23279 23042 | 
             
            			var args,
         | 
| 23280 23043 | 
             
            				fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
         | 
| 23281 | 
            -
            					 | 
| 23044 | 
            +
            					find.error( "unsupported pseudo: " + pseudo );
         | 
| 23282 23045 |  | 
| 23283 23046 | 
             
            			// The user may use createPseudo to indicate that
         | 
| 23284 23047 | 
             
            			// arguments are needed to create the filter function
         | 
| 23285 | 
            -
            			// just as  | 
| 23048 | 
            +
            			// just as jQuery does
         | 
| 23286 23049 | 
             
            			if ( fn[ expando ] ) {
         | 
| 23287 23050 | 
             
            				return fn( argument );
         | 
| 23288 23051 | 
             
            			}
         | 
| @@ -23296,7 +23059,7 @@ Expr = Sizzle.selectors = { | |
| 23296 23059 | 
             
            							matched = fn( seed, argument ),
         | 
| 23297 23060 | 
             
            							i = matched.length;
         | 
| 23298 23061 | 
             
            						while ( i-- ) {
         | 
| 23299 | 
            -
            							idx = indexOf( seed, matched[ i ] );
         | 
| 23062 | 
            +
            							idx = indexOf.call( seed, matched[ i ] );
         | 
| 23300 23063 | 
             
            							seed[ idx ] = !( matches[ idx ] = matched[ i ] );
         | 
| 23301 23064 | 
             
            						}
         | 
| 23302 23065 | 
             
            					} ) :
         | 
| @@ -23312,14 +23075,14 @@ Expr = Sizzle.selectors = { | |
| 23312 23075 | 
             
            	pseudos: {
         | 
| 23313 23076 |  | 
| 23314 23077 | 
             
            		// Potentially complex pseudos
         | 
| 23315 | 
            -
            		 | 
| 23078 | 
            +
            		not: markFunction( function( selector ) {
         | 
| 23316 23079 |  | 
| 23317 23080 | 
             
            			// Trim the selector passed to compile
         | 
| 23318 23081 | 
             
            			// to avoid treating leading and trailing
         | 
| 23319 23082 | 
             
            			// spaces as combinators
         | 
| 23320 23083 | 
             
            			var input = [],
         | 
| 23321 23084 | 
             
            				results = [],
         | 
| 23322 | 
            -
            				matcher = compile( selector.replace(  | 
| 23085 | 
            +
            				matcher = compile( selector.replace( rtrimCSS, "$1" ) );
         | 
| 23323 23086 |  | 
| 23324 23087 | 
             
            			return matcher[ expando ] ?
         | 
| 23325 23088 | 
             
            				markFunction( function( seed, matches, _context, xml ) {
         | 
| @@ -23338,22 +23101,23 @@ Expr = Sizzle.selectors = { | |
| 23338 23101 | 
             
            					input[ 0 ] = elem;
         | 
| 23339 23102 | 
             
            					matcher( input, null, xml, results );
         | 
| 23340 23103 |  | 
| 23341 | 
            -
            					// Don't keep the element | 
| 23104 | 
            +
            					// Don't keep the element
         | 
| 23105 | 
            +
            					// (see https://github.com/jquery/sizzle/issues/299)
         | 
| 23342 23106 | 
             
            					input[ 0 ] = null;
         | 
| 23343 23107 | 
             
            					return !results.pop();
         | 
| 23344 23108 | 
             
            				};
         | 
| 23345 23109 | 
             
            		} ),
         | 
| 23346 23110 |  | 
| 23347 | 
            -
            		 | 
| 23111 | 
            +
            		has: markFunction( function( selector ) {
         | 
| 23348 23112 | 
             
            			return function( elem ) {
         | 
| 23349 | 
            -
            				return  | 
| 23113 | 
            +
            				return find( selector, elem ).length > 0;
         | 
| 23350 23114 | 
             
            			};
         | 
| 23351 23115 | 
             
            		} ),
         | 
| 23352 23116 |  | 
| 23353 | 
            -
            		 | 
| 23117 | 
            +
            		contains: markFunction( function( text ) {
         | 
| 23354 23118 | 
             
            			text = text.replace( runescape, funescape );
         | 
| 23355 23119 | 
             
            			return function( elem ) {
         | 
| 23356 | 
            -
            				return ( elem.textContent ||  | 
| 23120 | 
            +
            				return ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;
         | 
| 23357 23121 | 
             
            			};
         | 
| 23358 23122 | 
             
            		} ),
         | 
| 23359 23123 |  | 
| @@ -23363,12 +23127,12 @@ Expr = Sizzle.selectors = { | |
| 23363 23127 | 
             
            		// or beginning with the identifier C immediately followed by "-".
         | 
| 23364 23128 | 
             
            		// The matching of C against the element's language value is performed case-insensitively.
         | 
| 23365 23129 | 
             
            		// The identifier C does not have to be a valid language name."
         | 
| 23366 | 
            -
            		//  | 
| 23367 | 
            -
            		 | 
| 23130 | 
            +
            		// https://www.w3.org/TR/selectors/#lang-pseudo
         | 
| 23131 | 
            +
            		lang: markFunction( function( lang ) {
         | 
| 23368 23132 |  | 
| 23369 23133 | 
             
            			// lang value must be a valid identifier
         | 
| 23370 23134 | 
             
            			if ( !ridentifier.test( lang || "" ) ) {
         | 
| 23371 | 
            -
            				 | 
| 23135 | 
            +
            				find.error( "unsupported lang: " + lang );
         | 
| 23372 23136 | 
             
            			}
         | 
| 23373 23137 | 
             
            			lang = lang.replace( runescape, funescape ).toLowerCase();
         | 
| 23374 23138 | 
             
            			return function( elem ) {
         | 
| @@ -23387,38 +23151,39 @@ Expr = Sizzle.selectors = { | |
| 23387 23151 | 
             
            		} ),
         | 
| 23388 23152 |  | 
| 23389 23153 | 
             
            		// Miscellaneous
         | 
| 23390 | 
            -
            		 | 
| 23154 | 
            +
            		target: function( elem ) {
         | 
| 23391 23155 | 
             
            			var hash = window.location && window.location.hash;
         | 
| 23392 23156 | 
             
            			return hash && hash.slice( 1 ) === elem.id;
         | 
| 23393 23157 | 
             
            		},
         | 
| 23394 23158 |  | 
| 23395 | 
            -
            		 | 
| 23396 | 
            -
            			return elem ===  | 
| 23159 | 
            +
            		root: function( elem ) {
         | 
| 23160 | 
            +
            			return elem === documentElement;
         | 
| 23397 23161 | 
             
            		},
         | 
| 23398 23162 |  | 
| 23399 | 
            -
            		 | 
| 23400 | 
            -
            			return elem ===  | 
| 23401 | 
            -
            				 | 
| 23163 | 
            +
            		focus: function( elem ) {
         | 
| 23164 | 
            +
            			return elem === safeActiveElement() &&
         | 
| 23165 | 
            +
            				document.hasFocus() &&
         | 
| 23402 23166 | 
             
            				!!( elem.type || elem.href || ~elem.tabIndex );
         | 
| 23403 23167 | 
             
            		},
         | 
| 23404 23168 |  | 
| 23405 23169 | 
             
            		// Boolean properties
         | 
| 23406 | 
            -
            		 | 
| 23407 | 
            -
            		 | 
| 23170 | 
            +
            		enabled: createDisabledPseudo( false ),
         | 
| 23171 | 
            +
            		disabled: createDisabledPseudo( true ),
         | 
| 23408 23172 |  | 
| 23409 | 
            -
            		 | 
| 23173 | 
            +
            		checked: function( elem ) {
         | 
| 23410 23174 |  | 
| 23411 23175 | 
             
            			// In CSS3, :checked should return both checked and selected elements
         | 
| 23412 | 
            -
            			//  | 
| 23413 | 
            -
            			 | 
| 23414 | 
            -
             | 
| 23415 | 
            -
            				( nodeName === "option" && !!elem.selected );
         | 
| 23176 | 
            +
            			// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
         | 
| 23177 | 
            +
            			return ( nodeName( elem, "input" ) && !!elem.checked ) ||
         | 
| 23178 | 
            +
            				( nodeName( elem, "option" ) && !!elem.selected );
         | 
| 23416 23179 | 
             
            		},
         | 
| 23417 23180 |  | 
| 23418 | 
            -
            		 | 
| 23181 | 
            +
            		selected: function( elem ) {
         | 
| 23419 23182 |  | 
| 23420 | 
            -
            			//  | 
| 23421 | 
            -
            			//  | 
| 23183 | 
            +
            			// Support: IE <=11+
         | 
| 23184 | 
            +
            			// Accessing the selectedIndex property
         | 
| 23185 | 
            +
            			// forces the browser to treat the default option as
         | 
| 23186 | 
            +
            			// selected when in an optgroup.
         | 
| 23422 23187 | 
             
            			if ( elem.parentNode ) {
         | 
| 23423 23188 | 
             
            				// eslint-disable-next-line no-unused-expressions
         | 
| 23424 23189 | 
             
            				elem.parentNode.selectedIndex;
         | 
| @@ -23428,9 +23193,9 @@ Expr = Sizzle.selectors = { | |
| 23428 23193 | 
             
            		},
         | 
| 23429 23194 |  | 
| 23430 23195 | 
             
            		// Contents
         | 
| 23431 | 
            -
            		 | 
| 23196 | 
            +
            		empty: function( elem ) {
         | 
| 23432 23197 |  | 
| 23433 | 
            -
            			//  | 
| 23198 | 
            +
            			// https://www.w3.org/TR/selectors/#empty-pseudo
         | 
| 23434 23199 | 
             
            			// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
         | 
| 23435 23200 | 
             
            			//   but not by others (comment: 8; processing instruction: 7; etc.)
         | 
| 23436 23201 | 
             
            			// nodeType < 6 works because attributes (2) do not appear as children
         | 
| @@ -23442,49 +23207,49 @@ Expr = Sizzle.selectors = { | |
| 23442 23207 | 
             
            			return true;
         | 
| 23443 23208 | 
             
            		},
         | 
| 23444 23209 |  | 
| 23445 | 
            -
            		 | 
| 23446 | 
            -
            			return !Expr.pseudos | 
| 23210 | 
            +
            		parent: function( elem ) {
         | 
| 23211 | 
            +
            			return !Expr.pseudos.empty( elem );
         | 
| 23447 23212 | 
             
            		},
         | 
| 23448 23213 |  | 
| 23449 23214 | 
             
            		// Element/input types
         | 
| 23450 | 
            -
            		 | 
| 23215 | 
            +
            		header: function( elem ) {
         | 
| 23451 23216 | 
             
            			return rheader.test( elem.nodeName );
         | 
| 23452 23217 | 
             
            		},
         | 
| 23453 23218 |  | 
| 23454 | 
            -
            		 | 
| 23219 | 
            +
            		input: function( elem ) {
         | 
| 23455 23220 | 
             
            			return rinputs.test( elem.nodeName );
         | 
| 23456 23221 | 
             
            		},
         | 
| 23457 23222 |  | 
| 23458 | 
            -
            		 | 
| 23459 | 
            -
            			 | 
| 23460 | 
            -
             | 
| 23223 | 
            +
            		button: function( elem ) {
         | 
| 23224 | 
            +
            			return nodeName( elem, "input" ) && elem.type === "button" ||
         | 
| 23225 | 
            +
            				nodeName( elem, "button" );
         | 
| 23461 23226 | 
             
            		},
         | 
| 23462 23227 |  | 
| 23463 | 
            -
            		 | 
| 23228 | 
            +
            		text: function( elem ) {
         | 
| 23464 23229 | 
             
            			var attr;
         | 
| 23465 | 
            -
            			return  | 
| 23466 | 
            -
            				elem.type === "text" &&
         | 
| 23230 | 
            +
            			return nodeName( elem, "input" ) && elem.type === "text" &&
         | 
| 23467 23231 |  | 
| 23468 | 
            -
            				// Support: IE< | 
| 23469 | 
            -
            				// New HTML5 attribute values (e.g., "search") appear | 
| 23232 | 
            +
            				// Support: IE <10 only
         | 
| 23233 | 
            +
            				// New HTML5 attribute values (e.g., "search") appear
         | 
| 23234 | 
            +
            				// with elem.type === "text"
         | 
| 23470 23235 | 
             
            				( ( attr = elem.getAttribute( "type" ) ) == null ||
         | 
| 23471 23236 | 
             
            					attr.toLowerCase() === "text" );
         | 
| 23472 23237 | 
             
            		},
         | 
| 23473 23238 |  | 
| 23474 23239 | 
             
            		// Position-in-collection
         | 
| 23475 | 
            -
            		 | 
| 23240 | 
            +
            		first: createPositionalPseudo( function() {
         | 
| 23476 23241 | 
             
            			return [ 0 ];
         | 
| 23477 23242 | 
             
            		} ),
         | 
| 23478 23243 |  | 
| 23479 | 
            -
            		 | 
| 23244 | 
            +
            		last: createPositionalPseudo( function( _matchIndexes, length ) {
         | 
| 23480 23245 | 
             
            			return [ length - 1 ];
         | 
| 23481 23246 | 
             
            		} ),
         | 
| 23482 23247 |  | 
| 23483 | 
            -
            		 | 
| 23248 | 
            +
            		eq: createPositionalPseudo( function( _matchIndexes, length, argument ) {
         | 
| 23484 23249 | 
             
            			return [ argument < 0 ? argument + length : argument ];
         | 
| 23485 23250 | 
             
            		} ),
         | 
| 23486 23251 |  | 
| 23487 | 
            -
            		 | 
| 23252 | 
            +
            		even: createPositionalPseudo( function( matchIndexes, length ) {
         | 
| 23488 23253 | 
             
            			var i = 0;
         | 
| 23489 23254 | 
             
            			for ( ; i < length; i += 2 ) {
         | 
| 23490 23255 | 
             
            				matchIndexes.push( i );
         | 
| @@ -23492,7 +23257,7 @@ Expr = Sizzle.selectors = { | |
| 23492 23257 | 
             
            			return matchIndexes;
         | 
| 23493 23258 | 
             
            		} ),
         | 
| 23494 23259 |  | 
| 23495 | 
            -
            		 | 
| 23260 | 
            +
            		odd: createPositionalPseudo( function( matchIndexes, length ) {
         | 
| 23496 23261 | 
             
            			var i = 1;
         | 
| 23497 23262 | 
             
            			for ( ; i < length; i += 2 ) {
         | 
| 23498 23263 | 
             
            				matchIndexes.push( i );
         | 
| @@ -23500,19 +23265,24 @@ Expr = Sizzle.selectors = { | |
| 23500 23265 | 
             
            			return matchIndexes;
         | 
| 23501 23266 | 
             
            		} ),
         | 
| 23502 23267 |  | 
| 23503 | 
            -
            		 | 
| 23504 | 
            -
            			var i | 
| 23505 | 
            -
             | 
| 23506 | 
            -
             | 
| 23507 | 
            -
             | 
| 23508 | 
            -
             | 
| 23268 | 
            +
            		lt: createPositionalPseudo( function( matchIndexes, length, argument ) {
         | 
| 23269 | 
            +
            			var i;
         | 
| 23270 | 
            +
             | 
| 23271 | 
            +
            			if ( argument < 0 ) {
         | 
| 23272 | 
            +
            				i = argument + length;
         | 
| 23273 | 
            +
            			} else if ( argument > length ) {
         | 
| 23274 | 
            +
            				i = length;
         | 
| 23275 | 
            +
            			} else {
         | 
| 23276 | 
            +
            				i = argument;
         | 
| 23277 | 
            +
            			}
         | 
| 23278 | 
            +
             | 
| 23509 23279 | 
             
            			for ( ; --i >= 0; ) {
         | 
| 23510 23280 | 
             
            				matchIndexes.push( i );
         | 
| 23511 23281 | 
             
            			}
         | 
| 23512 23282 | 
             
            			return matchIndexes;
         | 
| 23513 23283 | 
             
            		} ),
         | 
| 23514 23284 |  | 
| 23515 | 
            -
            		 | 
| 23285 | 
            +
            		gt: createPositionalPseudo( function( matchIndexes, length, argument ) {
         | 
| 23516 23286 | 
             
            			var i = argument < 0 ? argument + length : argument;
         | 
| 23517 23287 | 
             
            			for ( ; ++i < length; ) {
         | 
| 23518 23288 | 
             
            				matchIndexes.push( i );
         | 
| @@ -23522,7 +23292,7 @@ Expr = Sizzle.selectors = { | |
| 23522 23292 | 
             
            	}
         | 
| 23523 23293 | 
             
            };
         | 
| 23524 23294 |  | 
| 23525 | 
            -
            Expr.pseudos | 
| 23295 | 
            +
            Expr.pseudos.nth = Expr.pseudos.eq;
         | 
| 23526 23296 |  | 
| 23527 23297 | 
             
            // Add button/input type pseudos
         | 
| 23528 23298 | 
             
            for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
         | 
| @@ -23537,7 +23307,7 @@ function setFilters() {} | |
| 23537 23307 | 
             
            setFilters.prototype = Expr.filters = Expr.pseudos;
         | 
| 23538 23308 | 
             
            Expr.setFilters = new setFilters();
         | 
| 23539 23309 |  | 
| 23540 | 
            -
             | 
| 23310 | 
            +
            function tokenize( selector, parseOnly ) {
         | 
| 23541 23311 | 
             
            	var matched, match, tokens, type,
         | 
| 23542 23312 | 
             
            		soFar, groups, preFilters,
         | 
| 23543 23313 | 
             
            		cached = tokenCache[ selector + " " ];
         | 
| @@ -23565,13 +23335,13 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { | |
| 23565 23335 | 
             
            		matched = false;
         | 
| 23566 23336 |  | 
| 23567 23337 | 
             
            		// Combinators
         | 
| 23568 | 
            -
            		if ( ( match =  | 
| 23338 | 
            +
            		if ( ( match = rleadingCombinator.exec( soFar ) ) ) {
         | 
| 23569 23339 | 
             
            			matched = match.shift();
         | 
| 23570 23340 | 
             
            			tokens.push( {
         | 
| 23571 23341 | 
             
            				value: matched,
         | 
| 23572 23342 |  | 
| 23573 23343 | 
             
            				// Cast descendant combinators to space
         | 
| 23574 | 
            -
            				type: match[ 0 ].replace(  | 
| 23344 | 
            +
            				type: match[ 0 ].replace( rtrimCSS, " " )
         | 
| 23575 23345 | 
             
            			} );
         | 
| 23576 23346 | 
             
            			soFar = soFar.slice( matched.length );
         | 
| 23577 23347 | 
             
            		}
         | 
| @@ -23598,14 +23368,16 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { | |
| 23598 23368 | 
             
            	// Return the length of the invalid excess
         | 
| 23599 23369 | 
             
            	// if we're just parsing
         | 
| 23600 23370 | 
             
            	// Otherwise, throw an error or return tokens
         | 
| 23601 | 
            -
            	 | 
| 23602 | 
            -
            		soFar.length | 
| 23603 | 
            -
             | 
| 23604 | 
            -
            			Sizzle.error( selector ) :
         | 
| 23371 | 
            +
            	if ( parseOnly ) {
         | 
| 23372 | 
            +
            		return soFar.length;
         | 
| 23373 | 
            +
            	}
         | 
| 23605 23374 |  | 
| 23606 | 
            -
             | 
| 23607 | 
            -
             | 
| 23608 | 
            -
             | 
| 23375 | 
            +
            	return soFar ?
         | 
| 23376 | 
            +
            		find.error( selector ) :
         | 
| 23377 | 
            +
             | 
| 23378 | 
            +
            		// Cache the tokens
         | 
| 23379 | 
            +
            		tokenCache( selector, groups ).slice( 0 );
         | 
| 23380 | 
            +
            }
         | 
| 23609 23381 |  | 
| 23610 23382 | 
             
            function toSelector( tokens ) {
         | 
| 23611 23383 | 
             
            	var i = 0,
         | 
| @@ -23638,7 +23410,7 @@ function addCombinator( matcher, combinator, base ) { | |
| 23638 23410 |  | 
| 23639 23411 | 
             
            		// Check against all ancestor/preceding elements
         | 
| 23640 23412 | 
             
            		function( elem, context, xml ) {
         | 
| 23641 | 
            -
            			var oldCache,  | 
| 23413 | 
            +
            			var oldCache, outerCache,
         | 
| 23642 23414 | 
             
            				newCache = [ dirruns, doneName ];
         | 
| 23643 23415 |  | 
| 23644 23416 | 
             
            			// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
         | 
| @@ -23655,14 +23427,9 @@ function addCombinator( matcher, combinator, base ) { | |
| 23655 23427 | 
             
            					if ( elem.nodeType === 1 || checkNonElements ) {
         | 
| 23656 23428 | 
             
            						outerCache = elem[ expando ] || ( elem[ expando ] = {} );
         | 
| 23657 23429 |  | 
| 23658 | 
            -
            						 | 
| 23659 | 
            -
            						// Defend against cloned attroperties (jQuery gh-1709)
         | 
| 23660 | 
            -
            						uniqueCache = outerCache[ elem.uniqueID ] ||
         | 
| 23661 | 
            -
            							( outerCache[ elem.uniqueID ] = {} );
         | 
| 23662 | 
            -
             | 
| 23663 | 
            -
            						if ( skip && skip === elem.nodeName.toLowerCase() ) {
         | 
| 23430 | 
            +
            						if ( skip && nodeName( elem, skip ) ) {
         | 
| 23664 23431 | 
             
            							elem = elem[ dir ] || elem;
         | 
| 23665 | 
            -
            						} else if ( ( oldCache =  | 
| 23432 | 
            +
            						} else if ( ( oldCache = outerCache[ key ] ) &&
         | 
| 23666 23433 | 
             
            							oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
         | 
| 23667 23434 |  | 
| 23668 23435 | 
             
            							// Assign to newCache so results back-propagate to previous elements
         | 
| @@ -23670,7 +23437,7 @@ function addCombinator( matcher, combinator, base ) { | |
| 23670 23437 | 
             
            						} else {
         | 
| 23671 23438 |  | 
| 23672 23439 | 
             
            							// Reuse newcache so results back-propagate to previous elements
         | 
| 23673 | 
            -
            							 | 
| 23440 | 
            +
            							outerCache[ key ] = newCache;
         | 
| 23674 23441 |  | 
| 23675 23442 | 
             
            							// A match means we're done; a fail means we have to keep checking
         | 
| 23676 23443 | 
             
            							if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {
         | 
| @@ -23702,7 +23469,7 @@ function multipleContexts( selector, contexts, results ) { | |
| 23702 23469 | 
             
            	var i = 0,
         | 
| 23703 23470 | 
             
            		len = contexts.length;
         | 
| 23704 23471 | 
             
            	for ( ; i < len; i++ ) {
         | 
| 23705 | 
            -
            		 | 
| 23472 | 
            +
            		find( selector, contexts[ i ], results );
         | 
| 23706 23473 | 
             
            	}
         | 
| 23707 23474 | 
             
            	return results;
         | 
| 23708 23475 | 
             
            }
         | 
| @@ -23736,38 +23503,37 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS | |
| 23736 23503 | 
             
            		postFinder = setMatcher( postFinder, postSelector );
         | 
| 23737 23504 | 
             
            	}
         | 
| 23738 23505 | 
             
            	return markFunction( function( seed, results, context, xml ) {
         | 
| 23739 | 
            -
            		var temp, i, elem,
         | 
| 23506 | 
            +
            		var temp, i, elem, matcherOut,
         | 
| 23740 23507 | 
             
            			preMap = [],
         | 
| 23741 23508 | 
             
            			postMap = [],
         | 
| 23742 23509 | 
             
            			preexisting = results.length,
         | 
| 23743 23510 |  | 
| 23744 23511 | 
             
            			// Get initial elements from seed or context
         | 
| 23745 | 
            -
            			elems = seed || | 
| 23746 | 
            -
            				selector || "*",
         | 
| 23747 | 
            -
             | 
| 23748 | 
            -
            				[]
         | 
| 23749 | 
            -
            			),
         | 
| 23512 | 
            +
            			elems = seed ||
         | 
| 23513 | 
            +
            				multipleContexts( selector || "*",
         | 
| 23514 | 
            +
            					context.nodeType ? [ context ] : context, [] ),
         | 
| 23750 23515 |  | 
| 23751 23516 | 
             
            			// Prefilter to get matcher input, preserving a map for seed-results synchronization
         | 
| 23752 23517 | 
             
            			matcherIn = preFilter && ( seed || !selector ) ?
         | 
| 23753 23518 | 
             
            				condense( elems, preMap, preFilter, context, xml ) :
         | 
| 23754 | 
            -
            				elems | 
| 23519 | 
            +
            				elems;
         | 
| 23755 23520 |  | 
| 23756 | 
            -
             | 
| 23521 | 
            +
            		if ( matcher ) {
         | 
| 23757 23522 |  | 
| 23758 | 
            -
             | 
| 23759 | 
            -
             | 
| 23523 | 
            +
            			// If we have a postFinder, or filtered seed, or non-seed postFilter
         | 
| 23524 | 
            +
            			// or preexisting results,
         | 
| 23525 | 
            +
            			matcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
         | 
| 23760 23526 |  | 
| 23761 | 
            -
             | 
| 23762 | 
            -
             | 
| 23527 | 
            +
            				// ...intermediate processing is necessary
         | 
| 23528 | 
            +
            				[] :
         | 
| 23763 23529 |  | 
| 23764 | 
            -
             | 
| 23765 | 
            -
             | 
| 23766 | 
            -
            				matcherIn;
         | 
| 23530 | 
            +
            				// ...otherwise use results directly
         | 
| 23531 | 
            +
            				results;
         | 
| 23767 23532 |  | 
| 23768 | 
            -
             | 
| 23769 | 
            -
            		if ( matcher ) {
         | 
| 23533 | 
            +
            			// Find primary matches
         | 
| 23770 23534 | 
             
            			matcher( matcherIn, matcherOut, context, xml );
         | 
| 23535 | 
            +
            		} else {
         | 
| 23536 | 
            +
            			matcherOut = matcherIn;
         | 
| 23771 23537 | 
             
            		}
         | 
| 23772 23538 |  | 
| 23773 23539 | 
             
            		// Apply postFilter
         | 
| @@ -23805,7 +23571,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS | |
| 23805 23571 | 
             
            				i = matcherOut.length;
         | 
| 23806 23572 | 
             
            				while ( i-- ) {
         | 
| 23807 23573 | 
             
            					if ( ( elem = matcherOut[ i ] ) &&
         | 
| 23808 | 
            -
            						( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {
         | 
| 23574 | 
            +
            						( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {
         | 
| 23809 23575 |  | 
| 23810 23576 | 
             
            						seed[ temp ] = !( results[ temp ] = elem );
         | 
| 23811 23577 | 
             
            					}
         | 
| @@ -23840,15 +23606,21 @@ function matcherFromTokens( tokens ) { | |
| 23840 23606 | 
             
            			return elem === checkContext;
         | 
| 23841 23607 | 
             
            		}, implicitRelative, true ),
         | 
| 23842 23608 | 
             
            		matchAnyContext = addCombinator( function( elem ) {
         | 
| 23843 | 
            -
            			return indexOf( checkContext, elem ) > -1;
         | 
| 23609 | 
            +
            			return indexOf.call( checkContext, elem ) > -1;
         | 
| 23844 23610 | 
             
            		}, implicitRelative, true ),
         | 
| 23845 23611 | 
             
            		matchers = [ function( elem, context, xml ) {
         | 
| 23846 | 
            -
             | 
| 23612 | 
            +
             | 
| 23613 | 
            +
            			// Support: IE 11+, Edge 17 - 18+
         | 
| 23614 | 
            +
            			// IE/Edge sometimes throw a "Permission denied" error when strict-comparing
         | 
| 23615 | 
            +
            			// two documents; shallow comparisons work.
         | 
| 23616 | 
            +
            			// eslint-disable-next-line eqeqeq
         | 
| 23617 | 
            +
            			var ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (
         | 
| 23847 23618 | 
             
            				( checkContext = context ).nodeType ?
         | 
| 23848 23619 | 
             
            					matchContext( elem, context, xml ) :
         | 
| 23849 23620 | 
             
            					matchAnyContext( elem, context, xml ) );
         | 
| 23850 23621 |  | 
| 23851 | 
            -
            			// Avoid hanging onto element | 
| 23622 | 
            +
            			// Avoid hanging onto element
         | 
| 23623 | 
            +
            			// (see https://github.com/jquery/sizzle/issues/299)
         | 
| 23852 23624 | 
             
            			checkContext = null;
         | 
| 23853 23625 | 
             
            			return ret;
         | 
| 23854 23626 | 
             
            		} ];
         | 
| @@ -23873,11 +23645,10 @@ function matcherFromTokens( tokens ) { | |
| 23873 23645 | 
             
            					i > 1 && elementMatcher( matchers ),
         | 
| 23874 23646 | 
             
            					i > 1 && toSelector(
         | 
| 23875 23647 |  | 
| 23876 | 
            -
             | 
| 23877 | 
            -
             | 
| 23878 | 
            -
             | 
| 23879 | 
            -
             | 
| 23880 | 
            -
            					).replace( rtrim, "$1" ),
         | 
| 23648 | 
            +
            						// If the preceding token was a descendant combinator, insert an implicit any-element `*`
         | 
| 23649 | 
            +
            						tokens.slice( 0, i - 1 )
         | 
| 23650 | 
            +
            							.concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } )
         | 
| 23651 | 
            +
            					).replace( rtrimCSS, "$1" ),
         | 
| 23881 23652 | 
             
            					matcher,
         | 
| 23882 23653 | 
             
            					i < j && matcherFromTokens( tokens.slice( i, j ) ),
         | 
| 23883 23654 | 
             
            					j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),
         | 
| @@ -23903,7 +23674,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | |
| 23903 23674 | 
             
            				contextBackup = outermostContext,
         | 
| 23904 23675 |  | 
| 23905 23676 | 
             
            				// We must always have either seed elements or outermost context
         | 
| 23906 | 
            -
            				elems = seed || byElement && Expr.find | 
| 23677 | 
            +
            				elems = seed || byElement && Expr.find.TAG( "*", outermost ),
         | 
| 23907 23678 |  | 
| 23908 23679 | 
             
            				// Use integer dirruns iff this is the outermost matcher
         | 
| 23909 23680 | 
             
            				dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),
         | 
| @@ -23919,8 +23690,9 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | |
| 23919 23690 | 
             
            			}
         | 
| 23920 23691 |  | 
| 23921 23692 | 
             
            			// Add elements passing elementMatchers directly to results
         | 
| 23922 | 
            -
            			// Support:  | 
| 23923 | 
            -
            			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching | 
| 23693 | 
            +
            			// Support: iOS <=7 - 9 only
         | 
| 23694 | 
            +
            			// Tolerate NodeList properties (IE: "length"; Safari: <number>) matching
         | 
| 23695 | 
            +
            			// elements by id. (see trac-14142)
         | 
| 23924 23696 | 
             
            			for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {
         | 
| 23925 23697 | 
             
            				if ( byElement && elem ) {
         | 
| 23926 23698 | 
             
            					j = 0;
         | 
| @@ -23935,7 +23707,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | |
| 23935 23707 | 
             
            					}
         | 
| 23936 23708 | 
             
            					while ( ( matcher = elementMatchers[ j++ ] ) ) {
         | 
| 23937 23709 | 
             
            						if ( matcher( elem, context || document, xml ) ) {
         | 
| 23938 | 
            -
            							 | 
| 23710 | 
            +
            							push.call( results, elem );
         | 
| 23939 23711 | 
             
            							break;
         | 
| 23940 23712 | 
             
            						}
         | 
| 23941 23713 | 
             
            					}
         | 
| @@ -23998,7 +23770,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | |
| 23998 23770 | 
             
            				if ( outermost && !seed && setMatched.length > 0 &&
         | 
| 23999 23771 | 
             
            					( matchedCount + setMatchers.length ) > 1 ) {
         | 
| 24000 23772 |  | 
| 24001 | 
            -
            					 | 
| 23773 | 
            +
            					jQuery.uniqueSort( results );
         | 
| 24002 23774 | 
             
            				}
         | 
| 24003 23775 | 
             
            			}
         | 
| 24004 23776 |  | 
| @@ -24016,7 +23788,7 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { | |
| 24016 23788 | 
             
            		superMatcher;
         | 
| 24017 23789 | 
             
            }
         | 
| 24018 23790 |  | 
| 24019 | 
            -
             | 
| 23791 | 
            +
            function compile( selector, match /* Internal Use Only */ ) {
         | 
| 24020 23792 | 
             
            	var i,
         | 
| 24021 23793 | 
             
            		setMatchers = [],
         | 
| 24022 23794 | 
             
            		elementMatchers = [],
         | 
| @@ -24039,27 +23811,25 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { | |
| 24039 23811 | 
             
            		}
         | 
| 24040 23812 |  | 
| 24041 23813 | 
             
            		// Cache the compiled function
         | 
| 24042 | 
            -
            		cached = compilerCache(
         | 
| 24043 | 
            -
            			 | 
| 24044 | 
            -
            			matcherFromGroupMatchers( elementMatchers, setMatchers )
         | 
| 24045 | 
            -
            		);
         | 
| 23814 | 
            +
            		cached = compilerCache( selector,
         | 
| 23815 | 
            +
            			matcherFromGroupMatchers( elementMatchers, setMatchers ) );
         | 
| 24046 23816 |  | 
| 24047 23817 | 
             
            		// Save selector and tokenization
         | 
| 24048 23818 | 
             
            		cached.selector = selector;
         | 
| 24049 23819 | 
             
            	}
         | 
| 24050 23820 | 
             
            	return cached;
         | 
| 24051 | 
            -
            } | 
| 23821 | 
            +
            }
         | 
| 24052 23822 |  | 
| 24053 23823 | 
             
            /**
         | 
| 24054 | 
            -
             * A low-level selection function that works with  | 
| 23824 | 
            +
             * A low-level selection function that works with jQuery's compiled
         | 
| 24055 23825 | 
             
             *  selector functions
         | 
| 24056 23826 | 
             
             * @param {String|Function} selector A selector or a pre-compiled
         | 
| 24057 | 
            -
             *  selector function built with  | 
| 23827 | 
            +
             *  selector function built with jQuery selector compile
         | 
| 24058 23828 | 
             
             * @param {Element} context
         | 
| 24059 23829 | 
             
             * @param {Array} [results]
         | 
| 24060 23830 | 
             
             * @param {Array} [seed] A set of elements to match against
         | 
| 24061 23831 | 
             
             */
         | 
| 24062 | 
            -
             | 
| 23832 | 
            +
            function select( selector, context, results, seed ) {
         | 
| 24063 23833 | 
             
            	var i, tokens, token, type, find,
         | 
| 24064 23834 | 
             
            		compiled = typeof selector === "function" && selector,
         | 
| 24065 23835 | 
             
            		match = !seed && tokenize( ( selector = compiled.selector || selector ) );
         | 
| @@ -24073,10 +23843,12 @@ select = Sizzle.select = function( selector, context, results, seed ) { | |
| 24073 23843 | 
             
            		// Reduce context if the leading compound selector is an ID
         | 
| 24074 23844 | 
             
            		tokens = match[ 0 ] = match[ 0 ].slice( 0 );
         | 
| 24075 23845 | 
             
            		if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" &&
         | 
| 24076 | 
            -
             | 
| 23846 | 
            +
            				context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {
         | 
| 24077 23847 |  | 
| 24078 | 
            -
            			context = ( Expr.find | 
| 24079 | 
            -
            				.replace( runescape, funescape ), | 
| 23848 | 
            +
            			context = ( Expr.find.ID(
         | 
| 23849 | 
            +
            				token.matches[ 0 ].replace( runescape, funescape ),
         | 
| 23850 | 
            +
            				context
         | 
| 23851 | 
            +
            			) || [] )[ 0 ];
         | 
| 24080 23852 | 
             
            			if ( !context ) {
         | 
| 24081 23853 | 
             
            				return results;
         | 
| 24082 23854 |  | 
| @@ -24089,7 +23861,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { | |
| 24089 23861 | 
             
            		}
         | 
| 24090 23862 |  | 
| 24091 23863 | 
             
            		// Fetch a seed set for right-to-left matching
         | 
| 24092 | 
            -
            		i = matchExpr | 
| 23864 | 
            +
            		i = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;
         | 
| 24093 23865 | 
             
            		while ( i-- ) {
         | 
| 24094 23866 | 
             
            			token = tokens[ i ];
         | 
| 24095 23867 |  | 
| @@ -24102,8 +23874,8 @@ select = Sizzle.select = function( selector, context, results, seed ) { | |
| 24102 23874 | 
             
            				// Search, expanding context for leading sibling combinators
         | 
| 24103 23875 | 
             
            				if ( ( seed = find(
         | 
| 24104 23876 | 
             
            					token.matches[ 0 ].replace( runescape, funescape ),
         | 
| 24105 | 
            -
            					rsibling.test( tokens[ 0 ].type ) && | 
| 24106 | 
            -
            						context
         | 
| 23877 | 
            +
            					rsibling.test( tokens[ 0 ].type ) &&
         | 
| 23878 | 
            +
            						testContext( context.parentNode ) || context
         | 
| 24107 23879 | 
             
            				) ) ) {
         | 
| 24108 23880 |  | 
| 24109 23881 | 
             
            					// If seed is empty or no tokens remain, we can return early
         | 
| @@ -24130,21 +23902,18 @@ select = Sizzle.select = function( selector, context, results, seed ) { | |
| 24130 23902 | 
             
            		!context || rsibling.test( selector ) && testContext( context.parentNode ) || context
         | 
| 24131 23903 | 
             
            	);
         | 
| 24132 23904 | 
             
            	return results;
         | 
| 24133 | 
            -
            } | 
| 23905 | 
            +
            }
         | 
| 24134 23906 |  | 
| 24135 23907 | 
             
            // One-time assignments
         | 
| 24136 23908 |  | 
| 23909 | 
            +
            // Support: Android <=4.0 - 4.1+
         | 
| 24137 23910 | 
             
            // Sort stability
         | 
| 24138 23911 | 
             
            support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando;
         | 
| 24139 23912 |  | 
| 24140 | 
            -
            // Support: Chrome 14-35+
         | 
| 24141 | 
            -
            // Always assume duplicates if they aren't passed to the comparison function
         | 
| 24142 | 
            -
            support.detectDuplicates = !!hasDuplicate;
         | 
| 24143 | 
            -
             | 
| 24144 23913 | 
             
            // Initialize against the default document
         | 
| 24145 23914 | 
             
            setDocument();
         | 
| 24146 23915 |  | 
| 24147 | 
            -
            // Support:  | 
| 23916 | 
            +
            // Support: Android <=4.0 - 4.1+
         | 
| 24148 23917 | 
             
            // Detached nodes confoundingly follow *each other*
         | 
| 24149 23918 | 
             
            support.sortDetached = assert( function( el ) {
         | 
| 24150 23919 |  | 
| @@ -24152,68 +23921,29 @@ support.sortDetached = assert( function( el ) { | |
| 24152 23921 | 
             
            	return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1;
         | 
| 24153 23922 | 
             
            } );
         | 
| 24154 23923 |  | 
| 24155 | 
            -
             | 
| 24156 | 
            -
            // Prevent attribute/property "interpolation"
         | 
| 24157 | 
            -
            // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
         | 
| 24158 | 
            -
            if ( !assert( function( el ) {
         | 
| 24159 | 
            -
            	el.innerHTML = "<a href='#'></a>";
         | 
| 24160 | 
            -
            	return el.firstChild.getAttribute( "href" ) === "#";
         | 
| 24161 | 
            -
            } ) ) {
         | 
| 24162 | 
            -
            	addHandle( "type|href|height|width", function( elem, name, isXML ) {
         | 
| 24163 | 
            -
            		if ( !isXML ) {
         | 
| 24164 | 
            -
            			return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
         | 
| 24165 | 
            -
            		}
         | 
| 24166 | 
            -
            	} );
         | 
| 24167 | 
            -
            }
         | 
| 24168 | 
            -
             | 
| 24169 | 
            -
            // Support: IE<9
         | 
| 24170 | 
            -
            // Use defaultValue in place of getAttribute("value")
         | 
| 24171 | 
            -
            if ( !support.attributes || !assert( function( el ) {
         | 
| 24172 | 
            -
            	el.innerHTML = "<input/>";
         | 
| 24173 | 
            -
            	el.firstChild.setAttribute( "value", "" );
         | 
| 24174 | 
            -
            	return el.firstChild.getAttribute( "value" ) === "";
         | 
| 24175 | 
            -
            } ) ) {
         | 
| 24176 | 
            -
            	addHandle( "value", function( elem, _name, isXML ) {
         | 
| 24177 | 
            -
            		if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
         | 
| 24178 | 
            -
            			return elem.defaultValue;
         | 
| 24179 | 
            -
            		}
         | 
| 24180 | 
            -
            	} );
         | 
| 24181 | 
            -
            }
         | 
| 24182 | 
            -
             | 
| 24183 | 
            -
            // Support: IE<9
         | 
| 24184 | 
            -
            // Use getAttributeNode to fetch booleans when getAttribute lies
         | 
| 24185 | 
            -
            if ( !assert( function( el ) {
         | 
| 24186 | 
            -
            	return el.getAttribute( "disabled" ) == null;
         | 
| 24187 | 
            -
            } ) ) {
         | 
| 24188 | 
            -
            	addHandle( booleans, function( elem, name, isXML ) {
         | 
| 24189 | 
            -
            		var val;
         | 
| 24190 | 
            -
            		if ( !isXML ) {
         | 
| 24191 | 
            -
            			return elem[ name ] === true ? name.toLowerCase() :
         | 
| 24192 | 
            -
            				( val = elem.getAttributeNode( name ) ) && val.specified ?
         | 
| 24193 | 
            -
            					val.value :
         | 
| 24194 | 
            -
            					null;
         | 
| 24195 | 
            -
            		}
         | 
| 24196 | 
            -
            	} );
         | 
| 24197 | 
            -
            }
         | 
| 24198 | 
            -
             | 
| 24199 | 
            -
            return Sizzle;
         | 
| 24200 | 
            -
             | 
| 24201 | 
            -
            } )( window );
         | 
| 24202 | 
            -
             | 
| 24203 | 
            -
             | 
| 24204 | 
            -
             | 
| 24205 | 
            -
            jQuery.find = Sizzle;
         | 
| 24206 | 
            -
            jQuery.expr = Sizzle.selectors;
         | 
| 23924 | 
            +
            jQuery.find = find;
         | 
| 24207 23925 |  | 
| 24208 23926 | 
             
            // Deprecated
         | 
| 24209 23927 | 
             
            jQuery.expr[ ":" ] = jQuery.expr.pseudos;
         | 
| 24210 | 
            -
            jQuery. | 
| 24211 | 
            -
             | 
| 24212 | 
            -
             | 
| 24213 | 
            -
             | 
| 24214 | 
            -
             | 
| 23928 | 
            +
            jQuery.unique = jQuery.uniqueSort;
         | 
| 23929 | 
            +
             | 
| 23930 | 
            +
            // These have always been private, but they used to be documented as part of
         | 
| 23931 | 
            +
            // Sizzle so let's maintain them for now for backwards compatibility purposes.
         | 
| 23932 | 
            +
            find.compile = compile;
         | 
| 23933 | 
            +
            find.select = select;
         | 
| 23934 | 
            +
            find.setDocument = setDocument;
         | 
| 23935 | 
            +
            find.tokenize = tokenize;
         | 
| 24215 23936 |  | 
| 23937 | 
            +
            find.escape = jQuery.escapeSelector;
         | 
| 23938 | 
            +
            find.getText = jQuery.text;
         | 
| 23939 | 
            +
            find.isXML = jQuery.isXMLDoc;
         | 
| 23940 | 
            +
            find.selectors = jQuery.expr;
         | 
| 23941 | 
            +
            find.support = jQuery.support;
         | 
| 23942 | 
            +
            find.uniqueSort = jQuery.uniqueSort;
         | 
| 24216 23943 |  | 
| 23944 | 
            +
            	/* eslint-enable */
         | 
| 23945 | 
            +
             | 
| 23946 | 
            +
            } )();
         | 
| 24217 23947 |  | 
| 24218 23948 |  | 
| 24219 23949 | 
             
            var dir = function( elem, dir, until ) {
         | 
| @@ -24247,13 +23977,6 @@ var siblings = function( n, elem ) { | |
| 24247 23977 |  | 
| 24248 23978 | 
             
            var rneedsContext = jQuery.expr.match.needsContext;
         | 
| 24249 23979 |  | 
| 24250 | 
            -
             | 
| 24251 | 
            -
             | 
| 24252 | 
            -
            function nodeName( elem, name ) {
         | 
| 24253 | 
            -
             | 
| 24254 | 
            -
            	return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
         | 
| 24255 | 
            -
             | 
| 24256 | 
            -
            }
         | 
| 24257 23980 | 
             
            var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
         | 
| 24258 23981 |  | 
| 24259 23982 |  | 
| @@ -24352,8 +24075,8 @@ jQuery.fn.extend( { | |
| 24352 24075 | 
             
            var rootjQuery,
         | 
| 24353 24076 |  | 
| 24354 24077 | 
             
            	// A simple way to check for HTML strings
         | 
| 24355 | 
            -
            	// Prioritize #id over <tag> to avoid XSS via location.hash ( | 
| 24356 | 
            -
            	// Strict HTML recognition ( | 
| 24078 | 
            +
            	// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)
         | 
| 24079 | 
            +
            	// Strict HTML recognition (trac-11290: must start with <)
         | 
| 24357 24080 | 
             
            	// Shortcut simple #id case for speed
         | 
| 24358 24081 | 
             
            	rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,
         | 
| 24359 24082 |  | 
| @@ -24504,7 +24227,7 @@ jQuery.fn.extend( { | |
| 24504 24227 | 
             
            					if ( cur.nodeType < 11 && ( targets ?
         | 
| 24505 24228 | 
             
            						targets.index( cur ) > -1 :
         | 
| 24506 24229 |  | 
| 24507 | 
            -
            						// Don't pass non-elements to  | 
| 24230 | 
            +
            						// Don't pass non-elements to jQuery#find
         | 
| 24508 24231 | 
             
            						cur.nodeType === 1 &&
         | 
| 24509 24232 | 
             
            							jQuery.find.matchesSelector( cur, selectors ) ) ) {
         | 
| 24510 24233 |  | 
| @@ -25059,7 +24782,7 @@ jQuery.extend( { | |
| 25059 24782 |  | 
| 25060 24783 | 
             
            											if ( jQuery.Deferred.exceptionHook ) {
         | 
| 25061 24784 | 
             
            												jQuery.Deferred.exceptionHook( e,
         | 
| 25062 | 
            -
            													process. | 
| 24785 | 
            +
            													process.error );
         | 
| 25063 24786 | 
             
            											}
         | 
| 25064 24787 |  | 
| 25065 24788 | 
             
            											// Support: Promises/A+ section 2.3.3.3.4.1
         | 
| @@ -25087,10 +24810,17 @@ jQuery.extend( { | |
| 25087 24810 | 
             
            								process();
         | 
| 25088 24811 | 
             
            							} else {
         | 
| 25089 24812 |  | 
| 25090 | 
            -
            								// Call an optional hook to record the  | 
| 24813 | 
            +
            								// Call an optional hook to record the error, in case of exception
         | 
| 25091 24814 | 
             
            								// since it's otherwise lost when execution goes async
         | 
| 25092 | 
            -
            								if ( jQuery.Deferred. | 
| 25093 | 
            -
            									process. | 
| 24815 | 
            +
            								if ( jQuery.Deferred.getErrorHook ) {
         | 
| 24816 | 
            +
            									process.error = jQuery.Deferred.getErrorHook();
         | 
| 24817 | 
            +
             | 
| 24818 | 
            +
            								// The deprecated alias of the above. While the name suggests
         | 
| 24819 | 
            +
            								// returning the stack, not an error instance, jQuery just passes
         | 
| 24820 | 
            +
            								// it directly to `console.warn` so both will work; an instance
         | 
| 24821 | 
            +
            								// just better cooperates with source maps.
         | 
| 24822 | 
            +
            								} else if ( jQuery.Deferred.getStackHook ) {
         | 
| 24823 | 
            +
            									process.error = jQuery.Deferred.getStackHook();
         | 
| 25094 24824 | 
             
            								}
         | 
| 25095 24825 | 
             
            								window.setTimeout( process );
         | 
| 25096 24826 | 
             
            							}
         | 
| @@ -25265,12 +24995,16 @@ jQuery.extend( { | |
| 25265 24995 | 
             
            // warn about them ASAP rather than swallowing them by default.
         | 
| 25266 24996 | 
             
            var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
         | 
| 25267 24997 |  | 
| 25268 | 
            -
            jQuery.Deferred. | 
| 24998 | 
            +
            // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error
         | 
| 24999 | 
            +
            // captured before the async barrier to get the original error cause
         | 
| 25000 | 
            +
            // which may otherwise be hidden.
         | 
| 25001 | 
            +
            jQuery.Deferred.exceptionHook = function( error, asyncError ) {
         | 
| 25269 25002 |  | 
| 25270 25003 | 
             
            	// Support: IE 8 - 9 only
         | 
| 25271 25004 | 
             
            	// Console exists when dev tools are open, which can happen at any time
         | 
| 25272 25005 | 
             
            	if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
         | 
| 25273 | 
            -
            		window.console.warn( "jQuery.Deferred exception: " + error.message, | 
| 25006 | 
            +
            		window.console.warn( "jQuery.Deferred exception: " + error.message,
         | 
| 25007 | 
            +
            			error.stack, asyncError );
         | 
| 25274 25008 | 
             
            	}
         | 
| 25275 25009 | 
             
            };
         | 
| 25276 25010 |  | 
| @@ -25310,7 +25044,7 @@ jQuery.extend( { | |
| 25310 25044 | 
             
            	isReady: false,
         | 
| 25311 25045 |  | 
| 25312 25046 | 
             
            	// A counter to track how many items to wait for before
         | 
| 25313 | 
            -
            	// the ready event fires. See  | 
| 25047 | 
            +
            	// the ready event fires. See trac-6781
         | 
| 25314 25048 | 
             
            	readyWait: 1,
         | 
| 25315 25049 |  | 
| 25316 25050 | 
             
            	// Handle when the DOM is ready
         | 
| @@ -25438,7 +25172,7 @@ function fcamelCase( _all, letter ) { | |
| 25438 25172 |  | 
| 25439 25173 | 
             
            // Convert dashed to camelCase; used by the css and data modules
         | 
| 25440 25174 | 
             
            // Support: IE <=9 - 11, Edge 12 - 15
         | 
| 25441 | 
            -
            // Microsoft forgot to hump their vendor prefix ( | 
| 25175 | 
            +
            // Microsoft forgot to hump their vendor prefix (trac-9572)
         | 
| 25442 25176 | 
             
            function camelCase( string ) {
         | 
| 25443 25177 | 
             
            	return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
         | 
| 25444 25178 | 
             
            }
         | 
| @@ -25474,7 +25208,7 @@ Data.prototype = { | |
| 25474 25208 | 
             
            			value = {};
         | 
| 25475 25209 |  | 
| 25476 25210 | 
             
            			// We can accept data for non-element nodes in modern browsers,
         | 
| 25477 | 
            -
            			// but we should not, see  | 
| 25211 | 
            +
            			// but we should not, see trac-8335.
         | 
| 25478 25212 | 
             
            			// Always return an empty object.
         | 
| 25479 25213 | 
             
            			if ( acceptData( owner ) ) {
         | 
| 25480 25214 |  | 
| @@ -25713,7 +25447,7 @@ jQuery.fn.extend( { | |
| 25713 25447 | 
             
            					while ( i-- ) {
         | 
| 25714 25448 |  | 
| 25715 25449 | 
             
            						// Support: IE 11 only
         | 
| 25716 | 
            -
            						// The attrs elements can be null ( | 
| 25450 | 
            +
            						// The attrs elements can be null (trac-14894)
         | 
| 25717 25451 | 
             
            						if ( attrs[ i ] ) {
         | 
| 25718 25452 | 
             
            							name = attrs[ i ].name;
         | 
| 25719 25453 | 
             
            							if ( name.indexOf( "data-" ) === 0 ) {
         | 
| @@ -26136,9 +25870,9 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); | |
| 26136 25870 | 
             
            		input = document.createElement( "input" );
         | 
| 26137 25871 |  | 
| 26138 25872 | 
             
            	// Support: Android 4.0 - 4.3 only
         | 
| 26139 | 
            -
            	// Check state lost if the name is set ( | 
| 25873 | 
            +
            	// Check state lost if the name is set (trac-11217)
         | 
| 26140 25874 | 
             
            	// Support: Windows Web Apps (WWA)
         | 
| 26141 | 
            -
            	// `name` and `type` must use .setAttribute for WWA ( | 
| 25875 | 
            +
            	// `name` and `type` must use .setAttribute for WWA (trac-14901)
         | 
| 26142 25876 | 
             
            	input.setAttribute( "type", "radio" );
         | 
| 26143 25877 | 
             
            	input.setAttribute( "checked", "checked" );
         | 
| 26144 25878 | 
             
            	input.setAttribute( "name", "t" );
         | 
| @@ -26162,7 +25896,7 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); | |
| 26162 25896 | 
             
            } )();
         | 
| 26163 25897 |  | 
| 26164 25898 |  | 
| 26165 | 
            -
            // We have to close these tags to support XHTML ( | 
| 25899 | 
            +
            // We have to close these tags to support XHTML (trac-13200)
         | 
| 26166 25900 | 
             
            var wrapMap = {
         | 
| 26167 25901 |  | 
| 26168 25902 | 
             
            	// XHTML parsers do not magically insert elements in the
         | 
| @@ -26188,7 +25922,7 @@ if ( !support.option ) { | |
| 26188 25922 | 
             
            function getAll( context, tag ) {
         | 
| 26189 25923 |  | 
| 26190 25924 | 
             
            	// Support: IE <=9 - 11 only
         | 
| 26191 | 
            -
            	// Use typeof to avoid zero-argument method invocation on host objects ( | 
| 25925 | 
            +
            	// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)
         | 
| 26192 25926 | 
             
            	var ret;
         | 
| 26193 25927 |  | 
| 26194 25928 | 
             
            	if ( typeof context.getElementsByTagName !== "undefined" ) {
         | 
| @@ -26271,7 +26005,7 @@ function buildFragment( elems, context, scripts, selection, ignored ) { | |
| 26271 26005 | 
             
            				// Remember the top-level container
         | 
| 26272 26006 | 
             
            				tmp = fragment.firstChild;
         | 
| 26273 26007 |  | 
| 26274 | 
            -
            				// Ensure the created nodes are orphaned ( | 
| 26008 | 
            +
            				// Ensure the created nodes are orphaned (trac-12392)
         | 
| 26275 26009 | 
             
            				tmp.textContent = "";
         | 
| 26276 26010 | 
             
            			}
         | 
| 26277 26011 | 
             
            		}
         | 
| @@ -26326,25 +26060,6 @@ function returnFalse() { | |
| 26326 26060 | 
             
            	return false;
         | 
| 26327 26061 | 
             
            }
         | 
| 26328 26062 |  | 
| 26329 | 
            -
            // Support: IE <=9 - 11+
         | 
| 26330 | 
            -
            // focus() and blur() are asynchronous, except when they are no-op.
         | 
| 26331 | 
            -
            // So expect focus to be synchronous when the element is already active,
         | 
| 26332 | 
            -
            // and blur to be synchronous when the element is not already active.
         | 
| 26333 | 
            -
            // (focus and blur are always synchronous in other supported browsers,
         | 
| 26334 | 
            -
            // this just defines when we can count on it).
         | 
| 26335 | 
            -
            function expectSync( elem, type ) {
         | 
| 26336 | 
            -
            	return ( elem === safeActiveElement() ) === ( type === "focus" );
         | 
| 26337 | 
            -
            }
         | 
| 26338 | 
            -
             | 
| 26339 | 
            -
            // Support: IE <=9 only
         | 
| 26340 | 
            -
            // Accessing document.activeElement can throw unexpectedly
         | 
| 26341 | 
            -
            // https://bugs.jquery.com/ticket/13393
         | 
| 26342 | 
            -
            function safeActiveElement() {
         | 
| 26343 | 
            -
            	try {
         | 
| 26344 | 
            -
            		return document.activeElement;
         | 
| 26345 | 
            -
            	} catch ( err ) { }
         | 
| 26346 | 
            -
            }
         | 
| 26347 | 
            -
             | 
| 26348 26063 | 
             
            function on( elem, types, selector, data, fn, one ) {
         | 
| 26349 26064 | 
             
            	var origFn, type;
         | 
| 26350 26065 |  | 
| @@ -26692,15 +26407,15 @@ jQuery.event = { | |
| 26692 26407 |  | 
| 26693 26408 | 
             
            			for ( ; cur !== this; cur = cur.parentNode || this ) {
         | 
| 26694 26409 |  | 
| 26695 | 
            -
            				// Don't check non-elements ( | 
| 26696 | 
            -
            				// Don't process clicks on disabled elements ( | 
| 26410 | 
            +
            				// Don't check non-elements (trac-13208)
         | 
| 26411 | 
            +
            				// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)
         | 
| 26697 26412 | 
             
            				if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) {
         | 
| 26698 26413 | 
             
            					matchedHandlers = [];
         | 
| 26699 26414 | 
             
            					matchedSelectors = {};
         | 
| 26700 26415 | 
             
            					for ( i = 0; i < delegateCount; i++ ) {
         | 
| 26701 26416 | 
             
            						handleObj = handlers[ i ];
         | 
| 26702 26417 |  | 
| 26703 | 
            -
            						// Don't conflict with Object.prototype properties ( | 
| 26418 | 
            +
            						// Don't conflict with Object.prototype properties (trac-13203)
         | 
| 26704 26419 | 
             
            						sel = handleObj.selector + " ";
         | 
| 26705 26420 |  | 
| 26706 26421 | 
             
            						if ( matchedSelectors[ sel ] === undefined ) {
         | 
| @@ -26782,7 +26497,7 @@ jQuery.event = { | |
| 26782 26497 | 
             
            					el.click && nodeName( el, "input" ) ) {
         | 
| 26783 26498 |  | 
| 26784 26499 | 
             
            					// dataPriv.set( el, "click", ... )
         | 
| 26785 | 
            -
            					leverageNative( el, "click",  | 
| 26500 | 
            +
            					leverageNative( el, "click", true );
         | 
| 26786 26501 | 
             
            				}
         | 
| 26787 26502 |  | 
| 26788 26503 | 
             
            				// Return false to allow normal processing in the caller
         | 
| @@ -26833,10 +26548,10 @@ jQuery.event = { | |
| 26833 26548 | 
             
            // synthetic events by interrupting progress until reinvoked in response to
         | 
| 26834 26549 | 
             
            // *native* events that it fires directly, ensuring that state changes have
         | 
| 26835 26550 | 
             
            // already occurred before other listeners are invoked.
         | 
| 26836 | 
            -
            function leverageNative( el, type,  | 
| 26551 | 
            +
            function leverageNative( el, type, isSetup ) {
         | 
| 26837 26552 |  | 
| 26838 | 
            -
            	// Missing  | 
| 26839 | 
            -
            	if ( ! | 
| 26553 | 
            +
            	// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add
         | 
| 26554 | 
            +
            	if ( !isSetup ) {
         | 
| 26840 26555 | 
             
            		if ( dataPriv.get( el, type ) === undefined ) {
         | 
| 26841 26556 | 
             
            			jQuery.event.add( el, type, returnTrue );
         | 
| 26842 26557 | 
             
            		}
         | 
| @@ -26848,15 +26563,13 @@ function leverageNative( el, type, expectSync ) { | |
| 26848 26563 | 
             
            	jQuery.event.add( el, type, {
         | 
| 26849 26564 | 
             
            		namespace: false,
         | 
| 26850 26565 | 
             
            		handler: function( event ) {
         | 
| 26851 | 
            -
            			var  | 
| 26566 | 
            +
            			var result,
         | 
| 26852 26567 | 
             
            				saved = dataPriv.get( this, type );
         | 
| 26853 26568 |  | 
| 26854 26569 | 
             
            			if ( ( event.isTrigger & 1 ) && this[ type ] ) {
         | 
| 26855 26570 |  | 
| 26856 26571 | 
             
            				// Interrupt processing of the outer synthetic .trigger()ed event
         | 
| 26857 | 
            -
            				 | 
| 26858 | 
            -
            				// from an async native handler (gh-4350)
         | 
| 26859 | 
            -
            				if ( !saved.length ) {
         | 
| 26572 | 
            +
            				if ( !saved ) {
         | 
| 26860 26573 |  | 
| 26861 26574 | 
             
            					// Store arguments for use when handling the inner native event
         | 
| 26862 26575 | 
             
            					// There will always be at least one argument (an event object), so this array
         | 
| @@ -26865,33 +26578,22 @@ function leverageNative( el, type, expectSync ) { | |
| 26865 26578 | 
             
            					dataPriv.set( this, type, saved );
         | 
| 26866 26579 |  | 
| 26867 26580 | 
             
            					// Trigger the native event and capture its result
         | 
| 26868 | 
            -
            					// Support: IE <=9 - 11+
         | 
| 26869 | 
            -
            					// focus() and blur() are asynchronous
         | 
| 26870 | 
            -
            					notAsync = expectSync( this, type );
         | 
| 26871 26581 | 
             
            					this[ type ]();
         | 
| 26872 26582 | 
             
            					result = dataPriv.get( this, type );
         | 
| 26873 | 
            -
            					 | 
| 26874 | 
            -
             | 
| 26875 | 
            -
            					} else {
         | 
| 26876 | 
            -
            						result = {};
         | 
| 26877 | 
            -
            					}
         | 
| 26583 | 
            +
            					dataPriv.set( this, type, false );
         | 
| 26584 | 
            +
             | 
| 26878 26585 | 
             
            					if ( saved !== result ) {
         | 
| 26879 26586 |  | 
| 26880 26587 | 
             
            						// Cancel the outer synthetic event
         | 
| 26881 26588 | 
             
            						event.stopImmediatePropagation();
         | 
| 26882 26589 | 
             
            						event.preventDefault();
         | 
| 26883 26590 |  | 
| 26884 | 
            -
            						 | 
| 26885 | 
            -
            						// In Chrome, if an element having a focusout handler is blurred by
         | 
| 26886 | 
            -
            						// clicking outside of it, it invokes the handler synchronously. If
         | 
| 26887 | 
            -
            						// that handler calls `.remove()` on the element, the data is cleared,
         | 
| 26888 | 
            -
            						// leaving `result` undefined. We need to guard against this.
         | 
| 26889 | 
            -
            						return result && result.value;
         | 
| 26591 | 
            +
            						return result;
         | 
| 26890 26592 | 
             
            					}
         | 
| 26891 26593 |  | 
| 26892 26594 | 
             
            				// If this is an inner synthetic event for an event with a bubbling surrogate
         | 
| 26893 | 
            -
            				// (focus or blur), assume that the surrogate already propagated from triggering | 
| 26894 | 
            -
            				// native event and prevent that from happening again here.
         | 
| 26595 | 
            +
            				// (focus or blur), assume that the surrogate already propagated from triggering
         | 
| 26596 | 
            +
            				// the native event and prevent that from happening again here.
         | 
| 26895 26597 | 
             
            				// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
         | 
| 26896 26598 | 
             
            				// bubbling surrogate propagates *after* the non-bubbling base), but that seems
         | 
| 26897 26599 | 
             
            				// less bad than duplication.
         | 
| @@ -26901,22 +26603,25 @@ function leverageNative( el, type, expectSync ) { | |
| 26901 26603 |  | 
| 26902 26604 | 
             
            			// If this is a native event triggered above, everything is now in order
         | 
| 26903 26605 | 
             
            			// Fire an inner synthetic event with the original arguments
         | 
| 26904 | 
            -
            			} else if ( saved | 
| 26606 | 
            +
            			} else if ( saved ) {
         | 
| 26905 26607 |  | 
| 26906 26608 | 
             
            				// ...and capture the result
         | 
| 26907 | 
            -
            				dataPriv.set( this, type,  | 
| 26908 | 
            -
            					 | 
| 26909 | 
            -
             | 
| 26910 | 
            -
             | 
| 26911 | 
            -
             | 
| 26912 | 
            -
             | 
| 26913 | 
            -
             | 
| 26914 | 
            -
             | 
| 26915 | 
            -
             | 
| 26916 | 
            -
            				 | 
| 26917 | 
            -
             | 
| 26918 | 
            -
            				//  | 
| 26919 | 
            -
            				 | 
| 26609 | 
            +
            				dataPriv.set( this, type, jQuery.event.trigger(
         | 
| 26610 | 
            +
            					saved[ 0 ],
         | 
| 26611 | 
            +
            					saved.slice( 1 ),
         | 
| 26612 | 
            +
            					this
         | 
| 26613 | 
            +
            				) );
         | 
| 26614 | 
            +
             | 
| 26615 | 
            +
            				// Abort handling of the native event by all jQuery handlers while allowing
         | 
| 26616 | 
            +
            				// native handlers on the same element to run. On target, this is achieved
         | 
| 26617 | 
            +
            				// by stopping immediate propagation just on the jQuery event. However,
         | 
| 26618 | 
            +
            				// the native event is re-wrapped by a jQuery one on each level of the
         | 
| 26619 | 
            +
            				// propagation so the only way to stop it for jQuery is to stop it for
         | 
| 26620 | 
            +
            				// everyone via native `stopPropagation()`. This is not a problem for
         | 
| 26621 | 
            +
            				// focus/blur which don't bubble, but it does also stop click on checkboxes
         | 
| 26622 | 
            +
            				// and radios. We accept this limitation.
         | 
| 26623 | 
            +
            				event.stopPropagation();
         | 
| 26624 | 
            +
            				event.isImmediatePropagationStopped = returnTrue;
         | 
| 26920 26625 | 
             
            			}
         | 
| 26921 26626 | 
             
            		}
         | 
| 26922 26627 | 
             
            	} );
         | 
| @@ -26954,7 +26659,7 @@ jQuery.Event = function( src, props ) { | |
| 26954 26659 |  | 
| 26955 26660 | 
             
            		// Create target properties
         | 
| 26956 26661 | 
             
            		// Support: Safari <=6 - 7 only
         | 
| 26957 | 
            -
            		// Target should not be a text node ( | 
| 26662 | 
            +
            		// Target should not be a text node (trac-504, trac-13143)
         | 
| 26958 26663 | 
             
            		this.target = ( src.target && src.target.nodeType === 3 ) ?
         | 
| 26959 26664 | 
             
            			src.target.parentNode :
         | 
| 26960 26665 | 
             
            			src.target;
         | 
| @@ -27055,18 +26760,73 @@ jQuery.each( { | |
| 27055 26760 | 
             
            }, jQuery.event.addProp );
         | 
| 27056 26761 |  | 
| 27057 26762 | 
             
            jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
         | 
| 26763 | 
            +
             | 
| 26764 | 
            +
            	function focusMappedHandler( nativeEvent ) {
         | 
| 26765 | 
            +
            		if ( document.documentMode ) {
         | 
| 26766 | 
            +
             | 
| 26767 | 
            +
            			// Support: IE 11+
         | 
| 26768 | 
            +
            			// Attach a single focusin/focusout handler on the document while someone wants
         | 
| 26769 | 
            +
            			// focus/blur. This is because the former are synchronous in IE while the latter
         | 
| 26770 | 
            +
            			// are async. In other browsers, all those handlers are invoked synchronously.
         | 
| 26771 | 
            +
             | 
| 26772 | 
            +
            			// `handle` from private data would already wrap the event, but we need
         | 
| 26773 | 
            +
            			// to change the `type` here.
         | 
| 26774 | 
            +
            			var handle = dataPriv.get( this, "handle" ),
         | 
| 26775 | 
            +
            				event = jQuery.event.fix( nativeEvent );
         | 
| 26776 | 
            +
            			event.type = nativeEvent.type === "focusin" ? "focus" : "blur";
         | 
| 26777 | 
            +
            			event.isSimulated = true;
         | 
| 26778 | 
            +
             | 
| 26779 | 
            +
            			// First, handle focusin/focusout
         | 
| 26780 | 
            +
            			handle( nativeEvent );
         | 
| 26781 | 
            +
             | 
| 26782 | 
            +
            			// ...then, handle focus/blur
         | 
| 26783 | 
            +
            			//
         | 
| 26784 | 
            +
            			// focus/blur don't bubble while focusin/focusout do; simulate the former by only
         | 
| 26785 | 
            +
            			// invoking the handler at the lower level.
         | 
| 26786 | 
            +
            			if ( event.target === event.currentTarget ) {
         | 
| 26787 | 
            +
             | 
| 26788 | 
            +
            				// The setup part calls `leverageNative`, which, in turn, calls
         | 
| 26789 | 
            +
            				// `jQuery.event.add`, so event handle will already have been set
         | 
| 26790 | 
            +
            				// by this point.
         | 
| 26791 | 
            +
            				handle( event );
         | 
| 26792 | 
            +
            			}
         | 
| 26793 | 
            +
            		} else {
         | 
| 26794 | 
            +
             | 
| 26795 | 
            +
            			// For non-IE browsers, attach a single capturing handler on the document
         | 
| 26796 | 
            +
            			// while someone wants focusin/focusout.
         | 
| 26797 | 
            +
            			jQuery.event.simulate( delegateType, nativeEvent.target,
         | 
| 26798 | 
            +
            				jQuery.event.fix( nativeEvent ) );
         | 
| 26799 | 
            +
            		}
         | 
| 26800 | 
            +
            	}
         | 
| 26801 | 
            +
             | 
| 27058 26802 | 
             
            	jQuery.event.special[ type ] = {
         | 
| 27059 26803 |  | 
| 27060 26804 | 
             
            		// Utilize native event if possible so blur/focus sequence is correct
         | 
| 27061 26805 | 
             
            		setup: function() {
         | 
| 27062 26806 |  | 
| 26807 | 
            +
            			var attaches;
         | 
| 26808 | 
            +
             | 
| 27063 26809 | 
             
            			// Claim the first handler
         | 
| 27064 26810 | 
             
            			// dataPriv.set( this, "focus", ... )
         | 
| 27065 26811 | 
             
            			// dataPriv.set( this, "blur", ... )
         | 
| 27066 | 
            -
            			leverageNative( this, type,  | 
| 26812 | 
            +
            			leverageNative( this, type, true );
         | 
| 27067 26813 |  | 
| 27068 | 
            -
            			 | 
| 27069 | 
            -
             | 
| 26814 | 
            +
            			if ( document.documentMode ) {
         | 
| 26815 | 
            +
             | 
| 26816 | 
            +
            				// Support: IE 9 - 11+
         | 
| 26817 | 
            +
            				// We use the same native handler for focusin & focus (and focusout & blur)
         | 
| 26818 | 
            +
            				// so we need to coordinate setup & teardown parts between those events.
         | 
| 26819 | 
            +
            				// Use `delegateType` as the key as `type` is already used by `leverageNative`.
         | 
| 26820 | 
            +
            				attaches = dataPriv.get( this, delegateType );
         | 
| 26821 | 
            +
            				if ( !attaches ) {
         | 
| 26822 | 
            +
            					this.addEventListener( delegateType, focusMappedHandler );
         | 
| 26823 | 
            +
            				}
         | 
| 26824 | 
            +
            				dataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );
         | 
| 26825 | 
            +
            			} else {
         | 
| 26826 | 
            +
             | 
| 26827 | 
            +
            				// Return false to allow normal processing in the caller
         | 
| 26828 | 
            +
            				return false;
         | 
| 26829 | 
            +
            			}
         | 
| 27070 26830 | 
             
            		},
         | 
| 27071 26831 | 
             
            		trigger: function() {
         | 
| 27072 26832 |  | 
| @@ -27077,14 +26837,84 @@ jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateTyp | |
| 27077 26837 | 
             
            			return true;
         | 
| 27078 26838 | 
             
            		},
         | 
| 27079 26839 |  | 
| 27080 | 
            -
            		 | 
| 27081 | 
            -
             | 
| 27082 | 
            -
             | 
| 27083 | 
            -
            			 | 
| 26840 | 
            +
            		teardown: function() {
         | 
| 26841 | 
            +
            			var attaches;
         | 
| 26842 | 
            +
             | 
| 26843 | 
            +
            			if ( document.documentMode ) {
         | 
| 26844 | 
            +
            				attaches = dataPriv.get( this, delegateType ) - 1;
         | 
| 26845 | 
            +
            				if ( !attaches ) {
         | 
| 26846 | 
            +
            					this.removeEventListener( delegateType, focusMappedHandler );
         | 
| 26847 | 
            +
            					dataPriv.remove( this, delegateType );
         | 
| 26848 | 
            +
            				} else {
         | 
| 26849 | 
            +
            					dataPriv.set( this, delegateType, attaches );
         | 
| 26850 | 
            +
            				}
         | 
| 26851 | 
            +
            			} else {
         | 
| 26852 | 
            +
             | 
| 26853 | 
            +
            				// Return false to indicate standard teardown should be applied
         | 
| 26854 | 
            +
            				return false;
         | 
| 26855 | 
            +
            			}
         | 
| 26856 | 
            +
            		},
         | 
| 26857 | 
            +
             | 
| 26858 | 
            +
            		// Suppress native focus or blur if we're currently inside
         | 
| 26859 | 
            +
            		// a leveraged native-event stack
         | 
| 26860 | 
            +
            		_default: function( event ) {
         | 
| 26861 | 
            +
            			return dataPriv.get( event.target, type );
         | 
| 27084 26862 | 
             
            		},
         | 
| 27085 26863 |  | 
| 27086 26864 | 
             
            		delegateType: delegateType
         | 
| 27087 26865 | 
             
            	};
         | 
| 26866 | 
            +
             | 
| 26867 | 
            +
            	// Support: Firefox <=44
         | 
| 26868 | 
            +
            	// Firefox doesn't have focus(in | out) events
         | 
| 26869 | 
            +
            	// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
         | 
| 26870 | 
            +
            	//
         | 
| 26871 | 
            +
            	// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
         | 
| 26872 | 
            +
            	// focus(in | out) events fire after focus & blur events,
         | 
| 26873 | 
            +
            	// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
         | 
| 26874 | 
            +
            	// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
         | 
| 26875 | 
            +
            	//
         | 
| 26876 | 
            +
            	// Support: IE 9 - 11+
         | 
| 26877 | 
            +
            	// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,
         | 
| 26878 | 
            +
            	// attach a single handler for both events in IE.
         | 
| 26879 | 
            +
            	jQuery.event.special[ delegateType ] = {
         | 
| 26880 | 
            +
            		setup: function() {
         | 
| 26881 | 
            +
             | 
| 26882 | 
            +
            			// Handle: regular nodes (via `this.ownerDocument`), window
         | 
| 26883 | 
            +
            			// (via `this.document`) & document (via `this`).
         | 
| 26884 | 
            +
            			var doc = this.ownerDocument || this.document || this,
         | 
| 26885 | 
            +
            				dataHolder = document.documentMode ? this : doc,
         | 
| 26886 | 
            +
            				attaches = dataPriv.get( dataHolder, delegateType );
         | 
| 26887 | 
            +
             | 
| 26888 | 
            +
            			// Support: IE 9 - 11+
         | 
| 26889 | 
            +
            			// We use the same native handler for focusin & focus (and focusout & blur)
         | 
| 26890 | 
            +
            			// so we need to coordinate setup & teardown parts between those events.
         | 
| 26891 | 
            +
            			// Use `delegateType` as the key as `type` is already used by `leverageNative`.
         | 
| 26892 | 
            +
            			if ( !attaches ) {
         | 
| 26893 | 
            +
            				if ( document.documentMode ) {
         | 
| 26894 | 
            +
            					this.addEventListener( delegateType, focusMappedHandler );
         | 
| 26895 | 
            +
            				} else {
         | 
| 26896 | 
            +
            					doc.addEventListener( type, focusMappedHandler, true );
         | 
| 26897 | 
            +
            				}
         | 
| 26898 | 
            +
            			}
         | 
| 26899 | 
            +
            			dataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );
         | 
| 26900 | 
            +
            		},
         | 
| 26901 | 
            +
            		teardown: function() {
         | 
| 26902 | 
            +
            			var doc = this.ownerDocument || this.document || this,
         | 
| 26903 | 
            +
            				dataHolder = document.documentMode ? this : doc,
         | 
| 26904 | 
            +
            				attaches = dataPriv.get( dataHolder, delegateType ) - 1;
         | 
| 26905 | 
            +
             | 
| 26906 | 
            +
            			if ( !attaches ) {
         | 
| 26907 | 
            +
            				if ( document.documentMode ) {
         | 
| 26908 | 
            +
            					this.removeEventListener( delegateType, focusMappedHandler );
         | 
| 26909 | 
            +
            				} else {
         | 
| 26910 | 
            +
            					doc.removeEventListener( type, focusMappedHandler, true );
         | 
| 26911 | 
            +
            				}
         | 
| 26912 | 
            +
            				dataPriv.remove( dataHolder, delegateType );
         | 
| 26913 | 
            +
            			} else {
         | 
| 26914 | 
            +
            				dataPriv.set( dataHolder, delegateType, attaches );
         | 
| 26915 | 
            +
            			}
         | 
| 26916 | 
            +
            		}
         | 
| 26917 | 
            +
            	};
         | 
| 27088 26918 | 
             
            } );
         | 
| 27089 26919 |  | 
| 27090 26920 | 
             
            // Create mouseenter/leave events using mouseover/out and event-time checks
         | 
| @@ -27179,7 +27009,8 @@ var | |
| 27179 27009 |  | 
| 27180 27010 | 
             
            	// checked="checked" or checked
         | 
| 27181 27011 | 
             
            	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
         | 
| 27182 | 
            -
             | 
| 27012 | 
            +
             | 
| 27013 | 
            +
            	rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g;
         | 
| 27183 27014 |  | 
| 27184 27015 | 
             
            // Prefer a tbody over its parent table for containing new rows
         | 
| 27185 27016 | 
             
            function manipulationTarget( elem, content ) {
         | 
| @@ -27293,7 +27124,7 @@ function domManip( collection, args, callback, ignored ) { | |
| 27293 27124 |  | 
| 27294 27125 | 
             
            			// Use the original fragment for the last item
         | 
| 27295 27126 | 
             
            			// instead of the first because it can end up
         | 
| 27296 | 
            -
            			// being emptied incorrectly in certain situations ( | 
| 27127 | 
            +
            			// being emptied incorrectly in certain situations (trac-8070).
         | 
| 27297 27128 | 
             
            			for ( ; i < l; i++ ) {
         | 
| 27298 27129 | 
             
            				node = fragment;
         | 
| 27299 27130 |  | 
| @@ -27315,7 +27146,7 @@ function domManip( collection, args, callback, ignored ) { | |
| 27315 27146 | 
             
            			if ( hasScripts ) {
         | 
| 27316 27147 | 
             
            				doc = scripts[ scripts.length - 1 ].ownerDocument;
         | 
| 27317 27148 |  | 
| 27318 | 
            -
            				//  | 
| 27149 | 
            +
            				// Re-enable scripts
         | 
| 27319 27150 | 
             
            				jQuery.map( scripts, restoreScript );
         | 
| 27320 27151 |  | 
| 27321 27152 | 
             
            				// Evaluate executable scripts on first document insertion
         | 
| @@ -27334,6 +27165,12 @@ function domManip( collection, args, callback, ignored ) { | |
| 27334 27165 | 
             
            								}, doc );
         | 
| 27335 27166 | 
             
            							}
         | 
| 27336 27167 | 
             
            						} else {
         | 
| 27168 | 
            +
             | 
| 27169 | 
            +
            							// Unwrap a CDATA section containing script contents. This shouldn't be
         | 
| 27170 | 
            +
            							// needed as in XML documents they're already not visible when
         | 
| 27171 | 
            +
            							// inspecting element contents and in HTML documents they have no
         | 
| 27172 | 
            +
            							// meaning but we're preserving that logic for backwards compatibility.
         | 
| 27173 | 
            +
            							// This will be removed completely in 4.0. See gh-4904.
         | 
| 27337 27174 | 
             
            							DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
         | 
| 27338 27175 | 
             
            						}
         | 
| 27339 27176 | 
             
            					}
         | 
| @@ -27380,7 +27217,8 @@ jQuery.extend( { | |
| 27380 27217 | 
             
            		if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
         | 
| 27381 27218 | 
             
            				!jQuery.isXMLDoc( elem ) ) {
         | 
| 27382 27219 |  | 
| 27383 | 
            -
            			// We eschew  | 
| 27220 | 
            +
            			// We eschew jQuery#find here for performance reasons:
         | 
| 27221 | 
            +
            			// https://jsperf.com/getall-vs-sizzle/2
         | 
| 27384 27222 | 
             
            			destElements = getAll( clone );
         | 
| 27385 27223 | 
             
            			srcElements = getAll( elem );
         | 
| 27386 27224 |  | 
| @@ -27616,9 +27454,12 @@ jQuery.each( { | |
| 27616 27454 | 
             
            } );
         | 
| 27617 27455 | 
             
            var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
         | 
| 27618 27456 |  | 
| 27457 | 
            +
            var rcustomProp = /^--/;
         | 
| 27458 | 
            +
             | 
| 27459 | 
            +
             | 
| 27619 27460 | 
             
            var getStyles = function( elem ) {
         | 
| 27620 27461 |  | 
| 27621 | 
            -
            		// Support: IE <=11 only, Firefox <=30 ( | 
| 27462 | 
            +
            		// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)
         | 
| 27622 27463 | 
             
            		// IE throws on elements created in popups
         | 
| 27623 27464 | 
             
            		// FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
         | 
| 27624 27465 | 
             
            		var view = elem.ownerDocument.defaultView;
         | 
| @@ -27718,7 +27559,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); | |
| 27718 27559 | 
             
            	}
         | 
| 27719 27560 |  | 
| 27720 27561 | 
             
            	// Support: IE <=9 - 11 only
         | 
| 27721 | 
            -
            	// Style of cloned element affects source element cloned ( | 
| 27562 | 
            +
            	// Style of cloned element affects source element cloned (trac-8908)
         | 
| 27722 27563 | 
             
            	div.style.backgroundClip = "content-box";
         | 
| 27723 27564 | 
             
            	div.cloneNode( true ).style.backgroundClip = "";
         | 
| 27724 27565 | 
             
            	support.clearCloneStyle = div.style.backgroundClip === "content-box";
         | 
| @@ -27762,7 +27603,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); | |
| 27762 27603 | 
             
            				trChild = document.createElement( "div" );
         | 
| 27763 27604 |  | 
| 27764 27605 | 
             
            				table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate";
         | 
| 27765 | 
            -
            				tr.style.cssText = "border:1px solid";
         | 
| 27606 | 
            +
            				tr.style.cssText = "box-sizing:content-box;border:1px solid";
         | 
| 27766 27607 |  | 
| 27767 27608 | 
             
            				// Support: Chrome 86+
         | 
| 27768 27609 | 
             
            				// Height set through cssText does not get applied.
         | 
| @@ -27774,7 +27615,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); | |
| 27774 27615 | 
             
            				// In our bodyBackground.html iframe,
         | 
| 27775 27616 | 
             
            				// display for all div elements is set to "inline",
         | 
| 27776 27617 | 
             
            				// which causes a problem only in Android 8 Chrome 86.
         | 
| 27777 | 
            -
            				// Ensuring the div is display: block
         | 
| 27618 | 
            +
            				// Ensuring the div is `display: block`
         | 
| 27778 27619 | 
             
            				// gets around this issue.
         | 
| 27779 27620 | 
             
            				trChild.style.display = "block";
         | 
| 27780 27621 |  | 
| @@ -27798,6 +27639,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); | |
| 27798 27639 |  | 
| 27799 27640 | 
             
            function curCSS( elem, name, computed ) {
         | 
| 27800 27641 | 
             
            	var width, minWidth, maxWidth, ret,
         | 
| 27642 | 
            +
            		isCustomProp = rcustomProp.test( name ),
         | 
| 27801 27643 |  | 
| 27802 27644 | 
             
            		// Support: Firefox 51+
         | 
| 27803 27645 | 
             
            		// Retrieving style before computed somehow
         | 
| @@ -27808,11 +27650,42 @@ function curCSS( elem, name, computed ) { | |
| 27808 27650 | 
             
            	computed = computed || getStyles( elem );
         | 
| 27809 27651 |  | 
| 27810 27652 | 
             
            	// getPropertyValue is needed for:
         | 
| 27811 | 
            -
            	//   .css('filter') (IE 9 only,  | 
| 27812 | 
            -
            	//   .css('--customProperty) ( | 
| 27653 | 
            +
            	//   .css('filter') (IE 9 only, trac-12537)
         | 
| 27654 | 
            +
            	//   .css('--customProperty) (gh-3144)
         | 
| 27813 27655 | 
             
            	if ( computed ) {
         | 
| 27656 | 
            +
             | 
| 27657 | 
            +
            		// Support: IE <=9 - 11+
         | 
| 27658 | 
            +
            		// IE only supports `"float"` in `getPropertyValue`; in computed styles
         | 
| 27659 | 
            +
            		// it's only available as `"cssFloat"`. We no longer modify properties
         | 
| 27660 | 
            +
            		// sent to `.css()` apart from camelCasing, so we need to check both.
         | 
| 27661 | 
            +
            		// Normally, this would create difference in behavior: if
         | 
| 27662 | 
            +
            		// `getPropertyValue` returns an empty string, the value returned
         | 
| 27663 | 
            +
            		// by `.css()` would be `undefined`. This is usually the case for
         | 
| 27664 | 
            +
            		// disconnected elements. However, in IE even disconnected elements
         | 
| 27665 | 
            +
            		// with no styles return `"none"` for `getPropertyValue( "float" )`
         | 
| 27814 27666 | 
             
            		ret = computed.getPropertyValue( name ) || computed[ name ];
         | 
| 27815 27667 |  | 
| 27668 | 
            +
            		if ( isCustomProp && ret ) {
         | 
| 27669 | 
            +
             | 
| 27670 | 
            +
            			// Support: Firefox 105+, Chrome <=105+
         | 
| 27671 | 
            +
            			// Spec requires trimming whitespace for custom properties (gh-4926).
         | 
| 27672 | 
            +
            			// Firefox only trims leading whitespace. Chrome just collapses
         | 
| 27673 | 
            +
            			// both leading & trailing whitespace to a single space.
         | 
| 27674 | 
            +
            			//
         | 
| 27675 | 
            +
            			// Fall back to `undefined` if empty string returned.
         | 
| 27676 | 
            +
            			// This collapses a missing definition with property defined
         | 
| 27677 | 
            +
            			// and set to an empty string but there's no standard API
         | 
| 27678 | 
            +
            			// allowing us to differentiate them without a performance penalty
         | 
| 27679 | 
            +
            			// and returning `undefined` aligns with older jQuery.
         | 
| 27680 | 
            +
            			//
         | 
| 27681 | 
            +
            			// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED
         | 
| 27682 | 
            +
            			// as whitespace while CSS does not, but this is not a problem
         | 
| 27683 | 
            +
            			// because CSS preprocessing replaces them with U+000A LINE FEED
         | 
| 27684 | 
            +
            			// (which *is* CSS whitespace)
         | 
| 27685 | 
            +
            			// https://www.w3.org/TR/css-syntax-3/#input-preprocessing
         | 
| 27686 | 
            +
            			ret = ret.replace( rtrimCSS, "$1" ) || undefined;
         | 
| 27687 | 
            +
            		}
         | 
| 27688 | 
            +
             | 
| 27816 27689 | 
             
            		if ( ret === "" && !isAttached( elem ) ) {
         | 
| 27817 27690 | 
             
            			ret = jQuery.style( elem, name );
         | 
| 27818 27691 | 
             
            		}
         | 
| @@ -27908,7 +27781,6 @@ var | |
| 27908 27781 | 
             
            	// except "table", "table-cell", or "table-caption"
         | 
| 27909 27782 | 
             
            	// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
         | 
| 27910 27783 | 
             
            	rdisplayswap = /^(none|table(?!-c[ea]).+)/,
         | 
| 27911 | 
            -
            	rcustomProp = /^--/,
         | 
| 27912 27784 | 
             
            	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
         | 
| 27913 27785 | 
             
            	cssNormalTransform = {
         | 
| 27914 27786 | 
             
            		letterSpacing: "0",
         | 
| @@ -27930,7 +27802,8 @@ function setPositiveNumber( _elem, value, subtract ) { | |
| 27930 27802 | 
             
            function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {
         | 
| 27931 27803 | 
             
            	var i = dimension === "width" ? 1 : 0,
         | 
| 27932 27804 | 
             
            		extra = 0,
         | 
| 27933 | 
            -
            		delta = 0 | 
| 27805 | 
            +
            		delta = 0,
         | 
| 27806 | 
            +
            		marginDelta = 0;
         | 
| 27934 27807 |  | 
| 27935 27808 | 
             
            	// Adjustment may not be necessary
         | 
| 27936 27809 | 
             
            	if ( box === ( isBorderBox ? "border" : "content" ) ) {
         | 
| @@ -27940,8 +27813,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed | |
| 27940 27813 | 
             
            	for ( ; i < 4; i += 2 ) {
         | 
| 27941 27814 |  | 
| 27942 27815 | 
             
            		// Both box models exclude margin
         | 
| 27816 | 
            +
            		// Count margin delta separately to only add it after scroll gutter adjustment.
         | 
| 27817 | 
            +
            		// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).
         | 
| 27943 27818 | 
             
            		if ( box === "margin" ) {
         | 
| 27944 | 
            -
            			 | 
| 27819 | 
            +
            			marginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );
         | 
| 27945 27820 | 
             
            		}
         | 
| 27946 27821 |  | 
| 27947 27822 | 
             
            		// If we get here with a content-box, we're seeking "padding" or "border" or "margin"
         | 
| @@ -27992,7 +27867,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed | |
| 27992 27867 | 
             
            		) ) || 0;
         | 
| 27993 27868 | 
             
            	}
         | 
| 27994 27869 |  | 
| 27995 | 
            -
            	return delta;
         | 
| 27870 | 
            +
            	return delta + marginDelta;
         | 
| 27996 27871 | 
             
            }
         | 
| 27997 27872 |  | 
| 27998 27873 | 
             
            function getWidthOrHeight( elem, dimension, extra ) {
         | 
| @@ -28090,26 +27965,35 @@ jQuery.extend( { | |
| 28090 27965 |  | 
| 28091 27966 | 
             
            	// Don't automatically add "px" to these possibly-unitless properties
         | 
| 28092 27967 | 
             
            	cssNumber: {
         | 
| 28093 | 
            -
            		 | 
| 28094 | 
            -
            		 | 
| 28095 | 
            -
            		 | 
| 28096 | 
            -
            		 | 
| 28097 | 
            -
            		 | 
| 28098 | 
            -
            		 | 
| 28099 | 
            -
            		 | 
| 28100 | 
            -
            		 | 
| 28101 | 
            -
            		 | 
| 28102 | 
            -
            		 | 
| 28103 | 
            -
            		 | 
| 28104 | 
            -
            		 | 
| 28105 | 
            -
            		 | 
| 28106 | 
            -
            		 | 
| 28107 | 
            -
            		 | 
| 28108 | 
            -
            		 | 
| 28109 | 
            -
            		 | 
| 28110 | 
            -
            		 | 
| 28111 | 
            -
            		 | 
| 28112 | 
            -
            		 | 
| 27968 | 
            +
            		animationIterationCount: true,
         | 
| 27969 | 
            +
            		aspectRatio: true,
         | 
| 27970 | 
            +
            		borderImageSlice: true,
         | 
| 27971 | 
            +
            		columnCount: true,
         | 
| 27972 | 
            +
            		flexGrow: true,
         | 
| 27973 | 
            +
            		flexShrink: true,
         | 
| 27974 | 
            +
            		fontWeight: true,
         | 
| 27975 | 
            +
            		gridArea: true,
         | 
| 27976 | 
            +
            		gridColumn: true,
         | 
| 27977 | 
            +
            		gridColumnEnd: true,
         | 
| 27978 | 
            +
            		gridColumnStart: true,
         | 
| 27979 | 
            +
            		gridRow: true,
         | 
| 27980 | 
            +
            		gridRowEnd: true,
         | 
| 27981 | 
            +
            		gridRowStart: true,
         | 
| 27982 | 
            +
            		lineHeight: true,
         | 
| 27983 | 
            +
            		opacity: true,
         | 
| 27984 | 
            +
            		order: true,
         | 
| 27985 | 
            +
            		orphans: true,
         | 
| 27986 | 
            +
            		scale: true,
         | 
| 27987 | 
            +
            		widows: true,
         | 
| 27988 | 
            +
            		zIndex: true,
         | 
| 27989 | 
            +
            		zoom: true,
         | 
| 27990 | 
            +
             | 
| 27991 | 
            +
            		// SVG-related
         | 
| 27992 | 
            +
            		fillOpacity: true,
         | 
| 27993 | 
            +
            		floodOpacity: true,
         | 
| 27994 | 
            +
            		stopOpacity: true,
         | 
| 27995 | 
            +
            		strokeMiterlimit: true,
         | 
| 27996 | 
            +
            		strokeOpacity: true
         | 
| 28113 27997 | 
             
            	},
         | 
| 28114 27998 |  | 
| 28115 27999 | 
             
            	// Add in properties whose names you wish to fix before
         | 
| @@ -28144,15 +28028,15 @@ jQuery.extend( { | |
| 28144 28028 | 
             
            		if ( value !== undefined ) {
         | 
| 28145 28029 | 
             
            			type = typeof value;
         | 
| 28146 28030 |  | 
| 28147 | 
            -
            			// Convert "+=" or "-=" to relative numbers ( | 
| 28031 | 
            +
            			// Convert "+=" or "-=" to relative numbers (trac-7345)
         | 
| 28148 28032 | 
             
            			if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
         | 
| 28149 28033 | 
             
            				value = adjustCSS( elem, name, ret );
         | 
| 28150 28034 |  | 
| 28151 | 
            -
            				// Fixes bug  | 
| 28035 | 
            +
            				// Fixes bug trac-9237
         | 
| 28152 28036 | 
             
            				type = "number";
         | 
| 28153 28037 | 
             
            			}
         | 
| 28154 28038 |  | 
| 28155 | 
            -
            			// Make sure that null and NaN values aren't set ( | 
| 28039 | 
            +
            			// Make sure that null and NaN values aren't set (trac-7116)
         | 
| 28156 28040 | 
             
            			if ( value == null || value !== value ) {
         | 
| 28157 28041 | 
             
            				return;
         | 
| 28158 28042 | 
             
            			}
         | 
| @@ -28776,7 +28660,7 @@ function Animation( elem, properties, options ) { | |
| 28776 28660 | 
             
            				remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
         | 
| 28777 28661 |  | 
| 28778 28662 | 
             
            				// Support: Android 2.3 only
         | 
| 28779 | 
            -
            				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` ( | 
| 28663 | 
            +
            				// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)
         | 
| 28780 28664 | 
             
            				temp = remaining / animation.duration || 0,
         | 
| 28781 28665 | 
             
            				percent = 1 - temp,
         | 
| 28782 28666 | 
             
            				index = 0,
         | 
| @@ -29166,7 +29050,6 @@ jQuery.fx.speeds = { | |
| 29166 29050 |  | 
| 29167 29051 |  | 
| 29168 29052 | 
             
            // Based off of the plugin by Clint Helfers, with permission.
         | 
| 29169 | 
            -
            // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/
         | 
| 29170 29053 | 
             
            jQuery.fn.delay = function( time, type ) {
         | 
| 29171 29054 | 
             
            	time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
         | 
| 29172 29055 | 
             
            	type = type || "fx";
         | 
| @@ -29391,8 +29274,7 @@ jQuery.extend( { | |
| 29391 29274 | 
             
            				// Support: IE <=9 - 11 only
         | 
| 29392 29275 | 
             
            				// elem.tabIndex doesn't always return the
         | 
| 29393 29276 | 
             
            				// correct value when it hasn't been explicitly set
         | 
| 29394 | 
            -
            				//  | 
| 29395 | 
            -
            				// Use proper attribute retrieval(#12072)
         | 
| 29277 | 
            +
            				// Use proper attribute retrieval (trac-12072)
         | 
| 29396 29278 | 
             
            				var tabindex = jQuery.find.attr( elem, "tabindex" );
         | 
| 29397 29279 |  | 
| 29398 29280 | 
             
            				if ( tabindex ) {
         | 
| @@ -29496,8 +29378,7 @@ function classesToArray( value ) { | |
| 29496 29378 |  | 
| 29497 29379 | 
             
            jQuery.fn.extend( {
         | 
| 29498 29380 | 
             
            	addClass: function( value ) {
         | 
| 29499 | 
            -
            		var  | 
| 29500 | 
            -
            			i = 0;
         | 
| 29381 | 
            +
            		var classNames, cur, curValue, className, i, finalValue;
         | 
| 29501 29382 |  | 
| 29502 29383 | 
             
            		if ( isFunction( value ) ) {
         | 
| 29503 29384 | 
             
            			return this.each( function( j ) {
         | 
| @@ -29505,36 +29386,35 @@ jQuery.fn.extend( { | |
| 29505 29386 | 
             
            			} );
         | 
| 29506 29387 | 
             
            		}
         | 
| 29507 29388 |  | 
| 29508 | 
            -
            		 | 
| 29389 | 
            +
            		classNames = classesToArray( value );
         | 
| 29509 29390 |  | 
| 29510 | 
            -
            		if (  | 
| 29511 | 
            -
            			 | 
| 29512 | 
            -
            				curValue = getClass(  | 
| 29513 | 
            -
            				cur =  | 
| 29391 | 
            +
            		if ( classNames.length ) {
         | 
| 29392 | 
            +
            			return this.each( function() {
         | 
| 29393 | 
            +
            				curValue = getClass( this );
         | 
| 29394 | 
            +
            				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
         | 
| 29514 29395 |  | 
| 29515 29396 | 
             
            				if ( cur ) {
         | 
| 29516 | 
            -
            					 | 
| 29517 | 
            -
             | 
| 29518 | 
            -
            						if ( cur.indexOf( " " +  | 
| 29519 | 
            -
            							cur +=  | 
| 29397 | 
            +
            					for ( i = 0; i < classNames.length; i++ ) {
         | 
| 29398 | 
            +
            						className = classNames[ i ];
         | 
| 29399 | 
            +
            						if ( cur.indexOf( " " + className + " " ) < 0 ) {
         | 
| 29400 | 
            +
            							cur += className + " ";
         | 
| 29520 29401 | 
             
            						}
         | 
| 29521 29402 | 
             
            					}
         | 
| 29522 29403 |  | 
| 29523 29404 | 
             
            					// Only assign if different to avoid unneeded rendering.
         | 
| 29524 29405 | 
             
            					finalValue = stripAndCollapse( cur );
         | 
| 29525 29406 | 
             
            					if ( curValue !== finalValue ) {
         | 
| 29526 | 
            -
            						 | 
| 29407 | 
            +
            						this.setAttribute( "class", finalValue );
         | 
| 29527 29408 | 
             
            					}
         | 
| 29528 29409 | 
             
            				}
         | 
| 29529 | 
            -
            			}
         | 
| 29410 | 
            +
            			} );
         | 
| 29530 29411 | 
             
            		}
         | 
| 29531 29412 |  | 
| 29532 29413 | 
             
            		return this;
         | 
| 29533 29414 | 
             
            	},
         | 
| 29534 29415 |  | 
| 29535 29416 | 
             
            	removeClass: function( value ) {
         | 
| 29536 | 
            -
            		var  | 
| 29537 | 
            -
            			i = 0;
         | 
| 29417 | 
            +
            		var classNames, cur, curValue, className, i, finalValue;
         | 
| 29538 29418 |  | 
| 29539 29419 | 
             
            		if ( isFunction( value ) ) {
         | 
| 29540 29420 | 
             
            			return this.each( function( j ) {
         | 
| @@ -29546,45 +29426,42 @@ jQuery.fn.extend( { | |
| 29546 29426 | 
             
            			return this.attr( "class", "" );
         | 
| 29547 29427 | 
             
            		}
         | 
| 29548 29428 |  | 
| 29549 | 
            -
            		 | 
| 29429 | 
            +
            		classNames = classesToArray( value );
         | 
| 29550 29430 |  | 
| 29551 | 
            -
            		if (  | 
| 29552 | 
            -
            			 | 
| 29553 | 
            -
            				curValue = getClass(  | 
| 29431 | 
            +
            		if ( classNames.length ) {
         | 
| 29432 | 
            +
            			return this.each( function() {
         | 
| 29433 | 
            +
            				curValue = getClass( this );
         | 
| 29554 29434 |  | 
| 29555 29435 | 
             
            				// This expression is here for better compressibility (see addClass)
         | 
| 29556 | 
            -
            				cur =  | 
| 29436 | 
            +
            				cur = this.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " );
         | 
| 29557 29437 |  | 
| 29558 29438 | 
             
            				if ( cur ) {
         | 
| 29559 | 
            -
            					 | 
| 29560 | 
            -
             | 
| 29439 | 
            +
            					for ( i = 0; i < classNames.length; i++ ) {
         | 
| 29440 | 
            +
            						className = classNames[ i ];
         | 
| 29561 29441 |  | 
| 29562 29442 | 
             
            						// Remove *all* instances
         | 
| 29563 | 
            -
            						while ( cur.indexOf( " " +  | 
| 29564 | 
            -
            							cur = cur.replace( " " +  | 
| 29443 | 
            +
            						while ( cur.indexOf( " " + className + " " ) > -1 ) {
         | 
| 29444 | 
            +
            							cur = cur.replace( " " + className + " ", " " );
         | 
| 29565 29445 | 
             
            						}
         | 
| 29566 29446 | 
             
            					}
         | 
| 29567 29447 |  | 
| 29568 29448 | 
             
            					// Only assign if different to avoid unneeded rendering.
         | 
| 29569 29449 | 
             
            					finalValue = stripAndCollapse( cur );
         | 
| 29570 29450 | 
             
            					if ( curValue !== finalValue ) {
         | 
| 29571 | 
            -
            						 | 
| 29451 | 
            +
            						this.setAttribute( "class", finalValue );
         | 
| 29572 29452 | 
             
            					}
         | 
| 29573 29453 | 
             
            				}
         | 
| 29574 | 
            -
            			}
         | 
| 29454 | 
            +
            			} );
         | 
| 29575 29455 | 
             
            		}
         | 
| 29576 29456 |  | 
| 29577 29457 | 
             
            		return this;
         | 
| 29578 29458 | 
             
            	},
         | 
| 29579 29459 |  | 
| 29580 29460 | 
             
            	toggleClass: function( value, stateVal ) {
         | 
| 29581 | 
            -
            		var  | 
| 29461 | 
            +
            		var classNames, className, i, self,
         | 
| 29462 | 
            +
            			type = typeof value,
         | 
| 29582 29463 | 
             
            			isValidValue = type === "string" || Array.isArray( value );
         | 
| 29583 29464 |  | 
| 29584 | 
            -
            		if ( typeof stateVal === "boolean" && isValidValue ) {
         | 
| 29585 | 
            -
            			return stateVal ? this.addClass( value ) : this.removeClass( value );
         | 
| 29586 | 
            -
            		}
         | 
| 29587 | 
            -
             | 
| 29588 29465 | 
             
            		if ( isFunction( value ) ) {
         | 
| 29589 29466 | 
             
            			return this.each( function( i ) {
         | 
| 29590 29467 | 
             
            				jQuery( this ).toggleClass(
         | 
| @@ -29594,17 +29471,20 @@ jQuery.fn.extend( { | |
| 29594 29471 | 
             
            			} );
         | 
| 29595 29472 | 
             
            		}
         | 
| 29596 29473 |  | 
| 29597 | 
            -
            		 | 
| 29598 | 
            -
            			 | 
| 29474 | 
            +
            		if ( typeof stateVal === "boolean" && isValidValue ) {
         | 
| 29475 | 
            +
            			return stateVal ? this.addClass( value ) : this.removeClass( value );
         | 
| 29476 | 
            +
            		}
         | 
| 29477 | 
            +
             | 
| 29478 | 
            +
            		classNames = classesToArray( value );
         | 
| 29599 29479 |  | 
| 29480 | 
            +
            		return this.each( function() {
         | 
| 29600 29481 | 
             
            			if ( isValidValue ) {
         | 
| 29601 29482 |  | 
| 29602 29483 | 
             
            				// Toggle individual class names
         | 
| 29603 | 
            -
            				i = 0;
         | 
| 29604 29484 | 
             
            				self = jQuery( this );
         | 
| 29605 | 
            -
            				classNames = classesToArray( value );
         | 
| 29606 29485 |  | 
| 29607 | 
            -
            				 | 
| 29486 | 
            +
            				for ( i = 0; i < classNames.length; i++ ) {
         | 
| 29487 | 
            +
            					className = classNames[ i ];
         | 
| 29608 29488 |  | 
| 29609 29489 | 
             
            					// Check each className given, space separated list
         | 
| 29610 29490 | 
             
            					if ( self.hasClass( className ) ) {
         | 
| @@ -29738,7 +29618,7 @@ jQuery.extend( { | |
| 29738 29618 | 
             
            					val :
         | 
| 29739 29619 |  | 
| 29740 29620 | 
             
            					// Support: IE <=10 - 11 only
         | 
| 29741 | 
            -
            					// option.text throws exceptions ( | 
| 29621 | 
            +
            					// option.text throws exceptions (trac-14686, trac-14858)
         | 
| 29742 29622 | 
             
            					// Strip and collapse whitespace
         | 
| 29743 29623 | 
             
            					// https://html.spec.whatwg.org/#strip-and-collapse-whitespace
         | 
| 29744 29624 | 
             
            					stripAndCollapse( jQuery.text( elem ) );
         | 
| @@ -29765,7 +29645,7 @@ jQuery.extend( { | |
| 29765 29645 | 
             
            					option = options[ i ];
         | 
| 29766 29646 |  | 
| 29767 29647 | 
             
            					// Support: IE <=9 only
         | 
| 29768 | 
            -
            					// IE8-9 doesn't update selected after form reset ( | 
| 29648 | 
            +
            					// IE8-9 doesn't update selected after form reset (trac-2551)
         | 
| 29769 29649 | 
             
            					if ( ( option.selected || i === index ) &&
         | 
| 29770 29650 |  | 
| 29771 29651 | 
             
            							// Don't return options that are disabled or in a disabled optgroup
         | 
| @@ -29839,9 +29719,39 @@ jQuery.each( [ "radio", "checkbox" ], function() { | |
| 29839 29719 |  | 
| 29840 29720 |  | 
| 29841 29721 | 
             
            // Return jQuery for attributes-only inclusion
         | 
| 29722 | 
            +
            var location = window.location;
         | 
| 29723 | 
            +
             | 
| 29724 | 
            +
            var nonce = { guid: Date.now() };
         | 
| 29725 | 
            +
             | 
| 29726 | 
            +
            var rquery = ( /\?/ );
         | 
| 29727 | 
            +
             | 
| 29842 29728 |  | 
| 29843 29729 |  | 
| 29844 | 
            -
             | 
| 29730 | 
            +
            // Cross-browser xml parsing
         | 
| 29731 | 
            +
            jQuery.parseXML = function( data ) {
         | 
| 29732 | 
            +
            	var xml, parserErrorElem;
         | 
| 29733 | 
            +
            	if ( !data || typeof data !== "string" ) {
         | 
| 29734 | 
            +
            		return null;
         | 
| 29735 | 
            +
            	}
         | 
| 29736 | 
            +
             | 
| 29737 | 
            +
            	// Support: IE 9 - 11 only
         | 
| 29738 | 
            +
            	// IE throws on parseFromString with invalid input.
         | 
| 29739 | 
            +
            	try {
         | 
| 29740 | 
            +
            		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
         | 
| 29741 | 
            +
            	} catch ( e ) {}
         | 
| 29742 | 
            +
             | 
| 29743 | 
            +
            	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
         | 
| 29744 | 
            +
            	if ( !xml || parserErrorElem ) {
         | 
| 29745 | 
            +
            		jQuery.error( "Invalid XML: " + (
         | 
| 29746 | 
            +
            			parserErrorElem ?
         | 
| 29747 | 
            +
            				jQuery.map( parserErrorElem.childNodes, function( el ) {
         | 
| 29748 | 
            +
            					return el.textContent;
         | 
| 29749 | 
            +
            				} ).join( "\n" ) :
         | 
| 29750 | 
            +
            				data
         | 
| 29751 | 
            +
            		) );
         | 
| 29752 | 
            +
            	}
         | 
| 29753 | 
            +
            	return xml;
         | 
| 29754 | 
            +
            };
         | 
| 29845 29755 |  | 
| 29846 29756 |  | 
| 29847 29757 | 
             
            var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,
         | 
| @@ -29908,8 +29818,8 @@ jQuery.extend( jQuery.event, { | |
| 29908 29818 | 
             
            			return;
         | 
| 29909 29819 | 
             
            		}
         | 
| 29910 29820 |  | 
| 29911 | 
            -
            		// Determine event propagation path in advance, per W3C events spec ( | 
| 29912 | 
            -
            		// Bubble up to document, then to window; watch for a global ownerDocument var ( | 
| 29821 | 
            +
            		// Determine event propagation path in advance, per W3C events spec (trac-9951)
         | 
| 29822 | 
            +
            		// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)
         | 
| 29913 29823 | 
             
            		if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {
         | 
| 29914 29824 |  | 
| 29915 29825 | 
             
            			bubbleType = special.delegateType || type;
         | 
| @@ -29961,7 +29871,7 @@ jQuery.extend( jQuery.event, { | |
| 29961 29871 | 
             
            				acceptData( elem ) ) {
         | 
| 29962 29872 |  | 
| 29963 29873 | 
             
            				// Call a native DOM method on the target with the same name as the event.
         | 
| 29964 | 
            -
            				// Don't do default actions on window, that's where global variables be ( | 
| 29874 | 
            +
            				// Don't do default actions on window, that's where global variables be (trac-6170)
         | 
| 29965 29875 | 
             
            				if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {
         | 
| 29966 29876 |  | 
| 29967 29877 | 
             
            					// Don't re-trigger an onFOO event when we call its FOO() method
         | 
| @@ -30029,85 +29939,6 @@ jQuery.fn.extend( { | |
| 30029 29939 | 
             
            } );
         | 
| 30030 29940 |  | 
| 30031 29941 |  | 
| 30032 | 
            -
            // Support: Firefox <=44
         | 
| 30033 | 
            -
            // Firefox doesn't have focus(in | out) events
         | 
| 30034 | 
            -
            // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787
         | 
| 30035 | 
            -
            //
         | 
| 30036 | 
            -
            // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1
         | 
| 30037 | 
            -
            // focus(in | out) events fire after focus & blur events,
         | 
| 30038 | 
            -
            // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order
         | 
| 30039 | 
            -
            // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857
         | 
| 30040 | 
            -
            if ( !support.focusin ) {
         | 
| 30041 | 
            -
            	jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) {
         | 
| 30042 | 
            -
             | 
| 30043 | 
            -
            		// Attach a single capturing handler on the document while someone wants focusin/focusout
         | 
| 30044 | 
            -
            		var handler = function( event ) {
         | 
| 30045 | 
            -
            			jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );
         | 
| 30046 | 
            -
            		};
         | 
| 30047 | 
            -
             | 
| 30048 | 
            -
            		jQuery.event.special[ fix ] = {
         | 
| 30049 | 
            -
            			setup: function() {
         | 
| 30050 | 
            -
             | 
| 30051 | 
            -
            				// Handle: regular nodes (via `this.ownerDocument`), window
         | 
| 30052 | 
            -
            				// (via `this.document`) & document (via `this`).
         | 
| 30053 | 
            -
            				var doc = this.ownerDocument || this.document || this,
         | 
| 30054 | 
            -
            					attaches = dataPriv.access( doc, fix );
         | 
| 30055 | 
            -
             | 
| 30056 | 
            -
            				if ( !attaches ) {
         | 
| 30057 | 
            -
            					doc.addEventListener( orig, handler, true );
         | 
| 30058 | 
            -
            				}
         | 
| 30059 | 
            -
            				dataPriv.access( doc, fix, ( attaches || 0 ) + 1 );
         | 
| 30060 | 
            -
            			},
         | 
| 30061 | 
            -
            			teardown: function() {
         | 
| 30062 | 
            -
            				var doc = this.ownerDocument || this.document || this,
         | 
| 30063 | 
            -
            					attaches = dataPriv.access( doc, fix ) - 1;
         | 
| 30064 | 
            -
             | 
| 30065 | 
            -
            				if ( !attaches ) {
         | 
| 30066 | 
            -
            					doc.removeEventListener( orig, handler, true );
         | 
| 30067 | 
            -
            					dataPriv.remove( doc, fix );
         | 
| 30068 | 
            -
             | 
| 30069 | 
            -
            				} else {
         | 
| 30070 | 
            -
            					dataPriv.access( doc, fix, attaches );
         | 
| 30071 | 
            -
            				}
         | 
| 30072 | 
            -
            			}
         | 
| 30073 | 
            -
            		};
         | 
| 30074 | 
            -
            	} );
         | 
| 30075 | 
            -
            }
         | 
| 30076 | 
            -
            var location = window.location;
         | 
| 30077 | 
            -
             | 
| 30078 | 
            -
            var nonce = { guid: Date.now() };
         | 
| 30079 | 
            -
             | 
| 30080 | 
            -
            var rquery = ( /\?/ );
         | 
| 30081 | 
            -
             | 
| 30082 | 
            -
             | 
| 30083 | 
            -
             | 
| 30084 | 
            -
            // Cross-browser xml parsing
         | 
| 30085 | 
            -
            jQuery.parseXML = function( data ) {
         | 
| 30086 | 
            -
            	var xml, parserErrorElem;
         | 
| 30087 | 
            -
            	if ( !data || typeof data !== "string" ) {
         | 
| 30088 | 
            -
            		return null;
         | 
| 30089 | 
            -
            	}
         | 
| 30090 | 
            -
             | 
| 30091 | 
            -
            	// Support: IE 9 - 11 only
         | 
| 30092 | 
            -
            	// IE throws on parseFromString with invalid input.
         | 
| 30093 | 
            -
            	try {
         | 
| 30094 | 
            -
            		xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" );
         | 
| 30095 | 
            -
            	} catch ( e ) {}
         | 
| 30096 | 
            -
             | 
| 30097 | 
            -
            	parserErrorElem = xml && xml.getElementsByTagName( "parsererror" )[ 0 ];
         | 
| 30098 | 
            -
            	if ( !xml || parserErrorElem ) {
         | 
| 30099 | 
            -
            		jQuery.error( "Invalid XML: " + (
         | 
| 30100 | 
            -
            			parserErrorElem ?
         | 
| 30101 | 
            -
            				jQuery.map( parserErrorElem.childNodes, function( el ) {
         | 
| 30102 | 
            -
            					return el.textContent;
         | 
| 30103 | 
            -
            				} ).join( "\n" ) :
         | 
| 30104 | 
            -
            				data
         | 
| 30105 | 
            -
            		) );
         | 
| 30106 | 
            -
            	}
         | 
| 30107 | 
            -
            	return xml;
         | 
| 30108 | 
            -
            };
         | 
| 30109 | 
            -
             | 
| 30110 | 
            -
             | 
| 30111 29942 | 
             
            var
         | 
| 30112 29943 | 
             
            	rbracket = /\[\]$/,
         | 
| 30113 29944 | 
             
            	rCRLF = /\r?\n/g,
         | 
| @@ -30235,7 +30066,7 @@ var | |
| 30235 30066 | 
             
            	rantiCache = /([?&])_=[^&]*/,
         | 
| 30236 30067 | 
             
            	rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg,
         | 
| 30237 30068 |  | 
| 30238 | 
            -
            	//  | 
| 30069 | 
            +
            	// trac-7653, trac-8125, trac-8152: local protocol detection
         | 
| 30239 30070 | 
             
            	rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,
         | 
| 30240 30071 | 
             
            	rnoContent = /^(?:GET|HEAD)$/,
         | 
| 30241 30072 | 
             
            	rprotocol = /^\/\//,
         | 
| @@ -30258,7 +30089,7 @@ var | |
| 30258 30089 | 
             
            	 */
         | 
| 30259 30090 | 
             
            	transports = {},
         | 
| 30260 30091 |  | 
| 30261 | 
            -
            	// Avoid comment-prolog char sequence ( | 
| 30092 | 
            +
            	// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression
         | 
| 30262 30093 | 
             
            	allTypes = "*/".concat( "*" ),
         | 
| 30263 30094 |  | 
| 30264 30095 | 
             
            	// Anchor tag for parsing the document origin
         | 
| @@ -30329,7 +30160,7 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX | |
| 30329 30160 |  | 
| 30330 30161 | 
             
            // A special extend for ajax options
         | 
| 30331 30162 | 
             
            // that takes "flat" options (not to be deep extended)
         | 
| 30332 | 
            -
            // Fixes  | 
| 30163 | 
            +
            // Fixes trac-9887
         | 
| 30333 30164 | 
             
            function ajaxExtend( target, src ) {
         | 
| 30334 30165 | 
             
            	var key, deep,
         | 
| 30335 30166 | 
             
            		flatOptions = jQuery.ajaxSettings.flatOptions || {};
         | 
| @@ -30740,12 +30571,12 @@ jQuery.extend( { | |
| 30740 30571 | 
             
            		deferred.promise( jqXHR );
         | 
| 30741 30572 |  | 
| 30742 30573 | 
             
            		// Add protocol if not provided (prefilters might expect it)
         | 
| 30743 | 
            -
            		// Handle falsy url in the settings object ( | 
| 30574 | 
            +
            		// Handle falsy url in the settings object (trac-10093: consistency with old signature)
         | 
| 30744 30575 | 
             
            		// We also use the url parameter if available
         | 
| 30745 30576 | 
             
            		s.url = ( ( url || s.url || location.href ) + "" )
         | 
| 30746 30577 | 
             
            			.replace( rprotocol, location.protocol + "//" );
         | 
| 30747 30578 |  | 
| 30748 | 
            -
            		// Alias method option to type as per ticket  | 
| 30579 | 
            +
            		// Alias method option to type as per ticket trac-12004
         | 
| 30749 30580 | 
             
            		s.type = options.method || options.type || s.method || s.type;
         | 
| 30750 30581 |  | 
| 30751 30582 | 
             
            		// Extract dataTypes list
         | 
| @@ -30788,7 +30619,7 @@ jQuery.extend( { | |
| 30788 30619 | 
             
            		}
         | 
| 30789 30620 |  | 
| 30790 30621 | 
             
            		// We can fire global events as of now if asked to
         | 
| 30791 | 
            -
            		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario ( | 
| 30622 | 
            +
            		// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)
         | 
| 30792 30623 | 
             
            		fireGlobals = jQuery.event && s.global;
         | 
| 30793 30624 |  | 
| 30794 30625 | 
             
            		// Watch for a new set of requests
         | 
| @@ -30817,7 +30648,7 @@ jQuery.extend( { | |
| 30817 30648 | 
             
            			if ( s.data && ( s.processData || typeof s.data === "string" ) ) {
         | 
| 30818 30649 | 
             
            				cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data;
         | 
| 30819 30650 |  | 
| 30820 | 
            -
            				//  | 
| 30651 | 
            +
            				// trac-9682: remove data so that it's not used in an eventual retry
         | 
| 30821 30652 | 
             
            				delete s.data;
         | 
| 30822 30653 | 
             
            			}
         | 
| 30823 30654 |  | 
| @@ -31090,7 +30921,7 @@ jQuery._evalUrl = function( url, options, doc ) { | |
| 31090 30921 | 
             
            	return jQuery.ajax( {
         | 
| 31091 30922 | 
             
            		url: url,
         | 
| 31092 30923 |  | 
| 31093 | 
            -
            		// Make this explicit, since user can override this through ajaxSetup ( | 
| 30924 | 
            +
            		// Make this explicit, since user can override this through ajaxSetup (trac-11264)
         | 
| 31094 30925 | 
             
            		type: "GET",
         | 
| 31095 30926 | 
             
            		dataType: "script",
         | 
| 31096 30927 | 
             
            		cache: true,
         | 
| @@ -31199,7 +31030,7 @@ var xhrSuccessStatus = { | |
| 31199 31030 | 
             
            		0: 200,
         | 
| 31200 31031 |  | 
| 31201 31032 | 
             
            		// Support: IE <=9 only
         | 
| 31202 | 
            -
            		//  | 
| 31033 | 
            +
            		// trac-1450: sometimes IE returns 1223 when it should be 204
         | 
| 31203 31034 | 
             
            		1223: 204
         | 
| 31204 31035 | 
             
            	},
         | 
| 31205 31036 | 
             
            	xhrSupported = jQuery.ajaxSettings.xhr();
         | 
| @@ -31271,7 +31102,7 @@ jQuery.ajaxTransport( function( options ) { | |
| 31271 31102 | 
             
            								} else {
         | 
| 31272 31103 | 
             
            									complete(
         | 
| 31273 31104 |  | 
| 31274 | 
            -
            										// File: protocol always yields status 0; see  | 
| 31105 | 
            +
            										// File: protocol always yields status 0; see trac-8605, trac-14207
         | 
| 31275 31106 | 
             
            										xhr.status,
         | 
| 31276 31107 | 
             
            										xhr.statusText
         | 
| 31277 31108 | 
             
            									);
         | 
| @@ -31332,7 +31163,7 @@ jQuery.ajaxTransport( function( options ) { | |
| 31332 31163 | 
             
            					xhr.send( options.hasContent && options.data || null );
         | 
| 31333 31164 | 
             
            				} catch ( e ) {
         | 
| 31334 31165 |  | 
| 31335 | 
            -
            					//  | 
| 31166 | 
            +
            					// trac-14683: Only rethrow if this hasn't been notified as an error yet
         | 
| 31336 31167 | 
             
            					if ( callback ) {
         | 
| 31337 31168 | 
             
            						throw e;
         | 
| 31338 31169 | 
             
            					}
         | 
| @@ -31952,7 +31783,9 @@ jQuery.fn.extend( { | |
| 31952 31783 | 
             
            	},
         | 
| 31953 31784 |  | 
| 31954 31785 | 
             
            	hover: function( fnOver, fnOut ) {
         | 
| 31955 | 
            -
            		return this | 
| 31786 | 
            +
            		return this
         | 
| 31787 | 
            +
            			.on( "mouseenter", fnOver )
         | 
| 31788 | 
            +
            			.on( "mouseleave", fnOut || fnOver );
         | 
| 31956 31789 | 
             
            	}
         | 
| 31957 31790 | 
             
            } );
         | 
| 31958 31791 |  | 
| @@ -31976,7 +31809,9 @@ jQuery.each( | |
| 31976 31809 |  | 
| 31977 31810 | 
             
            // Support: Android <=4.0 only
         | 
| 31978 31811 | 
             
            // Make sure we trim BOM and NBSP
         | 
| 31979 | 
            -
             | 
| 31812 | 
            +
            // Require that the "whitespace run" starts from a non-whitespace
         | 
| 31813 | 
            +
            // to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position.
         | 
| 31814 | 
            +
            var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
         | 
| 31980 31815 |  | 
| 31981 31816 | 
             
            // Bind a function to a context, optionally partially applying any
         | 
| 31982 31817 | 
             
            // arguments.
         | 
| @@ -32043,7 +31878,7 @@ jQuery.isNumeric = function( obj ) { | |
| 32043 31878 | 
             
            jQuery.trim = function( text ) {
         | 
| 32044 31879 | 
             
            	return text == null ?
         | 
| 32045 31880 | 
             
            		"" :
         | 
| 32046 | 
            -
            		( text + "" ).replace( rtrim, "" );
         | 
| 31881 | 
            +
            		( text + "" ).replace( rtrim, "$1" );
         | 
| 32047 31882 | 
             
            };
         | 
| 32048 31883 |  | 
| 32049 31884 |  | 
| @@ -32091,8 +31926,8 @@ jQuery.noConflict = function( deep ) { | |
| 32091 31926 | 
             
            };
         | 
| 32092 31927 |  | 
| 32093 31928 | 
             
            // Expose jQuery and $ identifiers, even in AMD
         | 
| 32094 | 
            -
            // ( | 
| 32095 | 
            -
            // and CommonJS for browser emulators ( | 
| 31929 | 
            +
            // (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)
         | 
| 31930 | 
            +
            // and CommonJS for browser emulators (trac-13566)
         | 
| 32096 31931 | 
             
            if ( typeof noGlobal === "undefined" ) {
         | 
| 32097 31932 | 
             
            	window.jQuery = window.$ = jQuery;
         | 
| 32098 31933 | 
             
            }
         |