{"version":3,"file":"js/755-1e100d2441bc7c304710.js","mappings":"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","sources":["webpack://digibase/./node_modules/jquery/dist/jquery.js"],"sourcesContent":["/*!\n * jQuery JavaScript Library v1.12.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-05-20T17:17Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\"use strict\";\nvar deletedIds = [];\n\nvar document = window.document;\n\nvar slice = deletedIds.slice;\n\nvar concat = deletedIds.concat;\n\nvar push = deletedIds.push;\n\nvar indexOf = deletedIds.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\tversion = \"1.12.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1, IE<9\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: deletedIds.sort,\n\tsplice: deletedIds.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar src, copyIsArray, copy, name, options, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = jQuery.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\t// See test/unit/core.js for details concerning isFunction.\n\t// Since version 1.3, DOM methods and functions like alert\n\t// aren't supported. They return false on IE (#2968).\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type( obj ) === \"function\";\n\t},\n\n\tisArray: Array.isArray || function( obj ) {\n\t\treturn jQuery.type( obj ) === \"array\";\n\t},\n\n\tisWindow: function( obj ) {\n\t\t/* jshint eqeqeq: false */\n\t\treturn obj != null && obj == obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\tvar realStringObj = obj && obj.toString();\n\t\treturn !jQuery.isArray( obj ) && ( realStringObj - parseFloat( realStringObj ) + 1 ) >= 0;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\tvar key;\n\n\t\t// Must be an Object.\n\t\t// Because of IE, we also have to check the presence of the constructor property.\n\t\t// Make sure that DOM nodes and window objects don't pass through, as well\n\t\tif ( !obj || jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\n\t\t\t// Not own constructor property must be Object\n\t\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj, \"constructor\" ) &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} catch ( e ) {\n\n\t\t\t// IE8,9 Will throw exceptions on certain host objects #9897\n\t\t\treturn false;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Handle iteration over inherited properties before own properties.\n\t\tif ( !support.ownFirst ) {\n\t\t\tfor ( key in obj ) {\n\t\t\t\treturn hasOwn.call( obj, key );\n\t\t\t}\n\t\t}\n\n\t\t// Own properties are enumerated firstly, so to speed up,\n\t\t// if last one is own, then all properties are own.\n\t\tfor ( key in obj ) {}\n\n\t\treturn key === undefined || hasOwn.call( obj, key );\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Workarounds based on findings by Jim Driscoll\n\t// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context\n\tglobalEval: function( data ) {\n\t\tif ( data && jQuery.trim( data ) ) {\n\n\t\t\t// We use execScript on Internet Explorer\n\t\t\t// We use an anonymous function so that context is window\n\t\t\t// rather than jQuery in Firefox\n\t\t\t( window.execScript || function( data ) {\n\t\t\t\twindow[ \"eval\" ].call( window, data ); // jscs:ignore requireDotNotation\n\t\t\t} )( data );\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1, IE<9\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\tvar len;\n\n\t\tif ( arr ) {\n\t\t\tif ( indexOf ) {\n\t\t\t\treturn indexOf.call( arr, elem, i );\n\t\t\t}\n\n\t\t\tlen = arr.length;\n\t\t\ti = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;\n\n\t\t\tfor ( ; i < len; i++ ) {\n\n\t\t\t\t// Skip accessing in sparse arrays\n\t\t\t\tif ( i in arr && arr[ i ] === elem ) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn -1;\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\twhile ( j < len ) {\n\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Workaround casting of .length to NaN on otherwise arraylike objects (e.g., NodeLists)\n\t\tif ( len !== len ) {\n\t\t\twhile ( second[ j ] !== undefined ) {\n\t\t\t\tfirst[ i++ ] = second[ j++ ];\n\t\t\t}\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar args, proxy, tmp;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: function() {\n\t\treturn +( new Date() );\n\t},\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\n// JSHint would error on this code due to the Symbol not being defined in ES5.\n// Defining this global in .jshintrc would create a danger of using the global\n// unguarded in another place, it seems safer to just disable JSHint for these\n// three lines.\n/* jshint ignore: start */\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = deletedIds[ Symbol.iterator ];\n}\n/* jshint ignore: end */\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.1\n * http://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-10-17\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, nidselect, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rescape, \"\\\\$&\" );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\tnidselect = ridentifier.test( nid ) ? \"#\" + nid : \"[id='\" + nid + \"']\";\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = nidselect + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( (parent = document.defaultView) && parent.top !== parent ) {\n\t\t// Support: IE 11\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( document.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\treturn m ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( (oldCache = uniqueCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([\\w-]+)\\s*\\/?>(?:<\\/\\1>|)$/ );\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( jQuery.inArray( elem, qualifier ) > -1 ) !== not;\n\t} );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tret = [],\n\t\t\tself = this,\n\t\t\tlen = self.length;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// init accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector.charAt( 0 ) === \"<\" &&\n\t\t\t\tselector.charAt( selector.length - 1 ) === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\n\t\t\t\t\t\t// Handle the case where IE and Opera return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id !== match[ 2 ] ) {\n\t\t\t\t\t\t\treturn rootjQuery.find( selector );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Otherwise, we inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof root.ready !== \"undefined\" ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar i,\n\t\t\ttargets = jQuery( target, this ),\n\t\t\tlen = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && ( pos ?\n\t\t\t\t\tpos.index( cur ) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within\n\t// the matched set of elements\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn jQuery.inArray( this[ 0 ], jQuery( elem ) );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn jQuery.inArray(\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem, this );\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\tdo {\n\t\tcur = cur[ dir ];\n\t} while ( cur && cur.nodeType !== 1 );\n\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn jQuery.nodeName( elem, \"iframe\" ) ?\n\t\t\telem.contentDocument || elem.contentWindow.document :\n\t\t\tjQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar ret = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tret = jQuery.filter( selector, ret );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tret = jQuery.uniqueSort( ret );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tret = ret.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnotwhite = ( /\\S+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( jQuery.isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && jQuery.type( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = true;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ) ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis === promise ? newDefer.promise() : this,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add( function() {\n\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 ||\n\t\t\t\t( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred.\n\t\t\t// If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) )\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// if we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n} );\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n} );\n\n/**\n * Clean-up method for dom ready events\n */\nfunction detach() {\n\tif ( document.addEventListener ) {\n\t\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\t\twindow.removeEventListener( \"load\", completed );\n\n\t} else {\n\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\twindow.detachEvent( \"onload\", completed );\n\t}\n}\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\n\t// readyState === \"complete\" is good enough for us to call the dom ready in oldIE\n\tif ( document.addEventListener ||\n\t\twindow.event.type === \"load\" ||\n\t\tdocument.readyState === \"complete\" ) {\n\n\t\tdetach();\n\t\tjQuery.ready();\n\t}\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called\n\t\t// after the browser event has already occurred.\n\t\t// Support: IE6-10\n\t\t// Older IE sometimes signals \"interactive\" too soon\n\t\tif ( document.readyState === \"complete\" ||\n\t\t\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\twindow.setTimeout( jQuery.ready );\n\n\t\t// Standards-based browsers support DOMContentLoaded\n\t\t} else if ( document.addEventListener ) {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed );\n\n\t\t// If IE event model is used\n\t\t} else {\n\n\t\t\t// Ensure firing before onload, maybe late but safe also for iframes\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.attachEvent( \"onload\", completed );\n\n\t\t\t// If IE and not a frame\n\t\t\t// continually check to see if the document is ready\n\t\t\tvar top = false;\n\n\t\t\ttry {\n\t\t\t\ttop = window.frameElement == null && document.documentElement;\n\t\t\t} catch ( e ) {}\n\n\t\t\tif ( top && top.doScroll ) {\n\t\t\t\t( function doScrollCheck() {\n\t\t\t\t\tif ( !jQuery.isReady ) {\n\n\t\t\t\t\t\ttry {\n\n\t\t\t\t\t\t\t// Use the trick by Diego Perini\n\t\t\t\t\t\t\t// http://javascript.nwbox.com/IEContentLoaded/\n\t\t\t\t\t\t\ttop.doScroll( \"left\" );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn window.setTimeout( doScrollCheck, 50 );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// detach all dom ready events\n\t\t\t\t\t\tdetach();\n\n\t\t\t\t\t\t// and execute any waiting functions\n\t\t\t\t\t\tjQuery.ready();\n\t\t\t\t\t}\n\t\t\t\t} )();\n\t\t\t}\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Support: IE<9\n// Iteration over object's inherited properties before its own\nvar i;\nfor ( i in jQuery( support ) ) {\n\tbreak;\n}\nsupport.ownFirst = i === \"0\";\n\n// Note: most support tests are defined in their respective modules.\n// false until the test is run\nsupport.inlineBlockNeedsLayout = false;\n\n// Execute ASAP in case we need to set body.style.zoom\njQuery( function() {\n\n\t// Minified: var a,b,c,d\n\tvar val, div, body, container;\n\n\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\tif ( !body || !body.style ) {\n\n\t\t// Return for frameset docs that don't have a body\n\t\treturn;\n\t}\n\n\t// Setup\n\tdiv = document.createElement( \"div\" );\n\tcontainer = document.createElement( \"div\" );\n\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\tbody.appendChild( container ).appendChild( div );\n\n\tif ( typeof div.style.zoom !== \"undefined\" ) {\n\n\t\t// Support: IE<8\n\t\t// Check if natively block-level elements act like inline-block\n\t\t// elements when setting their display to 'inline' and giving\n\t\t// them layout\n\t\tdiv.style.cssText = \"display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1\";\n\n\t\tsupport.inlineBlockNeedsLayout = val = div.offsetWidth === 3;\n\t\tif ( val ) {\n\n\t\t\t// Prevent IE 6 from affecting layout for positioned elements #11048\n\t\t\t// Prevent IE from shrinking the body in IE 7 mode #12869\n\t\t\t// Support: IE<8\n\t\t\tbody.style.zoom = 1;\n\t\t}\n\t}\n\n\tbody.removeChild( container );\n} );\n\n\n( function() {\n\tvar div = document.createElement( \"div\" );\n\n\t// Support: IE<9\n\tsupport.deleteExpando = true;\n\ttry {\n\t\tdelete div.test;\n\t} catch ( e ) {\n\t\tsupport.deleteExpando = false;\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n} )();\nvar acceptData = function( elem ) {\n\tvar noData = jQuery.noData[ ( elem.nodeName + \" \" ).toLowerCase() ],\n\t\tnodeType = +elem.nodeType || 1;\n\n\t// Do not set data on non-element DOM nodes because it will not be cleared (#8335).\n\treturn nodeType !== 1 && nodeType !== 9 ?\n\t\tfalse :\n\n\t\t// Nodes accept data unless otherwise specified; rejection can be conditional\n\t\t!noData || noData !== true && elem.getAttribute( \"classid\" ) === noData;\n};\n\n\n\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\n\t\tvar name = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tjQuery.data( elem, key, data );\n\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\n\treturn data;\n}\n\n// checks a cache object for emptiness\nfunction isEmptyDataObject( obj ) {\n\tvar name;\n\tfor ( name in obj ) {\n\n\t\t// if the public data object is empty, the private is still empty\n\t\tif ( name === \"data\" && jQuery.isEmptyObject( obj[ name ] ) ) {\n\t\t\tcontinue;\n\t\t}\n\t\tif ( name !== \"toJSON\" ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\nfunction internalData( elem, name, data, pvt /* Internal Use Only */ ) {\n\tif ( !acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar ret, thisCache,\n\t\tinternalKey = jQuery.expando,\n\n\t\t// We have to handle DOM nodes and JS objects differently because IE6-7\n\t\t// can't GC object references properly across the DOM-JS boundary\n\t\tisNode = elem.nodeType,\n\n\t\t// Only DOM nodes need the global jQuery cache; JS object data is\n\t\t// attached directly to the object so GC can occur automatically\n\t\tcache = isNode ? jQuery.cache : elem,\n\n\t\t// Only defining an ID for JS objects if its cache already exists allows\n\t\t// the code to shortcut on the same path as a DOM node with no cache\n\t\tid = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;\n\n\t// Avoid doing any more work than we need to when trying to get data on an\n\t// object that has no data at all\n\tif ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&\n\t\tdata === undefined && typeof name === \"string\" ) {\n\t\treturn;\n\t}\n\n\tif ( !id ) {\n\n\t\t// Only DOM nodes need a new unique ID for each element since their data\n\t\t// ends up in the global cache\n\t\tif ( isNode ) {\n\t\t\tid = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;\n\t\t} else {\n\t\t\tid = internalKey;\n\t\t}\n\t}\n\n\tif ( !cache[ id ] ) {\n\n\t\t// Avoid exposing jQuery metadata on plain JS objects when the object\n\t\t// is serialized using JSON.stringify\n\t\tcache[ id ] = isNode ? {} : { toJSON: jQuery.noop };\n\t}\n\n\t// An object can be passed to jQuery.data instead of a key/value pair; this gets\n\t// shallow copied over onto the existing cache\n\tif ( typeof name === \"object\" || typeof name === \"function\" ) {\n\t\tif ( pvt ) {\n\t\t\tcache[ id ] = jQuery.extend( cache[ id ], name );\n\t\t} else {\n\t\t\tcache[ id ].data = jQuery.extend( cache[ id ].data, name );\n\t\t}\n\t}\n\n\tthisCache = cache[ id ];\n\n\t// jQuery data() is stored in a separate object inside the object's internal data\n\t// cache in order to avoid key collisions between internal data and user-defined\n\t// data.\n\tif ( !pvt ) {\n\t\tif ( !thisCache.data ) {\n\t\t\tthisCache.data = {};\n\t\t}\n\n\t\tthisCache = thisCache.data;\n\t}\n\n\tif ( data !== undefined ) {\n\t\tthisCache[ jQuery.camelCase( name ) ] = data;\n\t}\n\n\t// Check for both converted-to-camel and non-converted data property names\n\t// If a data property was specified\n\tif ( typeof name === \"string\" ) {\n\n\t\t// First Try to find as-is property data\n\t\tret = thisCache[ name ];\n\n\t\t// Test for null|undefined property data\n\t\tif ( ret == null ) {\n\n\t\t\t// Try to find the camelCased property\n\t\t\tret = thisCache[ jQuery.camelCase( name ) ];\n\t\t}\n\t} else {\n\t\tret = thisCache;\n\t}\n\n\treturn ret;\n}\n\nfunction internalRemoveData( elem, name, pvt ) {\n\tif ( !acceptData( elem ) ) {\n\t\treturn;\n\t}\n\n\tvar thisCache, i,\n\t\tisNode = elem.nodeType,\n\n\t\t// See jQuery.data for more information\n\t\tcache = isNode ? jQuery.cache : elem,\n\t\tid = isNode ? elem[ jQuery.expando ] : jQuery.expando;\n\n\t// If there is already no cache entry for this object, there is no\n\t// purpose in continuing\n\tif ( !cache[ id ] ) {\n\t\treturn;\n\t}\n\n\tif ( name ) {\n\n\t\tthisCache = pvt ? cache[ id ] : cache[ id ].data;\n\n\t\tif ( thisCache ) {\n\n\t\t\t// Support array or space separated string names for data keys\n\t\t\tif ( !jQuery.isArray( name ) ) {\n\n\t\t\t\t// try the string as a key before any manipulation\n\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\tname = [ name ];\n\t\t\t\t} else {\n\n\t\t\t\t\t// split the camel cased version by spaces unless a key with the spaces exists\n\t\t\t\t\tname = jQuery.camelCase( name );\n\t\t\t\t\tif ( name in thisCache ) {\n\t\t\t\t\t\tname = [ name ];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tname = name.split( \" \" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = name.concat( jQuery.map( name, jQuery.camelCase ) );\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete thisCache[ name[ i ] ];\n\t\t\t}\n\n\t\t\t// If there is no data left in the cache, we want to continue\n\t\t\t// and let the cache object itself get destroyed\n\t\t\tif ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// See jQuery.data for more information\n\tif ( !pvt ) {\n\t\tdelete cache[ id ].data;\n\n\t\t// Don't destroy the parent cache unless the internal data object\n\t\t// had been the only thing left in it\n\t\tif ( !isEmptyDataObject( cache[ id ] ) ) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\t// Destroy the cache\n\tif ( isNode ) {\n\t\tjQuery.cleanData( [ elem ], true );\n\n\t// Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)\n\t/* jshint eqeqeq: false */\n\t} else if ( support.deleteExpando || cache != cache.window ) {\n\t\t/* jshint eqeqeq: true */\n\t\tdelete cache[ id ];\n\n\t// When all else fails, undefined\n\t} else {\n\t\tcache[ id ] = undefined;\n\t}\n}\n\njQuery.extend( {\n\tcache: {},\n\n\t// The following elements (space-suffixed to avoid Object.prototype collisions)\n\t// throw uncatchable exceptions if you attempt to set expando properties\n\tnoData: {\n\t\t\"applet \": true,\n\t\t\"embed \": true,\n\n\t\t// ...but Flash objects (which have this classid) *can* handle expandos\n\t\t\"object \": \"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"\n\t},\n\n\thasData: function( elem ) {\n\t\telem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];\n\t\treturn !!elem && !isEmptyDataObject( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name );\n\t},\n\n\t// For internal use only.\n\t_data: function( elem, name, data ) {\n\t\treturn internalData( elem, name, data, true );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\treturn internalRemoveData( elem, name, true );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Special expections of .data basically thwart jQuery.access,\n\t\t// so implement the relevant behavior ourselves\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = jQuery.data( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !jQuery._data( elem, \"parsedAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tjQuery._data( elem, \"parsedAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tjQuery.data( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn arguments.length > 1 ?\n\n\t\t\t// Sets one value\n\t\t\tthis.each( function() {\n\t\t\t\tjQuery.data( this, key, value );\n\t\t\t} ) :\n\n\t\t\t// Gets one value\n\t\t\t// Try to fetch any internally stored data first\n\t\t\telem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeData( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = jQuery._data( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = jQuery._data( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// not intended for public consumption - generates a queueHooks object,\n\t// or returns the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn jQuery._data( elem, key ) || jQuery._data( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tjQuery._removeData( elem, type + \"queue\" );\n\t\t\t\tjQuery._removeData( elem, key );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = jQuery._data( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\n\n\n( function() {\n\tvar shrinkWrapBlocksVal;\n\n\tsupport.shrinkWrapBlocks = function() {\n\t\tif ( shrinkWrapBlocksVal != null ) {\n\t\t\treturn shrinkWrapBlocksVal;\n\t\t}\n\n\t\t// Will be changed later if needed.\n\t\tshrinkWrapBlocksVal = false;\n\n\t\t// Minified: var b,c,d\n\t\tvar div, body, container;\n\n\t\tbody = document.getElementsByTagName( \"body\" )[ 0 ];\n\t\tif ( !body || !body.style ) {\n\n\t\t\t// Test fired too early or in an unsupported environment, exit.\n\t\t\treturn;\n\t\t}\n\n\t\t// Setup\n\t\tdiv = document.createElement( \"div\" );\n\t\tcontainer = document.createElement( \"div\" );\n\t\tcontainer.style.cssText = \"position:absolute;border:0;width:0;height:0;top:0;left:-9999px\";\n\t\tbody.appendChild( container ).appendChild( div );\n\n\t\t// Support: IE6\n\t\t// Check if elements with layout shrink-wrap their children\n\t\tif ( typeof div.style.zoom !== \"undefined\" ) {\n\n\t\t\t// Reset CSS: box-sizing; display; margin; border\n\t\t\tdiv.style.cssText =\n\n\t\t\t\t// Support: Firefox<29, Android 2.3\n\t\t\t\t// Vendor-prefix box-sizing\n\t\t\t\t\"-webkit-box-sizing:content-box;-moz-box-sizing:content-box;\" +\n\t\t\t\t\"box-sizing:content-box;display:block;margin:0;border:0;\" +\n\t\t\t\t\"padding:1px;width:1px;zoom:1\";\n\t\t\tdiv.appendChild( document.createElement( \"div\" ) ).style.width = \"5px\";\n\t\t\tshrinkWrapBlocksVal = div.offsetWidth !== 3;\n\t\t}\n\n\t\tbody.removeChild( container );\n\n\t\treturn shrinkWrapBlocksVal;\n\t};\n\n} )();\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" ||\n\t\t\t!jQuery.contains( elem.ownerDocument, elem );\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted,\n\t\tscale = 1,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() { return tween.cur(); } :\n\t\t\tfunction() { return jQuery.css( elem, prop, \"\" ); },\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\tdo {\n\n\t\t\t// If previous iteration zeroed out, double until we get *something*.\n\t\t\t// Use string for doubling so we don't accidentally see scale as unchanged below\n\t\t\tscale = scale || \".5\";\n\n\t\t\t// Adjust and apply\n\t\t\tinitialInUnit = initialInUnit / scale;\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Update scale, tolerating zero or NaN from tween.cur()\n\t\t// Break the loop if scale is unchanged or perfect, or if we've just had enough.\n\t\t} while (\n\t\t\tscale !== ( scale = currentValue() / initial ) && scale !== 1 && --maxIterations\n\t\t);\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlength = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ],\n\t\t\t\t\tkey,\n\t\t\t\t\traw ? value : value.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlength ? fn( elems[ 0 ], key ) : emptyGet;\n};\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([\\w:-]+)/ );\n\nvar rscriptType = ( /^$|\\/(?:java|ecma)script/i );\n\nvar rleadingWhitespace = ( /^\\s+/ );\n\nvar nodeNames = \"abbr|article|aside|audio|bdi|canvas|data|datalist|\" +\n\t\t\"details|dialog|figcaption|figure|footer|header|hgroup|main|\" +\n\t\t\"mark|meter|nav|output|picture|progress|section|summary|template|time|video\";\n\n\n\nfunction createSafeFragment( document ) {\n\tvar list = nodeNames.split( \"|\" ),\n\t\tsafeFrag = document.createDocumentFragment();\n\n\tif ( safeFrag.createElement ) {\n\t\twhile ( list.length ) {\n\t\t\tsafeFrag.createElement(\n\t\t\t\tlist.pop()\n\t\t\t);\n\t\t}\n\t}\n\treturn safeFrag;\n}\n\n\n( function() {\n\tvar div = document.createElement( \"div\" ),\n\t\tfragment = document.createDocumentFragment(),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Setup\n\tdiv.innerHTML = \"
a\";\n\n\t// IE strips leading whitespace when .innerHTML is used\n\tsupport.leadingWhitespace = div.firstChild.nodeType === 3;\n\n\t// Make sure that tbody elements aren't automatically inserted\n\t// IE will insert them into empty tables\n\tsupport.tbody = !div.getElementsByTagName( \"tbody\" ).length;\n\n\t// Make sure that link elements get serialized correctly by innerHTML\n\t// This requires a wrapper element in IE\n\tsupport.htmlSerialize = !!div.getElementsByTagName( \"link\" ).length;\n\n\t// Makes sure cloning an html5 element does not cause problems\n\t// Where outerHTML is undefined, this still works\n\tsupport.html5Clone =\n\t\tdocument.createElement( \"nav\" ).cloneNode( true ).outerHTML !== \"<:nav>\";\n\n\t// Check if a disconnected checkbox will retain its checked\n\t// value of true after appended to the DOM (IE6/7)\n\tinput.type = \"checkbox\";\n\tinput.checked = true;\n\tfragment.appendChild( input );\n\tsupport.appendChecked = input.checked;\n\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\t// Support: IE6-IE11+\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// #11217 - WebKit loses check when the name is after the checked attribute\n\tfragment.appendChild( div );\n\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput = document.createElement( \"input\" );\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari 5.1, iOS 5.1, Android 4.x, Android 2.3\n\t// old WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<9\n\t// Cloned elements keep attachEvent handlers, we use addEventListener on IE9+\n\tsupport.noCloneEvent = !!div.addEventListener;\n\n\t// Support: IE<9\n\t// Since attributes and properties are the same in IE,\n\t// cleanData must set properties to undefined rather than use removeAttribute\n\tdiv[ jQuery.expando ] = 1;\n\tsupport.attributes = !div.getAttribute( jQuery.expando );\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\toption: [ 1, \"\" ],\n\tlegend: [ 1, \"
\", \"
\" ],\n\tarea: [ 1, \"\", \"\" ],\n\n\t// Support: IE8\n\tparam: [ 1, \"\", \"\" ],\n\tthead: [ 1, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t// unless wrapped in a div with non-breaking characters in front of it.\n\t_default: support.htmlSerialize ? [ 0, \"\", \"\" ] : [ 1, \"X
\", \"
\" ]\n};\n\n// Support: IE8-IE9\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\tvar elems, elem,\n\t\ti = 0,\n\t\tfound = typeof context.getElementsByTagName !== \"undefined\" ?\n\t\t\tcontext.getElementsByTagName( tag || \"*\" ) :\n\t\t\ttypeof context.querySelectorAll !== \"undefined\" ?\n\t\t\t\tcontext.querySelectorAll( tag || \"*\" ) :\n\t\t\t\tundefined;\n\n\tif ( !found ) {\n\t\tfor ( found = [], elems = context.childNodes || context;\n\t\t\t( elem = elems[ i ] ) != null;\n\t\t\ti++\n\t\t) {\n\t\t\tif ( !tag || jQuery.nodeName( elem, tag ) ) {\n\t\t\t\tfound.push( elem );\n\t\t\t} else {\n\t\t\t\tjQuery.merge( found, getAll( elem, tag ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn tag === undefined || tag && jQuery.nodeName( context, tag ) ?\n\t\tjQuery.merge( [ context ], found ) :\n\t\tfound;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar elem,\n\t\ti = 0;\n\tfor ( ; ( elem = elems[ i ] ) != null; i++ ) {\n\t\tjQuery._data(\n\t\t\telem,\n\t\t\t\"globalEval\",\n\t\t\t!refElements || jQuery._data( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/,\n\trtbody = / from table fragments\n\t\t\t\tif ( !support.tbody ) {\n\n\t\t\t\t\t// String was a , *may* have spurious \n\t\t\t\t\telem = tag === \"table\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\ttmp.firstChild :\n\n\t\t\t\t\t\t// String was a bare or \n\t\t\t\t\t\twrap[ 1 ] === \"
\" && !rtbody.test( elem ) ?\n\t\t\t\t\t\t\ttmp :\n\t\t\t\t\t\t\t0;\n\n\t\t\t\t\tj = elem && elem.childNodes.length;\n\t\t\t\t\twhile ( j-- ) {\n\t\t\t\t\t\tif ( jQuery.nodeName( ( tbody = elem.childNodes[ j ] ), \"tbody\" ) &&\n\t\t\t\t\t\t\t!tbody.childNodes.length ) {\n\n\t\t\t\t\t\t\telem.removeChild( tbody );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Fix #12392 for WebKit and IE > 9\n\t\t\t\ttmp.textContent = \"\";\n\n\t\t\t\t// Fix #12392 for oldIE\n\t\t\t\twhile ( tmp.firstChild ) {\n\t\t\t\t\ttmp.removeChild( tmp.firstChild );\n\t\t\t\t}\n\n\t\t\t\t// Remember the top-level container for proper cleanup\n\t\t\t\ttmp = safe.lastChild;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Fix #11356: Clear elements from fragment\n\tif ( tmp ) {\n\t\tsafe.removeChild( tmp );\n\t}\n\n\t// Reset defaultChecked for any radios and checkboxes\n\t// about to be appended to the DOM in IE 6/7 (#8060)\n\tif ( !support.appendChecked ) {\n\t\tjQuery.grep( getAll( nodes, \"input\" ), fixDefaultChecked );\n\t}\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( safe.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\ttmp = null;\n\n\treturn safe;\n}\n\n\n( function() {\n\tvar i, eventName,\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Support: IE<9 (lack submit/change bubble), Firefox (lack focus(in | out) events)\n\tfor ( i in { submit: true, change: true, focusin: true } ) {\n\t\teventName = \"on\" + i;\n\n\t\tif ( !( support[ i ] = eventName in window ) ) {\n\n\t\t\t// Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP)\n\t\t\tdiv.setAttribute( eventName, \"t\" );\n\t\t\tsupport[ i ] = div.attributes[ eventName ].expando === false;\n\t\t}\n\t}\n\n\t// Null elements to avoid leaks in IE.\n\tdiv = null;\n} )();\n\n\nvar rformElems = /^(?:input|select|textarea)$/i,\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE9\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\t\tvar tmp, events, t, handleObjIn,\n\t\t\tspecial, eventHandle, handleObj,\n\t\t\thandlers, type, namespaces, origType,\n\t\t\telemData = jQuery._data( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" &&\n\t\t\t\t\t( !e || jQuery.event.triggered !== e.type ) ?\n\t\t\t\t\tjQuery.event.dispatch.apply( eventHandle.elem, arguments ) :\n\t\t\t\t\tundefined;\n\t\t\t};\n\n\t\t\t// Add elem as a property of the handle fn to prevent a memory leak\n\t\t\t// with IE non-native events\n\t\t\teventHandle.elem = elem;\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener/attachEvent if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\t// Bind the global event handler to the element\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\n\t\t\t\t\t} else if ( elem.attachEvent ) {\n\t\t\t\t\t\telem.attachEvent( \"on\" + type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t\t// Nullify elem to prevent memory leaks in IE\n\t\telem = null;\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\t\tvar j, handleObj, tmp,\n\t\t\torigCount, t, events,\n\t\t\tspecial, handlers, type,\n\t\t\tnamespaces, origType,\n\t\t\telemData = jQuery.hasData( elem ) && jQuery._data( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\n\t\t\t// removeData also checks for emptiness and clears the expando if empty\n\t\t\t// so use it instead of delete\n\t\t\tjQuery._removeData( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\t\tvar handle, ontype, cur,\n\t\t\tbubbleType, special, tmp, i,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( jQuery._data( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tjQuery._data( cur, \"handle\" );\n\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif (\n\t\t\t\t( !special._default ||\n\t\t\t\t special._default.apply( eventPath.pop(), data ) === false\n\t\t\t\t) && acceptData( elem )\n\t\t\t) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Can't use an .isFunction() check here because IE6/7 fails that test.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\ttry {\n\t\t\t\t\t\telem[ type ]();\n\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t// IE<9 dies on focus/blur to hidden element (#1486,#12518)\n\t\t\t\t\t\t// only reproducible on winXP IE8 native, not IE9 in IE8 mode\n\t\t\t\t\t}\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( jQuery._data( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Support (at least): Chrome, IE9\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG instance trees (#13180)\n\t\t//\n\t\t// Support: Firefox<=42+\n\t\t// Avoid non-left-click in FF but don't block IE radio events (#3861, gh-2343)\n\t\tif ( delegateCount && cur.nodeType &&\n\t\t\t( event.type !== \"click\" || isNaN( event.button ) || event.button < 1 ) ) {\n\n\t\t\t/* jshint eqeqeq: false */\n\t\t\tfor ( ; cur != this; cur = cur.parentNode || this ) {\n\t\t\t\t/* jshint eqeqeq: true */\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && ( cur.disabled !== true || event.type !== \"click\" ) ) {\n\t\t\t\t\tmatches = [];\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matches[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatches[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matches[ sel ] ) {\n\t\t\t\t\t\t\tmatches.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matches.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matches } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: this, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\tfix: function( event ) {\n\t\tif ( event[ jQuery.expando ] ) {\n\t\t\treturn event;\n\t\t}\n\n\t\t// Create a writable copy of the event object and normalize some properties\n\t\tvar i, prop, copy,\n\t\t\ttype = event.type,\n\t\t\toriginalEvent = event,\n\t\t\tfixHook = this.fixHooks[ type ];\n\n\t\tif ( !fixHook ) {\n\t\t\tthis.fixHooks[ type ] = fixHook =\n\t\t\t\trmouseEvent.test( type ) ? this.mouseHooks :\n\t\t\t\trkeyEvent.test( type ) ? this.keyHooks :\n\t\t\t\t{};\n\t\t}\n\t\tcopy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;\n\n\t\tevent = new jQuery.Event( originalEvent );\n\n\t\ti = copy.length;\n\t\twhile ( i-- ) {\n\t\t\tprop = copy[ i ];\n\t\t\tevent[ prop ] = originalEvent[ prop ];\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// Fix target property (#1925)\n\t\tif ( !event.target ) {\n\t\t\tevent.target = originalEvent.srcElement || document;\n\t\t}\n\n\t\t// Support: Safari 6-8+\n\t\t// Target should not be a text node (#504, #13143)\n\t\tif ( event.target.nodeType === 3 ) {\n\t\t\tevent.target = event.target.parentNode;\n\t\t}\n\n\t\t// Support: IE<9\n\t\t// For mouse/key events, metaKey==false if it's undefined (#3368, #11328)\n\t\tevent.metaKey = !!event.metaKey;\n\n\t\treturn fixHook.filter ? fixHook.filter( event, originalEvent ) : event;\n\t},\n\n\t// Includes some event props shared by KeyEvent and MouseEvent\n\tprops: ( \"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase \" +\n\t\t\"metaKey relatedTarget shiftKey target timeStamp view which\" ).split( \" \" ),\n\n\tfixHooks: {},\n\n\tkeyHooks: {\n\t\tprops: \"char charCode key keyCode\".split( \" \" ),\n\t\tfilter: function( event, original ) {\n\n\t\t\t// Add which for key events\n\t\t\tif ( event.which == null ) {\n\t\t\t\tevent.which = original.charCode != null ? original.charCode : original.keyCode;\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tmouseHooks: {\n\t\tprops: ( \"button buttons clientX clientY fromElement offsetX offsetY \" +\n\t\t\t\"pageX pageY screenX screenY toElement\" ).split( \" \" ),\n\t\tfilter: function( event, original ) {\n\t\t\tvar body, eventDoc, doc,\n\t\t\t\tbutton = original.button,\n\t\t\t\tfromElement = original.fromElement;\n\n\t\t\t// Calculate pageX/Y if missing and clientX/Y available\n\t\t\tif ( event.pageX == null && original.clientX != null ) {\n\t\t\t\teventDoc = event.target.ownerDocument || document;\n\t\t\t\tdoc = eventDoc.documentElement;\n\t\t\t\tbody = eventDoc.body;\n\n\t\t\t\tevent.pageX = original.clientX +\n\t\t\t\t\t( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) -\n\t\t\t\t\t( doc && doc.clientLeft || body && body.clientLeft || 0 );\n\t\t\t\tevent.pageY = original.clientY +\n\t\t\t\t\t( doc && doc.scrollTop || body && body.scrollTop || 0 ) -\n\t\t\t\t\t( doc && doc.clientTop || body && body.clientTop || 0 );\n\t\t\t}\n\n\t\t\t// Add relatedTarget, if necessary\n\t\t\tif ( !event.relatedTarget && fromElement ) {\n\t\t\t\tevent.relatedTarget = fromElement === event.target ?\n\t\t\t\t\toriginal.toElement :\n\t\t\t\t\tfromElement;\n\t\t\t}\n\n\t\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\t\t// Note: button is not normalized, so don't use it\n\t\t\tif ( !event.which && button !== undefined ) {\n\t\t\t\tevent.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) );\n\t\t\t}\n\n\t\t\treturn event;\n\t\t}\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.focus();\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// If we error on focus to hidden element (#1486, #12518),\n\t\t\t\t\t\t// let .trigger() run the handlers\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( jQuery.nodeName( this, \"input\" ) && this.type === \"checkbox\" && this.click ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn jQuery.nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\n\t\t\t\t// Previously, `originalEvent: {}` was set here, so stopPropagation call\n\t\t\t\t// would not be triggered on donor event, since in our own\n\t\t\t\t// jQuery.event.stopPropagation function we had a check for existence of\n\t\t\t\t// originalEvent.stopPropagation method, so, consequently it would be a noop.\n\t\t\t\t//\n\t\t\t\t// Guard for simulated events was moved to jQuery.event.stopPropagation function\n\t\t\t\t// since `originalEvent` should point to the original event for the\n\t\t\t\t// constancy with other events and for more focused logic\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\n\t\tif ( e.isDefaultPrevented() ) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\njQuery.removeEvent = document.removeEventListener ?\n\tfunction( elem, type, handle ) {\n\n\t\t// This \"if\" is needed for plain objects\n\t\tif ( elem.removeEventListener ) {\n\t\t\telem.removeEventListener( type, handle );\n\t\t}\n\t} :\n\tfunction( elem, type, handle ) {\n\t\tvar name = \"on\" + type;\n\n\t\tif ( elem.detachEvent ) {\n\n\t\t\t// #8545, #7054, preventing memory leaks for custom events in IE6-8\n\t\t\t// detachEvent needed property on element, by name of that event,\n\t\t\t// to properly expose it to GC\n\t\t\tif ( typeof elem[ name ] === \"undefined\" ) {\n\t\t\t\telem[ name ] = null;\n\t\t\t}\n\n\t\t\telem.detachEvent( name, handle );\n\t\t}\n\t};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: IE < 9, Android < 4.0\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || jQuery.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\t\tif ( !e ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If preventDefault exists, run it on the original event\n\t\tif ( e.preventDefault ) {\n\t\t\te.preventDefault();\n\n\t\t// Support: IE\n\t\t// Otherwise set the returnValue property of the original event to false\n\t\t} else {\n\t\t\te.returnValue = false;\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( !e || this.isSimulated ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If stopPropagation exists, run it on the original event\n\t\tif ( e.stopPropagation ) {\n\t\t\te.stopPropagation();\n\t\t}\n\n\t\t// Support: IE\n\t\t// Set the cancelBubble property of the original event to true\n\t\te.cancelBubble = true;\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && e.stopImmediatePropagation ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://code.google.com/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\n// IE submit delegation\nif ( !support.submit ) {\n\n\tjQuery.event.special.submit = {\n\t\tsetup: function() {\n\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Lazy-add a submit handler when a descendant form may potentially be submitted\n\t\t\tjQuery.event.add( this, \"click._submit keypress._submit\", function( e ) {\n\n\t\t\t\t// Node name check avoids a VML-related crash in IE (#9807)\n\t\t\t\tvar elem = e.target,\n\t\t\t\t\tform = jQuery.nodeName( elem, \"input\" ) || jQuery.nodeName( elem, \"button\" ) ?\n\n\t\t\t\t\t\t// Support: IE <=8\n\t\t\t\t\t\t// We use jQuery.prop instead of elem.form\n\t\t\t\t\t\t// to allow fixing the IE8 delegated submit issue (gh-2332)\n\t\t\t\t\t\t// by 3rd party polyfills/workarounds.\n\t\t\t\t\t\tjQuery.prop( elem, \"form\" ) :\n\t\t\t\t\t\tundefined;\n\n\t\t\t\tif ( form && !jQuery._data( form, \"submit\" ) ) {\n\t\t\t\t\tjQuery.event.add( form, \"submit._submit\", function( event ) {\n\t\t\t\t\t\tevent._submitBubble = true;\n\t\t\t\t\t} );\n\t\t\t\t\tjQuery._data( form, \"submit\", true );\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// return undefined since we don't need an event listener\n\t\t},\n\n\t\tpostDispatch: function( event ) {\n\n\t\t\t// If form was submitted by the user, bubble the event up the tree\n\t\t\tif ( event._submitBubble ) {\n\t\t\t\tdelete event._submitBubble;\n\t\t\t\tif ( this.parentNode && !event.isTrigger ) {\n\t\t\t\t\tjQuery.event.simulate( \"submit\", this.parentNode, event );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\n\t\t\t// Only need this for delegated form submit events\n\t\t\tif ( jQuery.nodeName( this, \"form\" ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Remove delegated handlers; cleanData eventually reaps submit handlers attached above\n\t\t\tjQuery.event.remove( this, \"._submit\" );\n\t\t}\n\t};\n}\n\n// IE change delegation and checkbox/radio fix\nif ( !support.change ) {\n\n\tjQuery.event.special.change = {\n\n\t\tsetup: function() {\n\n\t\t\tif ( rformElems.test( this.nodeName ) ) {\n\n\t\t\t\t// IE doesn't fire change on a check/radio until blur; trigger it on click\n\t\t\t\t// after a propertychange. Eat the blur-change in special.change.handle.\n\t\t\t\t// This still fires onchange a second time for check/radio after blur.\n\t\t\t\tif ( this.type === \"checkbox\" || this.type === \"radio\" ) {\n\t\t\t\t\tjQuery.event.add( this, \"propertychange._change\", function( event ) {\n\t\t\t\t\t\tif ( event.originalEvent.propertyName === \"checked\" ) {\n\t\t\t\t\t\t\tthis._justChanged = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tjQuery.event.add( this, \"click._change\", function( event ) {\n\t\t\t\t\t\tif ( this._justChanged && !event.isTrigger ) {\n\t\t\t\t\t\t\tthis._justChanged = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Allow triggered, simulated change events (#11500)\n\t\t\t\t\t\tjQuery.event.simulate( \"change\", this, event );\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Delegated event; lazy-add a change handler on descendant inputs\n\t\t\tjQuery.event.add( this, \"beforeactivate._change\", function( e ) {\n\t\t\t\tvar elem = e.target;\n\n\t\t\t\tif ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, \"change\" ) ) {\n\t\t\t\t\tjQuery.event.add( elem, \"change._change\", function( event ) {\n\t\t\t\t\t\tif ( this.parentNode && !event.isSimulated && !event.isTrigger ) {\n\t\t\t\t\t\t\tjQuery.event.simulate( \"change\", this.parentNode, event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t\tjQuery._data( elem, \"change\", true );\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\n\t\thandle: function( event ) {\n\t\t\tvar elem = event.target;\n\n\t\t\t// Swallow native change events from checkbox/radio, we already triggered them above\n\t\t\tif ( this !== elem || event.isSimulated || event.isTrigger ||\n\t\t\t\t( elem.type !== \"radio\" && elem.type !== \"checkbox\" ) ) {\n\n\t\t\t\treturn event.handleObj.handler.apply( this, arguments );\n\t\t\t}\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tjQuery.event.remove( this, \"._change\" );\n\n\t\t\treturn !rformElems.test( this.nodeName );\n\t\t}\n\t};\n}\n\n// Support: Firefox\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome, Safari\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://code.google.com/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tjQuery._data( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = jQuery._data( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tjQuery._removeData( doc, fix );\n\t\t\t\t} else {\n\t\t\t\t\tjQuery._data( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t},\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar rinlinejQuery = / jQuery\\d+=\"(?:null|\\d+)\"/g,\n\trnoshimcache = new RegExp( \"<(?:\" + nodeNames + \")[\\\\s/>]\", \"i\" ),\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:-]+)[^>]*)\\/>/gi,\n\n\t// Support: IE 10-11, Edge 10240+\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g,\n\tsafeFragment = createSafeFragment( document ),\n\tfragmentDiv = safeFragment.appendChild( document.createElement( \"div\" ) );\n\n// Support: IE<8\n// Manipulating tables requires a tbody\nfunction manipulationTarget( elem, content ) {\n\treturn jQuery.nodeName( elem, \"table\" ) &&\n\t\tjQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ?\n\n\t\telem.getElementsByTagName( \"tbody\" )[ 0 ] ||\n\t\t\telem.appendChild( elem.ownerDocument.createElement( \"tbody\" ) ) :\n\t\telem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( jQuery.find.attr( elem, \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tvar match = rscriptTypeMasked.exec( elem.type );\n\tif ( match ) {\n\t\telem.type = match[ 1 ];\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tif ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {\n\t\treturn;\n\t}\n\n\tvar type, i, l,\n\t\toldData = jQuery._data( src ),\n\t\tcurData = jQuery._data( dest, oldData ),\n\t\tevents = oldData.events;\n\n\tif ( events ) {\n\t\tdelete curData.handle;\n\t\tcurData.events = {};\n\n\t\tfor ( type in events ) {\n\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t}\n\t\t}\n\t}\n\n\t// make the cloned public data object a copy from the original\n\tif ( curData.data ) {\n\t\tcurData.data = jQuery.extend( {}, curData.data );\n\t}\n}\n\nfunction fixCloneNodeIssues( src, dest ) {\n\tvar nodeName, e, data;\n\n\t// We do not need to do anything for non-Elements\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\tnodeName = dest.nodeName.toLowerCase();\n\n\t// IE6-8 copies events bound via attachEvent when using cloneNode.\n\tif ( !support.noCloneEvent && dest[ jQuery.expando ] ) {\n\t\tdata = jQuery._data( dest );\n\n\t\tfor ( e in data.events ) {\n\t\t\tjQuery.removeEvent( dest, e, data.handle );\n\t\t}\n\n\t\t// Event data gets referenced instead of copied if the expando gets copied too\n\t\tdest.removeAttribute( jQuery.expando );\n\t}\n\n\t// IE blanks contents when cloning scripts, and tries to evaluate newly-set text\n\tif ( nodeName === \"script\" && dest.text !== src.text ) {\n\t\tdisableScript( dest ).text = src.text;\n\t\trestoreScript( dest );\n\n\t// IE6-10 improperly clones children of object elements using classid.\n\t// IE10 throws NoModificationAllowedError if parent is null, #12132.\n\t} else if ( nodeName === \"object\" ) {\n\t\tif ( dest.parentNode ) {\n\t\t\tdest.outerHTML = src.outerHTML;\n\t\t}\n\n\t\t// This path appears unavoidable for IE9. When cloning an object\n\t\t// element in IE9, the outerHTML strategy above is not sufficient.\n\t\t// If the src has innerHTML and the destination does not,\n\t\t// copy the src.innerHTML into the dest.innerHTML. #10324\n\t\tif ( support.html5Clone && ( src.innerHTML && !jQuery.trim( dest.innerHTML ) ) ) {\n\t\t\tdest.innerHTML = src.innerHTML;\n\t\t}\n\n\t} else if ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\n\t\t// IE6-8 fails to persist the checked state of a cloned checkbox\n\t\t// or radio button. Worse, IE6-7 fail to give the cloned element\n\t\t// a checked appearance if the defaultChecked value isn't also set\n\n\t\tdest.defaultChecked = dest.checked = src.checked;\n\n\t\t// IE6-7 get confused and end up setting the value of a cloned\n\t\t// checkbox/radio button to an empty string instead of \"on\"\n\t\tif ( dest.value !== src.value ) {\n\t\t\tdest.value = src.value;\n\t\t}\n\n\t// IE6-8 fails to return the selected option to the default selected\n\t// state when cloning options\n\t} else if ( nodeName === \"option\" ) {\n\t\tdest.defaultSelected = dest.selected = src.defaultSelected;\n\n\t// IE6-8 fails to set the defaultValue to the correct value when\n\t// cloning other types of input fields\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar first, node, hasScripts,\n\t\tscripts, doc, fragment,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tisFunction = jQuery.isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( isFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( isFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android<4.1, PhantomJS<2\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!jQuery._data( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tjQuery.globalEval(\n\t\t\t\t\t\t\t\t( node.text || node.textContent || node.innerHTML || \"\" )\n\t\t\t\t\t\t\t\t\t.replace( rcleanScript, \"\" )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Fix #11809: Avoid leaking memory\n\t\t\tfragment = first = null;\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\telems = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = elems[ i ] ) != null; i++ ) {\n\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar destElements, node, clone, i, srcElements,\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\tif ( support.html5Clone || jQuery.isXMLDoc( elem ) ||\n\t\t\t!rnoshimcache.test( \"<\" + elem.nodeName + \">\" ) ) {\n\n\t\t\tclone = elem.cloneNode( true );\n\n\t\t// IE<=8 does not properly clone detached, unknown element nodes\n\t\t} else {\n\t\t\tfragmentDiv.innerHTML = elem.outerHTML;\n\t\t\tfragmentDiv.removeChild( clone = fragmentDiv.firstChild );\n\t\t}\n\n\t\tif ( ( !support.noCloneEvent || !support.noCloneChecked ) &&\n\t\t\t\t( elem.nodeType === 1 || elem.nodeType === 11 ) && !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\t// Fix all IE cloning issues\n\t\t\tfor ( i = 0; ( node = srcElements[ i ] ) != null; ++i ) {\n\n\t\t\t\t// Ensure that the destination node is not null; Fixes #9587\n\t\t\t\tif ( destElements[ i ] ) {\n\t\t\t\t\tfixCloneNodeIssues( node, destElements[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0; ( node = srcElements[ i ] ) != null; i++ ) {\n\t\t\t\t\tcloneCopyEvent( node, destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\tdestElements = srcElements = node = null;\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems, /* internal */ forceAcceptData ) {\n\t\tvar elem, type, id, data,\n\t\t\ti = 0,\n\t\t\tinternalKey = jQuery.expando,\n\t\t\tcache = jQuery.cache,\n\t\t\tattributes = support.attributes,\n\t\t\tspecial = jQuery.event.special;\n\n\t\tfor ( ; ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\tif ( forceAcceptData || acceptData( elem ) ) {\n\n\t\t\t\tid = elem[ internalKey ];\n\t\t\t\tdata = id && cache[ id ];\n\n\t\t\t\tif ( data ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove cache only if it was not already removed by jQuery.event.remove\n\t\t\t\t\tif ( cache[ id ] ) {\n\n\t\t\t\t\t\tdelete cache[ id ];\n\n\t\t\t\t\t\t// Support: IE<9\n\t\t\t\t\t\t// IE does not allow us to delete expando properties from nodes\n\t\t\t\t\t\t// IE creates expando attributes along with the property\n\t\t\t\t\t\t// IE does not have a removeAttribute function on Document nodes\n\t\t\t\t\t\tif ( !attributes && typeof elem.removeAttribute !== \"undefined\" ) {\n\t\t\t\t\t\t\telem.removeAttribute( internalKey );\n\n\t\t\t\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t\t\t\t// https://code.google.com/p/chromium/issues/detail?id=378607\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\telem[ internalKey ] = undefined;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdeletedIds.push( id );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\n\t// Keep domManip exposed until 3.0 (gh-2225)\n\tdomManip: domManip,\n\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().append(\n\t\t\t\t\t( this[ 0 ] && this[ 0 ].ownerDocument || document ).createTextNode( value )\n\t\t\t\t);\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\n\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t}\n\n\t\t\t// Remove any remaining nodes\n\t\t\twhile ( elem.firstChild ) {\n\t\t\t\telem.removeChild( elem.firstChild );\n\t\t\t}\n\n\t\t\t// If this is a select, ensure that it displays empty (#12336)\n\t\t\t// Support: IE<9\n\t\t\tif ( elem.options && jQuery.nodeName( elem, \"select\" ) ) {\n\t\t\t\telem.options.length = 0;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined ) {\n\t\t\t\treturn elem.nodeType === 1 ?\n\t\t\t\t\telem.innerHTML.replace( rinlinejQuery, \"\" ) :\n\t\t\t\t\tundefined;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t( support.htmlSerialize || !rnoshimcache.test( value ) ) &&\n\t\t\t\t( support.leadingWhitespace || !rleadingWhitespace.test( value ) ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\telem = this[ i ] || {};\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\ti = 0,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get()\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\n\n\nvar iframe,\n\telemdisplay = {\n\n\t\t// Support: Firefox\n\t\t// We have to pre-define these values for FF (#10227)\n\t\tHTML: \"block\",\n\t\tBODY: \"block\"\n\t};\n\n/**\n * Retrieve the actual display of a element\n * @param {String} name nodeName of the element\n * @param {Object} doc Document object\n */\n\n// Called only from within defaultDisplay\nfunction actualDisplay( name, doc ) {\n\tvar elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),\n\n\t\tdisplay = jQuery.css( elem[ 0 ], \"display\" );\n\n\t// We don't have any data stored on the element,\n\t// so use \"detach\" method as fast way to get rid of the element\n\telem.detach();\n\n\treturn display;\n}\n\n/**\n * Try to determine the default display value of an element\n * @param {String} nodeName\n */\nfunction defaultDisplay( nodeName ) {\n\tvar doc = document,\n\t\tdisplay = elemdisplay[ nodeName ];\n\n\tif ( !display ) {\n\t\tdisplay = actualDisplay( nodeName, doc );\n\n\t\t// If the simple way fails, read from inside an iframe\n\t\tif ( display === \"none\" || !display ) {\n\n\t\t\t// Use the already-created iframe if possible\n\t\t\tiframe = ( iframe || jQuery( \"