<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[23421] trunk/wp-includes: jQuery 1.9.1 and jQuery Migrate 1.1.0.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg > ul, #logmsg > ol { margin-left: 0; margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://core.trac.wordpress.org/changeset/23421">23421</a></dd>
<dt>Author</dt> <dd>nacin</dd>
<dt>Date</dt> <dd>2013-02-15 16:09:04 +0000 (Fri, 15 Feb 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>jQuery 1.9.1 and jQuery Migrate 1.1.0.

Remains uncompressed for now, until we work out all 1.9.x issues.
Fixes custom fields.

props ocean90, wonderboymusic. see <a href="http://core.trac.wordpress.org/ticket/22975">#22975</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpincludesjsjqueryjquerymigratejs">trunk/wp-includes/js/jquery/jquery-migrate.js</a></li>
<li><a href="#trunkwpincludesjsjqueryjqueryjs">trunk/wp-includes/js/jquery/jquery.js</a></li>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpincludesjsjqueryjquerymigratejs"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/js/jquery/jquery-migrate.js (23420 => 23421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/js/jquery/jquery-migrate.js        2013-02-15 14:35:41 UTC (rev 23420)
+++ trunk/wp-includes/js/jquery/jquery-migrate.js        2013-02-15 16:09:04 UTC (rev 23421)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*!
</span><del>- * jQuery Migrate - v1.0.0 - 2013-01-14
</del><ins>+ * jQuery Migrate - v1.1.0 - 2013-01-31
</ins><span class="cx">  * https://github.com/jquery/jquery-migrate
</span><span class="cx">  * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors; Licensed MIT
</span><span class="cx">  */
</span><span class="lines">@@ -15,6 +15,16 @@
</span><span class="cx"> // Set to true to prevent console output; migrateWarnings still maintained
</span><span class="cx"> // jQuery.migrateMute = false;
</span><span class="cx"> 
</span><ins>+// Show a message on the console so devs know we're active
+if ( !jQuery.migrateMute &amp;&amp; window.console &amp;&amp; console.log ) {
+        console.log(&quot;JQMIGRATE: Logging is active&quot;);
+}
+
+// Set to false to disable traces that appear with warnings
+if ( jQuery.migrateTrace === undefined ) {
+        jQuery.migrateTrace = true;
+}
+
</ins><span class="cx"> // Forget any warnings we've already given; public
</span><span class="cx"> jQuery.migrateReset = function() {
</span><span class="cx">         warnedAbout = {};
</span><span class="lines">@@ -27,6 +37,9 @@
</span><span class="cx">                 jQuery.migrateWarnings.push( msg );
</span><span class="cx">                 if ( window.console &amp;&amp; console.warn &amp;&amp; !jQuery.migrateMute ) {
</span><span class="cx">                         console.warn( &quot;JQMIGRATE: &quot; + msg );
</span><ins>+                        if ( jQuery.migrateTrace &amp;&amp; console.trace ) {
+                                console.trace();
+                        }
</ins><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> }
</span><span class="lines">@@ -66,7 +79,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> var attrFn = {},
</span><del>-        attr = jQuery.attr,
</del><ins>+        oldAttr = jQuery.attr,
</ins><span class="cx">         valueAttrGet = jQuery.attrHooks.value &amp;&amp; jQuery.attrHooks.value.get ||
</span><span class="cx">                 function() { return null; },
</span><span class="cx">         valueAttrSet = jQuery.attrHooks.value &amp;&amp; jQuery.attrHooks.value.set ||
</span><span class="lines">@@ -83,15 +96,18 @@
</span><span class="cx">         var lowerName = name.toLowerCase(),
</span><span class="cx">                 nType = elem &amp;&amp; elem.nodeType;
</span><span class="cx"> 
</span><del>-        if ( pass ) {
</del><ins>+        // Since pass is used internally, we only warn and shim for new jQuery
+        // versions where there isn't a pass arg in the formal params
+        if ( pass &amp;&amp; oldAttr.length &lt; 4 ) {
</ins><span class="cx">                 migrateWarn(&quot;jQuery.fn.attr( props, pass ) is deprecated&quot;);
</span><span class="cx">                 if ( elem &amp;&amp; !rnoAttrNodeType.test( nType ) &amp;&amp; jQuery.isFunction( jQuery.fn[ name ] ) ) {
</span><span class="cx">                         return jQuery( elem )[ name ]( value );
</span><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        // Warn if user tries to set `type` since it breaks on IE 6/7/8
-        if ( name === &quot;type&quot; &amp;&amp; value !== undefined &amp;&amp; rnoType.test( elem.nodeName ) ) {
</del><ins>+        // Warn if user tries to set `type`, since it breaks on IE 6/7/8; by checking
+        // for disconnected elements we don't warn on $( &quot;&lt;button&gt;&quot;, { type: &quot;button&quot; } ).
+        if ( name === &quot;type&quot; &amp;&amp; value !== undefined &amp;&amp; rnoType.test( elem.nodeName ) &amp;&amp; elem.parentNode ) {
</ins><span class="cx">                 migrateWarn(&quot;Can't change the 'type' of an input or button in IE 6/7/8&quot;);
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -131,11 +147,11 @@
</span><span class="cx"> 
</span><span class="cx">                 // Warn only for attributes that can remain distinct from their properties post-1.9
</span><span class="cx">                 if ( ruseDefault.test( lowerName ) ) {
</span><del>-                        migrateWarn( &quot;jQuery.fn.attr(&quot; + lowerName + &quot;) may use property instead of attribute&quot; );
</del><ins>+                        migrateWarn( &quot;jQuery.fn.attr('&quot; + lowerName + &quot;') may use property instead of attribute&quot; );
</ins><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        return attr.call( jQuery, elem, name, value );
</del><ins>+        return oldAttr.call( jQuery, elem, name, value );
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> // attrHooks: value
</span><span class="lines">@@ -146,7 +162,7 @@
</span><span class="cx">                         return valueAttrGet.apply( this, arguments );
</span><span class="cx">                 }
</span><span class="cx">                 if ( nodeName !== &quot;input&quot; &amp;&amp; nodeName !== &quot;option&quot; ) {
</span><del>-                        migrateWarn(&quot;property-based jQuery.fn.attr('value') is deprecated&quot;);
</del><ins>+                        migrateWarn(&quot;jQuery.fn.attr('value') no longer gets properties&quot;);
</ins><span class="cx">                 }
</span><span class="cx">                 return name in elem ?
</span><span class="cx">                         elem.value :
</span><span class="lines">@@ -158,7 +174,7 @@
</span><span class="cx">                         return valueAttrSet.apply( this, arguments );
</span><span class="cx">                 }
</span><span class="cx">                 if ( nodeName !== &quot;input&quot; &amp;&amp; nodeName !== &quot;option&quot; ) {
</span><del>-                        migrateWarn(&quot;property-based jQuery.fn.attr('value', val) is deprecated&quot;);
</del><ins>+                        migrateWarn(&quot;jQuery.fn.attr('value', val) no longer sets properties&quot;);
</ins><span class="cx">                 }
</span><span class="cx">                 // Does not return so that setAttribute is also used
</span><span class="cx">                 elem.value = value;
</span><span class="lines">@@ -168,8 +184,9 @@
</span><span class="cx"> 
</span><span class="cx"> var matched, browser,
</span><span class="cx">         oldInit = jQuery.fn.init,
</span><del>-        // Note this does NOT include the # XSS fix from 1.7!
-        rquickExpr = /^(?:.*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w\-]*))$/;
</del><ins>+        oldParseJSON = jQuery.parseJSON,
+        // Note this does NOT include the #9521 XSS fix from 1.7!
+        rquickExpr = /^(?:[^&lt;]*(&lt;[\w\W]+&gt;)[^&gt;]*|#([\w\-]*))$/;
</ins><span class="cx"> 
</span><span class="cx"> // $(html) &quot;looks like html&quot; rule change
</span><span class="cx"> jQuery.fn.init = function( selector, context, rootjQuery ) {
</span><span class="lines">@@ -195,6 +212,15 @@
</span><span class="cx"> };
</span><span class="cx"> jQuery.fn.init.prototype = jQuery.fn;
</span><span class="cx"> 
</span><ins>+// Let $.parseJSON(falsy_value) return null
+jQuery.parseJSON = function( json ) {
+        if ( !json &amp;&amp; json !== null ) {
+                migrateWarn(&quot;jQuery.parseJSON requires a valid JSON string&quot;);
+                return null;
+        }
+        return oldParseJSON.apply( this, arguments );
+};
+
</ins><span class="cx"> jQuery.uaMatch = function( ua ) {
</span><span class="cx">         ua = ua.toLowerCase();
</span><span class="cx"> 
</span><span class="lines">@@ -274,8 +300,7 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> var rscriptType = /\/(java|ecma)script/i,
</span><del>-        oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack,
-        oldFragment = jQuery.buildFragment;
</del><ins>+        oldSelf = jQuery.fn.andSelf || jQuery.fn.addBack;
</ins><span class="cx"> 
</span><span class="cx"> jQuery.fn.andSelf = function() {
</span><span class="cx">         migrateWarn(&quot;jQuery.fn.andSelf() replaced by jQuery.fn.addBack()&quot;);
</span><span class="lines">@@ -332,35 +357,6 @@
</span><span class="cx">         };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-jQuery.buildFragment = function( elems, context, scripts, selection ) {
-        var ret,
-                warning = &quot;jQuery.buildFragment() is deprecated&quot;;
-
-        // Set context per 1.8 logic
-        context = context || document;
-        context = !context.nodeType &amp;&amp; context[0] || context;
-        context = context.ownerDocument || context;
-
-        try {
-                ret = oldFragment.call( jQuery, elems, context, scripts, selection );
-
-        // jQuery &lt; 1.8 required arrayish context; jQuery 1.9 fails on it
-        } catch( x ) {
-                ret = oldFragment.call( jQuery, elems, context.nodeType ? [ context ] : context[ 0 ], scripts, selection );
-
-                // Success from tweaking context means buildFragment was called by the user
-                migrateWarn( warning );
-        }
-
-        // jQuery &lt; 1.9 returned an object instead of the fragment itself
-        if ( !ret.fragment ) {
-                migrateWarnProp( ret, &quot;fragment&quot;, ret, warning );
-                migrateWarnProp( ret, &quot;cacheable&quot;, false, warning );
-        }
-
-        return ret;
-};
-
</del><span class="cx"> var eventAdd = jQuery.event.add,
</span><span class="cx">         eventRemove = jQuery.event.remove,
</span><span class="cx">         eventTrigger = jQuery.event.trigger,
</span><span class="lines">@@ -386,7 +382,9 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> // Undocumented jQuery.event.handle was &quot;deprecated&quot; in jQuery 1.7
</span><del>-migrateWarnProp( jQuery.event, &quot;handle&quot;, jQuery.event.dispatch, &quot;jQuery.event.handle is undocumented and deprecated&quot; );
</del><ins>+if ( jQuery.event.dispatch ) {
+        migrateWarnProp( jQuery.event, &quot;handle&quot;, jQuery.event.dispatch, &quot;jQuery.event.handle is undocumented and deprecated&quot; );
+}
</ins><span class="cx"> 
</span><span class="cx"> // Support for 'hover' pseudo-event and ajax event warnings
</span><span class="cx"> jQuery.event.add = function( elem, types, handler, data, selector ){
</span><span class="lines">@@ -495,4 +493,4 @@
</span><span class="cx"> );
</span><span class="cx"> 
</span><span class="cx"> 
</span><del>-})( jQuery, window );
</del><ins>+})( jQuery, window );
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpincludesjsjqueryjqueryjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/js/jquery/jquery.js (23420 => 23421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/js/jquery/jquery.js        2013-02-15 14:35:41 UTC (rev 23420)
+++ trunk/wp-includes/js/jquery/jquery.js        2013-02-15 16:09:04 UTC (rev 23421)
</span><span class="lines">@@ -1,5 +1,5 @@
</span><span class="cx"> /*!
</span><del>- * jQuery JavaScript Library v1.9.0
</del><ins>+ * jQuery JavaScript Library v1.9.1
</ins><span class="cx">  * http://jquery.com/
</span><span class="cx">  *
</span><span class="cx">  * Includes Sizzle.js
</span><span class="lines">@@ -9,16 +9,25 @@
</span><span class="cx">  * Released under the MIT license
</span><span class="cx">  * http://jquery.org/license
</span><span class="cx">  *
</span><del>- * Date: 2013-1-14
</del><ins>+ * Date: 2013-2-4
</ins><span class="cx">  */
</span><span class="cx"> (function( window, undefined ) {
</span><del>-&quot;use strict&quot;;
</del><ins>+
+// Can't do this because several apps including ASP.NET trace
+// the stack via arguments.caller.callee and Firefox dies if
+// you try to trace through &quot;use strict&quot; call chains. (#13335)
+// Support: Firefox 18+
+//&quot;use strict&quot;;
</ins><span class="cx"> var
</span><ins>+        // The deferred used on DOM ready
+        readyList,
+
</ins><span class="cx">         // A central reference to the root jQuery(document)
</span><span class="cx">         rootjQuery,
</span><span class="cx"> 
</span><del>-        // The deferred used on DOM ready
-        readyList,
</del><ins>+        // Support: IE&lt;9
+        // For `typeof node.method` instead of `node.method !== undefined`
+        core_strundefined = typeof undefined,
</ins><span class="cx"> 
</span><span class="cx">         // Use the correct document accordingly with window argument (sandbox)
</span><span class="cx">         document = window.document,
</span><span class="lines">@@ -36,7 +45,7 @@
</span><span class="cx">         // List of deleted data cache ids, so we can reuse them
</span><span class="cx">         core_deletedIds = [],
</span><span class="cx"> 
</span><del>-        core_version = &quot;1.9.0&quot;,
</del><ins>+        core_version = &quot;1.9.1&quot;,
</ins><span class="cx"> 
</span><span class="cx">         // Save a reference to some core methods
</span><span class="cx">         core_concat = core_deletedIds.concat,
</span><span class="lines">@@ -85,17 +94,25 @@
</span><span class="cx">                 return letter.toUpperCase();
</span><span class="cx">         },
</span><span class="cx"> 
</span><del>-        // The ready event handler and self cleanup method
-        DOMContentLoaded = function() {
-                if ( document.addEventListener ) {
-                        document.removeEventListener( &quot;DOMContentLoaded&quot;, DOMContentLoaded, false );
</del><ins>+        // The ready event handler
+        completed = function( event ) {
+
+                // readyState === &quot;complete&quot; is good enough for us to call the dom ready in oldIE
+                if ( document.addEventListener || event.type === &quot;load&quot; || document.readyState === &quot;complete&quot; ) {
+                        detach();
</ins><span class="cx">                         jQuery.ready();
</span><del>-                } else if ( document.readyState === &quot;complete&quot; ) {
-                        // we're here because readyState === &quot;complete&quot; in oldIE
-                        // which is good enough for us to call the dom ready!
-                        document.detachEvent( &quot;onreadystatechange&quot;, DOMContentLoaded );
-                        jQuery.ready();
</del><span class="cx">                 }
</span><ins>+        },
+        // Clean-up method for dom ready events
+        detach = function() {
+                if ( document.addEventListener ) {
+                        document.removeEventListener( &quot;DOMContentLoaded&quot;, completed, false );
+                        window.removeEventListener( &quot;load&quot;, completed, false );
+
+                } else {
+                        document.detachEvent( &quot;onreadystatechange&quot;, completed );
+                        window.detachEvent( &quot;onload&quot;, completed );
+                }
</ins><span class="cx">         };
</span><span class="cx"> 
</span><span class="cx"> jQuery.fn = jQuery.prototype = {
</span><span class="lines">@@ -299,7 +316,7 @@
</span><span class="cx"> jQuery.fn.init.prototype = jQuery.fn;
</span><span class="cx"> 
</span><span class="cx"> jQuery.extend = jQuery.fn.extend = function() {
</span><del>-        var options, name, src, copy, copyIsArray, clone,
</del><ins>+        var src, copyIsArray, copy, name, options, clone,
</ins><span class="cx">                 target = arguments[0] || {},
</span><span class="cx">                 i = 1,
</span><span class="cx">                 length = arguments.length,
</span><span class="lines">@@ -781,7 +798,7 @@
</span><span class="cx">         // Bind a function to a context, optionally partially applying any
</span><span class="cx">         // arguments.
</span><span class="cx">         proxy: function( fn, context ) {
</span><del>-                var tmp, args, proxy;
</del><ins>+                var args, proxy, tmp;
</ins><span class="cx"> 
</span><span class="cx">                 if ( typeof context === &quot;string&quot; ) {
</span><span class="cx">                         tmp = fn[ context ];
</span><span class="lines">@@ -880,18 +897,18 @@
</span><span class="cx">                 // Standards-based browsers support DOMContentLoaded
</span><span class="cx">                 } else if ( document.addEventListener ) {
</span><span class="cx">                         // Use the handy event callback
</span><del>-                        document.addEventListener( &quot;DOMContentLoaded&quot;, DOMContentLoaded, false );
</del><ins>+                        document.addEventListener( &quot;DOMContentLoaded&quot;, completed, false );
</ins><span class="cx"> 
</span><span class="cx">                         // A fallback to window.onload, that will always work
</span><del>-                        window.addEventListener( &quot;load&quot;, jQuery.ready, false );
</del><ins>+                        window.addEventListener( &quot;load&quot;, completed, false );
</ins><span class="cx"> 
</span><span class="cx">                 // If IE event model is used
</span><span class="cx">                 } else {
</span><span class="cx">                         // Ensure firing before onload, maybe late but safe also for iframes
</span><del>-                        document.attachEvent( &quot;onreadystatechange&quot;, DOMContentLoaded );
</del><ins>+                        document.attachEvent( &quot;onreadystatechange&quot;, completed );
</ins><span class="cx"> 
</span><span class="cx">                         // A fallback to window.onload, that will always work
</span><del>-                        window.attachEvent( &quot;onload&quot;, jQuery.ready );
</del><ins>+                        window.attachEvent( &quot;onload&quot;, completed );
</ins><span class="cx"> 
</span><span class="cx">                         // If IE and not a frame
</span><span class="cx">                         // continually check to see if the document is ready
</span><span class="lines">@@ -913,6 +930,9 @@
</span><span class="cx">                                                         return setTimeout( doScrollCheck, 50 );
</span><span class="cx">                                                 }
</span><span class="cx"> 
</span><ins>+                                                // detach all dom ready events
+                                                detach();
+
</ins><span class="cx">                                                 // and execute any waiting functions
</span><span class="cx">                                                 jQuery.ready();
</span><span class="cx">                                         }
</span><span class="lines">@@ -989,18 +1009,18 @@
</span><span class="cx">                 ( optionsCache[ options ] || createOptions( options ) ) :
</span><span class="cx">                 jQuery.extend( {}, options );
</span><span class="cx"> 
</span><del>-        var // Last fire value (for non-forgettable lists)
</del><ins>+        var // Flag to know if list is currently firing
+                firing,
+                // Last fire value (for non-forgettable lists)
</ins><span class="cx">                 memory,
</span><span class="cx">                 // Flag to know if list was already fired
</span><span class="cx">                 fired,
</span><del>-                // Flag to know if list is currently firing
-                firing,
-                // First callback to fire (used internally by add and fireWith)
-                firingStart,
</del><span class="cx">                 // End of the loop when firing
</span><span class="cx">                 firingLength,
</span><span class="cx">                 // Index of currently firing callback (modified by remove if needed)
</span><span class="cx">                 firingIndex,
</span><ins>+                // First callback to fire (used internally by add and fireWith)
+                firingStart,
</ins><span class="cx">                 // Actual callback list
</span><span class="cx">                 list = [],
</span><span class="cx">                 // Stack of fire calls for repeatable lists
</span><span class="lines">@@ -1086,9 +1106,10 @@
</span><span class="cx">                                 }
</span><span class="cx">                                 return this;
</span><span class="cx">                         },
</span><del>-                        // Control if a given callback is in the list
</del><ins>+                        // Check if a given callback is in the list.
+                        // If no argument is given, return whether or not list has callbacks attached.
</ins><span class="cx">                         has: function( fn ) {
</span><del>-                                return jQuery.inArray( fn, list ) &gt; -1;
</del><ins>+                                return fn ? jQuery.inArray( fn, list ) &gt; -1 : !!( list &amp;&amp; list.length );
</ins><span class="cx">                         },
</span><span class="cx">                         // Remove all callbacks from the list
</span><span class="cx">                         empty: function() {
</span><span class="lines">@@ -1285,7 +1306,9 @@
</span><span class="cx"> });
</span><span class="cx"> jQuery.support = (function() {
</span><span class="cx"> 
</span><del>-        var support, all, a, select, opt, input, fragment, eventName, isSupported, i,
</del><ins>+        var support, all, a,
+                input, select, fragment,
+                opt, eventName, isSupported, i,
</ins><span class="cx">                 div = document.createElement(&quot;div&quot;);
</span><span class="cx"> 
</span><span class="cx">         // Setup
</span><span class="lines">@@ -1486,7 +1509,7 @@
</span><span class="cx">                                 !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight );
</span><span class="cx">                 }
</span><span class="cx"> 
</span><del>-                if ( typeof div.style.zoom !== &quot;undefined&quot; ) {
</del><ins>+                if ( typeof div.style.zoom !== core_strundefined ) {
</ins><span class="cx">                         // Support: IE&lt;8
</span><span class="cx">                         // Check if natively block-level elements act like inline-block
</span><span class="cx">                         // elements when setting their display to 'inline' and giving
</span><span class="lines">@@ -1502,9 +1525,12 @@
</span><span class="cx">                         div.firstChild.style.width = &quot;5px&quot;;
</span><span class="cx">                         support.shrinkWrapBlocks = ( div.offsetWidth !== 3 );
</span><span class="cx"> 
</span><del>-                        // Prevent IE 6 from affecting layout for positioned elements #11048
-                        // Prevent IE from shrinking the body in IE 7 mode #12869
-                        body.style.zoom = 1;
</del><ins>+                        if ( support.inlineBlockNeedsLayout ) {
+                                // Prevent IE 6 from affecting layout for positioned elements #11048
+                                // Prevent IE from shrinking the body in IE 7 mode #12869
+                                // Support: IE&lt;8
+                                body.style.zoom = 1;
+                        }
</ins><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 body.removeChild( container );
</span><span class="lines">@@ -1521,7 +1547,7 @@
</span><span class="cx"> 
</span><span class="cx"> var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/,
</span><span class="cx">         rmultiDash = /([A-Z])/g;
</span><del>-        
</del><ins>+
</ins><span class="cx"> function internalData( elem, name, data, pvt /* Internal Use Only */ ){
</span><span class="cx">         if ( !jQuery.acceptData( elem ) ) {
</span><span class="cx">                 return;
</span><span class="lines">@@ -1616,13 +1642,12 @@
</span><span class="cx">         return ret;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-function internalRemoveData( elem, name, pvt /* For internal use only */ ){
</del><ins>+function internalRemoveData( elem, name, pvt ) {
</ins><span class="cx">         if ( !jQuery.acceptData( elem ) ) {
</span><span class="cx">                 return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        var thisCache, i, l,
-
</del><ins>+        var i, l, thisCache,
</ins><span class="cx">                 isNode = elem.nodeType,
</span><span class="cx"> 
</span><span class="cx">                 // See jQuery.data for more information
</span><span class="lines">@@ -1726,24 +1751,29 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         data: function( elem, name, data ) {
</span><del>-                return internalData( elem, name, data, false );
</del><ins>+                return internalData( elem, name, data );
</ins><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         removeData: function( elem, name ) {
</span><del>-                return internalRemoveData( elem, name, false );
</del><ins>+                return internalRemoveData( elem, name );
</ins><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         // For internal use only.
</span><span class="cx">         _data: function( elem, name, data ) {
</span><span class="cx">                 return internalData( elem, name, data, true );
</span><span class="cx">         },
</span><del>-        
</del><ins>+
</ins><span class="cx">         _removeData: function( elem, name ) {
</span><span class="cx">                 return internalRemoveData( elem, name, true );
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         // A method for determining if a DOM node can handle the data expando
</span><span class="cx">         acceptData: function( elem ) {
</span><ins>+                // Do not set data on non-element because it will not be cleared (#8335).
+                if ( elem.nodeType &amp;&amp; elem.nodeType !== 1 &amp;&amp; elem.nodeType !== 9 ) {
+                        return false;
+                }
+
</ins><span class="cx">                 var noData = elem.nodeName &amp;&amp; jQuery.noData[ elem.nodeName.toLowerCase() ];
</span><span class="cx"> 
</span><span class="cx">                 // nodes accept data unless otherwise specified; rejection can be conditional
</span><span class="lines">@@ -1769,7 +1799,7 @@
</span><span class="cx">                                                 name = attrs[i].name;
</span><span class="cx"> 
</span><span class="cx">                                                 if ( !name.indexOf( &quot;data-&quot; ) ) {
</span><del>-                                                        name = jQuery.camelCase( name.substring(5) );
</del><ins>+                                                        name = jQuery.camelCase( name.slice(5) );
</ins><span class="cx"> 
</span><span class="cx">                                                         dataAttr( elem, name, data[ name ] );
</span><span class="cx">                                                 }
</span><span class="lines">@@ -1820,12 +1850,12 @@
</span><span class="cx">                 if ( typeof data === &quot;string&quot; ) {
</span><span class="cx">                         try {
</span><span class="cx">                                 data = data === &quot;true&quot; ? true :
</span><del>-                                data === &quot;false&quot; ? false :
-                                data === &quot;null&quot; ? null :
-                                // Only convert to a number if it doesn't change the string
-                                +data + &quot;&quot; === data ? +data :
-                                rbrace.test( data ) ? jQuery.parseJSON( data ) :
-                                        data;
</del><ins>+                                        data === &quot;false&quot; ? false :
+                                        data === &quot;null&quot; ? null :
+                                        // Only convert to a number if it doesn't change the string
+                                        +data + &quot;&quot; === data ? +data :
+                                        rbrace.test( data ) ? jQuery.parseJSON( data ) :
+                                                data;
</ins><span class="cx">                         } catch( e ) {}
</span><span class="cx"> 
</span><span class="cx">                         // Make sure we set the data so it isn't changed later
</span><span class="lines">@@ -2141,7 +2171,7 @@
</span><span class="cx">                                 }
</span><span class="cx"> 
</span><span class="cx">                         // Toggle whole class name
</span><del>-                        } else if ( type === &quot;undefined&quot; || type === &quot;boolean&quot; ) {
</del><ins>+                        } else if ( type === core_strundefined || type === &quot;boolean&quot; ) {
</ins><span class="cx">                                 if ( this.className ) {
</span><span class="cx">                                         // store className if set
</span><span class="cx">                                         jQuery._data( this, &quot;__className__&quot;, this.className );
</span><span class="lines">@@ -2170,7 +2200,7 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         val: function( value ) {
</span><del>-                var hooks, ret, isFunction,
</del><ins>+                var ret, hooks, isFunction,
</ins><span class="cx">                         elem = this[0];
</span><span class="cx"> 
</span><span class="cx">                 if ( !arguments.length ) {
</span><span class="lines">@@ -2294,7 +2324,7 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         attr: function( elem, name, value ) {
</span><del>-                var ret, hooks, notxml,
</del><ins>+                var hooks, notxml, ret,
</ins><span class="cx">                         nType = elem.nodeType;
</span><span class="cx"> 
</span><span class="cx">                 // don't get/set attributes on text, comment and attribute nodes
</span><span class="lines">@@ -2303,7 +2333,7 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 // Fallback to prop when attributes are not supported
</span><del>-                if ( typeof elem.getAttribute === &quot;undefined&quot; ) {
</del><ins>+                if ( typeof elem.getAttribute === core_strundefined ) {
</ins><span class="cx">                         return jQuery.prop( elem, name, value );
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="lines">@@ -2336,7 +2366,7 @@
</span><span class="cx"> 
</span><span class="cx">                         // In IE9+, Flash objects don't have .getAttribute (#12945)
</span><span class="cx">                         // Support: IE9+
</span><del>-                        if ( typeof elem.getAttribute !== &quot;undefined&quot; ) {
</del><ins>+                        if ( typeof elem.getAttribute !== core_strundefined ) {
</ins><span class="cx">                                 ret =  elem.getAttribute( name );
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="lines">@@ -2686,13 +2716,12 @@
</span><span class="cx">         global: {},
</span><span class="cx"> 
</span><span class="cx">         add: function( elem, types, handler, data, selector ) {
</span><ins>+                var tmp, events, t, handleObjIn,
+                        special, eventHandle, handleObj,
+                        handlers, type, namespaces, origType,
+                        elemData = jQuery._data( elem );
</ins><span class="cx"> 
</span><del>-                var handleObjIn, eventHandle, tmp,
-                        events, t, handleObj,
-                        special, handlers, type, namespaces, origType,
-                        // Don't attach events to noData or text/comment nodes (but allow plain objects)
-                        elemData = elem.nodeType !== 3 &amp;&amp; elem.nodeType !== 8 &amp;&amp; jQuery._data( elem );
-
</del><ins>+                // Don't attach events to noData or text/comment nodes (but allow plain objects)
</ins><span class="cx">                 if ( !elemData ) {
</span><span class="cx">                         return;
</span><span class="cx">                 }
</span><span class="lines">@@ -2717,7 +2746,7 @@
</span><span class="cx">                         eventHandle = elemData.handle = function( e ) {
</span><span class="cx">                                 // Discard the second event of a jQuery.event.trigger() and
</span><span class="cx">                                 // when an event is called after a page has unloaded
</span><del>-                                return typeof jQuery !== &quot;undefined&quot; &amp;&amp; (!e || jQuery.event.triggered !== e.type) ?
</del><ins>+                                return typeof jQuery !== core_strundefined &amp;&amp; (!e || jQuery.event.triggered !== e.type) ?
</ins><span class="cx">                                         jQuery.event.dispatch.apply( eventHandle.elem, arguments ) :
</span><span class="cx">                                         undefined;
</span><span class="cx">                         };
</span><span class="lines">@@ -2797,10 +2826,10 @@
</span><span class="cx"> 
</span><span class="cx">         // Detach an event or set of events from an element
</span><span class="cx">         remove: function( elem, types, handler, selector, mappedTypes ) {
</span><del>-
-                var j, origCount, tmp,
-                        events, t, handleObj,
-                        special, handlers, type, namespaces, origType,
</del><ins>+                var j, handleObj, tmp,
+                        origCount, t, events,
+                        special, handlers, type,
+                        namespaces, origType,
</ins><span class="cx">                         elemData = jQuery.hasData( elem ) &amp;&amp; jQuery._data( elem );
</span><span class="cx"> 
</span><span class="cx">                 if ( !elemData || !(events = elemData.events) ) {
</span><span class="lines">@@ -2870,11 +2899,11 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         trigger: function( event, data, elem, onlyHandlers ) {
</span><del>-
-                var i, cur, tmp, bubbleType, ontype, handle, special,
</del><ins>+                var handle, ontype, cur,
+                        bubbleType, special, tmp, i,
</ins><span class="cx">                         eventPath = [ elem || document ],
</span><del>-                        type = event.type || event,
-                        namespaces = event.namespace ? event.namespace.split(&quot;.&quot;) : [];
</del><ins>+                        type = core_hasOwn.call( event, &quot;type&quot; ) ? event.type : event,
+                        namespaces = core_hasOwn.call( event, &quot;namespace&quot; ) ? event.namespace.split(&quot;.&quot;) : [];
</ins><span class="cx"> 
</span><span class="cx">                 cur = tmp = elem = elem || document;
</span><span class="cx"> 
</span><span class="lines">@@ -3008,7 +3037,7 @@
</span><span class="cx">                 // Make a writable jQuery.Event from the native event object
</span><span class="cx">                 event = jQuery.event.fix( event );
</span><span class="cx"> 
</span><del>-                var i, j, ret, matched, handleObj,
</del><ins>+                var i, ret, handleObj, matched, j,
</ins><span class="cx">                         handlerQueue = [],
</span><span class="cx">                         args = core_slice.call( arguments ),
</span><span class="cx">                         handlers = ( jQuery._data( this, &quot;events&quot; ) || {} )[ event.type ] || [],
</span><span class="lines">@@ -3063,7 +3092,7 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         handlers: function( event, handlers ) {
</span><del>-                var i, matches, sel, handleObj,
</del><ins>+                var sel, handleObj, matches, i,
</ins><span class="cx">                         handlerQueue = [],
</span><span class="cx">                         delegateCount = handlers.delegateCount,
</span><span class="cx">                         cur = event.target;
</span><span class="lines">@@ -3075,8 +3104,9 @@
</span><span class="cx"> 
</span><span class="cx">                         for ( ; cur != this; cur = cur.parentNode || this ) {
</span><span class="cx"> 
</span><ins>+                                // Don't check non-elements (#13208)
</ins><span class="cx">                                 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)
</span><del>-                                if ( cur.disabled !== true || event.type !== &quot;click&quot; ) {
</del><ins>+                                if ( cur.nodeType === 1 &amp;&amp; (cur.disabled !== true || event.type !== &quot;click&quot;) ) {
</ins><span class="cx">                                         matches = [];
</span><span class="cx">                                         for ( i = 0; i &lt; delegateCount; i++ ) {
</span><span class="cx">                                                 handleObj = handlers[ i ];
</span><span class="lines">@@ -3114,11 +3144,19 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 // Create a writable copy of the event object and normalize some properties
</span><del>-                var i, prop,
</del><ins>+                var i, prop, copy,
+                        type = event.type,
</ins><span class="cx">                         originalEvent = event,
</span><del>-                        fixHook = jQuery.event.fixHooks[ event.type ] || {},
-                        copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
</del><ins>+                        fixHook = this.fixHooks[ type ];
</ins><span class="cx"> 
</span><ins>+                if ( !fixHook ) {
+                        this.fixHooks[ type ] = fixHook =
+                                rmouseEvent.test( type ) ? this.mouseHooks :
+                                rkeyEvent.test( type ) ? this.keyHooks :
+                                {};
+                }
+                copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props;
+
</ins><span class="cx">                 event = new jQuery.Event( originalEvent );
</span><span class="cx"> 
</span><span class="cx">                 i = copy.length;
</span><span class="lines">@@ -3167,7 +3205,7 @@
</span><span class="cx">         mouseHooks: {
</span><span class="cx">                 props: &quot;button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement&quot;.split(&quot; &quot;),
</span><span class="cx">                 filter: function( event, original ) {
</span><del>-                        var eventDoc, doc, body,
</del><ins>+                        var body, eventDoc, doc,
</ins><span class="cx">                                 button = original.button,
</span><span class="cx">                                 fromElement = original.fromElement;
</span><span class="cx"> 
</span><span class="lines">@@ -3283,7 +3321,7 @@
</span><span class="cx"> 
</span><span class="cx">                         // #8545, #7054, preventing memory leaks for custom events in IE6-8
</span><span class="cx">                         // detachEvent needed property on element, by name of that event, to properly expose it to GC
</span><del>-                        if ( typeof elem[ name ] === &quot;undefined&quot; ) {
</del><ins>+                        if ( typeof elem[ name ] === core_strundefined ) {
</ins><span class="cx">                                 elem[ name ] = null;
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="lines">@@ -3532,7 +3570,7 @@
</span><span class="cx"> jQuery.fn.extend({
</span><span class="cx"> 
</span><span class="cx">         on: function( types, selector, data, fn, /*INTERNAL*/ one ) {
</span><del>-                var origFn, type;
</del><ins>+                var type, origFn;
</ins><span class="cx"> 
</span><span class="cx">                 // Types can be a map of types/handlers
</span><span class="cx">                 if ( typeof types === &quot;object&quot; ) {
</span><span class="lines">@@ -3644,32 +3682,8 @@
</span><span class="cx">                 if ( elem ) {
</span><span class="cx">                         return jQuery.event.trigger( type, data, elem, true );
</span><span class="cx">                 }
</span><del>-        },
-
-        hover: function( fnOver, fnOut ) {
-                return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
</del><span class="cx">         }
</span><span class="cx"> });
</span><del>-
-jQuery.each( (&quot;blur focus focusin focusout load resize scroll unload click dblclick &quot; +
-        &quot;mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave &quot; +
-        &quot;change select submit keydown keypress keyup error contextmenu&quot;).split(&quot; &quot;), function( i, name ) {
-
-        // Handle event binding
-        jQuery.fn[ name ] = function( data, fn ) {
-                return arguments.length &gt; 0 ?
-                        this.on( name, null, data, fn ) :
-                        this.trigger( name );
-        };
-
-        if ( rkeyEvent.test( name ) ) {
-                jQuery.event.fixHooks[ name ] = jQuery.event.keyHooks;
-        }
-
-        if ( rmouseEvent.test( name ) ) {
-                jQuery.event.fixHooks[ name ] = jQuery.event.mouseHooks;
-        }
-});
</del><span class="cx"> /*!
</span><span class="cx">  * Sizzle CSS Selector Engine
</span><span class="cx">  * Copyright 2012 jQuery Foundation and other contributors
</span><span class="lines">@@ -3781,7 +3795,7 @@
</span><span class="cx"> 
</span><span class="cx">         rsibling = /[\x20\t\r\n\f]*[+~]/,
</span><span class="cx"> 
</span><del>-        rnative = /\{\s*\[native code\]\s*\}/,
</del><ins>+        rnative = /^[^{]+\{\s*\[native code/,
</ins><span class="cx"> 
</span><span class="cx">         // Easily-parseable/retrievable ID or TAG or CLASS selectors
</span><span class="cx">         rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
</span><span class="lines">@@ -3808,12 +3822,12 @@
</span><span class="cx"> 
</span><span class="cx"> // Use a stripped-down slice if we can't use a native one
</span><span class="cx"> try {
</span><del>-        slice.call( docElem.childNodes, 0 )[0].nodeType;
</del><ins>+        slice.call( preferredDoc.documentElement.childNodes, 0 )[0].nodeType;
</ins><span class="cx"> } catch ( e ) {
</span><span class="cx">         slice = function( i ) {
</span><span class="cx">                 var elem,
</span><span class="cx">                         results = [];
</span><del>-                for ( ; (elem = this[i]); i++ ) {
</del><ins>+                while ( (elem = this[i++]) ) {
</ins><span class="cx">                         results.push( elem );
</span><span class="cx">                 }
</span><span class="cx">                 return results;
</span><span class="lines">@@ -4132,7 +4146,7 @@
</span><span class="cx"> 
</span><span class="cx">                         // Filter out possible comments
</span><span class="cx">                         if ( tag === &quot;*&quot; ) {
</span><del>-                                for ( ; (elem = results[i]); i++ ) {
</del><ins>+                                while ( (elem = results[i++]) ) {
</ins><span class="cx">                                         if ( elem.nodeType === 1 ) {
</span><span class="cx">                                                 tmp.push( elem );
</span><span class="cx">                                         }
</span><span class="lines">@@ -4290,15 +4304,11 @@
</span><span class="cx">                         ap = [ a ],
</span><span class="cx">                         bp = [ b ];
</span><span class="cx"> 
</span><del>-                // The nodes are identical, we can exit early
</del><ins>+                // Exit early if the nodes are identical
</ins><span class="cx">                 if ( a === b ) {
</span><span class="cx">                         hasDuplicate = true;
</span><span class="cx">                         return 0;
</span><span class="cx"> 
</span><del>-                // Fallback to using sourceIndex (in IE) if it's available on both nodes
-                } else if ( a.sourceIndex &amp;&amp; b.sourceIndex ) {
-                        return ( ~b.sourceIndex || MAX_NEGATIVE ) - ( contains( preferredDoc, a ) &amp;&amp; ~a.sourceIndex || MAX_NEGATIVE );
-
</del><span class="cx">                 // Parentless nodes are either documents or disconnected
</span><span class="cx">                 } else if ( !aup || !bup ) {
</span><span class="cx">                         return a === doc ? -1 :
</span><span class="lines">@@ -4437,11 +4447,20 @@
</span><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> function siblingCheck( a, b ) {
</span><del>-        var cur = a &amp;&amp; b &amp;&amp; a.nextSibling;
</del><ins>+        var cur = b &amp;&amp; a,
+                diff = cur &amp;&amp; ( ~b.sourceIndex || MAX_NEGATIVE ) - ( ~a.sourceIndex || MAX_NEGATIVE );
</ins><span class="cx"> 
</span><del>-        for ( ; cur; cur = cur.nextSibling ) {
-                if ( cur === b ) {
-                        return -1;
</del><ins>+        // Use IE sourceIndex if available on both nodes
+        if ( diff ) {
+                return diff;
+        }
+
+        // Check if b follows a
+        if ( cur ) {
+                while ( (cur = cur.nextSibling) ) {
+                        if ( cur === b ) {
+                                return -1;
+                        }
</ins><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -4651,9 +4670,9 @@
</span><span class="cx">                                         operator === &quot;!=&quot; ? result !== check :
</span><span class="cx">                                         operator === &quot;^=&quot; ? check &amp;&amp; result.indexOf( check ) === 0 :
</span><span class="cx">                                         operator === &quot;*=&quot; ? check &amp;&amp; result.indexOf( check ) &gt; -1 :
</span><del>-                                        operator === &quot;$=&quot; ? check &amp;&amp; result.substr( result.length - check.length ) === check :
</del><ins>+                                        operator === &quot;$=&quot; ? check &amp;&amp; result.slice( -check.length ) === check :
</ins><span class="cx">                                         operator === &quot;~=&quot; ? ( &quot; &quot; + result + &quot; &quot; ).indexOf( check ) &gt; -1 :
</span><del>-                                        operator === &quot;|=&quot; ? result === check || result.substr( 0, check.length + 1 ) === check + &quot;-&quot; :
</del><ins>+                                        operator === &quot;|=&quot; ? result === check || result.slice( 0, check.length + 1 ) === check + &quot;-&quot; :
</ins><span class="cx">                                         false;
</span><span class="cx">                         };
</span><span class="cx">                 },
</span><span class="lines">@@ -5071,7 +5090,7 @@
</span><span class="cx"> 
</span><span class="cx"> function addCombinator( matcher, combinator, base ) {
</span><span class="cx">         var dir = combinator.dir,
</span><del>-                checkNonElements = base &amp;&amp; combinator.dir === &quot;parentNode&quot;,
</del><ins>+                checkNonElements = base &amp;&amp; dir === &quot;parentNode&quot;,
</ins><span class="cx">                 doneName = done++;
</span><span class="cx"> 
</span><span class="cx">         return combinator.first ?
</span><span class="lines">@@ -5314,8 +5333,8 @@
</span><span class="cx">                                 contextBackup = outermostContext,
</span><span class="cx">                                 // We must always have either seed elements or context
</span><span class="cx">                                 elems = seed || byElement &amp;&amp; Expr.find[&quot;TAG&quot;]( &quot;*&quot;, expandContext &amp;&amp; context.parentNode || context ),
</span><del>-                                // Nested matchers should use non-integer dirruns
-                                dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.E);
</del><ins>+                                // Use integer dirruns iff this is the outermost matcher
+                                dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1);
</ins><span class="cx"> 
</span><span class="cx">                         if ( outermost ) {
</span><span class="cx">                                 outermostContext = context !== document &amp;&amp; context;
</span><span class="lines">@@ -5323,9 +5342,11 @@
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="cx">                         // Add elements passing elementMatchers directly to results
</span><ins>+                        // Keep `i` a string if there are no elements so `matchedCount` will be &quot;00&quot; below
</ins><span class="cx">                         for ( ; (elem = elems[i]) != null; i++ ) {
</span><span class="cx">                                 if ( byElement &amp;&amp; elem ) {
</span><del>-                                        for ( j = 0; (matcher = elementMatchers[j]); j++ ) {
</del><ins>+                                        j = 0;
+                                        while ( (matcher = elementMatchers[j++]) ) {
</ins><span class="cx">                                                 if ( matcher( elem, context, xml ) ) {
</span><span class="cx">                                                         results.push( elem );
</span><span class="cx">                                                         break;
</span><span class="lines">@@ -5352,10 +5373,10 @@
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="cx">                         // Apply set filters to unmatched elements
</span><del>-                        // `i` starts as a string, so matchedCount would equal &quot;00&quot; if there are no elements
</del><span class="cx">                         matchedCount += i;
</span><span class="cx">                         if ( bySet &amp;&amp; i !== matchedCount ) {
</span><del>-                                for ( j = 0; (matcher = setMatchers[j]); j++ ) {
</del><ins>+                                j = 0;
+                                while ( (matcher = setMatchers[j++]) ) {
</ins><span class="cx">                                         matcher( unmatched, setMatched, context, xml );
</span><span class="cx">                                 }
</span><span class="cx"> 
</span><span class="lines">@@ -5457,7 +5478,8 @@
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="cx">                         // Fetch a seed set for right-to-left matching
</span><del>-                        for ( i = matchExpr[&quot;needsContext&quot;].test( selector ) ? -1 : tokens.length - 1; i &gt;= 0; i-- ) {
</del><ins>+                        i = matchExpr[&quot;needsContext&quot;].test( selector ) ? 0 : tokens.length;
+                        while ( i-- ) {
</ins><span class="cx">                                 token = tokens[i];
</span><span class="cx"> 
</span><span class="cx">                                 // Abort if we hit a combinator
</span><span class="lines">@@ -5535,12 +5557,13 @@
</span><span class="cx"> 
</span><span class="cx"> jQuery.fn.extend({
</span><span class="cx">         find: function( selector ) {
</span><del>-                var i, ret, self;
</del><ins>+                var i, ret, self,
+                        len = this.length;
</ins><span class="cx"> 
</span><span class="cx">                 if ( typeof selector !== &quot;string&quot; ) {
</span><span class="cx">                         self = this;
</span><span class="cx">                         return this.pushStack( jQuery( selector ).filter(function() {
</span><del>-                                for ( i = 0; i &lt; self.length; i++ ) {
</del><ins>+                                for ( i = 0; i &lt; len; i++ ) {
</ins><span class="cx">                                         if ( jQuery.contains( self[ i ], this ) ) {
</span><span class="cx">                                                 return true;
</span><span class="cx">                                         }
</span><span class="lines">@@ -5549,12 +5572,12 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 ret = [];
</span><del>-                for ( i = 0; i &lt; this.length; i++ ) {
</del><ins>+                for ( i = 0; i &lt; len; i++ ) {
</ins><span class="cx">                         jQuery.find( selector, this[ i ], ret );
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 // Needed because $( selector, context ) becomes $( context ).find( selector )
</span><del>-                ret = this.pushStack( jQuery.unique( ret ) );
</del><ins>+                ret = this.pushStack( len &gt; 1 ? jQuery.unique( ret ) : ret );
</ins><span class="cx">                 ret.selector = ( this.selector ? this.selector + &quot; &quot; : &quot;&quot; ) + selector;
</span><span class="cx">                 return ret;
</span><span class="cx">         },
</span><span class="lines">@@ -6066,15 +6089,9 @@
</span><span class="cx">                         var next = this.nextSibling,
</span><span class="cx">                                 parent = this.parentNode;
</span><span class="cx"> 
</span><del>-                        if ( parent &amp;&amp; this.nodeType === 1 || this.nodeType === 11 ) {
-
</del><ins>+                        if ( parent ) {
</ins><span class="cx">                                 jQuery( this ).remove();
</span><del>-
-                                if ( next ) {
-                                        next.parentNode.insertBefore( elem, next );
-                                } else {
-                                        parent.appendChild( elem );
-                                }
</del><ins>+                                parent.insertBefore( elem, next );
</ins><span class="cx">                         }
</span><span class="cx">                 });
</span><span class="cx">         },
</span><span class="lines">@@ -6088,7 +6105,8 @@
</span><span class="cx">                 // Flatten any nested arrays
</span><span class="cx">                 args = core_concat.apply( [], args );
</span><span class="cx"> 
</span><del>-                var fragment, first, scripts, hasScripts, node, doc,
</del><ins>+                var first, node, hasScripts,
+                        scripts, doc, fragment,
</ins><span class="cx">                         i = 0,
</span><span class="cx">                         l = this.length,
</span><span class="cx">                         set = this,
</span><span class="lines">@@ -6239,7 +6257,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function fixCloneNodeIssues( src, dest ) {
</span><del>-        var nodeName, data, e;
</del><ins>+        var nodeName, e, data;
</ins><span class="cx"> 
</span><span class="cx">         // We do not need to do anything for non-Elements
</span><span class="cx">         if ( dest.nodeType !== 1 ) {
</span><span class="lines">@@ -6334,8 +6352,8 @@
</span><span class="cx"> function getAll( context, tag ) {
</span><span class="cx">         var elems, elem,
</span><span class="cx">                 i = 0,
</span><del>-                found = typeof context.getElementsByTagName !== &quot;undefined&quot; ? context.getElementsByTagName( tag || &quot;*&quot; ) :
-                        typeof context.querySelectorAll !== &quot;undefined&quot; ? context.querySelectorAll( tag || &quot;*&quot; ) :
</del><ins>+                found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || &quot;*&quot; ) :
+                        typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || &quot;*&quot; ) :
</ins><span class="cx">                         undefined;
</span><span class="cx"> 
</span><span class="cx">         if ( !found ) {
</span><span class="lines">@@ -6362,7 +6380,7 @@
</span><span class="cx"> 
</span><span class="cx"> jQuery.extend({
</span><span class="cx">         clone: function( elem, dataAndEvents, deepDataAndEvents ) {
</span><del>-                var destElements, srcElements, node, i, clone,
</del><ins>+                var destElements, node, clone, i, srcElements,
</ins><span class="cx">                         inPage = jQuery.contains( elem.ownerDocument, elem );
</span><span class="cx"> 
</span><span class="cx">                 if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( &quot;&lt;&quot; + elem.nodeName + &quot;&gt;&quot; ) ) {
</span><span class="lines">@@ -6417,7 +6435,8 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         buildFragment: function( elems, context, scripts, selection ) {
</span><del>-                var contains, elem, tag, tmp, wrap, tbody, j,
</del><ins>+                var j, elem, contains,
+                        tmp, tag, tbody, wrap,
</ins><span class="cx">                         l = elems.length,
</span><span class="cx"> 
</span><span class="cx">                         // Ensure a safe fragment
</span><span class="lines">@@ -6543,7 +6562,7 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         cleanData: function( elems, /* internal */ acceptData ) {
</span><del>-                var data, id, elem, type,
</del><ins>+                var elem, type, id, data,
</ins><span class="cx">                         i = 0,
</span><span class="cx">                         internalKey = jQuery.expando,
</span><span class="cx">                         cache = jQuery.cache,
</span><span class="lines">@@ -6581,7 +6600,7 @@
</span><span class="cx">                                                 if ( deleteExpando ) {
</span><span class="cx">                                                         delete elem[ internalKey ];
</span><span class="cx"> 
</span><del>-                                                } else if ( typeof elem.removeAttribute !== &quot;undefined&quot; ) {
</del><ins>+                                                } else if ( typeof elem.removeAttribute !== core_strundefined ) {
</ins><span class="cx">                                                         elem.removeAttribute( internalKey );
</span><span class="cx"> 
</span><span class="cx">                                                 } else {
</span><span class="lines">@@ -6595,7 +6614,7 @@
</span><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> });
</span><del>-var curCSS, getStyles, iframe,
</del><ins>+var iframe, getStyles, curCSS,
</ins><span class="cx">         ralpha = /alpha\([^)]*\)/i,
</span><span class="cx">         ropacity = /opacity\s*=\s*([^)]*)/,
</span><span class="cx">         rposition = /^(top|right|bottom|left)$/,
</span><span class="lines">@@ -6648,7 +6667,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function showHide( elements, show ) {
</span><del>-        var elem,
</del><ins>+        var display, elem, hidden,
</ins><span class="cx">                 values = [],
</span><span class="cx">                 index = 0,
</span><span class="cx">                 length = elements.length;
</span><span class="lines">@@ -6658,11 +6677,13 @@
</span><span class="cx">                 if ( !elem.style ) {
</span><span class="cx">                         continue;
</span><span class="cx">                 }
</span><ins>+
</ins><span class="cx">                 values[ index ] = jQuery._data( elem, &quot;olddisplay&quot; );
</span><ins>+                display = elem.style.display;
</ins><span class="cx">                 if ( show ) {
</span><span class="cx">                         // Reset the inline display of this element to learn if it is
</span><span class="cx">                         // being hidden by cascaded rules or not
</span><del>-                        if ( !values[ index ] &amp;&amp; elem.style.display === &quot;none&quot; ) {
</del><ins>+                        if ( !values[ index ] &amp;&amp; display === &quot;none&quot; ) {
</ins><span class="cx">                                 elem.style.display = &quot;&quot;;
</span><span class="cx">                         }
</span><span class="cx"> 
</span><span class="lines">@@ -6672,8 +6693,15 @@
</span><span class="cx">                         if ( elem.style.display === &quot;&quot; &amp;&amp; isHidden( elem ) ) {
</span><span class="cx">                                 values[ index ] = jQuery._data( elem, &quot;olddisplay&quot;, css_defaultDisplay(elem.nodeName) );
</span><span class="cx">                         }
</span><del>-                } else if ( !values[ index ] &amp;&amp; !isHidden( elem ) ) {
-                        jQuery._data( elem, &quot;olddisplay&quot;, jQuery.css( elem, &quot;display&quot; ) );
</del><ins>+                } else {
+
+                        if ( !values[ index ] ) {
+                                hidden = isHidden( elem );
+
+                                if ( display &amp;&amp; display !== &quot;none&quot; || !hidden ) {
+                                        jQuery._data( elem, &quot;olddisplay&quot;, hidden ? display : jQuery.css( elem, &quot;display&quot; ) );
+                                }
+                        }
</ins><span class="cx">                 }
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="lines">@@ -6695,7 +6723,7 @@
</span><span class="cx"> jQuery.fn.extend({
</span><span class="cx">         css: function( name, value ) {
</span><span class="cx">                 return jQuery.access( this, function( elem, name, value ) {
</span><del>-                        var styles, len,
</del><ins>+                        var len, styles,
</ins><span class="cx">                                 map = {},
</span><span class="cx">                                 i = 0;
</span><span class="cx"> 
</span><span class="lines">@@ -6836,7 +6864,7 @@
</span><span class="cx">         },
</span><span class="cx"> 
</span><span class="cx">         css: function( elem, name, extra, styles ) {
</span><del>-                var val, num, hooks,
</del><ins>+                var num, val, hooks,
</ins><span class="cx">                         origName = jQuery.camelCase( name );
</span><span class="cx"> 
</span><span class="cx">                 // Make sure that we're working with the right name
</span><span class="lines">@@ -6862,7 +6890,7 @@
</span><span class="cx">                 }
</span><span class="cx"> 
</span><span class="cx">                 // Return, converting to number if forced or a qualifier was provided and val looks numeric
</span><del>-                if ( extra ) {
</del><ins>+                if ( extra === &quot;&quot; || extra ) {
</ins><span class="cx">                         num = parseFloat( val );
</span><span class="cx">                         return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
</span><span class="cx">                 }
</span><span class="lines">@@ -7227,7 +7255,10 @@
</span><span class="cx"> 
</span><span class="cx"> if ( jQuery.expr &amp;&amp; jQuery.expr.filters ) {
</span><span class="cx">         jQuery.expr.filters.hidden = function( elem ) {
</span><del>-                return ( elem.offsetWidth === 0 &amp;&amp; elem.offsetHeight === 0 ) || (!jQuery.support.reliableHiddenOffsets &amp;&amp; ((elem.style &amp;&amp; elem.style.display) || jQuery.css( elem, &quot;display&quot; )) === &quot;none&quot;);
</del><ins>+                // Support: Opera &lt;= 12.12
+                // Opera reports offsetWidths and offsetHeights less than zero on some elements
+                return elem.offsetWidth &lt;= 0 &amp;&amp; elem.offsetHeight &lt;= 0 ||
+                        (!jQuery.support.reliableHiddenOffsets &amp;&amp; ((elem.style &amp;&amp; elem.style.display) || jQuery.css( elem, &quot;display&quot; )) === &quot;none&quot;);
</ins><span class="cx">         };
</span><span class="cx"> 
</span><span class="cx">         jQuery.expr.filters.visible = function( elem ) {
</span><span class="lines">@@ -7265,7 +7296,7 @@
</span><span class="cx"> var r20 = /%20/g,
</span><span class="cx">         rbracket = /\[\]$/,
</span><span class="cx">         rCRLF = /\r?\n/g,
</span><del>-        rsubmitterTypes = /^(?:submit|button|image|reset)$/i,
</del><ins>+        rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
</ins><span class="cx">         rsubmittable = /^(?:input|select|textarea|keygen)/i;
</span><span class="cx"> 
</span><span class="cx"> jQuery.fn.extend({
</span><span class="lines">@@ -7361,11 +7392,25 @@
</span><span class="cx">                 add( prefix, obj );
</span><span class="cx">         }
</span><span class="cx"> }
</span><ins>+jQuery.each( (&quot;blur focus focusin focusout load resize scroll unload click dblclick &quot; +
+        &quot;mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave &quot; +
+        &quot;change select submit keydown keypress keyup error contextmenu&quot;).split(&quot; &quot;), function( i, name ) {
+
+        // Handle event binding
+        jQuery.fn[ name ] = function( data, fn ) {
+                return arguments.length &gt; 0 ?
+                        this.on( name, null, data, fn ) :
+                        this.trigger( name );
+        };
+});
+
+jQuery.fn.hover = function( fnOver, fnOut ) {
+        return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
+};
</ins><span class="cx"> var
</span><span class="cx">         // Document location
</span><span class="cx">         ajaxLocParts,
</span><span class="cx">         ajaxLocation,
</span><del>-        
</del><span class="cx">         ajax_nonce = jQuery.now(),
</span><span class="cx"> 
</span><span class="cx">         ajax_rquery = /\?/,
</span><span class="lines">@@ -7478,7 +7523,7 @@
</span><span class="cx"> // that takes &quot;flat&quot; options (not to be deep extended)
</span><span class="cx"> // Fixes #9887
</span><span class="cx"> function ajaxExtend( target, src ) {
</span><del>-        var key, deep,
</del><ins>+        var deep, key,
</ins><span class="cx">                 flatOptions = jQuery.ajaxSettings.flatOptions || {};
</span><span class="cx"> 
</span><span class="cx">         for ( key in src ) {
</span><span class="lines">@@ -7498,7 +7543,7 @@
</span><span class="cx">                 return _load.apply( this, arguments );
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        var selector, type, response,
</del><ins>+        var selector, response, type,
</ins><span class="cx">                 self = this,
</span><span class="cx">                 off = url.indexOf(&quot; &quot;);
</span><span class="cx"> 
</span><span class="lines">@@ -7679,20 +7724,23 @@
</span><span class="cx">                 // Force options to be an object
</span><span class="cx">                 options = options || {};
</span><span class="cx"> 
</span><del>-                var transport,
</del><ins>+                var // Cross-domain detection vars
+                        parts,
+                        // Loop variable
+                        i,
</ins><span class="cx">                         // URL without anti-cache param
</span><span class="cx">                         cacheURL,
</span><del>-                        // Response headers
</del><ins>+                        // Response headers as string
</ins><span class="cx">                         responseHeadersString,
</span><del>-                        responseHeaders,
</del><span class="cx">                         // timeout handle
</span><span class="cx">                         timeoutTimer,
</span><del>-                        // Cross-domain detection vars
-                        parts,
</del><ins>+
</ins><span class="cx">                         // To know if global events are to be dispatched
</span><span class="cx">                         fireGlobals,
</span><del>-                        // Loop variable
-                        i,
</del><ins>+
+                        transport,
+                        // Response headers
+                        responseHeaders,
</ins><span class="cx">                         // Create the final options object
</span><span class="cx">                         s = jQuery.ajaxSetup( {}, options ),
</span><span class="cx">                         // Callbacks context
</span><span class="lines">@@ -7987,12 +8035,17 @@
</span><span class="cx">                                         }
</span><span class="cx">                                 }
</span><span class="cx"> 
</span><del>-                                // If not modified
-                                if ( status === 304 ) {
</del><ins>+                                // if no content
+                                if ( status === 204 ) {
</ins><span class="cx">                                         isSuccess = true;
</span><ins>+                                        statusText = &quot;nocontent&quot;;
+
+                                // if not modified
+                                } else if ( status === 304 ) {
+                                        isSuccess = true;
</ins><span class="cx">                                         statusText = &quot;notmodified&quot;;
</span><span class="cx"> 
</span><del>-                                // If we have data
</del><ins>+                                // If we have data, let's convert it
</ins><span class="cx">                                 } else {
</span><span class="cx">                                         isSuccess = ajaxConvert( s, response );
</span><span class="cx">                                         statusText = isSuccess.state;
</span><span class="lines">@@ -8062,8 +8115,7 @@
</span><span class="cx">  * - returns the corresponding response
</span><span class="cx">  */
</span><span class="cx"> function ajaxHandleResponses( s, jqXHR, responses ) {
</span><del>-
-        var ct, type, finalDataType, firstDataType,
</del><ins>+        var firstDataType, ct, finalDataType, type,
</ins><span class="cx">                 contents = s.contents,
</span><span class="cx">                 dataTypes = s.dataTypes,
</span><span class="cx">                 responseFields = s.responseFields;
</span><span class="lines">@@ -8124,8 +8176,7 @@
</span><span class="cx"> 
</span><span class="cx"> // Chain conversions given the request and the original response
</span><span class="cx"> function ajaxConvert( s, response ) {
</span><del>-
-        var conv, conv2, current, tmp,
</del><ins>+        var conv2, current, conv, tmp,
</ins><span class="cx">                 converters = {},
</span><span class="cx">                 i = 0,
</span><span class="cx">                 // Work with a copy of dataTypes in case we need to modify it for conversion
</span><span class="lines">@@ -8476,13 +8527,8 @@
</span><span class="cx"> 
</span><span class="cx">                                         // Listener
</span><span class="cx">                                         callback = function( _, isAbort ) {
</span><ins>+                                                var status, responseHeaders, statusText, responses;
</ins><span class="cx"> 
</span><del>-                                                var status,
-                                                        statusText,
-                                                        responseHeaders,
-                                                        responses,
-                                                        xml;
-
</del><span class="cx">                                                 // Firefox throws exceptions when accessing properties
</span><span class="cx">                                                 // of an xhr when a network error occurred
</span><span class="cx">                                                 // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
</span><span class="lines">@@ -8511,14 +8557,8 @@
</span><span class="cx">                                                                 } else {
</span><span class="cx">                                                                         responses = {};
</span><span class="cx">                                                                         status = xhr.status;
</span><del>-                                                                        xml = xhr.responseXML;
</del><span class="cx">                                                                         responseHeaders = xhr.getAllResponseHeaders();
</span><span class="cx"> 
</span><del>-                                                                        // Construct response list
-                                                                        if ( xml &amp;&amp; xml.documentElement /* #4958 */ ) {
-                                                                                responses.xml = xml;
-                                                                        }
-
</del><span class="cx">                                                                         // When requesting binary data, IE6-9 will throw an exception
</span><span class="cx">                                                                         // on any attempt to access responseText (#11426)
</span><span class="cx">                                                                         if ( typeof xhr.responseText === &quot;string&quot; ) {
</span><span class="lines">@@ -8768,7 +8808,7 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> function propFilter( props, specialEasing ) {
</span><del>-        var index, name, easing, value, hooks;
</del><ins>+        var value, name, index, easing, hooks;
</ins><span class="cx"> 
</span><span class="cx">         // camelCase, specialEasing and expand cssHook pass
</span><span class="cx">         for ( index in props ) {
</span><span class="lines">@@ -8836,7 +8876,9 @@
</span><span class="cx"> 
</span><span class="cx"> function defaultPrefilter( elem, props, opts ) {
</span><span class="cx">         /*jshint validthis:true */
</span><del>-        var index, prop, value, length, dataShow, toggle, tween, hooks, oldfire,
</del><ins>+        var prop, index, length,
+                value, dataShow, toggle,
+                tween, hooks, oldfire,
</ins><span class="cx">                 anim = this,
</span><span class="cx">                 style = elem.style,
</span><span class="cx">                 orig = {},
</span><span class="lines">@@ -8896,7 +8938,7 @@
</span><span class="cx">         if ( opts.overflow ) {
</span><span class="cx">                 style.overflow = &quot;hidden&quot;;
</span><span class="cx">                 if ( !jQuery.support.shrinkWrapBlocks ) {
</span><del>-                        anim.done(function() {
</del><ins>+                        anim.always(function() {
</ins><span class="cx">                                 style.overflow = opts.overflow[ 0 ];
</span><span class="cx">                                 style.overflowX = opts.overflow[ 1 ];
</span><span class="cx">                                 style.overflowY = opts.overflow[ 2 ];
</span><span class="lines">@@ -9020,11 +9062,11 @@
</span><span class="cx">                                 return tween.elem[ tween.prop ];
</span><span class="cx">                         }
</span><span class="cx"> 
</span><del>-                        // passing a non empty string as a 3rd parameter to .css will automatically
</del><ins>+                        // passing an empty string as a 3rd parameter to .css will automatically
</ins><span class="cx">                         // attempt a parseFloat and fallback to a string if the parse fails
</span><span class="cx">                         // so, simple values such as &quot;10px&quot; are parsed to Float.
</span><span class="cx">                         // complex values such as &quot;rotate(1rad)&quot; are returned as is.
</span><del>-                        result = jQuery.css( tween.elem, tween.prop, &quot;auto&quot; );
</del><ins>+                        result = jQuery.css( tween.elem, tween.prop, &quot;&quot; );
</ins><span class="cx">                         // Empty strings, null, undefined and &quot;auto&quot; are converted to 0.
</span><span class="cx">                         return !result || result === &quot;auto&quot; ? 0 : result;
</span><span class="cx">                 },
</span><span class="lines">@@ -9346,7 +9388,7 @@
</span><span class="cx"> 
</span><span class="cx">         // If we don't have gBCR, just use 0,0 rather than error
</span><span class="cx">         // BlackBerry 5, iOS 3 (original iPhone)
</span><del>-        if ( typeof elem.getBoundingClientRect !== &quot;undefined&quot; ) {
</del><ins>+        if ( typeof elem.getBoundingClientRect !== core_strundefined ) {
</ins><span class="cx">                 box = elem.getBoundingClientRect();
</span><span class="cx">         }
</span><span class="cx">         win = getWindow( doc );
</span></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (23420 => 23421)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2013-02-15 14:35:41 UTC (rev 23420)
+++ trunk/wp-includes/script-loader.php        2013-02-15 16:09:04 UTC (rev 23421)
</span><span class="lines">@@ -131,8 +131,8 @@
</span><span class="cx"> 
</span><span class="cx">         // jQuery
</span><span class="cx">         $scripts-&gt;add( 'jquery', false, array( 'jquery-core', 'jquery-migrate' ) );
</span><del>-        $scripts-&gt;add( 'jquery-core', '/wp-includes/js/jquery/jquery.js', array(), '1.9.0' );
-        $scripts-&gt;add( 'jquery-migrate', '/wp-includes/js/jquery/jquery-migrate.js', array(), '1.0.0' );
</del><ins>+        $scripts-&gt;add( 'jquery-core', '/wp-includes/js/jquery/jquery.js', array(), '1.9.1' );
+        $scripts-&gt;add( 'jquery-migrate', '/wp-includes/js/jquery/jquery-migrate.js', array(), '1.1.0' );
</ins><span class="cx"> 
</span><span class="cx">         // full jQuery UI
</span><span class="cx">         $scripts-&gt;add( 'jquery-ui-core', '/wp-includes/js/jquery/ui/jquery.ui.core.min.js', array('jquery'), '1.9.2', 1 );
</span></span></pre>
</div>
</div>

</body>
</html>