| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | 
							- /**
 
-  * For jQuery versions less than 3.4.0, this replaces the jQuery.extend
 
-  * function with the one from jQuery 3.4.0, slightly modified (documented
 
-  * below) to be compatible with older jQuery versions and browsers.
 
-  *
 
-  * This provides the Object.prototype pollution vulnerability fix to Drupal
 
-  * installations running older jQuery versions, including the versions shipped
 
-  * with Drupal core and https://www.drupal.org/project/jquery_update.
 
-  *
 
-  * @see https://github.com/jquery/jquery/pull/4333
 
-  */
 
- (function (jQuery) {
 
- // Do not override jQuery.extend() if the jQuery version is already >=3.4.0.
 
- var versionParts = jQuery.fn.jquery.split('.');
 
- var majorVersion = parseInt(versionParts[0]);
 
- var minorVersion = parseInt(versionParts[1]);
 
- var patchVersion = parseInt(versionParts[2]);
 
- var isPreReleaseVersion = (patchVersion.toString() !== versionParts[2]);
 
- if (
 
-   (majorVersion > 3) ||
 
-   (majorVersion === 3 && minorVersion > 4) ||
 
-   (majorVersion === 3 && minorVersion === 4 && patchVersion > 0) ||
 
-   (majorVersion === 3 && minorVersion === 4 && patchVersion === 0 && !isPreReleaseVersion)
 
- ) {
 
-   return;
 
- }
 
- /**
 
-  * This is almost verbatim copied from jQuery 3.4.0.
 
-  *
 
-  * Only two minor changes have been made:
 
-  * - The call to isFunction() is changed to jQuery.isFunction().
 
-  * - The two calls to Array.isArray() is changed to jQuery.isArray().
 
-  *
 
-  * The above two changes ensure compatibility with all older jQuery versions
 
-  * (1.4.4 - 3.3.1) and older browser versions (e.g., IE8).
 
-  */
 
- jQuery.extend = jQuery.fn.extend = function() {
 
-   var options, name, src, copy, copyIsArray, clone,
 
-     target = arguments[ 0 ] || {},
 
-     i = 1,
 
-     length = arguments.length,
 
-     deep = false;
 
-   // Handle a deep copy situation
 
-   if ( typeof target === "boolean" ) {
 
-     deep = target;
 
-     // Skip the boolean and the target
 
-     target = arguments[ i ] || {};
 
-     i++;
 
-   }
 
-   // Handle case when target is a string or something (possible in deep copy)
 
-   if ( typeof target !== "object" && !jQuery.isFunction( target ) ) {
 
-     target = {};
 
-   }
 
-   // Extend jQuery itself if only one argument is passed
 
-   if ( i === length ) {
 
-     target = this;
 
-     i--;
 
-   }
 
-   for ( ; i < length; i++ ) {
 
-     // Only deal with non-null/undefined values
 
-     if ( ( options = arguments[ i ] ) != null ) {
 
-       // Extend the base object
 
-       for ( name in options ) {
 
-         copy = options[ name ];
 
-         // Prevent Object.prototype pollution
 
-         // Prevent never-ending loop
 
-         if ( name === "__proto__" || target === copy ) {
 
-           continue;
 
-         }
 
-         // Recurse if we're merging plain objects or arrays
 
-         if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
 
-           ( copyIsArray = jQuery.isArray( copy ) ) ) ) {
 
-           src = target[ name ];
 
-           // Ensure proper type for the source value
 
-           if ( copyIsArray && !jQuery.isArray( src ) ) {
 
-             clone = [];
 
-           } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
 
-             clone = {};
 
-           } else {
 
-             clone = src;
 
-           }
 
-           copyIsArray = false;
 
-           // Never move original objects, clone them
 
-           target[ name ] = jQuery.extend( deep, clone, copy );
 
-           // Don't bring in undefined values
 
-         } else if ( copy !== undefined ) {
 
-           target[ name ] = copy;
 
-         }
 
-       }
 
-     }
 
-   }
 
-   // Return the modified object
 
-   return target;
 
- };
 
- })(jQuery);
 
 
  |