PHP 8.3.27
Preview: block-editor.php Size: 28.78 KB
/home7/doctorbruno/public_html/siddharastrology.com/wp-includes/block-editor.php
<?php
/**
 * Block Editor API.
 *
 * @package WordPress
 * @subpackage Editor
 * @since 5.8.0
 */

/**
 * Returns the list of default categories for block types.
 *
 * @since 5.8.0
 * @since 6.3.0 Reusable Blocks renamed to Patterns.
 *
 * @return array[] Array of categories for block types.
 */
function get_default_block_categories() {
	return array(
		array(
			'slug'  => 'text',
			'title' => _x( 'Text', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'media',
			'title' => _x( 'Media', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'design',
			'title' => _x( 'Design', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'widgets',
			'title' => _x( 'Widgets', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'theme',
			'title' => _x( 'Theme', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'embed',
			'title' => _x( 'Embeds', 'block category' ),
			'icon'  => null,
		),
		array(
			'slug'  => 'reusable',
			'title' => _x( 'Patterns', 'block category' ),
			'icon'  => null,
		),
	);
}

/**
 * Returns all the categories for block types that will be shown in the block editor.
 *
 * @since 5.0.0
 * @since 5.8.0 It is possible to pass the block editor context as param.
 *
 * @param WP_Post|WP_Block_Editor_Context $post_or_block_editor_context The current post object or
 *                                                                      the block editor context.
 *
 * @return array[] Array of categories for block types.
 */
function get_block_categories( $post_or_block_editor_context ) {
	$block_categories     = get_default_block_categories();
	$block_editor_context = $post_or_block_editor_context instanceof WP_Post ?
		new WP_Block_Editor_Context(
			array(
				'post' => $post_or_block_editor_context,
			)
		) : $post_or_block_editor_context;

	/**
	 * Filters the default array of categories for block types.
	 *
	 * @since 5.8.0
	 *
	 * @param array[]                 $block_categories     Array of categories for block types.
	 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
	 */
	$block_categories = apply_filters( 'block_categories_all', $block_categories, $block_editor_context );

	if ( ! empty( $block_editor_context->post ) ) {
		$post = $block_editor_context->post;

		/**
		 * Filters the default array of categories for block types.
		 *
		 * @since 5.0.0
		 * @deprecated 5.8.0 Use the {@see 'block_categories_all'} filter instead.
		 *
		 * @param array[] $block_categories Array of categories for block types.
		 * @param WP_Post $post             Post being loaded.
		 */
		$block_categories = apply_filters_deprecated( 'block_categories', array( $block_categories, $post ), '5.8.0', 'block_categories_all' );
	}

	return $block_categories;
}

/**
 * Gets the list of allowed block types to use in the block editor.
 *
 * @since 5.8.0
 *
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 * @return bool|string[] Array of block type slugs, or boolean to enable/disable all.
 */
function get_allowed_block_types( $block_editor_context ) {
	$allowed_block_types = true;

	/**
	 * Filters the allowed block types for all editor types.
	 *
	 * @since 5.8.0
	 *
	 * @param bool|string[]           $allowed_block_types  Array of block type slugs, or boolean to enable/disable all.
	 *                                                      Default true (all registered block types supported).
	 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
	 */
	$allowed_block_types = apply_filters( 'allowed_block_types_all', $allowed_block_types, $block_editor_context );

	if ( ! empty( $block_editor_context->post ) ) {
		$post = $block_editor_context->post;

		/**
		 * Filters the allowed block types for the editor.
		 *
		 * @since 5.0.0
		 * @deprecated 5.8.0 Use the {@see 'allowed_block_types_all'} filter instead.
		 *
		 * @param bool|string[] $allowed_block_types Array of block type slugs, or boolean to enable/disable all.
		 *                                           Default true (all registered block types supported)
		 * @param WP_Post       $post                The post resource data.
		 */
		$allowed_block_types = apply_filters_deprecated( 'allowed_block_types', array( $allowed_block_types, $post ), '5.8.0', 'allowed_block_types_all' );
	}

	return $allowed_block_types;
}

/**
 * Returns the default block editor settings.
 *
 * @since 5.8.0
 *
 * @return array The default block editor settings.
 */
function get_default_block_editor_settings() {
	// Media settings.

	// wp_max_upload_size() can be expensive, so only call it when relevant for the current user.
	$max_upload_size = 0;
	if ( current_user_can( 'upload_files' ) ) {
		$max_upload_size = wp_max_upload_size();
		if ( ! $max_upload_size ) {
			$max_upload_size = 0;
		}
	}

	/** This filter is documented in wp-admin/includes/media.php */
	$image_size_names = apply_filters(
		'image_size_names_choose',
		array(
			'thumbnail' => __( 'Thumbnail' ),
			'medium'    => __( 'Medium' ),
			'large'     => __( 'Large' ),
			'full'      => __( 'Full Size' ),
		)
	);

	$available_image_sizes = array();
	foreach ( $image_size_names as $image_size_slug => $image_size_name ) {
		$available_image_sizes[] = array(
			'slug' => $image_size_slug,
			'name' => $image_size_name,
		);
	}

	$default_size       = get_option( 'image_default_size', 'large' );
	$image_default_size = isset( $image_size_names[ $default_size ] ) ? $default_size : 'large';

	$image_dimensions = array();
	$all_sizes        = wp_get_registered_image_subsizes();
	foreach ( $available_image_sizes as $size ) {
		$key = $size['slug'];
		if ( isset( $all_sizes[ $key ] ) ) {
			$image_dimensions[ $key ] = $all_sizes[ $key ];
		}
	}

	// These styles are used if the "no theme styles" options is triggered or on
	// themes without their own editor styles.
	$default_editor_styles_file = ABSPATH . WPINC . '/css/dist/block-editor/default-editor-styles.css';

	static $default_editor_styles_file_contents = false;
	if ( ! $default_editor_styles_file_contents && file_exists( $default_editor_styles_file ) ) {
		$default_editor_styles_file_contents = file_get_contents( $default_editor_styles_file );
	}

	$default_editor_styles = array();
	if ( $default_editor_styles_file_contents ) {
		$default_editor_styles = array(
			array( 'css' => $default_editor_styles_file_contents ),
		);
	}

	$editor_settings = array(
		'alignWide'                        => get_theme_support( 'align-wide' ),
		'allowedBlockTypes'                => true,
		'allowedMimeTypes'                 => get_allowed_mime_types(),
		'defaultEditorStyles'              => $default_editor_styles,
		'blockCategories'                  => get_default_block_categories(),
		'isRTL'                            => is_rtl(),
		'imageDefaultSize'                 => $image_default_size,
		'imageDimensions'                  => $image_dimensions,
		'imageEditing'                     => true,
		'imageSizes'                       => $available_image_sizes,
		'maxUploadFileSize'                => $max_upload_size,
		'__experimentalDashboardLink'      => admin_url( '/' ),
		// The following flag is required to enable the new Gallery block format on the mobile apps in 5.9.
		'__unstableGalleryWithImageBlocks' => true,
	);

	$theme_settings = get_classic_theme_supports_block_editor_settings();
	foreach ( $theme_settings as $key => $value ) {
		$editor_settings[ $key ] = $value;
	}

	return $editor_settings;
}

/**
 * Returns the block editor settings needed to use the Legacy Widget block which
 * is not registered by default.
 *
 * @since 5.8.0
 *
 * @return array Settings to be used with get_block_editor_settings().
 */
function get_legacy_widget_block_editor_settings() {
	$editor_settings = array();

	/**
	 * Filters the list of widget-type IDs that should **not** be offered by the
	 * Legacy Widget block.
	 *
	 * Returning an empty array will make all widgets available.
	 *
	 * @since 5.8.0
	 *
	 * @param string[] $widgets An array of excluded widget-type IDs.
	 */
	$editor_settings['widgetTypesToHideFromLegacyWidgetBlock'] = apply_filters(
		'widget_types_to_hide_from_legacy_widget_block',
		array(
			'pages',
			'calendar',
			'archives',
			'media_audio',
			'media_image',
			'media_gallery',
			'media_video',
			'search',
			'text',
			'categories',
			'recent-posts',
			'recent-comments',
			'rss',
			'tag_cloud',
			'custom_html',
			'block',
		)
	);

	return $editor_settings;
}

/**
 * Collect the block editor assets that need to be loaded into the editor's iframe.
 *
 * @since 6.0.0
 * @access private
 *
 * @global WP_Styles  $wp_styles  The WP_Styles current instance.
 * @global WP_Scripts $wp_scripts The WP_Scripts current instance.
 *
 * @return array {
 *     The block editor assets.
 *
 *     @type string|false $styles  String containing the HTML for styles.
 *     @type string|false $scripts String containing the HTML for scripts.
 * }
 */
function _wp_get_iframed_editor_assets() {
	global $wp_styles, $wp_scripts;

	// Keep track of the styles and scripts instance to restore later.
	$current_wp_styles  = $wp_styles;
	$current_wp_scripts = $wp_scripts;

	// Create new instances to collect the assets.
	$wp_styles  = new WP_Styles();
	$wp_scripts = new WP_Scripts();

	/*
	 * Register all currently registered styles and scripts. The actions that
	 * follow enqueue assets, but don't necessarily register them.
	 */
	$wp_styles->registered  = $current_wp_styles->registered;
	$wp_scripts->registered = $current_wp_scripts->registered;

	/*
	 * We generally do not need reset styles for the iframed editor.
	 * However, if it's a classic theme, margins will be added to every block,
	 * which is reset specifically for list items, so classic themes rely on
	 * these reset styles.
	 */
	$wp_styles->done =
		wp_theme_has_theme_json() ? array( 'wp-reset-editor-styles' ) : array();

	wp_enqueue_script( 'wp-polyfill' );
	// Enqueue the `editorStyle` handles for all core block, and dependencies.
	wp_enqueue_style( 'wp-edit-blocks' );

	if ( current_theme_supports( 'wp-block-styles' ) ) {
		wp_enqueue_style( 'wp-block-library-theme' );
	}

	/*
	 * We don't want to load EDITOR scripts in the iframe, only enqueue
	 * front-end assets for the content.
	 */
	add_filter( 'should_load_block_editor_scripts_and_styles', '__return_false' );
	/** This action is documented in wp-includes/script-loader.php */
	do_action( 'enqueue_block_assets' );
	remove_filter( 'should_load_block_editor_scripts_and_styles', '__return_false' );

	$block_registry = WP_Block_Type_Registry::get_instance();

	/*
	 * Additionally, do enqueue `editorStyle` assets for all blocks, which
	 * contains editor-only styling for blocks (editor content).
	 */
	foreach ( $block_registry->get_all_registered() as $block_type ) {
		if ( isset( $block_type->editor_style_handles ) && is_array( $block_type->editor_style_handles ) ) {
			foreach ( $block_type->editor_style_handles as $style_handle ) {
				wp_enqueue_style( $style_handle );
			}
		}
	}

	/**
	 * Remove the deprecated `print_emoji_styles` handler.
	 * It avoids breaking style generation with a deprecation message.
	 */
	$has_emoji_styles = has_action( 'wp_print_styles', 'print_emoji_styles' );
	if ( $has_emoji_styles ) {
		remove_action( 'wp_print_styles', 'print_emoji_styles' );
	}

	ob_start();
	wp_print_styles();
	wp_print_font_faces();
	wp_print_font_faces_from_style_variations();
	$styles = ob_get_clean();

	if ( $has_emoji_styles ) {
		add_action( 'wp_print_styles', 'print_emoji_styles' );
	}

	ob_start();
	wp_print_head_scripts();
	wp_print_footer_scripts();
	$scripts = ob_get_clean();

	// Restore the original instances.
	$wp_styles  = $current_wp_styles;
	$wp_scripts = $current_wp_scripts;

	return array(
		'styles'  => $styles,
		'scripts' => $scripts,
	);
}

/**
 * Finds the first occurrence of a specific block in an array of blocks.
 *
 * @since 6.3.0
 *
 * @param array  $blocks     Array of blocks.
 * @param string $block_name Name of the block to find.
 * @return array Found block, or empty array if none found.
 */
function wp_get_first_block( $blocks, $block_name ) {
	foreach ( $blocks as $block ) {
		if ( $block_name === $block['blockName'] ) {
			return $block;
		}
		if ( ! empty( $block['innerBlocks'] ) ) {
			$found_block = wp_get_first_block( $block['innerBlocks'], $block_name );

			if ( ! empty( $found_block ) ) {
				return $found_block;
			}
		}
	}

	return array();
}

/**
 * Retrieves Post Content block attributes from the current post template.
 *
 * @since 6.3.0
 * @since 6.4.0 Return null if there is no post content block.
 * @access private
 *
 * @global int $post_ID
 *
 * @return array|null Post Content block attributes array or null if Post Content block doesn't exist.
 */
function wp_get_post_content_block_attributes() {
	global $post_ID;

	$is_block_theme = wp_is_block_theme();

	if ( ! $is_block_theme || ! $post_ID ) {
		return null;
	}

	$template_slug = get_page_template_slug( $post_ID );

	if ( ! $template_slug ) {
		$post_slug      = 'singular';
		$page_slug      = 'singular';
		$template_types = get_block_templates();

		foreach ( $template_types as $template_type ) {
			if ( 'page' === $template_type->slug ) {
				$page_slug = 'page';
			}
			if ( 'single' === $template_type->slug ) {
				$post_slug = 'single';
			}
		}

		$what_post_type = get_post_type( $post_ID );
		switch ( $what_post_type ) {
			case 'page':
				$template_slug = $page_slug;
				break;
			default:
				$template_slug = $post_slug;
				break;
		}
	}

	$current_template = get_block_templates( array( 'slug__in' => array( $template_slug ) ) );

	if ( ! empty( $current_template ) ) {
		$template_blocks    = parse_blocks( $current_template[0]->content );
		$post_content_block = wp_get_first_block( $template_blocks, 'core/post-content' );

		if ( isset( $post_content_block['attrs'] ) ) {
			return $post_content_block['attrs'];
		}
	}

	return null;
}

/**
 * Returns the contextualized block editor settings for a selected editor context.
 *
 * @since 5.8.0
 *
 * @param array                   $custom_settings      Custom settings to use with the given editor type.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 * @return array The contextualized block editor settings.
 */
function get_block_editor_settings( array $custom_settings, $block_editor_context ) {
	$editor_settings = array_merge(
		get_default_block_editor_settings(),
		array(
			'allowedBlockTypes' => get_allowed_block_types( $block_editor_context ),
			'blockCategories'   => get_block_categories( $block_editor_context ),
		),
		$custom_settings
	);

	$editor_settings['__experimentalBlockBindingsSupportedAttributes'] = array();
	foreach ( array_keys( WP_Block_Type_Registry::get_instance()->get_all_registered() ) as $block_type ) {
		$supported_block_attributes = get_block_bindings_supported_attributes( $block_type );
		if ( ! empty( $supported_block_attributes ) ) {
			$editor_settings['__experimentalBlockBindingsSupportedAttributes'][ $block_type ] = $supported_block_attributes;
		}
	}

	$global_styles = array();
	$presets       = array(
		array(
			'css'            => 'variables',
			'__unstableType' => 'presets',
			'isGlobalStyles' => true,
		),
		array(
			'css'            => 'presets',
			'__unstableType' => 'presets',
			'isGlobalStyles' => true,
		),
	);
	foreach ( $presets as $preset_style ) {
		$actual_css = wp_get_global_stylesheet( array( $preset_style['css'] ) );
		if ( '' !== $actual_css ) {
			$preset_style['css'] = $actual_css;
			$global_styles[]     = $preset_style;
		}
	}

	$block_classes = array(
		'css'            => 'styles',
		'__unstableType' => 'theme',
		'isGlobalStyles' => true,
	);
	$actual_css    = wp_get_global_stylesheet( array( $block_classes['css'] ) );
	if ( '' !== $actual_css ) {
		$block_classes['css'] = $actual_css;
		$global_styles[]      = $block_classes;
	}

	// Get any additional css from the customizer and add it before global styles custom CSS.
	$global_styles[] = array(
		'css'            => wp_get_custom_css(),
		'__unstableType' => 'user',
		'isGlobalStyles' => false,
	);

	/*
	 * Add the custom CSS as a separate stylesheet so any invalid CSS
	 * entered by users does not break other global styles.
	 */
	$global_styles[] = array(
		'css'            => wp_get_global_stylesheet( array( 'custom-css' ) ),
		'__unstableType' => 'user',
		'isGlobalStyles' => true,
	);

	$editor_settings['styles'] = array_merge( $global_styles, get_block_editor_theme_styles() );

	$editor_settings['__experimentalFeatures'] = wp_get_global_settings();
	// These settings may need to be updated based on data coming from theme.json sources.
	if ( isset( $editor_settings['__experimentalFeatures']['color']['palette'] ) ) {
		$colors_by_origin          = $editor_settings['__experimentalFeatures']['color']['palette'];
		$editor_settings['colors'] = $colors_by_origin['custom'] ?? $colors_by_origin['theme'] ?? $colors_by_origin['default'];
	}
	if ( isset( $editor_settings['__experimentalFeatures']['color']['gradients'] ) ) {
		$gradients_by_origin          = $editor_settings['__experimentalFeatures']['color']['gradients'];
		$editor_settings['gradients'] = $gradients_by_origin['custom'] ?? $gradients_by_origin['theme'] ?? $gradients_by_origin['default'];
	}
	if ( isset( $editor_settings['__experimentalFeatures']['typography']['fontSizes'] ) ) {
		$font_sizes_by_origin         = $editor_settings['__experimentalFeatures']['typography']['fontSizes'];
		$editor_settings['fontSizes'] = $font_sizes_by_origin['custom'] ?? $font_sizes_by_origin['theme'] ?? $font_sizes_by_origin['default'];
	}
	if ( isset( $editor_settings['__experimentalFeatures']['color']['custom'] ) ) {
		$editor_settings['disableCustomColors'] = ! $editor_settings['__experimentalFeatures']['color']['custom'];
		unset( $editor_settings['__experimentalFeatures']['color']['custom'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['color']['customGradient'] ) ) {
		$editor_settings['disableCustomGradients'] = ! $editor_settings['__experimentalFeatures']['color']['customGradient'];
		unset( $editor_settings['__experimentalFeatures']['color']['customGradient'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['typography']['customFontSize'] ) ) {
		$editor_settings['disableCustomFontSizes'] = ! $editor_settings['__experimentalFeatures']['typography']['customFontSize'];
		unset( $editor_settings['__experimentalFeatures']['typography']['customFontSize'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['typography']['lineHeight'] ) ) {
		$editor_settings['enableCustomLineHeight'] = $editor_settings['__experimentalFeatures']['typography']['lineHeight'];
		unset( $editor_settings['__experimentalFeatures']['typography']['lineHeight'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['spacing']['units'] ) ) {
		$editor_settings['enableCustomUnits'] = $editor_settings['__experimentalFeatures']['spacing']['units'];
		unset( $editor_settings['__experimentalFeatures']['spacing']['units'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['spacing']['padding'] ) ) {
		$editor_settings['enableCustomSpacing'] = $editor_settings['__experimentalFeatures']['spacing']['padding'];
		unset( $editor_settings['__experimentalFeatures']['spacing']['padding'] );
	}
	if ( isset( $editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'] ) ) {
		$editor_settings['disableCustomSpacingSizes'] = ! $editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'];
		unset( $editor_settings['__experimentalFeatures']['spacing']['customSpacingSize'] );
	}

	if ( isset( $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'] ) ) {
		$spacing_sizes_by_origin         = $editor_settings['__experimentalFeatures']['spacing']['spacingSizes'];
		$editor_settings['spacingSizes'] = $spacing_sizes_by_origin['custom'] ?? $spacing_sizes_by_origin['theme'] ?? $spacing_sizes_by_origin['default'];
	}

	$editor_settings['__unstableResolvedAssets']         = _wp_get_iframed_editor_assets();
	$editor_settings['__unstableIsBlockBasedTheme']      = wp_is_block_theme();
	$editor_settings['localAutosaveInterval']            = 15;
	$editor_settings['disableLayoutStyles']              = current_theme_supports( 'disable-layout-styles' );
	$editor_settings['__experimentalDiscussionSettings'] = array(
		'commentOrder'         => get_option( 'comment_order' ),
		'commentsPerPage'      => get_option( 'comments_per_page' ),
		'defaultCommentsPage'  => get_option( 'default_comments_page' ),
		'pageComments'         => get_option( 'page_comments' ),
		'threadComments'       => get_option( 'thread_comments' ),
		'threadCommentsDepth'  => get_option( 'thread_comments_depth' ),
		'defaultCommentStatus' => get_option( 'default_comment_status' ),
		'avatarURL'            => get_avatar_url(
			'',
			array(
				'size'          => 96,
				'force_default' => true,
				'default'       => get_option( 'avatar_default' ),
			)
		),
	);

	$post_content_block_attributes = wp_get_post_content_block_attributes();

	if ( isset( $post_content_block_attributes ) ) {
		$editor_settings['postContentAttributes'] = $post_content_block_attributes;
	}

	$editor_settings['canUpdateBlockBindings'] = current_user_can( 'edit_block_binding', $block_editor_context );

	/**
	 * Filters the settings to pass to the block editor for all editor type.
	 *
	 * @since 5.8.0
	 *
	 * @param array                   $editor_settings      Default editor settings.
	 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
	 */
	$editor_settings = apply_filters( 'block_editor_settings_all', $editor_settings, $block_editor_context );

	if ( ! empty( $block_editor_context->post ) ) {
		$post = $block_editor_context->post;

		/**
		 * Filters the settings to pass to the block editor.
		 *
		 * @since 5.0.0
		 * @deprecated 5.8.0 Use the {@see 'block_editor_settings_all'} filter instead.
		 *
		 * @param array   $editor_settings Default editor settings.
		 * @param WP_Post $post            Post being edited.
		 */
		$editor_settings = apply_filters_deprecated( 'block_editor_settings', array( $editor_settings, $post ), '5.8.0', 'block_editor_settings_all' );
	}

	$editor_settings['canEditCSS'] = current_user_can( 'edit_css' );

	return $editor_settings;
}

/**
 * Preloads common data used with the block editor by specifying an array of
 * REST API paths that will be preloaded for a given block editor context.
 *
 * @since 5.8.0
 *
 * @global WP_Post           $post              Global post object.
 * @global WP_Scripts        $wp_scripts        The WP_Scripts object for printing scripts.
 * @global WP_Styles         $wp_styles         The WP_Styles object for printing styles.
 * @global WP_Script_Modules $wp_script_modules The WP_Script_Modules object for printing script modules.
 *
 * @param (string|string[])[]     $preload_paths        List of paths to preload.
 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
 */
function block_editor_rest_api_preload( array $preload_paths, $block_editor_context ) {
	global $post, $wp_scripts, $wp_styles, $wp_script_modules;

	/**
	 * Filters the array of REST API paths that will be used to preloaded common data for the block editor.
	 *
	 * @since 5.8.0
	 *
	 * @param (string|string[])[]     $preload_paths        Array of paths to preload.
	 * @param WP_Block_Editor_Context $block_editor_context The current block editor context.
	 */
	$preload_paths = apply_filters( 'block_editor_rest_api_preload_paths', $preload_paths, $block_editor_context );

	if ( ! empty( $block_editor_context->post ) ) {
		$selected_post = $block_editor_context->post;

		/**
		 * Filters the array of paths that will be preloaded.
		 *
		 * Preload common data by specifying an array of REST API paths that will be preloaded.
		 *
		 * @since 5.0.0
		 * @deprecated 5.8.0 Use the {@see 'block_editor_rest_api_preload_paths'} filter instead.
		 *
		 * @param (string|string[])[] $preload_paths Array of paths to preload.
		 * @param WP_Post             $selected_post Post being edited.
		 */
		$preload_paths = apply_filters_deprecated( 'block_editor_preload_paths', array( $preload_paths, $selected_post ), '5.8.0', 'block_editor_rest_api_preload_paths' );
	}

	if ( empty( $preload_paths ) ) {
		return;
	}

	/*
	 * Ensure the globals $post, $wp_scripts, $wp_styles, and $wp_script_modules
	 * remain the same after API data is preloaded.
	 * Because API preloading can call the_content and other filters, plugins
	 * can unexpectedly modify the global $post or enqueue assets which are not
	 * intended for the block editor.
	 *
	 * Copies are swapped in for the duration of the preload and the original
	 * instances are restored afterwards, so that hooks and other references
	 * bound to those instances remain valid.
	 */
	$original_post              = $post;
	$original_wp_scripts        = $wp_scripts;
	$original_wp_styles         = $wp_styles;
	$original_wp_script_modules = $wp_script_modules;

	$post              = ! empty( $post ) ? clone $post : $post;
	$wp_scripts        = ! empty( $wp_scripts ) ? clone $wp_scripts : $wp_scripts;
	$wp_styles         = ! empty( $wp_styles ) ? clone $wp_styles : $wp_styles;
	$wp_script_modules = ! empty( $wp_script_modules ) ? clone $wp_script_modules : $wp_script_modules;

	foreach ( $preload_paths as &$path ) {
		if ( is_string( $path ) && ! str_starts_with( $path, '/' ) ) {
			$path = '/' . $path;
			continue;
		}

		if ( is_array( $path ) && is_string( $path[0] ) && ! str_starts_with( $path[0], '/' ) ) {
			$path[0] = '/' . $path[0];
		}
	}

	unset( $path );

	$preload_data = array_reduce(
		$preload_paths,
		'rest_preload_api_request',
		array()
	);

	// Restore the original $post, $wp_scripts, $wp_styles, and $wp_script_modules instances.
	$post = $original_post;
	if ( ! empty( $post ) ) {
		setup_postdata( $post );
	}
	$wp_scripts        = $original_wp_scripts;
	$wp_styles         = $original_wp_styles;
	$wp_script_modules = $original_wp_script_modules;

	wp_add_inline_script(
		'wp-api-fetch',
		sprintf(
			'wp.apiFetch.use( wp.apiFetch.createPreloadingMiddleware( %s ) );',
			wp_json_encode( $preload_data, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES )
		),
		'after'
	);
}

/**
 * Creates an array of theme styles to load into the block editor.
 *
 * @since 5.8.0
 *
 * @global array $editor_styles
 *
 * @return array An array of theme styles for the block editor.
 */
function get_block_editor_theme_styles() {
	global $editor_styles;

	$styles = array();

	if ( $editor_styles && current_theme_supports( 'editor-styles' ) ) {
		foreach ( $editor_styles as $style ) {
			if ( preg_match( '~^(https?:)?//~', $style ) ) {
				$response = wp_remote_get( $style );
				if ( ! is_wp_error( $response ) ) {
					$styles[] = array(
						'css'            => wp_remote_retrieve_body( $response ),
						'__unstableType' => 'theme',
						'isGlobalStyles' => false,
					);
				}
			} else {
				$file = get_theme_file_path( $style );
				if ( is_file( $file ) ) {
					$styles[] = array(
						'css'            => file_get_contents( $file ),
						'baseURL'        => get_theme_file_uri( $style ),
						'__unstableType' => 'theme',
						'isGlobalStyles' => false,
					);
				}
			}
		}
	}

	return $styles;
}

/**
 * Returns the classic theme supports settings for block editor.
 *
 * @since 6.2.0
 * @since 6.6.0 Add support for 'editor-spacing-sizes' theme support.
 *
 * @return array The classic theme supports settings.
 */
function get_classic_theme_supports_block_editor_settings() {
	$theme_settings = array(
		'disableCustomColors'    => get_theme_support( 'disable-custom-colors' ),
		'disableCustomFontSizes' => get_theme_support( 'disable-custom-font-sizes' ),
		'disableCustomGradients' => get_theme_support( 'disable-custom-gradients' ),
		'disableLayoutStyles'    => get_theme_support( 'disable-layout-styles' ),
		'enableCustomLineHeight' => get_theme_support( 'custom-line-height' ),
		'enableCustomSpacing'    => get_theme_support( 'custom-spacing' ),
		'enableCustomUnits'      => get_theme_support( 'custom-units' ),
	);

	// Theme settings.
	$color_palette = current( (array) get_theme_support( 'editor-color-palette' ) );
	if ( false !== $color_palette ) {
		$theme_settings['colors'] = $color_palette;
	}

	$font_sizes = current( (array) get_theme_support( 'editor-font-sizes' ) );
	if ( false !== $font_sizes ) {
		$theme_settings['fontSizes'] = $font_sizes;
	}

	$gradient_presets = current( (array) get_theme_support( 'editor-gradient-presets' ) );
	if ( false !== $gradient_presets ) {
		$theme_settings['gradients'] = $gradient_presets;
	}

	$spacing_sizes = current( (array) get_theme_support( 'editor-spacing-sizes' ) );
	if ( false !== $spacing_sizes ) {
		$theme_settings['spacingSizes'] = $spacing_sizes;
	}

	return $theme_settings;
}

/**
 * Initialize site preview.
 *
 * This function sets IFRAME_REQUEST to true if the site preview parameter is set.
 *
 * @since 6.8.0
 */
function wp_initialize_site_preview_hooks() {
	if (
		! defined( 'IFRAME_REQUEST' ) &&
		isset( $_GET['wp_site_preview'] ) &&
		1 === (int) $_GET['wp_site_preview'] &&
		current_user_can( 'edit_theme_options' )
	) {
		define( 'IFRAME_REQUEST', true );
	}
}

Directory Contents

Dirs: 34 × Files: 264
Name Size Perms Modified Actions
abilities DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
ai-client DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
assets DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
blocks DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
build DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
css DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
customize DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
fonts DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
html-api DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
icons DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
ID3 DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
images DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
IXR DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
js DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
l10n DIR
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
- drwxr-xr-x 2026-10-02 10:08:27
Edit Download
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
PHPMailer DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
pomo DIR
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
Requests DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
rest-api DIR
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
SimplePie DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
sitemaps DIR
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
Text DIR
- drwxr-xr-x 2026-10-02 10:08:26
Edit Download
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
widgets DIR
- drwxr-xr-x 2026-10-02 10:08:28
Edit Download
32.75 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
11.77 KB lrw-r--r-- 2026-08-25 04:32:41
Edit Download
39.12 KB lrw-r--r-- 2026-08-20 16:34:40
Edit Download
2.49 KB lrw-r--r-- 2026-05-06 04:31:59
Edit Download
11.90 KB lrw-r--r-- 2025-09-12 02:58:34
Edit Download
19.56 KB lrw-r--r-- 2026-09-24 04:33:20
Edit Download
7.45 KB lrw-r--r-- 2026-07-23 16:36:13
Edit Download
28.78 KB lrw-r--r-- 2026-09-17 16:32:11
Edit Download
316 B lrw-r--r-- 2022-01-15 12:24:54
Edit Download
15.24 KB lrw-r--r-- 2026-02-11 03:33:02
Edit Download
62.25 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
17.83 KB lrw-r--r-- 2026-08-20 16:34:44
Edit Download
121.61 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
12.61 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
15.45 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
10.76 KB lrw-r--r-- 2026-03-15 04:44:13
Edit Download
13.17 KB lrw-r--r-- 2025-09-12 02:58:36
Edit Download
34.34 KB lrw-r--r-- 2026-10-04 04:33:48
Edit Download
42.59 KB lrw-r--r-- 2026-09-06 16:32:08
Edit Download
56.17 KB lrw-r--r-- 2026-09-27 05:45:18
Edit Download
14.47 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
29.30 KB lrw-r--r-- 2026-03-16 04:33:56
Edit Download
539 B lrw-r--r-- 2024-11-13 04:28:42
Edit Download
367 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
2.55 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
42.65 KB lrw-r--r-- 2025-09-12 02:58:37
Edit Download
401 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
6.61 KB lrw-r--r-- 2024-09-27 04:33:59
Edit Download
664 B lrw-r--r-- 2020-07-21 20:28:02
Edit Download
20.61 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
2.18 KB lrw-r--r-- 2023-08-08 22:32:16
Edit Download
453 B lrw-r--r-- 2024-11-13 04:28:42
Edit Download
457 B lrw-r--r-- 2021-01-26 21:15:58
Edit Download
36.81 KB lrw-r--r-- 2026-08-27 04:34:35
Edit Download
2.41 KB lrw-r--r-- 2023-11-07 21:28:55
Edit Download
8.28 KB lrw-r--r-- 2023-11-07 21:28:55
Edit Download
13.89 KB lrw-r--r-- 2024-07-17 04:29:23
Edit Download
11.76 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
2.65 KB lrw-r--r-- 2023-11-07 21:28:55
Edit Download
7.44 KB lrw-r--r-- 2026-09-06 16:32:08
Edit Download
17.58 KB lrw-r--r-- 2026-09-06 16:32:09
Edit Download
5.22 KB lrw-r--r-- 2026-09-01 04:33:38
Edit Download
16.70 KB lrw-r--r-- 2025-04-16 04:31:55
Edit Download
8.03 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
2.92 KB lrw-r--r-- 2025-09-29 04:33:48
Edit Download
1.32 KB lrw-r--r-- 2022-11-01 22:28:20
Edit Download
4.60 KB lrw-r--r-- 2025-09-12 02:58:31
Edit Download
11.57 KB lrw-r--r-- 2026-01-06 03:40:58
Edit Download
2.50 KB lrw-r--r-- 2025-10-21 16:31:21
Edit Download
1.95 KB lrw-r--r-- 2026-09-04 04:36:15
Edit Download
11.27 KB lrw-r--r-- 2026-09-30 04:34:09
Edit Download
4.24 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
9.99 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
69.58 KB lrw-r--r-- 2026-09-25 04:33:13
Edit Download
6.82 KB lrw-r--r-- 2026-09-09 04:35:11
Edit Download
7.36 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
2.06 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
6.88 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
5.14 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
16.92 KB lrw-r--r-- 2026-09-02 04:35:12
Edit Download
27.57 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
3.93 KB lrw-r--r-- 2026-08-28 04:31:21
Edit Download
48.09 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
17.34 KB lrw-r--r-- 2026-09-02 04:35:12
Edit Download
14.83 KB lrw-r--r-- 2026-07-23 16:36:14
Edit Download
25.50 KB lrw-r--r-- 2026-07-23 16:36:05
Edit Download
198.01 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
56.67 KB lrw-r--r-- 2026-07-23 16:36:12
Edit Download
10.45 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
10.95 KB lrw-r--r-- 2024-11-13 04:28:42
Edit Download
29.30 KB lrw-r--r-- 2026-09-01 04:33:39
Edit Download
70.91 KB lrw-r--r-- 2026-08-28 04:31:20
Edit Download
34.55 KB lrw-r--r-- 2026-09-14 16:31:35
Edit Download
17.03 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
2.59 KB lrw-r--r-- 2025-12-08 03:31:19
Edit Download
39.87 KB lrw-r--r-- 2026-09-09 04:35:11
Edit Download
70.54 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
13.62 KB lrw-r--r-- 2026-06-11 04:32:18
Edit Download
15.54 KB lrw-r--r-- 2026-01-06 03:41:10
Edit Download
7.34 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
253 B lrw-r--r-- 2024-09-28 04:30:05
Edit Download
7.96 KB lrw-r--r-- 2026-09-06 16:32:07
Edit Download
3.35 KB lrw-r--r-- 2026-08-20 16:34:44
Edit Download
969 B lrw-r--r-- 2024-11-13 04:28:43
Edit Download
760 B lrw-r--r-- 2026-05-22 04:31:32
Edit Download
17.76 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
7.06 KB lrw-r--r-- 2026-09-24 04:33:20
Edit Download
12.95 KB lrw-r--r-- 2025-09-12 02:58:35
Edit Download
6.53 KB lrw-r--r-- 2023-08-08 22:32:16
Edit Download
3.58 KB lrw-r--r-- 2026-10-01 04:31:31
Edit Download
5.84 KB lrw-r--r-- 2023-08-08 22:32:16
Edit Download
1.99 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
4.14 KB lrw-r--r-- 2026-01-31 03:31:59
Edit Download
2.91 KB lrw-r--r-- 2022-11-01 22:28:20
Edit Download
16.37 KB lrw-r--r-- 2026-01-11 03:38:44
Edit Download
40.87 KB lrw-r--r-- 2026-09-02 04:35:11
Edit Download
5.63 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
12.83 KB lrw-r--r-- 2026-09-30 04:34:09
Edit Download
20.12 KB lrw-r--r-- 2026-09-06 16:32:09
Edit Download
42.44 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
17.05 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
7.27 KB lrw-r--r-- 2024-02-27 21:28:20
Edit Download
6.64 KB lrw-r--r-- 2026-08-20 16:34:44
Edit Download
16.45 KB lrw-r--r-- 2026-02-14 03:34:03
Edit Download
1.79 KB lrw-r--r-- 2024-02-06 21:46:37
Edit Download
29.79 KB lrw-r--r-- 2026-01-07 03:41:11
Edit Download
6.53 KB lrw-r--r-- 2026-09-14 16:31:35
Edit Download
8.96 KB lrw-r--r-- 2026-08-28 04:31:21
Edit Download
19.84 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
12.57 KB lrw-r--r-- 2026-08-27 04:34:35
Edit Download
17.11 KB lrw-r--r-- 2025-09-12 02:58:37
Edit Download
6.74 KB lrw-r--r-- 2024-07-17 04:29:23
Edit Download
33.16 KB lrw-r--r-- 2026-09-25 04:33:13
Edit Download
4.95 KB lrw-r--r-- 2026-01-07 03:41:11
Edit Download
4.25 KB lrw-r--r-- 2025-10-02 04:31:21
Edit Download
24.62 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
29.44 KB lrw-r--r-- 2026-09-09 04:35:15
Edit Download
8.90 KB lrw-r--r-- 2026-08-27 04:34:35
Edit Download
160.03 KB lrw-r--r-- 2026-09-24 04:33:21
Edit Download
6.72 KB lrw-r--r-- 2022-11-01 22:28:20
Edit Download
10.90 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
4.80 KB lrw-r--r-- 2026-03-03 03:32:31
Edit Download
3.44 KB lrw-r--r-- 2026-03-03 03:32:31
Edit Download
11.19 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
62.19 KB lrw-r--r-- 2026-09-24 04:33:21
Edit Download
2.49 KB lrw-r--r-- 2026-09-01 04:33:39
Edit Download
9.11 KB lrw-r--r-- 2026-07-23 16:36:10
Edit Download
39.79 KB lrw-r--r-- 2026-08-06 15:47:33
Edit Download
36.08 KB lrw-r--r-- 2026-09-11 04:36:51
Edit Download
7.15 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
3.47 KB lrw-r--r-- 2025-09-17 04:31:28
Edit Download
1.86 KB lrw-r--r-- 2026-07-23 16:36:10
Edit Download
30.92 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
8.09 KB lrw-r--r-- 2026-08-27 04:34:35
Edit Download
7.70 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
13.07 KB lrw-r--r-- 2026-09-03 04:31:23
Edit Download
19.00 KB lrw-r--r-- 2026-09-14 16:31:35
Edit Download
18.35 KB lrw-r--r-- 2026-09-09 04:35:11
Edit Download
40.95 KB lrw-r--r-- 2026-08-28 04:31:21
Edit Download
5.56 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
979 B lrw-r--r-- 2024-02-15 21:28:24
Edit Download
18.48 KB lrw-r--r-- 2026-07-23 16:36:14
Edit Download
10.54 KB lrw-r--r-- 2026-09-11 04:36:52
Edit Download
1.76 KB lrw-r--r-- 2026-08-20 16:34:40
Edit Download
34.84 KB lrw-r--r-- 2026-09-09 04:36:05
Edit Download
7.19 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
220.25 KB lrw-r--r-- 2026-09-24 04:33:21
Edit Download
65.07 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
28.38 KB lrw-r--r-- 2026-09-22 10:40:12
Edit Download
4.69 KB lrw-r--r-- 2025-04-16 04:31:55
Edit Download
2.88 KB lrw-r--r-- 2026-01-12 03:38:47
Edit Download
43.24 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
2.29 KB lrw-r--r-- 2026-07-23 16:36:11
Edit Download
22.78 KB lrw-r--r-- 2026-09-24 04:33:20
Edit Download
28.71 KB lrw-r--r-- 2026-09-02 04:35:10
Edit Download
12.97 KB lrw-r--r-- 2026-09-09 04:35:15
Edit Download
4.02 KB lrw-r--r-- 2026-08-22 04:31:22
Edit Download
18.06 KB lrw-r--r-- 2026-08-28 04:31:21
Edit Download
214.92 KB lrw-r--r-- 2026-09-26 04:33:03
Edit Download
25.91 KB lrw-r--r-- 2026-10-04 04:33:48
Edit Download
119.32 KB lrw-r--r-- 2026-09-09 04:35:11
Edit Download
373 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
343 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
338 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
101.35 KB lrw-r--r-- 2026-09-06 16:32:07
Edit Download
148.09 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
18.93 KB lrw-r--r-- 2026-07-23 16:36:17
Edit Download
21.95 KB lrw-r--r-- 2026-07-23 16:36:06
Edit Download
32.22 KB lrw-r--r-- 2026-08-27 04:34:35
Edit Download
45.56 KB lrw-r--r-- 2026-09-27 05:45:18
Edit Download
400 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
11.10 KB lrw-r--r-- 2026-03-24 16:30:52
Edit Download
38.90 KB lrw-r--r-- 2026-09-25 04:33:13
Edit Download
2.23 KB lrw-r--r-- 2026-07-23 16:36:05
Edit Download
191.57 KB lrw-r--r-- 2026-10-01 04:31:31
Edit Download
338 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
38.31 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
4.00 KB lrw-r--r-- 2026-01-07 03:41:09
Edit Download
6.37 MB lrw-r--r-- 2026-10-03 16:50:49
Edit Download
5.49 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
3.14 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
2.50 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
1.16 KB lrw-r--r-- 2020-01-29 08:15:18
Edit Download
4.00 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
3.56 KB lrw-r--r-- 2026-08-29 04:31:22
Edit Download
28.57 KB lrw-r--r-- 2026-09-20 16:34:27
Edit Download
9.56 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
351.20 KB lrw-r--r-- 2026-09-27 05:45:15
Edit Download
297.56 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
20.02 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
8.45 KB lrw-r--r-- 2025-12-23 03:31:15
Edit Download
182.78 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
21.12 KB lrw-r--r-- 2026-09-24 04:33:20
Edit Download
28.35 KB lrw-r--r-- 2026-09-27 05:45:18
Edit Download
5.72 KB lrw-r--r-- 2025-04-16 04:31:55
Edit Download
4.63 KB lrw-r--r-- 2023-08-08 22:32:16
Edit Download
6.97 KB lrw-r--r-- 2026-09-30 04:34:09
Edit Download
44 B lrw-r--r-- 2026-10-02 10:08:26
Edit Download
575 B lrw-r--r-- 2024-02-01 21:35:24
Edit Download
7.62 KB lrw-r--r-- 2026-07-01 04:32:59
Edit Download
86.30 KB lrw-r--r-- 2026-10-01 04:31:31
Edit Download
70.11 KB lrw-r--r-- 2026-09-06 16:32:10
Edit Download
157.41 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
56.65 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
162 B lrw-r--r-- 2019-10-09 00:49:04
Edit Download
64.20 KB lrw-r--r-- 2026-09-15 04:33:01
Edit Download
231.56 KB lrw-r--r-- 2026-09-11 04:36:52
Edit Download
68.38 KB lrw-r--r-- 2026-09-29 04:35:33
Edit Download
25.71 KB lrw-r--r-- 2026-07-23 16:36:16
Edit Download
4.81 KB lrw-r--r-- 2024-07-17 04:29:23
Edit Download
6.48 KB lrw-r--r-- 2023-03-29 22:28:43
Edit Download
21.28 KB lrw-r--r-- 2026-07-23 16:36:10
Edit Download
2.79 KB lrw-r--r-- 2025-10-18 04:31:49
Edit Download
90.39 KB lrw-r--r-- 2026-09-06 16:32:07
Edit Download
19.58 KB lrw-r--r-- 2026-07-23 16:36:54
Edit Download
3.89 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
4.10 KB lrw-r--r-- 2026-07-23 16:36:05
Edit Download
42.18 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
25.42 KB lrw-r--r-- 2026-09-01 04:33:38
Edit Download
43.23 KB lrw-r--r-- 2026-03-11 04:34:22
Edit Download
103.59 KB lrw-r--r-- 2026-09-09 04:35:15
Edit Download
6.18 KB lrw-r--r-- 2025-04-16 04:31:55
Edit Download
125.07 KB lrw-r--r-- 2026-09-30 04:34:09
Edit Download
37.02 KB lrw-r--r-- 2026-09-27 05:45:15
Edit Download
6.90 KB lrw-r--r-- 2026-01-11 03:38:44
Edit Download
68.34 KB lrw-r--r-- 2026-09-15 04:33:01
Edit Download
10.62 KB lrw-r--r-- 2025-04-16 04:31:53
Edit Download
306.57 KB lrw-r--r-- 2026-09-25 04:33:12
Edit Download
36.72 KB lrw-r--r-- 2026-09-25 04:33:13
Edit Download
200 B lrw-r--r-- 2020-11-12 18:47:08
Edit Download
200 B lrw-r--r-- 2020-11-12 18:47:08
Edit Download
101.58 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
30.58 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
19.11 KB lrw-r--r-- 2026-08-19 04:35:04
Edit Download
5.06 KB lrw-r--r-- 2022-05-24 22:36:16
Edit Download
277 B lrw-r--r-- 2026-07-23 16:36:10
Edit Download
22.66 KB lrw-r--r-- 2025-09-12 02:58:34
Edit Download
159.79 KB lrw-r--r-- 2026-09-30 04:34:09
Edit Download
12.02 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
258 B lrw-r--r-- 2020-02-06 14:03:12
Edit Download
23.55 KB lrw-r--r-- 2026-09-27 05:45:17
Edit Download
3.19 KB lrw-r--r-- 2026-08-20 16:34:40
Edit Download
11.60 KB lrw-r--r-- 2026-07-23 16:36:13
Edit Download
441 B lrw-r--r-- 2020-11-12 18:47:08
Edit Download
7.86 KB lrw-r--r-- 2026-09-09 04:35:11
Edit Download
180.27 KB lrw-r--r-- 2026-09-27 05:45:16
Edit Download
544 B lrw-r--r-- 2023-11-07 21:28:55
Edit Download
4.17 KB lrw-r--r-- 2026-03-11 04:35:09
Edit Download
37.92 KB lrw-r--r-- 2026-09-22 10:40:12
Edit Download
1.85 KB lrw-r--r-- 2026-01-06 03:42:33
Edit Download
2.82 KB lrw-r--r-- 2026-01-06 03:41:02
Edit Download
3.96 KB lrw-r--r-- 2026-09-25 04:33:12
Edit Download
9.26 KB lrw-r--r-- 2026-08-05 12:02:11
Edit Download
131.76 KB lrw-r--r-- 2026-09-17 16:32:12
Edit Download
37.37 KB lrw-r--r-- 2026-07-23 16:36:13
Edit Download
177.15 KB lrw-r--r-- 2026-09-27 05:45:18
Edit Download
6.81 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
6.45 KB lrw-r--r-- 2026-07-23 16:36:19
Edit Download
1.09 KB lrw-r--r-- 2026-10-04 04:33:49
Edit Download
19.79 KB lrw-r--r-- 2026-09-11 04:36:52
Edit Download
602 B lrw-r--r-- 2026-01-17 03:31:35
Edit Download
69.37 KB lrw-r--r-- 2026-09-22 04:32:45
Edit Download
445 B lrw-r--r-- 2022-11-01 22:28:20
Edit Download
792 B lrw-r--r-- 2026-07-23 16:36:16
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).