init();
		add_action( 'init', array( $this, 'init' ), 0 );
	}
	/**
	 * @access public
	 */
	public function init() {
		/**
		 * Fires when the WP_Scripts instance is initialized.
		 *
		 * @since 2.6.0
		 *
		 * @param WP_Scripts &$this WP_Scripts instance, passed by reference.
		 */
		do_action_ref_array( 'wp_default_scripts', array(&$this) );
	}
	/**
	 * Prints scripts.
	 *
	 * Prints the scripts passed to it or the print queue. Also prints all necessary dependencies.
	 *
	 * @param mixed $handles Optional. Scripts to be printed. (void) prints queue, (string) prints
	 *                       that script, (array of strings) prints those scripts. Default false.
	 * @param int   $group   Optional. If scripts were queued in groups prints this group number.
	 *                       Default false.
	 * @return array Scripts that have been printed.
	 */
	public function print_scripts( $handles = false, $group = false ) {
		return $this->do_items( $handles, $group );
	}
	/**
	 * @deprecated 3.3
	 * @see print_extra_script()
	 *
	 * @param string $handle
	 * @param bool   $echo
	 * @return bool|string|void
	 */
	public function print_scripts_l10n( $handle, $echo = true ) {
		_deprecated_function( __FUNCTION__, '3.3', 'print_extra_script()' );
		return $this->print_extra_script( $handle, $echo );
	}
	/**
	 * @param string $handle
	 * @param bool   $echo
	 * @return bool|string|void
	 */
	public function print_extra_script( $handle, $echo = true ) {
		if ( !$output = $this->get_data( $handle, 'data' ) )
			return;
		if ( !$echo )
			return $output;
		echo "\n";
		return true;
	}
	/**
	 * @param string   $handle Name of the item. Should be unique.
	 * @param int|bool $group
	 * @return bool True on success, false if not set.
	 */
	public function do_item( $handle, $group = false ) {
		if ( !parent::do_item($handle) )
			return false;
		if ( 0 === $group && $this->groups[$handle] > 0 ) {
			$this->in_footer[] = $handle;
			return false;
		}
		if ( false === $group && in_array($handle, $this->in_footer, true) )
			$this->in_footer = array_diff( $this->in_footer, (array) $handle );
		$obj = $this->registered[$handle];
		if ( null === $obj->ver ) {
			$ver = '';
		} else {
			$ver = $obj->ver ? $obj->ver : $this->default_version;
		}
		if ( isset($this->args[$handle]) )
			$ver = $ver ? $ver . '&' . $this->args[$handle] : $this->args[$handle];
		$src = $obj->src;
		$cond_before = $cond_after = '';
		$conditional = isset( $obj->extra['conditional'] ) ? $obj->extra['conditional'] : '';
		if ( $conditional ) {
			$cond_before = "\n";
		}
		if ( $this->do_concat ) {
			/**
			 * Filter the script loader source.
			 *
			 * @since 2.2.0
			 *
			 * @param string $src    Script loader source path.
			 * @param string $handle Script handle.
			 */
			$srce = apply_filters( 'script_loader_src', $src, $handle );
			if ( $this->in_default_dir( $srce ) && ! $conditional ) {
				$this->print_code .= $this->print_extra_script( $handle, false );
				$this->concat .= "$handle,";
				$this->concat_version .= "$handle$ver";
				return true;
			} else {
				$this->ext_handles .= "$handle,";
				$this->ext_version .= "$handle$ver";
			}
		}
		$has_conditional_data = $conditional && $this->get_data( $handle, 'data' );
		if ( $has_conditional_data ) {
			echo $cond_before;
		}
		$this->print_extra_script( $handle );
		if ( $has_conditional_data ) {
			echo $cond_after;
		}
		if ( ! preg_match( '|^(https?:)?//|', $src ) && ! ( $this->content_url && 0 === strpos( $src, $this->content_url ) ) ) {
			$src = $this->base_url . $src;
		}
		if ( ! empty( $ver ) )
			$src = add_query_arg( 'ver', $ver, $src );
		/** This filter is documented in wp-includes/class.wp-scripts.php */
		$src = esc_url( apply_filters( 'script_loader_src', $src, $handle ) );
		if ( ! $src )
			return true;
		$tag = "{$cond_before}\n{$cond_after}";
		/**
		 * Filter the HTML script tag of an enqueued script.
		 *
		 * @since 4.1.0
		 *
		 * @param string $tag    The `