plugins/0000755000312500031250000000000012654410627012644 5ustar eacbforgeacbforgplugins/mojo-marketplace-wp-plugin/0000755000312500031250000000000012632047572020017 5ustar eacbforgeacbforgplugins/mojo-marketplace-wp-plugin/inc/0000755000312500031250000000000012654411246020565 5ustar eacbforgeacbforgplugins/mojo-marketplace-wp-plugin/inc/jetpack.php0000644000312500031250000000044712323761040022715 0ustar eacbforgeacbforgID, $user->user_login ); wp_set_auth_cookie( $user->ID ); do_action( 'wp_login', $user->user_login ); delete_transient( 'mm_sso' ); do_action( 'mmsso_success' ); if ( isset ( $_GET['redirect'] ) ) { $page = esc_url_raw( $_GET['redirect'] ); } else { $page = ''; } wp_safe_redirect( admin_url( $page ) ); } else { mm_sso_req_login(); } } else { mm_sso_add_failed_attempt(); mm_sso_req_login(); } die(); } add_action( 'wp_ajax_nopriv_mmsso-check', 'mm_sso_check' ); add_action( 'wp_ajax_mmsso-check', 'mm_sso_check' ); function mm_sso_req_login() { do_action( 'mmsso_fail' ); wp_safe_redirect( wp_login_url() ); } function mm_sso_get_attempt_id() { return 'mmsso' . esc_url( $_SERVER['REMOTE_ADDR'] ); } function mm_sso_add_failed_attempt() { $attempts = get_transient( mm_sso_get_attempt_id(), 0 ); $attempts++; set_transient( mm_sso_get_attempt_id(), $attempts, 300 ); } function mm_sso_check_blocked() { $attempts = get_transient( mm_sso_get_attempt_id(), 0 ); if ( $attempts > 4 ) { return true; } return false; } plugins/mojo-marketplace-wp-plugin/inc/mojo-themes.php0000644000312500031250000000404212654411246023525 0ustar eacbforgeacbforg 'Mojo Marketplace', 'mojo-platform' => 'wordpress', 'mojo-type' => 'themes', 'mojo-items' => 'recent', 'mojo-image-size' => 'thumbnail', 'mojo-quantity' => '3', 'mojo-preview' => 'off', 'mojo-seller' => '', 'mojo-aff-id' => '' ); public function __construct() { parent::__construct( 'mojo_widget', 'MOJO WordPress Themes', array( 'description' => __( 'Add Themes/Plugins from MOJO.', 'mojo-widget' ) ) ); } public function form( $instance ) { $instance = wp_parse_args( $instance, $this->defaults ); ?> />

defaults ); $query = array(); if( $instance['mojo-platform'] == "wordpress" && $instance['mojo-type'] == "plugins" ) { $instance['mojo-type'] = "themes"; //Because MOJO Cannot sell WP plugins... } if( $instance['mojo-quantity'] != 10 ) { $query['count'] = $instance['mojo-quantity']; } if( 2 < strlen( $instance['mojo-seller'] ) ) { $query['seller'] = $instance['mojo-seller']; } if( 'on' == $instance['mojo-preview'] ) { global $use_mm_styles; $use_mm_styles = true; } $items = mm_api( $instance, $query ); /*if there are no popular items show default*/ if( strlen( $items['body'] ) < $instance['mojo-quantity'] AND $instance['mojo-items'] == 'popular' ) { $items = mm_api(); } if( ! is_wp_error( $items ) ) { $items = json_decode( $items['body'] ); $aff_id = ( isset( $instance['mojo-aff-id'] ) AND strlen( $instance['mojo-aff-id'] ) > 0 ) ? $instance['mojo-aff-id'] : ''; $content = ""; $count = 0; foreach ( $items as $item ) { $item->name = apply_filters( 'mm_item_name', $item->name ); $content .= '
'; $content .= ''; if( 'on' == $instance['mojo-preview'] ) { $content .= ''; } $content .= '

' . $item->name . '

'; $content .= '
'; $count++; } $title = apply_filters( 'widget_title', $instance['mojo-title'] ); echo $args['before_widget']; if( ! empty( $title ) ) { echo $args['before_title'] . $title . $args['after_title']; } echo $content; echo $args['after_widget']; } } } function mm_register_widget() { register_widget( 'Mojo_Widget' ); } add_action( 'widgets_init', 'mm_register_widget' );plugins/mojo-marketplace-wp-plugin/inc/coming-soon.php0000644000312500031250000002743612654411246023542 0ustar eacbforgeacbforg

Your site is currently displaying a "Coming Soon" page. Once you are ready to launch your site true ) ) );?>'>click here.

Congratulations. Your site is now live, '>click here to view it.

"; } return; } function mm_cs_enabled_callback( $args ) { $value = get_option( $args['field'], 'false' ); echo "On "; echo "Off "; } function mm_cs_settings() { $section_name = 'mm_cs_settings_section'; $section_hook = 'general'; add_settings_section( $section_name, //Section 'MOJO Coming Soon', //Title '__return_false', //section description callback $section_hook //Setting Hook ); add_settings_field( 'mm_coming_soon', 'Enable', 'mm_cs_enabled_callback', $section_hook, $section_name, array( 'field' => 'mm_coming_soon' ) ); register_setting( 'general', 'mm_coming_soon' ); } add_action( 'admin_init', 'mm_cs_settings' ); function mm_cs_content() { if ( stripos( @exec( 'hostname' ), 'bluehost' ) ) { $powered_by = "
Powered by Bluehost
"; } else { $powered_by = ""; } echo mm_minify( " " . get_option( 'blogname' ) . " — Coming Soon " . mm_cs_meta() . "

Website Coming Soon

This page is used to test the proper operation of your recent MOJO Marketplace installation of WordPress! If you can read this page it means your installation was successful!

Admin Login

Just visiting?

The owner of this website is working on making this site awesome. Why not bookmark it and come back again later. We are sure you will not be disappointed.

Are you the Site Owner?

You should login to your WordPress installation and prepare your site for launch.

To launch your site just click the link in the banner at the top of the screen.

WordPress Themes

  • WooCommerce Themes
  • Responsive WordPress Themes
  • Business WordPress Themes
  • Blog WordPress Themes

WordPress Services

  • Install WordPress Theme
  • Make My Site Look Like the Demo
  • Backup Your WordPress Website
  • WordPress Theme Training

About MOJO

  • Explore MOJO
  • Sell with MOJO
  • MOJO Affiliates
  • FAQs
Login What is this?
" . $powered_by . "

This is the default coming soon page for this site because it was installed via MOJO Marketplace.

If you are the site owner and are finished building the site you can click the link in the banner of the administration panel to disable it.

close login
" ); }plugins/mojo-marketplace-wp-plugin/inc/plugin-search.php0000644000312500031250000002440712654410417024045 0ustar eacbforgeacbforg '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/commerce/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/shop/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/store/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/checkout/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/credit/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/sell/i'] = array( 'id' => '530782e3-1388-4e6a-a8ac-6f7b0a140b28', 'name' => 'WooCommerce', 'url' => 'https://www.mojomarketplace.com/item/integrate-woocommerce-onto-wordpress-site' ); $patterns['/analytics/i'] = array( 'id' => '530697a6-92cc-4329-9cdd-21e40a140b28', 'name' => 'Google Analytics', 'url' => 'https://www.mojomarketplace.com/item/add-google-analytics-to-your-wordpress-site' ); $patterns['/stats/i'] = array( 'id' => '530697a6-92cc-4329-9cdd-21e40a140b28', 'name' => 'Google Analytics', 'url' => 'https://www.mojomarketplace.com/item/add-google-analytics-to-your-wordpress-site' ); $patterns['/sitemap/i'] = array( 'id' => '530788ba-c450-45eb-b154-47ce0a141528', 'name' => 'Sitemap', 'url' => 'https://www.mojomarketplace.com/item/add-an-seo-friendly-sitemap-to-your-wordpress-site' ); $patterns['/seo/i'] = array( 'id' => '53d7ea4d-e52c-42fe-9b7e-5ed50a141528', 'name' => 'Search Engine Optimization (seo)', 'url' => 'https://www.mojomarketplace.com/item/wordpress-seo' ); $patterns['/yoast/i'] = array( 'id' => '53d7ea4d-e52c-42fe-9b7e-5ed50a141528', 'name' => 'Setting Up Yoast SEO', 'url' => 'https://www.mojomarketplace.com/item/wordpress-seo' ); $patterns['/buddypress/i'] = array( 'id' => '53078511-1974-470c-8ed5-43500a141528', 'name' => 'BuddyPress', 'url' => 'https://www.mojomarketplace.com/item/install-and-setup-buddypress-wordpress-plugin' ); $patterns['/buddy press/i'] = array( 'id' => '53078511-1974-470c-8ed5-43500a141528', 'name' => 'BuddyPress', 'url' => 'https://www.mojomarketplace.com/item/install-and-setup-buddypress-wordpress-plugin' ); $patterns['/bbpress/i'] = array( 'id' => '530783b3-d4d8-4823-ad1e-70310a140b28', 'name' => 'bbPress', 'url' => 'https://www.mojomarketplace.com/item/install-and-setup-bbpress-wordpress-plugin' ); $patterns['/bb press/i'] = array( 'id' => '530783b3-d4d8-4823-ad1e-70310a140b28', 'name' => 'bbPress', 'url' => 'https://www.mojomarketplace.com/item/install-and-setup-bbpress-wordpress-plugin' ); $patterns['/contact/i'] = array( 'id' => '53078468-fc10-45de-b813-70b70a140b28', 'name' => 'Contact Forms', 'url' => 'https://www.mojomarketplace.com/item/create-a-wordpress-contact-form' ); $patterns['/form/i'] = array( 'id' => '53078468-fc10-45de-b813-70b70a140b28', 'name' => 'Contact Forms', 'url' => 'https://www.mojomarketplace.com/item/create-a-wordpress-contact-form' ); $patterns['/map/i'] = array( 'id' => '530786ea-27b8-4f1b-bc94-46650a141528', 'name' => 'Google Maps', 'url' => 'https://www.mojomarketplace.com/item/add-a-google-map-to-my-wordpress-site' ); $patterns['/locat/i'] = array( 'id' => '530786ea-27b8-4f1b-bc94-46650a141528', 'name' => 'Google Maps', 'url' => 'https://www.mojomarketplace.com/item/add-a-google-map-to-my-wordpress-site' ); $patterns['/secur/i'] = array( 'id' => '53b4501f-180c-4bd3-9b3f-56cb0a141528', 'name' => 'Securing Your WordPress Site', 'url' => 'https://www.mojomarketplace.com/item/make-my-wordpress-site-secure' ); $patterns['/hack/i'] = array( 'id' => '53b4501f-180c-4bd3-9b3f-56cb0a141528', 'name' => 'Securing Your WordPress Site', 'url' => 'https://www.mojomarketplace.com/item/make-my-wordpress-site-secure' ); $patterns['/fence/i'] = array( 'id' => '53b4501f-180c-4bd3-9b3f-56cb0a141528', 'name' => 'Securing Your WordPress Site', 'url' => 'https://www.mojomarketplace.com/item/make-my-wordpress-site-secure' ); $patterns['/protect/i'] = array( 'id' => '53b4501f-180c-4bd3-9b3f-56cb0a141528', 'name' => 'Securing Your WordPress Site', 'url' => 'https://www.mojomarketplace.com/item/make-my-wordpress-site-secure' ); $patterns['/facebook/i'] = array( 'id' => '53d7e760-5140-4761-ac5b-5bd00a141528', 'name' => 'Facebook Integration', 'url' => 'https://www.mojomarketplace.com/item/setup-facebook-social-plugin-to-a-wordpress-site' ); $patterns['/shar/i'] = array( 'id' => '53d7e760-5140-4761-ac5b-5bd00a141528', 'name' => 'Facebook Integration', 'url' => 'https://www.mojomarketplace.com/item/setup-facebook-social-plugin-to-a-wordpress-site' ); $patterns['/social/i'] = array( 'id' => '53d7e760-5140-4761-ac5b-5bd00a141528', 'name' => 'Facebook Integration', 'url' => 'https://www.mojomarketplace.com/item/setup-facebook-social-plugin-to-a-wordpress-site' ); $patterns['/backup/i'] = array( 'id' => '53e00b04-03b8-4025-bb75-173c0a141528', 'name' => 'Configuring Your Site Backup', 'url' => 'https://www.mojomarketplace.com/item/backup-your-wordpress-website' ); $patterns['/restor/i'] = array( 'id' => '53e00b04-03b8-4025-bb75-173c0a141528', 'name' => 'Configuring Your Site Backup', 'url' => 'https://www.mojomarketplace.com/item/backup-your-wordpress-website' ); $patterns['/speed/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Speeding Up Your Site', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/cache/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Configuring Your Site Caching', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/fast/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Making Your Site Faster', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/optimi/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Optimizing Your Site', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/quick/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Making Your Site Quick', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/slow/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Fixing Your Slow Site', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/performance/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Improving Site Performance', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/proformance/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Improving site Performance', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/minif/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Minfy Your CSS and Javascript', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/compres/i'] = array( 'id' => '53ee5b7a-aef4-44f3-a4dd-48b90a140b28', 'name' => 'Compress Your Images', 'url' => 'https://www.mojomarketplace.com/item/speed-up-my-wordpress-site' ); $patterns['/color/i'] = array( 'id' => '53ee5ec2-eff0-441a-944d-52050a140b28', 'name' => 'Changing Your Site Colors', 'url' => 'https://www.mojomarketplace.com/item/use-my-branding-to-customize-my-wordpress-site' ); $patterns['/brand/i'] = array( 'id' => '53ee5ec2-eff0-441a-944d-52050a140b28', 'name' => 'Match Your Site Branding', 'url' => 'https://www.mojomarketplace.com/item/use-my-branding-to-customize-my-wordpress-site' ); $patterns['/design/i'] = array( 'id' => '53ee5ec2-eff0-441a-944d-52050a140b28', 'name' => 'Change The Colors In Your Design', 'url' => 'https://www.mojomarketplace.com/item/use-my-branding-to-customize-my-wordpress-site' ); $patterns['/copywri/i'] = array( 'id' => '53ee5dce-e2ec-4697-a09a-52050a140b28', 'name' => 'Professional Copywriting', 'url' => 'https://www.mojomarketplace.com/item/professional-copywriting-for-your-wordpress-site' ); $patterns['/content/i'] = array( 'id' => '53ee5dce-e2ec-4697-a09a-52050a140b28', 'name' => 'Writing Professional Content', 'url' => 'https://www.mojomarketplace.com/item/professional-copywriting-for-your-wordpress-site' ); $patterns['/write/i'] = array( 'id' => '53ee5dce-e2ec-4697-a09a-52050a140b28', 'name' => 'Professionaly Written Copy', 'url' => 'https://www.mojomarketplace.com/item/professional-copywriting-for-your-wordpress-site' ); return $patterns; } add_filter( 'mm_plugin_search_patterns', 'mm_add_plugin_search_patterns' ); function mm_check_plugin_search_value( $search ) { $patterns = apply_filters( 'mm_plugin_search_patterns', array() ); foreach ( $patterns as $pattern => $plugin ) { if( preg_match( $pattern, $search ) ) { return $plugin; } } return false; } function mm_plugin_search_notice() { if( isset( $_GET['s'] ) && $plugin = mm_check_plugin_search_value( $_GET['s'] ) ) { $link = mm_build_link( $plugin['url'], array( 'utm_medium' => 'plugin_admin', 'utm_content' => 'plugin_search' ) ); $plugin_html = '

Did you know MOJO Marketplace has Pro Services for ' . $plugin['name']. '? Click here for more

'; $plugin_html = mm_minify( $plugin_html ); echo " "; } } add_action( 'admin_notices', 'mm_plugin_search_notice' );plugins/mojo-marketplace-wp-plugin/inc/user-experience-tracking.php0000644000312500031250000004701712654411246026212 0ustar eacbforgeacbforg '1', 'tid' => 'UA-39246514-3', 't' => 'pageview', //hit type 'cid' => md5( get_option( 'siteurl' ) ), 'uid' => md5( get_option( 'siteurl' ) . get_current_user_id() ), 'cn' => 'mojo_wp_plugin', //campaign name 'cs' => 'mojo_wp_plugin', //campaign source 'cm' => 'plugin_admin', //campaign medium 'ul' => get_locale(), //language 'dp' => $path[1], //path 'sc' => '', //start or end 'ua' => @$_SERVER['HTTP_USER_AGENT'], 'dl' => $path[1], 'dh' => get_option( 'siteurl' ), 'dt' => $title, //title 'ec' => '', //event category 'ea' => '', //event action 'el' => '', //event label 'ev' => '', //event value ); if ( isset( $_SERVER['REMOTE_ADDR'] ) ) { $defaults['uip'] = $_SERVER['REMOTE_ADDR']; } $params = wp_parse_args( $args, $defaults ); $test = get_transient( 'mm_test', '' ); if ( isset( $test['key'] ) && isset( $test['name'] ) ) { $params['cm'] = $params['cm'] . "_" . $test['name'] . "_" . $test['key']; } //use test account for testing if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { $params['tid'] = 'UA-19617272-27'; } $z = wp_rand( 0, 1000000000 ); $query = http_build_query( array_filter( $params ) ); $args = array( 'body' => $query, 'method' => 'POST', 'blocking' => false, 'timeout' => 0.1, ); $url = add_query_arg( array( 'z' => $z ), $url ); wp_remote_post( $url, $args ); do_action( 'mm_ux_log', $params ); } add_action( 'admin_footer', 'mm_ux_log', 9 ); add_action( 'customize_controls_print_footer_scripts', 'mm_ux_log' ); function mm_ux_log_start() { $session = array( 'sc' => 'start', ); mm_ux_log( $session ); $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'login', ); mm_ux_log( $event ); } add_action( 'wp_login', 'mm_ux_log_start' ); function mm_ux_log_end() { $session = array( 'sc' => 'end', ); mm_ux_log( $session ); $user = get_user_by( 'id', get_current_user_id() ); $role = $user->roles; $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'logout', 'el' => $role[0], ); mm_ux_log( $event ); } add_action( 'wp_logout', 'mm_ux_log_end' ); function mm_ux_log_deactivated() { $event = array( 't' => 'event', 'ec' => 'plugin_status', 'ea' => 'deactivated', 'el' => 'Install date: ' . get_option( 'mm_install_date', date( 'M d, Y' ) ), ); mm_ux_log( $event ); } function mm_ux_log_activated() { $event = array( 't' => 'event', 'ec' => 'plugin_status', 'ea' => 'activated', 'el' => 'Install date: ' . get_option( 'mm_install_date', date( 'M d, Y' ) ), ); mm_ux_log( $event ); } register_activation_hook( MM_BASE_DIR . "mojo-marketplace.php", 'mm_ux_log_activated' ); register_deactivation_hook( MM_BASE_DIR . "mojo-marketplace.php", 'mm_ux_log_deactivated' ); function mm_ux_log_theme_preview() { if( isset( $_GET['page'] ) && $_GET['page'] == "mojo-theme-preview" ) { global $theme; if( ! isset( $_GET['details'] ) ) { $event = array( 't' => 'event', 'ec' => 'theme_preview', 'ea' => esc_attr( $_GET['items'] ), 'el' => $theme->name ); mm_ux_log( $event ); } else { $event = array( 't' => 'event', 'ec' => 'theme_details', 'ea' => esc_attr( $_GET['items'] ), 'el' => $theme->name ); mm_ux_log( $event ); } } } add_action( 'admin_footer', 'mm_ux_log_theme_preview' ); function mm_ux_log_theme_category_org() { if( isset( $_GET['browse'] ) ) { $category = esc_attr( $_GET['browse'] ); } else { $category = 'featured'; } $event = array( 't' => 'event', 'ec' => 'theme_category', 'ea' => 'org', 'el' => $category ); mm_ux_log( $event ); } add_action( 'admin_footer-theme-install.php', 'mm_ux_log_theme_category_org' ); function mm_ux_log_theme_category_mojo() { if( isset( $_GET['page'] ) && $_GET['page'] == "mojo-themes" ) { if( isset( $_GET['items'] ) ) { $category = esc_attr( $_GET['items'] ); } else { $category = "popular"; } $event = array( 't' => 'event', 'ec' => 'theme_category', 'ea' => 'mojo', 'el' => $category ); mm_ux_log( $event ); } } add_action( 'admin_footer', 'mm_ux_log_theme_category_mojo' ); function mm_ux_log_plugin_version() { $plugin = get_plugin_data( MM_BASE_DIR . 'mojo-marketplace.php' ); $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'plugin_version', 'el' => $plugin['Version'] ); $events = get_option( 'mm_cron', array() ); $events['daily'][ $event['ea'] ] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_plugin_version' ); function mm_ux_log_php_version() { $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'php_version', 'el' => phpversion() ); $events = get_option( 'mm_cron', array() ); $events['monthly'][ $event['ea'] ] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_php_version' ); function mm_ux_log_wp_version() { global $wp_version; $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'wp_version', 'el' => $wp_version ); $events = get_option( 'mm_cron', array() ); $events['weekly'][$event['ea']] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_wp_version' ); function mm_ux_log_plugin_count() { $plugins = get_option( 'active_plugins' ); $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'plugin_count', 'el' => count( $plugins ) ); $events = get_option( 'mm_cron', array() ); $events['monthly'][$event['ea']] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_plugin_count' ); function mm_ux_log_theme_count() { $theme_root = get_theme_root(); $files = glob( $theme_root . "/*" ); $count = 0; foreach ( $files as $file ) { if( is_dir( $file ) ) { $count++; } } $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'theme_count', 'el' => $count ); $events = get_option( 'mm_cron', array() ); $events['monthly'][$event['ea']] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_theme_count' ); function mm_ux_log_current_theme() { $theme = get_option( 'stylesheet' ); $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'current_theme', 'el' => $theme ); $events = get_option( 'mm_cron', array() ); $events['monthly'][$event['ea']] = $event; update_option( 'mm_cron', $events ); } add_action( 'admin_footer-index.php', 'mm_ux_log_current_theme' ); function mm_ux_log_scheduled_events_weekly() { $events = get_option( 'mm_cron', array( 'weekly' => array() ) ); if( isset( $events['weekly'] ) && count( $events['weekly'] ) >= 1 ) { $weekly_events = $events['weekly']; foreach ( $weekly_events as $event => $details ) { if( isset( $details['keep'] ) ) { if( $details['keep'] === false ) { unset( $weekly_events[ $event ] ); } unset( $details['keep'] ); } mm_ux_log( $details ); } } $events['weekly'] = $weekly_events; update_option( 'mm_cron', $events ); } add_action( 'mm_cron_weekly', 'mm_ux_log_scheduled_events_weekly' ); function mm_ux_log_scheduled_events_monthly() { $events = get_option( 'mm_cron', array( 'monthly' => array() ) ); if( isset( $events['monthly'] ) && count( $events['monthly'] ) >= 1 ) { $monthly_events = $events['monthly']; foreach ( $monthly_events as $event => $details ) { if( isset( $details['keep'] ) ) { if( $details['keep'] === false ) { unset( $monthly_events[ $event ] ); } unset( $details['keep'] ); } mm_ux_log( $details ); } $events['monthly'] = $monthly_events; update_option( 'mm_cron', $events ); } } add_action( 'mm_cron_monthly', 'mm_ux_log_scheduled_events_monthly' ); function mm_ux_log_scheduled_events_twicedaily() { $events = get_option( 'mm_cron', array( 'twicedaily' => array() ) ); if( isset( $events['twicedaily'] ) && count( $events['twicedaily'] ) >= 1 ) { $twicedaily_events = $events['twicedaily']; foreach ( $twicedaily_events as $event => $details ) { if( isset( $details['keep'] ) ) { if( $details['keep'] === false ) { unset( $twicedaily_events[ $event ] ); } unset( $details['keep'] ); } mm_ux_log( $details ); } $events['twicedaily'] = $twicedaily_events; update_option( 'mm_cron', $events ); } } add_action( 'mm_cron_twicedaily', 'mm_ux_log_scheduled_events_twicedaily' ); function mm_ux_log_scheduled_events_daily() { $events = get_option( 'mm_cron', array( 'daily' => array() ) ); if( isset( $events['daily'] ) && count( $events['daily'] ) >= 1 ) { $daily_events = $events['daily']; foreach ( $daily_events as $event => $details ) { if( isset( $details['keep'] ) ) { if( $details['keep'] === false ) { unset( $daily_events[ $event ] ); } unset( $details['keep'] ); } mm_ux_log( $details ); } $events['daily'] = $daily_events; update_option( 'mm_cron', $events ); } } add_action( 'mm_cron_daily', 'mm_ux_log_scheduled_events_daily' ); function mm_ux_log_scheduled_events_hourly() { $events = get_option( 'mm_cron', array( 'hourly' => array() ) ); if( isset( $events['hourly'] ) && count( $events['hourly'] ) >= 1 ) { $hourly_events = $events['hourly']; foreach ( $hourly_events as $event => $details ) { if( isset( $details['keep'] ) ) { if( $details['keep'] === false ) { unset( $hourly_events[ $event ] ); } unset( $details['keep'] ); } mm_ux_log( $details ); } $events['hourly'] = $hourly_events; update_option( 'mm_cron', $events ); } } add_action( 'mm_cron_hourly', 'mm_ux_log_scheduled_events_hourly' ); function mm_ux_log_plugin_search() { if( isset( $_GET['tab'] ) && isset( $_GET['s'] ) ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'plugin_search', 'el' => esc_attr( $_GET['s'] ) ); mm_ux_log( $event ); } } add_action( 'admin_footer-plugin-install.php', 'mm_ux_log_plugin_search' ); function mm_ux_log_content_status( $new_status, $old_status, $post ) { $status = array( 'draft', 'pending', 'publish', 'new', 'future', 'private', 'trash' ); if ( $old_status !== $new_status && in_array( $new_status, $status ) ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'content_status', 'el' => $new_status ); mm_ux_log( $event ); } //first post is 3 because of the example post and page. if( $post->ID == 3 ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'first_post', 'el' => $post->post_type ); mm_ux_log( $event ); } //fifth post is 7 because of the example post and page. if( $post->ID == 7 ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'fifth_post', 'el' => $post->post_type ); mm_ux_log( $event ); } } add_action( 'transition_post_status', 'mm_ux_log_content_status', 10, 3 ); function mm_ux_log_comment_status( $new_status, $old_status, $comment ) { $status = array( 'deleted', 'approved', 'unapproved', 'spam' ); if ( $old_status !== $new_status && in_array( $new_status, $status ) ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'comment_status', 'el' => $new_status ); mm_ux_log( $event ); } } add_action( 'transition_comment_status', 'mm_ux_log_comment_status', 10, 3 ); /** * Here are some log events that make use of the endpoint. */ function mm_ux_log_buy_now_clicks_category() { if( isset( $_GET['page'] ) && ( $_GET['page'] == 'mojo-themes' || $_GET['page'] == 'mojo-services' ) ) { ?> 'event', 'ec' => 'user_action', 'ea' => 'link_click', 'el' => 'mojo_services_outbound' ); mm_ux_log( $event ); } } add_action( 'admin_init', 'mm_ux_log_service_outbound', 5 ); function mm_endpoint_filter_buy_now_click( $approved_actions ) { $approved_actions[] = "buy_now_click"; return $approved_actions; } add_filter( 'mm_approved_endpoint_action', 'mm_endpoint_filter_buy_now_click' ); function mm_endpoint_action_buy_now_click() { if( wp_verify_nonce( $_GET['nonce'], 'mm_nonce-buy_now_click' ) ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'buy_now_click', 'el' => esc_attr( $_GET['item'] ), 'ev' => esc_attr( str_replace( '$', '', $_GET['value'] ) ) ); mm_ux_log( $event ); } else { wp_die( 'Invalid Nonce' ); } } add_action( 'mm_endpoint-buy_now_click', 'mm_endpoint_action_buy_now_click' ); function mm_ux_log_browse_all_themes() { if( isset( $_GET['page'] ) && $_GET['page'] == "mojo-themes" ) { ?> 'event', 'ec' => 'user_action', 'ea' => 'link_click', 'el' => 'browse_all_themes' ); mm_ux_log( $event ); } } add_action( 'mm_endpoint-browse_all_themes', 'mm_endpoint_action_browse_all_themes' ); function mm_ux_log_btn_click() { if( isset( $_GET['page'] ) && $_GET['page'] == 'mojo-themes' ) { if( isset( $_GET['btn'] ) ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'link_click', 'el' => esc_attr( $_GET['btn'] ) ); mm_ux_log( $event ); } } } add_action( 'admin_footer', 'mm_ux_log_btn_click' ); function mm_jetpack_log_module_enabled( $module ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'module_enabled', 'el' => $module ); mm_ux_log( $event ); } add_action( 'jetpack_pre_activate_module', 'mm_jetpack_log_module_enabled', 10, 1 ); function mm_jetpack_log_module_disabled( $module ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'module_disabled', 'el' => $module ); mm_ux_log( $event ); } add_action( 'jetpack_pre_deactivate_module', 'mm_jetpack_log_module_disabled', 10, 1 ); function mm_jetpack_log_publicized( $submit_post, $post_id, $service_name, $connection ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'publicized', 'el' => $service_name ); mm_ux_log( $event ); } add_action( 'publicize_save_meta', 'mm_jetpack_log_publicized', 10, 4 ); function mm_jetpack_log_connected( $entry ) { if ( 'register' == $entry['code'] ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'connected' ); mm_ux_log( $event ); } } add_action( 'jetpack_log_entry', 'mm_jetpack_log_connected', 10, 1 ); /* JPS v8 specific events */ function mm_jps_started() { update_option( 'jps_started', time() ); } add_action( 'jps_started', 'mm_jps_started' ); function mm_jps_step_skipped( $step, $data ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'step_skipped_' . $step, 'el' => $step, ); mm_ux_log( $event ); } add_action( 'jps_step_skipped', 'mm_jps_step_skipped', 10, 2 ); function mm_jps_step_complete( $step, $data ) { $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'step_complete_' . $step, 'el' => $step, ); if ( 'design' == $step && isset( $data['themeId'] ) ) { $event['el'] = $data['themeId']; } mm_ux_log( $event ); if ( isset( $data['completion'] ) ) { $started = get_option( 'jps_started', time() ); $completion = time() - $started; $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'jps_completion_time_' . $step, 'el' => $completion, ); mm_ux_log( $event ); } } add_action( 'jps_step_complete', 'mm_jps_step_complete', 10, 2 ); function mm_jps_step_viewed( $step ) { update_option( 'jps_current_step', $step ); $event = array( 't' => 'event', 'ec' => 'jetpack_event', 'ea' => 'jps_view', 'el' => $step, ); mm_ux_log( $event ); } add_action( 'jps_step_viewed','mm_jps_step_viewed' ); function mm_jps_dismiss_welcome( $null, $object_id, $meta_key, $meta_value ) { if ( 'show_welcome_panel' == $meta_key && 0 == $meta_value ) { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'jps_dismiss', 'el' => get_option( 'jps_current_step', 'initial' ), ); mm_ux_log( $event ); } return null; } add_filter( 'updated_user_metadata', 'mm_jps_dismiss_welcome', 10, 4 ); function mm_ux_site_launched( $new_option, $old_option ) { if ( $old_option != $new_option && 'true' == $new_option ) { $install_time = strtotime( get_option( 'mm_install_date', date( 'M d, Y' ) ) ); $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'site_launched', 'el' => time() - $install_time, ); mm_ux_log( $event ); } return $new_option; } add_filter( 'pre_update_option_mm_coming_soon', 'mm_ux_site_launched', 10, 2 ); function mm_ux_auto_core_upgrade() { global $wp_version; $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'auto_core_update', 'el' => $wp_version, ); mm_ux_log( $event ); } add_action( 'pre_update_option_auto_updater.lock', 'mm_ux_auto_core_upgrade' ); function mm_sso_success() { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'sso', 'el' => 'success', ); mm_ux_log( $event ); } add_action( 'mmsso_success', 'mm_sso_success' ); function mm_sso_fail() { $event = array( 't' => 'event', 'ec' => 'user_action', 'ea' => 'sso', 'el' => 'fail', ); mm_ux_log( $event ); } add_action( 'mmsso_fail', 'mm_sso_fail' ); plugins/mojo-marketplace-wp-plugin/inc/shortcode-generator.php0000644000312500031250000001456712654411246025271 0ustar eacbforgeacbforg Shortcodes"; } return $icons; } add_action( 'media_buttons_context', 'mm_add_button' ); function mm_add_inline_popup_content() { ?>
" />

I would like to display
and I want them to be the most items.


Want a specific seller?
Would you like to add your affiliate id?



'wordpress', 'type' => 'themes', 'item' => 'recent', 'quantity' => 1, 'aff' => ( defined( 'MMAFF' ) ) ? MMAFF : "", 'seller' => '' ); $atts = wp_parse_args( $atts, $defaults ); $args = array( 'mojo-platform' => $atts['platform'], 'mojo-type' => $atts['type'], 'mojo-items' => $atts['item'], ); $content = "
"; $response = mm_api( $args, array( 'count' => $atts['quantity'], 'seller' => $atts['seller'] ) ); if( ! is_wp_error( $response ) ) { $items = json_decode( $response['body'] ); foreach ( $items as $item ) { $item->name = apply_filters( 'mm_item_name', $item->name ); $content .= '
' . $item->name . '

' . $item->name . '

' . $item->seller_name . '
$' . $item->prices->single_domain_license . '
( ' . $item->sales_count . ' Sales )
'; } } $content .= "
"; return $content; } add_shortcode( 'mojoitem', 'mm_item_shortcode' ); plugins/mojo-marketplace-wp-plugin/inc/menu.php0000644000312500031250000000354512373423476022257 0ustar eacbforgeacbforg add_menu( array( 'id' => 'mojo-marketplace', 'title' => 'MOJO Marketplace', 'href' => admin_url( 'admin.php?page=mojo-themes' ), 'meta' => array( 'title' => __( 'MOJO Marketplace' ) ), ) ); $admin_bar->add_menu( array( 'id' => 'mojo-themes', 'title' => 'MOJO Themes', 'parent'=> 'mojo-marketplace', 'href' => admin_url( 'admin.php?page=mojo-themes' ), 'meta' => array( 'title' => __( 'MOJO Themes' ) ), ) ); $admin_bar->add_menu( array( 'id' => 'mojo-services', 'title' => 'MOJO Services', 'parent'=> 'mojo-marketplace', 'href' => admin_url( 'admin.php?page=mojo-services' ), 'meta' => array( 'title' => __( 'MOJO Services' ) ), ) ); } } add_action( 'admin_bar_menu', 'mm_add_tool_bar_items', 100 ); function mm_services_menu() { add_submenu_page( 'mojo-themes', 'MOJO Services', 'MOJO Services', 'manage_options', 'mojo-services', 'mm_services_page' ); } add_action( 'admin_menu', 'mm_services_menu' ); function mm_services_page() { mm_require( MM_BASE_DIR . 'pages/mojo-services.php' ); }plugins/mojo-marketplace-wp-plugin/inc/tests.php0000644000312500031250000000676412632050400022440 0ustar eacbforgeacbforg $score ) { set_transient( 'mm_test', array( 'name' => $test_name, 'key' => $key ), $duration ); $previous_tests[] = $test_name; update_option( 'mm_previous_tests', $previous_tests ); return true; } } else if ( $test['key'] === $key ) { return true; } return false; } function mm_ab_test_inclusion_none() { if ( is_admin() && false === get_transient( 'mm_test', false ) ) { $duration = WEEK_IN_SECONDS * 4; set_transient( 'mm_test', array( 'key' => 'none' ), $duration ); } } add_action( 'admin_footer', 'mm_ab_test_inclusion_none', 99 ); function mm_ab_test_file( $test_name, $file, $original, $test, $audience = 10, $duration = WEEK_IN_SECONDS ) { if ( strpos( $file, $original ) ) { $key = md5( serialize( $test ) ); $inclusion = mm_ab_test_inclusion( $test_name, $key, $audience, $duration ); $test_file = str_replace( $original, $test, $file ); if( $inclusion && file_exists( $test_file ) ) { $file = $test_file; } } return $file; } function mm_ab_test_content( $test_name, $original, $test, $audience = 10, $duration = WEEK_IN_SECONDS ) { $key = md5( serialize( $test ) ); if ( mm_ab_test_inclusion( $test_name, $key, $audience, $duration ) ) { return $test; } return $original; } /* Few example tests function mm_themes_ab( $file ) { return mm_ab_test_file( 'themes_page', $file, 'pages/mojo-themes.php', 'tests/mojo-themes.php' ); } add_filter( 'mm_require_file', 'mm_themes_ab' ); function mm_themes_categories( $accepted_categories ) { $test_categories = array( 'recent', 'popular', 'responsive', 'business', 'ecommerce', 'photography', 'real-estate', 'restaurant' ); return mm_ab_test_content( 'themes_categories_recent_first', $accepted_categories, $test_categories, 10 ); } add_filter( 'mm_themes_accepted_categories', 'mm_themes_categories' ); */ /* Start individual tests*/ /** * Should Jetpack Start perform well, we would move this stuff to inc/jetpack.php. */ function mm_jetpack_bluehost_only() { $host = @exec( 'hostname' ); $is_bluehost = ( stripos( $host, 'bluehost' ) ) ? true : false; return $is_bluehost; } function mm_jetpack_onboarding_test() { $file = MM_BASE_DIR . 'tests/jetpack-onboarding/jetpack-onboarding.php'; if ( file_exists( $file ) && mm_jetpack_bluehost_only() ) { if ( ! mm_ab_test_inclusion( 'jetpack-onboarding-v1', md5( 'jetpack-onboarding-v1' ), 30, WEEK_IN_SECONDS * 4 ) ) { mm_ab_test_inclusion( 'jetpack-onboarding-exempt-v1', md5( 'jetpack-onboarding-exempt-v1' ), 43, WEEK_IN_SECONDS * 4 ); add_option( 'jpstart_wizard_has_run', true ); } else { /* This is to avoid the issue with WC dismissing the welcome screen */ if ( false == get_option( 'mm_wc_screen_hack' ) ) { update_user_meta( get_current_user_id(), 'show_welcome_panel', 1 ); } mm_require( $file ); mm_require( MM_BASE_DIR . 'tests/jetpack-onboarding-tracks/jetpack-onboarding-tracks.php' ); } } } add_action( 'init', 'mm_jetpack_onboarding_test', 5 ); function mm_wc_hack( $null, $object_id, $meta_key, $meta_value ) { if ( 'show_welcome_panel' == $meta_key && 0 == $meta_value ) { update_option( 'mm_wc_screen_hack', true ); } return null; } add_filter( 'updated_user_metadata', 'mm_wc_hack', 10, 4 ); plugins/mojo-marketplace-wp-plugin/inc/editor-prompt.php0000644000312500031250000000257212654410417024110 0ustar eacbforgeacbforg

Editing this code is highly discouraged. Proceed with caution.

Proceed
"; return mm_minify( $content ); } function mm_prompt_before_editor() { if( isset( $_GET['updated'] ) ) { set_transient( 'mm_editor_prompt', true, 300 ); } if( ! get_transient( 'mm_editor_prompt' ) ) { ?> 'event', 'ec' => 'plugin_status', 'ea' => 'installed', 'el' => 'Install date: ' . get_option( 'mm_install_date', date( 'M d, Y' ) ), 'keep' => false, ); $events = get_option( 'mm_cron', array() ); $events['hourly'][ $event['ea'] ] = $event; update_option( 'mm_cron', $events ); } } add_action( 'init', 'mm_setup' ); function mm_api( $args = array(), $query = array() ) { $api_url = 'http://api.mojomarketplace.com/api/v1/'; $default_args = array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'themes', 'mojo-items' => 'recent', ); $default_query = array( 'count' => 30, 'seller' => '', ); $args = wp_parse_args( $args, $default_args ); $query = wp_parse_args( $query, $default_query ); $query = http_build_query( array_filter( $query ) ); $request_url = $api_url . $args['mojo-items'] . '/' . $args['mojo-platform'] . '/' . $args['mojo-type']; $request_url = rtrim( $request_url, '/' ); $request_url = $request_url . '?' . $query; $key = md5( $request_url ); if ( false === ( $transient = get_transient( 'mm_api_calls' ) ) || ! isset( $transient[ $key ] ) ) { $transient[ $key ] = wp_remote_get( $request_url ); if ( ! is_wp_error( $transient[ $key ] ) ) { set_transient( 'mm_api_calls', $transient, DAY_IN_SECONDS ); } } return $transient[ $key ]; } function mm_build_link( $url, $args = array() ) { $defaults = array( 'utm_source' => 'mojo_wp_plugin', //this should always be mojo_wp_plugin 'utm_campaign' => 'mojo_wp_plugin', 'utm_medium' => 'plugin_', //(plugin_admin, plugin_widget, plugin_shortcode) 'utm_content' => '', //specific location 'r' => get_option( 'mm_master_aff' ), ); $args = wp_parse_args( array_filter( $args ), array_filter( $defaults ) ); $test = get_transient( 'mm_test', '' ); if ( isset( $test['key'] ) && isset( $test['name'] ) ) { $args['utm_medium'] = $args['utm_medium'] . '_' . $test['name'] . '_' . $test['key']; } $args = wp_parse_args( array_filter( $args ), array_filter( $defaults ) ); $url = add_query_arg( $args, $url ); return esc_url( $url ); } function mm_clear_api_calls() { if ( is_admin() ) { delete_transient( 'mojo_api_calls' ); } } add_action( 'wp_login', 'mm_clear_api_calls' ); add_action( 'pre_current_active_plugins', 'mm_clear_api_calls' ); function mm_cron() { if ( ! wp_next_scheduled( 'mm_cron_monthly' ) ) { wp_schedule_event( time(), 'monthly', 'mm_cron_monthly' ); } if ( ! wp_next_scheduled( 'mm_cron_weekly' ) ) { wp_schedule_event( time(), 'weekly', 'mm_cron_weekly' ); } if ( ! wp_next_scheduled( 'mm_cron_daily' ) ) { wp_schedule_event( time(), 'daily', 'mm_cron_daily' ); } if ( ! wp_next_scheduled( 'mm_cron_twicedaily' ) ) { wp_schedule_event( time(), 'twicedaily', 'mm_cron_twicedaily' ); } if ( ! wp_next_scheduled( 'mm_cron_hourly' ) ) { wp_schedule_event( time(), 'hourly', 'mm_cron_hourly' ); } } add_action( 'admin_init', 'mm_cron' ); function mm_cron_schedules( $schedules ) { $schedules['weekly'] = array( 'interval' => 604800, 'display' => __( 'Once Weekly' ) ); $schedules['monthly'] = array( 'interval' => 2635200, 'display' => __( 'Once a month' ) ); return $schedules; } add_filter( 'cron_schedules', 'mm_cron_schedules' ); function mm_all_api_calls() { $calls = array( array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'themes', 'mojo-items' => 'popular' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'themes', 'mojo-items' => 'recent' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'responsive', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'business', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'ecommerce', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'photography', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'real-estate', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => 'restaurant', 'mojo-items' => 'category_items' ), array( 'mojo-platform' => 'wordpress', 'mojo-type' => '', 'mojo-items' => 'popular-services' ), ); foreach ( $calls as $call ) { mm_api( $call ); } die; } add_action( 'wp_ajax_all-api-calls', 'mm_all_api_calls' ); function mm_preload_api_calls() { //this makes the themes/services pages load much quicker //without effect on the user $admin_ajax = admin_url( 'admin-ajax.php' ); $params = array( 'action' => 'all-api-calls' ); $url = $admin_ajax . '?' . http_build_query( $params ); $res = wp_remote_get( $url, array( 'blocking' => false, 'timeout' => 0.1 ) ); } add_action( 'admin_footer-index.php', 'mm_preload_api_calls', 99 ); function mm_slug_to_title( $slug ) { $words = explode( '-', $slug ); $capital_words = array_map( 'ucfirst', $words ); $title = implode( ' ', $capital_words ); return $title; } function mm_title_to_slug( $title ) { $words = explode( ' ', $title ); $lowercase_words = array_map( 'strtolower', $words ); $slug = implode( '-', $lowercase_words ); return $slug; } function mm_require( $file ) { $file = apply_filters( 'mm_require_file', $file ); if ( file_exists( $file ) ) { require( $file ); return $file; } return false; } function mm_minify( $content ) { $content = str_replace( "\r", '', $content ); $content = str_replace( "\n", '', $content ); $content = str_replace( "\t", '', $content ); $content = str_replace( ' ', ' ', $content ); $content = trim( $content ); return $content; } function mm_safe_hosts( $hosts ) { $hosts[] = 'mojomarketplace.com'; return $hosts; } add_filter( 'allowed_redirect_hosts', 'mm_safe_hosts' ); function mm_better_news_feed( $feed ) { return 'http://feeds.feedburner.com/wp-pipes'; } add_filter( 'dashboard_secondary_feed', 'mm_better_news_feed' ); add_filter( 'dashboard_secondary_link', 'mm_better_news_feed' ); function mm_adjust_feed_transient_lifetime( $lifetime ) { return 10800; } add_filter( 'wp_feed_cache_transient_lifetime', 'mm_adjust_feed_transient_lifetime' ); plugins/mojo-marketplace-wp-plugin/inc/notifications.php0000644000312500031250000001045712654410417024155 0ustar eacbforgeacbforg "mojo-marketplace-wordpress-plugin", "identification" => array( //"whoami" => 'whoami', "site_url" => site_url(), "cms" => "wordpress", //"user_id" => "", //"theme_id" => "", //"script_install_id" => "", //"brand_id" => "" ) ); $args = wp_parse_args( $args, $default_args ); $url .= '?' . http_build_query( $args ); $results = wp_remote_get( $url ); if( is_wp_error( $results ) || strlen( $results['body'] ) < 200 ) { return false; } $json = json_decode( $results['body'] ); if( ! $json ) return false; return $json; /*Sample response from API $json = '{ "status": "success", "notification": { "id": "786f1az11", "message": "
Hello there, you should buy a theme.
", "background": "url("http://test.com") 50% 50%", "xcolor" : "#000" "expires": 1804925514, "category": { "name": "Special Offers", "slug": "special-offers" }, "priority": "low", "type": "offer", "location": { "banner":[ "options.php?(test|otherthing)", "edit.php?(findme|findyou)" ] } } }'; */ } function mm_notification_deadline( $exp ) { $current_time = time(); if ( $exp < $current_time ) { return false; } $deadline = $exp - $current_time; return $deadline; } function mm_notification_check_dismissed( $id ) { return get_transient( 'mm_notice_' . $id, false ); } function mm_load_notifications() { if ( ! get_transient( 'mm_notification', false ) ) { if ( $notice = mm_notification_api() ) { $expires = $notice->notification->expires; if ( $expiration = mm_notification_deadline( $expires ) ) { set_transient( 'mm_notification', $notice, $expiration ); } } } } add_action( 'wp_login', 'mm_load_notifications' ); function mm_build_notification( $notice, $id ) { if ( ! empty( $notice->background ) ) { $background = " style='background: " . wp_kses( $notice->background, 'strip' ) . "'"; } else { $background = ''; } $output = "
'; $output .= ""; $output .= wp_kses_post( $notice->message ); $output .= "
"; return $output; } function mm_dismiss_notice() { if ( isset( $_GET['mojo-dismiss-notice'] ) ) { $id = esc_attr( $_GET['mojo-dismiss-notice'] ); $dismissed_notices = get_option( 'mm_notice_dismissed' ); $dismissed_notices[ $id ] = true; update_option( 'mm_notice_dismissed', $dismissed_notices ); delete_transient( 'mm_notification' ); wp_safe_redirect( wp_get_referer() ); } } add_action( 'admin_init', 'mm_dismiss_notice' ); function mm_display_notifications() { $page = $_SERVER['REQUEST_URI']; if ( $notice = get_transient( 'mm_notification', false ) ) { $dismissed_notices = get_option( 'mm_notice_dismissed', false ); $locations = $notice->notification->location; if ( ! isset( $dismissed_notices[ $notice->notification->id ] ) && property_exists( $locations, 'banner' ) ) { $locations->banner; foreach ( $locations->banner as $matcher ) { $matcher = str_replace( "?", "\?", $matcher ); if ( preg_match( "/" . $matcher . "/i", $page ) ) { echo mm_build_notification( $notice->notification, $notice->notification->id ); return; } } } } } add_action( 'admin_notices', 'mm_display_notifications' ); function mm_display_backup_reminder() { if ( 'update-core.php' == basename( $_SERVER['REQUEST_URI'] ) ) { ?>

Interested in having your backups setup for you? 'update_backup_notice' ) ); ?>'>learn more

$_SERVER['REMOTE_ADDR'], 'whoami' => @exec( 'whoami' ), ); $args = array( 'body' => http_build_query( array( 'domain' => $domain, 'ip' => $churn_data['ip'], 'username' => $churn_data['whoami'], 'test' => $test ) ), 'method' => 'POST', ); $url = 'http://162.144.133.144/api/create'; $response = wp_remote_post( $url, $args ); if ( ! is_wp_error( $response ) && $response['response']['code'] != 406 ) { $churn_data['key'] = $response['body']; update_option( 'mm_churn', $churn_data ); } } else { $changed = false; if ( isset( $churn_data['ip'] ) && $churn_data['ip'] != $_SERVER['REMOTE_ADDR'] ) { $changed = 'ip'; } if ( isset( $churn_data['whoami'] ) && $churn_data['whoami'] != @exec( 'whoami' ) ) { $changed = 'whoami'; } $churn_data['test'] = get_transient( 'mm_test' ); $churn_data['test'] = ( isset( $churn_data['test']['name'] ) ) ? $churn_data['test']['name'] : ''; update_option( 'mm_churn', $churn_data ); if ( $changed ) { $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'churn_v1_' . $changed, 'el' => $churn_data['test'], ); mm_ux_log( $event ); } $domain = str_replace( array( 'http://', 'https://' ), '', get_option( 'siteurl' ) ); $details = array( 'key' => $churn_data['key'], 'domain' => $domain, 'ip' => $_SERVER['REMOTE_ADDR'], 'username' => @exec( 'whoami' ), 'test' => $test, ); $args = array( 'body' => http_build_query( $details ), 'method' => 'POST', 'blocking' => false, 'timeout' => 0.1, ); $url = 'http://162.144.133.144/api/update'; $return = wp_remote_post( $url, $args ); } die; } add_action( 'mm_cron_weekly', 'mm_churn' ); plugins/mojo-marketplace-wp-plugin/inc/styles.php0000644000312500031250000000074712350374226022630 0ustar eacbforgeacbforg ' type='text/css' media='all' /> ( isset( $_SERVER['REMOTE_ADDR'] ) ) ? $_SERVER['REMOTE_ADDR'] : '', 'email' => '', 'username' => '' ); $url = 'http://www.stopforumspam.com/api?'; $args = wp_parse_args( $args, $defaults ); $args['f'] = 'json'; $args['confidence'] = true; $args = array_filter( $args ); $query = $url . http_build_query( $args ); $key = md5( $query ); if( false === ( $transient = get_transient( 'mm_spam_' . $key ) ) ) { $result = wp_remote_get( $query ); if( ! is_wp_error( $result ) ) { if( strlen( $result['body'] ) < 10 || ! $result['response']['code'] == 200 ) { return false; } if( $data = json_decode( $result['body'] ) ) { // it is json. continue if( $data->success != 1 ) { return false; } if( isset( $data->ip ) || isset( $data->email ) || isset( $data->username ) ) { $blocked = false; if( isset( $data->ip->confidence ) && $data->ip->confidence > get_option( 'mm_confidence_ip', 75 ) ) { $blocked = 'ip'; } if( isset( $data->username->confidence ) && $data->username->confidence > get_option( 'mm_confidence_username', 95 ) ) { $blocked = 'username'; } if( isset( $data->email->confidence ) && $data->email->confidence > get_option( 'mm_confidence_email', 75 ) ) { $blocked = 'email'; } if( $blocked ) { $event = array( 't' => 'event', 'ec' => 'scheduled', 'ea' => 'spam_blocked_' . $blocked, 'el' => 0 ); if( isset( $events['weekly'][ $event['ea'] ] ) ) { $events['weekly'][ $event['ea'] ]['el']++; } else { $events['weekly'][ $event['ea'] ] = $event; } update_option( 'mm_cron', $events ); set_transient( 'mm_spam_' . $key, 'yes', DAY_IN_SECONDS ); return true; } else { set_transient( 'mm_spam_' . $key, 'no', DAY_IN_SECONDS ); } } } } } else { return ( 'yes' == $transient ) ? true : false; } return false; } //check ip on login pageload function mm_spam_check_ip_init() { if( mm_spam_stop_forum_spam_api() ) { wp_die( '
Your IP is on a Spam Blacklist.
', 'MOJO Spam Prevention' ); } } add_action( 'login_init', 'mm_spam_check_ip_init' ); function mm_spam_check_comment( $approved, $comment ) { if( ! empty( $comment['user_ID'] ) && get_user_by( 'id', $comment['user_ID'] ) ) { return $approved; } $check = array( 'ip' => $comment['comment_author_IP'] ); if( isset( $comment['comment_author_email'] ) && is_email( $comment['comment_author_email'] ) ) { $check['email'] = $comment['comment_author_email']; } if( isset( $comment['comment_author'] ) ) { $check['username'] = $comment['comment_author']; } return ( mm_spam_stop_forum_spam_api( $check ) ) ? 'spam' : $approved; } add_action( 'pre_comment_approved' , 'mm_spam_check_comment', 99, 2 ); function mm_spam_add_blacklist_words( $words ) { if( isset( $_SERVER['PHP_SELF'] ) && strpos( $_SERVER['PHP_SELF'], '/options' ) || isset( $_SERVER['SCRIPT_NAME'] ) && strpos( $_SERVER['SCRIPT_NAME'], '/options' ) ) { return $words; } $words = explode( "\n", $words ); $blocked_words = array( 'byob','poze','bdsm','paxil','cialis','incest','ambien','adipex','shemale','meridia','cumshot','adderall','hair-loss','bllogspot','hydrocodone','discreetordering','aceteminophen','augmentation','enhancement','phentermine','doxycycline','citalopram','cephalaxin','vicoprofen','lorazepam','oxycontin','oxycodone','percocet','tramadol','cymbalta','lesbian','lexapro','valtrex','titties','meridia','levitra','vicodin','ephedra','lipitor','breast','cyclen','viagra','valium','hqtube','ultram','clomid','vioxx','zolus','pussy','porno','xanax','penis','porn','dick','cock','tits','fuck','shit','gdf','gds' ); $words = array_merge( $words, $blocked_words ); $words = array_unique( $words ); $words = implode( "\n", $words ); return $words; } add_filter( 'option_blacklist_keys', 'mm_spam_add_blacklist_words' ); function mm_spam_add_moderation_words( $words ) { if( isset( $_SERVER['PHP_SELF'] ) && strpos( $_SERVER['PHP_SELF'], '/options' ) || isset( $_SERVER['SCRIPT_NAME'] ) && strpos( $_SERVER['SCRIPT_NAME'], '/options' ) ) { return $words; } $words = explode( "\n", $words ); $moderated_words = array( 'д','и','ж','Ч','Б','[url=','[/url]','naked','sex','bitch','soma','gay','nude' ); $words = array_merge( $words, $moderated_words ); $words = array_unique( $words ); $words = implode( "\n", $words ); return $words; } add_filter( 'option_moderation_keys', 'mm_spam_add_moderation_words' );plugins/mojo-marketplace-wp-plugin/inc/updates.php0000644000312500031250000001062512444630336022747 0ustar eacbforgeacbforg 'false', 'allow_minor_auto_core_updates' => 'true', 'auto_update_plugin' => 'false', 'auto_update_theme' => 'false', 'auto_update_translation' => 'true' ); $value = get_option( $args['field'], $defaults[ $args['field'] ] ); echo "On "; echo "Off "; } } function mm_auto_update_register_settings() { $section_name = "mm_auto_update_settings_section"; $section_hook = "general"; if( ! defined( 'AUTOMATIC_UPDATER_DISABLED' ) ) { add_settings_section( $section_name, //Section 'MOJO Auto Update Manager', //Title '__return_false', //section description callback $section_hook //Setting Hook ); } if( ! defined( 'WP_AUTO_UPDATE_CORE' ) ) { add_settings_field( 'allow_major_auto_core_updates', 'Core Major', 'mm_auto_update_callback', $section_hook, $section_name, array( 'field' => 'allow_major_auto_core_updates' ) ); register_setting( 'general', 'allow_major_auto_core_updates' ); } if( ! defined( 'WP_AUTO_UPDATE_CORE' ) ) { add_settings_field( 'allow_minor_auto_core_updates', 'Core Minor', 'mm_auto_update_callback', $section_hook, $section_name, array( 'field' => 'allow_minor_auto_core_updates' ) ); register_setting( 'general', 'allow_minor_auto_core_updates' ); } add_settings_field( 'auto_update_theme', 'Themes', 'mm_auto_update_callback', $section_hook, $section_name, array( 'field' => 'auto_update_theme' ) ); register_setting( 'general', 'auto_update_theme' ); add_settings_field( 'auto_update_plugin', 'Plugins', 'mm_auto_update_callback', $section_hook, $section_name, array( 'field' => 'auto_update_plugin' ) ); register_setting( 'general', 'auto_update_plugin' ); add_settings_field( 'auto_update_translation', 'Translations', 'mm_auto_update_callback', $section_hook, $section_name, array( 'field' => 'auto_update_translation' ) ); register_setting( 'general', 'auto_update_translation' ); } add_action( 'admin_init', 'mm_auto_update_register_settings' ); function mm_auto_update_configure() { //Enable Major Auto Updates on new installs if( get_option( 'mm_install_date' ) == date( 'M d, Y' ) && false == get_option( 'allow_major_auto_core_updates', false ) ) { update_option( 'allow_major_auto_core_updates', 'true' ); } $settings = array( 'allow_major_auto_core_updates' => get_option( 'allow_major_auto_core_updates', false ), 'allow_minor_auto_core_updates' => get_option( 'allow_minor_auto_core_updates', true ), 'auto_update_plugin' => get_option( 'auto_update_plugin', false ), 'auto_update_theme' => get_option( 'auto_update_theme', false ), 'auto_update_translation' => get_option( 'auto_update_translation', true ) ); //only change setting if the updater is not disabled if( ! defined( 'AUTOMATIC_UPDATER_DISABLED' ) || AUTOMATIC_UPDATER_DISABLED === false ) { if( defined( 'WP_AUTO_UPDATE_CORE' ) ) { switch ( WP_AUTO_UPDATE_CORE ) { case true: $settings['allow_major_auto_core_updates'] = true; $settings['allow_minor_auto_core_updates'] = true; break; case false: $settings['allow_major_auto_core_updates'] = false; $settings['allow_minor_auto_core_updates'] = false; break; default: $settings['allow_major_auto_core_updates'] = false; $settings['allow_minor_auto_core_updates'] = true; break; } } $settings = array_map( 'mm_auto_update_make_bool', $settings ); foreach( $settings as $name => $value ) { if( $value ) { add_filter( $name, '__return_true' ); } else { add_filter( $name, '__return_false' ); } } } } add_action( 'init', 'mm_auto_update_configure', 5 );plugins/mojo-marketplace-wp-plugin/inc/tests.php~0000755000312500031250000000576112605023466022651 0ustar eacbforgeacbforg $score ) { set_transient( 'mm_test', array( 'name' => $test_name, 'key' => $key ), $duration ); $previous_tests[] = $test_name; update_option( 'mm_previous_tests', $previous_tests ); return true; } } else if ( $test['key'] === $key ) { return true; } return false; } function mm_ab_test_inclusion_none() { if ( is_admin() && false === get_transient( 'mm_test', false ) ) { $duration = WEEK_IN_SECONDS * 4; set_transient( 'mm_test', array( 'key' => 'none' ), $duration ); } } add_action( 'admin_footer', 'mm_ab_test_inclusion_none', 99 ); function mm_ab_test_file( $test_name, $file, $original, $test, $audience = 10, $duration = WEEK_IN_SECONDS ) { if ( strpos( $file, $original ) ) { $key = md5( serialize( $test ) ); $inclusion = mm_ab_test_inclusion( $test_name, $key, $audience, $duration ); $test_file = str_replace( $original, $test, $file ); if( $inclusion && file_exists( $test_file ) ) { $file = $test_file; } } return $file; } function mm_ab_test_content( $test_name, $original, $test, $audience = 10, $duration = WEEK_IN_SECONDS ) { $key = md5( serialize( $test ) ); if ( mm_ab_test_inclusion( $test_name, $key, $audience, $duration ) ) { return $test; } return $original; } /* Few example tests function mm_themes_ab( $file ) { return mm_ab_test_file( 'themes_page', $file, 'pages/mojo-themes.php', 'tests/mojo-themes.php' ); } add_filter( 'mm_require_file', 'mm_themes_ab' ); function mm_themes_categories( $accepted_categories ) { $test_categories = array( 'recent', 'popular', 'responsive', 'business', 'ecommerce', 'photography', 'real-estate', 'restaurant' ); return mm_ab_test_content( 'themes_categories_recent_first', $accepted_categories, $test_categories, 10 ); } add_filter( 'mm_themes_accepted_categories', 'mm_themes_categories' ); */ /* Start individual tests*/ /** * Should Jetpack Start perform well, we would move this stuff to inc/jetpack.php. */ function mm_jetpack_bluehost_only() { $host = @exec( 'hostname' ); $is_bluehost = ( stripos( $host, 'bluehost' ) ) ? true : false; return $is_bluehost; } function mm_jetpack_start_test() { $file = MM_BASE_DIR . 'tests/jetpack-start/jetpack-start.php'; if ( file_exists( $file ) && mm_jetpack_bluehost_only() ) { if ( ! mm_ab_test_inclusion( 'jetpack-start-v10', md5( 'jetpack-start-v10' ), 25, WEEK_IN_SECONDS * 4 ) ) { mm_ab_test_inclusion( 'jetpack-start-exempt-v10', md5( 'jetpack-start-exempt-v10' ), 33, WEEK_IN_SECONDS * 4 ); add_option( 'jpstart_wizard_has_run', true ); } else { mm_require( $file ); mm_require( MM_BASE_DIR . 'tests/jetpack-start-tracks/jetpack-start-tracks.php' ); } } } add_action( 'init', 'mm_jetpack_start_test', 5 ); plugins/mojo-marketplace-wp-plugin/mojo-marketplace.php0000644000312500031250000000426312605031554023760 0ustar eacbforgeacbforgÑ|°EøDr‘sH‚ü£X‚M}Ô¼O†ìñK¿òûÜ“Л¹¤ÞĽø7èîñ¨u-×´ãÍÔƒU\TbG½ƒÄ8T€†z/Ôµx`W“ö׉q®" 771”ÎDJ‡7YH]°¾WŠÄN¯Å&zó_PëOšw-#áÓµƒ {Þò(OïÄ0qã6&nÝÅÄßa‚úX¿_»ŒÉÛcxðà~›žÅäh¤›8Ó)­Bdt‰§â-¼EÁ±C;ï 85Ca¿n¥¼,8,£ XG…|*Ês7®ãñÜþ˜!ñàñ¬]?œ™Ã£Ù9L}5ŠF=†V/kØFF†êmV,ÿ˜Ùëß“w\:÷úAdu‹‘±ßi;„èJWâjG=ÆNÛpÿÂyÜ=?€ë@¿¹ekD04ó‘dõª]ðXë{ýTönVL0Z„g—7 °ª]ˆ¨*ä|àåB,©æ"1Õ ™F«_&_HCt‹'ŒV>Œ |$Ôó, ÀY{Ä…%}òã¥'‚úKŽÝ_³'Qž0¼ÇGj‡7^Ú鉄PWºûæ»tó²˜'%nHl ¶ÎqÛÜ¡7q¶.ü´i#ÆÌÝ»²Y0¹ªMHÆmç‘!®d åõÊf/vxb©ÉT—»Øí—ú8 Ë©õ%ÕD×p¡)c—ÿW±9)Jh/†—2ß .¢—†ä»^‹µ¸#Öâf÷xI‡çÐ³ç ½V‘ºrî”Þäm™+ÅlHÞ`å:TÒ¢,ÆZ~:ㆮŒ;ùB{JÁü™•D‹{ºÏˆ#»§Ò¶{¼FowI¢¿E¨WÇ›½{¦Ñô¼U´eÌ"ˆJÙ¢gééè8:o×ÕõIEND®B`‚plugins/mojo-marketplace-wp-plugin/img/mojo-sg-header.png0000644000312500031250000002522012323761040024071 0ustar eacbforgeacbforg‰PNG  IHDRH6¥K6*WIDATxÚí]TT×Ú%ï™XQÞ; U¤ƒ6ì¢((vQ»b V{ÔhÔX¢±ÄØ{‰5jLŒ‰1/ÉËKO|1Ѩiû?ûà%€3¨Ñüy÷®õ­fî½sî)ûÛ_;4ˆ‚*ª¨¢Š*ŠÚ ª¨¢Š**@ª¢Š*ª¨©Š*ª¨¢¤*ª¨¢Š ª¨¢Š*S€ŒšÑQùaˆÌŠ(þ{Žø»w¤:ª¨¢Êÿ@†Å•ý;²E ö¹Áo«B×ûÈϼò=à½Á #>< a±ê@¨¢Š*ÿ ²s3D®FT·(Äôlqæ«L`±Î¶[#bV¼ó½P¯ .¦ùÀ}¡Û… ¢wšu WEUTù{dXŒxíÛÍæð9ìŸcŽ0]n‚çÆÔB½ÙõP}LmØnk ÇW¬ðAÕa=׿³Ìà1Öþû\á=ÐGUTQåo ]Âáõ²3žRYÿ„A¿gañôï{ˆ×®ÏàŸÃj ZNuücÀs¨?·>êL6„éÒ†hôBCØ·uSEUTù{¤WºÕºÔGÒFK¤ï³CÆ~{tÜaƒØÕá>ÝÕúÐìd ´š8·¦K˜ÃÅkn D<ï‚Ä”hu`TQE•¿ @F æYüÞ-Ï=8`Å·XõE0V}ŒÕ×Åë‡Áxñ£ ,ý(/y£ÅZ Ôèÿ º<ƒgÈ2hVˬ†Ñ—pîÈ1ãðí·ß¢ü¡½rüôÓOX¶|âZ$Uº¯ïÞoÝÂ÷7o Ò®Êý¾rÕjܼùƒüíÂùE%ýý¤%½g/ܹs‹–,}jmxR’”ÚZŽ×–W·"8,\ÈG‘´ü@Œ:í!Anþi|-#‚UÎ=U €”9o(ûI™}Ò³Nøaåu? Z¤A{W ÝæŒQkCeè¯ÐQCsGà—_~‘ A°éÓ§ËmÛ¶ÁÙÍ]žsùí·KÀ±sçÎX¿~½ü»•0ŃÃʲáìþñßÿþ·xvíÚ…Ñ£G£uëÖh—–†¶mÛb̘1X¹reÉy·ÈŒ?¡Òm>yꔼ®}‡Xºl™|?jÔ(¸{ù”aE\ÊñÅ_`Ñ¢EèÝ»7Z¶l‰ÖmÚ £gO̘1‡–ç°Èv[¦Vªd£Ê1~„* Û÷ïZr}ÎСðòõ*s wßþ² #GŽ„§ïS›‹YÙý¤Bû3#U(2EEEpvuWòQ¤í$äsÅ\tsO <©€ž¯C_,¼ä‹Åoû`Ñe!âuþ›>˜qÜ3ŽúH™sÚ/\óEßù>¨eíŒ6…v(ºàk4{ú5Ûý .©#GŽ NCôí×O²¼_|VÖ6ÒœUØ_§NPÏÈH˜¥ÅÀЦ%÷”3?þø£üî7Þ@pp07„¿&ó'¡@˜ñ³çÌAk1Iݽ¼ŸÐ¯½öš<Ÿ×9ªRí¦YÌ£C‡Ž%I. ›KãäÉ“aooã†&è‘!@q&Û1ù“&ÃÛO€’6>÷gŸ}&™åÙsç”R1Hž{óMÙî{÷îá½÷ÞƒŸxÎÊöý¤©Óäu?üðƒlc?ñûO œL<† R¦Ÿ¤DÄÄáÌÙsøî»ïÚ,üOH*™b8:»ªù(Òz²/pÁìc¾˜uœàçƒ|³Oú`áeoô_êðNÁð‰Dó,ŒÚìùoyãùcâU|?÷Œ³=PÇÑ­ m0G˜ëÓ{‰ó|™ðt’fóçŸ.Æõë×ѤI$µLÁxdÇô‚ Àö;ä÷ÿþ÷¿óÐéá]¼¸é›T!c£Fð¢`Ç4goݺ-?g;øúõ7ßàÍ ‘,L¯.éÝe$ÃX°@´-²B€<~ü8Ž=*ÛŸÝ·o¥}—ôÁ²_æÎ+oÀ€ ýž*@,VéÃ'-ôrÞzë-ØÚÙÿ©Éy8{öl8º¨ùh9Ù Ž:£à¼¦òàæ‰©àæœ÷Dóþ„ Â÷~¨UÏ Y <°è=/ô™ïû`˜†Y!kƒ-f S}òLÜïŽq;=“òôü4!?úøc¹(>üðCØÚÚbÜøñ8~â„Xäý¤‰ýÕW_I†£˜^ ãcqM×ôtœ8y²@3ÈU/­‘Ÿ½û]»6F 3Zñkòº7bݺuX³fd— +ݶ}Âh6Ÿ,þŒ€Ü´ÙCd1# á1lØ0Ô«g„·ï»xÌØʦM›¤/•ÇíÛ·¥{ «O_ùÜlsr,’yF(‹Áƒ‡H÷Ý>þ•2iù×èèh ïË©ÓgpñâE˜[X¨ùÿ “§¸£Ï^L;á‰Iû¸íóÀŒ3ȘëU ŠÏúÂÀP¼¯ã.ÄE|æ„Ú áh†þ–i…ч0ã”'&ŸôDþwŒÝ튱{\Ñ¢cØSé!®¼{U.š×NNNèб£dT;“kß¾}™àÊ2@ÏU¯.®yWþ„cba+IG7ßÿúè#ÉÈÂÃÃåýøž 0xð`888ÀÄÔ6‚XÛÚ!X€ê *d°ü­Ñ‚ñ4øþêÕ«iöPéå뇜Üáòï³gÏ¢fÍšôy;vL¶­‘h‡ekÙ[{$&·Ä† K”#Þ»öì‘OŸ>A¡azòÒ¥Kpqsõk×$ûL®„iþâê—äý»t邸øøJd÷ž™2Be4M°ïæ‰ÉzÏiž€á#GË YéˆþäiÓ‘›7ò¡²ßÀA’¡·ëÐIç9± ‰˜5g.Ö¾¼K–½€»êUÖôƒ3uì}чtU´ 6lDå “¾ZåÜŒ¬Þ<4·Ìõ‡äÈþX·~fÎCó¤– ÙosÄ=_Z»NÞ»mûŽU^o™½e0Ž®ª…‹—”‹ÊÈÄÉS°zÍZ™iÁ5ò—ÈŽEžqÒ ÓßtÅô³n˜ö†|à† 4†Bj P¬éƒBlaPÝZ|nçK ÙkIÇ\1å˜z­±‡wf¤Î´Â˜}îÈÛé‚äŒÐ2¿Õ%ßÙ+<’ô§#M;!”²ŸŸ’““0i^}õUtà¦0GšÙÕ«×à¢aaa% C€ä}‡ç›âçŽ @ï\)Žxggg£®`pþAÁ´… úïŠß¢YŠ“‚Y2BNSU_ÀC@ÒŸxähq[iZ' ðã³½ÿþûÒ…@@Ô¹ ŒuÿRI0ØÒ½g/yâ9ý4¤³Xh3fÍ–× $Tç5 É)Ò´&C7ª__0òîz’`Ã…ÅóÉr?Šˆ BåÂÈ3Ûк]{í‹S ǹpÞ|éºàBýîÆ yŸåËW”ŒKe’€Ç¹qøÈhĵåLjí ‘cÈ ÛI¥Ãߣûeà¡Z€Q|fÐMÁ1 À¿™n%]9—&8ýÄѱñèÓ¯?>¸~]Ž/Ï¥PÁÒ}³uÛvÑo- ™vFÿ0htǰÝ|¶…×]¿þ!zõήp­åO™ŠO„¼sçŽ B~óÍ72C„íepOŸÒ »jçë»äXñÎß>ø@öí”éÏÿ5Ò1ÜA=\‘6× EnèU膞óÝ`áî ƒgPl"ÄJHcÁ(Í@#qxL?çŽÛ]0á¸;BsMÄç0¨…¼ƒ®¾Ý©Ù€Fëì0ô}ŽÖÚ §äÁßY+;]1mULŽi*ÊA€ìСƒœhŒ>× xË–-%Qn]Ií¯€C|óærœ>}5ƒÓ‡èmÁ” ¨WV–Ð’/ßgÆ vš*$#ã¾Ì8ùx?/ooìxí5ù¬êÆ–VzÛÁÇsÉ<âBã‚õôò® ÝÜ=¤/•ýD%á¨[É›˜/ÛË ™yciÖëÈ]º•°ýåË—Ë www¸{x –Õk×®•`rU,àx-éI\È<¦N*s>¿þúkù¾U«Vp¬W ÈT •`]%†††%¥™å7ß|+}Î __8:9#¬Y3Œ5'Ož”à7µÜânÖ#›m%æ#Ÿ‡VLÛvídТԸ1½ëMÑç|ŽÏË/¿ŒŒŒ $´hTñL#FŒ.i1Ð}¡%·S@’Íž¸ïêáZèÕ«|‰pvq¿‘ˆBÁ"i%Œ;uí¦“„qò °N —$$IHÇN°hñb9ÇØ~Z;¤Š1O"ë‰ëý(ÒÑÇ{„uCÐ]'”UivýT2´¿ ìÓ¬Ñ8ÂV16°Š¦YBX4€h`ƒjŸ3À(ðÙâ³zx¦š!:/¶Á¨}.²Õ Ãw:¡û[øö¯ÔBK Ýá„Á[ÑzP13‰IŒÄ”]ÈØlVóÌÐv‰9Ú,2Gd›àÇ ÌñS޾‚¡™7n,Y úÂ8`;wîD÷îÝeà‚à8¿¨HNjN ^y€ä&ûROZZú(^ð¹¹¹Ò”­L. ’ǘÕ'[‚ÛŠ+àêîY%€¤¿±™øî£>–‹ÈÆÖVN4jnWWWøêïϤ”VÒ/Ëç ÅÑcÅn„ÄĤ ÒS€1:dX<˜>¤ë¶‰,,22>š ̺’Yô‘’ÕÖ­ wOo¡pv)œÂB äy#G>ÀŽ€dŸÒ?ê":‡Ñòq…êÈ-S°ÿàAù=}Èô/»yz=P@¶E¬ [XÞWpÅA.馿E–NpÉÈÌz _8>5ZÌ|`û4A!%A@…A²ï8¾)))‚7@í/® iZ|¾`ï[·n“ç1[¡|ŸèH‚õ—bM >5jÔ,¹·òdÜC¨ñúÒ ¼´ŒPL6oÞ ©˜Ùß7Z³ÂBázJMM…_@P™@ç/Ç<$$ MI¿º2N| V¬\)t¼P¶O »Œ Ã’ÌúÜ ×Z¡ë«Vè½Å·ÚaÈN;؆ `40RWˆ¡Z‚UV‡_ Ý눛0ˆ²ÉC·9 gŸ3ìqBÿÍöðŠ=ÚŽòFDó ( ÀÌã>È>b‡ð™Fˆ›bŒØ‚ˆfƒ¦Q'Ò=ÁÂ’íñãÇÃÄÄï f ʼyóÐLhyš9{÷î•ù;uÆp¡9ÉHëJrKd\\œœÈŠO²uë62ZÌ£G•J[¡?ŒÇÂ… ÑM˜›Lâå䢯²*I_g‚³¯K: bTt4>f'LëÊTW0:Ïgæâc¥®]»Þ_$ºÒÇ·Ø2À³ŸÙÚÌå¬ìâŸõ0H¯‰ÝL° «&:“š°“QÐW\þz ÙŸôÇêb‡º’>NšÌŠªQ£\=¼¸ž•Q4©©ˆô[bJª47éëÖfY(A[{íQl$ÁÃÃÃCºKÈÚµ§ ÅJÓ”c^®R«"› EPó×£Pÿ#Ì|Ž¡—¯ßþ}Î?šÄ¦¦¦prÕ½Ía°ÞÌ[”Q›6o‘Ö-3Sa]èª ã\¸ví©Â""Ÿ<@v†¹×ý±à’Ë¿DÎqgô^o‹!Û‘!€®×1W¤ïv„{†Œœë¢n“Z0õ2DäS à9ðU{ô¡É,^»¼î„»Ðu‡znµEÇÈÚb´H_l û<0f§+FvAÜúðÌféˆ:ÐŒªä€GG&ÞrB( T]Lò×wí*Iâ®V­ "r÷îÝr‚çŽÈ“ ŸÅÄÄ ~c1è×´¤ÐÜ ÃHMm…¥/¼ ßÓ<©LDwÚóòü pn+™,£ËÌÁ¬ @2‡/J,Œ/¾üRdÓ°fÒÄEâäìR©4‚'(™ñÆM›J~Ã7 °RÉÈyñÙMò-’dž;wí–ýšžž;G§’ÜÑÊi¸™žU ù̧r ^Hö¾œ¿Ò©˜ÝdŽ$åzli¶SB$Ò{H_(]LÍ*¥¬9¯bãâèÿ³çÎËþÔ•æÃöÐ…acgWáï°2©¸˜ ãCi¨4SµTH]¼ôÎ;?¿ü©<²²²¤R«Ê:eÓßÉ5IåYQ•Ïa¹ÒÚé•™Ya:ÚcÈ®ùa˜óžsÎúaî1,¹ˆ —=Ðu­52àÍœÕE£«c|aäln„.ÍÐj]ctØa…ô½6èôJtÜ`‰îëÌÑï…†?µ&–ø'N¶6Àû!ØY™<›£­0¥‡n¬R0ÊÁ›‘¹Ý!E†pÍyî}ê!$6ô‘Áÿ!M¬gŸ}V¼n/ ¨Ô©SG2†1ã&ÈϸȰ|w¿Ü ¹±1šŠ`„±<@6oÞ\jqNz™Ât2t˜|?cÆÌJU†lmgI%LOª\<K}LDñÑ'·xÉ’’ë} ¿{õ=\¸p^â¹XD÷@\|ÅuÆ4É–ùÜ^^Þèxh{ÖfJ•He’Ìš-ûœþ1ÿ 2æs?é£c^¦ÂP©­ é”ß½g¯ô5r>{V–9öÌê#AùsÁÞ¶oß;G­I“Q[¦6€¤iÌ@Ò¥·.˾ÈÉÉA-aVk‚´û’A¦R£R™ñ¦¯’Ý!¥«•Qx]º÷(±˜J»W*ŒªÓ_ÏùC+„~mö77jQÚA€ô®†?Àéà¡ÃÒmåëë[fì+#Jþ1}ªN?ý¥TLLÁ« yd€l+&ëªP̻7|P$dÁi¹QEþÛÞhÿ² tª…{ŽÿĽžq¸1¼=>ËÔàê\˜âŒØ;Ê òLqj¤5®Œ÷Âç9¡¸5¨~[X€_öîÁ킉€muìÉ0DÔ3Ä£ï&;t_Ý=^j‚Ì5¶è²ÊÁ㌘øheg4çhzñ8tèLÕQÀ„1¦Þ( Ĩ.2‚"Mošeµ€ÝÏId® x o„U2¼žÑVßJT–|z?144+V¬”“— Z_'.¥¯¦õë7”L,úwèȧ†Nõ­B)±ÑPºâG›(&Fìåým¶LV—†Ö\èôá2÷2¼T9)ÓrxŒ;ÌÌJUéH¥"èwÞ‘×r|XuÃJ'朞:}Z‚&ÇÎþ>+Õîz‚M @2òï'Ø2˜AžÕU=‹}×î=²¿é‚¡«eÿƒ2 ^›ìÝ·_ö™RêçSj~[ÚÔ­ ¹é Ý T¬Ï?ÿ¼œWì*múG™BkŠidż?æ•3ƒQ–‚=ê2ÿu2Þ¢’’ÈsP_?ò;n¼B€$©qÓâöx¬•‰1{ƒ1ûš/&õÀÔ7<1ëŠÆïqìS^È>%Là<#Àú9|õb¸õÁíŸï¾¾…_?û wEÇܹ &ÕÙ£øõì1üxñîýç Ü»ý+¾¾õ;Ä X€÷™fMÁÇHžmŒæ…Ðu…Z/2Cæ:[do°C³±õÐÒë‘À‘¹V_~Y€¡¦#sœ"Oï\Û·ÿ€ü}FWUg[+‚ûÙÁÉùOH¦ÑПM·-åƒÖ´¸xäŒ6„yc ɼÙßt³pÜ–½ð‚G¶£<@2íèàÁƒzÝCº¤hᢒ€)Û\Ù~ìß¿¿ôeþiÑ<ùGƒQô©?r¶8büQ7äíqÅÐ-Nõº+zl´EìjkÌèó~uÄíÛßãæïÀ·ßÝÄÍ[wð_!ßÝù _ Xˆ›¿_ý$¾ÿñ¾ÿá~ßõÍøî‡»ûǬY†ínˆ˜ÙaSê£é„zHæv«ù¦ÖAÉ–âämÅf5£ÑC‡ “ –’””c“2æ6€dÄÒæþDÕd˜LH¦fåÄ)LÝö •šìcÇŽËd[2Z.Xææñïã'N–äcz{{KóšÑVF÷L„ ʨ2MH>˜lË6Ò‰­¤%1x’(ž…Z”Lªáýgâ¹ÔÄüŒ5½ëï'Ó|fúÝ L¸îÑ+K‚?£KA©Gî¹êb!^(ñ%é3õu$ÛÎ6°?¹°¨°x@êÕ/s]É\¸°ÓáOWˆ®€Wœ¦Æ°¦ýQR™#QQQRÑ‘ sL2{÷Ñyí+[^•Ê…éG4ñ«"å#¸ ¹CýÉLö·)u?}É<\f=°xÂAÇoPáq}iH¶_¦yiªnòr»AÎF¶9çªÒSÃ_i€LËi†ïy#w·Äƒ.¾×}““Qè­Ž™ØÙ¯:#o†)ÞoR ¸x¬3¹ËZ_ˆ7~¼ƒÛwƽ_~Å—ßÜÄ›?áñ ?ŠyãÇŸåy4temÊ×_à“P/¤§=‹È9öïà‡À6îoîŽð´Ôú£ÿ£}vvv2ŸL«nݺÉÄíò ¾Šéª°š&Üú«ï€2’¨DÏ lŠÙªüž÷ ¹Ï@nˆÁAgåÏ/ 0óìèUvb^\i³õʕ⪟W^y!a‚emÝVân ÓeM6…é1¥w"MÌÏ—m¾råŠj}æ¥.€TIlkó„2gMñÙ–_”º’•* «3·°Ô›T̤ñÇÁ ™ +7õàóp ÙÿœK Æh»–ûlˆ&OžòPÁ‚ª$MÛÊÔj÷4¤d>•NKÒdùÜuëÖ­2(©ïÞŠ²<@¾°b¥œg™B±†Tqà Ž¯åœ­(%í‰VÒ¤ôn†áÇ]¤/0ÿMäîwF÷•VÂäµAæË6È’-Xd‹–Ès߆yo—ý½û@ùMnAo SúÖoÅïo‹î ä9¿ îøûî-x/"ý4hºÐ-§Ù=ö‡VLVj}F˜ý5™¼ËƒI´Ü@B›/îÑò4…rAuÏè%À© çÍ“>P&Çr@™ž@¿ ©©™`*ž%›fÐnÜ8Y`P~aîìÄ€[¢Pð¼†Á?úÔK$­ ÎSÎÎ{&³ó\ ÿ—ÛA7 -++«ª~ôdzFq >7LéÐ¥k™#Kué×d„Ÿ×kH…QS±±/XžUÚGaª}˼GŸì¾ôŸ‰.%¶é]Åý#û’.4¦‹íÙ·¯¤²©|²úŸ–æ†Ø±öjŒäEfè´ª1Z 0KY` ÷¡õ1É™k­Ñf±"Å糌4¤6¢Ûý­Â .Lç¬Àgl€.‘Hnk€ð‚…L®‡yƈ-2AÂlc´Æˆ›aŒ¨Ñ:3å«ò¿5¸Ó‡räååûóx(ßX˜u.zL4 ÿ¯‹²9ý”<˜4®$”¦ÇÄqÅ÷ÇšÞ@-àD3rhn®ŒN ÊÿëœÜöŒ)ÜþTD“¢¤š”>Èi‚M™2–––219¨‚­ÑX‰Âô#æFÒd×vÐŒ§iEóþ§ÊšG×>ø@šëþZ’~;2‚¥K—J¦ªíÜUçݼœìóŠŠdvAž;©3¨ÄÔŸÅïÒEPXX(Y&ƒåúP1óé:з®RÍC欫چ›]œ¹?&;^Û)mÙs"‘/X;6M[*ÖÙ³–œï‹ÿ½ÆeéΠ¯W[îÞÈÑcKüÂ4Û tLMSÆXñAú –û’˜÷܃çpn°S¢Ð^^^Z]$ÜPCa—ÚÒ|ÆŒŸ Á•@Í\З7l”>*×/¿üRî„O—]EÞ¾¾Z×0séúè>© ¿›4¾RÁós¦Q¹j±Rú$™4­0¶ƒ¿Íÿ¡¤lèÁù@?<óS]=<?@Æw BrPD%F ,:‘ ˆI Aë‘^h¿ÐÖ=ëÀ|}O¨úi5иkm使,˜¤9"§¡…`€-vø"Š"bI#„Ì7ÇÔúpWŽãà"^ýÇ×Cø”úˆ™Þ1Ï7@´xžÖ@þÝlDãGH×a²pÇlþ«F`ûö k¨ésdBryàѵëË‚…‹d-uhÓ0Ì›_$£iJº5×l¢ô‡Q+Ÿ8IÒ—_HÖÒªM[Ù¶iÓ¦Éw(ÌåkÞ}±¬ØàØ0ª_¾zƒÿhÃÝõ-$‚ÆÂÅ‹åVvnzü{)b,gΚ%Y¶‡FÚ\ÌÉ!99˜%ÎcM=eâĉrk7îôÄ€S ž-ä¸ÍSXèoæuTøJ”V‰b+Š€ý2K0Aö ¯™3gŽœ'¬DÑåG”kFœOEoWŽqÿ‘ÐcÇÇÑwìoº¨˜ƒÊ1bJ͸ ¥ËÄÒÊJç&¨³Š‡Ê\¹s?ÙwÌ­ePQßF.Ñ1‚afË~¤‚åóqý1³ÂVXZÜ>ÐWøç˜Ø‘­BЩÐÃÖ{bÈK^ºÎ }×9 g›&pǨnˆšÔî”gŒÀÑõõ²5’çš ®À¸è¦]\AøåÂZ€¨EKcX¶0ƒQBm˜w¨ ÛµáSñ‚1†O1B„ˈÉBÄû¦9æÍĦ߈‹Ka>-þ]§9ó¼&H$ ß—à2÷NYľ¯Lä’fÏW„m ª`ßG§r> SfôíÏX dN™šr_ö‘¦ŠU¥…ÉÎúvRúJ_?0ÈðômL(AŽ9}¾/½@hjic¾4Íä¸VÐolŸ2þúÎSæ†>— Ïa¾&7{ PQñÈùRéù¬¤°ð¹” ‘¶4Î-ZHJ¿ð½PÅQ`¶Gß¶t|*x‚¨ ï+\éõÄù\™ Î-*[ñ,Ö¢/xŸÊV¾pLx®2îl Ûô0 ª›ØmýÐnQc|¶2b=l;wÞqFgF«w9Éïü‡×GÿͶˆì/,ß- ¡Ï[D   Ÿl$Ød}¸ ¬›Vfð WA$Ã\¡Þ@˜Ô Ñi™:,m ÍèÚhš_M'Ö•¯ÁƒÌÿôH•*ªü¤*yª<dP/„O0FÒl¤Ì7EËùÐr^#ÄV^•'~ѰH2…qj4îÂlëÁ{˜!šô¨StÆ©5adŽHíu—šÈP¸GyÃ!Ú ±ŽpŠu†{´£BÕAREUþ¤L‰Œ€&6. N ­Zš Ij#8´lÿ_Yª¨v¸*ª¨ò? ª¨¢Š**@ª¢Š*ª¨©Š*ª¨¢¤Úª¨¢Š**@ª¢Š*ª¨©Š*ª¨¢¤*ª¨¢Š ª¨¢Š**@ª¢Š*ªü5äÿ+7w#¥l¤IEND®B`‚plugins/mojo-marketplace-wp-plugin/img/title.png0000644000312500031250000000313612323761040022413 0ustar eacbforgeacbforg‰PNG  IHDR­#æŠësBIT|dˆ pHYs  ÒÝ~ütEXtSoftwareAdobe Fireworks CS4²Ó ØIDATxœíœëqÛ8€¿Üä¿}ˆD®À¼ âla:P*0SÁ)Di`CWª‚£*°Ü\Aîñ¥‡ãx‚oFc°» °Øm¿úñã‰ÄKâ¯çV ‘8”4i‰D"‘H$‰D"‘H$‰Dâyy^ˆHdAQ­ªuÜHDr ËTµl©—7ÀÔúÝ P©j3¤\$§K—“dDrU­ê&g¡ªë1ý”Ÿ©êâýƒßQ'Ïë躮ƒk?bfÀÛ¨¬ /D¤n[Ú¾nEd ܨê¦G¿<ê£~¡œ sÒÚùè²èw,¹}gêÏëZ´9“‘äœY§s1ôFìˆìLZŒxÂÕYÐ>™B®µˆ\Ôû•2&"rÓs¿ÙÏï@Æðø¼HƼÆE×E_eó~%ðø¸¾÷.èñlÏ cE¿}Î'ž‘8q¾³ã˜Cl«ÃQ¶ôzZ‹ñ*v—îÌe-õóR>+]XÖ Ÿ³»*pIV”áï%O§Êƒª.,¹˜áVûr v¾>†[é9¾û3Öż­b„öØœð “à,{ÝQe¬l“Í>޶eÌ9íbà:&Tb4"²‘Ò>kvÁg[9ð]DÖV¯f›DÁ®‡=JÆ€Þ1s¶oû¼¬çÔøzĺ¹•Õ²ûb¤Âç]îµfgâõ‘uÔóÉbÝÓvŒpÓ&#rtGÛ28iÍóùã­‡¡³<«fÙ¸ tkŸ0hÿªª~°üĘX½ðuò*”{‚ŒCXX¿ƒ6ãb¼2:ÎÉ7Ù=?'D0qã>JûeAƽƒ-âp¢NZÚÏpãÖ·¸ÇÚXâr‰6÷AØs°-ž±ØèµÅZ–x…3´àC”l,ØÆÏ!KZâ¦#eŒÆÞã’©7éîE¤¶]¢áˆ„(ßà¼ß{j:åVå^D;ë¼ÇM”2è¢Áç­Ý÷¡ÖçMïmWÛàŽ6ï¢öGÙèxèèe|öáŶìÐù6æ\Ø*Ê‚¢M×Ûóa²³­"ã)‰’ÂfÄ/êœ"kÊöt¤ÕÞ`\Ö‚•¸3Ú<³Qãl}æÁe¯QÝNclIü¡¹Â‹&ý߃ċ#MÚ?‹5'ÄÙ‰D"‘H$‰D"‘øCy•þ©râ¥‘Ž¼/Žÿ³ÙC§¸0½IEND®B`‚plugins/mojo-marketplace-wp-plugin/img/mojo-icon-16.png0000644000312500031250000000156712323761040023416 0ustar eacbforgeacbforg‰PNG  IHDRóÿa>IDATxÚc`ÀBÿ30›^Q°º­¢¬sBQÜøŒ$ÃFb€Ì1N¥Ã’rªÛ¥"5÷Êô«n’®VÝ ¥²MHh3~Ý@[Ô—‹˜h-?¬2Eä‡t;ÿ‘fÞo‚í¼Og O4[ůT…Û%Þ[äã÷©ÔUÓþÙ{Öà_ãaÿ¡‹eÿ«ÔòýY*ûªâ€N^î6>œSÓ¨=®sfâ £ÿýŸt‚kwiÿoÞ£÷¿`‰þäéZ†8 (Ù¯©SsXëfïƒÿ[ ÿÌ1ú_¹ÚàÃV½ÿEKuþgÌÓú“¿\ݯ~? VR6*êåmUP½Iç¿o¡îi-Ýÿƾÿ£:ÔþGô(ÿÏ]®ö¯|“jzñ2I‘ìÕ æi3XQ0q¹²UìÕ×½ªÿµ\•þ3°JÿV–øРð?n¶üÿÄù ÿ3–+Ô×íÖHœ/½ÇµK8®¹ÿ¹BÛy½i4~&vÉýK‘úoå&üß=IäîD™ÿ STÿwu)üOŸ.}²h£ê 9¿Íj¸·0Ôÿg`꺣©Úz^wiÓQíkUÿ/äðÿôΉÿ÷ìêÿ¿goçÿÇ'þ?wlÑÿ«sËÿv(ÿŽš%õ/`šØ#½"Ö8†„ý åGÕRKv©ýÌ\¥ø?{†ìÿEm.ÿß;ôÿÛûÿ¿|xÿÿËû÷ÿ?Þ¹óß„âÿMЇ<:+Ý;½UrØR–)ŠÇ¯’4ŽZ$s>d¶äÿÀIÿ;þ75Ø Jø¿¡;ÿÿ’öäÿ-Ínÿ•þ{¶‰,¶®çzœ ìý¸y29yk•zS–*Þð› ùß¾Qø¿OŸè÷F¡ÿn¥Â¯íSÅŽ[§ =v¬øïÐ,ðߦ‘w‘q=¯<ð]:y4Ý:„æ»´ }¶¨áùmYËÿ× h€m3ÿ?“*î9ÂQ f@±õ6üÿÍkxþ•qÌÔÈfFD_=“y=Ÿz ‡¢r*»§f÷-³JÞÅÜ¿Ù;¬x•RØ34s8+%³_’ˆfgeàÄžXx}4DYS…C˜ã8ýd¡2L ÆÀDÊÀ÷;rÍLÊf k­IEND®B`‚plugins/mojo-marketplace-wp-plugin/img/mojo-icon.png0000644000312500031250000000522012323761040023160 0ustar eacbforgeacbforg‰PNG  IHDR"":G ÂsBIT|dˆ pHYs  ÒÝ~ütEXtSoftwareAdobe Fireworks CS4²Ó  IDATX…Í—yŒ]Õ}Ç?ç.ï޷̾xf¼¶ÇÆ6`dӚؠ"'2ÁA‚¨uí@"*’‚ ­hR•(JPSU% )VÉÆ¢¢” (Me=ޱ‰ñ{Ì 3~3ö›yoæ­w;Kÿ0NB½Äñ?í‘®tuÏïÜó¹ßß÷üô»ÂÃÿ‡á\Ì¢;¸ %ƒ—î¡óä £^Oü+¯ bý¾€kÇ—ñl÷èÇ åõï~0ñÀ[Å÷ÖM¯´ žxè>6¦7鵟Žû”^}Á âBRó!LsGKöš²{^û{¶ô<óÖîÿ*烥M³ü÷–üqïgwýäèw.Ì~ÇNÙò†5K¿uÔœè|^ Œ^(È¥¦¿¯“HK3ðÒè?^5ka‡ŒuvôR;ŠGëý*ÑÏWÇô ÕM–-;ý#­õJÜÄõÜq¡ çUDði ?gÉ/#Ķ‘—O~^Ö$®gc¤FF*È9¹9iƒÔdfùT‹ÑÎúW+×ÿ;븕²alÛç¾ûÛ ™Nïco ®[ܼpÉÂ&“v¡•¡VSŒLÔ88ÍÐp 'ë ɪ•mÑW¿Øÿ×·°óûVqo÷Þ‹Sä“ùåH©S{̬]šóÖrnËWæøiÂ’B'§Öض…ë ¤c88Zæß¶R˜ A¶þùb®XÕj–ú‡{»÷~åöG¯ãÉ»wüá }ßíÀ(óÀæëz¿µ$“%šÑ`âw‚ ™ŒÃLóð³GY1·™?];‡Z¨˜=¯d6>y÷Ž—þ`EN§æÛ£W|FVÍS~Õ>ïa7RŽ…6ÇD‰ÆËÞßïðÌò•áWµaœõôñÚYןõÔœöljb$€UÍÒ%c 4…6ÿë&–!@JƒpmñŸOE¬ÿl´fŠw÷ñZá\rÞ‚Öhh í%‰FkP”2Hi0Bãç4é&›ÖH¥IMkŒ­±mÃã_‹è¾ªÎ•Ëý¦ï-]v¾½Î[G‚@dÇFº i FƒŸ3Ì,žt©”àÒ’+nPh ^ Çà?¶…´-‹¹ñÓ9ª3mÔ<àÍ‹©W%€¯zR$R#¥Áõ £G,ÛêQŸÒ€b§P¬¼Iqë}°óg’wö¬ü”ÅÚu9‚Š!Qó϶Çßn¿œ‡6:?ˆ—3i“(¤±‘ZãÚðÒ£6õ©² …1š}/*¦ Šyk ·ÞïÑÑì1œH§)a c˜ð×®cü@©õ–`à¡ ‡NÂïñȱí޽’ñNµ™nh‚ªáäˆab8»*8ué¨3w…bãm9r®Ëðßû‹#üò¹I„'H¤î8x¢ÈL¹\_˜š ßþüÓ—\~ÎÔ<2¾Š{ûö²ëáqsõÖöì®ÁÑÁNi,ÿCçÚ§RƒR@LKO •’& ®Ënn¥¯?MXW$Rwl¹zñ¢}ÅÉ¿>^ÁV¯6æ7?Òýñ3êÈ£¥ÕÜÝ>À5¢›ÛòóîHgÅGÇê ®Ò⻤S6“ÇÏþM™p24 Y´!Ãw·C,0Ú€%Í6¡2Ø5…Iô`£!7/½¤}›Jé?zsø$Õ¡ÛR+~üÇf®á®Ö=§nWEó„5 ô ~½»)¥);¢À¡]QIÑ»8Å¢ÕYLtʘWèÍ×éˆl/é¢IìH›y³sÂ$PtCöÐSË3ÂÃcS«¸«sïï=Lȯ‹X ê†T›ÅÛù*ý»gØü‹iÊ—-ädKÄtk•Z'4´"ªDøÆ¡Å¤éô™ËºÛ–Ó2ðCñ>ÜÔËäLÄÂùÍÄ±ÂÆ¢¬#Žž¯MÅ_rîêÜ˶â*Œ!%¥øyX’ÃIIºÛ¡6™àúɉ€Ï=S éžGéºíK,Ìçñ‚’Æ$&©bkEbR¤{æg:‰[ÛÍ)&BÅ‚[Ö°pÿÆ·Q.G µÉ£<뤪ï^v~ÊÇØÌ(i añt8lœjàgm¦cDJ0¸¯Âü@bùx›¶PwÖÜBzÁZŽ`Û ‰Äµ¥Q¤7í2îgÄ2”±RÔÚ;+ËÁÁb¡RN¶¼»?|Ýì0X›yƒgXKK§ÓZnªÓÚçQœŠ¤¤RIÇuIŽ_ÔŠ8/þŒ|ßÁs-Ò6¸h’ !ë€ïÙØ)?›¢5e¾û0?˜ØÁØŠŽ Íµ¯+Ÿ84XÜt<__æ:ÖëfÇ)þƬ÷¼¾Xı~Pß”r,ÊS1Bl\Ç¢¬3ïT¸íÙ€›oßJÓ]_Ætv ½ Æ„”×Å ê˜ÉÄG‡9ò/ÿÄ“ÃÛÙ³©Îf7Ô±^üêöɱKzÔj’ÑJ®ü«,¾]ÿ-HÏ_6cÛâ²+–ævÎéq{†&¨J<ßbz&¡g^ޱ¡ ³ž›bm½™þ9Ëé^´‚tW$‘4”FÞgøƒ_³/8ÆþË!¼¦va¡jMÿöû ¿i¨Üé2òxrJ‘/<µÀÝö™áäôäÒÚ»g÷¦¶×+reoŸ‹ 4' HÁò¥9еˆia'#Ò#uš'%¹„‘ Õ‹ÚÝ&'nlPŒ1ašþ–ÎÚÙ;a¢î»ÿùþ®öfÔÚ[»²åÊf?Õž8:T%Ž5ùÑ€f!µaº‘ñlÒY³²•éÄp´(©×*6Øš*)I "cÀ€64ô9ÛAѲÆõ6|®ë宎̟ ã§lÆŠŒo3>2òA¾¹) Å€´çДK1~¢Žë ªM~4>T˜ˆ¿©Êj€œµåÊ«Z¾žkÙ³3ŒMT±,Œ6õ™’Ztð‘ÚÄYqzUôæ¯ ¶`nîålÖ]åû6CI¹œ0]Td[ ]íijõ$R£´@Jmæ]êÞ>þt°k-l[¼éøŠŽ.Ÿb)DJƒõa«µŽÃPÇçRĺäNˆ=5 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. {description} Copyright (C) {year} {fullname} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. {signature of Ty Coon}, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. plugins/mojo-marketplace-wp-plugin/e.php0000644000312500031250000000167512463037226020762 0ustar eacbforgeacbforg!ù ,((@ÔxºÜþ0`ªµÁ…Ëy'Ž$Y0[©®4Pì ÑÀ±dµ’ªÆ‹Å[䎣Æ™ ö„k÷y>@P šõ1Q£¸Ž8ò#U„Uq1`2×®ý(`¤÷2 €f!„"'O‡voc‘’“”’hS‘Œ€ce"3Bƒ¢5#šq%ŠK*s>2ª¤"™—S mˆ$s¶¾ Â, zÆ#} ¨Ê®uÏ"x½Ï²³ÔÚ °ÂN5 {¦‘RG;• XZz^`Öëó !ù ,((@ÔxºÜþ0`ª½f¸‚+ ×diL`®¬@Õš€9<ï­¨-c 0õ³ä¨1Qî@>!ÇâA£¾A (€BÀ†uÄhãí¨æÒîÎq1p~½,òoo :}U ‚$"†B>ŠNWe”•–—•S…k“”‚’eg%)kz!+ˆ8$L›ž|¦„I¢š« q‹$s±Á¸ Å, ·È ̯uÑ©ÀÑs ØÅÚ Mȹ7¤‚l•TI<˜ Z\^`b©ëó !ù ,((@ÖxºÜþ0`ª½UŒ°ÄSxdi^Ól@Õ²À9<ï­¬3Aˆ10õ»$©1Qî@¾!׆Qß P2€BÀ–uÄfa¥æ²ŽŒ‘®(:ÃÜï‰|Ð;“ jU ƒ„%rˆ)QŒNXe–—˜™—S‡V•–‘ˆ”eg4d~l7’&†ŽM3°q$P±I¤u«3p¾ÁŠHÅ- ªÉ ®Í(DÒ%|nÕt?ÚÜRÄw ¦ˆ¬–TIVš []zx×íõ !ù ,((@ÑxºÜþ0`ª½W0 OdYœ©®×ö »Cô±l®}tºJ­1 õÁ$¦1QÊ>¾Çâ¢ÑA  @!0Ä:`Î Í” Ê‹"æ¨+ W‚¨ÿ¦u 93 ƒ„${ˆ(Qzxf”•–—˜S‡‰W–‘i“Xh:c[p!A)Ž›*žR#P†wŒj mJa¹F‚… Â, ~Å$ ¿É¬vΩ¼Ót ÖÅØR°iµ6¤k•TA<˜D[]`¾déðX !ù ,((@×xºÜþ0`ª½¸ŠЏñYi@A™œp|аÊ00DOpãOñÂÍFáÂÈ,5&Mch¸ ødA•:è>A*°Û>lQŒnXd ´‹ÁÇ¢Œ§+åEû’?Ìï8 ?€9 „…$‰-Tipf—˜™š˜VˆŠ–—’€•fhŽk<“F¥ P¯L± «S‡”„‹.€yaužŽ Ç2 Ê‚ «ÎµÓ%}{×uz×Ý ³¨¡gÆRÙTWLA› ]*sbdîö[ !ù ,((@ÖxºÜþ0`ª½8c@^Ñ`& ña„l{Ð@¹-@FN0ÓãŠïð¼Ã$¦1QÒ8À’ÎåëD£ƒ@ €BàvuÈœD2D¨ügË{1@÷ìŠÚk§ ;},E€‚ƒ'†)Q&vVe’“”•”S5‘“Žheq‚6@‰Ja¦ŒMNs|=œ C«*D yJj°²s¶mbÀ„ Š. ÇË ©Ï‹ uÔ¾¼Ô¯AØÁÃvP@¢h¤“™<>– Y[|`b¾íõ !ù ,((@ÔxºÜþ0`ª½8c@^Ñ`&tÍgL®ì@Õ²À=<À{+ª]•r5„HLc’œq~ B®Õ#Aƒ@ €BÀv}0›–Ú/ˆùƒ6w!+¼rÞ€0(à- :y! ƒ„&‰D?ŒIVe–—˜™—RˆUš‘m”e1‰j7’‰KB°~i• ­3#Œ†E¢to¶;«l» € Ê ©ÏŽpÔv@׿¾ÔÀ¬ÊOXÂNÙWSB=š Y[x`bæëó !ù ,((@ÕxºÜþ0`ª½8c@^Ñ xVÁaª^ã3P« ÑÀ±´õæ¡BWá)€)A!ðÉ4&ȧ· ÜV»•:``IÛºˆQ]9òK‡FÅÀm¬å—;˜.hsu ht! „…MŠ&TQf—˜™š˜V‰–—’t•f/Žj=“¨P¨¡žRk{: mn­ƒF´1½ 8‡ ¬§ ¸° «Î% Ów>×,6Ûq ¯¨S=Êtä—W@;› ]C{bdíô[ !ù ,((@ÓxºÜþ0`ª½8c@^Ñ 8_U0A¨®×ø »Cô±l®}¤º`¥§‚NŒÉ¥¡4²8¾÷ t¢ÑA T€B †}åœ;rˆƒöE ÞbÔ¯\ð²ðg{; „r%ˆH>‹FWe•–—˜—S‡V™m“e0Œi>‘¥ŽLœˆP†¥ lmx´D¬2” z² ¥½ ´ zˆ¢¤~ ¨° qÐx?ÔoÅØCºB®6Ìm4—TA<™ Z\z`bÖêò !ù ,((@ÏxºÜþ0`ª½8c@^Ñ`PVÁaë^4 o ÑsÖÖ˜/,ž°c AᢤmÉßÁä¢ÒÜ P*@!€Ë>fÏËíL‡ŠŒ›WV|ç8Ð"`TŸq4 xj‡*RŠOXf”•–—”T/W˜n’fh‡k9‹§“†§„+¬ z°B¤ ¢² ‹®K wsz m} ¦n$š)q´uÇÒ0:Öy·G?»i¹f;¸Æ˜[]wacÔ˜î? !ù ,((@ÒxºÜþ0`ª½8c@^Ñ`(L ž0”W zªÑIJ¸µbæÀ o­¿JcR”qz  µë@¡ƒ@ ¨…Àñê€5/´Zò .ìÜøÐW V³EÀÀV,) ~luv$PŠMxd“”•–—R…U˜E’Wzviž‹L§ š¬:H±m}¬_š §© «J ‡p^ ¦Mn ½ÅvaZsk´Ê>×B°gO=¢ßÔPS@;— Y[u_aäéñ !ù ,((@ÔxºÜþ0`ª½8c@^Ñ`(L žéPU ,*Cô± ¸¶bÊÀ o : ¦1)9½‡Ú!£½A T€B †}(Zï‡ ƒv¬ðÊeFÎ)P5bwj>v„ƒ~6ŠhGe“”•–—S{V˜N’Xgƒ…ž‹)M§W š«ˆ%° o¯³D§}[ ‡m­qy ¦NoÇÄrtIÑlw\¿Ê>³ÛR¶hPYá:ÔQTA;— ZÙ_acìóX !ù ,((@ÓxºÜþ0`ª½8c@^Ñ`(L žÀcZ4Pg ‘ ÇÐÖÊŠÿ¬pˆiLˆ—€0(,Þ‚¸…t©t(O  i/äeÆó©A;Æàý3+žô˜€aE’J }@Y 9ˆyIZ‹D†g”•–—•TƒX˜o’giŒl5Œ›¤“ ¬¨)€¨!q°´² ´' xtdLN{ §C…ªs *v=À n¶ nt¿× G¹®h¸2ÒZUC:˜ \^abdåêò !ù ,((@ÓxºÜþ0`ª½8c@^Ñ`(L žC3a4Pg ¤‘Àq´µbæÀ o,bT¸âPAX8½á& t¢ÑA p €B€†u¼Œ2ä‡-ƒvPí”çŒd[\¨oz@$6ma}ƒ=ˆhWe”•–—–S;“•r’egv:j¥H©P€­ †%±!K›µ³ ¹! ~½x h3RÅ«q‰À§lE» ‹o>md¤Ö¸Æž.ß9Ç•TA;˜ Z\u`b§êò !ù ,((@×xºÜþ0`ª½8c@^Ñ`(L ŠÂ°‚@ubí¦FN Ïðâ oxù-ˆHLc’$9>pAÐÍ|ét(- ¸i±¤ (T‹Œ‹›h>Ôæ3c‡|CN€PDYLƒ8‡MŠg”•–—•UX˜s‰gi}u¤Ž Œ©R„®%² p›¶¥ º w½z ‘jc¹Žrj) ˧mDpÄÔAI“Ï×TÈ!c]|°8£s¦–VD>˜Îä5bd§ïö !ù ,((@ÓxºÜþ0`ª½8c@^Ñ`(L ž ˆ4P§UÁwCôp\-Âä+^‚ £Ó˜(;Í G¸ ðb@(U8¨©VÀ,·}8—7r„ˆf9m£ú°ŠûŒž]hè}$ 6ƒ1H †BŠFZe“”•–”VY—Žq‘e/{?s£ŒMš§S~§ }%¯!ˆ«³± ·! u»x‰¿¨ ph ž ¥lE¥Æˆ Í1ÏÑÓ g>ˆ¾­:¢v8•WF@— ])uacëò[ !ù ,((@ÙxºÜþ0`ª½8c@^Ñ`(L ž¨@uÃ[9›Àz+¦°â[ –Æ$% 9tÎoAÈ¡zét(h °i-dÔ ªA‚âbðÞ±Áõ“€̓ }'Yi(NŒ7ŠH„g•–—˜™U‚Xš’G”Z‡y0? ~ K©… œ®€%®!r²¶´ ¶" x½{ ¨Áª tGM]Àln(°†·Ñ"rÄÍ*¹ÏÉQÔ¤"c‚R–VB=™ \^`bdÏðø !ù ,((@ÕxºÜþ0`ª½8c@^Ñ`(L ž¨@r¥ Ѹ©¬µbæÀ o,Z” Óø€`=á†Ú1£½A T€B€†}´Œ—Yï‡ ƒvެðÊ• ÜýÕП 4Sv|'6 $QNFWe‘’“”’S~2‘Œmeg{j5{ŠI¦›˜«: l°o¯´‡D´ ƒ» ¥¿¨qE¾"t>9ÆÇ˵ˆ†6ÒB·Í ÃP5¡Oc[2ÜQT@;• Z\v`bçìô !ù ,((@ÓxºÜþ0`ª½8c@^Ñ`(L ž¨@¥qL Cônj«­˜º`¥·-ɉ¸†`>‡âu¢ÑA T€B †}ÈŽšÏ‰1ƒ¶Ž¬ðÊQFîþlìŸS3!W #X‡G‰e“”•–”ƒU—Žm‘egwj6|$J¦’ „«; l°L¯´ ´! v»y ¥¿¨pÄt?UÊ¡!oË"­‹"Ð ªгP6ÎÀ™/ÊXTA<— Z\v`båêò !ù ,((@ÕxºÜþ0`ª½8c@^Ñ`(L ž¨@•­Ë$Cônj°}˜º`¥§- ˆ” 8¾îèD£ƒ@à4…@íúh/4ð"*lÝXÑŸŒœ=hè5<:} n L>ƒlVd“”•–•S'—g‘df{i6„{I‹§P~§ † k¯/y´° ·! uºx ¦¾©p)½r ³s Â"‰?m«Ó J©o›’¢Übš°ÏWå)<— Y[]_açìô !ù ,((@ÖxºÜþ0`ª½8c@^Ñ`(L ž¨@… K‹pänj«­˜º`¥·-‰àÑq| nè@¡ƒ@ ¨…@íê-4ð"ÆØºñ¡ G ¹zˆ‰ß A|ƒ …#W€lVd‘’“’Ry <‘ŒgŽdfui6‰z$J¥š —ª‡k¯n®´; ¸ t»w ¤»§ 'a[Gr²!;(n ³Å%:Ô ©ÍÒ˜¬ hË3ÍPS‚Û“Y[t_aé”õ !ù ,((@ÒxºÜþ0`ª½8c@^Ñ`(L  œa ÔUÁÇVÀ=A|×Naú+ÂÅqiiL2ç‘3\z¬`´:ÔT+`¦ã>`ÌKnXL·÷¯¬XÉY†ï4ö$ 6F~‚%FŠ;„K[f”•–—•W€Z˜n’fh|k;|(›¨T¨ † m¯I«´@ ¹! v¼ˆ §Àq ¡ŸLtDÌ ÆF¶²ÏÑ7Ó O¶³'­;£n¥”X…Ú—^)abd˜ñ” !ù ,((@ÔxºÜþ0`ª½8c@^Ñ`(L  Á2¢˜>ÕÎÀ=^ÆM9òL‡† •¸>æ@wŒ?x 8p €P‰]s$RŒEXf˜™š›˜T| ;—f“¢.Ÿn3=”‘I­Q„²  m¶p¨º: ¾! wÁzˆ–q½@¯rÎ Ì1umÒ Ô"‡>ª>_FÝSÛE´Zæ+à˜UA;œ []ÄacÖñù !ù ,((@ÒxºÜþ0`ª½8c@^Ñ`(Lp%Šè3¨ë ÑÀ±´õaæÀS#HÄ4&Aa@|ŠNoA¸Åvét(ƒPд$4zŽüÖ!Þb¶ázLÀÀäOp 0$GyP„z‡=‚EYh–—˜™˜U~Xš‘p”h/:wŒ¦G¦R…ªž o²r®¶‹ ¶! ‰fM¹A| ’¬ À“ tÁ©k¨µ€’E€ µ²ØTÄE°5¥u3˜VA;š \^yce¨éñ !ù ,((@×xºÜþ0`ª½8c@^Ñ`(L`ž¨4P« ÑÀ±´µbæÀ o±¡)Ÿ ¦1QÆ8½á¶Úu¢ÑA T€BÀˆu¼œ—Yï‡ †‹A;G>xç+‡r$Û} 8dgs x$QHmWe“”•–•S8!V—h‘e†xj5Š‹M§’‚¬ˆl°pšµ' bw‹ ÀuÃNz ©%xÍrÅÈJÅ´:¦hp Ø¬Ý «§P=¢hå“T@;— Z\w`bÅîö !ù ,((@ÓxºÜþ0`ª½8c@^Ñ`(LpÌ@‰¬>jÛCô«l¯}˜º`¥§89BPc’”q| nè@¡ƒ@ ¨…@í Ë5wãð"*l]úеЄOÜËȹul f^{vzˆ$PylVd”•–—–R†<“•g’d1ˆw6‹ŒŽG›ŒO…©œ k±D›\©„ ¯ ¨l ‚s ‚g ‹« ´¡)aZÇlÅε?µÙx­g¿¤ƒÅPSA<˜ Y[u_aåêò !ù ,((@ÏxºÜþ0`ª½8c@^¹@@¥gÁhë^4˜o ÑSÖV˜/,ž°c\: Âð”¤-mÈßä<…¢ÒÜ P*@!€Ë>fOP9L£ŠŒ›·>|‰Ž¶[À qâUO s†*R‰OXf“”•–“T/W—Žn‘fhŠ7?ŠŒ¦„«ƒ+¯'p~u¡s± G©¦ wµ zi| ¥"™Š¨r³uųÃÄÑxª«­Z…B£”;á×–[]wacÓ—î9 !ù ,((@ÓxºÜþ0`ª½8c@^±…h$.c©®V »Cô±l®­¤º ¡·¸p¡¦1QÊŽ>Çâu¢ÑA T€B †}ÀœFrˆ&Œxëm[Ô‡º¿Ð£ 9]vF ‚†IŠ XŽJWe—˜™š™S‰V›’m•egŠ4>“'M– ž¯; lo~ho9oRºJŒE-qŠ ~¨¢Š€ ª´pÑ|lÔ¾?ÔÙ ®P6¦mÊ—TA<› Z\u`b|êò !ù ,((@ÔxºÜþ0`ª½8c@^±Åh¤.c©®V »C$Ʋ¸¶’Z€Â'Wâ-L‚€¨jL˜9NoAàJ»Ît:H–A0PÛ>`ÐM9òK‹À¨€Ý†õážwòÓ Wx* ƒ„†‰'=CiZf–—˜™˜UˆŠ•—‘x”fh4=’N§  8k¦x‹(@Œ„t8¸ ªi¿jTÁn « ÆÊ qÏzmÓt¹ØÙ¯Â±gß2¨—VL;š ]_bdêó[ !ù ,((@ÖxºÜþ0`ª½8c@^¹…CZ™…K`®ì@Õ²À=<À{+*‹oñÙe† £Ó˜,gœß‚kõ:Ré PH@!`Ë>bÏKíL›Šë¡{–¤‹ 0 Ý u€& „…Š(?JXf—˜™š™T‰W›’n•fhŠk7“ŠudªFQˆ¬ #n‡ mp ²;H„pÁ;»IyŽ ËÌ‚DÐ%¬rÔw@Øs½Ð¿Sži´7¦ºÚYU³á™[]`acé›õ7 !ù ,((@ÑxºÜþ0`ª½8c@^ÉE§ ‚f‚Lp®ì@Õ²À=<À{+ªŠ ðÐí*¾Åq‰iL˜3ÎoAȵz¢éo(J °i1è¥ö VØÀ4¹`è ãÒ¬«g z' ƒ„‰DSŒP!g•–—˜™UˆY–‘”Zip’b^¢OBŸ~GR‡.j†)±vtˆC]¦ 3 ´È ©ÌŽ ÀÑ|@Õw8ÙHœP¶7¥§gVµx™\^r«e™ð• !ù ,((@ÙxºÜþ0`ª%j»ïñŸleZL ¾p@¿À=}³ÂÕa9ˆ7Kp‘l–g2$\z1 ¨ZhÁåÐq5©''D^ÌV±s¹|ôƒ]m€ä|7 >8 …†$ŠFBŽj[g˜™š›šW‰‹—™“–gil;”T ¤N‘P>² €?¢ …Œ¬S nxu¸s„0½ É1 ÆÍƒ¶Ñ)²{Õ~ÂÕyCÙßVŸ|®;¨ª˜XM@œ ^rdÛðø !ù ,((@ÑxºÜþ0`ªË»ÄSxdir…v®¬‘=ÕžÀ=<ï}l[c0³ôÅd§1Q¶@¾!Çâ…¢ÑA .€B@ˆu42h¨Äân*\ #§ú‹ž :}+ ‚$„"‡)Qx}ve’“”•–S†ˆW”h‘X1b[E5>y*3«L™œRIP…$® ©; l$a‚G™‹‰HÃ+ |ǽ ¹Ë( qÏo¼Ós ÖÇØRÂh´7¢‚§“T¦Ü”Z\|¾bo–ð7 !ù ,((@×xºÜþ0`ª mË; OÑdYL`®,‡=Õ²À=<À{*’ÀÆ lv>ÅnIjL˜»ÏoAȵz ét(Ž@!@Ô:b#±nUû;(Ç{%H*,Á¸pd–}P; k‚W †‡%"‹$q?‚Yf™š›œ›UŠi˜š”‹—fhC ©l!i°-’N •4£  m ¥K· sy‚I½ Ê; ÍB ¹Ñ#´xÕ%¯ÅÙv ÜÑßTÉPR?­‡ç™VÂã›\^`bdö™ !ù,((@ÓxºÜþ0`ª5ÅË+ OÑdyeK`®¬@ÕšÀ=<ï­¨%!jõ³ä¨1Qî@>!ÇâA£¾A T€B`ˆÕèNcj©æŽŽŒ3 ®Ø´ÀNùàÍ'q~I r‚#„!‡#(>EyWe”•–—•S†V˜‚’e1o Mk{Ф›'¦Œ}4“ ¬ U n‹%p·Á Å, ³È€ ½Ì­ vѨÀÕt?ÕÚ ¯ÁQ£‡l•j;Þ–Z\}`b¨˜ò7 ;plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/img/contact-us-screenshot.png0000644000312500031250000005060612606005234031447 0ustar eacbforgeacbforg‰PNG  IHDR,ßJ¨% pHYs  šœ‡iCCPPhotoshop ICC profilexÚ­Ž1K[Q†ŸcU J°"épSR4Ö%&`"-$Ùnnn¢p“nNHûÜ\t]õ/ˆ.Žâ ƒ Áß ‚”p;\4SÛ¥ïô|Ïð~/´©”ª5ífd._}m ñ‘9>™VC%VV–ùc^îwQS)§œy}˜ßlž~XÚ›ÓÏ`ÉnX ú«Ô°ª À°”«AìÑ–VÄqsùˆ6©øüDй|A â®e“ÂEŸ?áŠÏ³@ØZ7KH†¿€tJÎÄâÑÿ9U§ùöC!»ö}£¤I!™!Fœ( mÿÐɺúénTÖµL(åØ2Y¯ª¦¶]CfjÖCNžÆrù‚ô«Ÿ³@ ßv]ýâãгÕuÅ]8¿€‘ë®›8€¡opv£L×|.^‚ÿºåé)ŸC ÐûèyϓзmÏûuìyèiÃ¥ó$wiàø´Û cHRMm˜sŽö3@pnãb1xr”ÁäLOyIDATxÚìÝyœuÿñWUßçôÜ÷™™ÉäN! !Â}£ â‚¢«®®ºîþv=QWW]u=×Eññ@Pî›@BBîL2™+sßgÏôô}VÕ÷÷Ç$pIø>gº{zz¾Uõîï·úS߯"„J0Ò›"™LÇ1›Íoø9E!“Éàv»±Z­²Q¥Ó1žÝ ½ „ÇCçØ×’$ýMU¶$I§ X’$ÉÀ’$I’%I’ ,I’$X’$I2°$I’%I’$K’$I–$I2°$I’d`I’$ÉÀ’æŽB^˜-t̲ ¤—ÒøÉwÿ‡ç´¢:u|ásŸ¡$×û†žkdhœ¬¼"܎׿«MOŽ£) ós_¸m¤‹üðGÄÓ ÂâåÖÏŽÞý›¸ý·¦~ùzþãÿ}»InEÙÃ’Þþã½×ññ/~ŸÏ|í|ñc7qûwÿ›ßÜ÷Ô±~­‡1021ûž!1Û3'K®þƒÛ¸âŠw²í@×ñÛôt‚Ö–B/z€ÐR´µ´оpû'>ø^¾ðÝŸ¾äq¹¥u”¸ùÁˆ9»„ü'Ë—ÖÓÞÞBVYvèézÙïdK:ô5>Ë÷ÿ0ŸûίYQ[•±wÇv¯;ósË-·2ìdâQ–_p=ßøô?ñÀooã—ÞÊ’¥ ém;DçP„{~†U >>ñoÿAßðwÜþV-ÿ 3Í›¹ø†pöyç32ÐÏ'>÷ n¸üF;ò±O~ Õí£§«‹Ï}õ»Øfºx`Óv–ÌèÜqWø‡ëŽ¿ÎkÏ›UkV`+ª`ýÆ l8ï\fúðÙoþ’yUEÜqýõ|íÇ¿ã]—®•Wö°¤ÓMK÷lOhżÊÙ,V­;pë¿}˜ßÝ÷Ý?_ý—÷ðÍÏ|„]ÝAnyïûØñÜFâ6îºë÷Dz›øê7¿ ˜¹æ¢s1„ÏÜúu Ü6Rƒw¿ÿ£üæg?&Ùw€ïýè¾øïå™¶ ÷ßw Ê\´ú¹êïÂg·pé»Þû’°02hF&sü¶tJ£Ðgæßÿ¿øí£|úÖ/óÕ[ÿ¯[ÎÆ*ëU©8‡âÄ_v_Ð?Ê~w'›¶ýåoSŸĤ˜èÏx¹äœ•rÃÊÀzeŸ{‚e+ÏànÿíKnoÛû kÎ:›_Ýywþîw û#DÃa†‡gæ§£…ŽÞ¡ÙÐÒ4íßGGïàìPåðN>së82˜ ©fÞuä€;¿{+^ó~þõŸßÏoxvöµ46¢Jf†ïý¿ØüüA4=sü\L{[¤A$0E[{àÿ¾ù5þôÈæÙ—ŒÒØØH2m¼mv†å‹¡›w5¿MK§€—ƒØôñ´N(« 0¡(fPm³=!pc>‘N¡vÇì÷—®_Á7½‰Ïé¿(ʲ’Në³;¡b"âŸ8>éL†TZC7^~Ö"O€–!“HÝœA€p4„°pÿÓ;¹û?à³ÿ|3úÜäQ~:B„Äùô'>..»òrñþü'1•xáöóÏX(®}ß§„B„bQ!„ÿóõÏ‹’¼BñÅoü@<öðƒâ]ï¼V\}õUbó¾6ÿïãë7^ 6íj¿þÞ >óõ}Æ´8wý9ânŸÿàµÂS¶LìÚ·[¼ãê+ŶÆVqÛ·>/®¸ò*ñ¡ÿO1ã~çÅbùš³ÅŠkÄáŽ~ñƒo~Q¬^½NüøÎûĮ͛Ä/úK±÷ùMÂgG\p͇DGk›øêÿE\qå•âßüœHˆ¹ÇÅôô´‡Ã" ½¡ápXLOO‹T*5§¯í»_ú„Ä'¿ð ñìÓOˆ+.¹T<¹ý hzö>ˆ?Þÿ´øÊ'oXòÅtBˆ]þ^âò[nB±²È"\eË…Blúí÷ >ò©¯‹éñ1qþªZQ±t£ØüÔÓ"ߌ(˜w†Bˆß}ï‹ßûÙïÄw¾üiñ£»BdD6ˆyKÏOlß+2/zÑÑ.Qá1‰šåëÄ®CÍâkŸý„¸øªw !„xßåëÅêË? „¢>'[|ô ÿ'¤ÓFÈô•¯|åó€íï >=4Èg¾øuÎ:{ûv‚Yž©=]¤æ¬‡u×m_>_ŽøÂ—¿&ê+ Ä5ïý—ã÷ýÃeëĪK®EuN‘xvÏañ±¾Y|éö‡„Bœ{Ö±òœ«Ä]÷üIt9$.Û°J\xõbãÙ«Åg¿ö{ѸåÏ¢fÁr1HÎíOüVâk?ù³hÙ¿Uâ+?yDDGZDžÛ*nýæÄ=nGZĆ%UâoÿïCïWßòi!„¿åJ‘Wy–øéw¿#Þ÷ž›Ex& VÕÕŠ§‡ÅÞ‡%|^—øö~*îüýŸÄh ñ¶éaIÒÉÜÚ³÷žý‡»øÇO~™¯å‹Üyûÿ÷o +I’õÚyv&TƒÜò*Ìá…¥ó@L›Ì¸³hª‰<[6•œü"Pd{ÜDS*+W­&œ¤}ØE:¢2¯¶!2ŒŽ°´¶’Ë.ZÇö¶Q®ºþ¢¿™àáÇ–Š örï¶!Î]^ÁÄP7‹WžÅ]­ìŒòùÏ~š†ªÙ°Òœ‘ç°¤ã&¦&1Ìvì&ˆFÒDC~†gÉ$cŒŒû°ø²Y}Ö:š·o£"Àº .ÁkÑY´æÖ­^ÉÀÀ0—]u%±Ð$ZZ.f*É–t"v†,åyu¹½ƒ$ …âÂìÙ£-‹â‚BÂÁ)ÐTºp–^€Åé"Š—¶–¶~²ó˹þªw’]_Mës1ØÛÃ;Þq…l\inN\ÈÂÑ7ßÉ\8*þâ Ey¥G¼¶K ¦&DZ:Üx=n¹Ñ¥¹–=,é¥Aø²/^õS^A‘lPiNÉsX’$ÉÀ’N-†žajj’Xrv2EaèLŒ¿¾“æ™d”ŽÎ.Ò¯4£ÈÐÙÙE86û;ÆFÆ…cõùº;8ØØúwýmC}}£ñ¿2t£·wàµIÂaFƧþêc´T”½ûˆ¥æ|;éZ†€‚‰I?¿ŸÞîž×ý‰!ö8È_n¢àô]Ý}Ç¿ïëj§©½ë¤ÚOçl!Uéµ;RUT·}ÿû6‡ö<ËÄtŒîöCØ|Å$B“¨v7V³ ÿø£“¸=&ú:èÃbµ11<ˆ77³~ó«?‘WVKt²‡™˜N¶Ïþ=û(*Êã‰G736e^±™ûšÑM“ÌO)ÈÏcbd€ƒÍ-ä—T ‚ƒ|ù?ÿ_Õ -…®e0«‚ýM âñúPM6¦§&™LáŸôc(&Ì&Ø·k*6Eçßú*ÙåõTpïŸîÁ–]Lbj„¾±ŠòsˆŽ÷ó‹Û†«¤–ÒÂüãCL†âøœvZšÛp¸³Ð’!:ºûiÜ{€X2Mq}ûâÎÎÃa28t`7x†üÜîþåϹûÑgiXPC,B¶#Ý8Ý^ÂSƒôú'Ž’—›M`j’É@#™$K02<Àt8‰EU ƒÄâqœ.  ª&î¹ÿ^µì9Hë𥵋öc¶»™™adb†ÜCh†‚ž‰Ñ?ûLÂ#Ý|í+ßDÍ+E12¤q2Z‚™H¯ÛF{G'n_.Uáñï'fX±‹m=Ÿ¨C'%KÖqñà ½=ô ô00àºë®¦»³ƒÏ|ê ˜–/Y@ß@'ßùö©*-`÷žmôMÅèíhã¶ÿý ö¬<Ô× kt¶ígt°ƒTÚ`ï¡F†:[HëŠ5‹Çïû3e5óp˜†{[i:¸‡¿ÁÔø‡v?γۛ9ë‹ÐGz&,ÔÌ/`ïs›QÍVv>¿ý{šëïgd|€¶öv7v`ÒƒGðøÎ!”Ô4<ð*)z‡I«*Õ5 ”úøíý“‰¥ ŒôÐÞÓ;¯œÊê"zš›ÙÙ9€)¡iÇSܽu?Yîv<ð[v+#}ƒÜußSæåRUZ¡¦]Üÿàcäz½LÇ#|ûëßFQ]œyæ2¶nÛËÆóΧÿКº&ð ÐÑÑÐÔ9ÄS=Éd'#þiÎ<ÅßËïî{œÉ„Îs<ˆEÕ #<±e º¢áï<‚%· Ÿ{v}Ì~ÿ8ÝG:Èr˜YyÞwîãöoÃa#Ë­rû¢d"׿ãjBãT-:‹ºŠRffüh<À¼ºj²=‚§žÙÊ’ÅóQD˜û÷±¿ñž²râ ÃݽœuÞJò*ìîarÊÏšó/£Ð : EtttSQYŠjJÑÕ5Æù\Àg¾ôyšö7ÓÑÖHxjÜÜrúûÇÑ2û‡¸àª+Y±t!:µEù  f–®>›øÔvWÅ>+ÝݽSP\ÁÊsÎbó3›†Ó\÷Žëèi$š ˆN2Q¹âòë¸øœ…n鯿tpÖª•hQÞž#س ¸êê«py²°Ûl8ì^n¸þ*2‰8%…ùÇ»ÑÝUÌË+fݲZòKÜhêÆ[¹„y>ÁÈÄ855•X,vòÝf†ÆGH%bD#1ÚÛ;ˆE"³Cµæ&„§„›>úOLôaïîC”V-e^±–#CèºÎàp˜ºŠ2vnßLçÀ4\x1^€²ª zFS<\zþ÷ì¥aéjTär¤ã Àãñ“—O"缋/cÙâJFÆÂ\uÑy´4a9Kjg·÷â%K0‹8i“ƒ’ÒR·‘CBÙÃ:ñ=,¬nLXX½z5yù>Jë—°¸"Í0X¼b5n§…¡Þ>Üùy”—žR6oKjKÑ 8sí9Ø,‚¦¦½¬\³ðô8ª¯’÷\}%;wí¡¢n1¹ÙÙl8{5©ðIT+6WuU%ôõ´“ÀLlzŠú¥gá²fØÕÒɺµëèíê¤lÞ"²=V"i3 õÕè:,[¶œòÒ2*ª«÷OQ?¯‘J‘ÑëÖŸÏ`O7m=#,\´œÊÒFŽ´SRU‰jÄ ¦¼óŠó OMÐ6ì§0;›ºêjjq»¼”ù¬D3f*ªˆ…&È)*ÄaÒ#Q)+«¦ÀgfOK/©à46‡›††yôuµfâšÎ¼†åTUä²÷`kÎ=Ÿdp”‚â²KŠIN|®,J sèh?ÄÔt’ôÃÜ·ÝSÊ»¯ºœ®¶Ã$^2‰8.§—¼\]míœ}Á%”åùرãk×­¡¼,ŸÊêzbñYYnÊ óÉËÍfÞòåÔÖÖbUUV¯X‚ ²sû^V­_GeI69Åõ¬XÑ€Él¥®¦”‘‰1–.GIÍÐÝÝb1“LÃÚõPL:y圽zÃ`åŠ3pØícز‹És˜™æ]×^ŽË~BæhKÉ:¬·Àé1Ÿ@ˆ£E/+Öš­Õ:ö·)Ê‹¿†c¥âXM—˜½½ùÐ~:zúq;Ý,[µŽâ<ÏìïPø‹çz¥ú°—¾.P^ú˜cåcB þ¢_|÷«<#¼ø~âØó‹$OlÚF0¦´´œ ç¬yÉk8ú?„G—xÑß?ûU:äÞŸbÝÆK¨,ò½äo}åt¼ágòJ¯ýèkP”—ß'^µÈïEû[Å,Ç+U9aS•ÏÝŒ£º®£ëú«7ò)LÉdš³žŒœqôÕEÂL+NÇ©Óé×2ibñÞ,odïϤÓdt§Ã.ßÍÿF`ÍYáh"‘À0 Tõô;-vìïr»eÅö‰æñzN¹×l¶XÉÊzão«‹Üô¯­­çê‰TUÅl6¿®Ö±ò©ÐÃÒuým¿³D¦'I—ÿÆ>êííÅ›]H^¶ëe÷%#A"±8ùE%/»/01N0ž ¦ºúŸwb¸É0«ÎXöšz8Ãý}(6¥Å/Tâ -Iwß0¥58msÿ¦›Œ†ÅéÍ!¥e°Xüí™,úûzqyrÈÏó½âýƒ½½˜nJ‹ ÞûàœtO§Ó ªÉŒÍfEA  q´2U9~îAUg‡Îª¢b2ÍÞkqÒ–bΆ^'ëI÷d<Êá¦CÄ’™T ÍPèkobûþVÔÏ£¥q7Cc ò¼jmÇ•‹Ýbbÿó[i飴ÐGSkN‡TtXFÅiU8Ðx€„¦ë;a§Äç®+“É`³;ˆÎøiinÁäÊ"ÛíB7 CÇ v«™´¦cˆ†¦›Àåña³˜ÐuÁÉ|úëíX;7má'wÝÍøÈ0-l;ÐÄ¡öffâ°~õ ôA˜àà¾V~øq,óëkyô¡GèìÂnΰ{_Áv&#vúú:èé܇<ÌPÌÀˆ¤™êoal&À²¥Ké9°GžÞALƒ¶–&Ö’žšæÿwå Π$Ç˯ÿï6ª-ÂçTxüÙ¬F’æÆg¸ý·›X¶j¹öÍiV.(¡åÀóD2*ûw>Çæ§¶Ÿå¢¥¹‰=Mx~ qEaÉ‚˜C#ÌÄÒìßù<÷ßù BB¡¦álúšŸgb¢ŸDJãÏ<ÂX_½=ýhî&# êª+1™Rüá°õé-t4ïÁ™]ÀÖÍÛøõÏ~HÒšÍò…ó¹û®»yvËÓ tµNÚhé¹ÅÅD"f\V U<³y¿¾ã¢Á †;»Øôü>܉¡Z8kåJRÓcôô29“AKG¹ÿî; ÅU¢‘ ö4P_‘EÓþ ‡aåÂ:Ž4ïb[KöL†»v0éŸfñâE«ÎXî'g2šä‚K/Á¬ê`³SQQMWW¹……dù,nj碋.äÒ«.!Çé£aA%ó—Ö’Èh³CÈÑQò«Ò0/þô' ËrÞÙg062ÄÞ}{(­¨ÀbS)-.$4 ­¥‘¡¾Ö­YM,ÕC‰Sg*0F{oSñ$^SŠ‚²ù,«-`~©‹ñ©[{éö'¹xíB752ˆâ÷195 ÀÌØYEó8gñ"ú{GØpÁÅT•—PW7Ûæ}ƒÌ_º”š\¼÷iR+ã=-´u÷±ñÊkÈó:xìñMDB lY9¬\¹ÿðåeedf†™ÈÀ7¿›ÀP'“‰Ü¬lòsJHgHdÒôöÍp¨¥pÌ ·«Ÿ†yµŒ`e%ÅøÜ.î¿û~ Ë«¨-Ïæ¡{ï§®¾Ÿ-CK÷ç¯ßHI‘¾á“H˜Éd@QðúrÌLÒ¼w3Á(6·›àÔ3SDÃEYNBñ 9ùE¸³²0 C¨d{¦ ±x°[Í'Mh½zXönapt’ÂÊZÎZ}f«—e5e ²xÑÆÆÆñÒ¨j†²òÜ9ùTUTa#FÒ¤PXRB[{ï|ï?âLŽÓx¸³Ö_NE¡Ý{›QUƒüòb®vùÙ.©8å¥e”eÓÑ3‰Ë›E¶ÓÍüºy”—O„è™S^;ÕõUTUÕcuX9sÑ<3“ì>pˆsÖ_Àôh/O1Õ•E„ÓfŠrÜIÃòÕhñ !ÍÎW]BB3³pñ2˜èfÓóû8sÙ2TC£fÁR–-Y‚'+ ëVK¤8㌕8vLŠAqõ|–/[JQ~^§™îþV‹ÕˆãÍÏgAý<ŸÝΰŒ’yó8kí*L&' çUÒ70É¢…ó‰&bì=ØLIÝjçU£g¢¬\³Ž¢ÜB÷î$KqÑ¥Wc7™1¹ i˜WDgk5óçÓ×ÓEÍŠsXXQ fÏ?¿Ë7²nE ÏíÛÇåï~Y•#­ÍT××ÒP_ËÄø(&«™†š ròŠpø<ÔÖÕ¡dRÌcœ}Á±iFfàŸ>úašwã*ª¥²Ø‹fRÉÊ+ÄáôQ”sB†…sW‡‹Å°Ùí„g¦ééï'?¿-Aµ¨Ä" ÅŠÏã¡ /—‘NfâæÕÖ’N¥°;\é8¡P¯×K4©ãt:Éö:Ñtã¤+Ã0p¹\sò|'eYƒçé§7ãŸIRT^ÉÆsÎzÑßoÌ~D2[uü÷‹xrìïåÅŸ¿¤Àé…º«ã?xüw»éåEV†a (êñ›_Z‡u´Ly¥º/q´ÎKyÉkùËZ®Ù:©ÙW`ÂËë S~4ÅDAnΫî'¯ö¡“8öŸc¿GQ aÓSÏ1•LPV^ņµg¾ðxCmråoÎ@&˜ý3µé‹·GÛ­¥q7íýÞõÎË·éßúDÿØv?^«&f·ÃìíÌ~m³uZG÷ ñ¢Ú³ <§uì#Z«Å‚nè(Š …£4M7Ðt«Õ‚ŠB&FQ CG(&Lª‚aT aœ4çµÞh©±doV§_5ÝÉ)J’H¤ÈòeÐß'0™-ج§ôxs;ŸÉdB©Ô±i5´—hÌʽðöyì]×àXå€~ôVÕ“ë°ùkï §³ÍF–M^¥õf²ÚìXm'¾`Ôétœû蜾[¤Ó§uáèéVsr‚!‘Ä?9ކJYyf‘¢»wÒªZÙvÒIXN§Ã0NÛ†:ƒø/§&™˜aÑ¢f¦ý„£i*+K ttt‘STNme 즼v1N #c–”‹Dìî mht·´·æðá[ÞÁ3Û6³Âp²¸ÐD0m¦´ OuÒ[XŠ¢ÌݬÒ[XÓüð¶?pý;®¢ãð6²ç­£²²”çŸ|˜½Í¬Y>ûžÛI88Lh*LÓáC¸Êj)÷ìfûÞN®¿p‡›Â¢"¶l}Žç7gQ»ú\úíæé=Í_Ä?ÿïÈ œ¤7ÜqM Ózd”xRÐÙ1È‚šjúf§ËÍq98wýYäØ}l;‹–ÆéÍ&02LžyvM{ŸÇíÉ¡ãÈa¶oÛŠÉl"ŠÂonÿ¾¬\º†z¸ëî)Éñ±gßA¶mÝI"aÁÂ…8f~ýËßb6[¹þâ 8²ÿ½ë!JóÜÚ¹­ûZ9°;^w>cc|éKÿI7g,k;ß)Xò-G:î™§ŸaíEWcL ²·kšÂy5ŠBÏ@??»ýN†Æ¦¸ö=ïf~U cÓa.Y&GzZH‰cãƒ,Xy6¥…y`u ÅSôÌ0ÙßN(n¡²¤œ®æÃ”¯XA~Á|–”Îç&™I&9oãz²ì {xÖDšèÄ "»3—,ÆNsöÆutw¶P±pÑ ÿç›Ø³ãyþøävâ"CZ@_ßË–Ö‘?¿šºÅø2Û´ev9®…5rË!¡túô°töïoášnššÄ?cáâå¨F†½ûö³zÍ9x¬f&6œ·#‘¦¬¾‹%•1³äŒ5¨É±PêŠydYT6=þ ¥µ (,Ì¢{d„ ëVá§ ×GA _y ƒýìÚ±ƒ«/§8ÇKƒÊÚj¦†ý”–ãÍõQšŸKãáVιüZ²í*ÍûwQP³”5«VbV LV—=—\¯ƒhJ!Ûë£ÐãÂæqRU]M¾ÏË¢3—ã±ÛåÎwŠ÷°æpz™8?ýùo¹ò†¡N¶s×COòî÷Þ‚)1ÉOî¸+/»¼âÌd˜ò2 3Ð7µW_L,ž¡µ¹‰L:ÅÒeKi=tGQ=—nXuZ¶úÉ8½Œ8>'¿r|M¼c«(&L&f—aSU„GçÂ:ºÞÑ5ê„ÇôØYÇ–I3™LGçÙza­»îþ)s!7^åìë0(³k ›Gëc£;ó¸ðü³?/Š‚z|½<ñº[Ùhv.…ÙY»TäT\§¼¹›^f ¹‰ÿú·§rɹäE;øôg¾HII3¡0ç¿óYV8×¾ûmz‡‚\rÁFò ]ýã<|÷¯EKö¶q¨©™³Î\ÊsÏú©osû~ÅÖ?ü‚=CI¾ö™304Fi¾›ÍÏ>Ï’•kˆú‡P]>êª+IN s߃S¸h-J")¸ð¢rG^w`É~¶t\YE%ÖŒA$cã’«¯ÂkŽS·|5 æÓÙÚ€³¸‹’ä?=LÏÔ óW®!5>È7¾õßlߊü|ìž{Ç{šá@{^1¡P]˜™á±§wÊÆ–ÞXÒq…奘,`³šyðÏH{Ès{Ð-fR¤ƒñsÙU°kÛƃiJíZG&‰ÿT€øL„ ÿg¬¿:ŸÞŽ6ÀÄú±ù‰xfï×\p>±xJ6ºôºÈE(¤ãüã~,>'ýÍD‚qÒ7Ïoßé.¾ä ª¼0Ò9ŒÇWÈ{n~/cýdBAB¬[¹š—q-‰M1c×U¼¥Ø³Ý ÇèæÒ+®ÅC‘œáßý1kο„µ+keÃK¯ýTˆ<‡õæ;YÏaéúl•ª*/)Ð4 EU1©³µV`RgO²†8þz„!ŒãuPŠrì>]Ó-‘04úGÈ-.Æí°ÊBz­ä2_Ò L¦¿]‡¥¨*/ÔÕ+Çë²fƒ àÅU÷/ÜgzÑs š©¬©” .½nò–$I2°^¦gr;¼å =C(8C2™Ý2†ÁÔÔ4Éäß>1‹EŸ|a^ªá&§f^ò˜L:r’éé ºa03å'‹Œ†`rl„‰© ##ã)@ghhpvL˜bxt\n°·ë(`®.~îj9Ħvò ò±Û¬¤5` €IŒŒ“Ñ6»CèD¢‘N—‹Ã{ör¤wŒêªRôtšT*®eˆ¥2X„ƶgžd:fš™fט…ÆáÖ#d{}ìÛ¶«7 Ï‹.Û8œŒ?+ª‰Û~ð¿»›æÆçñbtµ@3yÑSql6;‘Ð4G::™ Gp¹\˜Ìf’é$;·o#T–182Á¾ç§olŒÊªz’i ›Õ„ãÁÇ£½{=a÷þŒÅ­Ì¯,â¹ÍñÐæ}$cFúÛh 14ÐCÛmàpq¨¹—]Om#šd<0Á΃ÍxsŠÈÍrË#øí%5gç°F†ú82"Ûçà¹í»)ÎÍÇnÖ©˜_Ccûn» ÿè U¥¥¤ÓA2˜p—-Ñ s¤ù0>—J[ë! gŠ‘DY¼ÿÆ+(+Ê¥­½‘þ¼üS2±Cx\.ǧ9ÒÙƒ»ªžâ‚¹)çÀ¢†Z:›ö3:ÚŽ!Þwó ¸uƒ¯~ý+Üøá0ÓÝBk_¡gðe»Èõå`Ë-¥£©“ó×zy~ÇÓ´ &XPœÏ®]»xXõð×\€-'¯ScGs7+/¤¨¦ [v!¤&éгjÑ|z;†øØ'ß˽O<‡Ãaeó“Oá®]†ÓÐyúÙmd9UJjJéœÄغ‡ú[®–M ߘچ:2É¿ÿãƒD2:ùNŽŒÎˆ?HNy1CÝŒ"¤ƒf¨\PEÿÐ$;ö4âp˜hÝ·›ŽÞr|9ŒfXræ™ìÚ{Õå$Ë” 4¢ªª #"#L8¬:»”[qŽ\¼ñ6=ù —ŸÃxëA¦i¦#~BšÎØø$VÅÁµ7ÝÂû¯»€#-í45«‹+¯¼„»Ÿ§½·ŸK¯»šBŸ‹‡~œdR›}[Ô 239E{[ªÍBhbŠd,6ªb0éŸ!ÏkáÑûÁíñbŽF©š·œhW+}ÃC4,­BËÍfÕš3ïm§¨´Hn09$|㦦ÆÉ.¬àšË6°bÙJ´TŒÍ»vrÍ{ÞG¹×KiQç¬]KNa1Yù9””WSävPV”ÉåaõÆ‹Y¹x y¹Ùfû(.*ÁëTš ¿j>ÕEYd¹½Ô×Õ19&'˃Ëá`ÍšÕx\N9$œ‹w/»‡LJgíÚ³ÉÊrÓ°d)ÁÉ~’)•ºÊrFA¼¾Bæ×•`¨^-]NanÅÙ6ü úê:÷ì%‰sþ…—S^ÃOoÿeÕå»ijç—_ÌÈP/“SŠ ò©,+}†îÑ–¯¨£ûp#ilØæÍ« ¦®‡ÛCQ^! æÏCK§(­¨dã†õXÌr†·Ûð„ÕavL(,œ?O6ó_8™/~þKBÌÎMul¾,å/j´`ö‚iaÌÎN3;Ÿ•ztÎ+è%+¯¯Ë®ë˜Tãhý–I}œ0 tC`6¿4x3™4ªÉ‚I…t:ƒÕjEÓ4PÌs8½tÊ?ËÀ’¤S'°æì¤»®ëèº~|2·ÓɱY4Mò]]’ÞRsZ‡ulêÛÓñßÛA4 ·o€DJ;ÕLŽáŸ~¡®jbdˆ‰é ýýÄSz2F?}ög¢áÃãÇ~bj¶Nktdˆ@4F&cxxXÒë2g=,Ù9õíÛ³ç÷ìcÙʳѢÃL™ ¹ñÜå<ýðݸJk¹èŠ«ÀßÏ#>Äú+odôà!¶?·ƒ›o~'‡´q°/ÀõבﱳuëÓ4uG¸`õBÆ{‘ôU±¤¾†æÛY¹n#‡Gxjën.¿ü*Ö¯]"_zó{XÒ©<î58ÿâKX¿jn¯Ú²\ôL‹Å®ç·sðp;. Õ ­â0(ÌVZBȸ¬;‘¾CDSpíEkøæ7¾LÅÊ‹Y1¯”/ü×ÿИAU ÎÛ¸‘úŠrâiC¶½ôÖVg_Ó¡×6Ç‘®ÏÎØ™ñ³mÛv¢‰]í‡èÃ?1ÊÀÈ8Z&É®}ÌDä¼I'œ¢I:û†©_q9^'&-A¯?LaÝ2œØÙÙØ‹šåcùÒjnÿÎm8 kñ1Ãy'g_t1ûvsç÷bu9ÁÄÔ9¾b!?3±9¹y¸Õ4»žßΓO?A88ÉêÕ‹dÛK¯}$7wë&øÎW¿…Õ›GžÏÄÁ–NÂ?-lÚ¼·ÃÁt4NcS#¿Ÿ­[Ÿ!eÊ¢¦²ŒíÏ=ÃÞ»PÓi ÖCŒ‡Xsïcϲní:ìÖÓç<ÒÉZ‡!c²²¤®’#-­ ŒG¨*-#?ÇÅÒåK™ `ÊïgÍy¡$fèòsÅe2Ô߉p±¨:—„0ãr»8ÔÚË¿}üã ´í!lÊæÃï¹–‘¡Q¯<‹á‘^zú(,(¢´¸P‰Òk1wuXÍðÇ;ïdÕÙkÉ_°’ý›7‘ëÖèаlÉBêóœì š™ìmÃ•Ž’1Ù¸âú›h¨.æÙmÏÑÝÚMY~ÖürRÉ4.¹t#¿ùÑÿ²äÌ œ½fåiÓê'Yƒ@×ôÙÕüTC׊‚åè1š–Ád:úµ®c1›1 Ãxa*C×1„Àl6ïM›L&4MCUM/™–F’^£¹+k÷OqÃûnÆ?=CÜ ?'Õ'íÅíËÃÈ2cfãÚ³ˆÃ$Ón‡àxû÷íᲫ¯e¼ïö,Eµt2=å'§¸š‚¢b¹©ÞÜñáKæ¯RUËKî5›_øþXˆ©ªù%˪&Óñó /î¾xn-IzÝ{æœô°BGUMGWù5›LŒôw²¯ñÅÕKY½b†¡#Ž.k© Ðu³Å|t–ÊÙY)Q¡  !Àl±œV. G%éõ°d¥» ,I:eK–5H’tÊ%I’ ,I’$X’$ÉÀ’$I’%I’$K’$XÒÛ’0tbÑ(‰x”ééG¯¨yͱ‰Äk¿P=‘H‹'^õþH8B0$™’¿K³äu0».áŸ~ñ}ö+üëo`÷ŽF®ºîJ"¡%ÅEÄ£‚Ñ4"•Fµ˜¨¨¬djbŒDFP^V‚HÇiko§´ª–d"ŠÙbCU˜l¸ì*þ©™ÙKz°ÛìX-ü“#Äu5¥EDbIœ©TŸÏ‡–Œ±wß> òò°;¬TÎkÀ*§[“%›@:fÙšóø¯÷}йõÖÿ £·‰ÿ÷ɯòŸ_ü,íÙ²ç•E^RÎ2.\»†#;îåéÖ~ð“;¨ËÊ`óda$Âìi;BeY)cCØ|ùø¼‚“ãX2Š¯ÃŒÝd#eJ‚ÃVEg`p˜ÊÊ2<.f³âÒ2üCôŽÒP]"7’JҬɤÊø}šv>Ê/îùSÝ#„Ƨèlm$Š<ùKªÈ÷•ó»Û~B×È4/º%•F3 L6 jk—å šÌP^˜Íø¤ŸìÜ|ŠrsqÙœ$ãq“J2!“LbuåÐ0¿žx$DNa)‰àBµŸë#‹£šÌ¯w|*É–tz uSµxÿóƒÛ蟘B‹&xÇ×QXZJ0–fõº³É)*DQ,þ§›°X̤ó¨­*Â"¢$zÆÈ˜­8ÜrKÊ©ž ãð°¸ÞC{[ñìj««èh›&–Jc·€®YÐ Õbb~C#“æ-©cbdˆ`4ŽÉ ‰dšº²w%ÍÕl Òërr^ü<;{Š‚éØ<1G_›aÌþ¿ª* @9ú3†!ŽO3˜Æd±ãõ¸Žþ¸BAQf¦Fhí`媵8,Êìß-BQfŸO…ÙI UU=>ƒG4"­ r²}rÇ‘äl 2°Þºn̆›YEUää}Ò ,9$”ŽÓ4 Ã0æ|Y3!@UUÌf]Óx»²œf󹽕d`IG‡}ñxüeËÐKoÏRÇívË%ðd`IsÛ š=õ÷ S¥—ÛÓé´lOXÒ‰8¸„ÇÿIÒÉHöÿ%Izûõ°üCüïÿý˜‹oøg–”ÚùݽOò‘ÿüÙšrX³ ŽýùÀ?”Ûža_ןúÄ?±ï¹Müâð±ý¸óû{áÆë¯çHËalÙùÄg†(«]äƒ >ø›±Ëk4$Iö°þ·ÿô4¬çÜU xê©ûù÷ÿúCS)J²=h†cÛ¾#Œ´ä¹íÛÉ.*áñ{ÿÀc[ùȇnaÏ–GxèÉgùæq›f¦ÆyöÉ'I:ÜÌLq ±V’$ëï4¿¾žŽÖFºZé rãå—ðô£“]Ù@ui¹^Ƈ{0ÌN*Ë‹ùõÏD÷TœÅu%<øÐƒx ‹(-ÊcÍšÕ#Á‘žnÂI ÅÐéhëæŒ%‹ikÞGs× Üj’ô65w…£Fš?ßsά<–,[JI®‡þQ\¾,L9vÁ#mâÜK® eËöƒ\ÿîw‘œà<Éu7ß‚[$ DCQƦC–”“‘v=JT·±ñœ³NùF? G•5ÈO çðà:ºìv»\@vnÈJwX2°d`:%?%”$é”!KõW'°]¥¹#û©Òì;×ÑKr2™ŒlŒ9,y¹“ ,iŽ)Š‚Ûí–=‚Ð®ŠœB–$.ém8M IÒÛ.°„C`Á\ *tÃxÅçÑ4}vfLI’äðÚ¾ùÌN«BVI%›J^^c##˜ív6fEÐÓ=@ae%N‹ ‡ÝÎôäªÓI2•Äj±á²¨Œ2OQRR†¢ƒÛiG1©8yà(¾j®½hÜz’$ë™ àͲ²piOmßÎðÄg,®FKÔ-_Á¦§GUR˜½Åô ÐÞÜIJÕkéïnA5Ù©..ÁåuÐÖ>ŒÓ©PTSI´u‚îîa óh뢾n>}}#T,)“[î8ÒÚÄÐØ3kׯÇmõ™2;ºÚ˜™$ ±þòkp›`tx‡ÇGv–û5ý¾PhM¨äú²^ñþÑá"±ùùùäädË $Í]`ådÑÖÑJÝ’sQ5+n{.ÍM¨]º‘ˆÓÝ´_Y5kÎ<›¦§ž#craJOË*s ˆNM ˆl†£*7_¸–#ûéê™!ÏeÁ?ÑÇ•K(0CZ7HÆÂrËÏ/Bµí5s`Ÿƒ‚ª…rËEUèœ{Þþô«ïóø¶Ý–-§»ùšeã¹ñ£ï}ƒ¤YÁkUÑTƒ%Kâ´+Lù'É)(À¬'H¥tá)Zúú)®ª 7i൚HÇC4>³ ‹×‡®Ú±Å?ÂîÊ¢³­•H"ÍøÈ Åå•ÔÖÌ#¯0ÀÌã“Sx+‹äF’57,V77^tô»Âã·¾úN¶tõjŠçÕS\T€ËåzéÅÅÔÍùÏœñ•r« #ÄiúF&غc/ -ÆlªÁ±0H*:̃›Ÿ»¿Ÿ©d˜t"ÅäèË. sFAcƒ3D3àËͧ¬ÐIWïy9LOù‰'S`×4†ûûÉQ- Ò±ªÕEeU%©ðiÕFQž -&c6ƒ® <9¹$¹.á[ád]æ«õð>G§1™-¨B•‡E5¡*I,N7™ŒApÒÛç%O ÒñDœ+VSY⣣½Åì ;ÇG~n£C˜Yäx]4îÛA Î>›ñ‘,vf2†®—`ÒS MR^^NhjœPRCI'HafA}­Üq$9[ƒ ¬¹£i `6¿|’Åd,ÂÀð•Õó^׌±º¦Í.î*W‘亄Ҝž_ø+S¨Ø]æÏ÷¼îç4ÉiY¤ïc² ¤câñ8Bˆryαç|»]«(„ÀétÊKžd`IsI×u2™ f³ù„„ÊÛñ¢jEQÐ4 ]×å~2°¤¹>¸L&Ó ¬·k›†¼Œl.É‹Ÿ%I’%I’$K’$X’$I2°$I’d`I’$K’$é$%ë°$€ãî²"{îÈö”%@™LFÎq`e2l6›l XÒ\2™LØl¶v-áÛ•Íf“3MÈÀ’N‡CN’'ÜäIwI’d`I’$RCB]ÓЄÀ¬ª(€b2!ÏŽH’ô–Ö£wßÁ˜‘˪y>ö6õ³by-[vä¢s×ð§;~ÉÒKßÕ+«ùöÉÇ?÷eŠ=²sw2Ò2 ˉz/dÒÌ+¯éܾd2f«åßì´Lfv¾)‹“Iž’•CÂ×(08Ä=¿üwÜóg::ØDGw?g,_‰Ù¶žæÃ{øïo|ŸÝ;öÈ–? vó«Ÿþ˜¯}íÛé÷ƒž&‰OÄIÄã$ Ò™ è:‰D‚h,N<ŸíQgÒD¢Q2† J‘ˆ'hk=Äá#½LŽ ÑÑÕ‹¢@&F×t’‰ÙÇ% ’É$©T MÓ@:e`¨Ÿ”édŠŒ¦‘N¥I§5ücC´¶µÐÕÕ˸FnDÙÃzmÎ8ÏÃ;ðGÃüó?^KÛ³ÐÓ3»“Ö7,"55Èþ–>ñ±[8´s3ï¸l­lý“Ìw¿úU oà«_ýÜûþj¥ËÏ'ÇgǶ­Ø²‹ã’˯ÅcĹÿÑG)¯¨bØàúþoÆÏ7nûïºîrâáÛtó‘[®çû~ƒRx6ßù\ #ãÓx²²iÚ·“´ÙM–ÓÂÀð8奥˜T  ‚bè—•’I ´x‡ÏÃp}½½”—WO£Û½äfyíïÅWŠÃn¢¿¿—¢ü•rCÊÀúÛ­YÉîüV‡…œübßHUÃBf¢q®× ÄQÊKo¢¬¢„¾þRÍ"ÏhL¢á¹X3;žÜLvU%Qÿ8?úç­¯cÄSŒÖ3@bäm«®R\å£ßŸä™ßýͬá-¨&Çœf(ÃÐUŸÝG~Í" ªg¿MjyYDÂ~êk*hmjÄáÉe ¯ƒÚ†…”Ú™öOaA:@èŠÉJlÆOuun«FoO€EK èìí£²¨ÍæBÓdëtgúÊW¾òyàï.ŵZ­ør²ñx¼˜M*§‹ÚšV «—Ë…7Ë (dû²1›Þ¾a¥iš¦ý]…ǦߵZ­sV˜8¯ª=Ï?ËT jêªðu“[YOe±¨n“_H¾ÕBnŽƒá™0¥%yä!Ò •ÅTÔ• ÚóØpæ*ZŽ´P˜[LiI!V›` Œó×I4àgzj6Xò ˱*‰´Î†Z¢‘0£*ÊËÐÓqFÆ8ìtC'™Ha²Ú)¯(!83Cna%9c££(VÁ`·'‹‚ü\yTŸ¾Rr]·Àɼ.ጜP ª¢„)ÿ$6›—ÛI4‘Æ¢€Åb!£¥I¥S8].´ŒÀ¤‚ɤbÀ .—«ÍŠ¢*]'OàËÎ&3áQP\‚Ť¢*‚H4†Çã‘fË–­”Õ,¦¾º”d2ÉdÂÐÙê{Õ„Õb&™ˆ£ —Ó~´UFGÆÉ+,Åi—'ÞOcr!UX'!ÑH“ņÓ!¯¿“^XòíH:Î0Œ·øâg׋]×å™cªªžò׉ÊÀ’އU4EUe}ÜéæXoÜápœò3GÈÀ’ŽÇTUÅjµÊ)fNÃÀBœÛU–t|§>\2°¤“vX;WO”Ñ2¤3Ú«Þ¯¥Sd2Ùâ’$½õµý™ÇyúÙçèbd2"M[[=´¶÷2ÜßÇØÄ´lyI’Þº!¡Udpf{Ñûž}žüŠ2¶÷öÓ:8×ÿk!¤M‡ö£i#äœÅÕמ‡œ‡Q’¤·¤‡•Lj4<ÄÃO<& `¢­ŒüÂÌÀÄà(m-Ì[T‹×¦34–”­/IÒ[ÓÃZrÖZÌ}T×Ö£(©XŒeK 9Ôdt:Æ™ëWâ,É¥°´³É‚Û-OìJ’ôúœÀJwÁÌô$ºÉNž/K¶ô‹œŒ•î†aÇÿ®×$¤ùÑ}Ål6c·ÛOå?eî*Ý_i'ÏÎ-|ÕûNÕ /IÒi0$4 ]×O˃ZÉd’Ë5IÒéXò€–$éD“ŽI’ôö ,ݘó(ó*WÙ†N:“~…áGçèž½/•L dR©Ù¹Ã%I’æzHظ{í=},[µ–B»ÓIpÚÏT0A]M­Íxóʨo¨%‰aµ™ˆ§ ÏçbçέDâVDrknÕù¹imgɺԔÈ­$IÒÜV&ì'#,4TäsÏïz½mx\N†º;H AI,Á=;¶’ve“ŽL“UÔÀ?¼ã™ivì`ýªåL ãtIÆè‘%IÒÜ ãñ“ÃcسGq5j–Í$(Îq ­--V ÅyyôõRZœÏpÿ33X’$‡„oLYi­M´µ`FA3âL¥Íø²³)Îv0<1LÆáe^MAskN—ŸÍ†·0—SÅ¢›¨(òŽM1 t@ H0"ÈÍ)dt°‹`\ÃpðP›Üz’ô63g…£™T‚;÷PS[O&BqºQPH§3øœVB±iÃD®×C4Áëu£¥ 4-‰®€Ãé!‰ÑR`2SV^M&fl|§ÛÁ@ïU•¨j†1„ÅKc9E?2…£Ò›zËJ÷7Ï_V» ŠB(Ê©™X2°$Xo,°N™¥ê_\³_˪sIz»™³ÀÒu]VºK’tj–ªª¨ª¬C•$é,ya°$I'Úu‰º¦! q|x¨éÆ+ 52Zfv~÷tyjW’¤· ‡¥°é±‡QU+µL†Ò80hh¨³‹èôg6þ6š†¨©ª£½¹ù‹—3¯²CWp¹Øá&³‰´ž&';d$ÀÄt˜’ÒR{{pzsPôÂæ¤8?WnAI’õúeeyÙ¾e+ý”ÔŸ…%¡£³ƒâ¼¦‚ âZ«§tá"R±(Cƒ„“LÔÖ£šMÍm,¨¯CM)¨hŒ|ì£å`s C3XR;1)‚‚òR6o~ŠËÞùnX’$‡„oÌšåõ¨ö,a#즲zS ¡àÖ¼ ê,"a$âìß·—ºgqùy«ð¸]T—哌ë”æ1!˜Š“N§8x¸‘ÉéB P¶`%Õ….BÑµÕ rëI’ìa½ÁäË*ἉŒnFÅDa‰#½†¢² "UÕUäY’Љ‹.¾˜âÊzlZˆ´?Ì‚ÚZ>è,ÂåqP^ZŠ¡êh˜8Ãã#šHuîjl&•ÖÃCh1îŽv W¯[P’ÞFNúJ÷¿‡Gâæc1›OÉF—•îÒ›zËJ÷·Ž×›…×›%÷BIz’•ž’$ÉÀ’$I’%I’ ,I’$X’$I2°$I’%I’$K’$I–$I2°$I’d`I’$ÉÀ’$I–$IÒIÁ,›@’NoB,Ëi±ª•ìaIÒiVv»™™‰„ìaI§ÏŽ­(Š\®í4cµZ£««‹¥K—ÊÀ’NŠ¢ išœmô4b2™‡ÃLOO“››;'3ÓÊÀ’NŽsªŠÃáÀ0 ÙË:Øl6êëëQU“É$K:½†’tR¿±Ê&$Iö°¤SN8FÓ´7ýãoÃ00›Íx½^¹$XÒkó¡}ˆC‡‘ŸŸÿ¦þÞÉÉIV®\ÉÝwß-7‚$Kzmoú È ÉÀ’^;·ÛMVVÖ›>4K$¸Ýn¹$XÒß¹ƒX,DC3 Œa·ÙÉÉËE:±x’T<ŠÉ·ÃF @5™H&R¡¡Zœ”——c5 tCÖxI2°¤(‘[\Éû?øa¢Ñ0ûvíÁl±SXCni%áÑ>bØÑÂt ù¹ìêw`¤SÔͯ%£+háIžxô!´÷c P^ZŽËaEÓuÙ¸’ ,insó'¾È§>|%lÙM&b )‚›n<{ù™xƒ½tGm03ÀáÞi.¼è\FúûIgb”W-'6º—_ýæ·\wÓ‡¨öÙxæÙ§™ Ʊ[-²q%XÒÜr¹Ýt5íajjË/bº£—ÇNB$ÇÇpštÈ$iXwk/ˆòÐýO[Âï︓¥g ¦­ÃÏÏùWÖÕ•ú—~ü§§©*/‘+ÉÀ’æ–ÉlÁjQáég¶‘WQGe¡…Ÿýâl¸è Ú£ŒLN248B&9ÁÁÆ#\xÉ%T˜&SXQÀÿýÍù.ö´÷Q—+VzC!D{o¢D"A"‘Àb±¼á‹E!“Éàv»çì’šk¯½–ÆÆF Žß¦* ©L†t:ÅÌÔž¼|0 Òñ6»…dJ›} ‘A n·‹L:ÓåFK'QT9>ƒý„åååxœ64í…sX¬ZµŠûï¿_îÒ_–=,鯀YUÁb¥¬¢]Ó(d¹Ý†Û£ ðÂô4Â9ûµíh¦2:…Åå*P^V’$‡„Ò{û ‡ oúEÐ333„Ãa¹$XÒkW\\LUUÕ›~iŽÝn§¸¸Xnéo’ç°Þ'ë9¬d2ù–̇%„@UUìv»Ü9¤¿:=,é%=I:™Éù°$I’%I’$K’$X’$I2°$I’d`I’$K’$I–$I’ ,I’d`I’$ÉÀ’$IzCÌ@„Ù‹Ÿåü’$¬¼@äÿŸÓl¼ô IEND®B`‚plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/img/jps_started.png0000644000312500031250000032651312606005234027541 0ustar eacbforgeacbforg‰PNG  IHDR@í«ñ‰ iCCPICC ProfileH‰•WXSÉž[R -)¡7Az•Þ;ÒÁFH„B ¨Ø‘EׂŠVtUDŵ²¨ˆØ{]QQÖÅ‚ •7I}¾·ßûÞù¾¹÷Ï™sÎüçÜ™É ò¶, U ‹Ÿ'Œô÷bÆ'$2I P"°ö,v®À3""ü£¼¿ñûº¹8Ö?ÛýWQäpsÙ 'srÙYWg „y: ^ovž@ŒßA¬,„ ’Å8UŠ5Ä8YŠ-%6Ñ‘Þû@¦²XÂTäÄñ™ùìTGN±%ŸÃãC¼b7v‹q7Ä“²²²!–§BlœüCœÔ‹™<“ÅJÇÒ\$Böáå 2YsÿÏrüoÉÊ¡ 5M)ÎÖmoFv°CîH3?9,b%ˆ/ð8{1¾—& ˆµ`çzÚ(à°|‚!†µD¢ŒÏQlÍJ|¡=ÆË ŒÅÉÂìÈÑøh>7×7j §qCFc.çg†á­)<¿@ˆáLC¤EÇIy¢mù¼Ø0ˆå îÈ͈ µTæ6f#EŠ9ëCü.Eè)µÁT³rÇòÂ,Ø, Uˆ=òÒ¢¤¾X<77>dŒ‡ëã+å€q¸ü˜QΜ]^‘£¾Å‚̈Q{l+7Ó?RZgìPn~Ô˜oWœ`Ò:`ÓYARþØ{A^D´”Žƒà |ˆ`KÙ ðÚà/i`!H\`>ªóˆ“ôðá3 €¿ â‚Üq?/I/äCý×q­ôiR$½ù ðâ,\wÃ]ðøô€ÍwÄÆü˜òc£}‰>Ä¢Ñdœ²Î„Mxÿ©ûîIxJè$<&Ü$tî‚`ØË…9‹òÇ3‹O$QFÏâ bΡ úùf— ½ûÇlpCÈÚ÷Â]!ÈgàêÀ·…™xâî07;¨ý‘¡hœÅ÷Zþ<ž˜ß9ŽêåLåìFY$ó÷·ú9Š÷5âÀwðÏ–Ørìv;]Äš±ÀÄNaØì„Ï„'’™06Z¤„[ŒÃ³±¬µì·üò£³F%ßäqç䉄w¶`®—š–Çô„;2—Èg[LbZ[ZÙ ÞߥÛÇ[†dßF—¾ërZp*ÊÔï:–ÇŸ@ÿ]§÷.¯5œè`‹„ùR.~ÈÕ¡´€0†9Áÿà<€/á $€™°êi ²ž æƒ% ”‚5`¨ÛÀN°‡Ah§Á9pt€›à>œ}à%ïÁ0‚ $„†Ð5D1@ÌkÄqC|‘$I@’T„ˆùÈR¤)C*‘H ò;r9\D:‘»HÒ¼A>£JE•QMÔŒ:¢žh0Î@SÑ´-BW¡h5º­GO£—Ñ›h7úÂ&‹10Ìsļ±p,KÁ„ØB¬+Ǫ±ƒXüÖ×±nlû„q:ÎÄÍáü Àcp6žƒ/ÄWâ•ø^¼oïã=ø þ@#hÌ΄@BÒG²,Y›lMö#'’ùäBr9yù$¹‹üŒ<,£ c ã,.Ñ™+³Zf—L“Ì5™>™aŠ"ňâJ‰¦¤S–P*()g)(oeeeued§ÊòdËVÈ’½ Û#û‰ªD5¥zS§SEÔUÔ=Ôê]ê[fHó %Òòh«h5´3´G´rt9 ¹@9ŽÜ"¹*¹z¹.¹Wò2òòžò3å äËåÈ_“PQ0TðV`),T¨R8®p[aH‘®h¥®˜¥¸RqŸâEÅçJ$%C%_%ŽR‘ÒN¥3J½tŒ®G÷¦³éKé»ègé}ÊDe#å@åtåRåÊíʃ*J*¶*±*sTªTN¨t30†!#‘ÉXÍ8Ì¸Åø¥ý‚©Âôdf2+˜mÌA ‘Îva]#ÝÝBÝ:݇z=G½½õz­zƒúÚú¡úóõkõïÈ8¤l48oðÁÐÈ0Îp™aƒás#U£@££Z£Æ4cwããjã&DG“ “-&¦¨©iši•é53ÔÌÞŒg¶Å¬sa’Ó$þ¤êI·Í©æžæùæµæ= ‹‹B‹‹W“õ''N^;ùüäo–v–™–»,ï[)YYZ5Y½±6µf[WYß°¡ÙøÙ,²i´ymkf˵Ýj{ÇŽnj·Ì®Õƒ½Ðþ }¿ƒ¾C’Ãf‡ÛŽÊŽŽ+/8œ¼œ95;}r¶wÎs>ìü·‹¹K†Ë>—çSŒ¦p§ìšÒëªëÊrÝáÚíÆtKrÛîÖí®ãÎr¯vì¡çÁñØíñÌÓÄ3Ýs¿ç+/K/¡×1¯ÞÎÞ ¼[|0ŸŸv_%ßßJßG~º~©~µ~ƒþvþóü[Áknj²kƒ‚µSƒ£‚+ƒ‡˜†CšBÑРÐu¡Â Âøa á <0|]øÃ£ˆœˆ?¦§FL­šú4Ò*r~äù(zÔ¬¨}Q¢WGß1ŽÅ´ÆÊÇN­‰ýçW×?9~Aüåõ^Bc")16qwâÐ4ßi¦õM·›^<ýÖ £sf\œ©>3sæ‰Yò³X³Ž$’â’ö%}a…³ªYCÉÉ›“ÙÞìì—ÎzN?ו[Æ}–âšR–ò<Õ5u]jš{ZyÚÏ›WÉ{¾-ýCFxÆžŒ‘̸̺,rVRÖq¾?ƒß–­•='»S`&(tç8çlÈ wç"¹3ró”áQçŠÈXô‹¨'ß-¿*ÿãìØÙGæ(ÎáϹ2×tîŠ¹Ï ü ~›‡ÏcÏk¯3Éüžž v,D&/l]¤·¨hQßbÿÅ{—P–d,¹ZhYXVøniÜÒ¦"Í¢ÅE½¿øÿR[,W,,¾½ÌeÙ¶åørÞòö6+6­øVÂ)¹TjYZ^úe%{å¥_­~­øudUʪöÕö«·®!®á¯¹µÖ}íÞ2Ų‚²Þu¡ëê×3×—¬·aÖ†‹å¶åÛ6R6Š6vW„T4nÒß´fÓ—Ê´Ê›U^Uu›56¯Øüa gK×V­·in+Ýöy;oûþ;ê« «Ëwwæï|º+v×ù߫٭¾»t÷×=ü=Ý{#÷¶Õ8ÔÔìÓØ·º­Õö¿ã€ÏƃæwÔ1êJC¢C/~OúýÖáàíG 832 1936 1 8p "@IDATxìÝœÅûÇñé]zG&½H¥ö"¢ˆ(‚±`ûÛÛÏ‚Šbïbï ˆ¨Š D‘Þ›4éøßï†\.›Kî’»\î3¯×]’ÙÙÙ÷î%—}vfòýç$#!€ € € € € € €äyƒò¼ € € € € € € €®dN@@@@@@@W€2' € € € € € € €€+@™@@@@@@@À €Ì‰€ € € € € € € à @æD@@@@@@@p s" € € € € € € €¸9@@@@@@@\Èœ € € € € € € €®dN@@@@@@@W  € € € € € € |;vî´U«×ÚÆM›mû޶sç.+T¨ )\ØJ—*i•*–·Â… %_ÃiQ®È÷Ÿ“rõÐx@@@@@@RHàß·ÙÌ9ØÚu2Ü«òåÊXÓ† ¬X±¢–¥Ñ@ŽF‰2 € € € € € €dƒÀÂÅKmμù¶wïÞ¨·vÐAYÃúu¬VÍêQ¯CAü ûɰ@@@@@@løwÛ6ûmÖ[¿ac¦·X¶LikÞ¤¡+šùÞÈÿlÛvû;÷ìµ|NNùâ…-Ÿždæ¯Ýb#&̶eJØÿumhùŠb¥ êLTvnjk¢ ‚ëeä` ž#€ € € € € € Í»÷ì±§L³mÛwdiË >«žNGµ³ùóÇ\×Æí»¬þÙÎÝþ½Ÿ<îÙò»á˜ÆV¯BIßm¼=}±½ùó7¿]Ͳ֭~eß²9‘›ÚšVeÇFØ € € € € € €„˜óÇ_i‚ÇùódmZ53õ(Ž””¯r*ï%¡U_fR~':\W¸:þûÏ샩‹¬ÍýclÈ{Sl÷^gA˜T(¨M꽜Ì)7µ5;éœÊl@@@@@@0k×m°ÅK—rÀmÛª¹<>ØÊ9??Oý-ì°Ö «\~§§±UnÏþ@­ê«R©¢•/W&Po¬OU/c/žÕÞ¶îÜmÅ °Ç_–¬·‘ß̱åë·ºÕ½ñÓßöÙ¬e6ýÿN°2E ¥ÙÄIªÚÏ‹×Ú!ÎÖÝTI“—l/rS[³ÃŽ9³C™m € € € € € € " ¡«'Nþɶïº:8xìÝã” "½rë7ü“&ˆ\¤HaëãPÖ[vì¶zÿmۜNj:5°ûNnáUŸæqô¬¥6ðÕïmÏþÞÇT¶/èÕÜÈi*âER Ð9) B@@@@@Hu¥ËV‚ÇÚ×Å‹[éRiçîa¬9ŽÃµ®ÖÓú7mÖK·^Õ_«fu÷u¬¿" ;}j“ê6íú“¬õýŸ¹ó%ûÇJ›²dµ­Y.°™ùk·Ø—óVZ‘‚ù­ßᵬÀAÎäÉAiöÊMöÆÔ…öûªÜ¥ù,ŸÕ-_Ò:Ô®`ëTHÓ£Ù««\ñÂÖ»y ûË©û¥Ÿÿ¬[­TQëÙ´†u­W9ÄþöïÕöÁŒ¥¶pÃÛ¾kÕ(]̵¯›¦^s¼úýÚºbÓv{ÿ·Å6aþ*ÛëŒá­¶j›íj•·N‡V´šeŠyU¹ÿîÜcŸÎ^fcç,·¶ït—•+ZØZV/kêT´&•KÚ™fÅ$yAä$94@@@@@@ o ü8eš­sz'¿±z"ÏûkÕ¯[Û¶:xp½”•¯!°hÓ2¸hÄçÁ=Ï?ªž<­UÄò;Ïnþxš[¦ôwQ;È™GYé®ñ¿Ûˆ/fY~'p<ë¦S¬J©"îr`Ï|y²ÿ}™û:ܯÐu¼ºJ;äó¨c5;Üj¦6¼w^GëþÔ×6oyZWo…³ÚÖ¶'z· ´S˽úC·«¼‡'þa·:]O}Ó›;Úñ «ºùßüµÊNnb wv¸•YÏéÙ6ÜzÙµìÀŒÚÙµE¶ƒ € € € € € €@PÐ74x,õ2Þ7Ÿñž4Bê‰Ü°AݨƒÇZYõk;‰JýÛÔ¶¢…÷ x¼lÿNïÜ[*êô<öÒþ˜²ûò–±3Ácl{µ:Ä®èÖȺ7®f… ì ]–,VÈÊ?0§²Wׯ­;Áã†ÎÍ×ÛÔ:VÙÛŒM™¿Æ¹åƒ@ð¸]ÝŠvm&Öªvù@™7^`ãæ®¼Ö¯~=nëx§gup𸳳-µµOëZVy¯cíC£ÊkUSOå>/L T=Ø.ïÚÈÎs‚ñõç^êâ´+™CX'óÑ¡m € € € € € €))°}Çßýò‚Èm[5O0^ɯçqpm§x±´C,çgåy©Â­‰ÈUàvõÆm¶Ö ðV.¹¯§q¸zÎÇ6áÏ•nV%'ûÛu'X‘Íʘ¾l_Ïá‚ùýûÁ>yÖv¶xöÒ¬°>ÏOò^º½ž?½¤«µw†˜Vº©{c{ÑòzØ»SÜ×þÚë1ì.ðùõóâunŽ‚Äß]uœ5¬T*MÉÅNÐüÕ›ìýÁä…ë·¸Cz«Ð=§¶²!ê¥)¿iû.ûnÁëÑ JšåÉöÂ_>ÙZJ{@@@@@@HíûçÆõÛ/ˆì׃8šà±êÎh;~ÛOÔrÍ3¬T¡D+&HÜ¢ÚÁ¦¿Ôׂ:8x¬rÝëW1õöõÒÿNn{Ë8½¥«•+á¾ümÙÛÜ]Ú+òèµUäŠN{C“æ>îÞà@èàý©]®xhq+U¤ à u:tº‚9¼€r6 € € € € € €@n(¶? ìÄXÄC÷KÁX¥YKÖÛi£&ÙÂõ[C‹D|}Fóšéò5ìtÃöõêUý=›ÕH_ÆòYÕƒ‹ºË‹*à¼Ê8yá»÷Ú#?·Ÿ­¸Rp¯és^úÎÞ˜ºÈÖ;h\ïˆk'O&ää9´@@@@@@ )r`Žßp»\¶Li‹4„µæDV¾ÊEJm'ÒºÑämÞ±Û-¶Çéѻà ´FJ ô>Ö³µ;Ä´ÊMš»ÒZÜû©uúkûpæRÛ¾;ò|Í 7®r §qð¶.zÀ3xãà2Þóí»"oÇ+wÑ‘u­Ìþ!¹×8CtûøWV÷Ûßýi+7o÷Š›:më¹hmy yóG«pý»vó˜6wÕ¦@¹dB9ÙíC@@@@@H9"… ûîSFÁcoÅh‚È‘¶ãÕ“•G/[ÀŽºdáVu˜3ð´ëO²¶u*Êjåó_™lUn|Ïžûa~`yN?Qäß¶žÛ¾n )k7m³›FOµÃîmWž–f(l®Gõ=ÂFœ~ H®@òãæØ#ÆZ·§¾²eN :Ùäd?B´@@@@@@ åü-W&}oZ¿à±æ<žóÇ_:'r¤ ²êW~¢Ò‚õ[löÒ nõ圞ºE÷gÑö4wðwµ_þïDÔ±~ G²F{¾öƒ_ì”&&ÍÐÏÅ å·G{nóoïiwŸÚÊJ?øõÝ<«ã’×ÿ»3°Ë ":¢Ž­¼§·½xîQiæfþõïµÖäîígøîdN“ùèÐ6@@@@@@”¨\é@/\ídéR%Ã[­ ñÏS³¿-qý‚ÈZ?8…ÖœçÿûbV š «Á…<©[¾„8¥¥l½í¤ÒÚzò‚5×Éð¤\ñBvi‡z¶èöÓìÍ­ˆ3²ÒÆ­;ìÑI¤k¢æCîÙ´ºý4ìXûþêã­Qõ2nÉÏ}í{SÏädM“õÈÐ.@@@@@@”¨^­Š)r Gë–­[mã¦ÍiöÙ ¯ß°Ñ]®G“CƒÈZOë{IõªþD¥7¦.²%ÍMü]ezS ¶ëÜÀÆ^Ú-PǺ­zõ&É“ã`ùÜ›O ‘]º>béF•KÙäË{X«ÚåÝ=ØëD‘“7|lF9IN4š € € € € € · 8ÃK7oÜ0°Ó{öìuƒÃë7üã. {CƒÈ*¿/¨¼×+âÖ«ú3›4ÿo¸´bÓv;ûÕÉ6äÍÙC»4´*¥Š^Gz²;BÏÛZeKX¡û¶{Æ‚N‚¤ÃáR©"¬bé¢nV¹b…Ìkï.ç†KÚ–ÕʆËJºeÏdtM¦A € € € € € €¤†@ùre¬fõª¶xérw‡¼ r«æMlþ‚Eæõ<Ý[/ˆ\§ö!6õ·YNäKÕ§z³’>š¹ÄŽ®[ÑþݵÇL^±i›}:{™ixéàÔ³Õ!vÛ±M‚ù>W0¶ÇÓ_Û–»íê£Ú‘NܲNðUAåË7Ø ·~²»÷íGqgîáœN#&̵áãfÚí'6·î ªX5'`¬@ðÂõ[íÖÏgØâ5ûz‹W*¹/ü«3·ñ1·!ξڤšÕ¯PÊ4‡²‚î£~šo/8s&+/\Ð’#<^˜rx–"€ € € € € € - Ôµ5k×Ù¶í;Üí) € €û2ú¿ªxñ¢öÝ„/­T©R!€ € €$‰ã˜%É  »Àé=O5Íéç—FŒ|Ø6üó_vB–k~Á»îî[·ÚÛçŒ^¾ùd$‡@¤žë ä·’%K&GCi € ä‘þ¯RÓwïÞãüìNò½ y € € €@Þ €œ·Ž7{‹@J T¬PÁ.»ôß}Úºu›½ñÖ;¾ù‰Èøà£mõêµ¾U_yÙ¥¦v“’[@ãû%ÝPªd?–#€ € € € €änȹûøÑzò¼@¿¾}¬\¹²¾O<õŒ­^³Æ7?ž7n²zØ·Ê’%KXß>½}óÉHzuëú6F½dþÛ»×7Ÿ @@èªT®lÅŠ‹~J"€ € €$\€r‰Ù$R@s¥]{Õ•¾›Ø±c§=÷ÂK¾ùñÌxãíwlóæ-¾UÞrãõÌíæ«“\e.íÛ B… Y|óÉ@ˆÀgcÇÙãO>cÏ>?ÊtCØ÷?üŸŠ©²U`Ïž=·§rÁ‚#–!@@@ {¸ž½Þl  pÒ ÇÙ£OÛ‡^r‘ÙþˆÛSvÔ¨^­ZÄÜúï¿óÉD@@È~z g¿9[D8 -ZÔn½ñßZ5äðãO>mÿý÷Ÿo™¬f¼ðâ˦ÞÎ~éÁû†[!zVøñ$ÝòƒK—6Íu.q‘3œ Ë@ø ,Z¸(MðXµòy_Žï–© â-P©RÅxWI} € € €  €œ``ªGìèÖõh«shmß½ÿáh›÷ç_¾ùYÉX¼d©=7ê%ß*š6ilŽjï›OFò ì a]ºt©° +Î}a]XˆÄSàç_~guÔ…9)À›8sr·Ø6 € € ÊSùè²oä!ƒ:Èîºã¶ˆ{Ø|ðA+^¼¸mß¾Ýnºé&[¶lY؆i:±ÇÜ-»uëVû¿ÿû?[»vmš²×]wµiÓÆá«tš›…T÷ìÙ³íÑGõ­ÿ‰'ž° *ØÂ… MõDJwÜq‡5lØÐþùç»âŠ+lÛ¶mnñúõëÛ­·Þšî&p}îìÚµËV¬Xa“&M²O>ù$Rõiò´ß2*S¦Lšå^«V­²o¾ù&l·Ýv›5nÜØ¹a}OšuÕé`óæÍö»ó?ðSO=hšBA/Ž:ê(ëß¿¿Õ¨Qà :0ý–nÄÔ17nœ½òÊ+Akø?mÕª•õêÕËêÕ«g%K–´ ¸ÇJmÔqZ³f͘1ÃÞ|óÍ4Ç7+ûâ·np+eòå—_Ú³Ïè´¡óó†n°Ã;ÌttšÚ©c©vΚ5ËÝo¿óPû§zµŽ~t¾üùçŸöùçŸÛ?þ¼yž#€89 @ eôÏúµW_é@ÖŽ>èôB~yÔ³é¾ €@b^ýu»úê«Ý›áÛ·oï5½€¬·Eæ TÒÿoÁ½]èSp98h«^ÄsæÌqnÜáÖ×´iS+X° È;ãŒ3L=KÌ N±LA¶{÷nwUµE=K½¤íyI=|Õ;Ø jlTR@øÎ;ï´ .¸À+ñÑk›ç‹-rËj¼öêT`RAé~ýúz·S멽J^à[=jÕ¾O<Ñþþûït½˜ ­S§Ž»Ž~©ç·z-«'µÂrUpVéCqó—]vYºÀ¸Êªg¯ì^Ò¾¨7®zœ+À¯@¸êR¯]µsêÔ©^Q÷1+û¼îÒ¥KÁPÏê ¸‹t¬ äÚhÚªói3r‘Κe¯vN˜0!P‚íêý®¤<™ê\.Q¢„{̵ºa"tßðÈãóø Àî#júg{è‹}ÈÚß[ï¼Û>ÿäC÷ŸÄÌ,Ü=üßÕ5üñ‹ûæ“‘{J9_žH €‰Øêô0ùfÒ·‰©œZ@@2øâ‹/ì”SN± ¸Ã#_xá…vóÍ7§YO=AdTú믿lüøñîs&ÕkÙ +h«ž´'Ntó½_*§a 5l²R·nÝÜ¡¤Ù ô§Ÿ~²ûî»Ïk‚ûxñÅ[Ïž=Ýöª÷ª‚ß± g­Àí%—\’¦N¡ûôéã֩૬FŒ‘¦Œ††ÖPÌÁ½¶ëÖ­ë:+ªk[§vZš¶((<–Õ-·Ü’¦^½Ð¶è[µýk®¹Æ† –¦œ†üö‚Ç ¬ª. õ.éFõÒ=:|GÌì‹·­«áɃ¼¼àGÝÈ sFIAcY„®#¿#<Ò&Ožì–SÐÙ ¦+`­cðÕW_¹yÁ¿Î=÷\3fLð"ž#€ì €Ì©€)'P³Fu<ð<{nÔKa÷mÁ‚…6aâ·Ö½[—°ùÑ,üö»ïmúo3|‹^yÙ¥Vѹû1»’îªÕ§Û·ï°½ÿí l¶Há"ΕÅ_ì<‰( /kŽ:Ò>“~ëˆ+&0SwQoܸѶ9_°Š+n[¶nqïØv‡”rîšV›‘ô…nã¦Mî¾^ýºCWwìOàv½m%Ó£¾tnwþÖvïÚ¸«]EŠvæÌ.œLMÍÖ¶(à·eË–À9²g÷+ì˜$êÑöt!Ê»k];«÷ºâÅ‹.*d+@” uÒj:Š)ê¶]Ï“)é=gË–­îg‹îðÏïLË ¤v,PЊ-bÅœ‹8ñ~ï™>}†sQh}XŠBN¯ŽTN~çvnýÏmç|4çV¸}Ro£DGÓ¶He’ý³}zºà±ÊËO?^Ò~{Ç|ùòåaƒÇ*Ü{Þ[—G@}Éu¥Š£‚ÄIà‚óØ+¯¿á;‡â 7ßb;M°Ì\ŒÞåî¼û^ß––,YÂúöé훌MN@ošs‘ý{ç.Ñq_|iK–.‹X­† ìÖ¥‹ݹ£Þª¥•q†øITúmÆL[·>ýÅÿ|–ÏÙv +UªTB6=cæ,[ë܉šâ½ÝXÛ¯/d¿Nf›œ€Wp:(ßAÎPêíÜ;ºƒ—?ß¹s§iØõwÞûÀ>·ïŽîàüàç'x¼=tÿ½!‚óbyþï¿Ûœ›#ö Ϟѹ¥y¾;¶‡snu¶#ÚµÍÖ›&b٧̔ݸq“ý1ïO›1k–{üf:ç׊•«|«’E§ŽìÈ#ÚY›Ö‡[Ck'u0ÓÛ‘?ÿüË–8C”§={öZófM|§ÎéÙsæÚ_~m£?þ$âû\zžzŠïœ'r)Vlß]ãÁÛËè¹6¿ü2ÕÆŽûÂ>þô3ß÷uÕ£÷ºÎ;Z—άmÛÖ }¯‹ÔnýíܬôÃ?Ùä~´/Ƨ¿Ó=týöÎßÐ1ÎMz_¨ë K§‹)Ù™ô~£ãú½ÓæñαÕ{jFIÇWŸ)íÚ¶±¦M[Ãóʕ*.îd´~p¾nÊzü©glÂ7þ§~þåWw;ÿ:£Izÿ×¹¬ xɘÖ;Ÿ•?ü4Å&NúÖ¹ailÄs»JåJvòI'ºï·Í9õ L®¯qÉ~Îgæ½NçÌú œÏ€éÎßÄW#ïsà(gš”öÎgA½ºÙÿwìçÉøY®Ï¿Ô¢Ù¾‹ö~ù,GÈ~õÖ1c†µlÙÒ½P½jÕ“UIs{¹iÓ¦“Êó†µÖsC‡¾Öòà¤à†ŽÖÿ¾ê¬9€3Z'xýx<ÿã?ܲ”‡9ÿÏúõ´e[Ú÷cŽ9ÆÝ¯XnÕ˺YVÃ2{C3kHé^½z†bVç¾#%mÿôÓOwƒÇ²UoæYÎw[%ͱì}×Ððב‚Ç‘¶‘Qžß¾„®<äxhž÷:xl¯'²—ç÷<|¹†Ã&!€Ä.\Wbo?k €a*T(oW_y…Ýs_øa¦7lØhŸ~6ÆzvjØõ#-ü¹ˆ¸pÑbß"·Üx}B‚¤^ òɧŸ‹8÷r¸†iι7ß~×ýQ~W'à7ä¢ ­E󦙺ÐnZ¦6Þ7â!gžé_ÂyõÅçâ2ÿthåÚîðŒëvL MÅ‹u‚#•BG|­à× ‹/u¾nISNÜ7a|ØÀ†öççü¼þ¦[#‚+,ì|!òîÈ ^íóÅK–Ú‹/¿j¯¼öF´«8=@÷8GcÝ­ÔÎ Ø]{Õ0kÙ¢YÔu$SÁ+VÚ—_O°—^y-âßx¸6Ëâë Ý/ÿ²K/¶ú'äýÀÛFVužÝö¿»Ãþݼ2ê¹tdõøUÐøvg¿¢¡í‘Ë»ïèþ(oÐÀ6ð¼s­’3XFiùòöêëoÚ³/¼˜QÑ@¾Þë‚·wzÏSíª+/‹ùï6PaŒOüèãÏlÄȇ£þÛõ6¡›Eô£¤÷}†qúi ?è–s,û^›u|õ~üž¯¶_8h {Ó@ýzz xë?ê¢Î·“¿·{ïÕß\èßXp]~Ïõ¹ã·½h–+P¯ÏrÝmÒ ,Ï>?ÊýQ ò g¤“~}Ït.$&榬hÛ•ÎùXßë´ïºèɧŸi$’ÐÏý-ÜqëÍÎÿš§dùæ®hG2–çÏïSŒŽ @ ùzè!5j”,V]õZÕw‚fÎÍlJúÎüüóÏ®Àž×›Tå>ûì³@žßª—,YâÎ׫ ŸÖÙ@ö†…ÖçÑܹsýšÓr ‡í}?9)£J=ôPw$'•ûçŸs—)S&PŸÚ:|s¸z5,³â «¯’Ž‘‚ôJê=®ÞÒ‰J~û¼=µ!8Мü\½ŽD×¾h8ë‹.ºÈžyæ™à"éžë”¥Nê5?|øp»þúëÓ•c €€¿€ÿ·8ÿuÈAr…À™}N·råü{Ýy÷pSX’†YºëÞᾫ”)SÚé!t‚o~f3tÿÄSO·3û ˆ9xn›ºß»o?;¹ç¶(B0<ܺ-«àÌ3ã—¼»”ýò³²<ÞÛmÖ´Iºæèâðž=»Ó-´ ¿ó§¨3ÔkhÚ±cgØ­ºøÛ©[vÍõ1 9¤fà.âÐmEz­õ#F>b]ºŸ©RpÝ "鼺|Ø5ÎpÛ›‚³’ö¹.üèíÎ8ëëÐ¥»½'ª@V4;ôØO[›#;¹½9£)Ÿeüþn~Ÿ=;MsÔ{ïÈÎÝì²+¯Ž:xœ¦‚ý/žõ²Ù©[ঃpetAïÏ»öˆ)x®®÷?mGu>&âö­ë2G/¿úºs¼;ÛÝÃïéo7ܶôþ  Z¶=Ê îêÂJ¼“nn¹ó®{­ûñ'gùo?¸mj»ÎýNée[´vGPúà£ÑÖ¨yk»hÈåqû› n‡÷<‘Ÿ;Þ6¢}Ô0Â7ßv§ûÙKð8´~}=8òQkÕŸÛ¡Ûö^ç¶s>Ú÷:õ8|ÉP÷üÍê4ú[Ð`‡ÑÁþük¾G—Çdÿ,×Ðm[·NȾS) €@â4 ò?üàn@»óÎ;Ïýñ†mV^ðÁšÒÁËSànáÂ…Q5.8€˜ˆÿ{½FhZ–Ðtê©§¦Îyþüø|fkéHd¿À©æKöz,‰ƒGB[°`Aèn„}­´—¼^¾:F^^]ßÒ1ÎjŠu_‚·§a¼5”¹æ_¾í¶ÛÒühnd¯­ºÑÀÛo¹öîÝÛÞzë-ÓÖ~Iû<§¶†bÿè£Ü ²æG&!€d,@äŒ(¹T „óñµW]é^¼ · êúîûØ€þýÂe‡]öÁG›z¸ù¥ïž©a±ýêÓÚ·ß}ßnºõ¿"YZ>gîÖõØí‘ï7 L: P$Ìœ¶êõ•Ïùâ¯< “êœ:mºÈ쟩ê5|l¬iõš5vêé}"žÓ±Ö©òŸçöäýÞÛÎ0dûîtÎL=‰^GCôªwx´½i3Óz.z…]zñ…våå—f*ÈŸ™ífuY¿ÏvïH×…¢žbýΘÕ*Ó¬ÅÕ×97P¬´ÁœŸf¹z3žxÚéq?'µ=qé%.ä¤Ùp^¬Y³Özy–-_žõ‹/áš¡›Ô«úÕŸ[oS½÷Ÿ~æÙYt‡koð2Ð4ú…z‚{•¯Ï¶1ŸGßû6¸ÎÜú|åªUvJ¯>q¿Ñ¹ý«óÙqó ×¹4‘† Ž—]n<çýö=ø½ns‘»çg¥1ÄoÝh—ëÿÍãN:Íž|t¤Ûã˜hW‹º\^ÿ,Š‚ €™xê©§¬µsz7irà&ëpÃ(kÎYo¾_å+€MR ¹~ýúnÑÒ¥KG³J¦Ê4lØÐn¸á÷;™‚´ê•«ž©^š2eJ`˜goYFÁÿãÊé裶#<20´‚ão¼‘~”//pªúÕCYMxó"«wwð0ÕÎZIÿGGôÕÐܺQÇÎ;.Áó¯s¦ R»p~ :Ô7nlÁwy­^½Ún¿ýv¯Xà1Ö} ¬è<Ñ÷ÍŽÎDá’\$öz¤6Ì{ì1··ºÊ—+WΦ[ÃsÏ›7Ïî»ï¾@m¯>Í)­ýïСƒ»Hônݺ¹?šùµ×^³ñã#OæÕÅ# âwSûöí"Þ`â×fÏ¢J娿Ã~ðáGMö¹!­Y»Ææ9ÁÑ .UsÕ;_:cI7Ýz»|]á«Ï|IÔ74dv{š£]oñHšÇö¸“{ÆôwämWV±ž?ú{=öÄS³t©¹{͈ê±AýzÖ¾][ÓMR±¶YÓ:á¬.iíìHÁ='²c{¡ÛÐȧŸÙ/âÿ¡ëèüÖûm,æºãég_°æÍš†V·×¹ñœÏhçõ^÷·3 dÿƒ¢þ[öÞ2ª;\þ°k®‹úÆÅpë/K•Ïr}nÔ9´vð®ñ@ ÉÔ6x8dõ\ žûØk®zzÿ{þ¼|¿ÇúNÏ[/oÇ[¯G]ëÐÿÃú ¾î1aÂwåxmGû>{ölùÄ]~íµ×ÚäÉ“Ýíz·iÓÆîºë.ï% €A‚žóHIn]:»¦æÿ~ž˜'œÀé§÷´Š*øî¿†k|쉧|óéÚŹh{`8'ß‚Qdè Áÿî¹Ï4wgFI1/¹h°Ý©£Õ:ä+Q¢xš/úg|Ó«fŒ3¤°z@f”4?©zØ^zÉEMùü’%J8ž%œ/ëûºÒ²)žI78èf\ñµ8ýÎ:Óš4nä¿´Ù™Oj“Ó#~ñ’%¦á7:-07PFíSOzÍSœQðXt5üÑ;šîÔV[½¤/«V­¶o'o÷Þ?"b`DC8ŸÕß™»û«/¬Ìþa·¼zrúQû4pÀ¹Î¼æ÷‡mŠþ¾zžzŠkPçÐC­J•ʦ^“ÁwÅëolÉÒeöͤoí^gÄ€HIO:‡÷ÞuGš:"­“Syº¹Fs¤û¥SN:ÑN;å$kРž•+[Îéùxà_Jÿ}Ž3ñ(›ðÍ$¿*Üå2yêÙç­šs÷÷ôßfø–íÓ»—pü±Ö°AgçÒ™ÞžÎû_yÕnü¿k}·M†zýEò ®£]ÛÖvÎÙg9ÁÀF¦yXƒ{ èoi3l÷o3fÙŽ4¿Ï)¯>µÿ¤ÓzeúïéÅW^˰·´nzÉÅv¤sƒEåJ•ÓX«jó–-[m­sáðï mÒ·ß9ŸW…}O¹fØ•iÞ;¼ýÐßÐý÷üϹ u ç€ò ;󤾸ò+ö‹áož:»o⠿ùÐMÒv*Vôÿl¦Ž¬”Ѽ´}û ˆªç±Þç‡]q™µlÞ̽)ø}Fëä=sÖlûèãOìóqá‡ÙS/ûD¥ÜzÎgä¡÷ºãOîå[LŸ…úŸcú_Rÿg…¾ÿè¢ïªÕklÚôßÜ÷÷Œþ†µ½×^Ë.»Ô¾>߯eäÆÏòHëÇsz &ž"€ÄI@ÁÄï¿ÿÞ ð©ÊéÓ§‡žzãÆn0T=iË–-ëöVõ†ŽÔ”àa Õ›53É ”jÝàú‚ëš4iR P¨ ã€Üïeê\³fͰ=…ƒ×÷\ï·ß~Û Ôª—¯žcÆŒ W4Í2/PìH5”r¥Jº!·°;„tèPÑ>ZIÿ#ÜÓTòÂëѬŞIð1*é\û©à\ =FšØKšƒX½¨U6øÿS/_±îKðºzîµ-tyF¯ÇgúÑðÞÚZ½ÁÕFõ2W›Ã%»úQÒðÖ-Z´pŸ+Ø®ëÞñpò @À\íHQ}¹ëŽÛ|{xê‚üs/¼d7]ïPxáÅ—Ã^™‚L×_wUÜæ6ýò« ³ªm>tÿp;îØîÿÙÖ†ÃÔw.ºðå\”ø±'"釜¡¬›6mb:±\ªg(PÐ.¹pPà¸îtî®]ëˆÞ±šlß¾Ã^{ã-ß Q›Ö‡;çî­V·Î¡±V¶¼nNÐè £z÷·¹7Uø}‘ÓòªU«Ø™gœn ìiŽÓ[nÿ_Ømj¡.˜?üèvû-7ú~éô]9ÁÇõèž.€<àœ³íô^§9=ùë¥ ž…6Gc:>úéã܈réWÛ÷?üZ,ðúãO?³+†qƒÑ…¹èIoÇåÿ®æ^òk¶‚ìmÛîþ¨÷ùùƒ/ŽxÎEbÐÀîüÑ¥J•òÛœÔe{ú›Ó7™½¡AAÁA]êÛ/£«pÒ9¯à¸_Òß’n^êÞ­‹û£!ß/zyÄžØú{º|صöÒóOÇô~´Å™‡îÅ—_õkŠÛ{üÅ矱¶ÎûŽßÅ!­¬6—.]ÊýQ¯Aµý·ßb‹/qƒÉêi¯a€x;þؾÛÓEEý„¦Ãœ›üRÍÕcîíWWv,×ÐÒå$÷vmZû6I½L*;õ#oÍy{÷ðìÓÏÆú®ÏŒÜzÎgÅ@Çå‰GFZçNÿ„«O7„R³†û£›j¾þf¢ ¾xh¸¢eÏeçôë›é÷ ÜøY®÷”öG´µ±ã¾8ð@ w x=`ÕêH=`½ª›u;uêäÎ1iOô;ĹIKI몇lhÒ\·‘‚{ rzs'ëm¯ ¡õ¿V€ñ裶Zµj™¿š_W?±&õÐ}ï½÷b]Í-ü}ûÕW_µ«®Úw]©}ûöî|Ó³fÍ Ôì¯á¤£Išënä@IDAT× ÈÏ›ìõxÖ~Ÿzê©nð5šú"•‰e_Bë‰æx…®üZA|; a­ùŽt¾xëª7²zÒëüÓ÷zÍMÙÓáØ'¹ÛºÐCr™@›Ö­¬sǾ­~å5g^Ÿ¡eµü¹Q/ù®{Ö™}œÀb-ßüX2tÿ¦Ûîˆ¸Š†žøÕ8;ñ„ãb (¨£/Ÿò¡Û»)ÒF.vMØ;Š#­“jyêQyþ€þNÏ#çÎdçgðÀóL=Íã™Ì¿ã®{ÃVùÀð»íÍW_Œ[ðX™ôíäˆouÁü“ßµ¾}zG}n颰z¾2ê¹°ûá-TÐN½“-Uv†îrt'7Ø%ó™S¶[o¾Á7j˜að8t_ä|ù…gÜ;Bó¼×ºaåûò^æªGÝXpŸÓk4\ÐÏoGäøåØOœ^ ÑÍ·\ÏS=l7\wE —×smïóO?Џ=ƒo¿›ºjÔ¯ßyï}[¸hqÄò·9ãçžzCèõK‡:£E)p¨´ÞÝ'Ú  ‚‡Þÿž7¶“O>Ùo¾Ëƒ§¾…|2¼m+[=i½}×ÿ¡Áì÷ßßþÝ?Œæ2îÓ§O­û«L«V­ÜºùLsV+Éõ§Ÿ|U9Ú¹‘Ý |~Ų/>UdiñVçZš×ÝD ^ÑÑ$­ç%Ï×{Í# €€dÎÈúòríÕWúQ}üɧÓ̃£ÂúG[CÎú%]trñ`¿ì˜—øÑǾøU™.H~úÑ{n/¤˜+ß¿B½zu3 è¨÷Ø»ï˜ÙM°^¼ n¯ÓN‰Ø 0ÖM(ðrçÝáƒÕªKÛýÞÛÖ¨áa±Ví–?êÈ#ìù§#÷næ¹Òýejcq\Iï ݯMÿåG“y±bE³T»¾ì«7¦<ý’†üÕ—ÚÜ”¨Ò™I ¿òBä Bë}îéÇ­G÷n¡‹£z]¶LõìÓË~õõ7™:êaðÀCG¬ûþ{ï²s@jf“Ρ¡C.²{þw{Ä*n½ã®4s’E,ìd.Šô~èá¦Þ½ñHú›já Ã|lcâQ]®­ãÃ>ñ¹D;U¼xQ?ægȽҙÚG9Ÿ{ÎÙ "çæs>3°º¡H7Di ‹Ì&ý-zÖÚÕûÉgc3õ”ªŸåÿå²ÏÄÌž¬‡äQÎH^oYõ.~ôÑG}w{èСֹsg7_×^>ûì³4e½a›õÿ±æVOãpIÁV/«y~£M ¤þúë¯nqýouÖY™ÿ>ÚmF*7|øð€]5ìüóÏ×~yC/«­Ê;í´ÓùÁO4¤ó#<˜:gùòå6~üø@õvö‚¥ú[s {C9 eñI¤} ®:–`oðz¡Ï9æ˜À|Ï›7ovç{-úZs9+©º„ V€!¬Ózð RX@C9k®c¿À¨æ¾àü¦y½4÷y¾åUFsGš;Ù«'šGÍú˜ÄöK H}1æã,]ÔôêV@gôûïXNñ¿ö¡G³Þ½zf9 æm“ÇŒtŒ?ý¾Å«G{ð'Nú.b¯ÉÇ~ÐtsAV’æKŽô7ö阱nÏJÍ%œL)–®Ñ´[LÍ™ùìó£Âÿ}Î\÷ ª.„䆤¡˜Ï9»o–šZ·nw8ãh†/xÞ¹¦^|YIz¿W ÈofÍ®ù8c=c>ÿÂ÷=Sí½êŠ¡vzÏS³ÒôÀº"^Š4­@¸¤}Þ~÷}|Á KáÊi™.ÈÍ™û‡_vBÞs|7–2Ô³ãù_Œ¸§¯¾ø‚3¼^ì=óC+U¯oÏú&)·žó™±ÐMz>4"â°œÑÖÛ²Esw䛉ΠCáÒ”_~u/ÜÆ¨NÅÏòºuêÄ4ÒD8O–!€$€þU°ò„NpÕ°aCûàƒì›o¾±~øÁ68£´~øáÖ£GwÞa¯å¿ÿþ»öÿ™‘#GÚK/½äöP®R¥Š½ùæ›öõ×_»õ¨·i»ví¬{÷îîü¼ªg÷îÝöôÓþ×T¼m?jÁCké‡z(¸H¶=×0ÓrÒ>)H¬á¥?ùä“@0TmmÚ´©»¿FüÒK/uçûýâ‹/lîܹÎHsåÜ×;vtFÓ*è¶[ÑP#Y÷íÛ×ÝŽÖ»ÿþûÝК'zæÌ™îàºV­ZâúNmÊh_¼z4tôyçè=ì-×£öqêÔ©nïi 1ý×_¹ûú÷ßÛgZµ]C¥ëœò¾Û-Z´È­æÂ /´3Î8à ÿñÇö矺½ÓµÍ¶mÛº7/h:%™„Îífð Èãóø Àî#—ôø¥—\1 ²ývt§Ž¾ùÑfèolÐÀó|ÿÆ4tð_~å m¹µÜYgžá@ÖàêÕËPÐ9épͰ+_Æ3ÛýÏ9+âêª[7Q\âÌמդí t† ÷ ¯p.ÎlÞÛ1PÏ¿'ž~Æ·ieÊ”¶Áƒúæg&ãÂAØÎÈ~Cf?ጡ@s47A¬Y¾7†Ì+”/—™æ±ŽÀ´é¿EœÇZ7Ih¸òx$ëšž"äÜ~ÎÇê;üî;ãvÓœŽËEÎ{™_Ysêÿ¬Xȹý³Ü›o1ô¸”*Y2®#®„ÖÏk@ìP S½5$´‚z%÷z=÷"Z=k5mhRPïå—_¶Aƒ¹õ¨·¬_=úœ|å•WÜch=‘^kcÆŒ±Þ½÷¶¤!?þøã˜ë‰´ ¿<¯×tpþc=fmÚ´qF©9ØíQ{å•WÚÍ7ßìÑ\¿ ŠÊW½»• ×O¸´}ûv·ì?þ˜.[=Å5ÌsÿþýÝÞÛúßEZýø%tõYåÃ-´/Þ6t~Dê\ÿ+iøm Q®m4hÐÀýñÖ}\±b…Ý}÷Ýîb/Jêe¬õR—ô?Ê=÷Ü.‹e €@žÈ]_òüaâ%P£zu»0Âþ¯'L´ßfÌr7§ À~þTà–¯ê¢}4m×——^yÍ·¨]»훟ٌn]¶Z‡Ôô]}ÔK¯†½Ôw22-péÅÆ- ÚÓóÿ^º8ðúÿ®90äW`a&ŸZ»–Þª¥ïÚŽþ$OœS È•+WÖ×!_.é}Ü´Iã¸ÍÃÝÌ©+’‰°^Üëêè·=ÝÌð÷‚…¾Ç'\Æôé3lùò•á²Üe·ß|“Ú§¿o¡34û­7Ýà»–PÓœvE“J”Øw%´¬,–,]º˜×™ÐÍg:Æwíò»sEûÈDFu§wÈñÇöÈÄš‘WÉíç|ä½K›«›;wìva_EzÏÓßÝÒe±ýÝåöÏò†‡5+ªxH €É/|#7üq¤VkXän¸Á,Xà;‘æ8Ö<Äá‚Ç^Ýï¾û®ÛÓV=OÃõ€Õ²yóæÙàÁƒÝÊÞzáÕC9\zæ™gLG%Í·ì“Õõ–yóí»xy‘uíGImñê.¯‘l>úè£À¾6kÖÌÔØK x+è;vìØÀ0Ô^ž÷¨z§M›æÎ“¬Û~éõ×_·ž={ÚŒ3Üöø•S›u¬&OžìöúõÊee_¼u½ºüå¡4kÖ,çæ»Í~ÅLsk_Ï=÷\wžgÔ9£v‡;o”¯›´ï Ì?­å$@ô@>`Á3È#ƒ/8Ï^~õ5ß¹ 5tóKÏ?mwÀWDÝ“OÚ7$“o¡2–9=:Íwˆ\÷À„6¦»=5 ÷µ×ßvÛ3gýîö|«shí°ù,Œ€æÂ<ÿ¼þñ©,L-ßLú6ÌÒ}‹Ú·kk~u}WŠ¡sJsåúÏóœa£6nÜ· a„¦äh–†ÅÒ +áFPé |¹ã¾>½{…½›<3¸ù;ÖK:w‡3ñêë’Å¡«½z¼Gõ®õK~•WÙHÃoëo¸Sǣ­šåemÛn+–÷íÑúÙØÏÝm«×€_Ržnìð›ÂaÔK¯ØÈ÷e¹§¹ßöóÒrþþf¢ï.wr‚”Õ«UõÍÏL†Ž¯¦ˆtŽÆZon?çcÝßsûí;¯b¬uyå5$b§O¤›½²Ñ<æöÏr½ÿ“@r¯À³Ï>kú‰%iøaõ˜­Y³¦µoß>0²ê˜3gŽM™2%ªê¼ä’KÒÕ³eË7êÃU¦yŽ#õpõÖQà1Ú¤íihä̤Ë/¿<ÃÕØÕO¤¤!õ£¡À5¼·Ù ~+Ȫ!ãMÚ—«¯¾Ú-®!³ÕóY=“•4j–†‰ö;NYÙ—hÖu±ÿ—nHÐÎ¥V­ZæwVöÂ… -\/k ÿ­%eœ©¦¼¤}SÏs €@dÈ‘}ÈEÐü¤× »Ò ßvï¾ÿáGëÜíX[±rUØ|-¼ïž»âÐ9k¶ï¶lŠwP%xc:Ò6V½aÂ%ÍÓG9œLü–]4x•q¾¨%"éÎÞï&ï[õ9ýúÆ-@èm¤icÿa¯tž-Z¼4åÈ è(H4ý·ô½C·nÝæÜ˜±(a=νãÕG½÷´?¢mV« ¬_Ð 7qÎ ¿á˜„­sh­@ù¬>Qð¦U‹N¯áϳZ•írzhH¿Ôë´Óâ6"Eè6Š-j}œ!õ2ü|nþŽ[oÊ0øå áZ¿^:æskâô<ð¼pÙ,‹A`É’¥o’ÐÙºÑ&Þ©iÓÆ?ËcÝ^*œó±ìsîÝb)uYõlŽGJåÏòXn扇%u €d¿€æ–Çü²ñª'û·Eͯ:u¼êg=™=ÆÏfP gâõ"Ïб£ ›úœÑËwhSíW¤à±†tÇ|±žŸ.œÍ˜1Ó{™î±áa‡YµªUÒ-ׂòåËÙmýƒD?üø“E;¼P¼Ú”—êQÉž§œœ°]Ö·óÿþ;lý 6¨_/l^VVqÎW¿¡ƒUïLgø©¼žbê,'¼¸¬T±R¶mºKçÎ1Íšm s6´jÕªˆÃW÷8¦kB›sL×£}ë×ßøòþCk{+¶9¼•`ô^‡>¿ÿA»÷þa‡Ò -Ëk?æý雩÷ûÃ[úñï»b—.mmÛ´Ž¢dtERáœnOÍ™_°¨Õ¬Q=Úâ1•Û³g¯oùp7ùNåÏrÍžˆ›*ü,YŽ € € äèœ(…)&P¢xq»þÚ}Ãôĺk·Ý|c\{l*€<×™³Ç/uêpT\·ºõ”ìÖõèÐÅ׳~Ÿíü/€ ò$S ê×·J•*fjÝhVZ½zµ3ŒÕ–°EÌ(WÖžÞ°+E±PçT¤´ÙjŒ”üµkÕŠpŒ÷¨wr²Ö¬Yë»»ú;:¬A}ßüxdÔ®]+âM&NÊp3ºY蔓NŒXîùQ/[ÓVmmÌç_HŽ(培`á"ßL½ß—-{`è<ß‚™ÈÐßN‹æÍ2±føUR᜿gé—Ö9´ŽD?GxúÒÑ/Ñga»¶þAýμ{ѦTø,ßíÌÇ.é&ÉŒþo·Ë@@@+@9±¾ÔŽI,pÒ‰Ç[Õª•cja×.ag›Ä´NF…5¿Ìì9s}‹5oÞÔ7/^êUí—V¬\é 7ùe³<‹B<þüY¬ÅõyÍ÷ÍlÞ¬¹•,YÒ7?³E¡ƒ5ÿ/)w ´vz¬fg@7–`JvËþ5?|/~µ£jÕªÎßQ©„6©˜Ó\s©ú¥ÿœ¡ê3J Ð\uåeÞ aæ/»òj7üÖ;ï¹ó¨eT7ùûtCØüçJ¢ßï«:óßÅ+¥Â9­EýzuÀÔPúñH©ðY®‘ItÃMhÒpé$@@@ä`ää;&´²I PÁ‚v×í·ÙÀ /‰z‹êµï€ÊJghÔuëÖû¶¡T|¡‹4GŸ‚ óÿ^òsÖ†šd×ëÖ­[%tSÿüóoýšïûöÿÝc¿…x%Ý¡úæÌõ¿)œ KnJ[ÿý×6þ³ÑÖ­_ïþ­®ß°Á ªi_õ÷±yËfû÷ßmÎónoýµëÖÙ^§§ÕÔéÓsÓn¦kk§Ç*½ÂÌ9]ÿ³©ÓüeåŠυȽîÓáÆ¸@ÇA=ˆý’FŠÐT}>U¬PÁ^|þ;»ÿù~U–ëܾéÖ;ÜŸçœm}Ïìmõê&.ÐØp.~²}ûvûuÚTß=(\¤°o^<2êÖ94Õ¤Ô9 ˆÜ2úÛ‰¦žD–I…Ïò’%JXéÒ¥lõjÿiHÝ € € €± @ŽÍ‹Ò b;éùÍÜÞÿptØv,^²Ô ú…Í YØÎ™'÷©Ç¶K.»2$Çÿå˯½aú©R¹’]rÑ`ëîÌù¬`4)6}Ö&2)@¯”Jç|F&É<úÚÎgyFG|@ÈKíÚµ³“O>Ùj×®m%âøÿo^2d_£˜9s¦½õÖ[6kÖ¬èW¢$)$ÀÖ)t0Ùˆ]@=NnºþÚ WT wÈŃ3,—ˆùœ6’RW@ËD¦üù“ïü)^¬X"w9Su/_¾Â~ì wØÞ'œb×üßöæÛïæÙàq¦³¸R"‡rÏbÓœqòýeeŸztïf¼ó†3ôvlÇ+WÙ­wÜeí;vµ .bS~ùÕíùœ•¶ä¥uu.rå–”jç|nq÷kg2x}–ëÆ € €‚Ç7Þx£5mÚ”àq4`”ɲ€Îµ»ï¾Ûš4‰ït†Yn M©u5,›ÐØ ¤–@ËÍ­sÇwêÊË.Í‘ÞV $nn܈;Lf¶èÆ„CjÖLè¶öìÉxnÔ„6 Lå:YÒŠ+íú›nµŽ]{ØcO<íI,mËév”+[6§›4ÛtÎ,;ôiÞ¬©ýò÷6üî;3åüͤo­ï9çY“–mì³±ãœáÛ{3L¦™d+íÞ½+ÉZäßœT<çýö67¼×¥Âgù^gT”pûQ»Vî¹±Âïb9 €d€z“È ¾}ûæÄfÙ&9.@9Ç @œÐРîêÛ ùz÷:Í7?‘[·nsæVÍù`[¡B…¹›yºî"E7„µ`«V­œt¾ñêµ”•Ó|±Ï>?Ê:ténï¾ÿaVªJÙuÔ¯Ÿ²ûËŽé3âˆvm}Wù}N„ù¾}׊oF¹r™ öp‚ßgœÞÓfNýÙî¸õ¦L5Js%_>ì·÷¾ÉúÛ"ånT>çÙÜð^— Ÿå ´pìç¦+Â?,C@ìPoP9! !ÓIäEÜÙe"/)ö*P¤páˆõçÔ0Ò ^'rŽÜˆ;”¹sçΠW<ÍM»"̱Sû±rõêœÚ´»]™ ¾äRûö»ï3ÕÍÞ¤qc+_®œ/^ÜŠ)l¥J–t‡ÐÒóâÅŠ[±âÅìºnÊÕóŠsQßé¡ùG§OŸá{®Ô«SÇ7/»2¶oÛž¥M+VÔÎ9»¯L7þK»ëÞûmݺõ1Õé’ÖÀž~â«^­ZLëS8ëÕ«W3½?­^½6K•å…s>(7¼×¥Âg¹FkhÒ¸‘-\´8˜Ÿç € €@¦ΞtM¦Ö}£ÓˆL­ÇJyW€ù¶óî±Ïë{N9¯Ÿì?$½@N¯“†F%°f áÄãµ[n¼ÞvìÜU]ñ*¤ kNÍw«ÀÈM·Þuð¸MëÃí¤޳¦M[µªU­téÒV°`Æÿ>i;m[·¶OÇ|/6êÉAHóæ;(_¶,¾›.ìÜLuÊI'º?ÌûÓ>üèc{nÔK1mdÎÜ?¬s·ãìåžµGµi] gM`åªUY{-È+ç¼·¿ÉþÈgy²!Ú‡ € €@l§žzª•)SÆ>ýôS[»6üµ»ºuëZÿþý­X±b¦ëL³g϶—^z)݆Ž9æëÚµ«»|„ 6~üøteTF¹|ÿý÷Óåe´@mmÖ¬™ÛM_µiÓ&›:uª}ùå—aW=çœs¬Q£FÎõ³‚nþÆí£>²Y³f¥+_´hQ;ãŒ3L#aíØ±ÃÞzë­te‚ôéÓÇ´NhYo¹WV×76oÞìnwÛ¶mÞb÷±E‹ÖÚ¹f·råJ×?MfÐ •kÞ¼yÐ’´O½6„n;m©¯þüóO›6mZ`äx¦ã[É=U|8ú{ÿÃÑ6xè‹­ßY}rdîó Gl7o§×ˆBû¿y¯sâ1Ò|µ™mOƒúõìúë®¶k®ºÂ¦NûÍž}a”MøfRÔÕ ¸àB{îéÇ­ëÑ£^‡‚YØÇ'òâ9Ÿ5ýĮʟåL“’Øs‡Ú@@’O`äȑ֤I·a6l°Ñ£Ó_§êÝ»· <Ø:èÀuá–-[ZÛ¶mmÈ!ÒÜàC‡ ”S`´bÅŠöúë¯Ê 6ÌN8áÛºu«œ ¨ †<9ÿüóMÁcu MÝ»w·Aƒ¹Ûöàj‹Ö)éŒÒš:wîl3gδ«®º*M–ö§_¿~nû<]²d‰Mž<9Mï…ê×6lÞ½{·}ÿý÷¶xñb7 ¬y‘"é§ T{¸½çž{lÙ²enU]ºtq=2 {å¼í‡>j ¯5jX=B³Â¾þá‡Ü º·¿a 9  WÀ=Ò³/ZC@<(p°Ó£QCU‡KšyÕêUá²âºlëÖm[‡@kƒb¬l—óOìßgǸVÞ()°vݺ¼°/W¯Yc7ßvGÄ}n×¶µýËC÷£xñ¢V³fX((‹ € €@®¨_¿¾½ýöÛ౦á®'4v¦MS TÁãíÎ÷ȯ¿þÚæÍ›çîw½zõløðáƒÓO?Ý-7cÆ ûé§ŸÜàê)§œâUU¨|ùòvôÑG»å?þøcçúoÚÞ¸nF˜_]t‘}öÙàñjg:ºéÓ§»ÁXõìUR@Ö +P{Ùe—‚Ç+V¬°_~ùÅ «ç³’æ1õÕWmÓ2ퟗô]TAb¿Ô­[7wÿ”¯²zC{i×®]îÓuεNµks PeT§Ü|ðÁÀv½²Áë{õ?zåô¸Êñ+øGû-omgýúõiò´]%9yëxe¼ýÕ±÷ò¼GÕ5þ|ûî»ï‚›‘£Ï霣ül0;øàÒΰ¸¥|‡Ü¸qS™t·ÛæÍ[ÂnG½ Õ¾dN{œæÍ[·?™Ûè¶éŸ¤ºu5~K?ýü‹ûÏVN '¾U‰[ªžÇš§Õ/5nÔÐv÷¹¨†¨ö«Ã[®vþQ&¥†@}§7®_R€Tÿø'2©þÙ³çún¢^Ý:/Q¾…âQ³Fu»ûÎÛìÂAí÷ ϰGòîÝ{ìÁ‘ØÃÞŸ-í‹Ã.f©ŠüΗ{¿ÂTñÌY¿[§Gei‘VŽç”œó‘¤³7/•>Ë5ßzpÒ{ÄÎ]û$@@R] aÆöÐC™nÒV@ÒÞ9Ü~kHd]«Û¹s§]wÝu6gηØwÞiíÛ·w‡U®Y³¦¼<øàƒÝáœU·‚”êy¬9›+T¨àöÎUPWC`«·í¨Q£Âm.Ý2°{öìé.W[_yå•tCK+ЫµJ R÷êÕËýÞ¯ò/¼ðBº¡²xàÓЕ+W¶«¯¾Úîºë.wÝÐ_‡v˜[Ÿ˜öòµ é)éÚÉ“O>i“&M ó¶[¶lYÓPߟ|òI /Ú' †_pÁ¾ÅC‡ÿàƒÜcððçi‹*h×®[®^y啼oå9œAä>lȨÇÒo3g%éÏùûnCÃ+Wªä›Ÿ [¶luÿ©J†¶$[jrˆo“þ^ð·É./$ÝÑùÞûúîªÎógžx4.Ácß‘k¼»GÃíÀü¿ç»Ã@…Ë‹×2²ðÛ̾Õ)Ø<¬•oÁ8eâôTä×_~Á¹»¸DÄZ?ÿb¼-\´(b™TÉÔKÍ›6óÝÕ«×$ôfƒ ún;Ö ÎùXÅ[>>ËïÜ©£ixüöíÚº?uëÔqÞ»ò'Ú@@Hõ.U@XÃH+pøÏ?ÿø¶Ê ”ªÇ¯™þ˜÷§oõu­®Ä·PghøF¿Ô9Ü´ß¼.Ôú% ‘¾déR¿ì”Z¾È™eá¢Å¾û4èüó¬J•ʾù±fìqþfC‡êŒµÊ'@ËæþAAý­X™Ø©ôÅrݺõ¾ Í›î›;É·@‚2Žp‚@?~;Á:v8Òw êa8æó/|óS)C_[¶hî»K“ø1Í[¾3™¡aúã•8çã%ŸzRå³üÄãµ1`¯97ŸèçãÞqG≵ € € ¼ ¶ª7ðYgåÎóë”TR? ÆþöÛoivHu(­¤ÆúQ=º¡¼P¡BîðÔ +i]Í¡¬`óܹs£îy«m×®]Û­CÃ)?Þ}éW­ZµÜlõ€~ï½÷|‹Ž7ÎÝ/NDN ¬{棎J?r—áJšGY×Éå.…»†nY¸uý–e4Ôµßz‘¶«ö{C{û­Ÿ ËÂ:Žm@<-  Îê‘¡áuÃ¥ ':½D·X©R‰Fz§3´È}nÓî2Í}é÷OïJ> ôÉÉÚâ9sÿÈZ)¼vÕ*UÜ‚~ö‰ß~gM7Ja}»¶{×¾ùGüv´G÷n~Y™Z¾bùŠˆ¿LUÊJ9&pH­C¬jÕʶ|ùʰmøñ§ŸÝ^ua3ã°ð—_§ù¿®ÞóÕCîÜÃ&£®Bw?ñèH;æ¸}§bÐ×¼’"݈²|ùrçËþÚ¸Þ¬â¹êËçÏSâ7l>ç¼'›|–'Çq  € €dE`±Ó¹A)¸—jh}êeë¥pó+Ðê%\5²‚ĺñ\õjøj‘õ\Ãfkt)}'WðVf=×ÊS¦LñªIóXºté@ÏØÐvš‚A/¼6+P)in_õVVéÐàªöACOzè¡V£F wžèY³öÊÙ¹sg«äŒŽ©u¾ýö[w(l¿íxt/_{™è;spon/?šG »}ÓM7¹ÎÁåÕÓÚkcðòhžëZÊå—_žæ&s]ÿõ×_môèð1‚hêwz Ç[”ú@L4mâ?„†z·M›î?ti&6—f•¿þšïQÁ¶mÒÞ–få_Ìpî‹wÒ?_O˜ïjS¦> /[¿ž/äç^xѽC1evØgGÖG¨xñ¢ÎÐ9U}ÖÌÜâé3â®g®%¬‚Ιcºvõ­êÕ7Þr¿”ý?{ç.IQ5ìBâ‚KZ–¼ +$+HÎI$ "H2 øù)¨ ¢A?¢""9*9)ŠQ’+9/yYr0üó¶Öü5½Ý“îÌÜ™Ý÷<ÏÜNÕÞª®î[§Î©ÒC¸@WÏýúü•dX h8e¶Êìá¾wliâz륚½PaÑï²ôRK”f‘5ØÿXùg°òÆ›ovtÝuÛ|7j©ý8}—·ÏÎ;%  H@€$0HVXa…Ì$Gõ\ £„EÁÌeñn»ípóŒ hÎí°Ã™Â˜‰Ì«®ºjæ2å3J¬«\¦Ä^b‰%2E)cÜÛHXƒ9ŽIÔ[×™x&Ožœ¹àfŸûRA¹}óÍ7gî¦ÙßvÛm«—7Þxã¬,OV¼(ÞuWý1ò5ÖX#ì»ï¾—Ù?ùÉO2‹oX’öm·ÝV³•¬»×]wÝð¡}¨æÇZÕí yb=ë4NŽwÚi§v£ìÊ}*»‚ÕH%  ´F`¡Šòj좋”ÞtÎÏÏ›bfVià/\xq¹õ1–m+,ךkÔzn{ó³ÀZÌjað^x1ÜXùÀPŠ ðѵÍV[_¬œÅ2+ä©]FV> iÏE‚‹ÝN 3"Ï;¿ÜeO'Ó2®ÞàþÞR¬=;áï÷w%3ÏTÜc×{F·ØlÓ¾X»{\ÅJ»ìcÍd6#ü“Z&×ßxsÍìܲpÃy~LeV4ÖêerÁE—v¥ ÷Þû·R ð²¼Ô;o›¯G§÷×|—÷ž¹)J@€$  H`8¼XY¦q%þ7ƺ¸LâÿÎ7ÜpCdóÍ7»ì²K¦hÅÍõB -”)cQóÿÄÕW_)eŸ{î¹€•ñ:ë¬SõÛo¿]=ßÌ8.á£5q‘Åt5²ÜNš—byî½÷Þ,$k8£äFѼÜǦ±`ž¿âi±Lø?…,Ês”Îqe˜}ôÑÕ5›Ëî/;C¬±±6Ž?¬™|ðÁ²[žÇ-6eñ±%Îf­¾&Сº°îH£‘€$0¼ÈwýØÎሣ¾[ ¶<úXX|±ÿ¬AQ¨“¸Ò<ïü JïÜróÍ*³Èæ.½^taÞyË-á~_q¯¹çŸè˜KlÒ¿ùÖ_—ºv-Êß´xnã 7ÈÚÖoEòõC¿Ö_oÝ0SeöâÔ*¬\Vþf˜¾£ÅÆÝð_þZFdG4²žX±²2V€eîàOûñOÂñÇÝ´¢´ÙLŸwÁEuƒn³õ–u¯÷êâÈ‘³Uþ £P‰ÉúÍñŸÁFù©ç‘Kç~þÁݲòû©§ÿ¸0«¨¸ £?êäû¶_ÚyW¶ùÂ*¶“¾Ë‡ ½ K@€$  H g~øáÌ‚·ËXÍ– ®©‘ÿøÇ™¢5®Œkj,Žk¾ñÆ3—Ðüϳ“&M £GË.»læÖ:?¾(LgŸ}ö°ä’K†IïAiŒ¥2aóVÅi8öqOÍúÇH™²WÛ¬Œ’{½õÖˬ°¹‡ð×^{m¦Ï"(ùƒ•ò»•åq͚̿ÿýïë®Ë\MÍiÐ_þò—kÎ õåüá‡Þ¶R{¨é7{¿ÈÍ’2œ$ .Øl“ê¦ðïÛQ«%>~tÊi¥J52ó±vlIÂL¯e–^ª´7Ý|k6p^ Å |<w‰-Þ5ígÀÖ[–[!Oš49œV¢ì˜Zh-¹ÄûJ‹‚bù•W^-½ÞÊf]¢W¦>(GwÞaûÒ‚]yÕ¯Â]wßSz½ ?ñdøáN.½u­5ר뽢ôÆ.\xùåÉ…Êc’z­òÏg³2C埼2™øÌ3៕g¬ßeë-7/Í"N9팦ê¥%ž|ê©pÁE—$g:³k›ï ÇNÅ25¼Ëäzúé‰áÑʤÈÇ*)Ê:ÅÌx$  H@€$0¨c;vlMö™°ÝE§N:é¤Ìú d”¿óÎ;oeòû«áÄOÌÖ&,n˜‘‡z(ÛFEnvPògå•W.¹R{š¼"ãÇ/Ì_ u0Š]¤Ìºšu± &Î 6Ø ¬µÖZYøûî»/{îQåëÏúiéõV/\zù•áìsÎ-½ +°–/_›¹ìÆå–]¦ìRv¾^šuo,¸xJEéùÜs/\ñTJ€’½ë´-ÂwÂÃE—tÞ‚-ÍÇpîÿ»ŽÒ …Î_¬¡ÒlÞO®(†zø‘fƒnÀì¾Û®us¼Û'÷ªü£Ó™>éõ7Þ»îþɺé}fß½ªÿ|Õ Øƒ‹¿ùíïJSÁ’•ÙÏC,wÿ:ÖýLX©gaL_{Íu×Gv?“VýÖ‰«(Û|•á97èïò_ßöÛ°Êšk‡µ×ß8l°é–aýM¶Ë­´Z6™÷mŠ$  H@€$ðË\ÜL#Ñusä‚/V¾(J}ôÑxººE¹¼Åÿ1 ¹òÊ+«çÓqãÆ¥‡Sì3ÉWÊÈ ,öØcl¿ÞŸßþö·YžXÅm‘ üÞpà ³K(ˆ¯»îº¢`Ù¹Ûo¿=Û²4k2óotÕ]zÓ/`¹¬tŽÀÐGr:—c’€$0ÍØwŸ=K×ÎQßý^GÖV½öº—¿rP]Þ~éÚRL,PY‹7¯erιçU”uw—]núüégž~pR¹e^ÓM#QfìðÑÔ-í_ûz8íŒ3;j|®òqˆ s>r‡Cæ_`þ0÷Üs•&Õð+¯¼Rz½ÑÊ»ï}_‹øF¬ù:}¾ôÅýK‹ðúëo†6ß*`;a&سb©÷Li4LòY}µUK¯ç/`}ý7U×&Ê_Êñäɯ„cŽ;¾4Š5V_µiožÕS+ÏY\_©4Áa¾€²üöÿ\Ý\ì·ÿÿ†;þ|gÝ0.Òï|ûˆ£ê®‘Ý(ŽF×¹Í7*Û ^ÔwùU¿º&ì±×§ —à½ùÅ/¥£^v±nͳ$  H@€";ïüÏÿЏ…Þwß}³Ó(`8à€l¬–1ƒ›nº)¯n?ÿùÏg.¢Ÿ©xïµu&£FÅ*ñð¿äÝw—ÍžsÎ9ïA܇U󡇣ªn·Ùf›Ìu6'~ö³ŸeVÃì£$>òÈ#«×8ÇzËguVUùý«_ýŠÓ¥rÞyçU»ÅâoÕpþ…‡I/¿\7þf/òœïöɽëÉÌ3ÏV^iÅ¢K…çf­ü3;vÑE ¯qòÆ›n —\vEéõ~¹°Þ‡×®ÌÖS7;;îò‰€w‘v uúŸþìçíÜÞÒ=ƒÚæ[*ä€Äw9 GSÿ› óùë€Ô‚Ù”€$  H@@çyë:ûì³+ŸË¸;ì°C¦ E©ºà‚ f ß|óÍS¸sfMãÕV[-SŸþùÕ ÞqÇÙ>ŠàSN9%Œ;6[#8*©«“,Q 3†Çÿ ¸ž¾úê«Ã\.¿üòl-âýöÛ/l¼ñÆÕ»¾õ­oen³9ÁÌ—\rI ¸>äC²µŒ¹vÛm·ÔQŠÜ8£0f-è(¬cÜI™qƳèà‰%tþ‡õö"‹,Ruÿ=f̘)ÂpÏE]T×ewQÝÆòâRüŒ3Θ"^8㺻_Dr¿Ô„ù€$ð_ýÈ6áÃk¨.“N>5¬´Úšáºn o¼ñfݰ\|çw2 ¥M¶Ø&|ëðïÔ Ï`ÿw<¬%ÅD!;n¿]zjŠ}\ï´ëîáøœÔ´Õ'JºË®¸*¬þ¡uùçýÿ¡)"÷D)Ñ•5PŽ9êÈÒëñÂÍ·þ:s1ùÕƒ¿‘)ú›]£:ºçÞûVæ{ìý©Jý`ØsßÏT­ãÆŒ“èù–vù±v¨›.Øën´iCÅ]Œä¥I“²²®¼úõ×ßO»Ê 0᤾_·”LHØtËmk×?öøuÃÆ‹LÚøþ‰'…u7ܬ¡kþ½÷Ü=¬´â ñÖ¦¶q½#ÖüþÚ× «¬±vØûÓû…_^}m˜8ñ™–½<[ùgöäSÏÈžó{ïû{«¢ŒìðÑí¼7ZÍ ÿ`m·íÖuƒã-á¤ÿ;¥­ u#îàEfuç°o7Œ‘: <ͺ¾饗² «V\÷ªßÔ6ßþ€´w9®çëySˆÕpûïÿwÝJ@€$  H`ª&À8Ûk¯½–•±ÈЂë{ï½wxüñdz0£+ãi¬YŒaе×^Ž;nJ†í¶Û.Ì0à áÁ W\ñÿ']c‰ŒB¥).°‰ã²Ë.«Æ]%ïÁ\ ‡µ,î³ù_—16,”cˆãþûï»îºk¸«²De"üœC©hùüreûé§ŸP4§òâ‹/›  %Æ´/½ôÒô–Âý²5•‹Ož<¹îåÂÍv£p”1*„óéÀùÊÄï¼”•7†ƒm‘â9^ïõv†^'hz€$PŸ/‰œð½Šòa›ºn((>½ßþYd[n¾iXmÕU²5ã‹ù•W_ <òhøóiimÛŸžyzÀeåPd©%—ë­»NCË*\Pó[sõÕÂë¯Æ_<Ì=×\هțw,X´ÝÿÀášk¯õ(½?°òÊá·¿ûÏCÉûÔ~ï›m&V\Ù4cÁ}ÁE—~ÈÒK-™µ±ùÇÌFŽ™}ÀñA5ñ™gÃãOGŒ˜%Ë+ÿ½öÚëÙ è;+k7›_úæ/|î3YŸÞ03I€7\¿âšù;uûÖmg2ÕßþfXñýËW”Éÿ 3Tòù*ýRE!Î;ã¦[n óÍ7:œüÃÚž•d«åÝ®µFØgÏ=Âi?þIÝ{Y™íd×]vË.³tUY·éÝwßÍþÉöÙçÂßï ¢0¾¡î»Ëø™gš9<ñäSuÓkçâÔÒæÛ){?Þ3HïržËfäÕ×^m&˜a$  H@@•À¹ëÔ÷rR 莆H U”1ªêíŸøÄ'ªûE;(‘YO÷ϬmŒÜzë­•q„Š‚‡Ã;¬ð<'÷ßÿ°ÑFU–œ=ÜsÏ=™²·4práOúS–¬qWYe•ì ŠZ”«üã”@Éó—¾ô¥,ܶÛn[U„>ýôÓ!®kœDŸíÞ{ï½a³Í6˟Δà©"<Ày“M6‰‡Ù–t±°nVPª§.¾Ëîk6\z?yA™_&eå- ?ÜçU w ˜¾$ Xû\vÑùa‹m¶kh‰ÆíWV”Yü†*çŸ{vE»ÒP£É”õ€ªb¢Q„¿ûý¿våä“NÌÛ?²ƒ äfîýÉÝ3¥Ð·klãûÛ„¿~ƒ,3Uf[}Äaw»û4,Êš/øµ†áŠ 4;ç'gd³CÙo¤X/ŠÃsýO`»m· ¯¿þFøfÏ-X»—ßP¥Ñ÷=º+ÊP·”H£D>êˆo‡l³U×RCy|þ¹?­¬¹<èv?k›ïZ5¶ñ ¼Ëÿñî?š*Ûë}XåqS¤ $ H@˜v Y#N»4,y/ °þ°"i‘€ äi±Ö-³$00¾ä‚Ÿ‡¯|¹3îJ‹ ¾î:k‡ßÝzS梸èúPÎm´Áz႟ÿ´²ÄLC‰¦ô^7;ï¸}v·ÛSƒ²¡´°]¸€rçæë•¹kîBôSDùLeÍÔá–høÅý?×ñ¬à¶úÖ® Lž@Hëƒk­™íûgê%°ÉƆ«¯¸$à>¸[B_wÐW’råí·ÿㆽ[yŒñÒß_pÞ9Õ¾9žou;Çs„_ü쬊‹­‘­ÞÚwáYšâ˜£ŽÝèwþ3ì¢ðþþc‰A?Ôm”6ßmýÿÔò.ç™W$  H@@=¸®=òÈ#–ÈÝp)\/m¯M›hk¬ŒÛgEÓ"æüIM‹d,³$ „À¿ÿõ¯ä¨·»(¡X‹•õ3ø§„óο°#X`1áðo>¼Î‡:_Y$¬›xû¯o ßùî÷Âù^\¬¥ó¬úÍCª±î1Ë,aá…ÊÖMn)².þ׿ÿ­ÍY–Ìp¶-ò3,f¯½î†ð•ƒ ¯¾úZYVÛ>¿ÄûƇOí³Wèë"ž©Ï}öSa•¬>ý¹/t¤Ì(÷öøÄ®5 >ÒYñý+„³Ï9·mvéÿ®´¥N ëÆöR¦ÖôÞWi㿽åÆpÍuׇ¯üŽ´)êe÷ï’µÕvÜ@çëõ#Ûn:òècºâV+؃¿ö•LqŒ»øN“1n¼æª°ÇÞŸ®»öo½´ºñÜÔK¯ìZìwÖYûƒ™Û퇺 4ÖWþÜ~Ÿ#g›­šìÜóÌ)Ý‹úòN¾o¡ÍW¡TvzÝ÷¤i÷b¿Ÿßåc+Ï1­ó¾áúëõ•iH@€$0àP"óS$  H ûT wŸ±)H@@ Þúl ŠOW±nÁ— _øügÃU•õŽOøáZVRP–=wÿDØr‹ÍÂ2K/•YHö¢\X•|çðo…}öúd¸ìò+Ãi?>³eVVûï÷Ù°õ–›gn:óùfp~ñÅÆ…¿üõ®ü¥l½ß)NöèÄŒEÊì#G*¶û¥mÁ‹²7Ú SÒ\síõጟœÕr¥H×\}µ°ÍÖ[†5×X­FÑŸ†îý5*yüýonWWÊ{båyj4¸Ïïücæ ŸÞwï°ù¦—®óºÌRKæo Ôû¬m¸óžsÔ¨)âŠ'fœ¡½Oºyç-·š¥]tZê¥7à Q:¦y®ç• ÓéÁkÓ7 ›l´a¸ãÏwf®úÕ5ivšÚ_u•„]vÞ!¬]qÍ_¯Î›Š, „G‹ï²s¦à¥Ÿ¼î†ÃOöó!=çDÏ„žvØ>|pÍ5*ízD’bgvQž_vÑ/Â7ߎ>æ¸Ðªâuݯݳw]3%^aùåÂ5W]îºûžpîyç‡ /¾´™Ûªaèw˜ÃzØE ˜L5bÄ,S|Ì4ÓLö{›¯B«ìÔë{ºÑ×Å´ë­ç;wëƒÇx‹¶”£ßå3VÖ@>²ò ¸ËnŸ,Êvvnï=wL6S$  H@€$  H LW™•ßys–þ)Ÿ9‘€$0Ux¶âx„ûÃý>{ìñðüó/„+k ¾öúëáÝÊšssÎ9*,²ðBa±Šbõ}ãLJ1óî›ôçž><úèãaÂý÷‡'Ÿ|2¼ðÂKWÒ˜Êàø£>š Œ/²ðÂaüøÅÂ2K-•ïæ ïTÝPÚ,\Q½ùæWásgmm¶ŠÕ £Ñ£ç­´»²¶·à‚ „yç™'ÌRQb š¼ôÒKaÂßï>ôpxü‰'ÃÄgž WÖ0~ò©§xž]dáÌå÷øÅóT,ý Ô#€Ûè|(û=\±8}êé‰ghlÅ"ã¹æš3[/ë<ÚÔ"•ö•Z“Ö‹»S×&O~%<óì³aâÄg*íþ‰ìÙžôòËá7Þ¬é“yÞG]™²@X¸ò^!ÏcæSy6Ú›¼Ðnþãszß„¿WÞeùŒqõÞì=7~üâ™w…±‹.Úóüż4»}çw*“W ÷ßÿ`øûýduñüsŠw!ʵ¥*RP ÷³ B›ïg~ÝÈ[¿¼Ë©|ÛvÄÑá–_ÿ¦ZL&sÔ‘ÙD,¿ñªXÜ‘€$P—À¤I“²ë;î¸cÝp^”€$  H@eÎ?ÿüìÒœsÎY$;¯¹./J@€$  H@€$Ð ¯¿ñFxOÅZúí·ß ï}ï}3±±e3 H@½  ¹”MC€$0uhVÜ[“©›¹¥“€$  H@€$  H „îô‘#:ïò¾$IoÏ…H@IDATOK@€$  H@@†QÏ62í-€$  H@€$  H@€$  H@€$Ðy*;ÏÔ%  H@€$  H@€$  H@€$  $ÈYmfZ€$  H@€$  H@€$  H@@ç ¨@îö¦<<Px=ôÐCYâ´ÿ8 Ì5×\ 3sÓM7~Q–^zé°ûî»ÇÃÒ-ßšgžyfUùLštP˜}öÙKï´ ùïÞ¢~%~s¿øâ‹MoŽ9櫬²JX{íµ›VÔ7±:F€IžùË_²ø¨ß믿>¬°Â á=ïqU¯ŽA6" H@€$  H`ª"àKSUuZ˜i–\÷)õ ¼ýöÛÙÀíc=lR¦X1(ÿì³ÏN=…êqIx&yä‘ððÃW-ï{œ““€$0UXvÙe«å£Ï¥¿m$„»ï¾ûj‚ñ¾‹Rj.äøîyá…ªgçž{îiÖº¶•ïd¬¶o¼ñÆð­o}+\}õÕ~3V[Pÿì0q UãÅ¢ìÛÞïÿþ©7s" H@€$  -‡½)K -3Í4Sv_Ù îøR) Ç "Ö$EVéýÓú>nî.¿üòŒS³V?Ó:³A)ÿ%—\î¿ÿþ€%þ¡‡Z3¨8(eî|b™uÊ)§dÙØqÇÃÊ+¯<ÜY2} H@S%–X"û‰Š®{ï½7³t­WH–Ð`É“TpÓüÄO„qãÆ¥§§Øæ™gBú-¹ä’Kú~ü/%\€Çïf¾Ç±h-r}óÍ7Üdï²Ë.SðõÄðÀ{¬?r±Øb‹•zaòûøêÉ”%  H@€$ þ! ¹êœH !=öÛo¿Òp .üñU‹Jܲ9xUŠ«áxÞsÏ=Õpé Sõ¤;I€Áq,g‘fׄÈ‚v9Ó(2¢ø|Dn%  tŽîªY_÷µ×^Ë"}üñÇÃ?ÿùÏRÅ|ðÁÀzáy¹óÎ;*ÿþ÷¿×܆ëk%„‘#Gf®¼S V¸`yŒ[äk®¹&«—Èê®»îÊ&U-µÔRñ”Ûa&€ùË_þrömÏäÁ•VZ©0G~ÿbñ¤$  H@€$0 Ð…õ4Xéyê& §sõ‹û:j£DëŸxìvp `…-¬°Æ·n[¯K˜¡ŒP$  H {PXŽ?¾šV¯X·Ö“Ø7ç½Ðàu£H±ã¢_àâafy¼à‚ V§õ¢oÖ>^guÂá‡^SO°ºòÊ+ëòžÖyGù©¯µÖZ+|à(µ¬÷û8jÆ4%  H@€$ ~$ r?ÖŠy’@`…ƒfX¼Ì:묡“ë0¥¨¯¿þzf‘ƒEJ@¬C°Òé”`…“®H:Cø‘gX/y KÜ&¾üòË™ñaM1jÔ¨¶²H¾ø±>“ˆ«–”µ…QÎña=Õ͉ Xÿ°ŽõCz0mÄׄ©´›¿nµAž¹´­0àÙ®¥t;|R6eû´½ÔEêPž4Ýx–‹ÊЩ6_w§Ï‘×·Þz+ëƒyÆX“t(¼»ÕncÇsH@ŸÜ(Ÿi^†Ò÷ÀœçNyá¹i”~¸äO·Þ(ã»V¼WëõAéóAøf¸–);=ýt½ü´zºÏÞ£>š³Ïs@BàÆÒe÷Òæqaåq£÷i ›¶ÓN÷ã­ö-é÷ùËo_;Rï9åÚÇ?þñL‘Ÿïzkì–¥OÑ®©‹f¾¹Ó²’îp ’ïh-Oi?ú¸2Χm®Ùï¿Fqr½Sßÿ¬›fòm H@€$  H@&04mH§sc|À°``r„ áüc6@ÉàG^æ™gž°Á”º~ˇotÌЩ§žZPgÀí‹_üb©2”ü±.q‘yÛb‹-ÂP\.2ðzõÕWW`É?\¾ÿýïgaì# ÌbÅ‹"‰Š‹¿ýíoá†nO>ùäÁPq+kÇ¢´cýÞ‡~xŠøP2®·Þzaíµ×®«àF8ßxãá÷¿ÿ}á~„Yxá…³z^qų@Î †XÚüéOÊX¥aTÅÒcë­·q ïôz;û0 Žî»ï¾)Ò#>¬®XÛn•UVÉÚuA½1ÿË_þ2°>d:>úè^ÔíÇ>ö±)¬‰â=Cmƒäå§?ýixê©§2E×¾ð…lMrøÝtÓMÙL+nçŸþ°ýöÛ‡f¬ÁÚáÓi´å¹»îºë¦°>>÷Üs3Åf8'&ì½÷Þ…V>„£ýýæ7¿)l 8oºé¦aÕUW­©›Fù«w}¨mþ¶ÛnËžeÚq½²¥yà¹?óÌ3³6ɳ°ÿþûO1¥çøÃ¬DÙóéO:³Zƒóï~÷»B>Ë.»lØn»íZšèÑévû¹Ï}.ë§éÃ/¾øâìÝ‘–}ùå—»îºkzªºO[Çåkú,V/Vvè{èÇXŠ¡LâsMúío›M^ɇ]d‘EÂf›mÖÐm/÷ñ\vâýWTŸX‘òn¹ôÒKkt¤»ÓN;Mñ>%ú¸?üá…Œe“…êµËnöÓL8ᄲgþ“wïâf„~ü /ÌÞõú^Úï~\çÇ÷p?}äV[m•õýéùü~þ™di”òõ$­Ó²<¦aâsÜj½—åu‹‰+ZcI¼æškÇs yDès6ß|ópÑEeçàÆÒ|' 老_f™eêö¿êÇóïÄvûúÊÊsœêd5Öë®»n˜o¾ùò—;rŒ²”ï%ú7„I(„y.£Üzë­5’adzO_Nùõ«_eïÃXÇ„§]tÐA…ïÐ~ú$ÿ·ß~{ lL",¾Ï)+ßeeŠîËŸÊ÷MÚÎàŸÿ†ïÔ÷§ê&_v%  H@€$  ôš€ ä^7= ô1‰'fJŒF–/¼ðBøÅ/~n¹å–À _T”¶S4=öØÉ?øÁBå1?gŸ}v@![&äí¬³ÎÊ”†»í¶[á [Ù½œ衇Âi§Vå¿TRKô<û à¢$L׉͇ÁèüóÏÏ”RŸÿüçZú0èˆR¡LÈ R]ÄW6(þç?ÿ9K·,žxWÏüPôzè¡…QRÀ>”É!ÍÈ_ÿú×pÞyç2÷—•™öUÔ.»ÝOÓ¦éPò"(ô7ÞxãlâDÌsÑ–¼2 >W°*RŽ7z÷7uÈd4”žX‚¢p-’ü3Y4Q._Z§\+z?¤aÚ©÷|šéñì³Ïžq‰ç˜@FEß_(ˆ£À€gˆ~>íëÃþp!Þ™©¼ï}ïKkö;ݧïÄvúÊý³Ÿý¬°ý“qÚæµ×^›MšÛh£jÊÒÉ&?E¾¿§íÐÞžÞôceí°èynô<ôò[÷“Ghõ„þšvˆ’ù€¨Qª×»/½Ö‰ï›ØÎˆ7ý†§=wâû¿Su“–Û} H@€$  H@ÃE xde¸rcºÀ°`P•м0ø…å@^ÀÀ ƒ9í ƒMÇw\Í ÙꫯžYåãd à¼òk¬ó–­„CS¤èÊÇãú/_Îôz~??0˜^¿ûî»§PÃqÎ9çLƒeû h•)ab`¬ŽóÊc¬L, BòÈ#¬q#ãÁú ¥u^pJþò, W¶VÑ ¸å9å‰0„Åõf»Âàc‘ò8r-ª;òŽ”)ÓËò’_;²Óm0æ•Áa¬OSå1õŠËÍ¢öuýõ×gèEù Ÿ¢øòçPä),òáâ1Ïg,g<‡Å;í ß×Ä~&ßþx6Ž:ꨚÞW³ÛNµù|YòÇÍä§è¸Æó(èëRelà’Îi;?ùÉO}M™t³Ý¢$d"@‘‚ƒüŒ;¶&[(°¾óï*óÏ7bÉW¦<æ:JÙT‘JÛ¤/(R@Þu×]ÙDî+’N¾ÿÒú¤é·ë)S¯X€þüç?¯aJß¼þúë‡-·Ü2”)ôƒÕ6–¿±-Årö¢ŸFQ†Åxžïz“§b8”iXýEYh¡…2Oñ˜¶Åäšü»ëñ•//+¾÷½ï5ThÅ4ò÷Çóé6­Óô|ºŸ†iµÞÓxŠöÉã’K.Y½Dü(îòÂóž*i<[L¤ŠòÜsÏ~ÀËæ(|3&Öl»ÑÇz ­ö-L:çœsjž2Œ——X æ»†ï#,Þ{!ÔÊÜTb99G[=ùä“kúû4,–Òù>°Ÿ¾™TÆÄ¶¼ò8¾Ïóï,ÊF™Šúè´ÜEûú¾Iù§ûøþïTÝ•ßs€$  H@€†ƒ€ÈÃAÝ4%Ч]tÑl@–Á5¬µpÈàcT1¨‡ò wÌQp Ì vÑ Q S´ePÞh™G˜÷¿ÿýá#ùHQðÌ%!ƒžQP¦ì±Ç5®*4e ™¸â±ÄMµãýe[¯Qp Xâàzaéÿ÷Ûr»Ç½Ûl³MXmµÕª? ¶¡PHY¢äâó¼ `À6 qn»í¶Yœq å Ê$êVl¸N¥K*XâàÆ/UVR/Xîá>…oC¬y°L… ´‡¨ ÂÊeuêN«ìC9¤Ú®ÒûëíSž” , —[n¹*Wî'_¤GÝ£Zb‰%²h±¸â‡\qÅÙuöQÔâ"2?H˵Tp‹Ùí6ËÄ`¬×Èë˜(´…•VZ)ŒMtCåã®·¥^¿ýíogAh#LRˆŠ`Ü)ÓÆë H¸ðM…2ì¸ãŽ5ÖH(Ói'©•ÖÿýßÿµÕnH«Sm>Íw/öQ~àH,sé—"Îóœc…Ÿ»–m7Ûmú<âv‡vÈ\EÓ&°”Äj2 íK`¶QhïýèG³¾Ÿ÷ ý"è{±J¥_jFxÿ`qŠÛú(´Ï .¸ ¦ïÁ2lÝu×-äÔ­÷Š>QÆŸ½˜HDÿ'”ÞïØüäúÓ}èCñölŸ{˜tÛ}×—¿üåÂrÅþ£Ae§[ý4®i±ðŒ}uÈ{=öeiâ>ßi›ÀIžå4Pþ§‚bÜcÇö7¼\ ¼‰qÑŽ°FÅB8¤•zo6<㼓ÊÌ»·Ý©Ð6Òõgá`•MÝ 0â™ï¯iO© ž§øý—Ýøß?½èÇ[é[xÖéçRAñ½çž{Öx®xà25yegzßP÷©—ÔŠ›¾‰‰erçwV/Ñîù®£ÎàγÛs Ôoß‚(îiëQhg¸‘O'JÒÏ=ûì³áŽ;îÈ&2†¾¿CÚ&â·R³ßͤ5ÔïÿNÖM3ù5Œ$  H@€$ ^PÜ Ê¦!!Ààko¢œE©–®£lÄÅ*.èuž~úéÒµbóqÄ{pw—®“ÆšÅ(‹„pé ƒq¸¿Ël2Äy\ìÆl(Âóa‹ÒÉŸËß“?·/:†å8…õ+qÁ’²¤VÜ çÈ0f}á(Ôë¨æŽ9þÊW¾Ž9æ˜*[”ŽX)ÅõæÜdP2 ë*­áLýS'õÖ’Æ%t:¸‰’<¿&#ƒ§(úQä0xˆ0˜ˆR 6æ©lË %ù‚²ªh}TY ŒçÇã}lSe1J˜Ö“^´AXÑV°ÚM…òì³Ï>5 ¹ÎdŽtr@'ù¤é—íÃ0å•9eá9O›IëeƒÍy¡]~ýë_?úѪk‡Ónx>Š&3äïO;ÙæÓx»½¥) ”1iÒ?0á 8±¥¿cýÉ<›^´[ò”wLÿ–ïŸPða­…¾µîÓöÎ}X§ñ[gubк[”\EëlÓ‡Ñ÷°ìV~œðNQÔoÀ¹Û2˜ò¦ïZÚxªÀ#Ÿ©ò8‚`=ÕO|â™åb,¨˜T’—^öÓ”yT 1‰‹6˜®ÿšæg3EŸ‚»å(¼_È*Là]Ÿ uÇZé¤W¾Q”¤L¬Ê·ÅôÞ^ì7ª÷fóÀ$ÚLT€Â9ÿÌÓÖc —èÞ~ôèÑÙwHT.óM•G2-ÆMžÊÞÿ½ìÇ›é[Xš"~ó‘ﱕIIûî»ïJJúÔo~ó›5}'á;)xƒ@Y…‰yù><^K·Eýaþ¹éÇoA&jDÁª¸Èu<–½¬Eϯl’hŒ£lÛëïž³TòÇé5ö;Y7ù¸=–€$  H@€$0œZ›þ;œ95m H '°H´‹e@;µ(Z °è>Î1°‰Z:ÀÆ`ë— ²aÅ”**?ö±•*„É?ÖIQ°L‰Êƒx®—Ûí·ß~ åqš>[©kåtð6†Ã¥dÊë²qêe§vŠ·f¼ë¹NMÓ®ÞÔÄ\S·¹(µê)„7ß|ó¥-yi6‘dVçii4 ×Lœ„)bž¿·m…xªLËçKÍ´¾X3* nðÉç£ÝcòšZ¢cu‰a™Ð–Q ¦õÌ„fê«,NΧ ë…Îk”~.­Ï4?0aRAzrþ™êE»ÅÒ¯Ñzóäëºë®«|£¬­×Þ«ëìDNlË„¾'å”*šò÷tóý‡÷ƒ"epš–…HóWÏeLjá]´4ÀpôÓÑËåÊ+ˆÓ²²²‹Ù((ÌÓ‰(X'§“Pxæ•Çñ^¶Ôß'?ùÉê)ÒV·Õ“=Þi¦Þ›ÍЏôÝ—´?¤¼é{(&ž‘”Ýc=6…kåÔ}5ÏLjÑóØË~¼Ù¾…É)Q('“+ÊúúN”œíHú.Êß{&Æá~>Ö/ËK ÇõÿùŸÿiØöã·`:/–§[اýx½ºèFúâìfÝ4JÛë€$  H@€ºI |Ä­›©·$0аªm4 VT@ØÎ8ãŒÀÀe\ÆYŠÄë(R÷• (2p^OX2•t@>=ßí}Ö°ž©' ˆ5Rh¥ÂpÇj³žÀ(\K˜¹ú‹‚Õƒô­ ÊŠ”+ƒ¤õëZ¬§¢'ÚC+Â=©‚ «æt"B+qµ¶m:)[Û4敺O•ôäëÑG—3EÂpð©f Á ï4ë®»nÃ~#ëàFÁÅjѺŸñzÙ¶m¾,înœçYᙩ'(Ëè?£ ˆK×îE»%m&ɤû1?é·úÑò‘óXŠ’ÿ¡ œR%jQ|ô¯Tr´óþã`-й«ÌtYúG,®£`Í~«¥ë çßÔC: ÅsÑ3ÚË~¼™¾…ò¦} ëD×{n`ƒ>m£‘W£-ùHËz¾=ð¾Ã÷)ß"|pæF;mÏôsEÞòéÐ7¤Kˆä¯Çã~üLûVÞ?—]vYÍ3ó>Ôíp}ÿ5›ïN×M³éN€$  H@@· ¨@î6aã—ÀTB€Á~X1H™’5SD,g.¿üòšJŸùÌgj8óq½ùæ›Õu¹Æ€&¢1?ù-Õy….K‡CX{7Uä¶“8ãV2 ÖY JçËs·ÇQ°RŠŠ; S+$âgýÔã?>°>`³’*.‰×…°Oó‘îšQ°ŒK]iÇóõ¶´¡T Íàù÷¿ÿýl­Üv”ŠõÒJ¯õ¢ .¾øâMµ&G¤ ¸F.>1ýFÛ´“oÊÜŒ¤JÚ+Vš­iu¢Í·’æPÃ6£t \é„ÒLÛC/Ú-VäéúÌeåFÉ•¾3⺬eá›=ß §fãª.öeí¾ÿ˜ÑÌ»€t¢P—ôqeO\^GI9ñÜpôÓôO©¥5}=JǼðNbýÔ(¼C\pÁx˜µ—Tв×Ð2ŒÌT)‚2ø«_ýjŒ¦¯·é@íP2š–…kö"é€2÷aÅ…xjÝ…Rëp¬`pþ| 0€[&iÙn¶Þ[I—g‡ ÑcŠ_Ø0a$*†‰EqÑs†‹%$V­(÷Òõéá^4É£—ýx³} åO%}NÒóÚgWLƒ<Âëy&  ,M—h&ÍfË û~ü¤ŒLÜc½í_üâ5ëj“g–HáG߆Kò¼}3ŒbÚs¯¿ÿbÚõ¶Ý¨›zéyM€$  H@@/ ôß^/KoZ@•®O>ùäêqºƒ…ÖXzðcÀ+u=™†meÿì³Ï_ûÚ×ê®E‡ëIgRa°.Zߤç‹öÉëp å¥s 2ø V‡­ ¦Sþ8àãáxÝÊ´¸ÅÊíæ›ož‚)³ßýîw³µ;7Ø`ƒxkVyÅöé`5pÉé£lGDÜi§²|]wÝuÙàd¾ÜqÇ™‚y÷ÝwÒ€%ù´6Øk>ÍÖ! ¤(ÍšÇðé¶]¥ÌPÚ|š~«ûC)k«i¥áû©Ý¦k3§yì—ýáxÿ•6Š’å‡?üaõòÕW_Möa=[³=ôP+[²†* œT至ŸæÝȼÇè“×^{í,‹<©µ,ÊʼGîé„ëi801j¨B¿“Ï 5Îvï_z饫 dòÅ„ò†‹õ(y×Âñ<ŠÎÔ£k·Â/1Q˜4Vf;ÜýxÌcÜæ¿âùnlYå ƒjé[§SùèÇoÁ´lLýÆ7¾‘}ñ]öÒK/¥—šÎ<óÌ@ÛýøÇ?žµÁšMôã÷M·ê¦I$“€$  H@€$ÐU*»Š×È%0€Ã}q*¸>Ü|óͳuJóŠA”— þ¶ªaà’8¬]PZéK_*cMDŒbZ(WZi¥4«Sõ>½0‹ƒ¤¬ïWæÒ´°]ýõ³ cþÒdâä ûÍ6Û,K%îR£•Üp ª2ÈM{@á‚¢âú믩¥#í‹˽÷Þ»i²E {Ñ©çv¤Þ}½âÓL¾óm†{šUÆä7©ÛæfÒ·i§Íçãhå8]£´•ûÚ ç(½h·1­F[¬Î˜¨ÒÒ«÷_³eǂϬMŸ ©Ånצ›nšMJϱŸæzÝO­Xµbu=°6*–Š|O O'å×ò&ÿôm(1£›ëÔU1×ëIü^ éÍ7ß|õ‚7u÷]»“WšJ …@¼©ßØ>˜‘ e.sŸ8ßwq=]<Îо&Ož\‚É Ä‘—|›âzÌC>lþ¸ÓýxŒ?í[È_½wb¼g(ÛfË;”4Šî¥\ýö-˜Ï'üù>燙>Ÿç>eÆ24¬#½ÿþû¶±|œeÇýô}Óíº)cày H@€$  H@½ 0åè@/R5 H ¯0ø˜Z´2ðÈàÎûÞ÷¾ÂžvQQ|îµ×^aÇw¬q‰Œ…Ô¥—^ZÊ#?è˜Wn–Þ8•^À 0ŠÑn.«÷ÜsÏpàfî«Ó4~ýë_g.Hã¹´  €‰ƒüñz/· Þ-¿üòá‹_üb¦,ίLû ³^´Áfù1П–¥hÝÓ<ûnóɧWvœö1X±ÅIeáãùn*nZió1?­náߪ4k1™¶ïS·³½h·­–‹ð(òngÛ‰§S÷ôâý×j^y_æû±4”€(]>øà°nÅ“D™ g?+ä(¼ëã”JQðDÑÌz±­¼ûPPG¡½¥ åx¾Õ-ÏW¿HÞB˜ç)¨‚¼̂˜rð¾ŒòÜsÏe.­Ó¶Roi‘~ìÇcYx7>ýôÓñ°î¶HA^÷†ÿ^ì—vÐÊóÐL¹Ò0x/ÒF·ÝvÛpØa‡…ÕV[->›|˜>£5[<è—ï›4Ûݬ›4÷%  H@€$  ô‚€ ä^P6 ô9Ôz…Á±í¶Ûn —ÇiPè´: »ÜrËeq2h·Ï>ûÔX‰üá¨qg™¦5óÌ3gn³ã¹Gy¤o¬€bžº¹¥>Rמ¸ôì¶;XþöÛo¿°ÆkT‹ÆÀ,ƒbQRw© Ðwj00Æßî–ɇrHÅ–0©kÏVãîEÄ ¬™gêÎ;ï¬Q §ƒþÍ”«|šI—0ãÆ«¥=5»Öz\¯3ÞÜ —ôÍ´ù˜~ÜbÉÜŒ  iUR÷¾e÷òÜ¥Š8Âq.J/ÚmL«Ñ–¼¤‚Z¿H/Þ­”•:üÑ~T°C_KŸvÔQG…o~ó›áðÃÏ\ŲÆ;¾õd¸ûéUVY¥ú®§\xáÙO'‚­¸âŠ…kõòîC‘…w_j%Ïç·¤“ÆÏ7Gºör>|³Ç¸‰î¡L‹/¾x5;¬_œ¾Ÿ™€POщ…q¼N}¤ÞPÈÕ[Ç·ßúñü¸6tNÉN;ýrIT=9ݯ߂ Ï{’ÿ)p[J7ÞÃõ}3u“²t_€$  H@@7 ¨@î&]ã–À€ˆ‰d—ýFŠ‘Ûo¿½å’¥Š.@X"§‚»ÎI“&¥§²}ò’"£RM…B=r£öÞ‹6ÈóÁäˆzBÝÿîw¿«¡MŽ­¸‰mUZåÓlüži˜[n¹¥FáY”eNûîÇ5s·¤^›'ÍÔú…Vj\”'¬¬Qî´*(ƒÒµF‹îÇ5pªüDI–º÷îE»-ÊWÑ9,"SÄýë_k\ÝÓ«s½xÿµRêõ©§žÊnáYýìg?[µ&e­ùFýUšÖp÷ÓXÁâb8 “AxÒwI:Q)†‹Ûü»/í b˜ü+縼×pלŸÀ¦Ïû¡‘E¨žìÀN7¾ošùþ®ºé2£€$  H@€$P—€ äºx¼(iƒ@:؆¦ž•–¦q ã¡Ðyÿûß>ðT£ ÝSN9¥pà¥N*çŸ~Íqz­[ûä/ºßìVeñâþ/ Å µl=̲8Òói}§çóû¸MÃŽ5ª„ÀÔ Åþ…^ØP!X Í4?õ¢HÝX2PYÏRE`=3éô¢ ^tÑE5Š•|ù~õ«_U×åŠÔyæ™§&X7øÔ$;@ù%UfÆséeRªÐBiqÛm·¥A¦Ø‡IºV*.qÛxn–K½6OæPFE¡OÈ[Çkq{Ùe—µ5±‚¸¹·Là~öÙg×Ä ›TAϽ½h·eyLÏSg©¢òåóŸ†ïå~Ú6ÈW/ÞõÊÇsA>¢¤í?žkv;\ýtš¿uÖY§zÈ;ôòË/¯óNI•JÕ ÿÝA)ƒÒ< –²Q¹Ï¥[ÃguVz*l²É&UkÛxj:q€%ê ^RðdÑO‚%0ʲT(IFžžbŸûð ƒD±ï@áÏMqcåÄpöãEùAÙ*ÓQ_{íµEA«çhƒés_½Ðç;ýø-²ô;  !aÒg(}®ËîÉŸo¶ÎZùþ˧QtLÜèû¿ÓuC>ø¦:î¸ã2ïçœsNÍ·PQ>=' H@€$  H jGº‘‚qJ@}O UêÙ3Ï<3 TK…¬N;í´ôôö?úцÔ-JHFya€™õ˜£0˜süñLJn¸¡PáFÞðýþ÷¿Ž=öØšÁøG;ÛŸÿüçU+Ÿvîo÷H7ÝtÓšÛQÖ¢€ÁZ-/  Þwß}áŒ3ÎtPMñ~ðƒ„ï~÷»EtÙZ«Xd¡Ðƒ (§®´Is«­¶ªIúÏþsÆ;¼‹Þ~ûíl0Œ|ík_ ÷ÜsO¼Ôô%ï7¾ñ¬\¬÷˜Z‘ÅHÈ/åºâŠ+â©LùÇ«'“Úu›*m’ËÙn/Ú íÿÈ#œBAB™.¾øâWr I¥[|Ò4òû©¢ëèF®ÌwØa‡¥Ç•W^.¹ä’)Øc}K_sÇwT“Déñá¸zÜìN'Ûyе¢aÃ3üä“OVo‡Íꫯ^=Ž;½h·1­FÛu×]·FÁÍ3|â‰'Ö(b(QQ ßxãñT×¶Ãõþ++“b£O:úè£Ã©§ž~ñ‹_ÔüP(0™êüci?N½î§óåZd‘Eªxxéç¢|ðƒ¬éâù¸¥]ç½IÐö‹&nÐfè?SO&´ÿt¢SŒ×Þ©U2ï;Þyïú^ú¨~&E¥“ºÈ|±>®÷¾‹å`_¼‡ ”v×Èz™{†£Ï2[ò‡¾%¬Å©·ü;oCÞ+ô­ƒ(ýø-xÕUWek±3¹#}¶S¾pç{2 “º×OÖíÇ÷Mš—Fßÿ¬Ò¥í2Wëpå›™I„Š$  H@€$ ^hn¿^çÊô$ žXb‰%2%[ÜAAÁ@,® de`w NvRÞwß}Ã1ÇSèC ‰²x¥•VªIj×]wÍ¡‚B›ƒÄXè¢Le %Í'nÓãxo3[”EÜ]CÂåˆ#ŽÈ¸0àŠ’ˆëŸùÌgê‚7“V£0k®¹f¦Fé%1?â° " ÔÅz$©ÛÝx/yG!àöKVÄ Ò=öØcS¸Ï]yå•§P Ã}³Í6«Ô‚¥VPĉ‚š:#o©å)½^¶OyXã0®sHüFŒ‘Õ?ëêæ·Þzë)êž(dcÛ ¾Ã;,Ì;ï¼™…+ …µÖZ«Fqß‹6'$Ô)ŠÔq^±e^:©"òêŸ_½-DX~ÅõzaÉà<.EQ`PÇ/¼ðB8ðÀ«îRicÛn»m6¸ãFÄ„ÊC;F„åM^>ö± i-ÓN´yÚ ÇTQŽE2çé‡X+5UîæËÑÊ1h—ôŸÆ:6¶ý4”„eë¼ö¢Ý¦y)Û§nY ó‚ .¨ÁÕ0“YbFž*—_~ùjØní ×û¯¬<<#<ß<÷Qê­Î;“‰Wxô€o^y8ýtÌ7[ÞóXÇ畜gýãF‚¢©Ò…îÕW_)‡yc•œ_Ó–øwß}÷)úþ˜§õÖ[¯&OÄO_ÆsLÐyÎã;¢Q>{}¾kátYòÐ SÂE×Ï|/Ä÷1ý}\#Î~¼(o´qÚ“y¢ðNarÏ7¬øáÛfХ߾aË7×/ùËìÇ·mˆ>ï¾¥Ò>þL|ˆð­ÔG/¿oÚùþïdÝÐ^Óoy8¥ÿÿ´ÂͰ€$  H@€†B@òPèy¯ú@;ƒ Àî²Ë.á'?ùIM‰ø)(6¹Ÿm&/X ï´ÓN™õOL  ƒQPVa¹Šutª¼ázºÞa ·q`4·²eë§Ÿþô§ÕÛ(ë“F!þ´œé~ ÓhÛÌ= œí½÷ÞÙ€w~-F”¶üš•¼Õ1J©zn[hÆZ¼H°e ðÜsÏ­QÜ¢M9åïm§^ŒÌ+‡QPò+“u+–I+¬°Â—iwXl¦kjÂ%Ísži7Û &˜¤íõê”ò LÍK'ùäã.;ÞrË-ý÷Þ[£àN•§´Ûü (®a*”xî¿ÿþÂdx÷Úk¯BK Nv²ÍÓW~ï{ß«ÖÉ?òBÞ?þñgÏG´˜oô¼ÃŒ¶‰b=†¥/.ëQȧî¡óyèt»yʧÓÌ1JNòƒõlOY{ÌÒ¸ÓûÒóeû<õîÎ÷_Qž™$TÏMsÑ=œÃZ7«¬™L»K¥—ýtšnÜ_e•U²É^i}¢¨­·´@¼—íÎ;ïœ)9S¥:Ï\™' ÞILìŠëü¦qÅ}\k3#”E;É_Äð¼QP6re[¯­Å¸:µÅZ8U 3y`ìØ±MEÏÄÀñãÇ×LT N8ߌt£ ;ÞE”?ý>"¾¢µŽy>˜\À·]l“eiçÏç›aÕ(L+qöÛ·`þýÎsÉwTú-•–ŸI Ÿþô§§è£Ò0Eûü¾i†7m¤ÕïÿNÖMƒfò]tŸç$  H@€$  …Àô߬ÈP"ð^ H ¿`„*²À 4=Ëe-–>(âýù’ß'?ùÉlÐKÕ8xË}Xǥ žQá·êª«Ö(„Ó°X`¡€ J„A¬‰°zM…(4œÊ+…Ò°XA`‰Ã /Ö2í k 2ÈÊ d~ Œ8‰KUŽñ#¿E]4³$Ë.Ôùs÷ÝwW-4ÕVšðf;oÕ‘&A~°¼A¹ÄZ¹1l±¬Àªºžâ•¸p¥ ?ÖQ÷§iÄ}aýƒuD¬Ãx-¿%Î7Þ8«Û¼’#6ÌÀ#iQîÈ8&SvˆaU& ¾£`@qY40Ç@<–€©t² ¢ ŒÖíÔ;ƒªX½¹'´éwÜ1l¸á†…õÑi>i¹ËöñP€"Ë®¢IðBy•º‹%.Øò,Ófê)dP¤~êSŸ*í;Êò•žït›‡3Ê'Ú å.j;¤OÛÛgŸ}²çèæ›oÎúÂ2ô—¸ý%̰*†M~"C,Ïñ7ãr¶“í¶>.æ™-Ï0}&Ïp½É?X©­¿þú5‘ù÷ ŠÉF“Ô?ï"VͼsRéöû¯™|’,ÙqóË„¼/»ì²™¥?ÏLüч³Ž/ýEú^‚)ïÇ"&½ê§³ŒçþðÌð½@~£Ð¾‹ò¯§[8ð<᎚oƒ²þŸÉ(™”–ïsÒøØ'N¾1¨{žã”cOLá]¾«‹ê´ö™¦Õê>ï/”Ú±ßà[…|5+(‹£ îY·2áŠwQ³B{ìd?>Ô¾…ï#ž &”Õ'Ïï¾YQ6Ó/Ð?RvÚi^Ò:ÏïåÃ6{Ì$&a"íÆÙ/ß‚´Ú=Ïeìc³‚åþPN¾ývÛm·ì[&w¹áa'¿ošmgô™­|ÿÇB µnˆ‡¾ìoû[M_‡…3“k H@`,)zweü# H@€ˆÿ73Þ\O¦« |vÖ'm½Ô¼& 8°»,ÆlcÛOó‰5+Ê”q ¨²»ÔN Ê”9 º2¸Ã>i —ð# [80Nù4'O¸¥f€¼‘àÖ·ß(ã)°£¾½@Šâf(ñbF¼X‘~ÍZ7Åž#ꂼSÿ1·’íœ ðã>¢Øh¦ µÛIó„N¨*а*Ʋ5 naH 0§Ly¥W [´í$Ÿ¢ø‹ÎÁ‚ (Ô7yáÈà|=!¯©Råm…ÒF÷Ö‹·ìZ'Û<õH¿@œ±ÍÑxnæù‹yäY>üðëÖp(À¢ø HæY"N¬ÔQ¥ïi·ÝÆüvjËÇ*Ö¶iÆ{~íô?ÈWdÓë÷ %ּނÂÅ%ÏS=™0aB¶VfÌo¾/)º—6Õ‹~:¦MÞŽ=öØêdúØC9¤úÌÄpÍny^è3x&( ñó¾i¥Ì§Å3̳yÓµú.ÉÇ9-÷ºoÄ–w(¿i¡>ûå[¾“o2¾¥àÎ÷$ý9ß§¼Ó;%´µN}ÿ5›§v¿ÿ‡R7ðà ;혬2[‘€$ ĉä|¯(€$  H üï†à¥³ž¨@®GÇk€$ .@áQOÜ…$² ÔS ÷q¶ÍZ àN7ºAgrÀPU~ÕK†¾äÈ#¬Z÷6£@®_7®¡|9þøã«Qãµ€õš H@€$ Ö ¨@n™wH@€$PK Yrs ]ÕÆí‘$  H@€$Ð(Ó%°Ø‹–“ÍDE^âê7ÁÍr¬èqŪH@€$  H Ó˜˜Ë·q3ÞÄ:v'ãj9ðÄÂ$N„ÿ-XþH‘€$  ´C@r;Ô¼G€$  H@] ×´m&j\¹2À¥•5lã=ÝÜâÖöÏþs5‰VÝñWotG€$  H`š!À²=qŸôÛ˜I–,'†ûn–½I—%  H@€ºG·Ñ©â³ÓJäÔòE0$óVÂXîâ‡_^òËÂä¯3á1 ñ÷ZøŸ/º§N­Œóù¨WŽfãÈÇé±$  H ]*Û%ç}€$ !Xi¥•³Ï>›ý¾üòË!&ot3ÏùÄ“OÞkÇé/†'!,ƒSå1×ðE®¿ùQ®¿ÿýïÙe¬—Xb‰|ÐÒãNÄ#ïFcÜn%  H`ê# òÔW§–H€$  H@€$  H@@Ç D%rÞªv¨–ÈãÆ«±ÔÅÒ%í=÷Ü“YÅÂ9…€»è"Á=u”YgµFyÌùùæ›/[_9†yùå—›²B&|ºÆ3œÚ‘NÄÑÍ2¶S&ï‘€$ þ& ¹¿ëÇÜI@€$  H@€$  H@èÝP"c1¼Ì2Ë”·© ðeÍàGy$s*RÓpCÙçwÂ[o½Ub¡…ªî§;(‘£ .SFÇ0q[dñ¯5»jÝ.c³å0œ$  ]XN]™S H@€$  H@€$  H@ÃN *‘'L˜X·8J´DÆýsº¶q¼^o;ÝtÓ…ñãLJɓ'‡çŸ>¼ùæ›™ êxǸ£^xá…k¬ãõv·X;§–ÁX>“—¼¤Êk”ÇägöÙgÏëËãi¡Œ} ÞLI@`*¸ò̺$  H@€$  H@€$ á •È÷Þ{oMò(cüñl½áfh}ø™õ‡ù!Ï<óLx饗ªn ‰û‰'ž³Í6[˜qÆkÒm÷ oÝÛ¬»ìf-ÛÍW'ï›ÊØI^Æ% H@!èÂÚV  H@€$  H@€$  H@-xê©§ ï9rdhGyœl̘1™kë9眳z %òsÏ=W=îÆN‘rš×óJÙôú ìO e„z0€ú•@ëSÀúµ$æK€$  H@€$  H@€zBà±ÇËÜMçÃzÖÜV¿ýöÛá7ÞÈ¢ÛN¦A\(…—Zj©Ž(¿;·NÅ7-”±S¬ŒGÀ´L@ äi¹ö-»$  H@€$  H@€$  ôRy³–®7Ü ëæoꊚýtMçfзÓB½ŽÌ¿$ ~# ¹ßjÄüH@€$  H@€$  H@èSá<E·¬ŽguÖ‹ã‰'v|#·ÑÍ$ÜN½,c3e0Œ$  ô?Èý_GæP€$  H@€$  H@À°è†òxÒ¤IáÙgŸ ¬m\&¬yüꫯV/Ï4ÓLÕýfw°ÂMãˆ÷¡M­›_yå•PO‰ÌõwÞy'ÞÞp›Zÿrß»ï¾Ûðž|€¡ÆÑí2æóë±$  >×@ü:´€$  H@€$  H@€ºJ Êc2üâ‹/fÖÅ(‘gžyæì‡‚xúé§ÏÖ=~ýõ×k”®œŸo¾ùš.kj±ûä“Ofqâ›5•Gf›m¶°à‚ ÃÑ}õóÏ?Ÿ­ïÌzÎÊí·Þz+¼ùæ›Y˜9çœ3°.s3BZä8P?øàƒažyæÉΡP3fL¶ör½¸:G7ËX/ï^“€$ Á$ y0ëÍ\K@€$  H@€$  H@è n)ó™G©Ë¯LPÄ.²È"5.§ËÂržðsÍ5WfáÌ1J\¬™£ 0Füž÷¼',¶Øbáᇮ*‘Qî¢H.’zÖÒùð(ÅIãµ×^Ë.aœZ8s-*ªó÷ÆãNÄÑÍ2Æ|º•€$ ©‡€.¬§žº´$€$  H@€$  H@€:JËàÉ“'O'JÏE]tŠó­ž žF.©Q~n¹å–«q7O+µ6Ž×°VÆâ·H°fŽ2bĈ°Ì2Ë4TæÎ2Ë, ÃÄ8ãvܸqaäÈ‘ñ°f[¤Œ.*G'âèfk å$  <é*/¨òÅ%¾x@€$  H@€$  H@Àà`­`¤LÙ­¾üòËáñǯ‰¾SÊãšH+éú¸mÆ ¥gºFqþžfÇ]6ñ²Òëß27ÖÂ(¯‘gœ1Ì1Ç™UsÙ=Îc]MI›<Ì:ë¬ •çù8;GŒ³eŒq»•€$ þ$=b°C=Q\Ž×$  H@€$  H@€$  ôáR Sôûï¿?[˜ýn)‰[‘€$  H »šU 뺻õ`ì€$  H@€$  H@€šÀèÑ£³ü«<èj4ó€$ ¦ ÌÐtHJ@€$  H@€$  H@À4G`Ô¨Q™+g\8+€$  Lý´@žúëØJ@€$  H@€$  H@•ÇCÂçÍ€$ " y ªËÌJ@€$  H@€$  H@€$  H@èÈÝckÌ€$  H@€$  H@€$  H@€Š€ äª.3+ H@€$  H@€$  H@€$  H {T w­1K@€$  H@€$  H@€$  H@(*ªºÌ¬$  H@€$  H@€$  H@€$ îPÜ=¶Æ, H@€$  H@€$  H@€$  H` ¨@¨ê2³€$  H@€$  H@€$  H@€ºG@r÷س$  H@€$  H@€$  H@€$ " y ªËÌJ@€$  H@€$  H@€$  H@èÈÝckÌ€$  H@€$  H@€$  H@€Š€ äª.3+ H@€$  H@€$  H@€$  H {T w­1K@€$  H@€$  H@€$  H@(*ªºÌ¬$  H@€$  H@€$  H@€$ îPÜ=¶Æ, H@€$  H@€$  H@€$  H` ¨@¨ê2³€$  H@€$  H@€$  H@€ºG@r÷س$  H@€$  H@€$  H@€$ " y ªËÌJ@€$  H@€$  H@€$  H@èÈÝckÌ€$  H@€$  H@€$  H@€Š€ äª.3+ H@€$  H@€$  H@€$  H {T w­1K@€$  H@€$  H@€$  H@(*ªºÌ¬$  H@€$  H@€$  H@€$ îPÜ=¶Æ, H@€$  H@€$  H@€$  H` ¨@¨ê2³€$  H@€$  H@€$  H@€ºG@r÷س$  H@€$  H@€$  H@€$ " y ªËÌJ@€$  H@€$  H@€$  H@èÈÝckÌ€$  H@€$  H@€$  H@€Š€ äª.3+ H@€$  H@€$  H@€$  H {T w­1K@€$  H@€$  H@€$  H@(*ªºÌ¬$  H@€$  H@€$  H@€$ îPÜ=¶Æ, H@€$  H@€$  H@€$  H` ¨@¨ê2³€$  H@€$  H@€$  H@€ºG`†îEmÌ€$  H@€$  H@€$ Þxå•WÂì³Ï¦›nº!'øüóχgžy&‹gžyæ óÏ?ÿãìv?þx˜ža†²5’ãùxÜ>ÿüóaÒ¤IYXÎ/aQNc¹Ly›•'žx¢jÕÊý¬Íܬ°æó /¼Xß¶”‡ùŸ}öÙ .ØlT-…k%Ý·Þz+s÷ #~(è˸’ ¬Â¹™wÞyC~½l\G£øOÛåe]kê¶Hb[ãžgœqŠõ¯Ó{b}Gꂸ¹Ÿµ³±bB¢52mhĈ]ãÓt+ H`Ш@´3¿€$  H@€$  H@€zDÅèRK-•­;œ*þ¢bolÝY狈±HÈ ÑäEgªXŽá øQÁϳå>Übã.¥'ŠÇFòØcU]{×ÙÍH½|p?Jð_|1¼üòËañÅo:ÞFi·“.÷À$ V¼Xz ùF1Ï=ÇQ¨üiû‰×‡"òŽ7.SæÆklQxGkwê–8Šê‡tSåt¬Ë‡~¸¦ ÄI]ó‹R”¯xÍ­$ i•€.¬§Õš·Ü€$  H@€$  H@€š ÀÃ(‘Ù¦‚ÒŽ5‘£‚/½Öë}”‹Hܦé£PþÛßþ6…òåxjQ‹¸H9™ÆÅ>–®q]hŽçšk®l fö ùËçÅ8i§|Qj¢tí”´“.–¹ü¢ Ø.®Eå1刖Ü(uyä‘å1å%Þ”õ?þñLÁŸr%­´~òÜòyI¯Ç¼ùÉÇCÚü¸F;P$  H –@ã©Tµá=’€$  H@€$  H@€$ iŒŠ¶á¶DÆýt”TYÏ•mQø¢ Œ‚ËdÜ1Ç8pgLܸŽn$O?ýtfiÃa±¼ÐB Åæ¶óÌ3OæVk^ÖlŽùàf”ÆXã"Xç’ïTÑš]hóO;é¢Çõ4‚»m,w‹,ÁQG9rdUa;qâÄx:+çüóÏÈG¸§aØÏ»¾ŽaÛÙF·â¬å+k„2uËEx;yô H@ýH@ ä~¬ó$ H@€$  H@€$  H ÏD%2ÛT:i‰œ*SÓ4X_7*V9?묳6¥XÅú8µF99¶âv;Mgæ™gΔÀ—(7q·%*¢ãq³[ÇK/½t3fLM>¸á…®*_É{êBºÙøËµ“.ÊÖ¨À¦žS%~LÅr\S˜s܃P_éyÊ–* ÃZÉœ‚Ò·Õ–h‘L¼é~§Ó1> H@S ÈSKMZ H@€$  H@€$  H@]&Ðm%2®(‹±Æ÷þûïwß}wx饗ª%Ãqªt¬^(ØÁ%2ŠX¥ñ ,Pªþ)ÒÃEsª<ÅZEt§…<¦.•{¥ì,K—ó©evjiËžr!ï1|ªðGI?jÔ¨xKÍÅ6×£°–²" H@ÃK@ÖÃËßÔ%  H@€$  H@€$  ¨Dž0aBÍÚ¶(;­¬‰Œ{h¬sÛÖþM•Åù8pŸŒâ6ZÅæ¯çßzë­ê)”›Eî—«Jv°¢M×ÿm¶Ù¸qãJB7š¼¡à&~ØÅ º)­¦;zôèÌš˜üa!ŒEwTs.µ’Në=-Ìê ÷EEt_½{¼& H@Ý# ¹{lY€$  H@€$  H@ÀTI *‘ï½÷Þšò¡PÄr˜õ’›UòÖDPr€…*–ª(3[¬‡£`MÛŽ¤.°¹ÿÿ±w'ðq]õÙÇmY¶dy‘%Ë–WÙ–—ì $!!! )K€ÒaO[J¡ÊRÚB[–R ¥Ë[ Ò%¼…”½ iBÞ°„!{¼Ë–WÙò*[^µú½Ïuþ£3W³kF³ýŸÉ¹Ë¹ç|ïxôÌ9×Is©Oa´¦Âö§wÎ¥žlÉõ¼²Ÿ:ujxdSõX€,W‘¯¦¤NTÒÙû×)Ññ¬C_äñõæl €”ŒÀ¶ƒÇÜ]k»‚Ç.wää€ëØs¤dÚFC@rXÑ:Óͬ›ìn8gaðXàÚšʹ;´@H*ÐÕÕ•p[CCCÎá±F ktïàà`øP­û§ 6$²2zïæÈæŒ_vww‡!²?ír¦+\÷§v¶ã42Z}Ô£ÁòXÏ«ûÛõ>vìXìÚø£Åëêê’ŽðÎ& Îf_óc‰ _äüzR €%/ àøS÷¯qw<±½äÛJ@r°/ä<ÖyÀ}üî§ÜkŸ·Ä}ìeç$—ãŤÍ € T`ûöíáôËÑfΜNa]Ÿék…‡ fs gÓC¡t®ES0Ÿ@@ ­@¡ÂcXál>‹ÂN+z®ú³ }u¬¦¬n ÐÔFájÚf9h}¦E´¬^µjÕ¨¶¨}ù6ÈÇye¦i«{zzÂ.ôöö:8¶°W£»£²ïlÓ\[ÿ£K?ˆÖtÙVüëgë’-óí–ì<¬GªA`äÕÐ[úˆ €@ |õÑN÷»·ý" ë&v»‹gßêžßx§[5ã®yjáq¿7è:äO@_ÄÑgª>[õ«ÏZ}æê‹;ú Ög1@(gB†Ç…pñïW¬SÁg¶Åî嬑ÂamEuiTn¦ÅŸšY£ý€ÕêÐ=…Ç2RÚêñ—ù:¯F[›ûûûÃû8Ûy4m¹­·û$ë¹âdýRHìÈšÎÛŠMí­×©ÂuÝSÚÂl;6ÙÒúl;ë@œ#@æ]€ €@(°øÀÿ:ìé¢úŸ¹+Z¾êfÕ¨‚žÓE@ ¸ú¬Õg®>{UôY¬Ù ( € €@9 ”[x,cM=íO‡½k×.§ð3ײdÉ’¸ú û#|SÕ뜉Fä* µΩêÉv[¾Î+G¬:u/d+šŠ;Z¸[¨¬XÓ~'*›7oŽºÖþ ª­(@¶{WËg÷îݶ)¶TÝû÷ï½N÷Äowº}ÙŽT«SXWë•§ß €U# {ÿå]O†ý]4íA·jú/«¦ït(H<]ëöœ¼,¼•À…ó¹'r©\Ú € ”cxlknn޳ >7nÜŽ$V ª×§Nr'Nœp +5­tº²téÒ°›2yÛ¶mÝÙF2«~È›6m §}Öz<>räH,HM׆l¶çó¼ºr4ä–c}}ý¨&) V°l£´å¼nÝ:§:4[šÜ™¬i°ýöj´°öµ}dÔÑÑÖ!…÷ºÇ³]‹Qxn…ÙzÙ××çZÏš5+6jyîܹÉe= P•Œ@®ÊËN§@ªIàoî66m5áq5]yúŠ¥&pÎ̟Ʀ³Ög3@(re¬‘°þýy6*tT°©©5"5›{í*М?~ìò)Uˆœ®(LõGC+PݳgÛ¹sg\ PÓÕ›h»?Ms>Ï«ðןbZçö§õ޶EÁ¬?¸‚à}ûö9—¿Ã:Nû-X° Z…kmmM­ bk4²îÉœ(<öû¯cô%¿Ýú€ŽWÔ¿ÚŸ‚T»rµ¿è? €@E hôñ÷žØöñœY?¨è¾Ò9@ ì³XŸÍúŒ¦ € €¥. €M£>£E¡¡¦sÎGñÃ>¤h6uûu$:nÑ¢EN…¿ÉŠMÏÝž¨îèý5‚XTEõ¬\¹2áh]§©šL+0µ’‡ßN?TÍçyU—?ÚX¯e‘ª´µµ9É~€ëï¯À\ýÖ~‰Š¦!_¾|ylúìè>r›7o^8ÚÙ¶EÝÔNÕáø¶¯¶Q@â&ÿGr:~¯@@ R>ÿàF÷‰<Üïxƒ»xö•Ò-ú”µÀc‡^ã÷¯vŸ¼þB÷þ«ÓO‘XÖ¥ñ € 7´TihhÈ[™T¤‘º;vœùb²íŸÏðØêÏ¥FŸjÔ±M¬S}Ï Q£–e«PU£_ëêêÂû5Ú!çݲe‹;~üxØT w3m·F]ëX…¾ºµú=}úôL§ïíí]»\Üt¼Îm#½ÇûÚgÜYvD `÷÷gæHtîœH…u €T€€¾#v×Ú]aO¦OÞ[=¢  €@eè3Y²>£ßwÕÊqýCeeÒ @OÝ'VSü*øS)÷ðX}ÐZ­ÖwQp¬©¥Ç»Œõ¼ºg´x+šÒ:›¢QÞÉFzgRÏX×9ü)µ39'û €Õ(ÀÖÕxÕé3 €@Å Ø#»zÎ|#¸¹v{Å÷™"€å"`ŸÉ½§Â&Ûgv¹´Ÿv"€ €@õ ´´´„®„ð¸ú®^~{¬{ÛϯÁ«/P@*O€È•wMé €@• Ø/rÃÃÃnïá“¡Æôɪ\…î#€¥#`ŸÉ{Ž8}VëþlúìÏ)KGƒ– € €@9($ÔÏ,ŒÜ,‡«U¸6vww‡ÓnÛ4ý)?ÚK@ ²+ëzÒ@B$kEíÄ~d@JDÀÿL¶ÏkþðV"‡f € €@RÂã¤4»A÷ îèè¿< />júj+š {Þ¼yö’% €@…  WØ¥; €Õ-`ADô»êV¡÷ €@é Øá4¢G… ¹t¯-C@ªM``` ígV뿦®^¾|9?»K@ +ð¢Ò%@ê°ÇZ Wç{€^#€@ù èq í¡ÏpBäò»Ž´@¨D2®¯¯wƒƒƒa÷ôsjCCƒ[°`A%v—>!€xÈO@(w?<Ž~C¸ÜûFû@JÐgµF[€Lx\‰W™>!€ €å)P[[ëÚÛÛ˳ñ´@`LgæISŒ €¥"`²F Û7„K¥m´@`´€>«"ës[Ÿá@@@@ ØÈžœ@<(tˆ†ÇºW@ ´ì¾r -D&H.íkFë@@@¨täJ¿Âô@ jüY£Ù\5—žŽ"€@ DG —ñŤé € € €Tˆr…\Hº €2ï@ ü ëÁèãò»v´@@@J @®Ô+K¿@ªFÀ‚c-m TF WÍå§£ PæÛç·ÿ™^æ]£ù € € € P¦Èezáh6 €‰¢!r¢}X‡ P:úÂ6¹tZFK@@@@ Z«õÊÓo@ŠðG¬Ù(6-) €¥-àfûŸå¥ÝjZ‡ € € €•,@€\ÉW—¾!€T€…HTFÊLÀ>¯íó»ÌšOs@@@@ +ð¢Ò%@ê°ðÁ–Œ@®Î÷½FòÐgµ}nÛ²¼z@k@@@@ Ò+íŠÒ@BÞ €@ùè3›‚ € € €”Šr©\ Ú € €U'@x\u—œ#€ € € PòÈ%‰h  €Ù ØècB‰ìÜØ(¦ŸÙÅÔçÜ € € € à  ûï5nqS»«­™’ÑÙßûŠO¹=‡wºÇ7ÿÔ}ãç_Ìè˜rÝé}A_/iqÚ0ñ½É½ûåíºmulzÀÝþÈ­åÚeÚýœÀðé!,@@@@ÈX€9c*vD@R¸áâ·¹ëŸÿV7»¡%ëæMžTÎËÃÇó—_íþäk¯ÏºŽR?à+®uô²»†©##±ÓµY.msV¹%sVºÞ“=îþ§ïHwÛ@@@¢ ôööºéÓ§³-Ms[öïßﺻ»Ãzš››]kkë˜ë,• ¶oßîd¥ÒÒÒâæÎ[ô¦:uÊ ¹iÓ˜A©èƒ €2o@([?}õ?¸ËV¾$/íl˃y©'ÛJþð¥u/9ÿµnøô°»õG7ç5¬m™9ß½ÿ•Ÿ FdOͶYáþÇOõºÇ¶<”ðØuîŸï§åöîC_»1á~å´òòà½ôÁë?ë&N˜ä~¶îî ÷~¬œšO[@@([£Gº½{÷&l¿n»3yòä0XT›(Ö>6lpáööövWWW—°¾LW;Õ«¢`³’Êàà`¬o2+vQP¿oß¾°úÀÒ¥K‹Ý$ÎT½rÕ¿@@ <R…Çû{÷¸õ»wºžt[önëÜÒ–U®­e¥[1÷\×6wµ[Ø´ÌÕ×6„?vꈻãW_) ÄY‹žžWQp™Ïò¡ `†ÇCýîÉm»‡×ßÞzÁì¥nqó™QØíó›9«]ã´æ°ºò¡cg~‰¶ëù˯Œj®”Ù”áÑ:JíõeÁhm»5Á(l  € €œP€ÚÑÑŽÂ93óÙ2õ;vì˜;qâDÒÝOž<Ž˜UÐ8cÆ ·xñ⸠Y!¨BQ…¾ýýýc“6† yèëëË{Tˆ 06ä±ùq4 €AàÍW¾7áÈã]‡:Ý­ü­[³ó±Q­Úºo£Óã'kîŽm{ñ¹¯v/¿àF×¥}'cëÇë‰Fϱ vº|Þ«öyK¯CóXåÁ“½GºÂiºý¾ê^ÇzüÒ=ÛõüÅ—ºW=ÿ-îŸøVl]ô‰î§Õ …É~ œjßBl»ê¬WºšI“ Qµ›3C÷ç¹ï—¦È¾åÞ¿Ê((fÇ£NTeùÜsRm.»m ó›¦ÿ¾_e—‡_Ü|ùܳݷñå<ÔF € €ùÐèc…¶* f·mÛVÙÚ=eÊ·jÕ*{éŽ?î:¶AÓJ«(dܵk—[´hQøZòÂ… ÃQÊS§Nu³fÍ ×óŸòÐuÔ—t}Ká~Ìå¡F+@  Ö—Ú@@ Ïï î\31>t}pí]î–û>‘ç3¥®îº ot+[Ïw“&N þˆ2|ó}¢ë>¼Ó}ïÑÿÌ(¤2¹Î]±úq'±é“ãVæøbiËê¸Â{ï ¦ô~:ÇÚâ{ýeLsÝ¿r ¯4|AãRW?¥!lsÍÄ×Õ³Ýýï“ßÎÈ2Ý©5M÷ W½ÔÕMžæ¦ÖÖ…±ú®`Ôõ=Þë›®úà¨÷UºzSmýåï ú´$6"BhÛL¥þƒÇ¿‘ê°´Û®=÷×>ï\7¥æÌ´á'ú»u»žp¿Ü42‚®©© ï‘l뵯_öïßïzzzbA´êÕ¾µµµáÈeõ7Ó²sçNg÷ïÕñº7s¦E÷|>pà€Óýe«þè¡öOŸ>Ý-X0r»£Lë´ýTí­û`ëZ$+ꛎ;uêTxÔ9«o!®ãýQâú2€¾¨ ¢õÍÍÍ£ª>|øpè%oë“Ú2yòäØ{@é=1{öìð¡×ö¾ÐyR©.  PMÈÕtµé+ €e.ð¢³_ŒP¹·•¦eþÖÏo—^)Ä»ùÍ_sKšW¤<ŸB̋ڮpÿñ‡÷»ºûÃî©m¿ˆÛÿ¦kþĵÍ™Ž-nc’¹Ls}äÄ¡¸Ú𦷏y‹R±qD^(¼ÅóÞ7ª9²Ë¨—I{áóÝ[îþÏMßuuµÓsðè>÷Š`ù VüFÂíÉVÖN:3ò7º]¡ñû_õ7}jê©ò¦N®w/½àõîÜÅ/pŸøî¸CÇÎü‘$ZŸ½ÖÔÎ}Ý—ÒÖ[?eº{qðņ%sW»¾Áñ¿Ÿ·µw,K];Bä±r, € P£ºßð†  Ó΢ð­ÐÓYÛ¹l©°0QQ[Ž=¶O¿øÁ²í¯}:::ÂPÓÖÙR®¦ÅÖtÙ 7(¦+Û·oMí­}PfRRµCÇ+ØTÈ©Àtùòå×kçV¶nÝØ:[*PÖuŒÞ3Ú¶ûK][»Ñ"[ß —ÛÛÛÃ×ßG¡ºúDEÎ €u¬Bf lÕf½VÑû-ZÔ]ßhQ[Ý3Yu(Dößrݼysì<~]Ú¦>É|ÅŠ£úäïËs@ Z&VKGé' €”·€ÜöÈ}wwÓ?ºù§ïØŒºF÷Åßÿ~Âðxøtð‡†¡þQm¨¯mpùÛ·¸?Mõàðà¨} ±bãî§ÚfE#W5‚8×Ò7 Prä›ë™Ö3t:¾¿mšlÄñP`£G´(H~ã•ï ðè6½>Ó¶‘-CÃîoß|[ÒðX{ëëu6òuäÈ ž=Tû{*\×ÈãDá±Þ‰ú¤QÛÿpÓ·Ü솿ª¸çÚ¦Ô‰êÕµ=5pbTÝË‚©ËÏšQ\=åôÂBäw\ûárj6mE@*^@£Bähð¨€NAc¢po¼Qb_*Mð3»‚Æõë× 4ú#•g+$µûB«Ÿ +3‚Yí´¶š‘‚qÛ÷UتѳÙfîììŒ U·F[¿’…®þyT‡ËH÷¦ö|· äUŸÇÑðXýÒ±~ß´¿?ÒÛ¿þsí·{÷î¸÷—®™ŽÕHåè¾Ö׆†³Œ Õ&µÍ¶kgí£°š‚ à\ú¯R¡„ €”€À9 5ÝqüTbOm}x\Zö±×}9¸çsí=Òåî~ì¶pªdm¸`ÉeîMAÈ©ûÓZÑÕ7]ýA÷Ðú{m•»å?Lý<¼_òû^y³[Ô´,ܦ©—¿÷ÈWÜÚ¿~ ù­®¶>M›}?uÌ¡cû]óôy±s?ÙUî7þ›ûäwß[—éÕwó÷ÞîÞ6g…{ó‹Þ,‹ºûÏÝôº‘Ñ·S&Ou§úOŒñü_þ[xïgªV¸º}ÿ&÷ô¶_†_ØÜ#XE÷—þíü~\¸ª‘»7^ö®Œ¦ò~ÑY¯ ë±ÿ9yÈ=²ñà^Á×±Ù-Ÿw¶Û¸û™ðÚ=xèív7\ü¶ ]×Ù!îñ­¹oÿüKqÓuëZì;²;¶žèËôòOŒš²zÓžgÜÜêï|(Ü_}ú­ OM^`<³n¶{ß+?íþú»ïŒ«Ó^üÅo}Á5Li/Ã¥Bã»}›“£•7_ù^÷² ^7j_Û^nK ‘Õn¦³.·«G{@@ ’,D.æHdM?mÅþl]²¥_…ƒV4]ñ’%Kbá¡FŪnM®(ÐôCRXÎ4<¶º5EswwwxÏæ¹sçÆÚ¡í 5VE#cÕn Õ)þ£¶)Ô·¢ºõ°¢i¥õHUÔ7T¶¢þÉÊŠ_‡Ú¶gÏžØtÛÖní[W| <¡ì_'…Î:^¡³ÜtE}ñ댶EÛýûbëú¥» —-[gªÀÜú¬i·õ…ˆLÞ éÚÏv@ œFþ:Yν í € Puš¾zë¾ ï÷˃`nI˜úåÉm»ÏÜñ^•{zû#áã_úQ÷’ó_Û¦àùMW¼Ç}ëá/…ëºmuz¨ôa _ëîŸü¨¿jLÏxæŽàž»ï‰«ã¼E—ºo¼ÿÁýr܇÷3£FïÆíyaÓqO ¿Ñ?òG‰áá!gáoäQ/Àþªã`äìPlÔv­Ðý‹õø×wÞ€¯˜~ÂýS­|¼ógîoÿçýIwùUÇÃmGOžùíØ×2xm´—I—¿íŸÅÝûÌn ®÷¿Äc}º9½²õ¼Ø6M·½¢õ\×±gMlžhTó’9íqëzŽïwûÎï å¿ùó/:=þî­ßpšòºÜJÿ`ߨ&""a € Pã"û£ßé]»vÅ…‰þ¨Z¿ès…•þéh©ýf¦ µŸÂRMulÅ‚h{é²±±1 í¿hÑ¢pô¯Ú­‡M«h_F,Û4ÐZ¯Qº~x¬uz­Q»êG²â÷OÆ~xlu(p·`WËÖÖÖ°^µÁŠú½–!œ‰³Õ¡ÝêT»£÷…Výê§õGV©ŠF/¯\¹rÔ.K—.uëÖ­‹Kî@ Ú«ý@ÿ@(Õ .Š»ÿqÿà)·1åYèríy¿i«síéÙ1*<öÛð¯ÿïÓnå‚ Ýâ¦å±ÕWŸs},@Ž­‡'·#`u¿åË‚0Ò/SjêÜUg¿*qûò0„ÿu0 ø¿úŠ¿KAŸ̨~ào¸âÝ#S^{ߤϤ‚_uüÈýÃ]¹OÛîšVý‚àÞÇ~ùåÆÿ7*<ö·ÿcОÏÿÞ÷bÓkk”úƒ>~êöwû»¹Ÿû›qï÷Á`Z÷Ç£Âcÿ çî–·ß7rÛß>–çK[V…ÓˆOš8rò±ÔgÇ º…Ï·u¶$D6 – € €@i :DÖ(U…Å]ª‡F„*°Ôs+ ´fR4Õ´‚ í¾»™kûè|º/±?Z#TÛÚÚl—¼-ÕFê·ŠßïT'Qðkûª½ÑðØŽÕèç}ûöÅÂR[¯¥[;¯^' {U·È:§|uNµÛBl…ºZ§é½s-ál}Ò9ì:úõùÓUûë=״׉ŠÌ52Ùh;g¢}Y‡T‹rµ\iú‰ €@™ Ô×N‹ë‚·LÊ V\Lüö„¿húÇŸì?æþþûŠ‘»*ñÚ6gäÛÉ]z÷ã·ù‡%|þàÚ»Ü[¯ú@,øœLí<¯qQÊð/aEyXùwÿ™»éªºë/~K\ ©ªuoaM¹­Çë.§{|˃¨K¥tî]ü±`8øÖú™Ð²±¡9cGÖ-dx,£×SRûSLkzéo>üÅ”|‡ŽísÏî|Ô]ºüűýZf,ˆ=×Óþ(e­[L¿nD´îýD0e¶?^Çæ£Ì›µÈ]ÔvEÜ—)òQoº:‘Ó ±@(Ž@ºY£V5:7—¢§‡Jz¨F±¶Ám¦Ó:û¨Nÿ>¾IOÙ [²•iÓ¦9ZkQÛp[@®àRu›kýêc2ŸhXêŸC὞*ÖþÑâO®PW÷^V ®€Ö–õE…ÕZ¯Ð9Q]Ѻý×ꇎQ›´Lt¼¯fÿØDÏS@2 @Î̉½@@ L. Fˆ¶Ï='më5ÂS÷ ¶é¥uÀó–^†¬vpï‰Cîþ§ï°—I—ºžŠ >k&ÕºmE ÕÈÛ~ö9÷ðƺ?~å§ÜÂÙgî¹müä —­|i8½õ]ºÇî/þ5ºË¸¿^»ë w*EëkÂsgú¥íüÓµw¼½šzÚ/ x»{vú«>ï>´Ã¹‘êÁ½£g†£†.«è~ßõSÎôY¯õÅ…_mz@OÓ–­¹Ó]sî £îÉœöÀ4;(œVKŠQ"Ÿ»äÒbœšs"€ €¤°yíÚµq{)ìÓ}|W¯^4ÄŒ; ÚfZÓ"·´´dxÄ™Ý4 ÖJ¢Ò¶¥ZúS`k¿\Ãq;‡ÂhVp\ˆ’k?}+µ+Úïdmµ‘ÁrÑtÖ6¥´öרf…Èz(x×— ’…ÛÑú-ðWz_mß¾=¼¯²í§õþ”Ûéb½g) €™  gæÄ^ € P¦ƒCµ\÷ñ:=·ïÌúø©¶42ôw®þ`lúḟ{qfÄìÄ3ßÚ~î‹Úúå}ÎŒÖD»Û:Ý£øÿùZwu0uõKu_çæ û¡é­_ù»Üê…¹O~÷]ãÒ¾ –\æ–Í=ËMŸ:3<ßäšZ75°žŒ<Î&4¶Æjzs©….õS¦ÇbF}£{û‹ÿÌÕÖL‰[ï¿ÐûqÖ´¦0V0ª¢ýë"#ìýcÞfzo춸Sý'âFFûu•ãs&ÿ›ÿþ£rl:mF@*^ ««+a5­p¦!a´…†Ý«Q®z¨Ý‹7×PÔ¯?_bwww"+Ôζ(\·Qºþ±6ÚVýk°œ«½ß{®öø£’m½-µÝžçÌ™ã4M¶ú©ÚÂeí¯)¢u¯aFN6ŶÕkKÿÇšûÙgŸuuuua½þèrµ!zd«CKm×q@Ì3sb/@(²@ͤÉq-¦6Τôög²[Â}¢áóÔÉõîÕß”pßt+‡O¥Ûe\¶?¸î§‡Êo^r“Ó=ž5::ZÎ[t©»ùÍ·¹¿üfnýÖ}ýú`ÊìËW½ÌÍ›¹0eà=.³×ܤ …ÿ1W_ð‹Yúû${îyA_Tð‹¾ÜÐ?P˜‘ þyR=bëÃîÆº8Õ.9oû×~4é´Û ?üõ·:óI8@@ ï ªé—£eæÌ™á(ÓèúL_+èS0›K8›îþÔËéön×èYMÕ¬@Tjggg8Ê:›`[Á±+,WàªÔ/ëׯwšN:×2–c휺¹Ž"—‰F«$m½wïÞð~ÉQž®ÈGºMk.{»Ï²+Ƕ¶Ì§5·ãX"€$(ü_Ö’Ÿ›- € €@Æv?„¯‰ÝÇ·¶fª[Ü»7Ý”Áš¾Yh™Q×è¾ðöÿI9Rs~ÓÒèa9¿ÖhÚR+ߦªÖãÒökܯ|¯[ÜäÍ«4VS4_wáî¾§¾›·¦¿ãÚ»«ÏyuÊ·c=YÏñqS‘µ¾DÇ+ä3s~¢M9­óoÈöß/‡‚5›UÓ~û÷fΩAãxPô‹vjÂc“`‰ €”ž@¡Âcõ4Õh×\$ü°þfúꜚšY¥ÂPu­VZŸiQmE£„W­Z5jdµú?VƒtÇû&Ö-ýõz®{1u4³Âq=zzzÜîÝ»c÷wÞ¿8%¹þdÏ5Uµ…Åj“ú¨¥®M4€·}Y"€ä.@€œ»G"€ €À8 >~èÌ/ÑΜTS/nnϹ}Á4ÇéʉS½£v95pbÔºt+ï;šn·¢mtóO|Ý'ƒp÷†X;4Ų¦»ÎW€üá×|Î]²üšXýþ“[šö@IDAT¾Á“®÷Äaw²ÿx8½sÿ`_xÿée-«ýÝ2z®»ãQ&E¾ Qæjw6eÒÄš°ÏþälŽî«é®6ë~Þå\ËùêÑv@¨tB†Ç…°SÀ¨°RE¡ooo¯Ó(élŠ…¨ *;y­º4š6Óé˜5ª×Š‚ÐDA¶¦}Îe¤´¦ W[T¸jºhšŽ…ÂþÔÏþvM®¾Úùu/ãlr¿®ès6V½vd3î}­~È\ESP¯X±"º ¯@ @€\TªD@ü ¬ïzÒë ~ѯ¹/ñó–½È}ã¡[ò²çjllh‰«»£{û‹o¼-n]%½¸å¾O¸ÙÓçºó¿ Ö-MÛ¢)«/^~u\UCÃní®ÇÝŸ½Óý|Ã}qÛôbÕüóÝ§ÞøãFãŽÚ©ˆ+Ô~¿ÜÿÔíîÖÖ_•Óó{žŽm?½n–Óˆg…ÃéŠö›ßxfª¸tû–êvÂãR½2´ @páˆÛBL[]H[…¨šÛî+¼k×®0ˆT€›KÑÔÌ7nŒÕ§ÐV!u&÷×Uxk%Ñ4ÓUk#œm¿L— ue«wçÎ G8oÛ¶-égÚÓ§OG ë¼ Èø¶¶¶&l†¶O:5œŽZ;hji?Y@omÓ¾Rëyªbá±í£‘Ñ~oëY"€äW€9¿žÔ† €Px¦éªýyQ0åòê¸ ]Oä¬[÷®BÌ bu7L™{^©O6í~&.@žYßèæ5.J;Ux:ÝïX#š­h¤îßÜþ®”×nÚ”é¶{É-õ~Üß»Çͬ¹WÙŒÀ*åH0ÚÞ/uAˆßØÐ<ækà×YªÏ KõÊÐ.@@ <Ãc»nÍÍͱ`V!®`…œ –mD®ÂO°šV:]YºtiX‡M­PV÷ N4¢Ø¯Ëu«0uÓ¦Má4ÎZ¯‘Ç ç­Nÿ¸LžëܳgÏŽ…¼nÝ:§¾«Ÿu¬i¤ý7Q½ ,ƒc »5z[í²PXíS]šŽ[ûhdñ¢E‹Âª4Eµ9*ÐÖCA½Î©:4šØJ¢ÑѶÍ_*œß·o_è¢s®Y³Æß>WßÕG›.{Ô¬@ÈZ`dÎŒ¬å@@`|~¶îáôÆvVMcý–«Þo/ó¾ŒN;­oÁì¥y?O)UøÄÖŸ;MÅlEÓA÷¤ž–yÈÛߎó—ºßts0²Ù/uœ.ø×hÚb•Lþh£é¶ý²xN~¦R‹ö»fR­[ÐØæŸ*éó)Á½Á'N,½ûm'm°·ðØÃà) € Pbå6mu”OÁ¢‚N+úyÿðáÃaØzàÀpŠdÿþ¿¶_²¥BÑùóçÇ6+ Uˆœ®Ì™3' :m?±á«ÑÂjýâÍéBi«KKM¥­ÄVðj„ôŽ;ÂÖÂãTujtï²eËܤI#¿WhJlÉz˜—ÌÖf;§–«ozï(XöÃcõ¾Ÿl.ÏÕYjô¶Î7Ö’Êg¬us< P.Èår¥h' €¸>}»;xôÌ=Œcõü Ý›®x·½Ìëò±ÎŸ¹ÁáXšÎù†‹ß{ï'M ñ!k¾ëϤ¾ç-½2nÊèAHª{ê¦*SÓ½½'{ÜáãcUœ¾°eßÚØëdO^tö+ãÚ’l¿B¬o¨K?Ú\£µý¢©£/m¿Æ_•Óóµ;¦«¹G·¾(qõÙ×gT×Ë.x­«¯mÈhßRÙ©°ß>qÀ}øëoMû^+•6Ó@@ š@zÚj?°Ëuzb¿ŽD×G£dõH5uµ¦cNTÕ­PÚFåê Ö#UQ=+W® Gæ&ÚO¡­‚UÊèl=4:ZAu¢6ëœ ÒÛÛÛc§OT¿¦ã>ûì³ãú;À{"/ß@Ï'+j“öI5ZÛo·뎎ŽX°.S£õÐóèùô^Õ(h+~}¶.ÑÒß/Q(žèÖ!€•,ÀÖ•|ué €(ðÀ3w¸7^ñžXÏ4-òo_ö§éŽoýñßÅÖçãIÇž5nwÏ·8˜*ÛÊ«¯sw=öu×uh«­Êy9!­¨­%pïÚ+Ïz…5)\á^´DGÈj„±Ff'3Ñþ3‚ûøfSZfÎw.¹<›CÆ´oͤø?r´Ì\˜¶>}¡áúà SjÎŒ”VÐû¶«>èÝüӴǦÚAûÖýÝÙ žÛíÂ¥/t³ƒ{r§ ó¯Xýb”ð“Û~ö9§@@ 4ÔE‹B@Ý 8_¥¥¥Åé‘kQøwÖYg¥=\á© uo]…ɺ¯FüªO~ˆ¨Ñ¼z¤*¹è p5JW£Ž€ª mýiýÓ©Úh›h=4eµF +$ÖkMqmñù矟èÐØ:µÓúgS_Û±j³¦–ö½t ‚k=ÔÝYKk³ÞG2NTY«½úò‚µ}áÂÄ¿§©þÍ›7‡çÓþšêZÓg«}™¼/tŒF]S@FFþj9²Žg € €@É ÜþÈ­nËÞuqíSøzÝEotÿxÓ·Ã{"ÇmLòB÷°Í¤üðÉoÇM›­QÈû–ÛÜå+_’öðÅÍíîÝ/ûxxáD;9¯Û³^”h·œÖ}à•Ÿq}ã¿g<"V!ïß¿í›nn$8íØ?ÊVÙwdwøÇkXmÍwÍÙ¯²—i—º^/=ÿõI÷SPú©7ü_WLÇ<^åÀÑî¸ë®Rx¾²õ<÷À³ÿLÇ|ÒuÞœcäÛæÚöÙ·~Ý}õ'ÿ»²ŽyÝeà.[ù£Úbç)ÔòÙº×_þ.7iâ™k&NvyÍçÝí{pÝ=ái/Xr™k˜:Ã=¼ñþX3nýÑgÝùK^¬é›BÜ/ÿÁ=î×›â~²öîpÔ°F8ë½·lîYÁ{ãl×¼OfÖͧH¿ç‰o½ý“5w»×\úö¸{·ÎZäþí÷º;ýOw篿kÃo^r“{ÕóÞ’Qh;ˆ' € €d! P÷Ñ­„ð8‹n³k‘êk:i ’“5Gûh²ÿ>жŽ% €@vÈÙy±7 €”€€É?ùÚëÝgÞôÕ0ˆ‹6©)ÁªÇó—]Ý”ôµ?Ú3ºÓG¿ý{A°{»k™1?¶IÁðªù„ØÊOt¿ßáÓC ¶8÷ƒÇ¿á^Œœ®«Û®ðñ‹o¿+|=4<š{‚ðõ¿rClŸLž y÷nVà­0ÙÁÓÕ¡{?龿N¸›üŸìü¹»æÜߌmWðú›—þnø°•껂Óûžú®û~x~ðúÏÆÃísÏ í784à&OªµCÃ¥Ö öËHäÁ—ºz¶ÇMW®Pø_ñéð¡k¨€].[ö­üšnúË÷ÿ{ÿ+oÚ92µŸ<.[ùÒð×©È õ{èô`dí™—_¸ç¯Ü§Þø•¸þ«Mo½êîMW¾7!¡?”Xè°V"€ € ’ÕèUM[LA`¼ì^Äš [ÓY'šR\SeïÙ³'.@öG#W[9 PiLa]iW”þ € P% 1ÿô¶7¸=û½¤m6ºm²¢s½û?^åžÝùh²]R®Žìµ>Þ™"Û¶i ƒ0Û½§o6Çï=²Ë}úöw§õüÁý¦¹Uºú¹é÷Ðs#y£û*ŒOßöÓrOmÿeÜî“&Œþþc¢) ãÊð…Χ@7Q±k8<<ä¢møUÇÝ{ƒ€_A¶E×)ZŸÕ¡©Úÿþûr§NتØRï µ)öynË®Cîû~5¶ŸžXÛãVò@@,³c÷1 hšqÿþÛ ×¬Yã:::\gg§Û´i“[»v­Û¶m›ëëë‹KÓ‚ûÇÅ6ð@ +ä)ͪvF@Š#ðåû?åÞvË‹Â{ÆFïc›®EšÚyG0Åõƒi–ÿÏÝUšì¸O~÷]î‹÷},©º-Ù.±õ±ª ö‡O~'ÛyòÍŸÑÝúÀÍîð‰‘-#/û‡F~Y›úÙÿòßÝÓ;qÇNI½ãs[5ÚWýú¯Ÿ}νçÖW»5;KyœBõwýûuAÀû‹¸{õúéÛâ'ûÇVÝrß'Ü<ð™pJçØÊÈk‡ì»ÿºÛu 3¶G²Ñºj‹}3];'Ñ«(ÉMþß|›S›¬ £ÂÕ¯û!k”øÿüê+Á”ã“[?0Ôï¶íßè¾\ÿ®`JðdEmúý/¿$üòB²p[Çžè;êZûÀ¾ÖmÞ»6ö¥Šè5HvÖ#€ € €¥$ é«W¬Xk*kÝßøØ±cîÔ©Snhhd¶¯I“&…#”[[[K©´([ Á•²ÒR¶Ý¥á €Tž€þ¯\¿DiJ'ÝóG¿L?~<ü…êE·­ ;ü’yŸ­¼Ž§èѵçÞLm½ÊM›ÒN¡¬]ûƒ‘œ'ÃðR÷~¬ó¡ðÞ¼)ªI¹I÷ë}ÑY¯pº/­¦šV¸§kÑ{òˆÛݳ5¸÷ï)O´ñå¼Îµà¢°šR[Á¨îŸüÐú{ížñº³—ºó_êZ÷-nŒ§Ñ«}§‚Àt«ûß`$´Î—KÑà7_ñ×4}n`1„Æ'ܾÀø§Áˆc«‰Ê¥í׸K–]íj'Ÿ™öY×G#xðÄ7snG¢óäºN^º¾uÁôßêÓÑàºî9¼Ãé~Å™õïÂ%—»õ³Ãþhº?Y>~0¸gö÷xðþË¥\wáNï=„žR3Õõ žrv?í~¾á¾\ªã˜" <Ðý‘ðìÝt¶khhpÓ¦Msuuu®¶¶ÖÕÔ#̃÷ŒþhFA@L §§'|ªŸ(T“€¦©Öû_¡±þþa÷FVh¬Ñƺ7·¦Y§ €¤ЗpTGþF˜è(äD*¬C@ ŒËèbÑT@à9dÞ  € ­r¶bì €QLd¦°ŽÊñ@@@@@@¨Rä*½ðt@@@@@@ˆ  GEx € € € € € €T©r•^xº € € € € € €D£"¼F@@@@@@ªT€¹J/<ÝF@@@@@@¢ÈQ^#€ € € € € € €U*@€\¥žn#€ € € € € € €Q䨯@@@@@@@* @®Ò O·@@@@@@@¨rT„× € € € € € € €@•  Wé…§Û € € € € € € €@T€9*Âk@@@@@@@ J«ôÂÓm@@@@@@@ *@€á5 € € € € € € P¥ÈUzáé6 € € € € € €  @ŽŠð@@@@@@¨Rä*½ðt@@@@@@ˆ  GEx € € € € € €T©r•^xº € € € € € €D£"¼F@@@@@@ªT€¹J/<ÝF@@@@@@¢ÈQ^#€ € € € € € €U*@€\¥žn#€ € € € € € €Q䨯@¨@¡ÉØ+º„”§ŸÉåyÝh5 € € €Õ"@€\-Wš~"€T¥@Íð¡°ß½ƒsª²ÿt(EûL®ì*ÅæÑ&@@@¨rä*Ð}@ʨ>vð@ÿ’Êî(½CÊHÀ>“'º¾2j5ME@@@j @®–+M?@ªR`ÆÐº°ßGæVeÿé4 PŠö™lŸÑ¥ØFÚ„ € € €Õ+PS½]§ç €T¾ÀìáunŸ»Þî_íŽ 4»™“T~§é! PÂú,Ög²Š>£) € €å/°ÿ~×ÝÝv¤¹¹Ùµ¶¶fÝ©“'OºÎÎN7<<ìêëëÝòå˳®ƒÎô÷÷»ŽŽŽÐròäÉnåÊ•nâÄü¥;}útX__Ÿ«©©q+V¬—ø#€•$@€\IW“¾ € ˜êzÝŒÁÇ\oÍÅnMÏõ¯Föà% €Àx è³XEŸÍúŒ¦ € €8wôèQ·wïÞŒ(Þ555¹Ù³gg´ÿxì¤ÐWíRÊ锪ÎÌ©:#000g)Û|È:‹®‘®¹]3ì@J @®´+J@ˆÌø±;:éwrxžÛxôr·jú/#{ð@`<Ö¹&ü,žpú¤Óg3@(…dÑ©‘µ3gÎÌ{³;æNœ8‘q½Ú¿”䌞bÇ|œ)NUñ›°¬øKL@`ò7oÃ84–S € €@öá¶°ïöðÀǯCäìká@±(<Þsò²° }&3úx,š‹ €ã-ÐÕÕå4-ðŽ;ÂÑÂù>¶_¶û绽ԇ €@¥ 0¹Ò¯0ýC@ h:½Ñ õý·Û=åõN!ò“«Ü¹?àžÈ¼;@ èžÇš¶Z³@¨Ì>‹õ™le„ N  € Pª}|äÈ‘°yš²wÛ¶m®­­ÍMŸ>½ Mž2eJxÏÚS§N%¬_?;M:5á6V"€ €@~óãH- €”Œ€…Ñ@¢eøi7)ø|×”×…AƯ¾ÃͪÝà¦OÞëšk·»5ûÝäI%Ó‚”£ÀÀÐd×;8Çè_âŽÌu‡ûW‡ÝдÕyì‡Ç~ÿ¢ŸÙþ6ž#€ €ÅØ·o_ìþ¾jÇx„ÈúÙ¨®®®˜ÝæÜe, {S@Æ&@€<6?ŽF@ ¬\L;u‹Û=ùZ×[sql(ÜØy¼¬ºAc@²˜1øXxÏãDÓV—Õ¥¤± €T¥@SS“;tèÓHd+ã"Û¹Ò-nß¾Ý :µU÷FÞ³gëíí ש­*µµµáv퓪ìß¿?Âu#_†µ]X"€X@ŸÕö¹mËŸ’ê@@¬4ò±TCdÿw_…¡Vô³• OÁ¤í£¼Më—h§z5ÚSÅ?^ᨂ¿d!­¬êxµCm°P[! FL¯Zµ*í·!ÕóDÁ«õÏFáê<;vìpº^™Þ£:™ŸvU»-DUýqÍTT|#¨½sçÎÛWî >ý¢ãe¤>ÈFEëÆC#¿}Ú¶-ëX×±Ö[jÿhñëÓ±©Š¿]}Ï´h_}᮹ŽÓûK¦)ož ¥ûa»ú§}¬è8=tŒÖ[;4 9úžµcX"€ù @·"u € P"úåFýB¤Ç¬ú&wøÄÁiÍ@ðZÇ>¯íóÛßÎs@@ ”Æ3DVHæ‡hQ v£ëíut”°‚¼-[¶Ä¦;VÜÚÚ7ÂU#‚5M³~.‹NUm£-àÔÈÔd²Ú :T¿¦c¶¢é–5:WEýSÐ뇶_¢¥ÂC݋ڊB×+VÄÚ¯µ ¥­}:O¦²Õé/5µÚoEm•™_42}éÒ¥aH¯õÑ‘³ ÚýY}ÐÈb+º†‰­©·­¨:NE×L#µ…ÿþÈcµA†¤ÊU·èbM}í‡ÇóæÍ ßSÖ&?WØn_HPðmá·ÞCú’Ct:n®ÖhyßÖêe‰äS`b>+£.@(Ž€ZZx¬åìé©ï;TœÖrV@ ÔÕÖÇ}fûŸå!€ €¥(`!²–~Qp§P̦ö·eû\Ú³Ï>ëÖ¯_Ÿð¡‘©©Âåhx¬ó+¬œ?~¬)j¯…­±•Á…‘šR8¾*äôƒ<¤³¼=×¹üðXëÊú¡Ÿê°‘Ãv\²¥FóªÍ* KýðXëÔ^DµÔ\¯…úé‡Çª_Óbû¡½þÞ +}¬}æúýS`lmÖv>¶×:^}ðÃcí£©Áý`^a±­ýÝÚ`ᱎ×ÏÓ+W®Ìjd·ŽËgÑûÊ·×u×üÒLû®QÓVô儱úå¿çl_Ý£ZïѺº:[Å(ˆrAX©@âø²~¡¿`éeÅigEH+ Ïh}Vë¡?€é3œ‚ €”º€~vÑtÖZúEá`¾Bd¿Þès !£ëíu4¬³õ Yý°ÑÖgºÔ”Á™¹(äKTÔ6sS?l´m¢}ýu~ ©PQ?;F‹‚W¿ ps) <£E?§úaq2Kà¶¢ó[ÔWâ¶¢ÑÞ~[m½– Âíçb…±vœêð§OÖÕ¡mÅ*!lýV5ú8Qñƒr{O+T¶¾ksggg,tOTë@B 0…u!u©@q°_.´Ô/‘zèRý¢rQû Ýÿ<òÕqh§@ÈV@ŸÑú¬¶Ïn-õYnlëc@@`¼ô;gª{"k$©BÂ\Š~ŠŽLµz(j$¬…°¶Þ–úyÊ)kë³]*Ø=vìXlD¨> Óե󫉊ú¦ÐBÑL¦ZŽž[£r“çÖUØê‡”‰Ú]§v'³µSÇ$Û'ZŸÿÚñ꽡º5ºÖÂb]*WñÛªo ýé²ývú¹?ª\×CÓûíÖùõ>ðG±+,–O¢¾¯Y³ÆéË Ñ^Ì`¼ÐnÔ¥'@€\zׄ!€ “€ö ŸB‰ùÍ‹Ü%íW»_o~0§:9@ 0úlÖg´>«-D¶Ïñœ‘Z@@ü (ìRˆ¼víÚ¸Š–)4Ó6ýœ“mÑH×eË–e{X¸¿~NÞ¦«ÐÚ­€6ø¥;6×íúù/Û¢ð8Y€ì×å¶þúTÏÇâ—ªÞl·ù.É®E²õ:W>¾Dm›mÿèû/“Qæê‹®—ŽÕôÔþ}œµM#Ðõ罹¦¦¸©Âí¼,@| $þ*T¾ÏB} € Pp ô ‡ú¥éÕ—½ÅM©áÞ8¿œÈP@ŸÉúlÖg´>¯õÇW}vÛçx†Õ° € Pt®®®„mЈÉ\ÂcU–*Lx2o¥Î ð¼ÍIŸjÔ¨‚p…}þùõsšîí«P;ÓzsíwÒÆ%Øà¬ 6‡«riG®~ÉÚl½\3-Éöõ§Ôδ®bì—ɵ²ßÔ>í¯û8ë¾Óþ}’µM#šu?ìM›6ÅÝZÛ( €@¾²ÿ X¾[@} € 0fû…D¿Ðê¡_>LhŠ­…-KÜÛ~ã}îÖþݘÏC €cÐg²>›õÇH}VÛŒôù­ÏsûLû™¨@(œÀöíÛÞÃWÓ k ëb?üÍæüºw³?bWÓ#ëÞµúyÍʾ}û\ww·½LºÔtÄ©ÊXÖkkkËyzðTíÒ¶\ýÒÕÝžn:pß(™g___8Õu´îRz­{ÕªU95I÷ÑÖCýÔûίè[¶lɹîœÄA PuŒ@®ºKN‡@*Y@¿dY€¬o+˜Ð/,—u{óUï©ä®Ó7@ ,ôY¬Ïd}6'\ ‘ € Põ¥çzQšú÷niiq‹/Ž Uw¦ájªý´Í¿Gn.£„ý{çæÚçbç‡Â E“ùÛýûaû¶É‚eÕ›j›ÿEdm°õþùl]6Kk¬uè÷}!ãÜsÏ»²Œ*S@B  J–z@(‚€È"+œÐ7¦5íѵϻ޽ãåf:ë"\N‰hÚj}ë³XŸÉÉF#… €”º@%…DzÖhN?@ž1cFÂK {ÐfR'»GññãÇãd?MV·~ÏWˆhåСCö´l–êƒ?óáÇ“¶]ÛüØF«{®ƒSÕÑÓÓ“´~ýDu©(ÜMð8p œÕ-iEI6øïõCõ䣨ÍK—.3P_( €@¡ %K½ €Œ³€ý¤¥Èú6³~ÁÒ/›uuuî…ç\ëþêŸw—´_=έãt €@õ è3WŸ½ú Ög±>“õÙ¬Ïh›¾Úÿ ¯^)zŽ €¥.0á±ý\4^ 6ý‘À y£eÏž=îĉÑÕI_ïØ±cÔ6•»v튭Wø7}úôØëTOšššb›JvvvÆ^GŸh„r¢>D÷ï×~4zvçΣš ð}÷îݱõú¹Ù7ÒôèVÔOM+- –u/ëdEîú\E×Ä?Ÿ£‘Ãû÷ï·—Y-õó¾–kúéTí‰ÞwûàÁƒqÓ©û'W{ýé¿ý‘Úþ~ ÃõžÒ¹õÑ{]¯5Eµú swuu…ÑòÒRm–›Újï!õWÛ) €@¡ %K½ €Q@¿\èaߪUSôË…… /Úæ/w [–¸W¾àÆðýÒ¢‡Šý¢dËp%ÿA% ÏZ[ê³ÖúÌÕôì¡Ï^=·Ïb-íózTŬ@@JH`¼ÂcuY¿‡¦ l³ œŽQ?é¾Ç îìü "£Ó ëç8 SÕ©úÔí›h„¬ŽU˜ GSÕ©mííía°n£N$F×tuz»ýM!Ùy4óÆcÓx«/ݨ(„UpîÙ.\¸0 díï Œ£¡±]ÿXÿykkk8ŠÛê°àÖß'ú\ufZt}u¿ozϦ{ßú~j“ÉŠÞ³zOR@B ð S(YêE@ Hö‹’ ûeHëü@C¿hê—Yýr¢çZj_ûeÅŽSüçEê§EJRÀÿ#’=×g­}æ* ÖëhhlŸÇ¶¯:gÇ—dGi €TµÀÞ½{NÁ«“9™’íÏBú9Ë/:^¿»¦«'ÙvhÖïà |m„§_¿F._¾<àêç¸DEëW¯^NU­P3úû´Î¯Q´ G•TýÐ6*V(™jšc}i1¼&:—¿.Õym?¿ÏQŸTui›|4}µFÓÚß ìx-5ýó‚ Âàþz{®pV[·n GðÚz[jt±®•¾ô ÀVçŒ.×>šR<Ñ—Ô?]'½l*k¿ÿª/Q½þyt¼¦ßV_“ÁªCï-»¶RÖhãè{ÇêÖèr½ôï‚R`BðA”û\ …lu#€ €À˜ìÿâµÔC¿˜%{øûø'µ:üuÃã‘–Æ3›šÚÃÆÆÆœ^S]ú½Z_àV}ÙL[N£··7 ?­úÒ¢ÂU{îøRØ®>hêmµYF \5es¦E±ÂV…ª ‚>g¬ê8µÃ¦µÖù-ÐÍ´éöÓûIï+ê¯Î—êß²¦æVð¬}õ·-µ¿Ž£ €c°[ èÿßRäT:lC@ ,¶oöjéÆöÜ–Ðeº€MÀ‚a[ê=þs5LëTŽCþƒ € +@VótOb©YÉáq†—‚Ý@([Ld¦°.ÛKLÃ@ÈL@…Âa?°°°ØÖ鵊-3«™½@¢ ûK=·‡íoÛí5K@@ ”t¿UB&<.å«DÛ@ÈŸrþ,© @’° B±bX`lË’í CÊLÀ>wmi;¶õ,@@RÐ=uõdM‘LA@Ê @®ükL@ˆ øÁ……ÉÚè¯íÌ@¼ð›F*A@" ùpz@ÆQ€y±9 €¥$@ QJWƒ¶ € € € € €¥!0±4šA+@@@@@@@Š-@€\ì+Àù@@@@@@@ @.‘ A3@@@@@@@b  û p~@@@@@@@ DKäBÐ @@@@@@@ ØÈžœ@@@@@@(ä¹4@@@@@@(¶r±¯çG@@@@@@JD€¹D.Í@@@@@@@Š-@€\ì+Àù@@@@@@@ @.‘ A3@@@@@@@b  û p~@@@@@@@ DKäBÐ @@@@@@@ ØÈžœ@@@@@@(ä¹4@@@@@@(¶r±¯çG@@@@@@JD€¹D.Í@@@@@@@Š-@€\ì+Àù@@@@@@@ @.‘ A3@@@@@@@b  û p~@@@@@@@ DKäBÐ @@@@@@@ ØÈžœ@@@@@@(ä¹4@@@@@@(¶r±¯çG@@@@@@JD€¹D.Í@@@@@@@Š-@€\ì+Àù@@@@@@@ @.‘ A3@@@@@@@b  û p~@@@@@@@ DKäBÐ @@@@@@@ ØÈžœ@@@@@@(šiÍ@@@@@@  §OŸv›6mrýýýn„ nùòå®®®® ç¬öÊ1wîøñãnòäÉ®¶¶¶ÚßôÊD€¹L.ÍD@@@@ªEàèÑ£n÷îÝawÜ‚ òÖõ¡¡!§PSÉÈy£MZQ5›oÙ²% …3wîÜ𑊠 €@‰0…u‰\š € € € €”¢€Â¿ 6¸#GŽŒ[óöïßïúúúÂGOO,ȹ"SÆW Ú̇‡‡cÀ±ç@@@@@ HÑ0wyòdl׉'º††·xñâØ:{bû+ÜÓ~:Gª OSy÷÷÷‡‡·´´¸3fXUNmT´ÝÂEmœ:uªÓ¾‰¼´ßöíÛÃû<Ë[#U÷ìÙÖ£{?ÛèÖÚÚZ§íz¤+ê¿Úa×Mý™4iRØŸ¨{÷îuéíß§7Ósša¦æéÚïo×Ô6CVòPôþ«F÷Κ5Ë?$ö\Çh:jµËu§M›æ42XÏý¢©Ò8ÛWïÅÎÎÎØ.Ú_Çé‹úwaÅߪzß.X° ܬ¶kêwµYëÔf+¶M}i þ=i?½‡¬¯ÚÏÚ«cµ_²¢k§¶«ÍÖW]óÉ“'ÇõSíÓ{L+ÝÝÝáLz¿h»Š«7zïF­ìX– P™É?m*³¿ô @@@@@ Cˆ«W¯v6lˆ…‘:T•¦³Vè•(ŒÌ°úQ»ù÷:ÖÈÍæææX€¬i…n¥ ²Èé-:N›î­l™í£ÐÌ¿ç²F–& $DúÓi[ت0q×®]V娥êߺukvFCpÕi÷–VÿÕ~«×¯ÈBZ«½½=aÈ­zp[pì¯u ¶0®Zµ*¶I×rÓ¦M±à>¶!xbçTŸ—/_îoŠ=ÏŲzt\´øÛüçÑý2}­WmõÃc«°XºßEÁ°½Öhc¿_Ú_uú£³ýþê§µ[Nþ{ÔÎ%w½§ýóÛ6– PÙÈ•}}é € € € € 7B…È ¶l°B/?œUx•,Ä´ŽÙe½V@ ál¿D!™¶)|Ób+~}¶ÎŸ>[ç° Ö¶§ZÚ”Á©ö±mÑ×Ö+øŒŽŠ¶m6JX¯m cÛ–l©>Zø¨z£³g#ŽõÚG=÷r1W©Š? ´Fáúþ©ŽóÃ`]ïè4Î:V}ò-ÍAÛí¯õ….þtíÑs%{ÿø!°¾à©ÀêHv¬þMéßšŠ¾ÑÙÙw}íx– PLa]×^#€ € € € €9 Xˆ¬{çúÁ›ÂEDN5Ò7Ù ý{ +8ÔÃFûj¤©ÂS ˜–ê\~©N?ØT—¬(LSûývÛ¾ mŠjKç×¹UT¿?zÓUíx[j$µMƒ­ãôHt>Ûß_*¼´súëÓ=·)е_²À0Z‡Œ‚HÝØwÔþ2öGLËD!¥Úéy´MþkÛHpk×®]áÔÔZ¯)•ýëoÇE­õ^±÷ícK¤±¦çNuMí˜B.ýÀÑõ©Ì£ûú¯5Š\Ó7kô±…Þº÷° ­õe…Tï3…ÇÉd«SËD#wýíãñ\ÿ¦²- õž•‹®îí¬©Ô­h½ÿå $¿öÑôÔ1#Õ¡ÜzÈUïsîlš,¨.¦°®®ëMo@@@@@¼tuu%¬G#`S…zуpY8Ý–ìµÂÝd%›sûu(èôGïúª„ÕþÑþ)¤S®ýÀYQ ¨€OÓ;GÃZÛ'ºTÛ3Ý7z¬½Kÿ­ŽdKõ)Qûr=g²óØzMe~Þyç…á~ô¼¾nÝ:§{§*™„ë…jªvE·¥ÅÝ×í™A£‰Ÿ}öY·yóf·iÓ&çÏ ¿D÷H^¹r¥[´hQÜ4ñª__Ô­êñGkûçæ9T®#+÷ÚÒ3@@@@@  éè¬vâÕ¨ÐlŠÎj4e²‘˜ g5:YEÓ*+¸M4íïXÂ.ÝXí±sé< €mš_;:Õ±¦íöG°j»î'ì·M#f»»»uxÊâÐ)wL±1—þ««V­JQkêM¹œ3u#[Û{J_Ðì} ½rÊ:шô¶¶¶¤÷Ã9Ci<óßCÙ´H!»<ìÑzùïWÕ%Y$ Êe§‡êÑûÔI¯Ü[¶lÓû#›þ°/”†ri\Z € € € €”…@>Ãc´þÃK—.5ÒPŒiÄ©F+ëùþýûc#*ýà5]˜éïkuÛRAªÖ&…rzmÇ(àöd­÷ϧZáq´ØñÑõ…xm÷ŽÎ¦n…—jc&£u­^¿O¾m÷—þ¾þúlŸk´­===n÷îݱ‘ëz/$ õþÒTØ•^ôe + ‹Ë\Kõߥlû%Zê½®°^Çn ¾¡©¬U,+T®ËD.¬C ˜Âº¯:}FøÿìÝy˜¬×]øÓÝÕÛ]$]IWW²$Ë’ã cclÀ˜€›Â'† f†ÉòÀLð“ç!“Iž ™y`bHl –Œ16¯x_$£Í–µXWò½ZïÚ{uÕ¼¿’«UÝ]Ý]]]Ë»|Ž]ꪷÞ÷¼ç|NÝê{ë[ç¼ @€ @€>Çécfn»Dxµõ­íçâg„›GÝØÔ9K²ó¸XÚx§Ùœ×2Þ¨hË΀8®ÍÜ9Czk€AsgxºõùvÕí ®ýxÐ?:´Qeô¿³MOl¹ÓÙÖ]©V@IDAT;¯•»e×®iÞõ»lŒ°8ÂúviϬ×H¼ŽÚ¥=+·ýx¿?{ Ô{Ýo¿çïeÿïö5Äççç[×ë ?ïyÏKñ…Œ^ÃãÎsEâØÎYôñå …ê˜\±ÖS @€ŒT ‘Í\¸ïˤ/w×½)+”W ¾·'ÏžO'Oe³?÷L_>”¾þkž—¾é¥/JßþÊ—¥x¬ P\A‡Ç!g„½Q"Àêe¦äÖÐ3°cÖi·íà0‚å/|á ­08®©![;`np—ÿD["PÜ:k8ÎÝ9#³]E;PÇÂF ÇG3`Ûm{ÿaüŒvE¸Û¾.uœóÎ;ïl…òpGaiÜ.¿üòtÝu×µšËm?˜-U%ÃçpŒ™ÞÑþf£®ãq,oÜtiÞjÀ–ÿÄÕ"GxmŠ[ô3úýluÖÇbIëèk”û°ˆv‡Eô3‚áv@ýè¼þsìcÚã¿ô¥/µ^G±-Ž ³xt†®áûŹۯé'N´Î?ìÿĸÇLþhoôùŽ;îØvÊh{ô3þŒµÿœÅ¾<òHë¯í#GŽ´âØ7̸ݗèk<¯ PruÆZO  @€ 0ø°êã·Ý•þâCŸHýÙ¿Ikõ§?ÊÉTJ€@aâ $úÔí­Û¯¾åæô-/Iúž¿óÊôª—}ÍÆìµÂtFC T\`áqF Û.NEp×K‰.‚Ú("¶gˆÆ,ÓÛ׃P/²­¥Æö¸ß­Dȶ5@îvÝ8>–RnŸ'þ^ýêì[Ô}ëœ%ÛíœÝáî½÷Þ»œFøûn%ÂÇk®¹¦5Kº½_«që¥ Ò|§óµãv8¾u¿˜Ÿõ¬gmÚK8ñ‹_ܘA½.gAkÒ홽qþ˜EÞ.ñ\„Ñ1S=¾ÏGét‹×E¼†¶¾¦wz½Åñ»=ϤÄë2¾¯ÓèW¼Vâ íar;pooëü¯ñ­}é|Þ}Ê'ÐÛoäòõ[ @€ @à€ñ¡Óû³ÙÆoyç­éË3p#HŒ}£Dx3w»•h{ô'f¶glvî3gŸûÜçnšÝÎm¾ì"îõ|\÷6ÂÎŽ;Âv{âø­³¨c)êèïÉ“'w ã¸èGçLߨ3¶Ê¼ÝÆöÏxÅk¤óuÒ~.~ƹ#ö³Ÿ½Í-ž‹YÅ»YD>w[:ýÆìú¿<ðÀFˆû¶KŒS”8GŒkì×~´÷‰çÚ¥ó~ûØ^žkï³õgg}ñ:î ·c¶}ô©}žØ7^“†ñç9ÂîÏ÷øóÓÞë¹âÏ@Ì¸Ž±P¨–ÀDöÆðô»]µú­· @€ p˜iü¦·þIzäѧ?|í¥ªÆz=­gË 6³X›Í¸e×èË~*S`rb²õáùDüÌB™©,\™œê}®Âµ'ާþþ^kfr1´šÀhÚ3ZG½Œl\o8®'ÜYwÖ5¬û˜EÛÛ3#XÛ)d"œ‹s·Câv°=ÈsôZW´%‚ÍŒcös„îV¢í_ˆ~Äñ½¼î†em/ÄÏhKÌ0¾ì'ÔŒãcn{\âuásûñN&áÇÆyãï®íe´·îûD»Ú³t£mAïÖýñ8¾ p×]wm|Q siò­õGÛb‰íö,øk¯½vÓ—6b&Ì@¨7~ƘG¿Ê%Ð^]¡Ûª= wj¸O€ @€» <öä™ôË¿ûöô±Ïݹë~Ù'l©¾¶š}¶’êÙ-‚ãìÊz»ãYJ 0Ñ ’k3³Ù‡Î³©6}ðÜ1 «[ÿö׿8ýü?~]ºêŠcÝž¶¯ Œ+@ŽÓÇRÀ¾E)BxÜj¨ÿ(¹@„¾÷Ýw_«—ôÆLðÝÊý÷ß¿1£z·°y·:Íf·V˜Ü…#¾òS÷üßéçúué;¿ùºìaãˆëŸÆ,dáñ¸GÂù lˆYέU}²Yû•ا}mðØo¯™è»Õå9ª! @®Æ8—¢—Ùï¸ôä…ÅôÄùÅ´¸’]ûb}÷_Š¥è´N @€È@\7í]·¾/}ü3·íØšµÕå´¼p±5ëxÇôp×S®g×É[¸x6ÅO…½LMO§ÃG.Kñ³[yÉ nJÿþç&]räP·§m#PYq.a]Yt'ccyù¸Ns»Ä=âúÐqÍï•ãºÔñeÐÎrüøñtÍ5×tnrŸ ôº„µ¹B/Š¢v5Âã»N>nÆqQP»  @€ +p.›­ð[o½9=úøÛúX-]<ŸV²™… ú˜?œæ\’-s=±íð¯»&ýÒÿþOÓñË/Ûöœ ª* @®êÈë7ÙÒÕ÷Þ{ï¦y§½#T¾òÊ+»ÎRÞéÛ (Ÿ€¹|cZÉÅ w<ô¨™Ç•}&@€§@„Çÿé͘ži'ùˆ¹½4ÍÌm_²:f"ÿ¿ÿúMGo.¿=Ò2à ÇU­ @ J½È“UBÑ×â D€¬ @€ 0:¸FÚ[²kw —.¤…óg…Ç£g"P øBJ¼·Ä{ÌÖòÀçÒ/üòÿ—Öꛯ߸u?  @€œ€yp–j‚ÀâÊÚjU% @€; ¼û½•îÿòÉmO/^<—–º„;Ûv´} Ä{L¼×l-·ßs_zÓ[ÿxëf  @€’€yH°ªŒÀÚzc0©… @€=n¿óîôÑO}vÛ~1+peqaÛv 0hx¯é6ùùáôþnЧS @€]È]Pl"@€ @€@ÕÎ_¸þø=ÿu[·ãšÇfoc±! Ä{N¼÷l-oüÿ’ž8³}†òÖý<&@€ @à`µƒîhÊ"pü’CéªË§¹éZš˜(K¯ôƒ @ Wý«·¦¥ååM»¯××ÒâaÍ&‰@¼÷LÕ¦[·ö /,,¦_yóÍéÿúÿS{“Ÿ @€ A@€<TU(šÀMW_–Ž_r¸hÍÖ^ @€ |òów§|úó›jk6›éâ¹3)~*µ@û=è’Ëg_r~æ[ÎÎÞ«â=ë›^ú¢Q7Éù @€TFÀÖ•j%Ð]àŠ£óÂãî4¶ @€*!ÐÈâ_ÛŸlëëÒÅó©±^ß¶ÝŒJ Þƒâ½hk‰÷¬xïR @€Ž€y8®j%Pã—*L[5” @`ð1óø‡Omª8–®^YZØ´ÍŒC Þ‹â=©³Ä{ÖÖU:ŸwŸ @€ƒ æçh…˜Í®y¬ @€TWà÷þä½Û:¿àºÇÛLl @`|ÝÞ“º½w¯…ÎL€ @ \är§ÞØ·ÀDzæZRû>Ø @€…øÌ_L÷>øð¦>ÔWWÒúÚê¦m @`œñžïM%Þ»â=L!@€ @`ð¦ÞT @€(„À{>ð±mí\Z¸°m› ŘžKó‡/ISµZ¶äovíØ…óime¹çÆONN¦CG/Mµ™¹411þ/š6ÖRê^“=a©wŒ×ÁÑ™ÙM}ü³|<½âÅÏß´Í @€. @>¸¡ (ðø“O¦S>žšÍfºêÊ+Ò5'®:p/ÓC%--/§Ë.½$Ýpýµijrê@õÖ×ëéË'IçÎ_H‡æçÓ³¯{Vëç*u0 @€L`qy%ýuvýãÎÒšågöq'Iaîײ`íÈ¥—o´7Bäx|áì“Ûfnnì´åΑˮÈÂçé-[Ç÷p" ´çm…Ù‹ϯ!Μ zöÞïQSÓ3íùȧoo½—šÛ,oìà @€} ûbsPQ9u:½óÏÿ²ôvöá꫎§¿÷}ß™nºáÙ›{º¿¸´”ÞýÞÿ–>ûù»Ztû Cós黾ýÕ雿éû^$º™UòÁ¿þxzÿG>žÒÏ,Ó3¾ñe/Ißÿw_“æfý¹mí' @€Àþ>ô©ÛÓÊêÚ¦W–—6=ö 8só‡»66¶_ܲôo·#€ÎSxÜÙÆ™¬‹13>û°Rmx:Ô Ç{X¼—}Ï·~Sµaôž @€À€\yÀ ªË¯À½÷?˜~ýwÞ¶-<ŽŸ~ìñô›où£tûwï«Òü­ßOŸ¹ýÎMáqT²¸´œÞuëûÒ;Þ}ë¾êŒDþðšþü}ÜG%l ·O|ööô¦ß~kk¦ó¾*¶3 @€ßvWÇ£¸ÛL«+ä-(…y89Õ}õ£¶oíX|Y5¯%–ÓÎÃ’Úyõ©R»ž~ÚüE‚íïeUÑW @€ÃÈᅦÓ_µVT –•~Û-ïJkÙuÀv*ìÛìoÿ“?OgÏÛi—mÛo~׭鉧ÎlÛ޹ᓟý|0ßѹi×ûûägÒmwìd?úøéßóÞ]ëñ$ @€Ýn»ûÞMO×WWS\sV)¦@,ïÛ­ì´}ë¾ëõͳѷ>?ÎÇõu¯Íq@ŽÎïQñ^ÕY¶¾—u>ç> @€ý ûssTÁ>ú©Ï¶fïÕì˜?ðÑOîµ[ëùGNŸNwß{_Oû¾ïƒÝÓ~qMæ¿Ê–­î¥Ü~ç=)®å¬ @€دÀŸJgÎeKw”µ–9îØÝÝœ ,/\ÌV,ZßÔª^c{/e=û·ÐÊâB/»ŽxŸfZ¼Øû—|GÜ8§ƒÀÖ÷ªx/‹÷4… @€Á ¸òà,Õ”c/|éž[÷Å÷íu¿8ñ“gΦ'Ÿz*]qùå»¶ãÔ£¥ózû€'*Š~¿âŠ]ëô$ @€­÷Ü÷å­›ÒÚ3X·íhC."<>ÿÔã)®y<9UKõzZ^ZØ×ÌÝj×ÖVÒÌì\¶dôø¿oøÊòbÊóìè\¾JÞ¨x¯šßÒÇxO»ñºk¶lõ @€~ÈýÊ9®PçÏož]±[ãÏž;¿ÛÓÏéq¿öç²`x¯ùÜ>Úõîwÿv[ü$@€¨¶ÀC§Û°¾–ß%Œ·5Ö†®±¼ïÒBïÿöéVÉÚÊrŠ›B ¯ÝÞ«º½§åµýÚE€ @ ãÿJq”´±ðÓÓÓ=÷ann¶§}çf{Û¯]ÙLm˜™é½Qï~ÛÐn‹Ÿ @€Õ8¹%@ŽÙª)5«¢÷D ÙšaßÙØ­ïiϹO€ @€ÀþÈû7sDž½¥¬®{ÖÕ=õðúk{_+ìW]¹g½×^sušœìýåõ×öÖÖ=Ol @€J l [âú· Š"°õ=kë{ZQú¡ @€ò*Ð{R•×h^ùò¯ëa¯§wyå+zÛ÷…Ï»)]rôHOõ¾â¥/NÓµ½gÇŒâ¯{ñ {ªóŠc—¥çÞxCOûÚ‰ @€@§ÀÅť·)®Ÿ« @ ([ß³¶¾§¥ÚI€ @ ¯伎Œv TàÙ×]›¾ù›^¾g/yÑóÓ‹_ðü=÷‹"þ‘×~wšØcïË.½$}÷w|ë{=óô÷}×·§£G?³¡Ë½‰‰‰ô#ÿýw§©É©.ÏÚD€ @`w¥å•Í;4-_½Ä#r-°å=kÛ{Z®¯q @€ò/ @Îÿiá€~à{¾3½ú•¯Ø1ð}y6Køõ?üÚ}íEÏÿ[éÇ~ôÒìÌL×㮾êxú'?õútøÐ¡®ÏwÛxéÑ£éùɘŽ_qy·§[×=þÉðCéoÝøœ®ÏÛH€ @`/…¥åM»4·„1›žô€9Øúžµõ=-gÍÕ @€…¨®ÅL OÉlÖn„Èßð²—¤Oßö7éÑÇŸÈ–êk¦«®¼"½ü¥_“n¸þº¾jþº¿(=÷9ÏNŸúÜçÓ=œ–WVÓ±lÖq,qÏíçšÆí\uå•éçÿÙO§Ûþæ®tϽ÷§s.¦ù¹ÙtÓ ×§oüú—¦Cóóí]ý$@€ p`F³qà:T@€Q xÏ•´ó @€TU@€\Õ‘¯p¿Ÿuõ‰,H>1P#‡§×¼úo§× °ÖXžú_÷’Öm€ÕªŠ @€ @€ @€ÀŽ–°Þ‘Æ @€ @€ @€¨–€¹Zã­· @€ @€ @€ØQ@€¼#'TC Þp½»jŒ´^ @€ @€ @€ö ïmd¥8·°\êþé @€ @€ @€@ïäÞ­ìI ”§Ï\L«õõRöM§ @€ @€ @€ö'PÛßîö&@ lkët÷É'Òs¯9–ŽÌÍ”­{úC€ @€(•ÀÅ‹KÕ!@€ò' @Îߘh‘ ,¯ÕÓ=žÍÖÒüÌtšœ˜yœ @€ @€ @`üäñÈÀâJ=ÅM!@€ @€È—À±cÇòÕ ­!@€J+ @.íÐê @€/ð‰?ýýÁWªFd¯üÿ @€9˜ÌA4 @€ @€ @€r @ÎÁ h @€ @€ @€ò @ÎÃ(h @€ @€ @€r @ÎÁ h @€ @€ @€ò @ÎÃ(h @€ @€ @€r @ÎÁ h @€ @€ @€ò PËC#´ÀN7¸l§§l'@€ @€ @€ @`À䃪n°ƒ­Pm @€ Mà o|ÏÐê.BÅo|Ãk‡ÖÌùùù¡Õ­âý ,--íî½úàƒéì¼-­:•R³ÙW…;(û7ýô5פËþáëÓÌM7®ùL€ @ ª䪎|Aû}¨–Ê2傎žf @€ @ ºgÞúÖT?…ÇU*YP¾ö•¯¤³øéª_øWUê¹¾ @€(´€¹ÐÃW½Æ›\½1×c @€”A þèé2t£¯>¬®nßûs @€1 LŽùüNO`_Yäk_&v&@€ @€TeÙênCQå¾wó° @€@ÎÈ9 Í#@€ @€ @€ @€À¨È£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ 6ª9Õ˜šœL)UñšÕY·Óz£‘\â«:¯w=%@€Àز_ºÙïÞÖ/ß±7f„ È~Ù6³ß¹~éŽÐÜ© @€ @€J+1Ì:I`´‹Ë«Ùg¹GœZµÒL3Óµ49YžWm¬õ—9ˆole!jciééß½UøõóÕo¨MLM¥‰™™ ‚& @€ @€Ê% @.×xê ± LćØÙ¼ãß|Ç'ÓÞM³3Õ{‹Y«7Ò?ýû¯LϿ᪴¼º6ðñ˜É>(ŸŒYf-kkk©^¯g“ìÆ—Ä—#b¦²à¢ª%Æ ÆbœãPU{ý&°I ~d?õÉtá½ïM……jÌBŽ/©eÿŸ~ö³Óe?øƒ©và f!ozax@€ Œñïï9ÔÐ$ @€¹¨^º“û!Ñ@Ÿ°¸’Î^XNs• ×S}½1´UD#°ÚåãψqÈÇ8h* ÄìÛµ‡NçÿìÏRýñÇ«¢f!rã® éüü\ºüþ™§ƒóÖê'U~Eè;y¨]}uªŸ>÷f¥}Ó×\3”zUJ€ @€ÀpÈÃqU+J Ô¦&Ótm2Õ²[ÕJv5FoÕ]  0&ø"K,]]ôÑJ.åÜ\^Nk bÆô’sZ(pìÇÿQ:ó{oyúK?¬«H‡×ŽO—½þÇŠÔdm%@€ Pyrå_ @€PÀr¨¹´7¾áµ¹lWµ”}aD)¶ÀÌ7¦ÿç¿)v'´ž @€JToz`%†U'  @€*#På µÊ}¯Ì \G  @€ @€Q G-î| @€ @€ @€È©€9§£Y @€ @€ @€µ€yÔâÎG€ @€ @€ @€œ s:0šE€ @€ @€ @€Q ÔF}Bç#@€ @`€Íæ++PUÑïªö}ÌÃ4???æ8= @€ 0Lò0uÕM ¢ëfZ_o¤õF£rÑoŸeWnØu˜chf¿p&ggÓÔ•W¦Æ™3©R1rÖ÷‰ééT;~|,öNJ€ @€(³€¹Ì£«oÆ$073•æç¦ÓìÌô˜Z0¾ÓÖ¦êirrb| pf¨Œ@su5Õ®¾:]ò½ß›.üÅ_¤ÆâBJøßÔÊnÓ×ߎ~×ß}z¼c›B€ @€ 0ò@UB€@ÄL¨(?ó#¯lÍ@®Ä‡Ø­wü'38 @€ @`ä ª‚Í—™{È·¹E£}To-c=œ™Pí~´=r¶nÆ¢›ŠmŒ\ ¾¼•©S—_>òSý„Yß›ëë䱄 @€ @€e —mDõ‡@"@U @€ d3‘›1Y!@€ @€ 0ÉÔ¡  @€ @€ @€(€¹ƒ¨  @€ @€ @€„€yŠê @€ @€ @€ @€@ È%D] @€ @€ @€ @€À ȃPT @€ @€ @€J P+At¡Bs³³ibb¢B=ÖU @€ @€ @€£ ÎÚ™ á±yª @€ @€ @€ ÐEÀÖ]Pl"@€ @€ @€ @€@ÈUu}&@€ @€ @€ @€@r› @€ @€ @€ PErG]Ÿ  @€ @€ @€ ÐE@€ÜÅ& @€ @€ @€TQ VÅNë3 @€ WàÌ™3Ã=Ú (”À±cÇ Õ^%@€ Pe3«<úúN€ @€ @€ @€r†» @€ @€ @€¨²€¹Ê£¯ï @€ @€ @€è w`¸K€ @€ @€ @€* «<úúN€ @€ @€ @€r†» @€ @€ @€¨²€¹Ê£¯ï @€ @€ @€è w`¸K€ @€ @€ @€* «<úúN€ @€ @€ @€r†» @€ @€ @€¨²@­Ê×w @€ŽÀ±cdžS±Z  @€ @€¡ ˜ßÐnûµÚÁ>XZZZU\^ùùùòvNÏ @€”Hà`ÿb,„® @`\ ©^¯›2®p^äH ‚u>œ£Vi þÌ<îÏmG›Q(; @€Š+ @.îØi9%ˆÙ9ä’ ¦n @à€êXVö€ˆ'@€ @€8€ù@|&@€ÀÁ"(hß^› @ è䢠ö @€ @€Š- @.öøi= @€¹ÀôôôÈÏé„ @€ 0òhœ… @€”F ®×® @€ @€@9&ËÙ-½"@€ @€ @€ @€ý ÷+f @€ @€ @€”TÀšS%XÝ"@€ @€Ãh4êZ½˜œ4G¡ C§Ù @€¶ ·‘Ø@€ @€ì&°²²²ÛÓž«˜ÀÄÄDš››«X¯u— @€@y|=´¼c«g @€ @€ @€Ø—€y_\v&@€ @€ @€ @€@y,a]Þ±Õ3 "pèСÔl6S,û¦ @€@µü>¨öøë= @€ @ ä<Œ‚6 Pi©©©J÷_ç  @€Š'àz·Å3-&@€ @€@¯ä^¥ìG€ @€´¬žã…@€ @€ò ¸ryÇVÏ @€ @€ @€ °/3÷Åeg @€ @`mm Ââ²7““æŒÜ© @€TZ@€\éá×y @€ °z½¾ÿƒÑ·@,.@î›Ï @€ìSÀ×W÷ fw @€ @€ @€”U@€\Ö‘Õ/ @€ @€ @€ìSÀÖû³; @€¨º€å”Gû ˆ%¬ @€ŒJ@€<*iç!@€ @€%˜-IOtƒ @€¶ XÂz«ˆÇ @€ @€ @€¨¨€¹¢¯Û @€ @€ @€Ø* @Þ*â1 @€ @€ @€**àÈxÝ&@€ @€ý ,//÷{¨ãr.×·ž˜˜Èy+5 @€a ‡©«n @€ PBf³YÂ^éRÄØ ½ @€T[ÀÖÕ½'@€ @€ @€ @€À†€yƒÂ @€ @€ @€T[ÀÖÕ½'@€ @€û¨Õ|œ°o´‚`ùê‚ ”f @€¢€ñ WÕ @€ @ ŒÓÓÓeì–> @€ @€@&` k/ @€ @€ @€h ˜ì…@€1 4›Í·F£1æ–8ýV©©©tÐ%üêõzŠÛAëÙÚ6 (§@ü>ˆ÷3ûÊ9¾zE LþîZüÑŒ¿Ÿú;jñÇQ @€ C@€< Uu @`ñá›àö6Â]×××[AÎA>X‹0(ê9H#ì²S 0fxÏð~1æApzzXYYéi?;åW ¾¬äZÖù-#@€ 0Nò8õ›™@„J>blæD$Êçk @€ @€lp äÍ @€ @€ @€ @ ²f WvèuœF!099ÙZÐ äQh;â Īñ¾¡ @€ @€—€y\òÎK€•˜ššUb¤u’Àà|ádp–j"@`xsssë\Í @€ 0VòXùœª ªÂ(ë#¨–€¿ßTk¼õ– @€j X¯Zã­· @€ @€ @€ØQÀ äi @€@nÖ××S½^Âåv„4l/ZÍ_÷2ò<ª(_SžàñŒ…{ @€_À'‚ÅC= @€œ ø@1ç¤y]Ì<îÊb# @€ @€Ò ¸ré‡X  @€ @€ @€ Л€Ƚ9Ù‹ô%³8Û·¾*p1 xÝŽ Þi  P¸æ¯òŒÀä¤ïç?£á @€E }µŸr-055•| ˜ë!Ò¸È;ÀØL€-ZÍÇ ^  @€(«€ñ•udõ‹r! „ËÅ0h 0`õõõ×8ºêâË}ñw4… @€º »»ØJ€ @€ì °ºººÃ3ùß<33“b•… @€º ¸HOw[  @€ @€ @€ P93+7ä:L€£¨×ë©ÑhŒò”ÎE€ÀX¦ÔõÈ· xH€ @€ @`ò06 @€A4›Í!²ëì BSúˆ?ƒqÍK… @€ @€ÝÈ»ûx– @€Ø"0??¿e‹‡ @€ PÓ0Ê2’úA€ @€ @€ @€ ˜|@@‡ @€ÝÚ×^µ„õnJž#0|‡o\Ä3|åÑ'Òí_¸/=pòT:yú±ôð©ÇÒù…Å´´¼’VV׊إ¾Û|èÈ¥)n½”oûñŸëe·Ö>³3Óinv6]røPºîêã­Ûs®»:½äù7¥g]uEÏõØ‘ @€€ytÖÎD€˜ššJqS¯€y¼þy9{#».ýmwÝ›Þ÷±Ï¤OÿÍÒ£O<•—¦•¶ÄÇíÜ…‹­¾³£'®8–^þµÏOßñª—§—½ð¹ÉŸÓN÷  @€ @€ÀøÈã³wf¨€€Ã+0ȺH€@îÎ]XHïxïÓ­úDzìÉ3¹ooUøh6·~ð­ÛñË/KßýêoL?ô]ßš.=z¸*úI€ @€r) @Îå°h”E ™ÍvSž€/i ϶ 5?uö|úƒw¿/½ûýMË+«{v)Þ³›õÔúéý{O¯^vˆ?£­ÛäÔ®3ŒêlzëŸþeº% ú¿ÿÛ^•þÁ÷GºüÒ£½œÂ> @€ @€À€ÈUèX__Oõz}×Í;÷wŸÞbyøZÍ_g{«ÎžF#½ó/?œ~ëíïI‹ÙõŒ»—fª¯­¥úêJZ[[Mõzv[ᆱ­˜ÌþÌNNÕÒôôLªÍ̦ÚôtVïĦº#èÇýPk¶ø?þ‘ïM?øß}KšœœÜ´ @€ @€Àp|â6\_µ @€@Åb[„ÈfIVü… ûC* …µð•>ðð©ô‹¿ñûéÞîÚ—z¯,/¦µåål¦q£ë>6G ú¸EhŸ.d¿'ÓôÜ\š;”…É3›NÁÿ›Þö'é½ùTú—?ócé9×^½éy @€ @€á ‡g«f Ðh/߉ƒ†+×8þ•ß½9-¯n_®zmy)--^Lëõµá6Bí= D€¿º´ØºMÕ¦Óü¡#Y <¿éø/}ù‘ôÏÿí¯¦Ÿû‰n]#yÓ“ŒMàMðátçý§ÇvþNüµÏ½&ý³×¿z§§m'@€ @€È=BÙ @€| ¬¯7Ò÷íéϲko-1ãxñÂÙ,8®o}Êã D°ñü™4µx!:zÙ¦É+Ù~é·þ(Ýqïƒéû‰ISS–´÷Ðå1<“;î;5nç'@€ @€@)È¥F @€¼ Ä5Z-_×ÑÑ®¢ Xºè#8˜öÇlãÿãW~;}òö»7U³[/œO«ÙrÕJq"è¿pæ‰4“-k}èè%­e®Û­¿õƒOO~ @€ @€ ÜP  @`G¸„\;òx‚ˆðø_þÒNŸ»ëÞMõ´f³ž;“]o׬ãM0zÁÌ?ré±Ë[·Ë§þæžô ÿá·Ó/þ‹ÿQˆÜFñ“ @€ XÀÚ_U @€Ãh4éßþÚ›·…ǫٵŽÏg3X…ÇÃaŸ!Æ0Æ2Æ´³Üv÷—Ò¿ûõßOñP @€ @€Á ˜²©qE #8¾äØñ4‘}iaTe-›Ñ{1 e‹TÚ_ è ‘ßóWM/}þMé;^õõEꊶ @€ @€Ü s?DH€E0¹è#¨ýäIàáÓ§_úí?ÚÔ¤µ•¥ÂÎ<žž™ixpÓsóiâÂÙ­!r¬0=;¿1þÿáÍ7§Üx}ºöÄ•ÛÜ!@€ @€&0º¯¹¬Ž&@€ @ âñ…œ_üßOKË+ëõµl6íÙÇE»³¶º<ò%¥#p/ê—›b¬cÌÛ%^ ÿÏoþAaûÓ @€ @ Of çi4´…J)ËáZº”C«S%ðç5¿ûgøXºëKn40BЋ粥˜³Ÿƒ,µé™5®¯­²Ú®u5²Kœ}âÑ495¢ïöfk4Ö»¶%–ÑžªM§Æz=»mÞ§e’9w†·]+ùêÆØþÈ%ÙrðY}Ù5—c‰ñåÅ‹»ÒÛs_óK.Ï–ýÎ~¿F¹û¾/§[?ô‰ô}ßöªÞê°×^tã‰t÷¸žAWð57]=è*ÕG€ @€J +9ì:M€£pÕQI;Á ´ƒ©ÁÖª¶ƒœ¿¸˜þó½{S‹ϵÂÎMøàèeW¤ÚÌl«–ÕåÅ´0’ÙÍÍmí»±ïÃ'§jÙµ˜¯ÜXN;‚ù˜©åh¶=á(«Y¼-%½[‰:³„·µ[\ç9ÂäX~zñâùÝí鹸cì½lcÿߺùÏÓ·~ÃKÓÑÇ6¶¹3<Ÿýñ¿3¼ÊÕL€ @€c }4€Ê,!” ªÌ#¬oŒJà–¿ø@:qaãtõlvðêÒâÆãA܉´G}3s‡ÒRxÆ Ú²—Ù¬¯1¹]ænÈáÑã¹™ùíx·%°çÙÛõÅÏÙìØ¥… Yn:Æ>ÚÜn[¼6ÞñÞ¥Ÿúáïé<¥û @€ @€@Ï|BÐÇÁ!@€ @€À°³ëÜÞòÞn:Íâ³`7íÜãƒn¡è€WÇî±%ãØmó2àíGÝLöjÝTm‡ï)g_ªŠ™Îƒ*[_ïü˧x­( @€ @€ÀÁ÷¯÷ƒµÃÑ @ ”ëÙ5$ãfr)‡·§NEø2•-ß7…þÞõ¾¤…ŧ—SŽÖV–{¾ï~Î×÷e«cæq”åÖlÙòÏ>nõ5[šzzv>»r-›!ÜhͼŽíqèÕå¥Ìd>î9û8ö‰ë'Ç2ÖÝÊN×_î¶ï^Ûb¼âµ0=;×Úuai9½çýM¯ûÞ×ìu¨ç  @€ @€]È»àxŠT –=­×ëäƒBøøöì=rQÓÇ.ðçüø¦6,-^ØôxâšÇ±luÌÀmV`éê¶]ôõüSe3„§ž^²»cêõÂù3_5iöd²¼xq#Ôm×?#œ´i¼ÚrœãÖ}R€  @€8€€%¬€çP @€†+pÏý¥‡¾òèÆIâÚÇëkk‡q'¾ü3è síF1{8›‚¼­ê˜9Ü«IŒÑÅsOµf"GEñEš•l†óÖ%§·¤ ñZˆóµËÉS¥/›^pãõÝ!@€ @€ö' @ÞŸ—½  @€À¾&³ÎkÙõ$•j X¾ºÚã¯÷øô_訠™VWÈ ¹¿Ûë¬åƒt$^‡Ž^’U1Ѫæ3w~ñ Õ9– @€T^À'Ú• @€a Dp!²Rm‰‰§Cj+蓹~*ƒIDAT=ý r:=uîBºüÒ£…h¿F @€ @€¼ øD;o#¢= P*¸î£2ióz€³(ŸÀm÷|iS§ê«+›{@ -°õµñù{îk?å' @€ °O3÷ fw °õõõT¯×[Áæ~޳oïÒÇ2á– ïÝÌžŠ"ðàç75ummuÓc´âµ1×~ýŒYÈ  @€ П€¹?7G @€ž"ÜŒÙ2Ö=qõµS#[ºÔ5†û¢sÜ |ù+njcc½¾éq烟úû?˜>Ô¹Éý’ ,,,¦7ßü®®½ÚúÚ8yê±®ûÙH€ @€ì- @ÞÛÈ @à@®{ ¾=æ»'‘Vàä©gäøBN#ûBÎNågúõi:[@)¯ÀZ¶¢ÇÎòzŠ×HûwÂÉÓäò¾ôŒ @€†-à–a «Ÿ*/h+Ãà;<[5·ÀÙó7š°[x¼±“;•ˆ×ÈÔW¿DpöÂB¥-tž @€D@€|=Ç @€=biåÙÙÙQ{ìîé>"@¶Dxp!P¥å•gZÙlõ @€ @€² Ë:²úE€ @ Dáà^ÝZY[O÷œ|"­»„À^T#}þâÒjzÁµWíœûy ­*&@€ @€%Þ׿K€£  @€OàÂÒŠð8‡Ãvn±cIò.í{ðôSéüâr—gl"@€ @€F) @¥¶s @€ 0tËV¸¯ì6!|yu-ý—÷&ýÕg¿ØWÝ"@€ @€'` ëÁYª‰ @€ú˜›™N?ø-/MW^z¤£B€ @€ RÀ äAjª‹ @€ö-×/~üìEKXï[Î @€ @`ðäÁ›ª‘ @€ö!°º¶ž>q÷ƒé®Oíã(» @€ @€Ã°„õ0TÕI€2{¿üxúÌ]'ÓÒòZšœšÈ…Ic½™.92›^õuÏI×^uY.Ú¤ @`v¦–þɼ:ÅRÖ  @€ 0^òxýJ,ðù/<’Þý;ÒäädšÈG~œ²B[m¹òØr‰_{ºF€¢ Ô×é¾==ïºéU_sCÑš¯½ @€ @ TäR §Î @€@ž–Vêibr"=<›§f¥ó—ÓÊZ=WmÒ °Þhf_tʾé¤ @€ @€c •ßÉ  @ Ì“Yx<™—©ÇÐymWGÝ%@€ÀjÙÊJþ¦§v—ZöÜO}Ï+ó×è’¶h"‡?))µn @€ @ ;ÿ ¾ÝÑh @€ª.p项4ïZº¹{œ8v8wmªbƒ"<žššªb×õ™ @€z0¹G(» @€ P Xiáko8žWÖR#[Y¿ÀLm*ÍÍŒöŸŸÓÓÓãï¸ @€ @€ Œö_ðÒd @€Š'—827S¼†k1 @€ @`Ì–°ó8= @€ @€ @€ò"`r^FB; @ t±lj³™¿¥S£]¶«t/"@`¤ëÙ{[Í{ÛHÍG}²c… @€¾€yøÆÎ@€¸ô’ùT›šJVR\3%Âãù¹étôÐ\š£ ˜À}'O¥ǯX}*ÊŸÀ£?‘¿Fi @€(¡€¹„ƒªK W¾ä†tõGÓÊj=Mä$@nfò¡ìš Ï½þŠ| i$pӳލ&ÕäUÀçud´‹ @€Ê& @.ÛˆêäFàªË¤¸) @€ @€ @ (“Ei¨v @€ @€ @€ @€ÀpÈÃõU; @€ @€ @€ # @.ÌPi( @€ @€ @€†+ @®¯Ú  @€ @€ @€ Pra†JC  @€ @€ @€ 0\Úp«W; @€F/ð†7¾gô'ÍÑßø†×æ¨5šB€ @€IÀ ä"–¶ @€ @€ @€ @`ˆf WÕ @€ ðŒÀþè¦ÕÕÕg6ìroff&ÝrË-»ìá) @€ @`f CU @€ °M`r²÷‚îgßm'² @€è[À ä¾éH€ @€ûxûÛß¾ŸÝíK€ @€ŒA ÷¯¡qNI€ @€ @€ @€£0ytÖÎD€ @€J ¸r¥‡_ç  @€ @  f d 4“ @€E˜˜˜(z´Ÿ @€”^À äÒ± @€ @ 7ß|s>¢ @€ @€ÀŽf ïHã  @€ @€ @€TKÀ äj·Þ @€ @`l¯{ÝëÒòòrOçŸMf,÷De' @€ 0P3Ê©2 @€ØI ÑhìôÔ¶íÍfsÛ6 @€ @€á ˜<|cg @€ @`Äo|ÃkG|F§ëEà–[née7û @€ @€c0yŒøNM€ @€ @€ @€< ó4ÚB€ @€ @€ @€1 LjïÔ @€ @€ @€È“€9O£¡- @€ @€ @€£€yŒøNM€ @€ @€ @€< ó4ÚB€ @€ @€ @€1 ÔÆxn§&@€L`rr25Ôl6yäL`bb¢5>9k–æ @€@ùùù.[m"@€ @€د€y¿bö'@€À€"@Ž R€<`ØT㢠@€ú8sæL?‡9†ÀžÇŽÛs; @€ @à äƒè9–ˆ RX9 LÕ @€ @€ @€} ¸rßt$@€ @€ @€ @€@¹ÈåO½!@€ @€ @€ @€@ßä¾éH€ @€ @€ @€r Ë5žzC€ @€ @€ @€¾È}Ó9 @€ @€ @€å —k<õ† @€ @€ @€} û¦s  @€ @€ @€Ê% @.×xê  @€ @€ @€ú¨õ}¤  @€ @€®ÇŽëºÝF @€ w3ó>BÚG€ @€ @€ @€ ˜<"h§!@€ @`¼gΜoœ}W3vwåñ$ @€™€È#£v" @€ @€ @€ä[@€œïñÑ: @€ @€ @€ŒL@€<2j'"@€ @€ @€ @€@¾Èù­#@€ @€ @€ @€ÀÈÈ#£v" @€ @€ @€ä[@€œïñÑ: @€ @€ @€ŒL@€<2j'"@€ @€ @€ @€@¾Èù­#@€ @€ @€ @€ÀÈÈ#£v" @€ @€ @€ä[@€œïñÑ: @€ @€ @€ŒL 6²39 @€Æ(pìØ±1žÝ©  @€ @€Å0¹㤕 @€ @€ @€º€yèÄN@€ @€ @€ @€b‹1NZI€ @€ @€ @€¡ ‡Nì @€ @€ @€(†€¹㤕 @€ @€ @€º€yèÄN@€ @€ @€ @€b‹1NZI€ @€ @€ @€¡ Ô†~' @€ @€#X[[ñû?ÝôôtÿõÈ"õ÷ÀÝRÁ ü:«dÙ©á> @€U WqÔõ™ !^Öëõ411Qˆöjd1šÍfªÕjiж£÷ZI€ @€ @€À^佄=Ìå°hHizzºucA€ @€ @€F%àÈ£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ@€<*iç!@€ @€ @€ @€@ÎÈ9 Í#@€ @€ @€ @€À¨È£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ@€<*iç!@€ @€ @€ @€@ÎÈ9 Í#@€ @€ @€ @€À¨È£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ@€<*iç!@€ @€ @€ @€@ÎÈ9 Í#@€ @€ @€ @€À¨È£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ@€<*iç!@€ @€ @€ @€@ÎÈ9 Í#@€ @€ @€ @€À¨È£’v @€ @€ @€ä\@€œóÒ< @€ @€ @€ŒJ@€<*iç!@€ @€ @€ @€@Îj9oŸæ @ ôF£ô}Ü©ƒ)nƒ*Íf3Å­Še–ü¼ñgg¯ÅhG•_ÑÿÉIßó … @€ @`ôäÑ›;#6 D€\ÕÐsjjj rXV5„e•ý"¬ ÃA•ø3½¾¾>¨ê UÏ ,«l!¼¹P/{%@€ @€”JÀÔ†R §Î @€ @€ @€ @ rÿvŽ$@€ @€ @€ @€@©È¥N!@€ @€ @€ @€@ÿäþíI€ @€ @€ @€R K5œ:C€ @€ @€ @€þÈýÛ9’ @€ @€ @€¥ —j8u† @€ @€ @€ý û·s$ @€ @€ @€J% @.Õpê  @€ @€ @€ú ÷oçH @€ @€ @€”J@€\ªáÔ @€ @€ @€ô/ @îßΑ @€ @€ @€(•€¹Té3 @€ @€ @€è_@€Ü¿#  @€ @€ @€ P*r©†Sg @€ @€ @€ п€¹;G @€ @€ @€ @ TäR §Î @€ @€ @€ @ rÿvŽ$@€ @€ @€ @€@©È¥N!@€ @€ @€ @€@ÿäþíI€ @€ @€ @€R K5œ:C€ @€ @€ @€þÈýÛ9’ @€ @€ @€¥ —j8u† @€ @€ @€ý û·s$ @€ @€ @€J% @.Õpê  @€ @€ @€ú ÷oçH @€þÿöí …aˆ …úÿONCŸ`Ð9“»×òìQ„ @€ @€ÀQ ä£Öé1 @€ @€ @€ØP ïÛ9I€ @€ @€ @€£ÈG­Óc @€ @€ @€ °/ðÝ?ê$ @€x¦ÀZë™ÁB©ÞöÞã,ˤ®Ù @€4ø¹aK2 @€ @€ @€ @`@@<€ì  @€ @€ @€4(¶$# @€ @€ @€ÈÈ® @€ @€ @€ @€@ƒ€¹aK2 @€ @€ @€ @`@@<€ì  @€ @€ @€4|®ûk*# @€ @€ @€düœõ5 @€ @€ @€5 äšU J€ @€ @€ @€¬€9ëk: @€ @€ @€jÈ5«” @€ @€ @€YrÖ×t @€ @€ @€Ô(kV%( @€ @€ @€² 䬯é @€ @€ @€¨P ׬JP @€ @€ @€dÈY_Ó  @€ @€ @€ P# @®Y•  @€ @€ @€È (³¾¦ @€ @€ @€ @ F@\³*A  @€ @€ @€ P g}M'@€ @€ @€ @€@Àýý5׆xkIEND®B`‚plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/img/jps-welcome.png0000644000312500031250000002201712606005234027434 0ustar eacbforgeacbforg‰PNG  IHDRf[DþÜtEXtSoftwareAdobe ImageReadyqÉe<(iTXtXML:com.adobe.xmp ‹‰Ý• }IDATxÚìÝ ”du}'ð®wU÷ô¼˜ ãP@Œ@Dq1ÄÕø"Kô㞬ه11ž“³9nN6'»9'QÜÍjÌ£à#‚AWy ïáá€ÿìd2)0KÂOï{ø³W]ûüî½S„ŠF½Q¯‡A†ÑW$P::F"‘L”L$“©t:úoòûo\¿ö¿|ð]ž{¦Àt²=/ö}úËWßyÿÖc; ëµj­Z©W+QTˆ®«K'AD±!Íe²¹t&Û5Á1H¿rÎò{ï_wÜ*è@7Ýqï§¿tõp©|ô·¢œP-—jå’aH$’™|!›/LGé)äÿäÃïÿõ×ÿòŒCôÿ/÷ ‡+µZCKb¤Ñh\{ãîúÙG«V-W†‡¢À J0Nr=Ë2ÙüÑßzç[/üØeïͤSÓ åj}Û·+ueâ¦X*_ñõo=óÜŽñ)¢V+ˆþU"˜D*“é^¶2úwÜígžvò_ü÷—/ëž:0Diaëö½F€êüâUWïÞ»¯ùƃ˜¡JiX}`šr…žü²åãæW=éÄã?õ§°võÊÉC„<·ÛØÏ´ðW|ížÍ76êµáþ¾ ¡÷3“L¥{V¬J¥j8aýšÿóÉN’{û‡ŸÜÕ§|@Ü”ÊåÏù«»ö1¶P-KƒýfmÙI$…ÞÙü‡!tâñŸýó?œhYèä¾k§±Óh4®üú·Ç¥…òð`qà€´³5Ÿ¨EM©ùƧwìü³Ë¿8ÑZéÉáŠó„€Ø¹î7ÿâÙíÍ·”†úÇõr€Ù‰šRÔ šoyðñ§>wÕ·œë Ä̓[¿ãžûÆõo*E§8ü‰Ô¸þ­Þvó]÷#0(+ƒCߺþÿ5ßR--À¼‹šUÔ¸šoùÔ—¾±¯¯ÜÝÒ*5κåÝëVöä3é –ÓÖûß_.•¯åܨ×JƒýÊ !j\©tflÞ¤Ááâg®¸æüñ¿&tʆ•k—÷¨´ÊÝ=vû½] Ãp¸¿ÏYΰ@F›Xïêµcë3ÜvïCQ3<ï¬WŽÝÇ!I‡­é-H ÐBA~î+×6ßR°Þ,l»kÔ£†Ö|KÔ ƒ¦”.0¶vE·"@ Ý~ïCOïØ9vµQ¯YËAÔТæ6v5j†Í}Ãa¹Œ´ •®üÎç:º‹e\sknŒÃa‰.§9@ËülëÏ·=³cìj½ZiԪʋ#jnQ£»5ƨIŽ^ö™: ×ÿ䮿«æQG™\>ß³<•N7êõòð@­RžüþÉd²Ð»"Í'~ÖÈ0*¥a›;¢­°,›»ú½Ÿlyí§ÎO`Øûâþ»÷†a¸nÍqǯ_;Ó.–žÛñB©\^¹bùæMSÉ™ zÔg·?ß?0Ø](¼ìĺ yÚN±\i>fúà‡†æI:›ëY±zôr”¢ËC^lþ,ùh=+›gs¡%’É|Oo”LJGžwËâ‹]ÔôR™ìèÕÛî}°X¾¤;Ÿ›S`x~çîoßðè»?vˆukëâ_?yó¦iíJ¥ë~ðãûztl®´¨»ÿ¶7½áõç;0ýÌ-?Ýróíw•Ê•±4üº³ÏüÍó¦|.g“@¹õž+ÕÃç\VË%5™/¹BÏÑ·L¢€±hiaL¶ÐSì2n«EM¯p(0DM2j˜oãy³?‡aÛ/žýû/}¥9-DvíÙû…+¿þàÖǧüñ¡áâg¿xÕÏÜÚ<³r±T¾öÆ›¾yÝ÷§“¾öÍën¸é–±´ ‚`Ë}~îŸ¾Ò¼Ú w=ðXóû|µ"0Ì›d*5å-G|7Ù‚s\#l¬Ö†ƒM/×0gù‚ˆºé_¹æÚZýó"aøïÜp ŠA¥«¯½qßþ¾c~ëîûŠ‚Ää?~çÝ÷=ðÈcÇüÖî½ûÆ­'ÄÜým»\¯Và P“ùrôÁ]“îÕ<½æ¢  =¢­5Àq s–áŽ{î+–&ü? ?¹ãîI~üù]»ÛöÔ$w¸é–ŸNöLÂðÇ·ß5ÉÜúøÞ÷ÛäОޱ³¯°)0TÔdU†‡‚ ÑÜ5n™40Ô+ÅE^þ", ™B76 ³©F 3jž³<‡á‰'Ÿžü?Ÿô?ŸêÇ_ì;ðâþ¾ãV¯:æwwîÞ;084å#\{Üj›âïñ§žm¾Zsºó¼ŠÒÂàþ½¹BO2•õJixÊÏò£î{½VÉäò‰Ä‚ž˜j¹Ø’a Ž)j€ù#›ç,ÃÀÀS_M~HR_ÿÔgÁ÷Mú¦žxk:÷âà¹{›¯6júŽó,J3·´V)O9û*i\Œšç,Sc&3ŹóùüdóMg£ìÄ"›úÌ}%@û†=c—ƒF½ùœK ³Qonž³ /;ñøÉïpâ &ùî¦ÇOHÖ¯[3Ñw7¿~Êó÷7mÜ`k@[ØÞÇšRXLÍÍpû¬Ãùç¾fŠ;¼v²;œþŠ“—÷.›ä¯=ëŒLzÂÃ¥ò¹ÜkÎ8}’?nÕÊSNÚlc@[*žDµùô\ %š›aÔ†›æjh}^››gâÎ'vÌå×½°kϽ<¼{ï¾ ×­9îܳ^µyÓÆéÿøÐpñžûzú¹åJuÕŠå§¿âäלqúô×lÁ?úø¶_ôò¹“7ozÝ9gv ³{.眴!—Iy‰À"ûÕ|lìri¨ÑŽëî),[1vu®¡“ 0ãƒý€ €À0 õ©–Iaéê¶þ9 ØÙ7T­[,†c©5‚Ƕï*W•F¥• Y©Vä¹½=¹t!›I& €ÀÀxÕzô¥ 0ídËwÿY`ŽÎçeÓ¿³sˆ§ô)ëWªpìÀ°ž1Ðæ>þ©Úúñ_þ‰‹çþK …‚WÂt”J¥iÞ³öÌ3ý_ù—Úκ°ža"‘9þ„—~ sòÉóš¯t§]âtuø—®ïz¡ýwÖ^x¾ÿ«W­ùäŸÏ`0Ø£ê»w¶ïƒ¯íš·ÄIϡ׼Ô9=ø.³$ 0ó*­ó%•L&ízH¢««¡³X€“H$’ɶœÓ# à è²_†NR,WÃ{ö6j*ÌfÒQä±NJ ]A”JwÎm´{ɉT*‘ÍÚ†€ÀÐ1oIÑQø¯¹gÇîþ\6ÕŽO¡VþÓ%çºy]¹Z›ËïÉf³ÉdçV«Õêõú‚®fu\¢*¥R©ö­RT¢¨PÖ|$î¢}Q­VºgËÐ÷¿ ·Ó CoÂ®Ìæ—-×»Ó›7dfÝCbg°X90XÎgÛ²¤µz£ÞæþºJŒðb˜^Ȳ•e³µ;¯¿¾¾wOûõ¹Ã0Ø:0T(¬üý|Ë— EÒޝïj×¥2ÇŸ 0Äï%•JfÒÉtº-?_»B]X ÃbyX*ÕwïjÓ{Âr¹¶s§í­µòƒ—¸òË?wh»~éÚu+~çƒtrâQƒ¹ü+B©TR„ù•9餵ñ—ê`ZUt»=x€–2K«}W08¸|›åŽ­P(( m©„FЂ¶|ðÑ£÷ÆtTR¹\jÍÚ o؆>‘ɤ׭³¡£ä³©B>“kÏ•žÓ©d2iþ> ƒCµšÞ°¡÷⋇n¼1(·Ó¥#c ™—m^ö¶‹^º 0´ýÛÒÈÞü#ï;¯ÑÚuÚì0ì)dËÕÚMµZm÷M¹Ð+^G¿¿V«ÕëuU‚…]™L÷ëß?ûÜ0 ¢Æ×F,ú_"“IvwK €ÀÐQV,Ë·u/ª~𨤹¾3…ÞÛ âÔÒ¢ÌZ½º]w†À %êp+@¼AØ9̉iU€–:b–¤|.gzuàØ!1BQ€QI@`@`Z*­@ÇèëëSµjÕªyù=FXºÒJtŒU«V)Ì/# €À €À €À €À €À  0 0 0 0+­@ÇðÑhDÿ*Å4%‰T*ý« @ç“f±Òé™õ K¥’Òµ…B¡ 0°¨†‡‡ëõº!€8tq¢þMOORpôkCù%00FC`bÒ¿±/ˆÄ!JÄa¤±“ÉdA`€ zi}È%Ä: €ÀÌœá$f&EˆdraÇf¦R©(BL$‰|>¿°D•˜1‡$1ÝÝÝVWâÀ¾@` ŽR©”" }Ð<mÌß’â`BF˜™Z­¦ã¤R©…^A` =ÔëuE'‘Htj`pH 03ç$f¦S½™‹ž9J``fr¹œ",¡|¨€À Àüq3S.—a¡år¹˜œH-003a*Â"9&Á!I€ÀÌœC’˜a2­¹àⳜ ÀÌd2EX:’LÈ3Ž‚@)¦/•JÍtH±>">‘ÏÝQÔ¸|Æ ­¢30ï#:aï`1SFc¦™!ê E?%0ÀäÍDªT*Š0¿2™LlÏ ˜Ù;´"Ì¢h³èÙÄùc`Iq0!# ¿ŸL¦Ói# 0‰0 £–¢,E©TJO¦$TC åóyE=!ð>…s€‰a€Ø1K“,¡Ôj5EX|Éd2•J ÀÁ¥,ÜÆR“N§[ò.ÌNô>¥‹¯U«U ;£Ëi ,µ—½"Ä“s€ a`fLÿÝ­:ú@`€Ø±Þ˜Ëårаt ;Ò£ž‰1±A8B)è9DÍá:@Ü”ËåŽy.™Lƴδë00~O¶¯⥓>Õò Àv^´1¹€–s0!# ;‰C”¯ ž2™LÇ<“ Ð~¬Ã€ÀĽéÜ*ÐG€‰4ø<˜d2é}S` FªÕj|L6›5/êÂF2%&b„b§^¯A ÄY"‘p² €À´F†n£-2ƒÀ 0Àx…BA–2±3zt¸C’ˆÿ Ubå…Ýû|â©§·ïznמ;÷ KåJ¥Zk»'RX¶"úšä¿úMþrÙL>—[ÞÓ}↵›6¬ý¥ןyêÉ'¬;΋è©ê€ÀÀ”‚0|àÑm7Ýyß=?±{ß~Ťè«phû®=wºqýq«^ûêSßrÁ9gŸ~ŠW/Ìl‡¿·xìÊq½MˆIÔëõ0 ÕaÀ¹¡Àüêþæn½áÖ-{^ìSY»zåÛßðºw¿í +z{TcL&“Q„%嬷½’ïæº{šú†ØE&&¼#ÄÓþ_½îGß½ùŽr¥:Én$ ሥùÒ=(9Ù±ù\ö¿vÁoÿæ›W¯èõ¢¡ÍC}„ÆHË_·é´ÃVã%‚oÿð¶üÆ÷ŠåÊÑ¡^«Õ«•z­4êA£¡\‘d´û^È™l:›Kì߯vçs~ïÛßõÖ  ƒÀ€ÀÐN¡V«U«U‘–÷t båé;ÿêóWm{fÇø=s´Ã(kårZðq2‰D2“ÏgóÝQ~÷­—oÞø_ÿÃ¥¿´qƒÀ€À 0 0´M`ˆhŒ´V:ÖˆoÝò™/_S®q R­\*‡õšúÌlŸœÎä»—eòG,#Ëf?vÙ»/zÃë†éøìWoßúÔîÅ|x¯~ù†ÿ|é…^½­ †› ¾àÓ_¾úú›ïh¾±^«–4êuõ™MIëµá¾Tq°Ð»rl´¡R­þÍÿõ‘mÏþÑeïI¥LS1…EN ‘GžÜ¥ì-$0@ìX„8pHw”«ÕOþ¯/Ýýàcc·„aP¨–‹Š3çØPêÛ—Íwz—'/½Úo¸å®½ûü÷^–Ëf•ˆuGM_ ˆÒŸþíît[S·6Üß4 ,Ì›(zÕkÕž«Ré—ȹçáÇÿì3_úŸüa™÷L”â&‚¿ø»+›ÓBµ\ìÛ'-Ì©õ¨°QyÇnyà±'ÿò﯊6âÀ(# ÇŽ‚“Ëé ÉdÒñu³ó™+¿yÇýŒ]­”†KƒýqÙ¬óºýÈ’­îš‡aq /z¹ÂKK¹ÝõÀ£wÕwþè²÷x)‚ÀqÔh4¬Ã@ˆ^Ãét:5¯Ë%âGwüìÚ›naZˆ¢B蝹‰ù>f²V. ´~½êÑ"e†ë~|ÇY§žô– Îñ‚âÈ,Y;víý›ú×ÃéJ)>c ™l>±gXeò…Äà8ì÷¢R'“ÉLî¥W/¿âšÓNÚ´qý/K–8ç0@Œ>,ø«Ï_U:´óÈ âóðjÕòB>…¢ø|J|li‹hCüõ¾æ0Âq”¡´ûËXfê{?¹óÑ'Ÿ Ãý}]sè­¦3Ù臵ê|=¼ Ñèß·;9¿Ë„]AÐÿâI&SéLШGñˆ§†“/TÝ'¿ly:úÙ ¨–†ËÅ¡Y„¶¨ì½«×޾€{êÙoÝrñ¯]àÅÙì•'¯{ì{ó/¾ê”õÊ.0MÍÒaßÈ KÒÀPñ¾~ýØÕÒPÿ\æDZ¶ò¸t6×52shq>‡)ÂæNüBˆ²Bïª5£Ç>E}÷ZåàüEËV­]d-ŠÅ ŽÑŠ2Fô¬»F^uÉT*JÑ/) Ì<Õ£âw÷®½úWßøÆ_>«·§ÛKtÌ~àŠ 0-îcéfÁtÍ÷o½\¯U«¥Ù¯Îõ­GÓB$›ï. ´Ñ$¡Ñ;S"ß݆蹌-Éœ-ôDà˜‡ 店u¹óÌzÊó8¦(*~ô0Fÿh´Q¾ùƒÛ>ôž‹¼DY²œÃ­W,W®þÁ-cWçx¢ó¸.r»„Ž»4Í*}ÔÇ ‰D25ËÏF›7Á·~x[ñЉ%°a€ØiŒ0ÈÐÊÞJ¦F(‹æÚ›n.¾´vX­RžüHý©w#õZµ|ð3òèòÈGìí´Y¥4œÉ¢Þô°Ë#5jÕj¹”Íœ¼h¢á…®‘S,Æl>|cИu £ ‘Éå£ËÃ¥òõ7ßqÉo¼Ù ˆ… ¬ÃÐòÀý+0°˜¾wË–±ËåâàÜaqà@ÔÛžsÐf+Gxpÿžd*uð0ªCÙ 8Ð7òt&[å­Rí߉RÓ\ž~´!Æ~á ·Þ#0°d9$ Zìñ_<÷Ü »G/×kÕF­6/¿öà²ñí–?øFcÜ¡TAИüéD¥îß?zNvûç¾à]´!ê‡æ˜Ú¾sÏOo÷Zei2Â-vÓO6v¹V.)ȬÕ*åè+‘L'œS7¢Í1v¾õï¼ÿ´“6)2ÐzÉd2Ö6[ÌñH,¦{yâÐŰZæjÇU¢ÍQè]ÞÕuðÑ{·þ\m€¸tU“I‡ ¶˜sHX4û <½cçèåz­Ö¾ujöˆ6Êè Ã3ÏïÚß?¸zE¯²°Ôè”@üÞŸÚmÄEè»/>egÑ<ðø“c—ëUswÆNóFyèñ§„%ÈÄN£Ñ0KÒXvJP :Ø3;vî›:Å–†¦òÌó»ˆE/9Ê ŽJê™ãŹt~`xáp4hԾÇÞÿΞžn…ZÃÃÅ+®þîøQÓFynçUB`bÁð‚:°tlß¹{ìÂÑ)AÇùè‡/Íg[µzýX¡mšÑÝÑö]NcP–ŽCcSÕˆ§‘5¤v™ «Ðz©T*—Ëùp}4084‹ŽW*:§64?RlwF/mšrÙYé @ $G¨,ÅC}Ðé © •«ûKa—Á·itqRÉ +—¥æcw:¶iŠÐ*S†J­ñØö} ‡êMÛP©zÚÆ5‹°i ³ùÚÃ`©"-ÌÈⱞٵ XV £8iÆ;VÁÊÕÚ×o¾ïG÷mS˜&‡$KH>›ù­ Ï\³b™RÀ4a–0 ÷rH ÇP­5¶<öìÖgv)L“C’ ^¶=»÷ÞGw”ʵdj1Öaáòe¹_yÍæëV*>°ä²éÿøÎ óÙŒR€ÀméÁ'^¸îæ­ÉdrqÖm îè­]µL`–ˆz#øÖmz⺠^µY5@`€öSªÔÉDoOnÑþâÀP¹R««<°t4‚ÐÒ 0@»J&‹4¸Ðº¿Ìò=Ûð3”I£béTò÷Þ~žâ4Kx`ò®‚@[XÑïväýLlXÕ£ÓI ©TJ˜„hÉdâÕ›×+µ p8ÍÔ²éT>;ÿýœLFfC`b›‰eù¬:‹ºçQ`"F ^‚EŸ»#ú‹ÙB ÆA˜ÖH«ÔŠÄÝÊå…t*58\I&eá¶ ,ä3½Ýy•‡ØzjûÎõkרÃ"ؽwŸ"€Àqwþ™/Ûp\o¥zp5†Eøsavç³§lZ­ò['Ÿ°V”à%ëV/‹¾Ôˆ '= 0 0-e–$hÿÔ mýø/ÿÄÅ6"´# À„Œ0ë}ï{_µZäÙlöšk®Q(˜„ s;:Éäïa:Ö7¾ñ E€¹o%&b„èXÎa€¹3Ât¬D"¡0GF€ŽuõÕW+Ì‘`BF€ŽuÉ%—”ËåIîËåŒBÀäŒ0+‚É*ÁäŒ0@Û¸ü+ÂŒ˜ æÎ 0 0 0ñdZUf’/“É LY=#‰D"ª›:³V(h›Àu†™E`šúúú¡Ý­ZµJ``©wõ€–GJ 0 0 0Ð),Ü·H0À0!# Юúúúa|Š3b„€¥+­ЦV­Z¥ÀB3 €À €À €À´ë0LW­VkíÈd2m÷˜ùùzâ0~oX¯×‰„R´©0 Óét¬Þ@`€ÎQ­VËå²ÀÐÖ!—Ë  À‚H¢m½Ù FD±S)¦ÙÖ’#”fD›€vÕh4¤…é‹jUL@`@`@`ÚŠiU¡½…#ÔÁ8†l6k†v é´]1°02#ÔX Îa@`@`@`@`@`èXi%`ú‚ hߟ1»Ÿ G,'¾ÔžïR~âmý”#ɤ½bÚ·o‘J¥fÝ F,'ÞÖÏ7êAFOyÖ¡Ñh,©'ÞÖO9za ‹ñ£€À €À €À €À €À  0 0 0 0 0 €À €À €À €Àtš´LS&“ñ˜=ñ¥Æ 0 0 0ñôÿâCµqâR4IEND®B`‚plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/font/0000755000312500031250000000000012621413277024700 5ustar eacbforgeacbforgplugins/mojo-marketplace-wp-plugin/tests/jetpack-start/font/genericons-regular-webfont.eot0000755000312500031250000003512712606005234032652 0ustar eacbforgeacbforgW:!9LP@³ÔâGenericonsRegularxVersion 3.003;PS 003.003;hotconv 1.0.70;makeotf.lib2.5.58329$Genericons RegularBSGPW¬%ç%ëÖÍéŠÈ`ØWÉhKqJx"U:r,/–4\›Ü liÒÛÓñˆÊšEÇLFM´ÆÕº±C>¢¸À©.Ø"H­É,¾&SfZž}V o6Ác¤euPœ˜®1¦R Òj®-Å·Ñ ôA›Yw>{ =‚dBUÐ/LªÀÁèoé¢Õz]Æü•ƒ®© ‚9« Y@žk‰šÕ—_5b]AkÖ ýÄ=š¢ß§~¥$ /2ãÂX.žÐȳÐ×’ÏØÙ½€+,=f`ÜÚŸ;Iæ¶Ä®á ë!‚³n˜³¶’ÝX2#¾ï¥9É‘(0dNI×ACxWà†[ à‹æ|Bgª¨înà pÐü;Ù}aàÛ4p;Šë!€s¼ÊµÍô÷!"°(\ÐAÅ“X™bçUǾp/+®Bu‹P ó¸°”Yx@EÉu•.,kžÇr:§ ­ò´¥¯ÕJ„oЏR™Uxk(ú ¢Ô)]g ÈW\’Ñ…Üî0“7°ÏSTÎÆp**fÿ 84[·]0(*d a0Q¤` IÅwÅfEÆ*)³EÉXȨð ^ð†o¬‰$袶°2 Õ5&šè…‡Îˆ°>Æèü;¦Žd‚šïè\@ZÉuÒÂeà¨i›ž“p˜á±F’ÑèpëEº‚wFÔÒ“~…A† 8Z}Þõ‹ßÆTÑZÏVÄS9ÊoÚ±²eÖ·Wóx¾{Öö§×Îà(“ø ‰“F±‡Þ©f³Â^Þ]¬ƒTæ ^ÍᑆÖÜè¬õÙæbTÉ»p¨µG^µeûçx=›IRBEt¨þw˜Hyz!Ëž=èÆ oÍ•®“ÍŠÅ1Õ=Šhˆ¬­äŠÂf"œÞå€Fg ¤Â: Ï?ä•“ù?F2G;§¹•Oñ´SoÖAYãŽg4ùG:©ªZÍ£@B si)3su)¡æµH?À1ENãP}ˆ_GpOa¸vE Ý Y­”“=á¦Þ ä³?ÿu‡oÔìÑòpcHpmTÝ3Í!]ÐýSPß#0ÏE’›¸ y`ï‡Ê$¾?Ü6(³ªòÕ3‰a[/¾%z,mWpÞ–Ãï;âC 4€øµcH?ÿ[ЗÛfGç£N»ö™8ÙAŽ:é"_ÍòÝ8 #-;/Š4¦Æ¼WÔÁ1ÉE”/¼¤°I)Þ@ƒñü'éêÀ2Ôo3ÊVúáªô¡úÝt³®“ª«’{©F«KC€o˜¾dÐh–2$ê)ÓÎÄ“n[ˆ‹| *ˆä&w‹$IXI¹ Z~ûI ††mwÝöZlï„1ø¼CÝ"P7i<¶Ž8‘M;‚Þ×fm"ß&àÕŠÎØ5ñp;µGÏ} ŒÆ ¼( :^K‘ÍÉaœÌú¯»¾Jž-òêó3_ H&ˆ—L`ïP%v™¦ä¸AÔµEèD,‹Â‘!B ¬¿„‘‡§Ñ÷nõòʰ­ÊÊ8ó5˜*z„x›ê +óo& ËU$~Êe#G¼Â¼”¾µµAÏŠ•È‘õ ÒòÓt=`F5l½¸PеOw¤j(6¶‰\¬’ãF®„PÚ­»¢+ÛYȶ&‰™Îÿcî”Q§h¹Nͬƕîq¦ÓÊB ¾hÓõ”!tuôñœÃÀ¢`ÈMê•^^ªg¹¦’P²{Mî Ä„„€(,$s9/¯p¸‹à«€2šÖéR*%Íl¹1'ðNz¸X ù—¢‚À®VºYÕV?BÖ<í@e¡‚&²!Rj$W¶M†¬²MTA¤†Ò ŠDxÊ³Ø  UÚwPõ¸4Xˆšã˜'jv#ÉæèÞÉt艾[9|>ô iкfVÙ™£âÜ—Ä¡(BH¤f¨6lOeÚWš6å' |˜ôFV‚°CŠÆ(q",#Ó¦¢Î15Ÿ×IÏãM~’_ñês$š…±Â’×ϵï—ÖØÈ¾¸»õ(áÇ–¡Ôù©U%(yÍZ¥°çñ/±ƒcÄØEòóg2+þtdÅ…ÑøÛ†’º:ºwÆòcOµ8tó•„Cõ[Bª@„] ¡>º rîк€ù€ŒŸ0î£_Ò`ÓDƒW¯ ŽÜ¼|íb@hÒ-Ùna8 "!–z'›Z&õ¾NµÈ+øMñnöuž)x‹³ö%ê48žÜ’²‹’ù9Q÷Ÿl5õ2p[læm ‚¿„A*«"ªZ°°EÄL„]b:¡¶(Q†ú%p€ ë^ÿ…I¶Î´‘æ™ûK~W®E©Z5]Œ˜ Ê‘ ùp)”Sµ{qr¯Tëö§R6ôÅ X àAÖôÖ°JN¾¸»O°½ÄU¥y3€‰Ä·°adÛÑœ¸ÿ&彈q=ç­þ†¸) »ê¹Üpâ#LB¶ïÂܲ׷bPÖó6z¦§îØqFOS'ËmÑÍmËû†às¦8ïÏL‰O'pGñãÑ-a« s’Ñ s\þm´ ›œ…‰˜c– ‰âï+9â1X˜9¶†J›ð ³¢!œ”Ø‘ú¢°H*£FvÈ7K¸]ZËu—ê§ŽÕ¶)Ob4|Ëd¿qý†} _£~øhzêi°ÌP¢_€%iØÌºý|‘Õ^ ¤•õî{ŠüuáHh!IýI€>@—±õ“Éü±Õñ¿¤Î–bk¦yf„ Á”1dâƒ!»"Àñ\?ÜXâŒb¿ª_ÆÈÀݶ…‘Œ#Ócí@‹e™¿íB*2Û¤£Ë»þ¸È<.{µÖán7îKÃb…4í"½ ÐÄÛQéˆ>¾g›åPå€ÉœÐ«è¤ïÕ•„3¹AÚèÐ.Ðõ*¨Dó4³#…BBXŽa|[1ÊqµlP²A%½>ÅÿXŠUñ7nh?Ø€µQ–QŦ¹Éù5N>4Ÿ€a‹U .(k½ØŒ¡g‰À%ר* 6 Û»H rQ: $-ÀƒϤ‹OwË¥ÂyGfßîÿy¶˜ÚÓ´ªƒÊذ×X$뢡¬}rƒé$<£ƒ¡ƒzõ8ÄÞÞæâœÓŠ@…Ž\sжmš=X„OÙõª˜ÇTè­ëÐ¥¿…J¶R¥÷ì 7|X¬PWE‚a8á“tõï̇³[P©7¬&mÔÃÎØèSí¯Z4)´eÊÓeö k" ظªWyk,€Ì€ r v~ò-6WèÏŽÒGséYÇqÙ‘Â7Œ¹¸ÌÆ•Y!q WÐ,ŒLÓk\Ƴ€QXº@š øÌ‘Ýtäy†ó)ÕècrÏ[5±B?æ§“ËóꜻH›²“¢Á8Ý O 8Tɪ(¤Îä•ÙãÄ.ø®–)ò°è¥aÜl ­§@I×›:NU›Äó¤ ‰zy#{sŸ‰Q¤lµOm!!k½œƒNuVĵAOoõü’Ï´`c"Qc÷¶Žú£ž€<›V =±ÆIŽ!Nd¼”Ö•Å<½¦óB؃í~˜J‡úC–3äÌøÎÌ`G–<ŒˆÉàY³½ ‘ÛxúÚ#”)³:’³c‡ªî¬dÍ›%ö"nCâTݧ×5þ‘a@-…nñÒó”/Áö[òk~R$Ídúé.&wíU åBáÃÊÞw™ÑoõÙ)-'òÿZ à*s ìQCò*ä æεµXT‰õf.ÈÒ£ ]¼ÝfM|hu¹Ô8÷Œ%Kö&˜JÈ}½à xó‹Ý8–³¨¢R4kH1œíSÐEÕá*×Ý9":7w Šý`µ^–* QµÐ½nØùÒÈmežÒux8ðQõïN¶›¡ ð}¬¾ž«;Ð Œxù,q‹ÃÐω–MEe.ûÓAË–ÒÕówÏܰp-T“ÿð¡ÎŒQ9t-1Û4ôÙæNʦ^øþ0Wsž7É•§ß|wRzÞ_pNˆëfšÂ”ìwyŠ®ÙP^n«}/øc4}Kû¤V2Øaû|öPzrZ±Ae¦>}ÄÆ"»Ø LtŸ³Fº è¹ôíž.Cš bŽ„cÅI€G‘Ìæ!Ú Ù”¦æ¯÷²œT­¥ÊÈ»LêÒ? –Š‘£¼+¬/’Gã.AVF}h¸aÞ–±¤üdK,ì£T¢;­EÔzªŒU589ÐC3OåeUÑSØ_‹½Uq¶§0P£Oˆ·2×¥PAc+ùøGiée0[Éx»F.…Ô"I" ºðs°¢Bd½™~ß(`nÇ¥í§œ"æ¾PUÕò‡1úîtÍPómr0^”}M‡DÜH˜Ô•ÜX6#YS‘† ÄVj½ïŽW¼ r´/žÐ`+]Gùpb >e*·Á<¥SÖ(µÊL¬x à-9„L دø”0ßÇáè^Uò.=F©9´âÅY&` ½Dfˆ™ŠêI¬Nnªé •sGû:ô:o“! ÷bo–ÚƒŽ,ÕE€ÄœN×lë 8½ú lÖ’p—þ¶îpâ/Ú¼Q"œí7êÈwÂ'vQ×”ûÃIÉRm@ÿæoÁ$¡‡— €g¯Iì€é±…u†"T‚+ƒu=éÙ~poó‘@’¤˜'|ñU À Ô03µ~z‡ñ#†åÉUêB wa jYyÔjSöÆeÂúô†¤äcG(°$ae!pc‡€£HV‚jÊK+$éõ{˜©ïâcÀ¼„T-6ÊW=›¡}¬Àöêðn3d¤ÖÞ¨´Á½^ ¡³ ‡zKîÛòe$)ݧÔìãî…\̪2¸£Ì¸ðV²>Þ,¹¡û3&$q²ðWYŒd†Rá\­tY£jð\Ÿó`ƒNt]Õ.?ª¨TÝjóÜá`ŸŽ+U¦R|n·4þÏ®îª(`!²†¼akkÄr€† í¾ä†¥ †¶aôíŸ ÂàœxnîfJ&ȶa¬Õ0*ˆ¾øZwcƒè{0Q>Œ3ôÃÿx'ësëôŠ!!¨¹ŽÙZ†Í yçnÈë~?  êVJ¹ÓBk¶f§l«ïD¦d‹K+f …Ù6=<ù¢ "2Ù€@tƒ6K‰ùSdùH<†µé€^}&ŽâÝ3 *•É E¦ã€·¨27ªæ­Ð\‚ÅŸlK˜Ðd£R» ˜êI2mhqz2<ʰ,Tx¢„­É€—…ÄJMºXSÿz*óÏÈVÉiÜŠŠ ¼€ýƒòwÅMìö?Ex!y²®Ý|Ìw­0°‹_ŒóHgÞ/qïlß'f:N¤@S}šÁL•Œ±@òåha²)(1Pþ„  o”ªW—Aå§sb Òá)1E îMœN»fy¶±¶}d$Eéwn6êî}$ñ;3„˜XíÄÔ9Dmô P±Ï@—*'×Bˆ!ÁMûÐSŸ¾Ç g¶¨çºÁTbÌUõnff„ÂéË±ÈØÃD¶¹¸<´Â55ì¯b•rKÂ@T­ãí¬*é¨Å0+›å-µà|­“ƒÖT©-ÛÞà‘ý¹ê­ÎÕwÝÊ£ó‡<¿„rEš³e\ºÞ:5ÎAÐüDÅ1p’±~ ÙD6g(¸ŠR‰Ñ Od8þV­ù© &&ãîZwô ›„‡Õ·[ÆŽed¼Õå¾4hÏb™¤©V£ARÈ]PíÞ­ªÁÿãà¤ñ.ó>ДÉ`ðBÅɨŒÂš½ôà@%tg¯ÁK(ߨ, 5ŠzÕpÃ0{(réâÖBr"!õ?ux„ëö`Oc)Z´KÔùS¼‘ëÓ»‰_´o“0"^ @ú[ê8ÉõEn SÉðŠ,¤¡FA'´èQ–‘ÁÔ`!AX4PºÆu¸S–tYàìT„YÅŠq~*HÍù:δ[à½kzŸHÊÕ E÷5ô”%1%mWm¯´£õíïmpÃìî2Æ÷PNv“Ãwb»B] eo ’倸0è%IÝY`¡ó>6ƒ‡‹Jdtªy„aÏŠ,nÙ29ø‘s7«„)?S‚²Š6OiZ‹Y¯X°«fÆóögôTNoXÚ1òÊw‰@ää{q-_ “gà'¬Ì[F)»»04I –T%–Ä€C„Å ¿brç+¦ÂM&&ùÀ==ôï]–ZCõº¹¡ˆÑß!Dø<…¹xçÔ˜`ý'±j:B (Ü‚"±®Å…µ'üYkÒƒƒ­Ê”eV^¦ Æy๜$;ˆÄt! Ô’ÜL~2G¤}k¹Žcµc2ˆI’‰I€¶•4y’–P¢¸ˆ’!؈‰‡Å1Šf6 ,‚Šîc,r(º$7౦Á'ó5´›8PXÑü&Ö.‰Ò@Ø!_xYU=Šx-VîlàKMòí¤ÒϘ+|¤˜l˜$œ!‘gA4T~㤗3‡ì‰¦C¡kC‰ro°,e&¢Zâ›Y7ìSI99§à¹Ü¹2œ^Yª° íq0zíÀˆÊ™#:Ž««#b¤«€ó‚ÌõìøÀZöápnˆËÀG™^Fãž?S kÉ1NÝ;ןI…6æ®ÁŒÒ…È‘XUú²ŠÂ1užÚz<û3šŒ¢”¬Àż˜€À' g8ÊÅ €Å“ã,âöZGfòêÆ VTò¡PŒ}[˯›%ÆD°nªbv„L8|ºiNÙNgd¿´¡Äó±=Yäh)3ºòÎÔ×Î0} (Ö{AZÏ´6NÁ8¿Ö§ C,pl¦'jÉÓHdqhœbiáö'òÌ£€L©ˆ„×ÛëÌRD)"8ǹP‘„Z+¤k(óã˜ôèÞ om)Ôà†ÍÊ… …Lý;oä‰CtÉ |Æ\ ÅþÍ7H”›ø¼hH sÀ%ÚgÜ%]ä܉›È+ôCªžšWÀ…•½ bÁdV3Ü)þ0½?‰x€ „÷¯‘¢Ø”NꆊÍV­sƒÔè4¦Vÿ™Á– L‹Š¯PÇì ¢?²U¤ÛøNDÃqà¶È9a°ÖˆïÁÉ`á>Fö±éÿn03VÔÍP T;^¶ŽÀN½ÚÏ)ô!DÉ>\óÌuG¶Šr9K`Í» KØ?œŠü‘óqTÞú Ÿg]GRrkHd›ÿaV^Ÿ I›Е€v¢,®R‚ÃýÁÐ,„e<,÷ˆs†)6ÀFÆB~ÈO"ùçÕíJEï‹n’+ßÌF»Cr%)lð®]û"A‚Þ†g•Åøþ+3a½S×ðÆv˜\’¤Œ‚Ãò›³_@‘¯a¾~56ROÉβi}FS· bQ)¤Ow•*¤'x6”ËèMͰ…:ìÎÏàÝÈ|ù¸m¡ü`Çâ„8"láYýÿ ™%>n’"¡¶  ‰ØŸÓl4èrf¥Ë³,¿ÇVó ΄H3ÑQVý &¬(÷˜Ÿ/ç2U˜vàg=Ý:øo€ YlAÐ ÂeyýþãoqSÕî`%„ÛaÂÛP}¥€C‚ MøQëHKXÉ/ÖNƒšIùÕœ[[DŒê›4Ý‘0XÄŽjYM2=€Œ!؉¥D†9zMT%’¯s†¤øïØ„$=ZQ Ô&‡L{î,÷ÜSŒ Ý„z–åpm¢O@wkÏÉ–{DËwl}à)ifíˆàÑgNâKd¼L( /¢š³Æ¾„(ïÆ`mbôUÉeìÙ9`˜—Yrëp‰y†õý€²&Ž!SEØV&5§Ê0'‚Âé*|ŒºÚl8ÈÖ Ž|]]%O à® ¢Ì (§ùDü¥o7Ž¡åc»ÄeänýÃTzIÿA!µ'’X±T¯SO?´ýŠVV±«Ìm'—û?ø‘¹FyÝ7FÃ] ?k33šw¨›¶Å¤J4Ä'ç© ¼ó;\ŸóšhJã…ˆ£YT_Œß! - _G˜ ªm¨T„Œœ@,óC-Tb#Cê5± Ií fWr'nÞ™ˆ5•,Bc‡{ñÓPr±Ð.¬mS&€BÁÑ„þ­ÿ+#sQ:NjFHSÒE­ŒL/l ÉD¢&šÄ„d…þð]ÝýåÂÐD‹Â-ôz(×óD–µè *ƒ<1qç )Uââ`9õçø¬¿,´æ›F®ñ|©~ëâaÌÂQ(! §? ˆM•ˆôø!«ùø0¥M˜äaûÔ¡_PusøBdÐ)—Ry4Æ^½§ —ó²$ó‡Ü€&‘.·çe. ²:nÙbäFÛñ À·=W${ÚOµsóe ¢wS—ì%á~1úž)”„Ær$'^,ÉiYžSbõ„ö& ªú¦ÖEsBkK“„–Ô^¶&Ξʽ‰éï=É ‘1­…1­Ø$^óv•ð]¥ÙD~ ¦Úr !ZlÅ : ãC|$f÷W+–QÒta-í~ƬT–¾ÖÍœCSxYêh¢ˆ_óP°‚Ä(ÆØ² ¾U–GÌf°ÂÉõ¯:÷!£˜”Šû2rœ‡|U®eEì4ªa‹è='L¡0Z¨¹™ÑP”Xÿ-­úî&™u ‰ããÇë m›D¥æ.¨º“±É¢`ˆ A5ÁŒƒ—ÐZwŸè”ÐvGJ–3ŠÅ5dž57iJ…^”rq2ÄxQÆXô†™7°k/Šõ`IÒŸ«á»1"»tK92†1“– ‚Émˆb%ãÑÁSa ÚÃßGHVb}H#"¬!‘à’m1±&>¥+Ã#@Ÿ $!‚ƒjó‘ éÚ ¥CÉtg™å÷‡¸"qÍ•˜|ÌMnÅB[± ‚L$1ÑçW³D«ø T®Œmb %ZMÿå!þ=Œõn§ƒÆþë¬×xÛΙÖϦœˆÕ)ñöµPÂVbA1x[ªUD &YÁM ]`¯hãí,²Ö#¼IT@¡Ô¦³°íÄwå³ÔŸ†¡±ðA wÙñiNÇSÀÆ-ŒH‘ ÚJ€Fd„.I«ps õTŸ›Ò²4Ì 5i»–äpÛx4¸8TARÐWQ’n¿!+ÊM6¤înE9Â<„‚´HGüLÃg@E-[ëp#ðŒ¸íþÌÄ e’,åÂÝ8Ðz¸ðjåO*`2Aˆqæ5ò3~yÔReOª©z?êQÐBLÖr‹n:ƒ•†l¬m; ¸ìÚʰñ2›EUˆ®I¡Ô "ƒÉÍ %â»ÔPN‚ÆPqQ%¦§‰B–áW³{Úù˜ö)°pÆZÔÕhPœ„ؼjànM˜‹¼køDQ/¢¾DÐþ{X ÅX)Ž€Ñw¥›:6«†íiæBJb$MWHßšÿHtÜÚªB =Ob”<ó³¶éA.yoí› ½bØ(ƒ"~ØU= na$ (?òkc÷e†N "ñr‹8–›iÎÔ¤ë8\!þñ¯3 €xû´yÛýpð`3U$g¨‰·@U“Ñkåc |ì¹"ÉÒ 0áoÏ=–úñð3¦§Eì—mÏ ÂCÔŽšw#"œÍì\`yLS`»©“ëfZºý—ò½e”VM\Z㸹պ¬¨¹ ìÕh§5=<”«—t Œ8cŸµˆb@þ¾AG“Ø LjD×GTFUFžˆ—¡ °UóH«v1T—EYl °Ø]¦*‡DUp©´­L Wê¯3ñ]W¹k›ŠÒ´žf+ÄU툩zñRE¢£è…E‘ ‰! >¯òpå2îoL¨I€µä€Z‚,¹ ` ¨(›”(›h$›N›@š€!6$!6òk•JEû=«òk'ÄÖɨÝPú&äškÁ4Ëri>Ù¤Zæ‹çš+žhn¡Wæ€]šnÜÐFÊ vU®¨u`*ªçUVšj²ÑU†j¨óUDŽ©äuLâªQ_ðÕï ^°Uâý]®ÕÐí\.Õºí[MÕ®ÝP+u@mUôj®ëUqY«nÍ[jγV9аËÕA)Tä¥R’•F‰U%T^Ôjò#WI ·‡ÕŸT.uP)Õ|«¾j»Çuºթ]H×O}šõ˜Ã@}:¢M'Áÿ®yZR{΀[µ%mg'P—´1›°áâí9w8ϺˀТŠöδˆ,ø*ŠÊámxóm7+.¨ø9Dq?\ªv¹ádS¶Ø*mAO@;¦èéì—1°±JÛ£QYëx¿¢h¶üH¼>ÜLuÎÜž*Ë,H­ãZ).]$ +ÞŽKŠQôÓn0•áÔ&µ¡à·ªíê#GѺvŽ­¬IÅ—‡•Ùʶ˜›Ý3,Fæ¹êuñ4†ÉD97æÇ²Ûçr¦¶LšcºÓFr Hx³Yð(M…Ü·–@0árÿ&ç¸JB> Q¡šUQa¥0hB)é¾L3„C6…ì`®›sŒÔùôÎpìÕàözqY.—üª8Ht‡´Ð‚*}¨‚aÌ𬂑o ‰L®88fŸ =ú±²Zö_p&/Tƒh ´Q£Á)ÜÐ}¶>|’¥šc^>Vö¾Q,B¿Y„Fól±"`¯6²Z`c"wu˜—–xiÊfFþ`kÂñ*ò´xƒžîT0«µzü•)»8õ.§€¶ÅIy.”‘^^—»â6‘ËÛi€ØÈ°*N #‘6CéPÀm¯v(P\›`J¹‰L 9‘‰P¡å@_RM0ƒþÂÍZ W¸=´CºF¥4Ç£B‚S–»XgÑÍb'póð&çÉD†±Ì0SÁ* Žp,z¯cI«ý¼è3Ÿò‡ÓhšA1o3’µ¨!w‘•òqÿζàMî!|[ÛQOÑú¨Òà•e±x`fÐÛuØC‘|¢ïÌÕ3µãä\ÉcLà!æçðRÊÄ€¹GÞ,¨ƒvp+¬àG²¬½‘ÈD+7ÿº°·Ô&´ô|&oñ±Vx’JË œSv‹€ùE)K†÷'«zw f¥éIÍØï ‡ÕµµèéˆÆ.ÉÕMÂï0ž¼*1çYøÆa÷××HÈg*äçäï@¾àÿÌBÒ·–ÈÀ+ªwDÜÕdŽÁì`}^Vù¶7ûl:¥Ëª>¥ÚÔºÕ`7J‹1¤Kµ¿ø?[vœj´Ðwƒ/]1l¤ž‡¤Ñà ”ÇŒÀÖ*„Δñ9‹¡-Ñ9ÆÀõ¦Ì í3DiCÊÚ\Ô5m œÀeacRã/¹¬:{Þ JEߦÍEºDH"†¿ç2û®(?)-3³ó²Jb³“&…¶¨ÂÍ{zÌgç·Ç&I ¿’c£Á\²è4*©QÄ¥_-½;>×KÅ›Ü?M$Wpà‡¥åéC¥úUÃcYLú ÆVmA$;ö0b©¥m"ßÔYwtD'T;ÔëõUÚÐ÷a±M?AáÁ°~ û‚ du Ê"‹Ÿ]׋x|¡³Fo-DbÈhù$5µûö5I®½”¦*€!Ó‘G:ìø™L³Ê8S*ü¤n¯²EtâœÀJÿð¨LT‚»€ƒµ$%É@ÏZ»Ò|KÚ¯D9`Y9j8RôŽOf‰à^䳎9ƒÉ Žçgκ"U‰òÁ>ô°©®œ,óùã{ùœm…¤D±°·|ˆé­é!¹U|*‰ Ãhù•Ö¬©›Å$Õ.lÀªöŸh+±^#ã³­d¢ˆ’è­ßP/Õ"»U«Çì«4Å"<¤CAQ«² Ä8–‹j30çzÝÁˆ]Náƒq`ݵ£†Ó‘Ðñ>.éã·>w+1J’:0Š’atÜ…û@b@&ca‘¬ˆ6XäÎéÎ'3B3ħKT`¿e.Ì,Ã#åÌÜ} IrcSxR¦ê¦.¸$j‚ ]‚e"YÙQjÄÎJÕ‚h©…#š£¡QØ:ÚÁ“Ù*dºÎ ¯>¦ãê9tY¶¤µþAš6Fï4ußCÁþ#Tn Ùé` •Û•Ô.Ö2Ä$¤ZÆ¥%F¤Ï›–ôæÌžì‚`)²"$QvX*^ªOøBj4.0ûØÆ¿âž?î5EúÞ5Þ~‘fkåÃ3 ¸w£àYüÌ¥Š|OWÊrµ òì¢;dYhoI!Q¨ü†_‘ÀP-$`¤2Ú°nËÒ¦®É<)š >H ƒCˆa°ùÉÕüç1 ¸xqùd#`ð„/ÑG°ÂüÖhÒü*Ó6yŨ«M£iO¢ª÷B2«4Þ½è©Ífï¥û«,Vù©R53¨&ûÆ”²=4΋EN*Åi5ªvî-}x¥“ÿ÷>á7ÐóÃòõêò¸õ¥k:íÑ¢RÏ+‡(€ò[©ùsu#õéD” Ce¸ñ]ÿžG-—ƒáˆ]$èx+˜RóÛ_W·i†.ež!Åìé"& \|3À8ìoÏÜ“ZÜ–ìn‹bK‚gô$)NoÜø¿33¦•#€Š_jÉ-½“úbºµ±à·ùFሟüÐxg÷rt‹Ö.ñõøÊw²dÕaÀ[íM1ØXt%+”…M£MÞŒC$Œõ¥—âÖµÐyƒ Ä°%‡²XFsÇÇâ*Bö‘nÁçÍ^R€é¬1%¯8¶öH»ÖĈšÚÎl“>u@k«òŽ*µǾâçfhŒÌˆÓ<ø“¹%œÛVd°ö)ürB)Nì ±uxó–M‘QŽãuZ`¡VóÂFkSHÜ®¬à3¸< ºÒFÁPVÖ]Åb[$(!{ÝÀ¾³@×)á¡fìÕ3j‰è²éÀæ¶³0¯ÙN‡ßn`B¾‰¬QÅÑÙi:æH¼Ÿiõ_aãÓá„ÙqÏuÖ¾„9_ I¶ä¤ÎÞû?.}ÁרþÌGKÃziPÀÃôÕº0š!ð¬C,¨Ë{ÎvîúÇMS»íËÝ™TN.r︺Œ£.y¹gS$Œd@²/È<²(ú „k.ÒIÜH¶"A1…XâfÂúæ”"W1¸Ò¼h×ozãTÛ»J7È‹pð¾ŽX~D1fµwõd<‰›¶­7ÒýÄihUU!ªÓ:ÐfSÎÿÃŽ©àŽKÅô‘Ù‰€ÕéèÙºV?\‡Ôƒ€jv…ÀyÏë?ûžW辪ÙU‹54r{Eð¹Ú‘[nnóñËš2âþ>”RuHtî{Åê9]&|r9ÃWBb¿žcÇÓ¥5¦Î§Ú,dvåu$4xZÌ`!I*8‰K»C^š¤[k•  @pVyú-3 94mž^îz‘bÝ<A {†K)V}û«Sµn½:CSZœB&Y@te­gÁCÄÒ¥˜êfÃuxŠ‘HÙ¢…Áf­)@MÉ»¬^£š(k¬@+!^ fiK‚ÈÎCsˆˆ~"¨iË5ð— éE£ö W¡Wü;Ê3¶ðìh ”°¡>"E]xMí…m^œ1¤bIŸP×!(œR²‰27Z¨"wUPÜî  n:'µE{èX‰Ü'[A£ï«dôqð±5ÔÏMúX¤¹d_Þ ÙÞ8š[æ:…ä`9<¶™I‰J7'̓5ç ¼ôR1 …Q¸"U.—(¤Ñܧ,(KµKx$*dD­ _A?¡“›½©‘+LH|ÿbÄØÜåºÇQ [¶­ŒR‚BP!b!gàBcF`Èm¯c¸"!‡ê™}bh È@߀Ì-3é¸1ãØ&gÀɵ×[.Pìt÷XNS¡fâ>4>ð‘ávXú Êw¾â6"VðRPÖŸpˆ‘öXì¾ýÓ@+/$M—ÈuObõRý¢cçæv=€-$í¼ìpÍp*d㸎Æ)Å/ NÁ/ ðc…ÚŽžé êR8Òp-EOnº&¾/'ŒhCWLâ¨R‡úoSÈøîRxap­"…æVÐq-îïHea#-w˜—°ÀÅ[ž)!Çãˈ;‚¼ÑáìyoÏ3” ø4d|Lrjö?'¯¡Ä¿¸ *+F\îÿ˜ˆC¸FwŸ^¦ ‘„š™Eù" §‹0p(X“]áö·Sß“±™H-äïÖ0LÖ‚,øq:JÒÁSQÝüG?òvc¨g’¡aqßÀB˜°Añ”ãe¡Ê èÔ¦™99[ͼOb‚žM &ýé`ÁÖ4L•*Ý}—ŒWçÚœ¢4½P%H>AL©òºZ“œAO³îáÊkÒ'àÃï8 ê5ÐP¯È¥ø–¤QYP틟²Á5ß_FKäjG®¨¯(è”eëyž¼.G ív¸”¾ÅÃÑ@Ö{ «ªÈ/ãvÿ…®˜n>kCÚ˜PpÂla¦@k¾œ6» b¯"!µÜ‘ªÁ…eŒ˜YM€`(GŠy #VKÈžæTGi”©ƒ¶´eªèÝF9ÝT©ˆ9ØEGïù…¾z˜Ñ"êt=4,o…B5n¢¢Ê@NEúí°·“&@dÚj8¤èàŒƒNŽSYؾ$LhGRœ õys5ó,2.ÍG§xç" ÉQ@“ ò4ifÃ¥CükeÊJÐûtÓ…ߨ0bD‹ÒÆ^d™"‚ª…Õr)å¿IÔN>á…Ü,äLr+wYê2?${äÐÅÆfÂVP¿.Ðd¿›¸}Ëq&îÅ•ðz,)´ì–`~MÊ\•›Ĉµ©¹Ÿ[¬¶¤gxs¦lqfÏœtsË"C ëèÖrD¶8¢¶„lÒ€•öm/#- íJÀn^75JµUgJ€ÝyC TV žíFo`Î?Ø@"#±UÛ )©v ï| æ@“BزÇ"'ªªTªªªªŒª¼ýD_ÿÿýÕÿYÿÿþÔÿþ1€ h°/°Ͱ/°3°Ͱ2°/°3° Ͱ2° /° Ͱ/°Ö² 222°Ͳ +³@ +³@ +°±+°ͱ22² +³@ +±+015!5!5!5!5!5!ýÿ€ý€ý€€ÿ€€€€€€€€þ€€€€ B° /°Ͱ/°Í°/°Ö° Ͱ ±+°ͱ+± ³ $9±³$901$  $264&"Îa¢aÎÎþŸþ^þŸ2–Ô––Ô/¢aÎÎþŸþ^þŸÎΜԖ–Ô–€€€€ !z°/°Ͱ /°Ͱ/°ͳ +° ͰͰ"/°Ö° Ͱ ±+°Ͱ±+°ͱ#+± ± 99°°9°³$9°°9± ³ $9°±9901%!5!3254#"46  &€€€ù€@¹ºþúº¹þù€» »»þö»€€€ÿ€ü€  `ýà¹þù¹ºþúº…»»…„¼¼€€ C°/± 33°Ͱ 2°/°Ͱ 2°/°Ö°2°Ͱ±+° Ͱ2° ± +°ͱ+01!!!3!€€þ€€þ€€€€€þ€€þ€þ€þ€€ü€€€€€€ý€€€€ 4°/°Ö°Ͱͳ +° Ͱ /° ͱ+± °9± °90146 .€á>áqÿq€ŸááŸ|Ä(ý耘(Ä€ \°/°3°Ͱ2°/° 3°Ͱ 2°/°Ö°Ͱ° Ͱ /²  +³@  +°± +°Ͱ°Ͱ/² +³@ +±+01!#265!!#265€þÔÔj–€þÔÔj–€€ý€ÔþÔ–j€ý€ÔþÔ–j€€3–°/° Ͱ+/°Í°4/°Ö°Ͳ +³@ +°±+°.Ͳ. +³@.1 +°.± +°Ͳ  +³@  +°±'+°!Ͳ'! +³@'$ +±5+±± 99± .³ +$9±'±*99±+ ³$1$9014672654'5 &46 5654&".jV@p p@Vj»þö»» »jV@p p@VjÀ€aŸ%—9Uþ€PppP€U9—%Ÿaþ€…»»€…»»…þ€aŸ%—9U€PppPþ€U9—%ŸÀ€#,°!/°3°Ͱ/° 3°Í°$/°Ö°ͱ%+±°901463!2#!#"&7!2652+ ``  `þ@þ@€` €€¨Ø`  `€þ@€€`  `þ€` þ@À þ`€Ø¨€ `þ€` þ@À€€€ F°/°Í°!/°Ö°Ͱ±+°ͱ"+±³ $9°± 99±µ $901!%64'7>4&'7€€þ€5KK[);5ZGOOG[Xc.S:€û€KKÔK[=EL'NŒ6ZG»Ð»G[Yê‚W¦;4gk°e/°^Ͱ*/°Í°h/°Ö°6Ͱ6±+° ͱi+±6²KMP999°¶54'>&'.&'..'.'*67'$¢{ÐÑ{¢þyþË$"EMy€V7i  3/ :0i7V€yL5 ?XW  "6   "  $6=R."$þËþyÐ|¢¢þîþ…Ñþ±ýëgÄQ‚; Hj®r¡q(H_11%!!%1’}sŸr®jH /Z 87 # 8!  2x g#,:GPt² +°&Ͱ/°Ͱ8/°Í°Q/°Ö°Ͱ±O+°B2° ͱR+±O@  $(-5;H$9±&@ *>?@BPL$9°´;$9°8²!/D99901$  $67&' '7$7'!27>7&$#"6'67$¤{œ{¤¤þíþ…þdþ…þí$tl}¬ç@þæþq÷ ÂôгÂþñØHµ»!¯ÞþˆöfÊ M‹i)~þ·¹ €P'ªLz†G¶÷T:[œÌþì2œ{¤¤þíþ…þdþ…þí¤¤I§þÏxÍ6M0€V2H.öUþ»ûšÀP,„JþÑi¦þ¦: >B$~’ýp3T !³9_jþ¢˜þÊ—lTÀ.€,€Ü33 7.'327.=.547&546326767# €0(Èw¼$'/2¨PWLX2ŠŠâ ؘ l€i*wmfIn>u¶âþÙ¤þÏÑo Ê„+2¢^eTªË '-˜×t?„G -oP zøê˘W€€€€'D°$/° 3°"Ͱ2°/° 3°Ͱ/°Í°(/° Ö°2° Ͱ °Ͱ/°3±)+± °901463!2#!!!=4637&#"#3!"&€–jj––jþæ þæ+B¦Ni^’X,þþý,j–€j––jûj–ÇÀ <7ò 7^uDìþüý9–€€ç€N°/°3°Ͱ2² +³@ +°/°Ͱ 2°/°Ö°2°Ͱ2² +³@ +² +³@ +±+0134>32#"!!!€Þ4f«m7jÁL3IþÅþÀÉ/NŠn@þæ@EÏþÑü·I€€€€T\fް /°WͰ/±%433°ͱ).22°R/°Í°g/°Ö°Ͱ±<+°O2°dͲ54.'. 5463&$#"327&'654'€ŽðLlLðŽŽðþ´þ”þ´ð4úÍþF…4%l#",1&°}U…O&k##+1#Q N: nþé›ÏþœOptŠ‚ø‡·Úc=JlLðŽŽðþ´þ”þ´ðŽŽðìþ{dœ"ü—X"  üž O9\!.Y5"   9VeoÄú™!.§ýŽjsÛϳ(*‡š€€€€EYeœ°W/°(3°IͰ/°ͰC/°3°ͲC +³@C +°2°f/°Ö°2°Ͱ±"+°2°$Ͱ2²"$ +³@"8 +±g+±³F[$9°"@  )+BKTVa$9±IW²+F999±².8999°C·!#$;\b$901327"#"5463!2!#!!3!#!654&'.5467654&'37!">!"&&6'.€}Í I·—–jj–ÿ€ÿ€–jþ]#$.L´ZS ‡ý¡åE9Ú€TJV$<ý´UˆA{y½€{}Éæå=9!<%Aj––j€ÿ€ÿüj–®k  4F;·q·0Žbú£Ui ;1"1%e6¡Ù壠Àм 3H°/°$Ͱ/° Ͱ4/°Ö°Ͱ±+°ͱ5+±± 99°±$99±$´,-.$901;265.#"!!!47>32!4.#"5!eQTfdSSgJþ¶I V?:L!I9g‰R$B3/!  þ·IbbIK`aú¥ßü!)62F:aEýî8p¬k7 #àþçþî]€€€€ 7}° /°ͱ!+22°0/°Ͱ Ö°63°Ͱ°Í°8/°Ö°ͰͰ±+°!Ͱ!±"+°+Ͱ+±,+° ͱ9+±°9°!±99°"°59°+±0699± ±(59901463!2#!"&;265.#"!!!47>32!4&#"5!€–jj––jûj–QACSPBCRþù™E3…§‰2Q8"þø€j––jûj––x:OO: ðJ+ °°À±ù°&À³&+²& Š Š#9´&.....´&.....°@±5²9=999°"²0999°-±)99±0)³ >$9014>$32#"&''&7&5463232654#"'&«G•Ñ+®°/ÌtªþÈÇc¯"I"]•¢(fSX%=yeu¹cþêø‹íXS #ƒìmÜΞ_yÉþûŒöþvá]@þÞ9{“6§{°Qw‹»kR3’Â9c¸1¶Öc§Ûx“d=( 3V…²+°ͰI/°8Ͱ/°Í°W/°Ö°%Ͱ%±3+°LͰL±F+°;Ͱ;±+° ͱX+±L3³+/ST$9°F·8AP$9°;±?99±±T99°I@ %)3;?P$9014$32#"'6732654.#"67>76&'&54>32#"&7>54&#"$¢{ÐÑ{¢¢þîþ…Ñ“JHŽP¢ýŠ^¦÷Žò©z9jgDG€ÀqÉáP–^Rc 1GCRs qþíþ®Ð|¢¢þîþ…þ^þ…þî¢*tg5K·?ÈrÔ£bM¦³YŠÓ* @ Nza²‡QÛ®”÷•uP.žv*BW˜q+Qþ%SaŠxü `` (°/° 3°Ͱ2°/°Ö°Ͱ± +° ͱ+01 6&  6&  ôXôôþ¨ŒôXôôþ¨¬þ¨ôôXôôþ¨ôôXô€!5°/°Ͱ/°Í°"/±#+±°9°²999°³  $90163232%$632#"&€Ty\Qlýna þìþ‹„E@ˆpq8I<41ÑY°clTþáýóþá×Ã[ þS˜\°°OH/˜q€€€€°/°Ö°ͱ+01463!2#!"&% €áŸŸááŸüŸá€€ý€ŸááŸþŸáက؀(€"#° /°Í°#/°Ö°Ͱ2±$+± ° 901332767#"'&'&5!!#ØÆ„_]}n[Xx†‰L<,ªþVÿ-0IJk¢ý‹yBAr 8X$-.šÌÅ‹Y]=@#€€€€#+;‚° /°Ͱ/°'Ͱ/°"3°/Ͱ+/°Ͱ°8ͰááþÂK5€5KK5€5K€j––jûj––j5KK5B>ÔþÔ,Ô>BþÂáá>á€5KK5€5KK5þ#'+.P°//°Ö°Ͱ±+°2°$Ͱ(2°$±-+° ͱ0+±³ $9°$´!#$9°-³"%*,$9014762#"'&?'%%7''7 5¾(¾ýBýB„¥¥5þâçç§éêêBçþâçýû•¥ÓÓ þ-þ- þ, Ôœnnþ¨þ¨4¿8š¿3ý¿œœœý"X›¿¿šXý¿nÜ€€€€5W¼¦° /°Ͱ>/°¯Í°J/°R/°Í°½/°Ö°Ͱ±,+°6Ͱ6±’+°wͰw±+° ͱ¾+±6,°W9°’´¼YgB $9°w² v999°@ "02<>JM_p‰™¦­²³$9±>²&:;999±J ¶76'&'&7./&67>&'&7>'&'&7>'32=.'&$€ŽðLlLðŽŽðþ´þ”þ´ð>ÛxÝìˆf;W–Ést°'6Iroþ¶§¨þêGJ WX-²!Ðþ§È—¦|x {LH•ý”’bœ£b$"hþÜŸþÕmmdšmnß;=KFÛOU32\\P&434TS;9 +(/.H  ELG.&G++[!JV…BDe%âor87&#ꃸWV‹rxS[à kTfþômt==JlLðŽŽðþ´þ”þ´ðŽŽðÝþˆÛ÷̈‚uÑœj0Ây—þ®x{pÞŸœm™›Òàþ•í”ÿIG9”þ•ÖŸr€Œ{9'~•uokþÙzwÄ!S][âJM<>_bTT1G)XGH<7S%?8+J!+"LR'7 DeAk/mŒJkg++suyyŒÚ‰Žss*#"Ãk¿>M;>ik€€€Nh‹°/°fͰ€/°‡3°Í°…2²€ +³@€Š +²€ +³@ƒ +°°z Ö°5Ͱ'/°n3°*ͰŒ/°/Ö°iͳOi/+°Í°/°OͰi±@+°Ͱ°7Ͱ7/°±t+° ͳc t+° Ͱ ±Š+°‚2°‰Í°„2²‰Š +³@‰‡ +²Š‰ +³@Š€ +±+°6º qÀ³+ °H°FÀ±Vù°XÀºtÀ(+ °G°EÀ±Wù°YÀ±HF°G³FGE+±GE°H³GHF+°V³WVX+±VX°W³XWY+·EFGHVWXY........·EFGHVWXY........°@±@i²5n999°²\fz999± t³'($9±Š °)9±€f³@ $9°²;999±'z³/it$90132>54./.4>7>54.'37! 32774>7>32#"&47>32#".5!3!!#€@yÅ|uË‘g2 6$!U%,< .’—þþøIM C\~I8 =JŒ{32I(Ï"+A$#SH- #3>A$ ¶¤»ãv3[.8cD2;4=:dC0»€ÿ€ÐBw_82Vq€C(E=-7B+0/&B>Y2+N?0/U@§T8k^G* ,.+ KNG/Q0* $.7*23q ´n@#*9\st4q;9Zqnýú€ÿ€ÿ†€8€ZH°G/°Í°[/°Ö±4+°7Ͱ2²47 +³@4/ +°7±=+°ͱ\+±4²OUV999°7±"G9901>7>././67!07676.'#0. GCF§§±¡˜{\ (m]e7(+loxohWA  (?%4nTE!DC88AÎ{i#?R[\S@BÙŽ9( á:)£¡Æ\Nr;  HU¢ã}Y‰S7 þë ""-'(  "+$-²ýæ \N¥L‚[J-!}2A-`PM:, É in€s€!x¬°/°(Ͳ( +³@ +°k/°cͰU/°ͲU +³@ +°y/°Ö°[Ͱ"Ͳ" +³@"g +²" +³@ +°[±.+° Ͳ. +³@.> +±z+±"° 9±.[¶(Mu$9° °9±(°9±ck³."u$9°U³ 6$9°°9014>32632#"'#"$&547&32767654'&'&'&'&'&'&'&54763232764'&'&'&#"#"'&'&'&'&#"ƒá…wEK«8â…3ƒá„{lOL«þÈâ…CŒ64Ww·–qo<;"#=:UMnY#!!46\a,+ /5"":9RVo‹lk9974\_~]=9!!>AiN-/ +4#$—…áƒK …âþÈ«`Ujo…áƒ:†â8«VStýóKNL/?..TUgX=>&' ."$ >0$#\2/--('JIafDA((2@), "41!!€€2[°,/°'Ͳ', +³@' +°3/°Ö°Ͳ +³@* +³@ +³@ +³@# +² +³@ +±4+±°9±',°90132>54>32!2+2#!".#€À1na@ !YF 5K0&0&K5@5KK5þ@AtGZ*€€^¡ø‰-!TšRU %&K5)B !')B !'5KKjK(0(ÍŽ3s1:IRdlt}v°*/°?Ͱb/°YͲYb +³YV +°\2°R/°k3°MͲ4gw222°8/°|3°Ͱ2°/°pͰt/°Í°~/°-Ö°<ͳ2<-+°Í°/°2Ͱ<±K+°PͰP±f+°jͰj±C+°&Ͱr Ö°ͳy&C+°!ͱ+°6º>Ãó{+ °°À±ù°Àºñ§Á¡+ ±°°À± ù° À¶ .......¶ .......°@±<-±/499°K³86$9°P²*SW999°f³?GYb$9°j³)[^_$9°C@ mpsu|$9°&±$w99±RY°<9°Mµ&-/$;C$9°8µ!26uy$9°²G999°±99±tp±9901463267676>32#"&'%632 $&547.767&#"32$654&$#"4632"46232762#"'$462"264&"654&#"ÍvSd<·å\9S0JiiJGfþúMÞ¯$9ÎÖ¶jjµkl¶jjù\BB\B˜+88+VVé\BB\Bz@--@-ý¾=M0(:€.‹°/°,3°Ͳ +³@ +°(2°/° Ͱ//°Ö°Ͱ±+°Ͱ±+°2°"Ͱ2°"±'+°*ͱ0+±°9°° 9±"± -99±²$%999°¶  !$9° ° 9015!265> '54&"#"&%5726=! &/D/ÇÇi/D/ÉŽÉQi/D/ÉþäÈQÑÎ!//!爽¿ˆk-0\".."þŠÂƈÒ0.Ô!//!ØÑ‹ÆÃ€$=° /°Ͱ/°"3°Í°%/°Ö°Ͱ±+° ͱ&+±± 99±° 901463!2 $72764&#" &"–jj–ÎþŸþ^þŸÎ&j%Ž%j%J65%þÚþÛ%l$€€j––jþ€ÑþŸÎÎa‡j&þ–@@j&jJ%þÚ&%%€¿€B 5 7 €mþýñqýížrržýðlýñþqþ”¢#þ¸þÌ YþÌþ·ý7sg3þÍgsþþHþÝþ§Å4þ§þÜÀ°/° 3°Í°/±+01463!2#!#"&–jj––jþ@þ@€j–€€j––jþ€j–þ@À–€€ #°/° Ͱ/°ͰͰ /± +± °901!!!37!€€@Àý€€€@Àÿ€€ÿ€ý€ ° /°Í° /° Ö°ͱ+01 !264&"ý€KjKKjþý5jKKjK€€%]° /°Ͱ/°Í°&/°Ö°Ͱ± +°#Ͱ#±+° ͱ'+± ³ $9±#µ $%$9±µ !%$9016$  $&2>4."3o½½oo½þûþâþû½[›ÕêÕ›[[›ÕêÕ›¥€*Z±½oo½þûþâþû½oo½ êÕ›[[›ÕêÕ›[[›þœÚþ[þÖ[€€ °/°Ͱ/° Ͱ/° Ö°ͱ+01463!2462"៟áý–Ô––Ô€ŸááŸÿ–Ô––Ô–€€ ,m°/°Ͱ+/°Ͳ+ +³@+' +°/°ͱ 22°Ͱ2°-/°Ö° Ͱ ±+°Ͱ±)+°$Ͳ)$ +³) +°$±+° Ͱ ±+° ͱ.+01!53!53!3!2654&#!"46;2"&5#"€€€ûK5€5KK5ü€5K€&€&&4&@€€€€€û5KK5€5KK5Z4&&þ&&À€€ 6—°/°Ͱ5/°43°Ͱ/°ͱ 22°Ͱ2°7/°Ö° Ͱ ±+°Ͱ±+° Ͱ ±+° ͱ8+°6º>ðƒ+ °4.°3À±,ù°-À²,-3...³,-34....°@±µ&'()*$9±5°/901!53!53!3!2654&#!"463!;'.7#"€€€ûK5€5KK5ü€5K€&!€-l®€€€€€û5KK5€5KK5Z4&  þ-± €€ #'+/37;?C·°/°Ͱ/±$033°ͱ%122° /²(4<333°!Ͳ)5=222°,/±8@33°-ͱ9A22°/°ͱ 22°Ͱ2°D/°Ö° Ͱ ±+± 22°ͱ"22°±$+±(,22°'ͱ*.22°'±0+±4822°3ͱ6:22°3±<+±@22°?ͱB22°?±+° ͱE+01!53!53!3!2654&#!"53535353535353535353€€€ûK5€5KK5ü€5K€€€€€€€€€€€€€€€€€€€€€€€€€û5KK5€5KK5ý€€€€€ÿ€€€€€€þ€€€€€€ÿ€€€€VVzz>7'72?64'7&"'V 80‹ãµ%k&µ&&µµ%j&µ%%µãþuD[V-4Q0‹ãµ%%µ&j%µýáµ&&µ%j&µâþuD2N°/°Ͱ/°Í°/°Ö°Ͱ±+° ͱ+±³$9° ° 9±°9°³ $9014>2#".32#"[›ÕêÕ›[oï€þ™¸uÕ›%¹ºþúº¹KêÕ›[[›Õu¸™þ€ïo[›þŽþùr!f°/°Ͱ/°Ͱ/°Í°"/°Ö°Ͱ±+° ͱ#+±µ $9° ° 9±°9°³ $9°° 9°²999014>2#".32#"5![›ÕêÕ›[oï€þ™¸uÕ›%¹ºþúº¹‡€KêÕ›[[›Õu¸™þ€ïo[›þŽþùrþ€€)³°/°Ͱ/°%3°Ͱ#2² +³@( +² +³@! +°/°Í°*/°Ö°Ͱ±(+° 2°'Ͱ"2²'( +³@'% +²(' +³@( +°'±+° ͱ++±(°9°'²999°±99° ° 9±°9°³ $9°° 9°²999014>2#".32#"5!3!!#[›ÕêÕ›[oï€þ™¸uÕ›%¹ºþúº¹‡€ÿ€KêÕ›[[›Õu¸™þ€ïo[›þŽþùrþ€ÿ€ÿ,Ô #+f° /°Ͱ#/°'Ͱ+/°Ͱ/°Í°,/°Ö°%Ͱ%±)+°!ͱ-+±%µ #$9°)´ "$9±'#µ!$9°+± 99016$   $'267 &#"6  264&"úe , dûþeþõþÔþõdërMÅØÄLuþžàlÅKá>ááþŸKjKKjúgssfþþgrsgúþNSSMts¡RNýí>ááþÂá5jKKjK,Ô+3@°*/°Ͱ /°Í°4/±5+±*²999° @ %&-2$9°²999016$32&#"'4632&73267'7 #"#"úe –Á¥gplÅKþŒðˆ%ZZü-áŸ,6þ,gplÄLuñˆxþeþõ–Á_ÔáŸ,úgs_.RNþŒðˆÛZZýSŸáþ,6ý·.SMtñ‡þˆþgrbÔ6,Ÿá€€ 7   €@þÀ€@@€þÀ@€þÀþÀ@@€þÀ@€þÀþÀ€@þÀ€€  7   €@üÀ€@@€üÀ@€üÀüÀ@@€üÀ@€üÀüÀ€@üÀ€€€ !-„°/°ͱ22² +³@ +²222°/°ͱ %22°,/°Í°./° Ö°Ͱ±+°Ͱ±+°Ͱ±+°ͱ/+±²"#999±±()99°° 9±,± 99015%463!23333333#!"&3!264&#!"€K5€5Kü€€€€€€€K5ý€5K&&&ÿ€€5KK5€€ýÀý@Àý@Àý@Àý@5KK4&&4&•   Ü·ÛÛ·Üýµµ´þ¶ýéLþ´Jý退€ *°/°Í° /°Ö°Ͱ±+°ͱ +±°901 !!!€€€€ü€ÿ€þ€þþ@À  5!úýÀþ€€ý@€€€þ€€€ÀÀ  77''€€Àü€þÀ€ÿ-`S`þM`S`€À€þ@ü€€ÿ€-`S`ý `S`À€À °/°Í° /°Ö°ͱ +±°901! €€€ý€€À€ý@Àý€ý€À B°/±33°Ͱ/° Ͱ/°Í°!/°Ö±22°Ͱ±+°Ͱ±+°ͱ"+01264&"2!4$2 !$p pp pÑ{¢ÿÎþŸÑÑŽQÆnÿËþ©þ& pp p€¢þîþ…ÑÑaÎnÆþäþ¯þrÑÚWËë® ° /°Ͱ/°Í°/±+01&7>#!3264&"NrXø9››:÷Xr§ùë}3³4þóKjKKjÌŽÕ]CC]û+ŽÌý€€üµjKKjK€€€€&._°"/°Ͳ" +³ +°/°Ͱ. Ö°*Ͱ/°Ͱ/°Ͳ +³ +°//°(Ö°,ͱ0+±,(³"$9±±',9901!6$32"'&#"4623265!!#"&'7462"€6K=‚éX%Jj&tšŸáhLj%qœŸáþÊKþÂèYp pp ¬ÔdY%jL&ráŸþdjJ%sáŸÿ¬ÔdYr pp p€€'}°&/°Ͱ/°Ͳ +³@ +° /° Ͱ(/°Ö°Ͱ±+°Ͱ±+°Ͱ±+°#ͱ)+±²&999°± 99°²%999°± 99± ±99013 654&"2653"&546  €» »p p&4&€p p» »þùþŽþù@@þÀ…»»…€PppPþ&&Äþ2 & 6& €[›ÕêÕ›[YPþiþiP§» »»þöKêÕ›[[›ÕêÓPþj–PÍþö»» »`€à7#`€àÀ€þ€ €À`ý °/°Ͱ/°Ͱ/° Ͱ /± +01!!!øøÿ€ÿ€ÿ$N°%/°Ö°2° Ͳ +³@  +°2° ±+° Ͱ$2² +³@ +°2±&+± °9± °#90147'!'&$>54'xkã€èHPÙ§´þܨ€ÕGQÙ§´$¨xkã›kãý€èG¹h°þí+þúÖEý»€ÕGºg°+Õþº»›þék €°/°ͰͰ/±+01!€€€ÿ€(°/°Ͱ/°Í°/°Ö°Ͱ±+°ͱ +01!%!!€€ü€ü€ü€€S@ß#‚°/°Ͱ/°3°Ͱ2°°Ͱ!2°/° Ͱ$/°Ö°Ͱ± +°Ͱ±+°Ͱ±"+°!ͱ%+±³  $9±"²999±³$9°³ $901!#64>2"&264&" !#Supþõ“€ÀV“®“VV“®“*qžqqž¢upþõ“€@Ÿ>þþ€i®“VV“®“VV9žqqžqþ€Ÿ>þþ€ 2°/°Ͱ/° Ͱ/°Í°/±+±±99± ±9901!!3264&"€€þ€ýó3³4þóKjKKj€€þ€ýþ€ý€€üµjKKjK €€ #+7;?C˜°/° Ͱ8/°3°9Ͱ2°B$2°;± +° ͱE+±;8±239901!463!2!%!#!5#462"462"462"3!264&#!"5!5!5!€K5€5Kü€€ý€€€&4&&4&&4&&4&&4&&4Z&&&ÿZ€þ€€þ€€€5KK5û€€€ü¦4&&4&&4&&4&&4&&4&Ú4&&4&ü€€€€€€€€/°/°Ͱ2² +³@ +³@ +°/°Ö°Ͱͱ+0146;&54632>3232#!"€–j»…†^/»rŸáj––jûj–Ô–#…»`e{áŸ>B–Ô–€€'&4?62' 7€ÇJJéKÔJJJéJÑKþ9  ÿ€ ÇJÔKéJJþâKÓKéIHþ9Ðÿ °/°ͰͰ/°Ö°Ͱͱ +01462"–Ô––Ô–Ô––Ô–€Óí­°/°Í° /± +±°9015!7 '€€þ©WíþWW€€WVþþVWÓ€­ 7!5!'íWþ©€ü€WWÀþVW€WV€@7 €€ÀÀ€ýÀ€€þ@À€ýÀ€€@  €@@€þ@þ@@ýÀ€Àþ@€€²+°/±+011€€ü€€€²+°/±+01!€€€ü€€€€°/°Í°/±+01 5!€€€û€ý€€€€€ #'+/37;?¸°/² 0333°Ͳ!1222°/²$4333°Ͳ%5222°/²(8333° Ͳ)9222° /²,<333° Ͳ-=222°@/°Ö² 222°Ͳ 222°±+²222°Ͳ222°± +²$(,222°#Ͳ&*.222°#±0+²48<222°3Ͳ6:>222±A+0153535353535353535353535353535353€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€ý€€€€€€€€ý€€€€€€€€ý€€€€€€€€?° /°Ͱ/°Ͱ/°Í°/°Ö°Ͱ±+° Ͱ °Ͱ/±+±°901463!2#!"&!!264&"–jj––jþj–€ýKjKKjj––jüj––jü5jKKjK&ƒ°/°"Ͱ&/° Ͳ & +³@  +°/°Ͱ /°Ͳ  +³@  +°'/°Ö°2° Ͱ 2° Ͱ ± +°Ͱ°$Ͱ$/±(+± ³$9°$°9± °9°°9° °901!5 53!!#5463!2#!"&$264&"€þ€ÿ€ý€–jj––jþj–€KjKKj€ÿÿ€þ€€€€j––jüj––ŸjKKjK€€ H° /°3°Ͱ2°/° Ö°Ͱ± +°Ͳ +³@ +² +³@ +°± +°ͱ+01!!&462!462€þÝÝÿÝþÝKjKKjK€çþ¡-þó -_g€5KK5þ€€5KK5þ€€€&T²&+°/°3°Ͱ2² +³@ +³@ +°'/°!Ö°$ͱ(+±$!± &99±&² !$999°²"#9990146;&54632>3232#!!!"!!!€–j»…†^/»rŸáj––jþ€þþ€jjþ€–Ô– …»`e{áŸ>B–Ô–ÿ€ÿþ€€€"D° /°3°Ͱ2² +³@ +³@ +° °Ͱ2°#/±$+± ±99°±990146;&54632>3232#!! !!"€–j»…†^/»rŸáj––jþþ€þ€þj–Ô– …»`e{áŸ>B–Ô–€þ€ÿ€€ v°/°Ͱ/°Ͱ /° Ͳ +³@  +°/°Ö°Ͱ±+° Ͱ ±+°Ͳ +³@ +±+±² 999± ° 9±² 999± °901!!!7 !5!#€ÿ€€þ&þZ€€ýÚ€€ý€€þÛ%€ý€¦ýÚ€€ 8°/°Ͱ /°Í° /°Ö°Ͱ±+°ͱ +±°9± °901!%!!!€€ü€þ€þ€€þ€ü€€€€€€F°/°Ͱ 2°/°3°Í°/°Ö°ͰͰ 2°ͳ +°Ͱ/° ͱ+± ±9901463!#";!"&63!&47!"€–j@5KK5@üj–€K5222üÎ5j–û€KjK€–ŸjK7’7  ``.6v°&/°2Ͱ6/°Í°7/°Ö°0Ͱ0±4+°ͱ8+±0µ )-$9°4³$ ($9°µ#$9±2&µ!$(+$9°6³$9°µ $9017&547'7677627%%'#"''&'264&" èè:1/<‹ÉCCÉŒ831:èè:þÏ,?‹ÉC CÉ‹83þÏ&–Ô––ÔëÉC CÉ‹>ü¨ŽÇÇŽþÇ %s°/°Ͱ2°Ͱ%/° 3°Ͱ°#Ͱ 2°&/° Ö°ͱ#22²  +³@  +°2° °Ͱ±+°!2°Ͱ°Ͱ/±'+±±99±#%±9901%5! 463!2#!"&!3!5!#!üý€K5€5KK5ý€5K€€ÿ€ÿÀþ€€þ@€€€þ€ý€€5KK5ý€5KK5ÿ€ÿ H°/°Ͱ/°Í°/° Ö°Ͱ±+°ͱ+±±99±±99±² 99901%5! 463!2#!"&!5!üý€K5€5KK5ý€5K€€ý€Àþ€€þ@€€€þ€ý€€5KK5ý€5KK5€ %5! 463!2#!"& ''üý€K5€5KK5ý€5KlÄZþ–µÀþ€€þ@€€€þ€ý€€5KK5ý€5KKEþðÅZþ–µ€€€°/°Í°/±+±²99901 !2'.#!€þÀ@€€Ô,–J¼dÿ€þÀþÀþÀþÀ€€þ€þÔÔþÔ–JLþ€€€€ ° /°Í°/±+± °901 !2'.#!€€Ô,–J¼dÿ€þ€þÔÔþÔ–JLþ€4°/°3°Ͱ2² +³@ +° 2° /°Ö°ͱ!+±°901!2>323!!".#"€#93>lGFoKKoFÿFoKKoFGl>39ú€&&&&ý&&&&€K°/° Ͱ/°Ͳ +³@ +°2°/°Ö°Ͱ±+°ͱ+±µ $9°°901!!!75!!'&!!ÿü€qpýpqýý€þ€€€€žqqqqž€€M°/°ͱ 22°/°Í°/°Ö°Ͳ +³@ +°±+° Ͳ  +³@  +±+±±990146354 2#!"&!54&"€K5,¨,5KK5ü5K€–Ô–€€5K€Ô,þÔÔ€K5ý€5KK5€j––j€ U°/°Ͱ/°Ͱ/°Í°/°Ö°Ͱ2°±+° Ͱ Ö°ͱ+±°9±° 9°°9°°901!2#%3264&+53264&+j–9Sf»…þÀÀPppPÀ€5KK5€–jWH'œ^…»€p p€KjK€€ M° /° Ͱ2°/±33°Í° /± +°6º=ìé+ °.°.°± ù°±ù³ ....°@0173#7!#3€(€ð€(À(€ð€(€€€ý€€€€€ B°/°Ͱ/°Í°/°Ö° Ͱ ±+°ͱ+± °9°± 99±± 9901!%!'264&"€û€€þ@À€KjKKj€û€@Àý` µjKKjK€€ ° /° Ͱ/±+017!'!7'77'!'€šæššþ€€ššæf€ššæšþ€šš€š€ššæš€€šæšüæþþšæššþ€€æšþ€š€À²+°/±+013 €ÀÀÀü@€À5 Àü@€ÀÀ€@ €ÀÀü@À@€ @À@Àø€ÄâÔ³@_<õÎõ¿Îõ¿ÿØÿÿôªô€€€€€€€€€« €€Ø€€€†€Í€€V€€€€€€€`€€S€€€€€€€€€€€€ €€€f€€€€€€€@&&&.’ÞZ ®ä:Ô$‚P"pÎ îbö ² x ®  6 €  ¢ œ@F¼0¼Z†²ÜP€ú–\’ð`ˆ(JÔò$@l–ø6°.r†²6`â&Þ R t š ² Æ Ü ð!!$!è"8"º##x#Ð$4$l$¼%R%®&&:&X&v&”&¢&ô't'¼(((¦(¼))")L)È*$*b*œ*È++d+¼,,V,ž,à,ö--- €½ ~ Þ Þ ò : $: x^ $Ö ú È É0*GPL version 2 or any later version with font exception (http://www.gnu.org/licenses/gpl-faq.html#FontException)GenericonsRegular3.003;UKWN;Genericons-RegularGenericons RegularVersion 3.003;PS 003.003;hotconv 1.0.70;makeotf.lib2.5.58329Genericons-RegularJoen AsmussenWebfont 1.0Fri Jan 10 05:53:51 2014ÿÎ2€      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~uni25FCuniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF200uniF201uniF202uniF203uniF204uniF205uniF206uniF207uniF208uniF209uniF210uniF211uniF212uniF213uniF214uniF215uniF216uniF217uniF218uniF219uniF220uniF221uniF222uniF223uniF224uniF225uniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF307uniF308uniF400uniF401uniF402uniF403uniF404uniF405uniF406uniF407uniF408uniF409uniF410uniF411uniF412uniF413uniF414uniF415uniF416uniF417uniF418uniF419uniF420uniF421uniF422uniF423uniF424uniF425uniF426uniF427uniF428uniF429uniF430uniF431uniF432uniF433uniF434uniF435uniF436uniF437uniF438uniF439uniF440uniF441uniF442uniF443uniF444uniF445uniF446uniF447uniF448uniF449uniF450uniF451uniF452uniF453uniF454uniF455uniF456uniF457uniF458uniF459uniF460uniF461uniF462uniF463uniF464uniF465uniF466uniF467uniF468uniF469uniF470uniF471uniF472uniF473uniF474uniF500uniF501uniF502uniF503¸ÿ…°K°PX±ŽY±F+X!°YK°RX!°€Y°+\XY°+RÏÑ?plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/font/Genericons-Regular.otf0000755000312500031250000004344412606005234031112 0ustar eacbforgeacbforgOTTO € CFF ÿ"ð@&GSUBG OS/2qÕp`cmap®µ§r °headlĬ6hheaä$hmtxP¦@GFþmaxp}PnameñT³[p®postÿÑ2Ð Ä%Çš_<õÎõ„Îõ„ üP}ó3Ì™3ÌÌ2ÌUKWN@ñõ ü  Æo oy€ o<Ù ë Þø Ö ê :ø Ö x2 $ª ÎGPL version 2 or any later version with font exception (http://www.gnu.org/licenses/gpl-faq.html#FontException)GenericonsRegular3.003;UKWN;Genericons-RegularVersion 3.003;PS 003.003;hotconv 1.0.70;makeotf.lib2.5.58329Genericons-RegularJoen AsmussenGPL version 2 or any later version with font exception (http://www.gnu.org/licenses/gpl-faq.html#FontException)GenericonsRegular3.003;UKWN;Genericons-RegularVersion 3.003;PS 003.003;hotconv 1.0.70;makeotf.lib2.5.58329Genericons-RegularJoen Asmussen(( ˆñ ò òò%óô ôô)ô9ôIôYôiôtõÿÿñòòò óôôô ô0ô@ôPô`ôpõÿÿ  ÿ % . ( "     yÿÎ2Genericons-Regular:ø—ø˜ø™ø@ J‹AN H‚ÿ‹‹ H‚ÿ‹‹   – ;È$+29@GNU\cjqx†”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰—ž¥¬³ºÁÈÏÖÝäëòù#*18?FMT[bipw~…Œ“𡍝¶½ÄËÒÙàçîõü &-4;BIPW^elÛíuniF107uniF108uniF101uniF105uniF103uniF106uniF104uniF102uniF100uniF206uniF201uniF200uniF202uniF205uniF109uniF203uniF204uniF207uniF215uniF214uniF212uniF211uniF213uniF210uniF208uniF209uniF216uniF217uniF224uniF222uniF218uniF223uniF219uniF221uniF220uniF305uniF303uniF304uniF306uniF225uniF301uniF302uniF300uniF404uniF307uniF403uniF308uniF401uniF405uniF402uniF400uniF406uniF407uniF414uniF413uniF411uniF412uniF408uniF409uniF415uniF410uniF423uniF416uniF417uniF422uniF421uniF420uniF419uniF418uniF426uniF430uniF431uniF425uniF424uniF428uniF429uniF427uniF438uniF439uniF437uniF435uniF433uniF434uniF436uniF432uniF440uniF445uniF447uniF442uniF444uniF441uniF443uniF446uniF455uniF454uniF450uniF448uniF449uniF452uniF451uniF453uniF463uniF460uniF459uniF462uniF456uniF458uniF457uniF461uniF470uniF471uniF469uniF466uniF467uniF464uniF468uniF465uniF474uniF502uniF503uniF501uniF472uniF473uniF500003.003GPL version 2 or any later version with font exception (http://www.gnu.org/licenses/gpl-faq.html#FontException)Genericons Regularp!BGNnu|€Ÿ£¨¬µº¿ËØÜéîý #.9BXafosx†Š–› ¤©²·ÊÝãêóøÿ")-27<IMXajotx|‚”¡ªµ¹¾ÊÐÖáèíò÷ü  ',5;AGMSX]bglqiJ ü<ûì}( ø<ûì÷ìü< ! :  ÷Wú÷B ø&øƒüƒýÔø”‚5 -÷ ÷!A û! üƒøƒÐêµ÷÷7 ûÒ÷–û–÷Ò÷÷µÐê û!E÷! DRE ÄÒ % û÷÷÷. WýûGXù÷!þ”!8 û÷ " R ù÷”" & % ' øP 1 D1 û÷÷÷X  U ÷Œ÷\û]û‹T ûû! g ÷÷÷÷÷÷ & ø÷ ÷”4 ÒÄÄÒhÒRÄD 1ú”,4 , û!û? C' 1ø”,ú”, } û–û–ûÒ ûzûNûNûzûzûNTTûNûz ÷hû@÷@ûh ûû & ÷!÷6 û ÷û ÷”Uù”1 € Y ` yû@ûh ÷”÷” û÷” € ø÷” üDø û”÷ ÷÷÷÷l÷û ûMü÷”ûü”û” S ú” 9÷÷ ÷N÷z÷z÷N g _ ÷h÷@Œ ÷”÷ - øLZ 4 3 zÒÄÄÒÒRÄD ý”k ýT ÒÒÄ ûc ù”÷ hnnh iz üÉü_ü^üÊ ù û”û”KO÷” ÷Eû#÷#ûE ÷¯÷y÷y÷¯ ÷W D b ú” ‚ Z ü ü$&ûRû$ ø ÷÷÷‹÷‹÷ M ÷: g ù÷÷÷ 4  ÷]÷‹ ÷_÷KÞ÷÷ ÷÷ÿ°À _gg^^g¯· ÷øw ÷9 Ž÷ ûhû@ DÄRÒ û ýù ûìü< û” hn¨‡  ‡J ÷f û‹û]q ÷”f ûù”ý ÿwÞ¸ ÿÿO@ ÷”÷” ÿiáH ÿ À û.û. ®n¨h ú÷” ÷û ûý !55! ‰Ž‹ŠŒ‡ˆ•’‘“–—”˜Ÿ žœ›š™¡¢¥§©¨¤¦£®±¯°«¬ª­³µ¹¶¸´²·º»ÀÁþ¿½¼ÂÅÆËÊÉÈÇÄÐÏÌÓÑÒÍÎÛØÙ×ÚÖÔÕÜáßâàÝãÞçèæêéëåäðòñîíóïìùû÷øúöôõüÿýþ}M‹”ÿ/?k T5ò7Þ-v » ± ø t * òØ;°íÃR©(Œ0Ï0 Äí n‰®ü7µ¾×  p!!7!e!É!ý"'"H"‹"³"ó#7#Ç$$Y${$¥%#%3%N&3&`&û''u'ˆ'³'Ý'ø(()(@(a(·(Ó(÷)3)[)y)µ)Ô**¿++L+]+p+‡+•++º+ã+ü,,‚,¡,À,î-B-’-¦-´-ì...N.’.º//A/r/ç/ø0 004 ‹½øì½‹½ø$½‹øˆùPüˆ÷ŽûÅû>÷“÷èû ûÀ÷>÷“ü’ü^÷>÷“÷>û“üø¿÷>û“û>û“7jZ þ”ûú”ü~÷ýû_ûWý”ü÷‹ 9ûù÷þ”~û_:"þ”=f ÷”û4ëJÐP W ü”÷Kü”ûû”ü”ûþB °ú€úôëû”û4ù”þ4‚Ð÷Œ÷]÷\÷‹÷Œ÷\û\ûŒ°T ù”8 ûD÷#û$v ÷$÷Ddø”ú[ ÷Z üúlú”þþúø€øüøl÷üølS LK i û€ùgøM ŒM Z AIû;öû!÷)Wý,Wø¬÷)¿ö÷!÷;Mù÷”ù÷”:ýlO ùúýýøO 9L< üûÚû÷Z÷+d®r¾Ãl^ üSrXdhû+÷¼Ú÷÷ldûüƲh¤YRü!5áõlĤ½²®÷+ûZ<ûûüûE÷#û#u l÷<÷û¼ù÷G€ûûBüû÷-‰ øTøTøTPøýûtû4û4ûtüB÷ÔøTüTøT÷P5 4÷÷÷ùW üü”øŽ 4ÿj¸ÿþê\ÿ\¡Hÿÿ£aHÿ9@ÿÿð¤ÿÿrž¸ÿÿr€ÿÿÆÀûÿÿ£^¸ÿÿ£^¸n ÿsÂÿsÀÿGž¸÷4ÿ°áHtÿÿ¸aH÷4ÿÿŒ=qÿsÞ¸ÿþðaHÿþðp¤ÿ.aHÿÿÑ¡Hÿž¸Kÿÿ¹O\ÿÿ¹@ÿÿãaHKÿÿÑž¸ÿÿÑÀn ÿE€ÿE^¸¶ëÿj!Hÿj\`ëÿÿº€ÿE€ÿ2xRÿ͇®‹] aüX÷¹üø+û¿‚«¦£ŠÌàû±MO÷[‹\÷ Hª‹.Ëò„Á)‹æû1÷)¸Å¦”ͦ¸¨¥ûw¤ûƒãø÷³çÌÒ¥góÃ÷!‹á§÷XûÜ¢ã–âŒâŠã€Üt÷X÷áo‹Ãû!h#€qÍD²/ûüûƒ5ûxq¯l¬L,ûŠûjol¿•ø+÷÷¹øøXe ‹÷ùÌ÷*ÿÿæ@ÿ”ž¸ÿ·!H÷‹C ÷Üú”z üÄüdüdüÄüÄødüdøÄøÄødødøÄøÄüdødüÄû÷”÷tûû4÷4û$ûû”;û[û÷TK÷û÷dËË›ËûôK(÷ûDëû4ëûTû$[ü$;û´«ÜË÷´÷T÷t÷”÷úÔûÔëû»û4›ûDû$«û¤›ûd[kË{»[Ë÷Të÷dË÷4÷ù üT(÷äk÷t«ø÷«K«K›[û´+ûÔûdûDû´û$÷4;÷d÷tM ýtDK÷äû÷¤{«÷d«÷D‹÷Tk(kû”û$û„ûdû$ˆü”û4ûdûTË÷û$÷$÷¤÷¤÷d÷´ë÷$ûÔ»ût›û$[ûûkû÷À°C P 0InDwA‚׸ÅÓ¦áEa«…ÿõÃÿÞ¸ÿÿO\ÿ#Àÿÿ|O\ÿÿsáHÿþÖÞ¸û5ÿþü€ÿÿ€ÿÿtaHÿö¸ÿÇp¤ÿ-áHÿrÞ¸ÿaHÿ[áHÿQÏ\ÿ¡H‰ÿnÿÿü€ÿ°¤ÿú\ÿþ}€ÿtÏ\ÿ\ÿnð¤ÿ,Àÿd!Hÿ€@ÿûã¸ÿþó@ÿ‚ž¸ÿÿF°¤ÿ€ÿ>áHÿ%\ÿüÚ€ÿÿ°ð¤ÿÿ³ž¸ÿ €ÿ@ÿÿ·ÑìÿñÞ¸ÿ¾O\ÿ÷€ÿýY°¤ÿ¡HÿÿûÞ¸ÿÿüaHÿ¸ÿÿü€ÿÿ➸ÿÿ¬@ÿÿ¦!HÿÿïáHÿÿ¢¸øÍ÷§ú<÷ ú­÷{MK pW)D' J÷ó÷2Ô÷Bøóûû"û4÷JÇûû'û@û"9%;wjGP÷5Ãa÷Xû'³.ûL{‰zˆzø,ú”X þÕýë÷8†é÷o÷jn÷kû÷Dû8û8ûû8§ûk§ûk÷0û*÷7†ˆü[ºd´Òµ˜³ž¯‰xwŠwû û»Ú=üy¾è÷«÷±®Œ°øûôpô Äûç[›V”RŒûBŒû.<@û"«í?÷øàŒ“‹““¢‰¡† ÿÞ°¤ÿ‡@ÿ\°¤ÿ¶@øJÿeð¤ÿÿ‘€ÿÿ¸€ÿL\ÿ_\ÿa!HÿIž¸ÿJ\ÿp°¤ÿp\ÿEaHÿÿµð¤ÿÿžÞ¸ÿ0¤ÿÿ ð¤ÿÿ¸nÿÿ³ð¤ÿÿ@ÿGáHÿûš\ÿþ¶Àø¦ÿ…¸ÿÿСHÿZÑìÿÿˆ½qÿÿ¤áHÿÿÉáHÿÿÂÏ\ÿÿÄÞ¸ÿÿè.ÿÿ÷aHÿÿêáHÿÿýÏ\ÿÿâ@ÿÿâ€ÿýÖÀÿþ¶°¤‹ÿO\ÿÀÿÿû°¤ÿ\ð¤ÿIO\ÿÿsž¸ÿC€ÿ+ÀÿN@ÿ`!Hÿ®€ÿØÀÿ¢€ÿÿrp¤ÿþϽqÿû\°¤ÿ¦‘ìÿü!O\ÿþ¶ÀÿÞ°¤÷÷”ù­÷÷÷¤÷›÷&÷œ÷©÷œ÷Æ2 û’ý2RÈ×ÙÆÆååÃP=?QN/úÏþûœø<öeÓ,B_Z\x„zŠstüOûœ‹ŽùcˆÕ÷œûÁ®ÉØ÷ ÷B÷ûû‡þK÷æý­û›ù­ø`÷nƒ÷k÷?÷Š{÷ÈúÅz üìûÂüBûúûmÝûV÷DD¨¥–”«¡™Ã‘¢”«ˆ–s§YÇjØ÷÷Ó÷ƒ÷²ø÷ç÷Oûcû©üû5ûÇû„û)÷÷ª±÷4Õ÷A÷òSáûûûûûOû ³:‹û6ýDt+ˆ"2÷)U»×¿ì¦ì›ÄÔ÷¶‹8·÷A÷ø*÷§øøƒø ûÑ÷ñüv÷s÷C÷ì‹÷à÷[÷[új÷äaü7÷ûý÷ýû2ˆÓàžÙžÞ÷øo‹‹jÍë÷,ã÷÷è¸E8-Pû lûûqÜ2ö÷V÷÷÷»÷uû+÷<û§ûÊûVû|û—2¥Lµ[žt‚„q†y€]†y…qv‚s•û#ÅI÷1÷D÷·÷‰÷ñøzø÷–û¯ûÄü&ûtûÀûÝû#ÇÏg‹Pû€~]uû­ü>ü`#‘I–m–nŸs©zs³¸¾æå¨Æåû®>gFqM}|MH„C9B• LL V¨^²_±l´z¶z¶‚ÉÝù ûZ÷‘ѢȬ½¶½µ³¿ªÇ©Æ Ø–çø”÷”9ù”f2 ÷üs ûDRÄÒ÷ÒÄÄÒ÷x ý”~÷h÷@û@ûhIyŒ Vù”~ý”3 DDRÄÒù”÷¤b…`_û¯÷yûy÷¯e·…¶´÷•ý÷”÷øÎ÷øÎ÷ú¹ó€’~~~~‡€ $ýRügz}ytügt—yœ~ùRüh—„—‡˜˜˜– $ùRøhœ˜—¢øg¢z™úÖTø™÷ìûÇû²ûSø6÷S÷Çø™ûìû{û.û <û~û0û}÷0÷}÷0ýûž÷p÷9ûúç÷ûpû9÷ü­û¢ûÈü™÷ì÷{÷/ú;û/ü™ûì÷È÷²÷S÷Ûÿ‰”{ÿa{ÿW Úÿ!Hÿ]¸ÿ=k…ÿEµÃ­ÿ-ž¸÷Øÿ:(öÿ+5ÂÿRõÃÿX5Âÿ¶uÃ÷÷*÷Ûÿ9ìÿXLÍÿ‘¡G÷ÿHk…ÿLG®ÿ&LÍ¿ÿ}qÿ3ÿQìÿ?°¤ÿ3G­ÿX5Ãõÿe+…ÿ¾Ô{ö„ ú”P ü‚ü&ü&ü‚ü‚ø&ü&ø‚ ø‚ü&ø&ü‚ùPüVüøøVøA÷à÷õø9«‰€Šˆûcûiû(û ûcû ûb„û—íûeéûf÷Yû6÷vg÷td÷€Ý÷(÷7÷.÷5¼÷‰E÷_W÷6û÷û.Ë÷ÆV÷‹û€ûÓ1u0f6ûŸûû©ûLûÓä÷hƒ÷a"÷û<¥m¢j j÷4ûûYòûrûgûQ.û)ûŠŠ††‡††‡ˆˆ1)Sûû$ÿþðûÄ÷‹û‹÷ÿ¼“˜º„ û9@ûa“û5ëû9ìû ÷It÷Zp÷YÑ÷f÷&÷$÷$÷'÷fß÷g÷Âý‡÷Jû÷;ûD¤û@ªûG \û6r<“4­C®CÈQÕo÷)Q÷DÞ¼÷"À÷"3÷9û«û¯û'#‡û‡K¦K¸b¸aÌzÄ—ßÿðÅ–½²£¿£¾‡Èo¹q¹XªXXŽZrndnd†VbˆœR¿bɉ„ nˆlp™b¡l¸ƒ¼„¼šÀ°¯¯°À À‡Àˆ½o¬]«_˜P€S€TfYYmYlLPšQšW²kÁkÀ€Î˜É˜Ê±ÂÁ²öÚ÷;é#î)ŸûA8û =ûû;Lû'·û&³û÷&€÷3…ÚݳѳÐËÆÔ²÷'Ù÷W÷#÷8Öû™û#‰ÿþðû˜ûhûhû˜NP—¡U„ ÙyÜÖ¢å¦ÛÃÂÕÃÕ¨è‡å| G÷ÿ+O\ÿÿn@ÁÿÿÓO\÷-ÿÿM0¤ûBÿÿ0¤ÿÿ­Àÿÿ@ÿÿ²Qìÿÿánÿÿá€ÿÿܰ¤jÿÿÌ=qÿÿÌaHÿ#O\ÿÿãÀÿÑìÿÿêÀÿT®ÿÿ¾@ÿgaH4é;ÿÿ]Àÿÿ"Þ¸ÿÿ*¸ÿÿ ¡Hÿþk‘ìÿþªîÿÿ[aHÿ¢@ÿ®¸ÿT¡Hÿ*O\…ÿŠÏ\ÿRaHÿ‘ÑìÿY^¸ÿÅ\‰ÿiÀ’ÿÿ߸ÿ*aHÿÿÚaHÿ,ž¸ÿHÀÿ(B‰ÿ€‰§ÿÿýÞ¸ÿÿæ\ÿÿæ@ÿÿý€ÿÿèp¤ÿÿÀÿÿrÞ¸ÿ¹ð¤ÿ·^¸ÿl!Hÿ1aHÿwîÿe¸âÿn‘ìÿ†!HÿŸÞ¸ÿÏ\ÿ~ð¤ÿäp¤üý>ÿ6\ÿ60¤ÿ°¤ÿK0¤ÿ*=qÿ©p¤ÿÿšÞ¸ÿaHÿÿ<áHÿÿÂÀÿÿ¾@ÿÿá^¸\ÿÿÚO\cÿÿΡHÿÿô@ÿÿÀp¤ÿÿÂÞ¸ÿÿbp¤ÿ[°¤ÿþû\ÿÊO\ÿ:Àÿ?€ÿ@ÿ%€ÿ%°¤ÿu€5Q ÷”ÿûF@ÿÿ@ÿ@ÿÿí¸ÿÿô@‹ÿÿè‘ìÿÿêÞ¸ÿÿ€ð¤ÿÿû^¸jÿÿ@ÿÿÌ0¤ÿÿí@ÿÿi€ÿÿÇ¡HÿÿXÞ¸ÿÿY@ÿ¢O\ÿÿ‡áHÿû¡HÿáÏ\…ÿl@ÿ‘À…ÿÿ²p¤ÿ?¡HÿÿM@÷ÿ€8RÿhöÿÎ}pÿÿèöÿèöÿë…ÿÏ\ÿŠœ)ÿÅÿ7Þ¸ÿž¸ÿ(À‹ÿý'\÷¹ÿþQ0¤ÿþO\ÿþ´¡Hÿþ:áHÿRÏ\ÿþ]\‹ÿáO\ÿÈ€‹ÿÿW¡HÿÈž¸ÿƒ@ÿÞÑìÿ­@ÿÀÿ]0¤ÿÿéÀ‹‹ÿ,Ï\ÿ€ÿÿö¸ÿþ$ž¸MÿþS°¤ÿþ3°¤ÿŠ€‹ÿp¤ÿþÈ!HÿüN\ÿÿÓ\ÿÿƒÀÿÿð¤ÿ0Àÿÿ¬O\ÿU€ÿþè@‹ÿ¨O\ÿÿÀÿ·O\ÿBÀÿ·.ÎÿÀÿ™@‹ÿ€‹ÿO\ÿÿ2€ÿ aHÿ*€ÿÁ@ÿa¸ÿýÌž¸ÿåaH‹÷@÷œ”÷÷!æAù֘őÈÉøeü ø üeZZ‡ƒ]»?2¦,û¢ûoûoû¢1¤7µB€U…RQüeø üøeÀ¾”¾fÐÙvß÷¡÷o÷o÷¢ŒÙxÔkÍüûrdTR_@lmA2{'û % µ<Rª\´h¾g¿y¿¼ª—¥£¡¡¢¨–®¨¤‚z Ÿ{›r˜lšh›ot›u£y©}|ª´„¾ÐÅš¨¶µ§Ÿ®µ¬€¦uŸt¡m›f—e–W˜K™3A¢P¤O¥Z®h·f¹yÃÏʞű¼±¼Â±Ò¥¥ÑÞ™éÖÍ‚zÃÂzºs°n°n§mœj›k”kkm€ptsstnhks“™{{™{¡xªv³r«n¡ n\–JOYsghtzqlx{—}–|œ~¡¡¢‚¢…¢„²‚ÁÏ|Ê{ÃyÃy»u²q´q«i¢c¢b–ZPFwLdSJŒK i ÒRÄDü4‹«÷÷T÷Dû÷$KK‹û‹üûT‹ ûTý~ ÷Ëû÷TøTÒÄÄÒÒRÄDËÒÄÄÒ¦ƒ£} ½œ¯ºÃ¦ƒ£} ½œ¯ºÃø"ò÷ò÷*÷t÷@ò=ð÷1ñ÷.ñ÷añvñù‘÷t÷¨ñ=ñeñ3÷1åûGPiWgûÈû²û)“Øø÷šO-‘ØAêîÛÛîî;Û(IQfVlûÍÓ~Ž}‰ƒ„ƒˆ}/ü]û/…û"dûN½gQ¬Iû11ûC²MÅh€ i…igû¦÷Þûsø)ø)÷Ý÷s÷§­†¬‚«Ç®µÊÖû‡ùµ®haahhaah®µµ®®µˆ ü×úèûñû°÷E÷n÷n÷°÷E÷ñ÷ð÷°ûEûoûmû°ûEûðqHý^ù/Á··Â©¤}uTc^]kXsœ{¦ªo<k¾^ºU³¢¥›«Á·_Ujyoryý· ÉY½MNYYMN½XÈɽ¾Èø÷MYYMN½XÉɽ¾ÈÉY½MbûÒeeJy)+J±ewŸk‹wwww‹jŸwRÄän÷÷ä¨ÄÄŸŸ‹¬wŸwŸk‹wwø”÷ŽûŽ÷˜û˜Lû—÷—÷”÷›÷6÷š÷6÷š÷6÷›/úåÑô[÷1¸ö_÷I…û+÷&ûNûMû+û$ûI„ü{u÷bû›ûeûN÷.û+÷Q÷P÷-÷(÷LŒøu¸¯®¸¸¯h^ùCûŸû›ûlu÷hû1]"»ûfûM÷-û)÷Q÷Q÷.÷+÷NøM ÷”ÿ€ú”ÿÿ€ø”1 ü( ø, ü”ý_÷º÷º¤¤« ½Y‹:YYûþûþ†eudq\\d¥±u‡‡ûþ÷þY½‹Ü½½¤£¬ ÷SƒC iü÷Èü£ûíøû¸ú»ø÷¸ü£÷íüûÈü§ûÝüû·ø£ûíø÷Èø¨÷Üü¨ûÜøûÈø£÷íü¡ü.ü÷ÇüûÇû2òûø¤ûÑø¤÷Ñ÷÷T@:ø”1 ü1‰ øTøTøT,ø, 4÷øY LþTKû{÷÷”ù‰ K÷üþ”ú”M ÷M ÷c ü”ý”ý”ø”ü”ù”ù”O!9L÷Wg g úTJ üûÏûÏüü÷ÏûÏøø÷Ï÷ÏøøûÏ÷ÏüDûÒû–÷–÷Ò÷Ò÷–÷–÷Ò÷Ò÷–û–?Ëøïø9ûün÷äûäåæRú”L00 BIû”h A9ùD ÷”÷÷” ýTH ËüTh¨n‡ ø”‹9ùD ù üTû”H ÷BûüE‚i h®ƒ­‚® “®÷ø”ŒŒŒ‹‹ŒŒŒ‹‹Œ‡©s£mŽˆŠ‹‹‹S÷÷÷D ÷÷÷÷÷ ý”û÷÷÷û÷÷÷û÷÷þû”*÷ê$÷ê$z[ü³ø³ûIûI½Y‹:YYûIûIXY:‹Y½ûIûIÿã5Ãÿÿ5ÃÿþtÊ=ÿþtÊ=''{WwAÕŸ¿›ïïÿ‹J=ÿ‹J=ÿâµÃÿÿµÃ÷I÷IY½‹Ü½½÷I÷I½½Ü‹½Yù÷ú#ù÷ø÷ø#ûÔø”ûù÷ùv÷”v€÷”÷÷&ý¥øe5‚ù”K÷Q ÷À÷Tù¨÷÷(÷T4÷iøüŽû÷÷K8÷_røŽøüø÷ûûKÞû_q û~üŽj ÷$÷S"òøükû$ûÄó$øù‡Iûh÷@û@÷hVA÷ü!÷À÷Tú¼÷T‹] fuÈ!û­ûq üŽüŽø ü ÷÷û„÷„j ÖÔ{mÎøj÷DD1å44ü…ûÏ“lj‘iIi‘j“lríü ø ûû÷…û…k@B›©Hû#û#Nõ÷i÷rüü÷ƒª¬…­V­…¬ƒªùúùúÀúÔ÷Ô÷Ô-ûÔûÔûÔ÷ÔB÷ÔûÔûÔûÔ÷Ô÷Ô÷ÔûÔsV [ ÀúÔùÔùÔ-ýÔýÔýÔùÔBùÔýÔýÔýÔùÔùÔùÔýÔs9_÷÷g ‹÷‹mö€4 Z éOƒ \ ‹ ûLýT÷÷”®¨nh`ö€÷ÔûTŠ ûùTŠ ûùTŠ ûùTŠ zùÒÄÄÒ÷²w:ùà~÷Hø«÷Iü«øßŒüpûÞ÷Kü«üo÷àüoûà÷Kø«üp÷Þø”Ëø4K Lýø”ýü”ü”ú”ø”üüTû”øTnB púûù”üù”k ý”üÔ\4 ùT99ÀW üTøTþþüTøTû'øÁøçøçë+üçüçù'ø§ë+üçüç+ë¾û!Bû”÷”s÷T4 ÷”G4÷Tùù|üTýùTüüýTú”ú”I ú”I :ùVøÒüÒýV÷”ùäýDùDýäý”ø<÷ì}÷”e øýÔ!5áõ^ R ÿÿÿõÃÕ/û ÷RûT‹ûûRýŒû+ûRû âû0÷t÷sâ÷0÷Rû ýÓú:+øW÷”‹W÷”C ¸ú”Z õé^FѽYÜ‹½½½½‹ÜY½÷ûû3ÔûEûšûuû2ûv(ûÊû”ø”VûTü!á5õõááõõ5á!ØúÔ~÷”ü”I!-¸ÑFY½:‹YYYY‹:½YŠŠû÷÷2B÷E÷š÷u÷2÷vîøfù”< ü”!á5õõááõøXûüX`hn¨®ø”^ ý8 ûEû#÷#÷E÷ÔûûÔû‹÷]û]÷‹U bd4 ÷”Mù÷”ZÀ7 û3Ìû%ó#ø+ü*ø+ø*óóÌ÷%÷3üÔûÔûEû#÷#u ÷E÷#û#ûE8 ùùôøôú4ZZ ûëüTü”ût÷TB÷´ü4~ ÷”÷”ø÷”M‹] ] J øû”] øü€ øý€ :> ÷”B ÷wûwûû3ûRûhü÷©ûÏ÷ÿN÷šûpÄû8÷[÷‚÷"Æ÷èç÷|û|búý”øû©÷ÏûÿÉû›÷pR÷8û[û‚û!Pû./-é7ßh®xž|ûw÷w÷÷ã÷R÷hŒYLû€û”Lg ù÷”f ÷c û€þ”L„þbùT÷‹fÿ?ýq÷Ëwg ~ÿ,Ç®úTÿ &fÿàèöÿÿ!Hÿ>.ÿþ‹&fÿý`èöÿìÇ®Oø@ÿþlÀÿ 0¤ÿàèöÿÿ¸ÿ>.ÿþ‹0¤ÿý`èöÿìÀOþTù”†… ÿÿp¸RÿÿOG®¾†† … tt† † t~ÿ°¸R… ÿG®†¾ü”ÿÿ–!Hÿÿ©Þ¸ˆ ˆˆÿV!Hˆ ÿiÞ¸ˆˆ t ÿÿ–¸ÿÿ©áHt R ù÷”:B Z ük ý”üüý”Ž ù”øk ýú+S÷÷÷mSS`4 ` û”@ƒ … \ û”DL ÀüTW ®¨nh`û”… øÔ þ”þ| ÀûbtÀ÷üÔ~H ®¨¨®‹÷Tû9üÔ~H ®¨¨®‹÷Tû9üÔ~H ®¨¨®‹÷Tû9ø”ú”C $ v„0 40øÿ„@øÿ€@˜º(îû6‹'(û}û}('‹û6î(ŒŠü[ü[û´÷´ø[ø[ï+÷3Œîí÷}÷}îï‹÷5(ïûjû@û4û4û”÷”÷4÷4ù”ø”ù”ø”iW 0 0ú÷ømíúTüø45÷ëûëþûúûëûëâ5øgúnø§mø§úTøøâ5ûëûëúûþ÷ëûë45øÔùTYL-üTüTüTøTBøÔüÔùùTYù”üÔøÔüÔüÔøTøTøTüT‹ú‹úúþúþ‹úLú] úþþú4÷ø4K Z Dû4ý ýý4ù÷÷÷÷÷÷: ø”3÷”û-þûû÷÷÷û÷÷÷û÷÷÷û÷÷þû”*÷$ƒù”Fþ”>÷~ý”ý”ù”øû€!ƒ÷”÷”÷”F$ù”ý”ý”ü>ü”ý”Qù”ý!:ù÷”‹÷”‹÷”ÐúW a ù”a ý”  ûÊ÷pû–÷¸Pû¡÷”÷¡÷¸Æ÷p÷–÷Êg Œ* Mø”û”ø0ü”ý÷”û”û”û”Ž øk _ C * _ û”øøŽ û”û”ø”0oø”÷ùG ýûø:üºü¹å0øºøºü:÷ü û”|÷”÷÷ü”þúø”9| UZW ük ýDú”„ý”ú”Ž Wf ËK ùLþ”' þ”1| K(þT~(ùÆlix^ZZž^ªi÷4À÷4À`ù€û|÷]ޤ£‹¥‹¥†¤¤ %÷|÷]Q÷ûÅuk³h¯cª¡÷Åû Åû]û|rŽsqqs†r $û]÷|ûQ ûÅclgglcûÅ Qû÷|û]ˆr†s‹q‹qrr %û|û]Åû÷Å¡«c®g³lvûÅ÷Q÷]÷|¤ˆ£†¥¥¤¤ $÷]û|÷Åu÷ų«¯®ª³÷Åuýº÷4=÷”÷”ú”÷”÷”÷”ú”÷” ø”ý”,p4^>ýOùO¸Øâ¦ê÷¯÷yûyû¯þ”ê§â·ØùOýO_?3o,û¯ûy÷y÷¯ù÷ú÷ø”÷K_ àùúú÷”ùû€÷”üKþ”| þØû”[ù”[Rú€NùNø”ú”ø”ú”c þ”þ”ú”l ù€NLW þ”ýú”ýl 4m 4 NRm ‹f4F ú<û”Dþ”4ø”ù€!‹fø”÷”ø”F ü{ ú”Dþ”øû”ý<þþ”Qúþ!Jù÷J"ü”! ë ýûTb/÷!û”+/÷ÓýrdcfTh]mnu}}†{xiû`Ķ”°œ¨©«¨¸§¯¢¤Ÿ››ž“Ÿ£‚šz–•zv‘pH=s\2/÷HÊ÷÷ª÷ îØu`ÃÃ`§PAU]rdûÓýDRÅÑÒÄÄÒ ERQDN úøú”ùþ”ùütý”øtgù”øtN Løþ”ùú”ùütù”øtgý”øtnúW b ÷”ý”~ Lù”ûb û”ý”ù”ý©ù”r ù¿ûr øÿÿ}qÿ0¤ÿÿ— iøýøùû)÷!÷†÷÷1÷÷1÷z˜÷)û!÷5û-÷5÷-÷)÷!÷z~÷û1÷û1û†û)û!øuúÒñ4üáû”þ”ûŒÉ÷”ú”ü-ýìûiû"ûÄø[÷Äø[÷iû"ûeûÍ4 ûÃü[ûi÷"÷d÷Íûd÷Í÷i÷"W÷÷ø÷÷”% X û”ø”÷ù”% ý÷W| L÷ùhË; ù”üÔ\ú”øT÷”÷T/ ËûÏüXüYû¤÷¤æå÷IûI÷þ÷þ5 ‹P ÷Ôi ÷Ô÷Ô÷Ôý|ý÷Ôø”øÔ6 5 øM i6 :÷”€ú:4 û”û”‹÷û”û”‹Bý”÷‹÷J‹K÷”ø”o M ` û”ý”÷”Lüúý”{ ú”ü÷”û3~û÷@Öeíí÷ý”û)±)Ö@÷û4 ÷”jW d û¯ûyûyû¯û= ú”;û”ü”÷Cø”÷øfø”I KôÇúõø®·¡ÂÇ)ü”þ”øÔôy ÷#÷E÷?÷û¾ü[ªWø) ûü”ø÷Tôõá5!Uùù”ØZ ~ ³÷üTcû~ û„ý”{cûøT³÷{f ÷”MúHDD4þi + (ù”ûÔüÔþ”{ ÷Tû´øTù4÷”÷.Ì÷.÷÷.Ì÷.ø”J üü÷.÷.÷zŠ÷z÷.ü÷.Šûz÷z÷.÷.û.D ü”ù”ø”þýûzŠ÷.ülû.÷.M ×ûz÷.÷.ûzŠøø‹úT[ ÷P þTúTV ‹úT÷P úTþTúÔúT[ ÷z P þTþTV úÔúT] ÷P þTþT 7ÿ ™ ‹ øó p.37<_…ŠŽ¡¬±µ¼Ï×Üàëðôú$-29KU^chmrv{‰—ž¥ª®²·»ÁËÏÖÛàéðõùþ #'4AFOX]bgky}ƒŒ™ž£¯º¾ÉÐÕÚßäèíò÷û%*06<BHMRW\aeG û”÷ûûýw û”DM Ks þDRÄÒhÒÄÄÒúx () $ 9 6 ii ™³”¶¸Aû/û/ûNÆQ:°28 uv ÷L÷ù÷; ú”þøT‹ \4ù/ üû L ? #  ü

÷ìûì û_ûK8ûû ûj¶÷~ 3 ÿÿ©áHÿÿ–¸ v ÷#÷E ÷Ey ÷B   ÷E÷# ]  ÷”ø ú”÷ ûÒûÒ ÷ —¬¬¬r¤ û”] ÷” ø‚ø&ø&ø‚ _ _ ÒRÄDü ßþð ÿÿpÀ ÿ@ ®®¨¨® ÿV¸ ÷üT ûýT û”û ÷@÷h ÒÄRD øü û ôÿÿÿÿÿÿÿªŸ×ÿ…ŒÌÿÿÿÿÿÿÿÿÿUÿÿÿÿÿÿÿÿ_ÿSÿÿÿÿÿÿÿŸÿÿÿÿÿÿÿÿÿÿÿÿeÿÿÿ?plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/font/genericons-regular-webfont.svg0000755000312500031250000011615512606005234032663 0ustar eacbforgeacbforg plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/font/genericons-regular-webfont.woff0000755000312500031250000004151012606005234033015 0ustar eacbforgeacbforgwOFFCHjÔFFTM€j(´GDEFœ ­OS/2¼B`—[h…cmap˜²©iÖccvt ˜bÉfpgm¨±eS´/§gasp\glyfd9~Z@øv#head=ä+6Q?hhea>$Ýhmtx>,ˆ U‘@{loca>´€Ìjèmaxp?¸ ¨Bname?ØbØB×^postA<Ô ã$ãprepC..°ò+webfC@Ñ@RÏÌ=¢ÏÎõ„Îõ¾xÚc`d``àb `b`Âz fó ¿²xÚc`fÿÌ8•…Õ˜å ÃLÍt†ÁÌJa¡Þá~ ª¾2³¥ýKc`à``Ð 3")Q``ŽŠ ÖxÚc```f€`FXä1‚ù, €´²00¨þùÈù‰ó“ä'ÕÏ_8¿H~ÑübùÅóKä—Ì/%_™ÿÿ«`øÄðIà“Âg†/ _¾(|1øâð%àK—‚¯ ÿÿßbçgáãããàcâÕà1äÑæQå‘ç‘äæáåaç®ÚŽ0²1À•12 &t Ãä\*3 EAf·xÚ]Q»N[AÝ ÄØ 9Ú³™Æ{¡ ÄÕbd;…åi7r‘‹q@D Ú¯ ¡¤H›!H|B>!3kˆ¢4;;³sΙ3KÊ‘ªwékÏSç$ÂÝÍ6ýNHµ³÷¤ë댴ƒZlfôÊuûþ ›Ñ”;jå=o)M;Z´§þÑü †ûüó;´4ÓôÔ: é!æ›qKƒïͺËú‚Õáb00¤˜¦â.?¦Rþ·4çj˰µ‘Ѽƒ3ùÉ4@SkmšþÔ!ÕóqK˦±6˜˜²þ$Á…ÉtUSµÌøÚÁ]²³è`ƒ*ÍØÃVy &Ò·$Ê, öb«Ä“ 9åÜÉþ¤@ùHƼIJ;ㆵÆ‘×À 6O³ÿ<›MmoÂøYÁw¿K:øÈ†Úb;b)€ DBFUù†Ͻ,äRûÏ@”€åñ´îØD<—µu1Vz~ÛÜòËŠ»V¹Î‹Bwoªj¨Ò)Íû^ξÇž ÃAcÁ›ÏûþJú<,®4hCz7zÿ¢µêˆ«¼>²'Ó¿±ZÿÿxÚ­| |TÕ¹ïZ{ïy&™™=Ïd’™Ì{B&™ óÈd „!*(‚ä/jÝZ©ŠŠ=¶¢U+h[±Úc÷L@ÚbkŽÕZ[G˹­Ö±§Zm=ÇÞö´Š™Íý¾µgBlÏýýn`fï½öž™µ¾õ=þßc-¢!ðGÿÊ=Cx¢%RKÌ„LýbØÆÛü5Ôeã]"ý«ÒóÄ^ºø ø»ó î™ò—’Óätùurš.‡åøiªJÆýM$D˾T#ÁwëH |³¸È•D& ™–d!![R²¦$‹IYŸí)ÙP’I¹6!ו¨\Ÿ…E¢¯M&“²®TÔ ÆØp^Çð½Æ“u–‚ÆdW©`²&“E» ïÛ-†X¡ÆHÇDšñ;Î÷â ;eèìiÂIeI e‰“NÃ5G$‰Ž{)•#á(ÜÕÁ?ƒôÙ˜Í%Ù„~Úa0' Çr¥ Bt¥‚ƒÆ bh F>äÊ‘‚Í WT«#pÕ1‘X¬!Ÿ`µp‚/DìÎdg: äºš>JW¿òв_¹DÙO“ûŽïÛwœOŒo|åî!l݇$ˆD%¤•u]ÄO®g´…¾ùr#3!ó¥a#ïÐÇäš’¬‡ÞXokKr­¥P½õ”d¥`…3m©„~×RÑZÐs9¹^”¹œìQð3ô[¶Š²ÆÒ胱h©µÛbÓä`L6à¿M#"…mv’J’LšÄ•îô9v­/"ÙÿO€¬yªûÁ©V9õÃ(ŸHG©ñèQåoG©Ä#ÍOiT|V•߆»cOî>zt÷-Ï<ƒãæˆ~<_MÇqôµ©2–!‰¼ŒU—¤²%!“²Jȼ¥ §ŒÚ¤\c±Æ€X8kàiå•‚ÐVî(p„GðR}WˆzkTÑÁ&-Î"\ ð 0ÞÃS ø¦Ž¤ •M¬+Ð/MiØ !0)Æò’¡T0åD´Å ùrp…v:Q#ÆáÛNÒž“wo=M¶Þ­‘öŸ<¹ÿ Ï·”ÿ q÷·<Ïx~IKˆ‘8ÈJ"k²˜f”­Iä‰F™Z ˆ“õ‚QCýý¢‘GÉ1jA¦€B5@SI6YdrPÑa»äÊ¥ÊÇN‚b²3ã?s ò#)Çíãª'@4¯ãÊqJö ;%Ҍѥ¤È>‚¢sKÈ^àÐ4럾TÔüa½ÝÒ[ nèV¼TŒ»±1>ã–B4:JÅ:6ÖAe‡¥…F©õcc4ýÎuÝzàkc}.W¨‹ÿÖ¸<1àßBÔÍÞÖðu¬%V Md2JÅtgÖ¡uˆ(Ÿ1Íx)\ã˜8×eðN$€O¹0Cdh0¿åÀ–üàãf‚|=ÖÄPiõþð}¹%Š´`Ë–TZ’»/¼µ"csЇÝJåÊQÔG@ֻȈif%AÒFdB¶¥pŠ€ÁkSL…rý èBæ© X€`$ ÀF)’õ8è§b0¡Y?Jm‹ÛX%U¬RòJ^Zu€GÍòø¯°ERòÈÑì&¼+y:r@Y%ýêq*i!„§U9Ð@}dfEËSì¨þê$³¥à„©i*0f˜a£ÕVZÄ)|8dà°Ö`v8›*³¦áÎt4ëåQ\=4 ê°›¨”Ée¦¿…{‚Ç29sQß…ö­Xvy|`OÑ>…WÿñþSfÌο³ó¢¾£¿<Ú·bù7/}ì®Éhþà•ÖƒF!ëÈ"_‘/)É­¨A¨|%ãÆÎ’Üi)4R”ØÂzè}'ô³Ø?oAôd£ø´Æâè¾`ÉeLÕ_rp”å2¸Ñ*ækŒ6iiKçg^ŠÕXBáŽ$œ˜¶’P*)«ÃB4ÚH&Ý™IG{|ã"Ñ85qºHT«‹ófªuiv/ïÒêL4N£q!ÚJMÔéò .¯®3kG5 ‘G©îúå1º‹ZU®S~ Ð󮓳ëµF½Ù&Ô¥º/Ï^½gÏÕÙËzF㤎õÙA麹™Ú¦©Ë–ú8ƒ'Ðéj ¢›7xÜ:Ê×Y›CSÅi ¤üB¹N ¿¤_€/TùOe÷1¥Pþã:]sƒðü›'šg =µí‘­æ–Y—N¤œ`ösœ?}â¢:íÊ uÁÆzNWã¶ÂØš»ü¼ÞÝÐÜà]”¼V¨÷i×qN´q:|csc&Œó'‘>²€ì Å:Bbr¤„Ú£¹$w©óµÙ7 ˆ…¥p!ÌWoÕë"˜² AòušÚ:ÁÙÔjiÏLžÅæ«>íF±µöLÍ÷.˜‹ÓÔ,ÒÓ&Ïd<ï²ý‰ rhãê)L˜æËjL7o·º:I6­¥Ñ¬3”å¢ZBþd–ãµÄæ´õÙH(ÐR/çê\\ÔÄÙ¼>c͆¾…3E‚—í[ßR>Tv+kàõahÇÆèwß³ä•w•­÷=Gÿºç®áç”?SñWtÖá£þïýV¹íok®=0ïŽõ¾¨ùO¢ œž¨ö :÷z÷—ûžþûbÓ¤ž‡^®WþÄ'ÏýþoÁïr³*¯^[¢ó:¤ÁdýWœ³âÔý·%ÊÑOY@Ûè-s”cšõ)q“|=½¡/Þc)oñ¤×úµÔ3œ»tHy´ñ~åç÷m¤‹GâL~$Ú8ä7 ÍaØ)_8Ô™JÂa °hœfÒY§àBþN%]Y­_Ȳ&^ú¤ŽJ~vÍ3¡¨7‘¼ññKç.Kî¡{Þ1þêþ¥õ­×\µvö&Ú³óéw”_Ky•Ó|ƒ»{³®Îýó[41>ùè%W,~â5Ñöûÿ÷÷Ô[úêÚ7/Ðùô×üÁ/î_Š}#€‘t‰’ ªHP–0oIYLȾ”ì,Én•uZwž@0 0Ô`\)»K¥ €y\€ædwŽÁ„ñÚTôÛüSP¿º²‘`ÀÄyhÁC "íÒ¡}û†”w©©Vy7Öû˜vþúKîYÖ¦(å¶¡}ˆðö§ðνH…‘Úî,ý?Æì%;/ø“2ZÎ!À‹O$Í{Ð÷2ŸéS³â¶d‘P4nÄP…^µìn¦ÿ¹$v]L]õøŒËaˆë6®'` +6<%¦{¸TÒÙLyàPççјsÒoÓkŸ¼*;ävëþmnŠÎ6)/(#üK4A¹ù{6åµ<¯¼›ŸazU96z„ŸM@ÛWékܱÇZ²—Èu yiInNÂiÀd¥Â„8 øE*¡×“ÑnÑ “òšR±{ ö±»†´ÆRXí ¸Wí»Qp (¸6ç’å3¡m^ŠÂLõb·²}+/^µeµQ<äŒÍêGE,/²Z:Pj­k'H­¤V RA©¥Z[*Ù9•v:µ:­ŽÚxж.§Úæ¥jc—I£®5 ãºP’Šl‰ò´Ó Z8X'íýˆÎ¥éÜöîýH9¤|M9ôQúTI¹qæîtxc0à°™ìmiD¾a‰Ýl·ï¾0²!´Ø¨Ù›Hƒ ë9ÔÛ9›Æ¢­Õèy~þ$ã&åý_U¢nÙ±çfû˜ÞzäË5Sø9Ÿù8ã¸?)»Öž‡¨IÃñ´9Àk¸Ñû8‘.Óq5b£­ÁÉAëôöÂÜJ|y& x5õ&§h7æé›Ÿ?õu\«á–÷Ñío¾:ÜÒzëª16·3ÈrryˆÈKrKJž]B¾9”l/§Ûqú¦{aú€תsŒž:j`ñewR¶N!|4ÐܸæWÇ0oš¹g- æšï„XoÿâÁÕl®gÃ\Il&¨ào‚s]¼ íîtñµøƒ¡É+/cæÔ&âä ™¤®€6à3ª¤z¨_ Š~‡ ëQjÁÌ‚yÕÃý,;Meý-ßC]`O5.œU`[¤ÓßäÔkH7”¼Ÿ»Ùkm;rŸ*Úजfª ­¢Ñ\|74‡lQÔÇçºhàÀ­åGnüýŒÜÒâ9¶ÁP·Ç£ÓÑò¡%·Msܽëº9Ò®^¢ïÒßßÈOÉù»Ã*h§¡FPýüêQø•&çÝOmàܵMb£½ÞaLÏœ|ב­G:ö^vê›KÖSÚP7¹ab`bƒ'lÑ_!t>òkAøý7ŒÂ/‰ŠÉÀ€jŸ¯ÞºyCÚ0|pLi«ä ò–RÖ¶)Ô™€Â± †–…êEë!‹¹­=®¢2»s2§ :l 7€ÂélM%#Ãyœe¨Ñeü^já¥]±[¼–®Xg£s”§–Í®±N4×OgçÖݾ(Ô›Jø}Žå…?­8û²Ëf÷¯Z}êÛü¿ú¹ É™“VÏ(ÿ'׵廲5¶ÆÆ`“x—ûmå=å?/>‹O›{fÉ LöÇ@ít0gÐç;!Ê)Ùþ—EvÃø»ØøÁ¶0'ØËüÙ¯rk K¡MUC9 ‹×ÃL€ì õ. NÀ*grrL,tt"‰|p»Ð’Q]áñ&Ðöç’‹‹ Õ˜É@›@ÉÂitú· wú" Õüuª×[f¤vSýÁÛ“ »åãñFdŸpí¤ /œÔ=oþ§Gø†Ñ÷èÑv[K×°²Œ¾ø½§ëÛ" [€ž@µ°Ô4ò]Rt"~2'ä %¤ÒË’)ÉK¡ Fv2`)´3—¹0îöÔ|4‡8bF“ÜT)Øé'rddØjØbEx÷íñí jALsäÕÞàŽÄñŽ;—ónZhÊ€ »rSPbQëìÀ³vkÁ<©Ù1}4ÒÜ£J6˜*ÊN«ÃÎ à¿D9PÐÑHÖ¦b 's´¨¾­,ê`âv^¢åh„{²ïÞc4ö”L/ïxBùÙ‹—/0Û¸ø^çÑ–»Ö, O1¹®»bç.W>øøŽ¿±lÀªÓY º óÆ/ ºê7¯<|éu/)ŸÞù7åê“ç•ßæv}µóà.N^xÍG7,JÝó\îò¯|ŸN|ú5]~ðÍk¿ºÆá®ŸÒRo1¤¨^ðƒd7)šî;f'ä.´‘Ì&.e¤—ä°¥JÏ-És-…™p6¹$OVÝ_ð=–#ÎMmb‰Å¨/gŠGL[s×4˼œl-8§"&ôBMgƒb0›;&»àk9]ÎN`Òlg$ TfXÉ ÔÏ¢a®U ð¦Âu¶ã¡ú_½{ŽgVÓÞ–÷\òØß÷Þõ¾s}nhÕ#p^£1]Ð'l}éä‚}—,ºÜV3ÑÛ7}Ñv‹Þ°ÕV¯´úÔY~†r ¼þóÑÖë¨;Ó„NýÙ¶ãß¼lÞM /ßóZ«Þd3ä 6§8ÿúÕÅ[¾ùÔ×þ~ïÎñ‡¯ní]zÿÖØB›M ¬Þs-e~ôn•n•æ(F3i!L²8‰I Q5Bc)€âuÕàÕâôuZ">¡r<ðWºì¯UçßUÿkåœ+¸˜ènÆO2cœõ%ÙšM,‡Ñ6ð>À –µ[+eÀd®kòøTÆww7Rk*I‰Íñp LÆ-£ h¥Å×ÙW.üÊÆo”é&ººÖ¢üI¹ã–ùÛ,ú-[»fwÛÓ-—oÔ\¾q±r²üå$ýßô'”§+ôµÊ€çþ•²LÍÒY4aÓß¿•0úTcŠfðã­„b˜“ ZÃ`+9W¹… T:¹_ …wŽE}ÐõÆß›ÑIGzÐ_IÛz:žœlHÀ·R9˜›N`´Ò™,„$ŒÕ¡™I‰vf‚Á¬wfEuyQD Dˆ íW?u»o¹ôâ6­Xví—oŸÛÝ&Šô eð´ØÞ1{ÎáÑò×õNÛækvÚ»¨{Y¨¡=þ}™6ÐîX~ñ”|ð,Û$12™ÜÌlX oBޖ䆄HÉ žJ²`¡¥rw…(a}À(ªà‚§€i´`¤LN1×s HlØ# ää â°×ÓÆ¼ÊFŒÍBCd¹ÑnÁ¶„XM8Ÿ÷>Å6~A0pàOùCN «ÆœHŒ‚HžeE¤þŒ†dú•,Êqe™rÜ¢|DYñ¤ò×ÜŸ‘2ýìí,C2„<éíÁx]ÛñžÞf幓ø¡êÓýPg€-(` …؉ <óf ^èßœÊ FŒZ0/{ôk÷1sÒtipÀèõMÈìrH<¤Õ žs¡„[Ûþ±H\–v&]é¡£È42•FmT ó®°È»²pÕˆš¬º2”x¸‹-"÷c§Ü+Ú­¶r¯ç–o;Ãi”wÞ{z¾ÿÁ½œæ=åê}¯ü)½÷Û¼“¾Ö\O_«©QÚ뛕vŸSi«©¡ÇmÚ¤<®Mõo÷¼ïc¼S³îu$S¹ÏñŒ„T2„ 8ÎEQò@ÇÑH(±f;CY@×Ç$RÈÂ4 c?•ïDC⊰§–ÓàýN4q4ÀZÕNfGPxáogãàPFмà•7Ü»âòrÌdãeâW`0LÁ¸W$Ä”Þy|®ž7éµoý‰Þ¶vòÒ}/mß!G;goÛ¬<}ðq僾9uK—Ñö"çÿ¥rðg÷‰}áZêÛ5wÖ½å¯ÝÛèeÔúÐ7©÷²PàJå7û¿¡¼~ÕUk¨¨àªMÿ>yгæ›.±;RÉ•+DÒz1•^<09W«5·$â³ê8“Ááœ1·ÏXûb±þ9ZnpwïWxêÃïlÞÖ•?¸éKßçµKïØvíÀŠŸP‡qÃâµÊ_¯Ú1ås\º·”ÛÞüû˷ݼóØCCöŽç®»OyêÚ][<¿Ýÿ½êëþ/¯Öò¶rï‡_;=»Ïœs|M¹÷Ä~Å6éÎ]¹èïÕêvnÞ üúúkž÷ú.^ñΜyöîžK/[¼¸Þ5ÑÕ7aYß,¶;;žjqhhWŒ÷ÎñxýB,0wQ4«744_pÅ´ «åª;çlX‹mßyÝuwºloܾwûöÖ`S€:~Âmx¶gž}rÏú ¤ê#ê ðþ|r%¹‘ÜAo"²&!¯-ÉRB¾5%ßT’w'‹ÒMèòI{ ±âMžÞô%po²È×#*ÄMÈ›Rr+ˆÈ 9qB^_¾p}B“I –äõ–Bž¥ûd—EΖälN ; ÉW¾Ü·CÍqù,…=ÐtsR¾½$ß’,Þ¾íö[á‡÷ÜŽ§{$p;ïR±¬aëȰŠegYä™#…AîyÙÈ…#-jsŸEž1RXÊ"/)Ìš©‡†á™}3l±Bß =|h¸oÖL[L´ /\­ƒËôòRËð²¥Ëm1rdÆÌ¾YƒK—-Wþè9- ç׃Hf4›P¬]bqåÚëQp};@7Šî(Z†ÂžÐ@´¥µÐJÑ¡6¸I,:]LÊ£×C³;±~‡Šì^@k=àÿÆ…si>Œ*Çôt} `J£j7¡·Ì¹L¼ÎÄgÓ=|¶šÁv€Ý¸âÓÔ™ÆyšaN´j)Ý _Øù‹Y—¬óy:Cþ%6›«Þæ ·uûê-ÍÞx½ýžû”Fåão̞盾ò‹³m]zªåJ&Û”9wîJ%g·X_ Ħ…ꃳÚkƒ¶TÏ´PsíÓß:ú»«SM+â]—_tM¶¦§4MZ3½ÃÁe€ œcúËÞk.íJn•¦·Ì˜Òžmöôšm±Ž„Óé‰ôö,OÆæO… Ë’›òwm¸¤¯UÉ‚Ygª1ëÜmq[ƒ sÆ|žþù}–ÄÂŽV³¡FÔñ|(žmM¦¼[ï: Ú”¶æVnß‘Þ:Ùæ±æ.Úº©|êŒ_®bú/ƒÎ﾿ýê¾Ë®®@õ^Hwƒ6'‹é,²\:¼žµ ›PX Ê=MaÎ/\2ˆsž ¾Z:+Nï囩W$× –MjÈμ  ¿Øúôk\ v0d¢ø]œ¿©¦oú̃ Ü¿k¥»¡¶åª‹¯È¶Ä6n¾vó•K§‰VÊÕˆ¾–©áô¦Å3lVÿÓ»,´kÚ+»Ö»¸àÔE+Väí¶Þ_ï͵46ðbc½ÁpRçš4Aøæ#?]9Ûdgjj04¶YK¾òèïnX~û@Ö¦©«Ói•?òµ@{´¥ÎÆ5xkëh} f µóÅò»u¾•ó¿=÷æsÚýf=å,7$§µ¯Z0oR[MíKßúMˆ7ï:n:úɵà•"Þj)Zp  ܆„|yI^’`)Á%Õ” •¯KÈÞò pQKÅ€—E”Ö”{xê%ðÉ–Bœøb¼Že {@ô¯ê¼ N¾\!¾Œ£àhhÑÏÛ‰U'Êf²–¸ Rwù*s<Àî-‡ë¼¤OõˆØ™WJ1ž]qLuNs¢ :¡xHYpüÑø1ôŠ™Èøp£áÎê•ÛÁN©Ã®ÞÀðÍä[½×—Nî¾ëšýOÒ®wvÛRôK'oÙµñ¹O*?{g·8ÞÙ™^zÍ‘}[7wO§LZ2oÓòÆ ß/¨\¹º-æó:™@ ¡~RnÑàæ;6nÈå²é•—~ñâ)9¿¿gÚúùí W£ÓÑä‹¥ƒ!Í}»O~©¿v÷;ÊÏž\µdh3\M2}ùÚõäàÀŽò_úçÏMLÇ/Y·lJO$ÚØPo׬f—Ý„|¾ž›3\™L´·7¸[¢sf¯^{Á´–7€²fo2?¡ÍéôÒ]n¿Ÿù cZÌq&É "·!þ.FÛX·§<•u'd±TuØ(¶b-ˆØÀÞ½ì= Y¡»ÓXˆ¡ƒÙtÀ´FP–Tí„ʉZ3E°m×êÆÞb4édؼa*LÜ´:Ouµn«ùL‹^Odú;"NøßŸÉ#VòÓvô]ÔJÁ÷¹ä‘o׈íþ¦Å,Zr éÏLè­óGÙ<:ÔßÒÑÂÂ%ºW—Òm'É$2›,"kÈF²ƒÜ@¯&˜{œZ’/KÈËKÅå—ÁhÈòAàç•,‚¾!%Ï+Óë®Áº˜®„ü…Æaa;ò–’¼Cõª¾˜ÛOÈÝ¥ádwû˜M–änK¡dbAI^`)¬…³¡’òû•«ÕAsõsÖ¯ŸÓ·V£œš÷Ûïu¯ØÙ7½ <¥lSþõK[fmKb‰§m¤…OÐàwŸ¤Á'žPÞzò»Ê[Û¦ÅÓzWz[Í]wÿK—¹ÕküÁÑAú/Ó.VÚÑžooÏÓŽXnB»ð•«VèKΚZͬ ×mýê¾n勵«¯È®hLN¼õÝÝ»k²³qy&ÑÔßʽrâé¡¡Ã6Âû'+{{WöÞ󚻺ÌÞ˜ypð}ÖÂ_?Ñ^þñ”yÍ-“Ö¥pƒ–ˆ|Ã;ˆÜ˜ÛR²¶TÔ6¢˜j)0v cÞÚRÕq?²A­U6æÔò0µ¶£‡úœ.‡.ša¥<‹q…3®,»=…úYõø»ºÄ Í‹Ôù¢æëá”Ò—îÚû¿pý7ðB÷’ò?ã{ÅŸHøé{·ýèÙÛ6´w¬ Äã¥yÏs?½íuÄã½_»ã§?©Öëè0¯"S˜¿è,Ém@O1Ì(!–dQ-<¯0ãm18_‹#ô8™SKU*á¬(ãˆÝE³ÎdÖE;‘·t è0M!€{_-$£$B‡„ðÞ°†…çtfÂÊÊ›á!,ö`yKé–›ÑÕôÖ¡ˆ²OÈç:šÏÑH8ŒsÏ‚ßÛËê°Ôê>b3hm—f”7h%zgSî.ÿ™3Ó­å…‡é6ºíáòG”³Óå?+wÓ­œYùÿ( *ßW^æÐåÊËÊ‘rvû:šRJë¶+?á~Lg)o)ùhZ9¨üíÖÂ`­“•8ȸ[¢¤¢â¹%/•ñÃȰÆË“ªÚ‡5,ûÐþpÀ©Z¬ó ²|«¡„uTÀŽ|{mëHÁ€uZ:µ8ÅX˜P¦K‚/)K’”çGNÓƒghQ*WêµØ_Ô’z‚ŽXSnDf/˜X§ Ô/Ò3å€B+cíÊX .¸2xÕ?VoÃø§™„ÉÅŒƒŒƒ}",Р²¨‚%98^ù)ø€‘†ë»ý‹† h=\ëÐ4…Â,‚àqÀ5fWýájÁâY+x `BÓq.`¢˜KÆRœÍ?¢ðç5?Ú¼ùGʧÊ;ʧ?W<øú¯?¸B=ÐoK´õ"¾ð™‡àŒ3œy ÊCô e…rbQkÅ´¨?€ìÄËfE(aîkD­ ¹k‹ ¶ÏL;©(ZŽœÜOÉþ“eŠ)``Xò4á÷©e”gèXCI¹ªZAê’b¬•T, Jª>\PÐ’¬”P—¤r;Qµ–’ʪqc †JÅ ˜ä$<ðÉ¥ e„— ì)†¿âÕRºLÊÁ^"­ù@fý ‡„tçdª²p ’F.€Cø”ôgxˆeÁ»ˆ[rG"éXU „þ>…gñ>Çžº(‰¸ϸÇÕjUÆÜI9“Ó),¦9w¬ÙóŽõœauUðBÃG_B` §ã&95RhÓ|"·b[{ ÑÀ0Óc8@«fkŠD[&´2æË˜A¾¹J”2ç¥.o×ÎŽ‚A¶ýc")¢¼ÓÏs’¶ÝínÒm|êóéÅù\G9ÈÖ¤ƒçiÔžE·jÄ3AR$K&“©d:9R¥dS¢êH¥X1ÞD ¢/QlIw§ Å¬‘™‚Ø­-QèÊCK{©›×çý‚qDo™å|p¯¹Tx´`¸¼ÐÒçÑR¡ ,¢fÓ]pž*:'á‘Y´y8ŸZ*è{ñ86a3þ)Ú •‡WõøyçŸGyé<ç';*OªjÍsŠ°Ç·3ÿ›ÒAÝõºëWÚÃe±+9•b¥ ÕEfªµ»tQ êi°ÖÞÕAïøÝáð†ÈáHä0×|8<9þ²ó‚t°=½P½> .ŸÄ§ð‘wà~’Œ«ÿ¶Á¯ÍgÇ…sÌ4­—iZ5ÖíVõk3Ö›bl[#˜,9 ˆNHÁ…%™¦œÜ$SRcPUkº‡Kz9ðò(‹mǩՂÕÓ‚Ì\Q‰›éIŠøõïï|ýÁð™Âi¡¿¢5w~ÿëŠ(ÑÿÚ¼âAŽWöbÉ4ØYV:ÇŸÕw?Y[í½—UÍUÆ8w ÁÊã¼¾óŒÂ+GM«—³ÊV‘ºí,²üFÅcþ?Ù­œôϧ¨Œpöø&áqã 3]L½L‹{[À9lf‘‚f?¨åÊØ[ǽ£‰(Nr YŒ²D4 Ÿj‰âi ·DÇ(Cé ÉBNŽŠEWKß¹­ ÖNüÿ#ÖXÄퟭûî¬X–Ô¦'Ú㤎ÕXÆKj²µ„ɹhŲ@/pË='Æ%¼ÀKlÇ—x¥Fäë½,ƒ3Akº‚ÖÐ6Z³†~ªh¯Pþ[9®ü÷š?Òmó^øÕóséN宇ßÞøB¿PÉníg°I ôÔºíÛ×*E³n`ÊSÊ]óæÑtû#‹æ—?T>ÉUa`Ú*-Ï6-R$Ï$ܨ<]~ŸÎUq.:‡r®òûh¿T¿F‚©5’V–ŸÑ•@Ä5Õú/t¶…®ˆ)è1`F1màt¸ +–$ä iëíAuð… EpQÔòÿ1?µ‰WÂ([ DÑ‘áÉ)¸#„1âzšržr(¨¿6×#ÚøœžÕ©ág…,Í¢ŒàKGmd 5Vû*n`•2ßá“#¼¤äGá0) Þ+×á{ÅG„o†oõ1TÆÃˆ L׃ÇeDù剨Fr)[ôƒ=&ê@qI.×(3—®,±!޳5:¶Æ¡«G ¦Æ«Ñ3wцi_¶èž(èmÀ’*R6WWհªF¶(<Ù2š Á)M7uø- Q²åÀø¯VÖœ&à¾;F÷Ò…´é§›N“_(ßQ"œ…=‚S£–Þ£«_¿‰lú©òÊ÷”mǨ@ß Kc `{uÔ=Åh]_ñFíL»›¡ã 4o˜‹ˆdiuº¨=h[ÊVíêüm˸s>8‰ûû²m?ù#wCj8­ü…é[J^Þ+¼~ñôéÛû²†-­=\Õ­üXm‰•DHœ\Jx4”Š ³' N0¯ èM%9ŽqÈÖRe¡ …ºhÖàCæZ 'rË ¹M µµ`˜¾! a¶¦©D6Ú¦–QøQï:]è FYÁW ɱ¥KZVJ–­úŠíì§Sž»ùýeá9C‘ì?yåÜ¡ðÖ‡öŸ.ÿy¿ò“çnþÃrJ96! cÉw¯YšÙvr¿²fhNx;:–ØHé66#¤²>Œ­uŠbUb í°PÛZ*ZÙR&+æ8` |júXô«‰­MCvFmé™#Ï ÒÍM ¶4îÚ»X¨mÆä!XœðÒ‹…¶ž¦ÖŠ ŒæÔ¨·hwúάXb±¯Tެ,i®æ[ŽÝÍ#Á¯”O>ðyTò¸L‰S—'©.åóJ7^qï”%¶dÕGÞ£Ey1'Ì7.=CíìWaW±(ä‚Ý‚Cjs,VEv-†¯ªåWTª  å ”õÊú+ Çϯ-P†è¾´¤üí(ÞTíÚ*´kš·Q=¡bqÑ ·Jz›Ž {!ø¤ެ*#¤걿êºB︕ªšŠ€…p]Õ™ƒzò1Q_´²²ôÌû8ÿA$!ðªÁ=!)KE#[æf{&k A5N¾’Jë}¬l¿ nY“,üÇÖò¹‚¯ŽAu 5õ‹QLêZ]b$ÄQ±$7“梢SÀŠI‹’k7üŽ“þ0kÁ¯R~ó8/Ù^ï[ç4ô8ÜȃԵáweé}?¸RV>Œ)§¼'èŒòQŸûá:™ÚbT×üºòã*ïoøš«á¦®ÁtTé„A-!QÐŒ-¤’€ê‰@ªv'éÛRåèÔh˜^¥ –Xá7 –6Œ}Q˜Ù  .»ÄàÚ(:›hm¸¼žhþ¾ÑÆÐëÍÃB.¦<šXn¤9‰kAîüI ?תKå´ã ýΔ*©2Pm¸Z¤T+Z1å^ Zhò6#xÜÑ›õêÒƒaƒÉÞ &àðw¦{hÒKí&ˆTq¬¡ro€îÜ¢ü7ýª42øÕ§¾:ˆo­[ÞºõaúhõŸçö÷(Í`1ÉúÊ#ƒƒ4‡mU¤±{gÙ%\¡œ$HSu…²‘ñ-ÇÖ)ãºdu)rACîèp&T”Å…vþFzFÑ£1äÙR×2ùËÏ5*ÒÙÞ â¶Ê:iÕ“¨FFîg³]ËÖi¹SrËý°Š.’§°ìU>!·¦äi%9ÂVæ$XïM)è:®çíT5Çø€ f˜›B!Wmˆ!pfÁT¡£“KÃsO/>0Y]+ª< “»`àX¥rW×1. :ü™ µ=üÌÑ:áÙÆ¯*? í¶ÁHF„A·qÿ/‡û.¢la1¾0‚ðSPE€GcÓÈY‡7Øat\0D­/Ì…ñêF’ hUx¶8ˆg†…7`F”7¡½lbH +ýѼct±²"‹%»ÀûLUržÒ¾!îèî/_’8ºmÿI—«RÈí;¾ÏÜ}tÕ»NîïéU¡£ŽÇ<† Fÿ‡¢‘ôTµ\Ïn¦&G£ã/Ò9sÞï?>‡zá8çX¿’£(9p¥ïïÎåþ×úߟÍÍRrü/O“ÌA¥ˆ 5èšéP'ëØ8yUeTÊu«º¢jËy5Þ[òª¹å×4jþT´{lmª!¡"A\v*kÔ¤º,Q¦Þ”ï,¥*¶¥t)®J_:¨ØÛ ] öÄF_ÓJ컀é³ÔŸŠBã‡K•ï ~¢K—ò#ìYüË+䵨ô.Ñ#‚À”`Ê#á<;cÏ¡Êãs€½ ìƒøWy%Ï._/kDÉÕ”óÐI°×")ÂL3 Q‘o¥öO ²!_"Ø™@ ‘1‚¡Cz@<*¤`¥ØÅ:[àoF]Uד#v’ë’ˆ”Œê¦,WŒuÆ¡ò >#®+Óh9µºXÀd#t™â¥\‡XJ~h2Ø¿#˜9{È¡1{¨nÿ¾&U?øJš½¸š°="˜hŒ‘aÕ bñ µÎsZ X?f …¢C]Çi¬æî´5˜k)j´H 5ÄŠZ Ë›c€+Üo(UWuúí=öÁiÃø+G42Ê[o&o)o±9bo‚ôžòH»òZ×N/¥ë( E MR•õDµ1Í0[‹I1‚«W¼à¶¥ªÖÆûYk3ä?Áf!ä[[A¼äxòùCè¡ðb±‘]þ¡)ÂRÿ€†(Ð[«ýŒU½8iˆQ†»¶÷ùÆÛ(µ`ÞÔñœ±™\ìcñ‚x$‹^†¶½l ^„ã>‹:D\£ .Mðú`0.Âú_ ÎÚ{Lé2{znÏYw¾)ªeýl¯UNÃüg%vc|5³\æ‘àv˜-Ö²â¶Z ’Þ6¶ÅÈøäœ…áڢŌZÀƒF·‹åÝŠœÑŠ‘/¶æãÕ6êÕFÜ FUÑá$dEÚ: Ec·$ôp0Q.‚“òœŠ}(cÿ7¹0ž?V~ƒñÑXW FÒU‡QµÃ5Ÿév%…=”9è•Q#މ*e΀èGƒCÁpñ*‘ÁáJâÔµ&ܘŒ‰ g "8p™4J—65N ‚_ ešÄV6jqW–z 12¨T0‚§Up6äÎ(C1Ð⢠è†ND„‘t#~X_ÀªÁò£êÒ lÇè+U~ŠBB-½'ËÖ!‘ºUºUàwâ¼FXyV§…ÉÄ9!w”ä «&u³Ìj¡ƒÇ´¼F_;¡uZZ¶„êØÒ·õ°è¨oj²Hí°‡øC-¸Ç‰Ü)SM=n¨!›­‡µÆ:‹Í¥ú)Y¬dŠf5Y>ëÌ–uñNWØ…uN:—.¬ÕÙtXÎÕEm‘¨¦ª÷üA¯ÿÃ$:1Ñí¸ã¥é–é/ÝéìJщ“X³òjÛT'4ôÓ_ºÃÑ•R^å" …q¬6v'Î÷0~‰òê¤ÊwC;g¬€7þ¬ý—Ølª;0¹Ç¬ÙØžF.u&œ98m‡q&ÑΨâ6#õ´:buœ³ Û±(Kµ6ÚÉž³S’¶¿õ å³ÊÜÑYÊñã·³/Sò¸r|wô‹4Už±ë¶ã´íœ~o"(Ÿàý˜™÷cÄ(l¥¾¤‚G›˜æ¯e«¦¹dÑÈʨê4:æö ¡Ö'Ùuè™l D±`©eî*nÓİ,.5u`òÈRÁÅÕ4Ô/Èï(b¿ŠÍ>ÌZ̳¢ÿ"S¿`&«¿j¸ÎÈ0b¼&RõÙÕ€• RþŒÏÎö`cÕÉAÈø©!cqïÙ±ƒêוÆP~T_3³}Ž$¶_®OÓU>TÁ¨ø ›É…!¨¿«ÖqŸåÎ|–G 0öYÊvRwÖR·q*³o¨ìóDÆïóDªû<ñ”mT¢¯b®i•½Iþÿ¡.:u)deë„‘0øÈ oœRa—†œÊŒ‹½Vú¨â®H± ûøÿˆ¼tã×çÀ®°ä!N£š™ÔqÙªˆË_ùw~ÄUÝoKRGyú¬‘sŸ…\eÜxŠ™µ°ëÔxÔu¶,ºHÓ!vu±ªO°½ãÔDí¼Yƒ”ûœ=Ûø”sA£ûeÑ:c ^¼ä«‡jÏ;tþø¡>‹Ølj ´¶·M˦÷¼Nʱ×)%·—æhnïè²ôŒ>¾—¾H_Ü«¼X©ImUÉ'60ÙNP6Ü,XØTº/UÙ¨.ˆ1BVóhDÎ,è‚I `# *+üh“ºÑ…?©f„1§ßœÀrH@M Űh0 g<—c[§Ñ0KcÎã§D ûy¶W‡V­Ö«eÊôKt¬ÐBÍ|JJ%ñ‰RW}ªŸf*ûˆœ>ϸ=èªãö¨+ǽl”píV ƒmj½Q£÷mÔ¡ŸåvU‡bò Ä7ð¹6˜Ìç‚eCÿa÷¥óô»™ð{a‹~Þ/n¤úüEʾÃÿðWg(Ñð)¶7^Eî4 Û½,þ¯ñÖ[ ¼–Tj1P„y0=Iâ£qÄ]X¦k·í›óÌšÓˆ9X]þCü à¦†Êñ}sæ*R%žX•7Ë¡bŒÝ”ÀD/)pµ•¥&†³~‡žç'ÎþÚq¹"h˜&ˆ‰l•]R‹¡`:ÁWE>~üMÀö'© 1ÉV·ð)t@ãð Æé8Ââ¥u¬ÇK6±=[ÕuœÚe £‰¹ &u›VÀ^nÌŽkT±×XY1:)8L"®k"\ÊžJ8[d ›tl•S0œBË£™Ê»0´/7°öènedS¸#j1 ‚Û}CKgEºd÷QLKÌb}Úç¤p ›C·^ŸR—-¨ÙQ¬žâüÓû¬˜‹Ëú¸ÌY í'¸“'¯ý„æx½¡RŒΦlÁ¬_äS:Nj‘>’Zè;p„EÑÊDªÖI ûcä¬w\58U«Á™Ô”pk×JÑ$ª¡jžF,L¨EHm.7–[ŒRž«â Äû˜‰Qò#TÍ<‰Ë”WQ=ƒ 4lä9 CqÀþVRÝ¿¸)QIµØDWVçŠ+Êd3ueEʲ¶Òï>ðÖx—®…‘®xZÐ2ã%®È€Ãè»Xs£õ‚ÄžcõVß9o|?…uW#øo4¯æ àRÏ4&àole·Uì"äYÝÇê¶X»žŒæá.ò•š.ó¢øúX"ÿÃõ»kxÚc`d```f8òèÊf‡x~›¯ ò pîkã~dšƒB1(wþ XxÚc`d`à`øD20üÿ$"(€cüõxÚ5O»Â@ “M ú¼ìüGMŪÒe‡Ôaza,ùâ{çì“Îñƒ- *¿"ÁD2ª‚j™0Ê»ÿ.dwõ±b âf(¯k>ŸGG«éÝ9á),R æSz…wEÍ]„ÏÆ0•Ïæäø¥²½•Z+Oý±‰ã ÃZ/z?sh·éöy`!‚&&&.’ÞZ ®ä:Ô$‚P"pÎ îbö ² x ®  6 €  ¢ œ@F¼0¼Z†²ÜP€ú–\’ð`ˆ(JÔò$@l–ø6°.r†²6`â&Þ R t š ² Æ Ü ð!!$!è"8"º##x#Ð$4$l$¼%R%®&&:&X&v&”&¢&ô't'¼(((¦(¼))")L)È*$*b*œ*È++d+¼,,V,ž,à,ö--- €½xÚ’½NA…Ïš`aE,¬6ÑBMø—¨PYˆ‰C4jg²šŒü +`ãóé Xú–V~3 Á …™ÌιgÎ=÷ÎÌJZÑ«âòIIŸÌ ö”"šà˜Võåp\eoªIhÓ+;¼¤±wëð2ü‡ÃI­{ß¿i-–rø]¹ØŽŽUÓ™| ª¯ÔU‡¸ÀìÂø ˆ_X[ ÈªþªG HMPÝ2(ÔX÷|{DSÝšˆÑSYYÆÈŽŒì>³šŠ ø&·C™…íÁ¦ñô„Òø´a6TuþÔÛætÆÃôjüºÖA5sž¾ŠxåEUt¥SÝè´(/=—¹HãÏi®çîéwµš.a&ÑŒm¢Œœßý¼ÝËho…zÄÓhê°æžîx«ŒJvîãQÐÁ¿ú?mW‡ì¶áö¶;ÜAˆëì%'=T­›O^`³òp¦ÿoY¢®ùæíŸ“cÝýžûpxÚmÒÕrQFáYƒwww™>gŸî‡@pww 48OÈ+!™®èª©ÿ¦ë›Ú«ºÕn<¿~¶RëÏ??ZmÚŒa,ãO˜È$&3…©Lc:3˜É,f3‡¹Ìc> XÈ"³„¥,c9+XÉ*V³†µ¬c=ØÈ&6³…­lc;*™ PÓÐK;ØÉ.v³‡½ìc?èç ‡à0G8Ê1Žs‚“œâ4g8Ë9Îs‹\â2W¸Ê5®sƒ›Üâ6w¸Ë=îó€‡<â1Oä)ÏxÎ †xÉ+^ó†·¼c˜÷|à#ŸøÌ¾òï=ÃCƒ© ôÿݪÓq+7¹Ù ·¸µÛ¸½nßÈ&½¤—ô’^ÒKzI/é%½4êUz•^¥WéUz•^¥WéUz•^ÒKzI/é%½Ôõ²÷dïÉÞ“½'{O_»ÛýÿÐ Ð Ð Ð øçtﻄ]Â.a—°KØ%ìv »„]Â.a—°KØ%ìv‰¤—ô’^ÒËzY/ëe½¬—õ²^ÖËzY/ôB/ôB/ôB/ôB/ôB¯è½¢WôŠ^Ñ+zE¯è½Z¯Ö«õj½Z¯Ö«õj½Z¯Ökô½F¯Ñkº^ñ»*~WÅïªtòoU(5¸ÿ…°K°PX±ŽY±F+X!°YK°RX!°€Y°+\XY°+RÏÑ?plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/class.jetpack-start-end-points.php0000644000312500031250000004736612654411246032421 0ustar eacbforgeacbforg true, 'configured' => Jetpack::is_active(), 'logo_url' => plugins_url('jetpack/images/jetpack-logo.png'), 'jumpstart_modules' => array_values(self::jumpstart_modules()), 'additional_modules' => array(), 'active_modules' => array_values(Jetpack::init()->get_active_modules()) ); } else { $jetpack_config = array( 'plugin_active' => false, 'configured' => false, 'logo_url' => '', 'jumpstart_modules' => array(), 'additional_modules' => array(), 'active_modules' => array() ); } // set the jetpack step status to "completed" if jetpack is active if ( $jetpack_config['configured'] ) { $step_statuses['jetpack'] = array('completed' => true); } $themes = array_slice ( array_map( array(__CLASS__, 'normalize_installed_theme'), wp_prepare_themes_for_js() ), 0, self::MAX_THEMES); return array( 'base_url' => JETPACK_START_BASE_URL, 'site_url' => site_url(), 'nonce' => wp_create_nonce( Jetpack_Start_EndPoints::AJAX_NONCE ), 'debug' => WP_DEBUG ? true : false, 'bloginfo' => array( 'name' => wp_kses_decode_entities(stripslashes(get_bloginfo('name'))), 'description' => wp_kses_decode_entities(stripslashes(get_bloginfo('description'))) ), 'site_actions' => array( 'set_title' => 'jps_set_title', 'set_layout' => 'jps_set_layout', 'set_theme' => 'jps_set_theme', 'install_theme' => 'jps_install_theme', 'get_popular_themes' => 'jps_get_popular_themes', 'configure_jetpack' => 'jps_configure_jetpack', 'activate_jetpack_modules' => 'jps_activate_jetpack_modules', 'deactivate_jetpack_modules' => 'jps_deactivate_jetpack_modules', 'list_jetpack_modules' => 'jps_list_jetpack_modules', 'reset_data' => 'jps_reset_data', 'build_contact_page' => 'jps_build_contact_page' ), 'step_actions' => array( 'start' => 'jps_started', 'disable' => 'jps_disabled', 'view' => 'jps_step_view', 'skip' => 'jps_step_skip', 'complete' => 'jps_step_complete' ), 'jetpack' => $jetpack_config, 'themes' => $themes, 'started' => $started, 'step_status' => $step_statuses, 'steps' => array( 'layout' => array( 'current' => self::get_layout() ), 'contact_page' => $contact_page_info, 'advanced_settings' => array( 'jetpack_modules_url' => admin_url( 'admin.php?page=jetpack_modules' ), 'widgets_url' => admin_url( 'widgets.php' ), 'themes_url' => admin_url( 'themes.php' ), 'plugins_url' => admin_url( 'plugins.php' ), 'customize_url' => wp_customize_url(), 'new_blog_post_url' => admin_url( 'post-new.php' ), 'manage_posts_url' => admin_url( 'edit.php' ), 'new_page_url' => admin_url( 'post-new.php?post_type=page' ), 'manage_pages_url' => admin_url( 'edit.php?post_type=page' ) ) ), ); } static function get_layout() { if ( get_option( 'show_on_front' ) == 'page') { if ( get_option( 'page_for_posts' ) == 0 || get_option( 'page_for_posts' ) == null ) { $layout = 'website'; } else { $layout = 'site-blog'; } } else { $layout = 'blog'; } return $layout; } static function default_theme_filter($theme) { return ( in_array( $theme['id'], self::$default_themes ) || get_stylesheet() == $theme['id'] ); } static function existing_theme_filter($theme) { return !wp_get_theme( $theme->slug )->exists(); } static function get_popular_themes() { // add_action( 'wp_ajax_jps_set_theme', array( __CLASS__, 'set_theme' ) ); global $theme_field_defaults; $args = array( 'browse' => 'popular', 'per_page' => 40, 'fields' => $theme_field_defaults ); $themes = themes_api( 'query_themes', $args ); if ( is_wp_error( $themes )) { wp_send_json_error("There was an error loading themes: ".$themes->get_error_message()); die(); } $non_installed_themes = array_filter($themes->themes, array(__CLASS__, 'existing_theme_filter')); $rand_keys_to_exclude = array_rand( $non_installed_themes, ( sizeof($non_installed_themes) - self::NUM_RAND_THEMES ) ); $random_non_installed_themes = array_diff_key( $non_installed_themes, array_flip($rand_keys_to_exclude) ); // error_log(print_r($random_non_installed_themes, true)); wp_send_json_success( array_map( array(__CLASS__, 'normalize_api_theme'), array_values( $random_non_installed_themes ) ) ); } static function normalize_api_theme($theme) { return array( 'id' => $theme->slug, 'screenshot' => array($theme->screenshot_url), 'name' => $theme->name, 'author' => $theme->author, 'description' => $theme->description, 'active' => false, 'installed' => false ); } static function normalize_installed_theme($theme) { return array( 'id' => $theme['id'], 'screenshot' => array($theme['screenshot'][0]), 'name' => $theme['name'], 'author' => $theme['author'], 'description' => $theme['description'], 'active' => $theme['active'], 'installed' => true ); } static function reset_data() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); delete_option( self::STEP_STATUS_KEY ); delete_option( self::STARTED_KEY ); wp_send_json_success( 'deleted' ); } static function activate_jetpack_modules() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); // shamelessly copied from class.jetpack.php $modules = $_REQUEST['modules']; $modules = array_map( 'sanitize_key', $modules ); // $modules_filtered = Jetpack::init()->filter_default_modules( $modules ); foreach ( $modules as $module_slug ) { Jetpack::log( 'activate', $module_slug ); Jetpack::activate_module( $module_slug, false, false ); Jetpack::state( 'message', 'no_message' ); } //XXX TODO: determine whether this is really useful // self::set_default_publicize_config(); wp_send_json_success( $modules ); } static function deactivate_jetpack_modules() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); // shamelessly copied from class.jetpack.php $modules = $_REQUEST['modules']; $modules = array_map( 'sanitize_key', $modules ); // $modules_filtered = Jetpack::init()->filter_default_modules( $modules ); foreach ( $modules as $module_slug ) { Jetpack::log( 'deactivate', $module_slug ); Jetpack::deactivate_module( $module_slug ); Jetpack::state( 'message', 'module_deactivated' ); } wp_send_json_success( $modules ); } static function list_jetpack_modules() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $modules = Jetpack_Admin::init()->get_modules(); $module_info = array(); foreach ( $modules as $module => $value ) { $module_info[] = array( 'slug' => $value['module'], 'name' => $value['name'], 'description' => $value['jumpstart_desc'] ? $value['jumpstart_desc'] : $value['description'], 'configure_url' => $value['configurable'] ? $value['configure_url'] : null, ); } wp_send_json_success( array_values($module_info) ); } static function jumpstart_modules() { $modules = Jetpack_Admin::init()->get_modules(); $module_info = array(); foreach ( $modules as $module => $value ) { if ( in_array( 'Jumpstart', $value['feature'] ) ) { $module_info[] = array( 'slug' => $value['module'], 'name' => $value['name'], 'description' => $value['jumpstart_desc'], 'configure_url' => $value['configurable'] ? $value['configure_url'] : null, ); } } return $module_info; } // shamelessly copied from class.jetpack.php static function set_default_publicize_config() { // Set the default sharing buttons and set to display on posts if none have been set. $sharing_services = get_option( 'sharing-services' ); $sharing_options = get_option( 'sharing-options' ); if ( empty( $sharing_services['visible'] ) ) { // Default buttons to set $visible = array( 'twitter', 'facebook', 'google-plus-1', ); $hidden = array(); // Set some sharing settings $sharing = new Sharing_Service(); $sharing_options['global'] = array( 'button_style' => 'icon', 'sharing_label' => $sharing->default_sharing_label, 'open_links' => 'same', 'show' => array( 'post' ), 'custom' => isset( $sharing_options['global']['custom'] ) ? $sharing_options['global']['custom'] : array() ); update_option( 'sharing-options', $sharing_options ); update_option( 'sharing-services', array( 'visible' => $visible, 'hidden' => $hidden ) ); } } static function started() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); update_option( self::STARTED_KEY, true ); do_action('jps_started'); wp_send_json_success( 'true' ); } static function disabled() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); update_option( self::DISABLED_KEY, true ); do_action('jps_disabled'); wp_send_json_success( 'true' ); } static function step_view() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); do_action('jps_step_viewed', $_REQUEST['step']); wp_send_json_success( 'true' ); } static function step_skip() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $result = self::update_step_status($_REQUEST['step'], 'skipped', true); do_action('jps_step_skipped', $_REQUEST['step']); wp_send_json_success( $result ); } static function step_complete() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); self::update_step_status($_REQUEST['step'], 'completed', true); $result = self::update_step_status($_REQUEST['step'], 'skipped', false); if ( array_key_exists('data', $_REQUEST) ) { $data = $_REQUEST['data']; } else { $data = null; } do_action('jps_step_complete', $_REQUEST['step'], $data); wp_send_json_success( $result ); } static function update_step_status($step, $field, $value) { $step_statuses = get_option( self::STEP_STATUS_KEY, array() ); if( ! array_key_exists( $step, $step_statuses ) ) { $step_statuses[$step] = array(); } $step_statuses[$step][$field] = $value; update_option( self::STEP_STATUS_KEY, $step_statuses ); return $step_statuses; } static function set_title() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $title = esc_html( $_REQUEST['title'] ); $description = esc_html( $_REQUEST['description'] ); $updated_title = get_option( 'blogname' ) === $title || update_option( 'blogname', $title ); $updated_description = get_option( 'blogdescription' ) === $description || update_option( 'blogdescription', $description ); if ( $updated_title && $updated_description ) { wp_send_json_success( $title ); } else { wp_send_json_error(); } } static function build_contact_page() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $jps_contact_us_page = array( 'post_title' => 'Contact Us', 'post_content' => 'Hi There, We are looking forward to hearing from you. Please feel free to get in touch via the form below, we will get back to you as soon as possible. A Great Company Name 123 Main St, Warwick, RI 02889 718.555.0062 [contact-form][contact-field label=\'Name\' type=\'name\' required=\'1\'/][contact-field label=\'Email\' type=\'email\' required=\'1\'/][contact-field label=\'Comment\' type=\'textarea\' required=\'1\'/][/contact-form]', 'post_status' => 'publish', 'post_type' => 'page' ); // Insert the page into the database $page_id = wp_insert_post( $jps_contact_us_page ); if ( 0 !== $page_id ) { update_option( self::CONTACTPAGE_ID_KEY, $page_id ); do_action('jps_contact_page_built'); wp_send_json_success( self::contact_page_to_json( $page_id ) ); } else { wp_send_json_error( $page_id ); } } static function contact_page_to_json( $page_id ) { $contact_page = get_post($page_id); return array( 'url' => $contact_page->guid, 'post_title' => $contact_page->post_title, 'post_content' => $contact_page->post_content ); } static function set_layout() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $layout = esc_html( $_REQUEST['layout'] ); if ( $layout == 'website' ) { self::set_layout_to_website(); } elseif ( $layout == 'site-blog' ) { self::set_layout_to_site_with_blog(); } elseif ( $layout == 'blog') { self::set_layout_to_blog(); } else { wp_send_json_error('Unknown layout type: '.$layout); } } static function set_theme() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $theme_id = $_REQUEST['themeId']; $theme = wp_get_theme( $theme_id ); // try to install the theme if it doesn't exist if ( ! $theme->exists() ) { wp_send_json_error('Theme does not exist: '.$theme_id); die(); } if ( ! $theme->is_allowed() ) { wp_send_json_error('Action not permitted for '.$theme_id); die(); } switch_theme( $theme->get_stylesheet() ); wp_send_json_success( $theme_id ); } static function install_theme() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $theme_id = $_REQUEST['themeId']; $theme = wp_get_theme( $theme_id ); if ( ! $theme->exists() ) { include_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' ); include_once( ABSPATH . 'wp-admin/includes/theme-install.php' ); $theme_info = themes_api( 'theme_information', array( 'slug' => $theme_id, 'fields' => array( 'sections' => false, 'tags' => false ) ) ); error_log(print_r($theme_info, true)); if ( is_wp_error( $theme_info ) ) { wp_send_json_error('Could not look up theme '.$theme_id.': '.$theme_info->get_error_message()); die(); } else { $upgrader = new Theme_Upgrader( new Automatic_Upgrader_Skin() ); $install_response = $upgrader->install( $theme_info->download_link ); if( is_wp_error($install_response) ) { wp_send_json_error('Could not install theme: '.$install_response->get_error_message()); die(); } elseif ( ! $install_response ) { wp_send_json_error('Could not install theme (unspecified server error)'); die(); } } } wp_send_json_success( $theme_id ); } // try to activate the plugin if necessary and kick off the jetpack connection flow // in a single action (possibly in a dialog / iframe / something?) static function configure_jetpack() { check_ajax_referer( self::AJAX_NONCE, 'nonce' ); $return_to_step = $_REQUEST['return_to_step']; if ( ! is_plugin_active('jetpack') ) { activate_plugin('jetpack'); } if ( ! class_exists('Jetpack') ) { wp_send_json_error('There was a problem activating Jetpack'); die(); } if ( ! Jetpack::is_active() ) { if ( ! Jetpack_Options::get_option( 'blog_token' ) || ! Jetpack_Options::get_option( 'id' ) ) { $result = Jetpack::try_registration(); if ( is_wp_error( $result ) ) { $error = $result->get_error_code(); $message = $result->get_error_message(); wp_send_json_error($message.' (code: '.$error.')'); die(); } } $jp_landing_page = new Jetpack_Landing_Page(); $jp_landing_page->add_actions(); // redirect to activate link $connect_url = Jetpack::init()->build_connect_url( true, admin_url('index.php#welcome/steps/'.$return_to_step) ); if ( JETPACK_STEP_AUTO_REDIRECT ) { $connect_url = add_query_arg( 'src', JETPACK_STEP_AUTO_REDIRECT_SRC, $connect_url ); } wp_send_json_success( array('next' => $connect_url) ); } else { wp_send_json_success( 'already_active' ); } } static function set_layout_to_website() { // no posts page for this layout update_option( 'page_for_posts', null ); self::set_front_page_to_page(); wp_send_json_success( 'website' ); die(); } static function set_layout_to_site_with_blog() { self::set_front_page_to_page(); $blog_page = get_page_by_path('blog'); if ( $blog_page != null ) { $page_id = $blog_page->ID; } else { // create page $page = array( 'post_type' => 'page', 'post_title' => 'Blog', 'post_name' => 'blog', 'post_content' => '', 'post_status' => 'publish', 'comment_status' => 'open' ); $page_id = wp_insert_post( $page ); } if ( $page_id == 0 ) { wp_send_json_error(); die(); } update_option( 'page_for_posts', $page_id ); wp_send_json_success( 'site-blog' ); } static function set_layout_to_blog() { if ( get_option( 'show_on_front' ) == 'page' ) { update_option( 'show_on_front', 'posts' ); } wp_send_json_success( 'blog' ); } static function set_front_page_to_page() { // ensure that front page is a static page if ( get_option( 'show_on_front' ) == 'posts' ) { update_option( 'show_on_front', 'page' ); } // if no specific front page already set, find first or create $existing_front_page = get_option( 'page_on_front' ) && (get_option( 'page_on_front' ) != 0) && get_page(get_option( 'page_on_front' )); if ( ! $existing_front_page ) { // set to earliest published page if possible $pages = get_pages( array('sort_column' => 'post_date', 'number' => 1, 'post_status' => 'publish') ); $first_page_created = $pages[0]; if ( $first_page_created != null ) { $page_id = $first_page_created->ID; } else { // create page $page = array( 'post_type' => 'page', 'post_title' => 'Home page', 'post_name' => 'home', 'post_content' => "This is your front page. Click the 'edit' link to change the contents", 'post_status' => 'publish', 'comment_status' => 'closed' ); $page_id = wp_insert_post( $page ); } if ( $page_id != 0 ) { update_option( 'page_on_front', $page_id ); } else { wp_send_json_error(); die(); } } } }plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/js/0000755000312500031250000000000012654411246024346 5ustar eacbforgeacbforgplugins/mojo-marketplace-wp-plugin/tests/jetpack-start/js/jetpack-start.js0000644000312500031250000144455312654411246027500 0ustar eacbforgeacbforg(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0},addChangeListener:function(e){this.on(CHANGE_EVENT,e)},removeChangeListener:function(e){this.removeListener(CHANGE_EVENT,e)},emitChange:function(){this.emit(CHANGE_EVENT)}});AppDispatcher.register(function(e){switch(e.actionType){case JPSConstants.SAVE_STARTED:incrementSaveCounter(),DataStore.emitChange();break;case JPSConstants.SAVE_FINISHED:decrementSaveCounter(),DataStore.emitChange()}}),module.exports=DataStore; },{"../constants/jetpack-start-constants":22,"../dispatcher/app-dispatcher":24,"events":42}],27:[function(require,module,exports){ function setFlash(e,t){message=e,severity=t}var AppDispatcher=require("../dispatcher/app-dispatcher"),EventEmitter=require("events").EventEmitter,JPSConstants=require("../constants/jetpack-start-constants"),CHANGE_EVENT="change",message,severity,FlashStore=_.extend({},EventEmitter.prototype,{getFlash:function(){var e;switch(severity){case JPSConstants.FLASH_SEVERITY_ERROR:e="error";break;case JPSConstants.FLASH_SEVERITY_NOTICE:e="notice"}return{message:message,severity:e}},addChangeListener:function(e){this.on(CHANGE_EVENT,e)},removeChangeListener:function(e){this.removeListener(CHANGE_EVENT,e)},emitChange:function(){this.emit(CHANGE_EVENT)}});AppDispatcher.register(function(e){switch(e.actionType){case JPSConstants.SET_FLASH:setFlash(e.message,e.severity),FlashStore.emitChange();break;case JPSConstants.UNSET_FLASH:setFlash(null,null),FlashStore.emitChange()}}),module.exports=FlashStore; },{"../constants/jetpack-start-constants":22,"../dispatcher/app-dispatcher":24,"events":42}],28:[function(require,module,exports){ function setSteps(e){e.forEach(function(e){"undefined"==typeof e.completed&&(e.completed=JPS.step_status[e.slug]&&JPS.step_status[e.slug].completed||!1),"undefined"==typeof e.skipped&&(e.skipped=JPS.step_status[e.slug]&&JPS.step_status[e.slug].skipped||!1),"undefined"==typeof e["static"]&&(e["static"]=!1),"undefined"==typeof e.neverSkip&&(e.neverSkip=!1),"undefined"==typeof e.includeInProgress&&(e.includeInProgress=!0)}),_steps=e,ensureValidStepSlug()}function setStarted(){_started=!0,selectNextPendingStep()}function complete(e){var t=getStepFromSlug(e);t.completed=!0,t.skipped=!1}function skip(){var e=currentStepSlug(),t=getStepFromSlug(e);t.skipped=!0,selectNextPendingStep()}function getStepFromSlug(e){var t=null;return _.each(_steps,function(n){n.slug===e&&(t=n)}),t}function ensureValidStepSlug(){var e=currentStepSlug();if(!e||!getStepFromSlug(e)){var t=getNextPendingStep();null!==t&&(window.location.hash="welcome/steps/"+t.slug)}}function selectNextPendingStep(){var e=getNextPendingStep();null!==e&&select(e.slug)}function getNextPendingStep(){var e=currentStepIndex();return e&&_steps[e+1]&&_steps[e+1].neverSkip===!0?_steps[e+1]:_.findWhere(_steps,{completed:!1,skipped:!1})}function currentStepSlug(){if(0===window.location.hash.indexOf("#welcome/steps")){var e=window.location.hash.split("/"),t=e[e.length-1];return t}return null}function currentStepIndex(){for(var e=currentStepSlug(),t=0;t<_steps.length;t++)if(_steps[t].slug===e)return t;return!1}function select(e){window.location.hash="welcome/steps/"+e,WPAjax.post(JPS.step_actions.view,{step:e},{quiet:!0})}function reset(){JPS.step_status={},_.where(_steps,{"static":!1}).forEach(function(e){e.completed=!1,e.skipped=!1}),_started=!1}var AppDispatcher=require("../dispatcher/app-dispatcher"),EventEmitter=require("events").EventEmitter,JPSConstants=require("../constants/jetpack-start-constants"),WPAjax=require("../utils/wp-ajax"),CHANGE_EVENT="change",_steps,_started=JPS.started,SetupProgressStore=_.extend({},EventEmitter.prototype,{init:function(e){setSteps(e)},getAllSteps:function(){return _steps},isNewUser:function(){return!_started},emitChange:function(){this.emit(CHANGE_EVENT)},getCurrentStep:function(){return getStepFromSlug(currentStepSlug())},getNextPendingStep:function(){return getNextPendingStep()},getStepFromSlug:function(e){return getStepFromSlug(e)},getProgressPercent:function(){var e=_.where(_steps,{includeInProgress:!0}).length,t=_.where(_steps,{includeInProgress:!0,completed:!0}).length,n=t/e*90+10,s=10*Math.round(n/10);return s},addChangeListener:function(e){this.on(CHANGE_EVENT,e)},removeChangeListener:function(e){this.removeListener(CHANGE_EVENT,e)}});AppDispatcher.register(function(e){switch(e.actionType){case JPSConstants.STEP_GET_STARTED:setStarted(),SetupProgressStore.emitChange();break;case JPSConstants.STEP_SELECT:select(e.slug),SetupProgressStore.emitChange();break;case JPSConstants.STEP_NEXT:selectNextPendingStep(),SetupProgressStore.emitChange();break;case JPSConstants.STEP_COMPLETE:complete(e.slug),SetupProgressStore.emitChange();break;case JPSConstants.RESET_DATA:reset(),SetupProgressStore.emitChange();break;case JPSConstants.STEP_SKIP:skip(),SetupProgressStore.emitChange()}}),module.exports=SetupProgressStore; },{"../constants/jetpack-start-constants":22,"../dispatcher/app-dispatcher":24,"../utils/wp-ajax":32,"events":42}],29:[function(require,module,exports){ function setTitle(t){JPS.bloginfo.name=t}function setDescription(t){JPS.bloginfo.description=t}function setActiveTheme(t){JPS.themes.forEach(function(e){e.id==t?e.active=!0:e.active=!1})}function installedTheme(t){JPS.themes.unshift(t),JPS.themes=JPS.themes.slice(0,3)}function setJetpackModuleActivated(t){-1===_.indexOf(JPS.jetpack.active_modules,t)&&JPS.jetpack.active_modules.push(t)}function setJetpackModuleDectivated(t){var e=_.indexOf(JPS.jetpack.active_modules,t);e>=0&&JPS.jetpack.active_modules.splice(e,1)}function setJetpackAdditionalModules(t){JPS.jetpack.additional_modules=_.filter(t,function(t){return-1==_.indexOf(JPS.jetpack.jumpstart_modules.map(function(t){return t.slug}),t.slug)})}function setLayout(t){layout=t}function setJetpackConfigured(){JPS.jetpack.configured=!0}function setJetpackJumpstartActivated(){JPS.jetpack.jumpstart_modules.forEach(function(t){setJetpackModuleActivated(t.slug)})}function setContactUsPage(t){JPS.steps.contact_page=t}var AppDispatcher=require("../dispatcher/app-dispatcher"),EventEmitter=require("events").EventEmitter,JPSConstants=require("../constants/jetpack-start-constants"),WPAjax=require("../utils/wp-ajax"),CHANGE_EVENT="change",layout=JPS.steps.layout.current,SiteStore=_.extend({},EventEmitter.prototype,{getTitle:function(){return JPS.bloginfo.name},getDescription:function(){return JPS.bloginfo.description},getContactPageURL:function(){return JPS.steps.contact_page&&JPS.steps.contact_page.url},getThemes:function(){return JPS.themes},getActiveThemeId:function(){for(var t=0;t=0},getJetpackAdditionalModules:function(){return JPS.jetpack.additional_modules},getJumpstartModuleSlugs:function(){return JPS.jetpack.jumpstart_modules.map(function(t){return t.slug})},getJumpstartModules:function(){return JPS.jetpack.jumpstart_modules},getPopularThemes:function(){return WPAjax.post(JPS.site_actions.get_popular_themes,{},{quiet:!0})},getJetpackJumpstartEnabled:function(){for(var t=0;t *":{font:"14px/1.5 "+styles.fonts.sans,color:styles.colors.black},a:{color:styles.colors.blue,textDecoration:"none"},"a:hover":{textDecoration:"underline"},h1:{fontSize:34},h2:{color:styles.colors.gray,fontSize:16},h3:{fontSize:18},"h1, h2, h3":{fontFamily:styles.fonts.serif,fontWeight:500}},module.exports=styles; },{}],38:[function(require,module,exports){ module.exports=function(){for(var e={},r=0;re||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},EventEmitter.prototype.emit=function(e){var t,n,s,i,r,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||isObject(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(n=this._events[e],isUndefined(n))return!1;if(isFunction(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:for(s=arguments.length,i=new Array(s-1),r=1;s>r;r++)i[r-1]=arguments[r];n.apply(this,i)}else if(isObject(n)){for(s=arguments.length,i=new Array(s-1),r=1;s>r;r++)i[r-1]=arguments[r];for(o=n.slice(),s=o.length,r=0;s>r;r++)o[r].apply(this,i)}return!0},EventEmitter.prototype.addListener=function(e,t){var n;if(!isFunction(t))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,isFunction(t.listener)?t.listener:t),this._events[e]?isObject(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,isObject(this._events[e])&&!this._events[e].warned){var n;n=isUndefined(this._maxListeners)?EventEmitter.defaultMaxListeners:this._maxListeners,n&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())}return this},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.once=function(e,t){function n(){this.removeListener(e,n),s||(s=!0,t.apply(this,arguments))}if(!isFunction(t))throw TypeError("listener must be a function");var s=!1;return n.listener=t,this.on(e,n),this},EventEmitter.prototype.removeListener=function(e,t){var n,s,i,r;if(!isFunction(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],i=n.length,s=-1,n===t||isFunction(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(isObject(n)){for(r=i;r-->0;)if(n[r]===t||n[r].listener&&n[r].listener===t){s=r;break}if(0>s)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},EventEmitter.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],isFunction(n))this.removeListener(e,n);else for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},EventEmitter.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?isFunction(this._events[e])?[this._events[e]]:this._events[e].slice():[]},EventEmitter.listenerCount=function(e,t){var n;return n=e._events&&e._events[t]?isFunction(e._events[t])?1:e._events[t].length:0}; },{}],43:[function(require,module,exports){ function cleanUpNextTick(){draining=!1,currentQueue.length?queue=currentQueue.concat(queue):queueIndex=-1,queue.length&&drainQueue()}function drainQueue(){if(!draining){var e=setTimeout(cleanUpNextTick);draining=!0;for(var n=queue.length;n;){for(currentQueue=queue,queue=[];++queueIndex1)for(var r=1;r-1&&listeners.splice(e,1)}}},_emitChange=function(){listeners.forEach(function(t){return t()})},_appendImportantToEachValue=function(t){var e={};return Object.keys(t).forEach(function(n){var r=t[n];r+=" !important",e[n]=r}),e},addPrintStyles=function(t){if(t.printStyles){var e={};return Object.keys(t.printStyles).forEach(function(n){var r=t.printStyles[n],i="Radium-"+t.displayName+"-"+n;allPrintStyles["."+i]=_appendImportantToEachValue(r),e[n]=i}),_emitChange(),e}},getPrintStyles=function(){return allPrintStyles};module.exports={addPrintStyles:addPrintStyles,getPrintStyles:getPrintStyles,subscribe:subscribe}; },{}],57:[function(require,module,exports){ (function (process,global){ "use strict";var _extends=Object.assign||function(e){for(var t=1;t0;if(!React.isValidElement(r)||"string"!=typeof r.type)return n!==i||c?_cloneElement(r,c?d:{},i):r;var l=u.style;if(Array.isArray(l)&&(l=_mergeStyles(l)),"production"!==process.env.NODE_ENV){var y={background:["backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundRepeatX","backgroundRepeatY","backgroundSize"],border:["borderBottom","borderBottomColor","borderBottomStyle","borderBottomWidth","borderColor","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderStyle","borderTop","borderTopColor","borderTopStyle","borderTopWidth","borderWidth"],borderImage:["borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth"],borderRadius:["borderBottomLeftRadius","borderBottomRightRadius","borderTopLeftRadius","borderTopRightRadius"],font:["fontFamily","fontKerning","fontSize","fontStretch","fontStyle","fontVariant","fontVariantLigatures","fontWeight","lineHeight"],listStyle:["listStyleImage","listStylePosition","listStyleType"],margin:["marginBottom","marginLeft","marginRight","marginTop"],padding:["paddingBottom","paddingLeft","paddingRight","paddingTop"],transition:["transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction"]},f=function k(t){if("object"==typeof t&&t){var r=Object.keys(t);r.forEach(function(t){y[t]&&y[t].some(function(e){return-1!==r.indexOf(e)})&&"production"!==process.env.NODE_ENV&&console.warn('Radium: property "'+t+'" in style object',l,": do not mix longhand and shorthand properties in the same style object. Check the render method of "+e.constructor.displayName+".","See https://github.com/FormidableLabs/radium/issues/95 for more information.")}),r.forEach(function(e){return k(t[e])})}};f(l)}if(!l||!Object.keys(l).some(_isSpecialKey))return l?(d.style=Prefixer.getPrefixedStyle(e,l),_cloneElement(r,d,i)):i||c?_cloneElement(r,d,i):r;var m=r.ref||r.key,g=getStateKey(m);if(o[g])throw new Error("Radium requires each element with interactive styles to have a unique key, set using either the ref or key prop. "+(m?'Key "'+m+'" is a duplicate.':"Multiple elements have no key specified."));o[g]=!0,l=_resolveMediaQueryStyles(e,l);var S={};if(Object.keys(l).forEach(function(e){_isSpecialKey(e)||(S[e]=l[e])}),l[":hover"]||l[":active"]){var p=u.onMouseEnter;d.onMouseEnter=function(t){p&&p(t),_setStyleState(e,g,{":hover":!0})};var b=u.onMouseLeave;d.onMouseLeave=function(t){b&&b(t),_setStyleState(e,g,{":hover":!1})}}if(l[":active"]){var h=u.onMouseDown;d.onMouseDown=function(t){h&&h(t),e._lastMouseDown=Date.now(),_setStyleState(e,g,{":active":!0})}}if(l[":focus"]){var v=u.onFocus;d.onFocus=function(t){v&&v(t),_setStyleState(e,g,{":focus":!0})};var _=u.onBlur;d.onBlur=function(t){_&&_(t),_setStyleState(e,g,{":focus":!1})}}var R=Object.keys(l).filter(function(t){return":active"===t&&_getStyleState(e,g,":active")||":hover"===t&&_getStyleState(e,g,":hover")||":focus"===t&&_getStyleState(e,g,":focus")}).map(function(e){return l[e]});return R.length&&(S=_mergeStyles([S].concat(R))),l[":active"]&&!e._radiumMouseUpListener&&ExecutionEnvironment.canUseEventListeners&&(e._radiumMouseUpListener=MouseUpListener.subscribe(_mouseUp.bind(null,e))),d.style=Prefixer.getPrefixedStyle(e,S),_cloneElement(r,d,i)};resolveStyles.__clearStateForTests=function(){mediaQueryListByQueryString={}},module.exports=resolveStyles; }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) },{"./config":47,"./get-state":51,"./get-state-key":50,"./mouse-up-listener":54,"./prefixer":55,"_process":43,"exenv":59}],58:[function(require,module,exports){ "use strict";function find(n,t,r){if("function"==typeof Array.prototype.find)return n.find(t,r);r=r||this;var f,i=n.length;if("function"!=typeof t)throw new TypeError(t+" is not a function");for(f=0;i>f;f++)if(t.call(r,n[f],f,n))return n[f]}module.exports=find; },{}],59:[function(require,module,exports){ !function(){"use strict";var e=!("undefined"==typeof window||!window.document||!window.document.createElement),n={canUseDOM:e,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:e&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:e&&!!window.screen};"function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return n}):"undefined"!=typeof module&&module.exports?module.exports=n:window.ExecutionEnvironment=n}(); },{}]},{},[25]) //# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9ncnVudC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2FjdGlvbnMvZGF0YS1hY3Rpb25zLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9hY3Rpb25zL2ZsYXNoLWFjdGlvbnMuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2FjdGlvbnMvc2V0dXAtcHJvZ3Jlc3MtYWN0aW9ucy5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvYWN0aW9ucy9zaXRlLWFjdGlvbnMuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2FjdGlvbnMvc3Bpbm5lci1hY3Rpb25zLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb21wb25lbnRzL2FkdmFuY2VkLXNldHRpbmdzLXN0ZXAuanN4IiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb21wb25lbnRzL2NvbnRhY3Qtc3RlcC5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2NvbXBvbmVudHMvY29udGVudC1ib3guanN4IiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb21wb25lbnRzL2Rhc2hpY29uLmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy9kZXNpZ24tc3RlcC5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2NvbXBvbmVudHMvZmxhc2guanN4IiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb21wb25lbnRzL2dldC1zdGFydGVkLmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy9qZXRwYWNrLWp1bXBzdGFydC1tZW51LmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy9qZXRwYWNrLWp1bXBzdGFydC1zdGVwLmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtc3RlcC5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2NvbXBvbmVudHMvc2l0ZS10aXRsZS1zdGVwLmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy9za2lwLWJ1dHRvbi5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2NvbXBvbmVudHMvdG9vbHRpcC5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L2NvbXBvbmVudHMvd2VsY29tZS1tZW51LmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29tcG9uZW50cy93ZWxjb21lLXNlY3Rpb24uanN4IiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb21wb25lbnRzL3dlbGNvbWUtd2lkZ2V0LmpzeCIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9jb25zdGFudHMvamV0cGFjay1zdGFydC1wYXRocy5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvZGlzcGF0Y2hlci9hcHAtZGlzcGF0Y2hlci5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvamV0cGFjay1zdGFydC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvc3RvcmVzL2RhdGEtc3RvcmUuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L3N0b3Jlcy9mbGFzaC1zdG9yZS5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvc3RvcmVzL3NldHVwLXByb2dyZXNzLXN0b3JlLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L2NsaWVudC9zdG9yZXMvc2l0ZS1zdG9yZS5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvc3RvcmVzL3NwaW5uZXItc3RvcmUuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvY2xpZW50L3N0eWxlcy5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvdXRpbHMvd3AtYWpheC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9jbGllbnQvd2VsY29tZS1wYW5lbC5qc3giLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9idXR0b24uanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9wcm9ncmVzcy1iYXIuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9yZXNldC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvQGF1dG9tYXR0aWMvZG9wcy1yZWFjdC9qcy9zdHlsZXMuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvdXRpbHMvbS5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvZmx1eC9pbmRleC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvZmx1eC9saWIvRGlzcGF0Y2hlci5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvZmx1eC9ub2RlX21vZHVsZXMvZmJqcy9saWIvaW52YXJpYW50LmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9ncnVudC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9ldmVudHMvZXZlbnRzLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9ncnVudC1icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9wcm9jZXNzL2Jyb3dzZXIuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL2tleW1pcnJvci9pbmRleC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL2xpYi9jb21wb25lbnRzL3ByaW50LXN0eWxlLXNoZWV0LmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9yYWRpdW0vbGliL2NvbXBvbmVudHMvc3R5bGUuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL3JhZGl1bS9saWIvY29uZmlnLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9yYWRpdW0vbGliL2NyZWF0ZS1tYXJrdXAtZm9yLXN0eWxlcy5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL2xpYi9lbmhhbmNlci5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL2xpYi9nZXQtc3RhdGUta2V5LmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9yYWRpdW0vbGliL2dldC1zdGF0ZS5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL2xpYi9pbmRleC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL2xpYi9rZXlmcmFtZXMuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL3JhZGl1bS9saWIvbW91c2UtdXAtbGlzdGVuZXIuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL3JhZGl1bS9saWIvcHJlZml4ZXIuanMiLCIvVXNlcnMvamVzc2VmcmllZG1hbi9Eb2N1bWVudHMvd3Bvcmdfc2FuZHkvd3AtY29udGVudC9wbHVnaW5zL2pldHBhY2stc3RhcnQvbm9kZV9tb2R1bGVzL3JhZGl1bS9saWIvcHJpbnQtc3R5bGVzLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9yYWRpdW0vbGliL3Jlc29sdmUtc3R5bGVzLmpzIiwiL1VzZXJzL2plc3NlZnJpZWRtYW4vRG9jdW1lbnRzL3dwb3JnX3NhbmR5L3dwLWNvbnRlbnQvcGx1Z2lucy9qZXRwYWNrLXN0YXJ0L25vZGVfbW9kdWxlcy9yYWRpdW0vbm9kZV9tb2R1bGVzL2FycmF5LWZpbmQvZmluZC5qcyIsIi9Vc2Vycy9qZXNzZWZyaWVkbWFuL0RvY3VtZW50cy93cG9yZ19zYW5keS93cC1jb250ZW50L3BsdWdpbnMvamV0cGFjay1zdGFydC9ub2RlX21vZHVsZXMvcmFkaXVtL25vZGVfbW9kdWxlcy9leGVudi9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQ0FBLEdBQUksZUFBZ0IsUUFBUSxnQ0FDM0IsYUFBZSxRQUFRLHdDQUVwQixhQUNILGVBQWdCLFdBQ2YsY0FBYyxVQUNiLFdBQVksYUFBYSxnQkFJM0IsZ0JBQWlCLFdBQ2hCLGNBQWMsVUFDYixXQUFZLGFBQWEsaUJBSzVCLFFBQU8sUUFBVTs7O0FDakJqQixHQUFJLGVBQWdCLFFBQVEsZ0NBQzNCLGFBQWUsUUFBUSx3Q0FFcEIsY0FDSCxPQUFRLFNBQVMsR0FDaEIsY0FBYyxVQUNiLFdBQVksYUFBYSxVQUN6QixRQUFTLEVBQ1QsU0FBVSxhQUFhLHlCQUl6QixNQUFPLFNBQVMsR0FDZixjQUFjLFVBQ2IsV0FBWSxhQUFhLFVBQ3pCLFFBQVMsRUFDVCxTQUFVLGFBQWEsd0JBSXpCLE1BQU8sV0FDTixjQUFjLFVBQ2IsV0FBWSxhQUFhLGVBSzVCLFFBQU8sUUFBVTs7O0FDM0JqQixHQUFJLGVBQWdCLFFBQVEsZ0NBQzNCLGFBQWUsUUFBUSx3Q0FDdkIsTUFBUSxRQUFRLG9DQUNoQixhQUFlLFFBQVEsbUJBQ3ZCLFlBQWMsUUFBUSxrQkFDdEIsT0FBUyxRQUFRLG9CQUNqQixlQUFpQixRQUFRLHFCQUN6QixtQkFBcUIsUUFBUSxrQ0FDN0IsVUFBWSxRQUFRLHdCQUVqQixzQkFDSCxVQUFXLFdBQ1YsT0FDQSxLQUFLLElBQUksYUFBYSxZQUN0QixLQUFLLFNBQVMsR0FDYixhQUFhLE1BQU0sd0JBQTBCLEtBRTlDLGNBQWMsVUFDYixXQUFZLGFBQWEsY0FJM0IsYUFBYyxTQUFTLEVBQU0sR0FDNUIsR0FBSSxHQUFPLG1CQUFtQixnQkFBZ0IsRUFTOUMsT0FQQSxlQUFjLFVBQ2IsV0FBWSxhQUFhLGNBQ3pCLEtBQU0sSUFLQSxLQUFLLGdCQUFnQixFQUFNLElBR25DLG9CQUFxQixTQUFTLEVBQU0sR0FDbkMsZUFBZSxLQUFLLFdBQ3BCLEtBQUssYUFBYSxFQUFNLEdBQU0sT0FBTyxXQUNwQyxjQUFjLFVBQ2IsV0FBWSxhQUFhLFlBRTFCLGVBQWUsVUFJakIsZ0JBQWlCLFNBQVMsRUFBTSxHQU8vQixNQU5xQixtQkFBWCxLQUNULE1BR0QsRUFBSyxXQUFhLG1CQUFtQixxQkFFOUIsT0FDUCxLQUFLLElBQUksYUFBYSxVQUNyQixLQUFNLEVBQUssS0FDWCxLQUFNLElBRVAsS0FBSyxTQUFTLEdBQ2IsYUFBYSxNQUFNLE1BS3JCLFNBQVUsV0FDVCxhQUFhLE9BRWIsSUFBSSxHQUFPLG1CQUFtQixnQkFFekIsR0FBSyxRQWVULGNBQWMsVUFDYixXQUFZLGFBQWEsYUFmMUIsZUFBZSxLQUFLLFdBQ3BCLE9BQ0EsS0FBSyxJQUFJLGFBQWEsTUFDckIsS0FBTSxFQUFLLE9BRVosS0FBSyxTQUFTLEdBQ2IsYUFBYSxNQUFNLEtBQ2pCLE9BQU8sV0FDVCxlQUFlLE9BQ2YsY0FBYyxVQUNiLFdBQVksYUFBYSxnQkFZN0IsV0FBWSxXQUNYLGVBQWUsS0FBSyxXQUNwQixPQUNBLEtBQUssSUFBSSxhQUFhLE9BQ3RCLEtBQUssU0FBUyxHQUNiLGFBQWEsTUFBTSxLQUVwQixPQUFPLFdBQ04sZUFBZSxPQUNmLGNBQWMsVUFDYixXQUFZLGFBQWEsc0JBSzVCLFdBQVksV0FDWCxlQUFlLEtBQUssSUFDcEIsT0FDQSxLQUFLLElBQUksYUFBYSxTQUN0QixLQUFLLFNBQVMsR0FDYixhQUFhLE1BQU0sS0FFcEIsT0FBTyxXQUNOLE9BQU8sU0FBUyxZQUlsQixlQUFnQixTQUFTLEdBQ3hCLGFBQWEsUUFDYixjQUFjLFVBQ2IsV0FBWSxhQUFhLFlBQ3pCLEtBQU0sS0FLUixlQUFnQixXQUNmLGFBQWEsUUFDYixjQUFjLFVBQ2IsV0FBWSxhQUFhLGFBSTNCLGdCQUFpQixXQUNoQixZQUFZLDBCQUEwQixLQUFLLFdBQzFDLEtBQUssb0JBQW9CLE1BQU0sdUJBQzlCLEtBQUssUUFHUixpQkFBa0IsU0FBUyxHQUMxQixZQUFZLFVBQVUsR0FBUSxLQUFLLFdBQ2xDLEtBQUssb0JBQW9CLE1BQU0sbUJBQzlCLEtBQUssUUFHUixrQkFBbUIsU0FBUyxHQUUzQixNQURBLGdCQUFlLEtBQUssaUJBQ2IsWUFBWSxvQkFBb0IsR0FDdEMsS0FBTSxXQUNMLEtBQUssYUFBYSxNQUFNLHlCQUN2QixLQUFLLE9BQ1AsT0FBUSxXQUNQLGVBQWUsVUFRbEIscUJBQXNCLFdBQ3JCLEtBQUssb0JBQW9CLE1BQU0seUJBR2hDLHVCQUF3QixXQUN2QixZQUFZLGtCQUFrQixLQUFLLFdBQ2xDLEtBQUssYUFBYSxNQUFNLDRCQUN2QixLQUFLLFFBR1IsZUFBZ0IsU0FBUyxHQUN4QixZQUFZLGVBQWUsR0FBTyxLQUFLLFdBQ3RDLEtBQUssYUFBYSxNQUFNLGtCQUN2QixRQUFTLEVBQU0sTUFFZixLQUFLLFFBR1IsZUFBZ0IsV0FDZixLQUFLLG9CQUFvQixNQUFNLGtCQUM5QixRQUFTLFVBQVUsc0JBS3RCLFFBQU8sUUFBVTs7O0FDMUxqQixHQUFJLGVBQWdCLFFBQVEsZ0NBQzNCLGFBQWUsUUFBUSx3Q0FDdkIsVUFBWSxRQUFRLHdCQUNwQixhQUFlLFFBQVEsc0JBQ3ZCLGVBQWlCLFFBQVEsd0JBQ3pCLE9BQVMsUUFBUSxvQkFFZCxhQUNILFNBQVUsU0FBUyxHQUNsQixjQUFjLFVBQ2IsV0FBWSxhQUFhLGVBQ3pCLE1BQU8sS0FJVCxlQUFnQixTQUFTLEdBQ3hCLGNBQWMsVUFDYixXQUFZLGFBQWEscUJBQ3pCLFlBQWEsS0FJZix3QkFBeUIsV0FDeEIsR0FBSSxHQUFRLFVBQVUsV0FDbEIsRUFBYyxVQUFVLGdCQWU1QixPQWJBLFFBQ0MsS0FBTSxJQUFJLGFBQWEsV0FBYSxNQUFPLEVBQU8sWUFBYSxJQUMvRCxLQUFNLFNBQVcsR0FDaEIsYUFBYSxNQUFNLHdCQUF3QixLQUc3QyxPQUFPLG9DQUFvQyxLQUFLLEdBRWhELGNBQWMsVUFDYixXQUFZLGFBQWEsZ0NBQ3pCLE1BQU8sSUFHRCxPQUFPLFdBQVcsV0FHMUIsaUJBQWtCLFNBQVMsR0FDMUIsY0FBYyxVQUNiLFdBQVksYUFBYSxxQkFDekIsY0FBZSxLQUlqQixjQUFlLFNBQVcsR0FDekIsTUFBTyxHQUFNLFVBa0JMLE9BQU8sV0FBVyxXQWpCekIsZUFBZSxLQUFLLGVBQWUsRUFBTSxLQUFLLEtBQ3ZDLE9BQ04sS0FBTSxJQUFJLGFBQWEsZUFBaUIsUUFBUyxFQUFNLEtBQ3ZELEtBQU0sV0FDTCxFQUFNLFdBQVksRUFDbEIsY0FBYyxVQUNiLFdBQVksYUFBYSxtQkFDekIsTUFBTyxNQUdULEtBQU0sU0FBVyxHQUNoQixhQUFhLE1BQU0sa0NBQWtDLEtBRXRELE9BQVEsV0FDUCxlQUFlLFdBT25CLGVBQWdCLFNBQVcsR0FDMUIsT0FDQyxLQUFNLElBQUksYUFBYSxXQUFhLFFBQVMsRUFBTSxLQUNuRCxLQUFNLFNBQVcsR0FDaEIsYUFBYSxNQUFNLCtCQUErQixLQUdwRCxjQUFjLFVBQ2IsV0FBWSxhQUFhLGVBQ3pCLFFBQVMsRUFBTSxNQUlqQixlQUFnQixTQUFVLEdBT3pCLE1BTEEsTUFBSyxjQUFjLEdBQ2xCLEtBQU0sV0FDTCxLQUFLLGVBQWUsSUFDbkIsS0FBSyxPQUVELE9BQU8sV0FBVyxXQUcxQixVQUFXLFNBQVUsR0FjakIsTUFaSCxRQUNDLEtBQU0sSUFBSSxhQUFhLFlBQWMsT0FBUSxJQUM3QyxLQUFNLFNBQVUsR0FDZixhQUFhLE1BQU0seUJBQXlCLEtBSTlDLGNBQWMsVUFDYixXQUFZLGFBQWEsZ0JBQ3pCLE9BQVEsSUFHQyxPQUFPLFdBQVcsV0FHN0Isb0JBQXFCLFNBQVUsR0FFOUIsTUFBTyxRQUNOLEtBQU0sSUFBSSxhQUFhLG9CQUFzQixpQkFBa0IsSUFDL0QsS0FBTSxTQUFVLEdBQ2YsY0FBYyxVQUNiLFdBQVksYUFBYSw0QkFDekIsS0FBTSxNQUdSLEtBQU0sU0FBVSxHQUNmLGFBQWEsTUFBTSxtQ0FBbUMsTUFJekQscUJBQXNCLFdBTXJCLE1BSkEsZUFBYyxVQUNiLFdBQVksYUFBYSw4QkFHbkIsT0FBTyxXQUFXLFdBRzFCLGlCQUFrQixTQUFTLEdBRTFCLE1BREEsZ0JBQWUsS0FBSywrQkFDYixPQUNOLEtBQU0sSUFBSSxhQUFhLG1CQUFxQixlQUFnQixJQUM1RCxLQUFNLFNBQVcsR0FDaEIsY0FBYyxVQUNiLFdBQVksYUFBYSwwQkFHckIsRUFBSyxLQUNULE9BQU8sU0FBUyxRQUFRLEVBQUssTUFFN0IsZUFBZSxTQUdqQixLQUFNLFNBQVcsR0FDaEIsYUFBYSxNQUFNLDJCQUEyQixHQUM5QyxlQUFlLFVBSWxCLHNCQUF1QixTQUFTLEdBYS9CLE1BWEEsUUFDQyxLQUFNLElBQUksYUFBYSwwQkFBNEIsU0FBVSxLQUM3RCxLQUFNLFNBQVcsR0FDaEIsYUFBYSxNQUFNLG9DQUFvQyxLQUd6RCxjQUFjLFVBQ2IsV0FBWSxhQUFhLDRCQUN6QixLQUFNLElBR0EsT0FBTyxXQUFXLFdBRzFCLHdCQUF5QixTQUFTLEdBYWpDLE1BWEEsUUFDQyxLQUFNLElBQUksYUFBYSw0QkFBOEIsU0FBVSxLQUMvRCxLQUFNLFNBQVcsR0FDaEIsYUFBYSxNQUFNLHNDQUFzQyxLQUczRCxjQUFjLFVBQ2IsV0FBWSxhQUFhLDZCQUN6QixLQUFNLElBR0EsT0FBTyxXQUFXLFdBRzFCLHNCQUF1QixXQUN0QixNQUF3RCxLQUFuRCxVQUFVLDhCQUE4QixPQUNyQyxPQUNOLEtBQU0sSUFBSSxhQUFhLHNCQUN2QixLQUFNLFNBQVcsR0FDaEIsY0FBYyxVQUNiLFdBQVksYUFBYSx5QkFDekIsUUFBUyxNQUdYLEtBQU0sU0FBVyxHQUNoQixhQUFhLE1BQU0sdUNBQXVDLEtBR3JELE9BQU8sV0FBVyxXQUkzQixnQkFBaUIsV0FXaEIsTUFWQSxRQUNDLEtBQU0sSUFBSSxhQUFhLDBCQUE0QixRQUFTLFVBQVUsNEJBQ3RFLEtBQU0sU0FBVyxHQUNoQixhQUFhLE1BQU0scUNBQXFDLEtBRzFELGNBQWMsVUFDYixXQUFZLGFBQWEsaUNBR25CLE9BQU8sV0FBVyxXQUkzQixRQUFPLFFBQVU7OztBQzlOakIsR0FBSSxlQUFnQixRQUFRLGdDQUMzQixhQUFlLFFBQVEsd0NBRXBCLGdCQUNILEtBQU0sU0FBUyxHQUNkLGNBQWMsVUFDYixXQUFZLGFBQWEsYUFDekIsUUFBUyxLQUlYLEtBQU0sV0FDTCxjQUFjLFVBQ2IsV0FBWSxhQUFhLGdCQUkzQixVQUFXLFNBQVMsR0FDbkIsY0FBYyxVQUNiLFdBQVksYUFBYSxtQkFDekIsUUFBUyxLQUlYLFVBQVcsV0FDVixjQUFjLFVBQ2IsV0FBWSxhQUFhLHNCQUs1QixRQUFPLFFBQVU7Ozs7QUMxQmpCLFFBQVMsZ0JBQ1IsT0FDQyxXQUFZLFVBQVUsWUFQeEIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUNoSCxPQUFTLFFBQVEsK0NBQ2pCLFVBQVksUUFBUSx3QkFDcEIsZUFBaUIsUUFBUSxxQkFRdEIsYUFBZSxNQUFNLGFBQWEsWUFBYSxlQUNsRCxRQUNDLE1BQ0MsUUFBUyxNQUNULGFBQWMsTUFDZCxVQUFXLE9BQ1gsV0FBWSxVQUNaLE9BQVEsa0JBR1QsU0FDQyxPQUFRLEVBQ1IsU0FBVSxRQUNWLFdBQVksTUFJZCxPQUFRLFdBQ1AsTUFDQyxPQUFNLGNBQWMsTUFBTyxNQUFPLEtBQUssT0FBTyxNQUM3QyxNQUFNLGNBQWMsTUFBTyxNQUFPLEtBQUssT0FBTyxTQUFVLEtBQUssTUFBTSxPQUNuRSxLQUFLLE1BQU0sYUFNWCxxQkFBdUIsTUFBTSxhQUFhLFlBQWEsdUJBRTFELFFBQ0MsU0FDQyxXQUFZLElBSVosZ0JBQWlCLFdBQ2xCLE1BQU8saUJBR1Isa0JBQW1CLFdBQ2xCLFVBQVUsa0JBQWtCLEtBQUssWUFHbEMscUJBQXNCLFdBQ3JCLFVBQVUscUJBQXFCLEtBQUssWUFHckMsVUFBVyxXQUNQLEtBQUssU0FBUyxpQkFHbEIsT0FBUSxXQUNQLE1BQ0MsT0FBTSxjQUFjLGVBQWdCLEtBQ25DLE1BQU0sY0FBYyxLQUFNLEtBQU0sZ0JBQWlCLE1BQU0sY0FBYyxLQUFNLEtBQU0sS0FBSyxNQUFNLGFBQzVGLE1BQU0sY0FBYyxLQUFNLEtBQU0scUJBRWhDLE1BQU0sY0FBYyxNQUFPLE1BQU8sS0FBSyxPQUFPLFNBQzdDLE1BQU0sY0FBYyxjQUFlLE1BQU8sK0NBQ3pDLG9FQUNBLE1BQU0sY0FBYyxLQUFNLE1BQzFCLE1BQU0sY0FBYyxRQUFTLE1BQU8sT0FBUSxLQUFNLElBQUksTUFBTSxrQkFBa0IsZUFBZ0IscUJBQzlGLEtBQ0EsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLEtBQU0sSUFBSSxNQUFNLGtCQUFrQixZQUFhLDJCQUdsRSxRQUF6QixVQUFVLGFBQWtELGFBQXpCLFVBQVUsY0FDN0MsTUFBTSxjQUFjLGNBQWUsTUFBTywrQkFDekMsdUNBQ0EsTUFBTSxjQUFjLEtBQU0sTUFDMUIsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLEtBQU0sSUFBSSxNQUFNLGtCQUFrQixtQkFBb0IseUJBQ2xHLEtBQ0EsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLEtBQU0sSUFBSSxNQUFNLGtCQUFrQixrQkFBbUIsaUJBR25HLE1BQU0sY0FBYyxjQUFlLE1BQU8sd0JBQ3pDLCtEQUNBLE1BQU0sY0FBYyxLQUFNLE1BQzFCLE1BQU0sY0FBYyxRQUFTLE1BQU8sT0FBUSxLQUFNLElBQUksTUFBTSxrQkFBa0IsY0FBZSxxQkFDN0YsS0FDQSxNQUFNLGNBQWMsUUFBUyxNQUFPLE9BQVEsS0FBTSxJQUFJLE1BQU0sa0JBQWtCLGtCQUFtQixpQkFFbEcsTUFBTSxjQUFjLGNBQWUsTUFBTyxvQ0FDekMsa0ZBQ0EsTUFBTSxjQUFjLEtBQU0sTUFDMUIsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLEtBQU0sSUFBSSxNQUFNLGtCQUFrQixhQUFjLGtCQUM1RixLQUNBLFVBQVUsd0JBQ1QsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLEtBQU0sSUFBSSxNQUFNLGtCQUFrQixxQkFBc0IsMkJBR3RHLE1BQU0sY0FBYyxjQUFlLE1BQU8sY0FDekMsTUFBTSxjQUFjLEtBQU0sS0FBTSwwREFBMkQsOEJBQStCLHlEQVFoSSxRQUFPLFFBQVU7Ozs7OztBQ3hHakIsUUFBUyx1QkFDUixPQUNDLFdBQVksVUFBVSxXQUN0QixlQUFnQixVQUFVLG9CQUMxQixzQkFBd0IsSUFBSSxTQUFXLGtDQVh6QyxHQUFJLE9BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBQ2hILFVBQVksUUFBUSx3QkFDcEIsT0FBUyxRQUFRLCtDQUNqQixlQUFpQixRQUFRLHFCQUN6QixPQUFTLFFBQVEsYUFDakIscUJBQXVCLFFBQVEscUNBVTVCLGdCQUFrQixNQUFNLGFBQWEsWUFBYSxrQkFFckQsa0JBQW1CLFdBQ2xCLFVBQVUsa0JBQWtCLEtBQUssWUFHbEMscUJBQXNCLFdBQ3JCLFVBQVUscUJBQXFCLEtBQUssWUFHckMsVUFBVyxXQUNWLEtBQUssU0FBUyx3QkFHZixnQkFBaUIsV0FDaEIsTUFBTyx3QkFHUixtQkFBb0IsU0FBVSxHQUM3QixFQUFFLGlCQUNGLHFCQUFxQixxQkFHdEIsYUFBYyxTQUFVLEdBQ3ZCLEVBQUUsaUJBQ0YscUJBQXFCLHdCQUd0QixlQUFnQixTQUFVLEdBQ3pCLEVBQUUsaUJBQ0YscUJBQXFCLGtCQUd0QixPQUFRLFdBQ1AsTUFBTyxNQUFLLE1BQU0sZUFrQmhCLE1BQU0sY0FBYyxnQkFBaUIsR0FBSSxtQkFFeEMsTUFBTSxjQUFjLEtBQU0sS0FBTSxnQkFBaUIsTUFBTSxjQUFjLEtBQU0sS0FBTSxLQUFLLE1BQU0sYUFDNUYsTUFBTSxjQUFjLEtBQU0sS0FBTSw4RUFDaEMsTUFBTSxjQUFjLEtBQU0sTUFBTyxPQUFPLFNBQVUscUJBQXNCLE1BQU0sY0FBYyxLQUFNLEtBQU0sS0FBSyxNQUFNLGVBQWdCLE9BQVEsVUFBVyxjQUFlLFNBQ3BLLE1BQU0sY0FBYyxLQUFNLE1BQzFCLE1BQU0sY0FBYyxRQUFTLEtBQU0saURBQ25DLE1BQU0sY0FBYyxLQUFNLFVBQVcsVUFDcEMsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLFFBQVMsS0FBSyxnQkFBaUIsa0JBeEI5RSxNQUFNLGNBQWMsZ0JBQWlCLEdBQUksbUJBQ3hDLE1BQU0sY0FBYyxLQUFNLEtBQU0sZ0JBQWlCLE1BQU0sY0FBYyxLQUFNLEtBQU0sS0FBSyxNQUFNLGFBQzVGLE1BQU0sY0FBYyxLQUFNLEtBQU0sOEVBRWhDLE1BQU0sY0FBYyxPQUFRLE1BQU8sT0FBTyxXQUFZLElBQUssS0FBSyxNQUFNLHdCQUN0RSxNQUFNLGNBQWMsS0FBTSxNQUFPLE9BQU8sU0FBVSxXQUFZLE1BQU0sY0FBYyxLQUFNLEtBQU0sV0FBWSxzQkFDekcsTUFBTSxjQUFjLEtBQU0sTUFDMUIsTUFBTSxjQUFjLFFBQVMsS0FBTSx5Q0FHcEMsTUFBTSxjQUFjLFFBQVMsTUFBTyxRQUFTLE9BQVMsWUFBYSxJQUFLLFFBQVMsS0FBSyxvQkFBcUIsT0FDM0csTUFBTSxjQUFjLFFBQVMsUUFBUyxLQUFLLGNBQWUsZ0JBc0IvRCxRQUFPLFFBQVU7Ozs7OztBQ3BGakIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUU3RyxXQUFhLE1BQU0sYUFBYSxZQUFhLGFBQ2hELE9BQVEsV0FDUCxNQUNDLE9BQU0sY0FBYyxPQUFRLFVBQVcsd0JBQ3RDLEtBQUssTUFBTSxTQUNYLE1BQU0sY0FBYyxPQUFRLFVBQVcsYUFNM0MsUUFBTyxRQUFVOzs7Ozs7QUNYakIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUU3RyxTQUFXLE1BQU0sYUFBYSxZQUFhLFdBRTlDLFdBQ0MsS0FBTSxNQUFNLFVBQVUsT0FBTyxXQUM3QixNQUFPLE1BQU0sVUFBVSxPQUN2QixZQUFhLE1BQU0sVUFBVSxLQUM3QixXQUFZLE1BQU0sVUFBVSxNQUc3QixPQUFRLFdBQ1AsTUFDQyxPQUFNLGNBQWMsUUFDbkIsTUFBTyxLQUFLLE1BQU0sTUFDbEIsWUFBYSxLQUFLLE1BQU0sWUFDeEIsV0FBWSxLQUFLLE1BQU0sV0FDdkIsVUFBVyx1QkFBdUIsS0FBSyxNQUFNLE1BRTdDLEtBQUssTUFBTSxZQU9mLFFBQU8sUUFBVTs7Ozs7O0FDbkJqQixRQUFTLGlCQUNSLE9BQVMsT0FBUSxVQUFVLFlBQWEsV0FBWSxVQUFVLFlBVi9ELEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsVUFBWSxRQUFRLHdCQUNwQixxQkFBdUIsUUFBUSxxQ0FDL0IsUUFBVSxRQUFRLGFBQ2xCLGVBQWlCLFFBQVEscUJBQ3pCLFdBQWEsUUFBUSxpQkFDckIsT0FBUyxRQUFRLGFBQ2pCLE9BQVMsUUFBUSwrQ0FNZCxXQUFhLE1BQU0sYUFBYSxZQUFhLGFBRWhELGtCQUFtQixXQUNsQixVQUFVLGtCQUFrQixLQUFLLFdBQ2pDLEtBQUssc0JBR04scUJBQXNCLFdBQ3JCLFVBQVUscUJBQXFCLEtBQUssWUFHckMsVUFBVyxXQUNQLEtBQUssU0FBUyxrQkFHbEIsZ0JBQWlCLFdBQ2hCLEdBQUksR0FBZSxlQUVuQixPQURBLEdBQWEsaUJBQ04sR0FHUixvQkFBcUIsU0FBVyxHQUMvQixFQUFFLGlCQUVGLEtBQUssVUFBVSxhQUFjLEtBQU0sZ0JBQWlCLE1BRXBELElBQUksR0FBTSxPQUFPLEVBQUUsZUFDbEIsRUFBVSxFQUFJLEtBQUssWUFDbkIsRUFBUSxLQUFLLFVBQVUsR0FDdkIsR0FBcUIsRUFBTSxVQUV4QixFQUFXLHFCQUFxQixlQUFlLEVBSTlDLElBQ0osRUFBUyxLQUFNLFdBQ2QsS0FBSyxzQkFDSixLQUFLLFFBSVQsVUFBVyxTQUFXLEdBQ3JCLE1BQU8sR0FBRSxVQUFVLEtBQUssTUFBTSxRQUFTLEdBQUksS0FBYSxFQUFFLFVBQVUsS0FBSyxNQUFNLGVBQWdCLEdBQUksS0FHcEcsZUFBZ0IsU0FBVyxHQUMxQixFQUFFLGlCQUNGLHFCQUFxQixrQkFHdEIsa0JBQW1CLFNBQVcsR0FDN0IsRUFBRSxnQkFFRixJQUFJLEdBQVEsT0FBTyxFQUFFLGVBQ3BCLEVBQVEsS0FBSyxVQUFVLEVBQUksS0FBSyxhQUNoQyxFQUFTLEVBQUksV0FDYixFQUFRLEVBQUksYUFDWixFQUFTLEVBQUksY0FHVixHQUNILElBQUssRUFBTyxJQUFPLEVBQU8sRUFDMUIsS0FBTSxFQUFPLEtBQU8sRUFHckIsTUFBSyxVQUFVLGFBQWMsRUFBTyxnQkFBaUIsS0FHdEQsa0JBQW1CLFNBQVcsR0FDN0IsRUFBRSxpQkFDRixLQUFLLFVBQVUsYUFBYyxLQUFNLGdCQUFpQixRQUdyRCx1QkFBd0IsU0FBVyxHQUNsQyxFQUFFLGlCQUNGLEtBQUssc0JBR04sbUJBQW9CLFdBQ25CLFVBQVUsbUJBQW1CLEtBQUssU0FBUyxHQUMxQyxLQUFLLFVBQVUsY0FBZSxLQUM3QixLQUFLLFFBR1IsT0FBUSxXQUVQLE1BQ0MsT0FBTSxjQUFjLGdCQUFpQixHQUFJLG1CQUN4QyxNQUFNLGNBQWMsS0FBTSxLQUFNLGdCQUFpQixNQUFNLGNBQWMsS0FBTSxLQUFNLEtBQUssTUFBTSxhQUM1RixNQUFNLGNBQWMsS0FBTSxLQUFNLGlCQUNoQyxNQUFNLGNBQWMsS0FBTSxNQUFPLE9BQU8sU0FBVSwyRUFDbEQsTUFBTSxjQUFjLEtBQU0sTUFBTyxPQUFPLFNBQVUseUdBQ2xELE1BQU0sY0FBYyxLQUFNLFVBQVcsVUFDcEMsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLFFBQVMsS0FBSyxnQkFBaUIsZ0JBRTVFLE1BQU0sY0FBYyxXQUFZLEtBQy9CLE1BQU0sY0FBYyxLQUFNLEtBQU0sb0JBQ2hDLE1BQU0sY0FBYyxPQUFRLFVBQVcsMEJBQ3RDLEtBQUsscUJBSVAsTUFBTSxjQUFjLFdBQVksS0FDL0IsTUFBTSxjQUFjLEtBQU0sS0FBTSxvQ0FDaEMsTUFBTSxjQUFjLFFBQVMsTUFBTyxPQUFRLE9BQVEsUUFBTyxTQUFVLFFBQVMsS0FBSyx3QkFBeUIscUJBRTVHLE1BQU0sY0FBYyxPQUFRLFVBQVcsMEJBQ3RDLEtBQUssNEJBSVAsTUFBTSxjQUFjLE9BQVEsT0FBUSxNQUFPLFVBQzNDLEtBQUssTUFBTSxjQUFnQixLQUFLLG1CQUtuQyxlQUFnQixXQUNmLEdBQUksR0FBUSxLQUFLLE1BQU0sYUFBYyxFQUFXLEtBQUssTUFBTSxlQUMzRCxPQUNDLE9BQU0sY0FBYyxTQUNuQixLQUFNLEVBQVMsS0FDZixJQUFLLEVBQVMsSUFDZCxNQUFPLElBQ1AsTUFBTyxFQUFNLE1BQ2IsTUFBTSxjQUFjLElBQUssS0FBTSxNQUFPLEVBQU0sUUFDNUMsTUFBTSxjQUFjLEtBQU0seUJBQTBCLE9BQVEsRUFBRSxTQUFTLEVBQU0sa0JBS2hGLGFBQWMsU0FBUyxHQUN0QixNQUNDLE9BQU0sY0FBYyxPQUFRLElBQUssRUFBTSxHQUN0QyxVQUFXLFNBQVcsRUFBTSxPQUFTLFVBQVksSUFDakQsZ0JBQWlCLEVBQU0sR0FDdkIsUUFBUyxLQUFLLG9CQUNkLGFBQWMsS0FBSyxrQkFDbkIsYUFBYyxLQUFLLGtCQUNuQixtQkFBb0IsRUFBTSxHQUFHLFdBQVcsRUFBTSxHQUFHLFNBRWpELEVBQU0sV0FDTCxNQUFNLGNBQWMsT0FBUSxVQUFXLG9CQUN0QyxNQUFNLGNBQWMsT0FBUSxJQUFLLEVBQU0sV0FBWSxJQUFLLE1BR3pELE1BQU0sY0FBYyxPQUFRLFVBQVcsNEJBRXZDLEVBQU0sUUFBVyxNQUFNLGNBQWMsUUFBUyxVQUFXLGdCQUFpQixFQUFNLFVBQVksa0JBQW9CLG9CQUNqSCxNQUFNLGNBQWMsTUFBTyxVQUFXLGFBQWMsR0FBSSxFQUFNLEdBQUcsU0FBVSxNQUFNLGNBQWMsT0FBUSxLQUFNLEVBQU0sT0FBUyxZQUFjLElBQUssSUFBSyxFQUFNLFFBSzdKLHdCQUF5QixXQUN4QixNQUFPLE1BQUssTUFBTSxjQUFjLElBQUssS0FBSyxlQUczQyxpQkFBa0IsV0FDakIsTUFBTyxNQUFLLE1BQU0sT0FBTyxJQUFLLEtBQUssZ0JBSXJDLFFBQU8sUUFBVTs7Ozs7O0FDcktqQixRQUFTLGlCQUNSLE1BQU8sWUFBVyxXQUpuQixHQUFJLE9BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBQ2hILFdBQWEsUUFBUSx5QkFNbEIsTUFBUSxNQUFNLGFBQWEsWUFBYSxRQUMzQyxrQkFBbUIsV0FDbEIsV0FBVyxrQkFBa0IsS0FBSyxZQUduQyxxQkFBc0IsV0FDckIsV0FBVyxxQkFBcUIsS0FBSyxZQUd0QyxVQUFXLFdBQ1AsS0FBSyxTQUFTLGtCQUdsQixnQkFBaUIsV0FDaEIsTUFBTyxrQkFHUixPQUFRLFdBQ1AsTUFBSyxNQUFLLE1BQU0sUUFDUCxNQUFNLGNBQWMsT0FBUSxVQUFXLEtBQUssTUFBTSxTQUFXLFlBQWEsS0FBSyxNQUFNLFNBRXRGLE9BS1YsUUFBTyxRQUFVOzs7Ozs7QUNuQ2pCLFFBQVMsaUJBQ1IsU0FSRCxHQUFJLE9BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBQ2hILG1CQUFxQixRQUFRLGtDQUM3QixxQkFBdUIsUUFBUSxxQ0FDL0IsT0FBUyxRQUFRLCtDQUNqQixFQUFJLFFBQVEscUNBQ1osT0FBUyxRQUFRLFVBTWQsV0FBYSxNQUFNLGFBQWEsWUFBYSxhQUNoRCxrQkFBbUIsV0FDbEIsbUJBQW1CLGtCQUFrQixLQUFLLFlBRzNDLHFCQUFzQixXQUNyQixtQkFBbUIscUJBQXFCLEtBQUssWUFHOUMsVUFBVyxXQUNQLEtBQUssU0FBUyxrQkFHbEIsZ0JBQWlCLFdBQ2hCLE1BQU8sa0JBR1IsaUJBQWtCLFNBQVMsR0FDMUIsRUFBRSxpQkFDRixxQkFBcUIsY0FHdEIsZUFBZ0IsU0FBUyxHQUN4QixFQUFFLGlCQUNGLHFCQUFxQixjQUd0QixPQUFRLFdBQ1AsT0FBTyxRQUFRLEdBQUcsU0FHbkIsUUFDQyxTQUNDLFVBQVcsU0FFWCxpQkFBa0IsWUFDbEIsbUJBQW9CLGdCQUNwQixlQUFnQixhQUNoQixTQUFVLFFBQ1AsSUFBSyxFQUNSLEtBQU0sSUFDTixNQUFPLE9BQ1AsT0FBUSxPQUNSLGdCQUFpQixPQUNqQixXQUFZLElBQ1osT0FBUSxJQUNSLDZCQUNDLEtBQU0sSUFFUCw2QkFDQyxLQUFNLElBR1IsWUFDQyxnQkFBaUIsUUFFbEIsY0FDQyxPQUFRLGVBQ1IsNkJBQ0MsT0FBUSxlQUVULDZCQUNDLE9BQVEsTUFHVixTQUNDLE9BQVEsY0FDUixNQUFPLE9BQ1AsU0FBVSxHQUNWLFdBQVksSUFDWixVQUFXLFNBQ1gsNkJBQ0MsYUFBYyxHQUNkLFNBQVUsSUFFWCw2QkFDQyxTQUFVLEtBR1osUUFDQyxhQUFjLEVBQ2QsV0FBWSxtREFDWixTQUFVLEdBQ1YsV0FBWSxFQUNaLFFBQVMsaUNBR1YsYUFDQyxZQUFhLE1BQ2IsWUFBYSxRQUNiLFlBQWEsbUJBQ2IsV0FBWSxtQkFDWixVQUFXLCtEQUNYLE1BQU8sT0FDUCxVQUNDLE1BQU8sT0FDUCxXQUFZLG9CQUNaLFlBQWEsc0JBR2YsWUFDQyxXQUFZLDBEQUNaLFVBQVcsaUVBQ1gsTUFBTyxTQUtULE9BQVEsV0FDUCxNQUNDLE9BQU0sY0FBYyxPQUFRLElBQUssZ0JBQWlCLE9BQVEsS0FBSyxPQUFPLFFBQVMsS0FBSyxVQUFZLEtBQUssT0FBTyxhQUMzRyxNQUFNLGNBQWMsT0FBUSxJQUFLLDZCQUE4QixNQUFPLEtBQUssT0FBTyxjQUNqRixNQUFNLGNBQWMsTUFBTyxPQUFRLFNBQVUsR0FBSSxVQUFXLEtBQU0sd0JBQ2xFLE1BQU0sY0FBYyxLQUFNLE1BQU8sS0FBSyxPQUFPLFNBQVUsNENBQ3ZELE1BQU0sY0FBYyxJQUFLLEtBQ3hCLE1BQU0sY0FBYyxRQUFTLE1BQVEsRUFBRyxLQUFLLE9BQU8sT0FBUSxLQUFLLE9BQU8sYUFBYyxRQUFTLEtBQUssa0JBQW1CLE9BQ3hILE1BQ0MsTUFBTSxjQUFjLFFBQVMsTUFBUSxFQUFHLEtBQUssT0FBTyxPQUFRLEtBQUssT0FBTyxZQUFhLFFBQVMsS0FBSyxnQkFBaUIsa0JBUTFILFFBQU8sUUFBVSxPQUFPOzs7Ozs7QUNuSXhCLFFBQVMsc0JBQ1IsT0FDQyxrQkFBbUIsVUFBVSx3QkFQL0IsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUNoSCxVQUFZLFFBQVEsd0JBQ3BCLFlBQWMsUUFBUSwyQkFDdEIsTUFBUSxRQUFRLG9DQVFiLHFCQUF1QixNQUFNLGFBQWEsWUFBYSx1QkFDMUQsa0JBQW1CLFdBQ2xCLFVBQVUsa0JBQWtCLEtBQUssWUFHbEMscUJBQXNCLFdBQ3JCLFVBQVUscUJBQXFCLEtBQUssWUFHckMsVUFBVyxXQUNQLEtBQUssU0FBUyx1QkFHaEIsZ0JBQWlCLFdBQ2xCLE1BQU8sdUJBR1IsbUJBQW9CLFNBQVMsR0FDNUIsRUFBRSxpQkFDRixZQUFZLGlCQUFpQixNQUFNLDRCQUdwQyxPQUNDLE1BQU8sUUFDUCxTQUFVLEdBQ1YsVUFBVyxFQUNYLFdBQVksSUFHYixtQkFDQyxVQUFXLEdBQ1gsYUFBYyxJQUdmLE9BQVEsV0FDUCxNQUNDLE9BQU0sY0FBYyxPQUFRLE1BQU8sS0FBSyxPQUN2QyxLQUFLLE1BQU0sa0JBQ1YsTUFBTSxjQUFjLE1BQU8sTUFFM0IsTUFBTSxjQUFjLE1BQU8sS0FDMUIsOEZBQStGLE1BQU0sY0FBYyxLQUFNLE1BQ3pILE1BQU0sY0FBYyxLQUFNLFVBQVcscUNBQXNDLE1BQU8sS0FBSyxrQkFBbUIsS0FBTSxJQUFLLFFBQVMsS0FBSyxvQkFBcUIsZ0NBUzlKLFFBQU8sUUFBVTs7Ozs7O0FDTmpCLFFBQVMsbUJBQ1IsT0FDQyxXQUFZLFVBQVUsV0FDdEIsa0JBQW1CLFVBQVUsdUJBQzdCLGlCQUFrQixVQUFVLDZCQUM1QixlQUFnQixVQUFVLHdCQTdENUIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUNoSCxPQUFTLFFBQVEsVUFDakIsV0FBYSxRQUFRLGlCQUNyQixVQUFZLFFBQVEsd0JBQ3BCLFlBQWMsUUFBUSwyQkFDdEIsTUFBUSxRQUFRLG9DQUNoQixXQUFhLFFBQVEsaUJBQ3JCLE9BQVMsUUFBUSxhQUNqQixlQUFpQixRQUFRLHFCQUN6QixxQkFBdUIsUUFBUSxxQ0FDL0IsYUFBZSxRQUFRLDJCQUN2QixPQUFTLFFBQVEsK0NBR2QsWUFBYyxNQUFNLGFBQWEsWUFBYSxjQUNqRCxRQUNDLG9CQUNDLFFBQVMsUUFDVCxVQUFXLFNBQ1gsT0FBUSxHQUNSLE1BQU8sUUFDUCxXQUFZLEVBQ1osZ0JBQWlCLFdBRWxCLGFBQ0MsUUFBUyxlQUNULFNBQVUsV0FDVixNQUFPLElBQ1AsWUFBYSxFQUNiLFdBQVksT0FBTyxJQUFJLFFBQVEsU0FBUyw0QkFDeEMsZUFBZ0IsYUFDaEIsTUFBTyxPQUNQLFdBQVksU0FDWixRQUFTLFdBRVYsaUJBQ0MsV0FBWSxNQUNaLFdBQVksV0FLZCxPQUFRLFdBQ1AsTUFDQyxPQUFNLGNBQWMsUUFBUyxPQUFRLEtBQUssT0FBTyxtQkFBb0IsS0FBSyxNQUFNLFFBQy9FLGFBQWMsTUFBTSxjQUFjLEtBQU0sTUFDeEMsTUFBTSxjQUFjLEtBQU0sS0FBTSxtQ0FBb0MsTUFBTyxVQUFXLE1BQU8sS0FBSyxPQUFPLGFBQ3hHLE1BQU0sY0FBYyxRQUFTLE1BQU8sS0FBSyxPQUFPLGlCQUFrQixlQU92RSxhQUFjLE9BQU8sWUFXckIsSUFBSSxrQkFBbUIsTUFBTSxhQUFhLFlBQWEsbUJBRXRELFFBQ0MsYUFDQyxRQUFPLFFBQ1AsNkJBQ0MsUUFBTyxPQUNQLFdBQVksSUFHZCxpQkFDQyxRQUFPLE9BQ1AsU0FBVSxXQUNWLE9BQVEsSUFDUixRQUFTLEdBQ1QsNkJBQ0MsTUFBTyxRQUlULHFCQUNDLFFBQVMsUUFDVCxVQUFXLEVBQ1gsV0FBWSxRQUdiLGdCQUNDLFVBQVcsR0FDWCxhQUFjLElBR2YsZUFDQyxRQUFTLFFBQ1QsU0FBVSxXQUNWLE1BQU8sT0FDUCxPQUFRLE9BQ1IsZ0JBQWlCLG1CQUdsQixTQUNDLFNBQVUsV0FDVixJQUFLLEVBQ0wsS0FBTSxFQUNOLE1BQU8sT0FDUCxPQUFRLE9BQ1IsVUFBVyxPQUNYLE9BQVEsS0FHVCxhQUNDLFVBQVcsU0FDWCxTQUFVLFdBQ1YsYUFBYyxFQUNkLFVBQVcsMEJBQ1gsT0FBUSxJQUNSLEtBQU0sTUFDSixJQUFLLE1BQ0wsUUFBUyxHQUNULFVBQVcsdUJBQ2IsTUFBTyxNQUNQLGdCQUFpQixRQUdsQixVQUNDLFVBQVcsV0FJYixrQkFBbUIsV0FDbEIsVUFBVSxrQkFBa0IsS0FBSyxZQUdsQyxxQkFBc0IsV0FDckIsVUFBVSxxQkFBcUIsS0FBSyxZQUdyQyxVQUFXLFdBQ1AsS0FBSyxTQUFTLG9CQUdsQixnQkFBaUIsV0FDaEIsR0FBSSxHQUFRLGlCQUVaLE9BREEsR0FBTSxpQkFBa0IsRUFDakIsR0FHUixxQkFBc0IsU0FBVSxHQUMvQixFQUFFLGlCQUVGLFlBQVksaUJBQWlCLE1BQU0sNEJBR3BDLHlCQUEwQixTQUFVLEdBQ25DLEdBQUksR0FBVSxPQUFPLEVBQUUsZUFDdEIsRUFBYyxFQUFRLEtBQUssY0FFdkIsV0FBVSx1QkFBdUIsR0FDckMsWUFBWSx3QkFBd0IsR0FFcEMsWUFBWSxzQkFBc0IsSUFJcEMsdUJBQXdCLFNBQVMsR0FDaEMsRUFBRSxpQkFDRixZQUFZLG1CQUdiLFdBQVksU0FBVSxHQUNyQixFQUFFLGlCQUVGLHFCQUFxQixvQkFBb0IsTUFBTSw0QkFHaEQsc0JBQXVCLFNBQVUsR0FDaEMsRUFBRSxpQkFFRixZQUFZLHdCQUF3QixLQUFLLFdBQ3hDLEtBQUssVUFBVSxpQkFBaUIsS0FDL0IsS0FBSyxRQUdSLHVCQUF3QixTQUFVLEdBQ2pDLEVBQUUsaUJBQ0YsS0FBSyxVQUFVLGlCQUFpQixLQUdqQyxjQUFlLFNBQVMsR0FDdkIsR0FBSSxHQUFXLFVBQVUsdUJBQXVCLEVBQU8sTUFDbkQsRUFBVyxhQUFhLEVBQU8sSUFFbkMsT0FDQyxPQUFNLGNBQWMsT0FBUSxJQUFLLFdBQVcsRUFBTyxLQUFNLE1BQU8sS0FBSyxPQUFPLGlCQUMzRSxNQUFNLGNBQWMsU0FBVSxHQUFJLEVBQVUsS0FBTSxXQUFZLFFBQVMsRUFBVSxtQkFBb0IsRUFBTyxLQUFNLFNBQVUsS0FBSywyQkFDakksTUFBTSxjQUFjLFNBQVUsUUFBUyxHQUFXLE1BQU0sY0FBYyxTQUFVLEtBQU0sRUFBTyxPQUM3RixNQUFNLGNBQWMsT0FBUSxNQUFPLEtBQUssT0FBTyxxQkFDOUMsTUFBTSxjQUFjLE9BQVEseUJBQTBCLE9BQVEsRUFBTyxlQUNyRSxHQUFZLEVBQU8sZUFDbEIsTUFBTSxjQUFjLE1BQU8sS0FBTSxNQUFNLGNBQWMsS0FBTSxPQUFRLGFBQWMsS0FBTSxFQUFPLGVBQWdCLGlCQU9uSCxPQUFRLFdBQ1AsR0FBSSxHQUFxQixFQUFlLENBR2pDLE1BQUssTUFBTSxtQkFBc0IsYUFBYSxZQUNwRCxFQUNDLE1BQU0sY0FBYyxPQUFRLE1BQU8sS0FBSyxPQUFPLGdCQUVoRCxFQUNDLE1BQU0sY0FBYyxPQUFRLE1BQU8sS0FBSyxPQUFPLFVBRWhELEVBQ0MsTUFBTSxjQUFjLE9BQVEsTUFBTyxLQUFLLE9BQU8sYUFDOUMsTUFBTSxjQUFjLEtBQU0sTUFBTyxLQUFLLE9BQU8sZ0JBQWlCLDhEQUM5RCxNQUFNLGNBQWMsUUFBUyxNQUFPLFFBQVMsS0FBTSxNQUFPLE1BQU8sVUFBVyxRQUFTLEtBQUssc0JBQXVCLDRCQUNqSCxNQUFNLGNBQWMsS0FBTSxNQUFPLEtBQUssT0FBTyxnQkFDNUMsTUFBTSxjQUFjLFdBQVksUUFNcEMsSUFBSSxHQUFxQixVQUFVLHNCQUFzQixJQUFJLEtBQUssZUFDOUQsRUFBeUIsVUFBVSw4QkFBOEIsSUFBSSxLQUFLLGNBRTlFLE9BQ0MsT0FBTSxjQUFjLGVBQWdCLEtBQ25DLE1BQU0sY0FBYyxLQUFNLEtBQU0sZ0JBQWlCLE1BQU0sY0FBYyxLQUFNLEtBQU0sS0FBSyxNQUFNLGFBQzVGLE1BQU0sY0FBYyxLQUFNLEtBQU0sMkJBQ2hDLEtBQUssTUFBTSxtQkFDVixNQUFNLGNBQWMsTUFBTyxLQUMxQixNQUFNLGNBQWMsYUFBYyxNQUFPLEtBQUssT0FBTyxjQUNyRCxNQUFNLGNBQWMsS0FBTSxNQUFPLE9BQU8sU0FBVSxxRkFDbEQsTUFBTSxjQUFjLEtBQU0sTUFBTyxPQUFPLFNBQVUsOERBQ2xELE1BQU0sY0FBYyxPQUFRLFVBQVcsV0FHekMsTUFBTSxjQUFjLE9BQVEsVUFBVyxvQkFDdEMsTUFBTSxjQUFjLE9BQVEsT0FBUSxTQUFVLGFBQzdDLEVBQ0EsRUFDQSxFQUVBLEtBQUssTUFBTSxtQkFDVixNQUFNLGNBQWMsT0FBUSxVQUFXLFVBQ3RDLE1BQU0sY0FBYyxRQUFTLE9BQVEsUUFBTyxTQUFVLE1BQU8sT0FBUSxRQUFTLEtBQUssWUFBYSxlQUNoRyxNQUFNLGNBQWMsT0FBUSxVQUFXLFdBSXpDLE1BQU0sY0FBYyxXQUFZLEtBQy9CLE1BQU0sY0FBYyxLQUFNLEtBQU0sc0JBQ3pCLE1BQU0sY0FBYyxRQUFTLFNBQVUsS0FBSyxNQUFNLGlCQUFrQixNQUFPLE9BQVEsUUFBUyxLQUFLLHdCQUF5QixLQUFLLE1BQU0saUJBQW1CLGNBQWdCLDZCQUUvSyxHQUdELEtBQUssTUFBTSxnQkFDVixNQUFNLGNBQWMsS0FBTSxNQUFPLEtBQUssT0FBTyxVQUM1QyxNQUFNLGNBQWMsS0FBTSxLQUFNLElBQUssUUFBUyxLQUFLLHdCQUF5Qiw2QkFHN0UsTUFBTSxjQUFjLEtBQU0sTUFBTyxLQUFLLE9BQU8sVUFDNUMsTUFBTSxjQUFjLEtBQU0sS0FBTSxJQUFLLFFBQVMsS0FBSyx1QkFBd0IsNkJBSTdFLEtBQUssTUFBTSxpQkFDVixNQUFNLGNBQWMsV0FBWSxLQUMvQixNQUFNLGNBQWMsS0FBTSxLQUFNLHNCQUNoQyxRQVVSLFFBQU8sUUFBVSxPQUFPOzs7Ozs7QUMzUnhCLFFBQVMsc0JBQ1IsT0FDQyxXQUFZLFVBQVUsV0FDdEIsT0FBUSxVQUFVLGFBVnBCLEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsVUFBWSxRQUFRLHdCQUNwQixPQUFTLFFBQVEsK0NBQ2pCLGVBQWlCLFFBQVEscUJBQ3pCLE9BQVMsUUFBUSxhQUNqQixxQkFBdUIsUUFBUSxxQ0FTNUIsV0FBYSxNQUFNLGFBQWEsWUFBYSxhQUVoRCxrQkFBbUIsV0FDbEIsVUFBVSxrQkFBa0IsS0FBSyxZQUdsQyxxQkFBc0IsV0FDckIsVUFBVSxxQkFBcUIsS0FBSyxZQUdyQyxVQUFXLFdBQ1AsS0FBSyxTQUFTLHVCQUdsQixnQkFBaUIsV0FDaEIsTUFBTyx1QkFHUixnQkFBaUIsU0FBVSxHQUMxQixLQUFLLFVBQVcsT0FBUSxPQUFPLEVBQUUsZUFBZSxTQUdqRCxhQUFjLFNBQVUsR0FDdkIsRUFBRSxpQkFDRixxQkFBcUIsaUJBQWlCLEtBQUssTUFBTSxTQUdsRCxPQUFRLFdBQ1AsTUFDQyxPQUFNLGNBQWMsZ0JBQWlCLEdBQUksbUJBRXhDLE1BQU0sY0FBYyxLQUFNLEtBQU0sZ0JBQWlCLE1BQU0sY0FBYyxLQUFNLEtBQU0sS0FBSyxNQUFNLGFBQzVGLE1BQU0sY0FBYyxLQUFNLEtBQU0sbUJBQ2hDLE1BQU0sY0FBYyxLQUFNLE1BQU8sT0FBTyxTQUFVLHNHQUNsRCxNQUFNLGNBQWMsUUFBUyxTQUFVLEtBQUssY0FDM0MsTUFBTSxjQUFjLFFBQVMsS0FDNUIsTUFBTSxjQUFjLFNBQVUsS0FBTSxRQUFTLEtBQU0sY0FBZSxNQUFPLFVBQVcsUUFBK0IsWUFBdEIsS0FBSyxNQUFNLE9BQXNCLFNBQVUsS0FBSyxrQkFBbUIsa0JBQ2hLLE1BQU0sY0FBYyxLQUFNLFVBQVcsZUFBZ0IseUNBRXRELE1BQU0sY0FBYyxLQUFNLE1BQzFCLE1BQU0sY0FBYyxRQUFTLEtBQzVCLE1BQU0sY0FBYyxTQUFVLEtBQU0sUUFBUyxLQUFNLGNBQWUsTUFBTyxZQUFhLFFBQStCLGNBQXRCLEtBQUssTUFBTSxPQUF3QixTQUFVLEtBQUssa0JBQW1CLDhCQUNwSyxNQUFNLGNBQWMsS0FBTSxVQUFXLGVBQWdCLCtEQUV0RCxNQUFNLGNBQWMsS0FBTSxNQUMxQixNQUFNLGNBQWMsUUFBUyxLQUM1QixNQUFNLGNBQWMsU0FBVSxLQUFNLFFBQVMsS0FBTSxjQUFlLE1BQU8sT0FBUSxRQUErQixTQUF0QixLQUFLLE1BQU0sT0FBbUIsU0FBVSxLQUFLLGtCQUFtQixlQUMxSixNQUFNLGNBQWMsS0FBTSxVQUFXLGVBQWdCLHNGQUd0RCxNQUFNLGNBQWMsS0FBTSxVQUFXLFVBQ3BDLE1BQU0sY0FBYyxRQUFTLE1BQU8sUUFBUyxvQkFRbkQsUUFBTyxRQUFVOzs7Ozs7QUNqRWpCLFFBQVMscUJBQ1IsT0FDQyxNQUFPLFVBQVUsV0FDakIsWUFBYSxVQUFVLGtCQVh6QixHQUFJLE9BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBQ2hILFlBQWMsUUFBUSwyQkFDdEIsVUFBWSxRQUFRLHdCQUNwQixlQUFpQixRQUFRLHFCQUN6QixPQUFTLFFBQVEsYUFDakIsT0FBUyxRQUFRLCtDQUNqQixxQkFBdUIsUUFBUSxxQ0FTNUIsY0FBZ0IsTUFBTSxhQUFhLFlBQWEsZ0JBRW5ELGtCQUFtQixXQUNsQixVQUFVLGtCQUFrQixLQUFLLFlBR2xDLHFCQUFzQixXQUNyQixVQUFVLHFCQUFxQixLQUFLLFlBR3JDLFVBQVcsV0FDUCxLQUFLLFNBQVMsc0JBR2xCLGdCQUFpQixXQUNoQixNQUFPLHNCQUdSLGtCQUFtQixTQUFTLEdBQzNCLFlBQVksU0FBUyxFQUFFLGNBQWMsUUFHdEMsd0JBQXlCLFNBQVMsR0FDakMsWUFBWSxlQUFlLEVBQUUsY0FBYyxRQUc1QyxhQUFjLFNBQVMsR0FDdEIsRUFBRSxpQkFDRixxQkFBcUIsbUJBR3RCLE9BQVEsV0FDUCxNQUVDLE9BQU0sY0FBYyxnQkFBaUIsR0FBSSx1QkFDeEMsTUFBTSxjQUFjLEtBQU0sS0FBTSxpQ0FDaEMsTUFBTSxjQUFjLEtBQU0sS0FBTSxpQ0FDaEMsTUFBTSxjQUFjLEtBQU0sTUFBTyxPQUFPLFNBQ3ZDLGdEQUVELE1BQU0sY0FBYyxRQUFTLFNBQVUsS0FBSyxjQUMzQyxNQUFNLGNBQWMsU0FBVSxVQUFXLGNBQ3hDLE1BQU0sY0FBYyxRQUFTLEtBQzVCLE1BQU0sY0FBYyxLQUFNLEtBQ3pCLE1BQU0sY0FBYyxLQUFNLEtBQU0sTUFBTSxjQUFjLFNBQVUsUUFBUyxjQUFlLGVBQ3RGLE1BQU0sY0FBYyxLQUFNLEtBQ3pCLE1BQU0sY0FBYyxTQUFVLEtBQU0sT0FBUSxLQUFNLGFBQWMsR0FBSSxhQUFjLGFBQWMsTUFBTyxTQUFVLEtBQUssa0JBQW1CLE1BQU8sS0FBSyxNQUFNLE1BQ3hKLFlBQWEseUNBQTBDLFVBQVUsSUFDOUQsTUFBTSxjQUFjLEtBQU0sVUFBVyxlQUFnQiwwRkFHeEQsTUFBTSxjQUFjLEtBQU0sS0FDOUIsTUFBTSxjQUFjLEtBQU0sS0FBTSxNQUFNLGNBQWMsU0FBVSxRQUFTLG9CQUFxQixxQkFDNUYsTUFBTSxjQUFjLEtBQU0sS0FDekIsTUFBTSxjQUFjLFNBQVUsS0FBTSxPQUFRLEtBQU0sbUJBQW9CLEdBQUksbUJBQW9CLGFBQWMsTUFBTyxTQUFVLEtBQUssd0JBQXlCLE1BQU8sS0FBSyxNQUFNLFlBQzFLLFlBQWEsbUJBQW9CLFVBQVUsSUFDeEMsTUFBTSxjQUFjLEtBQU0sVUFBVyxlQUFnQix5TEFNL0QsTUFBTSxjQUFjLEtBQU0sVUFBVyxVQUNwQyxNQUFNLGNBQWMsUUFBUyxNQUFPLFFBQVMsb0JBUW5ELFFBQU8sUUFBVTs7Ozs7O0FDbEZqQixRQUFTLG9CQUNSLE9BQ0MsVUFBVyxtQkFBbUIsaUJBQWlCLFdBTmpELEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsbUJBQXFCLFFBQVEsa0NBQzdCLHFCQUF1QixRQUFRLHFDQVE1QixXQUFhLE1BQU0sYUFBYSxZQUFhLGFBRWhELE9BQ0MsTUFBTyxPQUNQLFNBQVUsTUFDVixXQUFZLEdBQ1osYUFBYyxtQkFHZixrQkFBbUIsV0FDbEIsbUJBQW1CLGtCQUFrQixLQUFLLFlBRzNDLHFCQUFzQixXQUNyQixtQkFBbUIscUJBQXFCLEtBQUssWUFHOUMsVUFBVyxXQUNQLEtBQUssU0FBUyxxQkFHaEIsZ0JBQWlCLFdBQ2xCLE1BQU8scUJBR1IsV0FBWSxTQUFVLEdBQ3JCLEVBQUUsaUJBQ0YscUJBQXFCLFlBR3RCLE9BQVEsV0FDUCxHQUFJLEdBQWEsS0FBSyxNQUFlLFNBQ3JDLE9BQUssR0FDRyxLQUVDLE1BQU0sY0FBYyxLQUFNLE1BQU8sS0FBSyxNQUFPLEtBQU0sSUFBSyxRQUFTLEtBQUssWUFBYSxhQUs5RixRQUFPLFFBQVU7Ozs7OztBQ2pEakIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUU3RyxRQUFVLE1BQU0sYUFBYSxZQUFhLFVBQzdDLFdBQ0MsS0FBTSxNQUFNLFVBQVUsT0FBTyxXQUM3QixJQUFLLE1BQU0sVUFBVSxPQUFPLFdBQzVCLE1BQU8sTUFBTSxVQUFVLE9BQU8sV0FDOUIsTUFBTyxNQUFNLFVBQVUsT0FBTyxZQUcvQixjQUFlLFNBQVcsR0FDekIsRUFBRSxrQkFHSCxrQkFBbUIsV0FDbEIsS0FBSyxzQkFHTiwwQkFBMkIsV0FDMUIsS0FBSyxzQkFHTixnQkFBaUIsV0FDaEIsT0FDQyxRQUFTLEtBQUssTUFBTSxNQUl0QixtQkFBb0IsV0FDbkIsR0FBSSxHQUFXLE9BQU8sTUFBTSxZQUFZLEtBQUssS0FBSyxTQUVsRCxNQUFLLFVBQ0osUUFBUyxLQUFLLE1BQU0sSUFBTyxFQUFTLGNBQWMsS0FJcEQsT0FBUSxXQUNQLE1BQ0MsT0FBTSxjQUFjLE9BQVEsSUFBSyxVQUFXLFVBQVcsNkJBQThCLE9BQVEsU0FBVSxXQUFZLE1BQU8sS0FBSyxNQUFNLE1BQU8sSUFBSyxLQUFLLE1BQU0sUUFBUyxLQUFNLEtBQUssTUFBTSxLQUFNLE9BQVEsT0FDbk0sTUFBTSxjQUFjLE9BQVEsVUFBVyxzQkFDdEMsTUFBTSxjQUFjLEtBQU0sS0FBTSxLQUFLLE1BQU0sT0FDM0MsTUFBTSxjQUFjLElBQUssS0FBTSxLQUFLLE1BQU0sV0FFM0MsTUFBTSxjQUFjLE9BQVEsVUFBVyxvQkFDdEMsTUFBTSxjQUFjLE9BQVEsVUFBVywrQkFPNUMsUUFBTyxRQUFVOzs7Ozs7QUNwRGpCLEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsT0FBUyxRQUFRLFVBQ2pCLFlBQWMsUUFBUSxxREFDdEIscUJBQXVCLFFBQVEscUNBQy9CLFNBQVcsUUFBUSxjQUVoQixVQUFZLE1BQU0sVUFBVSxPQUMvQixLQUFNLE1BQU0sVUFBVSxPQUFPLFdBQzdCLEtBQU0sTUFBTSxVQUFVLFNBTW5CLFlBQWMsTUFBTSxhQUFhLFlBQWEsY0FFakQsV0FDQyxZQUFhLFVBQVUsV0FDdkIsVUFBVyxNQUFNLFVBQVUsS0FDM0IsU0FBVSxNQUFNLFVBQVUsUUFBUSxXQUFXLFdBQzdDLGdCQUFpQixNQUFNLFVBQVUsT0FBTyxZQUd6QyxnQkFBaUIsV0FDaEIsT0FDQyxXQUFXLElBSWIsUUFDQyxTQUNDLFFBQU8sUUFDUCxNQUFPLE1BQ1AsT0FBUSxPQUNSLFdBQVksVUFDWixPQUFRLGtCQUVULE9BQ0MsT0FBUSxFQUNSLFFBQVMsR0FDVCxTQUFVLFNBQ1YsV0FBWSxPQUNaLE1BQU8sT0FDUCxTQUFVLEdBQ1YsY0FBZSxhQUVoQixNQUNDLE9BQVEsWUFDUixVQUFXLE9BQ1gsNkJBQ0MsT0FBUSxZQUdWLFVBQ0MsYUFBYyxFQUNkLFNBQVUsV0FDVixNQUFPLE9BQ1AsV0FBWSxJQUNaLDZCQUNDLFNBQVUsU0FFWCw2QkFDQyxTQUFVLFlBR1osbUJBQ0MsTUFBTyxXQUVSLE1BQ0MsU0FBVSxHQUNWLElBQUssRUFDTCxTQUFVLFlBRVgsY0FDQyxNQUFPLFVBQ1AsYUFBYyxjQUVmLGlCQUNDLE1BQU8sWUFJVCxXQUFZLFNBQVMsR0FDcEIsRUFBRSxnQkFFRixJQUFJLEdBQU8sT0FBTyxFQUFFLGVBQWUsS0FBSyxZQUV4QyxzQkFBcUIsZUFBZSxJQUdyQyxPQUFRLFdBRVAsR0FBSSxHQUFZLEtBQUssTUFBTSxTQUFTLElBQUksU0FBVyxHQUNsRCxHQUFJLEdBQU8sRUFBUyxFQUFVLENBa0I5QixPQWhCSyxNQUFLLE1BQU0sV0FBYSxLQUFLLE1BQU0sY0FDdkMsRUFBWSxLQUFLLE1BQU0sWUFBWSxNQUFRLEVBQUssTUFJaEQsR0FESyxFQUFBLFdBQWUsS0FBSyxNQUFNLFVBQ3ZCLE1BQU0sY0FBYyxLQUFNLEtBQU0sSUFBSyxNQUFPLEtBQUssT0FBTyxhQUFjLGlCQUFrQixFQUFLLEtBQU0sUUFBUyxLQUFLLFlBQWEsRUFBSyxNQUVuSSxFQUFLLEtBR1QsRUFBSyxVQUFZLEtBQUssTUFBTSxZQUNoQyxFQUFXLE1BQU0sY0FBYyxFQUFLLFNBQVUsT0FHL0MsRUFBVyxFQUFLLFVBQVksTUFBUSxtQkFHbkMsTUFBTSxjQUFjLE1BQU8sSUFBSyxFQUFLLEtBQU0sT0FBUSxLQUFLLE9BQU8sU0FBVSxFQUFLLFdBQWEsS0FBSyxPQUFPLGtCQUFtQixHQUFXLEtBQUssT0FBTyxrQkFDaEosTUFBTSxjQUFjLFVBQVcsTUFBTyxLQUFLLE9BQU8sS0FBTSxLQUFNLElBQzlELEVBQU8sSUFBSyxFQUFLLFFBQVUsWUFBYyxLQUN6QyxJQUdELEtBQUssTUFFUCxPQUNDLE9BQU0sY0FBYyxPQUFRLE9BQVEsS0FBSyxPQUFPLFFBQVMsS0FBSyxNQUFNLFFBQ25FLE1BQU0sY0FBYyxNQUFPLE1BQU8sS0FBSyxPQUFPLE9BQzdDLE1BQU0sY0FBYyxRQUFTLE9BQVEsUUFBTyxPQUFRLFlBQWEsS0FBTSxpQkFDdkUsTUFBTSxjQUFjLE1BQU8sS0FDMUIsTUFBTSxjQUFjLGFBQWMsT0FBUyxRQUFPLFFBQVMsZ0JBQWlCLEtBQUssTUFBTSxvQkFJekYsTUFBTSxjQUFjLE1BQU8sTUFBTyxLQUFLLE9BQU8sTUFDN0MsTUFPTCxRQUFPLFFBQVUsT0FBTzs7Ozs7O0FDekl4QixHQUFJLE9BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBRTdHLGVBQWlCLE1BQU0sYUFBYSxZQUFhLGlCQUNwRCxPQUFRLFdBQ1AsR0FBSSxHQUFPLEtBQUssTUFBTSxFQUFNLFNBQVUsRUFBUSxHQUFZLEdBQUksTUFBYyxFQUFTLE9BQU8sVUFBVSxjQUFlLElBQWMsTUFBVixFQUFpQixLQUFNLElBQUksVUFBYSxLQUFLLEdBQUksS0FBTyxHQUFhLEVBQU8sS0FBSyxFQUFRLEtBQVMsRUFBTyxLQUFLLEVBQVcsS0FBTyxFQUFLLEdBQU8sRUFBTyxHQUFPLE9BQU8sSUFBUSxLQUNsUyxPQUNDLE9BQU0sY0FBYyxNQUFPLE1BQU0sWUFBYyxHQUFRLFVBQVcscUJBQ2pFLEtBQUssTUFBTSxZQU1mLFFBQU8sUUFBVTs7Ozs7O0FDRGpCLFFBQVMsb0JBQ1IsT0FDQyxRQUFTLG1CQUFtQixZQUM1QixZQUFhLGFBQWEsVUFDMUIsZUFBZ0IsYUFBYSxhQUM3QixZQUFhLG1CQUFtQixpQkFDaEMsU0FBVSxtQkFBbUIsY0FDN0IsZ0JBQWlCLG1CQUFtQixzQkFuQnRDLEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsWUFBYyxRQUFRLGtCQUN0QixtQkFBcUIsUUFBUSxrQ0FDN0IsTUFBUSxRQUFRLDhDQUNoQixxQkFBdUIsUUFBUSxxQ0FDL0IsTUFBUSxRQUFRLFdBQ2hCLE9BQVMsUUFBUSxhQUNqQixXQUFhLFFBQVEsaUJBQ3JCLGFBQWUsUUFBUSwyQkFDdkIsZUFBaUIsUUFBUSw4QkFDekIsVUFBWSxRQUFRLHdCQWNqQixjQUFnQixNQUFNLGFBQWEsWUFBYSxnQkFFbkQsUUFDQyxTQUFXLFNBQVUsWUFDckIsZ0JBQ0MsU0FBVSxXQUNWLElBQUssRUFDTCxLQUFNLEVBQ04sTUFBTyxPQUNQLE9BQVEsT0FDUixVQUFXLE9BQ1gsT0FBUSxJQUNSLGdCQUFpQix5QkFFbEIsZ0JBQ0MsU0FBVSxXQUNWLE1BQU8sTUFDUCxTQUFVLElBQ1YsYUFBYyxFQUNkLFFBQVMsR0FDVCxPQUFRLGtCQUNSLGdCQUFpQixRQUNqQixVQUFXLFNBQ1gsS0FBTSxNQUNOLElBQUssSUFDTCxVQUFXLHdCQUVaLFdBQ0MsUUFBTyxPQUNQLE1BQU8sTUFDUCxRQUFTLFVBRVYsTUFDQyxVQUFXLEtBSWIsa0JBQW1CLFdBQ2xCLG1CQUFtQixrQkFBa0IsS0FBSyxXQUMxQyxhQUFhLGtCQUFrQixLQUFLLGtCQUNwQyxVQUFVLGtCQUFrQixLQUFLLGdCQUdsQyxxQkFBc0IsV0FDckIsbUJBQW1CLHFCQUFxQixLQUFLLFdBQzdDLGFBQWEscUJBQXFCLEtBQUssa0JBQ3ZDLFVBQVUscUJBQXFCLEtBQUssZ0JBR3JDLFVBQVcsV0FDUCxLQUFLLFNBQVMscUJBR2hCLGlCQUFrQixXQUNqQixLQUFLLFVBQVcsWUFBYSxhQUFhLFVBQVcsZUFBZ0IsYUFBYSxnQkFHbkYsY0FBZSxXQUNkLEtBQUssVUFBVyxPQUFRLFVBQVUsY0FHckMsZ0JBQWlCLFdBQ2hCLE1BQU8scUJBR1IsWUFBYSxTQUFVLEdBQ3RCLEVBQUUsaUJBQ0YscUJBQXFCLGFBR3RCLGtCQUFtQixTQUFXLEdBQzdCLEVBQUUsaUJBQ0YsZUFBZSxLQUFLLG9CQUdyQixrQkFBbUIsU0FBVyxHQUM3QixFQUFFLGlCQUNGLGVBQWUsUUFJZCxPQUFRLFdBQ1AsTUFDRCxPQUFNLGNBQWMsT0FBUSxJQUFLLE9BQU8sS0FDdkMsS0FBSyxlQUNMLE1BQU0sY0FBYyxPQUFRLE1BQU8sS0FBSyxPQUFPLFNBQzlDLEtBQUssaUJBQ0wsTUFBTSxjQUFjLE9BQVEsTUFBTyxLQUFLLE9BQU8sV0FDOUMsTUFBTSxjQUFjLE1BQU8sTUFDM0IsS0FBSyxrQkFHTixNQUFNLGNBQWMsYUFBYyxNQUFPLEtBQUssT0FBTyxLQUFNLFdBQVksS0FBSyxNQUFNLFFBQVMsWUFBYSxLQUFLLE1BQU0sWUFBYSxTQUFVLEtBQUssTUFBTSxTQUFVLGdCQUFpQixLQUFLLE1BQU0sa0JBQzNMLE1BQU0sY0FBYyxPQUFRLFVBQVcsYUFNM0MsZUFBZ0IsV0FDZixNQUFLLE1BQUssTUFBTSxRQUNMLE1BQU0sY0FBYyxXQUFZLE1BRWpDLEtBQUssc0JBSWhCLGFBQWMsV0FRVixNQUFPLE9BSVgsZUFBZ0IsV0FDZixNQUFLLE1BQUssTUFBTSxZQUVaLE1BQU0sY0FBYyxPQUFRLE1BQU8sS0FBSyxPQUFPLGdCQUM5QyxNQUFNLGNBQWMsT0FBUSxNQUFPLEtBQUssT0FBTyxnQkFDOUMsTUFBTSxjQUFjLE9BQVEsSUFBSyxJQUFJLFNBQVMsc0JBQXVCLE1BQU8sT0FBUSxPQUFRLFNBQzVGLEtBQU0sS0FBSyxNQUFNLGlCQU1iLE1BSVgsbUJBQW9CLFdBQ25CLE1BQUssTUFBSyxNQUFNLFlBQ0wsTUFBTSxjQUFjLEtBQUssTUFBTSxZQUFZLFlBQWEsTUFFeEQsTUFBTSxjQUFjLEtBQU0sS0FBTSxhQU03QyxRQUFPLFFBQVU7Ozs7O0FDektqQixHQUFJLFdBQVksUUFBUSxZQUV4QixRQUFPLFFBQVUsV0FDaEIsY0FBZSxLQUNmLGlCQUFrQixLQUNsQixZQUFhLEtBQ2IsVUFBVyxLQUNYLFVBQVcsS0FDWCxlQUFnQixLQUNoQixxQkFBc0IsS0FDdEIsZ0NBQWlDLEtBQ2pDLHFCQUFzQixLQUN0QixlQUFnQixLQUNoQixtQkFBb0IsS0FDcEIsd0JBQXlCLEtBQ3pCLDRCQUE2QixLQUM3Qiw2QkFBOEIsS0FDOUIsK0JBQWdDLEtBQ2hDLHlCQUEwQixLQUMxQixnQkFBaUIsS0FFakIsYUFBYyxLQUNkLGNBQWUsS0FFZixVQUFXLEtBQ1gsWUFBYSxLQUNiLHNCQUF1QixLQUN2QixxQkFBc0IsS0FFdEIsV0FBWSxLQUVaLGFBQWMsS0FDZCxhQUFjOzs7QUNoQ2YsT0FBTyxTQUVOLHFCQUFzQixRQUN0QixpQkFBa0IsU0FDbEIsa0JBQW1CLFVBQ25CLDJCQUE0QixtQkFDNUIsaUJBQWtCLFNBQ2xCLG1CQUFvQixXQUNwQiwwQkFBMkIsVUFDM0IsdUJBQXdCOzs7QUNJekIsR0FBSSxZQUFhLFFBQVEsUUFBUSxVQUVqQyxRQUFPLFFBQVUsR0FBSTs7O0FDZnJCLEdBQUksY0FBZSxRQUFRLGtCQUUzQjs7O0FDc0JBLFFBQVMsd0JBQ1IsZUFBZ0MsRUFHakMsUUFBUyx3QkFDUixlQUFnQyxFQTdCakMsR0FBSSxlQUFnQixRQUFRLGdDQUMzQixhQUFlLFFBQVEsVUFBVSxhQUNqQyxhQUFlLFFBQVEsd0NBTXBCLGNBQWdCLEVBQUcsV0FBWSxhQUFlLFFBRWxELFFBQU8sUUFBUSxHQUFHLGVBQWdCLFdBQ2pDLE1BQUcsV0FBVSxZQUNaLFdBQWEsV0FBVyxhQUdsQixLQUNJLHVDQUxYLFNBU0QsT0FBTyxRQUFRLEdBQUcsU0FBVSxXQUMzQixhQUFhLGFBV2QsSUFBSSxXQUFZLEVBQUUsVUFBVyxhQUFhLFdBQ3pDLFNBQVUsV0FDVCxNQUFPLGVBQWdCLEdBR3hCLGtCQUFtQixTQUFTLEdBQzNCLEtBQUssR0FBRyxhQUFjLElBR3ZCLHFCQUFzQixTQUFTLEdBQzlCLEtBQUssZUFBZSxhQUFjLElBR25DLFdBQVksV0FDUixLQUFLLEtBQUssZ0JBSWYsZUFBYyxTQUFTLFNBQVMsR0FFOUIsT0FBTyxFQUFPLFlBQ1osSUFBSyxjQUFhLGFBQ2pCLHVCQUNILFVBQVUsWUFDVixNQUVFLEtBQUssY0FBYSxjQUNqQix1QkFDQyxVQUFVLGdCQVFoQixPQUFPLFFBQVU7OztBQzdEakIsUUFBUyxVQUFTLEVBQVksR0FDN0IsUUFBVSxFQUNWLFNBQVcsRUFUWixHQUFJLGVBQWdCLFFBQVEsZ0NBQzNCLGFBQWUsUUFBUSxVQUFVLGFBQ2pDLGFBQWUsUUFBUSx3Q0FFcEIsYUFBZSxTQUNmLFFBQVMsU0FPVCxXQUFhLEVBQUUsVUFBVyxhQUFhLFdBQzFDLFNBQVUsV0FDVCxHQUFJLEVBRUosUUFBTyxVQUNOLElBQUssY0FBYSxxQkFDakIsRUFBaUIsT0FDakIsTUFDRCxLQUFLLGNBQWEsc0JBQ2pCLEVBQWlCLFNBS25CLE9BQVEsUUFBUyxRQUFTLFNBQVUsSUFJckMsa0JBQW1CLFNBQVMsR0FDM0IsS0FBSyxHQUFHLGFBQWMsSUFHdkIscUJBQXNCLFNBQVMsR0FDOUIsS0FBSyxlQUFlLGFBQWMsSUFHbkMsV0FBWSxXQUNSLEtBQUssS0FBSyxnQkFJZixlQUFjLFNBQVMsU0FBUyxHQUU5QixPQUFPLEVBQU8sWUFDWixJQUFLLGNBQWEsVUFDcEIsU0FBUyxFQUFPLFFBQVMsRUFBTyxVQUNoQyxXQUFXLFlBQ1gsTUFFRSxLQUFLLGNBQWEsWUFDaEIsU0FBUyxLQUFNLE1BQ2YsV0FBVyxnQkFRakIsT0FBTyxRQUFVOzs7QUNoRGpCLFFBQVMsVUFBUyxHQUdoQixFQUFNLFFBQVMsU0FBUyxHQUdZLG1CQUFyQixHQUFlLFlBQzFCLEVBQUssVUFBYSxJQUFJLFlBQVksRUFBSyxPQUFTLElBQUksWUFBWSxFQUFLLE1BQU0sWUFBYyxHQUczRCxtQkFBbkIsR0FBYSxVQUN4QixFQUFLLFFBQVcsSUFBSSxZQUFZLEVBQUssT0FBUyxJQUFJLFlBQVksRUFBSyxNQUFNLFVBQVksR0FHeEQsbUJBQWxCLEdBQUYsWUFDVCxFQUFBLFdBQWMsR0FLa0IsbUJBQXJCLEdBQWUsWUFDMUIsRUFBSyxXQUFZLEdBSXVCLG1CQUE3QixHQUF1QixvQkFDbEMsRUFBSyxtQkFBb0IsS0FJN0IsT0FBUyxFQUdULHNCQUdGLFFBQVMsY0FDUCxVQUFXLEVBQ1gsd0JBR0YsUUFBUyxVQUFTLEdBQ2hCLEdBQUksR0FBTyxnQkFBZ0IsRUFDM0IsR0FBSyxXQUFZLEVBQ2pCLEVBQUssU0FBVSxFQUdqQixRQUFTLFFBQ1AsR0FBSSxHQUFXLGtCQUNYLEVBQU8sZ0JBQWdCLEVBQzNCLEdBQUssU0FBVSxFQUNmLHdCQUdGLFFBQVMsaUJBQWlCLEdBQ3hCLEdBQUksR0FBYyxJQU1sQixPQUxBLEdBQUUsS0FBTSxPQUFRLFNBQVUsR0FDcEIsRUFBSyxPQUFTLElBQ2hCLEVBQWMsS0FHWCxFQUdULFFBQVMsdUJBQ1AsR0FBSSxHQUFXLGlCQUNmLEtBQVMsSUFBWSxnQkFBaUIsR0FBZSxDQUVuRCxHQUFJLEdBQWMsb0JBQ0csUUFBaEIsSUFDSCxPQUFPLFNBQVMsS0FBTyxpQkFBaUIsRUFBWSxPQUsxRCxRQUFTLHlCQUNQLEdBQUksR0FBYyxvQkFDRyxRQUFoQixHQUNILE9BQU8sRUFBWSxNQUl2QixRQUFTLHNCQUVQLEdBQUksR0FBWSxrQkFDaEIsT0FBSyxJQUNFLE9BQU8sRUFBVSxJQUFNLE9BQU8sRUFBVSxHQUFHLGFBQWMsRUFDckQsT0FBTyxFQUFVLEdBS3JCLEVBQUUsVUFBVyxRQUFVLFdBQVcsRUFBTyxTQUFTLElBRzNELFFBQVMsbUJBQ1AsR0FBd0QsSUFBbkQsT0FBTyxTQUFTLEtBQUssUUFBUSxrQkFBMEIsQ0FDMUQsR0FBSSxHQUFRLE9BQU8sU0FBUyxLQUFLLE1BQU0sS0FDbkMsRUFBVyxFQUFNLEVBQU0sT0FBTyxFQUNsQyxPQUFPLEdBRVAsTUFBTyxNQUlYLFFBQVMsb0JBRVAsSUFBTSxHQURGLEdBQU8sa0JBQ0QsRUFBRSxFQUFHLEVBQUUsT0FBTyxPQUFRLElBQzlCLEdBQUssT0FBTyxHQUFHLE9BQVMsRUFDdEIsTUFBTyxFQUdYLFFBQU8sRUFHVCxRQUFTLFFBQU8sR0FDZCxPQUFPLFNBQVMsS0FBTyxpQkFBaUIsRUFFeEMsT0FBTyxLQUFLLElBQUksYUFBYSxNQUFRLEtBQU0sSUFBYyxPQUFPLElBSWxFLFFBQVMsU0FDUCxJQUFJLGVBQ0osRUFBRSxNQUFPLFFBQVUsVUFBUSxJQUFTLFFBQVMsU0FBVyxHQUN0RCxFQUFLLFdBQVksRUFDakIsRUFBSyxTQUFVLElBRWpCLFVBQVcsRUF6SWIsR0FBSSxlQUFnQixRQUFRLGdDQUMxQixhQUFlLFFBQVEsVUFBVSxhQUNqQyxhQUFlLFFBQVEsd0NBQ3ZCLE9BQVMsUUFBUSxvQkFFZixhQUFlLFNBRWYsT0FBUSxTQUFXLElBQUksUUFxSXZCLG1CQUFxQixFQUFFLFVBQVcsYUFBYSxXQUVqRCxLQUFNLFNBQVMsR0FDYixTQUFTLElBR1gsWUFBYSxXQUNYLE1BQU8sU0FHVCxVQUFXLFdBQ1QsT0FBUSxVQUdWLFdBQVksV0FDVixLQUFLLEtBQU0sZUFHYixlQUFnQixXQUNkLE1BQU8saUJBQWlCLG9CQUcxQixtQkFBb0IsV0FDbEIsTUFBTyx1QkFHVCxnQkFBaUIsU0FBUyxHQUN4QixNQUFPLGlCQUFpQixJQUcxQixtQkFBb0IsV0FDbkIsR0FBSSxHQUFXLEVBQUUsTUFBTyxRQUFVLG1CQUFtQixJQUFTLE9BQ3pELEVBQWlCLEVBQUUsTUFBTyxRQUFVLG1CQUFtQixFQUFNLFdBQVcsSUFBUyxPQUNqRixFQUFtQixFQUFpQixFQUFZLEdBQUssR0FDckQsRUFBNEMsR0FBbkMsS0FBSyxNQUFNLEVBQWtCLEdBQzFDLE9BQU8sSUFHVCxrQkFBbUIsU0FBUyxHQUMxQixLQUFLLEdBQUksYUFBYyxJQUd6QixxQkFBc0IsU0FBUyxHQUM3QixLQUFLLGVBQWdCLGFBQWMsS0FLdkMsZUFBYyxTQUFTLFNBQVMsR0FFOUIsT0FBTyxFQUFPLFlBQ1osSUFBSyxjQUFhLGlCQUNoQixhQUNBLG1CQUFtQixZQUNuQixNQUVGLEtBQUssY0FBYSxZQUNoQixPQUFPLEVBQU8sTUFDZCxtQkFBbUIsWUFDbkIsTUFFRixLQUFLLGNBQWEsVUFDaEIsd0JBQ0EsbUJBQW1CLFlBQ25CLE1BRUYsS0FBSyxjQUFhLGNBQ2hCLFNBQVMsRUFBTyxNQUNoQixtQkFBbUIsWUFDbkIsTUFFRixLQUFLLGNBQWEsV0FDaEIsUUFDQSxtQkFBbUIsWUFDbkIsTUFFRixLQUFLLGNBQWEsVUFDaEIsT0FDQSxtQkFBbUIsZ0JBUXpCLE9BQU8sUUFBVTs7O0FDek5qQixRQUFTLFVBQVMsR0FDakIsSUFBSSxTQUFTLEtBQU8sRUFHckIsUUFBUyxnQkFBZSxHQUN2QixJQUFJLFNBQVMsWUFBYyxFQUc1QixRQUFTLGdCQUFlLEdBQ3RCLElBQUksT0FBTyxRQUFTLFNBQVUsR0FDdkIsRUFBTSxJQUFNLEVBQ2YsRUFBTSxRQUFTLEVBRWYsRUFBTSxRQUFTLElBS3JCLFFBQVMsZ0JBQWUsR0FDdEIsSUFBSSxPQUFPLFFBQVEsR0FDbkIsSUFBSSxPQUFTLElBQUksT0FBTyxNQUFNLEVBQUcsR0FHbkMsUUFBUywyQkFBMEIsR0FDc0IsS0FBbEQsRUFBRSxRQUFTLElBQUksUUFBUSxlQUFnQixJQUMxQyxJQUFJLFFBQVEsZUFBZSxLQUFLLEdBSXBDLFFBQVMsNEJBQTJCLEdBQ2xDLEdBQUksR0FBUSxFQUFFLFFBQVMsSUFBSSxRQUFRLGVBQWdCLEVBQzlDLElBQVMsR0FDWixJQUFJLFFBQVEsZUFBZSxPQUFPLEVBQU8sR0FJN0MsUUFBUyw2QkFBNEIsR0FDbkMsSUFBSSxRQUFRLG1CQUFxQixFQUFFLE9BQU8sRUFBUyxTQUFTLEdBQzFELE1BQXFHLElBQTlGLEVBQUUsUUFBUSxJQUFJLFFBQVEsa0JBQWtCLElBQUksU0FBUyxHQUFLLE1BQU8sR0FBSSxPQUFTLEVBQU8sUUFJaEcsUUFBUyxXQUFVLEdBQ2pCLE9BQVMsRUFHWCxRQUFTLHdCQUNQLElBQUksUUFBUSxZQUFhLEVBRzNCLFFBQVMsZ0NBQ1AsSUFBSSxRQUFRLGtCQUFrQixRQUFTLFNBQVUsR0FDL0MsMEJBQTJCLEVBQU8sUUFJdEMsUUFBUyxrQkFBa0IsR0FDekIsSUFBSSxNQUFNLGFBQWUsRUFsRTNCLEdBQUksZUFBZ0IsUUFBUSxnQ0FDMUIsYUFBZSxRQUFRLFVBQVUsYUFDakMsYUFBZSxRQUFRLHdDQUN2QixPQUFTLFFBQVEsb0JBRWYsYUFBZSxTQUVmLE9BQVMsSUFBSSxNQUFNLE9BQU8sUUE4RDFCLFVBQVksRUFBRSxVQUFXLGFBQWEsV0FFeEMsU0FBVSxXQUNULE1BQU8sS0FBSSxTQUFTLE1BR3JCLGVBQWdCLFdBQ2QsTUFBTyxLQUFJLFNBQVMsYUFHdEIsa0JBQW1CLFdBQ2pCLE1BQU8sS0FBSSxNQUFNLGNBQWdCLElBQUksTUFBTSxhQUFhLEtBRzFELFVBQVcsV0FDVCxNQUFPLEtBQUksUUFHYixpQkFBa0IsV0FDaEIsSUFBSSxHQUFJLEdBQUUsRUFBRyxFQUFJLElBQUksT0FBTyxPQUFRLElBQUssQ0FDdkMsR0FBSSxHQUFRLElBQUksT0FBTyxFQUN2QixJQUFLLEVBQU0sT0FDVCxNQUFPLEdBQU0sR0FHakIsTUFBTyxPQUdULHFCQUFzQixXQUNwQixNQUFPLEtBQUksUUFBUSxZQUdyQixxQkFBc0IsV0FDcEIsTUFBTyxLQUFJLFFBQVEsZ0JBR3JCLHVCQUF3QixTQUFTLEdBQy9CLE1BQVMsR0FBRSxRQUFTLElBQUksUUFBUSxlQUFnQixJQUFVLEdBRzVELDRCQUE2QixXQUMzQixNQUFPLEtBQUksUUFBUSxvQkFHckIsd0JBQXlCLFdBQ3ZCLE1BQU8sS0FBSSxRQUFRLGtCQUFrQixJQUFJLFNBQVMsR0FBVSxNQUFPLEdBQU8sUUFHNUUsb0JBQXFCLFdBQ25CLE1BQU8sS0FBSSxRQUFRLG1CQUdyQixpQkFBa0IsV0FDaEIsTUFBTyxRQUFPLEtBQUssSUFBSSxhQUFhLHVCQUF5QixPQUFPLEtBR3RFLDJCQUE0QixXQUMxQixJQUFJLEdBQUksR0FBRSxFQUFHLEVBQUksSUFBSSxRQUFRLGtCQUFrQixPQUFRLElBQUssQ0FDMUQsR0FBSSxHQUFTLElBQUksUUFBUSxrQkFBa0IsRUFDM0MsS0FBTyxLQUFLLHVCQUF3QixFQUFPLE1BQ3pDLE9BQU8sRUFHWCxPQUFPLEdBR1QsVUFBVyxXQUNULE1BQU8sU0FHVCxXQUFZLFdBQ1YsS0FBSyxLQUFLLGVBR1osa0JBQW1CLFNBQVMsR0FDMUIsS0FBSyxHQUFHLGFBQWMsSUFHeEIscUJBQXNCLFNBQVMsR0FDN0IsS0FBSyxlQUFlLGFBQWMsS0FLdEMsZUFBYyxTQUFTLFNBQVMsR0FFOUIsT0FBTyxFQUFPLFlBQ1osSUFBSyxjQUFhLGVBQ2hCLFNBQVMsRUFBTyxPQUNoQixVQUFVLFlBQ1YsTUFFRixLQUFLLGNBQWEscUJBQ2hCLGVBQWUsRUFBTyxhQUN0QixVQUFVLFlBQ1YsTUFFRixLQUFLLGNBQWEsZUFDaEIsZUFBZSxFQUFPLFNBQ3RCLFVBQVUsWUFDVixNQUVGLEtBQUssY0FBYSxtQkFDaEIsZUFBZSxFQUFPLE9BQ3RCLFVBQVUsWUFDVixNQUVGLEtBQUssY0FBYSx3QkFDaEIsdUJBQ0EsVUFBVSxZQUNWLE1BRUYsS0FBSyxjQUFhLHlCQUNoQiw0QkFBNEIsRUFBTyxTQUNuQyxVQUFVLFlBQ1YsTUFFRixLQUFLLGNBQWEsNEJBQ2hCLDBCQUEwQixFQUFPLE1BQ2pDLFVBQVUsWUFDVixNQUVGLEtBQUssY0FBYSw2QkFDaEIsMkJBQTJCLEVBQU8sTUFDbEMsVUFBVSxZQUNWLE1BRUYsS0FBSyxjQUFhLCtCQUNoQiwrQkFDQSxVQUFVLFlBQ1YsTUFFRixLQUFLLGNBQWEsZ0JBQ2hCLFVBQVUsRUFBTyxRQUNqQixVQUFVLFlBQ1YsTUFFRixLQUFLLGNBQWEsNEJBQ2hCLGlCQUFpQixFQUFPLE1BQ3hCLFVBQVUsZ0JBUWhCLE9BQU8sUUFBVTs7O0FDbk5qQixRQUFTLE1BQUssR0FDYixnQkFBaUIsRUFDakIsZUFBaUIsRUFHbEIsUUFBUyxRQUNSLGdCQUFpQixFQUNqQixlQUFpQixLQWhCbEIsR0FBSSxlQUFnQixRQUFRLGdDQUMzQixhQUFlLFFBQVEsVUFBVSxhQUNqQyxhQUFlLFFBQVEsd0NBRXBCLGFBQWUsU0FFZixnQkFBaUIsRUFDcEIsZUFBaUIsS0FZZCxhQUFlLEVBQUUsVUFBVyxhQUFhLFdBQzVDLFFBQVMsV0FDUixNQUFPLGlCQUdSLFdBQVksV0FDWCxNQUFPLGlCQUdSLGtCQUFtQixTQUFTLEdBQzNCLEtBQUssR0FBSSxhQUFjLElBR3hCLHFCQUFzQixTQUFTLEdBQzlCLEtBQUssZUFBZ0IsYUFBYyxJQUdwQyxXQUFZLFdBQ1IsS0FBSyxLQUFNLGdCQUloQixlQUFjLFNBQVMsU0FBUyxHQUU5QixPQUFPLEVBQU8sWUFDWixJQUFLLGNBQWEsYUFDcEIsS0FBSyxFQUFPLFNBQ1osYUFBYSxZQUNiLE1BRUUsS0FBSyxjQUFhLGFBQ2hCLE9BQ0EsYUFBYSxnQkFRbkIsT0FBTyxRQUFVOzs7QUMzRGpCLE9BQU8sU0FDTixJQUNDLFdBQVksVUFHYixTQUNDLFNBQVUsU0FDVixNQUFPLE9BQ1AsV0FBWSxJQUNWLE9BQVEsU0FHWCxZQUNDLFFBQU8sUUFDUCxNQUFPLElBQ1AsT0FBUSxrQkFHVCxLQUNDLElBQ0MsYUFBYyxJQUdmLElBQ0MsVUFBVyxFQUNYLFNBQVUsTUFDVixXQUFZLEtBR2IsaUJBQ0MsT0FBUSxFQUNSLFFBQVMsV0FHVixzQkFDQyxNQUFPLFFBR1IsV0FDQyxPQUFRLGlCQUNSLFFBQVMscUJBQ1QsZ0JBQWlCLE9BQ2pCLFVBQVc7OztBQ3hCZCxHQUFJLGFBQWMsUUFBUSwyQkFFdEIsT0FBUyxXQUVaLE9BQ0MsS0FBTSxTQUFTLEVBQVEsRUFBUyxHQUMvQixFQUE2QixtQkFBWixHQUEwQixLQUMzQyxFQUE2QixtQkFBWixHQUEwQixJQUMzQyxJQUFJLEdBQU8sRUFBRSxPQUFPLEdBQVUsT0FBUSxFQUFRLE1BQU8sSUFBSSxRQUVyRCxFQUFXLE9BQU8sVUEwQnRCLE9BckJNLEdBQVEsT0FDYixZQUFZLGlCQUdiLE9BQU8sS0FBTSxRQUFTLEdBQ3BCLFFBQVMsU0FBVSxHQUNaLEVBQVMsUUFHZixFQUFTLFFBQVEsRUFBUyxNQUYxQixFQUFTLE9BQU8sRUFBUyxRQUsxQixLQUFNLFdBQ04sRUFBUyxPQUFPLGtCQUVoQixPQUFRLFdBQ0YsRUFBUSxPQUNiLFlBQVksb0JBSVIsTUFNVixRQUFPLFFBQVU7Ozs7QUM1RGpCLEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDN0csY0FBZ0IsUUFBUSwrQkFDeEIsTUFBUSxRQUFRLG1DQUNoQixtQkFBcUIsUUFBUSxnQ0FFakMsUUFBTyxRQUFVLFdBQ2IsT0FBTyxVQUFVLE1BQU0sV0FFdEIsbUJBQW1CLE9BU3BCLEtBQU0sYUFDTixLQUFNLE1BQU0scUJBQ1osWUFBYSxRQUFRLGtDQUdyQixLQUFNLGdCQUNOLEtBQU0sTUFBTSxpQkFDWixZQUFhLFFBQVEsOEJBR2xCLEtBQU0sZUFDTixLQUFNLE1BQU0sdUJBQ1osWUFBYSxRQUFRLCtCQUdyQixLQUFNLGdCQUNOLEtBQU0sTUFBTSxpQkFDWixZQUFhLFFBQVEsOEJBR3hCLEtBQU0saUJBQ04sS0FBTSxNQUFNLDBCQUNaLFdBQVcsRUFDWCxZQUFhLFFBQVEsdUNBQ3JCLFNBQVUsUUFBUSx5Q0FHbEIsS0FBTSxvQkFDTixLQUFNLE1BQU0sbUJBQ1osWUFBYSxRQUFRLHVDQUNyQixtQkFBbUIsS0FJZixNQUFNLE9BQ0osTUFBTSxjQUFjLGtCQUFvQixTQUFTLGVBQWU7Ozs7OztBQ3BEMUUsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUNoSCxPQUFTLFFBQVEsYUFDakIsT0FBUyxRQUFRLFVBRWQsT0FBUyxNQUFNLGFBQWEsWUFBYSxTQUU1QyxXQUNDLEtBQU0sTUFBTSxVQUFVLE9BQU8sT0FBUSxTQUFVLFFBQy9DLE1BQU8sTUFBTSxVQUFVLE9BQU8sT0FBUSxPQUFRLFVBQzlDLE1BQU8sTUFBTSxVQUFVLE9BQU8sS0FBTSxZQUNwQyxPQUFRLE1BQU0sVUFBVSxLQUN4QixRQUFTLE1BQU0sVUFBVSxLQUN6QixTQUFVLE1BQU0sVUFBVSxLQUMxQixLQUFNLE1BQU0sVUFBVSxRQUd2QixnQkFBaUIsV0FDaEIsT0FBUyxLQUFNLFNBQVUsUUFBUSxFQUFNLE1BQU8sT0FBUSxNQUFPLEtBQU0sVUFBVSxJQUc5RSxtQkFBb0IsU0FBUyxHQUM1QixFQUFFLGlCQUNGLE9BQU8sU0FBVyxLQUFLLE1BQU0sTUFHOUIsUUFDQyxPQUNDLGFBQWMsRUFDZCxVQUFXLHlDQUNYLFlBQWEsRUFDYixZQUFhLFFBQ2IsT0FBUSxVQUNSLFFBQVMsUUFDVCxTQUFVLEdBQ1YsV0FBWSxPQUNaLFFBQVMsWUFDVCxVQUFXLFNBQ1gsZUFBZ0IsT0FDaEIsb0JBQXFCLGNBQ3JCLFdBQVksbUJBR2IsT0FDQyxNQUNDLFNBQVUsR0FDVixRQUFTLFlBRVYsUUFDQyxTQUFVLEdBQ1YsUUFBUyxZQUVWLEtBQ0MsU0FBVSxHQUNWLFFBQVMsY0FJWCxRQUNDLE1BQ0MsV0FBWSxpQ0FDWixZQUFhLE9BQU8sT0FBTyxVQUMzQixNQUFPLE9BQU8sT0FBTyxTQUNyQixVQUNDLE1BQU8sT0FBTyxPQUFPLE9BR3ZCLE1BQ0MsV0FBWSxPQUFPLE9BQU8sS0FDMUIsWUFBYSxrQkFDYixNQUFPLFFBQ1AsVUFDQyxXQUFZLE9BQU8sT0FBTyxjQUc1QixPQUNDLFdBQVksT0FBTyxPQUFPLE1BQzFCLE1BQU8sUUFDUCxZQUFhLGtCQUNiLFVBQ0MsV0FBWSxPQUFPLE9BQU8sZ0JBTTdCLFFBQ0MsTUFDQSxTQUNDLFFBQVMsaUJBQ1QsYUFBYyxFQUNkLFlBQWEsT0FDYixVQUFXLDhDQUliLFFBQ0MsUUFBUyxnQkFHVixVQUNDLFdBQVksVUFDWixZQUFhLE9BQU8sT0FBTyxVQUMzQixNQUFPLE9BQU8sT0FBTyxVQUNyQixVQUNDLFdBQVksVUFDWixZQUFhLE9BQU8sT0FBTyxVQUMzQixNQUFPLE9BQU8sT0FBTyxhQUt4QixPQUFRLFdBRVAsR0FFSSxHQUZBLEVBQWUsS0FBSyxNQUFNLEVBQUssRUFBSyxLQUFLLEVBQU0sRUFBSyxNQUFNLEVBQU8sRUFBSyxPQUFPLEVBQVEsRUFBSyxRQUFRLEVBQU0sRUFBSyxNQUFNLEVBQUssRUFBSyxLQUFLLEVBQU0sU0FBVSxFQUFRLEdBQVksR0FBSSxNQUFjLEVBQVMsT0FBTyxVQUFVLGNBQWUsSUFBYyxNQUFWLEVBQWlCLEtBQU0sSUFBSSxVQUFhLEtBQUssR0FBSSxLQUFPLEdBQWEsRUFBTyxLQUFLLEVBQVEsS0FBUyxFQUFPLEtBQUssRUFBVyxLQUFPLEVBQUssR0FBTyxFQUFPLEdBQU8sT0FBTyxJQUFRLEdBQU0sS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLElBSW5jLEdBQ0gsS0FBSyxPQUFPLE1BQ1osS0FBSyxPQUFPLE1BQU0sR0FDbEIsS0FBSyxPQUFPLE9BQU8sR0FDbkIsS0FBSyxPQUFPLE9BQU8sR0FDbkIsS0FBSyxNQUFNLFVBQVksS0FBSyxPQUFPLFNBQ25DLEdBQVUsS0FBSyxPQUFPLE9BQ3RCLEtBQUssTUFBTSxNQVNaLE9BTEMsR0FESSxJQUFTLEVBQ0YsS0FBSyxtQkFFTCxFQUlYLE1BQU0sY0FBYyxTQUFVLE1BQU0sWUFBYyxHQUFRLE1BQU8sRUFBZSxRQUFTLEVBQVUsWUFBYSxLQUFLLGdCQUFpQixXQUFZLEtBQUssaUJBQ3RKLEtBQUssTUFBTSxZQU1mLFFBQU8sUUFBVSxPQUFPOzs7Ozs7QUM3SXhCLEdBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FDaEgsT0FBUyxRQUFRLFVBT2QsWUFBYyxNQUFNLGFBQWEsWUFBYSxjQUVqRCxXQUNDLE1BQU8sTUFBTSxVQUFVLE9BQ3ZCLGdCQUFpQixNQUFNLFVBQVUsT0FBTyxZQUd6QyxRQUNDLFNBQ0MsV0FBWSxJQUNaLFNBQVUsT0FFWCxVQUNDLFdBQVksVUFDWixNQUFPLEtBQ1AsV0FBWSxhQUNaLFFBQVMsUUFDVCxPQUFRLFFBRVQsS0FDQyxRQUFTLGVBQ1QsTUFBTyxHQUNQLE9BQVEsR0FDUixPQUFRLGVBQ1IsUUFBUyxFQUNULGFBQWMsRUFDZCxXQUFZLFlBSWQsT0FBUSxXQUVQLE1BQ0MsT0FBTSxjQUFjLE9BQVEsT0FBUSxLQUFLLE9BQU8sUUFBUyxLQUFLLE1BQU0sUUFDbkUsTUFBTSxjQUFjLE9BQVEsTUFBTyxLQUFLLE9BQU8sS0FDOUMsTUFBTSxjQUFjLFFBQVMsT0FBUSxLQUFLLE9BQU8sVUFBWSxNQUFPLEtBQUssTUFBTSxnQkFBZ0IsU0FFaEcsS0FBSyxNQUFNLGdCQUFpQixnQkFNaEMsUUFBTyxRQUFVLE9BQU87Ozs7OztBQ25DeEIsR0FBSSxPQUEyQixtQkFBWCxRQUF5QixPQUFjLE1BQXNCLG1CQUFYLFFBQXlCLE9BQWMsTUFBSSxLQUNoSCxPQUFTLFFBQVEsVUFDakIsRUFBSSxRQUFRLGNBRVQsVUFBWSxFQUVaLE1BQVEsTUFBTSxhQUFhLFlBQWEsUUFDM0MsV0FDQyxJQUFLLE1BQU0sVUFBVSxRQUd0QixPQUNDLFFBQ0MsS0FDQyxVQUFXLGNBRVosbUhBQ0MsT0FBUSxFQUFHLFFBQVMsR0FFckIsS0FDQyxPQUFRLE9BQ1IsU0FBVSxRQUVYLElBQ0MsY0FBZSxPQUloQixvQkFDQyxVQUFXLFNBQ1gsVUFBVyxFQUNYLFdBQVksb0JBR2IsMkJBQ0MsVUFBVyxTQUNYLFVBQVcsS0FHWixvQkFDQyxVQUFXLFNBQ1gsVUFBVyxJQUNYLFdBQVksb0JBR2IsMkJBQ0MsVUFBVyxTQUNYLFVBQVcsR0FPWixtQkFDQyxTQUFVLFdBQ1YsS0FBTSxPQUNOLFdBQVksa0JBR2IsMEJBQ0MsU0FBVSxXQUNWLEtBQU0sTUFHUCxtQkFDQyxTQUFVLFdBQ1YsS0FBTSxLQUNOLFdBQVksa0JBR2IsMEJBQ0MsU0FBVSxXQUNWLEtBQU0sU0FPUCxtQkFDQyxTQUFVLFdBQ1YsS0FBTSxRQUNOLFdBQVksa0JBR2IsMEJBQ0MsU0FBVSxXQUNWLEtBQU0sTUFHUCxtQkFDQyxTQUFVLFdBQ1YsS0FBTSxLQUNOLFdBQVksa0JBR2IsMEJBQ0MsU0FBVSxXQUNWLEtBQU0sVUFJVCxPQUFRLFdBQ1AsR0FBSSxHQUFPLEtBQUssTUFBTSxFQUFNLFNBQVUsRUFBUSxHQUFZLEdBQUksTUFBYyxFQUFTLE9BQU8sVUFBVSxjQUFlLElBQWMsTUFBVixFQUFpQixLQUFNLElBQUksVUFBYSxLQUFLLEdBQUksS0FBTyxHQUFhLEVBQU8sS0FBSyxFQUFRLEtBQVMsRUFBTyxLQUFLLEVBQVcsS0FBTyxFQUFLLEdBQU8sRUFBTyxHQUFPLE9BQU8sSUFBUSxNQUNqUyxFQUFLLEtBQUssYUFFWCxPQUNDLE9BQU0sY0FBYyxNQUFPLE1BQU0sVUFBVSxHQUFJLEdBQU0sR0FDcEQsTUFBTSxjQUFjLE9BQU8sT0FBUSxjQUFlLElBQUksRUFBSSxNQUFPLEVBQUUsS0FBSyxNQUFNLE9BQVEsS0FBSyxNQUFNLE9BQ2pHLEtBQUssTUFBTSxXQUtkLFlBQWEsV0FDWixNQUFPLFNBQVUsY0FJbkIsUUFBTyxRQUFVOzs7OztBQ3hJakIsR0FBSSxTQUVILE9BQVMsUUFBTyxTQUVoQixNQUFRLFFBQU8sUUFFZixPQUFTLE1BQU8sT0FFaEIsTUFBUSxNQUFPLFFBRWYsTUFBUSxNQUFPLE9BRWYsUUFBVSxRQUFTLFFBRW5CLE9BQ0MsTUFBTyxPQUNQLFFBQVMsU0FJVixlQUNDLGNBQWUsY0FHaEIsc0JBQ0MsYUFBYyxNQUNkLE1BQU8sR0FDUCxPQUFRLEdBQ1IsWUFBYSxHQUNiLE1BQU8sT0FDUCxXQUFZLFdBSWIsS0FDQyxhQUFjLEVBQ2QsUUFBUyxXQUNULFdBQVksV0FJYixPQUFTLE1BQU8sUUFDaEIsUUFDQyxhQUFjLFVBQ2QsS0FBTSxVQUNOLFlBQWEsVUFDYixNQUFPLE9BQ1AsU0FBVSxPQUNWLEtBQU0sVUFDTixVQUFXLE9BQ1gsY0FBZSxPQUNmLFNBQVUsVUFDVixjQUFlLFVBQ2YsZ0JBQWlCLE9BQ2pCLE1BQU8sVUFDUCxhQUFjLFdBR2YsT0FDQyxLQUFNLHlFQUNOLE1BQU8sK0JBQ1AsS0FBTSxxQ0FJUCxPQUNDLE1BQU8sT0FDUCxVQUFXLE9BQ1gsV0FBWSxPQUNaLE9BQVEsb0JBQ1IsU0FBVSxHQUNWLFFBQVMsWUFHVixRQUNDLGFBQWMsRUFDZCxnQkFBaUIsT0FDakIsU0FBVSxHQUNWLE9BQVEsR0FDUixNQUFPLE9BQ1AsT0FBUSxvQkFDUixRQUFTLFVBQ1QsU0FBVSxHQUdYLFVBQ0MsWUFBYSxJQUdkLFlBQ0MsT0FBUSxxQkFHVCxZQUNDLE9BQVEsb0JBQ1IsTUFBTyxPQUNQLFFBQVMsUUFDVCxTQUFVLEdBQ1YsT0FBUSxZQUNSLFFBQVMsR0FPWCxRQUFPLEtBQ04sT0FDQyxLQUFNLFlBQWMsT0FBTyxNQUFNLEtBQ2pDLE1BQU8sT0FBTyxPQUFPLE9BRXRCLEdBQ0MsTUFBTyxPQUFPLE9BQU8sS0FDckIsZUFBZ0IsUUFFakIsV0FDQyxlQUFnQixhQUVqQixJQUNDLFNBQVUsSUFFWCxJQUNDLE1BQU8sT0FBTyxPQUFPLEtBQ3JCLFNBQVUsSUFFWCxJQUNDLFNBQVUsSUFFWCxjQUNDLFdBQVksT0FBTyxNQUFNLE1BQ3pCLFdBQVksTUFJZCxPQUFPLFFBQVU7OztBQ3RJakIsT0FBTyxRQUFVLFdBRWhCLElBQU0sR0FERixNQUNNLEVBQUksRUFBRyxFQUFJLFVBQVUsU0FBVSxFQUNwQyxVQUFVLElBQ2IsT0FBTyxPQUFPLEVBQUssVUFBVSxHQUcvQixPQUFPOzs7QUNFUixPQUFPLFFBQVEsV0FBYSxRQUFROzs7O0FDSXBDLFlBSUEsU0FBUyxpQkFBZ0IsRUFBVSxHQUFlLEtBQU0sWUFBb0IsSUFBZ0IsS0FBTSxJQUFJLFdBQVUscUNBRmhILFFBQVEsWUFBYSxDQUlyQixJQUFJLFdBQVksUUFBUSxzQkFFcEIsUUFBVSxNQTBGVixXQUFhLFdBQ2YsUUFBUyxLQUNQLGdCQUFnQixLQUFNLEdBRXRCLEtBQUssY0FDTCxLQUFLLGdCQUFpQixFQUN0QixLQUFLLGNBQ0wsS0FBSyxjQUNMLEtBQUssUUFBVSxFQTRHakIsTUFwR0EsR0FBVyxVQUFVLFNBQVcsU0FBa0IsR0FDaEQsR0FBSSxHQUFLLFFBQVUsS0FBSyxTQUV4QixPQURBLE1BQUssV0FBVyxHQUFNLEVBQ2YsR0FPVCxFQUFXLFVBQVUsV0FBYSxTQUFvQixHQUNuRCxLQUFLLFdBQVcsR0FBbUssT0FBcEksZUFBekIsUUFBUSxJQUFJLFNBQTRCLFdBQVUsRUFBTywwRUFBMkUsR0FBTSxXQUFVLFNBQ3BLLE1BQUssV0FBVyxJQVN6QixFQUFXLFVBQVUsUUFBVSxTQUFpQixHQUM3QyxLQUFLLGVBQThKLE9BQXBILGVBQXpCLFFBQVEsSUFBSSxTQUE0QixXQUFVLEVBQU8sK0RBQWlFLFdBQVUsRUFDM0osS0FBSyxHQUFJLEdBQUssRUFBRyxFQUFLLEVBQUksT0FBUSxJQUFNLENBQ3RDLEdBQUksR0FBSyxFQUFJLEVBQ1QsTUFBSyxXQUFXLEdBQ2pCLEtBQUssV0FBVyxHQUE4SyxPQUEvSSxlQUF6QixRQUFRLElBQUksU0FBNEIsV0FBVSxFQUFPLGdGQUFzRixHQUFNLFdBQVUsSUFHdkwsS0FBSyxXQUFXLEdBQWdLLE9BQWpJLGVBQXpCLFFBQVEsSUFBSSxTQUE0QixXQUFVLEVBQU8sdUVBQXdFLEdBQU0sV0FBVSxHQUN4SyxLQUFLLGdCQUFnQixNQVF6QixFQUFXLFVBQVUsU0FBVyxTQUFrQixHQUM5QyxLQUFLLGVBQTBDLGVBQXpCLFFBQVEsSUFBSSxTQUE0QixXQUFVLEVBQU8sd0VBQTBFLFdBQVUsR0FBUyxPQUM5SyxLQUFLLGtCQUFrQixFQUN2QixLQUNFLElBQUssR0FBSSxLQUFNLE1BQUssV0FDZCxLQUFLLFdBQVcsSUFHcEIsS0FBSyxnQkFBZ0IsR0FFdkIsUUFDQSxLQUFLLHFCQVFULEVBQVcsVUFBVSxjQUFnQixXQUNuQyxNQUFPLE1BQUssZ0JBVWQsRUFBVyxVQUFVLGdCQUFrQixTQUF5QixHQUM5RCxLQUFLLFdBQVcsSUFBTSxFQUN0QixLQUFLLFdBQVcsR0FBSSxLQUFLLGlCQUN6QixLQUFLLFdBQVcsSUFBTSxHQVN4QixFQUFXLFVBQVUsa0JBQW9CLFNBQTJCLEdBQ2xFLElBQUssR0FBSSxLQUFNLE1BQUssV0FDbEIsS0FBSyxXQUFXLElBQU0sRUFDdEIsS0FBSyxXQUFXLElBQU0sQ0FFeEIsTUFBSyxnQkFBa0IsRUFDdkIsS0FBSyxnQkFBaUIsR0FTeEIsRUFBVyxVQUFVLGlCQUFtQixpQkFDL0IsTUFBSyxnQkFDWixLQUFLLGdCQUFpQixHQUdqQixJQUdULFFBQU8sUUFBVTs7Ozs7O0FDM05qQixZQWFBLElBQUksV0FBWSxTQUFVLEVBQVcsRUFBUSxFQUFHLEVBQUcsRUFBRyxFQUFHLEVBQUcsR0FDMUQsR0FBNkIsZUFBekIsUUFBUSxJQUFJLFVBQ0MsU0FBWCxFQUNGLEtBQU0sSUFBSSxPQUFNLCtDQUlwQixLQUFLLEVBQVcsQ0FDZCxHQUFJLEVBQ0osSUFBZSxTQUFYLEVBQ0YsRUFBUSxHQUFJLE9BQU0scUlBQ2IsQ0FDTCxHQUFJLElBQVEsRUFBRyxFQUFHLEVBQUcsRUFBRyxFQUFHLEdBQ3ZCLEVBQVcsQ0FDZixHQUFRLEdBQUksT0FBTSx3QkFBMEIsRUFBTyxRQUFRLE1BQU8sV0FDaEUsTUFBTyxHQUFLLFFBS2hCLEtBREEsR0FBTSxZQUFjLEVBQ2QsR0FJVixRQUFPLFFBQVU7Ozs7O0FDM0JqQixRQUFTLGdCQUNQLEtBQUssUUFBVSxLQUFLLFlBQ3BCLEtBQUssY0FBZ0IsS0FBSyxlQUFpQixPQXVRN0MsUUFBUyxZQUFXLEdBQ2xCLE1BQXNCLGtCQUFSLEdBR2hCLFFBQVMsVUFBUyxHQUNoQixNQUFzQixnQkFBUixHQUdoQixRQUFTLFVBQVMsR0FDaEIsTUFBc0IsZ0JBQVIsSUFBNEIsT0FBUixFQUdwQyxRQUFTLGFBQVksR0FDbkIsTUFBZSxVQUFSLEVBbFJULE9BQU8sUUFBVSxhQUdqQixhQUFhLGFBQWUsYUFFNUIsYUFBYSxVQUFVLFFBQVUsT0FDakMsYUFBYSxVQUFVLGNBQWdCLE9BSXZDLGFBQWEsb0JBQXNCLEdBSW5DLGFBQWEsVUFBVSxnQkFBa0IsU0FBUyxHQUNoRCxJQUFLLFNBQVMsSUFBVSxFQUFKLEdBQVMsTUFBTSxHQUNqQyxLQUFNLFdBQVUsOEJBRWxCLE9BREEsTUFBSyxjQUFnQixFQUNkLE1BR1QsYUFBYSxVQUFVLEtBQU8sU0FBUyxHQUNyQyxHQUFJLEdBQUksRUFBUyxFQUFLLEVBQU0sRUFBRyxDQU0vQixJQUpLLEtBQUssVUFDUixLQUFLLFlBR00sVUFBVCxLQUNHLEtBQUssUUFBUSxPQUNiLFNBQVMsS0FBSyxRQUFRLFNBQVcsS0FBSyxRQUFRLE1BQU0sUUFBUyxDQUVoRSxHQURBLEVBQUssVUFBVSxHQUNYLFlBQWMsT0FDaEIsS0FBTSxFQUVSLE1BQU0sV0FBVSx3Q0FNcEIsR0FGQSxFQUFVLEtBQUssUUFBUSxHQUVuQixZQUFZLEdBQ2QsT0FBTyxDQUVULElBQUksV0FBVyxHQUNiLE9BQVEsVUFBVSxRQUVoQixJQUFLLEdBQ0gsRUFBUSxLQUFLLEtBQ2IsTUFDRixLQUFLLEdBQ0gsRUFBUSxLQUFLLEtBQU0sVUFBVSxHQUM3QixNQUNGLEtBQUssR0FDSCxFQUFRLEtBQUssS0FBTSxVQUFVLEdBQUksVUFBVSxHQUMzQyxNQUVGLFNBR0UsSUFGQSxFQUFNLFVBQVUsT0FDaEIsRUFBTyxHQUFJLE9BQU0sRUFBTSxHQUNsQixFQUFJLEVBQU8sRUFBSixFQUFTLElBQ25CLEVBQUssRUFBSSxHQUFLLFVBQVUsRUFDMUIsR0FBUSxNQUFNLEtBQU0sT0FFbkIsSUFBSSxTQUFTLEdBQVUsQ0FHNUIsSUFGQSxFQUFNLFVBQVUsT0FDaEIsRUFBTyxHQUFJLE9BQU0sRUFBTSxHQUNsQixFQUFJLEVBQU8sRUFBSixFQUFTLElBQ25CLEVBQUssRUFBSSxHQUFLLFVBQVUsRUFJMUIsS0FGQSxFQUFZLEVBQVEsUUFDcEIsRUFBTSxFQUFVLE9BQ1gsRUFBSSxFQUFPLEVBQUosRUFBUyxJQUNuQixFQUFVLEdBQUcsTUFBTSxLQUFNLEdBRzdCLE9BQU8sR0FHVCxhQUFhLFVBQVUsWUFBYyxTQUFTLEVBQU0sR0FDbEQsR0FBSSxFQUVKLEtBQUssV0FBVyxHQUNkLEtBQU0sV0FBVSw4QkF1QmxCLElBckJLLEtBQUssVUFDUixLQUFLLFlBSUgsS0FBSyxRQUFRLGFBQ2YsS0FBSyxLQUFLLGNBQWUsRUFDZixXQUFXLEVBQVMsVUFDcEIsRUFBUyxTQUFXLEdBRTNCLEtBQUssUUFBUSxHQUdULFNBQVMsS0FBSyxRQUFRLElBRTdCLEtBQUssUUFBUSxHQUFNLEtBQUssR0FHeEIsS0FBSyxRQUFRLElBQVMsS0FBSyxRQUFRLEdBQU8sR0FOMUMsS0FBSyxRQUFRLEdBQVEsRUFTbkIsU0FBUyxLQUFLLFFBQVEsTUFBVyxLQUFLLFFBQVEsR0FBTSxPQUFRLENBQzlELEdBQUksRUFJRixHQUhHLFlBQVksS0FBSyxlQUdoQixhQUFhLG9CQUZiLEtBQUssY0FLUCxHQUFLLEVBQUksR0FBSyxLQUFLLFFBQVEsR0FBTSxPQUFTLElBQzVDLEtBQUssUUFBUSxHQUFNLFFBQVMsRUFDNUIsUUFBUSxNQUFNLG1JQUdBLEtBQUssUUFBUSxHQUFNLFFBQ0osa0JBQWxCLFNBQVEsT0FFakIsUUFBUSxTQUtkLE1BQU8sT0FHVCxhQUFhLFVBQVUsR0FBSyxhQUFhLFVBQVUsWUFFbkQsYUFBYSxVQUFVLEtBQU8sU0FBUyxFQUFNLEdBTTNDLFFBQVMsS0FDUCxLQUFLLGVBQWUsRUFBTSxHQUVyQixJQUNILEdBQVEsRUFDUixFQUFTLE1BQU0sS0FBTSxZQVZ6QixJQUFLLFdBQVcsR0FDZCxLQUFNLFdBQVUsOEJBRWxCLElBQUksSUFBUSxDQWNaLE9BSEEsR0FBRSxTQUFXLEVBQ2IsS0FBSyxHQUFHLEVBQU0sR0FFUCxNQUlULGFBQWEsVUFBVSxlQUFpQixTQUFTLEVBQU0sR0FDckQsR0FBSSxHQUFNLEVBQVUsRUFBUSxDQUU1QixLQUFLLFdBQVcsR0FDZCxLQUFNLFdBQVUsOEJBRWxCLEtBQUssS0FBSyxVQUFZLEtBQUssUUFBUSxHQUNqQyxNQUFPLEtBTVQsSUFKQSxFQUFPLEtBQUssUUFBUSxHQUNwQixFQUFTLEVBQUssT0FDZCxFQUFXLEdBRVAsSUFBUyxHQUNSLFdBQVcsRUFBSyxXQUFhLEVBQUssV0FBYSxRQUMzQyxNQUFLLFFBQVEsR0FDaEIsS0FBSyxRQUFRLGdCQUNmLEtBQUssS0FBSyxpQkFBa0IsRUFBTSxPQUUvQixJQUFJLFNBQVMsR0FBTyxDQUN6QixJQUFLLEVBQUksRUFBUSxJQUFNLEdBQ3JCLEdBQUksRUFBSyxLQUFPLEdBQ1gsRUFBSyxHQUFHLFVBQVksRUFBSyxHQUFHLFdBQWEsRUFBVyxDQUN2RCxFQUFXLENBQ1gsT0FJSixHQUFlLEVBQVgsRUFDRixNQUFPLEtBRVcsS0FBaEIsRUFBSyxRQUNQLEVBQUssT0FBUyxRQUNQLE1BQUssUUFBUSxJQUVwQixFQUFLLE9BQU8sRUFBVSxHQUdwQixLQUFLLFFBQVEsZ0JBQ2YsS0FBSyxLQUFLLGlCQUFrQixFQUFNLEdBR3RDLE1BQU8sT0FHVCxhQUFhLFVBQVUsbUJBQXFCLFNBQVMsR0FDbkQsR0FBSSxHQUFLLENBRVQsS0FBSyxLQUFLLFFBQ1IsTUFBTyxLQUdULEtBQUssS0FBSyxRQUFRLGVBS2hCLE1BSnlCLEtBQXJCLFVBQVUsT0FDWixLQUFLLFdBQ0UsS0FBSyxRQUFRLFVBQ2IsTUFBSyxRQUFRLEdBQ2YsSUFJVCxJQUF5QixJQUFyQixVQUFVLE9BQWMsQ0FDMUIsSUFBSyxJQUFPLE1BQUssUUFDSCxtQkFBUixHQUNKLEtBQUssbUJBQW1CLEVBSTFCLE9BRkEsTUFBSyxtQkFBbUIsa0JBQ3hCLEtBQUssV0FDRSxLQUtULEdBRkEsRUFBWSxLQUFLLFFBQVEsR0FFckIsV0FBVyxHQUNiLEtBQUssZUFBZSxFQUFNLE9BRzFCLE1BQU8sRUFBVSxRQUNmLEtBQUssZUFBZSxFQUFNLEVBQVUsRUFBVSxPQUFTLEdBSTNELGNBRk8sTUFBSyxRQUFRLEdBRWIsTUFHVCxhQUFhLFVBQVUsVUFBWSxTQUFTLEdBQzFDLEdBQUksRUFPSixPQUhFLEdBSEcsS0FBSyxTQUFZLEtBQUssUUFBUSxHQUUxQixXQUFXLEtBQUssUUFBUSxLQUN4QixLQUFLLFFBQVEsSUFFZCxLQUFLLFFBQVEsR0FBTSxZQUk3QixhQUFhLGNBQWdCLFNBQVMsRUFBUyxHQUM3QyxHQUFJLEVBT0osT0FIRSxHQUhHLEVBQVEsU0FBWSxFQUFRLFFBQVEsR0FFaEMsV0FBVyxFQUFRLFFBQVEsSUFDNUIsRUFFQSxFQUFRLFFBQVEsR0FBTSxPQUp0Qjs7O0FDOVFWLFFBQVMsbUJBQ0wsVUFBVyxFQUNQLGFBQWEsT0FDYixNQUFRLGFBQWEsT0FBTyxPQUU1QixXQUFhLEdBRWIsTUFBTSxRQUNOLGFBSVIsUUFBUyxjQUNMLElBQUksU0FBSixDQUdBLEdBQUksR0FBVSxXQUFXLGdCQUN6QixXQUFXLENBR1gsS0FEQSxHQUFJLEdBQU0sTUFBTSxPQUNWLEdBQUssQ0FHUCxJQUZBLGFBQWUsTUFDZixXQUNTLFdBQWEsR0FDbEIsYUFBYSxZQUFZLEtBRTdCLFlBQWEsR0FDYixFQUFNLE1BQU0sT0FFaEIsYUFBZSxLQUNmLFVBQVcsRUFDWCxhQUFhLElBaUJqQixRQUFTLE1BQUssRUFBSyxHQUNmLEtBQUssSUFBTSxFQUNYLEtBQUssTUFBUSxFQVlqQixRQUFTLFNBcEVULEdBQUksU0FBVSxPQUFPLFdBQ2pCLFNBQ0EsVUFBVyxFQUNYLGFBQ0EsV0FBYSxFQW9DakIsU0FBUSxTQUFXLFNBQVUsR0FDekIsR0FBSSxHQUFPLEdBQUksT0FBTSxVQUFVLE9BQVMsRUFDeEMsSUFBSSxVQUFVLE9BQVMsRUFDbkIsSUFBSyxHQUFJLEdBQUksRUFBRyxFQUFJLFVBQVUsT0FBUSxJQUNsQyxFQUFLLEVBQUksR0FBSyxVQUFVLEVBR2hDLE9BQU0sS0FBSyxHQUFJLE1BQUssRUFBSyxJQUNKLElBQWpCLE1BQU0sUUFBaUIsVUFDdkIsV0FBVyxXQUFZLElBUy9CLEtBQUssVUFBVSxJQUFNLFdBQ2pCLEtBQUssSUFBSSxNQUFNLEtBQU0sS0FBSyxRQUU5QixRQUFRLE1BQVEsVUFDaEIsUUFBUSxTQUFVLEVBQ2xCLFFBQVEsT0FDUixRQUFRLFFBQ1IsUUFBUSxRQUFVLEdBQ2xCLFFBQVEsWUFJUixRQUFRLEdBQUssS0FDYixRQUFRLFlBQWMsS0FDdEIsUUFBUSxLQUFPLEtBQ2YsUUFBUSxJQUFNLEtBQ2QsUUFBUSxlQUFpQixLQUN6QixRQUFRLG1CQUFxQixLQUM3QixRQUFRLEtBQU8sS0FFZixRQUFRLFFBQVUsU0FBVSxHQUN4QixLQUFNLElBQUksT0FBTSxxQ0FJcEIsUUFBUSxJQUFNLFdBQWMsTUFBTyxLQUNuQyxRQUFRLE1BQVEsU0FBVSxHQUN0QixLQUFNLElBQUksT0FBTSxtQ0FFcEIsUUFBUSxNQUFRLFdBQWEsTUFBTzs7O0FDeEVwQyxZQW9CQSxJQUFJLFdBQVksU0FBUyxHQUN2QixHQUNJLEdBREEsSUFFSixNQUFNLFlBQWUsVUFBVyxNQUFNLFFBQVEsR0FDNUMsS0FBTSxJQUFJLE9BQU0sOENBRWxCLEtBQUssSUFBTyxHQUNMLEVBQUksZUFBZSxLQUd4QixFQUFJLEdBQU8sRUFFYixPQUFPLEdBR1QsUUFBTyxRQUFVOzs7O0FDcERqQixZQUVBLElBQUksT0FBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FFN0csTUFBUSxRQUFRLGNBQ2hCLFlBQWMsUUFBUSxzQkFFdEIsV0FBYSxNQUFNLGFBQ3JCLFlBQWEsYUFFYixnQkFBaUIsV0FDZixNQUFPLE1BQUssbUJBR2Qsa0JBQW1CLFdBQ2pCLEtBQUssYUFBZSxZQUFZLFVBQVUsS0FBSyxZQUdqRCxxQkFBc0IsV0FDcEIsS0FBSyxhQUFhLFVBR3BCLFVBQVcsV0FDVCxLQUFLLFNBQVMsS0FBSyxvQkFHckIsZ0JBQWlCLFdBQ2YsT0FDRSxPQUFRLFlBQVksbUJBSXhCLE9BQVEsV0FDTixNQUFPLE9BQU0sY0FBYyxPQUFTLE9BQ2hDLGNBQ0UsTUFBTyxLQUFLLE1BQU0sYUFNNUIsUUFBTyxRQUFVOzs7Ozs7QUN6Q2pCLFlBRUEsSUFBSSx1QkFBd0IsUUFBUSwrQkFDaEMsU0FBVyxRQUFRLGVBRW5CLE1BQTJCLG1CQUFYLFFBQXlCLE9BQWMsTUFBc0IsbUJBQVgsUUFBeUIsT0FBYyxNQUFJLEtBRTdHLGVBQWlCLFNBQXdCLEVBQVcsRUFBVSxHQUNoRSxHQUFLLEdBQWEsRUFBbEIsQ0FJQSxHQUFJLEdBQWdCLFNBQVMsaUJBQWlCLEVBQVcsRUFBTyxPQUM1RCxFQUFrQixzQkFBc0IsRUFFNUMsT0FBTyxHQUFXLElBQU0sRUFBa0IsTUFHeEMsTUFBUSxNQUFNLGFBQ2hCLFlBQWEsUUFFYixXQUNFLE1BQU8sTUFBTSxVQUFVLE9BQ3ZCLGNBQWUsTUFBTSxVQUFVLFFBR2pDLGdCQUFpQixXQUNmLE9BQ0UsY0FBZSxLQUluQixhQUFjLFNBQXNCLEdBQ2xDLEdBQUksR0FBUSxJQUVaLE9BQU8sUUFBTyxLQUFLLEdBQVEsT0FBTyxTQUFVLEVBQWEsR0FDdkQsR0FBSSxHQUFRLEVBQU8sRUFFbkIsSUFBaUIsaUJBQWIsRUFDRixHQUFlLEVBQU0sdUJBQXVCLE9BQ3ZDLENBQ0wsR0FBSSxJQUFvQixFQUFNLE1BQU0sY0FBZ0IsRUFBTSxNQUFNLGNBQWdCLElBQU0sSUFBTSxDQUM1RixJQUFlLGVBQWUsRUFBTyxFQUFrQixHQUd6RCxNQUFPLElBQ04sS0FHTCx1QkFBd0IsU0FBZ0MsR0FDdEQsR0FBSSxHQUFTLEtBRVQsRUFBc0IsS0FBSywwQkFDM0IsRUFBbUIsRUFPdkIsT0FMQSxRQUFPLEtBQUssR0FBZSxRQUFRLFNBQVUsR0FDM0MsR0FBSSxHQUFnQixFQUFvQixHQUFTLEVBQW9CLEdBQVMsQ0FDOUUsSUFBb0IsVUFBWSxFQUFnQixJQUFNLEVBQU8sYUFBYSxFQUFjLElBQVUsTUFHN0YsR0FHVCx3QkFBeUIsV0FDdkIsR0FBSSxLQU9KLE9BTkksTUFBSyxTQUFXLEtBQUssUUFBUSxjQUMvQixPQUFPLEtBQUssS0FBSyxRQUFRLGNBQWMsUUFBUSxTQUFXLEdBQ3hELEVBQW9CLEdBQVMsS0FBSyxRQUFRLGFBQWEsR0FBTyxPQUM3RCxLQUFLLE9BR0gsR0FHVCxPQUFRLFdBQ04sSUFBSyxLQUFLLE1BQU0sTUFDZCxNQUFPLEtBR1QsSUFBSSxHQUFTLEtBQUssYUFBYSxLQUFLLE1BQU0sTUFFMUMsT0FBTyxPQUFNLGNBQWMsU0FBVyx5QkFBMkIsT0FBUSxPQUk3RSxRQUFPLFFBQVU7Ozs7O0FDckZqQixZQUVBLElBQUksc0JBQXVCLFFBQVEsU0FFL0Isb0JBQXNCLHFCQUFxQixXQUFhLFFBQVUsT0FBTyxZQUFjLFNBQVUsR0FDbkcsTUFBTyxRQUFPLFdBQVcsR0FHM0IsUUFBTyxTQUNMLGNBQWUsV0FDYixNQUFzQyxrQkFBeEIsc0JBR2hCLFdBQVksU0FBb0IsR0FDOUIsTUFBTyxxQkFBb0IsSUFHN0IsY0FBZSxTQUF1QixHQUNwQyxvQkFBc0I7OztBQ2xCMUIsWUFFQSxJQUFJLHVCQUF3QixTQUErQixFQUFPLEdBRWhFLE1BREEsR0FBUyxHQUFVLEdBQ1osT0FBTyxLQUFLLEdBQU8sSUFBSSxTQUFVLEdBQ3RDLE1BQU8sR0FBUyxFQUFXLEtBQU8sRUFBTSxHQUFZLE1BQ25ELEtBQUssTUFHVixRQUFPLFFBQVU7OztBQ1RqQixZQU1BLFNBQVMsaUJBQWdCLEVBQVUsR0FBZSxLQUFNLFlBQW9CLElBQWdCLEtBQU0sSUFBSSxXQUFVLHFDQUVoSCxRQUFTLFdBQVUsRUFBVSxHQUFjLEdBQTBCLGtCQUFmLElBQTRDLE9BQWYsRUFBdUIsS0FBTSxJQUFJLFdBQVUsaUVBQW9FLEdBQWUsR0FBUyxVQUFZLE9BQU8sT0FBTyxHQUFjLEVBQVcsV0FBYSxhQUFlLE1BQU8sRUFBVSxZQUFZLEVBQU8sVUFBVSxFQUFNLGNBQWMsS0FBZSxJQUFZLE9BQU8sZUFBaUIsT0FBTyxlQUFlLEVBQVUsR0FBYyxFQUFTLFVBQVksR0FOamUsR0FBSSxjQUFlLFdBQWUsUUFBUyxHQUFpQixFQUFRLEdBQVMsSUFBSyxHQUFJLEdBQUksRUFBRyxFQUFJLEVBQU0sT0FBUSxJQUFLLENBQUUsR0FBSSxHQUFhLEVBQU0sRUFBSSxHQUFXLFdBQWEsRUFBVyxhQUFjLEVBQU8sRUFBVyxjQUFlLEVBQVUsU0FBVyxLQUFZLEVBQVcsVUFBVyxHQUFNLE9BQU8sZUFBZSxFQUFRLEVBQVcsSUFBSyxJQUFpQixNQUFPLFVBQVUsRUFBYSxFQUFZLEdBQWlKLE1BQTlILElBQVksRUFBaUIsRUFBWSxVQUFXLEdBQWlCLEdBQWEsRUFBaUIsRUFBYSxHQUFxQixNQUU3aEIsS0FBTyxTQUFhLEVBQUksRUFBSyxHQUFxQyxJQUE5QixHQUFJLElBQVMsRUFBd0IsR0FBUSxDQUFFLEdBQUksR0FBUyxFQUFJLEVBQVcsRUFBSyxFQUFXLENBQUssR0FBTyxFQUFTLEVBQVMsT0FBVyxHQUFTLEVBQXNCLE9BQVgsSUFBaUIsRUFBUyxTQUFTLFVBQVcsSUFBSSxHQUFPLE9BQU8seUJBQXlCLEVBQVEsRUFBVyxJQUFhLFNBQVQsRUFBSixDQUFpTixHQUFJLFNBQVcsR0FBUSxNQUFPLEdBQUssS0FBZ0IsSUFBSSxHQUFTLEVBQUssR0FBSyxPQUFlLFVBQVgsRUFBK0IsT0FBb0IsRUFBTyxLQUFLLEdBQXBVLEdBQUksR0FBUyxPQUFPLGVBQWUsRUFBUyxJQUFlLE9BQVgsRUFBbUIsTUFBTyxPQUFvQixHQUFLLEVBQVEsRUFBTSxFQUFVLEVBQU0sRUFBVSxHQUFTLElBTXRkLGNBQWdCLFFBQVEsdUJBQ3hCLFlBQWMsUUFBUSxxQkFFdEIsa0JBQW9CLFNBQTJCLEdBQ2pELEdBQUksR0FBaUIsU0FBVyxHQUc5QixRQUFTLEtBQ1AsZ0JBQWdCLEtBQU0sR0FFdEIsS0FBSyxPQUFPLGVBQWUsRUFBZSxXQUFZLGNBQWUsTUFBTSxNQUFNLEtBQU0sV0FFdkYsS0FBSyxNQUFRLEtBQUssVUFDbEIsS0FBSyxNQUFNLHFCQUVQLEVBQWUsa0JBQ2pCLEtBQUssZ0JBQWtCLEVBQWUsaUJBb0MxQyxNQS9DQSxXQUFVLEVBQWdCLEdBc0IxQixhQUFhLElBQ1gsSUFBSyxTQUNMLE1BQU8sV0FDTCxHQUFJLEdBQWtCLEtBQUssT0FBTyxlQUFlLEVBQWUsV0FBWSxTQUFVLE1BQU0sS0FBSyxLQUNqRyxPQUFPLGVBQWMsS0FBTSxNQUc3QixJQUFLLHVCQUNMLE1BQU8sV0FDRCxLQUFLLE9BQU8sZUFBZSxFQUFlLFdBQVksdUJBQXdCLE9BQ2hGLEtBQUssT0FBTyxlQUFlLEVBQWUsV0FBWSx1QkFBd0IsTUFBTSxLQUFLLE1BR3ZGLEtBQUssd0JBQ1AsS0FBSyx1QkFBdUIsU0FHMUIsS0FBSyxtQ0FDUCxPQUFPLEtBQUssS0FBSyxtQ0FBbUMsUUFBUSxTQUFVLEdBQ3BFLEtBQUssa0NBQWtDLEdBQU8sVUFDN0MsVUFLRixHQUNOLEVBYUgsT0FYQSxRQUFPLG9CQUFvQixFQUFrQixXQUFXLFFBQVEsU0FBVSxHQUN4RSxJQUFLLEVBQWUsVUFBVSxlQUFlLEdBQU0sQ0FDakQsR0FBSSxHQUFhLE9BQU8seUJBQXlCLEVBQWtCLFVBQVcsRUFDOUUsUUFBTyxlQUFlLEVBQWUsVUFBVyxFQUFLLE1BSXpELEVBQWUsWUFBYyxFQUFrQixhQUFlLEVBQWtCLE1BQVEsWUFFeEYsRUFBZSxnQkFBa0IsWUFBWSxlQUFlLEdBRXJELEVBR1QsUUFBTyxRQUFVOzs7QUMvRWpCLFlBRUEsSUFBSSxhQUFjLFNBQXFCLEdBQ3JDLE1BQXNCLFFBQWYsR0FBc0MsU0FBZixFQUEyQixPQUFTLEVBQVcsV0FHL0UsUUFBTyxRQUFVOzs7QUNOakIsWUFFQSxJQUFJLGFBQWMsUUFBUSxtQkFFdEIsWUFBYyxVQUFXLFNBQVUsVUFFbkMsU0FBVyxTQUFrQixFQUFPLEVBQVksR0FDbEQsR0FBa0MsS0FBOUIsV0FBVyxRQUFRLEdBQ3JCLEtBQU0sSUFBSSxPQUFNLHlDQUEyQyxFQUFRLElBR3JFLElBQUksR0FBTSxZQUFZLEVBRXRCLFVBQVUsR0FBUyxFQUFNLG1CQUFxQixFQUFNLGtCQUFrQixJQUFRLEVBQU0sa0JBQWtCLEdBQUssSUFHN0csUUFBTyxRQUFVOzs7QUNoQmpCLFlBRUEsSUFBSSxVQUFXLFFBQVEsYUFFdkIsUUFBTyxRQUFVLFNBQVUsR0FDekIsTUFBTyxVQUFTLElBRWxCLE9BQU8sUUFBUSxNQUFRLFFBQVEsc0JBQy9CLE9BQU8sUUFBUSxnQkFBa0IsUUFBUSxrQ0FDekMsT0FBTyxRQUFRLFNBQVcsUUFBUSxlQUNsQyxPQUFPLFFBQVEsVUFBWSxRQUFRLGVBQ25DLE9BQU8sUUFBUSxPQUFTLFFBQVE7OztBQ1hoQyxZQUVBLElBQUksdUJBQXdCLFFBQVEsOEJBQ2hDLFNBQVcsUUFBUSxjQUVuQixxQkFBdUIsUUFBUSxTQUUvQixxQkFBdUIscUJBQXFCLFdBQWEsU0FBUyx3QkFBd0IsZ0JBQWlCLEVBRTNHLGVBQWlCLEVBQ2pCLG9CQUFzQixLQUN0QixrQkFBb0IsV0FFcEIsd0JBQ0Ysb0JBQXNCLFNBQVMsY0FBYyxTQUM3QyxTQUFTLEtBQUssWUFBWSxxQkFHMUIsb0JBQW9CLFlBQWMsZ0JBQzdCLG9CQUFvQixNQUFNLFNBQVMsU0FDdEMsa0JBQW9CLFNBQVMsVUFBWSxhQU03QyxJQUFJLFdBQVksU0FBbUIsRUFBZSxHQUNoRCxHQUFJLEdBQU8sWUFBYyxjQUd6QixJQUZBLGdCQUFrQixHQUViLHFCQUNILE1BQU8sRUFHVCxJQUFJLEdBQU8sSUFBTSxrQkFBb0IsSUFBTSxFQUFPLE9BQVMsT0FBTyxLQUFLLEdBQWUsSUFBSSxTQUFVLEdBQ2xHLEdBQUksR0FBUSxFQUFjLEdBQ3RCLEVBQWdCLFNBQVMsaUJBQWlCLEVBQVcsRUFBTyxPQUM1RCxFQUFrQixzQkFBc0IsRUFBZSxLQUMzRCxPQUFPLEtBQU8sRUFBYSxTQUFXLEVBQWtCLFVBQ3ZELEtBQUssTUFBUSxPQUloQixLQUFLLG9CQUNILEtBQU0sSUFBSSxPQUFNLHFDQUlsQixPQURBLHFCQUFvQixNQUFNLFdBQVcsRUFBTSxvQkFBb0IsTUFBTSxTQUFTLFFBQ3ZFLEVBR1QsUUFBTyxRQUFVOzs7QUNuRGpCLFlBRUEsSUFBSSxlQUNBLDBCQUEyQixFQUUzQixlQUFpQixTQUF3QixHQUMzQyxXQUFXLFFBQVEsU0FBVSxHQUMzQixFQUFTLE1BSVQsVUFBWSxTQUFtQixHQVVqQyxNQVRxQyxLQUFqQyxXQUFXLFFBQVEsSUFDckIsV0FBVyxLQUFLLEdBR2IsMkJBQ0gsT0FBTyxpQkFBaUIsVUFBVyxnQkFDbkMsMEJBQTJCLElBSTNCLE9BQVEsV0FDTixHQUFJLEdBQVEsV0FBVyxRQUFRLEVBQy9CLFlBQVcsT0FBTyxFQUFPLEdBRUMsSUFBdEIsV0FBVyxRQUFnQiwyQkFDN0IsT0FBTyxvQkFBb0IsVUFBVyxnQkFDdEMsMEJBQTJCLEtBTW5DLFFBQU8sU0FDTCxVQUFXOzs7O0FDNUJiLFlBRUEsSUFBSSxzQkFBdUIsUUFBUSxTQUMvQixVQUFZLFFBQVEsY0FFcEIsb0JBQXNCLHNCQUV0QixnQkFBa0IsU0FBVSxLQUFNLE1BQU8sS0FFekMsaUJBQ0YsU0FDRSxVQUFXLFFBQ1gsU0FBVSxNQUNWLHVCQUVFLGFBQWUsSUFBSyxpQkFBa0IsR0FBSSxnQkFDMUMsT0FBUyxJQUFLLGdCQUFpQixHQUFJLGVBQ25DLGdCQUFrQixJQUFLLGtCQUFtQixHQUFJLGlCQUM5QyxpQkFBbUIsSUFBSyxnQkFBaUIsR0FBSSxlQUM3QyxRQUFVLElBQUsseUJBQTBCLEdBQUksd0JBRS9DLG1CQUVFLFlBQ0UsY0FBZSxTQUNmLFlBQWEsUUFFZixTQUNFLE1BQU8sYUFFVCxlQUNFLFFBQVMsWUFDVCxLQUFNLGVBRVIsZ0JBQ0UsY0FBZSxTQUNmLFlBQWEsT0FDYixpQkFBa0IsY0FJeEIsUUFDRSxVQUFXLE9BQ1gsU0FBVSxLQUNWLHVCQUVFLGVBQWlCLElBQUsscUJBQXNCLEdBQUksbUJBQ2hELGFBQWUsSUFBSyxpQkFBa0IsR0FBSSxnQkFDMUMsWUFBYyxJQUFLLHNCQUF1QixHQUFJLG9CQUM5QyxpQkFBbUIsSUFBSyxnQkFBaUIsR0FBSSxlQUM3QyxRQUFVLElBQUssaUJBQWtCLEdBQUksaUJBRXZDLG1CQUVFLGNBQ0UsY0FBZSxTQUNmLFlBQWEsT0FDYixpQkFBa0IsV0FDbEIsZ0JBQWlCLGVBRW5CLFlBQ0UsY0FBZSxTQUNmLFlBQWEsUUFFZixXQUNFLGNBQWUsU0FDZixZQUFhLFFBRWYsU0FDRSxNQUFPLGVBQ1AsZUFBZ0IsdUJBRWxCLGdCQUNFLGNBQWUsU0FDZixZQUFhLE9BQ2IsaUJBQWtCLFdBQ2xCLGdCQUFpQixpQkFJdkIsT0FDRSxVQUFXLE1BQ1gsU0FBVSxLQUVaLFlBQ0UsVUFBVyxXQUNYLFNBQVUsU0FDVix1QkFFRSxhQUFlLElBQUssb0JBQXFCLEdBQUksbUJBQzdDLE9BQVMsSUFBSyxtQkFBb0IsR0FBSSxlQUN0QyxnQkFBa0IsSUFBSyxxQkFBc0IsR0FBSSxvQkFDakQsaUJBQW1CLElBQUssbUJBQW9CLEdBQUksa0JBQ2hELFFBQVUsSUFBSyw0QkFBNkIsR0FBSSwyQkFFbEQsbUJBRUUsWUFDRSxjQUFlLFNBQ2YsWUFBYSxRQUVmLFNBQ0UsTUFBTyxnQkFFVCxlQUNFLEtBQU0sY0FDTixRQUFTLGFBRVgsZ0JBQ0UsY0FBZSxTQUNmLFlBQWEsT0FDYixpQkFBa0IsZUFhdEIsa0JBQ0YsU0FBUyxFQUNULGNBQWMsRUFDZCxhQUFhLEVBQ2IsTUFBTSxFQUNOLFVBQVUsRUFDVixjQUFjLEVBQ2QsWUFBWSxFQUNaLGNBQWMsRUFDZCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFFBQVEsRUFDUixNQUFNLEVBR04sYUFBYSxFQUNiLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsYUFBYSxHQUdYLFlBQ0EseUJBQ0Esc0JBQ0EsWUFDRixVQUFXLEdBQ1gsU0FBVSxHQUdaLElBQUkscUJBQXFCLFVBQVcsQ0FDbEMsU0FBVyxTQUFTLGNBQWMsS0FBSyxNQUloQixTQUFuQixTQUFBLFdBQ0YsU0FBQSxTQUFpQixHQVVuQixLQUFLLEdBTkQsYUFDQSxhQUFlLE9BQU8saUJBQWlCLFNBQVMsZ0JBQWlCLElBSzVELEVBQUksRUFBRyxFQUFJLGFBQWEsVUFDL0IsWUFBYyxhQUFhLEdBQUcsTUFBTSxzQkFERyxLQVF6QyxHQUFJLGlCQUFrQixhQUFlLFlBQVksRUFFakQsWUFBYSxpQkFBbUIsZ0JBQWdCLGlCQUFtQixnQkFBZ0IsaUJBQW1CLFdBR3hHLEdBQUksaUJBQWtCLG1CQUNsQixtQkFBcUIsU0FBNEIsRUFBTyxFQUFJLEdBQzlELE1BQU8sR0FBSyxJQUFNLEVBQUcsZUFFbkIscUJBQXVCLFNBQThCLEdBQ3ZELE1BQU8sR0FBRSxRQUFRLGdCQUFpQixxQkFHaEMsd0JBQTBCLFNBQWlDLEdBQzdELEdBQUksc0JBQXNCLGVBQWUsR0FDdkMsTUFBTyx1QkFBc0IsRUFHL0IsSUFBSSxJQUNGLElBQUsscUJBQXFCLEdBQzFCLEdBQUksRUFDSixvQkFBb0IsR0FNbEIsSUFHRixJQUFLLFdBQVcsVUFBWSxxQkFBcUIsR0FDakQsR0FBSSxXQUFXLFNBQVcsRUFBUyxHQUFHLGNBQWdCLEVBQVMsTUFBTSxJQUNwRSxFQUdDLFlBQVcsdUJBQXlCLFdBQVcsc0JBQXNCLEtBQ3ZFLEVBQXdCLEVBQXNCLE9BQU8sV0FBVyxzQkFBc0IsSUFHeEYsSUFBSSxHQUFrQixVQUFVLEVBQXVCLFNBQVUsR0FDL0QsTUFBSSxHQUFxQixLQUFNLFVBQ3RCLEVBRFQsV0FHSSxDQUVOLE9BQU8sdUJBQXNCLEdBQVksR0FPdkMsdUJBQXlCLFNBQWdDLEdBQzNELEdBQUksR0FBbUIsQ0FrQnZCLE9BaEJBLGdCQUFlLEtBQUssU0FBVSxHQUU1QixNQUFpQyxLQUE3QixFQUFTLFFBQVEsSUFDbkIsRUFBbUIsRUFBaUIsUUFBUSxFQUFRLElBT3BELEVBQW1CLEVBQWlCLE9BQU8sR0FBRyxjQUFnQixFQUFpQixNQUFNLElBRTlFLEdBVlQsU0FjSyxHQU9MLCtCQUFpQyxTQUF3QyxFQUFrQixHQUM3RixHQUFJLEdBQXFCLHVCQUF1QixFQUVoRCxPQUFjLEtBQVYsR0FBZ0IsTUFBTSxJQUFXLGlCQUFpQixHQUcvQyxFQUZFLEVBQVEsTUFLZixrQkFBb0IsU0FBMkIsRUFBVyxFQUFVLEVBQU8sR0FDN0UsSUFBSyxNQUFNLFFBQVEsR0FBUSxDQUV6QixJQUFLLE1BQU0sSUFBb0IsT0FBVixFQUNuQixNQUFPLGdDQUErQixFQUFrQixFQUcxRCxJQUFxQixnQkFBVixHQUFvQixDQUM3QixHQUFjLE9BQVYsR0FBNEIsU0FBVixFQUdwQixNQUFPLEVBRlAsR0FBUSxFQUFNLFdBT2xCLElBQUssTUFBTSxTQUFTLEVBQU8sS0FDekIsTUFBTyxHQUlYLEdBQUksR0FBVyxNQUFNLFFBQVEsR0FBUyxFQUFNLEtBQUssUUFBVSxFQUFXLENBRXRFLElBQUksbUJBQW1CLGVBQWUsR0FDcEMsTUFBTyxvQkFBbUIsRUFHNUIsSUFBSSxFQUNBLE9BQU0sUUFBUSxJQUdoQixFQUFpQixFQUFNLElBQUksU0FBVSxHQUNuQyxNQUFPLGdDQUErQixFQUFrQixLQUkxRCxFQUFpQixFQUFlLE9BQU8sRUFBTSxPQUFPLFNBQVUsR0FDNUQsT0FBUSxNQUFNLEtBRWYsSUFBSSxTQUFVLEdBQ2IsTUFBTyxZQUFXLFVBQVksTUFHaEMsR0FFQSxFQUVBLFdBQVcsVUFBWSxHQUlyQixXQUFXLG1CQUFxQixXQUFXLGtCQUFrQixJQUFxQixXQUFXLGtCQUFrQixHQUFrQixLQUNuSSxFQUFpQixFQUFlLE9BQU8sV0FBVyxrQkFBa0IsR0FBa0IsSUFJeEYsSUFBSSxHQUFlLFVBQVUsRUFBZ0IsU0FBVSxHQVNyRCxNQVJBLFVBQVMsR0FBWSxHQUNyQixTQUFTLEdBQVksSUFPWixTQUFTLElBR3BCLElBQUksRUFDRixtQkFBbUIsR0FBWSxNQUsvQixJQUZBLG1CQUFtQixHQUFZLEVBRUYsZUFBekIsUUFBUSxJQUFJLFVBRVYsU0FBVyxRQUFRLEtBQU0sQ0FDM0IsR0FBSSxHQUFtQixFQUFZLGtCQUFvQixFQUFVLFlBQVksWUFBYyxJQUFNLEVBRWpHLFNBQVEsS0FBSywwQkFBNEIsRUFBUSxtQkFBcUIsRUFBVyxLQUFPLEdBTTlGLE1BQU8sb0JBQW1CLElBS3hCLGlCQUFtQixTQUEwQixFQUNqRCxHQUNFLEdBQUksR0FBTyxVQUFVLFFBQVUsR0FBc0IsU0FBakIsVUFBVSxHQUFtQixLQUFPLFVBQVUsRUFFbEYsS0FBSyxxQkFBcUIsVUFDeEIsTUFBTyxRQUFPLEtBQUssR0FBTyxPQUFPLFNBQVUsRUFBVSxHQUNuRCxHQUFJLEdBQVEsRUFBTSxHQUNkLEVBQWtCLFFBQVQsRUFBaUIscUJBQXFCLEdBQU8sRUFDdEQsRUFBVyxNQUFNLFFBQVEsR0FBUyxFQUFNLEdBQUssQ0FFakQsT0FEQSxHQUFTLEdBQVUsRUFDWixNQUlYLElBQUksS0F1QkosT0F0QkEsUUFBTyxLQUFLLEdBQU8sUUFBUSxTQUFVLEdBQ25DLEdBQUksR0FBUSxFQUFNLEdBRWQsRUFBYyx3QkFBd0IsRUFDMUMsSUFBSSxLQUFnQixHQUVXLGVBQXpCLFFBQVEsSUFBSSxTQUZsQixDQWNBLEdBQUksR0FBVyxrQkFBa0IsRUFBVyxFQUFZLEdBQUksRUFBTyxFQUVuRSxHQUFjLEVBQVksSUFBUyxNQVovQixJQUFJLFNBQVcsUUFBUSxLQUFNLENBQzNCLEdBQUksR0FBbUIsRUFBWSxrQkFBb0IsRUFBVSxZQUFZLFlBQWMsSUFBTSxFQUVqRyxTQUFRLEtBQUssNkJBQStCLEVBQVcsS0FBTyxNQVcvRCxFQUdULFFBQU8sU0FDTCx3QkFBeUIsd0JBQ3pCLGlCQUFrQixpQkFDbEIsVUFBVyxXQUFXLFVBQ3RCLFNBQVUsV0FBVzs7Ozs7QUMzWnZCLFlBRUEsSUFBSSxtQkFDQSxhQUVBLFVBQVksU0FBbUIsR0FLakMsTUFKb0MsS0FBaEMsVUFBVSxRQUFRLElBQ3BCLFVBQVUsS0FBSyxJQUlmLE9BQVEsV0FDTixHQUFJLEdBQWdCLFVBQVUsUUFBUSxFQUVsQyxHQUFnQixJQUNsQixVQUFVLE9BQU8sRUFBZSxNQU1wQyxZQUFjLFdBQ2hCLFVBQVUsUUFBUSxTQUFVLEdBQzFCLE1BQU8sUUFJUCw0QkFBOEIsU0FBcUMsR0FDckUsR0FBSSxLQVdKLE9BVEEsUUFBTyxLQUFLLEdBQVUsUUFBUSxTQUFVLEdBQ3RDLEdBQUksR0FBUSxFQUFTLEVBSXJCLElBQWdCLGNBQ2hCLEVBQWtCLEdBQU8sSUFHcEIsR0FHTCxlQUFpQixTQUF3QixHQUMzQyxHQUFLLEVBQVUsWUFBZixDQUlBLEdBQUksS0FZSixPQVZBLFFBQU8sS0FBSyxFQUFVLGFBQWEsUUFBUSxTQUFVLEdBQ25ELEdBQUksR0FBUyxFQUFVLFlBQVksR0FDL0IsRUFBWSxVQUFZLEVBQVUsWUFBYyxJQUFNLENBQzFELGdCQUFlLElBQU0sR0FBYSw0QkFBNEIsR0FDOUQsRUFBZ0IsR0FBTyxJQUt6QixjQUNPLElBR0wsZUFBaUIsV0FDbkIsTUFBTyxnQkFHVCxRQUFPLFNBQ0wsZUFBZ0IsZUFDaEIsZUFBZ0IsZUFDaEIsVUFBVzs7OztBQ3JFYixZQUVBLElBQUksVUFBVyxPQUFPLFFBQVUsU0FBVSxHQUFVLElBQUssR0FBSSxHQUFJLEVBQUcsRUFBSSxVQUFVLE9BQVEsSUFBSyxDQUFFLEdBQUksR0FBUyxVQUFVLEVBQUksS0FBSyxHQUFJLEtBQU8sR0FBYyxPQUFPLFVBQVUsZUFBZSxLQUFLLEVBQVEsS0FBUSxFQUFPLEdBQU8sRUFBTyxJQUFZLE1BQU8sSUFFblAsZ0JBQWtCLFFBQVEsdUJBQzFCLFNBQVcsUUFBUSxlQUNuQixZQUFjLFFBQVEsbUJBQ3RCLFNBQVcsUUFBUSxjQUNuQixPQUFTLFFBQVEsWUFFakIscUJBQXVCLFFBQVEsU0FDL0IsTUFBMkIsbUJBQVgsUUFBeUIsT0FBYyxNQUFzQixtQkFBWCxRQUF5QixPQUFjLE1BQUksS0FXN0csK0JBRUEsY0FBZ0IsU0FBdUIsR0FDekMsTUFBa0IsTUFBWCxFQUFJLElBQXlCLE1BQVgsRUFBSSxJQUczQixlQUFpQixTQUF3QixFQUFXLEVBQUssR0FDM0QsTUFBTyxVQUFTLEVBQVUsTUFBTyxFQUFLLElBR3BDLGVBQWlCLFNBQXdCLEVBQVcsRUFBSyxHQUMzRCxHQUFJLEdBQVcsRUFBVSxrQkFBb0IsRUFBVSxPQUFTLEVBQVUsTUFBTSxzQkFFNUUsR0FBVSxrQkFBbUIsWUFBYSxHQUM5QyxHQUFNLGtCQUFrQixHQUFPLFlBQWEsRUFBTSxrQkFBa0IsR0FBTSxHQUUxRSxFQUFVLGlCQUFtQixFQUFNLGtCQUNuQyxFQUFVLFNBQVMsSUFNakIsYUFBZSxRQUFTLEdBQWEsR0FDdkMsR0FBSSxLQWdCSixPQWRBLEdBQU8sUUFBUSxTQUFVLEdBQ2xCLEdBQTBCLGdCQUFWLEtBQXNCLE1BQU0sUUFBUSxJQUl6RCxPQUFPLEtBQUssR0FBTyxRQUFRLFNBQVUsR0FDL0IsY0FBYyxJQUFRLEVBQU8sR0FDL0IsRUFBTyxHQUFPLEdBQWMsRUFBTyxHQUFNLEVBQU0sS0FFL0MsRUFBTyxHQUFPLEVBQU0sT0FLbkIsR0FHTCxTQUFXLFNBQWtCLEdBQy9CLE9BQU8sS0FBSyxFQUFVLE1BQU0sbUJBQW1CLFFBQVEsU0FBVSxHQUMzRCxlQUFlLEVBQVcsRUFBSyxZQUNqQyxlQUFlLEVBQVcsR0FBTyxXQUFXLE9BSzlDLG9CQUFzQixTQUE2QixFQUFXLEVBQU8sR0FDdkUsR0FBSSxLQUNKLEdBQU0sR0FBUyxFQUFlLFFBQzlCLGVBQWUsRUFBVyxPQUFRLElBR2hDLHlCQUEyQixTQUFrQyxFQUFXLEdBQzFFLE1BQUssUUFBTyxpQkFJWixPQUFPLEtBQUssR0FBTyxPQUFPLFNBQVUsR0FDbEMsTUFBbUIsTUFBWixFQUFLLEtBQ1gsSUFBSSxTQUFVLEdBQ2YsR0FBSSxHQUFtQixFQUFNLEVBQzdCLEdBQVEsRUFBTSxRQUFRLFVBQVcsR0FHakMsSUFBSSxHQUFNLDRCQUE0QixFQVV0QyxJQVRLLElBQ0gsNEJBQTRCLEdBQVMsRUFBTSxPQUFPLFdBQVcsSUFJMUQsRUFBVSxvQ0FDYixFQUFVLHVDQUdQLEVBQVUsa0NBQWtDLEdBQVEsQ0FDdkQsR0FBSSxHQUFXLG9CQUFvQixLQUFLLEtBQU0sRUFBVyxFQUN6RCxHQUFJLFlBQVksR0FDaEIsRUFBVSxrQ0FBa0MsSUFDMUMsT0FBUSxXQUNOLEVBQUksZUFBZSxLQU1yQixFQUFJLFVBQ04sRUFBUSxjQUFjLEVBQU8sT0FJMUIsR0FwQ0UsR0EwQ1AsY0FBZ0IsU0FBdUIsRUFBaUIsRUFBVSxHQU1wRSxNQUpvQyxnQkFBekIsR0FBZ0IsT0FDekIsRUFBVyxZQUFhLEdBQVkseUJBQXlCLEtBR3hELE1BQU0sYUFBYSxFQUFpQixFQUFVLElBVW5ELGNBQWdCLFFBQVMsR0FBYyxFQUMzQyxFQUNBLEdBSUUsR0FGQSxFQUFpQixPQUVaLEdBS0wsRUFBZ0IsT0FBUyxFQUFnQixNQUFNLHdCQUM3QyxNQUFPLEVBTVQsSUFBSSxHQUFjLEVBQWdCLE1BQU0sU0FDcEMsRUFBYyxDQUNsQixJQUFJLEVBQWEsQ0FDZixHQUFJLFNBQXNCLEVBQzFCLElBQXFCLFdBQWpCLEdBQThDLFdBQWpCLEVBRS9CLEVBQWMsTUFDVCxJQUFxQixhQUFqQixFQUVULEVBQWMsV0FDWixHQUFJLEdBQVMsRUFBWSxNQUFNLEtBQU0sVUFDckMsT0FBSSxPQUFNLGVBQWUsR0FDaEIsRUFBYyxFQUFXLEVBQVEsR0FFbkMsT0FFSixJQUEwQyxJQUF0QyxNQUFNLFNBQVMsTUFBTSxJQUFzQixFQUFZLEtBQU0sQ0FHdEUsR0FBSSxHQUFZLE1BQU0sU0FBUyxLQUFLLEVBQ3BDLEdBQWMsRUFBYyxFQUFXLEVBQVcsT0FFbEQsR0FBYyxNQUFNLFNBQVMsSUFBSSxFQUFhLFNBQVUsR0FDdEQsTUFBSSxPQUFNLGVBQWUsR0FDaEIsRUFBYyxFQUFXLEVBQU8sR0FHbEMsSUFLYixHQUFJLEdBQVEsRUFBZ0IsTUFDeEIsSUFHSixRQUFPLEtBQUssR0FBTyxRQUFRLFNBQVUsR0FFbkMsR0FBYSxhQUFULEVBQUosQ0FJQSxHQUFJLEdBQVksRUFBTSxFQUNsQixPQUFNLGVBQWUsS0FDdkIsRUFBUyxHQUFRLEVBQWMsRUFBVyxFQUFXLE1BSXpELElBQUksR0FBbUIsT0FBTyxLQUFLLEdBQVUsT0FBUyxDQUd0RCxLQUFLLE1BQU0sZUFBZSxJQUFvRCxnQkFBekIsR0FBZ0IsS0FDbkUsTUFBSSxLQUFnQixHQUFnQixFQUk3QixjQUFjLEVBQWlCLEVBQW1CLEtBQWUsR0FIL0QsQ0FNWCxJQUFJLEdBQVEsRUFBTSxLQVFsQixJQUpJLE1BQU0sUUFBUSxLQUNoQixFQUFRLGFBQWEsSUFHTSxlQUF6QixRQUFRLElBQUksU0FBMkIsQ0FLekMsR0FBSSxJQUNGLFlBQWUsdUJBQXdCLHNCQUF1QixpQkFBa0Isa0JBQW1CLGtCQUFtQixtQkFBb0IscUJBQXNCLHNCQUF1QixzQkFBdUIsbUJBQW9CLG9CQUFxQixvQkFBcUIsa0JBQzVRLFFBQVcsZUFBZ0Isb0JBQXFCLG9CQUFxQixvQkFBcUIsY0FBZSxhQUFjLGtCQUFtQixrQkFBbUIsa0JBQW1CLGNBQWUsbUJBQW9CLG1CQUFvQixtQkFBb0IsY0FBZSxZQUFhLGlCQUFrQixpQkFBa0IsaUJBQWtCLGVBQzdVLGFBQWdCLG9CQUFxQixvQkFBcUIsbUJBQW9CLG9CQUFxQixvQkFDbkcsY0FBaUIseUJBQTBCLDBCQUEyQixzQkFBdUIsd0JBQzdGLE1BQVMsYUFBYyxjQUFlLFdBQVksY0FBZSxZQUFhLGNBQWUsdUJBQXdCLGFBQWMsY0FDbkksV0FBYyxpQkFBa0Isb0JBQXFCLGlCQUNyRCxRQUFXLGVBQWdCLGFBQWMsY0FBZSxhQUN4RCxTQUFZLGdCQUFpQixjQUFlLGVBQWdCLGNBQzVELFlBQWUsa0JBQW1CLHFCQUFzQixxQkFBc0IsNkJBRzVFLEVBQWEsUUFBUyxHQUFXLEdBQ25DLEdBQWlCLGdCQUFOLElBQW1CLEVBQTlCLENBSUEsR0FBSSxHQUFZLE9BQU8sS0FBSyxFQUM1QixHQUFVLFFBQVEsU0FBVSxHQUN0QixFQUE0QixJQUFhLEVBQTRCLEdBQVUsS0FBSyxTQUFVLEdBQ2hHLE1BQWlDLEtBQTFCLEVBQVUsUUFBUSxNQUVJLGVBQXpCLFFBQVEsSUFBSSxVQUVkLFFBQVEsS0FBSyxxQkFBdUIsRUFBVyxvQkFBcUIsRUFBTyx1R0FBbUgsRUFBVSxZQUFZLFlBQWMsSUFBSyxrRkFNN08sRUFBVSxRQUFRLFNBQVUsR0FDMUIsTUFBTyxHQUFXLEVBQUUsT0FHeEIsR0FBVyxHQUliLElBQUssSUFBVSxPQUFPLEtBQUssR0FBTyxLQUFLLGVBQ3JDLE1BQUksSUFFRixFQUFTLE1BQVEsU0FBUyxpQkFBaUIsRUFBVyxHQUMvQyxjQUFjLEVBQWlCLEVBQVUsSUFDdkMsR0FBZSxFQUNqQixjQUFjLEVBQWlCLEVBQVUsR0FHM0MsQ0FNVCxJQUFJLEdBQWMsRUFBZ0IsS0FBTyxFQUFnQixJQUNyRCxFQUFNLFlBQVksRUFFdEIsSUFBSSxFQUFlLEdBQ2pCLEtBQU0sSUFBSSxPQUFNLHFIQUE0SCxFQUFjLFFBQVUsRUFBYyxvQkFBc0IsNENBRzFNLEdBQWUsSUFBTyxFQUd0QixFQUFRLHlCQUF5QixFQUFXLEVBRTVDLElBQUksS0FRSixJQVBBLE9BQU8sS0FBSyxHQUFPLFFBQVEsU0FBVSxHQUM5QixjQUFjLEtBQ2pCLEVBQVMsR0FBWSxFQUFNLE1BSzNCLEVBQU0sV0FBYSxFQUFNLFdBQVksQ0FJdkMsR0FBSSxHQUF1QixFQUFNLFlBQ2pDLEdBQVMsYUFBZSxTQUFVLEdBQ2hDLEdBQXdCLEVBQXFCLEdBQzdDLGVBQWUsRUFBVyxHQUFPLFVBQVUsSUFHN0MsSUFBSSxHQUF1QixFQUFNLFlBQ2pDLEdBQVMsYUFBZSxTQUFVLEdBQ2hDLEdBQXdCLEVBQXFCLEdBQzdDLGVBQWUsRUFBVyxHQUFPLFVBQVUsS0FJL0MsR0FBSSxFQUFNLFdBQVksQ0FDcEIsR0FBSSxHQUFzQixFQUFNLFdBQ2hDLEdBQVMsWUFBYyxTQUFVLEdBQy9CLEdBQXVCLEVBQW9CLEdBQzNDLEVBQVUsZUFBaUIsS0FBSyxNQUNoQyxlQUFlLEVBQVcsR0FBTyxXQUFXLEtBSWhELEdBQUksRUFBTSxVQUFXLENBQ25CLEdBQUksR0FBa0IsRUFBTSxPQUM1QixHQUFTLFFBQVUsU0FBVSxHQUMzQixHQUFtQixFQUFnQixHQUNuQyxlQUFlLEVBQVcsR0FBTyxVQUFVLElBRzdDLElBQUksR0FBaUIsRUFBTSxNQUMzQixHQUFTLE9BQVMsU0FBVSxHQUMxQixHQUFrQixFQUFlLEdBQ2pDLGVBQWUsRUFBVyxHQUFPLFVBQVUsS0FLL0MsR0FBSSxHQUFvQixPQUFPLEtBQUssR0FBTyxPQUFPLFNBQVUsR0FDMUQsTUFBZ0IsWUFBVCxHQUFzQixlQUFlLEVBQVcsRUFBSyxZQUF1QixXQUFULEdBQXFCLGVBQWUsRUFBVyxFQUFLLFdBQXNCLFdBQVQsR0FBcUIsZUFBZSxFQUFXLEVBQUssWUFDOUwsSUFBSSxTQUFVLEdBQ2YsTUFBTyxHQUFNLElBYWYsT0FWSSxHQUFrQixTQUNwQixFQUFXLGNBQWMsR0FBVSxPQUFPLEtBR3hDLEVBQU0sYUFBZSxFQUFVLHdCQUEwQixxQkFBcUIsdUJBQ2hGLEVBQVUsdUJBQXlCLGdCQUFnQixVQUFVLFNBQVMsS0FBSyxLQUFNLEtBR25GLEVBQVMsTUFBUSxTQUFTLGlCQUFpQixFQUFXLEdBRS9DLGNBQWMsRUFBaUIsRUFBVSxHQUtsRCxlQUFjLHFCQUF1QixXQUNuQyxnQ0FHRixPQUFPLFFBQVU7Ozs7O0FDaFhqQixZQUVBLFNBQVMsTUFBSyxFQUFPLEVBQVcsR0FDOUIsR0FBb0Msa0JBQXpCLE9BQU0sVUFBVSxLQUN6QixNQUFPLEdBQU0sS0FBSyxFQUFXLEVBRy9CLEdBQVUsR0FBVyxJQUNyQixJQUNJLEdBREEsRUFBUyxFQUFNLE1BR25CLElBQXlCLGtCQUFkLEdBQ1QsS0FBTSxJQUFJLFdBQVUsRUFBWSxxQkFHbEMsS0FBSyxFQUFJLEVBQU8sRUFBSixFQUFZLElBQ3RCLEdBQUksRUFBVSxLQUFLLEVBQVMsRUFBTSxHQUFJLEVBQUcsR0FDdkMsTUFBTyxHQUFNLEdBS25CLE9BQU8sUUFBVTs7O0NDaEJoQixXQUNBLFlBRUEsSUFBSSxLQUNlLG1CQUFYLFVBQ1AsT0FBTyxXQUNQLE9BQU8sU0FBUyxlQUdiLEdBRUgsVUFBVyxFQUVYLGNBQWlDLG1CQUFYLFFBRXRCLHFCQUNDLE1BQWdCLE9BQU8sbUJBQW9CLE9BQU8sYUFFbkQsZUFBZ0IsS0FBZSxPQUFPLE9BSWpCLG1CQUFYLFNBQStDLGdCQUFmLFFBQU8sS0FBb0IsT0FBTyxJQUM1RSxPQUFPLFdBQ04sTUFBTyxLQUVvQixtQkFBWCxTQUEwQixPQUFPLFFBQ2xELE9BQU8sUUFBVSxFQUVqQixPQUFPLHFCQUF1QiIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIGUodCxuLHIpe2Z1bmN0aW9uIHMobyx1KXtpZighbltvXSl7aWYoIXRbb10pe3ZhciBhPXR5cGVvZiByZXF1aXJlPT1cImZ1bmN0aW9uXCImJnJlcXVpcmU7aWYoIXUmJmEpcmV0dXJuIGEobywhMCk7aWYoaSlyZXR1cm4gaShvLCEwKTt2YXIgZj1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK28rXCInXCIpO3Rocm93IGYuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixmfXZhciBsPW5bb109e2V4cG9ydHM6e319O3Rbb11bMF0uY2FsbChsLmV4cG9ydHMsZnVuY3Rpb24oZSl7dmFyIG49dFtvXVsxXVtlXTtyZXR1cm4gcyhuP246ZSl9LGwsbC5leHBvcnRzLGUsdCxuLHIpfXJldHVybiBuW29dLmV4cG9ydHN9dmFyIGk9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKylzKHJbb10pO3JldHVybiBzfSkiLCJ2YXIgQXBwRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvYXBwLWRpc3BhdGNoZXInKSxcblx0SlBTQ29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzJyk7XG5cbnZhciBEYXRhQWN0aW9ucyA9IHtcblx0cmVxdWVzdFN0YXJ0ZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNBVkVfU1RBUlRFRFxuXHRcdH0pO1xuXHR9LFxuXG5cdHJlcXVlc3RGaW5pc2hlZDogZnVuY3Rpb24oKSB7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0FWRV9GSU5JU0hFRFxuXHRcdH0pO1xuXHR9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IERhdGFBY3Rpb25zOyIsInZhciBBcHBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9hcHAtZGlzcGF0Y2hlcicpLFxuXHRKUFNDb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1jb25zdGFudHMnKTtcblxudmFyIEZsYXNoQWN0aW9ucyA9IHtcblx0bm90aWNlOiBmdW5jdGlvbihtc2cpIHtcblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TRVRfRkxBU0gsXG5cdFx0XHRtZXNzYWdlOiBtc2csXG5cdFx0XHRzZXZlcml0eTogSlBTQ29uc3RhbnRzLkZMQVNIX1NFVkVSSVRZX05PVElDRVxuXHRcdH0pO1xuXHR9LFxuXG5cdGVycm9yOiBmdW5jdGlvbihtc2cpIHtcblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TRVRfRkxBU0gsXG5cdFx0XHRtZXNzYWdlOiBtc2csXG5cdFx0XHRzZXZlcml0eTogSlBTQ29uc3RhbnRzLkZMQVNIX1NFVkVSSVRZX0VSUk9SXG5cdFx0fSk7XG5cdH0sXG5cblx0dW5zZXQ6IGZ1bmN0aW9uKCkge1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlVOU0VUX0ZMQVNIXG5cdFx0fSk7XG5cdH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gRmxhc2hBY3Rpb25zOyIsInZhciBBcHBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9hcHAtZGlzcGF0Y2hlcicpLFxuXHRKUFNDb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1jb25zdGFudHMnKSxcblx0UGF0aHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1wYXRocycpLFxuXHRGbGFzaEFjdGlvbnMgPSByZXF1aXJlKCcuL2ZsYXNoLWFjdGlvbnMnKSxcblx0U2l0ZUFjdGlvbnMgPSByZXF1aXJlKCcuL3NpdGUtYWN0aW9ucycpLFxuXHRXUEFqYXggPSByZXF1aXJlKCcuLi91dGlscy93cC1hamF4JyksXG5cdFNwaW5uZXJBY3Rpb25zID0gcmVxdWlyZSgnLi9zcGlubmVyLWFjdGlvbnMnKSxcblx0U2V0dXBQcm9ncmVzc1N0b3JlID0gcmVxdWlyZSgnLi4vc3RvcmVzL3NldHVwLXByb2dyZXNzLXN0b3JlJyksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyk7XG5cbnZhciBTZXR1cFByb2dyZXNzQWN0aW9ucyA9IHtcblx0cmVzZXREYXRhOiBmdW5jdGlvbigpIHtcblx0XHRXUEFqYXguXG5cdFx0cG9zdChKUFMuc2l0ZV9hY3Rpb25zLnJlc2V0X2RhdGEpLlxuXHRcdGZhaWwoZnVuY3Rpb24obXNnKSB7XG5cdFx0XHRGbGFzaEFjdGlvbnMuZXJyb3IoXCJGYWlsZWQgdG8gc2F2ZSBkYXRhOiBcIiArIG1zZyk7XG5cdFx0fSk7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuUkVTRVRfREFUQVxuXHRcdH0pO1xuXHR9LFxuXG5cdGNvbXBsZXRlU3RlcDogZnVuY3Rpb24oc2x1ZywgbWV0YSkge1xuXHRcdHZhciBzdGVwID0gU2V0dXBQcm9ncmVzc1N0b3JlLmdldFN0ZXBGcm9tU2x1ZyhzbHVnKTtcblxuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNURVBfQ09NUExFVEUsXG5cdFx0XHRzbHVnOiBzbHVnXG5cdFx0fSk7XG5cblx0XHQvLyBOT1RFOiB0aGlzIG5lZWRzIHRvIGNvbWUgYWZ0ZXIgdGhlIGRpc3BhdGNoLCBzbyB0aGF0IHRoZSBjb21wbGV0aW9uICUgXG5cdFx0Ly8gaXMgYWxyZWFkeSB1cGRhdGVkIGFuZCBjYW4gYmUgaW5jbHVkZWQgaW4gdGhlIG1ldGFkYXRhXG5cdFx0cmV0dXJuIHRoaXMuX3JlY29yZENvbXBsZXRlKHN0ZXAsIG1ldGEpO1xuXHR9LFxuXG5cdGNvbXBsZXRlQW5kTmV4dFN0ZXA6IGZ1bmN0aW9uKHNsdWcsIG1ldGEpIHtcblx0XHRTcGlubmVyQWN0aW9ucy5zaG93KFwiTG9hZGluZ1wiKTtcblx0XHR0aGlzLmNvbXBsZXRlU3RlcChzbHVnLCBtZXRhKS5hbHdheXMoZnVuY3Rpb24oKSB7XG5cdFx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNURVBfTkVYVFxuXHRcdFx0fSk7XG5cdFx0XHRTcGlubmVyQWN0aW9ucy5oaWRlKCk7XG5cdFx0fSk7XG5cdH0sXG5cblx0X3JlY29yZENvbXBsZXRlOiBmdW5jdGlvbihzdGVwLCBtZXRhKSB7XG5cdFx0aWYgKHR5cGVvZihtZXRhKSA9PT0gJ3VuZGVmaW5lZCcpIHtcblx0XHRcdG1ldGEgPSB7fTtcblx0XHR9XG5cblx0XHRtZXRhLmNvbXBsZXRpb24gPSBTZXR1cFByb2dyZXNzU3RvcmUuZ2V0UHJvZ3Jlc3NQZXJjZW50KCk7XG5cblx0XHRyZXR1cm4gV1BBamF4LlxuXHRcdHBvc3QoSlBTLnN0ZXBfYWN0aW9ucy5jb21wbGV0ZSwge1xuXHRcdFx0c3RlcDogc3RlcC5zbHVnLFxuXHRcdFx0ZGF0YTogbWV0YVxuXHRcdH0pLlxuXHRcdGZhaWwoZnVuY3Rpb24obXNnKSB7XG5cdFx0XHRGbGFzaEFjdGlvbnMuZXJyb3IobXNnKTtcblx0XHR9KTtcblx0fSxcblxuXHQvLyBtYXJrIGN1cnJlbnQgc3RlcCBhcyBza2lwcGVkIGFuZCBtb3ZlIG9uXG5cdHNraXBTdGVwOiBmdW5jdGlvbigpIHtcblx0XHRGbGFzaEFjdGlvbnMudW5zZXQoKTtcblxuXHRcdHZhciBzdGVwID0gU2V0dXBQcm9ncmVzc1N0b3JlLmdldEN1cnJlbnRTdGVwKCk7XG5cblx0XHRpZiAoIXN0ZXAuc2tpcHBlZCkge1xuXHRcdFx0U3Bpbm5lckFjdGlvbnMuc2hvdyhcIkxvYWRpbmdcIik7XG5cdFx0XHRXUEFqYXguXG5cdFx0XHRwb3N0KEpQUy5zdGVwX2FjdGlvbnMuc2tpcCwge1xuXHRcdFx0XHRzdGVwOiBzdGVwLnNsdWdcblx0XHRcdH0pLlxuXHRcdFx0ZmFpbChmdW5jdGlvbihtc2cpIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKG1zZyk7XG5cdFx0XHR9KS5hbHdheXMoZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFNwaW5uZXJBY3Rpb25zLmhpZGUoKTtcblx0XHRcdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNURVBfU0tJUFxuXHRcdFx0XHR9KTtcdFxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU1RFUF9TS0lQXG5cdFx0XHR9KTtcdFxuXHRcdH1cblxuXHRcdFxuXHR9LFxuXG5cdGdldFN0YXJ0ZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNwaW5uZXJBY3Rpb25zLnNob3coXCJMb2FkaW5nXCIpO1xuXHRcdFdQQWpheC5cblx0XHRwb3N0KEpQUy5zdGVwX2FjdGlvbnMuc3RhcnQpLlxuXHRcdGZhaWwoZnVuY3Rpb24obXNnKSB7XG5cdFx0XHRGbGFzaEFjdGlvbnMuZXJyb3IobXNnKTtcblx0XHR9KS5cblx0XHRhbHdheXMoZnVuY3Rpb24oKSB7XG5cdFx0XHRTcGlubmVyQWN0aW9ucy5oaWRlKCk7XG5cdFx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNURVBfR0VUX1NUQVJURURcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9LFxuXG5cdGRpc2FibGVKUFM6IGZ1bmN0aW9uKCkge1xuXHRcdFNwaW5uZXJBY3Rpb25zLnNob3coXCJcIik7XG5cdFx0V1BBamF4LlxuXHRcdHBvc3QoSlBTLnN0ZXBfYWN0aW9ucy5kaXNhYmxlKS5cblx0XHRmYWlsKGZ1bmN0aW9uKG1zZykge1xuXHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKG1zZyk7XG5cdFx0fSkuXG5cdFx0YWx3YXlzKGZ1bmN0aW9uKCkge1xuXHRcdFx0d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuXHRcdH0pO1xuXHR9LFxuXG5cdHNldEN1cnJlbnRTdGVwOiBmdW5jdGlvbihzbHVnKSB7XG5cdFx0Rmxhc2hBY3Rpb25zLnVuc2V0KCk7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU1RFUF9TRUxFQ1QsXG5cdFx0XHRzbHVnOiBzbHVnXG5cdFx0fSk7XG5cdH0sXG5cblx0Ly8gbW92ZXMgb24gdG8gdGhlIG5leHQgc3RlcCwgYnV0IGRvZXNuJ3QgbWFyayBpdCBhcyBcInNraXBwZWRcIlxuXHRzZWxlY3ROZXh0U3RlcDogZnVuY3Rpb24oKSB7XG5cdFx0Rmxhc2hBY3Rpb25zLnVuc2V0KCk7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU1RFUF9ORVhUXG5cdFx0fSk7XG5cdH0sXG5cblx0c3VibWl0VGl0bGVTdGVwOiBmdW5jdGlvbigpIHtcblx0XHRTaXRlQWN0aW9ucy5zYXZlVGl0bGVBbmREZXNjcmlwdGlvbigpLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHR0aGlzLmNvbXBsZXRlQW5kTmV4dFN0ZXAoUGF0aHMuU0lURV9USVRMRV9TVEVQX1NMVUcpO1xuXHRcdH0uYmluZCh0aGlzKSk7XG5cdH0sXG5cblx0c3VibWl0TGF5b3V0U3RlcDogZnVuY3Rpb24obGF5b3V0KSB7XG5cdFx0U2l0ZUFjdGlvbnMuc2V0TGF5b3V0KGxheW91dCkuZG9uZShmdW5jdGlvbigpIHtcblx0XHRcdHRoaXMuY29tcGxldGVBbmROZXh0U3RlcChQYXRocy5MQVlPVVRfU1RFUF9TTFVHKTtcblx0XHR9LmJpbmQodGhpcykpO1xuXHR9LFxuXG5cdGNyZWF0ZUNvbnRhY3RQYWdlOiBmdW5jdGlvbihjb250YWN0UGFnZSkge1xuXHRcdFNwaW5uZXJBY3Rpb25zLnNob3coXCJDcmVhdGluZyBQYWdlXCIpO1xuXHRcdHJldHVybiBTaXRlQWN0aW9ucy5jcmVhdGVDb250YWN0VXNQYWdlKGNvbnRhY3RQYWdlKS5cblx0XHRcdGRvbmUoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR0aGlzLmNvbXBsZXRlU3RlcChQYXRocy5DT05UQUNUX1BBR0VfU1RFUF9TTFVHKTtcblx0XHRcdH0uYmluZCh0aGlzKSkuXG5cdFx0XHRhbHdheXMoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRTcGlubmVyQWN0aW9ucy5oaWRlKCk7XG5cdFx0XHR9KTtcblxuXHRcdC8vIGRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0Ly8gXHR0aGlzLmNvbXBsZXRlQW5kTmV4dFN0ZXAoUGF0aHMuQ09OVEFDVF9QQUdFX1NURVBfU0xVRyk7XG5cdFx0Ly8gfS5iaW5kKHRoaXMpKTtcblx0fSxcblxuXHRza2lwQ29udGFjdFBhZ2VCdWlsZDogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5jb21wbGV0ZUFuZE5leHRTdGVwKFBhdGhzLkNPTlRBQ1RfUEFHRV9TVEVQX1NMVUcpO1xuXHR9LFxuXG5cdHN1Ym1pdEpldHBhY2tKdW1wc3RhcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNpdGVBY3Rpb25zLmVuYWJsZUp1bXBzdGFydCgpLmRvbmUoZnVuY3Rpb24oKSB7XG5cdFx0XHR0aGlzLmNvbXBsZXRlU3RlcChQYXRocy5KRVRQQUNLX01PRFVMRVNfU1RFUF9TTFVHKTtcblx0XHR9LmJpbmQodGhpcykpO1xuXHR9LFxuXG5cdHNldEFjdGl2ZVRoZW1lOiBmdW5jdGlvbih0aGVtZSkge1xuXHRcdFNpdGVBY3Rpb25zLnNldEFjdGl2ZVRoZW1lKHRoZW1lKS5kb25lKGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhpcy5jb21wbGV0ZVN0ZXAoUGF0aHMuREVTSUdOX1NURVBfU0xVRywge1xuXHRcdFx0XHR0aGVtZUlkOiB0aGVtZS5pZFxuXHRcdFx0fSk7XG5cdFx0fS5iaW5kKHRoaXMpKTtcblx0fSxcblxuXHRzYXZlRGVzaWduU3RlcDogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5jb21wbGV0ZUFuZE5leHRTdGVwKFBhdGhzLkRFU0lHTl9TVEVQX1NMVUcsIHtcblx0XHRcdHRoZW1lSWQ6IFNpdGVTdG9yZS5nZXRBY3RpdmVUaGVtZUlkKClcblx0XHR9KTtcblx0fVxufTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZXR1cFByb2dyZXNzQWN0aW9uczsiLCJ2YXIgQXBwRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvYXBwLWRpc3BhdGNoZXInKSxcblx0SlBTQ29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzJyksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdEZsYXNoQWN0aW9ucyA9IHJlcXVpcmUoJy4vZmxhc2gtYWN0aW9ucy5qcycpLFxuXHRTcGlubmVyQWN0aW9ucyA9IHJlcXVpcmUoJy4vc3Bpbm5lci1hY3Rpb25zLmpzJyksXG5cdFdQQWpheCA9IHJlcXVpcmUoJy4uL3V0aWxzL3dwLWFqYXgnKTtcblxudmFyIFNpdGVBY3Rpb25zID0ge1xuXHRzZXRUaXRsZTogZnVuY3Rpb24odGl0bGUpIHtcblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TSVRFX1NFVF9USVRMRSxcblx0XHRcdHRpdGxlOiB0aXRsZVxuXHQgICAgfSk7XG5cdH0sXG5cblx0c2V0RGVzY3JpcHRpb246IGZ1bmN0aW9uKGRlc2NyaXB0aW9uKSB7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9TRVRfREVTQ1JJUFRJT04sXG5cdFx0XHRkZXNjcmlwdGlvbjogZGVzY3JpcHRpb25cblx0ICAgIH0pO1xuXHR9LFxuXG5cdHNhdmVUaXRsZUFuZERlc2NyaXB0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgdGl0bGUgPSBTaXRlU3RvcmUuZ2V0VGl0bGUoKTtcblx0XHR2YXIgZGVzY3JpcHRpb24gPSBTaXRlU3RvcmUuZ2V0RGVzY3JpcHRpb24oKTtcblx0XHRcblx0XHRXUEFqYXguXG5cdFx0XHRwb3N0KCBKUFMuc2l0ZV9hY3Rpb25zLnNldF90aXRsZSwgeyB0aXRsZTogdGl0bGUsIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9ICkuXG5cdFx0XHRmYWlsKCBmdW5jdGlvbiAoIG1zZyApIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3Igc2V0dGluZyB0aXRsZTogXCIrbXNnKTtcblx0XHRcdH0pO1xuXG5cdFx0alF1ZXJ5KCcjd3AtYWRtaW4tYmFyLXNpdGUtbmFtZSAuYWItaXRlbScpLmh0bWwodGl0bGUpO1xuXHRcdC8vIEZsYXNoQWN0aW9ucy5ub3RpY2UoIFwiU2V0IHRpdGxlIHRvICdcIit0aXRsZStcIicgYW5kIGRlc2NyaXB0aW9uIHRvICdcIitkZXNjcmlwdGlvbitcIidcIiApO1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNJVEVfU0FWRV9USVRMRV9BTkRfREVTQ1JJUFRJT04sXG5cdFx0XHR0aXRsZTogdGl0bGVcblx0ICAgIH0pO1xuXG5cdFx0cmV0dXJuIGpRdWVyeS5EZWZlcnJlZCgpLnJlc29sdmUoKTsgLy8gWFhYIEhBQ0tcblx0fSxcblxuXHRzZXRDb250YWN0UGFnZUlkOiBmdW5jdGlvbihjb250YWN0UGFnZUlEKSB7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9DT05UQUNUX1BBR0VfSUQsXG5cdFx0XHRjb250YWN0UGFnZUlEOiBjb250YWN0UGFnZUlEXG5cdFx0fSk7XG5cdH0sXG5cblx0X2luc3RhbGxUaGVtZTogZnVuY3Rpb24gKCB0aGVtZSApIHtcblx0XHRpZiAoICEgdGhlbWUuaW5zdGFsbGVkICkge1xuXHRcdFx0U3Bpbm5lckFjdGlvbnMuc2hvdyhcIkluc3RhbGxpbmcgJ1wiK3RoZW1lLm5hbWUrXCInXCIpO1xuXHRcdFx0cmV0dXJuIFdQQWpheC5cblx0XHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5pbnN0YWxsX3RoZW1lLCB7IHRoZW1lSWQ6IHRoZW1lLmlkIH0gKS5cblx0XHRcdFx0ZG9uZSggZnVuY3Rpb24gKCApIHtcblx0XHRcdFx0XHR0aGVtZS5pbnN0YWxsZWQgPSB0cnVlO1xuXHRcdFx0XHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0XHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNJVEVfSU5TVEFMTF9USEVNRSxcblx0XHRcdFx0XHRcdHRoZW1lOiB0aGVtZVxuXHRcdFx0XHQgICAgfSk7XG5cdFx0XHRcdH0pLlxuXHRcdFx0XHRmYWlsKCBmdW5jdGlvbiAoIG1zZyApIHtcblx0XHRcdFx0XHRGbGFzaEFjdGlvbnMuZXJyb3IoXCJTZXJ2ZXIgZXJyb3IgaW5zdGFsbGluZyB0aGVtZTogXCIrbXNnKTtcblx0XHRcdFx0fSkuXG5cdFx0XHRcdGFsd2F5cyggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0U3Bpbm5lckFjdGlvbnMuaGlkZSgpO1xuXHRcdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5EZWZlcnJlZCgpLnJlc29sdmUoKTtcblx0XHR9XG5cdH0sXG5cblx0X2FjdGl2YXRlVGhlbWU6IGZ1bmN0aW9uICggdGhlbWUgKSB7XG5cdFx0V1BBamF4LlxuXHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5zZXRfdGhlbWUsIHsgdGhlbWVJZDogdGhlbWUuaWQgfSApLlxuXHRcdFx0ZmFpbCggZnVuY3Rpb24gKCBtc2cgKSB7XG5cdFx0XHRcdEZsYXNoQWN0aW9ucy5lcnJvcihcIlNlcnZlciBlcnJvciBzZXR0aW5nIHRoZW1lOiBcIittc2cpO1xuXHRcdFx0fSk7XG5cblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TSVRFX1NFVF9USEVNRSxcblx0XHRcdHRoZW1lSWQ6IHRoZW1lLmlkXG5cdCAgICB9KTtcblx0fSxcblxuXHRzZXRBY3RpdmVUaGVtZTogZnVuY3Rpb24oIHRoZW1lICkge1xuXG5cdFx0dGhpcy5faW5zdGFsbFRoZW1lKHRoZW1lKS5cblx0XHRcdGRvbmUoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR0aGlzLl9hY3RpdmF0ZVRoZW1lKHRoZW1lKTtcblx0XHRcdH0uYmluZCh0aGlzKSk7XG5cblx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCkucmVzb2x2ZSgpOyAvLyBYWFggSEFDS1xuXHR9LFxuXG5cdHNldExheW91dDogZnVuY3Rpb24oIGxheW91dE5hbWUgKSB7XG5cdFxuXHRcdFdQQWpheC5cblx0XHRcdHBvc3QoIEpQUy5zaXRlX2FjdGlvbnMuc2V0X2xheW91dCwgeyBsYXlvdXQ6IGxheW91dE5hbWUgfSApLlxuXHRcdFx0ZmFpbCggZnVuY3Rpb24gKG1zZyApIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3Igc2V0dGluZyBsYXlvdXQ6IFwiK21zZyk7XG5cdFx0XHR9KTtcblxuXHRcdC8vIEZsYXNoQWN0aW9ucy5ub3RpY2UoXCJTZXQgbGF5b3V0IHRvIFwiK2xheW91dE5hbWUpO1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNJVEVfU0VUX0xBWU9VVCxcblx0XHRcdGxheW91dDogbGF5b3V0TmFtZVxuXHQgICAgfSk7XG5cblx0ICAgIHJldHVybiBqUXVlcnkuRGVmZXJyZWQoKS5yZXNvbHZlKCk7IC8vIFhYWCBIQUNLXG5cdH0sXG5cblx0Y3JlYXRlQ29udGFjdFVzUGFnZTogZnVuY3Rpb24oIGNvbnRhY3RQYWdlICkge1xuXG5cdFx0cmV0dXJuIFdQQWpheC5cblx0XHRcdHBvc3QoIEpQUy5zaXRlX2FjdGlvbnMuYnVpbGRfY29udGFjdF9wYWdlLCB7IGJ1aWxkQ29udGFjdFBhZ2U6IGNvbnRhY3RQYWdlIH0gKS5cblx0XHRcdGRvbmUoIGZ1bmN0aW9uKCBwYWdlX2luZm8gKSB7XG5cdFx0XHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TSVRFX0NSRUFURV9DT05UQUNUX1VTX1BBR0UsXG5cdFx0XHRcdFx0ZGF0YTogcGFnZV9pbmZvXG5cdFx0XHRcdH0pO1x0XHRcblx0XHRcdH0pLlxuXHRcdFx0ZmFpbCggZnVuY3Rpb24oIG1zZyApIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3IgY3JlYXRpbmcgY29udGFjdCB1cyBwYWdlOiBcIittc2cpO1xuXHRcdFx0fSk7XG5cdH0sXG5cblx0c2tpcENvbnRhY3RQYWdlQnVpbGQ6IGZ1bmN0aW9uKCkge1xuXHRcdC8vIEZsYXNoQWN0aW9ucy5ub3RpY2UoIFwiQnVpbGQgdGhlIGNvbnRhY3QgdXMgcGFnZVwiICk7XG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9DUkVBVEVfQ09OVEFDVF9VU19QQUdFXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCkucmVzb2x2ZSgpOyAvLyBYWFggSEFDS1xuXHR9LFxuXG5cdGNvbmZpZ3VyZUpldHBhY2s6IGZ1bmN0aW9uKHJldHVybl90b19zdGVwKSB7XG5cdFx0U3Bpbm5lckFjdGlvbnMuc2hvdyhcIkNvbm5lY3RpbmcgdG8gV29yZFByZXNzLmNvbVwiKTtcblx0XHRyZXR1cm4gV1BBamF4LlxuXHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5jb25maWd1cmVfamV0cGFjaywgeyByZXR1cm5fdG9fc3RlcDogcmV0dXJuX3RvX3N0ZXAgfSApLlxuXHRcdFx0ZG9uZSggZnVuY3Rpb24gKCBkYXRhICkge1xuXHRcdFx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX0NPTkZJR1VSRURcblx0XHRcdCAgICB9KTtcblxuXHRcdFx0XHRpZiAoIGRhdGEubmV4dCApIHtcblx0XHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucmVwbGFjZShkYXRhLm5leHQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFNwaW5uZXJBY3Rpb25zLmhpZGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSkuXG5cdFx0XHRmYWlsKCBmdW5jdGlvbiAoIG1zZyApIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3IgZW5hYmxpbmcgSmV0cGFjazogXCIrbXNnKTtcblx0XHRcdFx0U3Bpbm5lckFjdGlvbnMuaGlkZSgpO1xuXHRcdFx0fSk7XG5cdH0sXG5cblx0YWN0aXZhdGVKZXRwYWNrTW9kdWxlOiBmdW5jdGlvbihtb2R1bGVfc2x1Zykge1xuXG5cdFx0V1BBamF4LlxuXHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5hY3RpdmF0ZV9qZXRwYWNrX21vZHVsZXMsIHsgbW9kdWxlczogW21vZHVsZV9zbHVnXSB9KS5cblx0XHRcdGZhaWwoIGZ1bmN0aW9uICggbXNnICkge1xuXHRcdFx0XHRGbGFzaEFjdGlvbnMuZXJyb3IoXCJFcnJvciBhY3RpdmF0aW5nIEpldHBhY2sgbW9kdWxlOiBcIittc2cpO1xuXHRcdFx0fSk7XG5cblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TSVRFX0pFVFBBQ0tfTU9EVUxFX0VOQUJMRUQsXG5cdFx0XHRzbHVnOiBtb2R1bGVfc2x1Z1xuXHQgICAgfSk7XG5cblx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCkucmVzb2x2ZSgpOyAvLyBYWFggSEFDS1xuXHR9LFxuXG5cdGRlYWN0aXZhdGVKZXRwYWNrTW9kdWxlOiBmdW5jdGlvbihtb2R1bGVfc2x1Zykge1xuXG5cdFx0V1BBamF4LlxuXHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5kZWFjdGl2YXRlX2pldHBhY2tfbW9kdWxlcywgeyBtb2R1bGVzOiBbbW9kdWxlX3NsdWddIH0pLlxuXHRcdFx0ZmFpbCggZnVuY3Rpb24gKCBtc2cgKSB7XG5cdFx0XHRcdEZsYXNoQWN0aW9ucy5lcnJvcihcIkVycm9yIGRlYWN0aXZhdGluZyBKZXRwYWNrIG1vZHVsZTogXCIrbXNnKTtcblx0XHRcdH0pO1xuXG5cdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX01PRFVMRV9ESVNBQkxFRCxcblx0XHRcdHNsdWc6IG1vZHVsZV9zbHVnXG5cdCAgICB9KTtcblxuXHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoKS5yZXNvbHZlKCk7IC8vIFhYWCBIQUNLXG5cdH0sXG5cblx0bG9hZEFsbEpldHBhY2tNb2R1bGVzOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoIFNpdGVTdG9yZS5nZXRKZXRwYWNrQWRkaXRpb25hbE1vZHVsZXMoKS5sZW5ndGggPT09IDAgKSB7XG5cdFx0XHRyZXR1cm4gV1BBamF4LlxuXHRcdFx0XHRwb3N0KCBKUFMuc2l0ZV9hY3Rpb25zLmxpc3RfamV0cGFja19tb2R1bGVzICkuXG5cdFx0XHRcdGRvbmUoIGZ1bmN0aW9uICggYWxsX21vZHVsZXMgKSB7XG5cdFx0XHRcdFx0QXBwRGlzcGF0Y2hlci5kaXNwYXRjaCh7XG5cdFx0XHRcdFx0XHRhY3Rpb25UeXBlOiBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX0FERF9NT0RVTEVTLFxuXHRcdFx0XHRcdFx0bW9kdWxlczogYWxsX21vZHVsZXNcblx0XHRcdFx0ICAgIH0pO1xuXHRcdFx0XHR9KS5cblx0XHRcdFx0ZmFpbCggZnVuY3Rpb24gKCBtc2cgKSB7XG5cdFx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgYWxsIEpldHBhY2sgbW9kdWxlczogXCIrbXNnKTtcblx0XHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoKS5yZXNvbHZlKCk7IC8vIFhYWCBIQUNLXG5cdFx0fVxuXHR9LFxuXG5cdGVuYWJsZUp1bXBzdGFydDogZnVuY3Rpb24oKSB7XG5cdFx0V1BBamF4LlxuXHRcdFx0cG9zdCggSlBTLnNpdGVfYWN0aW9ucy5hY3RpdmF0ZV9qZXRwYWNrX21vZHVsZXMsIHsgbW9kdWxlczogU2l0ZVN0b3JlLmdldEp1bXBzdGFydE1vZHVsZVNsdWdzKCkgfSkuXG5cdFx0XHRmYWlsKCBmdW5jdGlvbiAoIG1zZyApIHtcblx0XHRcdFx0Rmxhc2hBY3Rpb25zLmVycm9yKFwiRXJyb3IgYWN0aXZhdGluZyBKZXRwYWNrIG1vZHVsZXM6IFwiK21zZyk7XG5cdFx0XHR9KTtcblxuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNJVEVfSkVUUEFDS19KVU1QU1RBUlRfRU5BQkxFRFxuXHQgICAgfSk7XG5cblx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCkucmVzb2x2ZSgpOyAvLyBYWFggSEFDS1xuXHR9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNpdGVBY3Rpb25zOyIsInZhciBBcHBEaXNwYXRjaGVyID0gcmVxdWlyZSgnLi4vZGlzcGF0Y2hlci9hcHAtZGlzcGF0Y2hlcicpLFxuXHRKUFNDb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1jb25zdGFudHMnKTtcblxudmFyIFNwaW5uZXJBY3Rpb25zID0ge1xuXHRzaG93OiBmdW5jdGlvbihtc2cpIHtcblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5TSE9XX1NQSU5ORVIsXG5cdFx0XHRtZXNzYWdlOiBtc2dcblx0XHR9KTtcblx0fSxcblxuXHRoaWRlOiBmdW5jdGlvbigpIHtcblx0XHRBcHBEaXNwYXRjaGVyLmRpc3BhdGNoKHtcblx0XHRcdGFjdGlvblR5cGU6IEpQU0NvbnN0YW50cy5ISURFX1NQSU5ORVIsXG5cdFx0fSk7XHRcblx0fSxcblxuXHRzaG93QXN5bmM6IGZ1bmN0aW9uKG1zZykge1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLlNIT1dfQVNZTkNfU1BJTk5FUixcblx0XHRcdG1lc3NhZ2U6IG1zZ1xuXHRcdH0pO1x0XHRcblx0fSxcblxuXHRoaWRlQXN5bmM6IGZ1bmN0aW9uKCkge1xuXHRcdEFwcERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuXHRcdFx0YWN0aW9uVHlwZTogSlBTQ29uc3RhbnRzLkhJREVfQVNZTkNfU1BJTk5FUlxuXHRcdH0pO1x0XHRcdFxuXHR9XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IFNwaW5uZXJBY3Rpb25zOyIsInZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpLFxuXHRCdXR0b24gPSByZXF1aXJlKCdAYXV0b21hdHRpYy9kb3BzLXJlYWN0L2pzL2NvbXBvbmVudHMvYnV0dG9uJyksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdFdlbGNvbWVTZWN0aW9uID0gcmVxdWlyZSgnLi93ZWxjb21lLXNlY3Rpb24nKTtcblxuZnVuY3Rpb24gZ2V0U2l0ZVN0YXRlKCkge1xuXHRyZXR1cm4ge1xuXHRcdHNpdGVfdGl0bGU6IFNpdGVTdG9yZS5nZXRUaXRsZSgpXG5cdH07XG59XG5cbnZhciBTZXR0aW5nc0l0ZW0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiU2V0dGluZ3NJdGVtXCIsXG5cdHN0eWxlczoge1xuXHRcdGl0ZW06IHtcblx0XHRcdHBhZGRpbmc6ICcxZW0nLFxuXHRcdFx0bWFyZ2luQm90dG9tOiAnMWVtJyxcblx0XHRcdGxpc3RTdHlsZTogJ25vbmUnLFxuXHRcdFx0YmFja2dyb3VuZDogJyNmNWY1ZjUnLFxuXHRcdFx0Ym9yZGVyOiAnMXB4IHNvbGlkICNkZGQnXG5cdFx0fSxcblxuXHRcdGhlYWRpbmc6IHtcblx0XHRcdG1hcmdpbjogMCxcblx0XHRcdGZvbnRTaXplOiAnMS4yZW0nLFxuXHRcdFx0Zm9udFdlaWdodDogODAwXG5cdFx0fVxuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7c3R5bGU6IHRoaXMuc3R5bGVzLml0ZW19LCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImg1XCIsIHtzdHlsZTogdGhpcy5zdHlsZXMuaGVhZGluZ30sIHRoaXMucHJvcHMudGl0bGUpLCBcblx0XHRcdFx0dGhpcy5wcm9wcy5jaGlsZHJlblx0XHRcdFx0XG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbnZhciBBZHZhbmNlZFNldHRpbmdzU3RlcCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJBZHZhbmNlZFNldHRpbmdzU3RlcFwiLFxuXG5cdHN0eWxlczoge1xuXHRcdHdyYXBwZXI6IHtcblx0XHRcdG1hcmdpbkxlZnQ6IDBcblx0XHR9XG5cdH0sXG5cbiAgXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRTaXRlU3RhdGUoKTtcblx0fSxcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRTaXRlU3RhdGUoKSk7XG4gIFx0fSxcblxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFdlbGNvbWVTZWN0aW9uLCBudWxsLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIFwiTGV0J3MgbGF1bmNoIFwiLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiZW1cIiwgbnVsbCwgdGhpcy5zdGF0ZS5zaXRlX3RpdGxlKSksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDRcIiwgbnVsbCwgXCJBZHZhbmNlZCBzZXR0aW5nc1wiKSwgXG5cblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInVsXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMud3JhcHBlcn0sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NJdGVtLCB7dGl0bGU6IFwiRmluZS10dW5lIHlvdXIgc2l0ZSdzIGxheW91dCBhbmQgYXBwZWFyYW5jZVwifSwgXG5cdFx0XHRcdFx0XHRcIkN1c3RvbWl6ZSB5b3VyIHNpdGXigJlzIGNvbG9ycywgZm9udHMsIHNpZGViYXJzIGFuZCBvdGhlciBzZXR0aW5ncy5cIiwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnJcIiwgbnVsbCksIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJibHVlXCIsIGhyZWY6IEpQUy5zdGVwcy5hZHZhbmNlZF9zZXR0aW5ncy5jdXN0b21pemVfdXJsfSwgXCJDdXN0b21pemUgbXkgc2l0ZVwiKSwgXG5cdFx0XHRcdFx0XHRcIsKgwqBcIiwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge2NvbG9yOiBcImJsdWVcIiwgaHJlZjogSlBTLnN0ZXBzLmFkdmFuY2VkX3NldHRpbmdzLnRoZW1lc191cmx9LCBcIkJyb3dzZSBhbmQgYWRkIHRoZW1lc1wiKVxuXHRcdFx0XHRcdCksIFxuXG5cdFx0XHRcdFx0KFNpdGVTdG9yZS5nZXRMYXlvdXQoKSA9PSAnYmxvZycgfHwgU2l0ZVN0b3JlLmdldExheW91dCgpID09ICdzaXRlLWJsb2cnKSAmJiAoXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzSXRlbSwge3RpdGxlOiBcIkNyZWF0ZSB5b3VyIGZpcnN0IGJsb2cgcG9zdFwifSwgXG5cdFx0XHRcdFx0XHRcdFwiQW4gZXBpYyBlc3NheSBvciBqdXN0IFxcXCJIZWxsbyBXb3JsZCFcXFwiXCIsIFxuXHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnJcIiwgbnVsbCksIFxuXHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge2NvbG9yOiBcImJsdWVcIiwgaHJlZjogSlBTLnN0ZXBzLmFkdmFuY2VkX3NldHRpbmdzLm5ld19ibG9nX3Bvc3RfdXJsfSwgXCJXcml0ZSBhIG5ldyBibG9nIHBvc3RcIiksIFxuXHRcdFx0XHRcdFx0XHRcIsKgwqBcIiwgXG5cdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7Y29sb3I6IFwiYmx1ZVwiLCBocmVmOiBKUFMuc3RlcHMuYWR2YW5jZWRfc2V0dGluZ3MubWFuYWdlX3Bvc3RzX3VybH0sIFwiTWFuYWdlIHBvc3RzXCIpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChTZXR0aW5nc0l0ZW0sIHt0aXRsZTogXCJDcmVhdGUgYSBzdGF0aWMgcGFnZVwifSwgXG5cdFx0XHRcdFx0XHRcIlxcXCJBYm91dCBtZVxcXCIsIFxcXCJPdXIgU2VydmljZXNcXFwiIG9yIGFueXRoaW5nIGVsc2UgeW91IGNhbiBpbWFnaW5lLlwiLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJiclwiLCBudWxsKSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge2NvbG9yOiBcImJsdWVcIiwgaHJlZjogSlBTLnN0ZXBzLmFkdmFuY2VkX3NldHRpbmdzLm5ld19wYWdlX3VybH0sIFwiQ3JlYXRlIGEgbmV3IHBhZ2VcIiksIFxuXHRcdFx0XHRcdFx0XCLCoMKgXCIsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJibHVlXCIsIGhyZWY6IEpQUy5zdGVwcy5hZHZhbmNlZF9zZXR0aW5ncy5tYW5hZ2VfcGFnZXNfdXJsfSwgXCJNYW5hZ2UgcGFnZXNcIilcblx0XHRcdFx0XHQpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFNldHRpbmdzSXRlbSwge3RpdGxlOiBcIkV4dGVuZCB5b3VyIHNpdGUncyBmdW5jdGlvbmFsaXR5XCJ9LCBcblx0XHRcdFx0XHRcdFwiV29yZFByZXNzIG9mZmVycyB0aG91c2FuZHMgb2YgcGx1Z2lucyBmcm9tIEpldHBhY2sgYW5kIHRoZSBXb3JkUHJlc3MgY29tbXVuaXR5LlwiLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJiclwiLCBudWxsKSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge2NvbG9yOiBcImJsdWVcIiwgaHJlZjogSlBTLnN0ZXBzLmFkdmFuY2VkX3NldHRpbmdzLnBsdWdpbnNfdXJsfSwgXCJNYW5hZ2UgcGx1Z2luc1wiKSwgXG5cdFx0XHRcdFx0XHRcIsKgwqBcIiwgXG5cdFx0XHRcdFx0XHRTaXRlU3RvcmUuZ2V0SmV0cGFja0NvbmZpZ3VyZWQoKSAmJiAoXG5cdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7Y29sb3I6IFwiYmx1ZVwiLCBocmVmOiBKUFMuc3RlcHMuYWR2YW5jZWRfc2V0dGluZ3MuamV0cGFja19tb2R1bGVzX3VybH0sIFwiTWFuYWdlIEpldHBhY2sgbW9kdWxlc1wiKVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCksIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NJdGVtLCB7dGl0bGU6IFwiTGVhcm4gbW9yZVwifSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7aHJlZjogXCJodHRwczovL2NvZGV4LndvcmRwcmVzcy5vcmcvRmlyc3RfU3RlcHNfV2l0aF9Xb3JkUHJlc3NcIn0sIFwiRmlyc3QgU3RlcHMgd2l0aCBXb3JkUHJlc3NcIiksIFwiIC0gYW4gb25saW5lIGd1aWRlIGZyb20gdGhlIGNyZWF0b3JzIG9mIFdvcmRQcmVzc1wiXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQWR2YW5jZWRTZXR0aW5nc1N0ZXA7IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdEJ1dHRvbiA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9idXR0b24nKSxcblx0V2VsY29tZVNlY3Rpb24gPSByZXF1aXJlKCcuL3dlbGNvbWUtc2VjdGlvbicpLFxuXHRzdHlsZXMgPSByZXF1aXJlKCcuLi9zdHlsZXMnKSxcblx0U2V0dXBQcm9ncmVzc0FjdGlvbnMgPSByZXF1aXJlKCcuLi9hY3Rpb25zL3NldHVwLXByb2dyZXNzLWFjdGlvbnMnKTtcblxuZnVuY3Rpb24gZ2V0U2l0ZUNvbnRhY3RTdGF0ZSgpIHtcblx0cmV0dXJuIHtcblx0XHRzaXRlX3RpdGxlOiBTaXRlU3RvcmUuZ2V0VGl0bGUoKSxcblx0XHRjb250YWN0UGFnZVVSTDogU2l0ZVN0b3JlLmdldENvbnRhY3RQYWdlVVJMKCksXG5cdFx0Y29udGFjdFBhZ2VTY3JlZW5zaG90IDogSlBTLmJhc2VfdXJsICsgXCIvaW1nL2NvbnRhY3QtdXMtc2NyZWVuc2hvdC5wbmdcIlxuXHR9O1xufVxuXG52YXIgQ29udGFjdFBhZ2VTdGVwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkNvbnRhY3RQYWdlU3RlcFwiLFxuXG5cdGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRTaXRlU3RvcmUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRTaXRlU3RvcmUucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdF9vbkNoYW5nZTogZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5zZXRTdGF0ZShnZXRTaXRlQ29udGFjdFN0YXRlKCkpO1xuXHR9LFxuXG5cdGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGdldFNpdGVDb250YWN0U3RhdGUoKTtcblx0fSxcblxuXHRoYW5kbGVCdWlsZENvbnRhY3Q6IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTZXR1cFByb2dyZXNzQWN0aW9ucy5jcmVhdGVDb250YWN0UGFnZSgpO1xuXHR9LFxuXG5cdGhhbmRsZVN1Ym1pdDogZnVuY3Rpb24oIGUgKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFNldHVwUHJvZ3Jlc3NBY3Rpb25zLnNraXBDb250YWN0UGFnZUJ1aWxkKCk7XG5cdH0sXG5cblx0aGFuZGxlQ29udGludWU6IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTZXR1cFByb2dyZXNzQWN0aW9ucy5zZWxlY3ROZXh0U3RlcCgpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCAhIHRoaXMuc3RhdGUuY29udGFjdFBhZ2VVUkwgKSB7XG5cdFx0XHRyZXR1cm4oXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoV2VsY29tZVNlY3Rpb24sIHtpZDogXCJ3ZWxjb21lX19sYXlvdXRcIn0sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIHRoaXMuc3RhdGUuc2l0ZV90aXRsZSkpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDRcIiwgbnVsbCwgXCJIZWxwIHZpc2l0b3JzIGdldCBpbiB0b3VjaCwgZ3JlYXQgZm9yIGJ1c2luZXNzZXMsIGJsb2dzIGFuZCBwZXJzb25hbCBzaXRlc1wiKSwgXG5cblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW1nXCIsIHtzdHlsZTogc3R5bGVzLnNjcmVlbnNob3QsIHNyYzogdGhpcy5zdGF0ZS5jb250YWN0UGFnZVNjcmVlbnNob3R9KSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge3N0eWxlOiBzdHlsZXMuY29udGVudH0sIFwiQnVpbGQgYSBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIFwic3RhcnRlclwiKSwgXCIgXFxcIkNvbnRhY3QgVXNcXFwiIHBhZ2U/XCIsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImJyXCIsIG51bGwpLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzbWFsbFwiLCBudWxsLCBcIihyZXF1aXJlcyBhIGZyZWUgSmV0cGFjayBjb25uZWN0aW9uKVwiKVxuXHRcdFx0XHRcdCksIFxuXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJncmVlblwiLCBzdHlsZTogeyBtYXJnaW5SaWdodDogMTV9LCBvbkNsaWNrOiB0aGlzLmhhbmRsZUJ1aWxkQ29udGFjdH0sIFwiWWVzXCIpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge29uQ2xpY2s6IHRoaXMuaGFuZGxlU3VibWl0fSwgXCJObyBUaGFua3NcIilcblx0XHRcdFx0KVxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuKFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFdlbGNvbWVTZWN0aW9uLCB7aWQ6IFwid2VsY29tZV9fbGF5b3V0XCJ9LCBcblxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIHRoaXMuc3RhdGUuc2l0ZV90aXRsZSkpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDRcIiwgbnVsbCwgXCJIZWxwIHZpc2l0b3JzIGdldCBpbiB0b3VjaCwgZ3JlYXQgZm9yIGJ1aXNuZXNzZXMsIGJsb2dzIGFuZCBwZXJzb25hbCBzaXRlc1wiKSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge3N0eWxlOiBzdHlsZXMuY29udGVudH0sIFwiVmlldyB5b3VyIHN0YXJ0ZXIgXCIsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtocmVmOiB0aGlzLnN0YXRlLmNvbnRhY3RQYWdlVVJMLCB0YXJnZXQ6IFwiX2JsYW5rXCJ9LCBcIkNvbnRhY3QgVXNcIiksIFwiIHBhZ2UuXCIsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImJyXCIsIG51bGwpLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzbWFsbFwiLCBudWxsLCBcIihUaGUgZm9ybSByZXF1aXJlcyBhIGZyZWUgSmV0cGFjayBjb25uZWN0aW9uKVwiKSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7Y2xhc3NOYW1lOiBcInN1Ym1pdFwifSwgXG5cdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7Y29sb3I6IFwiYmx1ZVwiLCBvbkNsaWNrOiB0aGlzLmhhbmRsZUNvbnRpbnVlfSwgXCJOZXh0IFN0ZXAg4oaSXCIpXG5cdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0KVxuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQ29udGFjdFBhZ2VTdGVwOyIsInZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpO1xuXG52YXIgQ29udGVudEJveCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJDb250ZW50Qm94XCIsXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ3ZWxjb21lX19jb250ZW50X2JveFwifSwgXG5cdFx0XHRcdHRoaXMucHJvcHMuY2hpbGRyZW4sIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwiY2xlYXJcIn0pXG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gQ29udGVudEJveDsiLCIvLyBzaW1wbGUgbm90aWNvbiB3cmFwcGVyXG5cbnZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpO1xuXG52YXIgRGFzaGljb24gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiRGFzaGljb25cIixcblx0XG5cdHByb3BUeXBlczoge1xuXHRcdG5hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0XHRzdHlsZTogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcblx0XHRvbk1vdXNlT3ZlcjogUmVhY3QuUHJvcFR5cGVzLmZ1bmMsXG5cdFx0b25Nb3VzZU91dDogUmVhY3QuUHJvcFR5cGVzLmZ1bmNcblx0fSxcblxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG5cdFx0XHRcdHN0eWxlOiB0aGlzLnByb3BzLnN0eWxlLCBcblx0XHRcdFx0b25Nb3VzZU92ZXI6IHRoaXMucHJvcHMub25Nb3VzZU92ZXIsIFxuXHRcdFx0XHRvbk1vdXNlT3V0OiB0aGlzLnByb3BzLm9uTW91c2VPdXQsIFxuXHRcdFx0XHRjbGFzc05hbWU6IFwiZGFzaGljb25zIGRhc2hpY29ucy1cIit0aGlzLnByb3BzLm5hbWV9LCBcblxuXHRcdFx0XHR0aGlzLnByb3BzLmNoaWxkcmVuXG5cdFx0XHRcdFxuXHRcdFx0KVxuXHRcdCk7XG5cdH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IERhc2hpY29uOyIsInZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpLFxuXHRTaXRlU3RvcmUgPSByZXF1aXJlKCcuLi9zdG9yZXMvc2l0ZS1zdG9yZScpLFxuXHRTZXR1cFByb2dyZXNzQWN0aW9ucyA9IHJlcXVpcmUoJy4uL2FjdGlvbnMvc2V0dXAtcHJvZ3Jlc3MtYWN0aW9ucycpLFxuXHRUb29sdGlwID0gcmVxdWlyZSgnLi90b29sdGlwJyksXG5cdFdlbGNvbWVTZWN0aW9uID0gcmVxdWlyZSgnLi93ZWxjb21lLXNlY3Rpb24nKSxcblx0Q29udGVudEJveCA9IHJlcXVpcmUoJy4vY29udGVudC1ib3gnKSxcblx0c3R5bGVzID0gcmVxdWlyZSgnLi4vc3R5bGVzJyksXG5cdEJ1dHRvbiA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9idXR0b24nKTtcblxuZnVuY3Rpb24gZ2V0VGhlbWVTdGF0ZSgpIHtcblx0cmV0dXJuIHsgdGhlbWVzOiBTaXRlU3RvcmUuZ2V0VGhlbWVzKCksIHNpdGVfdGl0bGU6IFNpdGVTdG9yZS5nZXRUaXRsZSgpIH07XG59XG5cbnZhciBEZXNpZ25TdGVwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkRlc2lnblN0ZXBcIixcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0XHR0aGlzLl9sb2FkUG9wdWxhclRoZW1lcygpO1xuXHR9LFxuXG5cdGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRTaXRlU3RvcmUucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdF9vbkNoYW5nZTogZnVuY3Rpb24oKSB7XG4gICAgXHR0aGlzLnNldFN0YXRlKGdldFRoZW1lU3RhdGUoKSk7XG4gIFx0fSxcblxuXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBpbml0aWFsU3RhdGUgPSBnZXRUaGVtZVN0YXRlKCk7XG5cdFx0aW5pdGlhbFN0YXRlLnBvcHVsYXJUaGVtZXMgPSBbXTtcblx0XHRyZXR1cm4gaW5pdGlhbFN0YXRlO1xuXHR9LFxuXG5cdGhhbmRsZUFjdGl2YXRlVGhlbWU6IGZ1bmN0aW9uICggZSApIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XG5cdFx0dGhpcy5zZXRTdGF0ZSh7dG9vbHRpcFRoZW1lOiBudWxsLCB0b29sdGlwUG9zaXRpb246IG51bGx9KTtcblxuXHRcdHZhciAkZWwgPSBqUXVlcnkoZS5jdXJyZW50VGFyZ2V0KSxcblx0XHRcdHRoZW1lSWQgPSAkZWwuZGF0YSgndGhlbWUtaWQnKSxcblx0XHRcdHRoZW1lID0gdGhpcy5maW5kVGhlbWUodGhlbWVJZCksXG5cdFx0XHRuZWVkc0luc3RhbGxhdGlvbiA9ICF0aGVtZS5pbnN0YWxsZWQ7XG5cblx0XHR2YXIgcmVzcG9uc2UgPSBTZXR1cFByb2dyZXNzQWN0aW9ucy5zZXRBY3RpdmVUaGVtZSh0aGVtZSk7XG5cblx0XHQvLyBpZiB3ZSBqdXN0IGluc3RhbGxlZCBhIHRoZW1lIGZyb20gdGhlIFwicG9wdWxhclwiIGxpc3QsIGxldCdzIGxvYWQgc29tZSBuZXdcblx0XHQvLyBzZWxlY3Rpb25zIG9uY2UgaW5zdGFsbGF0aW9uIGlzIGZpbmlzaGVkXG5cdFx0aWYgKCBuZWVkc0luc3RhbGxhdGlvbiApIHtcblx0XHRcdHJlc3BvbnNlLmRvbmUoIGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0dGhpcy5fbG9hZFBvcHVsYXJUaGVtZXMoKTtcblx0XHRcdH0uYmluZCh0aGlzKSk7XG5cdFx0fVxuXHR9LFxuXG5cdGZpbmRUaGVtZTogZnVuY3Rpb24gKCB0aGVtZUlkIClcdHtcblx0XHRyZXR1cm4gXy5maW5kV2hlcmUodGhpcy5zdGF0ZS50aGVtZXMsIHtpZDogdGhlbWVJZH0pIHx8IF8uZmluZFdoZXJlKHRoaXMuc3RhdGUucG9wdWxhclRoZW1lcywge2lkOiB0aGVtZUlkfSk7XG5cdH0sXG5cblx0aGFuZGxlQ29udGludWU6IGZ1bmN0aW9uICggZSApIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0U2V0dXBQcm9ncmVzc0FjdGlvbnMuc2F2ZURlc2lnblN0ZXAoKTtcblx0fSxcblxuXHRoYW5kbGVTaG93VG9vbHRpcDogZnVuY3Rpb24gKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblxuXHRcdHZhciAkZWwgICA9IGpRdWVyeShlLmN1cnJlbnRUYXJnZXQpLFxuXHRcdFx0dGhlbWUgPSB0aGlzLmZpbmRUaGVtZSgkZWwuZGF0YSgndGhlbWUtaWQnKSksXG5cdFx0XHRvZmZzZXQgPSAkZWwucG9zaXRpb24oKSxcblx0XHRcdHdpZHRoID0gJGVsLm91dGVyV2lkdGgoKSxcblx0XHRcdGhlaWdodCA9ICRlbC5vdXRlckhlaWdodCgpO1xuXHRcdFxuXHRcdC8vZGVzY3JpYmVzIGEgcG9zaXRpb24gaW4gdGhlIG1pZGRsZSBvZiB0aGUgcmlnaHQgc2lkZVxuXHRcdHZhciBwb3NpdGlvbiA9IHtcblx0XHRcdHRvcDogb2Zmc2V0LnRvcCArIChoZWlnaHQvMiksXG5cdFx0XHRsZWZ0OiBvZmZzZXQubGVmdCArIHdpZHRoXG5cdFx0fTtcblxuXHRcdHRoaXMuc2V0U3RhdGUoe3Rvb2x0aXBUaGVtZTogdGhlbWUsIHRvb2x0aXBQb3NpdGlvbjogcG9zaXRpb259KTtcblx0fSxcblxuXHRoYW5kbGVIaWRlVG9vbHRpcDogZnVuY3Rpb24gKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR0aGlzLnNldFN0YXRlKHt0b29sdGlwVGhlbWU6IG51bGwsIHRvb2x0aXBQb3NpdGlvbjogbnVsbH0pO1xuXHR9LFxuXG5cdGhhbmRsZUdldFBvcHVsYXJUaGVtZXM6IGZ1bmN0aW9uICggZSApIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0dGhpcy5fbG9hZFBvcHVsYXJUaGVtZXMoKTtcdFx0XG5cdH0sXG5cblx0X2xvYWRQb3B1bGFyVGhlbWVzOiBmdW5jdGlvbigpIHtcblx0XHRTaXRlU3RvcmUuZ2V0UG9wdWxhclRoZW1lcygpLmRvbmUoZnVuY3Rpb24odGhlbWVzKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKHtwb3B1bGFyVGhlbWVzOiB0aGVtZXN9KTtcblx0XHR9LmJpbmQodGhpcykpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChXZWxjb21lU2VjdGlvbiwge2lkOiBcIndlbGNvbWVfX2Rlc2lnblwifSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIHRoaXMuc3RhdGUuc2l0ZV90aXRsZSkpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImg0XCIsIG51bGwsIFwiUGljayBhIGRlc2lnblwiKSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtzdHlsZTogc3R5bGVzLmNvbnRlbnR9LCBcIkEgXFxcInRoZW1lXFxcIiBjb250cm9scyB0aGUgZGVzaWduIG9mIHlvdXIgc2l0ZSAtIGNvbG91cnMsIGZvbnRzIGFuZCBsYXlvdXQuXCIpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge3N0eWxlOiBzdHlsZXMuY29udGVudH0sIFwiQ2xpY2sgYW55IHRoZW1lIGJlbG93IHRvIGNob29zZSBpdCBmb3IgeW91ciBzaXRlLiBBbmQgZG9uJ3Qgd29ycnkgLSB5b3UgY2FuIGVhc2lseSBjaGFuZ2UgdGhpcyBsYXRlci5cIiksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7Y2xhc3NOYW1lOiBcInN1Ym1pdFwifSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJibHVlXCIsIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ29udGludWV9LCBcIk5leHQgU3RlcCDihpJcIilcblx0XHRcdFx0KSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudEJveCwgbnVsbCwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIFwiSW5zdGFsbGVkIHRoZW1lc1wiKSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcInRoZW1lLWJyb3dzZXIgcmVuZGVyZWRcIn0sIFxuXHRcdFx0XHRcdFx0dGhpcy5fcmVuZGVyVGhlbWVMaXN0KClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksIFxuXHRcdFx0XHRcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50Qm94LCBudWxsLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDNcIiwgbnVsbCwgXCJQb3B1bGFyIHRoZW1lcyBmcm9tIFdvcmRQcmVzcy5vcmdcIiwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJibHVlXCIsIHN0eWxlOiB7ZmxvYXQ6ICdyaWdodCd9LCBvbkNsaWNrOiB0aGlzLmhhbmRsZUdldFBvcHVsYXJUaGVtZXN9LCBcIkxvYWQgbW9yZSB0aGVtZXNcIilcblx0XHRcdFx0XHQpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwidGhlbWUtYnJvd3NlciByZW5kZXJlZFwifSwgXG5cdFx0XHRcdFx0XHR0aGlzLl9yZW5kZXJQb3B1bGFyVGhlbWVMaXN0KClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksIFxuXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB7Y2xlYXI6ICdib3RoJ319KSwgXG5cdFx0XHRcdHRoaXMuc3RhdGUudG9vbHRpcFRoZW1lICYmIHRoaXMuX3JlbmRlclRvb2x0aXAoKVxuXHRcdFx0KVxuXHRcdCk7XG5cdH0sXG5cblx0X3JlbmRlclRvb2x0aXA6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciB0aGVtZSA9IHRoaXMuc3RhdGUudG9vbHRpcFRoZW1lLCBwb3NpdGlvbiA9IHRoaXMuc3RhdGUudG9vbHRpcFBvc2l0aW9uO1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFRvb2x0aXAsIHtcblx0XHRcdFx0bGVmdDogcG9zaXRpb24ubGVmdCwgXG5cdFx0XHRcdHRvcDogcG9zaXRpb24udG9wLCBcblx0XHRcdFx0d2lkdGg6IDMyMCwgXG5cdFx0XHRcdHRpdGxlOiB0aGVtZS5uYW1lfSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIG51bGwsIFwiQnkgXCIsIHRoZW1lLmF1dGhvciksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtfX2h0bWw6IF8udW5lc2NhcGUodGhlbWUuZGVzY3JpcHRpb24pfX0pXG5cdFx0XHQpXG5cdFx0KTtcblx0fSxcblxuXHRfcmVuZGVyVGhlbWU6IGZ1bmN0aW9uKHRoZW1lKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2tleTogdGhlbWUuaWQsIFxuXHRcdFx0XHRjbGFzc05hbWU6ICd0aGVtZScgKyAodGhlbWUuYWN0aXZlID8gJyBhY3RpdmUnIDogJycpLCBcblx0XHRcdFx0XCJkYXRhLXRoZW1lLWlkXCI6IHRoZW1lLmlkLCBcblx0XHRcdFx0b25DbGljazogdGhpcy5oYW5kbGVBY3RpdmF0ZVRoZW1lLCBcblx0XHRcdFx0b25Nb3VzZUVudGVyOiB0aGlzLmhhbmRsZVNob3dUb29sdGlwLCBcblx0XHRcdFx0b25Nb3VzZUxlYXZlOiB0aGlzLmhhbmRsZUhpZGVUb29sdGlwLCBcblx0XHRcdFx0XCJhcmlhLWRlc2NyaWJlZGJ5XCI6IHRoZW1lLmlkKyctYWN0aW9uICcrdGhlbWUuaWQrJy1uYW1lJ30sIFxuXG5cdFx0XHRcdHRoZW1lLnNjcmVlbnNob3QgPyAoXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcInRoZW1lLXNjcmVlbnNob3RcIn0sIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImltZ1wiLCB7c3JjOiB0aGVtZS5zY3JlZW5zaG90LCBhbHQ6IFwiXCJ9KVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KSA6IChcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwidGhlbWUtc2NyZWVuc2hvdCBibGFua1wifSlcblx0XHRcdFx0KSwgXG5cdFx0XHRcdCF0aGVtZS5hY3RpdmUgJiYgKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtjbGFzc05hbWU6IFwibW9yZS1kZXRhaWxzXCJ9LCB0aGVtZS5pbnN0YWxsZWQgPyAnQ2xpY2sgdG8gc2VsZWN0JyA6ICdDbGljayB0byBpbnN0YWxsJykpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIHtjbGFzc05hbWU6IFwidGhlbWUtbmFtZVwiLCBpZDogdGhlbWUuaWQrJy1uYW1lJ30sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIHRoZW1lLmFjdGl2ZSA/ICdTZWxlY3RlZDonIDogJycpLCBcIiBcIiwgdGhlbWUubmFtZSlcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdF9yZW5kZXJQb3B1bGFyVGhlbWVMaXN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5zdGF0ZS5wb3B1bGFyVGhlbWVzLm1hcCggdGhpcy5fcmVuZGVyVGhlbWUgKTtcblx0fSxcblxuXHRfcmVuZGVyVGhlbWVMaXN0OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gdGhpcy5zdGF0ZS50aGVtZXMubWFwKCB0aGlzLl9yZW5kZXJUaGVtZSApO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBEZXNpZ25TdGVwOyIsIi8qKlxuICogRGlzcGxheXMgYSBmbGFzaCBtZXNzYWdlLCBpZiBzZXQuXG4gKiBKU09OIHN0cnVjdHVyZTpcbiAqIHsgc2V2ZXJpdHk6ICdub3RpY2UnLCBtZXNzYWdlOiAnTXkgbWVzc2FnZScgfVxuICpcbiAqIFZhbGlkIHNldmVyaXRpZXM6XG4gKiAtIGVycm9yLCBub3RpY2VcbiAqL1xuXG52YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKSxcblx0Rmxhc2hTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9mbGFzaC1zdG9yZScpO1xuXG5mdW5jdGlvbiBnZXRGbGFzaFN0YXRlKCkge1xuXHRyZXR1cm4gRmxhc2hTdG9yZS5nZXRGbGFzaCgpO1xufVxuXG52YXIgRmxhc2ggPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiRmxhc2hcIixcblx0Y29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdEZsYXNoU3RvcmUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRGbGFzaFN0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRGbGFzaFN0YXRlKCkpO1xuICBcdH0sXG5cblx0Z2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZ2V0Rmxhc2hTdGF0ZSgpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCB0aGlzLnN0YXRlLm1lc3NhZ2UgKSB7XG5cdFx0XHRyZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogdGhpcy5zdGF0ZS5zZXZlcml0eSArICcgdXBkYXRlZCd9LCB0aGlzLnN0YXRlLm1lc3NhZ2UpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fVxuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBGbGFzaDsiLCJ2YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKSxcblx0U2V0dXBQcm9ncmVzc1N0b3JlID0gcmVxdWlyZSgnLi4vc3RvcmVzL3NldHVwLXByb2dyZXNzLXN0b3JlJyksXG5cdFNldHVwUHJvZ3Jlc3NBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9zZXR1cC1wcm9ncmVzcy1hY3Rpb25zJyksXG5cdEJ1dHRvbiA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9idXR0b24nKSxcblx0bSA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvdXRpbHMvbScpLFxuXHRSYWRpdW0gPSByZXF1aXJlKCdyYWRpdW0nKTtcblxuZnVuY3Rpb24gZ2V0U2V0dXBTdGF0ZSgpIHtcblx0cmV0dXJuIHt9O1xufVxuXG52YXIgR2V0U3RhcnRlZCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJHZXRTdGFydGVkXCIsXG5cdGNvbXBvbmVudERpZE1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRTZXR1cFByb2dyZXNzU3RvcmUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbigpIHtcblx0XHRTZXR1cFByb2dyZXNzU3RvcmUucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25DaGFuZ2UpO1xuXHR9LFxuXG5cdF9vbkNoYW5nZTogZnVuY3Rpb24oKSB7XG4gICAgXHR0aGlzLnNldFN0YXRlKGdldFNldHVwU3RhdGUoKSk7XG4gIFx0fSxcblxuXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRTZXR1cFN0YXRlKCk7XG5cdH0sXG5cblx0aGFuZGxlR2V0U3RhcnRlZDogZnVuY3Rpb24oZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTZXR1cFByb2dyZXNzQWN0aW9ucy5nZXRTdGFydGVkKCk7XG5cdH0sXG5cblx0aGFuZGxlTm9UaGFua3M6IGZ1bmN0aW9uKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0U2V0dXBQcm9ncmVzc0FjdGlvbnMuZGlzYWJsZUpQUygpO1x0XG5cdH0sXG5cblx0X2lzSUU4OiBmdW5jdGlvbigpIHtcblx0XHRqUXVlcnkoJ2h0bWwnKS5pcygnLmllOCcpO1xuXHR9LFxuXG5cdHN0eWxlczoge1xuXHRcdHdyYXBwZXI6IHtcblx0XHRcdHRleHRBbGlnbjogJ2NlbnRlcicsXG5cdFx0XHQvLyBiYWNrZ3JvdW5kSW1hZ2U6ICd1cmwoJytKUFMuYmFzZV91cmwrJy9pbWcvanBzLXdlbGNvbWUucG5nKScsXG5cdFx0XHRiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0Jyxcblx0XHRcdGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlciBib3R0b20nLFxuXHRcdFx0YmFja2dyb3VuZFNpemU6ICc1MjBweCBhdXRvJyxcblx0XHRcdHBvc2l0aW9uOiAnZml4ZWQnLFxuXHRcdCAgICB0b3A6IDAsXG5cdFx0XHRsZWZ0OiAxNjAsXG5cdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0aGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJyxcblx0XHRcdHBhZGRpbmdUb3A6IDEwMCxcblx0XHRcdHpJbmRleDogOTk5LFxuXHRcdFx0J0BtZWRpYSAobWF4LXdpZHRoOiA5NjBweCknOiB7XG5cdFx0XHRcdGxlZnQ6IDM2XG5cdFx0XHR9LFxuXHRcdFx0J0BtZWRpYSAobWF4LXdpZHRoOiA3ODJweCknOiB7XG5cdFx0XHRcdGxlZnQ6IDBcblx0XHRcdH1cblx0XHR9LFxuXHRcdHdyYXBwZXJJRTg6IHtcblx0XHRcdGJhY2tncm91bmRJbWFnZTogJ25vbmUnXG5cdFx0fSxcblx0XHRpbm5lcndyYXBwZXI6IHtcblx0XHRcdG1hcmdpbjogJzAgMCAwIC0xNjBweCcsXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDk2MHB4KSc6IHtcblx0XHRcdFx0bWFyZ2luOiAnMCAwIDAgLTM2cHgnXG5cdFx0XHR9LFxuXHRcdFx0J0BtZWRpYSAobWF4LXdpZHRoOiA3ODJweCknOiB7XG5cdFx0XHRcdG1hcmdpbjogJzAnXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRzdWJoZWFkOiB7XG5cdFx0XHRtYXJnaW46ICcyMHB4IDAgMTVweCcsXG5cdFx0XHRjb2xvcjogJyM2NjYnLFxuXHRcdFx0Zm9udFNpemU6IDE4LFxuXHRcdFx0bGluZUhlaWdodDogMS42LFxuXHRcdFx0dGV4dEFsaWduOiAnY2VudGVyJyxcblx0XHRcdCdAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpJzoge1xuXHRcdFx0XHRtYXJnaW5Cb3R0b206IDE1LFxuXHRcdFx0XHRmb250U2l6ZTogMTVcblx0XHRcdH0sXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDMyMHB4KSc6IHtcblx0XHRcdFx0Zm9udFNpemU6IDEzXG5cdFx0XHR9XG5cdFx0fSxcblx0XHRidXR0b246IHtcblx0XHRcdGJvcmRlclJhZGl1czogNixcblx0XHRcdGZvbnRGYW1pbHk6ICdwcm94aW1hLW5vdmEsIFxcJ09wZW4gU2Fuc1xcJywgSGVsdmV0aWNhLCBzYW5zLXNlcmlmJyxcblx0XHRcdGZvbnRTaXplOiAxNixcblx0XHRcdGxpbmVIZWlnaHQ6IDEsXG5cdFx0XHRwYWRkaW5nOiAnMC42NDI4NmVtIDAuODU3MTRlbSAwLjUzNTcxZW0nLFxuXHRcdH0sXG5cblx0XHRncmVlbkJ1dHRvbjoge1xuXHRcdFx0Ym9yZGVyV2lkdGg6ICcxcHgnLFxuXHRcdFx0Ym9yZGVyU3R5bGU6ICdzb2xpZCcsXG5cdFx0XHRib3JkZXJDb2xvcjogJ3JnYig2MiwgMTA4LCAzMiknLFxuXHRcdFx0YmFja2dyb3VuZDogJ3JnYig4MSwgMTQxLCA0MiknLFxuXHRcdFx0Ym94U2hhZG93OiAncmdiKDYyLCAxMDgsIDMyKSAwcHggM3B4IDBweCwgcmdiYSgwLCAwLCAwLCAwLjQpIDBweCA0cHggM3B4Jyxcblx0XHRcdGNvbG9yOiAnI2ZmZicsXG5cdFx0XHQnOmhvdmVyJzoge1xuXHRcdFx0XHRjb2xvcjogJyNmZmYnLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiAncmdiKDEyOSwgMTY4LCA2OCknLFxuXHRcdFx0XHRib3JkZXJDb2xvcjogJ3JnYigxMjksIDE2OCwgNjgpJyxcblx0XHRcdH1cblx0XHR9LFxuXHRcdGdyYXlCdXR0b246IHtcblx0XHRcdGJhY2tncm91bmQ6ICdsaW5lYXItZ3JhZGllbnQocmdiKDI1NSwgMjU1LCAyNTUpLCByZ2IoMjQ5LCAyNDksIDI0OSkpJyxcblx0XHRcdGJveFNoYWRvdzogJ3JnYigxNTAsIDE1MCwgMTUwKSAwcHggM3B4IDBweCwgcmdiYSgwLCAwLCAwLCAwLjQpIDBweCA0cHggM3B4Jyxcblx0XHRcdGNvbG9yOiAnIzMzMydcblx0XHR9XG5cblx0fSxcblxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtrZXk6IFwid2VsY29tZS1pbnRyb1wiLCBzdHlsZTogW3RoaXMuc3R5bGVzLndyYXBwZXIsIHRoaXMuX2lzSUU4KCkgJiYgdGhpcy5zdHlsZXMud3JhcHBlcklFOF19LCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7a2V5OiBcIndlbGNvbWUtaW50cm8taW5uZXJ3cmFwcGVyXCIsIHN0eWxlOiB0aGlzLnN0eWxlcy5pbm5lcndyYXBwZXJ9LCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaDNcIiwge3N0eWxlOiB7Zm9udFNpemU6IDMwLCBtYXJnaW5Ub3A6IDMwfX0sIFwiV2VsY29tZSB0byBXb3JkUHJlc3NcIiksIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMuc3ViaGVhZH0sIFwiV291bGQgeW91IGxpa2UgaGVscCBkZXNpZ25pbmcgeW91ciBzaXRlP1wiKSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwgbnVsbCwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge3N0eWxlOiAgbSggdGhpcy5zdHlsZXMuYnV0dG9uLCB0aGlzLnN0eWxlcy5ncmVlbkJ1dHRvbiksIG9uQ2xpY2s6IHRoaXMuaGFuZGxlR2V0U3RhcnRlZH0sIFwiWWVzXCIpLCBcblx0XHRcdFx0XHRcIsKgwqDCoFwiLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7c3R5bGU6ICBtKCB0aGlzLnN0eWxlcy5idXR0b24sIHRoaXMuc3R5bGVzLmdyYXlCdXR0b24pLCBvbkNsaWNrOiB0aGlzLmhhbmRsZU5vVGhhbmtzfSwgXCJObyB0aGFua3NcIilcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBSYWRpdW0oR2V0U3RhcnRlZCk7IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdFNpdGVBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9zaXRlLWFjdGlvbnMnKSxcblx0UGF0aHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1wYXRocycpO1xuXG5mdW5jdGlvbiBnZXRKZXRwYWNrUHJvZ3Jlc3MoKSB7XG5cdHJldHVybiB7IFxuXHRcdGpldHBhY2tDb25maWd1cmVkOiBTaXRlU3RvcmUuZ2V0SmV0cGFja0NvbmZpZ3VyZWQoKVxuXHR9O1xufVxuXG52YXIgSmV0cGFja0p1bXBzdGFydE1lbnUgPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiSmV0cGFja0p1bXBzdGFydE1lbnVcIixcblx0Y29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNpdGVTdG9yZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLl9vbkNoYW5nZSk7XG5cdH0sXG5cblx0Y29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNpdGVTdG9yZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcih0aGlzLl9vbkNoYW5nZSk7XG5cdH0sXG5cblx0X29uQ2hhbmdlOiBmdW5jdGlvbigpIHtcbiAgICBcdHRoaXMuc2V0U3RhdGUoZ2V0SmV0cGFja1Byb2dyZXNzKCkpO1xuICBcdH0sXG5cbiAgXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRKZXRwYWNrUHJvZ3Jlc3MoKTtcblx0fSxcblxuXHRoYW5kbGVDbGlja0Nvbm5lY3Q6IGZ1bmN0aW9uKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0U2l0ZUFjdGlvbnMuY29uZmlndXJlSmV0cGFjayhQYXRocy5KRVRQQUNLX01PRFVMRVNfU1RFUF9TTFVHKTtcblx0fSxcblxuXHRzdHlsZToge1xuXHRcdGNvbG9yOiAnYmxhY2snLFxuXHRcdGZvbnRTaXplOiAxMixcblx0XHRtYXJnaW5Ub3A6IDUsXG5cdFx0bWFyZ2luTGVmdDogMjAsXG5cdH0sXG5cblx0cHJpbWFyeUNvbm5lY3RCdG46IHtcblx0XHRtYXJnaW5Ub3A6IDEwLFxuXHRcdG1hcmdpbkJvdHRvbTogMjAsXG5cdH0sXG5cblx0cmVuZGVyOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHRoaXMuc3R5bGV9LCBcblx0XHRcdFx0dGhpcy5zdGF0ZS5qZXRwYWNrQ29uZmlndXJlZCA/IChcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwpXG5cdFx0XHRcdCkgOiAoXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBcblx0XHRcdFx0XHRcdFwiQm9vc3QgdHJhZmZpYywgZW5oYW5jZSBzZWN1cml0eSwgYW5kIGltcHJvdmUgcGVyZm9ybWFuY2Ugd2l0aCBhIGNvbm5lY3Rpb24gdG8gV29yZFByZXNzLmNvbVwiLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnJcIiwgbnVsbCksIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2NsYXNzTmFtZTogXCJidXR0b24gYnV0dG9uLXByaW1hcnkgYnV0dG9uLWxhcmdlXCIsIHN0eWxlOiB0aGlzLnByaW1hcnlDb25uZWN0QnRuLCBocmVmOiBcIiNcIiwgb25DbGljazogdGhpcy5oYW5kbGVDbGlja0Nvbm5lY3R9LCBcIkNvbm5lY3QgdG8gV29yZFByZXNzLmNvbVwiKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KVxuXHRcdFx0XHRcblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBKZXRwYWNrSnVtcHN0YXJ0TWVudTsiLCJ2YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKSxcblx0UmFkaXVtID0gcmVxdWlyZSgncmFkaXVtJyksXG5cdFNraXBCdXR0b24gPSByZXF1aXJlKCcuL3NraXAtYnV0dG9uJyksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdFNpdGVBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9zaXRlLWFjdGlvbnMnKSxcblx0UGF0aHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1wYXRocycpLCBcblx0Q29udGVudEJveCA9IHJlcXVpcmUoJy4vY29udGVudC1ib3gnKSxcblx0c3R5bGVzID0gcmVxdWlyZSgnLi4vc3R5bGVzJyksXG5cdFdlbGNvbWVTZWN0aW9uID0gcmVxdWlyZSgnLi93ZWxjb21lLXNlY3Rpb24nKSxcblx0U2V0dXBQcm9ncmVzc0FjdGlvbnMgPSByZXF1aXJlKCcuLi9hY3Rpb25zL3NldHVwLXByb2dyZXNzLWFjdGlvbnMnKSxcblx0U3Bpbm5lclN0b3JlID0gcmVxdWlyZSgnLi4vc3RvcmVzL3NwaW5uZXItc3RvcmUnKSxcblx0QnV0dG9uID0gcmVxdWlyZSgnQGF1dG9tYXR0aWMvZG9wcy1yZWFjdC9qcy9jb21wb25lbnRzL2J1dHRvbicpO1xuXG5cbnZhciBKZXRwYWNrTG9nbyA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJKZXRwYWNrTG9nb1wiLFxuXHRzdHlsZXM6IHtcblx0XHRqZXRwYWNrTG9nb1dyYXBwZXI6IHtcblx0XHRcdGRpc3BsYXk6ICdibG9jaycsXG5cdFx0XHR0ZXh0QWxpZ246ICdjZW50ZXInLFxuXHRcdFx0aGVpZ2h0OiA3MCxcblx0XHRcdGNvbG9yOiAnd2hpdGUnLFxuXHRcdFx0bWFyZ2luTGVmdDogNSxcblx0XHRcdGJhY2tncm91bmRDb2xvcjogJyM4MWE4NDQnXG5cdFx0fSxcblx0XHRqZXRwYWNrTG9nbzoge1xuXHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdFx0XHRwb3NpdGlvbjogJ3JlbGF0aXZlJyxcblx0XHRcdHdpZHRoOiAyMTQsXG5cdFx0XHRtYXJnaW5SaWdodDogNixcblx0XHRcdGJhY2tncm91bmQ6ICd1cmwoJytKUFMuamV0cGFjay5sb2dvX3VybCsnKSBjZW50ZXIgY2VudGVyIG5vLXJlcGVhdCcsXG5cdFx0XHRiYWNrZ3JvdW5kU2l6ZTogJzE4M3B4IGF1dG8nLFxuXHRcdFx0Y29sb3I6ICcjZmZmJyxcblx0XHRcdGZvbnRXZWlnaHQ6ICdub3JtYWwnLFxuXHRcdFx0cGFkZGluZzogJzVweCAwcHgnXG5cdFx0fSxcblx0XHRqZXRwYWNrTG9nb05hbWU6IHtcblx0XHRcdHRleHRJbmRlbnQ6IC05OTk5LFxuXHRcdFx0dmlzaWJpbGl0eTogJ2hpZGRlbidcblx0XHR9XG5cblx0fSxcblxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7c3R5bGU6IFt0aGlzLnN0eWxlcy5qZXRwYWNrTG9nb1dyYXBwZXIsIHRoaXMucHJvcHMuc3R5bGVdfSwgXG5cdFx0XHRcdFwiUG93ZXJlZCBieVwiLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYnJcIiwgbnVsbCksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7aHJlZjogXCIvd3AtYWRtaW4vYWRtaW4ucGhwP3BhZ2U9amV0cGFja1wiLCB0aXRsZTogXCJKZXRwYWNrXCIsIHN0eWxlOiB0aGlzLnN0eWxlcy5qZXRwYWNrTG9nb30sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMuamV0cGFja0xvZ29OYW1lfSwgXCJKZXRwYWNrXCIpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxuSmV0cGFja0xvZ28gPSBSYWRpdW0oSmV0cGFja0xvZ28pO1xuXG5mdW5jdGlvbiBnZXRKZXRwYWNrU3RhdGUoKSB7XG5cdHJldHVybiB7XG5cdFx0c2l0ZV90aXRsZTogU2l0ZVN0b3JlLmdldFRpdGxlKCksXG5cdFx0amV0cGFja0NvbmZpZ3VyZWQ6IFNpdGVTdG9yZS5nZXRKZXRwYWNrQ29uZmlndXJlZCgpLFxuXHRcdGp1bXBzdGFydEVuYWJsZWQ6IFNpdGVTdG9yZS5nZXRKZXRwYWNrSnVtcHN0YXJ0RW5hYmxlZCgpLFxuXHRcdG1vZHVsZXNFbmFibGVkOiBTaXRlU3RvcmUuZ2V0QWN0aXZlTW9kdWxlU2x1Z3MoKVx0XG5cdH07XG59XG5cbnZhciBKZXRwYWNrSnVtcHN0YXJ0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkpldHBhY2tKdW1wc3RhcnRcIixcblxuXHRzdHlsZXM6IHtcblx0XHRqZXRwYWNrTG9nbzoge1xuXHRcdFx0ZmxvYXQ6ICdyaWdodCcsXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDc4MnB4KSc6IHtcblx0XHRcdFx0ZmxvYXQ6ICdub25lJyxcblx0XHRcdFx0bWFyZ2luTGVmdDogMFxuXHRcdFx0fVxuXHRcdH0sXG5cdFx0anVtcHN0YXJ0TW9kdWxlOiB7XG5cdFx0XHRmbG9hdDogJ2xlZnQnLFxuXHRcdFx0cG9zaXRpb246ICdyZWxhdGl2ZScsXG5cdFx0XHRoZWlnaHQ6IDE2MCxcblx0XHRcdHBhZGRpbmc6IDEwLFxuXHRcdFx0J0BtZWRpYSAobWluLXdpZHRoOiA3ODJweCknOiB7XG5cdFx0XHRcdHdpZHRoOiAnMzMlJ1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRqdW1wc3RhcnRNb2R1bGVEZXNjOiB7XG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snLFxuXHRcdFx0bWFyZ2luVG9wOiA1LFxuXHRcdFx0bGluZUhlaWdodDogJzE1MCUnXG5cdFx0fSxcblxuXHRcdG92ZXJsYXlDb250ZW50OiB7XG5cdFx0XHRtYXJnaW5Ub3A6IDEwLFxuXHRcdFx0bWFyZ2luQm90dG9tOiAxMFxuXHRcdH0sXG5cblx0XHRvdmVybGF5QmVmb3JlOiB7XG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snLFxuXHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXG5cdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0aGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDAsMCwwLDAuMiknXG5cdFx0fSxcblxuXHRcdG92ZXJsYXk6IHtcblx0XHRcdHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuXHRcdFx0dG9wOiAwLFxuXHRcdFx0bGVmdDogMCxcblx0XHRcdHdpZHRoOiAnMTAwJScsXG5cdFx0XHRoZWlnaHQ6ICcxMDAlJyxcblx0XHRcdG1pbkhlaWdodDogJzEwMCUnLFxuXHRcdFx0ekluZGV4OiA3MDBcblx0XHR9LFxuXG5cdFx0b3ZlcmxheUJvZHk6IHtcblx0XHRcdHRleHRBbGlnbjogJ2NlbnRlcicsXG5cdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdGJvcmRlclJhZGl1czogMyxcblx0XHRcdGJveFNoYWRvdzogJzAgMCA0cHggcmdiYSgwLDAsMCwwLjIpJyxcblx0XHRcdHpJbmRleDogODAwLFxuXHRcdFx0bGVmdDogJzUwJScsXG5cdFx0ICBcdHRvcDogJzUwJScsXG5cdFx0ICBcdHBhZGRpbmc6IDE1LFxuXHRcdCAgXHR0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTUwJSwtNTAlKScsXG5cdFx0XHR3aWR0aDogJzcwJScsXG5cdFx0XHRiYWNrZ3JvdW5kQ29sb3I6ICcjZmZmJ1xuXHRcdH0sXG5cblx0XHRtb3JlTGluazoge1xuXHRcdFx0dGV4dEFsaWduOiAnY2VudGVyJ1xuXHRcdH1cblx0fSxcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRKZXRwYWNrU3RhdGUoKSk7XG4gIFx0fSxcblxuXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBzdGF0ZSA9IGdldEpldHBhY2tTdGF0ZSgpO1xuXHRcdHN0YXRlLnNob3dNb3JlTW9kdWxlcyA9IGZhbHNlO1xuXHRcdHJldHVybiBzdGF0ZTtcblx0fSxcblxuXHRoYW5kbGVKZXRwYWNrQ29ubmVjdDogZnVuY3Rpb24gKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHRTaXRlQWN0aW9ucy5jb25maWd1cmVKZXRwYWNrKFBhdGhzLkpFVFBBQ0tfTU9EVUxFU19TVEVQX1NMVUcpO1xuXHR9LFxuXG5cdGhhbmRsZUNoYW5nZU1vZHVsZVN0YXR1czogZnVuY3Rpb24gKGUpIHtcblx0XHR2YXIgJHRhcmdldCA9IGpRdWVyeShlLmN1cnJlbnRUYXJnZXQpLFxuXHRcdFx0bW9kdWxlX3NsdWcgPSAkdGFyZ2V0LmRhdGEoJ21vZHVsZS1zbHVnJyk7XG5cblx0XHRpZiAoIFNpdGVTdG9yZS5pc0pldHBhY2tNb2R1bGVFbmFibGVkKG1vZHVsZV9zbHVnKSApIHtcblx0XHRcdFNpdGVBY3Rpb25zLmRlYWN0aXZhdGVKZXRwYWNrTW9kdWxlKG1vZHVsZV9zbHVnKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0U2l0ZUFjdGlvbnMuYWN0aXZhdGVKZXRwYWNrTW9kdWxlKG1vZHVsZV9zbHVnKTtcblx0XHR9XG5cdH0sXG5cblx0aGFuZGxlRW5hYmxlQWxsTW9kdWxlczogZnVuY3Rpb24oZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTaXRlQWN0aW9ucy5lbmFibGVKdW1wc3RhcnQoKTtcblx0fSxcblxuXHRoYW5kbGVOZXh0OiBmdW5jdGlvbiAoZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblxuXHRcdFNldHVwUHJvZ3Jlc3NBY3Rpb25zLmNvbXBsZXRlQW5kTmV4dFN0ZXAoUGF0aHMuSkVUUEFDS19NT0RVTEVTX1NURVBfU0xVRyk7XG5cdH0sXG5cblx0aGFuZGxlU2hvd01vcmVNb2R1bGVzOiBmdW5jdGlvbiAoZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRcblx0XHRTaXRlQWN0aW9ucy5sb2FkQWxsSmV0cGFja01vZHVsZXMoKS5kb25lKGZ1bmN0aW9uKCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSh7c2hvd01vcmVNb2R1bGVzOiB0cnVlfSk7XG5cdFx0fS5iaW5kKHRoaXMpKTtcblx0fSxcblxuXHRoYW5kbGVTaG93RmV3ZXJNb2R1bGVzOiBmdW5jdGlvbiAoZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHR0aGlzLnNldFN0YXRlKHtzaG93TW9yZU1vZHVsZXM6IGZhbHNlfSk7XG5cdH0sXG5cblx0X3JlbmRlck1vZHVsZTogZnVuY3Rpb24obW9kdWxlKSB7XG5cdFx0dmFyIGlzQWN0aXZlID0gU2l0ZVN0b3JlLmlzSmV0cGFja01vZHVsZUVuYWJsZWQobW9kdWxlLnNsdWcpO1xuXHRcdHZhciBtb2R1bGVJZCA9ICdqcC1tb2R1bGUtJyttb2R1bGUuc2x1Zztcblx0XHRcblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7a2V5OiAnbW9kdWxlcy0nK21vZHVsZS5zbHVnLCBzdHlsZTogdGhpcy5zdHlsZXMuanVtcHN0YXJ0TW9kdWxlfSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7aWQ6IG1vZHVsZUlkLCB0eXBlOiBcImNoZWNrYm94XCIsIGNoZWNrZWQ6IGlzQWN0aXZlLCBcImRhdGEtbW9kdWxlLXNsdWdcIjogbW9kdWxlLnNsdWcsIG9uQ2hhbmdlOiB0aGlzLmhhbmRsZUNoYW5nZU1vZHVsZVN0YXR1c30pLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtodG1sRm9yOiBtb2R1bGVJZH0sIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzdHJvbmdcIiwgbnVsbCwgbW9kdWxlLm5hbWUpKSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB0aGlzLnN0eWxlcy5qdW1wc3RhcnRNb2R1bGVEZXNjfSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7ZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtfX2h0bWw6IG1vZHVsZS5kZXNjcmlwdGlvbn19KSwgXG5cdFx0XHRcdFx0aXNBY3RpdmUgJiYgbW9kdWxlLmNvbmZpZ3VyZV91cmwgJiYgKFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBudWxsLCBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7dGFyZ2V0OiBcIl9jb25maWd1cmVcIiwgaHJlZjogbW9kdWxlLmNvbmZpZ3VyZV91cmx9LCBcImNvbmZpZ3VyZVwiKSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIG1vZHVsZU92ZXJsYXlCZWZvcmUsIG1vZHVsZU92ZXJsYXksIG1vZHVsZU92ZXJsYXlCb2R5O1xuXG5cblx0XHRpZiAoICEgdGhpcy5zdGF0ZS5qZXRwYWNrQ29uZmlndXJlZCAmJiAhU3Bpbm5lclN0b3JlLnNob3dpbmcoKSApIHtcblx0XHRcdG1vZHVsZU92ZXJsYXlCZWZvcmUgPSAoXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB0aGlzLnN0eWxlcy5vdmVybGF5QmVmb3JlfSlcblx0XHRcdCk7XG5cdFx0XHRtb2R1bGVPdmVybGF5ID0gKFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtzdHlsZTogdGhpcy5zdHlsZXMub3ZlcmxheX0pXG5cdFx0XHQpO1xuXHRcdFx0bW9kdWxlT3ZlcmxheUJvZHkgPSAoXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB0aGlzLnN0eWxlcy5vdmVybGF5Qm9keX0sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMub3ZlcmxheUNvbnRlbnR9LCBcIlRoZXNlIG1vZHVsZXMgcmVxdWlyZSBhIFdvcmRQcmVzcy5jb20gYWNjb3VudCAtIGl0J3MgZnJlZSFcIiksIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQnV0dG9uLCB7Y29sb3I6IFwiZ3JlZW5cIiwgc2l6ZTogXCJiaWdcIiwgdGhlbWU6IFwiamV0cGFja1wiLCBvbkNsaWNrOiB0aGlzLmhhbmRsZUpldHBhY2tDb25uZWN0fSwgXCJDb25uZWN0IHRvIFdvcmRQcmVzcy5jb21cIiksIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMub3ZlcmxheUNvbnRlbnR9LCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2tpcEJ1dHRvbiwgbnVsbClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdCk7XG5cdFx0fVxuXG5cdFx0dmFyIG1vZHVsZURlc2NyaXB0aW9ucyA9IFNpdGVTdG9yZS5nZXRKdW1wc3RhcnRNb2R1bGVzKCkubWFwKHRoaXMuX3JlbmRlck1vZHVsZSk7XG5cdFx0dmFyIG1vcmVNb2R1bGVEZXNjcmlwdGlvbnMgPSBTaXRlU3RvcmUuZ2V0SmV0cGFja0FkZGl0aW9uYWxNb2R1bGVzKCkubWFwKHRoaXMuX3JlbmRlck1vZHVsZSk7XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChXZWxjb21lU2VjdGlvbiwgbnVsbCwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIHRoaXMuc3RhdGUuc2l0ZV90aXRsZSkpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImg0XCIsIG51bGwsIFwiRW5hYmxlIEpldHBhY2sgZmVhdHVyZXNcIiksIFxuXHRcdFx0XHR0aGlzLnN0YXRlLmpldHBhY2tDb25maWd1cmVkICYmIChcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChKZXRwYWNrTG9nbywge3N0eWxlOiB0aGlzLnN0eWxlcy5qZXRwYWNrTG9nb30pLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtzdHlsZTogc3R5bGVzLmNvbnRlbnR9LCBcIkNvbmdyYXR1bGF0aW9ucyEgWW91J3ZlIGVuYWJsZWQgSmV0cGFjayBhbmQgdW5sb2NrZWQgZG96ZW5zIG9mIHBvd2VyZnVsIGZlYXR1cmVzLlwiKSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7c3R5bGU6IHN0eWxlcy5jb250ZW50fSwgXCJDaGVjayB0aGUgYm94ZXMgYmVsb3cgdG8gZW5hYmxlIG91ciBtb3N0IHBvcHVsYXIgZmVhdHVyZXMuXCIpLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJjbGVhclwifSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwid2VsY29tZV9fY29ubmVjdFwifSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHtwb3NpdGlvbjogJ3JlbGF0aXZlJ319LCBcblx0XHRcdFx0XHRcdG1vZHVsZU92ZXJsYXlCZWZvcmUsIFxuXHRcdFx0XHRcdFx0bW9kdWxlT3ZlcmxheSwgXG5cdFx0XHRcdFx0XHRtb2R1bGVPdmVybGF5Qm9keSwgXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuamV0cGFja0NvbmZpZ3VyZWQgJiYgKFxuXHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtjbGFzc05hbWU6IFwic3VibWl0XCJ9LCBcblx0XHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge3N0eWxlOiB7ZmxvYXQ6ICdyaWdodCd9LCBjb2xvcjogXCJibHVlXCIsIG9uQ2xpY2s6IHRoaXMuaGFuZGxlTmV4dH0sIFwiTmV4dCBTdGVwIOKGklwiKSwgXG5cdFx0XHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImNsZWFyXCJ9KVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpLCBcblxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChDb250ZW50Qm94LCBudWxsLCBcblx0XHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIFwiUG9wdWxhciBmZWF0dXJlc1wiICsgJyAnICtcblx0XHRcdFx0XHRcdFx0XHRcIsKgwqBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtkaXNhYmxlZDogdGhpcy5zdGF0ZS5qdW1wc3RhcnRFbmFibGVkLCBjb2xvcjogXCJibHVlXCIsIG9uQ2xpY2s6IHRoaXMuaGFuZGxlRW5hYmxlQWxsTW9kdWxlc30sIHRoaXMuc3RhdGUuanVtcHN0YXJ0RW5hYmxlZCA/ICdFbmFibGVkIEFsbCcgOiAnRW5hYmxlIGFsbCAocmVjb21tZW5kZWQpJylcblx0XHRcdFx0XHRcdFx0KSwgXG5cdFx0XHRcdFx0XHRcdG1vZHVsZURlc2NyaXB0aW9uc1xuXHRcdFx0XHRcdFx0KSwgXG5cdFx0XHRcdFx0XHRcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuc2hvd01vcmVNb2R1bGVzID8gKFxuXHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7c3R5bGU6IHRoaXMuc3R5bGVzLm1vcmVMaW5rfSwgXG5cdFx0XHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2hyZWY6IFwiI1wiLCBvbkNsaWNrOiB0aGlzLmhhbmRsZVNob3dGZXdlck1vZHVsZXN9LCBcImhpZGUgYWRkaXRpb25hbCBmZWF0dXJlc1wiKVxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpIDogKFxuXHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7c3R5bGU6IHRoaXMuc3R5bGVzLm1vcmVMaW5rfSwgXG5cdFx0XHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImFcIiwge2hyZWY6IFwiI1wiLCBvbkNsaWNrOiB0aGlzLmhhbmRsZVNob3dNb3JlTW9kdWxlc30sIFwic2hvdyBhZGRpdGlvbmFsIGZlYXR1cmVzXCIpXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCksIFxuXG5cdFx0XHRcdFx0XHR0aGlzLnN0YXRlLnNob3dNb3JlTW9kdWxlcyAmJiAoXG5cdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29udGVudEJveCwgbnVsbCwgXG5cdFx0XHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIFwiQWRkaXRpb25hbCBtb2R1bGVzXCIpLCBcblx0XHRcdFx0XHRcdFx0XHRtb3JlTW9kdWxlRGVzY3JpcHRpb25zXG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBSYWRpdW0oSmV0cGFja0p1bXBzdGFydCk7IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdFNpdGVTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zaXRlLXN0b3JlJyksXG5cdEJ1dHRvbiA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9idXR0b24nKSxcblx0V2VsY29tZVNlY3Rpb24gPSByZXF1aXJlKCcuL3dlbGNvbWUtc2VjdGlvbicpLFxuXHRzdHlsZXMgPSByZXF1aXJlKCcuLi9zdHlsZXMnKSxcblx0U2V0dXBQcm9ncmVzc0FjdGlvbnMgPSByZXF1aXJlKCcuLi9hY3Rpb25zL3NldHVwLXByb2dyZXNzLWFjdGlvbnMnKTtcblxuZnVuY3Rpb24gZ2V0U2l0ZUxheW91dFN0YXRlKCkge1xuXHRyZXR1cm4ge1xuXHRcdHNpdGVfdGl0bGU6IFNpdGVTdG9yZS5nZXRUaXRsZSgpLFxuXHRcdGxheW91dDogU2l0ZVN0b3JlLmdldExheW91dCgpXG5cdH07XG59XG5cbnZhciBMYXlvdXRTdGVwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIkxheW91dFN0ZXBcIixcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRTaXRlTGF5b3V0U3RhdGUoKSk7XG4gIFx0fSxcblxuXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRTaXRlTGF5b3V0U3RhdGUoKTtcblx0fSxcblxuXHRoYW5kbGVTZXRMYXlvdXQ6IGZ1bmN0aW9uKCBlICkge1xuXHRcdHRoaXMuc2V0U3RhdGUoeyBsYXlvdXQ6IGpRdWVyeShlLmN1cnJlbnRUYXJnZXQpLnZhbCgpIH0pO1xuXHR9LFxuXG5cdGhhbmRsZVN1Ym1pdDogZnVuY3Rpb24oIGUgKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFNldHVwUHJvZ3Jlc3NBY3Rpb25zLnN1Ym1pdExheW91dFN0ZXAodGhpcy5zdGF0ZS5sYXlvdXQpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoV2VsY29tZVNlY3Rpb24sIHtpZDogXCJ3ZWxjb21lX19sYXlvdXRcIn0sIFxuXHRcdFx0XG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCBcIiwgUmVhY3QuY3JlYXRlRWxlbWVudChcImVtXCIsIG51bGwsIHRoaXMuc3RhdGUuc2l0ZV90aXRsZSkpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImg0XCIsIG51bGwsIFwiU2VsZWN0IGEgTGF5b3V0XCIpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge3N0eWxlOiBzdHlsZXMuY29udGVudH0sIFwiV29yZFByZXNzIGNhbiBiZSBhIGJsb2csIGEgd2ViIHNpdGUgd2l0aCBhIGhpZXJhcmNoeSBvZiBzdGF0aWMgcGFnZXMsIG9yIGEgY29tYmluYXRpb24gb2YgdGhlIHR3by5cIiksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiLCB7b25TdWJtaXQ6IHRoaXMuaGFuZGxlU3VibWl0fSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIG51bGwsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt0eXBlOiBcInJhZGlvXCIsIG5hbWU6IFwic2l0ZV9sYXlvdXRcIiwgdmFsdWU6IFwid2Vic2l0ZVwiLCBjaGVja2VkOiB0aGlzLnN0YXRlLmxheW91dCA9PT0gJ3dlYnNpdGUnLCBvbkNoYW5nZTogdGhpcy5oYW5kbGVTZXRMYXlvdXR9KSwgXCIgU3RhdGljIFdlYnNpdGVcIiwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7Y2xhc3NOYW1lOiBcImRlc2NyaXB0aW9uXCJ9LCBcIkEgd2ViIHNpdGUgd2l0aCBhIGhpZXJhcmNoeSBvZiBwYWdlc1wiKVxuXHRcdFx0XHRcdCksIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJiclwiLCBudWxsKSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIG51bGwsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHt0eXBlOiBcInJhZGlvXCIsIG5hbWU6IFwic2l0ZV9sYXlvdXRcIiwgdmFsdWU6IFwic2l0ZS1ibG9nXCIsIGNoZWNrZWQ6IHRoaXMuc3RhdGUubGF5b3V0ID09PSAnc2l0ZS1ibG9nJywgb25DaGFuZ2U6IHRoaXMuaGFuZGxlU2V0TGF5b3V0fSksIFwiIFN0YXRpYyBXZWJzaXRlIHdpdGggYSBibG9nXCIsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge2NsYXNzTmFtZTogXCJkZXNjcmlwdGlvblwifSwgXCJBIHdlYiBzaXRlIHdpdGggcGFnZXMgdGhhdCBhbHNvIGhhcyBhIGJsb2cgb3IgbmV3cyBzZWN0aW9uXCIpXG5cdFx0XHRcdFx0KSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImJyXCIsIG51bGwpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwibGFiZWxcIiwgbnVsbCwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIiwge3R5cGU6IFwicmFkaW9cIiwgbmFtZTogXCJzaXRlX2xheW91dFwiLCB2YWx1ZTogXCJibG9nXCIsIGNoZWNrZWQ6IHRoaXMuc3RhdGUubGF5b3V0ID09PSAnYmxvZycsIG9uQ2hhbmdlOiB0aGlzLmhhbmRsZVNldExheW91dH0pLCBcIiBKdXN0IGEgYmxvZ1wiLCBcblx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtjbGFzc05hbWU6IFwiZGVzY3JpcHRpb25cIn0sIFwiQSB3ZWIgc2l0ZSB0aGF0IHdpbGwgY29uc3RhbnRseSBzaG93IG5ldyBjb250ZW50IChhcnRpY2xlcywgcGhvdG9zLCB2aWRlb3MsIGV0Yy4pXCIpXG5cdFx0XHRcdFx0KSwgXG5cblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7Y2xhc3NOYW1lOiBcInN1Ym1pdFwifSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEJ1dHRvbiwge2NvbG9yOiBcImJsdWVcIn0sIFwiTmV4dCBTdGVwIOKGklwiKVxuXHRcdFx0XHRcdClcblx0XHRcdFx0KVxuXHRcdFx0KVxuXHRcdCk7XG5cdH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IExheW91dFN0ZXA7IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdFNpdGVBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9zaXRlLWFjdGlvbnMnKSxcblx0U2l0ZVN0b3JlID0gcmVxdWlyZSgnLi4vc3RvcmVzL3NpdGUtc3RvcmUnKSxcblx0V2VsY29tZVNlY3Rpb24gPSByZXF1aXJlKCcuL3dlbGNvbWUtc2VjdGlvbicpLFxuXHRzdHlsZXMgPSByZXF1aXJlKCcuLi9zdHlsZXMnKSxcblx0QnV0dG9uID0gcmVxdWlyZSgnQGF1dG9tYXR0aWMvZG9wcy1yZWFjdC9qcy9jb21wb25lbnRzL2J1dHRvbicpLFxuXHRTZXR1cFByb2dyZXNzQWN0aW9ucyA9IHJlcXVpcmUoJy4uL2FjdGlvbnMvc2V0dXAtcHJvZ3Jlc3MtYWN0aW9ucycpO1xuXG5mdW5jdGlvbiBnZXRTaXRlVGl0bGVTdGF0ZSgpIHtcblx0cmV0dXJuIHtcblx0XHR0aXRsZTogU2l0ZVN0b3JlLmdldFRpdGxlKCksXG5cdFx0ZGVzY3JpcHRpb246IFNpdGVTdG9yZS5nZXREZXNjcmlwdGlvbigpXG5cdH07XG59XG5cbnZhciBTaXRlVGl0bGVTdGVwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlNpdGVUaXRsZVN0ZXBcIixcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2l0ZVN0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRTaXRlVGl0bGVTdGF0ZSgpKTtcbiAgXHR9LFxuXG5cdGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGdldFNpdGVUaXRsZVN0YXRlKCk7XG5cdH0sXG5cblx0aGFuZGxlQ2hhbmdlVGl0bGU6IGZ1bmN0aW9uKGUpIHtcblx0XHRTaXRlQWN0aW9ucy5zZXRUaXRsZShlLmN1cnJlbnRUYXJnZXQudmFsdWUpO1xuXHR9LFxuXG5cdGhhbmRsZUNoYW5nZURlc2NyaXB0aW9uOiBmdW5jdGlvbihlKSB7XG5cdFx0U2l0ZUFjdGlvbnMuc2V0RGVzY3JpcHRpb24oZS5jdXJyZW50VGFyZ2V0LnZhbHVlKTtcblx0fSxcblxuXHRoYW5kbGVTdWJtaXQ6IGZ1bmN0aW9uKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0U2V0dXBQcm9ncmVzc0FjdGlvbnMuc3VibWl0VGl0bGVTdGVwKCk7XG5cdH0sXG5cblx0cmVuZGVyOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gKFxuXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFdlbGNvbWVTZWN0aW9uLCB7aWQ6IFwid2VsY29tZV9fc2l0ZS10aXRsZVwifSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJoM1wiLCBudWxsLCBcIkxldCdzIGxhdW5jaCB5b3VyIG5ldyB3ZWJzaXRlXCIpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImg0XCIsIG51bGwsIFwiRW50ZXIgYSBUaXRsZSBhbmQgRGVzY3JpcHRpb25cIiksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCB7c3R5bGU6IHN0eWxlcy5jb250ZW50fSwgXG5cdFx0XHRcdFx0XCJNYWtlIHlvdXIgc2l0ZSBzdGFuZCBvdXQgd2l0aCBhIGNhdGNoeSBuYW1lLlwiXG5cdFx0XHRcdCksIFxuXHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiLCB7b25TdWJtaXQ6IHRoaXMuaGFuZGxlU3VibWl0fSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInRhYmxlXCIsIHtjbGFzc05hbWU6IFwiZm9ybS10YWJsZVwifSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwidGJvZHlcIiwgbnVsbCwgXG5cdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCBudWxsLCBcblx0XHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhcIiwgbnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtodG1sRm9yOiBcInNpdGVfdGl0bGVcIn0sIFwiU2l0ZSBUaXRsZVwiKSksIFxuXHRcdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLCBudWxsLCBcblx0XHRcdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dHlwZTogXCJ0ZXh0XCIsIG5hbWU6IFwic2l0ZV90aXRsZVwiLCBpZDogXCJzaXRlLXRpdGxlXCIsIGF1dG9Db21wbGV0ZTogXCJvZmZcIiwgb25DaGFuZ2U6IHRoaXMuaGFuZGxlQ2hhbmdlVGl0bGUsIHZhbHVlOiB0aGlzLnN0YXRlLnRpdGxlLCBcblx0XHRcdFx0XHQgICAgICAgcGxhY2Vob2xkZXI6IFwiU2l0ZSBUaXRsZSAodGhpcyBjYW4gYmUgY2hhbmdlZCBsYXRlcilcIiwgcmVxdWlyZWQ6IHRydWV9KSwgXG5cdFx0XHRcdFx0ICAgICAgIFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJwXCIsIHtjbGFzc05hbWU6IFwiZGVzY3JpcHRpb25cIn0sIFwiVGhlIG5hbWUgb2YgeW91ciBzaXRlLiBUaGlzIHRpdGxlIGFwcGVhcnMgYXQgdGhlIHRvcCBvZiBwYWdlcyBhbmQgaW4gc2VhcmNoIHJlc3VsdHMuXCIpXG5cdFx0XHRcdFx0ICAgICAgIFx0XHQpXG5cdFx0XHRcdFx0ICAgICAgXHQpLCBcblx0XHRcdFx0XHQgICAgICBcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0clwiLCBudWxsLCBcblx0XHRcdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwidGhcIiwgbnVsbCwgUmVhY3QuY3JlYXRlRWxlbWVudChcImxhYmVsXCIsIHtodG1sRm9yOiBcInNpdGVfZGVzY3JpcHRpb25cIn0sIFwiU2l0ZSBEZXNjcmlwdGlvblwiKSksIFxuXHRcdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ0ZFwiLCBudWxsLCBcblx0XHRcdFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiLCB7dHlwZTogXCJ0ZXh0XCIsIG5hbWU6IFwic2l0ZV9kZXNjcmlwdGlvblwiLCBpZDogXCJzaXRlLWRlc2NyaXB0aW9uXCIsIGF1dG9Db21wbGV0ZTogXCJvZmZcIiwgb25DaGFuZ2U6IHRoaXMuaGFuZGxlQ2hhbmdlRGVzY3JpcHRpb24sIHZhbHVlOiB0aGlzLnN0YXRlLmRlc2NyaXB0aW9uLCBcblx0XHRcdFx0XHQgICAgICAgcGxhY2Vob2xkZXI6IFwiU2l0ZSBEZXNjcmlwdGlvblwiLCByZXF1aXJlZDogdHJ1ZX0pLCBcblx0XHRcdFx0XHQgICAgICAgXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge2NsYXNzTmFtZTogXCJkZXNjcmlwdGlvblwifSwgXCJBIG1vdHRvIG9yIHRhZ2xpbmUuIFRoaXMgYXBwZWFycyBiZWxvdyB0aGUgdGl0bGUgb24geW91ciBzaXRlLCBhbmQgbmV4dCB0byB0aGUgdGl0bGUgaW4gc2VhcmNoIHJlc3VsdHMuIFRyeSB0byBiZSBicmllZiBhbmQgZGVzY3JpcHRpdmUsIGUuZy4gXFxcIllvdXIgb25saW5lIGJhaXQgYW5kIHRhY2tsZSBzdG9yZVxcXCJcIilcblx0XHRcdFx0XHQgICAgICAgXHRcdClcblx0XHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCksIFxuXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcInBcIiwge2NsYXNzTmFtZTogXCJzdWJtaXRcIn0sIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChCdXR0b24sIHtjb2xvcjogXCJibHVlXCJ9LCBcIk5leHQgU3RlcCDihpJcIilcblx0XHRcdFx0XHQpXG5cdFx0XHRcdClcblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTaXRlVGl0bGVTdGVwOyIsInZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpLFxuXHRTZXR1cFByb2dyZXNzU3RvcmUgPSByZXF1aXJlKCcuLi9zdG9yZXMvc2V0dXAtcHJvZ3Jlc3Mtc3RvcmUnKSxcblx0U2V0dXBQcm9ncmVzc0FjdGlvbnMgPSByZXF1aXJlKCcuLi9hY3Rpb25zL3NldHVwLXByb2dyZXNzLWFjdGlvbnMnKTtcblxuZnVuY3Rpb24gZ2V0U2V0dXBQcm9ncmVzcygpIHtcblx0cmV0dXJuIHtcblx0XHRjb21wbGV0ZWQ6IFNldHVwUHJvZ3Jlc3NTdG9yZS5nZXRDdXJyZW50U3RlcCgpLmNvbXBsZXRlZFxuXHR9O1xufVxuXG52YXIgU2tpcEJ1dHRvbiA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJTa2lwQnV0dG9uXCIsXG5cblx0c3R5bGU6IHtcblx0XHRjb2xvcjogJyNiYmInLFxuXHRcdGZvbnRTaXplOiAnOTAlJyxcblx0XHRtYXJnaW5MZWZ0OiAyMCxcblx0XHRib3JkZXJCb3R0b206ICcxcHggZG90dGVkICNiYmInXG5cdH0sXG5cblx0Y29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNldHVwUHJvZ3Jlc3NTdG9yZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLl9vbkNoYW5nZSk7XG5cdH0sXG5cblx0Y29tcG9uZW50V2lsbFVubW91bnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFNldHVwUHJvZ3Jlc3NTdG9yZS5yZW1vdmVDaGFuZ2VMaXN0ZW5lcih0aGlzLl9vbkNoYW5nZSk7XG5cdH0sXG5cblx0X29uQ2hhbmdlOiBmdW5jdGlvbigpIHtcbiAgICBcdHRoaXMuc2V0U3RhdGUoZ2V0U2V0dXBQcm9ncmVzcygpKTtcbiAgXHR9LFxuXG4gIFx0Z2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gZ2V0U2V0dXBQcm9ncmVzcygpO1xuXHR9LFxuXG5cdGhhbmRsZVNraXA6IGZ1bmN0aW9uIChlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFNldHVwUHJvZ3Jlc3NBY3Rpb25zLnNraXBTdGVwKCk7XG5cdH0sXG5cblx0cmVuZGVyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgY29tcGxldGVkID0gKHRoaXMuc3RhdGUuY29tcGxldGVkKTtcblx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdHJldHVybiBudWxsO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gKFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJhXCIsIHtzdHlsZTogdGhpcy5zdHlsZSwgaHJlZjogXCIjXCIsIG9uQ2xpY2s6IHRoaXMuaGFuZGxlU2tpcH0sIFwiTm90IG5vd1wiKSk7XG5cdFx0fVxuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTa2lwQnV0dG9uOyIsIlxudmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCk7XG5cbnZhciBUb29sdGlwID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlRvb2x0aXBcIixcblx0cHJvcFR5cGVzOiB7XG5cdFx0bGVmdDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLCAgLy8gZS5nLiA2MDBcblx0XHR0b3A6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCwgICAvL2UuZy4gMTU3XG5cdFx0d2lkdGg6IFJlYWN0LlByb3BUeXBlcy5udW1iZXIuaXNSZXF1aXJlZCwgLy9lLmcuIDMyMFxuXHRcdHRpdGxlOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsICAvLyBlLmcuIERpc3RyYWN0aW9uLUZyZWUgV3JpdGluZ1xuXHR9LFxuXG5cdGhhbmRsZURpc21pc3M6IGZ1bmN0aW9uICggZSApIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdH0sXG5cblx0Y29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uICgpIHtcblx0XHR0aGlzLl9yZWNvbXB1dGVQb3NpdGlvbigpO1xuXHR9LFxuXG5cdGNvbXBvbmVudFdpbGxSZWNlaXZlUHJvcHM6IGZ1bmN0aW9uICgpIHtcblx0XHR0aGlzLl9yZWNvbXB1dGVQb3NpdGlvbigpO1xuXHR9LFxuXG5cdGdldEluaXRpYWxTdGF0ZTogZnVuY3Rpb24gKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRyZWFsVG9wOiB0aGlzLnByb3BzLnRvcFxuXHRcdH07XG5cdH0sXG5cblx0X3JlY29tcHV0ZVBvc2l0aW9uOiBmdW5jdGlvbiAoKSB7XG5cdFx0dmFyICR3cmFwcGVyID0galF1ZXJ5KFJlYWN0LmZpbmRET01Ob2RlKHRoaXMucmVmcy53cmFwcGVyKSk7XG5cblx0XHR0aGlzLnNldFN0YXRlKHtcblx0XHRcdHJlYWxUb3A6IHRoaXMucHJvcHMudG9wIC0gKCR3cmFwcGVyLm91dGVySGVpZ2h0KCkvMilcblx0XHR9KTtcblx0fSxcblxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtyZWY6IFwid3JhcHBlclwiLCBjbGFzc05hbWU6IFwid3AtcG9pbnRlciB3cC1wb2ludGVyLWxlZnRcIiwgc3R5bGU6IHtwb3NpdGlvbjogJ2Fic29sdXRlJywgd2lkdGg6IHRoaXMucHJvcHMud2lkdGgsIHRvcDogdGhpcy5zdGF0ZS5yZWFsVG9wLCBsZWZ0OiB0aGlzLnByb3BzLmxlZnQsIHpJbmRleDogOTk5OX19LCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcIndwLXBvaW50ZXItY29udGVudFwifSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIHRoaXMucHJvcHMudGl0bGUpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwicFwiLCBudWxsLCB0aGlzLnByb3BzLmNoaWxkcmVuKVxuXHRcdFx0XHQpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcIndwLXBvaW50ZXItYXJyb3dcIn0sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge2NsYXNzTmFtZTogXCJ3cC1wb2ludGVyLWFycm93LWlubmVyXCJ9KVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gVG9vbHRpcDsiLCJ2YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKSxcblx0UmFkaXVtID0gcmVxdWlyZSgncmFkaXVtJyksXG5cdFByb2dyZXNzQmFyID0gcmVxdWlyZSgnQGF1dG9tYXR0aWMvZG9wcy1yZWFjdC9qcy9jb21wb25lbnRzL3Byb2dyZXNzLWJhcicpLFxuXHRTZXR1cFByb2dyZXNzQWN0aW9ucyA9IHJlcXVpcmUoJy4uL2FjdGlvbnMvc2V0dXAtcHJvZ3Jlc3MtYWN0aW9ucycpLFxuXHREYXNoaWNvbiA9IHJlcXVpcmUoJy4vZGFzaGljb24nKTtcblxudmFyIHN0ZXBTaGFwZSA9IFJlYWN0LlByb3BUeXBlcy5zaGFwZSh7XG5cdG5hbWU6IFJlYWN0LlByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcblx0c2x1ZzogUmVhY3QuUHJvcFR5cGVzLnN0cmluZ1xufSk7XG5cbi8qKlxuICogVGhlIG1lbnUgd2hpY2ggYWxsb3dzIHRoZSB1c2VyIHRvIHN3aXRjaCBzdGVwc1xuICoqL1xudmFyIFdlbGNvbWVNZW51ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIldlbGNvbWVNZW51XCIsXG5cdFxuXHRwcm9wVHlwZXM6IHtcblx0XHRjdXJyZW50U3RlcDogc3RlcFNoYXBlLmlzUmVxdWlyZWQsXG5cdFx0Y2xpY2thYmxlOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcblx0XHRhbGxTdGVwczogUmVhY3QuUHJvcFR5cGVzLmFycmF5T2Yoc3RlcFNoYXBlKS5pc1JlcXVpcmVkLFxuXHRcdHByb2dyZXNzUGVyY2VudDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkXG5cdH0sXG5cblx0Z2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y2xpY2thYmxlOiB0cnVlXG5cdFx0fTtcblx0fSxcblxuXHRzdHlsZXM6IHtcblx0XHR3cmFwcGVyOiB7XG5cdFx0XHRmbG9hdDogJ3JpZ2h0Jyxcblx0XHRcdHdpZHRoOiAnMjglJyxcblx0XHRcdGhlaWdodDogJzEwMCUnLFxuXHRcdFx0YmFja2dyb3VuZDogJyNmYWZhZmEnLFxuXHRcdFx0Ym9yZGVyOiAnMXB4IHNvbGlkICNlZWUnLFxuXHRcdH0sXG5cdFx0dGl0bGU6IHtcblx0XHRcdG1hcmdpbjogMCxcblx0XHRcdHBhZGRpbmc6IDEyLFxuXHRcdFx0b3ZlcmZsb3c6ICdoaWRkZW4nLFxuXHRcdFx0YmFja2dyb3VuZDogJyM0NDQnLFxuXHRcdFx0Y29sb3I6ICcjZmZmJyxcblx0XHRcdGZvbnRTaXplOiAxMixcblx0XHRcdHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnXG5cdFx0fSxcblx0XHRsaXN0OiB7XG5cdFx0XHRtYXJnaW46ICcxM3B4IDEwcHgnLFxuXHRcdFx0bGlzdFN0eWxlOiAnbm9uZScsXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSc6IHtcblx0XHRcdFx0bWFyZ2luOiAnNXB4IDRweCdcblx0XHRcdH1cblx0XHR9LFxuXHRcdG1lbnVJdGVtOiB7XG5cdFx0XHRtYXJnaW5Cb3R0b206IDYsXG5cdFx0XHRwb3NpdGlvbjogJ3JlbGF0aXZlJyxcblx0XHRcdGNvbG9yOiAnIzMzMycsXG5cdFx0XHRsaW5lSGVpZ2h0OiAxLjcsXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDc4MnB4KSc6IHtcblx0XHRcdFx0Zm9udFNpemU6ICdzbWFsbCdcblx0XHRcdH0sXG5cdFx0XHQnQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSc6IHtcblx0XHRcdFx0Zm9udFNpemU6ICdzbWFsbGVyJ1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0bWVudUl0ZW1Db21wbGV0ZWQ6IHtcblx0XHRcdGNvbG9yOiAnIzRBQjg2Nidcblx0XHR9LFxuXHRcdGljb246IHtcblx0XHRcdGZvbnRTaXplOiAxNixcblx0XHRcdHRvcDogMyxcblx0XHRcdHBvc2l0aW9uOiAncmVsYXRpdmUnXG5cdFx0fSxcblx0XHRtZW51SXRlbUxpbms6IHtcblx0XHRcdGNvbG9yOiAnaW5oZXJpdCcsXG5cdFx0XHRib3JkZXJCb3R0b206ICcxcHggZGFzaGVkJ1xuXHRcdH0sXG5cdFx0bWVudUl0ZW1DdXJyZW50OiB7XG5cdFx0XHRjb2xvcjogJyMwMDc0QTInXG5cdFx0fVxuXHR9LFxuXG5cdHNlbGVjdFN0ZXA6IGZ1bmN0aW9uKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XG5cdFx0dmFyIHNsdWcgPSBqUXVlcnkoZS5jdXJyZW50VGFyZ2V0KS5kYXRhKCdzdGVwLXNsdWcnKTtcblxuXHRcdFNldHVwUHJvZ3Jlc3NBY3Rpb25zLnNldEN1cnJlbnRTdGVwKHNsdWcpO1xuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cblx0XHR2YXIgbWVudUl0ZW1zID0gdGhpcy5wcm9wcy5hbGxTdGVwcy5tYXAoZnVuY3Rpb24gKCBzdGVwICkge1xuXHRcdFx0dmFyIHRpdGxlLCBjdXJyZW50LCBtZW51VmlldywgaWNvbk5hbWU7XG5cblx0XHRcdGlmICggdGhpcy5wcm9wcy5jbGlja2FibGUgJiYgdGhpcy5wcm9wcy5jdXJyZW50U3RlcCApIHtcblx0XHRcdFx0Y3VycmVudCA9ICggdGhpcy5wcm9wcy5jdXJyZW50U3RlcC5zbHVnID09IHN0ZXAuc2x1ZyApO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoICFzdGVwLnN0YXRpYyAmJiB0aGlzLnByb3BzLmNsaWNrYWJsZSApIHtcblx0XHRcdFx0dGl0bGUgPSBSZWFjdC5jcmVhdGVFbGVtZW50KFwiYVwiLCB7aHJlZjogXCIjXCIsIHN0eWxlOiB0aGlzLnN0eWxlcy5tZW51SXRlbUxpbmssIFwiZGF0YS1zdGVwLXNsdWdcIjogc3RlcC5zbHVnLCBvbkNsaWNrOiB0aGlzLnNlbGVjdFN0ZXB9LCBzdGVwLm5hbWUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGl0bGUgPSBzdGVwLm5hbWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggc3RlcC5tZW51VmlldyAmJiB0aGlzLnByb3BzLmNsaWNrYWJsZSApIHtcblx0XHRcdFx0bWVudVZpZXcgPSBSZWFjdC5jcmVhdGVFbGVtZW50KHN0ZXAubWVudVZpZXcsIG51bGwpO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRpY29uTmFtZSA9IHN0ZXAuY29tcGxldGVkID8gJ3llcycgOiAnYXJyb3ctcmlnaHQtYWx0Mic7XG5cblx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJsaVwiLCB7a2V5OiBzdGVwLnNsdWcsIHN0eWxlOiBbdGhpcy5zdHlsZXMubWVudUl0ZW0sIHN0ZXAuY29tcGxldGVkICYmIHRoaXMuc3R5bGVzLm1lbnVJdGVtQ29tcGxldGVkLCBjdXJyZW50ICYmIHRoaXMuc3R5bGVzLm1lbnVJdGVtQ3VycmVudF19LCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KERhc2hpY29uLCB7c3R5bGU6IHRoaXMuc3R5bGVzLmljb24sIG5hbWU6IGljb25OYW1lfSksIFxuXHRcdFx0XHRcdHRpdGxlLCBcIiBcIiwgc3RlcC5za2lwcGVkID8gJyhza2lwcGVkKScgOiBudWxsLCBcblx0XHRcdFx0XHRtZW51Vmlld1xuXHRcdFx0XHQpXG5cdFx0XHQpO1xuXHRcdH0uYmluZCh0aGlzKSApO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiBbdGhpcy5zdHlsZXMud3JhcHBlciwgdGhpcy5wcm9wcy5zdHlsZV19LCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMudGl0bGV9LCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7c3R5bGU6IHtmbG9hdDogJ2xlZnQnLCBtYXJnaW5SaWdodDogMTB9fSwgXCJZb3VyIFByb2dyZXNzXCIpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIG51bGwsIFxuXHRcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChQcm9ncmVzc0Jhciwge3N0eWxlOiB7IGZsb2F0OiAnbGVmdCd9LCBwcm9ncmVzc1BlcmNlbnQ6IHRoaXMucHJvcHMucHJvZ3Jlc3NQZXJjZW50fSlcblx0XHRcdFx0XHQpXG5cdFx0XHRcdCksIFxuXHRcdFx0XHRcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcIm9sXCIsIHtzdHlsZTogdGhpcy5zdHlsZXMubGlzdH0sIFxuXHRcdFx0XHRcdG1lbnVJdGVtc1xuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmFkaXVtKFdlbGNvbWVNZW51KTsiLCJ2YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKTtcblxudmFyIFdlbGNvbWVTZWN0aW9uID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIldlbGNvbWVTZWN0aW9uXCIsXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cdFx0dmFyICRfXzA9ICB0aGlzLnByb3BzLG90aGVyPShmdW5jdGlvbihzb3VyY2UsIGV4Y2x1c2lvbikge3ZhciByZXN0ID0ge307dmFyIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7aWYgKHNvdXJjZSA9PSBudWxsKSB7dGhyb3cgbmV3IFR5cGVFcnJvcigpO31mb3IgKHZhciBrZXkgaW4gc291cmNlKSB7aWYgKGhhc093bi5jYWxsKHNvdXJjZSwga2V5KSAmJiAhaGFzT3duLmNhbGwoZXhjbHVzaW9uLCBrZXkpKSB7cmVzdFtrZXldID0gc291cmNlW2tleV07fX1yZXR1cm4gcmVzdDt9KSgkX18wLHt9KTtcblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCBSZWFjdC5fX3NwcmVhZCh7fSwgIG90aGVyLCB7Y2xhc3NOYW1lOiBcIndlbGNvbWVfX3NlY3Rpb25cIn0pLCBcblx0XHRcdFx0dGhpcy5wcm9wcy5jaGlsZHJlblxuXHRcdFx0KVxuXHRcdCk7XG5cdH1cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFdlbGNvbWVTZWN0aW9uOyIsInZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpLFxuXHRXZWxjb21lTWVudSA9IHJlcXVpcmUoJy4vd2VsY29tZS1tZW51JyksXG5cdFNldHVwUHJvZ3Jlc3NTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zZXR1cC1wcm9ncmVzcy1zdG9yZScpLFxuXHRSZXNldCA9IHJlcXVpcmUoJ0BhdXRvbWF0dGljL2RvcHMtcmVhY3QvanMvY29tcG9uZW50cy9yZXNldCcpLFxuXHRTZXR1cFByb2dyZXNzQWN0aW9ucyA9IHJlcXVpcmUoJy4uL2FjdGlvbnMvc2V0dXAtcHJvZ3Jlc3MtYWN0aW9ucycpLFxuXHRGbGFzaCA9IHJlcXVpcmUoJy4vZmxhc2gnKSxcblx0c3R5bGVzID0gcmVxdWlyZSgnLi4vc3R5bGVzJyksXG5cdEdldFN0YXJ0ZWQgPSByZXF1aXJlKCcuL2dldC1zdGFydGVkJyksXG5cdFNwaW5uZXJTdG9yZSA9IHJlcXVpcmUoJy4uL3N0b3Jlcy9zcGlubmVyLXN0b3JlJyksXG5cdFNwaW5uZXJBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9zcGlubmVyLWFjdGlvbnMnKSxcblx0RGF0YVN0b3JlID0gcmVxdWlyZSgnLi4vc3RvcmVzL2RhdGEtc3RvcmUnKTtcblxuZnVuY3Rpb24gZ2V0U2V0dXBQcm9ncmVzcygpIHtcblx0cmV0dXJuIHsgXG5cdFx0bmV3VXNlcjogU2V0dXBQcm9ncmVzc1N0b3JlLmlzTmV3VXNlcigpLCBcblx0XHRzaG93U3Bpbm5lcjogU3Bpbm5lclN0b3JlLnNob3dpbmcoKSwgXG5cdFx0c3Bpbm5lck1lc3NhZ2U6IFNwaW5uZXJTdG9yZS5nZXRNZXNzYWdlKCksIFxuXHRcdGN1cnJlbnRTdGVwOiBTZXR1cFByb2dyZXNzU3RvcmUuZ2V0Q3VycmVudFN0ZXAoKSwgXG5cdFx0YWxsU3RlcHM6IFNldHVwUHJvZ3Jlc3NTdG9yZS5nZXRBbGxTdGVwcygpLCBcblx0XHRwcm9ncmVzc1BlcmNlbnQ6IFNldHVwUHJvZ3Jlc3NTdG9yZS5nZXRQcm9ncmVzc1BlcmNlbnQoKSBcblx0fTtcbn1cblxuLy8gVE9ETzogdmlzdWFsIFwic2F2aW5nXCIgZm9yIHRoaXMuc3RhdGUuc2F2aW5nXG52YXIgV2VsY29tZVdpZGdldCA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJXZWxjb21lV2lkZ2V0XCIsXG5cblx0c3R5bGVzOiB7XG5cdFx0d3JhcHBlcjogeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9LFxuXHRcdGxvYWRpbmdPdmVybGF5OiB7XG5cdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdHRvcDogMCxcblx0XHRcdGxlZnQ6IDAsXG5cdFx0XHR3aWR0aDogJzEwMCUnLFxuXHRcdFx0aGVpZ2h0OiAnMTAwJScsXG5cdFx0XHRtaW5IZWlnaHQ6ICcxMDAlJyxcblx0XHRcdHpJbmRleDogOTk5LFxuXHRcdFx0YmFja2dyb3VuZENvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwwLjYpJ1xuXHRcdH0sXG5cdFx0bG9hZGluZ01lc3NhZ2U6IHtcblx0XHRcdHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuXHRcdFx0d2lkdGg6ICc1MCUnLFxuXHRcdFx0bWluV2lkdGg6IDMwMCxcblx0XHRcdGJvcmRlclJhZGl1czogMixcblx0XHRcdHBhZGRpbmc6IDIwLFxuXHRcdFx0Ym9yZGVyOiAnMXB4IHNvbGlkIGJsYWNrJyxcblx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3doaXRlJyxcblx0XHRcdHRleHRBbGlnbjogJ2NlbnRlcicsXG5cdFx0XHRsZWZ0OiAnNTAlJyxcblx0XHRcdHRvcDogMTAwLFxuXHRcdFx0dHJhbnNmb3JtOiAndHJhbnNsYXRlKC01MCUsLTUwJSknXG5cdFx0fSxcblx0XHRjb250YWluZXI6IHtcblx0XHRcdGZsb2F0OiAnbGVmdCcsXG5cdFx0XHR3aWR0aDogJzcwJScsXG5cdFx0XHRwYWRkaW5nOiAnMCAxMHB4J1xuXHRcdH0sXG5cdFx0bWVudToge1xuXHRcdFx0bWFyZ2luVG9wOiAyNVxuXHRcdH1cblx0fSxcblxuXHRjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2V0dXBQcm9ncmVzc1N0b3JlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0XHRTcGlubmVyU3RvcmUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25TcGlubmVyQ2hhbmdlKTtcblx0XHREYXRhU3RvcmUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25EYXRhQ2hhbmdlKTtcblx0fSxcblxuXHRjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24oKSB7XG5cdFx0U2V0dXBQcm9ncmVzc1N0b3JlLnJlbW92ZUNoYW5nZUxpc3RlbmVyKHRoaXMuX29uQ2hhbmdlKTtcblx0XHRTcGlubmVyU3RvcmUucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25TcGlubmVyQ2hhbmdlKTtcblx0XHREYXRhU3RvcmUucmVtb3ZlQ2hhbmdlTGlzdGVuZXIodGhpcy5fb25EYXRhQ2hhbmdlKTtcblx0fSxcblxuXHRfb25DaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICAgIFx0dGhpcy5zZXRTdGF0ZShnZXRTZXR1cFByb2dyZXNzKCkpO1xuICBcdH0sXG5cbiAgXHRfb25TcGlubmVyQ2hhbmdlOiBmdW5jdGlvbigpIHtcbiAgXHRcdHRoaXMuc2V0U3RhdGUoeyBzaG93U3Bpbm5lcjogU3Bpbm5lclN0b3JlLnNob3dpbmcoKSwgc3Bpbm5lck1lc3NhZ2U6IFNwaW5uZXJTdG9yZS5nZXRNZXNzYWdlKCkgfSk7XG4gIFx0fSxcblxuICBcdF9vbkRhdGFDaGFuZ2U6IGZ1bmN0aW9uKCkge1xuICBcdFx0dGhpcy5zZXRTdGF0ZSh7IHNhdmluZzogRGF0YVN0b3JlLmlzU2F2aW5nKCkgfSk7XG4gIFx0fSxcblxuXHRnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBnZXRTZXR1cFByb2dyZXNzKCk7XG5cdH0sXG5cblx0aGFuZGxlUmVzZXQ6IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTZXR1cFByb2dyZXNzQWN0aW9ucy5yZXNldERhdGEoKTtcblx0fSxcblxuXHRoYW5kbGVTaG93U3Bpbm5lcjogZnVuY3Rpb24gKCBlICkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRTcGlubmVyQWN0aW9ucy5zaG93KFwiVGVzdGluZyBzcGlubmVyXCIpO1xuXHR9LFxuXG5cdGhhbmRsZUhpZGVTcGlubmVyOiBmdW5jdGlvbiAoIGUgKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdFNwaW5uZXJBY3Rpb25zLmhpZGUoKTtcblx0fSxcblx0XG5cbiAgXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuICBcdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoUmVzZXQsIHtjc3M6IHN0eWxlcy5jc3N9LCBcblx0XHRcdFx0dGhpcy5fcmVuZGVyRGVidWcoKSwgXG5cdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB0aGlzLnN0eWxlcy53cmFwcGVyfSwgXG5cdFx0XHRcdFx0dGhpcy5fcmVuZGVyU3Bpbm5lcigpLCBcblx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtzdHlsZTogdGhpcy5zdHlsZXMuY29udGFpbmVyfSwgXG5cdFx0XHRcdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KEZsYXNoLCBudWxsKSwgXG5cdFx0XHRcdFx0XHR0aGlzLl9yZW5kZXJTZWN0aW9uKClcblx0XHRcdFx0XHQpLCBcblxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoV2VsY29tZU1lbnUsIHtzdHlsZTogdGhpcy5zdHlsZXMubWVudSwgY2xpY2thYmxlOiAhdGhpcy5zdGF0ZS5uZXdVc2VyLCBjdXJyZW50U3RlcDogdGhpcy5zdGF0ZS5jdXJyZW50U3RlcCwgYWxsU3RlcHM6IHRoaXMuc3RhdGUuYWxsU3RlcHMsIHByb2dyZXNzUGVyY2VudDogdGhpcy5zdGF0ZS5wcm9ncmVzc1BlcmNlbnR9KSwgXG5cdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7Y2xhc3NOYW1lOiBcImNsZWFyXCJ9KVxuXHRcdFx0XHQpXG5cdFx0XHQpXG5cdFx0KTtcblx0fSxcblxuXHRfcmVuZGVyU2VjdGlvbjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCB0aGlzLnN0YXRlLm5ld1VzZXIgKSB7XG4gIFx0XHRcdHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChHZXRTdGFydGVkLCBudWxsKSk7XG4gIFx0XHR9IGVsc2Uge1xuICBcdFx0XHRyZXR1cm4gdGhpcy5fcmVuZGVyQ3VycmVudFZpZXcoKTtcbiAgXHRcdH1cblx0fSxcblxuXHRfcmVuZGVyRGVidWc6IGZ1bmN0aW9uKCkge1xuXHRcdC8vIGlmICggSlBTLmRlYnVnICkge1xuICAvLyBcdFx0XHRyZXR1cm4gKDxkaXY+XG4gIC8vIFx0XHRcdFx0PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJidXR0b25cIiBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlc2V0fT5SZXNldCBXaXphcmQ8L2E+XG4gIC8vIFx0XHRcdFx0PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJidXR0b25cIiBvbkNsaWNrPXt0aGlzLmhhbmRsZVNob3dTcGlubmVyfT5TaG93IHNwaW5uZXI8L2E+XG4gIC8vIFx0XHRcdFx0PGEgaHJlZj1cIiNcIiBjbGFzc05hbWU9XCJidXR0b25cIiBvbkNsaWNrPXt0aGlzLmhhbmRsZUhpZGVTcGlubmVyfT5IaWRlIHNwaW5uZXI8L2E+XG4gIC8vIFx0XHRcdDwvZGl2Pik7XG4gIC8vIFx0XHR9IGVsc2Uge1xuICBcdFx0XHRyZXR1cm4gbnVsbDtcbiAgXHRcdC8vIH1cblx0fSxcblxuXHRfcmVuZGVyU3Bpbm5lcjogZnVuY3Rpb24oKSB7XG5cdFx0aWYgKCB0aGlzLnN0YXRlLnNob3dTcGlubmVyICkge1xuICBcdFx0XHRyZXR1cm4gKFxuICBcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiB0aGlzLnN0eWxlcy5sb2FkaW5nT3ZlcmxheX0sIFxuICBcdFx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHRoaXMuc3R5bGVzLmxvYWRpbmdNZXNzYWdlfSwgXG4gIFx0XHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiwge3NyYzogSlBTLmJhc2VfdXJsK1wiL2ltZy9zcGlubmVyLTJ4LmdpZlwiLCB3aWR0aDogXCIxNnB4XCIsIGhlaWdodDogXCIxNnB4XCJ9KSwgXG4gIFx0XHRcdFx0XHRcdFwiwqDCoFwiLCB0aGlzLnN0YXRlLnNwaW5uZXJNZXNzYWdlXG4gIFx0XHRcdFx0XHQpXG4gIFx0XHRcdFx0KVxuICBcdFx0XHQpO1xuXG4gIFx0XHR9IGVsc2Uge1xuICBcdFx0XHRyZXR1cm4gbnVsbDtcbiAgXHRcdH1cblx0fSxcblxuXHRfcmVuZGVyQ3VycmVudFZpZXc6IGZ1bmN0aW9uKCkge1xuXHRcdGlmICggdGhpcy5zdGF0ZS5jdXJyZW50U3RlcCApIHtcbiAgXHRcdFx0cmV0dXJuIChSZWFjdC5jcmVhdGVFbGVtZW50KHRoaXMuc3RhdGUuY3VycmVudFN0ZXAud2VsY29tZVZpZXcsIG51bGwpKTtcbiAgXHRcdH0gZWxzZSB7XG4gIFx0XHRcdHJldHVybiAoUmVhY3QuY3JlYXRlRWxlbWVudChcImgzXCIsIG51bGwsIFwiTm90aGluZ1wiKSk7XG4gIFx0XHR9XG5cdH0sXG5cbn0pO1xuXG5tb2R1bGUuZXhwb3J0cyA9IFdlbGNvbWVXaWRnZXQ7IiwidmFyIGtleU1pcnJvciA9IHJlcXVpcmUoJ2tleW1pcnJvcicpO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGtleU1pcnJvcih7XG5cdFNURVBfQ09NUExFVEU6IG51bGwsXG5cdFNURVBfR0VUX1NUQVJURUQ6IG51bGwsXG5cdFNURVBfU0VMRUNUOiBudWxsLFxuXHRTVEVQX05FWFQ6IG51bGwsXG5cdFNURVBfU0tJUDogbnVsbCxcblx0U0lURV9TRVRfVElUTEU6IG51bGwsXG5cdFNJVEVfU0VUX0RFU0NSSVBUSU9OOiBudWxsLFxuXHRTSVRFX1NBVkVfVElUTEVfQU5EX0RFU0NSSVBUSU9OOiBudWxsLFxuXHRTSVRFX0NPTlRBQ1RfUEFHRV9JRDogbnVsbCxcblx0U0lURV9TRVRfVEhFTUU6IG51bGwsXG5cdFNJVEVfSU5TVEFMTF9USEVNRTogbnVsbCxcblx0U0lURV9KRVRQQUNLX0NPTkZJR1VSRUQ6IG51bGwsXG5cdFNJVEVfSkVUUEFDS19NT0RVTEVfRU5BQkxFRDogbnVsbCxcblx0U0lURV9KRVRQQUNLX01PRFVMRV9ESVNBQkxFRDogbnVsbCxcblx0U0lURV9KRVRQQUNLX0pVTVBTVEFSVF9FTkFCTEVEOiBudWxsLFxuXHRTSVRFX0pFVFBBQ0tfQUREX01PRFVMRVM6IG51bGwsXG5cdFNJVEVfU0VUX0xBWU9VVDogbnVsbCxcblxuXHRTQVZFX1NUQVJURUQ6IG51bGwsXG5cdFNBVkVfRklOSVNIRUQ6IG51bGwsXG5cblx0U0VUX0ZMQVNIOiBudWxsLFxuXHRVTlNFVF9GTEFTSDogbnVsbCxcblx0RkxBU0hfU0VWRVJJVFlfTk9USUNFOiBudWxsLFxuXHRGTEFTSF9TRVZFUklUWV9FUlJPUjogbnVsbCxcblxuXHRSRVNFVF9EQVRBOiBudWxsLFxuXG5cdFNIT1dfU1BJTk5FUjogbnVsbCxcblx0SElERV9TUElOTkVSOiBudWxsXG59KTsiLCJtb2R1bGUuZXhwb3J0cyA9IHtcblx0Ly8gc3RlcHNcblx0U0lURV9USVRMRV9TVEVQX1NMVUc6ICd0aXRsZScsXG5cdExBWU9VVF9TVEVQX1NMVUc6ICdsYXlvdXQnLFxuXHRUUkFGRklDX1NURVBfU0xVRzogJ3RyYWZmaWMnLFxuXHRTVEFUU19NT05JVE9SSU5HX1NURVBfU0xVRzogJ3N0YXRzLW1vbml0b3JpbmcnLFxuXHRERVNJR05fU1RFUF9TTFVHOiAnZGVzaWduJyxcblx0QURWQU5DRURfU1RFUF9TTFVHOiAnYWR2YW5jZWQnLFxuXHRKRVRQQUNLX01PRFVMRVNfU1RFUF9TTFVHOiAnamV0cGFjaycsXG5cdENPTlRBQ1RfUEFHRV9TVEVQX1NMVUc6ICdjb250YWN0LXBhZ2UnXG59OyIsIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEFwcERpc3BhdGNoZXJcbiAqXG4gKiBBIHNpbmdsZXRvbiB0aGF0IG9wZXJhdGVzIGFzIHRoZSBjZW50cmFsIGh1YiBmb3IgYXBwbGljYXRpb24gdXBkYXRlcy5cbiAqL1xuXG52YXIgRGlzcGF0Y2hlciA9IHJlcXVpcmUoJ2ZsdXgnKS5EaXNwYXRjaGVyO1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5ldyBEaXNwYXRjaGVyKCk7IiwidmFyIFdlbGNvbWVQYW5lbCA9IHJlcXVpcmUoJy4vd2VsY29tZS1wYW5lbCcpO1xuXG5XZWxjb21lUGFuZWwoKTsiLCJ2YXIgQXBwRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvYXBwLWRpc3BhdGNoZXInKSxcblx0RXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyLFxuXHRKUFNDb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1jb25zdGFudHMnKTtcblxuLypcbiAqIFRoaXMgaXMgYSByZWZjb3VudGVkIHNhdmUgbW9uaXRvciB3aGljaCB3YXJucyBpZiB5b3UgdHJ5IHRvIGxlYXZlIHRoZSBwYWdlIHdoaWxlIHRoZSBkYXRhIGlzIHN0aWxsIHNhdmluZ1xuICovXG5cbnZhciBfY3VycmVudFNhdmVzID0gMCwganBzVGltZW91dCwgQ0hBTkdFX0VWRU5UID0gJ2NoYW5nZSc7XG5cbmpRdWVyeSh3aW5kb3cpLm9uKCdiZWZvcmV1bmxvYWQnLCBmdW5jdGlvbigpIHtcblx0aWYoRGF0YVN0b3JlLmlzU2F2aW5nKCkpIHtcblx0XHRqcHNUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0ICAgICAgICAvLyBhbGVydCgnWW91IHN0YXllZCcpO1xuXHQgICAgICAgIC8vIG5vb3Bcblx0ICAgIH0sIDEwMDApO1xuXHQgICAgcmV0dXJuIFwiWW91ciBzaXRlIGNoYW5nZXMgYXJlIHN0aWxsIHNhdmluZy5cIjtcblx0fVxufSk7XG5cbmpRdWVyeSh3aW5kb3cpLm9uKCd1bmxvYWQnLCBmdW5jdGlvbigpIHtcblx0Y2xlYXJUaW1lb3V0KGpwc1RpbWVvdXQpO1xufSk7XG5cbmZ1bmN0aW9uIGluY3JlbWVudFNhdmVDb3VudGVyKCkge1xuXHRfY3VycmVudFNhdmVzID0gX2N1cnJlbnRTYXZlcyArIDE7XG59XG5cbmZ1bmN0aW9uIGRlY3JlbWVudFNhdmVDb3VudGVyKCkge1xuXHRfY3VycmVudFNhdmVzID0gX2N1cnJlbnRTYXZlcyAtIDE7XG59XG5cbnZhciBEYXRhU3RvcmUgPSBfLmV4dGVuZCh7fSwgRXZlbnRFbWl0dGVyLnByb3RvdHlwZSwge1xuXHRpc1NhdmluZzogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIF9jdXJyZW50U2F2ZXMgPiAwO1xuXHR9LFxuXG5cdGFkZENoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuXHRcdHRoaXMub24oQ0hBTkdFX0VWRU5ULCBjYWxsYmFjayk7XG5cdH0sXG5cblx0cmVtb3ZlQ2hhbmdlTGlzdGVuZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG5cdFx0dGhpcy5yZW1vdmVMaXN0ZW5lcihDSEFOR0VfRVZFTlQsIGNhbGxiYWNrKTtcblx0fSxcblxuXHRlbWl0Q2hhbmdlOiBmdW5jdGlvbigpIHtcblx0ICAgIHRoaXMuZW1pdChDSEFOR0VfRVZFTlQpO1xuXHR9LFxufSk7XG5cbkFwcERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24oYWN0aW9uKSB7XG5cbiAgc3dpdGNoKGFjdGlvbi5hY3Rpb25UeXBlKSB7XG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0FWRV9TVEFSVEVEOlxuICAgIFx0aW5jcmVtZW50U2F2ZUNvdW50ZXIoKTtcblx0XHREYXRhU3RvcmUuZW1pdENoYW5nZSgpO1xuXHRcdGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0FWRV9GSU5JU0hFRDpcbiAgICBcdGRlY3JlbWVudFNhdmVDb3VudGVyKCk7XG4gICAgIFx0RGF0YVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgXHRicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBubyBvcFxuICB9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBEYXRhU3RvcmU7IiwidmFyIEFwcERpc3BhdGNoZXIgPSByZXF1aXJlKCcuLi9kaXNwYXRjaGVyL2FwcC1kaXNwYXRjaGVyJyksXG5cdEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcixcblx0SlBTQ29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzJyk7XG5cbnZhciBDSEFOR0VfRVZFTlQgPSAnY2hhbmdlJztcbnZhciBtZXNzYWdlLCBzZXZlcml0eTtcblxuZnVuY3Rpb24gc2V0Rmxhc2gobmV3TWVzc2FnZSwgbmV3U2V2ZXJpdHkpIHtcblx0bWVzc2FnZSA9IG5ld01lc3NhZ2U7XG5cdHNldmVyaXR5ID0gbmV3U2V2ZXJpdHk7XG59XG5cbnZhciBGbGFzaFN0b3JlID0gXy5leHRlbmQoe30sIEV2ZW50RW1pdHRlci5wcm90b3R5cGUsIHtcblx0Z2V0Rmxhc2g6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBzZXZlcml0eVN0cmluZztcblxuXHRcdHN3aXRjaChzZXZlcml0eSkge1xuXHRcdFx0Y2FzZSBKUFNDb25zdGFudHMuRkxBU0hfU0VWRVJJVFlfRVJST1I6XG5cdFx0XHRcdHNldmVyaXR5U3RyaW5nID0gJ2Vycm9yJztcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIEpQU0NvbnN0YW50cy5GTEFTSF9TRVZFUklUWV9OT1RJQ0U6XG5cdFx0XHRcdHNldmVyaXR5U3RyaW5nID0gJ25vdGljZSc7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0Ly9ub29wXG5cdFx0fVxuXHRcdHJldHVybiB7bWVzc2FnZTogbWVzc2FnZSwgc2V2ZXJpdHk6IHNldmVyaXR5U3RyaW5nfTtcblxuXHR9LFxuXG5cdGFkZENoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuXHRcdHRoaXMub24oQ0hBTkdFX0VWRU5ULCBjYWxsYmFjayk7XG5cdH0sXG5cblx0cmVtb3ZlQ2hhbmdlTGlzdGVuZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG5cdFx0dGhpcy5yZW1vdmVMaXN0ZW5lcihDSEFOR0VfRVZFTlQsIGNhbGxiYWNrKTtcblx0fSxcblxuXHRlbWl0Q2hhbmdlOiBmdW5jdGlvbigpIHtcblx0ICAgIHRoaXMuZW1pdChDSEFOR0VfRVZFTlQpO1xuXHR9LFxufSk7XG5cbkFwcERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24oYWN0aW9uKSB7XG5cbiAgc3dpdGNoKGFjdGlvbi5hY3Rpb25UeXBlKSB7XG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0VUX0ZMQVNIOlxuXHRcdHNldEZsYXNoKGFjdGlvbi5tZXNzYWdlLCBhY3Rpb24uc2V2ZXJpdHkpO1xuXHRcdEZsYXNoU3RvcmUuZW1pdENoYW5nZSgpO1xuXHRcdGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuVU5TRVRfRkxBU0g6XG4gICAgIFx0c2V0Rmxhc2gobnVsbCwgbnVsbCk7XG4gICAgIFx0Rmxhc2hTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgIFx0YnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gbm8gb3BcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gRmxhc2hTdG9yZTsiLCIvKlxuICogU3RvcmUgd2hpY2ggbWFuYWdlcyBhbmQgcGVyc2lzdHMgc2V0dXAgd2l6YXJkIHByb2dyZXNzXG4gKi9cblxudmFyIEFwcERpc3BhdGNoZXIgPSByZXF1aXJlKCcuLi9kaXNwYXRjaGVyL2FwcC1kaXNwYXRjaGVyJyksXG4gIEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcixcbiAgSlBTQ29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzJyksXG4gIFdQQWpheCA9IHJlcXVpcmUoJy4uL3V0aWxzL3dwLWFqYXgnKTtcblxudmFyIENIQU5HRV9FVkVOVCA9ICdjaGFuZ2UnO1xuXG52YXIgX3N0ZXBzLCBfc3RhcnRlZCA9IEpQUy5zdGFydGVkOyBcblxuZnVuY3Rpb24gc2V0U3RlcHMoc3RlcHMpIHtcblxuICAvLyBzZXQgdGhlIGNvbXBsZXRpb24gc3RhdHVzIG9mIGVhY2ggc3RlcCB0byB0aGUgc2F2ZWQgdmFsdWVzXG4gIHN0ZXBzLmZvckVhY2goIGZ1bmN0aW9uKHN0ZXApIHtcbiAgICBcbiAgICAvLyBkZWZhdWx0IHZhbHVlcyBmb3Igc2tpcHBlZCwgY29tcGxldGVkIGFuZCBzdGF0aWNcbiAgICBpZiAoIHR5cGVvZiggc3RlcC5jb21wbGV0ZWQgKSA9PT0gJ3VuZGVmaW5lZCcgKSB7XG4gICAgICBzdGVwLmNvbXBsZXRlZCA9IChKUFMuc3RlcF9zdGF0dXNbc3RlcC5zbHVnXSAmJiBKUFMuc3RlcF9zdGF0dXNbc3RlcC5zbHVnXS5jb21wbGV0ZWQpIHx8IGZhbHNlOyAgXG4gICAgfVxuXG4gICAgaWYgKCB0eXBlb2YoIHN0ZXAuc2tpcHBlZCApID09PSAndW5kZWZpbmVkJyApIHtcbiAgICAgIHN0ZXAuc2tpcHBlZCA9IChKUFMuc3RlcF9zdGF0dXNbc3RlcC5zbHVnXSAmJiBKUFMuc3RlcF9zdGF0dXNbc3RlcC5zbHVnXS5za2lwcGVkKSB8fCBmYWxzZTsgIFxuICAgIH1cblxuICAgIGlmICggdHlwZW9mKCBzdGVwLnN0YXRpYyApID09PSAndW5kZWZpbmVkJyApIHtcbiAgICAgIHN0ZXAuc3RhdGljID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gc2V0IHRvICd0cnVlJyBpZiB5b3Ugd2FudCB0aGUgd2l6YXJkIHRvIG1vdmUgdG8gdGhpcyBzdGVwIGV2ZW4gaWYgaXQncyBiZWVuIGNvbXBsZXRlZFxuICAgIC8vIGJ5IGRlZmF1bHQgY29tcGxldGVkIHN0ZXBzIGFyZSBza2lwcGVkXG4gICAgaWYgKCB0eXBlb2YoIHN0ZXAubmV2ZXJTa2lwICkgPT09ICd1bmRlZmluZWQnICkge1xuICAgICAgc3RlcC5uZXZlclNraXAgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBkZWZhdWx0IHZhbHVlIGZvciBpbmNsdWRlSW5Qcm9ncmVzc1xuICAgIGlmICggdHlwZW9mKCBzdGVwLmluY2x1ZGVJblByb2dyZXNzICkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBzdGVwLmluY2x1ZGVJblByb2dyZXNzID0gdHJ1ZTtcbiAgICB9XG4gIH0pOyBcbiAgXG4gIF9zdGVwcyA9IHN0ZXBzO1xuICBcbiAgLy8gc2V0IGxvY2F0aW9uIHRvIGZpcnN0IHBlbmRpbmcgc3RlcCwgaWYgbm90IHNldFxuICBlbnN1cmVWYWxpZFN0ZXBTbHVnKCk7IFxufVxuXG5mdW5jdGlvbiBzZXRTdGFydGVkKCkge1xuICBfc3RhcnRlZCA9IHRydWU7XG4gIHNlbGVjdE5leHRQZW5kaW5nU3RlcCgpO1xufVxuXG5mdW5jdGlvbiBjb21wbGV0ZShzdGVwU2x1Zykge1xuICB2YXIgc3RlcCA9IGdldFN0ZXBGcm9tU2x1ZyhzdGVwU2x1Zyk7XG4gIHN0ZXAuY29tcGxldGVkID0gdHJ1ZTtcbiAgc3RlcC5za2lwcGVkID0gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNraXAoKSB7XG4gIHZhciBzdGVwU2x1ZyA9IGN1cnJlbnRTdGVwU2x1ZygpO1xuICB2YXIgc3RlcCA9IGdldFN0ZXBGcm9tU2x1ZyhzdGVwU2x1Zyk7XG4gIHN0ZXAuc2tpcHBlZCA9IHRydWU7XG4gIHNlbGVjdE5leHRQZW5kaW5nU3RlcCgpO1xufVxuXG5mdW5jdGlvbiBnZXRTdGVwRnJvbVNsdWcoIHN0ZXBTbHVnICkge1xuICB2YXIgY3VycmVudFN0ZXAgPSBudWxsO1xuICBfLmVhY2goIF9zdGVwcywgZnVuY3Rpb24oIHN0ZXAgKSB7XG4gICAgaWYoIHN0ZXAuc2x1ZyA9PT0gc3RlcFNsdWcgKSB7XG4gICAgICBjdXJyZW50U3RlcCA9IHN0ZXA7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGN1cnJlbnRTdGVwO1xufVxuXG5mdW5jdGlvbiBlbnN1cmVWYWxpZFN0ZXBTbHVnKCkge1xuICB2YXIgc3RlcFNsdWcgPSBjdXJyZW50U3RlcFNsdWcoKTtcbiAgaWYgKCAhICggc3RlcFNsdWcgJiYgZ2V0U3RlcEZyb21TbHVnKCBzdGVwU2x1ZyApICkgKSB7XG5cbiAgICB2YXIgcGVuZGluZ1N0ZXAgPSBnZXROZXh0UGVuZGluZ1N0ZXAoKTtcbiAgICBpZiAoIHBlbmRpbmdTdGVwICE9PSBudWxsICkge1xuICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSAnd2VsY29tZS9zdGVwcy8nK3BlbmRpbmdTdGVwLnNsdWc7XG4gICAgfSAgICBcbiAgfVxufVxuXG5mdW5jdGlvbiBzZWxlY3ROZXh0UGVuZGluZ1N0ZXAoKSB7XG4gIHZhciBwZW5kaW5nU3RlcCA9IGdldE5leHRQZW5kaW5nU3RlcCgpO1xuICBpZiAoIHBlbmRpbmdTdGVwICE9PSBudWxsICkge1xuICAgIHNlbGVjdChwZW5kaW5nU3RlcC5zbHVnKTsgLy8gYWxzbyBzZXRzIHRoZSB3aW5kb3cgbG9jYXRpb24gaGFzaFxuICB9XG59XG5cbmZ1bmN0aW9uIGdldE5leHRQZW5kaW5nU3RlcCgpIHtcbiAgLy8gaWYgdGhlIF9uZXh0XyBzdGVwIGlzIG5ldmVyU2tpcCwgd2UgcHJvY2VlZCB0byBpdFxuICB2YXIgc3RlcEluZGV4ID0gY3VycmVudFN0ZXBJbmRleCgpO1xuICBpZiAoIHN0ZXBJbmRleCApIHtcbiAgICBpZiAoIF9zdGVwc1tzdGVwSW5kZXgrMV0gJiYgX3N0ZXBzW3N0ZXBJbmRleCsxXS5uZXZlclNraXAgPT09IHRydWUgKSB7XG4gICAgICByZXR1cm4gX3N0ZXBzW3N0ZXBJbmRleCsxXTtcbiAgICB9XG4gIH1cblxuICAvLyBvdGhlcndpc2UgZmluZCB0aGUgbmV4dCB1bmNvbXBsZXRlZCwgdW5za2lwcGVkIHN0ZXBcbiAgcmV0dXJuIF8uZmluZFdoZXJlKCBfc3RlcHMsIHsgY29tcGxldGVkOiBmYWxzZSwgc2tpcHBlZDogZmFsc2UgfSApO1xufVxuXG5mdW5jdGlvbiBjdXJyZW50U3RlcFNsdWcoKSB7XG4gIGlmICggd2luZG93LmxvY2F0aW9uLmhhc2guaW5kZXhPZignI3dlbGNvbWUvc3RlcHMnKSA9PT0gMCApIHtcbiAgICB2YXIgcGFydHMgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zcGxpdCgnLycpO1xuICAgIHZhciBzdGVwU2x1ZyA9IHBhcnRzW3BhcnRzLmxlbmd0aC0xXTtcbiAgICByZXR1cm4gc3RlcFNsdWc7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gY3VycmVudFN0ZXBJbmRleCgpIHtcbiAgdmFyIHNsdWcgPSBjdXJyZW50U3RlcFNsdWcoKTtcbiAgZm9yICggdmFyIGk9MDsgaTxfc3RlcHMubGVuZ3RoOyBpKysgKSB7XG4gICAgaWYgKCBfc3RlcHNbaV0uc2x1ZyA9PT0gc2x1ZyApIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmZ1bmN0aW9uIHNlbGVjdChzdGVwU2x1Zykge1xuICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICd3ZWxjb21lL3N0ZXBzLycrc3RlcFNsdWc7XG4gIC8vIHJlY29yZCBhbmFseXRpY3NcbiAgV1BBamF4LnBvc3QoSlBTLnN0ZXBfYWN0aW9ucy52aWV3LCB7IHN0ZXA6IHN0ZXBTbHVnIH0sIHsgcXVpZXQ6IHRydWUgfSk7XG59XG5cbi8vcmVzZXQgZXZlcnl0aGluZyBiYWNrIHRvIGRlZmF1bHRzXG5mdW5jdGlvbiByZXNldCgpIHtcbiAgSlBTLnN0ZXBfc3RhdHVzID0ge307XG4gIF8ud2hlcmUoIF9zdGVwcywgeyBzdGF0aWM6IGZhbHNlfSApLmZvckVhY2goIGZ1bmN0aW9uICggc3RlcCApIHsgXG4gICAgc3RlcC5jb21wbGV0ZWQgPSBmYWxzZTtcbiAgICBzdGVwLnNraXBwZWQgPSBmYWxzZTtcbiAgfSApO1xuICBfc3RhcnRlZCA9IGZhbHNlO1xufVxuXG52YXIgU2V0dXBQcm9ncmVzc1N0b3JlID0gXy5leHRlbmQoe30sIEV2ZW50RW1pdHRlci5wcm90b3R5cGUsIHtcblxuICBpbml0OiBmdW5jdGlvbihzdGVwcykge1xuICAgIHNldFN0ZXBzKHN0ZXBzKTtcbiAgfSxcblxuICBnZXRBbGxTdGVwczogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIF9zdGVwcztcbiAgfSxcblxuICBpc05ld1VzZXI6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiAhX3N0YXJ0ZWQ7XG4gIH0sXG5cbiAgZW1pdENoYW5nZTogZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5lbWl0KCBDSEFOR0VfRVZFTlQgKTtcbiAgfSxcblxuICBnZXRDdXJyZW50U3RlcDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGdldFN0ZXBGcm9tU2x1ZyggY3VycmVudFN0ZXBTbHVnKCkgKTtcbiAgfSxcblxuICBnZXROZXh0UGVuZGluZ1N0ZXA6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBnZXROZXh0UGVuZGluZ1N0ZXAoKTsgLy8gZGVsZWdhdGVcbiAgfSxcblxuICBnZXRTdGVwRnJvbVNsdWc6IGZ1bmN0aW9uKHNsdWcpIHtcbiAgICByZXR1cm4gZ2V0U3RlcEZyb21TbHVnKCBzbHVnICk7IC8vIGRlbGVnYXRlXG4gIH0sXG5cbiAgZ2V0UHJvZ3Jlc3NQZXJjZW50OiBmdW5jdGlvbigpIHtcbiAgXHR2YXIgbnVtU3RlcHMgPSBfLndoZXJlKCBfc3RlcHMsIHsgaW5jbHVkZUluUHJvZ3Jlc3M6IHRydWUgfSApLmxlbmd0aDtcbiAgICB2YXIgY29tcGxldGVkU3RlcHMgPSBfLndoZXJlKCBfc3RlcHMsIHsgaW5jbHVkZUluUHJvZ3Jlc3M6IHRydWUsIGNvbXBsZXRlZDogdHJ1ZSB9ICkubGVuZ3RoO1xuICAgIHZhciBwZXJjZW50Q29tcGxldGUgPSAoY29tcGxldGVkU3RlcHMgLyBudW1TdGVwcykgKiA5MCArIDEwO1xuICAgIHZhciBvdXRwdXQgPSBNYXRoLnJvdW5kKHBlcmNlbnRDb21wbGV0ZSAvIDEwKSAqIDEwO1xuICAgIHJldHVybiBvdXRwdXQ7XG4gIH0sXG5cbiAgYWRkQ2hhbmdlTGlzdGVuZXI6IGZ1bmN0aW9uKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5vbiggQ0hBTkdFX0VWRU5ULCBjYWxsYmFjayApO1xuICB9LFxuXG4gIHJlbW92ZUNoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoIENIQU5HRV9FVkVOVCwgY2FsbGJhY2sgKTtcbiAgfVxufSk7XG5cbi8vIFJlZ2lzdGVyIGNhbGxiYWNrIHRvIGhhbmRsZSBhbGwgdXBkYXRlc1xuQXBwRGlzcGF0Y2hlci5yZWdpc3RlcihmdW5jdGlvbihhY3Rpb24pIHtcbiAgXG4gIHN3aXRjaChhY3Rpb24uYWN0aW9uVHlwZSkge1xuICAgIGNhc2UgSlBTQ29uc3RhbnRzLlNURVBfR0VUX1NUQVJURUQ6XG4gICAgICBzZXRTdGFydGVkKCk7XG4gICAgICBTZXR1cFByb2dyZXNzU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5TVEVQX1NFTEVDVDpcbiAgICAgIHNlbGVjdChhY3Rpb24uc2x1Zyk7XG4gICAgICBTZXR1cFByb2dyZXNzU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5TVEVQX05FWFQ6XG4gICAgICBzZWxlY3ROZXh0UGVuZGluZ1N0ZXAoKTtcbiAgICAgIFNldHVwUHJvZ3Jlc3NTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgSlBTQ29uc3RhbnRzLlNURVBfQ09NUExFVEU6XG4gICAgICBjb21wbGV0ZShhY3Rpb24uc2x1Zyk7XG4gICAgICBTZXR1cFByb2dyZXNzU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5SRVNFVF9EQVRBOlxuICAgICAgcmVzZXQoKTtcbiAgICAgIFNldHVwUHJvZ3Jlc3NTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgSlBTQ29uc3RhbnRzLlNURVBfU0tJUDpcbiAgICAgIHNraXAoKTtcbiAgICAgIFNldHVwUHJvZ3Jlc3NTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBubyBvcFxuICB9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTZXR1cFByb2dyZXNzU3RvcmU7IiwiLypcbiAqIFN0b3JlIHdoaWNoIG1hbmFnZXMgYW5kIHBlcnNpc3RzIHNpdGUgaW5mb3JtYXRpb25cbiAqL1xuXG52YXIgQXBwRGlzcGF0Y2hlciA9IHJlcXVpcmUoJy4uL2Rpc3BhdGNoZXIvYXBwLWRpc3BhdGNoZXInKSxcbiAgRXZlbnRFbWl0dGVyID0gcmVxdWlyZSgnZXZlbnRzJykuRXZlbnRFbWl0dGVyLFxuICBKUFNDb25zdGFudHMgPSByZXF1aXJlKCcuLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1jb25zdGFudHMnKSxcbiAgV1BBamF4ID0gcmVxdWlyZSgnLi4vdXRpbHMvd3AtYWpheCcpO1xuXG52YXIgQ0hBTkdFX0VWRU5UID0gJ2NoYW5nZSc7XG5cbnZhciBsYXlvdXQgPSBKUFMuc3RlcHMubGF5b3V0LmN1cnJlbnQ7XG5cbmZ1bmN0aW9uIHNldFRpdGxlKG5ld1RpdGxlKSB7XG5cdEpQUy5ibG9naW5mby5uYW1lID0gbmV3VGl0bGU7XG59XG5cbmZ1bmN0aW9uIHNldERlc2NyaXB0aW9uKG5ld0Rlc2NyaXB0aW9uKSB7XG5cdEpQUy5ibG9naW5mby5kZXNjcmlwdGlvbiA9IG5ld0Rlc2NyaXB0aW9uO1xufVxuXG5mdW5jdGlvbiBzZXRBY3RpdmVUaGVtZShhY3RpdmVUaGVtZUlkKSB7XG4gIEpQUy50aGVtZXMuZm9yRWFjaCggZnVuY3Rpb24oIHRoZW1lICkge1xuICAgIGlmICggdGhlbWUuaWQgPT0gYWN0aXZlVGhlbWVJZCApIHtcbiAgICAgIHRoZW1lLmFjdGl2ZSA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoZW1lLmFjdGl2ZSA9IGZhbHNlO1xuICAgIH1cbiAgfSApO1xufVxuXG5mdW5jdGlvbiBpbnN0YWxsZWRUaGVtZSh0aGVtZSkge1xuICBKUFMudGhlbWVzLnVuc2hpZnQodGhlbWUpO1xuICBKUFMudGhlbWVzID0gSlBTLnRoZW1lcy5zbGljZSgwLCAzKTtcbn1cblxuZnVuY3Rpb24gc2V0SmV0cGFja01vZHVsZUFjdGl2YXRlZChzbHVnKSB7XG4gIGlmICggXy5pbmRleE9mKCBKUFMuamV0cGFjay5hY3RpdmVfbW9kdWxlcywgc2x1ZyApID09PSAtMSApIHtcbiAgICBKUFMuamV0cGFjay5hY3RpdmVfbW9kdWxlcy5wdXNoKHNsdWcpOyAgXG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0SmV0cGFja01vZHVsZURlY3RpdmF0ZWQoc2x1Zykge1xuICB2YXIgaW5kZXggPSBfLmluZGV4T2YoIEpQUy5qZXRwYWNrLmFjdGl2ZV9tb2R1bGVzLCBzbHVnICk7XG4gIGlmICggaW5kZXggPj0gMCkge1xuICAgIEpQUy5qZXRwYWNrLmFjdGl2ZV9tb2R1bGVzLnNwbGljZShpbmRleCwgMSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0SmV0cGFja0FkZGl0aW9uYWxNb2R1bGVzKG1vZHVsZXMpIHtcbiAgSlBTLmpldHBhY2suYWRkaXRpb25hbF9tb2R1bGVzID0gXy5maWx0ZXIobW9kdWxlcywgZnVuY3Rpb24obW9kdWxlKSB7XG4gICAgcmV0dXJuIF8uaW5kZXhPZihKUFMuamV0cGFjay5qdW1wc3RhcnRfbW9kdWxlcy5tYXAoZnVuY3Rpb24obW9kKXtyZXR1cm4gbW9kLnNsdWc7fSksIG1vZHVsZS5zbHVnKSA9PSAtMTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHNldExheW91dChsYXlvdXROYW1lKSB7XG4gIGxheW91dCA9IGxheW91dE5hbWU7IC8vIFhYWCBUT0RPOiBnZXQgdGhpcyB2YWx1ZSBkeW5hbWljYWxseSBmcm9tIHRoZSBzZXJ2ZXIhXG59XG5cbmZ1bmN0aW9uIHNldEpldHBhY2tDb25maWd1cmVkKCkge1xuICBKUFMuamV0cGFjay5jb25maWd1cmVkID0gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gc2V0SmV0cGFja0p1bXBzdGFydEFjdGl2YXRlZCgpIHtcbiAgSlBTLmpldHBhY2suanVtcHN0YXJ0X21vZHVsZXMuZm9yRWFjaCggZnVuY3Rpb24oIG1vZHVsZSApIHtcbiAgICBzZXRKZXRwYWNrTW9kdWxlQWN0aXZhdGVkKCBtb2R1bGUuc2x1ZyApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc2V0Q29udGFjdFVzUGFnZSggcGFnZUluZm8gKSB7XG4gIEpQUy5zdGVwcy5jb250YWN0X3BhZ2UgPSBwYWdlSW5mbztcbn1cblxudmFyIFNpdGVTdG9yZSA9IF8uZXh0ZW5kKHt9LCBFdmVudEVtaXR0ZXIucHJvdG90eXBlLCB7XG5cbiAgZ2V0VGl0bGU6IGZ1bmN0aW9uKCkge1xuICBcdHJldHVybiBKUFMuYmxvZ2luZm8ubmFtZTtcbiAgfSxcblxuICBnZXREZXNjcmlwdGlvbjogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEpQUy5ibG9naW5mby5kZXNjcmlwdGlvbjtcbiAgfSxcblxuICBnZXRDb250YWN0UGFnZVVSTDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEpQUy5zdGVwcy5jb250YWN0X3BhZ2UgJiYgSlBTLnN0ZXBzLmNvbnRhY3RfcGFnZS51cmw7XG4gIH0sXG5cbiAgZ2V0VGhlbWVzOiBmdW5jdGlvbigpIHtcbiAgICByZXR1cm4gSlBTLnRoZW1lcztcbiAgfSxcblxuICBnZXRBY3RpdmVUaGVtZUlkOiBmdW5jdGlvbigpIHtcbiAgICBmb3IodmFyIGk9MDsgaSA8IEpQUy50aGVtZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciB0aGVtZSA9IEpQUy50aGVtZXNbaV07XG4gICAgICBpZiAoIHRoZW1lLmFjdGl2ZSApIHtcbiAgICAgICAgcmV0dXJuIHRoZW1lLmlkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSxcblxuICBnZXRKZXRwYWNrQ29uZmlndXJlZDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEpQUy5qZXRwYWNrLmNvbmZpZ3VyZWQ7XG4gIH0sXG5cbiAgZ2V0QWN0aXZlTW9kdWxlU2x1Z3M6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBKUFMuamV0cGFjay5hY3RpdmVfbW9kdWxlcztcbiAgfSxcblxuICBpc0pldHBhY2tNb2R1bGVFbmFibGVkOiBmdW5jdGlvbihzbHVnKSB7XG4gICAgcmV0dXJuICggXy5pbmRleE9mKCBKUFMuamV0cGFjay5hY3RpdmVfbW9kdWxlcywgc2x1ZyApID49IDAgKTtcbiAgfSxcblxuICBnZXRKZXRwYWNrQWRkaXRpb25hbE1vZHVsZXM6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBKUFMuamV0cGFjay5hZGRpdGlvbmFsX21vZHVsZXM7XG4gIH0sXG5cbiAgZ2V0SnVtcHN0YXJ0TW9kdWxlU2x1Z3M6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBKUFMuamV0cGFjay5qdW1wc3RhcnRfbW9kdWxlcy5tYXAoZnVuY3Rpb24obW9kdWxlKSB7IHJldHVybiBtb2R1bGUuc2x1ZzsgfSk7XG4gIH0sXG5cbiAgZ2V0SnVtcHN0YXJ0TW9kdWxlczogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIEpQUy5qZXRwYWNrLmp1bXBzdGFydF9tb2R1bGVzO1xuICB9LFxuXG4gIGdldFBvcHVsYXJUaGVtZXM6IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiBXUEFqYXgucG9zdChKUFMuc2l0ZV9hY3Rpb25zLmdldF9wb3B1bGFyX3RoZW1lcywge30sIHtxdWlldDogdHJ1ZX0pO1xuICB9LFxuXG4gIGdldEpldHBhY2tKdW1wc3RhcnRFbmFibGVkOiBmdW5jdGlvbigpIHtcbiAgICBmb3IodmFyIGk9MDsgaSA8IEpQUy5qZXRwYWNrLmp1bXBzdGFydF9tb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgbW9kdWxlID0gSlBTLmpldHBhY2suanVtcHN0YXJ0X21vZHVsZXNbaV07XG4gICAgICBpZiAoICEgdGhpcy5pc0pldHBhY2tNb2R1bGVFbmFibGVkKCBtb2R1bGUuc2x1ZyApICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9LFxuXG4gIGdldExheW91dDogZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIGxheW91dDtcbiAgfSxcblxuICBlbWl0Q2hhbmdlOiBmdW5jdGlvbigpIHtcbiAgICB0aGlzLmVtaXQoQ0hBTkdFX0VWRU5UKTtcbiAgfSxcblxuICBhZGRDaGFuZ2VMaXN0ZW5lcjogZnVuY3Rpb24oY2FsbGJhY2spIHtcbiAgICB0aGlzLm9uKENIQU5HRV9FVkVOVCwgY2FsbGJhY2spO1xuICB9LFxuXG4gIHJlbW92ZUNoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIoQ0hBTkdFX0VWRU5ULCBjYWxsYmFjayk7XG4gIH1cbn0pO1xuXG4vLyBSZWdpc3RlciBjYWxsYmFjayB0byBoYW5kbGUgYWxsIHVwZGF0ZXNcbkFwcERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24oYWN0aW9uKSB7XG5cbiAgc3dpdGNoKGFjdGlvbi5hY3Rpb25UeXBlKSB7XG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9TRVRfVElUTEU6XG4gICAgICBzZXRUaXRsZShhY3Rpb24udGl0bGUpO1xuICAgICAgU2l0ZVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9TRVRfREVTQ1JJUFRJT046XG4gICAgICBzZXREZXNjcmlwdGlvbihhY3Rpb24uZGVzY3JpcHRpb24pO1xuICAgICAgU2l0ZVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9TRVRfVEhFTUU6XG4gICAgICBzZXRBY3RpdmVUaGVtZShhY3Rpb24udGhlbWVJZCk7XG4gICAgICBTaXRlU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5TSVRFX0lOU1RBTExfVEhFTUU6XG4gICAgICBpbnN0YWxsZWRUaGVtZShhY3Rpb24udGhlbWUpO1xuICAgICAgU2l0ZVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX0NPTkZJR1VSRUQ6XG4gICAgICBzZXRKZXRwYWNrQ29uZmlndXJlZCgpO1xuICAgICAgU2l0ZVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX0FERF9NT0RVTEVTOlxuICAgICAgc2V0SmV0cGFja0FkZGl0aW9uYWxNb2R1bGVzKGFjdGlvbi5tb2R1bGVzKTtcbiAgICAgIFNpdGVTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgSlBTQ29uc3RhbnRzLlNJVEVfSkVUUEFDS19NT0RVTEVfRU5BQkxFRDpcbiAgICAgIHNldEpldHBhY2tNb2R1bGVBY3RpdmF0ZWQoYWN0aW9uLnNsdWcpO1xuICAgICAgU2l0ZVN0b3JlLmVtaXRDaGFuZ2UoKTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0lURV9KRVRQQUNLX01PRFVMRV9ESVNBQkxFRDpcbiAgICAgIHNldEpldHBhY2tNb2R1bGVEZWN0aXZhdGVkKGFjdGlvbi5zbHVnKTtcbiAgICAgIFNpdGVTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgSlBTQ29uc3RhbnRzLlNJVEVfSkVUUEFDS19KVU1QU1RBUlRfRU5BQkxFRDogXG4gICAgICBzZXRKZXRwYWNrSnVtcHN0YXJ0QWN0aXZhdGVkKCk7XG4gICAgICBTaXRlU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5TSVRFX1NFVF9MQVlPVVQ6XG4gICAgICBzZXRMYXlvdXQoYWN0aW9uLmxheW91dCk7XG4gICAgICBTaXRlU3RvcmUuZW1pdENoYW5nZSgpO1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5TSVRFX0NSRUFURV9DT05UQUNUX1VTX1BBR0U6XG4gICAgICBzZXRDb250YWN0VXNQYWdlKGFjdGlvbi5kYXRhKTtcbiAgICAgIFNpdGVTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgICBicmVhazsgICAgICBcblxuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBubyBvcFxuICB9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTaXRlU3RvcmU7IiwidmFyIEFwcERpc3BhdGNoZXIgPSByZXF1aXJlKCcuLi9kaXNwYXRjaGVyL2FwcC1kaXNwYXRjaGVyJyksXG5cdEV2ZW50RW1pdHRlciA9IHJlcXVpcmUoJ2V2ZW50cycpLkV2ZW50RW1pdHRlcixcblx0SlBTQ29uc3RhbnRzID0gcmVxdWlyZSgnLi4vY29uc3RhbnRzL2pldHBhY2stc3RhcnQtY29uc3RhbnRzJyk7XG5cbnZhciBDSEFOR0VfRVZFTlQgPSAnY2hhbmdlJztcblxudmFyIHNwaW5uZXJFbmFibGVkID0gZmFsc2UsXG5cdHNwaW5uZXJNZXNzYWdlID0gbnVsbDtcblxuZnVuY3Rpb24gc2hvdyhtZXNzYWdlKSB7XG5cdHNwaW5uZXJFbmFibGVkID0gdHJ1ZTtcblx0c3Bpbm5lck1lc3NhZ2UgPSBtZXNzYWdlO1xufVxuXG5mdW5jdGlvbiBoaWRlKCkge1xuXHRzcGlubmVyRW5hYmxlZCA9IGZhbHNlO1xuXHRzcGlubmVyTWVzc2FnZSA9IG51bGw7XG59XG5cbnZhciBTcGlubmVyU3RvcmUgPSBfLmV4dGVuZCh7fSwgRXZlbnRFbWl0dGVyLnByb3RvdHlwZSwge1xuXHRzaG93aW5nOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc3Bpbm5lckVuYWJsZWQ7XG5cdH0sXG5cblx0Z2V0TWVzc2FnZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNwaW5uZXJNZXNzYWdlO1xuXHR9LFxuXG5cdGFkZENoYW5nZUxpc3RlbmVyOiBmdW5jdGlvbihjYWxsYmFjaykge1xuXHRcdHRoaXMub24oIENIQU5HRV9FVkVOVCwgY2FsbGJhY2sgKTtcblx0fSxcblxuXHRyZW1vdmVDaGFuZ2VMaXN0ZW5lcjogZnVuY3Rpb24oY2FsbGJhY2spIHtcblx0XHR0aGlzLnJlbW92ZUxpc3RlbmVyKCBDSEFOR0VfRVZFTlQsIGNhbGxiYWNrICk7XG5cdH0sXG5cblx0ZW1pdENoYW5nZTogZnVuY3Rpb24oKSB7XG5cdCAgICB0aGlzLmVtaXQoIENIQU5HRV9FVkVOVCApO1xuXHR9LFxufSk7XG5cbkFwcERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24oYWN0aW9uKSB7XG5cbiAgc3dpdGNoKGFjdGlvbi5hY3Rpb25UeXBlKSB7XG4gICAgY2FzZSBKUFNDb25zdGFudHMuU0hPV19TUElOTkVSOlxuXHRcdHNob3coYWN0aW9uLm1lc3NhZ2UpO1xuXHRcdFNwaW5uZXJTdG9yZS5lbWl0Q2hhbmdlKCk7XG5cdFx0YnJlYWs7XG5cbiAgICBjYXNlIEpQU0NvbnN0YW50cy5ISURFX1NQSU5ORVI6XG4gICAgIFx0aGlkZSgpO1xuICAgICBcdFNwaW5uZXJTdG9yZS5lbWl0Q2hhbmdlKCk7XG4gICAgIFx0YnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgLy8gbm8gb3BcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gU3Bpbm5lclN0b3JlOyIsIm1vZHVsZS5leHBvcnRzID0ge1xuXHQnaDMnOiB7XG5cdFx0Zm9udFdlaWdodDogJ25vcm1hbCdcblx0fSxcblxuXHQnY29udGVudCc6IHtcblx0XHRmb250U2l6ZTogJ2xhcmdlcicsXG5cdFx0Y29sb3I6ICcjNzc3Jyxcblx0XHRsaW5lSGVpZ2h0OiAxLjUsXG4gIFx0XHRtYXJnaW46ICcxZW0gMCdcblx0fSxcblxuXHQnc2NyZWVuc2hvdCc6IHtcblx0XHRmbG9hdDogJ3JpZ2h0Jyxcblx0XHR3aWR0aDogMzAwLFxuXHRcdGJvcmRlcjogJzFweCBzb2xpZCAjY2NjJ1xuXHR9LFxuXG5cdGNzczoge1xuXHRcdGg0OiB7XG5cdFx0XHRtYXJnaW5Cb3R0b206IDEwLFxuXHRcdH0sXG5cblx0XHRoNToge1xuXHRcdFx0bWFyZ2luVG9wOiAwLFxuXHRcdFx0Zm9udFNpemU6ICcxZW0nLFxuXHRcdFx0Zm9udFdlaWdodDogNDAwXG5cdFx0fSxcblxuXHRcdCdpbnB1dCwgc2VsZWN0Jzoge1xuXHRcdFx0bWFyZ2luOiAxLFxuXHRcdFx0cGFkZGluZzogJzNweCA1cHgnXG5cdFx0fSxcblxuXHRcdCdpbnB1dFt0eXBlPVwidGV4dFwiXSc6IHtcblx0XHRcdHdpZHRoOiAnMTAwJSdcblx0XHR9LFxuXG5cdFx0Jy5zdWJtaXQnOiB7XG5cdFx0XHRtYXJnaW46ICcwcHggIWltcG9ydGFudCcsXG5cdFx0XHRwYWRkaW5nOiAnNXB4IDVweCAhaW1wb3J0YW50Jyxcblx0XHRcdGJhY2tncm91bmRDb2xvcjogJyNFRUUnLFxuXHRcdFx0dGV4dEFsaWduOiAncmlnaHQnXG5cdFx0fVxuXHR9XG59OyIsIi8qXG4gKiBBIHNpbXBsZSB3cmFwcGVyIGZvciBjYWxscyB0byBXUCdzIFwiYWpheHVybFwiLlxuICpcbiAqIFRoaXMgZXhpc3RzIGJlY2F1c2UgV1AncyB3cF9zZW5kX2pzb25fZXJyb3IgZG9lc24ndCBhY3R1YWxseSBzZW5kIGFuIGVycm9yIGNvZGUsIGJ1dCByYXRoZXJcbiAqIGEgMjAwIE9LIHJlc3BvbnNlIHdpdGggYSBzdHJ1Y3R1cmUgbGlrZSB0aGlzOlxuICoge3N1Y2Nlc3M6IGZhbHNlLCBkYXRhOiBcInNvbWV0aGluZyB3ZW50IHdyb25nXCJ9XG4gKlxuICogU28gdGhpcyBjbGFzcyBzbW9vdGhlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIDUweCBlcnJvcnMgYW5kIFdQJ3MgZXJyb3Igb2JqZWN0LlxuICpcbiAqIEZvciBjb252ZW5pZW5jZSwgdGhpcyByZXR1cm5zIGEgalF1ZXJ5LkRlZmVycmVkIG9iamVjdCB3aGljaCBjYW4gaGF2ZSAuZG9uZSgpIFxuICogYW5kIC5mYWlsKCkgbWV0aG9kcyBjaGFpbmVkIG9udG8gaXQsIHNpbWlsYXIgdG8galF1ZXJ5LnBvc3QncyBcInN1Y2Nlc3NcIiBhbmQgXCJmYWlsXCJcbiAqXG4gKiBBbHNvLCBpdCBhY2NlcHRzIGFuIFwiYWN0aW9uXCIgcGFyYW0gaW5zdGVhZCBvZiBhIFVSTCwgc2luY2UgYWxsIFdQIGFqYXggcmVxdWVzdHNcbiAqIGFjdHVhbGx5IGdvIHZpYSB0aGUgc2FtZSBVUkwgd2l0aCBkaWZmZXJlbnQgcGFyYW1ldGVycywgYW5kIGl0IGludm9rZXMgY2FsbGJhY2tzIHdpdGhcbiAqIGp1c3QgdGhlIFwiZGF0YVwiIHBvcnRpb24gb2YgV1AncyBhamF4IHBheWxvYWQsIHJhdGhlciB0aGFuIHRoZSB3aG9sZSBzdHJ1Y3R1cmUuXG4gKiBcbiAqKi9cblxudmFyIERhdGFBY3Rpb25zID0gcmVxdWlyZSgnLi4vYWN0aW9ucy9kYXRhLWFjdGlvbnMnKTtcblxudmFyIFdQQWpheCA9IChmdW5jdGlvbigpIHtcblxuXHRyZXR1cm4ge1xuXHRcdHBvc3Q6IGZ1bmN0aW9uKGFjdGlvbiwgcGF5bG9hZCwgb3B0aW9ucykge1xuXHRcdFx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zICE9PSAndW5kZWZpbmVkJyA/IG9wdGlvbnMgOiB7fTtcblx0XHRcdHBheWxvYWQgPSB0eXBlb2YgcGF5bG9hZCAhPT0gJ3VuZGVmaW5lZCcgPyBwYXlsb2FkIDoge307XG5cdFx0XHR2YXIgZGF0YSA9IF8uZXh0ZW5kKHBheWxvYWQsIHthY3Rpb246IGFjdGlvbiwgbm9uY2U6IEpQUy5ub25jZX0pO1xuXHRcdFx0XG5cdFx0XHR2YXIgZGVmZXJyZWQgPSBqUXVlcnkuRGVmZXJyZWQoKTtcblxuXHRcdFx0Ly8gcGFzc2luZyBxdWlldDogdHJ1ZSBhbGxvd3MgcGFnZSBuYXZpZ2F0aW9uIGJlZm9yZSB0aGlzIHJlcXVlc3QgaGFzIGZpbmlzaGVkLlxuXHRcdFx0Ly8gdGhpcyBpcyBhbHNvIGhhbmR5IHdoZW4geW91J3JlIGNhbGxpbmcgZnJvbSB3aXRoaW4gYSBEaXNwYXRjaCBjeWNsZSwgYXMgaXQgXG5cdFx0XHQvLyBubyBsb25nZXIgdHJpZ2dlcnMgYW4gYWRkaXRpb25hbCBEaXNwYXRjaCAod2hpY2ggd291bGQgY2F1c2UgYW4gZXJyb3IpXG5cdFx0XHRpZiAoICFvcHRpb25zLnF1aWV0ICkge1xuXHRcdFx0XHREYXRhQWN0aW9ucy5yZXF1ZXN0U3RhcnRlZCgpO1xuXHRcdFx0fVxuXG5cdFx0XHRqUXVlcnkucG9zdCggYWpheHVybCwgZGF0YSApXG5cdFx0XHRcdC5zdWNjZXNzKCBmdW5jdGlvbiggcmVzcG9uc2UgKSB7XG5cdFx0XHRcdFx0aWYgKCAhIHJlc3BvbnNlLnN1Y2Nlc3MgKSB7XG5cdFx0XHRcdFx0XHRkZWZlcnJlZC5yZWplY3QocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmUocmVzcG9uc2UuZGF0YSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZmFpbCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0KFwiU2VydmVyIGVycm9yXCIpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuYWx3YXlzKCBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0aWYgKCAhb3B0aW9ucy5xdWlldCApIHtcblx0XHRcdFx0XHRcdERhdGFBY3Rpb25zLnJlcXVlc3RGaW5pc2hlZCgpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XHRcblxuXHRcdFx0cmV0dXJuIGRlZmVycmVkO1xuXHRcdH1cblx0fTtcblxufSkoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBXUEFqYXg7IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG4gICAgV2VsY29tZVdpZGdldCA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy93ZWxjb21lLXdpZGdldCcpLFxuICAgIFBhdGhzID0gcmVxdWlyZSgnLi9jb25zdGFudHMvamV0cGFjay1zdGFydC1wYXRocycpLFxuICAgIFNldHVwUHJvZ3Jlc3NTdG9yZSA9IHJlcXVpcmUoJy4vc3RvcmVzL3NldHVwLXByb2dyZXNzLXN0b3JlJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gICAgalF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbiAoKSB7XG5cbiAgICBcdFNldHVwUHJvZ3Jlc3NTdG9yZS5pbml0KFtcbiAgICBcdFx0Ly8gTk9URTogWW91IGNhbiBoYXZlIFwic3RhdGljOiB0cnVlXCIgdG8gaW5jbHVkZSB1bi1jbGlja2FibGUgXG4gICAgXHRcdC8vIHByZWZpbGxlZCBzdGVwcyB0aGF0IGFjdCBhcyB0aG91Z2ggdGhleSd2ZSBhbHJlYWR5IGJlZW4gY29tcGxldGVkXG5cdFx0XHQvLyB7XG5cdFx0XHQvLyBcdG5hbWU6IFwiU2lnbiB1cFwiLFxuXHRcdFx0Ly8gXHRjb21wbGV0ZWQ6IHRydWUsXG5cdFx0XHQvLyBcdHN0YXRpYzogdHJ1ZVxuXHRcdFx0Ly8gfSxcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogJ1NpdGUgdGl0bGUnLFxuXHRcdFx0XHRzbHVnOiBQYXRocy5TSVRFX1RJVExFX1NURVBfU0xVRyxcblx0XHRcdFx0d2VsY29tZVZpZXc6IHJlcXVpcmUoJy4vY29tcG9uZW50cy9zaXRlLXRpdGxlLXN0ZXAnKVxuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogJ1BpY2sgYSBsYXlvdXQnLFxuXHRcdFx0XHRzbHVnOiBQYXRocy5MQVlPVVRfU1RFUF9TTFVHLFxuXHRcdFx0XHR3ZWxjb21lVmlldzogcmVxdWlyZSgnLi9jb21wb25lbnRzL2xheW91dC1zdGVwJylcblx0XHRcdH0sXG5cdFx0ICAgIHtcblx0XHRcdCAgICBuYW1lOiBcIkNvbnRhY3QgSW5mb1wiLFxuXHRcdFx0ICAgIHNsdWc6IFBhdGhzLkNPTlRBQ1RfUEFHRV9TVEVQX1NMVUcsXG5cdFx0XHQgICAgd2VsY29tZVZpZXc6IHJlcXVpcmUoJy4vY29tcG9uZW50cy9jb250YWN0LXN0ZXAnKVxuXHRcdCAgICB9LFxuXHRcdCAgICB7XG5cdFx0XHQgICAgbmFtZTogXCJQaWNrIGEgZGVzaWduXCIsXG5cdFx0XHQgICAgc2x1ZzogUGF0aHMuREVTSUdOX1NURVBfU0xVRyxcblx0XHRcdCAgICB3ZWxjb21lVmlldzogcmVxdWlyZSgnLi9jb21wb25lbnRzL2Rlc2lnbi1zdGVwJylcblx0XHQgICAgfSxcblx0XHRcdHtcblx0XHRcdFx0bmFtZTogJ0VuYWJsZSBKZXRwYWNrJyxcblx0XHRcdFx0c2x1ZzogUGF0aHMuSkVUUEFDS19NT0RVTEVTX1NURVBfU0xVRyxcblx0XHRcdFx0bmV2ZXJTa2lwOiB0cnVlLCAvLyBkb24ndCBza2lwIHRoaXMgZXZlbiBpZiBpdCdzIGJlZW4gY29tcGxldGVkXG5cdFx0XHRcdHdlbGNvbWVWaWV3OiByZXF1aXJlKCcuL2NvbXBvbmVudHMvamV0cGFjay1qdW1wc3RhcnQtc3RlcCcpLFxuXHRcdFx0XHRtZW51VmlldzogcmVxdWlyZSgnLi9jb21wb25lbnRzL2pldHBhY2stanVtcHN0YXJ0LW1lbnUnKVxuXHRcdFx0fSxcblx0XHRcdHsgXG5cdFx0XHRcdG5hbWU6IFwiQWR2YW5jZWQgc2V0dGluZ3NcIiwgXG5cdFx0XHRcdHNsdWc6IFBhdGhzLkFEVkFOQ0VEX1NURVBfU0xVRyxcblx0XHRcdFx0d2VsY29tZVZpZXc6IHJlcXVpcmUoJy4vY29tcG9uZW50cy9hZHZhbmNlZC1zZXR0aW5ncy1zdGVwJyksXG5cdFx0XHRcdGluY2x1ZGVJblByb2dyZXNzOiBmYWxzZVxuXHRcdFx0fVxuXHRcdF0pO1xuXG4gICAgICAgIFJlYWN0LnJlbmRlcihcbiAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFdlbGNvbWVXaWRnZXQsIHt9KSwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2pwcy13ZWxjb21lLXBhbmVsJylcbiAgICAgICAgKTtcbiAgICB9KTtcbn07IiwidmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdHN0eWxlcyA9IHJlcXVpcmUoJy4uL3N0eWxlcycpLFxuXHRSYWRpdW0gPSByZXF1aXJlKCdyYWRpdW0nKTtcblxudmFyIEJ1dHRvbiA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJCdXR0b25cIixcblxuXHRwcm9wVHlwZXM6IHtcblx0XHRzaXplOiBSZWFjdC5Qcm9wVHlwZXMub25lT2YoWyd0aW55JywgJ25vcm1hbCcsICdiaWcnXSksXG5cdFx0Y29sb3I6IFJlYWN0LlByb3BUeXBlcy5vbmVPZihbJ2dyYXknLCAnYmx1ZScsICdncmVlbiddKSxcblx0XHR0aGVtZTogUmVhY3QuUHJvcFR5cGVzLm9uZU9mKFsnd3AnLCAnamV0cGFjayddKSxcblx0XHRpbmxpbmU6IFJlYWN0LlByb3BUeXBlcy5ib29sLFxuXHRcdG9uQ2xpY2s6IFJlYWN0LlByb3BUeXBlcy5mdW5jLFxuXHRcdGRpc2FibGVkOiBSZWFjdC5Qcm9wVHlwZXMuYm9vbCxcblx0XHRocmVmOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nXG5cdH0sXG5cblx0Z2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4geyBzaXplOiAnbm9ybWFsJywgaW5saW5lOiB0cnVlLCBjb2xvcjogJ2dyYXknLCB0aGVtZTogJ3dwJywgZGlzYWJsZWQ6IGZhbHNlIH07XG5cdH0sXG5cblx0aGFuZGxlQ2FsbGJhY2tIcmVmOiBmdW5jdGlvbihlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHdpbmRvdy5sb2NhdGlvbiA9IHRoaXMucHJvcHMuaHJlZjtcblx0fSxcblxuXHRzdHlsZXM6IHtcblx0XHRiYXNpYzoge1xuXHRcdFx0Ym9yZGVyUmFkaXVzOiAzLFxuXHRcdFx0Ym94U2hhZG93OiAnaW5zZXQgMCAxcHggMCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyknLFxuXHRcdFx0Ym9yZGVyV2lkdGg6IDEsXG5cdFx0XHRib3JkZXJTdHlsZTogJ3NvbGlkJyxcblx0XHRcdGN1cnNvcjogJ3BvaW50ZXInLFxuXHRcdFx0ZGlzcGxheTogJ2Jsb2NrJyxcblx0XHRcdGZvbnRTaXplOiAxNCxcblx0XHRcdGZvbnRXZWlnaHQ6ICdib2xkJyxcblx0XHRcdHBhZGRpbmc6ICcxMHB4IDIwcHgnLFxuXHRcdFx0dGV4dEFsaWduOiAnY2VudGVyJyxcblx0XHRcdHRleHREZWNvcmF0aW9uOiAnbm9uZScsXG5cdFx0XHRXZWJraXRGb250U21vb3RoaW5nOiAnYW50aWFsaWFzZWQnLFxuXHRcdFx0dHJhbnNpdGlvbjogJ2JhY2tncm91bmQgMC4ycydcblx0XHR9LFxuXG5cdFx0c2l6ZXM6IHtcblx0XHRcdHRpbnk6IHtcblx0XHRcdFx0Zm9udFNpemU6IDEwLFxuXHRcdFx0XHRwYWRkaW5nOiAnMnB4IDEwcHgnLFxuXHRcdFx0fSxcblx0XHRcdG5vcm1hbDoge1xuXHRcdFx0XHRmb250U2l6ZTogMTMsXG5cdFx0XHRcdHBhZGRpbmc6ICc1cHggMTBweCdcblx0XHRcdH0sXG5cdFx0XHRiaWc6IHtcblx0XHRcdFx0Zm9udFNpemU6IDE2LFxuXHRcdFx0XHRwYWRkaW5nOiAnMjBweCA0MHB4J1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRjb2xvcnM6IHtcblx0XHRcdGdyYXk6IHtcblx0XHRcdFx0YmFja2dyb3VuZDogJ2xpbmVhci1ncmFkaWVudCgjZmZmLCAjZjlmOWY5KScsXG5cdFx0XHRcdGJvcmRlckNvbG9yOiBzdHlsZXMuY29sb3JzLmxpZ2h0R3JheSxcblx0XHRcdFx0Y29sb3I6IHN0eWxlcy5jb2xvcnMuZGFya0dyYXksXG5cdFx0XHRcdCc6aG92ZXInOiB7XG5cdFx0XHRcdFx0Y29sb3I6IHN0eWxlcy5jb2xvcnMuZ3JheVxuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0Ymx1ZToge1xuXHRcdFx0XHRiYWNrZ3JvdW5kOiBzdHlsZXMuY29sb3JzLmJsdWUsXG5cdFx0XHRcdGJvcmRlckNvbG9yOiAncmdiYSgwLDAsMCwwLjYpJyxcblx0XHRcdFx0Y29sb3I6ICd3aGl0ZScsXG5cdFx0XHRcdCc6aG92ZXInOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogc3R5bGVzLmNvbG9ycy5saWdodGVyQmx1ZSxcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdGdyZWVuOiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6IHN0eWxlcy5jb2xvcnMuZ3JlZW4sXG5cdFx0XHRcdGNvbG9yOiAnd2hpdGUnLFxuXHRcdFx0XHRib3JkZXJDb2xvcjogJ3JnYmEoMCwwLDAsMC42KScsXG5cdFx0XHRcdCc6aG92ZXInOiB7XG5cdFx0XHRcdFx0YmFja2dyb3VuZDogc3R5bGVzLmNvbG9ycy5saWdodGVyR3JlZW4sXG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHR0aGVtZXM6IHtcblx0XHRcdHdwOiB7fSxcblx0XHRcdGpldHBhY2s6IHtcblx0XHRcdFx0cGFkZGluZzogJzE4cHggMjRweCAxNXB4Jyxcblx0XHRcdFx0Ym9yZGVyUmFkaXVzOiA2LFxuXHRcdFx0XHRib3JkZXJTdHlsZTogJ25vbmUnLFxuXHRcdFx0XHRib3hTaGFkb3c6ICcwIDZweCAwICMzZTZjMjAsMCA2cHggM3B4IHJnYmEoMCwwLDAsMC40KSdcblx0XHRcdH1cblx0XHR9LFxuXHRcdFxuXHRcdGlubGluZToge1xuXHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaydcblx0XHR9LFxuXG5cdFx0ZGlzYWJsZWQ6IHtcblx0XHRcdGJhY2tncm91bmQ6ICcjZjlmOWY5Jyxcblx0XHRcdGJvcmRlckNvbG9yOiBzdHlsZXMuY29sb3JzLmxpZ2h0R3JheSxcblx0XHRcdGNvbG9yOiBzdHlsZXMuY29sb3JzLmxpZ2h0R3JheSxcblx0XHRcdCc6aG92ZXInOiB7XG5cdFx0XHRcdGJhY2tncm91bmQ6ICcjZjlmOWY5Jyxcblx0XHRcdFx0Ym9yZGVyQ29sb3I6IHN0eWxlcy5jb2xvcnMubGlnaHRHcmF5LFxuXHRcdFx0XHRjb2xvcjogc3R5bGVzLmNvbG9ycy5saWdodEdyYXksXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHJlbmRlcjogZnVuY3Rpb24oKSB7XG5cblx0XHR2YXIgJF9fMD0gICAgICAgICAgdGhpcy5wcm9wcyxzaXplPSRfXzAuc2l6ZSxjb2xvcj0kX18wLmNvbG9yLGlubGluZT0kX18wLmlubGluZSxvbkNsaWNrPSRfXzAub25DbGljayx0aGVtZT0kX18wLnRoZW1lLGhyZWY9JF9fMC5ocmVmLG90aGVyPShmdW5jdGlvbihzb3VyY2UsIGV4Y2x1c2lvbikge3ZhciByZXN0ID0ge307dmFyIGhhc093biA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7aWYgKHNvdXJjZSA9PSBudWxsKSB7dGhyb3cgbmV3IFR5cGVFcnJvcigpO31mb3IgKHZhciBrZXkgaW4gc291cmNlKSB7aWYgKGhhc093bi5jYWxsKHNvdXJjZSwga2V5KSAmJiAhaGFzT3duLmNhbGwoZXhjbHVzaW9uLCBrZXkpKSB7cmVzdFtrZXldID0gc291cmNlW2tleV07fX1yZXR1cm4gcmVzdDt9KSgkX18wLHtzaXplOjEsY29sb3I6MSxpbmxpbmU6MSxvbkNsaWNrOjEsdGhlbWU6MSxocmVmOjF9KTtcblxuXHRcdHZhciBjYWxsYmFjaztcblxuXHRcdHZhciBjb21iaW5lZFN0eWxlID0gW1xuXHRcdFx0dGhpcy5zdHlsZXMuYmFzaWMsIFxuXHRcdFx0dGhpcy5zdHlsZXMuc2l6ZXNbc2l6ZV0sXG5cdFx0XHR0aGlzLnN0eWxlcy5jb2xvcnNbY29sb3JdLFxuXHRcdFx0dGhpcy5zdHlsZXMudGhlbWVzW3RoZW1lXSxcblx0XHRcdHRoaXMucHJvcHMuZGlzYWJsZWQgJiYgdGhpcy5zdHlsZXMuZGlzYWJsZWQsXG5cdFx0XHRpbmxpbmUgJiYgdGhpcy5zdHlsZXMuaW5saW5lLFxuXHRcdFx0dGhpcy5wcm9wcy5zdHlsZVxuXHRcdF07XG5cblx0XHRpZiAoIGhyZWYgJiYgIW9uQ2xpY2spIHtcblx0XHRcdGNhbGxiYWNrID0gdGhpcy5oYW5kbGVDYWxsYmFja0hyZWY7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGNhbGxiYWNrID0gb25DbGljaztcblx0XHR9XG5cblx0XHRyZXR1cm4gKFxuXHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBSZWFjdC5fX3NwcmVhZCh7fSwgIG90aGVyLCB7c3R5bGU6IGNvbWJpbmVkU3R5bGUsIG9uQ2xpY2s6IGNhbGxiYWNrLCBvbk1vdXNlT3ZlcjogdGhpcy5oYW5kbGVNb3VzZU92ZXIsIG9uTW91c2VPdXQ6IHRoaXMuaGFuZGxlTW91c2VPdXR9KSwgXG5cdFx0XHRcdHRoaXMucHJvcHMuY2hpbGRyZW5cblx0XHRcdClcblx0XHQpO1xuXHR9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBSYWRpdW0oQnV0dG9uKTsiLCJ2YXIgUmVhY3QgPSAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiA/IHdpbmRvd1snUmVhY3QnXSA6IHR5cGVvZiBnbG9iYWwgIT09IFwidW5kZWZpbmVkXCIgPyBnbG9iYWxbJ1JlYWN0J10gOiBudWxsKSxcblx0UmFkaXVtID0gcmVxdWlyZSgncmFkaXVtJyk7XG5cbi8qKlxuICogU2hvdyBwcm9ncmVzcyB0aHJvdWdoIHRoZSBzdGVwc1xuICogTk9URTogcHJvZ3Jlc3NQZXJjZW50IE1VU1QgYmUgcm91bmRlZCB0byB0aGUgbmVhcmVzdCAxMCwgaS5lLiAxMCwgMjAsIDMwLCA0MC4uLjEwMFxuICogVGhpcyBpcyByZXF1aXJlZCBmb3IgdGhlIENTUyB0byB3b3JrICh3aWxsIGZpeCBsYXRlci4uLilcbiAqKi9cbnZhciBQcm9ncmVzc0JhciA9IFJlYWN0LmNyZWF0ZUNsYXNzKHtkaXNwbGF5TmFtZTogXCJQcm9ncmVzc0JhclwiLFxuXG5cdHByb3BUeXBlczoge1xuXHRcdHN0eWxlOiBSZWFjdC5Qcm9wVHlwZXMub2JqZWN0LFxuXHRcdHByb2dyZXNzUGVyY2VudDogUmVhY3QuUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkXG5cdH0sXG5cblx0c3R5bGVzOiB7XG5cdFx0d3JhcHBlcjoge1xuXHRcdFx0Zm9udFdlaWdodDogNDAwLFxuXHRcdFx0Zm9udFNpemU6ICc4MCUnXG5cdFx0fSxcblx0XHRwcm9ncmVzczoge1xuXHRcdFx0YmFja2dyb3VuZDogJyM0YWI4NjYnLFxuXHRcdFx0d2lkdGg6ICcwJScsXG5cdFx0XHR0cmFuc2l0aW9uOiAnd2lkdGggMC41cycsXG5cdFx0XHRkaXNwbGF5OiAnYmxvY2snLFxuXHRcdFx0aGVpZ2h0OiAnMTAwJSdcblx0XHR9LFxuXHRcdGJhcjoge1xuXHRcdFx0ZGlzcGxheTogJ2lubGluZS1ibG9jaycsXG5cdFx0XHR3aWR0aDogODAsXG5cdFx0XHRoZWlnaHQ6IDEyLFxuXHRcdFx0bWFyZ2luOiAnMCA4cHggLTJweCAwJyxcblx0XHRcdHBhZGRpbmc6IDIsXG5cdFx0XHRib3JkZXJSYWRpdXM6IDIsXG5cdFx0XHRiYWNrZ3JvdW5kOiAnI2Y1ZjVmNSdcblx0XHR9XG5cdH0sXG5cblx0cmVuZGVyOiBmdW5jdGlvbigpIHtcblx0XHQvLyB2YXIgY2xhc3NlcyA9ICdnZXR0aW5nLXN0YXJ0ZWRfX3Byb2dyZXNzIHByb2dyZXNzXycrdGhpcy5wcm9wcy5wcm9ncmVzc1BlcmNlbnQ7XG5cdFx0cmV0dXJuIChcblx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge3N0eWxlOiBbdGhpcy5zdHlsZXMud3JhcHBlciwgdGhpcy5wcm9wcy5zdHlsZV19LCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7c3R5bGU6IHRoaXMuc3R5bGVzLmJhcn0sIFxuXHRcdFx0XHRcdFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtzdHlsZTogW3RoaXMuc3R5bGVzLnByb2dyZXNzLCB7IHdpZHRoOiB0aGlzLnByb3BzLnByb2dyZXNzUGVyY2VudCsnJScgfV19KVxuXHRcdFx0XHQpLCBcblx0XHRcdFx0dGhpcy5wcm9wcy5wcm9ncmVzc1BlcmNlbnQsIFwiJSBjb21wbGV0ZVwiXG5cdFx0XHQpXG5cdFx0KTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmFkaXVtKFByb2dyZXNzQmFyKTsiLCIvLyB0aGlzIGNvbXBvbmVudCBwcm92aWRlcyBzb21lIGJhc2ljIHJlc2V0cyBzbyB0aGF0IHRoZSByZXN0IG9mIHRoZSBzdHlsaW5nIHdvcmtzIGFzIGludGVuZGVkLlxuLy8gdGhpcyBwcmV2ZW50cyBub2lzeSBkdXBsaWNhdGlvbiBvZiByZXNldCBjb2RlIHRocm91Z2hvdXQgdGhlIGNvZGViYXNlLlxuXG4vLyB1c2FnZTpcbi8vIHVzZSB0aGlzIGFzIGEgd3JhcHBlciBmb3IgYSB0b3AtbGV2ZWwgY29tcG9uZW50IHRoYXQgdXNlcyBkb3BzLXJlYWN0LCBlLmcuXG4vL1xuLy8gcmVuZGVyOiBmdW5jdGlvbigpIHtcbi8vIFx0cmV0dXJuIChcbi8vICAgICAgIDxSZXNldD5cbi8vICAgICAgICAgLi4uIHRoZSByZXN0IG9mIG15IGNvZGUgZ29lcyBoZXJlIC4uLlxuLy8gICAgICAgPC9SZXNldD5cbi8vIFx0KVxuLy8gfVxuXG4vLyB0byBhZGQgYWRkaXRpb25hbCBDU1MsIHBhc3MgaXQgaW4gdXNpbmcgdGhlIFwiQ1NTXCIgcHJvcGVydHlcblxudmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCksXG5cdFJhZGl1bSA9IHJlcXVpcmUoJ3JhZGl1bScpLFxuXHRtID0gcmVxdWlyZSgnLi4vdXRpbHMvbScpO1xuXG52YXIgaWRDb3VudGVyID0gMDtcblxudmFyIFJlc2V0ID0gUmVhY3QuY3JlYXRlQ2xhc3Moe2Rpc3BsYXlOYW1lOiBcIlJlc2V0XCIsXG5cdHByb3BUeXBlczoge1xuXHRcdGNzczogUmVhY3QuUHJvcFR5cGVzLm9iamVjdFxuXHR9LFxuXG5cdHN0eWxlOiB7XG5cdFx0cmVzZXRzOiB7XG5cdFx0XHQnKic6IHtcblx0XHRcdFx0Ym94U2l6aW5nOiAnYm9yZGVyLWJveCdcblx0XHRcdH0sXG5cdFx0XHQnZGl2LCB1bCwgb2wsIGxpLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBmb3JtLCBmaWVsZHNldCwgbGVnZW5kLCBpbnB1dCwgYnV0dG9uLCB0ZXh0YXJlYSwgcCwgYmxvY2txdW90ZSwgdGgsIHRkJzogeyBcblx0XHRcdFx0bWFyZ2luOiAwLCBwYWRkaW5nOiAwIFxuXHRcdFx0fSxcblx0XHRcdGltZzoge1xuXHRcdFx0XHRib3JkZXI6ICdub25lJyxcblx0XHRcdFx0bWF4V2lkdGg6ICcxMDAlJ1xuXHRcdFx0fSxcblx0XHRcdHRkOiB7XG5cdFx0XHRcdHZlcnRpY2FsQWxpZ246ICd0b3AnXG5cdFx0XHR9LFxuXG5cdFx0XHQvLyB0aGVzZSBzdXBwb3J0IGFuaW1hdGlvbnNcblx0XHRcdCcuc2xpZGVEb3duLWVudGVyJzoge1xuXHRcdFx0XHRvdmVyZmxvd1k6ICdoaWRkZW4nLFxuXHRcdFx0XHRtYXhIZWlnaHQ6IDAsXG5cdFx0XHRcdHRyYW5zaXRpb246ICdhbGwgLjVzIGVhc2Utb3V0J1xuXHRcdFx0fSxcblxuXHRcdFx0Jy5zbGlkZURvd24tZW50ZXItYWN0aXZlJzoge1xuXHRcdFx0XHRvdmVyZmxvd1k6ICdoaWRkZW4nLFxuXHRcdFx0XHRtYXhIZWlnaHQ6IDQwMFxuXHRcdFx0fSxcblxuXHRcdFx0Jy5zbGlkZURvd24tbGVhdmUnOiB7XG5cdFx0XHRcdG92ZXJmbG93WTogJ2hpZGRlbicsXG5cdFx0XHRcdG1heEhlaWdodDogNDAwLFxuXHRcdFx0XHR0cmFuc2l0aW9uOiAnYWxsIC41cyBlYXNlLW91dCdcblx0XHRcdH0sXG5cblx0XHRcdCcuc2xpZGVEb3duLWxlYXZlLWFjdGl2ZSc6IHtcblx0XHRcdFx0b3ZlcmZsb3dZOiAnaGlkZGVuJyxcblx0XHRcdFx0bWF4SGVpZ2h0OiAwXG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFNsaWRlIGFjcm9zcyByaWdodC10by1sZWZ0XG5cdFx0XHQgKi9cblxuXHRcdFx0Jy5zbGlkZVJUTC1lbnRlcic6IHtcblx0XHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXG5cdFx0XHRcdGxlZnQ6ICcxMDAlJyxcblx0XHRcdFx0dHJhbnNpdGlvbjogJ2FsbCAuMnMgbGluZWFyJ1xuXHRcdFx0fSxcblxuXHRcdFx0Jy5zbGlkZVJUTC1lbnRlci1hY3RpdmUnOiB7XG5cdFx0XHRcdHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuXHRcdFx0XHRsZWZ0OiAnMCUnXG5cdFx0XHR9LFxuXG5cdFx0XHQnLnNsaWRlUlRMLWxlYXZlJzoge1xuXHRcdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdFx0bGVmdDogJzAlJyxcblx0XHRcdFx0dHJhbnNpdGlvbjogJ2FsbCAuMnMgbGluZWFyJ1xuXHRcdFx0fSxcblxuXHRcdFx0Jy5zbGlkZVJUTC1sZWF2ZS1hY3RpdmUnOiB7XG5cdFx0XHRcdHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuXHRcdFx0XHRsZWZ0OiAnLTEwMCUnXG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFNsaWRlIGFjcm9zcyBsZWZ0LXRvLXJpZ2h0XG5cdFx0XHQgKi9cblxuXHRcdFx0Jy5zbGlkZUxUUi1lbnRlcic6IHtcblx0XHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXG5cdFx0XHRcdGxlZnQ6ICctMTAwJScsXG5cdFx0XHRcdHRyYW5zaXRpb246ICdhbGwgLjJzIGxpbmVhcidcblx0XHRcdH0sXG5cblx0XHRcdCcuc2xpZGVMVFItZW50ZXItYWN0aXZlJzoge1xuXHRcdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdFx0bGVmdDogJzAlJ1xuXHRcdFx0fSxcblxuXHRcdFx0Jy5zbGlkZUxUUi1sZWF2ZSc6IHtcblx0XHRcdFx0cG9zaXRpb246ICdhYnNvbHV0ZScsXG5cdFx0XHRcdGxlZnQ6ICcwJScsXG5cdFx0XHRcdHRyYW5zaXRpb246ICdhbGwgLjJzIGxpbmVhcidcblx0XHRcdH0sXG5cblx0XHRcdCcuc2xpZGVMVFItbGVhdmUtYWN0aXZlJzoge1xuXHRcdFx0XHRwb3NpdGlvbjogJ2Fic29sdXRlJyxcblx0XHRcdFx0bGVmdDogJzEwMCUnXG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRyZW5kZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHZhciAkX18wPSAgdGhpcy5wcm9wcyxwcm9wcz0oZnVuY3Rpb24oc291cmNlLCBleGNsdXNpb24pIHt2YXIgcmVzdCA9IHt9O3ZhciBoYXNPd24gPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2lmIChzb3VyY2UgPT0gbnVsbCkge3Rocm93IG5ldyBUeXBlRXJyb3IoKTt9Zm9yICh2YXIga2V5IGluIHNvdXJjZSkge2lmIChoYXNPd24uY2FsbChzb3VyY2UsIGtleSkgJiYgIWhhc093bi5jYWxsKGV4Y2x1c2lvbiwga2V5KSkge3Jlc3Rba2V5XSA9IHNvdXJjZVtrZXldO319cmV0dXJuIHJlc3Q7fSkoJF9fMCx7fSksXG5cdFx0XHRpZCA9IHRoaXMuX2dlbmVyYXRlSWQoKTtcblxuXHRcdHJldHVybiAoXG5cdFx0XHRSZWFjdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIFJlYWN0Ll9fc3ByZWFkKHtpZDogaWR9LCAgcHJvcHMpLCBcblx0XHRcdFx0UmVhY3QuY3JlYXRlRWxlbWVudChSYWRpdW0uU3R5bGUsIHtzY29wZVNlbGVjdG9yOiAnIycraWQsIHJ1bGVzOiBtKHRoaXMuc3R5bGUucmVzZXRzLCB0aGlzLnByb3BzLmNzcyl9KSwgXG5cdFx0XHRcdHRoaXMucHJvcHMuY2hpbGRyZW5cblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdF9nZW5lcmF0ZUlkOiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gJ2RvcHNpZCcrKGlkQ291bnRlcisrKTtcblx0fVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVzZXQ7IiwidmFyIHN0eWxlcyA9IHtcblx0Ly9sYXlvdXRcblx0cmlnaHQ6IHsgZmxvYXQ6ICdyaWdodCcgfSxcblx0XG5cdGxlZnQ6IHsgZmxvYXQ6ICdsZWZ0JyB9LFxuXHRcblx0dGhpcmQ6IHsgd2lkdGg6ICczMyUnIH0sXG5cblx0ZnVsbDogeyB3aWR0aDogJzEwMCUnIH0sXG5cblx0aGFsZjogeyB3aWR0aDogJzQ4JScgfSxcblxuXHRoaWRkZW46IHsgZGlzcGxheTogJ25vbmUnIH0sXG5cblx0Y2xlYXI6IHtcblx0XHRjbGVhcjogJ2JvdGgnLCBcblx0XHRkaXNwbGF5OiAnYmxvY2snIFxuXHR9LFxuXG5cdC8vYWNjb3VudCBzdGF0dXMgaW5kaWNhdG9yXG5cdGFjY291bnRTdGF0dXM6IHtcblx0XHR0ZXh0VHJhbnNmb3JtOiAnY2FwaXRhbGl6ZSdcblx0fSxcblxuXHRhY2NvdW50U3RhdHVzTm90aWNvbjoge1xuXHRcdGJvcmRlclJhZGl1czogXCI1MCVcIixcblx0XHR3aWR0aDogMTYsXG5cdFx0aGVpZ2h0OiAxNixcblx0XHRtYXJnaW5SaWdodDogMTAsXG5cdFx0Y29sb3I6ICcjZmZmJyxcblx0XHRiYWNrZ3JvdW5kOiAnIzgxYmYxNidcblx0fSxcblxuXHQvL2JveCB3aWRnZXRcblx0Ym94OiB7XG5cdFx0Ym9yZGVyUmFkaXVzOiAyLFxuXHRcdHBhZGRpbmc6ICc1cHggMTBweCcsXG5cdFx0YmFja2dyb3VuZDogJyNmNWY1ZjUnXG5cdH0sXG5cblx0Ly9iYXNpYyBzdHlsaW5nIC0gZm9udHMgYW5kIGNvbG9yc1xuXHRsaWdodDogeyBjb2xvcjogJyM5OTknIH0sXG5cdGNvbG9yczoge1xuXHRcdGFraXNtZXRHcmVlbjogJyM1ZThlMTQnLFxuXHRcdGJsdWU6ICcjMDI5ZGQ2Jyxcblx0XHRsaWdodGVyQmx1ZTogJyMxM0FFRTcnLFxuXHRcdGJsYWNrOiAnIzMzMycsXG5cdFx0ZGFya0dyYXk6ICcjNDQ0Jyxcblx0XHRncmF5OiAnIzc4Nzg3OCcsXG5cdFx0bGlnaHRHcmF5OiAnI2JiYicsXG5cdFx0dmVyeUxpZ2h0R3JheTogJyNlZWUnLFxuXHRcdG9mZldoaXRlOiAnI2Y5ZjlmOScsXG5cdFx0YWNjb3VudEFjdGl2ZTogJyM4MWJmMTYnLFxuXHRcdGFjY291bnRJbmFjdGl2ZTogJyNiYmInLFxuXHRcdGdyZWVuOiAnIzUxOGQyYScsXG5cdFx0bGlnaHRlckdyZWVuOiAnIzU3OTcyZCdcblx0fSxcblxuXHRmb250czoge1xuXHRcdHNhbnM6ICdPcGVuIFNhbnMsIFwiT3BlbiBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZicsXG5cdFx0c2VyaWY6ICdNZXJyaXdlYXRoZXIsIEdlb3JnaWEsIHNlcmlmJyxcblx0XHRtb25vOiAnXCJDb3VyaWVyIE5ld1wiLCBDb3VyaWVyLCBtb25vc3BhY2UnXG5cdH0sXG5cblx0Ly9mb3Jtc1xuXHRpbnB1dDoge1xuXHRcdHdpZHRoOiBcIjEwMCVcIixcblx0XHRib3hTaGFkb3c6ICdub25lJyxcblx0XHRiYWNrZ3JvdW5kOiAnI2ZmZicsXG5cdFx0Ym9yZGVyOiAnMXB4IHNvbGlkICNkNWQ1ZDUnLFxuXHRcdGZvbnRTaXplOiAxMixcblx0XHRwYWRkaW5nOiAnOHB4IDEwcHgnXG5cdH0sXG5cblx0c2VsZWN0OiB7XG5cdFx0Ym9yZGVyUmFkaXVzOiAzLFxuXHRcdGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuXHRcdGZvbnRTaXplOiAxMixcblx0XHRoZWlnaHQ6IDM1LFxuXHRcdHdpZHRoOiAnMTAwJScsXG5cdFx0Ym9yZGVyOiAnMXB4IHNvbGlkICNkNWQ1ZDUnLFxuXHRcdHBhZGRpbmc6ICczcHggNXB4Jyxcblx0XHRtaW5XaWR0aDogMFxuXHR9LFxuXG5cdGNoZWNrYm94OiB7XG5cdFx0bWFyZ2luUmlnaHQ6IDEwXG5cdH0sXG5cblx0ZXJyb3JGaWVsZDoge1xuXHRcdGJvcmRlcjogJzFweCBzb2xpZCAjZGQzZDM2J1xuXHR9LFxuXHRcblx0ZXJyb3JMYWJlbDoge1xuXHRcdGJvcmRlcjogJzFweCBzb2xpZCAjZGQzZDM2Jyxcblx0XHRjb2xvcjogJyNhMDAnLFxuXHRcdGRpc3BsYXk6ICdibG9jaycsXG5cdFx0Zm9udFNpemU6IDEyLFxuXHRcdG1hcmdpbjogJzVweCAwIDAgMCcsXG5cdFx0cGFkZGluZzogNVxuXHR9LFxuXG5cdFxufTtcblxuLy8gb3B0aW9uYWwgdG9wLWxldmVsIHN0eWxlcyBmb3IgcGFzc2luZyBpbnRvIHRoZSBcInJlc2V0XCIgb2JqZWN0XG5zdHlsZXMuY3NzID0ge1xuXHQnPiAqJzoge1xuXHRcdGZvbnQ6ICcxNHB4LzEuNSAnICsgc3R5bGVzLmZvbnRzLnNhbnMsXG5cdFx0Y29sb3I6IHN0eWxlcy5jb2xvcnMuYmxhY2tcblx0fSxcblx0YToge1xuXHRcdGNvbG9yOiBzdHlsZXMuY29sb3JzLmJsdWUsXG5cdFx0dGV4dERlY29yYXRpb246ICdub25lJ1xuXHR9LFxuXHQnYTpob3Zlcic6IHtcblx0XHR0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZSdcblx0fSxcblx0aDE6IHtcblx0XHRmb250U2l6ZTogMzRcblx0fSxcblx0aDI6IHtcblx0XHRjb2xvcjogc3R5bGVzLmNvbG9ycy5ncmF5LFxuXHRcdGZvbnRTaXplOiAxNlxuXHR9LFxuXHRoMzoge1xuXHRcdGZvbnRTaXplOiAxOFxuXHR9LFxuXHQnaDEsIGgyLCBoMyc6IHtcblx0XHRmb250RmFtaWx5OiBzdHlsZXMuZm9udHMuc2VyaWYsXG5cdFx0Zm9udFdlaWdodDogNTAwXG5cdH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVzOyIsIm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG5cdHZhciByZXMgPSB7fTtcblx0Zm9yICggdmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7XG5cdFx0aWYgKGFyZ3VtZW50c1tpXSkge1xuXHRcdFx0alF1ZXJ5LmV4dGVuZChyZXMsIGFyZ3VtZW50c1tpXSk7XG5cdFx0fVxuXHR9XG5cdHJldHVybiByZXM7XG59OyIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUsIEZhY2Vib29rLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEJTRC1zdHlsZSBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLiBBbiBhZGRpdGlvbmFsIGdyYW50XG4gKiBvZiBwYXRlbnQgcmlnaHRzIGNhbiBiZSBmb3VuZCBpbiB0aGUgUEFURU5UUyBmaWxlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS5cbiAqL1xuXG5tb2R1bGUuZXhwb3J0cy5EaXNwYXRjaGVyID0gcmVxdWlyZSgnLi9saWIvRGlzcGF0Y2hlcicpO1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBEaXNwYXRjaGVyXG4gKiBcbiAqIEBwcmV2ZW50TXVuZ2VcbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG52YXIgaW52YXJpYW50ID0gcmVxdWlyZSgnZmJqcy9saWIvaW52YXJpYW50Jyk7XG5cbnZhciBfcHJlZml4ID0gJ0lEXyc7XG5cbi8qKlxuICogRGlzcGF0Y2hlciBpcyB1c2VkIHRvIGJyb2FkY2FzdCBwYXlsb2FkcyB0byByZWdpc3RlcmVkIGNhbGxiYWNrcy4gVGhpcyBpc1xuICogZGlmZmVyZW50IGZyb20gZ2VuZXJpYyBwdWItc3ViIHN5c3RlbXMgaW4gdHdvIHdheXM6XG4gKlxuICogICAxKSBDYWxsYmFja3MgYXJlIG5vdCBzdWJzY3JpYmVkIHRvIHBhcnRpY3VsYXIgZXZlbnRzLiBFdmVyeSBwYXlsb2FkIGlzXG4gKiAgICAgIGRpc3BhdGNoZWQgdG8gZXZlcnkgcmVnaXN0ZXJlZCBjYWxsYmFjay5cbiAqICAgMikgQ2FsbGJhY2tzIGNhbiBiZSBkZWZlcnJlZCBpbiB3aG9sZSBvciBwYXJ0IHVudGlsIG90aGVyIGNhbGxiYWNrcyBoYXZlXG4gKiAgICAgIGJlZW4gZXhlY3V0ZWQuXG4gKlxuICogRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHRoaXMgaHlwb3RoZXRpY2FsIGZsaWdodCBkZXN0aW5hdGlvbiBmb3JtLCB3aGljaFxuICogc2VsZWN0cyBhIGRlZmF1bHQgY2l0eSB3aGVuIGEgY291bnRyeSBpcyBzZWxlY3RlZDpcbiAqXG4gKiAgIHZhciBmbGlnaHREaXNwYXRjaGVyID0gbmV3IERpc3BhdGNoZXIoKTtcbiAqXG4gKiAgIC8vIEtlZXBzIHRyYWNrIG9mIHdoaWNoIGNvdW50cnkgaXMgc2VsZWN0ZWRcbiAqICAgdmFyIENvdW50cnlTdG9yZSA9IHtjb3VudHJ5OiBudWxsfTtcbiAqXG4gKiAgIC8vIEtlZXBzIHRyYWNrIG9mIHdoaWNoIGNpdHkgaXMgc2VsZWN0ZWRcbiAqICAgdmFyIENpdHlTdG9yZSA9IHtjaXR5OiBudWxsfTtcbiAqXG4gKiAgIC8vIEtlZXBzIHRyYWNrIG9mIHRoZSBiYXNlIGZsaWdodCBwcmljZSBvZiB0aGUgc2VsZWN0ZWQgY2l0eVxuICogICB2YXIgRmxpZ2h0UHJpY2VTdG9yZSA9IHtwcmljZTogbnVsbH1cbiAqXG4gKiBXaGVuIGEgdXNlciBjaGFuZ2VzIHRoZSBzZWxlY3RlZCBjaXR5LCB3ZSBkaXNwYXRjaCB0aGUgcGF5bG9hZDpcbiAqXG4gKiAgIGZsaWdodERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuICogICAgIGFjdGlvblR5cGU6ICdjaXR5LXVwZGF0ZScsXG4gKiAgICAgc2VsZWN0ZWRDaXR5OiAncGFyaXMnXG4gKiAgIH0pO1xuICpcbiAqIFRoaXMgcGF5bG9hZCBpcyBkaWdlc3RlZCBieSBgQ2l0eVN0b3JlYDpcbiAqXG4gKiAgIGZsaWdodERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24ocGF5bG9hZCkge1xuICogICAgIGlmIChwYXlsb2FkLmFjdGlvblR5cGUgPT09ICdjaXR5LXVwZGF0ZScpIHtcbiAqICAgICAgIENpdHlTdG9yZS5jaXR5ID0gcGF5bG9hZC5zZWxlY3RlZENpdHk7XG4gKiAgICAgfVxuICogICB9KTtcbiAqXG4gKiBXaGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBjb3VudHJ5LCB3ZSBkaXNwYXRjaCB0aGUgcGF5bG9hZDpcbiAqXG4gKiAgIGZsaWdodERpc3BhdGNoZXIuZGlzcGF0Y2goe1xuICogICAgIGFjdGlvblR5cGU6ICdjb3VudHJ5LXVwZGF0ZScsXG4gKiAgICAgc2VsZWN0ZWRDb3VudHJ5OiAnYXVzdHJhbGlhJ1xuICogICB9KTtcbiAqXG4gKiBUaGlzIHBheWxvYWQgaXMgZGlnZXN0ZWQgYnkgYm90aCBzdG9yZXM6XG4gKlxuICogICBDb3VudHJ5U3RvcmUuZGlzcGF0Y2hUb2tlbiA9IGZsaWdodERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24ocGF5bG9hZCkge1xuICogICAgIGlmIChwYXlsb2FkLmFjdGlvblR5cGUgPT09ICdjb3VudHJ5LXVwZGF0ZScpIHtcbiAqICAgICAgIENvdW50cnlTdG9yZS5jb3VudHJ5ID0gcGF5bG9hZC5zZWxlY3RlZENvdW50cnk7XG4gKiAgICAgfVxuICogICB9KTtcbiAqXG4gKiBXaGVuIHRoZSBjYWxsYmFjayB0byB1cGRhdGUgYENvdW50cnlTdG9yZWAgaXMgcmVnaXN0ZXJlZCwgd2Ugc2F2ZSBhIHJlZmVyZW5jZVxuICogdG8gdGhlIHJldHVybmVkIHRva2VuLiBVc2luZyB0aGlzIHRva2VuIHdpdGggYHdhaXRGb3IoKWAsIHdlIGNhbiBndWFyYW50ZWVcbiAqIHRoYXQgYENvdW50cnlTdG9yZWAgaXMgdXBkYXRlZCBiZWZvcmUgdGhlIGNhbGxiYWNrIHRoYXQgdXBkYXRlcyBgQ2l0eVN0b3JlYFxuICogbmVlZHMgdG8gcXVlcnkgaXRzIGRhdGEuXG4gKlxuICogICBDaXR5U3RvcmUuZGlzcGF0Y2hUb2tlbiA9IGZsaWdodERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24ocGF5bG9hZCkge1xuICogICAgIGlmIChwYXlsb2FkLmFjdGlvblR5cGUgPT09ICdjb3VudHJ5LXVwZGF0ZScpIHtcbiAqICAgICAgIC8vIGBDb3VudHJ5U3RvcmUuY291bnRyeWAgbWF5IG5vdCBiZSB1cGRhdGVkLlxuICogICAgICAgZmxpZ2h0RGlzcGF0Y2hlci53YWl0Rm9yKFtDb3VudHJ5U3RvcmUuZGlzcGF0Y2hUb2tlbl0pO1xuICogICAgICAgLy8gYENvdW50cnlTdG9yZS5jb3VudHJ5YCBpcyBub3cgZ3VhcmFudGVlZCB0byBiZSB1cGRhdGVkLlxuICpcbiAqICAgICAgIC8vIFNlbGVjdCB0aGUgZGVmYXVsdCBjaXR5IGZvciB0aGUgbmV3IGNvdW50cnlcbiAqICAgICAgIENpdHlTdG9yZS5jaXR5ID0gZ2V0RGVmYXVsdENpdHlGb3JDb3VudHJ5KENvdW50cnlTdG9yZS5jb3VudHJ5KTtcbiAqICAgICB9XG4gKiAgIH0pO1xuICpcbiAqIFRoZSB1c2FnZSBvZiBgd2FpdEZvcigpYCBjYW4gYmUgY2hhaW5lZCwgZm9yIGV4YW1wbGU6XG4gKlxuICogICBGbGlnaHRQcmljZVN0b3JlLmRpc3BhdGNoVG9rZW4gPVxuICogICAgIGZsaWdodERpc3BhdGNoZXIucmVnaXN0ZXIoZnVuY3Rpb24ocGF5bG9hZCkge1xuICogICAgICAgc3dpdGNoIChwYXlsb2FkLmFjdGlvblR5cGUpIHtcbiAqICAgICAgICAgY2FzZSAnY291bnRyeS11cGRhdGUnOlxuICogICAgICAgICBjYXNlICdjaXR5LXVwZGF0ZSc6XG4gKiAgICAgICAgICAgZmxpZ2h0RGlzcGF0Y2hlci53YWl0Rm9yKFtDaXR5U3RvcmUuZGlzcGF0Y2hUb2tlbl0pO1xuICogICAgICAgICAgIEZsaWdodFByaWNlU3RvcmUucHJpY2UgPVxuICogICAgICAgICAgICAgZ2V0RmxpZ2h0UHJpY2VTdG9yZShDb3VudHJ5U3RvcmUuY291bnRyeSwgQ2l0eVN0b3JlLmNpdHkpO1xuICogICAgICAgICAgIGJyZWFrO1xuICogICAgIH1cbiAqICAgfSk7XG4gKlxuICogVGhlIGBjb3VudHJ5LXVwZGF0ZWAgcGF5bG9hZCB3aWxsIGJlIGd1YXJhbnRlZWQgdG8gaW52b2tlIHRoZSBzdG9yZXMnXG4gKiByZWdpc3RlcmVkIGNhbGxiYWNrcyBpbiBvcmRlcjogYENvdW50cnlTdG9yZWAsIGBDaXR5U3RvcmVgLCB0aGVuXG4gKiBgRmxpZ2h0UHJpY2VTdG9yZWAuXG4gKi9cblxudmFyIERpc3BhdGNoZXIgPSAoZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBEaXNwYXRjaGVyKCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBEaXNwYXRjaGVyKTtcblxuICAgIHRoaXMuX2NhbGxiYWNrcyA9IHt9O1xuICAgIHRoaXMuX2lzRGlzcGF0Y2hpbmcgPSBmYWxzZTtcbiAgICB0aGlzLl9pc0hhbmRsZWQgPSB7fTtcbiAgICB0aGlzLl9pc1BlbmRpbmcgPSB7fTtcbiAgICB0aGlzLl9sYXN0SUQgPSAxO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIHRvIGJlIGludm9rZWQgd2l0aCBldmVyeSBkaXNwYXRjaGVkIHBheWxvYWQuIFJldHVybnNcbiAgICogYSB0b2tlbiB0aGF0IGNhbiBiZSB1c2VkIHdpdGggYHdhaXRGb3IoKWAuXG4gICAqL1xuXG4gIERpc3BhdGNoZXIucHJvdG90eXBlLnJlZ2lzdGVyID0gZnVuY3Rpb24gcmVnaXN0ZXIoY2FsbGJhY2spIHtcbiAgICB2YXIgaWQgPSBfcHJlZml4ICsgdGhpcy5fbGFzdElEKys7XG4gICAgdGhpcy5fY2FsbGJhY2tzW2lkXSA9IGNhbGxiYWNrO1xuICAgIHJldHVybiBpZDtcbiAgfTtcblxuICAvKipcbiAgICogUmVtb3ZlcyBhIGNhbGxiYWNrIGJhc2VkIG9uIGl0cyB0b2tlbi5cbiAgICovXG5cbiAgRGlzcGF0Y2hlci5wcm90b3R5cGUudW5yZWdpc3RlciA9IGZ1bmN0aW9uIHVucmVnaXN0ZXIoaWQpIHtcbiAgICAhdGhpcy5fY2FsbGJhY2tzW2lkXSA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdEaXNwYXRjaGVyLnVucmVnaXN0ZXIoLi4uKTogYCVzYCBkb2VzIG5vdCBtYXAgdG8gYSByZWdpc3RlcmVkIGNhbGxiYWNrLicsIGlkKSA6IGludmFyaWFudChmYWxzZSkgOiB1bmRlZmluZWQ7XG4gICAgZGVsZXRlIHRoaXMuX2NhbGxiYWNrc1tpZF07XG4gIH07XG5cbiAgLyoqXG4gICAqIFdhaXRzIGZvciB0aGUgY2FsbGJhY2tzIHNwZWNpZmllZCB0byBiZSBpbnZva2VkIGJlZm9yZSBjb250aW51aW5nIGV4ZWN1dGlvblxuICAgKiBvZiB0aGUgY3VycmVudCBjYWxsYmFjay4gVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBhIGNhbGxiYWNrIGluXG4gICAqIHJlc3BvbnNlIHRvIGEgZGlzcGF0Y2hlZCBwYXlsb2FkLlxuICAgKi9cblxuICBEaXNwYXRjaGVyLnByb3RvdHlwZS53YWl0Rm9yID0gZnVuY3Rpb24gd2FpdEZvcihpZHMpIHtcbiAgICAhdGhpcy5faXNEaXNwYXRjaGluZyA/IHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBpbnZhcmlhbnQoZmFsc2UsICdEaXNwYXRjaGVyLndhaXRGb3IoLi4uKTogTXVzdCBiZSBpbnZva2VkIHdoaWxlIGRpc3BhdGNoaW5nLicpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgaWRzLmxlbmd0aDsgaWkrKykge1xuICAgICAgdmFyIGlkID0gaWRzW2lpXTtcbiAgICAgIGlmICh0aGlzLl9pc1BlbmRpbmdbaWRdKSB7XG4gICAgICAgICF0aGlzLl9pc0hhbmRsZWRbaWRdID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0Rpc3BhdGNoZXIud2FpdEZvciguLi4pOiBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIHdoaWxlICcgKyAnd2FpdGluZyBmb3IgYCVzYC4nLCBpZCkgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgICF0aGlzLl9jYWxsYmFja3NbaWRdID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0Rpc3BhdGNoZXIud2FpdEZvciguLi4pOiBgJXNgIGRvZXMgbm90IG1hcCB0byBhIHJlZ2lzdGVyZWQgY2FsbGJhY2suJywgaWQpIDogaW52YXJpYW50KGZhbHNlKSA6IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuX2ludm9rZUNhbGxiYWNrKGlkKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYSBwYXlsb2FkIHRvIGFsbCByZWdpc3RlcmVkIGNhbGxiYWNrcy5cbiAgICovXG5cbiAgRGlzcGF0Y2hlci5wcm90b3R5cGUuZGlzcGF0Y2ggPSBmdW5jdGlvbiBkaXNwYXRjaChwYXlsb2FkKSB7XG4gICAgISF0aGlzLl9pc0Rpc3BhdGNoaW5nID8gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IGludmFyaWFudChmYWxzZSwgJ0Rpc3BhdGNoLmRpc3BhdGNoKC4uLik6IENhbm5vdCBkaXNwYXRjaCBpbiB0aGUgbWlkZGxlIG9mIGEgZGlzcGF0Y2guJykgOiBpbnZhcmlhbnQoZmFsc2UpIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuX3N0YXJ0RGlzcGF0Y2hpbmcocGF5bG9hZCk7XG4gICAgdHJ5IHtcbiAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX2NhbGxiYWNrcykge1xuICAgICAgICBpZiAodGhpcy5faXNQZW5kaW5nW2lkXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ludm9rZUNhbGxiYWNrKGlkKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3RvcERpc3BhdGNoaW5nKCk7XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBJcyB0aGlzIERpc3BhdGNoZXIgY3VycmVudGx5IGRpc3BhdGNoaW5nLlxuICAgKi9cblxuICBEaXNwYXRjaGVyLnByb3RvdHlwZS5pc0Rpc3BhdGNoaW5nID0gZnVuY3Rpb24gaXNEaXNwYXRjaGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5faXNEaXNwYXRjaGluZztcbiAgfTtcblxuICAvKipcbiAgICogQ2FsbCB0aGUgY2FsbGJhY2sgc3RvcmVkIHdpdGggdGhlIGdpdmVuIGlkLiBBbHNvIGRvIHNvbWUgaW50ZXJuYWxcbiAgICogYm9va2tlZXBpbmcuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICBEaXNwYXRjaGVyLnByb3RvdHlwZS5faW52b2tlQ2FsbGJhY2sgPSBmdW5jdGlvbiBfaW52b2tlQ2FsbGJhY2soaWQpIHtcbiAgICB0aGlzLl9pc1BlbmRpbmdbaWRdID0gdHJ1ZTtcbiAgICB0aGlzLl9jYWxsYmFja3NbaWRdKHRoaXMuX3BlbmRpbmdQYXlsb2FkKTtcbiAgICB0aGlzLl9pc0hhbmRsZWRbaWRdID0gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogU2V0IHVwIGJvb2trZWVwaW5nIG5lZWRlZCB3aGVuIGRpc3BhdGNoaW5nLlxuICAgKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG5cbiAgRGlzcGF0Y2hlci5wcm90b3R5cGUuX3N0YXJ0RGlzcGF0Y2hpbmcgPSBmdW5jdGlvbiBfc3RhcnREaXNwYXRjaGluZyhwYXlsb2FkKSB7XG4gICAgZm9yICh2YXIgaWQgaW4gdGhpcy5fY2FsbGJhY2tzKSB7XG4gICAgICB0aGlzLl9pc1BlbmRpbmdbaWRdID0gZmFsc2U7XG4gICAgICB0aGlzLl9pc0hhbmRsZWRbaWRdID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuX3BlbmRpbmdQYXlsb2FkID0gcGF5bG9hZDtcbiAgICB0aGlzLl9pc0Rpc3BhdGNoaW5nID0gdHJ1ZTtcbiAgfTtcblxuICAvKipcbiAgICogQ2xlYXIgYm9va2tlZXBpbmcgdXNlZCBmb3IgZGlzcGF0Y2hpbmcuXG4gICAqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cblxuICBEaXNwYXRjaGVyLnByb3RvdHlwZS5fc3RvcERpc3BhdGNoaW5nID0gZnVuY3Rpb24gX3N0b3BEaXNwYXRjaGluZygpIHtcbiAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1BheWxvYWQ7XG4gICAgdGhpcy5faXNEaXNwYXRjaGluZyA9IGZhbHNlO1xuICB9O1xuXG4gIHJldHVybiBEaXNwYXRjaGVyO1xufSkoKTtcblxubW9kdWxlLmV4cG9ydHMgPSBEaXNwYXRjaGVyOyIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTMtMjAxNSwgRmFjZWJvb2ssIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQlNELXN0eWxlIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuIEFuIGFkZGl0aW9uYWwgZ3JhbnRcbiAqIG9mIHBhdGVudCByaWdodHMgY2FuIGJlIGZvdW5kIGluIHRoZSBQQVRFTlRTIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LlxuICpcbiAqIEBwcm92aWRlc01vZHVsZSBpbnZhcmlhbnRcbiAqL1xuXG5cInVzZSBzdHJpY3RcIjtcblxuLyoqXG4gKiBVc2UgaW52YXJpYW50KCkgdG8gYXNzZXJ0IHN0YXRlIHdoaWNoIHlvdXIgcHJvZ3JhbSBhc3N1bWVzIHRvIGJlIHRydWUuXG4gKlxuICogUHJvdmlkZSBzcHJpbnRmLXN0eWxlIGZvcm1hdCAob25seSAlcyBpcyBzdXBwb3J0ZWQpIGFuZCBhcmd1bWVudHNcbiAqIHRvIHByb3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBicm9rZSBhbmQgd2hhdCB5b3Ugd2VyZVxuICogZXhwZWN0aW5nLlxuICpcbiAqIFRoZSBpbnZhcmlhbnQgbWVzc2FnZSB3aWxsIGJlIHN0cmlwcGVkIGluIHByb2R1Y3Rpb24sIGJ1dCB0aGUgaW52YXJpYW50XG4gKiB3aWxsIHJlbWFpbiB0byBlbnN1cmUgbG9naWMgZG9lcyBub3QgZGlmZmVyIGluIHByb2R1Y3Rpb24uXG4gKi9cblxudmFyIGludmFyaWFudCA9IGZ1bmN0aW9uIChjb25kaXRpb24sIGZvcm1hdCwgYSwgYiwgYywgZCwgZSwgZikge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhcmlhbnQgcmVxdWlyZXMgYW4gZXJyb3IgbWVzc2FnZSBhcmd1bWVudCcpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29uZGl0aW9uKSB7XG4gICAgdmFyIGVycm9yO1xuICAgIGlmIChmb3JtYXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ01pbmlmaWVkIGV4Y2VwdGlvbiBvY2N1cnJlZDsgdXNlIHRoZSBub24tbWluaWZpZWQgZGV2IGVudmlyb25tZW50ICcgKyAnZm9yIHRoZSBmdWxsIGVycm9yIG1lc3NhZ2UgYW5kIGFkZGl0aW9uYWwgaGVscGZ1bCB3YXJuaW5ncy4nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIGFyZ3MgPSBbYSwgYiwgYywgZCwgZSwgZl07XG4gICAgICB2YXIgYXJnSW5kZXggPSAwO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3IoJ0ludmFyaWFudCBWaW9sYXRpb246ICcgKyBmb3JtYXQucmVwbGFjZSgvJXMvZywgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gYXJnc1thcmdJbmRleCsrXTtcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBlcnJvci5mcmFtZXNUb1BvcCA9IDE7IC8vIHdlIGRvbid0IGNhcmUgYWJvdXQgaW52YXJpYW50J3Mgb3duIGZyYW1lXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn07XG5cbm1vZHVsZS5leHBvcnRzID0gaW52YXJpYW50OyIsIi8vIENvcHlyaWdodCBKb3llbnQsIEluYy4gYW5kIG90aGVyIE5vZGUgY29udHJpYnV0b3JzLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhXG4vLyBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlXG4vLyBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmdcbi8vIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCxcbi8vIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXRcbi8vIHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZVxuLy8gZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWRcbi8vIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1Ncbi8vIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Zcbi8vIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU5cbi8vIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLFxuLy8gREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SXG4vLyBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFXG4vLyBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuXG5mdW5jdGlvbiBFdmVudEVtaXR0ZXIoKSB7XG4gIHRoaXMuX2V2ZW50cyA9IHRoaXMuX2V2ZW50cyB8fCB7fTtcbiAgdGhpcy5fbWF4TGlzdGVuZXJzID0gdGhpcy5fbWF4TGlzdGVuZXJzIHx8IHVuZGVmaW5lZDtcbn1cbm1vZHVsZS5leHBvcnRzID0gRXZlbnRFbWl0dGVyO1xuXG4vLyBCYWNrd2FyZHMtY29tcGF0IHdpdGggbm9kZSAwLjEwLnhcbkV2ZW50RW1pdHRlci5FdmVudEVtaXR0ZXIgPSBFdmVudEVtaXR0ZXI7XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX2V2ZW50cyA9IHVuZGVmaW5lZDtcbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuX21heExpc3RlbmVycyA9IHVuZGVmaW5lZDtcblxuLy8gQnkgZGVmYXVsdCBFdmVudEVtaXR0ZXJzIHdpbGwgcHJpbnQgYSB3YXJuaW5nIGlmIG1vcmUgdGhhbiAxMCBsaXN0ZW5lcnMgYXJlXG4vLyBhZGRlZCB0byBpdC4gVGhpcyBpcyBhIHVzZWZ1bCBkZWZhdWx0IHdoaWNoIGhlbHBzIGZpbmRpbmcgbWVtb3J5IGxlYWtzLlxuRXZlbnRFbWl0dGVyLmRlZmF1bHRNYXhMaXN0ZW5lcnMgPSAxMDtcblxuLy8gT2J2aW91c2x5IG5vdCBhbGwgRW1pdHRlcnMgc2hvdWxkIGJlIGxpbWl0ZWQgdG8gMTAuIFRoaXMgZnVuY3Rpb24gYWxsb3dzXG4vLyB0aGF0IHRvIGJlIGluY3JlYXNlZC4gU2V0IHRvIHplcm8gZm9yIHVubGltaXRlZC5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzID0gZnVuY3Rpb24obikge1xuICBpZiAoIWlzTnVtYmVyKG4pIHx8IG4gPCAwIHx8IGlzTmFOKG4pKVxuICAgIHRocm93IFR5cGVFcnJvcignbiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyJyk7XG4gIHRoaXMuX21heExpc3RlbmVycyA9IG47XG4gIHJldHVybiB0aGlzO1xufTtcblxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgZXIsIGhhbmRsZXIsIGxlbiwgYXJncywgaSwgbGlzdGVuZXJzO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzKVxuICAgIHRoaXMuX2V2ZW50cyA9IHt9O1xuXG4gIC8vIElmIHRoZXJlIGlzIG5vICdlcnJvcicgZXZlbnQgbGlzdGVuZXIgdGhlbiB0aHJvdy5cbiAgaWYgKHR5cGUgPT09ICdlcnJvcicpIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50cy5lcnJvciB8fFxuICAgICAgICAoaXNPYmplY3QodGhpcy5fZXZlbnRzLmVycm9yKSAmJiAhdGhpcy5fZXZlbnRzLmVycm9yLmxlbmd0aCkpIHtcbiAgICAgIGVyID0gYXJndW1lbnRzWzFdO1xuICAgICAgaWYgKGVyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgdGhyb3cgZXI7IC8vIFVuaGFuZGxlZCAnZXJyb3InIGV2ZW50XG4gICAgICB9XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ1VuY2F1Z2h0LCB1bnNwZWNpZmllZCBcImVycm9yXCIgZXZlbnQuJyk7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlciA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNVbmRlZmluZWQoaGFuZGxlcikpXG4gICAgcmV0dXJuIGZhbHNlO1xuXG4gIGlmIChpc0Z1bmN0aW9uKGhhbmRsZXIpKSB7XG4gICAgc3dpdGNoIChhcmd1bWVudHMubGVuZ3RoKSB7XG4gICAgICAvLyBmYXN0IGNhc2VzXG4gICAgICBjYXNlIDE6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIGhhbmRsZXIuY2FsbCh0aGlzLCBhcmd1bWVudHNbMV0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgaGFuZGxlci5jYWxsKHRoaXMsIGFyZ3VtZW50c1sxXSwgYXJndW1lbnRzWzJdKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBzbG93ZXJcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuIC0gMSk7XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBsZW47IGkrKylcbiAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgaGFuZGxlci5hcHBseSh0aGlzLCBhcmdzKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNPYmplY3QoaGFuZGxlcikpIHtcbiAgICBsZW4gPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgIGFyZ3MgPSBuZXcgQXJyYXkobGVuIC0gMSk7XG4gICAgZm9yIChpID0gMTsgaSA8IGxlbjsgaSsrKVxuICAgICAgYXJnc1tpIC0gMV0gPSBhcmd1bWVudHNbaV07XG5cbiAgICBsaXN0ZW5lcnMgPSBoYW5kbGVyLnNsaWNlKCk7XG4gICAgbGVuID0gbGlzdGVuZXJzLmxlbmd0aDtcbiAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspXG4gICAgICBsaXN0ZW5lcnNbaV0uYXBwbHkodGhpcywgYXJncyk7XG4gIH1cblxuICByZXR1cm4gdHJ1ZTtcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUuYWRkTGlzdGVuZXIgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICB2YXIgbTtcblxuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgdGhpcy5fZXZlbnRzID0ge307XG5cbiAgLy8gVG8gYXZvaWQgcmVjdXJzaW9uIGluIHRoZSBjYXNlIHRoYXQgdHlwZSA9PT0gXCJuZXdMaXN0ZW5lclwiISBCZWZvcmVcbiAgLy8gYWRkaW5nIGl0IHRvIHRoZSBsaXN0ZW5lcnMsIGZpcnN0IGVtaXQgXCJuZXdMaXN0ZW5lclwiLlxuICBpZiAodGhpcy5fZXZlbnRzLm5ld0xpc3RlbmVyKVxuICAgIHRoaXMuZW1pdCgnbmV3TGlzdGVuZXInLCB0eXBlLFxuICAgICAgICAgICAgICBpc0Z1bmN0aW9uKGxpc3RlbmVyLmxpc3RlbmVyKSA/XG4gICAgICAgICAgICAgIGxpc3RlbmVyLmxpc3RlbmVyIDogbGlzdGVuZXIpO1xuXG4gIGlmICghdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIC8vIE9wdGltaXplIHRoZSBjYXNlIG9mIG9uZSBsaXN0ZW5lci4gRG9uJ3QgbmVlZCB0aGUgZXh0cmEgYXJyYXkgb2JqZWN0LlxuICAgIHRoaXMuX2V2ZW50c1t0eXBlXSA9IGxpc3RlbmVyO1xuICBlbHNlIGlmIChpc09iamVjdCh0aGlzLl9ldmVudHNbdHlwZV0pKVxuICAgIC8vIElmIHdlJ3ZlIGFscmVhZHkgZ290IGFuIGFycmF5LCBqdXN0IGFwcGVuZC5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0ucHVzaChsaXN0ZW5lcik7XG4gIGVsc2VcbiAgICAvLyBBZGRpbmcgdGhlIHNlY29uZCBlbGVtZW50LCBuZWVkIHRvIGNoYW5nZSB0byBhcnJheS5cbiAgICB0aGlzLl9ldmVudHNbdHlwZV0gPSBbdGhpcy5fZXZlbnRzW3R5cGVdLCBsaXN0ZW5lcl07XG5cbiAgLy8gQ2hlY2sgZm9yIGxpc3RlbmVyIGxlYWtcbiAgaWYgKGlzT2JqZWN0KHRoaXMuX2V2ZW50c1t0eXBlXSkgJiYgIXRoaXMuX2V2ZW50c1t0eXBlXS53YXJuZWQpIHtcbiAgICB2YXIgbTtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKHRoaXMuX21heExpc3RlbmVycykpIHtcbiAgICAgIG0gPSB0aGlzLl9tYXhMaXN0ZW5lcnM7XG4gICAgfSBlbHNlIHtcbiAgICAgIG0gPSBFdmVudEVtaXR0ZXIuZGVmYXVsdE1heExpc3RlbmVycztcbiAgICB9XG5cbiAgICBpZiAobSAmJiBtID4gMCAmJiB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoID4gbSkge1xuICAgICAgdGhpcy5fZXZlbnRzW3R5cGVdLndhcm5lZCA9IHRydWU7XG4gICAgICBjb25zb2xlLmVycm9yKCcobm9kZSkgd2FybmluZzogcG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSAnICtcbiAgICAgICAgICAgICAgICAgICAgJ2xlYWsgZGV0ZWN0ZWQuICVkIGxpc3RlbmVycyBhZGRlZC4gJyArXG4gICAgICAgICAgICAgICAgICAgICdVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdC4nLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ldmVudHNbdHlwZV0ubGVuZ3RoKTtcbiAgICAgIGlmICh0eXBlb2YgY29uc29sZS50cmFjZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBub3Qgc3VwcG9ydGVkIGluIElFIDEwXG4gICAgICAgIGNvbnNvbGUudHJhY2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUub24gPSBFdmVudEVtaXR0ZXIucHJvdG90eXBlLmFkZExpc3RlbmVyO1xuXG5FdmVudEVtaXR0ZXIucHJvdG90eXBlLm9uY2UgPSBmdW5jdGlvbih0eXBlLCBsaXN0ZW5lcikge1xuICBpZiAoIWlzRnVuY3Rpb24obGlzdGVuZXIpKVxuICAgIHRocm93IFR5cGVFcnJvcignbGlzdGVuZXIgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7XG5cbiAgdmFyIGZpcmVkID0gZmFsc2U7XG5cbiAgZnVuY3Rpb24gZygpIHtcbiAgICB0aGlzLnJlbW92ZUxpc3RlbmVyKHR5cGUsIGcpO1xuXG4gICAgaWYgKCFmaXJlZCkge1xuICAgICAgZmlyZWQgPSB0cnVlO1xuICAgICAgbGlzdGVuZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9XG4gIH1cblxuICBnLmxpc3RlbmVyID0gbGlzdGVuZXI7XG4gIHRoaXMub24odHlwZSwgZyk7XG5cbiAgcmV0dXJuIHRoaXM7XG59O1xuXG4vLyBlbWl0cyBhICdyZW1vdmVMaXN0ZW5lcicgZXZlbnQgaWZmIHRoZSBsaXN0ZW5lciB3YXMgcmVtb3ZlZFxuRXZlbnRFbWl0dGVyLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lciA9IGZ1bmN0aW9uKHR5cGUsIGxpc3RlbmVyKSB7XG4gIHZhciBsaXN0LCBwb3NpdGlvbiwgbGVuZ3RoLCBpO1xuXG4gIGlmICghaXNGdW5jdGlvbihsaXN0ZW5lcikpXG4gICAgdGhyb3cgVHlwZUVycm9yKCdsaXN0ZW5lciBtdXN0IGJlIGEgZnVuY3Rpb24nKTtcblxuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldHVybiB0aGlzO1xuXG4gIGxpc3QgPSB0aGlzLl9ldmVudHNbdHlwZV07XG4gIGxlbmd0aCA9IGxpc3QubGVuZ3RoO1xuICBwb3NpdGlvbiA9IC0xO1xuXG4gIGlmIChsaXN0ID09PSBsaXN0ZW5lciB8fFxuICAgICAgKGlzRnVuY3Rpb24obGlzdC5saXN0ZW5lcikgJiYgbGlzdC5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICBpZiAodGhpcy5fZXZlbnRzLnJlbW92ZUxpc3RlbmVyKVxuICAgICAgdGhpcy5lbWl0KCdyZW1vdmVMaXN0ZW5lcicsIHR5cGUsIGxpc3RlbmVyKTtcblxuICB9IGVsc2UgaWYgKGlzT2JqZWN0KGxpc3QpKSB7XG4gICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gPiAwOykge1xuICAgICAgaWYgKGxpc3RbaV0gPT09IGxpc3RlbmVyIHx8XG4gICAgICAgICAgKGxpc3RbaV0ubGlzdGVuZXIgJiYgbGlzdFtpXS5saXN0ZW5lciA9PT0gbGlzdGVuZXIpKSB7XG4gICAgICAgIHBvc2l0aW9uID0gaTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBvc2l0aW9uIDwgMClcbiAgICAgIHJldHVybiB0aGlzO1xuXG4gICAgaWYgKGxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICBsaXN0Lmxlbmd0aCA9IDA7XG4gICAgICBkZWxldGUgdGhpcy5fZXZlbnRzW3R5cGVdO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaXN0LnNwbGljZShwb3NpdGlvbiwgMSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcilcbiAgICAgIHRoaXMuZW1pdCgncmVtb3ZlTGlzdGVuZXInLCB0eXBlLCBsaXN0ZW5lcik7XG4gIH1cblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIga2V5LCBsaXN0ZW5lcnM7XG5cbiAgaWYgKCF0aGlzLl9ldmVudHMpXG4gICAgcmV0dXJuIHRoaXM7XG5cbiAgLy8gbm90IGxpc3RlbmluZyBmb3IgcmVtb3ZlTGlzdGVuZXIsIG5vIG5lZWQgdG8gZW1pdFxuICBpZiAoIXRoaXMuX2V2ZW50cy5yZW1vdmVMaXN0ZW5lcikge1xuICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKVxuICAgICAgdGhpcy5fZXZlbnRzID0ge307XG4gICAgZWxzZSBpZiAodGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgICAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8vIGVtaXQgcmVtb3ZlTGlzdGVuZXIgZm9yIGFsbCBsaXN0ZW5lcnMgb24gYWxsIGV2ZW50c1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgIGZvciAoa2V5IGluIHRoaXMuX2V2ZW50cykge1xuICAgICAgaWYgKGtleSA9PT0gJ3JlbW92ZUxpc3RlbmVyJykgY29udGludWU7XG4gICAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhrZXkpO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygncmVtb3ZlTGlzdGVuZXInKTtcbiAgICB0aGlzLl9ldmVudHMgPSB7fTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGxpc3RlbmVycyA9IHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICBpZiAoaXNGdW5jdGlvbihsaXN0ZW5lcnMpKSB7XG4gICAgdGhpcy5yZW1vdmVMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lcnMpO1xuICB9IGVsc2Uge1xuICAgIC8vIExJRk8gb3JkZXJcbiAgICB3aGlsZSAobGlzdGVuZXJzLmxlbmd0aClcbiAgICAgIHRoaXMucmVtb3ZlTGlzdGVuZXIodHlwZSwgbGlzdGVuZXJzW2xpc3RlbmVycy5sZW5ndGggLSAxXSk7XG4gIH1cbiAgZGVsZXRlIHRoaXMuX2V2ZW50c1t0eXBlXTtcblxuICByZXR1cm4gdGhpcztcbn07XG5cbkV2ZW50RW1pdHRlci5wcm90b3R5cGUubGlzdGVuZXJzID0gZnVuY3Rpb24odHlwZSkge1xuICB2YXIgcmV0O1xuICBpZiAoIXRoaXMuX2V2ZW50cyB8fCAhdGhpcy5fZXZlbnRzW3R5cGVdKVxuICAgIHJldCA9IFtdO1xuICBlbHNlIGlmIChpc0Z1bmN0aW9uKHRoaXMuX2V2ZW50c1t0eXBlXSkpXG4gICAgcmV0ID0gW3RoaXMuX2V2ZW50c1t0eXBlXV07XG4gIGVsc2VcbiAgICByZXQgPSB0aGlzLl9ldmVudHNbdHlwZV0uc2xpY2UoKTtcbiAgcmV0dXJuIHJldDtcbn07XG5cbkV2ZW50RW1pdHRlci5saXN0ZW5lckNvdW50ID0gZnVuY3Rpb24oZW1pdHRlciwgdHlwZSkge1xuICB2YXIgcmV0O1xuICBpZiAoIWVtaXR0ZXIuX2V2ZW50cyB8fCAhZW1pdHRlci5fZXZlbnRzW3R5cGVdKVxuICAgIHJldCA9IDA7XG4gIGVsc2UgaWYgKGlzRnVuY3Rpb24oZW1pdHRlci5fZXZlbnRzW3R5cGVdKSlcbiAgICByZXQgPSAxO1xuICBlbHNlXG4gICAgcmV0ID0gZW1pdHRlci5fZXZlbnRzW3R5cGVdLmxlbmd0aDtcbiAgcmV0dXJuIHJldDtcbn07XG5cbmZ1bmN0aW9uIGlzRnVuY3Rpb24oYXJnKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnZnVuY3Rpb24nO1xufVxuXG5mdW5jdGlvbiBpc051bWJlcihhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdudW1iZXInO1xufVxuXG5mdW5jdGlvbiBpc09iamVjdChhcmcpIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmIGFyZyAhPT0gbnVsbDtcbn1cblxuZnVuY3Rpb24gaXNVbmRlZmluZWQoYXJnKSB7XG4gIHJldHVybiBhcmcgPT09IHZvaWQgMDtcbn1cbiIsIi8vIHNoaW0gZm9yIHVzaW5nIHByb2Nlc3MgaW4gYnJvd3NlclxuXG52YXIgcHJvY2VzcyA9IG1vZHVsZS5leHBvcnRzID0ge307XG52YXIgcXVldWUgPSBbXTtcbnZhciBkcmFpbmluZyA9IGZhbHNlO1xudmFyIGN1cnJlbnRRdWV1ZTtcbnZhciBxdWV1ZUluZGV4ID0gLTE7XG5cbmZ1bmN0aW9uIGNsZWFuVXBOZXh0VGljaygpIHtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGlmIChjdXJyZW50UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIHF1ZXVlID0gY3VycmVudFF1ZXVlLmNvbmNhdChxdWV1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcXVldWVJbmRleCA9IC0xO1xuICAgIH1cbiAgICBpZiAocXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGRyYWluUXVldWUoKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGRyYWluUXVldWUoKSB7XG4gICAgaWYgKGRyYWluaW5nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGNsZWFuVXBOZXh0VGljayk7XG4gICAgZHJhaW5pbmcgPSB0cnVlO1xuXG4gICAgdmFyIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB3aGlsZShsZW4pIHtcbiAgICAgICAgY3VycmVudFF1ZXVlID0gcXVldWU7XG4gICAgICAgIHF1ZXVlID0gW107XG4gICAgICAgIHdoaWxlICgrK3F1ZXVlSW5kZXggPCBsZW4pIHtcbiAgICAgICAgICAgIGN1cnJlbnRRdWV1ZVtxdWV1ZUluZGV4XS5ydW4oKTtcbiAgICAgICAgfVxuICAgICAgICBxdWV1ZUluZGV4ID0gLTE7XG4gICAgICAgIGxlbiA9IHF1ZXVlLmxlbmd0aDtcbiAgICB9XG4gICAgY3VycmVudFF1ZXVlID0gbnVsbDtcbiAgICBkcmFpbmluZyA9IGZhbHNlO1xuICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbn1cblxucHJvY2Vzcy5uZXh0VGljayA9IGZ1bmN0aW9uIChmdW4pIHtcbiAgICB2YXIgYXJncyA9IG5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoIC0gMSk7XG4gICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBhcmdzW2kgLSAxXSA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBxdWV1ZS5wdXNoKG5ldyBJdGVtKGZ1biwgYXJncykpO1xuICAgIGlmIChxdWV1ZS5sZW5ndGggPT09IDEgJiYgIWRyYWluaW5nKSB7XG4gICAgICAgIHNldFRpbWVvdXQoZHJhaW5RdWV1ZSwgMCk7XG4gICAgfVxufTtcblxuLy8gdjggbGlrZXMgcHJlZGljdGlibGUgb2JqZWN0c1xuZnVuY3Rpb24gSXRlbShmdW4sIGFycmF5KSB7XG4gICAgdGhpcy5mdW4gPSBmdW47XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xufVxuSXRlbS5wcm90b3R5cGUucnVuID0gZnVuY3Rpb24gKCkge1xuICAgIHRoaXMuZnVuLmFwcGx5KG51bGwsIHRoaXMuYXJyYXkpO1xufTtcbnByb2Nlc3MudGl0bGUgPSAnYnJvd3Nlcic7XG5wcm9jZXNzLmJyb3dzZXIgPSB0cnVlO1xucHJvY2Vzcy5lbnYgPSB7fTtcbnByb2Nlc3MuYXJndiA9IFtdO1xucHJvY2Vzcy52ZXJzaW9uID0gJyc7IC8vIGVtcHR5IHN0cmluZyB0byBhdm9pZCByZWdleHAgaXNzdWVzXG5wcm9jZXNzLnZlcnNpb25zID0ge307XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG5wcm9jZXNzLm9uID0gbm9vcDtcbnByb2Nlc3MuYWRkTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5vbmNlID0gbm9vcDtcbnByb2Nlc3Mub2ZmID0gbm9vcDtcbnByb2Nlc3MucmVtb3ZlTGlzdGVuZXIgPSBub29wO1xucHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMgPSBub29wO1xucHJvY2Vzcy5lbWl0ID0gbm9vcDtcblxucHJvY2Vzcy5iaW5kaW5nID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Byb2Nlc3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkJyk7XG59O1xuXG4vLyBUT0RPKHNodHlsbWFuKVxucHJvY2Vzcy5jd2QgPSBmdW5jdGlvbiAoKSB7IHJldHVybiAnLycgfTtcbnByb2Nlc3MuY2hkaXIgPSBmdW5jdGlvbiAoZGlyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdwcm9jZXNzLmNoZGlyIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbn07XG5wcm9jZXNzLnVtYXNrID0gZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgMjAxMy0yMDE0IEZhY2Vib29rLCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKlxuICovXG5cblwidXNlIHN0cmljdFwiO1xuXG4vKipcbiAqIENvbnN0cnVjdHMgYW4gZW51bWVyYXRpb24gd2l0aCBrZXlzIGVxdWFsIHRvIHRoZWlyIHZhbHVlLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqICAgdmFyIENPTE9SUyA9IGtleU1pcnJvcih7Ymx1ZTogbnVsbCwgcmVkOiBudWxsfSk7XG4gKiAgIHZhciBteUNvbG9yID0gQ09MT1JTLmJsdWU7XG4gKiAgIHZhciBpc0NvbG9yVmFsaWQgPSAhIUNPTE9SU1tteUNvbG9yXTtcbiAqXG4gKiBUaGUgbGFzdCBsaW5lIGNvdWxkIG5vdCBiZSBwZXJmb3JtZWQgaWYgdGhlIHZhbHVlcyBvZiB0aGUgZ2VuZXJhdGVkIGVudW0gd2VyZVxuICogbm90IGVxdWFsIHRvIHRoZWlyIGtleXMuXG4gKlxuICogICBJbnB1dDogIHtrZXkxOiB2YWwxLCBrZXkyOiB2YWwyfVxuICogICBPdXRwdXQ6IHtrZXkxOiBrZXkxLCBrZXkyOiBrZXkyfVxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvYmpcbiAqIEByZXR1cm4ge29iamVjdH1cbiAqL1xudmFyIGtleU1pcnJvciA9IGZ1bmN0aW9uKG9iaikge1xuICB2YXIgcmV0ID0ge307XG4gIHZhciBrZXk7XG4gIGlmICghKG9iaiBpbnN0YW5jZW9mIE9iamVjdCAmJiAhQXJyYXkuaXNBcnJheShvYmopKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5TWlycm9yKC4uLik6IEFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0LicpO1xuICB9XG4gIGZvciAoa2V5IGluIG9iaikge1xuICAgIGlmICghb2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICByZXRba2V5XSA9IGtleTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBrZXlNaXJyb3I7XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpO1xuXG52YXIgU3R5bGUgPSByZXF1aXJlKCcuL3N0eWxlLmpzJyk7XG52YXIgcHJpbnRTdHlsZXMgPSByZXF1aXJlKCcuLi9wcmludC1zdHlsZXMuanMnKTtcblxudmFyIFByaW50U3R5bGUgPSBSZWFjdC5jcmVhdGVDbGFzcyh7XG4gIGRpc3BsYXlOYW1lOiAnUHJpbnRTdHlsZScsXG5cbiAgZ2V0SW5pdGlhbFN0YXRlOiBmdW5jdGlvbiBnZXRJbml0aWFsU3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFN0eWxlc1N0YXRlKCk7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkTW91bnQ6IGZ1bmN0aW9uIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gcHJpbnRTdHlsZXMuc3Vic2NyaWJlKHRoaXMuX29uQ2hhbmdlKTtcbiAgfSxcblxuICBjb21wb25lbnRXaWxsVW5tb3VudDogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24ucmVtb3ZlKCk7XG4gIH0sXG5cbiAgX29uQ2hhbmdlOiBmdW5jdGlvbiBfb25DaGFuZ2UoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh0aGlzLl9nZXRTdHlsZXNTdGF0ZSgpKTtcbiAgfSxcblxuICBfZ2V0U3R5bGVzU3RhdGU6IGZ1bmN0aW9uIF9nZXRTdHlsZXNTdGF0ZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3R5bGVzOiBwcmludFN0eWxlcy5nZXRQcmludFN0eWxlcygpXG4gICAgfTtcbiAgfSxcblxuICByZW5kZXI6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChTdHlsZSwgeyBydWxlczoge1xuICAgICAgICBtZWRpYVF1ZXJpZXM6IHtcbiAgICAgICAgICBwcmludDogdGhpcy5zdGF0ZS5zdHlsZXNcbiAgICAgICAgfVxuICAgICAgfSB9KTtcbiAgfVxufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gUHJpbnRTdHlsZTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVhdGVNYXJrdXBGb3JTdHlsZXMgPSByZXF1aXJlKCcuLi9jcmVhdGUtbWFya3VwLWZvci1zdHlsZXMnKTtcbnZhciBQcmVmaXhlciA9IHJlcXVpcmUoJy4uL3ByZWZpeGVyJyk7XG5cbnZhciBSZWFjdCA9ICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiID8gd2luZG93WydSZWFjdCddIDogdHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIiA/IGdsb2JhbFsnUmVhY3QnXSA6IG51bGwpO1xuXG52YXIgYnVpbGRDc3NTdHJpbmcgPSBmdW5jdGlvbiBidWlsZENzc1N0cmluZyhjb21wb25lbnQsIHNlbGVjdG9yLCBydWxlcykge1xuICBpZiAoIXNlbGVjdG9yIHx8ICFydWxlcykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhciBwcmVmaXhlZFJ1bGVzID0gUHJlZml4ZXIuZ2V0UHJlZml4ZWRTdHlsZShjb21wb25lbnQsIHJ1bGVzLCAnY3NzJyk7XG4gIHZhciBzZXJpYWxpemVkUnVsZXMgPSBjcmVhdGVNYXJrdXBGb3JTdHlsZXMocHJlZml4ZWRSdWxlcyk7XG5cbiAgcmV0dXJuIHNlbGVjdG9yICsgJ3snICsgc2VyaWFsaXplZFJ1bGVzICsgJ30nO1xufTtcblxudmFyIFN0eWxlID0gUmVhY3QuY3JlYXRlQ2xhc3Moe1xuICBkaXNwbGF5TmFtZTogJ1N0eWxlJyxcblxuICBwcm9wVHlwZXM6IHtcbiAgICBydWxlczogUmVhY3QuUHJvcFR5cGVzLm9iamVjdCxcbiAgICBzY29wZVNlbGVjdG9yOiBSZWFjdC5Qcm9wVHlwZXMuc3RyaW5nXG4gIH0sXG5cbiAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiBnZXREZWZhdWx0UHJvcHMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNjb3BlU2VsZWN0b3I6ICcnXG4gICAgfTtcbiAgfSxcblxuICBfYnVpbGRTdHlsZXM6IGZ1bmN0aW9uIF9idWlsZFN0eWxlcyhzdHlsZXMpIHtcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHN0eWxlcykucmVkdWNlKGZ1bmN0aW9uIChhY2N1bXVsYXRvciwgc2VsZWN0b3IpIHtcbiAgICAgIHZhciBydWxlcyA9IHN0eWxlc1tzZWxlY3Rvcl07XG5cbiAgICAgIGlmIChzZWxlY3RvciA9PT0gJ21lZGlhUXVlcmllcycpIHtcbiAgICAgICAgYWNjdW11bGF0b3IgKz0gX3RoaXMuX2J1aWxkTWVkaWFRdWVyeVN0cmluZyhydWxlcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB2YXIgY29tcGxldGVTZWxlY3RvciA9IChfdGhpcy5wcm9wcy5zY29wZVNlbGVjdG9yID8gX3RoaXMucHJvcHMuc2NvcGVTZWxlY3RvciArICcgJyA6ICcnKSArIHNlbGVjdG9yO1xuICAgICAgICBhY2N1bXVsYXRvciArPSBidWlsZENzc1N0cmluZyhfdGhpcywgY29tcGxldGVTZWxlY3RvciwgcnVsZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjdW11bGF0b3I7XG4gICAgfSwgJycpO1xuICB9LFxuXG4gIF9idWlsZE1lZGlhUXVlcnlTdHJpbmc6IGZ1bmN0aW9uIF9idWlsZE1lZGlhUXVlcnlTdHJpbmcobWVkaWFRdWVyeU9iaikge1xuICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgdmFyIGNvbnRleHRNZWRpYVF1ZXJpZXMgPSB0aGlzLl9nZXRDb250ZXh0TWVkaWFRdWVyaWVzKCk7XG4gICAgdmFyIG1lZGlhUXVlcnlTdHJpbmcgPSAnJztcblxuICAgIE9iamVjdC5rZXlzKG1lZGlhUXVlcnlPYmopLmZvckVhY2goZnVuY3Rpb24gKHF1ZXJ5KSB7XG4gICAgICB2YXIgY29tcGxldGVRdWVyeSA9IGNvbnRleHRNZWRpYVF1ZXJpZXNbcXVlcnldID8gY29udGV4dE1lZGlhUXVlcmllc1txdWVyeV0gOiBxdWVyeTtcbiAgICAgIG1lZGlhUXVlcnlTdHJpbmcgKz0gJ0BtZWRpYSAnICsgY29tcGxldGVRdWVyeSArICd7JyArIF90aGlzMi5fYnVpbGRTdHlsZXMobWVkaWFRdWVyeU9ialtxdWVyeV0pICsgJ30nO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lZGlhUXVlcnlTdHJpbmc7XG4gIH0sXG5cbiAgX2dldENvbnRleHRNZWRpYVF1ZXJpZXM6IGZ1bmN0aW9uIF9nZXRDb250ZXh0TWVkaWFRdWVyaWVzKCkge1xuICAgIHZhciBjb250ZXh0TWVkaWFRdWVyaWVzID0ge307XG4gICAgaWYgKHRoaXMuY29udGV4dCAmJiB0aGlzLmNvbnRleHQubWVkaWFRdWVyaWVzKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHQubWVkaWFRdWVyaWVzKS5mb3JFYWNoKChmdW5jdGlvbiAocXVlcnkpIHtcbiAgICAgICAgY29udGV4dE1lZGlhUXVlcmllc1txdWVyeV0gPSB0aGlzLmNvbnRleHQubWVkaWFRdWVyaWVzW3F1ZXJ5XS5tZWRpYTtcbiAgICAgIH0pLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZXh0TWVkaWFRdWVyaWVzO1xuICB9LFxuXG4gIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgIGlmICghdGhpcy5wcm9wcy5ydWxlcykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdmFyIHN0eWxlcyA9IHRoaXMuX2J1aWxkU3R5bGVzKHRoaXMucHJvcHMucnVsZXMpO1xuXG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJywgeyBkYW5nZXJvdXNseVNldElubmVySFRNTDogeyBfX2h0bWw6IHN0eWxlcyB9IH0pO1xuICB9XG59KTtcblxubW9kdWxlLmV4cG9ydHMgPSBTdHlsZTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBFeGVjdXRpb25FbnZpcm9ubWVudCA9IHJlcXVpcmUoJ2V4ZW52Jyk7XG5cbnZhciBfbWF0Y2hNZWRpYUZ1bmN0aW9uID0gRXhlY3V0aW9uRW52aXJvbm1lbnQuY2FuVXNlRE9NICYmIHdpbmRvdyAmJiB3aW5kb3cubWF0Y2hNZWRpYSAmJiBmdW5jdGlvbiAobWVkaWFRdWVyeVN0cmluZykge1xuICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEobWVkaWFRdWVyeVN0cmluZyk7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgY2FuTWF0Y2hNZWRpYTogZnVuY3Rpb24gY2FuTWF0Y2hNZWRpYSgpIHtcbiAgICByZXR1cm4gdHlwZW9mIF9tYXRjaE1lZGlhRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gIH0sXG5cbiAgbWF0Y2hNZWRpYTogZnVuY3Rpb24gbWF0Y2hNZWRpYShxdWVyeSkge1xuICAgIHJldHVybiBfbWF0Y2hNZWRpYUZ1bmN0aW9uKHF1ZXJ5KTtcbiAgfSxcblxuICBzZXRNYXRjaE1lZGlhOiBmdW5jdGlvbiBzZXRNYXRjaE1lZGlhKG5leHRNYXRjaE1lZGlhRnVuY3Rpb24pIHtcbiAgICBfbWF0Y2hNZWRpYUZ1bmN0aW9uID0gbmV4dE1hdGNoTWVkaWFGdW5jdGlvbjtcbiAgfVxufTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVhdGVNYXJrdXBGb3JTdHlsZXMgPSBmdW5jdGlvbiBjcmVhdGVNYXJrdXBGb3JTdHlsZXMoc3R5bGUsIHNwYWNlcykge1xuICBzcGFjZXMgPSBzcGFjZXMgfHwgJyc7XG4gIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZSkubWFwKGZ1bmN0aW9uIChwcm9wZXJ0eSkge1xuICAgIHJldHVybiBzcGFjZXMgKyBwcm9wZXJ0eSArICc6ICcgKyBzdHlsZVtwcm9wZXJ0eV0gKyAnOyc7XG4gIH0pLmpvaW4oJ1xcbicpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGVNYXJrdXBGb3JTdHlsZXM7IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgX2NyZWF0ZUNsYXNzID0gKGZ1bmN0aW9uICgpIHsgZnVuY3Rpb24gZGVmaW5lUHJvcGVydGllcyh0YXJnZXQsIHByb3BzKSB7IGZvciAodmFyIGkgPSAwOyBpIDwgcHJvcHMubGVuZ3RoOyBpKyspIHsgdmFyIGRlc2NyaXB0b3IgPSBwcm9wc1tpXTsgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlOyBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9IHRydWU7IGlmICgndmFsdWUnIGluIGRlc2NyaXB0b3IpIGRlc2NyaXB0b3Iud3JpdGFibGUgPSB0cnVlOyBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBkZXNjcmlwdG9yLmtleSwgZGVzY3JpcHRvcik7IH0gfSByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykgeyBpZiAocHJvdG9Qcm9wcykgZGVmaW5lUHJvcGVydGllcyhDb25zdHJ1Y3Rvci5wcm90b3R5cGUsIHByb3RvUHJvcHMpOyBpZiAoc3RhdGljUHJvcHMpIGRlZmluZVByb3BlcnRpZXMoQ29uc3RydWN0b3IsIHN0YXRpY1Byb3BzKTsgcmV0dXJuIENvbnN0cnVjdG9yOyB9OyB9KSgpO1xuXG52YXIgX2dldCA9IGZ1bmN0aW9uIGdldChfeCwgX3gyLCBfeDMpIHsgdmFyIF9hZ2FpbiA9IHRydWU7IF9mdW5jdGlvbjogd2hpbGUgKF9hZ2FpbikgeyB2YXIgb2JqZWN0ID0gX3gsIHByb3BlcnR5ID0gX3gyLCByZWNlaXZlciA9IF94MzsgZGVzYyA9IHBhcmVudCA9IGdldHRlciA9IHVuZGVmaW5lZDsgX2FnYWluID0gZmFsc2U7IGlmIChvYmplY3QgPT09IG51bGwpIG9iamVjdCA9IEZ1bmN0aW9uLnByb3RvdHlwZTsgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG9iamVjdCwgcHJvcGVydHkpOyBpZiAoZGVzYyA9PT0gdW5kZWZpbmVkKSB7IHZhciBwYXJlbnQgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqZWN0KTsgaWYgKHBhcmVudCA9PT0gbnVsbCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9IGVsc2UgeyBfeCA9IHBhcmVudDsgX3gyID0gcHJvcGVydHk7IF94MyA9IHJlY2VpdmVyOyBfYWdhaW4gPSB0cnVlOyBjb250aW51ZSBfZnVuY3Rpb247IH0gfSBlbHNlIGlmICgndmFsdWUnIGluIGRlc2MpIHsgcmV0dXJuIGRlc2MudmFsdWU7IH0gZWxzZSB7IHZhciBnZXR0ZXIgPSBkZXNjLmdldDsgaWYgKGdldHRlciA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH0gcmV0dXJuIGdldHRlci5jYWxsKHJlY2VpdmVyKTsgfSB9IH07XG5cbmZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uJyk7IH0gfVxuXG5mdW5jdGlvbiBfaW5oZXJpdHMoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIHsgaWYgKHR5cGVvZiBzdXBlckNsYXNzICE9PSAnZnVuY3Rpb24nICYmIHN1cGVyQ2xhc3MgIT09IG51bGwpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcignU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24sIG5vdCAnICsgdHlwZW9mIHN1cGVyQ2xhc3MpOyB9IHN1YkNsYXNzLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoc3VwZXJDbGFzcyAmJiBzdXBlckNsYXNzLnByb3RvdHlwZSwgeyBjb25zdHJ1Y3RvcjogeyB2YWx1ZTogc3ViQ2xhc3MsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlIH0gfSk7IGlmIChzdXBlckNsYXNzKSBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoc3ViQ2xhc3MsIHN1cGVyQ2xhc3MpIDogc3ViQ2xhc3MuX19wcm90b19fID0gc3VwZXJDbGFzczsgfVxuXG52YXIgcmVzb2x2ZVN0eWxlcyA9IHJlcXVpcmUoJy4vcmVzb2x2ZS1zdHlsZXMuanMnKTtcbnZhciBwcmludFN0eWxlcyA9IHJlcXVpcmUoJy4vcHJpbnQtc3R5bGVzLmpzJyk7XG5cbnZhciBlbmhhbmNlV2l0aFJhZGl1bSA9IGZ1bmN0aW9uIGVuaGFuY2VXaXRoUmFkaXVtKENvbXBvc2VkQ29tcG9uZW50KSB7XG4gIHZhciBSYWRpdW1FbmhhbmNlciA9IChmdW5jdGlvbiAoX0NvbXBvc2VkQ29tcG9uZW50KSB7XG4gICAgX2luaGVyaXRzKFJhZGl1bUVuaGFuY2VyLCBfQ29tcG9zZWRDb21wb25lbnQpO1xuXG4gICAgZnVuY3Rpb24gUmFkaXVtRW5oYW5jZXIoKSB7XG4gICAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgUmFkaXVtRW5oYW5jZXIpO1xuXG4gICAgICBfZ2V0KE9iamVjdC5nZXRQcm90b3R5cGVPZihSYWRpdW1FbmhhbmNlci5wcm90b3R5cGUpLCAnY29uc3RydWN0b3InLCB0aGlzKS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuXG4gICAgICB0aGlzLnN0YXRlID0gdGhpcy5zdGF0ZSB8fCB7fTtcbiAgICAgIHRoaXMuc3RhdGUuX3JhZGl1bVN0eWxlU3RhdGUgPSB7fTtcblxuICAgICAgaWYgKFJhZGl1bUVuaGFuY2VyLnByaW50U3R5bGVDbGFzcykge1xuICAgICAgICB0aGlzLnByaW50U3R5bGVDbGFzcyA9IFJhZGl1bUVuaGFuY2VyLnByaW50U3R5bGVDbGFzcztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDbGFzcyBpbmhlcml0YW5jZSB1c2VzIE9iamVjdC5jcmVhdGUgYW5kIGJlY2F1c2Ugb2YgX19wcm90b19fIGlzc3Vlc1xuICAgIC8vIHdpdGggSUUgPDEwIGFueSBzdGF0aWMgcHJvcGVydGllcyBvZiB0aGUgc3VwZXJjbGFzcyBhcmVuJ3QgaW5oZXJpdGVkIGFuZFxuICAgIC8vIHNvIG5lZWQgdG8gYmUgbWFudWFsbHkgcG9wdWxhdGVkXG4gICAgLy8gU2VlIGh0dHA6Ly9iYWJlbGpzLmlvL2RvY3MvYWR2YW5jZWQvY2F2ZWF0cy8jY2xhc3Nlcy0xMC1hbmQtYmVsb3ctXG4gICAgLy8gVGhpcyBhbHNvIGZpeGVzIFJlYWN0IEhvdCBMb2FkZXIgYnkgZXhwb3NpbmcgdGhlIG9yaWdpbmFsIGNvbXBvbmVudHMgdG9wIGxldmVsXG4gICAgLy8gcHJvdG90eXBlIG1ldGhvZHMgb24gdGhlIFJhZGl1bSBlbmhhbmNlZCBwcm90b3R5cGUgYXMgZGlzY3Vzc2VkIGluICMyMTkuXG5cbiAgICBfY3JlYXRlQ2xhc3MoUmFkaXVtRW5oYW5jZXIsIFt7XG4gICAgICBrZXk6ICdyZW5kZXInLFxuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgICAgdmFyIHJlbmRlcmVkRWxlbWVudCA9IF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKFJhZGl1bUVuaGFuY2VyLnByb3RvdHlwZSksICdyZW5kZXInLCB0aGlzKS5jYWxsKHRoaXMpO1xuICAgICAgICByZXR1cm4gcmVzb2x2ZVN0eWxlcyh0aGlzLCByZW5kZXJlZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0sIHtcbiAgICAgIGtleTogJ2NvbXBvbmVudFdpbGxVbm1vdW50JyxcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgICAgaWYgKF9nZXQoT2JqZWN0LmdldFByb3RvdHlwZU9mKFJhZGl1bUVuaGFuY2VyLnByb3RvdHlwZSksICdjb21wb25lbnRXaWxsVW5tb3VudCcsIHRoaXMpKSB7XG4gICAgICAgICAgX2dldChPYmplY3QuZ2V0UHJvdG90eXBlT2YoUmFkaXVtRW5oYW5jZXIucHJvdG90eXBlKSwgJ2NvbXBvbmVudFdpbGxVbm1vdW50JywgdGhpcykuY2FsbCh0aGlzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9yYWRpdW1Nb3VzZVVwTGlzdGVuZXIpIHtcbiAgICAgICAgICB0aGlzLl9yYWRpdW1Nb3VzZVVwTGlzdGVuZXIucmVtb3ZlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fcmFkaXVtTWVkaWFRdWVyeUxpc3RlbmVyc0J5UXVlcnkpIHtcbiAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLl9yYWRpdW1NZWRpYVF1ZXJ5TGlzdGVuZXJzQnlRdWVyeSkuZm9yRWFjaChmdW5jdGlvbiAocXVlcnkpIHtcbiAgICAgICAgICAgIHRoaXMuX3JhZGl1bU1lZGlhUXVlcnlMaXN0ZW5lcnNCeVF1ZXJ5W3F1ZXJ5XS5yZW1vdmUoKTtcbiAgICAgICAgICB9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1dKTtcblxuICAgIHJldHVybiBSYWRpdW1FbmhhbmNlcjtcbiAgfSkoQ29tcG9zZWRDb21wb25lbnQpO1xuXG4gIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKENvbXBvc2VkQ29tcG9uZW50LnByb3RvdHlwZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgaWYgKCFSYWRpdW1FbmhhbmNlci5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdmFyIGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKENvbXBvc2VkQ29tcG9uZW50LnByb3RvdHlwZSwga2V5KTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSYWRpdW1FbmhhbmNlci5wcm90b3R5cGUsIGtleSwgZGVzY3JpcHRvcik7XG4gICAgfVxuICB9KTtcblxuICBSYWRpdW1FbmhhbmNlci5kaXNwbGF5TmFtZSA9IENvbXBvc2VkQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvc2VkQ29tcG9uZW50Lm5hbWUgfHwgJ0NvbXBvbmVudCc7XG5cbiAgUmFkaXVtRW5oYW5jZXIucHJpbnRTdHlsZUNsYXNzID0gcHJpbnRTdHlsZXMuYWRkUHJpbnRTdHlsZXMoUmFkaXVtRW5oYW5jZXIpO1xuXG4gIHJldHVybiBSYWRpdW1FbmhhbmNlcjtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZW5oYW5jZVdpdGhSYWRpdW07IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZ2V0U3RhdGVLZXkgPSBmdW5jdGlvbiBnZXRTdGF0ZUtleShlbGVtZW50S2V5KSB7XG4gIHJldHVybiBlbGVtZW50S2V5ID09PSBudWxsIHx8IGVsZW1lbnRLZXkgPT09IHVuZGVmaW5lZCA/ICdtYWluJyA6IGVsZW1lbnRLZXkudG9TdHJpbmcoKTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gZ2V0U3RhdGVLZXk7IiwiJ3VzZSBzdHJpY3QnO1xuXG52YXIgZ2V0U3RhdGVLZXkgPSByZXF1aXJlKCcuL2dldC1zdGF0ZS1rZXknKTtcblxudmFyIFZBTElEX0tFWVMgPSBbJzphY3RpdmUnLCAnOmZvY3VzJywgJzpob3ZlciddO1xuXG52YXIgZ2V0U3RhdGUgPSBmdW5jdGlvbiBnZXRTdGF0ZShzdGF0ZSwgZWxlbWVudEtleSwgdmFsdWUpIHtcbiAgaWYgKFZBTElEX0tFWVMuaW5kZXhPZih2YWx1ZSkgPT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSYWRpdW0uZ2V0U3RhdGUgaW52YWxpZCB2YWx1ZSBwYXJhbTogYCcgKyB2YWx1ZSArICdgJyk7XG4gIH1cblxuICB2YXIga2V5ID0gZ2V0U3RhdGVLZXkoZWxlbWVudEtleSk7XG5cbiAgcmV0dXJuICEhKHN0YXRlICYmIHN0YXRlLl9yYWRpdW1TdHlsZVN0YXRlICYmIHN0YXRlLl9yYWRpdW1TdHlsZVN0YXRlW2tleV0gJiYgc3RhdGUuX3JhZGl1bVN0eWxlU3RhdGVba2V5XVt2YWx1ZV0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSBnZXRTdGF0ZTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBFbmhhbmNlciA9IHJlcXVpcmUoJy4vZW5oYW5jZXInKTtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoQ29tcG9zZWRDb21wb25lbnQpIHtcbiAgcmV0dXJuIEVuaGFuY2VyKENvbXBvc2VkQ29tcG9uZW50KTtcbn07XG5tb2R1bGUuZXhwb3J0cy5TdHlsZSA9IHJlcXVpcmUoJy4vY29tcG9uZW50cy9zdHlsZScpO1xubW9kdWxlLmV4cG9ydHMuUHJpbnRTdHlsZVNoZWV0ID0gcmVxdWlyZSgnLi9jb21wb25lbnRzL3ByaW50LXN0eWxlLXNoZWV0Jyk7XG5tb2R1bGUuZXhwb3J0cy5nZXRTdGF0ZSA9IHJlcXVpcmUoJy4vZ2V0LXN0YXRlJyk7XG5tb2R1bGUuZXhwb3J0cy5rZXlmcmFtZXMgPSByZXF1aXJlKCcuL2tleWZyYW1lcycpO1xubW9kdWxlLmV4cG9ydHMuQ29uZmlnID0gcmVxdWlyZSgnLi9jb25maWcnKTsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBjcmVhdGVNYXJrdXBGb3JTdHlsZXMgPSByZXF1aXJlKCcuL2NyZWF0ZS1tYXJrdXAtZm9yLXN0eWxlcycpO1xudmFyIFByZWZpeGVyID0gcmVxdWlyZSgnLi9wcmVmaXhlcicpO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdleGVudicpO1xuXG52YXIgaXNBbmltYXRpb25TdXBwb3J0ZWQgPSBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VET00gJiYgUHJlZml4ZXIuZ2V0UHJlZml4ZWRQcm9wZXJ0eU5hbWUoJ2FuaW1hdGlvbicpICE9PSBmYWxzZTtcblxudmFyIGFuaW1hdGlvbkluZGV4ID0gMTtcbnZhciBhbmltYXRpb25TdHlsZVNoZWV0ID0gbnVsbDtcbnZhciBrZXlmcmFtZXNQcmVmaXhlZCA9ICdrZXlmcmFtZXMnO1xuXG5pZiAoaXNBbmltYXRpb25TdXBwb3J0ZWQpIHtcbiAgYW5pbWF0aW9uU3R5bGVTaGVldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYW5pbWF0aW9uU3R5bGVTaGVldCk7XG5cbiAgLy8gVGVzdCBpZiBwcmVmaXggbmVlZGVkIGZvciBrZXlmcmFtZXMgKGNvcGllZCBmcm9tIFByZWZpeEZyZWUpXG4gIGFuaW1hdGlvblN0eWxlU2hlZXQudGV4dENvbnRlbnQgPSAnQGtleWZyYW1lcyB7fSc7XG4gIGlmICghYW5pbWF0aW9uU3R5bGVTaGVldC5zaGVldC5jc3NSdWxlcy5sZW5ndGgpIHtcbiAgICBrZXlmcmFtZXNQcmVmaXhlZCA9IFByZWZpeGVyLmNzc1ByZWZpeCArICdrZXlmcmFtZXMnO1xuICB9XG59XG5cbi8vIFNpbXBsZSBhbmltYXRpb24gaGVscGVyIHRoYXQgaW5qZWN0cyBDU1MgaW50byBhIHN0eWxlIG9iamVjdCBjb250YWluaW5nIHRoZVxuLy8ga2V5ZnJhbWVzLCBhbmQgcmV0dXJucyBhIHN0cmluZyB3aXRoIHRoZSBnZW5lcmF0ZWQgYW5pbWF0aW9uIG5hbWUuXG52YXIga2V5ZnJhbWVzID0gZnVuY3Rpb24ga2V5ZnJhbWVzKGtleWZyYW1lUnVsZXMsIGNvbXBvbmVudCkge1xuICB2YXIgbmFtZSA9ICdBbmltYXRpb24nICsgYW5pbWF0aW9uSW5kZXg7XG4gIGFuaW1hdGlvbkluZGV4ICs9IDE7XG5cbiAgaWYgKCFpc0FuaW1hdGlvblN1cHBvcnRlZCkge1xuICAgIHJldHVybiBuYW1lO1xuICB9XG5cbiAgdmFyIHJ1bGUgPSAnQCcgKyBrZXlmcmFtZXNQcmVmaXhlZCArICcgJyArIG5hbWUgKyAnIHtcXG4nICsgT2JqZWN0LmtleXMoa2V5ZnJhbWVSdWxlcykubWFwKGZ1bmN0aW9uIChwZXJjZW50YWdlKSB7XG4gICAgdmFyIHByb3BzID0ga2V5ZnJhbWVSdWxlc1twZXJjZW50YWdlXTtcbiAgICB2YXIgcHJlZml4ZWRQcm9wcyA9IFByZWZpeGVyLmdldFByZWZpeGVkU3R5bGUoY29tcG9uZW50LCBwcm9wcywgJ2NzcycpO1xuICAgIHZhciBzZXJpYWxpemVkUHJvcHMgPSBjcmVhdGVNYXJrdXBGb3JTdHlsZXMocHJlZml4ZWRQcm9wcywgJyAgJyk7XG4gICAgcmV0dXJuICcgICcgKyBwZXJjZW50YWdlICsgJyB7XFxuICAnICsgc2VyaWFsaXplZFByb3BzICsgJ1xcbiAgfSc7XG4gIH0pLmpvaW4oJ1xcbicpICsgJ1xcbn1cXG4nO1xuXG4gIC8vIGZvciBmbG93XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghYW5pbWF0aW9uU3R5bGVTaGVldCkge1xuICAgIHRocm93IG5ldyBFcnJvcigna2V5ZnJhbWVzIG5vdCBpbml0aWFsaXplZCBwcm9wZXJseScpO1xuICB9XG5cbiAgYW5pbWF0aW9uU3R5bGVTaGVldC5zaGVldC5pbnNlcnRSdWxlKHJ1bGUsIGFuaW1hdGlvblN0eWxlU2hlZXQuc2hlZXQuY3NzUnVsZXMubGVuZ3RoKTtcbiAgcmV0dXJuIG5hbWU7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IGtleWZyYW1lczsiLCIndXNlIHN0cmljdCc7XG5cbnZhciBfY2FsbGJhY2tzID0gW107XG52YXIgX21vdXNlVXBMaXN0ZW5lcklzQWN0aXZlID0gZmFsc2U7XG5cbnZhciBfaGFuZGxlTW91c2VVcCA9IGZ1bmN0aW9uIF9oYW5kbGVNb3VzZVVwKGV2KSB7XG4gIF9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbiAoY2FsbGJhY2spIHtcbiAgICBjYWxsYmFjayhldik7XG4gIH0pO1xufTtcblxudmFyIHN1YnNjcmliZSA9IGZ1bmN0aW9uIHN1YnNjcmliZShjYWxsYmFjaykge1xuICBpZiAoX2NhbGxiYWNrcy5pbmRleE9mKGNhbGxiYWNrKSA9PT0gLTEpIHtcbiAgICBfY2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICB9XG5cbiAgaWYgKCFfbW91c2VVcExpc3RlbmVySXNBY3RpdmUpIHtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9oYW5kbGVNb3VzZVVwKTtcbiAgICBfbW91c2VVcExpc3RlbmVySXNBY3RpdmUgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHZhciBpbmRleCA9IF9jYWxsYmFja3MuaW5kZXhPZihjYWxsYmFjayk7XG4gICAgICBfY2FsbGJhY2tzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmIChfY2FsbGJhY2tzLmxlbmd0aCA9PT0gMCAmJiBfbW91c2VVcExpc3RlbmVySXNBY3RpdmUpIHtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBfaGFuZGxlTW91c2VVcCk7XG4gICAgICAgIF9tb3VzZVVwTGlzdGVuZXJJc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBzdWJzY3JpYmU6IHN1YnNjcmliZVxufTsiLCIvKipcbiAqIEJhc2VkIG9uIGh0dHBzOi8vZ2l0aHViLmNvbS9qc3N0eWxlcy9jc3MtdmVuZG9yLCBidXQgd2l0aG91dCBoYXZpbmcgdG9cbiAqIGNvbnZlcnQgYmV0d2VlbiBkaWZmZXJlbnQgY2FzZXMgYWxsIHRoZSB0aW1lLlxuICpcbiAqIFxuICovXG5cbid1c2Ugc3RyaWN0JztcblxudmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0gcmVxdWlyZSgnZXhlbnYnKTtcbnZhciBhcnJheUZpbmQgPSByZXF1aXJlKCdhcnJheS1maW5kJyk7XG5cbnZhciBWRU5ET1JfUFJFRklYX1JFR0VYID0gLy0obW96fHdlYmtpdHxtc3xvKS0vO1xuXG52YXIgdmVuZG9yUHJlZml4ZXMgPSBbJ1dlYmtpdCcsICdtcycsICdNb3onLCAnTyddO1xuXG52YXIgaW5mb0J5Q3NzUHJlZml4ID0ge1xuICAnLW1vei0nOiB7XG4gICAgY3NzUHJlZml4OiAnLW1vei0nLFxuICAgIGpzUHJlZml4OiAnTW96JyxcbiAgICBhbHRlcm5hdGl2ZVByb3BlcnRpZXM6IHtcbiAgICAgIC8vIE9MRCAtIEZpcmVmb3ggMTktXG4gICAgICBhbGlnbkl0ZW1zOiBbeyBjc3M6ICctbW96LWJveC1hbGlnbicsIGpzOiAnTW96Qm94QWxpZ24nIH1dLFxuICAgICAgZmxleDogW3sgY3NzOiAnLW1vei1ib3gtZmxleCcsIGpzOiAnTW96Qm94RmxleCcgfV0sXG4gICAgICBmbGV4RGlyZWN0aW9uOiBbeyBjc3M6ICctbW96LWJveC1vcmllbnQnLCBqczogJ01vekJveE9yaWVudCcgfV0sXG4gICAgICBqdXN0aWZ5Q29udGVudDogW3sgY3NzOiAnLW1vei1ib3gtcGFjaycsIGpzOiAnTW96Qm94UGFjaycgfV0sXG4gICAgICBvcmRlcjogW3sgY3NzOiAnLW1vei1ib3gtb3JkaW5hbC1ncm91cCcsIGpzOiAnTW96Qm94T3JkaW5hbEdyb3VwJyB9XVxuICAgIH0sXG4gICAgYWx0ZXJuYXRpdmVWYWx1ZXM6IHtcbiAgICAgIC8vIE9MRCAtIEZpcmVmb3ggMTktXG4gICAgICBhbGlnbkl0ZW1zOiB7XG4gICAgICAgICdmbGV4LXN0YXJ0JzogWydzdGFydCddLFxuICAgICAgICAnZmxleC1lbmQnOiBbJ2VuZCddXG4gICAgICB9LFxuICAgICAgZGlzcGxheToge1xuICAgICAgICBmbGV4OiBbJy1tb3otYm94J11cbiAgICAgIH0sXG4gICAgICBmbGV4RGlyZWN0aW9uOiB7XG4gICAgICAgIGNvbHVtbjogWyd2ZXJ0aWNhbCddLFxuICAgICAgICByb3c6IFsnaG9yaXpvbnRhbCddXG4gICAgICB9LFxuICAgICAganVzdGlmeUNvbnRlbnQ6IHtcbiAgICAgICAgJ2ZsZXgtc3RhcnQnOiBbJ3N0YXJ0J10sXG4gICAgICAgICdmbGV4LWVuZCc6IFsnZW5kJ10sXG4gICAgICAgICdzcGFjZS1iZXR3ZWVuJzogWydqdXN0aWZ5J11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICctbXMtJzoge1xuICAgIGNzc1ByZWZpeDogJy1tcy0nLFxuICAgIGpzUHJlZml4OiAnbXMnLFxuICAgIGFsdGVybmF0aXZlUHJvcGVydGllczoge1xuICAgICAgLy8gVFdFRU5FUiAtIElFIDEwXG4gICAgICBhbGlnbkNvbnRlbnQ6IFt7IGNzczogJy1tcy1mbGV4LWxpbmUtcGFjaycsIGpzOiAnbXNGbGV4TGluZVBhY2snIH1dLFxuICAgICAgYWxpZ25JdGVtczogW3sgY3NzOiAnLW1zLWZsZXgtYWxpZ24nLCBqczogJ21zRmxleEFsaWduJyB9XSxcbiAgICAgIGFsaWduU2VsZjogW3sgY3NzOiAnLW1zLWZsZXgtYWxpZ24taXRlbScsIGpzOiAnbXNGbGV4QWxpZ25JdGVtJyB9XSxcbiAgICAgIGp1c3RpZnlDb250ZW50OiBbeyBjc3M6ICctbXMtZmxleC1wYWNrJywganM6ICdtc0ZsZXhQYWNrJyB9XSxcbiAgICAgIG9yZGVyOiBbeyBjc3M6ICctbXMtZmxleC1vcmRlcicsIGpzOiAnbXNGbGV4T3JkZXInIH1dXG4gICAgfSxcbiAgICBhbHRlcm5hdGl2ZVZhbHVlczoge1xuICAgICAgLy8gVFdFRU5FUiAtIElFIDEwXG4gICAgICBhbGlnbkNvbnRlbnQ6IHtcbiAgICAgICAgJ2ZsZXgtc3RhcnQnOiBbJ3N0YXJ0J10sXG4gICAgICAgICdmbGV4LWVuZCc6IFsnZW5kJ10sXG4gICAgICAgICdzcGFjZS1iZXR3ZWVuJzogWydqdXN0aWZ5J10sXG4gICAgICAgICdzcGFjZS1hcm91bmQnOiBbJ2Rpc3RyaWJ1dGUnXVxuICAgICAgfSxcbiAgICAgIGFsaWduSXRlbXM6IHtcbiAgICAgICAgJ2ZsZXgtc3RhcnQnOiBbJ3N0YXJ0J10sXG4gICAgICAgICdmbGV4LWVuZCc6IFsnZW5kJ11cbiAgICAgIH0sXG4gICAgICBhbGlnblNlbGY6IHtcbiAgICAgICAgJ2ZsZXgtc3RhcnQnOiBbJ3N0YXJ0J10sXG4gICAgICAgICdmbGV4LWVuZCc6IFsnZW5kJ11cbiAgICAgIH0sXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIGZsZXg6IFsnLW1zLWZsZXhib3gnXSxcbiAgICAgICAgJ2lubGluZS1mbGV4JzogWyctbXMtaW5saW5lLWZsZXhib3gnXVxuICAgICAgfSxcbiAgICAgIGp1c3RpZnlDb250ZW50OiB7XG4gICAgICAgICdmbGV4LXN0YXJ0JzogWydzdGFydCddLFxuICAgICAgICAnZmxleC1lbmQnOiBbJ2VuZCddLFxuICAgICAgICAnc3BhY2UtYmV0d2Vlbic6IFsnanVzdGlmeSddLFxuICAgICAgICAnc3BhY2UtYXJvdW5kJzogWydkaXN0cmlidXRlJ11cbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gICctby0nOiB7XG4gICAgY3NzUHJlZml4OiAnLW8tJyxcbiAgICBqc1ByZWZpeDogJ08nXG4gIH0sXG4gICctd2Via2l0LSc6IHtcbiAgICBjc3NQcmVmaXg6ICctd2Via2l0LScsXG4gICAganNQcmVmaXg6ICdXZWJraXQnLFxuICAgIGFsdGVybmF0aXZlUHJvcGVydGllczoge1xuICAgICAgLy8gT0xEIC0gaU9TIDYtLCBTYWZhcmkgMy4xLTZcbiAgICAgIGFsaWduSXRlbXM6IFt7IGNzczogJy13ZWJraXQtYm94LWFsaWduJywganM6ICdXZWJraXRCb3hBbGlnbicgfV0sXG4gICAgICBmbGV4OiBbeyBjc3M6ICctd2Via2l0LWJveC1mbGV4JywganM6ICdNb3pCb3hGbGV4JyB9XSxcbiAgICAgIGZsZXhEaXJlY3Rpb246IFt7IGNzczogJy13ZWJraXQtYm94LW9yaWVudCcsIGpzOiAnV2Via2l0Qm94T3JpZW50JyB9XSxcbiAgICAgIGp1c3RpZnlDb250ZW50OiBbeyBjc3M6ICctd2Via2l0LWJveC1wYWNrJywganM6ICdXZWJraXRCb3hQYWNrJyB9XSxcbiAgICAgIG9yZGVyOiBbeyBjc3M6ICctd2Via2l0LWJveC1vcmRpbmFsLWdyb3VwJywganM6ICdXZWJraXRCb3hPcmRpbmFsR3JvdXAnIH1dXG4gICAgfSxcbiAgICBhbHRlcm5hdGl2ZVZhbHVlczoge1xuICAgICAgLy8gT0xEIC0gaU9TIDYtLCBTYWZhcmkgMy4xLTZcbiAgICAgIGFsaWduSXRlbXM6IHtcbiAgICAgICAgJ2ZsZXgtc3RhcnQnOiBbJ3N0YXJ0J10sXG4gICAgICAgICdmbGV4LWVuZCc6IFsnZW5kJ11cbiAgICAgIH0sXG4gICAgICBkaXNwbGF5OiB7XG4gICAgICAgIGZsZXg6IFsnLXdlYmtpdC1ib3gnXVxuICAgICAgfSxcbiAgICAgIGZsZXhEaXJlY3Rpb246IHtcbiAgICAgICAgcm93OiBbJ2hvcml6b250YWwnXSxcbiAgICAgICAgY29sdW1uOiBbJ3ZlcnRpY2FsJ11cbiAgICAgIH0sXG4gICAgICBqdXN0aWZ5Q29udGVudDoge1xuICAgICAgICAnZmxleC1zdGFydCc6IFsnc3RhcnQnXSxcbiAgICAgICAgJ2ZsZXgtZW5kJzogWydlbmQnXSxcbiAgICAgICAgJ3NwYWNlLWJldHdlZW4nOiBbJ2p1c3RpZnknXVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBDU1MgcHJvcGVydGllcyB3aGljaCBhY2NlcHQgbnVtYmVycyBidXQgYXJlIG5vdCBpbiB1bml0cyBvZiBcInB4XCIuXG4gKiBDb3BpZWQgZnJvbSBSZWFjdCBjb3JlIEp1bmUgMjIsIDIwMTUuXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9cbiAqIGJhODFiNjBhZDhlOTNiNzQ3YmU0MmEwM2I3OTcwNjU5MzJjNDljOTYvXG4gKiBzcmMvcmVuZGVyZXJzL2RvbS9zaGFyZWQvQ1NTUHJvcGVydHkuanNcbiAqL1xudmFyIGlzVW5pdGxlc3NOdW1iZXIgPSB7XG4gIGJveEZsZXg6IHRydWUsXG4gIGJveEZsZXhHcm91cDogdHJ1ZSxcbiAgY29sdW1uQ291bnQ6IHRydWUsXG4gIGZsZXg6IHRydWUsXG4gIGZsZXhHcm93OiB0cnVlLFxuICBmbGV4UG9zaXRpdmU6IHRydWUsXG4gIGZsZXhTaHJpbms6IHRydWUsXG4gIGZsZXhOZWdhdGl2ZTogdHJ1ZSxcbiAgZm9udFdlaWdodDogdHJ1ZSxcbiAgbGluZUNsYW1wOiB0cnVlLFxuICBsaW5lSGVpZ2h0OiB0cnVlLFxuICBvcGFjaXR5OiB0cnVlLFxuICBvcmRlcjogdHJ1ZSxcbiAgb3JwaGFuczogdHJ1ZSxcbiAgdGFiU2l6ZTogdHJ1ZSxcbiAgd2lkb3dzOiB0cnVlLFxuICB6SW5kZXg6IHRydWUsXG4gIHpvb206IHRydWUsXG5cbiAgLy8gU1ZHLXJlbGF0ZWQgcHJvcGVydGllc1xuICBmaWxsT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlRGFzaG9mZnNldDogdHJ1ZSxcbiAgc3Ryb2tlT3BhY2l0eTogdHJ1ZSxcbiAgc3Ryb2tlV2lkdGg6IHRydWVcbn07XG5cbnZhciBkb21TdHlsZSA9IHt9O1xudmFyIHByZWZpeGVkUHJvcGVydHlDYWNoZSA9IHt9O1xudmFyIHByZWZpeGVkVmFsdWVDYWNoZSA9IHt9O1xudmFyIHByZWZpeEluZm8gPSB7XG4gIGNzc1ByZWZpeDogJycsXG4gIGpzUHJlZml4OiAnJ1xufTtcblxuaWYgKEV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICBkb21TdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKS5zdHlsZTtcblxuICAvLyBvbGRlciBGaXJlZm94IHZlcnNpb25zIG1heSBoYXZlIG5vIGZsb2F0IHByb3BlcnR5IGluIHN0eWxlIG9iamVjdFxuICAvLyBzbyB3ZSBuZWVkIHRvIGFkZCBpdCBtYW51YWxseVxuICBpZiAoZG9tU3R5bGUuZmxvYXQgPT09IHVuZGVmaW5lZCkge1xuICAgIGRvbVN0eWxlLmZsb2F0ID0gJyc7XG4gIH1cblxuICAvLyBCYXNlZCBvbiBodHRwOi8vZGF2aWR3YWxzaC5uYW1lL3ZlbmRvci1wcmVmaXhcbiAgdmFyIHByZWZpeE1hdGNoO1xuICB2YXIgd2luZG93U3R5bGVzID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnJyk7XG5cbiAgLy8gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwod2luZG93U3R5bGVzKSBmYWlscyB3aXRoXG4gIC8vIFwiVW5jYXVnaHQgVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGEgZnVuY3Rpb25cIlxuICAvLyBpbiBvbGRlciB2ZXJzaW9ucyBBbmRyb2lkIChLaXRLYXQpIHdlYiB2aWV3c1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHdpbmRvd1N0eWxlcy5sZW5ndGg7IGkrKykge1xuICAgIHByZWZpeE1hdGNoID0gd2luZG93U3R5bGVzW2ldLm1hdGNoKFZFTkRPUl9QUkVGSVhfUkVHRVgpO1xuXG4gICAgaWYgKHByZWZpeE1hdGNoKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICB2YXIgY3NzVmVuZG9yUHJlZml4ID0gcHJlZml4TWF0Y2ggJiYgcHJlZml4TWF0Y2hbMF07XG5cbiAgcHJlZml4SW5mbyA9IGNzc1ZlbmRvclByZWZpeCAmJiBpbmZvQnlDc3NQcmVmaXhbY3NzVmVuZG9yUHJlZml4XSA/IGluZm9CeUNzc1ByZWZpeFtjc3NWZW5kb3JQcmVmaXhdIDogcHJlZml4SW5mbztcbn1cblxudmFyIF9jYW1lbENhc2VSZWdleCA9IC8oW2Etel0pPyhbQS1aXSkvZztcbnZhciBfY2FtZWxDYXNlUmVwbGFjZXIgPSBmdW5jdGlvbiBfY2FtZWxDYXNlUmVwbGFjZXIobWF0Y2gsIHAxLCBwMikge1xuICByZXR1cm4gcDEgKyAnLScgKyBwMi50b0xvd2VyQ2FzZSgpO1xufTtcbnZhciBfY2FtZWxDYXNlVG9EYXNoQ2FzZSA9IGZ1bmN0aW9uIF9jYW1lbENhc2VUb0Rhc2hDYXNlKHMpIHtcbiAgcmV0dXJuIHMucmVwbGFjZShfY2FtZWxDYXNlUmVnZXgsIF9jYW1lbENhc2VSZXBsYWNlcik7XG59O1xuXG52YXIgZ2V0UHJlZml4ZWRQcm9wZXJ0eU5hbWUgPSBmdW5jdGlvbiBnZXRQcmVmaXhlZFByb3BlcnR5TmFtZShwcm9wZXJ0eSkge1xuICBpZiAocHJlZml4ZWRQcm9wZXJ0eUNhY2hlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgIHJldHVybiBwcmVmaXhlZFByb3BlcnR5Q2FjaGVbcHJvcGVydHldO1xuICB9XG5cbiAgdmFyIHVucHJlZml4ZWQgPSB7XG4gICAgY3NzOiBfY2FtZWxDYXNlVG9EYXNoQ2FzZShwcm9wZXJ0eSksXG4gICAganM6IHByb3BlcnR5LFxuICAgIGlzRGVmYXVsdEZvclNlcnZlcjogdHJ1ZVxuICB9O1xuXG4gIC8vIFRyeSB0aGUgcHJlZml4ZWQgdmVyc2lvbiBmaXJzdC4gQ2hyb21lIGluIHBhcnRpY3VsYXIgaGFzIHRoZSBgZmlsdGVyYCBhbmRcbiAgLy8gYHdlYmtpdEZpbHRlcmAgcHJvcGVydGllcyBhdmFpbGFsYmUgb24gdGhlIHN0eWxlIG9iamVjdCwgYnV0IG9ubHkgdGhlXG4gIC8vIHByZWZpeGVkIHZlcnNpb24gYWN0dWFsbHkgd29ya3MuXG4gIHZhciBwb3NzaWJsZVByb3BlcnR5TmFtZXMgPSBbXG4gIC8vIFByZWZpeGVkXG4gIHtcbiAgICBjc3M6IHByZWZpeEluZm8uY3NzUHJlZml4ICsgX2NhbWVsQ2FzZVRvRGFzaENhc2UocHJvcGVydHkpLFxuICAgIGpzOiBwcmVmaXhJbmZvLmpzUHJlZml4ICsgcHJvcGVydHlbMF0udG9VcHBlckNhc2UoKSArIHByb3BlcnR5LnNsaWNlKDEpXG4gIH0sIHVucHJlZml4ZWRdO1xuXG4gIC8vIEFsdGVybmF0aXZlIHByb3BlcnR5IG5hbWVzXG4gIGlmIChwcmVmaXhJbmZvLmFsdGVybmF0aXZlUHJvcGVydGllcyAmJiBwcmVmaXhJbmZvLmFsdGVybmF0aXZlUHJvcGVydGllc1twcm9wZXJ0eV0pIHtcbiAgICBwb3NzaWJsZVByb3BlcnR5TmFtZXMgPSBwb3NzaWJsZVByb3BlcnR5TmFtZXMuY29uY2F0KHByZWZpeEluZm8uYWx0ZXJuYXRpdmVQcm9wZXJ0aWVzW3Byb3BlcnR5XSk7XG4gIH1cblxuICB2YXIgd29ya2luZ1Byb3BlcnR5ID0gYXJyYXlGaW5kKHBvc3NpYmxlUHJvcGVydHlOYW1lcywgZnVuY3Rpb24gKHBvc3NpYmxlUHJvcGVydHlOYW1lKSB7XG4gICAgaWYgKHBvc3NpYmxlUHJvcGVydHlOYW1lLmpzIGluIGRvbVN0eWxlKSB7XG4gICAgICByZXR1cm4gcG9zc2libGVQcm9wZXJ0eU5hbWU7XG4gICAgfVxuICB9KSB8fCBmYWxzZTtcblxuICByZXR1cm4gcHJlZml4ZWRQcm9wZXJ0eUNhY2hlW3Byb3BlcnR5XSA9IHdvcmtpbmdQcm9wZXJ0eTtcbn07XG5cbi8vIFdlIGFyZSB1bi1wcmVmaXhpbmcgdmFsdWVzIGJlZm9yZSBjaGVja2luZyBmb3IgaXNVbml0bGVzc051bWJlcixcbi8vIG90aGVyd2lzZSB3ZSBhcmUgYXQgcmlzayBvZiBiZWluZyBpbiBhIHNpdHVhdGlvbiB3aGVyZSBzb21lb25lXG4vLyBleHBsaWNpdGx5IHBhc3NlcyBzb21ldGhpbmcgbGlrZSBgTW96Qm94RmxleDogMWAgYW5kIHRoYXQgd2lsbFxuLy8gaW4gdHVybiBnZXQgdHJhbnNmb3JtZWQgaW50byBgTW96Qm94RmxleDogMXB4YC5cbnZhciBfZ2V0VW5wcmVmaXhlZFByb3BlcnR5ID0gZnVuY3Rpb24gX2dldFVucHJlZml4ZWRQcm9wZXJ0eShwcm9wZXJ0eSkge1xuICB2YXIgbm9QcmVmaXhQcm9wZXJ0eSA9IHByb3BlcnR5O1xuXG4gIHZlbmRvclByZWZpeGVzLnNvbWUoZnVuY3Rpb24gKHByZWZpeCkge1xuICAgIC8vIExldCdzIGNoZWNrIGlmIHRoZSBwcm9wZXJ0eSBzdGFydHMgd2l0aCBhIHZlbmRvciBwcmVmaXhcbiAgICBpZiAocHJvcGVydHkuaW5kZXhPZihwcmVmaXgpID09PSAwKSB7XG4gICAgICBub1ByZWZpeFByb3BlcnR5ID0gbm9QcmVmaXhQcm9wZXJ0eS5yZXBsYWNlKHByZWZpeCwgJycpO1xuXG4gICAgICAvLyBXZSBoYXZlIHJlbW92ZWQgdGhlIHZlbmRvciBwcmVmaXgsIGhvd2V2ZXIgdGhlIGZpcnN0XG4gICAgICAvLyBjaGFyYWN0ZXIgaXMgZ29pbmcgdG8gYmUgdXBwZXJjYXNlIGhlbmNlIHdvbid0IG1hdGNoXG4gICAgICAvLyBhbnkgb2YgdGhlIGBpc1VuaXRsZXNzTnVtYmVyYCBrZXlzIGFzIHRoZXkgYWxsIHN0YXJ0XG4gICAgICAvLyB3aXRoIGxvd2VyIGNhc2UuIExldCdzIGVuc3VyZSB0aGF0IHRoZSBmaXJzdCBjaGFyIGlzXG4gICAgICAvLyBsb3dlciBjYXNlLlxuICAgICAgbm9QcmVmaXhQcm9wZXJ0eSA9IG5vUHJlZml4UHJvcGVydHkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBub1ByZWZpeFByb3BlcnR5LnNsaWNlKDEpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBub1ByZWZpeFByb3BlcnR5O1xufTtcblxuLy8gUmVhY3QgaXMgcGxhbm5pbmcgdG8gZGVwcmVjYXRlIGFkZGluZyBweCBhdXRvbWF0aWNhbGx5XG4vLyAoaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xODczKSwgYW5kIGlmIHRoZXkgZG8sIHRoaXNcbi8vIHNob3VsZCBjaGFuZ2UgdG8gYSB3YXJuaW5nIG9yIGJlIHJlbW92ZWQgaW4gZmF2b3Igb2YgUmVhY3QncyB3YXJuaW5nLlxuLy8gU2FtZSBnb2VzIGZvciBiZWxvdy5cbnZhciBfYWRkUGl4ZWxTdWZmaXhUb1ZhbHVlSWZOZWVkZWQgPSBmdW5jdGlvbiBfYWRkUGl4ZWxTdWZmaXhUb1ZhbHVlSWZOZWVkZWQob3JpZ2luYWxQcm9wZXJ0eSwgdmFsdWUpIHtcbiAgdmFyIHVuUHJlZml4ZWRQcm9wZXJ0eSA9IF9nZXRVbnByZWZpeGVkUHJvcGVydHkob3JpZ2luYWxQcm9wZXJ0eSk7XG5cbiAgaWYgKHZhbHVlICE9PSAwICYmICFpc05hTih2YWx1ZSkgJiYgIWlzVW5pdGxlc3NOdW1iZXJbdW5QcmVmaXhlZFByb3BlcnR5XSkge1xuICAgIHJldHVybiB2YWx1ZSArICdweCc7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcblxudmFyIF9nZXRQcmVmaXhlZFZhbHVlID0gZnVuY3Rpb24gX2dldFByZWZpeGVkVmFsdWUoY29tcG9uZW50LCBwcm9wZXJ0eSwgdmFsdWUsIG9yaWdpbmFsUHJvcGVydHkpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIC8vIGRvbid0IHRlc3QgbnVtYmVycyAocHVyZSBvciBzdHJpbmd5KSwgYnV0IGRvIGFkZCAncHgnIHByZWZpeCBpZiBuZWVkZWRcbiAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIF9hZGRQaXhlbFN1ZmZpeFRvVmFsdWVJZk5lZWRlZChvcmlnaW5hbFByb3BlcnR5LCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBkb24ndCB0ZXN0IG51bWJlcnMgd2l0aCB1bml0cyAoZS5nLiAxMGVtKVxuICAgIGlmICghaXNOYU4ocGFyc2VJbnQodmFsdWUsIDEwKSkpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICB2YXIgY2FjaGVLZXkgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJyB8fCAnKSA6IHByb3BlcnR5ICsgdmFsdWU7XG5cbiAgaWYgKHByZWZpeGVkVmFsdWVDYWNoZS5oYXNPd25Qcm9wZXJ0eShjYWNoZUtleSkpIHtcbiAgICByZXR1cm4gcHJlZml4ZWRWYWx1ZUNhY2hlW2NhY2hlS2V5XTtcbiAgfVxuXG4gIHZhciBwb3NzaWJsZVZhbHVlcztcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgLy8gQWRkIHB4IGZvciB0aGUgc2FtZSB2YWx1ZXMgUmVhY3Qgd291bGQsIG90aGVyd2lzZSB0aGUgdGVzdGluZyBiZWxvdyB3aWxsXG4gICAgLy8gZmFpbCBhbmQgaXQgd2lsbCB0cnkgdG8gZmFsbGJhY2suXG4gICAgcG9zc2libGVWYWx1ZXMgPSB2YWx1ZS5tYXAoZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiBfYWRkUGl4ZWxTdWZmaXhUb1ZhbHVlSWZOZWVkZWQob3JpZ2luYWxQcm9wZXJ0eSwgdik7XG4gICAgfSk7XG5cbiAgICAvLyBBZGQgcHJlZml4ZWQgdmVyc2lvbnNcbiAgICBwb3NzaWJsZVZhbHVlcyA9IHBvc3NpYmxlVmFsdWVzLmNvbmNhdCh2YWx1ZS5maWx0ZXIoZnVuY3Rpb24gKHYpIHtcbiAgICAgIHJldHVybiAhaXNOYU4odik7XG4gICAgfSkgLy8gRG9uJ3QgcHJlZml4IG51bWJlcnNcbiAgICAubWFwKGZ1bmN0aW9uICh2KSB7XG4gICAgICByZXR1cm4gcHJlZml4SW5mby5jc3NQcmVmaXggKyB2O1xuICAgIH0pKTtcbiAgfSBlbHNlIHtcbiAgICBwb3NzaWJsZVZhbHVlcyA9IFtcbiAgICAvLyBVbnByZWZpeGVkXG4gICAgdmFsdWUsXG4gICAgLy8gUHJlZml4ZWRcbiAgICBwcmVmaXhJbmZvLmNzc1ByZWZpeCArIHZhbHVlXTtcbiAgfVxuXG4gIC8vIEFsdGVybmF0aXZlIHZhbHVlc1xuICBpZiAocHJlZml4SW5mby5hbHRlcm5hdGl2ZVZhbHVlcyAmJiBwcmVmaXhJbmZvLmFsdGVybmF0aXZlVmFsdWVzW29yaWdpbmFsUHJvcGVydHldICYmIHByZWZpeEluZm8uYWx0ZXJuYXRpdmVWYWx1ZXNbb3JpZ2luYWxQcm9wZXJ0eV1bdmFsdWVdKSB7XG4gICAgcG9zc2libGVWYWx1ZXMgPSBwb3NzaWJsZVZhbHVlcy5jb25jYXQocHJlZml4SW5mby5hbHRlcm5hdGl2ZVZhbHVlc1tvcmlnaW5hbFByb3BlcnR5XVt2YWx1ZV0pO1xuICB9XG5cbiAgLy8gVGVzdCBwb3NzaWJsZSB2YWx1ZSBpbiBvcmRlclxuICB2YXIgd29ya2luZ1ZhbHVlID0gYXJyYXlGaW5kKHBvc3NpYmxlVmFsdWVzLCBmdW5jdGlvbiAocG9zc2libGVWYWx1ZSkge1xuICAgIGRvbVN0eWxlW3Byb3BlcnR5XSA9ICcnO1xuICAgIGRvbVN0eWxlW3Byb3BlcnR5XSA9IHBvc3NpYmxlVmFsdWU7XG5cbiAgICAvLyBOb3RlIHRoYXQgd2UganVzdCBtYWtlIHN1cmUgaXQgaXMgbm90IGFuIGVtcHR5IHN0cmluZy4gQnJvd3NlcnMgd2lsbFxuICAgIC8vIHNvbWV0aW1lcyByZXdyaXRlIHZhbHVlcywgYnV0IHN0aWxsIGFjY2VwdCB0aGVtLiBUaGV5IHdpbGwgc2V0IHRoZSB2YWx1ZVxuICAgIC8vIHRvIGFuIGVtcHR5IHN0cmluZyBpZiBub3Qgc3VwcG9ydGVkLlxuICAgIC8vIEUuZy4gZm9yIGJvcmRlciwgXCJzb2xpZCAxcHggYmxhY2tcIiBiZWNvbWVzIFwiMXB4IHNvbGlkIGJsYWNrXCJcbiAgICAvLyAgICAgIGJ1dCBcImZvb2JhclwiIGJlY29tZXMgXCJcIiwgc2luY2UgaXQgaXMgbm90IHN1cHBvcnRlZC5cbiAgICByZXR1cm4gISFkb21TdHlsZVtwcm9wZXJ0eV07XG4gIH0pO1xuXG4gIGlmICh3b3JraW5nVmFsdWUpIHtcbiAgICBwcmVmaXhlZFZhbHVlQ2FjaGVbY2FjaGVLZXldID0gd29ya2luZ1ZhbHVlO1xuICB9IGVsc2Uge1xuICAgIC8vIFVuc3VwcG9ydGVkLCBhc3N1bWUgdW5wcmVmaXhlZCB3b3JrcywgYnV0IHdhcm5cbiAgICBwcmVmaXhlZFZhbHVlQ2FjaGVbY2FjaGVLZXldID0gdmFsdWU7XG5cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuICAgICAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgIHZhciBjb21wb25lbnRDb250ZXh0ID0gY29tcG9uZW50ID8gJyBpbiBjb21wb25lbnQgXCInICsgY29tcG9uZW50LmNvbnN0cnVjdG9yLmRpc3BsYXlOYW1lICsgJ1wiJyA6ICcnO1xuXG4gICAgICAgIGNvbnNvbGUud2FybignVW5zdXBwb3J0ZWQgQ1NTIHZhbHVlIFwiJyArIHZhbHVlICsgJ1wiIGZvciBwcm9wZXJ0eSBcIicgKyBwcm9wZXJ0eSArICckXCInICsgY29tcG9uZW50Q29udGV4dCk7XG4gICAgICB9XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJlZml4ZWRWYWx1ZUNhY2hlW2NhY2hlS2V5XTtcbn07XG5cbi8vIFJldHVybnMgYSBuZXcgc3R5bGUgb2JqZWN0IHdpdGggdmVuZG9yIHByZWZpeGVzIGFkZGVkIHRvIHByb3BlcnR5IG5hbWVzXG4vLyBhbmQgdmFsdWVzLlxudmFyIGdldFByZWZpeGVkU3R5bGUgPSBmdW5jdGlvbiBnZXRQcmVmaXhlZFN0eWxlKGNvbXBvbmVudCwgLy8gUmVhY3RDb21wb25lbnRcbnN0eWxlKSB7XG4gIHZhciBtb2RlID0gYXJndW1lbnRzLmxlbmd0aCA8PSAyIHx8IGFyZ3VtZW50c1syXSA9PT0gdW5kZWZpbmVkID8gJ2pzJyA6IGFyZ3VtZW50c1syXTtcblxuICBpZiAoIUV4ZWN1dGlvbkVudmlyb25tZW50LmNhblVzZURPTSkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZSkucmVkdWNlKGZ1bmN0aW9uIChuZXdTdHlsZSwga2V5KSB7XG4gICAgICB2YXIgdmFsdWUgPSBzdHlsZVtrZXldO1xuICAgICAgdmFyIG5ld0tleSA9IG1vZGUgPT09ICdjc3MnID8gX2NhbWVsQ2FzZVRvRGFzaENhc2Uoa2V5KSA6IGtleTtcbiAgICAgIHZhciBuZXdWYWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICAgIG5ld1N0eWxlW25ld0tleV0gPSBuZXdWYWx1ZTtcbiAgICAgIHJldHVybiBuZXdTdHlsZTtcbiAgICB9LCB7fSk7XG4gIH1cblxuICB2YXIgcHJlZml4ZWRTdHlsZSA9IHt9O1xuICBPYmplY3Qua2V5cyhzdHlsZSkuZm9yRWFjaChmdW5jdGlvbiAocHJvcGVydHkpIHtcbiAgICB2YXIgdmFsdWUgPSBzdHlsZVtwcm9wZXJ0eV07XG5cbiAgICB2YXIgbmV3UHJvcGVydHkgPSBnZXRQcmVmaXhlZFByb3BlcnR5TmFtZShwcm9wZXJ0eSk7XG4gICAgaWYgKG5ld1Byb3BlcnR5ID09PSBmYWxzZSkge1xuICAgICAgLy8gSWdub3JlIHVuc3VwcG9ydGVkIHByb3BlcnRpZXNcbiAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbiAgICAgICAgaWYgKGNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7XG4gICAgICAgICAgdmFyIGNvbXBvbmVudENvbnRleHQgPSBjb21wb25lbnQgPyAnIGluIGNvbXBvbmVudCBcIicgKyBjb21wb25lbnQuY29uc3RydWN0b3IuZGlzcGxheU5hbWUgKyAnXCInIDogJyc7XG5cbiAgICAgICAgICBjb25zb2xlLndhcm4oJ1Vuc3VwcG9ydGVkIENTUyBwcm9wZXJ0eSBcIicgKyBwcm9wZXJ0eSArICckXCInICsgY29tcG9uZW50Q29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1jb25zb2xlICovXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgbmV3VmFsdWUgPSBfZ2V0UHJlZml4ZWRWYWx1ZShjb21wb25lbnQsIG5ld1Byb3BlcnR5LmpzLCB2YWx1ZSwgcHJvcGVydHkpO1xuXG4gICAgcHJlZml4ZWRTdHlsZVtuZXdQcm9wZXJ0eVttb2RlXV0gPSBuZXdWYWx1ZTtcbiAgfSk7XG4gIHJldHVybiBwcmVmaXhlZFN0eWxlO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdldFByZWZpeGVkUHJvcGVydHlOYW1lOiBnZXRQcmVmaXhlZFByb3BlcnR5TmFtZSxcbiAgZ2V0UHJlZml4ZWRTdHlsZTogZ2V0UHJlZml4ZWRTdHlsZSxcbiAgY3NzUHJlZml4OiBwcmVmaXhJbmZvLmNzc1ByZWZpeCxcbiAganNQcmVmaXg6IHByZWZpeEluZm8uanNQcmVmaXhcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBhbGxQcmludFN0eWxlcyA9IHt9O1xudmFyIGxpc3RlbmVycyA9IFtdO1xuXG52YXIgc3Vic2NyaWJlID0gZnVuY3Rpb24gc3Vic2NyaWJlKGxpc3RlbmVyKSB7XG4gIGlmIChsaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcikgPT09IC0xKSB7XG4gICAgbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHZhciBsaXN0ZW5lckluZGV4ID0gbGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xuXG4gICAgICBpZiAobGlzdGVuZXJJbmRleCA+IC0xKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UobGlzdGVuZXJJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xufTtcblxudmFyIF9lbWl0Q2hhbmdlID0gZnVuY3Rpb24gX2VtaXRDaGFuZ2UoKSB7XG4gIGxpc3RlbmVycy5mb3JFYWNoKGZ1bmN0aW9uIChsaXN0ZW5lcikge1xuICAgIHJldHVybiBsaXN0ZW5lcigpO1xuICB9KTtcbn07XG5cbnZhciBfYXBwZW5kSW1wb3J0YW50VG9FYWNoVmFsdWUgPSBmdW5jdGlvbiBfYXBwZW5kSW1wb3J0YW50VG9FYWNoVmFsdWUoc3R5bGVPYmopIHtcbiAgdmFyIGltcG9ydGFudFN0eWxlT2JqID0ge307XG5cbiAgT2JqZWN0LmtleXMoc3R5bGVPYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIHZhciB2YWx1ZSA9IHN0eWxlT2JqW2tleV07XG5cbiAgICAvLyBUaGlzIGJyZWFrcyB1bml0bGVzcyB2YWx1ZXMgYnV0IHRoZXknbGwgYmUgZGVwcmVjYXRlZCBzb29uIGFueXdheVxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTg3M1xuICAgIHZhbHVlID0gdmFsdWUgKyBcIiAhaW1wb3J0YW50XCI7XG4gICAgaW1wb3J0YW50U3R5bGVPYmpba2V5XSA9IHZhbHVlO1xuICB9KTtcblxuICByZXR1cm4gaW1wb3J0YW50U3R5bGVPYmo7XG59O1xuXG52YXIgYWRkUHJpbnRTdHlsZXMgPSBmdW5jdGlvbiBhZGRQcmludFN0eWxlcyhDb21wb25lbnQpIHtcbiAgaWYgKCFDb21wb25lbnQucHJpbnRTdHlsZXMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgcHJpbnRTdHlsZUNsYXNzID0ge307XG5cbiAgT2JqZWN0LmtleXMoQ29tcG9uZW50LnByaW50U3R5bGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICB2YXIgc3R5bGVzID0gQ29tcG9uZW50LnByaW50U3R5bGVzW2tleV07XG4gICAgdmFyIGNsYXNzTmFtZSA9IFwiUmFkaXVtLVwiICsgQ29tcG9uZW50LmRpc3BsYXlOYW1lICsgXCItXCIgKyBrZXk7XG4gICAgYWxsUHJpbnRTdHlsZXNbXCIuXCIgKyBjbGFzc05hbWVdID0gX2FwcGVuZEltcG9ydGFudFRvRWFjaFZhbHVlKHN0eWxlcyk7XG4gICAgcHJpbnRTdHlsZUNsYXNzW2tleV0gPSBjbGFzc05hbWU7XG4gIH0pO1xuXG4gIC8vIEFsbG93cyBmb3IgbGF6eSBsb2FkaW5nIG9mIEpTIHRoYXQgdGhlbiBjYWxscyBSYWRpdW0gdG8gdXBkYXRlIHRoZVxuICAvLyBwcmludCBzdHlsZXNcbiAgX2VtaXRDaGFuZ2UoKTtcbiAgcmV0dXJuIHByaW50U3R5bGVDbGFzcztcbn07XG5cbnZhciBnZXRQcmludFN0eWxlcyA9IGZ1bmN0aW9uIGdldFByaW50U3R5bGVzKCkge1xuICByZXR1cm4gYWxsUHJpbnRTdHlsZXM7XG59O1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgYWRkUHJpbnRTdHlsZXM6IGFkZFByaW50U3R5bGVzLFxuICBnZXRQcmludFN0eWxlczogZ2V0UHJpbnRTdHlsZXMsXG4gIHN1YnNjcmliZTogc3Vic2NyaWJlXG59OyIsIid1c2Ugc3RyaWN0JztcblxudmFyIF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTtcblxudmFyIE1vdXNlVXBMaXN0ZW5lciA9IHJlcXVpcmUoJy4vbW91c2UtdXAtbGlzdGVuZXInKTtcbnZhciBnZXRTdGF0ZSA9IHJlcXVpcmUoJy4vZ2V0LXN0YXRlJyk7XG52YXIgZ2V0U3RhdGVLZXkgPSByZXF1aXJlKCcuL2dldC1zdGF0ZS1rZXknKTtcbnZhciBQcmVmaXhlciA9IHJlcXVpcmUoJy4vcHJlZml4ZXInKTtcbnZhciBDb25maWcgPSByZXF1aXJlKCcuL2NvbmZpZycpO1xuXG52YXIgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSByZXF1aXJlKCdleGVudicpO1xudmFyIFJlYWN0ID0gKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3dbJ1JlYWN0J10gOiB0eXBlb2YgZ2xvYmFsICE9PSBcInVuZGVmaW5lZFwiID8gZ2xvYmFsWydSZWFjdCddIDogbnVsbCk7XG5cbi8vIGJhYmVsLWVzbGludCAzLjEuNyBmYWlscyBoZXJlIGZvciBzb21lIHJlYXNvbiwgZXJyb3I6XG4vLyAgIDA6MCAgZXJyb3IgIENhbm5vdCBjYWxsIG1ldGhvZCAnaXNTZXF1ZW5jZUV4cHJlc3Npb24nIG9mIHVuZGVmaW5lZFxuLy9cbi8vIGRlY2xhcmUgY2xhc3MgUmFkaXVtQ29tcG9uZW50IGV4dGVuZHMgUmVhY3RDb21wb25lbnQge1xuLy8gICBfbGFzdE1vdXNlRG93bjogbnVtYmVyLFxuLy8gICBfcmFkaXVtTWVkaWFRdWVyeUxpc3RlbmVyc0J5UXVlcnk6IE9iamVjdDxzdHJpbmcsIHtyZW1vdmU6ICgpID0+IHZvaWR9Pixcbi8vICAgX3JhZGl1bU1vdXNlVXBMaXN0ZW5lcjoge3JlbW92ZTogKCkgPT4gdm9pZH0sXG4vLyB9XG5cbnZhciBtZWRpYVF1ZXJ5TGlzdEJ5UXVlcnlTdHJpbmcgPSB7fTtcblxudmFyIF9pc1NwZWNpYWxLZXkgPSBmdW5jdGlvbiBfaXNTcGVjaWFsS2V5KGtleSkge1xuICByZXR1cm4ga2V5WzBdID09PSAnOicgfHwga2V5WzBdID09PSAnQCc7XG59O1xuXG52YXIgX2dldFN0eWxlU3RhdGUgPSBmdW5jdGlvbiBfZ2V0U3R5bGVTdGF0ZShjb21wb25lbnQsIGtleSwgdmFsdWUpIHtcbiAgcmV0dXJuIGdldFN0YXRlKGNvbXBvbmVudC5zdGF0ZSwga2V5LCB2YWx1ZSk7XG59O1xuXG52YXIgX3NldFN0eWxlU3RhdGUgPSBmdW5jdGlvbiBfc2V0U3R5bGVTdGF0ZShjb21wb25lbnQsIGtleSwgbmV3U3RhdGUpIHtcbiAgdmFyIGV4aXN0aW5nID0gY29tcG9uZW50Ll9sYXN0UmFkaXVtU3RhdGUgfHwgY29tcG9uZW50LnN0YXRlICYmIGNvbXBvbmVudC5zdGF0ZS5fcmFkaXVtU3R5bGVTdGF0ZSB8fCB7fTtcblxuICB2YXIgc3RhdGUgPSB7IF9yYWRpdW1TdHlsZVN0YXRlOiBfZXh0ZW5kcyh7fSwgZXhpc3RpbmcpIH07XG4gIHN0YXRlLl9yYWRpdW1TdHlsZVN0YXRlW2tleV0gPSBfZXh0ZW5kcyh7fSwgc3RhdGUuX3JhZGl1bVN0eWxlU3RhdGVba2V5XSwgbmV3U3RhdGUpO1xuXG4gIGNvbXBvbmVudC5fbGFzdFJhZGl1bVN0YXRlID0gc3RhdGUuX3JhZGl1bVN0eWxlU3RhdGU7XG4gIGNvbXBvbmVudC5zZXRTdGF0ZShzdGF0ZSk7XG59O1xuXG4vLyBNZXJnZSBzdHlsZSBvYmplY3RzLiBTcGVjaWFsIGNhc2luZyBmb3IgcHJvcHMgc3RhcnRpbmcgd2l0aCAnOyc7IHRoZSB2YWx1ZXNcbi8vIHNob3VsZCBiZSBvYmplY3RzLCBhbmQgYXJlIG1lcmdlZCB3aXRoIG90aGVycyBvZiB0aGUgc2FtZSBuYW1lIChpbnN0ZWFkIG9mXG4vLyBvdmVyd3JpdGluZykuXG52YXIgX21lcmdlU3R5bGVzID0gZnVuY3Rpb24gX21lcmdlU3R5bGVzKHN0eWxlcykge1xuICB2YXIgcmVzdWx0ID0ge307XG5cbiAgc3R5bGVzLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlKSB7XG4gICAgaWYgKCFzdHlsZSB8fCB0eXBlb2Ygc3R5bGUgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoc3R5bGUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmtleXMoc3R5bGUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgaWYgKF9pc1NwZWNpYWxLZXkoa2V5KSAmJiByZXN1bHRba2V5XSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IF9tZXJnZVN0eWxlcyhbcmVzdWx0W2tleV0sIHN0eWxlW2tleV1dKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gc3R5bGVba2V5XTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbnZhciBfbW91c2VVcCA9IGZ1bmN0aW9uIF9tb3VzZVVwKGNvbXBvbmVudCkge1xuICBPYmplY3Qua2V5cyhjb21wb25lbnQuc3RhdGUuX3JhZGl1bVN0eWxlU3RhdGUpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgIGlmIChfZ2V0U3R5bGVTdGF0ZShjb21wb25lbnQsIGtleSwgJzphY3RpdmUnKSkge1xuICAgICAgX3NldFN0eWxlU3RhdGUoY29tcG9uZW50LCBrZXksIHsgJzphY3RpdmUnOiBmYWxzZSB9KTtcbiAgICB9XG4gIH0pO1xufTtcblxudmFyIF9vbk1lZGlhUXVlcnlDaGFuZ2UgPSBmdW5jdGlvbiBfb25NZWRpYVF1ZXJ5Q2hhbmdlKGNvbXBvbmVudCwgcXVlcnksIG1lZGlhUXVlcnlMaXN0KSB7XG4gIHZhciBzdGF0ZSA9IHt9O1xuICBzdGF0ZVtxdWVyeV0gPSBtZWRpYVF1ZXJ5TGlzdC5tYXRjaGVzO1xuICBfc2V0U3R5bGVTdGF0ZShjb21wb25lbnQsICdfYWxsJywgc3RhdGUpO1xufTtcblxudmFyIF9yZXNvbHZlTWVkaWFRdWVyeVN0eWxlcyA9IGZ1bmN0aW9uIF9yZXNvbHZlTWVkaWFRdWVyeVN0eWxlcyhjb21wb25lbnQsIHN0eWxlKSB7XG4gIGlmICghQ29uZmlnLmNhbk1hdGNoTWVkaWEoKSkge1xuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKHN0eWxlKS5maWx0ZXIoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gbmFtZVswXSA9PT0gJ0AnO1xuICB9KS5tYXAoZnVuY3Rpb24gKHF1ZXJ5KSB7XG4gICAgdmFyIG1lZGlhUXVlcnlTdHlsZXMgPSBzdHlsZVtxdWVyeV07XG4gICAgcXVlcnkgPSBxdWVyeS5yZXBsYWNlKCdAbWVkaWEgJywgJycpO1xuXG4gICAgLy8gQ3JlYXRlIGEgZ2xvYmFsIE1lZGlhUXVlcnlMaXN0IGlmIG9uZSBkb2Vzbid0IGFscmVhZHkgZXhpc3RcbiAgICB2YXIgbXFsID0gbWVkaWFRdWVyeUxpc3RCeVF1ZXJ5U3RyaW5nW3F1ZXJ5XTtcbiAgICBpZiAoIW1xbCkge1xuICAgICAgbWVkaWFRdWVyeUxpc3RCeVF1ZXJ5U3RyaW5nW3F1ZXJ5XSA9IG1xbCA9IENvbmZpZy5tYXRjaE1lZGlhKHF1ZXJ5KTtcbiAgICB9XG5cbiAgICAvLyBLZWVwIHRyYWNrIG9mIHdoaWNoIGtleXMgYWxyZWFkeSBoYXZlIGxpc3RlbmVyc1xuICAgIGlmICghY29tcG9uZW50Ll9yYWRpdW1NZWRpYVF1ZXJ5TGlzdGVuZXJzQnlRdWVyeSkge1xuICAgICAgY29tcG9uZW50Ll9yYWRpdW1NZWRpYVF1ZXJ5TGlzdGVuZXJzQnlRdWVyeSA9IHt9O1xuICAgIH1cblxuICAgIGlmICghY29tcG9uZW50Ll9yYWRpdW1NZWRpYVF1ZXJ5TGlzdGVuZXJzQnlRdWVyeVtxdWVyeV0pIHtcbiAgICAgIHZhciBsaXN0ZW5lciA9IF9vbk1lZGlhUXVlcnlDaGFuZ2UuYmluZChudWxsLCBjb21wb25lbnQsIHF1ZXJ5KTtcbiAgICAgIG1xbC5hZGRMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgICBjb21wb25lbnQuX3JhZGl1bU1lZGlhUXVlcnlMaXN0ZW5lcnNCeVF1ZXJ5W3F1ZXJ5XSA9IHtcbiAgICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICAgICAgbXFsLnJlbW92ZUxpc3RlbmVyKGxpc3RlbmVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSBtZWRpYSBxdWVyeSBzdGF0ZXNcbiAgICBpZiAobXFsLm1hdGNoZXMpIHtcbiAgICAgIHN0eWxlID0gX21lcmdlU3R5bGVzKFtzdHlsZSwgbWVkaWFRdWVyeVN0eWxlc10pO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHN0eWxlO1xufTtcblxuLy8gV3JhcHBlciBhcm91bmQgUmVhY3QuY2xvbmVFbGVtZW50LiBUbyBhdm9pZCBwcm9jZXNzaW5nIHRoZSBzYW1lIGVsZW1lbnRcbi8vIHR3aWNlLCB3aGVuZXZlciB3ZSBjbG9uZSBhbiBlbGVtZW50IGFkZCBhIHNwZWNpYWwgbm9uLWVudW1lcmFibGUgcHJvcCB0b1xuLy8gbWFrZSBzdXJlIHdlIGRvbid0IHByb2Nlc3MgdGhpcyBlbGVtZW50IGFnYWluLlxudmFyIF9jbG9uZUVsZW1lbnQgPSBmdW5jdGlvbiBfY2xvbmVFbGVtZW50KHJlbmRlcmVkRWxlbWVudCwgbmV3UHJvcHMsIG5ld0NoaWxkcmVuKSB7XG4gIC8vIE9ubHkgYWRkIGZsYWcgaWYgdGhpcyBpcyBhIG5vcm1hbCBET00gZWxlbWVudFxuICBpZiAodHlwZW9mIHJlbmRlcmVkRWxlbWVudC50eXBlID09PSAnc3RyaW5nJykge1xuICAgIG5ld1Byb3BzID0gX2V4dGVuZHMoe30sIG5ld1Byb3BzLCB7IF9yYWRpdW1EaWRSZXNvbHZlU3R5bGVzOiB0cnVlIH0pO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChyZW5kZXJlZEVsZW1lbnQsIG5ld1Byb3BzLCBuZXdDaGlsZHJlbik7XG59O1xuXG4vL1xuLy8gVGhlIG51Y2xldXMgb2YgUmFkaXVtLiByZXNvbHZlU3R5bGVzIGlzIGNhbGxlZCBvbiB0aGUgcmVuZGVyZWQgZWxlbWVudHNcbi8vIGJlZm9yZSB0aGV5IGFyZSByZXR1cm5lZCBpbiByZW5kZXIuIEl0IGl0ZXJhdGVzIG92ZXIgdGhlIGVsZW1lbnRzIGFuZFxuLy8gY2hpbGRyZW4sIHJld3JpdGluZyBwcm9wcyB0byBhZGQgZXZlbnQgaGFuZGxlcnMgcmVxdWlyZWQgdG8gY2FwdHVyZSB1c2VyXG4vLyBpbnRlcmFjdGlvbnMgKGUuZy4gbW91c2Ugb3ZlcikuIEl0IGFsc28gcmVwbGFjZXMgdGhlIHN0eWxlIHByb3AgYmVjYXVzZSBpdFxuLy8gYWRkcyBpbiB0aGUgdmFyaW91cyBpbnRlcmFjdGlvbiBzdHlsZXMgKGUuZy4gOmhvdmVyKS5cbi8vXG52YXIgcmVzb2x2ZVN0eWxlcyA9IGZ1bmN0aW9uIHJlc29sdmVTdHlsZXMoY29tcG9uZW50LCAvLyBSZWFjdENvbXBvbmVudCwgZmxvdytlc2xpbnQgY29tcGxhaW5pbmdcbnJlbmRlcmVkRWxlbWVudCwgLy8gUmVhY3RFbGVtZW50XG5leGlzdGluZ0tleU1hcCkge1xuICAvLyBSZWFjdEVsZW1lbnRcbiAgZXhpc3RpbmdLZXlNYXAgPSBleGlzdGluZ0tleU1hcCB8fCB7fTtcblxuICBpZiAoIXJlbmRlcmVkRWxlbWVudCB8fFxuICAvLyBCYWlsIGlmIHdlJ3ZlIGFscmVhZHkgcHJvY2Vzc2VkIHRoaXMgZWxlbWVudC4gVGhpcyBlbnN1cmVzIHRoYXQgb25seSB0aGVcbiAgLy8gb3duZXIgb2YgYW4gZWxlbWVudCBwcm9jZXNzZXMgdGhhdCBlbGVtZW50LCBzaW5jZSB0aGUgb3duZXIncyByZW5kZXJcbiAgLy8gZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgZmlyc3QgKHdoaWNoIHdpbGwgYWx3YXlzIGJlIHRoZSBjYXNlLCBzaW5jZSB5b3VcbiAgLy8gY2FuJ3Qga25vdyB3aGF0IGVsc2UgdG8gcmVuZGVyIHVudGlsIHlvdSByZW5kZXIgdGhlIHBhcmVudCBjb21wb25lbnQpLlxuICByZW5kZXJlZEVsZW1lbnQucHJvcHMgJiYgcmVuZGVyZWRFbGVtZW50LnByb3BzLl9yYWRpdW1EaWRSZXNvbHZlU3R5bGVzKSB7XG4gICAgcmV0dXJuIHJlbmRlcmVkRWxlbWVudDtcbiAgfVxuXG4gIC8vIFJlY3Vyc2Ugb3ZlciBjaGlsZHJlbiBmaXJzdCBpbiBjYXNlIHdlIGJhaWwgZWFybHkuIE5vdGUgdGhhdCBjaGlsZHJlbiBvbmx5XG4gIC8vIGluY2x1ZGUgdGhvc2UgcmVuZGVyZWQgaW4gYHRoaXNgIGNvbXBvbmVudC4gQ2hpbGQgbm9kZXMgaW4gb3RoZXIgY29tcG9uZW50c1xuICAvLyB3aWxsIG5vdCBiZSBoZXJlLCBzbyBlYWNoIGNvbXBvbmVudCBuZWVkcyB0byB1c2UgUmFkaXVtLlxuICB2YXIgb2xkQ2hpbGRyZW4gPSByZW5kZXJlZEVsZW1lbnQucHJvcHMuY2hpbGRyZW47XG4gIHZhciBuZXdDaGlsZHJlbiA9IG9sZENoaWxkcmVuO1xuICBpZiAob2xkQ2hpbGRyZW4pIHtcbiAgICB2YXIgY2hpbGRyZW5UeXBlID0gdHlwZW9mIG9sZENoaWxkcmVuO1xuICAgIGlmIChjaGlsZHJlblR5cGUgPT09ICdzdHJpbmcnIHx8IGNoaWxkcmVuVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIC8vIERvbid0IGRvIGFueXRoaW5nIHdpdGggYSBzaW5nbGUgcHJpbWl0aXZlIGNoaWxkXG4gICAgICBuZXdDaGlsZHJlbiA9IG9sZENoaWxkcmVuO1xuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW5UeXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAvLyBXcmFwIHRoZSBmdW5jdGlvbiwgcmVzb2x2aW5nIHN0eWxlcyBvbiB0aGUgcmVzdWx0XG4gICAgICBuZXdDaGlsZHJlbiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG9sZENoaWxkcmVuLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChyZXN1bHQpKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmVTdHlsZXMoY29tcG9uZW50LCByZXN1bHQsIGV4aXN0aW5nS2V5TWFwKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKFJlYWN0LkNoaWxkcmVuLmNvdW50KG9sZENoaWxkcmVuKSA9PT0gMSAmJiBvbGRDaGlsZHJlbi50eXBlKSB7XG4gICAgICAvLyBJZiBhIFJlYWN0IEVsZW1lbnQgaXMgYW4gb25seSBjaGlsZCwgZG9uJ3Qgd3JhcCBpdCBpbiBhbiBhcnJheSBmb3JcbiAgICAgIC8vIFJlYWN0LkNoaWxkcmVuLm1hcCgpIGZvciBSZWFjdC5DaGlsZHJlbi5vbmx5KCkgY29tcGF0aWJpbGl0eS5cbiAgICAgIHZhciBvbmx5Q2hpbGQgPSBSZWFjdC5DaGlsZHJlbi5vbmx5KG9sZENoaWxkcmVuKTtcbiAgICAgIG5ld0NoaWxkcmVuID0gcmVzb2x2ZVN0eWxlcyhjb21wb25lbnQsIG9ubHlDaGlsZCwgZXhpc3RpbmdLZXlNYXApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdDaGlsZHJlbiA9IFJlYWN0LkNoaWxkcmVuLm1hcChvbGRDaGlsZHJlbiwgZnVuY3Rpb24gKGNoaWxkKSB7XG4gICAgICAgIGlmIChSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpIHtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZVN0eWxlcyhjb21wb25lbnQsIGNoaWxkLCBleGlzdGluZ0tleU1hcCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB2YXIgcHJvcHMgPSByZW5kZXJlZEVsZW1lbnQucHJvcHM7XG4gIHZhciBuZXdQcm9wcyA9IHt9O1xuXG4gIC8vIFJlY3Vyc2Ugb3ZlciBwcm9wcywganVzdCBsaWtlIGNoaWxkcmVuXG4gIE9iamVjdC5rZXlzKHByb3BzKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgLy8gV2UgYWxyZWFkeSByZWN1cnNlIG92ZXIgY2hpbGRyZW4gYWJvdmVcbiAgICBpZiAocHJvcCA9PT0gJ2NoaWxkcmVuJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBwcm9wVmFsdWUgPSBwcm9wc1twcm9wXTtcbiAgICBpZiAoUmVhY3QuaXNWYWxpZEVsZW1lbnQocHJvcFZhbHVlKSkge1xuICAgICAgbmV3UHJvcHNbcHJvcF0gPSByZXNvbHZlU3R5bGVzKGNvbXBvbmVudCwgcHJvcFZhbHVlLCBleGlzdGluZ0tleU1hcCk7XG4gICAgfVxuICB9KTtcblxuICB2YXIgaGFzUmVzb2x2ZWRQcm9wcyA9IE9iamVjdC5rZXlzKG5ld1Byb3BzKS5sZW5ndGggPiAwO1xuXG4gIC8vIEJhaWwgZWFybHkgaWYgZWxlbWVudCBpcyBub3QgYSBzaW1wbGUgUmVhY3RET01FbGVtZW50LlxuICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KHJlbmRlcmVkRWxlbWVudCkgfHwgdHlwZW9mIHJlbmRlcmVkRWxlbWVudC50eXBlICE9PSAnc3RyaW5nJykge1xuICAgIGlmIChvbGRDaGlsZHJlbiA9PT0gbmV3Q2hpbGRyZW4gJiYgIWhhc1Jlc29sdmVkUHJvcHMpIHtcbiAgICAgIHJldHVybiByZW5kZXJlZEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9jbG9uZUVsZW1lbnQocmVuZGVyZWRFbGVtZW50LCBoYXNSZXNvbHZlZFByb3BzID8gbmV3UHJvcHMgOiB7fSwgbmV3Q2hpbGRyZW4pO1xuICB9XG5cbiAgdmFyIHN0eWxlID0gcHJvcHMuc3R5bGU7XG5cbiAgLy8gQ29udmVuaWVudCBzeW50YXggZm9yIG11bHRpcGxlIHN0eWxlczogYHN0eWxlPXtbc3R5bGUxLCBzdHlsZTIsIGV0Y119YFxuICAvLyBJZ25vcmVzIG5vbi1vYmplY3RzLCBzbyB5b3UgY2FuIGRvIGB0aGlzLnN0YXRlLmlzQ29vbCAmJiBzdHlsZXMuY29vbGAuXG4gIGlmIChBcnJheS5pc0FycmF5KHN0eWxlKSkge1xuICAgIHN0eWxlID0gX21lcmdlU3R5bGVzKHN0eWxlKTtcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgLy8gV2FybiBpZiB5b3UgdXNlIGxvbmdoYW5kIGFuZCBzaG9ydGhhbmQgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBzdHlsZVxuICAgIC8vIG9iamVjdC5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvU2hvcnRoYW5kX3Byb3BlcnRpZXNcblxuICAgIHZhciBzaG9ydGhhbmRQcm9wZXJ0eUV4cGFuc2lvbnMgPSB7XG4gICAgICAnYmFja2dyb3VuZCc6IFsnYmFja2dyb3VuZEF0dGFjaG1lbnQnLCAnYmFja2dyb3VuZEJsZW5kTW9kZScsICdiYWNrZ3JvdW5kQ2xpcCcsICdiYWNrZ3JvdW5kQ29sb3InLCAnYmFja2dyb3VuZEltYWdlJywgJ2JhY2tncm91bmRPcmlnaW4nLCAnYmFja2dyb3VuZFBvc2l0aW9uJywgJ2JhY2tncm91bmRQb3NpdGlvblgnLCAnYmFja2dyb3VuZFBvc2l0aW9uWScsICdiYWNrZ3JvdW5kUmVwZWF0JywgJ2JhY2tncm91bmRSZXBlYXRYJywgJ2JhY2tncm91bmRSZXBlYXRZJywgJ2JhY2tncm91bmRTaXplJ10sXG4gICAgICAnYm9yZGVyJzogWydib3JkZXJCb3R0b20nLCAnYm9yZGVyQm90dG9tQ29sb3InLCAnYm9yZGVyQm90dG9tU3R5bGUnLCAnYm9yZGVyQm90dG9tV2lkdGgnLCAnYm9yZGVyQ29sb3InLCAnYm9yZGVyTGVmdCcsICdib3JkZXJMZWZ0Q29sb3InLCAnYm9yZGVyTGVmdFN0eWxlJywgJ2JvcmRlckxlZnRXaWR0aCcsICdib3JkZXJSaWdodCcsICdib3JkZXJSaWdodENvbG9yJywgJ2JvcmRlclJpZ2h0U3R5bGUnLCAnYm9yZGVyUmlnaHRXaWR0aCcsICdib3JkZXJTdHlsZScsICdib3JkZXJUb3AnLCAnYm9yZGVyVG9wQ29sb3InLCAnYm9yZGVyVG9wU3R5bGUnLCAnYm9yZGVyVG9wV2lkdGgnLCAnYm9yZGVyV2lkdGgnXSxcbiAgICAgICdib3JkZXJJbWFnZSc6IFsnYm9yZGVySW1hZ2VPdXRzZXQnLCAnYm9yZGVySW1hZ2VSZXBlYXQnLCAnYm9yZGVySW1hZ2VTbGljZScsICdib3JkZXJJbWFnZVNvdXJjZScsICdib3JkZXJJbWFnZVdpZHRoJ10sXG4gICAgICAnYm9yZGVyUmFkaXVzJzogWydib3JkZXJCb3R0b21MZWZ0UmFkaXVzJywgJ2JvcmRlckJvdHRvbVJpZ2h0UmFkaXVzJywgJ2JvcmRlclRvcExlZnRSYWRpdXMnLCAnYm9yZGVyVG9wUmlnaHRSYWRpdXMnXSxcbiAgICAgICdmb250JzogWydmb250RmFtaWx5JywgJ2ZvbnRLZXJuaW5nJywgJ2ZvbnRTaXplJywgJ2ZvbnRTdHJldGNoJywgJ2ZvbnRTdHlsZScsICdmb250VmFyaWFudCcsICdmb250VmFyaWFudExpZ2F0dXJlcycsICdmb250V2VpZ2h0JywgJ2xpbmVIZWlnaHQnXSxcbiAgICAgICdsaXN0U3R5bGUnOiBbJ2xpc3RTdHlsZUltYWdlJywgJ2xpc3RTdHlsZVBvc2l0aW9uJywgJ2xpc3RTdHlsZVR5cGUnXSxcbiAgICAgICdtYXJnaW4nOiBbJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0JywgJ21hcmdpblRvcCddLFxuICAgICAgJ3BhZGRpbmcnOiBbJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ0xlZnQnLCAncGFkZGluZ1JpZ2h0JywgJ3BhZGRpbmdUb3AnXSxcbiAgICAgICd0cmFuc2l0aW9uJzogWyd0cmFuc2l0aW9uRGVsYXknLCAndHJhbnNpdGlvbkR1cmF0aW9uJywgJ3RyYW5zaXRpb25Qcm9wZXJ0eScsICd0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb24nXVxuICAgIH07XG5cbiAgICB2YXIgY2hlY2tQcm9wcyA9IGZ1bmN0aW9uIGNoZWNrUHJvcHMocykge1xuICAgICAgaWYgKHR5cGVvZiBzICE9PSAnb2JqZWN0JyB8fCAhcykge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHZhciBzdHlsZUtleXMgPSBPYmplY3Qua2V5cyhzKTtcbiAgICAgIHN0eWxlS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChzdHlsZUtleSkge1xuICAgICAgICBpZiAoc2hvcnRoYW5kUHJvcGVydHlFeHBhbnNpb25zW3N0eWxlS2V5XSAmJiBzaG9ydGhhbmRQcm9wZXJ0eUV4cGFuc2lvbnNbc3R5bGVLZXldLnNvbWUoZnVuY3Rpb24gKHNwKSB7XG4gICAgICAgICAgcmV0dXJuIHN0eWxlS2V5cy5pbmRleE9mKHNwKSAhPT0gLTE7XG4gICAgICAgIH0pKSB7XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgICAgIC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbiAgICAgICAgICAgIGNvbnNvbGUud2FybignUmFkaXVtOiBwcm9wZXJ0eSBcIicgKyBzdHlsZUtleSArICdcIiBpbiBzdHlsZSBvYmplY3QnLCBzdHlsZSwgJzogZG8gbm90IG1peCBsb25naGFuZCBhbmQgJyArICdzaG9ydGhhbmQgcHJvcGVydGllcyBpbiB0aGUgc2FtZSBzdHlsZSBvYmplY3QuIENoZWNrIHRoZSByZW5kZXIgJyArICdtZXRob2Qgb2YgJyArIGNvbXBvbmVudC5jb25zdHJ1Y3Rvci5kaXNwbGF5TmFtZSArICcuJywgJ1NlZSBodHRwczovL2dpdGh1Yi5jb20vRm9ybWlkYWJsZUxhYnMvcmFkaXVtL2lzc3Vlcy85NSBmb3IgbW9yZSAnICsgJ2luZm9ybWF0aW9uLicpO1xuICAgICAgICAgICAgLyogZXNsaW50LWVuYWJsZSBuby1jb25zb2xlICovXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc3R5bGVLZXlzLmZvckVhY2goZnVuY3Rpb24gKGspIHtcbiAgICAgICAgcmV0dXJuIGNoZWNrUHJvcHMoc1trXSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIGNoZWNrUHJvcHMoc3R5bGUpO1xuICB9XG5cbiAgLy8gQmFpbCBlYXJseSBpZiBubyBpbnRlcmFjdGl2ZSBzdHlsZXMuXG4gIGlmICghc3R5bGUgfHwgIU9iamVjdC5rZXlzKHN0eWxlKS5zb21lKF9pc1NwZWNpYWxLZXkpKSB7XG4gICAgaWYgKHN0eWxlKSB7XG4gICAgICAvLyBTdGlsbCBwZXJmb3JtIHZlbmRvciBwcmVmaXhpbmcsIHRob3VnaC5cbiAgICAgIG5ld1Byb3BzLnN0eWxlID0gUHJlZml4ZXIuZ2V0UHJlZml4ZWRTdHlsZShjb21wb25lbnQsIHN0eWxlKTtcbiAgICAgIHJldHVybiBfY2xvbmVFbGVtZW50KHJlbmRlcmVkRWxlbWVudCwgbmV3UHJvcHMsIG5ld0NoaWxkcmVuKTtcbiAgICB9IGVsc2UgaWYgKG5ld0NoaWxkcmVuIHx8IGhhc1Jlc29sdmVkUHJvcHMpIHtcbiAgICAgIHJldHVybiBfY2xvbmVFbGVtZW50KHJlbmRlcmVkRWxlbWVudCwgbmV3UHJvcHMsIG5ld0NoaWxkcmVuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVuZGVyZWRFbGVtZW50O1xuICB9XG5cbiAgLy8gV2UgbmVlZCBhIHVuaXF1ZSBrZXkgdG8gY29ycmVsYXRlIHN0YXRlIGNoYW5nZXMgZHVlIHRvIHVzZXIgaW50ZXJhY3Rpb25cbiAgLy8gd2l0aCB0aGUgcmVuZGVyZWQgZWxlbWVudCwgc28gd2Uga25vdyB0byBhcHBseSB0aGUgcHJvcGVyIGludGVyYWN0aXZlXG4gIC8vIHN0eWxlcy5cbiAgdmFyIG9yaWdpbmFsS2V5ID0gcmVuZGVyZWRFbGVtZW50LnJlZiB8fCByZW5kZXJlZEVsZW1lbnQua2V5O1xuICB2YXIga2V5ID0gZ2V0U3RhdGVLZXkob3JpZ2luYWxLZXkpO1xuXG4gIGlmIChleGlzdGluZ0tleU1hcFtrZXldKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdSYWRpdW0gcmVxdWlyZXMgZWFjaCBlbGVtZW50IHdpdGggaW50ZXJhY3RpdmUgc3R5bGVzIHRvIGhhdmUgYSB1bmlxdWUgJyArICdrZXksIHNldCB1c2luZyBlaXRoZXIgdGhlIHJlZiBvciBrZXkgcHJvcC4gJyArIChvcmlnaW5hbEtleSA/ICdLZXkgXCInICsgb3JpZ2luYWxLZXkgKyAnXCIgaXMgYSBkdXBsaWNhdGUuJyA6ICdNdWx0aXBsZSBlbGVtZW50cyBoYXZlIG5vIGtleSBzcGVjaWZpZWQuJykpO1xuICB9XG5cbiAgZXhpc3RpbmdLZXlNYXBba2V5XSA9IHRydWU7XG5cbiAgLy8gTWVkaWEgcXVlcmllcyBjYW4gY29udGFpbiBwc2V1ZG8gc3R5bGVzLCBsaWtlIDpob3ZlclxuICBzdHlsZSA9IF9yZXNvbHZlTWVkaWFRdWVyeVN0eWxlcyhjb21wb25lbnQsIHN0eWxlKTtcblxuICB2YXIgbmV3U3R5bGUgPSB7fTtcbiAgT2JqZWN0LmtleXMoc3R5bGUpLmZvckVhY2goZnVuY3Rpb24gKHN0eWxlS2V5KSB7XG4gICAgaWYgKCFfaXNTcGVjaWFsS2V5KHN0eWxlS2V5KSkge1xuICAgICAgbmV3U3R5bGVbc3R5bGVLZXldID0gc3R5bGVbc3R5bGVLZXldO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gT25seSBhZGQgaGFuZGxlcnMgaWYgbmVjZXNzYXJ5XG4gIGlmIChzdHlsZVsnOmhvdmVyJ10gfHwgc3R5bGVbJzphY3RpdmUnXSkge1xuICAgIC8vIEFsd2F5cyBjYWxsIHRoZSBleGlzdGluZyBoYW5kbGVyIGlmIG9uZSBpcyBhbHJlYWR5IGRlZmluZWQuXG4gICAgLy8gVGhpcyBjb2RlLCBhbmQgdGhlIHZlcnkgc2ltaWxhciBvbmVzIGJlbG93LCBjb3VsZCBiZSBhYnN0cmFjdGVkIGEgYml0XG4gICAgLy8gbW9yZSwgYnV0IGl0IGh1cnRzIHJlYWRhYmlsaXR5IElNTy5cbiAgICB2YXIgZXhpc3RpbmdPbk1vdXNlRW50ZXIgPSBwcm9wcy5vbk1vdXNlRW50ZXI7XG4gICAgbmV3UHJvcHMub25Nb3VzZUVudGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgIGV4aXN0aW5nT25Nb3VzZUVudGVyICYmIGV4aXN0aW5nT25Nb3VzZUVudGVyKGUpO1xuICAgICAgX3NldFN0eWxlU3RhdGUoY29tcG9uZW50LCBrZXksIHsgJzpob3Zlcic6IHRydWUgfSk7XG4gICAgfTtcblxuICAgIHZhciBleGlzdGluZ09uTW91c2VMZWF2ZSA9IHByb3BzLm9uTW91c2VMZWF2ZTtcbiAgICBuZXdQcm9wcy5vbk1vdXNlTGVhdmUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgZXhpc3RpbmdPbk1vdXNlTGVhdmUgJiYgZXhpc3RpbmdPbk1vdXNlTGVhdmUoZSk7XG4gICAgICBfc2V0U3R5bGVTdGF0ZShjb21wb25lbnQsIGtleSwgeyAnOmhvdmVyJzogZmFsc2UgfSk7XG4gICAgfTtcbiAgfVxuXG4gIGlmIChzdHlsZVsnOmFjdGl2ZSddKSB7XG4gICAgdmFyIGV4aXN0aW5nT25Nb3VzZURvd24gPSBwcm9wcy5vbk1vdXNlRG93bjtcbiAgICBuZXdQcm9wcy5vbk1vdXNlRG93biA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBleGlzdGluZ09uTW91c2VEb3duICYmIGV4aXN0aW5nT25Nb3VzZURvd24oZSk7XG4gICAgICBjb21wb25lbnQuX2xhc3RNb3VzZURvd24gPSBEYXRlLm5vdygpO1xuICAgICAgX3NldFN0eWxlU3RhdGUoY29tcG9uZW50LCBrZXksIHsgJzphY3RpdmUnOiB0cnVlIH0pO1xuICAgIH07XG4gIH1cblxuICBpZiAoc3R5bGVbJzpmb2N1cyddKSB7XG4gICAgdmFyIGV4aXN0aW5nT25Gb2N1cyA9IHByb3BzLm9uRm9jdXM7XG4gICAgbmV3UHJvcHMub25Gb2N1cyA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICBleGlzdGluZ09uRm9jdXMgJiYgZXhpc3RpbmdPbkZvY3VzKGUpO1xuICAgICAgX3NldFN0eWxlU3RhdGUoY29tcG9uZW50LCBrZXksIHsgJzpmb2N1cyc6IHRydWUgfSk7XG4gICAgfTtcblxuICAgIHZhciBleGlzdGluZ09uQmx1ciA9IHByb3BzLm9uQmx1cjtcbiAgICBuZXdQcm9wcy5vbkJsdXIgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgZXhpc3RpbmdPbkJsdXIgJiYgZXhpc3RpbmdPbkJsdXIoZSk7XG4gICAgICBfc2V0U3R5bGVTdGF0ZShjb21wb25lbnQsIGtleSwgeyAnOmZvY3VzJzogZmFsc2UgfSk7XG4gICAgfTtcbiAgfVxuXG4gIC8vIE1lcmdlIHRoZSBzdHlsZXMgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBkZWZpbmVkXG4gIHZhciBpbnRlcmFjdGlvblN0eWxlcyA9IE9iamVjdC5rZXlzKHN0eWxlKS5maWx0ZXIoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gbmFtZSA9PT0gJzphY3RpdmUnICYmIF9nZXRTdHlsZVN0YXRlKGNvbXBvbmVudCwga2V5LCAnOmFjdGl2ZScpIHx8IG5hbWUgPT09ICc6aG92ZXInICYmIF9nZXRTdHlsZVN0YXRlKGNvbXBvbmVudCwga2V5LCAnOmhvdmVyJykgfHwgbmFtZSA9PT0gJzpmb2N1cycgJiYgX2dldFN0eWxlU3RhdGUoY29tcG9uZW50LCBrZXksICc6Zm9jdXMnKTtcbiAgfSkubWFwKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgcmV0dXJuIHN0eWxlW25hbWVdO1xuICB9KTtcblxuICBpZiAoaW50ZXJhY3Rpb25TdHlsZXMubGVuZ3RoKSB7XG4gICAgbmV3U3R5bGUgPSBfbWVyZ2VTdHlsZXMoW25ld1N0eWxlXS5jb25jYXQoaW50ZXJhY3Rpb25TdHlsZXMpKTtcbiAgfVxuXG4gIGlmIChzdHlsZVsnOmFjdGl2ZSddICYmICFjb21wb25lbnQuX3JhZGl1bU1vdXNlVXBMaXN0ZW5lciAmJiBFeGVjdXRpb25FbnZpcm9ubWVudC5jYW5Vc2VFdmVudExpc3RlbmVycykge1xuICAgIGNvbXBvbmVudC5fcmFkaXVtTW91c2VVcExpc3RlbmVyID0gTW91c2VVcExpc3RlbmVyLnN1YnNjcmliZShfbW91c2VVcC5iaW5kKG51bGwsIGNvbXBvbmVudCkpO1xuICB9XG5cbiAgbmV3UHJvcHMuc3R5bGUgPSBQcmVmaXhlci5nZXRQcmVmaXhlZFN0eWxlKGNvbXBvbmVudCwgbmV3U3R5bGUpO1xuXG4gIHJldHVybiBfY2xvbmVFbGVtZW50KHJlbmRlcmVkRWxlbWVudCwgbmV3UHJvcHMsIG5ld0NoaWxkcmVuKTtcbn07XG5cbi8vIEV4cG9zaW5nIG1ldGhvZHMgZm9yIHRlc3RzIGlzIHVnbHksIGJ1dCB0aGUgYWx0ZXJuYXRpdmUsIHJlLXJlcXVpcmluZyB0aGVcbi8vIG1vZHVsZSBlYWNoIHRpbWUsIGlzIHRvbyBzbG93XG5yZXNvbHZlU3R5bGVzLl9fY2xlYXJTdGF0ZUZvclRlc3RzID0gZnVuY3Rpb24gKCkge1xuICBtZWRpYVF1ZXJ5TGlzdEJ5UXVlcnlTdHJpbmcgPSB7fTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0gcmVzb2x2ZVN0eWxlczsiLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIGZpbmQoYXJyYXksIHByZWRpY2F0ZSwgY29udGV4dCkge1xuICBpZiAodHlwZW9mIEFycmF5LnByb3RvdHlwZS5maW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuIGFycmF5LmZpbmQocHJlZGljYXRlLCBjb250ZXh0KTtcbiAgfVxuXG4gIGNvbnRleHQgPSBjb250ZXh0IHx8IHRoaXM7XG4gIHZhciBsZW5ndGggPSBhcnJheS5sZW5ndGg7XG4gIHZhciBpO1xuXG4gIGlmICh0eXBlb2YgcHJlZGljYXRlICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihwcmVkaWNhdGUgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7XG4gIH1cblxuICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAocHJlZGljYXRlLmNhbGwoY29udGV4dCwgYXJyYXlbaV0sIGksIGFycmF5KSkge1xuICAgICAgcmV0dXJuIGFycmF5W2ldO1xuICAgIH1cbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmQ7XG4iLCIvKiFcbiAgQ29weXJpZ2h0IChjKSAyMDE1IEplZCBXYXRzb24uXG4gIEJhc2VkIG9uIGNvZGUgdGhhdCBpcyBDb3B5cmlnaHQgMjAxMy0yMDE1LCBGYWNlYm9vaywgSW5jLlxuICBBbGwgcmlnaHRzIHJlc2VydmVkLlxuKi9cblxuKGZ1bmN0aW9uICgpIHtcblx0J3VzZSBzdHJpY3QnO1xuXG5cdHZhciBjYW5Vc2VET00gPSAhIShcblx0XHR0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuXHRcdHdpbmRvdy5kb2N1bWVudCAmJlxuXHRcdHdpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50XG5cdCk7XG5cblx0dmFyIEV4ZWN1dGlvbkVudmlyb25tZW50ID0ge1xuXG5cdFx0Y2FuVXNlRE9NOiBjYW5Vc2VET00sXG5cblx0XHRjYW5Vc2VXb3JrZXJzOiB0eXBlb2YgV29ya2VyICE9PSAndW5kZWZpbmVkJyxcblxuXHRcdGNhblVzZUV2ZW50TGlzdGVuZXJzOlxuXHRcdFx0Y2FuVXNlRE9NICYmICEhKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyIHx8IHdpbmRvdy5hdHRhY2hFdmVudCksXG5cblx0XHRjYW5Vc2VWaWV3cG9ydDogY2FuVXNlRE9NICYmICEhd2luZG93LnNjcmVlblxuXG5cdH07XG5cblx0aWYgKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgdHlwZW9mIGRlZmluZS5hbWQgPT09ICdvYmplY3QnICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIEV4ZWN1dGlvbkVudmlyb25tZW50O1xuXHRcdH0pO1xuXHR9IGVsc2UgaWYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBFeGVjdXRpb25FbnZpcm9ubWVudDtcblx0fSBlbHNlIHtcblx0XHR3aW5kb3cuRXhlY3V0aW9uRW52aXJvbm1lbnQgPSBFeGVjdXRpb25FbnZpcm9ubWVudDtcblx0fVxuXG59KCkpO1xuIl19 plugins/mojo-marketplace-wp-plugin/tests/jetpack-start/js/react-0.13.3.min.js0000644000312500031250000035561212654411246027320 0ustar eacbforgeacbforg/** * React v0.13.3 * * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(a,u){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a8&&11>=x),N=32,I=String.fromCharCode(N),T=f.topLevelTypes,P={beforeInput:{phasedRegistrationNames:{bubbled:C({onBeforeInput:null}),captured:C({onBeforeInputCapture:null})},dependencies:[T.topCompositionEnd,T.topKeyPress,T.topTextInput,T.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:C({onCompositionEnd:null}),captured:C({onCompositionEndCapture:null})},dependencies:[T.topBlur,T.topCompositionEnd,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:C({onCompositionStart:null}),captured:C({onCompositionStartCapture:null})},dependencies:[T.topBlur,T.topCompositionStart,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:C({onCompositionUpdate:null}),captured:C({onCompositionUpdateCapture:null})},dependencies:[T.topBlur,T.topCompositionUpdate,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]}},R=!1,w=null,O={eventTypes:P,extractEvents:function(e,t,n,r){return[l(e,t,n,r),d(e,t,n,r)]}};t.exports=O},{139:139,15:15,20:20,21:21,22:22,91:91,95:95}],4:[function(e,t,n){"use strict";function r(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var o={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},i=["Webkit","ms","Moz","O"];Object.keys(o).forEach(function(e){i.forEach(function(t){o[r(t,e)]=o[e]})});var a={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},u={isUnitlessNumber:o,shorthandPropertyExpansions:a};t.exports=u},{}],5:[function(e,t,n){"use strict";var r=e(4),o=e(21),i=(e(106),e(111)),a=e(131),u=e(141),s=(e(150),u(function(e){return a(e)})),l="cssFloat";o.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(l="styleFloat");var c={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=s(n)+":",t+=i(n,r)+";")}return t||null},setValueForStyles:function(e,t){var n=e.style;for(var o in t)if(t.hasOwnProperty(o)){var a=i(o,t[o]);if("float"===o&&(o=l),a)n[o]=a;else{var u=r.shorthandPropertyExpansions[o];if(u)for(var s in u)n[s]="";else n[o]=""}}}};t.exports=c},{106:106,111:111,131:131,141:141,150:150,21:21,4:4}],6:[function(e,t,n){"use strict";function r(){this._callbacks=null,this._contexts=null}var o=e(28),i=e(27),a=e(133);i(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){a(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),o.addPoolingTo(r),t.exports=r},{133:133,27:27,28:28}],7:[function(e,t,n){"use strict";function r(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function o(e){var t=x.getPooled(T.change,R,e);E.accumulateTwoPhaseDispatches(t),_.batchedUpdates(i,t)}function i(e){C.enqueueEvents(e),C.processEventQueue()}function a(e,t){P=e,R=t,P.attachEvent("onchange",o)}function u(){P&&(P.detachEvent("onchange",o),P=null,R=null)}function s(e,t,n){return e===I.topChange?n:void 0}function l(e,t,n){e===I.topFocus?(u(),a(t,n)):e===I.topBlur&&u()}function c(e,t){P=e,R=t,w=e.value,O=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(P,"value",k),P.attachEvent("onpropertychange",d)}function p(){P&&(delete P.value,P.detachEvent("onpropertychange",d),P=null,R=null,w=null,O=null)}function d(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==w&&(w=t,o(e))}}function f(e,t,n){return e===I.topInput?n:void 0}function h(e,t,n){e===I.topFocus?(p(),c(t,n)):e===I.topBlur&&p()}function m(e,t,n){return e!==I.topSelectionChange&&e!==I.topKeyUp&&e!==I.topKeyDown||!P||P.value===w?void 0:(w=P.value,R)}function v(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===I.topClick?n:void 0}var y=e(15),C=e(17),E=e(20),b=e(21),_=e(85),x=e(93),D=e(134),M=e(136),N=e(139),I=y.topLevelTypes,T={change:{phasedRegistrationNames:{bubbled:N({onChange:null}),captured:N({onChangeCapture:null})},dependencies:[I.topBlur,I.topChange,I.topClick,I.topFocus,I.topInput,I.topKeyDown,I.topKeyUp,I.topSelectionChange]}},P=null,R=null,w=null,O=null,S=!1;b.canUseDOM&&(S=D("change")&&(!("documentMode"in document)||document.documentMode>8));var A=!1;b.canUseDOM&&(A=D("input")&&(!("documentMode"in document)||document.documentMode>9));var k={get:function(){return O.get.call(this)},set:function(e){w=""+e,O.set.call(this,e)}},L={eventTypes:T,extractEvents:function(e,t,n,o){var i,a;if(r(t)?S?i=s:a=l:M(t)?A?i=f:(i=m,a=h):v(t)&&(i=g),i){var u=i(e,t,n);if(u){var c=x.getPooled(T.change,u,o);return E.accumulateTwoPhaseDispatches(c),c}}a&&a(e,t,n)}};t.exports=L},{134:134,136:136,139:139,15:15,17:17,20:20,21:21,85:85,93:93}],8:[function(e,t,n){"use strict";var r=0,o={createReactRootIndex:function(){return r++}};t.exports=o},{}],9:[function(e,t,n){"use strict";function r(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var o=e(12),i=e(70),a=e(145),u=e(133),s={dangerouslyReplaceNodeWithMarkup:o.dangerouslyReplaceNodeWithMarkup,updateTextContent:a,processUpdates:function(e,t){for(var n,s=null,l=null,c=0;ct||o.hasOverloadedBooleanValue[e]&&t===!1}var o=e(10),i=e(143),a=(e(150),{createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+i(e)},createMarkupForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(e)&&o.isStandardName[e]){if(r(e,t))return"";var n=o.getAttributeName[e];return o.hasBooleanValue[e]||o.hasOverloadedBooleanValue[e]&&t===!0?n:n+"="+i(t)}return o.isCustomAttribute(e)?null==t?"":e+"="+i(t):null},setValueForProperty:function(e,t,n){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var i=o.getMutationMethod[t];if(i)i(e,n);else if(r(t,n))this.deleteValueForProperty(e,t);else if(o.mustUseAttribute[t])e.setAttribute(o.getAttributeName[t],""+n);else{var a=o.getPropertyName[t];o.hasSideEffects[t]&&""+e[a]==""+n||(e[a]=n)}}else o.isCustomAttribute(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,t){if(o.isStandardName.hasOwnProperty(t)&&o.isStandardName[t]){var n=o.getMutationMethod[t];if(n)n(e,void 0);else if(o.mustUseAttribute[t])e.removeAttribute(o.getAttributeName[t]);else{var r=o.getPropertyName[t],i=o.getDefaultValueForProperty(e.nodeName,r);o.hasSideEffects[t]&&""+e[r]===i||(e[r]=i)}}else o.isCustomAttribute(t)&&e.removeAttribute(t)}});t.exports=a},{10:10,143:143,150:150}],12:[function(e,t,n){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var o=e(21),i=e(110),a=e(112),u=e(125),s=e(133),l=/^(<[^ \/>]+)/,c="data-danger-index",p={dangerouslyRenderMarkup:function(e){s(o.canUseDOM);for(var t,n={},p=0;ps;s++){var c=u[s];if(c){var p=c.extractEvents(e,t,n,o);p&&(a=i(a,p))}}return a},enqueueEvents:function(e){e&&(l=i(l,e))},processEventQueue:function(){var e=l;l=null,a(e,c),u(!l)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=d},{103:103,118:118,133:133,18:18,19:19}],18:[function(e,t,n){"use strict";function r(){if(u)for(var e in s){var t=s[e],n=u.indexOf(e);if(a(n>-1),!l.plugins[n]){a(t.extractEvents),l.plugins[n]=t;var r=t.eventTypes;for(var i in r)a(o(r[i],t,i))}}}function o(e,t,n){a(!l.eventNameDispatchConfigs.hasOwnProperty(n)),l.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var o in r)if(r.hasOwnProperty(o)){var u=r[o];i(u,t,n)}return!0}return e.registrationName?(i(e.registrationName,t,n),!0):!1}function i(e,t,n){a(!l.registrationNameModules[e]),l.registrationNameModules[e]=t,l.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var a=e(133),u=null,s={},l={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){a(!u),u=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];s.hasOwnProperty(n)&&s[n]===o||(a(!s[n]),s[n]=o,t=!0)}t&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return l.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=l.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){u=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];l.plugins.length=0;var t=l.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=l.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=l},{133:133}],19:[function(e,t,n){"use strict";function r(e){return e===v.topMouseUp||e===v.topTouchEnd||e===v.topTouchCancel}function o(e){return e===v.topMouseMove||e===v.topTouchMove}function i(e){return e===v.topMouseDown||e===v.topTouchStart}function a(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;oe&&n[e]===o[e];e++);var a=r-e;for(t=1;a>=t&&n[r-t]===o[i-t];t++);var u=t>1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),o.addPoolingTo(r),t.exports=r},{128:128,27:27,28:28}],23:[function(e,t,n){"use strict";var r,o=e(10),i=e(21),a=o.injection.MUST_USE_ATTRIBUTE,u=o.injection.MUST_USE_PROPERTY,s=o.injection.HAS_BOOLEAN_VALUE,l=o.injection.HAS_SIDE_EFFECTS,c=o.injection.HAS_NUMERIC_VALUE,p=o.injection.HAS_POSITIVE_NUMERIC_VALUE,d=o.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(i.canUseDOM){var f=document.implementation;r=f&&f.hasFeature&&f.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|s,allowTransparency:a,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:a,checked:u|s,classID:a,className:r?a:u,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:u|s,coords:null,crossOrigin:null,data:null,dateTime:a,defer:s,dir:null,disabled:a|s,download:d,draggable:null,encType:null,form:a,formAction:a,formEncType:a,formMethod:a,formNoValidate:s,formTarget:a,frameBorder:a,headers:null,height:a,hidden:a|s,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:u,label:null,lang:null,list:a,loop:u|s,low:null,manifest:a,marginHeight:null,marginWidth:null,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,multiple:u|s,muted:u|s,name:null,noValidate:s,open:s,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:u|s,rel:null,required:s,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scoped:s,scrolling:null,seamless:a|s,selected:u|s,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:u,srcSet:a,start:c,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:u|l,width:a,wmode:a,autoCapitalize:null,autoCorrect:null,itemProp:a,itemScope:a|s,itemType:a,itemID:a,itemRef:a,property:null,unselectable:a},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=h},{10:10,21:21}],24:[function(e,t,n){"use strict";function r(e){l(null==e.props.checkedLink||null==e.props.valueLink)}function o(e){r(e),l(null==e.props.value&&null==e.props.onChange)}function i(e){r(e),l(null==e.props.checked&&null==e.props.onChange)}function a(e){this.props.valueLink.requestChange(e.target.value)}function u(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e(76),l=e(133),c={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},p={Mixin:{propTypes:{value:function(e,t,n){return!e[t]||c[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t,n){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func}},getValue:function(e){return e.props.valueLink?(o(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(i(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(o(e),a):e.props.checkedLink?(i(e),u):e.props.onChange}};t.exports=p},{133:133,76:76}],25:[function(e,t,n){"use strict";function r(e){e.remove()}var o=e(30),i=e(103),a=e(118),u=e(133),s={trapBubbledEvent:function(e,t){u(this.isMounted());var n=this.getDOMNode();u(n);var r=o.trapBubbledEvent(e,t,n);this._localEventListeners=i(this._localEventListeners,r)},componentWillUnmount:function(){this._localEventListeners&&a(this._localEventListeners,r)}};t.exports=s},{103:103,118:118,133:133,30:30}],26:[function(e,t,n){"use strict";var r=e(15),o=e(112),i=r.topLevelTypes,a={eventTypes:null,extractEvents:function(e,t,n,r){if(e===i.topTouchStart){var a=r.target;a&&!a.onclick&&(a.onclick=o)}}};t.exports=a},{112:112,15:15}],27:[function(e,t,n){"use strict";function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;ol;l++){var d=u[l];i.hasOwnProperty(d)&&i[d]||(d===s.topWheel?c("wheel")?v.ReactEventListener.trapBubbledEvent(s.topWheel,"wheel",n):c("mousewheel")?v.ReactEventListener.trapBubbledEvent(s.topWheel,"mousewheel",n):v.ReactEventListener.trapBubbledEvent(s.topWheel,"DOMMouseScroll",n):d===s.topScroll?c("scroll",!0)?v.ReactEventListener.trapCapturedEvent(s.topScroll,"scroll",n):v.ReactEventListener.trapBubbledEvent(s.topScroll,"scroll",v.ReactEventListener.WINDOW_HANDLE):d===s.topFocus||d===s.topBlur?(c("focus",!0)?(v.ReactEventListener.trapCapturedEvent(s.topFocus,"focus",n),v.ReactEventListener.trapCapturedEvent(s.topBlur,"blur",n)):c("focusin")&&(v.ReactEventListener.trapBubbledEvent(s.topFocus,"focusin",n),v.ReactEventListener.trapBubbledEvent(s.topBlur,"focusout",n)),i[s.topBlur]=!0,i[s.topFocus]=!0):h.hasOwnProperty(d)&&v.ReactEventListener.trapBubbledEvent(d,h[d],n),i[d]=!0)}},trapBubbledEvent:function(e,t,n){ return v.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return v.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!d){var e=s.refreshScrollValues;v.ReactEventListener.monitorScrollValue(e),d=!0}},eventNameDispatchConfigs:i.eventNameDispatchConfigs,registrationNameModules:i.registrationNameModules,putListener:i.putListener,getListener:i.getListener,deleteListener:i.deleteListener,deleteAllListeners:i.deleteAllListeners});t.exports=v},{102:102,134:134,15:15,17:17,18:18,27:27,59:59}],31:[function(e,t,n){"use strict";var r=e(79),o=e(116),i=e(132),a=e(147),u={instantiateChildren:function(e,t,n){var r=o(e);for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=i(u,null);r[a]=s}return r},updateChildren:function(e,t,n,u){var s=o(t);if(!s&&!e)return null;var l;for(l in s)if(s.hasOwnProperty(l)){var c=e&&e[l],p=c&&c._currentElement,d=s[l];if(a(p,d))r.receiveComponent(c,d,n,u),s[l]=c;else{c&&r.unmountComponent(c,l);var f=i(d,null);s[l]=f}}for(l in e)!e.hasOwnProperty(l)||s&&s.hasOwnProperty(l)||r.unmountComponent(e[l]);return s},unmountChildren:function(e){for(var t in e){var n=e[t];r.unmountComponent(n)}}};t.exports=u},{116:116,132:132,147:147,79:79}],32:[function(e,t,n){"use strict";function r(e,t){this.forEachFunction=e,this.forEachContext=t}function o(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function i(e,t,n){if(null==e)return e;var i=r.getPooled(t,n);f(e,o,i),r.release(i)}function a(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function u(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var u=o.mapFunction.call(o.mapContext,t,r);i[n]=u}}function s(e,t,n){if(null==e)return e;var r={},o=a.getPooled(r,t,n);return f(e,u,o),a.release(o),d.create(r)}function l(e,t,n,r){return null}function c(e,t){return f(e,l,null)}var p=e(28),d=e(61),f=e(149),h=(e(150),p.twoArgumentPooler),m=p.threeArgumentPooler;p.addPoolingTo(r,h),p.addPoolingTo(a,m);var v={forEach:i,map:s,count:c};t.exports=v},{149:149,150:150,28:28,61:61}],33:[function(e,t,n){"use strict";function r(e,t){var n=D.hasOwnProperty(t)?D[t]:null;N.hasOwnProperty(t)&&y(n===_.OVERRIDE_BASE),e.hasOwnProperty(t)&&y(n===_.DEFINE_MANY||n===_.DEFINE_MANY_MERGED)}function o(e,t){if(t){y("function"!=typeof t),y(!d.isValidElement(t));var n=e.prototype;t.hasOwnProperty(b)&&M.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==b){var i=t[o];if(r(n,o),M.hasOwnProperty(o))M[o](e,i);else{var a=D.hasOwnProperty(o),l=n.hasOwnProperty(o),c=i&&i.__reactDontBind,p="function"==typeof i,f=p&&!a&&!l&&!c;if(f)n.__reactAutoBindMap||(n.__reactAutoBindMap={}),n.__reactAutoBindMap[o]=i,n[o]=i;else if(l){var h=D[o];y(a&&(h===_.DEFINE_MANY_MERGED||h===_.DEFINE_MANY)),h===_.DEFINE_MANY_MERGED?n[o]=u(n[o],i):h===_.DEFINE_MANY&&(n[o]=s(n[o],i))}else n[o]=i}}}}function i(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in M;y(!o);var i=n in e;y(!i),e[n]=r}}}function a(e,t){y(e&&t&&"object"==typeof e&&"object"==typeof t);for(var n in t)t.hasOwnProperty(n)&&(y(void 0===e[n]),e[n]=t[n]);return e}function u(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return a(o,n),a(o,r),o}}function s(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function l(e,t){var n=t.bind(e);return n}function c(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=l(e,f.guard(n,e.constructor.displayName+"."+t))}}var p=e(34),d=(e(39),e(55)),f=e(58),h=e(65),m=e(66),v=(e(75),e(74),e(84)),g=e(27),y=e(133),C=e(138),E=e(139),b=(e(150),E({mixins:null})),_=C({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),x=[],D={mixins:_.DEFINE_MANY,statics:_.DEFINE_MANY,propTypes:_.DEFINE_MANY,contextTypes:_.DEFINE_MANY,childContextTypes:_.DEFINE_MANY,getDefaultProps:_.DEFINE_MANY_MERGED,getInitialState:_.DEFINE_MANY_MERGED,getChildContext:_.DEFINE_MANY_MERGED,render:_.DEFINE_ONCE,componentWillMount:_.DEFINE_MANY,componentDidMount:_.DEFINE_MANY,componentWillReceiveProps:_.DEFINE_MANY,shouldComponentUpdate:_.DEFINE_ONCE,componentWillUpdate:_.DEFINE_MANY,componentDidUpdate:_.DEFINE_MANY,componentWillUnmount:_.DEFINE_MANY,updateComponent:_.OVERRIDE_BASE},M={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t,n)+o},_createOpenTagMarkupAndPutListeners:function(e){var t=this._currentElement.props,n="<"+this._tag;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(b.hasOwnProperty(r))o(this._rootNodeID,r,i,e);else{r===x&&(i&&(i=this._previousStyleCopy=m({},t.style)),i=u.createMarkupForStyles(i));var a=l.createMarkupForProperty(r,i);a&&(n+=" "+a)}}if(e.renderToStaticMarkup)return n+">";var s=l.createMarkupForID(this._rootNodeID);return n+" "+s+">"},_createContentMarkup:function(e,t){var n="";("listing"===this._tag||"pre"===this._tag||"textarea"===this._tag)&&(n="\n");var r=this._currentElement.props,o=r.dangerouslySetInnerHTML;if(null!=o){if(null!=o.__html)return n+o.__html}else{var i=_[typeof r.children]?r.children:null,a=null!=i?null:r.children;if(null!=i)return n+v(i);if(null!=a){var u=this.mountChildren(a,e,t);return n+u.join("")}}return n},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,n,o){r(this._currentElement.props),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e,o)},_updateDOMProperties:function(e,t){var n,r,i,a=this._currentElement.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===x){var u=this._previousStyleCopy;for(r in u)u.hasOwnProperty(r)&&(i=i||{},i[r]="");this._previousStyleCopy=null}else b.hasOwnProperty(n)?C(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&M.deletePropertyByID(this._rootNodeID,n);for(n in a){var l=a[n],c=n===x?this._previousStyleCopy:e[n];if(a.hasOwnProperty(n)&&l!==c)if(n===x)if(l?l=this._previousStyleCopy=m({},l):this._previousStyleCopy=null,c){for(r in c)!c.hasOwnProperty(r)||l&&l.hasOwnProperty(r)||(i=i||{},i[r]="");for(r in l)l.hasOwnProperty(r)&&c[r]!==l[r]&&(i=i||{},i[r]=l[r])}else i=l;else b.hasOwnProperty(n)?o(this._rootNodeID,n,l,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&M.updatePropertyByID(this._rootNodeID,n,l)}i&&M.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t,n){var r=this._currentElement.props,o=_[typeof e.children]?e.children:null,i=_[typeof r.children]?r.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,u=r.dangerouslySetInnerHTML&&r.dangerouslySetInnerHTML.__html,s=null!=o?null:e.children,l=null!=i?null:r.children,c=null!=o||null!=a,p=null!=i||null!=u;null!=s&&null==l?this.updateChildren(null,t,n):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=u?a!==u&&M.updateInnerHTMLByID(this._rootNodeID,u):null!=l&&this.updateChildren(l,t,n)},unmountComponent:function(){this.unmountChildren(),c.deleteAllListeners(this._rootNodeID),p.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null}},h.measureMethods(a,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),m(a.prototype,a.Mixin,f.Mixin),a.injection={injectIDOperations:function(e){a.BackendIDOperations=M=e}},t.exports=a},{10:10,11:11,114:114,133:133,134:134,139:139,150:150,27:27,30:30,35:35,5:5,68:68,69:69,73:73}],43:[function(e,t,n){"use strict";var r=e(15),o=e(25),i=e(29),a=e(33),u=e(55),s=u.createFactory("form"),l=a.createClass({displayName:"ReactDOMForm",tagName:"FORM",mixins:[i,o],render:function(){return s(this.props)},componentDidMount:function(){this.trapBubbledEvent(r.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(r.topLevelTypes.topSubmit,"submit")}});t.exports=l},{15:15,25:25,29:29,33:33,55:55}],44:[function(e,t,n){"use strict";var r=e(5),o=e(9),i=e(11),a=e(68),u=e(73),s=e(133),l=e(144),c={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},p={updatePropertyByID:function(e,t,n){var r=a.getNode(e);s(!c.hasOwnProperty(t)),null!=n?i.setValueForProperty(r,t,n):i.deleteValueForProperty(r,t)},deletePropertyByID:function(e,t,n){var r=a.getNode(e);s(!c.hasOwnProperty(t)),i.deleteValueForProperty(r,t,n)},updateStylesByID:function(e,t){var n=a.getNode(e);r.setValueForStyles(n,t)},updateInnerHTMLByID:function(e,t){var n=a.getNode(e);l(n,t)},updateTextContentByID:function(e,t){var n=a.getNode(e);o.updateTextContent(n,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=a.getNode(e);o.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;nl;l++){var h=s[l];if(h!==i&&h.form===i.form){var v=c.getID(h);f(v);var g=m[v];f(g),p.asap(r,g)}}}return t}});t.exports=v},{11:11,133:133,2:2,24:24,27:27,29:29,33:33,55:55,68:68,85:85}],48:[function(e,t,n){"use strict";var r=e(29),o=e(33),i=e(55),a=(e(150),i.createFactory("option")),u=o.createClass({displayName:"ReactDOMOption",tagName:"OPTION",mixins:[r],componentWillMount:function(){},render:function(){return a(this.props,this.props.children)}});t.exports=u},{150:150,29:29,33:33,55:55}],49:[function(e,t,n){"use strict";function r(){if(this._pendingUpdate){this._pendingUpdate=!1;var e=u.getValue(this);null!=e&&this.isMounted()&&i(this,e)}}function o(e,t,n){if(null==e[t])return null;if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to must be a scalar value if `multiple` is false.")}function i(e,t){var n,r,o,i=e.getDOMNode().options;if(e.props.multiple){for(n={},r=0,o=t.length;o>r;r++)n[""+t[r]]=!0;for(r=0,o=i.length;o>r;r++){var a=n.hasOwnProperty(i[r].value);i[r].selected!==a&&(i[r].selected=a)}}else{for(n=""+t,r=0,o=i.length;o>r;r++)if(i[r].value===n)return void(i[r].selected=!0);i.length&&(i[0].selected=!0)}}var a=e(2),u=e(24),s=e(29),l=e(33),c=e(55),p=e(85),d=e(27),f=c.createFactory("select"),h=l.createClass({displayName:"ReactDOMSelect",tagName:"SELECT",mixins:[a,u.Mixin,s],propTypes:{defaultValue:o,value:o},render:function(){var e=d({},this.props);return e.onChange=this._handleChange,e.value=null,f(e,this.props.children)},componentWillMount:function(){this._pendingUpdate=!1},componentDidMount:function(){var e=u.getValue(this);null!=e?i(this,e):null!=this.props.defaultValue&&i(this,this.props.defaultValue)},componentDidUpdate:function(e){var t=u.getValue(this);null!=t?(this._pendingUpdate=!1,i(this,t)):!e.multiple!=!this.props.multiple&&(null!=this.props.defaultValue?i(this,this.props.defaultValue):i(this,this.props.multiple?[]:""))},_handleChange:function(e){var t,n=u.getOnChange(this);return n&&(t=n.call(this,e)),this._pendingUpdate=!0,p.asap(r,this),t}});t.exports=h},{2:2,24:24,27:27,29:29,33:33,55:55,85:85}],50:[function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function o(e){var t=document.selection,n=t.createRange(),r=n.text.length,o=n.duplicate();o.moveToElementText(e),o.setEndPoint("EndToStart",n);var i=o.text.length,a=i+r;return{start:i,end:a}}function i(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,o=t.anchorOffset,i=t.focusNode,a=t.focusOffset,u=t.getRangeAt(0),s=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=s?0:u.toString().length,c=u.cloneRange();c.selectNodeContents(e),c.setEnd(u.startContainer,u.startOffset);var p=r(c.startContainer,c.startOffset,c.endContainer,c.endOffset),d=p?0:c.toString().length,f=d+l,h=document.createRange();h.setStart(n,o),h.setEnd(i,a);var m=h.collapsed;return{start:m?f:d,end:m?d:f}}function a(e,t){var n,r,o=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[c()].length,o=Math.min(t.start,r),i="undefined"==typeof t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=l(e,o),s=l(e,i);if(u&&s){var p=document.createRange();p.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(p),n.extend(s.node,s.offset)):(p.setEnd(s.node,s.offset),n.addRange(p))}}}var s=e(21),l=e(126),c=e(128),p=s.canUseDOM&&"selection"in document&&!("getSelection"in window),d={getOffsets:p?o:i,setOffsets:p?a:u};t.exports=d},{126:126,128:128,21:21}],51:[function(e,t,n){"use strict";var r=e(11),o=e(35),i=e(42),a=e(27),u=e(114),s=function(e){};a(s.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,t,n){this._rootNodeID=e;var o=u(this._stringText);return t.renderToStaticMarkup?o:""+o+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;n!==this._stringText&&(this._stringText=n,i.BackendIDOperations.updateTextContentByID(this._rootNodeID,n))}},unmountComponent:function(){o.unmountIDFromEnvironment(this._rootNodeID)}}),t.exports=s},{11:11,114:114,27:27,35:35,42:42}],52:[function(e,t,n){"use strict";function r(){this.isMounted()&&this.forceUpdate()}var o=e(2),i=e(11),a=e(24),u=e(29),s=e(33),l=e(55),c=e(85),p=e(27),d=e(133),f=(e(150),l.createFactory("textarea")),h=s.createClass({displayName:"ReactDOMTextarea",tagName:"TEXTAREA",mixins:[o,a.Mixin,u],getInitialState:function(){var e=this.props.defaultValue,t=this.props.children;null!=t&&(d(null==e),Array.isArray(t)&&(d(t.length<=1),t=t[0]),e=""+t),null==e&&(e="");var n=a.getValue(this);return{initialValue:""+(null!=n?n:e)}},render:function(){var e=p({},this.props);return d(null==e.dangerouslySetInnerHTML),e.defaultValue=null,e.value=null,e.onChange=this._handleChange,f(e,this.state.initialValue)},componentDidUpdate:function(e,t,n){var r=a.getValue(this);if(null!=r){var o=this.getDOMNode();i.setValueForProperty(o,"value",""+r)}},_handleChange:function(e){var t,n=a.getOnChange(this);return n&&(t=n.call(this,e)),c.asap(r,this),t}});t.exports=h},{11:11,133:133,150:150,2:2,24:24,27:27,29:29,33:33,55:55,85:85}],53:[function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=e(85),i=e(101),a=e(27),u=e(112),s={initialize:u,close:function(){d.isBatchingUpdates=!1}},l={initialize:u,close:o.flushBatchedUpdates.bind(o)},c=[l,s];a(r.prototype,i.Mixin,{getTransactionWrappers:function(){return c}});var p=new r,d={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o){var i=d.isBatchingUpdates;d.isBatchingUpdates=!0,i?e(t,n,r,o):p.perform(e,null,t,n,r,o)}};t.exports=d},{101:101,112:112,27:27,85:85}],54:[function(e,t,n){"use strict";function r(e){return h.createClass({tagName:e.toUpperCase(),render:function(){return new T(e,null,null,null,null,this.props)}})}function o(){R.EventEmitter.injectReactEventListener(P),R.EventPluginHub.injectEventPluginOrder(s),R.EventPluginHub.injectInstanceHandle(w),R.EventPluginHub.injectMount(O),R.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:L,EnterLeaveEventPlugin:l,ChangeEventPlugin:a,MobileSafariClickEventPlugin:d,SelectEventPlugin:A,BeforeInputEventPlugin:i}),R.NativeComponent.injectGenericComponentClass(g),R.NativeComponent.injectTextComponentClass(I),R.NativeComponent.injectAutoWrapper(r),R.Class.injectMixin(f),R.NativeComponent.injectComponentClasses({button:y,form:C,iframe:_,img:E,input:x,option:D,select:M,textarea:N,html:F("html"),head:F("head"),body:F("body")}),R.DOMProperty.injectDOMPropertyConfig(p),R.DOMProperty.injectDOMPropertyConfig(U),R.EmptyComponent.injectEmptyComponent("noscript"),R.Updates.injectReconcileTransaction(S),R.Updates.injectBatchingStrategy(v),R.RootIndex.injectCreateReactRootIndex(c.canUseDOM?u.createReactRootIndex:k.createReactRootIndex),R.Component.injectEnvironment(m),R.DOMComponent.injectIDOperations(b)}var i=e(3),a=e(7),u=e(8),s=e(13),l=e(14),c=e(21),p=e(23),d=e(26),f=e(29),h=e(33),m=e(35),v=e(53),g=e(42),y=e(41),C=e(43),E=e(46),b=e(44),_=e(45),x=e(47),D=e(48),M=e(49),N=e(52),I=e(51),T=e(55),P=e(60),R=e(62),w=e(64),O=e(68),S=e(78),A=e(87),k=e(88),L=e(89),U=e(86),F=e(109); t.exports={inject:o}},{109:109,13:13,14:14,21:21,23:23,26:26,29:29,3:3,33:33,35:35,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,51:51,52:52,53:53,55:55,60:60,62:62,64:64,68:68,7:7,78:78,8:8,86:86,87:87,88:88,89:89}],55:[function(e,t,n){"use strict";var r=e(38),o=e(39),i=e(27),a=(e(150),{key:!0,ref:!0}),u=function(e,t,n,r,o,i){this.type=e,this.key=t,this.ref=n,this._owner=r,this._context=o,this.props=i};u.prototype={_isReactElement:!0},u.createElement=function(e,t,n){var i,s={},l=null,c=null;if(null!=t){c=void 0===t.ref?null:t.ref,l=void 0===t.key?null:""+t.key;for(i in t)t.hasOwnProperty(i)&&!a.hasOwnProperty(i)&&(s[i]=t[i])}var p=arguments.length-2;if(1===p)s.children=n;else if(p>1){for(var d=Array(p),f=0;p>f;f++)d[f]=arguments[f+2];s.children=d}if(e&&e.defaultProps){var h=e.defaultProps;for(i in h)"undefined"==typeof s[i]&&(s[i]=h[i])}return new u(e,l,c,o.current,r.current,s)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceProps=function(e,t){var n=new u(e.type,e.key,e.ref,e._owner,e._context,t);return n},u.cloneElement=function(e,t,n){var r,s=i({},e.props),l=e.key,c=e.ref,p=e._owner;if(null!=t){void 0!==t.ref&&(c=t.ref,p=o.current),void 0!==t.key&&(l=""+t.key);for(r in t)t.hasOwnProperty(r)&&!a.hasOwnProperty(r)&&(s[r]=t[r])}var d=arguments.length-2;if(1===d)s.children=n;else if(d>1){for(var f=Array(d),h=0;d>h;h++)f[h]=arguments[h+2];s.children=f}return new u(e.type,l,c,p,e._context,s)},u.isValidElement=function(e){var t=!(!e||!e._isReactElement);return t},t.exports=u},{150:150,27:27,38:38,39:39}],56:[function(e,t,n){"use strict";function r(){if(y.current){var e=y.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function o(e){var t=e&&e.getPublicInstance();if(!t)return void 0;var n=t.constructor;return n?n.displayName||n.name||void 0:void 0}function i(){var e=y.current;return e&&o(e)||void 0}function a(e,t){e._store.validated||null!=e.key||(e._store.validated=!0,s('Each child in an array or iterator should have a unique "key" prop.',e,t))}function u(e,t,n){D.test(e)&&s("Child objects should have non-numeric keys so ordering is preserved.",t,n)}function s(e,t,n){var r=i(),a="string"==typeof n?n:n.displayName||n.name,u=r||a,s=_[e]||(_[e]={});if(!s.hasOwnProperty(u)){s[u]=!0;var l="";if(t&&t._owner&&t._owner!==y.current){var c=o(t._owner);l=" It was passed a child from "+c+"."}}}function l(e,t){if(Array.isArray(e))for(var n=0;n");var u="";o&&(u=" The element was created by "+o+".")}}function d(e,t){return e!==e?t!==t:0===e&&0===t?1/e===1/t:e===t}function f(e){if(e._store){var t=e._store.originalProps,n=e.props;for(var r in n)n.hasOwnProperty(r)&&(t.hasOwnProperty(r)&&d(t[r],n[r])||(p(r,e),t[r]=n[r]))}}function h(e){if(null!=e.type){var t=C.getComponentClassForElement(e),n=t.displayName||t.name;t.propTypes&&c(n,t.propTypes,e.props,g.prop),"function"==typeof t.getDefaultProps}}var m=e(55),v=e(61),g=e(75),y=(e(74),e(39)),C=e(71),E=e(124),b=e(133),_=(e(150),{}),x={},D=/^\d+$/,M={},N={checkAndWarnForMutatedProps:f,createElement:function(e,t,n){var r=m.createElement.apply(this,arguments);if(null==r)return r;for(var o=2;oo;o++){t=e.ancestors[o];var a=p.getID(t)||"";v._handleTopLevel(e.topLevelType,t,a,e.nativeEvent)}}function a(e){var t=m(window);e(t)}var u=e(16),s=e(21),l=e(28),c=e(64),p=e(68),d=e(85),f=e(27),h=e(123),m=e(129);f(o.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(o,l.twoArgumentPooler);var v={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:s.canUseDOM?window:null,setHandleTopLevel:function(e){v._handleTopLevel=e},setEnabled:function(e){v._enabled=!!e},isEnabled:function(){return v._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?u.listen(r,t,v.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?u.capture(r,t,v.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=a.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(v._enabled){var n=o.getPooled(e,t);try{d.batchedUpdates(i,n)}finally{o.release(n)}}}};t.exports=v},{123:123,129:129,16:16,21:21,27:27,28:28,64:64,68:68,85:85}],61:[function(e,t,n){"use strict";var r=(e(55),e(150),{create:function(e){return e},extract:function(e){return e},extractIfFragment:function(e){return e}});t.exports=r},{150:150,55:55}],62:[function(e,t,n){"use strict";var r=e(10),o=e(17),i=e(36),a=e(33),u=e(57),s=e(30),l=e(71),c=e(42),p=e(73),d=e(81),f=e(85),h={Component:i.injection,Class:a.injection,DOMComponent:c.injection,DOMProperty:r.injection,EmptyComponent:u.injection,EventPluginHub:o.injection,EventEmitter:s.injection,NativeComponent:l.injection,Perf:p.injection,RootIndex:d.injection,Updates:f.injection};t.exports=h},{10:10,17:17,30:30,33:33,36:36,42:42,57:57,71:71,73:73,81:81,85:85}],63:[function(e,t,n){"use strict";function r(e){return i(document.documentElement,e)}var o=e(50),i=e(107),a=e(117),u=e(119),s={hasSelectionCapabilities:function(e){return e&&("INPUT"===e.nodeName&&"text"===e.type||"TEXTAREA"===e.nodeName||"true"===e.contentEditable)},getSelectionInformation:function(){var e=u();return{focusedElem:e,selectionRange:s.hasSelectionCapabilities(e)?s.getSelection(e):null}},restoreSelection:function(e){var t=u(),n=e.focusedElem,o=e.selectionRange;t!==n&&r(n)&&(s.hasSelectionCapabilities(n)&&s.setSelection(n,o),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&"INPUT"===e.nodeName){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=o.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&"INPUT"===e.nodeName){var i=e.createTextRange();i.collapse(!0),i.moveStart("character",n),i.moveEnd("character",r-n),i.select()}else o.setOffsets(e,t)}};t.exports=s},{107:107,117:117,119:119,50:50}],64:[function(e,t,n){"use strict";function r(e){return f+e.toString(36)}function o(e,t){return e.charAt(t)===f||t===e.length}function i(e){return""===e||e.charAt(0)===f&&e.charAt(e.length-1)!==f}function a(e,t){return 0===t.indexOf(e)&&o(t,e.length)}function u(e){return e?e.substr(0,e.lastIndexOf(f)):""}function s(e,t){if(d(i(e)&&i(t)),d(a(e,t)),e===t)return e;var n,r=e.length+h;for(n=r;n=a;a++)if(o(e,a)&&o(t,a))r=a;else if(e.charAt(a)!==t.charAt(a))break;var u=e.substr(0,r);return d(i(u)),u}function c(e,t,n,r,o,i){e=e||"",t=t||"",d(e!==t);var l=a(t,e);d(l||a(e,t));for(var c=0,p=l?u:s,f=e;;f=p(f,t)){var h;if(o&&f===e||i&&f===t||(h=n(f,l,r)),h===!1||f===t)break;d(c++1){var t=e.indexOf(f,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,o){var i=l(e,t);i!==e&&c(e,i,n,r,!1,!0),i!==t&&c(i,t,n,o,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(c("",e,t,n,!0,!1),c(e,"",t,n,!1,!0))},traverseAncestors:function(e,t,n){c("",e,t,n,!0,!1)},_getFirstCommonAncestorID:l,_getNextDescendantID:s,isAncestorIDOf:a,SEPARATOR:f};t.exports=v},{133:133,81:81}],65:[function(e,t,n){"use strict";var r={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};t.exports=r},{}],66:[function(e,t,n){"use strict";var r={currentlyMountingInstance:null,currentlyUnmountingInstance:null};t.exports=r},{}],67:[function(e,t,n){"use strict";var r=e(104),o={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(">"," "+o.CHECKSUM_ATTR_NAME+'="'+t+'">')},canReuseMarkup:function(e,t){var n=t.getAttribute(o.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};t.exports=o},{104:104}],68:[function(e,t,n){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function o(e){var t=P(e);return t&&K.getID(t)}function i(e){var t=a(e);if(t)if(L.hasOwnProperty(t)){var n=L[t];n!==e&&(w(!c(n,t)),L[t]=e)}else L[t]=e;return t}function a(e){return e&&e.getAttribute&&e.getAttribute(k)||""}function u(e,t){var n=a(e);n!==t&&delete L[n],e.setAttribute(k,t),L[t]=e}function s(e){return L.hasOwnProperty(e)&&c(L[e],e)||(L[e]=K.findReactNodeByID(e)),L[e]}function l(e){var t=b.get(e)._rootNodeID;return C.isNullComponentID(t)?null:(L.hasOwnProperty(t)&&c(L[t],t)||(L[t]=K.findReactNodeByID(t)),L[t])}function c(e,t){if(e){w(a(e)===t);var n=K.findReactContainerForID(t);if(n&&T(n,e))return!0}return!1}function p(e){delete L[e]}function d(e){var t=L[e];return t&&c(t,e)?void(W=t):!1}function f(e){W=null,E.traverseAncestors(e,d);var t=W;return W=null,t}function h(e,t,n,r,o){var i=D.mountComponent(e,t,r,I);e._isTopLevel=!0,K._mountImageIntoNode(i,n,o)}function m(e,t,n,r){var o=N.ReactReconcileTransaction.getPooled();o.perform(h,null,e,t,n,o,r),N.ReactReconcileTransaction.release(o)}var v=e(10),g=e(30),y=(e(39),e(55)),C=(e(56),e(57)),E=e(64),b=e(65),_=e(67),x=e(73),D=e(79),M=e(84),N=e(85),I=e(113),T=e(107),P=e(127),R=e(132),w=e(133),O=e(144),S=e(147),A=(e(150),E.SEPARATOR),k=v.ID_ATTRIBUTE_NAME,L={},U=1,F=9,B={},V={},j=[],W=null,K={_instancesByReactRootID:B,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,t,n,r){return K.scrollMonitor(n,function(){M.enqueueElementInternal(e,t),r&&M.enqueueCallbackInternal(e,r)}),e},_registerComponent:function(e,t){w(t&&(t.nodeType===U||t.nodeType===F)),g.ensureScrollValueMonitoring();var n=K.registerContainer(t);return B[n]=e,n},_renderNewRootComponent:function(e,t,n){var r=R(e,null),o=K._registerComponent(r,t);return N.batchedUpdates(m,r,o,t,n),r},render:function(e,t,n){w(y.isValidElement(e));var r=B[o(t)];if(r){var i=r._currentElement;if(S(i,e))return K._updateRootComponent(r,e,t,n).getPublicInstance();K.unmountComponentAtNode(t)}var a=P(t),u=a&&K.isRenderedByReact(a),s=u&&!r,l=K._renderNewRootComponent(e,t,s).getPublicInstance();return n&&n.call(l),l},constructAndRenderComponent:function(e,t,n){var r=y.createElement(e,t);return K.render(r,n)},constructAndRenderComponentByID:function(e,t,n){var r=document.getElementById(n);return w(r),K.constructAndRenderComponent(e,t,r)},registerContainer:function(e){var t=o(e);return t&&(t=E.getReactRootIDFromNodeID(t)),t||(t=E.createReactRootID()),V[t]=e,t},unmountComponentAtNode:function(e){w(e&&(e.nodeType===U||e.nodeType===F));var t=o(e),n=B[t];return n?(K.unmountComponentFromNode(n,e),delete B[t],delete V[t],!0):!1},unmountComponentFromNode:function(e,t){for(D.unmountComponent(e),t.nodeType===F&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)},findReactContainerForID:function(e){var t=E.getReactRootIDFromNodeID(e),n=V[t];return n},findReactNodeByID:function(e){var t=K.findReactContainerForID(e);return K.findComponentRoot(t,e)},isRenderedByReact:function(e){if(1!==e.nodeType)return!1;var t=K.getID(e);return t?t.charAt(0)===A:!1},getFirstReactDOM:function(e){for(var t=e;t&&t.parentNode!==t;){if(K.isRenderedByReact(t))return t;t=t.parentNode}return null},findComponentRoot:function(e,t){var n=j,r=0,o=f(t)||e;for(n[0]=o.firstChild,n.length=1;r>",_=u(),x=d(),D={array:o("array"),bool:o("boolean"),func:o("function"),number:o("number"),object:o("object"),string:o("string"),any:i(),arrayOf:a,element:_,instanceOf:s,node:x,objectOf:c,oneOf:l,oneOfType:p,shape:f};t.exports=D},{112:112,55:55,61:61,74:74}],77:[function(e,t,n){"use strict";function r(){this.listenersToPut=[]}var o=e(28),i=e(30),a=e(27);a(r.prototype,{enqueuePutListener:function(e,t,n){this.listenersToPut.push({rootNodeID:e,propKey:t,propValue:n})},putListeners:function(){for(var e=0;en;n++){var r=g[n],o=r._pendingCallbacks;if(r._pendingCallbacks=null,f.performUpdateIfNecessary(r,e.reconcileTransaction),o)for(var i=0;i":">","<":"<",'"':""","'":"'"},a=/[&><"']/g;t.exports=o},{}],115:[function(e,t,n){"use strict";function r(e){return null==e?null:u(e)?e:o.has(e)?i.getNodeFromInstance(e):(a(null==e.render||"function"!=typeof e.render),void a(!1))}{var o=(e(39),e(65)),i=e(68),a=e(133),u=e(135);e(150)}t.exports=r},{133:133,135:135,150:150,39:39,65:65,68:68}],116:[function(e,t,n){"use strict";function r(e,t,n){var r=e,o=!r.hasOwnProperty(n);o&&null!=t&&(r[n]=t)}function o(e){if(null==e)return e;var t={};return i(e,r,t),t}{var i=e(149);e(150)}t.exports=o},{149:149,150:150}],117:[function(e,t,n){"use strict";function r(e){try{e.focus()}catch(t){}}t.exports=r},{}],118:[function(e,t,n){"use strict";var r=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};t.exports=r},{}],119:[function(e,t,n){function r(){try{return document.activeElement||document.body}catch(e){return document.body}}t.exports=r},{}],120:[function(e,t,n){"use strict";function r(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}t.exports=r},{}],121:[function(e,t,n){"use strict";function r(e){if(e.key){var t=i[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=o(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var o=e(120),i={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};t.exports=r},{120:120}],122:[function(e,t,n){"use strict";function r(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var r=i[e];return r?!!n[r]:!1}function o(e){return r}var i={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};t.exports=o},{}],123:[function(e,t,n){"use strict";function r(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}t.exports=r},{}],124:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);return"function"==typeof t?t:void 0}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],125:[function(e,t,n){function r(e){return i(!!a),d.hasOwnProperty(e)||(e="*"),u.hasOwnProperty(e)||("*"===e?a.innerHTML="":a.innerHTML="<"+e+">",u[e]=!a.firstChild),u[e]?d[e]:null}var o=e(21),i=e(133),a=o.canUseDOM?document.createElement("div"):null,u={circle:!0,clipPath:!0,defs:!0,ellipse:!0,g:!0,line:!0,linearGradient:!0,path:!0,polygon:!0,polyline:!0,radialGradient:!0,rect:!0,stop:!0,text:!0},s=[1,'"],l=[1,"","
"],c=[3,"","
"],p=[1,"",""],d={"*":[1,"?

","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:l,colgroup:l,tbody:l,tfoot:l,thead:l,td:c,th:c,circle:p,clipPath:p,defs:p,ellipse:p,g:p,line:p,linearGradient:p,path:p,polygon:p,polyline:p,radialGradient:p,rect:p,stop:p,text:p};t.exports=r},{133:133,21:21}],126:[function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function i(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,t>=i&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}t.exports=i},{}],127:[function(e,t,n){"use strict";function r(e){return e?e.nodeType===o?e.documentElement:e.firstChild:null}var o=9;t.exports=r},{}],128:[function(e,t,n){"use strict";function r(){return!i&&o.canUseDOM&&(i="textContent"in document.documentElement?"textContent":"innerText"),i}var o=e(21),i=null;t.exports=r},{21:21}],129:[function(e,t,n){"use strict";function r(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}t.exports=r},{}],130:[function(e,t,n){function r(e){return e.replace(o,"-$1").toLowerCase()}var o=/([A-Z])/g;t.exports=r},{}],131:[function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=e(130),i=/^ms-/;t.exports=r},{130:130}],132:[function(e,t,n){"use strict";function r(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e,t){var n;if((null===e||e===!1)&&(e=a.emptyElement),"object"==typeof e){var o=e;n=t===o.type&&"string"==typeof o.type?u.createInternalComponent(o):r(o.type)?new o.type(o):new c}else"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):l(!1);return n.construct(e),n._mountIndex=0,n._mountImage=null,n}var i=e(37),a=e(57),u=e(71),s=e(27),l=e(133),c=(e(150),function(){});s(c.prototype,i.Mixin,{_instantiateReactComponent:o}),t.exports=o},{133:133,150:150,27:27,37:37,57:57,71:71}],133:[function(e,t,n){"use strict";var r=function(e,t,n,r,o,i,a,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,r,o,i,a,u],c=0;s=new Error("Invariant Violation: "+t.replace(/%s/g,function(){return l[c++]}))}throw s.framesToPop=1,s}};t.exports=r},{}],134:[function(e,t,n){"use strict";function r(e,t){if(!i.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&o&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var o,i=e(21);i.canUseDOM&&(o=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),t.exports=r},{21:21}],135:[function(e,t,n){function r(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}t.exports=r},{}],136:[function(e,t,n){"use strict";function r(e){return e&&("INPUT"===e.nodeName&&o[e.type]||"TEXTAREA"===e.nodeName)}var o={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};t.exports=r},{}],137:[function(e,t,n){function r(e){return o(e)&&3==e.nodeType}var o=e(135);t.exports=r},{135:135}],138:[function(e,t,n){"use strict";var r=e(133),o=function(e){var t,n={};r(e instanceof Object&&!Array.isArray(e));for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};t.exports=o},{133:133}],139:[function(e,t,n){var r=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};t.exports=r},{}],140:[function(e,t,n){"use strict";function r(e,t,n){if(!e)return null;var r={};for(var i in e)o.call(e,i)&&(r[i]=t.call(n,e[i],i,e));return r}var o=Object.prototype.hasOwnProperty;t.exports=r},{}],141:[function(e,t,n){"use strict";function r(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}t.exports=r},{}],142:[function(e,t,n){"use strict";function r(e){return i(o.isValidElement(e)),e}var o=e(55),i=e(133);t.exports=r},{133:133,55:55}],143:[function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=e(114);t.exports=r},{114:114}],144:[function(e,t,n){"use strict";var r=e(21),o=/^[ \r\n\t\f]/,i=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(a=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var u=document.createElement("div");u.innerHTML=" ",""===u.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),o.test(t)||"<"===t[0]&&i.test(t)){e.innerHTML="\ufeff"+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}t.exports=a},{21:21}],145:[function(e,t,n){"use strict";var r=e(21),o=e(114),i=e(144),a=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){i(e,o(t))})),t.exports=a},{114:114,144:144,21:21}],146:[function(e,t,n){"use strict";function r(e,t){if(e===t)return!0;var n;for(n in e)if(e.hasOwnProperty(n)&&(!t.hasOwnProperty(n)||e[n]!==t[n]))return!1;for(n in t)if(t.hasOwnProperty(n)&&!e.hasOwnProperty(n))return!1;return!0}t.exports=r},{}],147:[function(e,t,n){"use strict";function r(e,t){if(null!=e&&null!=t){var n=typeof e,r=typeof t;if("string"===n||"number"===n)return"string"===r||"number"===r;if("object"===r&&e.type===t.type&&e.key===t.key){var o=e._owner===t._owner;return o}}return!1}e(150);t.exports=r},{150:150}],148:[function(e,t,n){function r(e){var t=e.length;if(o(!Array.isArray(e)&&("object"==typeof e||"function"==typeof e)),o("number"==typeof t),o(0===t||t-1 in e),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(n){}for(var r=Array(t),i=0;t>i;i++)r[i]=e[i];return r}var o=e(133);t.exports=r},{133:133}],149:[function(e,t,n){"use strict";function r(e){return v[e]}function o(e,t){return e&&null!=e.key?a(e.key):t.toString(36)}function i(e){return(""+e).replace(g,r)}function a(e){return"$"+i(e)}function u(e,t,n,r,i){var s=typeof e;if(("undefined"===s||"boolean"===s)&&(e=null),null===e||"string"===s||"number"===s||l.isValidElement(e))return r(i,e,""===t?h+o(e,0):t,n),1;var p,v,g,y=0;if(Array.isArray(e))for(var C=0;C -1) { if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') { console.debug( 'Download the React DevTools for a better development experience: ' + 'https://fb.me/react-devtools' ); } } var expectedFeatures = [ // shims Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.split, String.prototype.trim, // shams Object.create, Object.freeze ]; for (var i = 0; i < expectedFeatures.length; i++) { if (!expectedFeatures[i]) { console.error( 'One or more ES5 shim/shams expected by React are not available: ' + 'https://fb.me/react-warning-polyfills' ); break; } } } } React.version = '0.13.3'; module.exports = React; },{"117":117,"144":144,"19":19,"21":21,"27":27,"32":32,"33":33,"34":34,"38":38,"39":39,"40":40,"51":51,"54":54,"57":57,"58":58,"66":66,"70":70,"75":75,"78":78,"81":81,"84":84}],2:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule AutoFocusMixin * @typechecks static-only */ 'use strict'; var focusNode = _dereq_(119); var AutoFocusMixin = { componentDidMount: function() { if (this.props.autoFocus) { focusNode(this.getDOMNode()); } } }; module.exports = AutoFocusMixin; },{"119":119}],3:[function(_dereq_,module,exports){ /** * Copyright 2013-2015 Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule BeforeInputEventPlugin * @typechecks static-only */ 'use strict'; var EventConstants = _dereq_(15); var EventPropagators = _dereq_(20); var ExecutionEnvironment = _dereq_(21); var FallbackCompositionState = _dereq_(22); var SyntheticCompositionEvent = _dereq_(93); var SyntheticInputEvent = _dereq_(97); var keyOf = _dereq_(141); var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space var START_KEYCODE = 229; var canUseCompositionEvent = ( ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window ); var documentMode = null; if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) { documentMode = document.documentMode; } // Webkit offers a very useful `textInput` event that can be used to // directly represent `beforeInput`. The IE `textinput` event is not as // useful, so we don't use it. var canUseTextInputEvent = ( ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto() ); // In IE9+, we have access to composition events, but the data supplied // by the native compositionend event may be incorrect. Japanese ideographic // spaces, for instance (\u3000) are not recorded correctly. var useFallbackCompositionData = ( ExecutionEnvironment.canUseDOM && ( (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11) ) ); /** * Opera <= 12 includes TextEvent in window, but does not fire * text input events. Rely on keypress instead. */ function isPresto() { var opera = window.opera; return ( typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12 ); } var SPACEBAR_CODE = 32; var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE); var topLevelTypes = EventConstants.topLevelTypes; // Events and their corresponding property names. var eventTypes = { beforeInput: { phasedRegistrationNames: { bubbled: keyOf({onBeforeInput: null}), captured: keyOf({onBeforeInputCapture: null}) }, dependencies: [ topLevelTypes.topCompositionEnd, topLevelTypes.topKeyPress, topLevelTypes.topTextInput, topLevelTypes.topPaste ] }, compositionEnd: { phasedRegistrationNames: { bubbled: keyOf({onCompositionEnd: null}), captured: keyOf({onCompositionEndCapture: null}) }, dependencies: [ topLevelTypes.topBlur, topLevelTypes.topCompositionEnd, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown ] }, compositionStart: { phasedRegistrationNames: { bubbled: keyOf({onCompositionStart: null}), captured: keyOf({onCompositionStartCapture: null}) }, dependencies: [ topLevelTypes.topBlur, topLevelTypes.topCompositionStart, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown ] }, compositionUpdate: { phasedRegistrationNames: { bubbled: keyOf({onCompositionUpdate: null}), captured: keyOf({onCompositionUpdateCapture: null}) }, dependencies: [ topLevelTypes.topBlur, topLevelTypes.topCompositionUpdate, topLevelTypes.topKeyDown, topLevelTypes.topKeyPress, topLevelTypes.topKeyUp, topLevelTypes.topMouseDown ] } }; // Track whether we've ever handled a keypress on the space key. var hasSpaceKeypress = false; /** * Return whether a native keypress event is assumed to be a command. * This is required because Firefox fires `keypress` events for key commands * (cut, copy, select-all, etc.) even though no character is inserted. */ function isKeypressCommand(nativeEvent) { return ( (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command. !(nativeEvent.ctrlKey && nativeEvent.altKey) ); } /** * Translate native top level events into event types. * * @param {string} topLevelType * @return {object} */ function getCompositionEventType(topLevelType) { switch (topLevelType) { case topLevelTypes.topCompositionStart: return eventTypes.compositionStart; case topLevelTypes.topCompositionEnd: return eventTypes.compositionEnd; case topLevelTypes.topCompositionUpdate: return eventTypes.compositionUpdate; } } /** * Does our fallback best-guess model think this event signifies that * composition has begun? * * @param {string} topLevelType * @param {object} nativeEvent * @return {boolean} */ function isFallbackCompositionStart(topLevelType, nativeEvent) { return ( topLevelType === topLevelTypes.topKeyDown && nativeEvent.keyCode === START_KEYCODE ); } /** * Does our fallback mode think that this event is the end of composition? * * @param {string} topLevelType * @param {object} nativeEvent * @return {boolean} */ function isFallbackCompositionEnd(topLevelType, nativeEvent) { switch (topLevelType) { case topLevelTypes.topKeyUp: // Command keys insert or clear IME input. return (END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1); case topLevelTypes.topKeyDown: // Expect IME keyCode on each keydown. If we get any other // code we must have exited earlier. return (nativeEvent.keyCode !== START_KEYCODE); case topLevelTypes.topKeyPress: case topLevelTypes.topMouseDown: case topLevelTypes.topBlur: // Events are not possible without cancelling IME. return true; default: return false; } } /** * Google Input Tools provides composition data via a CustomEvent, * with the `data` property populated in the `detail` object. If this * is available on the event object, use it. If not, this is a plain * composition event and we have nothing special to extract. * * @param {object} nativeEvent * @return {?string} */ function getDataFromCustomEvent(nativeEvent) { var detail = nativeEvent.detail; if (typeof detail === 'object' && 'data' in detail) { return detail.data; } return null; } // Track the current IME composition fallback object, if any. var currentComposition = null; /** * @param {string} topLevelType Record from `EventConstants`. * @param {DOMEventTarget} topLevelTarget The listening component root node. * @param {string} topLevelTargetID ID of `topLevelTarget`. * @param {object} nativeEvent Native browser event. * @return {?object} A SyntheticCompositionEvent. */ function extractCompositionEvent( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent ) { var eventType; var fallbackData; if (canUseCompositionEvent) { eventType = getCompositionEventType(topLevelType); } else if (!currentComposition) { if (isFallbackCompositionStart(topLevelType, nativeEvent)) { eventType = eventTypes.compositionStart; } } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) { eventType = eventTypes.compositionEnd; } if (!eventType) { return null; } if (useFallbackCompositionData) { // The current composition is stored statically and must not be // overwritten while composition continues. if (!currentComposition && eventType === eventTypes.compositionStart) { currentComposition = FallbackCompositionState.getPooled(topLevelTarget); } else if (eventType === eventTypes.compositionEnd) { if (currentComposition) { fallbackData = currentComposition.getData(); } } } var event = SyntheticCompositionEvent.getPooled( eventType, topLevelTargetID, nativeEvent ); if (fallbackData) { // Inject data generated from fallback path into the synthetic event. // This matches the property of native CompositionEventInterface. event.data = fallbackData; } else { var customData = getDataFromCustomEvent(nativeEvent); if (customData !== null) { event.data = customData; } } EventPropagators.accumulateTwoPhaseDispatches(event); return event; } /** * @param {string} topLevelType Record from `EventConstants`. * @param {object} nativeEvent Native browser event. * @return {?string} The string corresponding to this `beforeInput` event. */ function getNativeBeforeInputChars(topLevelType, nativeEvent) { switch (topLevelType) { case topLevelTypes.topCompositionEnd: return getDataFromCustomEvent(nativeEvent); case topLevelTypes.topKeyPress: /** * If native `textInput` events are available, our goal is to make * use of them. However, there is a special case: the spacebar key. * In Webkit, preventing default on a spacebar `textInput` event * cancels character insertion, but it *also* causes the browser * to fall back to its default spacebar behavior of scrolling the * page. * * Tracking at: * https://code.google.com/p/chromium/issues/detail?id=355103 * * To avoid this issue, use the keypress event as if no `textInput` * event is available. */ var which = nativeEvent.which; if (which !== SPACEBAR_CODE) { return null; } hasSpaceKeypress = true; return SPACEBAR_CHAR; case topLevelTypes.topTextInput: // Record the characters to be added to the DOM. var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled // it at the keypress level and bail immediately. Android Chrome // doesn't give us keycodes, so we need to blacklist it. if (chars === SPACEBAR_CHAR && hasSpaceKeypress) { return null; } return chars; default: // For other native event types, do nothing. return null; } } /** * For browsers that do not provide the `textInput` event, extract the * appropriate string to use for SyntheticInputEvent. * * @param {string} topLevelType Record from `EventConstants`. * @param {object} nativeEvent Native browser event. * @return {?string} The fallback string for this `beforeInput` event. */ function getFallbackBeforeInputChars(topLevelType, nativeEvent) { // If we are currently composing (IME) and using a fallback to do so, // try to extract the composed characters from the fallback object. if (currentComposition) { if ( topLevelType === topLevelTypes.topCompositionEnd || isFallbackCompositionEnd(topLevelType, nativeEvent) ) { var chars = currentComposition.getData(); FallbackCompositionState.release(currentComposition); currentComposition = null; return chars; } return null; } switch (topLevelType) { case topLevelTypes.topPaste: // If a paste event occurs after a keypress, throw out the input // chars. Paste events should not lead to BeforeInput events. return null; case topLevelTypes.topKeyPress: /** * As of v27, Firefox may fire keypress events even when no character * will be inserted. A few possibilities: * * - `which` is `0`. Arrow keys, Esc key, etc. * * - `which` is the pressed key code, but no char is available. * Ex: 'AltGr + d` in Polish. There is no modified character for * this key combination and no character is inserted into the * document, but FF fires the keypress for char code `100` anyway. * No `input` event will occur. * * - `which` is the pressed key code, but a command combination is * being used. Ex: `Cmd+C`. No character is inserted, and no * `input` event will occur. */ if (nativeEvent.which && !isKeypressCommand(nativeEvent)) { return String.fromCharCode(nativeEvent.which); } return null; case topLevelTypes.topCompositionEnd: return useFallbackCompositionData ? null : nativeEvent.data; default: return null; } } /** * Extract a SyntheticInputEvent for `beforeInput`, based on either native * `textInput` or fallback behavior. * * @param {string} topLevelType Record from `EventConstants`. * @param {DOMEventTarget} topLevelTarget The listening component root node. * @param {string} topLevelTargetID ID of `topLevelTarget`. * @param {object} nativeEvent Native browser event. * @return {?object} A SyntheticInputEvent. */ function extractBeforeInputEvent( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent ) { var chars; if (canUseTextInputEvent) { chars = getNativeBeforeInputChars(topLevelType, nativeEvent); } else { chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); } // If no characters are being inserted, no BeforeInput event should // be fired. if (!chars) { return null; } var event = SyntheticInputEvent.getPooled( eventTypes.beforeInput, topLevelTargetID, nativeEvent ); event.data = chars; EventPropagators.accumulateTwoPhaseDispatches(event); return event; } /** * Create an `onBeforeInput` event to match * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. * * This event plugin is based on the native `textInput` event * available in Chrome, Safari, Opera, and IE. This event fires after * `onKeyPress` and `onCompositionEnd`, but before `onInput`. * * `beforeInput` is spec'd but not implemented in any browsers, and * the `input` event does not provide any useful information about what has * actually been added, contrary to the spec. Thus, `textInput` is the best * available event to identify the characters that have actually been inserted * into the target node. * * This plugin is also responsible for emitting `composition` events, thus * allowing us to share composition fallback code for both `beforeInput` and * `composition` event types. */ var BeforeInputEventPlugin = { eventTypes: eventTypes, /** * @param {string} topLevelType Record from `EventConstants`. * @param {DOMEventTarget} topLevelTarget The listening component root node. * @param {string} topLevelTargetID ID of `topLevelTarget`. * @param {object} nativeEvent Native browser event. * @return {*} An accumulation of synthetic events. * @see {EventPluginHub.extractEvents} */ extractEvents: function( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent ) { return [ extractCompositionEvent( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent ), extractBeforeInputEvent( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent ) ]; } }; module.exports = BeforeInputEventPlugin; },{"141":141,"15":15,"20":20,"21":21,"22":22,"93":93,"97":97}],4:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule CSSProperty */ 'use strict'; /** * CSS properties which accept numbers but are not in units of "px". */ var isUnitlessNumber = { boxFlex: true, boxFlexGroup: true, columnCount: true, flex: true, flexGrow: true, flexPositive: true, flexShrink: true, flexNegative: true, fontWeight: true, lineClamp: true, lineHeight: true, opacity: true, order: true, orphans: true, widows: true, zIndex: true, zoom: true, // SVG-related properties fillOpacity: true, strokeDashoffset: true, strokeOpacity: true, strokeWidth: true }; /** * @param {string} prefix vendor-specific prefix, eg: Webkit * @param {string} key style name, eg: transitionDuration * @return {string} style name prefixed with `prefix`, properly camelCased, eg: * WebkitTransitionDuration */ function prefixKey(prefix, key) { return prefix + key.charAt(0).toUpperCase() + key.substring(1); } /** * Support style names that may come passed in prefixed by adding permutations * of vendor prefixes. */ var prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an // infinite loop, because it iterates over the newly added props too. Object.keys(isUnitlessNumber).forEach(function(prop) { prefixes.forEach(function(prefix) { isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop]; }); }); /** * Most style properties can be unset by doing .style[prop] = '' but IE8 * doesn't like doing that with shorthand properties so for the properties that * IE8 breaks on, which are listed here, we instead unset each of the * individual properties. See http://bugs.jquery.com/ticket/12385. * The 4-value 'clock' properties like margin, padding, border-width seem to * behave without any problems. Curiously, list-style works too without any * special prodding. */ var shorthandPropertyExpansions = { background: { backgroundImage: true, backgroundPosition: true, backgroundRepeat: true, backgroundColor: true }, border: { borderWidth: true, borderStyle: true, borderColor: true }, borderBottom: { borderBottomWidth: true, borderBottomStyle: true, borderBottomColor: true }, borderLeft: { borderLeftWidth: true, borderLeftStyle: true, borderLeftColor: true }, borderRight: { borderRightWidth: true, borderRightStyle: true, borderRightColor: true }, borderTop: { borderTopWidth: true, borderTopStyle: true, borderTopColor: true }, font: { fontStyle: true, fontVariant: true, fontWeight: true, fontSize: true, lineHeight: true, fontFamily: true } }; var CSSProperty = { isUnitlessNumber: isUnitlessNumber, shorthandPropertyExpansions: shorthandPropertyExpansions }; module.exports = CSSProperty; },{}],5:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule CSSPropertyOperations * @typechecks static-only */ 'use strict'; var CSSProperty = _dereq_(4); var ExecutionEnvironment = _dereq_(21); var camelizeStyleName = _dereq_(108); var dangerousStyleValue = _dereq_(113); var hyphenateStyleName = _dereq_(133); var memoizeStringOnly = _dereq_(143); var warning = _dereq_(154); var processStyleName = memoizeStringOnly(function(styleName) { return hyphenateStyleName(styleName); }); var styleFloatAccessor = 'cssFloat'; if (ExecutionEnvironment.canUseDOM) { // IE8 only supports accessing cssFloat (standard) as styleFloat if (document.documentElement.style.cssFloat === undefined) { styleFloatAccessor = 'styleFloat'; } } if ("production" !== "development") { // 'msTransform' is correct, but the other prefixes should be capitalized var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/; // style values shouldn't contain a semicolon var badStyleValueWithSemicolonPattern = /;\s*$/; var warnedStyleNames = {}; var warnedStyleValues = {}; var warnHyphenatedStyleName = function(name) { if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { return; } warnedStyleNames[name] = true; ("production" !== "development" ? warning( false, 'Unsupported style property %s. Did you mean %s?', name, camelizeStyleName(name) ) : null); }; var warnBadVendoredStyleName = function(name) { if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) { return; } warnedStyleNames[name] = true; ("production" !== "development" ? warning( false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1) ) : null); }; var warnStyleValueWithSemicolon = function(name, value) { if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) { return; } warnedStyleValues[value] = true; ("production" !== "development" ? warning( false, 'Style property values shouldn\'t contain a semicolon. ' + 'Try "%s: %s" instead.', name, value.replace(badStyleValueWithSemicolonPattern, '') ) : null); }; /** * @param {string} name * @param {*} value */ var warnValidStyle = function(name, value) { if (name.indexOf('-') > -1) { warnHyphenatedStyleName(name); } else if (badVendoredStyleNamePattern.test(name)) { warnBadVendoredStyleName(name); } else if (badStyleValueWithSemicolonPattern.test(value)) { warnStyleValueWithSemicolon(name, value); } }; } /** * Operations for dealing with CSS properties. */ var CSSPropertyOperations = { /** * Serializes a mapping of style properties for use as inline styles: * * > createMarkupForStyles({width: '200px', height: 0}) * "width:200px;height:0;" * * Undefined values are ignored so that declarative programming is easier. * The result should be HTML-escaped before insertion into the DOM. * * @param {object} styles * @return {?string} */ createMarkupForStyles: function(styles) { var serialized = ''; for (var styleName in styles) { if (!styles.hasOwnProperty(styleName)) { continue; } var styleValue = styles[styleName]; if ("production" !== "development") { warnValidStyle(styleName, styleValue); } if (styleValue != null) { serialized += processStyleName(styleName) + ':'; serialized += dangerousStyleValue(styleName, styleValue) + ';'; } } return serialized || null; }, /** * Sets the value for multiple styles on a node. If a value is specified as * '' (empty string), the corresponding style property will be unset. * * @param {DOMElement} node * @param {object} styles */ setValueForStyles: function(node, styles) { var style = node.style; for (var styleName in styles) { if (!styles.hasOwnProperty(styleName)) { continue; } if ("production" !== "development") { warnValidStyle(styleName, styles[styleName]); } var styleValue = dangerousStyleValue(styleName, styles[styleName]); if (styleName === 'float') { styleName = styleFloatAccessor; } if (styleValue) { style[styleName] = styleValue; } else { var expansion = CSSProperty.shorthandPropertyExpansions[styleName]; if (expansion) { // Shorthand property that IE8 won't like unsetting, so unset each // component to placate it for (var individualStyleName in expansion) { style[individualStyleName] = ''; } } else { style[styleName] = ''; } } } } }; module.exports = CSSPropertyOperations; },{"108":108,"113":113,"133":133,"143":143,"154":154,"21":21,"4":4}],6:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule CallbackQueue */ 'use strict'; var PooledClass = _dereq_(28); var assign = _dereq_(27); var invariant = _dereq_(135); /** * A specialized pseudo-event module to help keep track of components waiting to * be notified when their DOM representations are available for use. * * This implements `PooledClass`, so you should never need to instantiate this. * Instead, use `CallbackQueue.getPooled()`. * * @class ReactMountReady * @implements PooledClass * @internal */ function CallbackQueue() { this._callbacks = null; this._contexts = null; } assign(CallbackQueue.prototype, { /** * Enqueues a callback to be invoked when `notifyAll` is invoked. * * @param {function} callback Invoked when `notifyAll` is invoked. * @param {?object} context Context to call `callback` with. * @internal */ enqueue: function(callback, context) { this._callbacks = this._callbacks || []; this._contexts = this._contexts || []; this._callbacks.push(callback); this._contexts.push(context); }, /** * Invokes all enqueued callbacks and clears the queue. This is invoked after * the DOM representation of a component has been created or updated. * * @internal */ notifyAll: function() { var callbacks = this._callbacks; var contexts = this._contexts; if (callbacks) { ("production" !== "development" ? invariant( callbacks.length === contexts.length, 'Mismatched list of contexts in callback queue' ) : invariant(callbacks.length === contexts.length)); this._callbacks = null; this._contexts = null; for (var i = 0, l = callbacks.length; i < l; i++) { callbacks[i].call(contexts[i]); } callbacks.length = 0; contexts.length = 0; } }, /** * Resets the internal queue. * * @internal */ reset: function() { this._callbacks = null; this._contexts = null; }, /** * `PooledClass` looks for this. */ destructor: function() { this.reset(); } }); PooledClass.addPoolingTo(CallbackQueue); module.exports = CallbackQueue; },{"135":135,"27":27,"28":28}],7:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ChangeEventPlugin */ 'use strict'; var EventConstants = _dereq_(15); var EventPluginHub = _dereq_(17); var EventPropagators = _dereq_(20); var ExecutionEnvironment = _dereq_(21); var ReactUpdates = _dereq_(87); var SyntheticEvent = _dereq_(95); var isEventSupported = _dereq_(136); var isTextInputElement = _dereq_(138); var keyOf = _dereq_(141); var topLevelTypes = EventConstants.topLevelTypes; var eventTypes = { change: { phasedRegistrationNames: { bubbled: keyOf({onChange: null}), captured: keyOf({onChangeCapture: null}) }, dependencies: [ topLevelTypes.topBlur, topLevelTypes.topChange, topLevelTypes.topClick, topLevelTypes.topFocus, topLevelTypes.topInput, topLevelTypes.topKeyDown, topLevelTypes.topKeyUp, topLevelTypes.topSelectionChange ] } }; /** * For IE shims */ var activeElement = null; var activeElementID = null; var activeElementValue = null; var activeElementValueProp = null; /** * SECTION: handle `change` event */ function shouldUseChangeEvent(elem) { return ( elem.nodeName === 'SELECT' || (elem.nodeName === 'INPUT' && elem.type === 'file') ); } var doesChangeEventBubble = false; if (ExecutionEnvironment.canUseDOM) { // See `handleChange` comment below doesChangeEventBubble = isEventSupported('change') && ( (!('documentMode' in document) || document.documentMode > 8) ); } function manualDispatchChangeEvent(nativeEvent) { var event = SyntheticEvent.getPooled( eventTypes.change, activeElementID, nativeEvent ); EventPropagators.accumulateTwoPhaseDispatches(event); // If change and propertychange bubbled, we'd just bind to it like all the // other events and have it go through ReactBrowserEventEmitter. Since it // doesn't, we manually listen for the events and so we have to enqueue and // process the abstract event manually. // // Batching is necessary here in order to ensure that all event handlers run // before the next rerender (including event handlers attached to ancestor // elements instead of directly on the input). Without this, controlled // components don't work properly in conjunction with event bubbling because // the component is rerendered and the value reverted before all the event // handlers can run. See https://github.com/facebook/react/issues/708. ReactUpdates.batchedUpdates(runEventInBatch, event); } function runEventInBatch(event) { EventPluginHub.enqueueEvents(event); EventPluginHub.processEventQueue(); } function startWatchingForChangeEventIE8(target, targetID) { activeElement = target; activeElementID = targetID; activeElement.attachEvent('onchange', manualDispatchChangeEvent); } function stopWatchingForChangeEventIE8() { if (!activeElement) { return; } activeElement.detachEvent('onchange', manualDispatchChangeEvent); activeElement = null; activeElementID = null; } function getTargetIDForChangeEvent( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topChange) { return topLevelTargetID; } } function handleEventsForChangeEventIE8( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topFocus) { // stopWatching() should be a noop here but we call it just in case we // missed a blur event somehow. stopWatchingForChangeEventIE8(); startWatchingForChangeEventIE8(topLevelTarget, topLevelTargetID); } else if (topLevelType === topLevelTypes.topBlur) { stopWatchingForChangeEventIE8(); } } /** * SECTION: handle `input` event */ var isInputEventSupported = false; if (ExecutionEnvironment.canUseDOM) { // IE9 claims to support the input event but fails to trigger it when // deleting text, so we ignore its input events isInputEventSupported = isEventSupported('input') && ( (!('documentMode' in document) || document.documentMode > 9) ); } /** * (For old IE.) Replacement getter/setter for the `value` property that gets * set on the active element. */ var newValueProp = { get: function() { return activeElementValueProp.get.call(this); }, set: function(val) { // Cast to a string so we can do equality checks. activeElementValue = '' + val; activeElementValueProp.set.call(this, val); } }; /** * (For old IE.) Starts tracking propertychange events on the passed-in element * and override the value property so that we can distinguish user events from * value changes in JS. */ function startWatchingForValueChange(target, targetID) { activeElement = target; activeElementID = targetID; activeElementValue = target.value; activeElementValueProp = Object.getOwnPropertyDescriptor( target.constructor.prototype, 'value' ); Object.defineProperty(activeElement, 'value', newValueProp); activeElement.attachEvent('onpropertychange', handlePropertyChange); } /** * (For old IE.) Removes the event listeners from the currently-tracked element, * if any exists. */ function stopWatchingForValueChange() { if (!activeElement) { return; } // delete restores the original property definition delete activeElement.value; activeElement.detachEvent('onpropertychange', handlePropertyChange); activeElement = null; activeElementID = null; activeElementValue = null; activeElementValueProp = null; } /** * (For old IE.) Handles a propertychange event, sending a `change` event if * the value of the active element has changed. */ function handlePropertyChange(nativeEvent) { if (nativeEvent.propertyName !== 'value') { return; } var value = nativeEvent.srcElement.value; if (value === activeElementValue) { return; } activeElementValue = value; manualDispatchChangeEvent(nativeEvent); } /** * If a `change` event should be fired, returns the target's ID. */ function getTargetIDForInputEvent( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topInput) { // In modern browsers (i.e., not IE8 or IE9), the input event is exactly // what we want so fall through here and trigger an abstract event return topLevelTargetID; } } // For IE8 and IE9. function handleEventsForInputEventIE( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topFocus) { // In IE8, we can capture almost all .value changes by adding a // propertychange handler and looking for events with propertyName // equal to 'value' // In IE9, propertychange fires for most input events but is buggy and // doesn't fire when text is deleted, but conveniently, selectionchange // appears to fire in all of the remaining cases so we catch those and // forward the event if the value has changed // In either case, we don't want to call the event handler if the value // is changed from JS so we redefine a setter for `.value` that updates // our activeElementValue variable, allowing us to ignore those changes // // stopWatching() should be a noop here but we call it just in case we // missed a blur event somehow. stopWatchingForValueChange(); startWatchingForValueChange(topLevelTarget, topLevelTargetID); } else if (topLevelType === topLevelTypes.topBlur) { stopWatchingForValueChange(); } } // For IE8 and IE9. function getTargetIDForInputEventIE( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topSelectionChange || topLevelType === topLevelTypes.topKeyUp || topLevelType === topLevelTypes.topKeyDown) { // On the selectionchange event, the target is just document which isn't // helpful for us so just check activeElement instead. // // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire // propertychange on the first input event after setting `value` from a // script and fires only keydown, keypress, keyup. Catching keyup usually // gets it and catching keydown lets us fire an event for the first // keystroke if user does a key repeat (it'll be a little delayed: right // before the second keystroke). Other input methods (e.g., paste) seem to // fire selectionchange normally. if (activeElement && activeElement.value !== activeElementValue) { activeElementValue = activeElement.value; return activeElementID; } } } /** * SECTION: handle `click` event */ function shouldUseClickEvent(elem) { // Use the `click` event to detect changes to checkbox and radio inputs. // This approach works across all browsers, whereas `change` does not fire // until `blur` in IE8. return ( elem.nodeName === 'INPUT' && (elem.type === 'checkbox' || elem.type === 'radio') ); } function getTargetIDForClickEvent( topLevelType, topLevelTarget, topLevelTargetID) { if (topLevelType === topLevelTypes.topClick) { return topLevelTargetID; } } /** * This plugin creates an `onChange` event that normalizes change events * across form elements. This event fires at a time when it's possible to * change the element's value without seeing a flicker. * * Supported elements are: * - input (see `isTextInputElement`) * - textarea * - select */ var ChangeEventPlugin = { eventTypes: eventTypes, /** * @param {string} topLevelType Record from `EventConstants`. * @param {DOMEventTarget} topLevelTarget The listening component root node. * @param {string} topLevelTargetID ID of `topLevelTarget`. * @param {object} nativeEvent Native browser event. * @return {*} An accumulation of synthetic events. * @see {EventPluginHub.extractEvents} */ extractEvents: function( topLevelType, topLevelTarget, topLevelTargetID, nativeEvent) { var getTargetIDFunc, handleEventFunc; if (shouldUseChangeEvent(topLevelTarget)) { if (doesChangeEventBubble) { getTargetIDFunc = getTargetIDForChangeEvent; } else { handleEventFunc = handleEventsForChangeEventIE8; } } else if (isTextInputElement(topLevelTarget)) { if (isInputEventSupported) { getTargetIDFunc = getTargetIDForInputEvent; } else { getTargetIDFunc = getTargetIDForInputEventIE; handleEventFunc = handleEventsForInputEventIE; } } else if (shouldUseClickEvent(topLevelTarget)) { getTargetIDFunc = getTargetIDForClickEvent; } if (getTargetIDFunc) { var targetID = getTargetIDFunc( topLevelType, topLevelTarget, topLevelTargetID ); if (targetID) { var event = SyntheticEvent.getPooled( eventTypes.change, targetID, nativeEvent ); EventPropagators.accumulateTwoPhaseDispatches(event); return event; } } if (handleEventFunc) { handleEventFunc( topLevelType, topLevelTarget, topLevelTargetID ); } } }; module.exports = ChangeEventPlugin; },{"136":136,"138":138,"141":141,"15":15,"17":17,"20":20,"21":21,"87":87,"95":95}],8:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ClientReactRootIndex * @typechecks */ 'use strict'; var nextReactRootIndex = 0; var ClientReactRootIndex = { createReactRootIndex: function() { return nextReactRootIndex++; } }; module.exports = ClientReactRootIndex; },{}],9:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule DOMChildrenOperations * @typechecks static-only */ 'use strict'; var Danger = _dereq_(12); var ReactMultiChildUpdateTypes = _dereq_(72); var setTextContent = _dereq_(149); var invariant = _dereq_(135); /** * Inserts `childNode` as a child of `parentNode` at the `index`. * * @param {DOMElement} parentNode Parent node in which to insert. * @param {DOMElement} childNode Child node to insert. * @param {number} index Index at which to insert the child. * @internal */ function insertChildAt(parentNode, childNode, index) { // By exploiting arrays returning `undefined` for an undefined index, we can // rely exclusively on `insertBefore(node, null)` instead of also using // `appendChild(node)`. However, using `undefined` is not allowed by all // browsers so we must replace it with `null`. parentNode.insertBefore( childNode, parentNode.childNodes[index] || null ); } /** * Operations for updating with DOM children. */ var DOMChildrenOperations = { dangerouslyReplaceNodeWithMarkup: Danger.dangerouslyReplaceNodeWithMarkup, updateTextContent: setTextContent, /** * Updates a component's children by processing a series of updates. The * update configurations are each expected to have a `parentNode` property. * * @param {array} updates List of update configurations. * @param {array} markupList List of markup strings. * @internal */ processUpdates: function(updates, markupList) { var update; // Mapping from parent IDs to initial child orderings. var initialChildren = null; // List of children that will be moved or removed. var updatedChildren = null; for (var i = 0; i < updates.length; i++) { update = updates[i]; if (update.type === ReactMultiChildUpdateTypes.MOVE_EXISTING || update.type === ReactMultiChildUpdateTypes.REMOVE_NODE) { var updatedIndex = update.fromIndex; var updatedChild = update.parentNode.childNodes[updatedIndex]; var parentID = update.parentID; ("production" !== "development" ? invariant( updatedChild, 'processUpdates(): Unable to find child %s of element. This ' + 'probably means the DOM was unexpectedly mutated (e.g., by the ' + 'browser), usually due to forgetting a when using tables, ' + 'nesting tags like
,

, or , or using non-SVG elements ' + 'in an parent. Try inspecting the child nodes of the element ' + 'with React ID `%s`.', updatedIndex, parentID ) : invariant(updatedChild)); initialChildren = initialChildren || {}; initialChildren[parentID] = initialChildren[parentID] || []; initialChildren[parentID][updatedIndex] = updatedChild; updatedChildren = updatedChildren || []; updatedChildren.push(updatedChild); } } var renderedMarkup = Danger.dangerouslyRenderMarkup(markupList); // Remove updated children first so that `toIndex` is consistent. if (updatedChildren) { for (var j = 0; j < updatedChildren.length; j++) { updatedChildren[j].parentNode.removeChild(updatedChildren[j]); } } for (var k = 0; k < updates.length; k++) { update = updates[k]; switch (update.type) { case ReactMultiChildUpdateTypes.INSERT_MARKUP: insertChildAt( update.parentNode, renderedMarkup[update.markupIndex], update.toIndex ); break; case ReactMultiChildUpdateTypes.MOVE_EXISTING: insertChildAt( update.parentNode, initialChildren[update.parentID][update.fromIndex], update.toIndex ); break; case ReactMultiChildUpdateTypes.TEXT_CONTENT: setTextContent( update.parentNode, update.textContent ); break; case ReactMultiChildUpdateTypes.REMOVE_NODE: // Already removed by the for-loop above. break; } } } }; module.exports = DOMChildrenOperations; },{"12":12,"135":135,"149":149,"72":72}],10:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule DOMProperty * @typechecks static-only */ /*jslint bitwise: true */ 'use strict'; var invariant = _dereq_(135); function checkMask(value, bitmask) { return (value & bitmask) === bitmask; } var DOMPropertyInjection = { /** * Mapping from normalized, camelcased property names to a configuration that * specifies how the associated DOM property should be accessed or rendered. */ MUST_USE_ATTRIBUTE: 0x1, MUST_USE_PROPERTY: 0x2, HAS_SIDE_EFFECTS: 0x4, HAS_BOOLEAN_VALUE: 0x8, HAS_NUMERIC_VALUE: 0x10, HAS_POSITIVE_NUMERIC_VALUE: 0x20 | 0x10, HAS_OVERLOADED_BOOLEAN_VALUE: 0x40, /** * Inject some specialized knowledge about the DOM. This takes a config object * with the following properties: * * isCustomAttribute: function that given an attribute name will return true * if it can be inserted into the DOM verbatim. Useful for data-* or aria-* * attributes where it's impossible to enumerate all of the possible * attribute names, * * Properties: object mapping DOM property name to one of the * DOMPropertyInjection constants or null. If your attribute isn't in here, * it won't get written to the DOM. * * DOMAttributeNames: object mapping React attribute name to the DOM * attribute name. Attribute names not specified use the **lowercase** * normalized name. * * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties. * Property names not specified use the normalized name. * * DOMMutationMethods: Properties that require special mutation methods. If * `value` is undefined, the mutation method should unset the property. * * @param {object} domPropertyConfig the config as described above. */ injectDOMPropertyConfig: function(domPropertyConfig) { var Properties = domPropertyConfig.Properties || {}; var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {}; var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {}; var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {}; if (domPropertyConfig.isCustomAttribute) { DOMProperty._isCustomAttributeFunctions.push( domPropertyConfig.isCustomAttribute ); } for (var propName in Properties) { ("production" !== "development" ? invariant( !DOMProperty.isStandardName.hasOwnProperty(propName), 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property ' + '\'%s\' which has already been injected. You may be accidentally ' + 'injecting the same DOM property config twice, or you may be ' + 'injecting two configs that have conflicting property names.', propName ) : invariant(!DOMProperty.isStandardName.hasOwnProperty(propName))); DOMProperty.isStandardName[propName] = true; var lowerCased = propName.toLowerCase(); DOMProperty.getPossibleStandardName[lowerCased] = propName; if (DOMAttributeNames.hasOwnProperty(propName)) { var attributeName = DOMAttributeNames[propName]; DOMProperty.getPossibleStandardName[attributeName] = propName; DOMProperty.getAttributeName[propName] = attributeName; } else { DOMProperty.getAttributeName[propName] = lowerCased; } DOMProperty.getPropertyName[propName] = DOMPropertyNames.hasOwnProperty(propName) ? DOMPropertyNames[propName] : propName; if (DOMMutationMethods.hasOwnProperty(propName)) { DOMProperty.getMutationMethod[propName] = DOMMutationMethods[propName]; } else { DOMProperty.getMutationMethod[propName] = null; } var propConfig = Properties[propName]; DOMProperty.mustUseAttribute[propName] = checkMask(propConfig, DOMPropertyInjection.MUST_USE_ATTRIBUTE); DOMProperty.mustUseProperty[propName] = checkMask(propConfig, DOMPropertyInjection.MUST_USE_PROPERTY); DOMProperty.hasSideEffects[propName] = checkMask(propConfig, DOMPropertyInjection.HAS_SIDE_EFFECTS); DOMProperty.hasBooleanValue[propName] = checkMask(propConfig, DOMPropertyInjection.HAS_BOOLEAN_VALUE); DOMProperty.hasNumericValue[propName] = checkMask(propConfig, DOMPropertyInjection.HAS_NUMERIC_VALUE); DOMProperty.hasPositiveNumericValue[propName] = checkMask(propConfig, DOMPropertyInjection.HAS_POSITIVE_NUMERIC_VALUE); DOMProperty.hasOverloadedBooleanValue[propName] = checkMask(propConfig, DOMPropertyInjection.HAS_OVERLOADED_BOOLEAN_VALUE); ("production" !== "development" ? invariant( !DOMProperty.mustUseAttribute[propName] || !DOMProperty.mustUseProperty[propName], 'DOMProperty: Cannot require using both attribute and property: %s', propName ) : invariant(!DOMProperty.mustUseAttribute[propName] || !DOMProperty.mustUseProperty[propName])); ("production" !== "development" ? invariant( DOMProperty.mustUseProperty[propName] || !DOMProperty.hasSideEffects[propName], 'DOMProperty: Properties that have side effects must use property: %s', propName ) : invariant(DOMProperty.mustUseProperty[propName] || !DOMProperty.hasSideEffects[propName])); ("production" !== "development" ? invariant( !!DOMProperty.hasBooleanValue[propName] + !!DOMProperty.hasNumericValue[propName] + !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1, 'DOMProperty: Value can be one of boolean, overloaded boolean, or ' + 'numeric value, but not a combination: %s', propName ) : invariant(!!DOMProperty.hasBooleanValue[propName] + !!DOMProperty.hasNumericValue[propName] + !!DOMProperty.hasOverloadedBooleanValue[propName] <= 1)); } } }; var defaultValueCache = {}; /** * DOMProperty exports lookup objects that can be used like functions: * * > DOMProperty.isValid['id'] * true * > DOMProperty.isValid['foobar'] * undefined * * Although this may be confusing, it performs better in general. * * @see http://jsperf.com/key-exists * @see http://jsperf.com/key-missing */ var DOMProperty = { ID_ATTRIBUTE_NAME: 'data-reactid', /** * Checks whether a property name is a standard property. * @type {Object} */ isStandardName: {}, /** * Mapping from lowercase property names to the properly cased version, used * to warn in the case of missing properties. * @type {Object} */ getPossibleStandardName: {}, /** * Mapping from normalized names to attribute names that differ. Attribute * names are used when rendering markup or with `*Attribute()`. * @type {Object} */ getAttributeName: {}, /** * Mapping from normalized names to properties on DOM node instances. * (This includes properties that mutate due to external factors.) * @type {Object} */ getPropertyName: {}, /** * Mapping from normalized names to mutation methods. This will only exist if * mutation cannot be set simply by the property or `setAttribute()`. * @type {Object} */ getMutationMethod: {}, /** * Whether the property must be accessed and mutated as an object property. * @type {Object} */ mustUseAttribute: {}, /** * Whether the property must be accessed and mutated using `*Attribute()`. * (This includes anything that fails ` in `.) * @type {Object} */ mustUseProperty: {}, /** * Whether or not setting a value causes side effects such as triggering * resources to be loaded or text selection changes. We must ensure that * the value is only set if it has changed. * @type {Object} */ hasSideEffects: {}, /** * Whether the property should be removed when set to a falsey value. * @type {Object} */ hasBooleanValue: {}, /** * Whether the property must be numeric or parse as a * numeric and should be removed when set to a falsey value. * @type {Object} */ hasNumericValue: {}, /** * Whether the property must be positive numeric or parse as a positive * numeric and should be removed when set to a falsey value. * @type {Object} */ hasPositiveNumericValue: {}, /** * Whether the property can be used as a flag as well as with a value. Removed * when strictly equal to false; present without a value when strictly equal * to true; present with a value otherwise. * @type {Object} */ hasOverloadedBooleanValue: {}, /** * All of the isCustomAttribute() functions that have been injected. */ _isCustomAttributeFunctions: [], /** * Checks whether a property name is a custom attribute. * @method */ isCustomAttribute: function(attributeName) { for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) { var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i]; if (isCustomAttributeFn(attributeName)) { return true; } } return false; }, /** * Returns the default property value for a DOM property (i.e., not an * attribute). Most default values are '' or false, but not all. Worse yet, * some (in particular, `type`) vary depending on the type of element. * * TODO: Is it better to grab all the possible properties when creating an * element to avoid having to create the same element twice? */ getDefaultValueForProperty: function(nodeName, prop) { var nodeDefaults = defaultValueCache[nodeName]; var testElement; if (!nodeDefaults) { defaultValueCache[nodeName] = nodeDefaults = {}; } if (!(prop in nodeDefaults)) { testElement = document.createElement(nodeName); nodeDefaults[prop] = testElement[prop]; } return nodeDefaults[prop]; }, injection: DOMPropertyInjection }; module.exports = DOMProperty; },{"135":135}],11:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule DOMPropertyOperations * @typechecks static-only */ 'use strict'; var DOMProperty = _dereq_(10); var quoteAttributeValueForBrowser = _dereq_(147); var warning = _dereq_(154); function shouldIgnoreValue(name, value) { return value == null || (DOMProperty.hasBooleanValue[name] && !value) || (DOMProperty.hasNumericValue[name] && isNaN(value)) || (DOMProperty.hasPositiveNumericValue[name] && (value < 1)) || (DOMProperty.hasOverloadedBooleanValue[name] && value === false); } if ("production" !== "development") { var reactProps = { children: true, dangerouslySetInnerHTML: true, key: true, ref: true }; var warnedProperties = {}; var warnUnknownProperty = function(name) { if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) { return; } warnedProperties[name] = true; var lowerCasedName = name.toLowerCase(); // data-* attributes should be lowercase; suggest the lowercase version var standardName = ( DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null ); // For now, only warn when we have a suggested correction. This prevents // logging too much when using transferPropsTo. ("production" !== "development" ? warning( standardName == null, 'Unknown DOM property %s. Did you mean %s?', name, standardName ) : null); }; } /** * Operations for dealing with DOM properties. */ var DOMPropertyOperations = { /** * Creates markup for the ID property. * * @param {string} id Unescaped ID. * @return {string} Markup string. */ createMarkupForID: function(id) { return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id); }, /** * Creates markup for a property. * * @param {string} name * @param {*} value * @return {?string} Markup string, or null if the property was invalid. */ createMarkupForProperty: function(name, value) { if (DOMProperty.isStandardName.hasOwnProperty(name) && DOMProperty.isStandardName[name]) { if (shouldIgnoreValue(name, value)) { return ''; } var attributeName = DOMProperty.getAttributeName[name]; if (DOMProperty.hasBooleanValue[name] || (DOMProperty.hasOverloadedBooleanValue[name] && value === true)) { return attributeName; } return attributeName + '=' + quoteAttributeValueForBrowser(value); } else if (DOMProperty.isCustomAttribute(name)) { if (value == null) { return ''; } return name + '=' + quoteAttributeValueForBrowser(value); } else if ("production" !== "development") { warnUnknownProperty(name); } return null; }, /** * Sets the value for a property on a node. * * @param {DOMElement} node * @param {string} name * @param {*} value */ setValueForProperty: function(node, name, value) { if (DOMProperty.isStandardName.hasOwnProperty(name) && DOMProperty.isStandardName[name]) { var mutationMethod = DOMProperty.getMutationMethod[name]; if (mutationMethod) { mutationMethod(node, value); } else if (shouldIgnoreValue(name, value)) { this.deleteValueForProperty(node, name); } else if (DOMProperty.mustUseAttribute[name]) { // `setAttribute` with objects becomes only `[object]` in IE8/9, // ('' + value) makes it output the correct toString()-value. node.setAttribute(DOMProperty.getAttributeName[name], '' + value); } else { var propName = DOMProperty.getPropertyName[name]; // Must explicitly cast values for HAS_SIDE_EFFECTS-properties to the // property type before comparing; only `value` does and is string. if (!DOMProperty.hasSideEffects[name] || ('' + node[propName]) !== ('' + value)) { // Contrary to `setAttribute`, object properties are properly // `toString`ed by IE8/9. node[propName] = value; } } } else if (DOMProperty.isCustomAttribute(name)) { if (value == null) { node.removeAttribute(name); } else { node.setAttribute(name, '' + value); } } else if ("production" !== "development") { warnUnknownProperty(name); } }, /** * Deletes the value for a property on a node. * * @param {DOMElement} node * @param {string} name */ deleteValueForProperty: function(node, name) { if (DOMProperty.isStandardName.hasOwnProperty(name) && DOMProperty.isStandardName[name]) { var mutationMethod = DOMProperty.getMutationMethod[name]; if (mutationMethod) { mutationMethod(node, undefined); } else if (DOMProperty.mustUseAttribute[name]) { node.removeAttribute(DOMProperty.getAttributeName[name]); } else { var propName = DOMProperty.getPropertyName[name]; var defaultValue = DOMProperty.getDefaultValueForProperty( node.nodeName, propName ); if (!DOMProperty.hasSideEffects[name] || ('' + node[propName]) !== defaultValue) { node[propName] = defaultValue; } } } else if (DOMProperty.isCustomAttribute(name)) { node.removeAttribute(name); } else if ("production" !== "development") { warnUnknownProperty(name); } } }; module.exports = DOMPropertyOperations; },{"10":10,"147":147,"154":154}],12:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule Danger * @typechecks static-only */ /*jslint evil: true, sub: true */ 'use strict'; var ExecutionEnvironment = _dereq_(21); var createNodesFromMarkup = _dereq_(112); var emptyFunction = _dereq_(114); var getMarkupWrap = _dereq_(127); var invariant = _dereq_(135); var OPEN_TAG_NAME_EXP = /^(<[^ \/>]+)/; var RESULT_INDEX_ATTR = 'data-danger-index'; /** * Extracts the `nodeName` from a string of markup. * * NOTE: Extracting the `nodeName` does not require a regular expression match * because we make assumptions about React-generated markup (i.e. there are no * spaces surrounding the opening tag and there is at least one attribute). * * @param {string} markup String of markup. * @return {string} Node name of the supplied markup. * @see http://jsperf.com/extract-nodename */ function getNodeName(markup) { return markup.substring(1, markup.indexOf(' ')); } var Danger = { /** * Renders markup into an array of nodes. The markup is expected to render * into a list of root nodes. Also, the length of `resultList` and * `markupList` should be the same. * * @param {array} markupList List of markup strings to render. * @return {array} List of rendered nodes. * @internal */ dangerouslyRenderMarkup: function(markupList) { ("production" !== "development" ? invariant( ExecutionEnvironment.canUseDOM, 'dangerouslyRenderMarkup(...): Cannot render markup in a worker ' + 'thread. Make sure `window` and `document` are available globally ' + 'before requiring React when unit testing or use ' + 'React.renderToString for server rendering.' ) : invariant(ExecutionEnvironment.canUseDOM)); var nodeName; var markupByNodeName = {}; // Group markup by `nodeName` if a wrap is necessary, else by '*'. for (var i = 0; i < markupList.length; i++) { ("production" !== "development" ? invariant( markupList[i], 'dangerouslyRenderMarkup(...): Missing markup.' ) : invariant(markupList[i])); nodeName = getNodeName(markupList[i]); nodeName = getMarkupWrap(nodeName) ? nodeName : '*'; markupByNodeName[nodeName] = markupByNodeName[nodeName] || []; markupByNodeName[nodeName][i] = markupList[i]; } var resultList = []; var resultListAssignmentCount = 0; for (nodeName in markupByNodeName) { if (!markupByNodeName.hasOwnProperty(nodeName)) { continue; } var markupListByNodeName = markupByNodeName[nodeName]; // This for-in loop skips the holes of the sparse array. The order of // iteration should follow the order of assignment, which happens to match // numerical index order, but we don't rely on that. var resultIndex; for (resultIndex in markupListByNodeName) { if (markupListByNodeName.hasOwnProperty(resultIndex)) { var markup = markupListByNodeName[resultIndex]; // Push the requested markup with an additional RESULT_INDEX_ATTR // attribute. If the markup does not start with a < character, it // will be discarded below (with an appropriate console.error). markupListByNodeName[resultIndex] = markup.replace( OPEN_TAG_NAME_EXP, // This index will be parsed back out below. '$1 ' + RESULT_INDEX_ATTR + '="' + resultIndex + '" ' ); } } // Render each group of markup with similar wrapping `nodeName`. var renderNodes = createNodesFromMarkup( markupListByNodeName.join(''), emptyFunction // Do nothing special with

Hello World
; * } * }); * * The class specification supports a specific protocol of methods that have * special meaning (e.g. `render`). See `ReactClassInterface` for * more the comprehensive protocol. Any other properties and methods in the * class specification will available on the prototype. * * @interface ReactClassInterface * @internal */ var ReactClassInterface = { /** * An array of Mixin objects to include when defining your component. * * @type {array} * @optional */ mixins: SpecPolicy.DEFINE_MANY, /** * An object containing properties and methods that should be defined on * the component's constructor instead of its prototype (static methods). * * @type {object} * @optional */ statics: SpecPolicy.DEFINE_MANY, /** * Definition of prop types for this component. * * @type {object} * @optional */ propTypes: SpecPolicy.DEFINE_MANY, /** * Definition of context types for this component. * * @type {object} * @optional */ contextTypes: SpecPolicy.DEFINE_MANY, /** * Definition of context types this component sets for its children. * * @type {object} * @optional */ childContextTypes: SpecPolicy.DEFINE_MANY, // ==== Definition methods ==== /** * Invoked when the component is mounted. Values in the mapping will be set on * `this.props` if that prop is not specified (i.e. using an `in` check). * * This method is invoked before `getInitialState` and therefore cannot rely * on `this.state` or use `this.setState`. * * @return {object} * @optional */ getDefaultProps: SpecPolicy.DEFINE_MANY_MERGED, /** * Invoked once before the component is mounted. The return value will be used * as the initial value of `this.state`. * * getInitialState: function() { * return { * isOn: false, * fooBaz: new BazFoo() * } * } * * @return {object} * @optional */ getInitialState: SpecPolicy.DEFINE_MANY_MERGED, /** * @return {object} * @optional */ getChildContext: SpecPolicy.DEFINE_MANY_MERGED, /** * Uses props from `this.props` and state from `this.state` to render the * structure of the component. * * No guarantees are made about when or how often this method is invoked, so * it must not have side effects. * * render: function() { * var name = this.props.name; * return
Hello, {name}!
; * } * * @return {ReactComponent} * @nosideeffects * @required */ render: SpecPolicy.DEFINE_ONCE, // ==== Delegate methods ==== /** * Invoked when the component is initially created and about to be mounted. * This may have side effects, but any external subscriptions or data created * by this method must be cleaned up in `componentWillUnmount`. * * @optional */ componentWillMount: SpecPolicy.DEFINE_MANY, /** * Invoked when the component has been mounted and has a DOM representation. * However, there is no guarantee that the DOM node is in the document. * * Use this as an opportunity to operate on the DOM when the component has * been mounted (initialized and rendered) for the first time. * * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidMount: SpecPolicy.DEFINE_MANY, /** * Invoked before the component receives new props. * * Use this as an opportunity to react to a prop transition by updating the * state using `this.setState`. Current props are accessed via `this.props`. * * componentWillReceiveProps: function(nextProps, nextContext) { * this.setState({ * likesIncreasing: nextProps.likeCount > this.props.likeCount * }); * } * * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop * transition may cause a state change, but the opposite is not true. If you * need it, you are probably looking for `componentWillUpdate`. * * @param {object} nextProps * @optional */ componentWillReceiveProps: SpecPolicy.DEFINE_MANY, /** * Invoked while deciding if the component should be updated as a result of * receiving new props, state and/or context. * * Use this as an opportunity to `return false` when you're certain that the * transition to the new props/state/context will not require a component * update. * * shouldComponentUpdate: function(nextProps, nextState, nextContext) { * return !equal(nextProps, this.props) || * !equal(nextState, this.state) || * !equal(nextContext, this.context); * } * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @return {boolean} True if the component should update. * @optional */ shouldComponentUpdate: SpecPolicy.DEFINE_ONCE, /** * Invoked when the component is about to update due to a transition from * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState` * and `nextContext`. * * Use this as an opportunity to perform preparation before an update occurs. * * NOTE: You **cannot** use `this.setState()` in this method. * * @param {object} nextProps * @param {?object} nextState * @param {?object} nextContext * @param {ReactReconcileTransaction} transaction * @optional */ componentWillUpdate: SpecPolicy.DEFINE_MANY, /** * Invoked when the component's DOM representation has been updated. * * Use this as an opportunity to operate on the DOM when the component has * been updated. * * @param {object} prevProps * @param {?object} prevState * @param {?object} prevContext * @param {DOMElement} rootNode DOM element representing the component. * @optional */ componentDidUpdate: SpecPolicy.DEFINE_MANY, /** * Invoked when the component is about to be removed from its parent and have * its DOM representation destroyed. * * Use this as an opportunity to deallocate any external resources. * * NOTE: There is no `componentDidUnmount` since your component will have been * destroyed by that point. * * @optional */ componentWillUnmount: SpecPolicy.DEFINE_MANY, // ==== Advanced methods ==== /** * Updates the component's currently mounted DOM representation. * * By default, this implements React's rendering and reconciliation algorithm. * Sophisticated clients may wish to override this. * * @param {ReactReconcileTransaction} transaction * @internal * @overridable */ updateComponent: SpecPolicy.OVERRIDE_BASE }; /** * Mapping from class specification keys to special processing functions. * * Although these are declared like instance properties in the specification * when defining classes using `React.createClass`, they are actually static * and are accessible on the constructor instead of the prototype. Despite * being static, they must be defined outside of the "statics" key under * which all other static methods are defined. */ var RESERVED_SPEC_KEYS = { displayName: function(Constructor, displayName) { Constructor.displayName = displayName; }, mixins: function(Constructor, mixins) { if (mixins) { for (var i = 0; i < mixins.length; i++) { mixSpecIntoComponent(Constructor, mixins[i]); } } }, childContextTypes: function(Constructor, childContextTypes) { if ("production" !== "development") { validateTypeDef( Constructor, childContextTypes, ReactPropTypeLocations.childContext ); } Constructor.childContextTypes = assign( {}, Constructor.childContextTypes, childContextTypes ); }, contextTypes: function(Constructor, contextTypes) { if ("production" !== "development") { validateTypeDef( Constructor, contextTypes, ReactPropTypeLocations.context ); } Constructor.contextTypes = assign( {}, Constructor.contextTypes, contextTypes ); }, /** * Special case getDefaultProps which should move into statics but requires * automatic merging. */ getDefaultProps: function(Constructor, getDefaultProps) { if (Constructor.getDefaultProps) { Constructor.getDefaultProps = createMergedResultFunction( Constructor.getDefaultProps, getDefaultProps ); } else { Constructor.getDefaultProps = getDefaultProps; } }, propTypes: function(Constructor, propTypes) { if ("production" !== "development") { validateTypeDef( Constructor, propTypes, ReactPropTypeLocations.prop ); } Constructor.propTypes = assign( {}, Constructor.propTypes, propTypes ); }, statics: function(Constructor, statics) { mixStaticSpecIntoComponent(Constructor, statics); } }; function validateTypeDef(Constructor, typeDef, location) { for (var propName in typeDef) { if (typeDef.hasOwnProperty(propName)) { // use a warning instead of an invariant so components // don't show up in prod but not in __DEV__ ("production" !== "development" ? warning( typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName ) : null); } } } function validateMethodOverride(proto, name) { var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null; // Disallow overriding of base class methods unless explicitly allowed. if (ReactClassMixin.hasOwnProperty(name)) { ("production" !== "development" ? invariant( specPolicy === SpecPolicy.OVERRIDE_BASE, 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name ) : invariant(specPolicy === SpecPolicy.OVERRIDE_BASE)); } // Disallow defining methods more than once unless explicitly allowed. if (proto.hasOwnProperty(name)) { ("production" !== "development" ? invariant( specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED, 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name ) : invariant(specPolicy === SpecPolicy.DEFINE_MANY || specPolicy === SpecPolicy.DEFINE_MANY_MERGED)); } } /** * Mixin helper which handles policy validation and reserved * specification keys when building React classses. */ function mixSpecIntoComponent(Constructor, spec) { if (!spec) { return; } ("production" !== "development" ? invariant( typeof spec !== 'function', 'ReactClass: You\'re attempting to ' + 'use a component class as a mixin. Instead, just use a regular object.' ) : invariant(typeof spec !== 'function')); ("production" !== "development" ? invariant( !ReactElement.isValidElement(spec), 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.' ) : invariant(!ReactElement.isValidElement(spec))); var proto = Constructor.prototype; // By handling mixins before any other properties, we ensure the same // chaining order is applied to methods with DEFINE_MANY policy, whether // mixins are listed before or after these methods in the spec. if (spec.hasOwnProperty(MIXINS_KEY)) { RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); } for (var name in spec) { if (!spec.hasOwnProperty(name)) { continue; } if (name === MIXINS_KEY) { // We have already handled mixins in a special case above continue; } var property = spec[name]; validateMethodOverride(proto, name); if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) { RESERVED_SPEC_KEYS[name](Constructor, property); } else { // Setup methods on prototype: // The following member methods should not be automatically bound: // 1. Expected ReactClass methods (in the "interface"). // 2. Overridden methods (that were mixed in). var isReactClassMethod = ReactClassInterface.hasOwnProperty(name); var isAlreadyDefined = proto.hasOwnProperty(name); var markedDontBind = property && property.__reactDontBind; var isFunction = typeof property === 'function'; var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && !markedDontBind; if (shouldAutoBind) { if (!proto.__reactAutoBindMap) { proto.__reactAutoBindMap = {}; } proto.__reactAutoBindMap[name] = property; proto[name] = property; } else { if (isAlreadyDefined) { var specPolicy = ReactClassInterface[name]; // These cases should already be caught by validateMethodOverride ("production" !== "development" ? invariant( isReactClassMethod && ( (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY) ), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name ) : invariant(isReactClassMethod && ( (specPolicy === SpecPolicy.DEFINE_MANY_MERGED || specPolicy === SpecPolicy.DEFINE_MANY) ))); // For methods which are defined more than once, call the existing // methods before calling the new property, merging if appropriate. if (specPolicy === SpecPolicy.DEFINE_MANY_MERGED) { proto[name] = createMergedResultFunction(proto[name], property); } else if (specPolicy === SpecPolicy.DEFINE_MANY) { proto[name] = createChainedFunction(proto[name], property); } } else { proto[name] = property; if ("production" !== "development") { // Add verbose displayName to the function, which helps when looking // at profiling tools. if (typeof property === 'function' && spec.displayName) { proto[name].displayName = spec.displayName + '_' + name; } } } } } } } function mixStaticSpecIntoComponent(Constructor, statics) { if (!statics) { return; } for (var name in statics) { var property = statics[name]; if (!statics.hasOwnProperty(name)) { continue; } var isReserved = name in RESERVED_SPEC_KEYS; ("production" !== "development" ? invariant( !isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name ) : invariant(!isReserved)); var isInherited = name in Constructor; ("production" !== "development" ? invariant( !isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name ) : invariant(!isInherited)); Constructor[name] = property; } } /** * Merge two objects, but throw if both contain the same key. * * @param {object} one The first object, which is mutated. * @param {object} two The second object * @return {object} one after it has been mutated to contain everything in two. */ function mergeIntoWithNoDuplicateKeys(one, two) { ("production" !== "development" ? invariant( one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.' ) : invariant(one && two && typeof one === 'object' && typeof two === 'object')); for (var key in two) { if (two.hasOwnProperty(key)) { ("production" !== "development" ? invariant( one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key ) : invariant(one[key] === undefined)); one[key] = two[key]; } } return one; } /** * Creates a function that invokes two functions and merges their return values. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createMergedResultFunction(one, two) { return function mergedResult() { var a = one.apply(this, arguments); var b = two.apply(this, arguments); if (a == null) { return b; } else if (b == null) { return a; } var c = {}; mergeIntoWithNoDuplicateKeys(c, a); mergeIntoWithNoDuplicateKeys(c, b); return c; }; } /** * Creates a function that invokes two functions and ignores their return vales. * * @param {function} one Function to invoke first. * @param {function} two Function to invoke second. * @return {function} Function that invokes the two argument functions. * @private */ function createChainedFunction(one, two) { return function chainedFunction() { one.apply(this, arguments); two.apply(this, arguments); }; } /** * Binds a method to the component. * * @param {object} component Component whose method is going to be bound. * @param {function} method Method to be bound. * @return {function} The bound method. */ function bindAutoBindMethod(component, method) { var boundMethod = method.bind(component); if ("production" !== "development") { boundMethod.__reactBoundContext = component; boundMethod.__reactBoundMethod = method; boundMethod.__reactBoundArguments = null; var componentName = component.constructor.displayName; var _bind = boundMethod.bind; /* eslint-disable block-scoped-var, no-undef */ boundMethod.bind = function(newThis ) {for (var args=[],$__0=1,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]); // User is trying to bind() an autobound method; we effectively will // ignore the value of "this" that the user is trying to use, so // let's warn. if (newThis !== component && newThis !== null) { ("production" !== "development" ? warning( false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName ) : null); } else if (!args.length) { ("production" !== "development" ? warning( false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName ) : null); return boundMethod; } var reboundMethod = _bind.apply(boundMethod, arguments); reboundMethod.__reactBoundContext = component; reboundMethod.__reactBoundMethod = method; reboundMethod.__reactBoundArguments = args; return reboundMethod; /* eslint-enable */ }; } return boundMethod; } /** * Binds all auto-bound methods in a component. * * @param {object} component Component whose method is going to be bound. */ function bindAutoBindMethods(component) { for (var autoBindKey in component.__reactAutoBindMap) { if (component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { var method = component.__reactAutoBindMap[autoBindKey]; component[autoBindKey] = bindAutoBindMethod( component, ReactErrorUtils.guard( method, component.constructor.displayName + '.' + autoBindKey ) ); } } } var typeDeprecationDescriptor = { enumerable: false, get: function() { var displayName = this.displayName || this.name || 'Component'; ("production" !== "development" ? warning( false, '%s.type is deprecated. Use %s directly to access the class.', displayName, displayName ) : null); Object.defineProperty(this, 'type', { value: this }); return this; } }; /** * Add more to the ReactClass base class. These are all legacy features and * therefore not already part of the modern ReactComponent. */ var ReactClassMixin = { /** * TODO: This will be deprecated because state should always keep a consistent * type signature and the only use case for this, is to avoid that. */ replaceState: function(newState, callback) { ReactUpdateQueue.enqueueReplaceState(this, newState); if (callback) { ReactUpdateQueue.enqueueCallback(this, callback); } }, /** * Checks whether or not this composite component is mounted. * @return {boolean} True if mounted, false otherwise. * @protected * @final */ isMounted: function() { if ("production" !== "development") { var owner = ReactCurrentOwner.current; if (owner !== null) { ("production" !== "development" ? warning( owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A component' ) : null); owner._warnedAboutRefsInRender = true; } } var internalInstance = ReactInstanceMap.get(this); return ( internalInstance && internalInstance !== ReactLifeCycle.currentlyMountingInstance ); }, /** * Sets a subset of the props. * * @param {object} partialProps Subset of the next props. * @param {?function} callback Called after props are updated. * @final * @public * @deprecated */ setProps: function(partialProps, callback) { ReactUpdateQueue.enqueueSetProps(this, partialProps); if (callback) { ReactUpdateQueue.enqueueCallback(this, callback); } }, /** * Replace all the props. * * @param {object} newProps Subset of the next props. * @param {?function} callback Called after props are updated. * @final * @public * @deprecated */ replaceProps: function(newProps, callback) { ReactUpdateQueue.enqueueReplaceProps(this, newProps); if (callback) { ReactUpdateQueue.enqueueCallback(this, callback); } } }; var ReactClassComponent = function() {}; assign( ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin ); /** * Module for creating composite components. * * @class ReactClass */ var ReactClass = { /** * Creates a composite component class given a class specification. * * @param {object} spec Class specification (which must define `render`). * @return {function} Component constructor function. * @public */ createClass: function(spec) { var Constructor = function(props, context) { // This constructor is overridden by mocks. The argument is used // by mocks to assert on what gets mounted. if ("production" !== "development") { ("production" !== "development" ? warning( this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory' ) : null); } // Wire up auto-binding if (this.__reactAutoBindMap) { bindAutoBindMethods(this); } this.props = props; this.context = context; this.state = null; // ReactClasses doesn't have constructors. Instead, they use the // getInitialState and componentWillMount methods for initialization. var initialState = this.getInitialState ? this.getInitialState() : null; if ("production" !== "development") { // We allow auto-mocks to proceed as if they're returning null. if (typeof initialState === 'undefined' && this.getInitialState._isMockFunction) { // This is probably bad practice. Consider warning here and // deprecating this convenience. initialState = null; } } ("production" !== "development" ? invariant( typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent' ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState))); this.state = initialState; }; Constructor.prototype = new ReactClassComponent(); Constructor.prototype.constructor = Constructor; injectedMixins.forEach( mixSpecIntoComponent.bind(null, Constructor) ); mixSpecIntoComponent(Constructor, spec); // Initialize the defaultProps property after all mixins have been merged if (Constructor.getDefaultProps) { Constructor.defaultProps = Constructor.getDefaultProps(); } if ("production" !== "development") { // This is a tag to indicate that the use of these method names is ok, // since it's used with createClass. If it's not, then it's likely a // mistake so we'll warn you to use the static property, property // initializer or constructor respectively. if (Constructor.getDefaultProps) { Constructor.getDefaultProps.isReactClassApproved = {}; } if (Constructor.prototype.getInitialState) { Constructor.prototype.getInitialState.isReactClassApproved = {}; } } ("production" !== "development" ? invariant( Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.' ) : invariant(Constructor.prototype.render)); if ("production" !== "development") { ("production" !== "development" ? warning( !Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component' ) : null); } // Reduce time spent doing lookups by setting these on the prototype. for (var methodName in ReactClassInterface) { if (!Constructor.prototype[methodName]) { Constructor.prototype[methodName] = null; } } // Legacy hook Constructor.type = Constructor; if ("production" !== "development") { try { Object.defineProperty(Constructor, 'type', typeDeprecationDescriptor); } catch (x) { // IE will fail on defineProperty (es5-shim/sham too) } } return Constructor; }, injection: { injectMixin: function(mixin) { injectedMixins.push(mixin); } } }; module.exports = ReactClass; },{"135":135,"140":140,"141":141,"154":154,"27":27,"34":34,"39":39,"57":57,"60":60,"67":67,"68":68,"76":76,"77":77,"86":86}],34:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactComponent */ 'use strict'; var ReactUpdateQueue = _dereq_(86); var invariant = _dereq_(135); var warning = _dereq_(154); /** * Base class helpers for the updating state of a component. */ function ReactComponent(props, context) { this.props = props; this.context = context; } /** * Sets a subset of the state. Always use this to mutate * state. You should treat `this.state` as immutable. * * There is no guarantee that `this.state` will be immediately updated, so * accessing `this.state` after calling this method may return the old value. * * There is no guarantee that calls to `setState` will run synchronously, * as they may eventually be batched together. You can provide an optional * callback that will be executed when the call to setState is actually * completed. * * When a function is provided to setState, it will be called at some point in * the future (not synchronously). It will be called with the up to date * component arguments (state, props, context). These values can be different * from this.* because your function may be called after receiveProps but before * shouldComponentUpdate, and this new state, props, and context will not yet be * assigned to this. * * @param {object|function} partialState Next partial state or function to * produce next partial state to be merged with current state. * @param {?function} callback Called after state is updated. * @final * @protected */ ReactComponent.prototype.setState = function(partialState, callback) { ("production" !== "development" ? invariant( typeof partialState === 'object' || typeof partialState === 'function' || partialState == null, 'setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.' ) : invariant(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)); if ("production" !== "development") { ("production" !== "development" ? warning( partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().' ) : null); } ReactUpdateQueue.enqueueSetState(this, partialState); if (callback) { ReactUpdateQueue.enqueueCallback(this, callback); } }; /** * Forces an update. This should only be invoked when it is known with * certainty that we are **not** in a DOM transaction. * * You may want to call this when you know that some deeper aspect of the * component's state has changed but `setState` was not called. * * This will not invoke `shouldComponentUpdate`, but it will invoke * `componentWillUpdate` and `componentDidUpdate`. * * @param {?function} callback Called after update is complete. * @final * @protected */ ReactComponent.prototype.forceUpdate = function(callback) { ReactUpdateQueue.enqueueForceUpdate(this); if (callback) { ReactUpdateQueue.enqueueCallback(this, callback); } }; /** * Deprecated APIs. These APIs used to exist on classic React classes but since * we would like to deprecate them, we're not going to move them over to this * modern base class. Instead, we define a getter that warns if it's accessed. */ if ("production" !== "development") { var deprecatedAPIs = { getDOMNode: [ 'getDOMNode', 'Use React.findDOMNode(component) instead.' ], isMounted: [ 'isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.' ], replaceProps: [ 'replaceProps', 'Instead call React.render again at the top level.' ], replaceState: [ 'replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).' ], setProps: [ 'setProps', 'Instead call React.render again at the top level.' ] }; var defineDeprecationWarning = function(methodName, info) { try { Object.defineProperty(ReactComponent.prototype, methodName, { get: function() { ("production" !== "development" ? warning( false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1] ) : null); return undefined; } }); } catch (x) { // IE will fail on defineProperty (es5-shim/sham too) } }; for (var fnName in deprecatedAPIs) { if (deprecatedAPIs.hasOwnProperty(fnName)) { defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); } } } module.exports = ReactComponent; },{"135":135,"154":154,"86":86}],35:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactComponentBrowserEnvironment */ /*jslint evil: true */ 'use strict'; var ReactDOMIDOperations = _dereq_(44); var ReactMount = _dereq_(70); /** * Abstracts away all functionality of the reconciler that requires knowledge of * the browser context. TODO: These callers should be refactored to avoid the * need for this injection. */ var ReactComponentBrowserEnvironment = { processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates, replaceNodeWithMarkupByID: ReactDOMIDOperations.dangerouslyReplaceNodeWithMarkupByID, /** * If a particular environment requires that some resources be cleaned up, * specify this in the injected Mixin. In the DOM, we would likely want to * purge any cached node ID lookups. * * @private */ unmountIDFromEnvironment: function(rootNodeID) { ReactMount.purgeID(rootNodeID); } }; module.exports = ReactComponentBrowserEnvironment; },{"44":44,"70":70}],36:[function(_dereq_,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactComponentEnvironment */ 'use strict'; var invariant = _dereq_(135); var injected = false; var ReactComponentEnvironment = { /** * Optionally injectable environment dependent cleanup hook. (server vs. * browser etc). Example: A browser system caches DOM nodes based on component * ID and must remove that cache entry when this instance is unmounted. */ unmountIDFromEnvironment: null, /** * Optionally injectable hook for swapping out mount images in the middle of * the tree. */ replaceNodeWithMarkupByID: null, /** * Optionally injectable hook for processing a queue of child updates. Will * later move into MultiChildComponents. */ processChildrenUpdates: null, injection: { injectEnvironment: function(environment) { ("production" !== "development" ? invariant( !injected, 'ReactCompositeComponent: injectEnvironment() can only be called once.' ) : invariant(!injected)); ReactComponentEnvironment.unmountIDFromEnvironment = environment.unmountIDFromEnvironment; ReactComponentEnvironment.replaceNodeWithMarkupByID = environment.replaceNodeWithMarkupByID; ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates; injected = true; } } }; module.exports = ReactComponentEnvironment; },{"135":135}],37:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactCompositeComponent */ 'use strict'; var ReactComponentEnvironment = _dereq_(36); var ReactContext = _dereq_(38); var ReactCurrentOwner = _dereq_(39); var ReactElement = _dereq_(57); var ReactElementValidator = _dereq_(58); var ReactInstanceMap = _dereq_(67); var ReactLifeCycle = _dereq_(68); var ReactNativeComponent = _dereq_(73); var ReactPerf = _dereq_(75); var ReactPropTypeLocations = _dereq_(77); var ReactPropTypeLocationNames = _dereq_(76); var ReactReconciler = _dereq_(81); var ReactUpdates = _dereq_(87); var assign = _dereq_(27); var emptyObject = _dereq_(115); var invariant = _dereq_(135); var shouldUpdateReactComponent = _dereq_(151); var warning = _dereq_(154); function getDeclarationErrorAddendum(component) { var owner = component._currentElement._owner || null; if (owner) { var name = owner.getName(); if (name) { return ' Check the render method of `' + name + '`.'; } } return ''; } /** * ------------------ The Life-Cycle of a Composite Component ------------------ * * - constructor: Initialization of state. The instance is now retained. * - componentWillMount * - render * - [children's constructors] * - [children's componentWillMount and render] * - [children's componentDidMount] * - componentDidMount * * Update Phases: * - componentWillReceiveProps (only called if parent updated) * - shouldComponentUpdate * - componentWillUpdate * - render * - [children's constructors or receive props phases] * - componentDidUpdate * * - componentWillUnmount * - [children's componentWillUnmount] * - [children destroyed] * - (destroyed): The instance is now blank, released by React and ready for GC. * * ----------------------------------------------------------------------------- */ /** * An incrementing ID assigned to each component when it is mounted. This is * used to enforce the order in which `ReactUpdates` updates dirty components. * * @private */ var nextMountID = 1; /** * @lends {ReactCompositeComponent.prototype} */ var ReactCompositeComponentMixin = { /** * Base constructor for all composite component. * * @param {ReactElement} element * @final * @internal */ construct: function(element) { this._currentElement = element; this._rootNodeID = null; this._instance = null; // See ReactUpdateQueue this._pendingElement = null; this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; this._renderedComponent = null; this._context = null; this._mountOrder = 0; this._isTopLevel = false; // See ReactUpdates and ReactUpdateQueue. this._pendingCallbacks = null; }, /** * Initializes the component, renders markup, and registers event listeners. * * @param {string} rootID DOM ID of the root node. * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction * @return {?string} Rendered markup to be inserted into the DOM. * @final * @internal */ mountComponent: function(rootID, transaction, context) { this._context = context; this._mountOrder = nextMountID++; this._rootNodeID = rootID; var publicProps = this._processProps(this._currentElement.props); var publicContext = this._processContext(this._currentElement._context); var Component = ReactNativeComponent.getComponentClassForElement( this._currentElement ); // Initialize the public class var inst = new Component(publicProps, publicContext); if ("production" !== "development") { // This will throw later in _renderValidatedComponent, but add an early // warning now to help debugging ("production" !== "development" ? warning( inst.render != null, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render` in your ' + 'component or you may have accidentally tried to render an element ' + 'whose type is a function that isn\'t a React component.', Component.displayName || Component.name || 'Component' ) : null); } // These should be set up in the constructor, but as a convenience for // simpler class abstractions, we set them up after the fact. inst.props = publicProps; inst.context = publicContext; inst.refs = emptyObject; this._instance = inst; // Store a reference from the instance back to the internal representation ReactInstanceMap.set(inst, this); if ("production" !== "development") { this._warnIfContextsDiffer(this._currentElement._context, context); } if ("production" !== "development") { // Since plain JS classes are defined without any special initialization // logic, we can not catch common errors early. Therefore, we have to // catch them here, at initialization time, instead. ("production" !== "development" ? warning( !inst.getInitialState || inst.getInitialState.isReactClassApproved, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component' ) : null); ("production" !== "development" ? warning( !inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component' ) : null); ("production" !== "development" ? warning( !inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component' ) : null); ("production" !== "development" ? warning( !inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component' ) : null); ("production" !== "development" ? warning( typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', (this.getName() || 'A component') ) : null); } var initialState = inst.state; if (initialState === undefined) { inst.state = initialState = null; } ("production" !== "development" ? invariant( typeof initialState === 'object' && !Array.isArray(initialState), '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent' ) : invariant(typeof initialState === 'object' && !Array.isArray(initialState))); this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; var childContext; var renderedElement; var previouslyMounting = ReactLifeCycle.currentlyMountingInstance; ReactLifeCycle.currentlyMountingInstance = this; try { if (inst.componentWillMount) { inst.componentWillMount(); // When mounting, calls to `setState` by `componentWillMount` will set // `this._pendingStateQueue` without triggering a re-render. if (this._pendingStateQueue) { inst.state = this._processPendingState(inst.props, inst.context); } } childContext = this._getValidatedChildContext(context); renderedElement = this._renderValidatedComponent(childContext); } finally { ReactLifeCycle.currentlyMountingInstance = previouslyMounting; } this._renderedComponent = this._instantiateReactComponent( renderedElement, this._currentElement.type // The wrapping type ); var markup = ReactReconciler.mountComponent( this._renderedComponent, rootID, transaction, this._mergeChildContext(context, childContext) ); if (inst.componentDidMount) { transaction.getReactMountReady().enqueue(inst.componentDidMount, inst); } return markup; }, /** * Releases any resources allocated by `mountComponent`. * * @final * @internal */ unmountComponent: function() { var inst = this._instance; if (inst.componentWillUnmount) { var previouslyUnmounting = ReactLifeCycle.currentlyUnmountingInstance; ReactLifeCycle.currentlyUnmountingInstance = this; try { inst.componentWillUnmount(); } finally { ReactLifeCycle.currentlyUnmountingInstance = previouslyUnmounting; } } ReactReconciler.unmountComponent(this._renderedComponent); this._renderedComponent = null; // Reset pending fields this._pendingStateQueue = null; this._pendingReplaceState = false; this._pendingForceUpdate = false; this._pendingCallbacks = null; this._pendingElement = null; // These fields do not really need to be reset since this object is no // longer accessible. this._context = null; this._rootNodeID = null; // Delete the reference from the instance to this internal representation // which allow the internals to be properly cleaned up even if the user // leaks a reference to the public instance. ReactInstanceMap.remove(inst); // Some existing components rely on inst.props even after they've been // destroyed (in event handlers). // TODO: inst.props = null; // TODO: inst.state = null; // TODO: inst.context = null; }, /** * Schedule a partial update to the props. Only used for internal testing. * * @param {object} partialProps Subset of the next props. * @param {?function} callback Called after props are updated. * @final * @internal */ _setPropsInternal: function(partialProps, callback) { // This is a deoptimized path. We optimize for always having an element. // This creates an extra internal element. var element = this._pendingElement || this._currentElement; this._pendingElement = ReactElement.cloneAndReplaceProps( element, assign({}, element.props, partialProps) ); ReactUpdates.enqueueUpdate(this, callback); }, /** * Filters the context object to only contain keys specified in * `contextTypes` * * @param {object} context * @return {?object} * @private */ _maskContext: function(context) { var maskedContext = null; // This really should be getting the component class for the element, // but we know that we're not going to need it for built-ins. if (typeof this._currentElement.type === 'string') { return emptyObject; } var contextTypes = this._currentElement.type.contextTypes; if (!contextTypes) { return emptyObject; } maskedContext = {}; for (var contextName in contextTypes) { maskedContext[contextName] = context[contextName]; } return maskedContext; }, /** * Filters the context object to only contain keys specified in * `contextTypes`, and asserts that they are valid. * * @param {object} context * @return {?object} * @private */ _processContext: function(context) { var maskedContext = this._maskContext(context); if ("production" !== "development") { var Component = ReactNativeComponent.getComponentClassForElement( this._currentElement ); if (Component.contextTypes) { this._checkPropTypes( Component.contextTypes, maskedContext, ReactPropTypeLocations.context ); } } return maskedContext; }, /** * @param {object} currentContext * @return {object} * @private */ _getValidatedChildContext: function(currentContext) { var inst = this._instance; var childContext = inst.getChildContext && inst.getChildContext(); if (childContext) { ("production" !== "development" ? invariant( typeof inst.constructor.childContextTypes === 'object', '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', this.getName() || 'ReactCompositeComponent' ) : invariant(typeof inst.constructor.childContextTypes === 'object')); if ("production" !== "development") { this._checkPropTypes( inst.constructor.childContextTypes, childContext, ReactPropTypeLocations.childContext ); } for (var name in childContext) { ("production" !== "development" ? invariant( name in inst.constructor.childContextTypes, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name ) : invariant(name in inst.constructor.childContextTypes)); } return childContext; } return null; }, _mergeChildContext: function(currentContext, childContext) { if (childContext) { return assign({}, currentContext, childContext); } return currentContext; }, /** * Processes props by setting default values for unspecified props and * asserting that the props are valid. Does not mutate its argument; returns * a new props object with defaults merged in. * * @param {object} newProps * @return {object} * @private */ _processProps: function(newProps) { if ("production" !== "development") { var Component = ReactNativeComponent.getComponentClassForElement( this._currentElement ); if (Component.propTypes) { this._checkPropTypes( Component.propTypes, newProps, ReactPropTypeLocations.prop ); } } return newProps; }, /** * Assert that the props are valid * * @param {object} propTypes Map of prop name to a ReactPropType * @param {object} props * @param {string} location e.g. "prop", "context", "child context" * @private */ _checkPropTypes: function(propTypes, props, location) { // TODO: Stop validating prop types here and only use the element // validation. var componentName = this.getName(); for (var propName in propTypes) { if (propTypes.hasOwnProperty(propName)) { var error; try { // This is intentionally an invariant that gets caught. It's the same // behavior as without this statement except with a better message. ("production" !== "development" ? invariant( typeof propTypes[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually ' + 'from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], propName ) : invariant(typeof propTypes[propName] === 'function')); error = propTypes[propName](props, propName, componentName, location); } catch (ex) { error = ex; } if (error instanceof Error) { // We may want to extend this logic for similar errors in // React.render calls, so I'm abstracting it away into // a function to minimize refactoring in the future var addendum = getDeclarationErrorAddendum(this); if (location === ReactPropTypeLocations.prop) { // Preface gives us something to blacklist in warning module ("production" !== "development" ? warning( false, 'Failed Composite propType: %s%s', error.message, addendum ) : null); } else { ("production" !== "development" ? warning( false, 'Failed Context Types: %s%s', error.message, addendum ) : null); } } } } }, receiveComponent: function(nextElement, transaction, nextContext) { var prevElement = this._currentElement; var prevContext = this._context; this._pendingElement = null; this.updateComponent( transaction, prevElement, nextElement, prevContext, nextContext ); }, /** * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate` * is set, update the component. * * @param {ReactReconcileTransaction} transaction * @internal */ performUpdateIfNecessary: function(transaction) { if (this._pendingElement != null) { ReactReconciler.receiveComponent( this, this._pendingElement || this._currentElement, transaction, this._context ); } if (this._pendingStateQueue !== null || this._pendingForceUpdate) { if ("production" !== "development") { ReactElementValidator.checkAndWarnForMutatedProps( this._currentElement ); } this.updateComponent( transaction, this._currentElement, this._currentElement, this._context, this._context ); } }, /** * Compare two contexts, warning if they are different * TODO: Remove this check when owner-context is removed */ _warnIfContextsDiffer: function(ownerBasedContext, parentBasedContext) { ownerBasedContext = this._maskContext(ownerBasedContext); parentBasedContext = this._maskContext(parentBasedContext); var parentKeys = Object.keys(parentBasedContext).sort(); var displayName = this.getName() || 'ReactCompositeComponent'; for (var i = 0; i < parentKeys.length; i++) { var key = parentKeys[i]; ("production" !== "development" ? warning( ownerBasedContext[key] === parentBasedContext[key], 'owner-based and parent-based contexts differ ' + '(values: `%s` vs `%s`) for key (%s) while mounting %s ' + '(see: http://fb.me/react-context-by-parent)', ownerBasedContext[key], parentBasedContext[key], key, displayName ) : null); } }, /** * Perform an update to a mounted component. The componentWillReceiveProps and * shouldComponentUpdate methods are called, then (assuming the update isn't * skipped) the remaining update lifecycle methods are called and the DOM * representation is updated. * * By default, this implements React's rendering and reconciliation algorithm. * Sophisticated clients may wish to override this. * * @param {ReactReconcileTransaction} transaction * @param {ReactElement} prevParentElement * @param {ReactElement} nextParentElement * @internal * @overridable */ updateComponent: function( transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext ) { var inst = this._instance; var nextContext = inst.context; var nextProps = inst.props; // Distinguish between a props update versus a simple state update if (prevParentElement !== nextParentElement) { nextContext = this._processContext(nextParentElement._context); nextProps = this._processProps(nextParentElement.props); if ("production" !== "development") { if (nextUnmaskedContext != null) { this._warnIfContextsDiffer( nextParentElement._context, nextUnmaskedContext ); } } // An update here will schedule an update but immediately set // _pendingStateQueue which will ensure that any state updates gets // immediately reconciled instead of waiting for the next batch. if (inst.componentWillReceiveProps) { inst.componentWillReceiveProps(nextProps, nextContext); } } var nextState = this._processPendingState(nextProps, nextContext); var shouldUpdate = this._pendingForceUpdate || !inst.shouldComponentUpdate || inst.shouldComponentUpdate(nextProps, nextState, nextContext); if ("production" !== "development") { ("production" !== "development" ? warning( typeof shouldUpdate !== 'undefined', '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent' ) : null); } if (shouldUpdate) { this._pendingForceUpdate = false; // Will set `this.props`, `this.state` and `this.context`. this._performComponentUpdate( nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext ); } else { // If it's determined that a component should not update, we still want // to set props and state but we shortcut the rest of the update. this._currentElement = nextParentElement; this._context = nextUnmaskedContext; inst.props = nextProps; inst.state = nextState; inst.context = nextContext; } }, _processPendingState: function(props, context) { var inst = this._instance; var queue = this._pendingStateQueue; var replace = this._pendingReplaceState; this._pendingReplaceState = false; this._pendingStateQueue = null; if (!queue) { return inst.state; } if (replace && queue.length === 1) { return queue[0]; } var nextState = assign({}, replace ? queue[0] : inst.state); for (var i = replace ? 1 : 0; i < queue.length; i++) { var partial = queue[i]; assign( nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial ); } return nextState; }, /** * Merges new props and state, notifies delegate methods of update and * performs update. * * @param {ReactElement} nextElement Next element * @param {object} nextProps Next public object to set as properties. * @param {?object} nextState Next object to set as state. * @param {?object} nextContext Next public object to set as context. * @param {ReactReconcileTransaction} transaction * @param {?object} unmaskedContext * @private */ _performComponentUpdate: function( nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext ) { var inst = this._instance; var prevProps = inst.props; var prevState = inst.state; var prevContext = inst.context; if (inst.componentWillUpdate) { inst.componentWillUpdate(nextProps, nextState, nextContext); } this._currentElement = nextElement; this._context = unmaskedContext; inst.props = nextProps; inst.state = nextState; inst.context = nextContext; this._updateRenderedComponent(transaction, unmaskedContext); if (inst.componentDidUpdate) { transaction.getReactMountReady().enqueue( inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst ); } }, /** * Call the component's `render` method and update the DOM accordingly. * * @param {ReactReconcileTransaction} transaction * @internal */ _updateRenderedComponent: function(transaction, context) { var prevComponentInstance = this._renderedComponent; var prevRenderedElement = prevComponentInstance._currentElement; var childContext = this._getValidatedChildContext(); var nextRenderedElement = this._renderValidatedComponent(childContext); if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) { ReactReconciler.receiveComponent( prevComponentInstance, nextRenderedElement, transaction, this._mergeChildContext(context, childContext) ); } else { // These two IDs are actually the same! But nothing should rely on that. var thisID = this._rootNodeID; var prevComponentID = prevComponentInstance._rootNodeID; ReactReconciler.unmountComponent(prevComponentInstance); this._renderedComponent = this._instantiateReactComponent( nextRenderedElement, this._currentElement.type ); var nextMarkup = ReactReconciler.mountComponent( this._renderedComponent, thisID, transaction, this._mergeChildContext(context, childContext) ); this._replaceNodeWithMarkupByID(prevComponentID, nextMarkup); } }, /** * @protected */ _replaceNodeWithMarkupByID: function(prevComponentID, nextMarkup) { ReactComponentEnvironment.replaceNodeWithMarkupByID( prevComponentID, nextMarkup ); }, /** * @protected */ _renderValidatedComponentWithoutOwnerOrContext: function() { var inst = this._instance; var renderedComponent = inst.render(); if ("production" !== "development") { // We allow auto-mocks to proceed as if they're returning null. if (typeof renderedComponent === 'undefined' && inst.render._isMockFunction) { // This is probably bad practice. Consider warning here and // deprecating this convenience. renderedComponent = null; } } return renderedComponent; }, /** * @private */ _renderValidatedComponent: function(childContext) { var renderedComponent; var previousContext = ReactContext.current; ReactContext.current = this._mergeChildContext( this._currentElement._context, childContext ); ReactCurrentOwner.current = this; try { renderedComponent = this._renderValidatedComponentWithoutOwnerOrContext(); } finally { ReactContext.current = previousContext; ReactCurrentOwner.current = null; } ("production" !== "development" ? invariant( // TODO: An `isValidNode` function would probably be more appropriate renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent), '%s.render(): A valid ReactComponent must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent' ) : invariant(// TODO: An `isValidNode` function would probably be more appropriate renderedComponent === null || renderedComponent === false || ReactElement.isValidElement(renderedComponent))); return renderedComponent; }, /** * Lazily allocates the refs object and stores `component` as `ref`. * * @param {string} ref Reference name. * @param {component} component Component to store as `ref`. * @final * @private */ attachRef: function(ref, component) { var inst = this.getPublicInstance(); var refs = inst.refs === emptyObject ? (inst.refs = {}) : inst.refs; refs[ref] = component.getPublicInstance(); }, /** * Detaches a reference name. * * @param {string} ref Name to dereference. * @final * @private */ detachRef: function(ref) { var refs = this.getPublicInstance().refs; delete refs[ref]; }, /** * Get a text description of the component that can be used to identify it * in error messages. * @return {string} The name or null. * @internal */ getName: function() { var type = this._currentElement.type; var constructor = this._instance && this._instance.constructor; return ( type.displayName || (constructor && constructor.displayName) || type.name || (constructor && constructor.name) || null ); }, /** * Get the publicly accessible representation of this component - i.e. what * is exposed by refs and returned by React.render. Can be null for stateless * components. * * @return {ReactComponent} the public component instance. * @internal */ getPublicInstance: function() { return this._instance; }, // Stub _instantiateReactComponent: null }; ReactPerf.measureMethods( ReactCompositeComponentMixin, 'ReactCompositeComponent', { mountComponent: 'mountComponent', updateComponent: 'updateComponent', _renderValidatedComponent: '_renderValidatedComponent' } ); var ReactCompositeComponent = { Mixin: ReactCompositeComponentMixin }; module.exports = ReactCompositeComponent; },{"115":115,"135":135,"151":151,"154":154,"27":27,"36":36,"38":38,"39":39,"57":57,"58":58,"67":67,"68":68,"73":73,"75":75,"76":76,"77":77,"81":81,"87":87}],38:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactContext */ 'use strict'; var assign = _dereq_(27); var emptyObject = _dereq_(115); var warning = _dereq_(154); var didWarn = false; /** * Keeps track of the current context. * * The context is automatically passed down the component ownership hierarchy * and is accessible via `this.context` on ReactCompositeComponents. */ var ReactContext = { /** * @internal * @type {object} */ current: emptyObject, /** * Temporarily extends the current context while executing scopedCallback. * * A typical use case might look like * * render: function() { * var children = ReactContext.withContext({foo: 'foo'}, () => ( * * )); * return
{children}
; * } * * @param {object} newContext New context to merge into the existing context * @param {function} scopedCallback Callback to run with the new context * @return {ReactComponent|array} */ withContext: function(newContext, scopedCallback) { if ("production" !== "development") { ("production" !== "development" ? warning( didWarn, 'withContext is deprecated and will be removed in a future version. ' + 'Use a wrapper component with getChildContext instead.' ) : null); didWarn = true; } var result; var previousContext = ReactContext.current; ReactContext.current = assign({}, previousContext, newContext); try { result = scopedCallback(); } finally { ReactContext.current = previousContext; } return result; } }; module.exports = ReactContext; },{"115":115,"154":154,"27":27}],39:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactCurrentOwner */ 'use strict'; /** * Keeps track of the current owner. * * The current owner is the component who should own any components that are * currently being constructed. * * The depth indicate how many composite components are above this render level. */ var ReactCurrentOwner = { /** * @internal * @type {ReactComponent} */ current: null }; module.exports = ReactCurrentOwner; },{}],40:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactDOM * @typechecks static-only */ 'use strict'; var ReactElement = _dereq_(57); var ReactElementValidator = _dereq_(58); var mapObject = _dereq_(142); /** * Create a factory that creates HTML tag elements. * * @param {string} tag Tag name (e.g. `div`). * @private */ function createDOMFactory(tag) { if ("production" !== "development") { return ReactElementValidator.createFactory(tag); } return ReactElement.createFactory(tag); } /** * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes. * This is also accessible via `React.DOM`. * * @public */ var ReactDOM = mapObject({ a: 'a', abbr: 'abbr', address: 'address', area: 'area', article: 'article', aside: 'aside', audio: 'audio', b: 'b', base: 'base', bdi: 'bdi', bdo: 'bdo', big: 'big', blockquote: 'blockquote', body: 'body', br: 'br', button: 'button', canvas: 'canvas', caption: 'caption', cite: 'cite', code: 'code', col: 'col', colgroup: 'colgroup', data: 'data', datalist: 'datalist', dd: 'dd', del: 'del', details: 'details', dfn: 'dfn', dialog: 'dialog', div: 'div', dl: 'dl', dt: 'dt', em: 'em', embed: 'embed', fieldset: 'fieldset', figcaption: 'figcaption', figure: 'figure', footer: 'footer', form: 'form', h1: 'h1', h2: 'h2', h3: 'h3', h4: 'h4', h5: 'h5', h6: 'h6', head: 'head', header: 'header', hr: 'hr', html: 'html', i: 'i', iframe: 'iframe', img: 'img', input: 'input', ins: 'ins', kbd: 'kbd', keygen: 'keygen', label: 'label', legend: 'legend', li: 'li', link: 'link', main: 'main', map: 'map', mark: 'mark', menu: 'menu', menuitem: 'menuitem', meta: 'meta', meter: 'meter', nav: 'nav', noscript: 'noscript', object: 'object', ol: 'ol', optgroup: 'optgroup', option: 'option', output: 'output', p: 'p', param: 'param', picture: 'picture', pre: 'pre', progress: 'progress', q: 'q', rp: 'rp', rt: 'rt', ruby: 'ruby', s: 's', samp: 'samp', script: 'script', section: 'section', select: 'select', small: 'small', source: 'source', span: 'span', strong: 'strong', style: 'style', sub: 'sub', summary: 'summary', sup: 'sup', table: 'table', tbody: 'tbody', td: 'td', textarea: 'textarea', tfoot: 'tfoot', th: 'th', thead: 'thead', time: 'time', title: 'title', tr: 'tr', track: 'track', u: 'u', ul: 'ul', 'var': 'var', video: 'video', wbr: 'wbr', // SVG circle: 'circle', clipPath: 'clipPath', defs: 'defs', ellipse: 'ellipse', g: 'g', line: 'line', linearGradient: 'linearGradient', mask: 'mask', path: 'path', pattern: 'pattern', polygon: 'polygon', polyline: 'polyline', radialGradient: 'radialGradient', rect: 'rect', stop: 'stop', svg: 'svg', text: 'text', tspan: 'tspan' }, createDOMFactory); module.exports = ReactDOM; },{"142":142,"57":57,"58":58}],41:[function(_dereq_,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * @providesModule ReactDOMButton */ 'use strict'; var AutoFocusMixin = _dereq_(2); var ReactBrowserComponentMixin = _dereq_(29); var ReactClass = _dereq_(33); var ReactElement = _dereq_(57); var keyMirror = _dereq_(140); var button = ReactElement.createFactory('button'); var mouseListenerNames = keyMirror({ onClick: true, onDoubleClick: true, onMouseDown: true, onMouseMove: true, onMouseUp: true, onClickCapture: true, onDoubleClickCapture: true, onMouseDownCapture: true, onMouseMoveCapture: true, onMouseUpCapture: true }); /** * Implements a
// around 2008-06-06 youtube changed their old embed code to this: // // old style was: // // 12-2010: // // 01-2011: // // function youtube_embed_to_short_code( $content ) { if ( false === strpos( $content, 'youtube.com' ) ) return $content; //older codes $regexp = '!(?:)*!i'; $regexp_ent = htmlspecialchars( $regexp, ENT_NOQUOTES ); $old_regexp = '!|>\s*)!'; $old_regexp_ent = str_replace( '&#0*58;', '&#0*58;|�*58;', htmlspecialchars( $old_regexp, ENT_NOQUOTES ) ); //new code $ifr_regexp = '!!i'; $ifr_regexp_ent = str_replace( '&#0*58;', '&#0*58;|�*58;', htmlspecialchars( $ifr_regexp, ENT_NOQUOTES ) ); foreach ( array( 'regexp', 'regexp_ent', 'old_regexp', 'old_regexp_ent', 'ifr_regexp', 'ifr_regexp_ent' ) as $reg ) { if ( ! preg_match_all( $$reg, $content, $matches, PREG_SET_ORDER ) ) continue; foreach ( $matches as $match ) { // Hack, but '?' should only ever appear once, and // it should be for the 1st field-value pair in query string, // if it is present // YouTube changed their embed code. // Example of how it is now: // // As shown at the start of function, previous YouTube didn't '?' // the 1st field-value pair. if ( in_array ( $reg, array( 'ifr_regexp', 'ifr_regexp_ent' ) ) ) { $params = $match[1]; if ( 'ifr_regexp_ent' == $reg ) $params = html_entity_decode( $params ); $params = wp_kses_hair( $params, array( 'http' ) ); $width = isset( $params['width'] ) ? (int) $params['width']['value'] : 0; $height = isset( $params['height'] ) ? (int) $params['height']['value'] : 0; $wh = ''; if ( $width && $height ) $wh = "&w=$width&h=$height"; $url = esc_url_raw( "https://www.youtube.com/watch?v={$match[3]}{$wh}" ); } else { $match[1] = str_replace( '?', '&', $match[1] ); $url = esc_url_raw( "https://www.youtube.com/watch?v=" . html_entity_decode( $match[1] ) ); } $content = str_replace( $match[0], "[youtube $url]", $content ); /** * Fires before the YouTube embed is transformed into a shortcode. * * @module shortcodes * * @since 1.2.0 * * @param string youtube Shortcode name. * @param string $url YouTube video URL. */ do_action( 'jetpack_embed_to_shortcode', 'youtube', $url ); } } return $content; } add_filter( 'pre_kses', 'youtube_embed_to_short_code' ); /** * Replaces plain-text links to YouTube videos with YouTube embeds. * * @param string $content HTML content * @return string The content with embeds instead of URLs */ function youtube_link( $content ) { return preg_replace_callback( '!(?:\n|\A)https?://(?:www\.)?(?:youtube.com/(?:v/|playlist|watch[/\#?])|youtu\.be/)[^\s]+?(?:\n|\Z)!i', 'youtube_link_callback', $content ); } /** * Callback function for the regex that replaces YouTube URLs with * YouTube embeds. */ function youtube_link_callback( $matches ) { return "\n" . youtube_id( $matches[0] ) . "\n"; } /** * Normalizes a YouTube URL to include a v= parameter and a query string free of encoded ampersands. * * @param string $url * @return string The normalized URL */ if ( ! function_exists( 'youtube_sanitize_url' ) ) : function youtube_sanitize_url( $url ) { $url = trim( $url, ' "' ); $url = trim( $url ); $url = str_replace( array( 'youtu.be/', '/v/', '#!v=', '&', '&', 'playlist' ), array( 'youtu.be/?v=', '/?v=', '?v=', '&', '&', 'videoseries' ), $url ); // Replace any extra question marks with ampersands - the result of a URL like "http://www.youtube.com/v/9FhMMmqzbD8?fs=1&hl=en_US" being passed in. $query_string_start = strpos( $url, "?" ); if ( false !== $query_string_start ) { $url = substr( $url, 0, $query_string_start + 1 ) . str_replace( "?", "&", substr( $url, $query_string_start + 1 ) ); } return $url; } endif; /* * url can be: * http://www.youtube.com/embed/videoseries?list=PL94269DA08231042B&hl=en_US * http://www.youtube.com/watch#!v=H2Ncxw1xfck * http://www.youtube.com/watch?v=H2Ncxw1xfck * http://www.youtube.com/watch?v=H2Ncxw1xfck&w=320&h=240&fmt=1&rel=0&showsearch=1&hd=0 * http://www.youtube.com/v/jF-kELmmvgA * http://www.youtube.com/v/9FhMMmqzbD8?fs=1&hl=en_US * http://youtu.be/Rrohlqeir5E */ /** * Converts a YouTube URL into an embedded YouTube video. */ function youtube_id( $url ) { if ( ! $id = jetpack_get_youtube_id( $url ) ) return ''; $url = youtube_sanitize_url( $url ); $url = parse_url( $url ); if ( ! isset( $url['query'] ) ) return false; if ( isset( $url['fragment'] ) ) { wp_parse_str( $url['fragment'], $fargs ); } else { $fargs = array(); } wp_parse_str( $url['query'], $qargs ); $qargs = array_merge( $fargs, $qargs ); // calculate the width and height, taking content_width into consideration global $content_width; $input_w = ( isset( $qargs['w'] ) && intval( $qargs['w'] ) ) ? intval( $qargs['w'] ) : 0; $input_h = ( isset( $qargs['h'] ) && intval( $qargs['h'] ) ) ? intval( $qargs['h'] ) : 0; $default_width = get_option('embed_size_w'); if ( empty( $default_width ) ) { if ( ! empty( $content_width ) ) { $default_width = $content_width; } else { $default_width = 640; } } if ( $input_w > 0 && $input_h > 0 ) { $w = $input_w; $h = $input_h; } elseif ( 0 == $input_w && 0 == $input_h ) { if ( isset( $qargs['fmt'] ) && intval( $qargs['fmt'] ) ) { $w = ( ! empty( $content_width ) ? min( $content_width, 480 ) : 480 ); } else { $w = ( ! empty( $content_width ) ? min( $content_width, $default_width ) : $default_width ); $h = ceil( ( $w / 16 ) * 9 ) + 30; } } elseif ( $input_w > 0 ) { $w = $input_w; $h = ceil( ( $w / 16 ) * 9 ) + 30; } else { if ( isset( $qargs['fmt'] ) && intval( $qargs['fmt'] ) ) { $w = ( ! empty( $content_width ) ? min( $content_width, 480 ) : 480 ); } else { $w = ( ! empty( $content_width ) ? min( $content_width, $default_width ) : $default_width ); $h = $input_h; } } /** * Filter the YouTube player width. * * @module shortcodes * * @since 1.1.0 * * @param int $w Width of the YouTube player in pixels. */ $w = (int) apply_filters( 'youtube_width', $w ); /** * Filter the YouTube player height. * * @module shortcodes * * @since 1.1.0 * * @param int $h Height of the YouTube player in pixels. */ $h = (int) apply_filters( 'youtube_height', $h ); $rel = ( isset( $qargs['rel'] ) && 0 == $qargs['rel'] ) ? 0 : 1; $search = ( isset( $qargs['showsearch'] ) && 1 == $qargs['showsearch'] ) ? 1 : 0; $info = ( isset( $qargs['showinfo'] ) && 0 == $qargs['showinfo'] ) ? 0 : 1; $iv = ( isset( $qargs['iv_load_policy'] ) && 3 == $qargs['iv_load_policy'] ) ? 3 : 1; $fmt = ( isset( $qargs['fmt'] ) && intval( $qargs['fmt'] ) ) ? '&fmt=' . (int) $qargs['fmt'] : ''; if ( ! isset( $qargs['autohide'] ) || ( $qargs['autohide'] < 0 || 2 < $qargs['autohide'] ) ) { $autohide = '&autohide=2'; } else { $autohide = '&autohide=' . absint( $qargs['autohide'] ); } $start = 0; if ( isset( $qargs['start'] ) ) { $start = intval( $qargs['start'] ); } else if ( isset( $qargs['t'] ) ) { $time_pieces = preg_split( '/(?<=\D)(?=\d+)/', $qargs['t'] ); foreach ( $time_pieces as $time_piece ) { $int = (int) $time_piece; switch ( substr( $time_piece, -1 ) ) { case 'h' : $start += $int * 3600; break; case 'm' : $start += $int * 60; break; case 's' : $start += $int; break; } } } $start = $start ? '&start=' . $start : ''; $end = ( isset( $qargs['end'] ) && intval( $qargs['end'] ) ) ? '&end=' . (int) $qargs['end'] : ''; $hd = ( isset( $qargs['hd'] ) && intval( $qargs['hd'] ) ) ? '&hd=' . (int) $qargs['hd'] : ''; $vq = ( isset( $qargs['vq'] ) && in_array( $qargs['vq'], array('hd720','hd1080') ) ) ? '&vq=' . $qargs['vq'] : ''; $cc = ( isset( $qargs['cc_load_policy'] ) ) ? '&cc_load_policy=1' : ''; $cc_lang = ( isset( $qargs['cc_lang_pref'] ) ) ? '&cc_lang_pref=' . preg_replace( '/[^_a-z0-9-]/i', '', $qargs['cc_lang_pref'] ) : ''; $wmode = ( isset( $qargs['wmode'] ) && in_array( strtolower( $qargs['wmode'] ), array( 'opaque', 'window', 'transparent' ) ) ) ? $qargs['wmode'] : 'transparent'; $theme = ( isset( $qargs['theme'] ) && in_array( strtolower( $qargs['theme'] ), array( 'dark', 'light' ) ) ) ? '&theme=' . $qargs['theme'] : ''; $autoplay = ''; /** * Allow YouTube videos to start playing automatically. * * @module shortcodes * * @since 2.2.2 * * @param bool false Enable autoplay for YouTube videos. */ if ( apply_filters( 'jetpack_youtube_allow_autoplay', false ) && isset( $qargs['autoplay'] ) ) $autoplay = '&autoplay=' . (int)$qargs['autoplay']; $alignmentcss = 'text-align:center;'; if ( isset( $qargs['align'] ) ) { switch ( $qargs['align'] ) { case 'left': $alignmentcss = "float:left; width:{$w}px; height:{$h}px; margin-right:10px; margin-bottom: 10px;"; break; case 'right': $alignmentcss = "float:right; width:{$w}px; height:{$h}px; margin-left:10px; margin-bottom: 10px;"; break; } } if ( ( isset( $url['path'] ) && '/videoseries' == $url['path'] ) || isset( $qargs['list'] ) ) { $html = ""; } else { $html = ""; } /** * Filter the YouTube video HTML output. * * @module shortcodes * * @since 1.2.3 * * @param string $html YouTube video HTML output. */ $html = apply_filters( 'video_embed_html', $html ); return $html; } function youtube_shortcode( $atts ) { return youtube_id( ( isset ( $atts[0] ) ) ? ltrim( $atts[0] , '=' ) : shortcode_new_to_old_params( $atts ) ); } add_shortcode( 'youtube', 'youtube_shortcode' ); /** * For bare URLs on their own line of the form * http://www.youtube.com/v/9FhMMmqzbD8?fs=1&hl=en_US */ function wpcom_youtube_embed_crazy_url( $matches, $attr, $url ) { return youtube_id( $url ); } function wpcom_youtube_embed_crazy_url_init() { wp_embed_register_handler( 'wpcom_youtube_embed_crazy_url', '#https?://(?:www\.)?(?:youtube.com/(?:v/|playlist|watch[/\#?])|youtu\.be/).*#i', 'wpcom_youtube_embed_crazy_url' ); } add_action( 'init', 'wpcom_youtube_embed_crazy_url_init' ); /** * Allow oEmbeds in Jetpack's Comment form. * * @module shortcodes * * @since 2.8.0 * * @param int get_option('embed_autourls') Option to automatically embed all plain text URLs. */ if ( apply_filters( 'jetpack_comments_allow_oembed', get_option('embed_autourls') ) ) { // We attach wp_kses_post to comment_text in default-filters.php with priority of 10 anyway, so the iframe gets filtered out. if ( ! is_admin() ) { // Higher priority because we need it before auto-link and autop get to it add_filter( 'comment_text', 'youtube_link', 1 ); } } /** * Core changes to do_shortcode (https://core.trac.wordpress.org/changeset/34747) broke "improper" shortcodes * with the format [shortcode=http://url.com]. * * This removes the "=" from the shortcode so it can be parsed. * * @see https://github.com/Automattic/jetpack/issues/3121 */ function jetpack_fix_youtube_shortcode_display_filter( $content ) { if ( strpos( $content, '[youtube=' ) !== false ) { $content = preg_replace( '@\[youtube=(.*?)\]@', '[youtube $1]', $content ); } return $content; } add_filter( 'the_content', 'jetpack_fix_youtube_shortcode_display_filter', 7 ); plugins/jetpack/modules/shortcodes/polldaddy.php0000644000312500031250000004146512654411246022607 0ustar eacbforgeacbforgcompress_it( $include ); $placeholder = '
'; if ( 'button' === $settings['type'] ) { $placeholder = '' . esc_html( $settings['title'] ) . ''; } $js_include = $placeholder . "\n"; $js_include .= '\n"; if ( 'button' !== $settings['type'] ) { $js_include .= '\n"; } return $js_include; } private function compress_it( $js ) { $js = str_replace( array( "\n", "\t", "\r" ), '', $js ); $js = preg_replace( '/\s*([,:\?\{;\-=\(\)])\s*/', '$1', $js ); return $js; } /* * Polldaddy Poll Embed script - transforms code that looks like that: * * * into the [polldaddy poll=...] shortcode format */ function polldaddy_embed_to_shortcode( $content ) { if ( false === strpos( $content, 'polldaddy.com/p/' ) ) { return $content; } $regexes = array(); $regexes[] = '#]+?src="https?://(secure|static)\.polldaddy\.com/p/([0-9]+)\.js"[^>]*+>\s*?\r?\n?()?#i'; $regexes[] = '#<script(?:[^&]|&(?!gt;))+?src="https?://(secure|static)\.polldaddy\.com/p/([0-9]+)\.js"(?:[^&]|&(?!gt;))*+>\s*?</script>\r?\n?(<noscript>.*?</noscript>)?#i'; foreach ( $regexes as $regex ) { if ( ! preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ) ) { continue; } foreach ( $matches as $match ) { if ( ! isset( $match[2] ) ) { continue; } $id = (int) $match[2]; if ( $id > 0 ) { $content = str_replace( $match[0], " [polldaddy poll=$id]", $content ); /** This action is documented in modules/shortcodes/youtube.php */ do_action( 'jetpack_embed_to_shortcode', 'polldaddy', $id ); } } } return $content; } /** * Shortcode for polldadddy * [polldaddy poll|survey|rating="123456"] * * */ function polldaddy_shortcode( $atts ) { global $post; global $content_width; extract( shortcode_atts( array( 'survey' => null, 'link_text' => 'Take Our Survey', 'poll' => 'empty', 'rating' => 'empty', 'unique_id' => null, 'item_id' => null, 'title' => null, 'permalink' => null, 'cb' => 0, 'type' => 'button', 'body' => '', 'button' => '', 'text_color' => '000000', 'back_color' => 'FFFFFF', 'align' => '', 'style' => '', 'width' => $content_width, 'height' => floor( $content_width * 3 / 4 ), 'delay' => 100, 'visit' => 'single', 'domain' => '', 'id' => '', ), $atts, 'polldaddy' ) ); if ( ! is_array( $atts ) ) { return ''; } $inline = ! in_the_loop(); $no_script = false; $infinite_scroll = false; if ( is_home() && current_theme_supports( 'infinite-scroll' ) ) { $infinite_scroll = true; } if ( defined( 'PADPRESS_LOADED' ) ) { $inline = true; } if ( function_exists( 'get_option' ) && get_option( 'polldaddy_load_poll_inline' ) ) { $inline = true; } if ( is_feed() || ( defined( 'DOING_AJAX' ) && ! $infinite_scroll ) ) { $no_script = false; } self::$add_script = $infinite_scroll; if ( intval( $rating ) > 0 && ! $no_script ) { //rating embed if ( empty( $unique_id ) ) { $unique_id = is_page() ? 'wp-page-' . $post->ID : 'wp-post-' . $post->ID; } if ( empty( $item_id ) ) { $item_id = is_page() ? '_page_' . $post->ID : '_post_' . $post->ID; } if ( empty( $title ) ) { /** This filter is documented in core/src/wp-includes/general-template.php */ $title = apply_filters( 'wp_title', $post->post_title, '', '' ); } if ( empty( $permalink ) ) { $permalink = get_permalink( $post->ID ); } $rating = intval( $rating ); $unique_id = preg_replace( '/[^\-_a-z0-9]/i', '', wp_strip_all_tags( $unique_id ) ); $item_id = wp_strip_all_tags( $item_id ); $item_id = preg_replace( '/[^_a-z0-9]/i', '', $item_id ); $settings = json_encode( array( 'id' => $rating, 'unique_id' => $unique_id, 'title' => rawurlencode( trim( $title ) ), 'permalink' => esc_url( $permalink ), 'item_id' => $item_id, ) ); $item_id = esc_js( $item_id ); if ( is_ssl() ) { $rating_js_file = "https://polldaddy.com/js/rating/rating.js"; } else { $rating_js_file = "http://i0.poll.fm/js/rating/rating.js"; } if ( $inline ) { return << SCRIPT; } else { if ( false === self::$scripts ) { self::$scripts = array(); } $data = array( 'id' => $rating, 'item_id' => $item_id, 'settings' => $settings ); self::$scripts['rating'][] = $data; add_action( 'wp_footer', array( $this, 'generate_scripts' ) ); $data = esc_attr( json_encode( $data ) ); if ( $infinite_scroll ) { return << CONTAINER; } else { return << CONTAINER; } } } elseif ( intval( $poll ) > 0 ) { //poll embed $poll = intval( $poll ); $poll_url = sprintf( 'http://polldaddy.com/poll/%d', $poll ); $poll_js = sprintf( '%s.polldaddy.com/p/%d.js', ( is_ssl() ? 'https://secure' : 'http://static' ), $poll ); $poll_link = sprintf( 'Take Our Poll', $poll_url ); if ( $no_script ) { return $poll_link; } else { if ( $type == 'slider' && !$inline ) { if ( ! in_array( $visit, array( 'single', 'multiple' ) ) ) { $visit = 'single'; } $settings = array( 'type' => 'slider', 'embed' => 'poll', 'delay' => intval( $delay ), 'visit' => $visit, 'id' => intval( $poll ) ); return $this->get_async_code( $settings, $poll_link ); } else { $cb = ( $cb == 1 ? '?cb='.mktime() : false ); $margins = ''; $float = ''; if ( in_array( $align, array( 'right', 'left' ) ) ) { $float = sprintf( 'float: %s;', $align ); if ( $align == 'left') $margins = 'margin: 0px 10px 0px 0px;'; elseif ( $align == 'right' ) $margins = 'margin: 0px 0px 0px 10px'; } // Force the normal style embed on single posts/pages otherwise it's not rendered on infinite scroll themed blogs ('infinite_scroll_render' isn't fired) if ( is_singular() ) { $inline = true; } if ( false === $cb && ! $inline ) { if ( false === self::$scripts ) { self::$scripts = array(); } $data = array( 'url' => $poll_js ); self::$scripts['poll'][intval( $poll )] = $data; add_action( 'wp_footer', array( $this, 'generate_scripts' ) ); $data = esc_attr( json_encode( $data ) ); $script_url = esc_url_raw( plugins_url( 'js/polldaddy-shortcode.js', __FILE__ ) ); $str = <<
CONTAINER; $loader = <<"; return $str . $loader; } else { if ( $inline ) { $cb = ''; } return <<
CONTAINER; } } } } elseif ( ! empty( $survey ) ) { //survey embed if ( in_array( $type, array( 'iframe', 'button', 'banner', 'slider' ) ) ) { if ( empty( $title ) ) { $title = __( 'Take Our Survey', 'jetpack' ); if( ! empty( $link_text ) ) { $title = $link_text; } } if ( $type == 'banner' || $type == 'slider' ) $inline = false; $survey = preg_replace( '/[^a-f0-9]/i', '', $survey ); $survey_url = esc_url( "http://polldaddy.com/s/{$survey}" ); $survey_link = sprintf( '%s', $survey_url, esc_html( $title ) ); $settings = array(); // Do we want a full embed code or a link? if ( $no_script || $inline || $infinite_scroll ) { return $survey_link; } if ( $type == 'iframe' ) { if ( $height != 'auto' ) { if ( isset( $content_width ) && is_numeric( $width ) && $width > $content_width ) { $width = $content_width; } if ( ! $width ) { $width = '100%'; } else { $width = (int) $width; } if ( ! $height ) { $height = '600'; } else { $height = (int) $height; } return <<{$survey_link} CONTAINER; } elseif ( ! empty( $domain ) && ! empty( $id ) ) { $domain = preg_replace( '/[^a-z0-9\-]/i', '', $domain ); $id = preg_replace( '/[\/\?&\{\}]/', '', $id ); $auto_src = esc_url( "http://{$domain}.polldaddy.com/s/{$id}" ); $auto_src = parse_url( $auto_src ); if ( ! is_array( $auto_src ) || count( $auto_src ) == 0 ) { return ''; } if ( ! isset( $auto_src['host'] ) || ! isset( $auto_src['path'] ) ) { return ''; } $domain = $auto_src['host'].'/s/'; $id = str_ireplace( '/s/', '', $auto_src['path'] ); $settings = array( 'type' => $type, 'auto' => true, 'domain' => $domain, 'id' => $id ); } } else { $text_color = preg_replace( '/[^a-f0-9]/i', '', $text_color ); $back_color = preg_replace( '/[^a-f0-9]/i', '', $back_color ); if ( ! in_array( $align, array( 'right', 'left', 'top-left', 'top-right', 'middle-left', 'middle-right', 'bottom-left', 'bottom-right' ) ) ) { $align = ''; } if ( ! in_array( $style, array( 'inline', 'side', 'corner', 'rounded', 'square' ) ) ) { $style = ''; } $title = wp_strip_all_tags( $title ); $body = wp_strip_all_tags( $body ); $button = wp_strip_all_tags( $button ); $settings = array_filter( array( 'title' => $title, 'type' => $type, 'body' => $body, 'button' => $button, 'text_color' => $text_color, 'back_color' => $back_color, 'align' => $align, 'style' => $style, 'id' => $survey, ) ); } if ( empty( $settings ) ) { return ''; } return $this->get_async_code( $settings, $survey_link ); } } else { return ''; } } function generate_scripts() { $script = ''; if ( is_array( self::$scripts ) ) { if ( is_ssl() ) { $rating_js_file = "https://polldaddy.com/js/rating/rating.js"; } else { $rating_js_file = "http://i0.poll.fm/js/rating/rating.js"; } if ( isset( self::$scripts['rating'] ) ) { $script = ""; } if ( isset( self::$scripts['poll'] ) ) { foreach( self::$scripts['poll'] as $poll ) { $script .= ""; } } } self::$scripts = false; echo $script; } /** * If the theme uses infinite scroll, include jquery at the start */ function check_infinite() { if ( current_theme_supports( 'infinite-scroll' ) && class_exists( 'The_Neverending_Home_Page' ) && The_Neverending_Home_Page::archive_supports_infinity() ) { wp_enqueue_script( 'jquery' ); } } /** * Dynamically load the .js, if needed * * This hooks in late (priority 11) to infinite_scroll_render to determine * a posteriori if a shortcode has been called. */ function polldaddy_shortcode_infinite() { // only try to load if a shortcode has been called and theme supports infinite scroll if( self::$add_script ) { $script_url = esc_url_raw( plugins_url( 'js/polldaddy-shortcode.js', __FILE__ ) ); // if the script hasn't been loaded, load it // if the script loads successfully, fire an 'pd-script-load' event echo << SCRIPT; } } } // kick it all off new PolldaddyShortcode(); if ( ! function_exists( 'polldaddy_link' ) ) { // http://polldaddy.com/poll/1562975/?view=results&msg=voted function polldaddy_link( $content ) { return preg_replace( '!(?:\n|\A)http://polldaddy.com/poll/([0-9]+?)/(.+)?(?:\n|\Z)!i', "\n\n", $content ); } // higher priority because we need it before auto-link and autop get to it add_filter( 'the_content', 'polldaddy_link', 1 ); add_filter( 'the_content_rss', 'polldaddy_link', 1 ); /** This filter is documented in modules/shortcodes/youtube.php */ if ( apply_filters( 'jetpack_comments_allow_oembed', get_option( 'embed_autourls' ) ) ) { add_filter( 'comment_text', 'polldaddy_link', 1 ); } } wp_oembed_add_provider( '#http://poll\.fm/.*#i', 'http://polldaddy.com/oembed/', true ); } plugins/jetpack/modules/shortcodes/twitchtv.php0000644000312500031250000000650212654411246022500 0ustar eacbforgeacbforg (Archive URL) http://www.twitch.tv/paperbat/v/323486192 */ function wpcom_twitchtv_shortcode( $attr, $content = NULL ) { $attr = extract( shortcode_atts( array( 'height' => 378, 'width' => 620, 'url' => '', 'autoplay' => false ), $attr ) ); if ( empty( $url ) ) return; preg_match( '|^http://www.twitch.tv/([^/?]+)(/v/(\d+))?|i', $url, $match ); $width = (int) $width; $height = (int) $height; $autoplay = var_export( filter_var( $autoplay, FILTER_VALIDATE_BOOLEAN ), true ); $user_id = esc_attr( $match[1] ); $video_id = 0; if ( !empty( $match[3] ) ) $video_id = (int) $match[3]; /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'twitchtv', 'shortcode' ); if ( $video_id > 0 ) { // Archive video return " "; } $html = " "; return $html; } add_shortcode( 'twitch', 'wpcom_twitchtv_shortcode' ); add_shortcode( 'twitchtv', 'wpcom_twitchtv_shortcode' ); plugins/jetpack/modules/shortcodes/slideshare.php0000644000312500031250000000516012654410417022745 0ustar eacbforgeacbforg'; extract( $arguments ); // check that the Slideshare ID contains letters, numbers and query strings $pattern = '/[^-_a-zA-Z0-9?=&]/'; if ( empty( $id ) || preg_match( $pattern, $id ) ) return ''; // check the width/height if ( empty( $w ) && ! empty( $content_width ) ) $w = intval( $content_width ); elseif ( ! ( $w = intval( $w ) ) || $w < 300 || $w > 1600 ) $w = 425; else $w = intval( $w ); $h = ceil( $w * 348 / 425 ); if ( isset( $pro ) ) { $source = "https://www.slideshare.net/slidesharepro/$id"; } else { $source = "https://www.slideshare.net/slideshow/embed_code/$id"; } if ( isset( $rel ) ) $source = add_query_arg( 'rel', intval( $rel ), $source ); if ( isset( $startSlide ) ) $source = add_query_arg( 'startSlide', intval( $startSlide ), $source ); $player = sprintf( "

Eskmo 'We Got More' (Official Video) from Ninja Tune on Vimeo.

*/ function jetpack_shortcode_get_vimeo_id( $atts ) { if ( isset( $atts[0] ) ) { $atts[0] = trim( $atts[0] , '=' ); $id = false; if ( is_numeric( $atts[0] ) ) $id = (int) $atts[0]; elseif ( preg_match( '|vimeo\.com/(\d+)/?$|i', $atts[0], $match ) ) $id = (int) $match[1]; elseif ( preg_match( '|player\.vimeo\.com/video/(\d+)/?$|i', $atts[0], $match ) ) $id = (int) $match[1]; return $id; } return 0; } /** * Convert a Vimeo shortcode into an embed code. * * @param array $atts An array of shortcode attributes. * @return string The embed code for the Vimeo video. */ function vimeo_shortcode( $atts ) { global $content_width; extract( array_map( 'intval', shortcode_atts( array( 'id' => 0, 'width' => 400, 'height' => 300, 'autoplay' => 0, 'loop' => 0, ), $atts, 'vimeo' ) ) ); if ( isset( $atts[0] ) ) { $id = jetpack_shortcode_get_vimeo_id( $atts ); } if ( ! $id ) return ""; // [vimeo 141358 h=500&w=350] $params = shortcode_new_to_old_params( $atts ); // h=500&w=350 $params = str_replace( array( '&', '&' ), '&', $params ); parse_str( $params, $args ); if ( isset( $args['w'] ) ) { $width = (int) $args['w']; if ( ! isset( $args['h'] ) ) { // The case where w=300 is specified without h=200, otherwise $height // will always equal the default of 300, no matter what w was set to. $height = round( ( $width / 640 ) * 360 ); } } if ( isset( $args['h'] ) ) { $height = (int) $args['h']; if ( ! isset( $args['w'] ) ) { $width = round( ( $height / 360 ) * 640 ); } } if ( ! $width ) { $width = absint( $content_width ); } if ( ! $height ) { $height = round( ( $width / 640 ) * 360 ); } /** * Filter the Vimeo player width. * * @module shortcodes * * @since 3.4.0 * * @param int $width Width of the Vimeo player in pixels. */ $width = (int) apply_filters( 'vimeo_width', $width ); /** * Filter the Vimeo player height. * * @module shortcodes * * @since 3.4.0 * * @param int $height Height of the Vimeo player in pixels. */ $height = (int) apply_filters( 'vimeo_height', $height ); $url = esc_url( "https://player.vimeo.com/video/$id" ); // $args['autoplay'] is parsed from the embedded url. // $autoplay is parsed from shortcode arguments. // in_array( 'autoplay', $atts ) catches the argument passed without a value. if ( ! empty( $args['autoplay'] ) || ! empty( $autoplay ) || in_array( 'autoplay', $atts ) ) { $url = add_query_arg( 'autoplay', 1, $url ); } if ( ! empty( $args['loop'] ) || ! empty( $loop ) || in_array( 'loop', $atts ) ) { $url = add_query_arg( 'loop', 1, $url ); } $html = sprintf( '
', esc_url( $url ), $width, $height ); /** * Filter the Vimeo player HTML. * * @module shortcodes * * @since 1.2.3 * * @param string $html Embedded Vimeo player HTML. */ $html = apply_filters( 'video_embed_html', $html ); return $html; } add_shortcode( 'vimeo', 'vimeo_shortcode' ); /** * Callback to modify output of embedded Vimeo video using Jetpack's shortcode. * * @since 3.9 * * @param array $matches Regex partial matches against the URL passed. * @param array $attr Attributes received in embed response * @param array $url Requested URL to be embedded * * @return string Return output of Vimeo shortcode with the proper markup. */ function wpcom_vimeo_embed_url( $matches, $attr, $url ) { return vimeo_shortcode( array( $url ) ); } /** * For bare URLs on their own line of the form * http://vimeo.com/12345 * * @since 3.9 * * @uses wpcom_vimeo_embed_url */ function wpcom_vimeo_embed_url_init() { wp_embed_register_handler( 'wpcom_vimeo_embed_url', '#https?://(.+\.)?vimeo\.com/#i', 'wpcom_vimeo_embed_url' ); } // Register handler to modify Vimeo embeds using Jetpack's shortcode output. add_action( 'init', 'wpcom_vimeo_embed_url_init' ); function vimeo_embed_to_shortcode( $content ) { if ( false === stripos( $content, 'player.vimeo.com/video/' ) ) return $content; $regexp = '!!i'; $regexp_ent = str_replace( '&#0*58;', '&#0*58;|�*58;', htmlspecialchars( $regexp, ENT_NOQUOTES ) ); foreach ( array( 'regexp', 'regexp_ent' ) as $reg ) { if ( !preg_match_all( $$reg, $content, $matches, PREG_SET_ORDER ) ) continue; foreach ( $matches as $match ) { $id = (int) $match[2]; $params = $match[3]; if ( 'regexp_ent' == $reg ) $params = html_entity_decode( $params ); $params = wp_kses_hair( $params, array( 'http' ) ); $width = isset( $params['width'] ) ? (int) $params['width']['value'] : 0; $height = isset( $params['height'] ) ? (int) $params['height']['value'] : 0; $wh = ''; if ( $width && $height ) $wh = ' w=' . $width . ' h=' . $height; $shortcode = '[vimeo ' . $id . $wh . ']'; $content = str_replace( $match[0], $shortcode, $content ); } } return $content; } add_filter( 'pre_kses', 'vimeo_embed_to_shortcode' ); /** * Replaces plain-text links to Vimeo videos with Vimeo embeds. * * @since 3.7.0 * * @param string $content HTML content * @return string The content with embeds instead of URLs */ function vimeo_link( $content ) { return preg_replace_callback( '#https://vimeo.com/\d*#', 'vimeo_link_callback', $content ); } /** * Callback function for the regex that replaces Vimeo URLs with Vimeo embeds. * * @since 3.7.0 * * @param array $matches An array containing a Vimeo URL. * @return string THe Vimeo HTML embed code. */ function vimeo_link_callback( $matches ) { // Grab the Vimeo ID from the URL if ( preg_match( '|vimeo\.com/(\d+)/?$|i', $matches[0], $match ) ) { $id = (int) $match[1]; } // Pass that ID to the Vimeo shortcode function. if ( $id ) { $atts = array( 'id' => $id ); } return "\n" . vimeo_shortcode( $atts ) . "\n"; } /** This filter is documented in modules/shortcodes/youtube.php */ if ( apply_filters( 'jetpack_comments_allow_oembed', get_option('embed_autourls') ) ) { // We attach wp_kses_post to comment_text in default-filters.php with priority of 10 anyway, so the iframe gets filtered out. if ( ! is_admin() ) { // Higher priority because we need it before auto-link and autop get to it add_filter( 'comment_text', 'vimeo_link', 1 ); } } plugins/jetpack/modules/shortcodes/mixcloud.php0000644000312500031250000000412512651056012022440 0ustar eacbforgeacbforg"; $regular_expression = '#((?<=mixcloud.com/)([A-Za-z0-9%-]+/[A-Za-z0-9%-]+))|^([A-Za-z0-9%-]+/[A-Za-z0-9%-]+)#i'; preg_match( $regular_expression, $content, $match ); if ( ! empty( $match ) ) { $resource_id = trim( $match[0] ); } else { preg_match( $regular_expression, $atts[0], $match ); if ( ! empty( $match ) ) $resource_id = trim( $match[0] ); } if ( empty( $resource_id ) ) return ""; $atts = shortcode_atts( array( 'width' => 300, 'height' => 300, ), $atts, 'mixcloud' ); // Build URL $url = add_query_arg( $atts, "http://api.mixcloud.com/$resource_id/embed-html/" ); $head = wp_remote_head( $url ); if ( is_wp_error( $head ) || 200 != $head['response']['code'] ) return ""; return sprintf( '', $atts['width'], $atts['height'], esc_url( $url ) ); } plugins/jetpack/modules/shortcodes/twitter-timeline.php0000644000312500031250000000202412654411246024125 0ustar eacbforgeacbforg '', 'id' => '', 'height' => 282, 'width' => 450, ); $attr = shortcode_atts( $default_atts, $attr, 'twitter-timeline' ); if ( $attr['username'] != preg_replace( '/[^A-Za-z0-9_]+/', '', $attr['username'] ) ) return ''; if ( ! is_numeric( $attr['id'] ) ) return ''; $tweets_by = sprintf( __( 'Tweets by @%s', 'jetpack' ), $attr['username'] ); $output = '' . esc_html( $tweets_by ) . ''; add_action( 'wp_footer', 'twitter_timeline_js' ); return $output; } function twitter_timeline_js() { echo ''; } plugins/jetpack/modules/shortcodes/cartodb.php0000644000312500031250000000113312651056012022226 0ustar eacbforgeacbforgDaryl Koopersmith. Powered by jmpress.js Version: 0.2 Author: Automattic Author URI: http://automattic.com/wordpress-plugins/ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ /** * Known issues: * * - IE 7/8 are not supported by jmpress and presentations will not work * - IE 9 will not animate transitions at all, though it's possible to at least * switch between slides. * - Infinite Scroll themes will not load presentations properly unless the post * happens to be on the first loaded page. The permalink page will function * properly, however. * - Exiting fullscreen mode will not properly reset the scroll locations in Safari */ /* HOW TO: How the plugin settings are organized and which features are supported. The entire presentation should be wrapped with a [presentation] shortcode, and every individual slide should be wrapped with a [slide] shortcode. Any settings supported by [slide] can be set into [presentation], which will apply that setting for the entire presentation unless overridden by individual slides. - [presentation] only settings: - duration: transition durations, default is one second. - height: content height, default is 400px - width: content width, default is 550px - autoplay: delay between transitions in seconds, default 3s when set the presentation will automatically transition between slides as long as the presentation remains in focus - [slide] settings: - transition: specifies where the next slide will be placed relative to the last one before it. Supported values are "up", "down" "left", "right", or "none". Default value is "down". - scale: scales the content relative to other slides, default value is one - rotate: rotates the content by the specified degrees, default is zero - fade: slides will fade in and out during transition. Values of "on" or "true" will enable fading, while values of "no" or "false" will disable it. Default value is "on" - bgcolor: specifies a background color for the slides. Any CSS valid value is permitted. Default color is transparent. - bgimg: specifies an image url which will fill the background. Image is set to fill the background 100% width and height - fadebullets: any html
  • tags will start out with an opacity of 0 and any subsequent slide transitions will show the bullets one by one */ if ( ! class_exists( 'Presentations' ) ) : class Presentations { private $presentation_settings; private $presentation_initialized; private $scripts_and_style_included; /** * Constructor */ function __construct() { // Bail without 3.0. if ( ! function_exists( '__return_false' ) ) return; $this->presentation_initialized = false; $this->scripts_and_style_included = false; // Registers shortcodes add_action( 'wp_head', array( &$this, 'add_scripts' ), 1 ); add_shortcode( 'presentation', array( &$this, 'presentation_shortcode' ) ); add_shortcode( 'slide', array( &$this, 'slide_shortcode' ) ); } function add_scripts() { $this->scripts_and_style_included = false; if ( empty( $GLOBALS['posts'] ) || !is_array( $GLOBALS['posts'] ) ) { return; } foreach ( $GLOBALS['posts'] as $p ) { if ( has_shortcode( $p->post_content, 'presentation' ) ) { $this->scripts_and_style_included = true; break; } } if ( ! $this->scripts_and_style_included ) return; $plugin = plugin_dir_url( __FILE__ ); // Add CSS wp_enqueue_style('presentations', $plugin . 'css/style.css'); // Add JavaScript wp_enqueue_script('jquery'); wp_enqueue_script('jmpress', $plugin . 'js/jmpress.min.js', array('jquery'), '0.4.5', true); wp_enqueue_script('presentations', $plugin . 'js/main.js', array('jquery', 'jmpress'), false, true); } function presentation_shortcode( $atts, $content='' ) { // Mark that we've found a valid [presentation] shortcode $this->presentation_initialized = true; $atts = shortcode_atts( array( 'duration' => '', 'height' => '', 'width' => '', 'bgcolor' => '', 'bgimg' => '', 'autoplay' => '', // Settings 'transition' => '', 'scale' => '', 'rotate' => '', 'fade' => '', 'fadebullets' => '', ), $atts, 'presentation' ); $this->presentation_settings = array( 'transition' => 'down', 'scale' => 1, 'rotate' => 0, 'fade' => 'on', 'fadebullets' => 0, 'last' => array( 'x' => 0, 'y' => 0, 'scale' => 1, 'rotate' => 0, ), ); // Set the presentation-wide settings if ( '' != trim( $atts['transition'] ) ) $this->presentation_settings['transition'] = $atts['transition']; if ( '' != trim( $atts['scale'] ) ) $this->presentation_settings['scale'] = floatval( $atts['scale'] ); if ( '' != trim( $atts['rotate'] ) ) $this->presentation_settings['rotate'] = floatval( $atts['rotate'] ); if ( '' != trim( $atts['fade'] ) ) $this->presentation_settings['fade'] = $atts['fade']; if ( '' != trim( $atts['fadebullets'] ) ) $this->presentation_settings['fadebullets'] = $atts['fadebullets']; // Set any settings the slides don't care about if ( '' != trim( $atts['duration'] ) ) $duration = floatval( $atts['duration'] ) . 's'; else $duration = '1s'; // Autoplay durations are set in milliseconds if ( '' != trim( $atts['autoplay'] ) ) $autoplay = floatval( $atts['autoplay'] ) * 1000; else $autoplay = 0; // No autoplay // Set the presentation size as specified or with some nicely sized dimensions if ( '' != trim( $atts['width'] ) ) $this->presentation_settings['width'] = intval( $atts['width'] ); else $this->presentation_settings['width'] = 480; if ( '' != trim( $atts['height'] ) ) $this->presentation_settings['height'] = intval( $atts['height'] ); else $this->presentation_settings['height'] = 370; // Hide the content by default in case the scripts fail $style = 'display: none; width: ' . $this->presentation_settings['width'] . 'px; height: ' . $this->presentation_settings['height'] . 'px;'; // Check for background color XOR background image // Use a white background if nothing specified if ( preg_match( '/https?\:\/\/[^\'"\s]*/', $atts['bgimg'], $matches ) ) { $style .= ' background-image: url("' . esc_url( $matches[0] ) . '");'; } else if ( '' != trim( $atts['bgcolor'] ) ) { $style .= ' background-color: ' . esc_attr( $atts['bgcolor'] ) . ';'; } else { $style .= ' background-color: #fff;'; } // Not supported message style is inlined incase the style sheet doesn't get included $out = "
    "; $out.= "

    "; $out.= __( 'This slideshow could not be started. Try refreshing the page or viewing it in another browser.' , 'jetpack' ) . '

    '; // Bail out unless the scripts were added if ( $this->scripts_and_style_included ) { $out.= sprintf( '
    ', esc_attr( $duration ), esc_attr( $autoplay ), esc_attr( $style ) ); $out.= "
    "; $out.= "
    "; $out.= "
    "; if ( $autoplay ) { $out.= "

    "; $out.= __( 'Click to autoplay the presentation!' , 'jetpack' ); $out.= "

    "; } $out.= do_shortcode( $content ); } $out.= "
    "; $this->presentation_initialized = false; return $out; } function slide_shortcode( $atts, $content = '' ) { // Bail out unless wrapped by a [presentation] shortcode if ( ! $this->presentation_initialized ) return $content; $atts = shortcode_atts( array( 'transition' => '', 'scale' => '', 'rotate' => '', 'fade' => '', 'fadebullets'=> '', 'bgcolor' => '', 'bgimg' => '', ), $atts, 'slide' ); // Determine positioning based on transition if ( '' == trim( $atts['transition'] ) ) $atts['transition'] = $this->presentation_settings['transition']; // Setting the content scale if ( '' == trim( $atts['scale'] ) ) $atts['scale'] = $this->presentation_settings['scale']; if( '' == trim( $atts['scale'] ) ) $scale = 1; else $scale = floatval( $atts['scale'] ); if ( $scale < 0 ) $scale *= -1; // Setting the content rotation if ( '' == trim( $atts['rotate'] ) ) $atts['rotate'] = $this->presentation_settings['rotate']; if( '' == trim( $atts['rotate'] ) ) $rotate = 0; else $rotate = floatval( $atts['rotate'] ); // Setting if the content should fade if ( '' == trim( $atts['fade'] ) ) $atts['fade'] = $this->presentation_settings['fade']; if ( 'on' == $atts['fade'] || 'true' == $atts['fade'] ) $fade = 'fade'; else $fade = ''; // Setting if bullets should fade on step changes if ( '' == trim( $atts['fadebullets'] ) ) $atts['fadebullets'] = $this->presentation_settings['fadebullets']; if ( 'on' == $atts['fadebullets'] || 'true' == $atts['fadebullets'] ) $fadebullets = 'fadebullets'; else $fadebullets = ''; $coords = $this->get_coords( array( 'transition' => $atts['transition'], 'scale' => $scale, 'rotate' => $rotate, )); $x = $coords['x']; $y = $coords['y']; // Check for background color XOR background image // Use a white background if nothing specified if ( preg_match( '/https?\:\/\/[^\'"\s]*/', $atts['bgimg'], $matches ) ) { $style = 'background-image: url("' . esc_url( $matches[0] ) . '");'; } else if ( '' != trim( $atts['bgcolor'] ) ) { $style = 'background-color: ' . esc_attr( $atts['bgcolor'] ) . ';'; } else { $style = ''; } // Put everything together and let jmpress do the magic! $out = sprintf( '
    ', esc_attr( $fade ), esc_attr( $fadebullets ), esc_attr( $x ), esc_attr( $y ), esc_attr( $scale ), esc_attr( $rotate ), esc_attr( $style ) ); $out.= "
    "; $out.= do_shortcode( $content ); $out.= "
    "; return $out; } /** * Determines the position of the next slide based on the position and scaling of the previous slide. * * @param array $args: an array with the following key-value pairs * string $transition: the transition name, "up", "down", "left", or "right" * float $scale: the scale of the next slide (used to determine the position of the slide after that) * * @return array with the 'x' and 'y' coordinates of the slide */ function get_coords( $args ) { if ( 0 == $args['scale'] ) $args['scale'] = 1; $width = $this->presentation_settings['width']; $height = $this->presentation_settings['height']; $last = $this->presentation_settings['last']; $scale = $last['scale']; $next = array( 'x' => $last['x'], 'y' => $last['y'], 'scale' => $args['scale'], 'rotate' => $args['rotate'], ); // All angles are measured from the vertical axis, so everything is backwards! $diagAngle = atan2( $width, $height ); $diagonal = sqrt( pow( $width, 2 ) + pow( $height, 2 ) ); // We offset the angles by the angle formed by the diagonal so that // we can multiply the sines directly against the diagonal length $theta = deg2rad( $last['rotate'] ) - $diagAngle; $phi = deg2rad( $next['rotate'] ) - $diagAngle; // We start by displacing by the slide dimensions $totalHorizDisp = $width * $scale; $totalVertDisp = $height * $scale; // If the previous slide was rotated, we add the incremental offset from the rotation // Namely the difference between the regular dimension (no rotation) and the component // of the diagonal for that angle $totalHorizDisp += ( ( ( abs( sin( $theta ) ) * $diagonal) - $width ) / 2) * $scale; $totalVertDisp += ( ( ( abs( cos( $theta ) ) * $diagonal) - $height) / 2) * $scale; // Similarly, we check if the current slide has been rotated and add whatever additional // offset has been added. This is so that two rotated corners don't clash with each other. // Note: we are checking the raw angle relative to the vertical axis, NOT the diagonal angle. if ( $next['rotate'] % 180 != 0 ){ $totalHorizDisp += ( abs( ( sin( $phi ) * $diagonal ) - $width ) / 2) * $next['scale']; $totalVertDisp += ( abs( ( cos( $phi ) * $diagonal ) - $height ) / 2) * $next['scale']; } switch ( trim( $args['transition'] ) ) { case 'none': break; case 'left': $next['x'] -= $totalHorizDisp; break; case 'right': $next['x'] += $totalHorizDisp; break; case 'up': $next['y'] -= $totalVertDisp; break; case 'down': default: $next['y'] += $totalVertDisp; break; } $this->presentation_settings['last'] = $next; return $next; } } $GLOBALS['presentations'] = new Presentations(); endif; plugins/jetpack/modules/shortcodes/instagram.php0000644000312500031250000002057212654410417022613 0ustar eacbforgeacbforg
    Loading

    Balloons

    View on Instagram

    */ $regexes = array(); // new style js $regexes[] = '#]+?class="instagram-media"[^>](.+?)>(.+?)]+?src="(https?:)?//platform\.instagram\.com/(.+?)/embeds\.js">#ix'; // Let's play nice with the visual editor too. $regexes[] = '#<blockquote(?:[^&]|&(?!gt;))+?class="instagram-media"(?:[^&]|&(?!gt;))(.+?)>(.+?)</blockquote><script(?:[^&]|&(?!gt;))+?src="(https?:)?//platform\.instagram\.com/(.+?)/embeds\.js"(?:[^&]|&(?!gt;))*+></script>#ix'; // old style iframe $regexes[] = '#]+?src="(?:https?:)?//instagram\.com/p/([^"\'/]++)[^"\']*?"[^>]*+>\s*?#i'; // Let's play nice with the visual editor too. $regexes[] = '#<iframe(?:[^&]|&(?!gt;))+?src="(?:https?:)?//instagram\.com/p/([^"\'/]++)[^"\']*?"(?:[^&]|&(?!gt;))*+>\s*?</iframe>#i'; foreach ( $regexes as $regex ) { if ( ! preg_match_all( $regex, $content, $matches, PREG_SET_ORDER ) ) continue; foreach ( $matches as $match ) { if ( ! preg_match( '#(https?:)?//instagr(\.am|am\.com)/p/([^/]*)#i', $match[2], $url_matches ) ) continue; // Since we support Instagram via oEmbed, we simply leave a link on a line by itself. $replace_regex = sprintf( '#\s*%s\s*#', preg_quote( $match[0], '#' ) ); $url = esc_url( $url_matches[0] ); $content = preg_replace( $replace_regex, sprintf( "\n\n%s\n\n", $url ), $content ); /** This action is documented in modules/shortcodes/youtube.php */ do_action( 'jetpack_embed_to_shortcode', 'instagram', $url ); } } return $content; } add_filter( 'pre_kses', 'jetpack_instagram_embed_reversal' ); /** * Instagram */ wp_oembed_remove_provider( '#http://instagr(\.am|am\.com)/p/.*#i' ); // remove core's oEmbed support so we can override wp_embed_register_handler( 'jetpack_instagram', '#http(s?)://instagr(\.am|am\.com)/p/([^/]*)#i', 'jetpack_instagram_handler' ); function jetpack_instagram_handler( $matches, $atts, $url ) { global $content_width; // keep a copy of the passed-in URL since it's modified below $passed_url = $url; $max_width = 698; $min_width = 320; if ( is_feed() ) { $media_url = sprintf( 'http://instagr.am/p/%s/media/?size=l', $matches[3] ); return sprintf( 'Instagram Photo', esc_url( $url ), esc_attr__( 'View on Instagram', 'jetpack' ), esc_url( $media_url ) ); } $atts = shortcode_atts( array( 'width' => isset( $content_width ) ? $content_width : $max_width, 'hidecaption' => false, ), $atts ); $atts['width'] = absint( $atts['width'] ); if ( $atts['width'] > $max_width || $min_width > $atts['width'] ) $atts['width'] = $max_width; // remove the modal param from the URL $url = remove_query_arg( 'modal', $url ); // force .com instead of .am for https support $url = str_replace( 'instagr.am', 'instagram.com', $url ); // The oembed endpoint expects HTTP, but HTTP requests 301 to HTTPS $instagram_http_url = str_replace( 'https://', 'http://', $url ); $instagram_https_url = str_replace( 'http://', 'https://', $url ); $url_args = array( 'url' => $instagram_http_url, 'maxwidth' => $atts['width'], ); if ( $atts['hidecaption'] ) { $url_args['hidecaption'] = 'true'; } $url = esc_url_raw( add_query_arg( $url_args, 'https://api.instagram.com/oembed/' ) ); /** * Filter Object Caching for response from Instagram. * * Allow enabling of object caching for the response sent by Instagram when querying for Instagram image HTML. * * @module shortcodes * * @since 3.3.0 * * @param bool false Object caching is off by default. * @param array $matches Array of Instagram URLs found in the post. * @param array $atts Instagram Shortcode attributes. * @param string $passed_url Instagram API URL. */ $response_body_use_cache = apply_filters( 'instagram_cache_oembed_api_response_body', false, $matches, $atts, $passed_url ); $response_body = false; if ( $response_body_use_cache ) { $cache_key = 'oembed_response_body_' . md5( $url ); $response_body = wp_cache_get( $cache_key, 'instagram_embeds' ); } if ( ! $response_body ) { // Not using cache (default case) or cache miss $instagram_response = wp_remote_get( $url, array( 'redirection' => 0 ) ); if ( is_wp_error( $instagram_response ) || 200 != $instagram_response['response']['code'] || empty( $instagram_response['body'] ) ) { return ""; } $response_body = json_decode( $instagram_response['body'] ); if ( $response_body_use_cache ) { // if caching it is short-lived since this is a "Cache-Control: no-cache" resource wp_cache_set( $cache_key, $response_body, 'instagram_embeds', HOUR_IN_SECONDS + mt_rand( 0, HOUR_IN_SECONDS ) ); } } if ( ! empty( $response_body->html ) ) { wp_enqueue_script( 'jetpack-instagram-embed', plugins_url( 'js/instagram.js', __FILE__ ), array( 'jquery' ), false, true ); // there's a script in the response, which we strip on purpose since it's added by this ^ script $ig_embed = preg_replace( '@<(script)[^>]*?>.*?@si', '', $response_body->html ); return $ig_embed; } return ''; } // filters instagram's username format to the expected format that matches the embed handler wp_embed_register_handler( 'jetpack_instagram_alternate_format', '#http(s?)://instagr(\.am|am\.com)/([^/]*)/p/([^/]*)#i', 'jetpack_instagram_alternate_format_handler' ); function jetpack_instagram_alternate_format_handler( $matches, $atts, $url ) { $url = esc_url_raw( 'https://instagram.com/p/' . $matches[4] ); $matches[0] = $url; $matches[3] = $matches[4]; unset( $matches[4] ); return jetpack_instagram_handler( $matches, $atts, $url ); } // [instagram url="http://instagram.com/p/PSbF9sEIGP/"] // [instagram url="http://instagram.com/p/PSbF9sEIGP/" width="300"] add_shortcode( 'instagram', 'jetpack_shortcode_instagram' ); function jetpack_shortcode_instagram( $atts ) { global $wp_embed; if ( empty( $atts['url'] ) ) { return ''; } return $wp_embed->shortcode( $atts, $atts['url'] ); } plugins/jetpack/modules/shortcodes/ted.php0000644000312500031250000000435712654407473021415 0ustar eacbforgeacbforg '', 'width' => '', 'height' => '', 'lang' => 'en', ); $atts = shortcode_atts( $defaults, $atts, 'ted' ); if ( empty( $atts['id'] ) ) return ''; if ( preg_match( "#^[\d]+$#", $atts['id'], $matches ) ) $url = 'http://ted.com/talks/view/id/' . $matches[0]; elseif ( preg_match( "#^https?://(www\.)?ted\.com/talks/view/id/[0-9]+$#", $atts['id'], $matches ) ) $url = $matches[0]; unset( $atts['id'] ); $args = array(); if ( is_numeric( $atts['width'] ) ) $args['width'] = $atts['width']; else if ( $embed_size_w = get_option( 'embed_size_w' ) ) $args['width'] = $embed_size_w; else if ( ! empty( $GLOBALS['content_width'] ) ) $args['width'] = (int)$GLOBALS['content_width']; else $args['width'] = 500; // Default to a 16x9 aspect ratio if there's no height set if ( is_numeric( $atts['height'] ) ) $args['height'] = $atts['height']; else $args['height'] = $args['width'] * 0.5625; if ( ! empty( $atts['lang'] ) ) { $args['lang'] = sanitize_key( $atts['lang'] ); add_filter( 'oembed_fetch_url', 'ted_filter_oembed_fetch_url', 10, 3 ); } $retval = $wp_embed->shortcode( $args, $url ); remove_filter( 'oembed_fetch_url', 'ted_filter_oembed_fetch_url', 10 ); return $retval; } /** * Filter the request URL to also include the $lang parameter */ function ted_filter_oembed_fetch_url( $provider, $url, $args ) { return add_query_arg( 'lang', $args['lang'], $provider ); } plugins/jetpack/modules/shortcodes/recipe.php0000644000312500031250000000774112654411246022101 0ustar eacbforgeacbforgpost_content, 'recipe' ) ) { $this->scripts_and_style_included = true; break; } } if ( ! $this->scripts_and_style_included ) { return; } if( is_rtl() ) { wp_enqueue_style( 'jetpack-recipes-style', plugins_url( '/css/rtl/recipes-rtl.css', __FILE__ ), array(), '20130919' ); } else { wp_enqueue_style( 'jetpack-recipes-style', plugins_url( '/css/recipes.css', __FILE__ ), array(), '20130919' ); } wp_enqueue_script( 'jetpack-recipes-printthis', plugins_url( '/js/recipes-printthis.js', __FILE__ ), array( 'jquery' ), '20131230' ); wp_enqueue_script( 'jetpack-recipes-js', plugins_url( '/js/recipes.js', __FILE__ ), array( 'jquery', 'jetpack-recipes-printthis' ), '20131230' ); $title_var = wp_title( '|', false, 'right' ); $print_css_var = plugins_url( '/css/recipes-print.css', __FILE__ ); wp_localize_script( 'jetpack-recipes-js', 'jetpack_recipes_vars', array( 'pageTitle' => $title_var, 'loadCSS' => $print_css_var ) ); } /** * Our [recipe] shortcode. * Prints recipe data styled to look good on *any* theme. * * @return resume_shortcode_html */ static function recipe_shortcode( $atts, $content = '' ) { $atts = shortcode_atts( array( 'title' => '', //string 'servings' => '', //intval 'time' => '', //string 'difficulty' => '', //string 'print' => '', //string ), $atts, 'recipe' ); return self::recipe_shortcode_html( $atts, $content ); } /** * The recipe output * * @return Html */ static function recipe_shortcode_html( $atts, $content = '' ) { $html = false; $html = '
    '; // Print the recipe title if exists if ( '' != $atts['title'] ) { $html .= '

    ' . esc_html( $atts['title'] ) . '

    '; } // Print the recipe meta if exists if ( '' != $atts['servings'] || '' != $atts['time'] || '' != $atts['difficulty'] || '' != $atts['print'] ) { $html .= '
      '; if ( '' != $atts['servings'] ) { $html .= sprintf( '
    • %1$s: %2$s
    • ', __( 'Servings', 'jetpack' ), esc_html( $atts['servings'] ) ); } if ( '' != $atts['time'] ) { $html .= sprintf( '
    • %1$s: %2$s
    • ', __( 'Time', 'jetpack' ), esc_html( $atts['time'] ) ); } if ( '' != $atts['difficulty'] ) { $html .= sprintf( '
    • %1$s: %2$s
    • ', __( 'Difficulty', 'jetpack' ), esc_html( $atts['difficulty'] ) ); } if ( 'false' != $atts['print'] ) { $html .= sprintf( '
    • %s
    • ', __( 'Print', 'jetpack' ) ); } $html .= '
    '; } // Print content between codes $html .= '
    ' . do_shortcode( $content ) . '
    '; // Close it up $html .= '
    '; // If there is a recipe within a recipe, remove the shortcode if ( has_shortcode( $html, 'recipe' ) ) { remove_shortcode( 'recipe' ); } // Sanitize html $html = wp_kses_post( $html ); // Return the HTML block return $html; } } new Jetpack_Recipes(); plugins/jetpack/modules/shortcodes/bandcamp.php0000644000312500031250000001637312654410417022377 0ustar eacbforgeacbforg null, // integer album id 'track' => null, // integer track id 'video' => null, // integer track id for video player 'size' => 'venti', // one of the supported sizes 'bgcol' => 'FFFFFF', // hex, no '#' prefix 'linkcol' => null, // hex, no '#' prefix 'layout' => null, // encoded layout url 'width' => null, // integer with optional "%" 'height' => null, // integer with optional "%" 'notracklist' => null, // may be string "true" (defaults false) 'tracklist' => null, // may be string "false" (defaults true) 'artwork' => null, // may be string "false" (alternately: "none") or "small" (default is large) 'minimal' => null, // may be string "true" (defaults false) 'theme' => null, // may be theme identifier string ("light"|"dark" so far) 'package' => null, // integer package id 't' => null, // integer track number 'tracks' => null, // comma separated list of allowed tracks 'esig' => null // hex, no '#' prefix ), $atts, 'bandcamp' ); $sizes = array( 'venti' => array( 'width' => 400, 'height' => 100 ), 'grande' => array( 'width' => 300, 'height' => 100 ), 'grande2' => array( 'width' => 300, 'height' => 355 ), 'grande3' => array( 'width' => 300, 'height' => 415 ), 'tall_album' => array( 'width' => 150, 'height' => 295 ), 'tall_track' => array( 'width' => 150, 'height' => 270 ), 'tall2' => array( 'width' => 150, 'height' => 450 ), 'short' => array( 'width' => 46, 'height' => 23 ), 'large' => array( 'width' => 350, 'height' => 470 ), 'medium' => array( 'width' => 450, 'height' => 120 ), 'small' => array( 'width' => 350, 'height' => 42 ) ); $sizekey = $attributes['size']; $height = null; $width = null; $isVideo = false; // Build iframe url. For audio players, args are appended as // extra path segments for historical reasons having to // do with an IE-only flash bug which required this URL // to contain no querystring. Delay the actual joining // of args into a string until after we decide if it's // a video player or an audio player $argparts = array(); if ( ! isset( $attributes['album'] ) && ! isset( $attributes['track'] ) && ! isset( $attributes['video'] ) ) { return "[bandcamp: shortcode must include 'track', 'album', or 'video' param]"; } if ( isset( $attributes['track'] ) && is_numeric( $attributes['track'] ) ) { $track = esc_attr( $attributes['track'] ); array_push( $argparts, "track={$track}" ); } elseif ( isset( $attributes['video'] ) && is_numeric( $attributes['video'] ) ) { $track = esc_attr( $attributes['video'] ); // videos are referenced by track id $urlbase = "//bandcamp.com/EmbeddedPlayer/v=2"; $isVideo = true; array_push( $argparts, "track={$track}" ); } if ( isset( $attributes['album'] ) && is_numeric( $attributes['album'] ) ) { $album = esc_attr( $attributes['album'] ); array_push( $argparts, "album={$album}" ); } if ( $sizekey == 'tall' ) { if ( isset( $attributes['album'] ) ) { $sizekey .= '_album'; } else { $sizekey .= '_track'; } } // if size specified that we don't recognize, fall back on venti if ( empty( $sizes[ $sizekey ] ) ) { $sizekey = 'venti'; $attributes['size'] = 'venti'; } // use strict regex for digits + optional % instead of absint for height/width // 'width' and 'height' params in the iframe url get the exact string from the shortcode // args, whereas the inline style attribute must have "px" added to it if it has no "%" if ( isset( $attributes['width'] ) && preg_match( "|^([0-9]+)(%)?$|", $attributes['width'], $matches ) ) { $width = $csswidth = $attributes['width']; if ( sizeof( $matches ) < 3 ) { $csswidth .= "px"; } } if ( isset( $attributes['height'] ) && preg_match( "|^([0-9]+)(%)?$|", $attributes['height'], $matches ) ) { $height = $cssheight = $attributes['height']; if ( sizeof( $matches ) < 3 ) { $cssheight .= "px"; } } if ( ! $height ) { $height = $sizes[ $sizekey ]['height']; $cssheight = $height . "px"; } if ( ! $width ) { $width = $sizes[ $sizekey ]['width']; $csswidth = $width . "px"; } if ( isset( $attributes['layout'] ) ) { array_push( $argparts, "layout={$attributes['layout']}" ); } elseif ( isset( $attributes['size'] ) && preg_match( "|^[a-zA-Z0-9]+$|", $attributes['size'] ) ) { array_push( $argparts, "size={$attributes['size']}" ); } if ( isset( $attributes['bgcol'] ) && preg_match( "|^[0-9A-Fa-f]+$|", $attributes['bgcol'] ) ) { array_push( $argparts, "bgcol={$attributes['bgcol']}" ); } if ( isset( $attributes['linkcol'] ) && preg_match( "|^[0-9A-Fa-f]+$|", $attributes['linkcol'] ) ) { array_push( $argparts, "linkcol={$attributes['linkcol']}" ); } if ( isset( $attributes['package'] ) && preg_match( "|^[0-9]+$|", $attributes['package'] ) ) { array_push( $argparts, "package={$attributes['package']}" ); } if ( isset( $attributes['t'] ) && preg_match( "|^[0-9]+$|", $attributes['t'] ) ) { array_push( $argparts, "t={$attributes['t']}" ); } if ( $attributes['notracklist'] == "true" ) { array_push( $argparts, "notracklist=true" ); } // 'tracklist' arg deprecates 'notracklist=true' to be less weird. note, behavior // if both are specified is undefined switch ( $attributes['tracklist'] ) { case "false": case "none": array_push( $argparts, "tracklist=false" ); break; } switch ( $attributes['artwork'] ) { case "false": case "none": case "small": array_push( $argparts, "artwork=" . $attributes['artwork'] ); break; } if ( $attributes['minimal'] == "true" ) { array_push( $argparts, "minimal=true" ); } if ( isset( $attributes['theme'] ) && preg_match( "|^[a-zA-Z_]+$|", $attributes['theme'] ) ) { array_push( $argparts, "theme={$attributes['theme']}" ); } // param 'tracks' is signed digest param 'esig' if ( isset( $attributes['tracks'] ) && preg_match( "|^[0-9\,]+$|", $attributes['tracks'] ) ) { if ( isset( $attributes['esig'] ) && preg_match( "|^[0-9A-Fa-f]+$|", $attributes['esig'] ) ) { array_push( $argparts, "tracks={$attributes['tracks']}" ); array_push( $argparts, "esig={$attributes['esig']}" ); } } if ( $isVideo ) { $url = "//bandcamp.com/VideoEmbed?" . join( '&', $argparts ); $extraAttrs = " mozallowfullscreen='1' webkitallowfullscreen='1' allowfullscreen='1'"; } else { $url = "//bandcamp.com/EmbeddedPlayer/v=2/" . join( '/', $argparts ) . '/'; $extraAttrs = ''; } return ""; } add_shortcode( 'bandcamp', 'shortcode_handler_bandcamp' ); plugins/jetpack/modules/shortcodes/flickr.php0000644000312500031250000001555012654411246022101 0ustar eacbforgeacbforg */ function flickr_embed_to_shortcode( $content ) { if ( false === stripos( $content, '/www.flickr.com/apps/video/stewart.swf' ) ) return $content; $regexp = '%(|>\s*)(?(1)\s*)%'; $regexp_ent = str_replace( array( '&#0*58;', '[^>]*', '[^<]*', ), array( '&#0*58;|�*58;', '[^&]*(?:&(?!gt;)[^&]*)*', '[^&]*(?:&(?!lt;)[^&]*)*', ), htmlspecialchars( $regexp, ENT_NOQUOTES ) ); foreach ( array( 'regexp', 'regexp_ent' ) as $reg ) { if ( !preg_match_all( $$reg, $content, $matches, PREG_SET_ORDER ) ) continue; foreach ( $matches as $match ) { $params = $match[2] . $match[3]; if ( 'regexp_ent' == $reg ) $params = html_entity_decode( $params ); $params = wp_kses_hair( $params, array( 'http' ) ); if ( ! isset( $params['type'] ) || 'application/x-shockwave-flash' != $params['type']['value'] || ! isset( $params['flashvars'] ) ) continue; wp_parse_str( html_entity_decode( $params['flashvars']['value'] ), $flashvars ); if ( ! isset( $flashvars['photo_id'] ) ) continue; $code_atts = array( 'video' => $flashvars['photo_id'], ); if ( isset( $flashvars['flickr_show_info_box'] ) && 'true' == $flashvars['flickr_show_info_box'] ) $code_atts['show_info'] = 'true'; if ( ! empty( $flashvars['photo_secret'] ) ) $code_atts['secret'] = $flashvars['photo_secret'] ; if ( ! empty( $params['width']['value'] ) ) $code_atts['w'] = (int) $params['width']['value']; if ( ! empty( $params['height']['value'] ) ) $code_atts['h'] = (int) $params['height']['value']; $code = '[flickr'; foreach ( $code_atts as $k => $v ) $code .= " $k=$v"; $code .= ']'; $content = str_replace( $match[0], $code, $content ); /** This action is documented in modules/shortcodes/youtube.php */ do_action( 'jetpack_embed_to_shortcode', 'flickr_video', $flashvars['photo_id'] ); } } return $content; } add_filter( 'pre_kses', 'flickr_embed_to_shortcode' ); function flickr_shortcode_handler( $atts ) { $atts = shortcode_atts( array( 'video' => 0, 'photo' => 0, 'show_info' => 0, 'w' => 400, 'h' => 300, 'secret' => 0, 'size' => 0, ), $atts, 'flickr' ); if ( ! empty( $atts['video'] ) ) { $showing = 'video'; $src = $atts['video']; } elseif ( ! empty( $atts['photo'] ) ) { $showing = 'photo'; $src = $atts['photo']; } else { return ''; } if ( is_ssl() ) { $src = str_replace( 'http://', 'https://', $src ); } if ( $showing == 'video' ) { if ( ! is_numeric( $src ) && ! preg_match( '~^(https?:)?//([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)/.*~i', $src ) ) { return ''; } if ( preg_match( "!photos/(([0-9a-zA-Z-_]+)|([0-9]+@N[0-9]+))/([0-9]+)/?$!", $src, $m ) ) { $atts['photo_id'] = $m[4]; } else { $atts['photo_id'] = $atts['video']; } if ( ! isset( $atts['show_info'] ) || in_array( $atts['show_info'], array('yes', 'true') ) ) { $atts['show_info'] = 'true'; } elseif ( in_array( $atts['show_info'], array( 'false', 'no' ) ) ) { $atts['show_info'] = 'false'; } if ( isset( $atts['secret'] ) ) { $atts['secret'] = preg_replace( '![^\w]+!i', '', $atts['secret'] ); } return flickr_shortcode_video_markup( $atts ); } elseif ( 'photo' == $showing ) { if ( ! preg_match( '~^(https?:)?//([\da-z\-]+\.)*?((static)?flickr\.com|flic\.kr)/.*~i', $src ) ) { return ''; } $src = sprintf( '%s/player/', untrailingslashit( $src ) ); return sprintf( '', esc_url( $src ), esc_attr( $atts['h'] ), esc_attr( $atts['w'] ) ); } } function flickr_shortcode_video_markup( $atts ) { $atts = array_map( 'esc_attr', $atts ); $http = ( is_ssl() ) ? 'https://' : 'http://'; $photo_vars = "photo_id=$atts[photo_id]"; if ( isset( $atts['secret'] ) ) $photo_vars .= "&photo_secret=$atts[secret]"; return << EOD; } add_shortcode( 'flickr', 'flickr_shortcode_handler' ); // Override core's Flickr support because Flickr oEmbed doesn't support web embeds wp_embed_register_handler( 'flickr', '#https?://(www\.)?flickr\.com/.*#i', 'jetpack_flickr_oembed_handler' ); function jetpack_flickr_oembed_handler( $matches, $attr, $url ) { // Legacy slideshow embeds end with /show/ // e.g. http://www.flickr.com/photos/yarnaholic/sets/72157615194738969/show/ if ( '/show/' !== substr( $url, -strlen( '/show/' ) ) ) { // These lookups need cached, as they don't use WP_Embed (which caches) $cache_key = md5( $url . serialize( $attr ) ); $cache_group = 'oembed_flickr'; $html = wp_cache_get( $cache_key, $cache_group ); if ( false === $html ) { $html = _wp_oembed_get_object()->get_html( $url, $attr ); wp_cache_set( $cache_key, $html, $cache_group, 60 * MINUTE_IN_SECONDS ); } return $html; } return flickr_shortcode_handler( array( 'photo' => $url ) ); } plugins/jetpack/modules/shortcodes/diggthis.php0000644000312500031250000000024312651056012022413 0ustar eacbforgeacbforg', esc_url( $url ) ); } function jetpack_googleplus_add_script() { ?> shortcode( $atts, $atts['url'] ); } plugins/jetpack/modules/site-icon.php0000644000312500031250000000071712651056012020334 0ustar eacbforgeacbforg array( 'name' =>'Google Search Console', 'key' =>'google-site-verification', 'format' =>'dBw5CvburAxi537Rp9qi5uG2174Vb6JwHwIRwPSLIK8', 'url' => 'https://www.google.com/webmasters/tools/', ), 'bing' => array( 'name' =>'Bing Webmaster Center', 'key' =>'msvalidate.01', 'format' =>'12C1203B5086AECE94EB3A3D9830B2E', 'url' => 'http://www.bing.com/webmaster/', ), 'pinterest' => array( 'name' => 'Pinterest Site Verification', 'key' => 'p:domain_verify', 'format' => 'f100679e6048d45e4a0b0b92dce1efce', 'url' => 'https://pinterest.com/website/verify/', ), ); } function jetpack_verification_options_init() { register_setting( 'verification_services_codes_fields', 'verification_services_codes', 'jetpack_verification_validate' ); } add_action( 'admin_init', 'jetpack_verification_options_init' ); function jetpack_verification_print_meta() { $verification_services_codes = get_option( 'verification_services_codes' ); if ( is_array( $verification_services_codes ) ) { $ver_output = "\n"; foreach ( jetpack_verification_services() as $name => $service ) { if ( is_array( $service ) && !empty( $verification_services_codes["$name"] ) ) { $ver_tag = sprintf( '', esc_attr( $service["key"] ), esc_attr( $verification_services_codes["$name"] ) ); /** * Filter the meta tag template used for all verification tools. * * @module verification-tools * * @since 3.0.0 * * @param string $ver_tag Verification Tool meta tag. */ $ver_output .= apply_filters( 'jetpack_site_verification_output', $ver_tag ); $ver_output .= "\n"; } } echo $ver_output; } } add_action( 'wp_head', 'jetpack_verification_print_meta', 1 ); function jetpack_verification_get_code( $code ){ $pattern = '/content=["\']?([^"\' ]*)["\' ]/is'; preg_match( $pattern, $code, $match ); if ( $match ){ return urldecode( $match[1] ); } else { return false; } } function jetpack_verification_validate( $verification_services_codes ) { foreach ( $verification_services_codes as $key => &$code ) { // Parse html meta tags if present if ( stripos( $code, 'meta' ) ) $code = jetpack_verification_get_code( $code ); $code = esc_attr( trim( $code ) ); // limit length to 100 chars. $code = substr( $code, 0, 100 ); /** * Fire after each Verification code was validated. * * @module verification-tools * * @since 3.0.0 * * @param string $key Verification service name. * @param string $code Verification service code provided in field in the Tools menu. */ do_action( 'jetpack_site_verification_validate', $key, $code ); } return $verification_services_codes; } function jetpack_verification_options_form() { $verification_services_codes = get_option( 'verification_services_codes' ); ?>
    $service ) { echo "

    " . esc_html( $service['name'] ) . "

    "; } ?>

    $service ) { $list[] = '' . esc_html( $service['name'] ) . ''; } $last = array_pop( $list ); if ( current_user_can( 'manage_options' ) ) { echo '

    ' . __( 'Website Verification Services' , 'jetpack' ) . ' (?)

    '; echo '

    ' . sprintf( esc_html( __( 'Enter your meta key "content" value to verify your blog with %s' , 'jetpack' ) ), implode( ', ', $list ) ) . ' ' . __( 'and' , 'jetpack' ) . ' ' . $last . '.

    '; jetpack_verification_options_form(); echo '
    '; } } add_action( 'tool_box', 'jetpack_verification_tool_box', 25 ); plugins/jetpack/modules/related-posts.php0000644000312500031250000000464212654411246021240 0ustar eacbforgeacbforgsync->reindex_needed() ) { Jetpack::init()->sync->reindex_trigger(); } } /** * This action triggers if the module is in an active state, load related posts and options. * * @uses Jetpack_RelatedPosts::init, is_admin, Jetpack::enable_module_configurable, Jetpack::module_configuration_load, Jetpack_Sync::sync_posts * @return null */ public function action_on_load() { require_once 'related-posts/jetpack-related-posts.php'; Jetpack_RelatedPosts::init(); if ( is_admin() ) { // Enable "Configure" button on module card Jetpack::enable_module_configurable( __FILE__ ); Jetpack::module_configuration_load( __FILE__, array( $this, 'module_configuration_load' ) ); // Sync new posts Jetpack_Sync::sync_posts( __FILE__ ); } } /** * Redirect configure button to Settings > Reading * * @uses wp_safe_redirect, admin_url * @return null */ public function module_configuration_load() { wp_safe_redirect( admin_url( 'options-reading.php#jetpack_relatedposts' ) ); exit; } } // Do it. Jetpack_RelatedPosts_Module::instance(); plugins/jetpack/modules/infinite-scroll.php0000644000312500031250000002146612654411246021556 0ustar eacbforgeacbforg Reading * * @uses wp_safe_redirect, admin_url * @return null */ public function module_configuration_load() { wp_safe_redirect( admin_url( 'options-reading.php#infinite-scroll-options' ) ); exit; } /** * Register Google Analytics setting * * @uses add_settings_field, __, register_setting * @action admin_init * @return null */ public function action_admin_init() { add_settings_field( $this->option_name_google_analytics, '' . __( 'Use Google Analytics with Infinite Scroll', 'jetpack' ) . '', array( $this, 'setting_google_analytics' ), 'reading' ); register_setting( 'reading', $this->option_name_google_analytics, array( $this, 'sanitize_boolean_value' ) ); } /** * Render Google Analytics option * * @uses checked, get_option, __ * @return html */ public function setting_google_analytics() { echo ''; } /** * Sanitize value as a boolean * * @param mixed $value * @return bool */ public function sanitize_boolean_value( $value ) { return (bool) $value; } /** * Load theme's infinite scroll annotation file, if present in the IS plugin. * The `setup_theme` action is used because the annotation files should be using `after_setup_theme` to register support for IS. * * As released in Jetpack 2.0, a child theme's parent wasn't checked for in the plugin's bundled support, hence the convoluted way the parent is checked for now. * * @uses is_admin, wp_get_theme, get_theme, get_current_theme, apply_filters * @action setup_theme * @return null */ function action_after_setup_theme() { $theme = function_exists( 'wp_get_theme' ) ? wp_get_theme() : get_theme( get_current_theme() ); if ( ! is_a( $theme, 'WP_Theme' ) && ! is_array( $theme ) ) return; /** This filter is already documented in modules/infinite-scroll/infinity.php */ $customization_file = apply_filters( 'infinite_scroll_customization_file', dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Stylesheet']}.php", $theme['Stylesheet'] ); if ( is_readable( $customization_file ) ) { require_once( $customization_file ); } elseif ( ! empty( $theme['Template'] ) ) { $customization_file = dirname( __FILE__ ) . "/infinite-scroll/themes/{$theme['Template']}.php"; if ( is_readable( $customization_file ) ) require_once( $customization_file ); } } /** * Modify Infinite Scroll configuration information * * @uses Jetpack::get_active_modules, is_user_logged_in, stats_get_options, Jetpack_Options::get_option, get_option, JETPACK__API_VERSION, JETPACK__VERSION * @filter infinite_scroll_js_settings * @return array */ public function filter_infinite_scroll_js_settings( $settings ) { // Provide WP Stats info for tracking Infinite Scroll loads // Abort if Stats module isn't active if ( in_array( 'stats', Jetpack::get_active_modules() ) ) { // Abort if user is logged in but logged-in users shouldn't be tracked. if ( is_user_logged_in() && function_exists( 'stats_get_options' ) ) { $stats_options = stats_get_options(); $track_loggedin_users = isset( $stats_options['reg_users'] ) ? (bool) $stats_options['reg_users'] : false; if ( ! $track_loggedin_users ) return $settings; } // We made it this far, so gather the data needed to track IS views $settings['stats'] = 'blog=' . Jetpack_Options::get_option( 'id' ) . '&host=' . parse_url( get_option( 'home' ), PHP_URL_HOST ) . '&v=ext&j=' . JETPACK__API_VERSION . ':' . JETPACK__VERSION; // Pagetype parameter $settings['stats'] .= '&x_pagetype=infinite'; if ( 'click' == $settings['type'] ) $settings['stats'] .= '-click'; $settings['stats'] .= '-jetpack'; } // Check if Google Analytics tracking is requested $settings['google_analytics'] = (bool) get_option( $this->option_name_google_analytics ); return $settings; } /** * Always load certain scripts when IS is enabled, as they can't be loaded after `document.ready` fires, meaning they can't leverage IS's script loader. * * @global $videopress * @uses do_action() * @uses apply_filters() * @uses wp_enqueue_style() * @uses wp_enqueue_script() * @action wp_enqueue_scripts * @return null */ public function action_wp_enqueue_scripts() { // Do not load scripts and styles on singular pages and static pages $load_scripts_and_styles = ! ( is_singular() || is_page() ); if ( /** * Allow plugins to enqueue all Infinite Scroll scripts and styles on singular pages as well. * * @module infinite-scroll * * @since 3.1.0 * * @param bool $load_scripts_and_styles Should scripts and styles be loaded on singular pahes and static pages. Default to false. */ ! apply_filters( 'jetpack_infinite_scroll_load_scripts_and_styles', $load_scripts_and_styles ) ) { return; } // VideoPress stand-alone plugin global $videopress; if ( ! empty( $videopress ) && The_Neverending_Home_Page::archive_supports_infinity() && is_a( $videopress, 'VideoPress' ) && method_exists( $videopress, 'enqueue_scripts' ) ) { $videopress->enqueue_scripts(); } // VideoPress Jetpack module if ( Jetpack::is_module_active( 'videopress' ) ) { wp_enqueue_script( 'videopress' ); } // Fire the post_gallery action early so Carousel scripts are present. if ( Jetpack::is_module_active( 'carousel' ) ) { /** This filter is already documented in core/wp-includes/media.php */ do_action( 'post_gallery', '', '' ); } // Always enqueue Tiled Gallery scripts when both IS and Tiled Galleries are enabled if ( Jetpack::is_module_active( 'tiled-gallery' ) ) { Jetpack_Tiled_Gallery::default_scripts_and_styles(); } // Core's Audio and Video Shortcodes if ( /** This filter is already documented in core/wp-includes/media.php */ 'mediaelement' === apply_filters( 'wp_audio_shortcode_library', 'mediaelement' ) ) { wp_enqueue_style( 'wp-mediaelement' ); wp_enqueue_script( 'wp-mediaelement' ); } if ( /** This filter is already documented in core/wp-includes/media.php */ 'mediaelement' === apply_filters( 'wp_video_shortcode_library', 'mediaelement' ) ) { wp_enqueue_style( 'wp-mediaelement' ); wp_enqueue_script( 'wp-mediaelement' ); } } } Jetpack_Infinite_Scroll_Extras::instance(); /** * Load main IS file */ require_once( dirname( __FILE__ ) . "/infinite-scroll/infinity.php" ); /** * Remove the IS annotation loading function bundled with the IS plugin in favor of the Jetpack-specific version in Jetpack_Infinite_Scroll_Extras::action_after_setup_theme(); */ remove_action( 'after_setup_theme', 'the_neverending_home_page_theme_support', 5 ); plugins/jetpack/modules/wpcc.php0000644000312500031250000000010612651056012017366 0ustar eacbforgeacbforg‚Ì%ÅL¥˜¤(ª˜ (dPQF•DXˆÆ˜ØDÑôjm‡˜NbÌ 1éNŒ’dõ &elWìÕÝâ°Ò.£âJ›Äî¨Hl `ÒF0à×ûL÷žsï¹ïÝsî}õÞ;o¿óËrÅî·÷ûÎÞßÞßÞ‡$„Gh§A4¢v±Ó`’0ŽT D 6ðN]NÝ=‚Œ$£àŒÎ(øËö ÎRÔõ~ÅÅ5BÁA¡Aí42f§‘ÌNMÁe20¸Lªæ*A€”J”AÆ Ž‘àæ1d,i&RN3üe ü›‘$Òõ‚(âW 1ÃC^#£˜¥t;QKC‚dPµARœœ÷Và!.Á1œÜBÆÃ™@&Š3ýs üîz"¾Å¨¥$<™¥häÃ,5N³·Ô8’¡¥ª"RI‡‡t:Ôá“È©¤ÎqZÉdøË$êzGš4Ç÷ñ ñøAãlÕR“Kµ2KM Èëd”°Ôꂤ<úуÂc8»©Ë'2h´‘©¤ƒLSN;üe sþxÍñ<}Ýî@dühq–^$Íðó§à(e©¸qˆôª$D ¥)'‡ͧ‡ÃÏ},s9ÇTpòt2“Ì&s‚3þyü}*ü{ E8ái–C|ˆ´Õ@a+ qp‘Lp´ƒMf’Yš¥fÁ_(LÚ4[é©8gC€#ç:ØjÀd:€dŠÑVU¯’ùÿVœ} Ð\NS«IàÌÀ…dÑÂ5Þþæ¾#ÏÓóæ¾Çn]¼\ßÉnG õf¬8]¸¼Æ§¬CkñøAÓ+ÊÓh¤åðh[Í[-¸å’þŽ[éÈó¯>úõOÓÉ"“N ¹!:ǯ“Dzö²E€ƒGÿx¯ }>xï©»áßÎenocÉC3c"CÁ郔$Ë7€pkñôŠò´ ,zЫdþâ•oî+D>‡^¸øB²`r‹$3J:D kÅÈ:¤1sN895—𘠽8Î$+^Ú[0~^û)ƒÈLˆ5¡Ó›‘I–?‘Ñ–'£”©5ÖxÜ|iô‘WÉ®d9€„F’Na­I A€T Fr.†˜ÃÁ¡KÈ ²ú™=…ă½§²4‹Æ0ÉRî@øuB£íø‘O„;µóN_õþÿ&Yéƒ÷æl"+áª9âHôB‰&¥™!‚É *9G$g‚S×ÞqC¡è羫!ÒÐ4‹ºœòJ’å@B"¬±Â^3 .,xõÑbVzë%r6Y qä ˆÊóˆp{ɘ›D y³énJ7Ûx¬&ë6ì8q´8@Ž<χéðC™ÿ™d5,¤æ¢Ô°T2Zð?¶o*”ø<÷rYy‰€å"´¢5Zð¶­”"üÉùH–.ÐÊÕ4çó¼V(ùÙ¾I8|2ܨcYÒÐ(Üí+@hBJ º´Ø‚'¿ZÚN÷|ž¬'kDx¢Å-¦¥91HÞìcs6Ϧg÷ðØðì#…Ÿ{®HÍfIÃ…ø AÍhÄ¥ Ö\²ðÐ ¥ítâèú«Èy "”‹tÌm¬ÂDdO³ Ù¢¶‡°jŒ–,5çðØøÕ/R} ÖO‰ºd!>DZÇÜqŒÌ¤6û¿ÿNc©#¯‘ÍD¨Í¦³ù8­ú—™‰ @òk röAÉùdáê…d)Y„rÃÎ]¥Ø‡Ó@¦0€Œ®€ŒeVk‡Kbn!ågÿ‘õÀE–“ÅâZ™¢7ó`"|Éy˜*tÂ} T®Ö‘ Û¿žÖé_û$K¦×1@›; ¦Ï÷¾É rY©ìü 5 ɺÚ6T¦  eú2‰ì#¬åTÿ HÎ'[÷?QHý”l¡zà 1€|*­µŽ»âz² RØÕ`·EJy#JÖÓ,ˆ<¢ìc¨Â>(9ï‚ ¿àqÙrÿ}éáñÆÓ”©)wsC]ôS%@~ü…ô;üzÇv²‘Ad)\-sY§‘õ L’•}è­A~ Rr¾ ÿz²¹{wÁâó¥Ï@Z&I:­bÉ2/¿}kÊ2oXÅ¢Ìít²âíýémöÊsäB²RÙ•Yo Ú† Á"üZƒãE •¢vµ©ýòw§w5tˆW1'ó\š—,›¼ì¤÷Ò:é4ú¶îÆ.—O]ms­ìÝC¶õ¬.¥2‘¦Q*HŽ_¦ˆ01d´s.ÉùÙø/|å¹ôn>qtöpñbH2fŠ4!”šø«Å’ñ—öަ0ûÑëå¬}?´H÷n²…Õ³8YŸÅ:ë¹0HÂÄÑAkP%çìÝcãä[o‚ÿÕ2F5g°$߀ºXÑ?5/½bdy\Zp DÒsÞy5½íÞ=ÜÞ dý\…¬ÇÛ†NL’ûà­AÚ9_7óo³Ç³0÷JŠÎ‹•Æ–Gó ýb4¦¨@ÓáŠY·þÊ´½#ú9ø20JÖW1ñI§ÂDFjLÄ"<ه윟K6OÝqüXz÷BWx#$e<‡ž¥(±š´©^Lñ(L“Թ̊g‘ó¾ö76WÌÏ&@Ü^tÖÃfk#$»0‘ëvykvÎAXB.:ø² û8÷csÖ°ô`n‘ËRˆÎ¤ ’¬±"ÏfiêJjG›R¡pãmÀD(Y_.˜HG$; yÕÖ tÎÉ…?{ØÆ±ÜËâÇJ­‚Õ¬)yýˆ>S84(tÈH¼Œ&ª—ýéPz;?6utÖÏ…è“A€¸E gµ— âÖ›´·Þu— <@Q´…É%ÔøAsgš ö-Á*˜=u[Xê`•À+®·±å¡ä"¥mÈ5¾™Œ¼„‰#à!`χ´ÈÓ‰¶a”‰È’¹%A€deb†n¬Õœ}:`ãÐ7-ÑÒˆHqxRý¾Ö‹!Ñ‚ÇdVìbµ,Z.¿Ð†Ï _þŠhRoWDÀÝ{‚qÿ2%Ù‡.L¤ °÷Yö€·0zN\zÎÜdâ>À#!† ¦idÃP–<6µwÛÄäãÇDÛ𬘀Ña” R ÅÇ¢¤0qgßý– ÌÂD®ÂD;ö!ú¾kƒêÕ4cS«ñ#Ct '¤Y¶ñ¹ûFßÍr¥B€¸ŒEIa¢’<ô}§z=Wé3 Ñb¤‡ð(£uu[Ð_²2ãæ@À87ÐH[µ  îcQT˜¸Œ »o´qÝñck¯U\7O‘·«í¬¾þÆ’iÖèˆBÁa|@ŒR™Œ#Ò  ¹mÆ¢´J½Ô MŽíâíç7<´4Ë\ÍjQºLœçYJ@ …‡¾¯$² £T ¥F© éÇ¢FÆÆ¢„0Ñî^c–hqw¢‘>z T—‘Z)t"€Q*ÉDT£A€ØŽEe&j5úÓ"ÅÝĤðH‘Ϊ½&ÎöÀÞvß@Àè8J…I'LäîÒÇ¢Ö:ÝhÑ.oN“ož5 umV$bÛ|ßøUP‰^Iê(U‚Í ®ìã,û±(-'ÖuBuRÜM]R\¬àk'e%ug#ÄV˜È5BNÂDQU û»Ñ™·ºa–ßÉ‘¸m)é‰ç'^L} _Æm,*C6UeÞßä!¢È[³|Ya=šÚNN³ Rz,j´2nLÜú坨Ýb1iI{ÌEýë+½JUðÕ§DäX{ìJëКݖ(`,2J…I;ÕžCl–– ¯OöáÜ}rjΊQªh‚;©4©{€aÃÆ¢¬…‰iIgýIKr)øv(à ï±+°—0ž’¸ ¾¾b¹¯ÝI˜ˆÒ’ŒÒ“( ¾oüÊÎÊF‹QªzHòXÔЄ±(¸¹¾ómçŠ\ŒY—Ò§‚oC¤Ž8SÌ«3‘m¢«´iõBI &ˆI7%r_;§Ö´*sçuZÜu`"ºLÔ±T¢ŒR-IÜŸ‘‰øôcQŠ0Ñ–}D¤%ÅÒËwiI&¢Æs­Øn—îjL$ÜŸb”ªþb·¯}•[ý¥%e“ž8L㲄”wP6&â@N2ÖÞß×n7• -Éñ°:/øÊYC˂ﻇÝŒõ ÔûÚmÒ’ÜÒ,óJ‡Å®×o~Q¤ì^d”ª~Rö}íÁ=uNQiI¿z”–ä8k(7X|ÆÖ4»àë 6cQKÝjî(-ÉEzÒ;as–>kèp} »oÍuÒô·„€±ÒûÚ‹JK}ä9k(÷X|™xÔ¡€Roé› jÐöiì¾ÝÎøÊŽÜZ’¬ûAxäTðµSW3/m3Lwf0Ö6@ÒÜMtŒÒ’I(-)cÁ—íð%Ûl ¾Aw¥Ý(•¿±ß×î`öDi ²,1¤¯&"k\.w£-IÜ?*¶ ¾bÇ>„0Ñ6p—– ûÈsÖ0L† ¾†QªÌF’¼¯=RaÿÒÝv/!-‚Ò’2|å…vÑo~aë±¼G©j 6cQËÜB6JK*0k+øÚÍvÁOSvÁµ0Ö&@Š“óxmÝIå£ä˜Ö” Äôªlß@om[s´ÞRqˆÔ"@ÒŒEeÜ׎Ғ ΆË场VÚ.x‰8k ¥÷µG7ø9ŒE¡´¤B_ùšÈe¹œuåñÐÈΙ”»à}Hñ}íó\÷µGDÔ(-é‰YÃ\—ËYK2‘ZHìkGiIÕÍZgl8èצX+^t”ª¶’öµ(mû«m©P“–,@iI¤'†år¶’e[µ]ðNL¤VRüµ(EÓcßlÒpæ&JK}äÏD¢Ëå: „CÏ(U-$ÍXT»6µÕ¾HˆÒ’ª›5tf’™i§ËR‡ÚHÚ¥ Æ¢¤%PZR¡‚¯ª„p(ø¦¥*©ÎªE€¤~{Âv,J*”Þ™ˆÒ’òIOrY.g¥J•Ô.@Êß`J’–4bzÕ#ßbËå ¾1NYl Dþ?®×΋d¬¶3i(-©‰‚ïV[Áid—r²&B÷kļé5L¯xÍÃae¡ð“̌(-©æYC§‘Á,õ«/9ÍŠÄZHÒ$M¯”ª¹­8A+ †Ò’’õü‰÷ج¡Rðµõn¡p×]Zò¬{Wå–±R‰Þ2¦L•§W¬ïjßTºü&…Ê¡´¤’1$:kOŸ·Ú|Ûq+¿„i–®àþUyHM$Ê?F)Aø4™^ÝŸ­ùþé±ô ¥%•M³ÌËåœÛ¿”‰tlgi–¼õG+b®A€„æ£!X—¶ñAM0ÞÎ]¶ìÚI†¬¦Wø Nõ|嬡ºÃw3ù°­€¨PØÿK³x ßC IVí$4ž9~ÐBàúi=üºmðm»RP8^)§é•,îÖõsœ€Hòr¹XšÕv¥íEX(

    HÅ߯åS"Ðé"ï{ÜÖß:4ýbCN×|=<’dÕ4@ä½ÂsSi4h#]ý)[s½}\nˆ²BÞˆì£J¾r^=¤ê,†Ë~ÿ†­ÏûŸŒmRoÏýžLËË0BÓk !E—,™`ÑÌ”öYiØ=çWíLõç÷Wì& øÇ¢„;ãG5¤Yò:œ.qв•\rñ_Û3‘{ïCË1A:-¯C…Ô(@‰ ÖX=ÁÚ÷C[C}cÙA.6T6âñáQÉ4kH$†pB÷d~˜\~ï¶~?qtö-É¢j …Ô @$EW¯`Ñë™s6Ÿ8jg¦Ÿ?K>$X+Ùhí,V¿’u Úýè©k 퇄I9—V²H7¹æã÷Z+·oŸŸeBš®Ö±j j ‹ÜFÑíÌó·’]ä“d'¹”•xÏҌլÕ40Áªl Q“¬XY†±nòqòé‡þÕîðÌFÓã>÷ cÜrðmò—ä:K ‰ýNÆøQQ€˜/ÅÅ¢Ô 4\M>Mvÿî-€t*eˆòâà@JGì€Tž…Ä2/þ’[Šõç÷'üpŒƒœ©Š7Ǫâ½ UAÆÄ"È& ñ·¼óÇzO±r%éÿó[­bñí{ËÄM›!Œks0ɪ4 [Ãt·KpÍä#œƒìÿ/$é¹–yAÙù#èƒl‡ˆÎ„úN“6“¬JU±â­ÂÖ`ÏÉjQÅÚA®¹ÿŸ±Ì›{£°PØöy¸}>"&AT%ÖØÄ!„HÏO† Ô®Ä)büöL&z¿Xä΋îüóûØ(,ƒÔä탓ÿBÐô5ÁJ˜¶H«cHe z¡{ûÙp´y/›ü©·~‡R“²ˆ …çž²M$Y|{»¦ïlÀM&U?âà KÄ\!0ÿ7+–Mî^(Üù è…l¥^:n;=ˆ!¨ç­–‰¡‘øÁ—sœ–Kï°î¡û(w/ãÀÔñc«?+6ÈÒða¸Ë½‚ðèY"7A‰«x}Õu¶bw¿¦Ê2r{à×"†¬QŽê+0ͪ„ŽWîÇjRÒim¹¹äÀ¯qä¶ìK …Ç~$VV'M¥ãØmåÒ«S"o¨+{MþåǸ´ôÄÚ¶6NÝk2 ׯUñ½¬A<…pøö' ²-ŽƒÅ£Wã©ÀÍ‹GñÙƒòÂ#yË»ò¬çÔ+lß›ª‡Åqe\=¼ŠjZ]} n7éáân|mÜ4åaèMd›íÚ8ßWÚ.¯¾È~½qŠÇ0ÍêYö]<¤Wö‹G}_^ÝÏ?¶öZÃó9øxg%ÙGÂ[…NëÕÅóéÐÙjÿ€Nð›éÉGÜÑ[~iIš×n7Ù?~PèôÀl‘'Nò ÅŸ0‘Œ"·HÁ—Ï«ëCšÈDªLZòâ>`Ñ>VX`IÕûð É=µ’Éeí… ±`ª’ŽPp”–´²¹A¥ÑûÝo9 NiýѤ„°`þ¤·±«VC‚ûèéÇšM¡Á;Åj9Ó$|]¥%&©“´Ä0²/­ °G-$ùF2ÕÓEFk/WB¶©žŽߪ’–(•G5%¦jlÕW}Óã¶’®#›Yðö¥»±àÛCÒM$dí ½+^T1µwë I´/ZUŸÅ¶ž8 ƒÀ½ZÛœež(@ˆØw›ó–5G©~àÉpöá#@J1GÙ›6“Æû²SØ‚R\.W%ÒÖµŠëçÆ»´ýHù ͯf·K]G©Ä\ÁZœ5Ì}¥%¶þcQaÌØQÿôµ…‡q0Ú2‘oÂoµJKJŽE9±’vuŒ¬°; ÅtZaoÃår9KKœ<&v& ûØÃÃ?€¨aJ%ª'¶÷—qÖp<Φ’–LR¤%«\¤%ùEÕ3@JR9‰«ßñ¸\ÎEZb'5¾äeÆë RºÄ¨ëG;ƒWS³ÔPp¹œ´ÄPjÏ05_‹*"L´.øø ‚­€‘? é’ãr¹´Ò©¬žšMZb&¦‹B€D¾LÉQ*ÊÛ!\.—]ZòÊsŽ«˜Ô±¨–ÈðZ‚Í in3³»œF©X6œöõ"ï!R~iId™ŸõФ¸ÃŠR9 ÅŠ€_g_—¤¶{·]Rõ±¨æ´*H6§9킇œØ´\®î¤'å—–(¥õÒcQ½ ©¾Lê]ðóÝwÁ_©3éIù¥%AsÖr,ÊY¶Tw)õ*•² Þn”êÝÃõ^ðu‘–Üu—ƒC¶—r_{]_}¤þU*ui€¥€‘É®ë¸àkœçÌqk‰&†Ñ”cQ™„¯õ‚Í(•Üo-`Ò¹ècÃEï7ÏÓ«¢Å݃/[Z×f_;ÄöËXŽR9TX´‚o¨2íðõ.†”L¯Ââî Vܽàñ½™öµOWöµ[½Ô‚)â»àÕQ*ë=è¢úÒ’Õ,O›ƒ&å®RܽéVgIOT˜8,Y˜˜y¶¨ž’BÀØ¢hLy"°Á–‰<¾Wë«ÓU¾hˆ!^ƽz5QSîBq·ýr›2ºa @ª±¨†ïê ·]ð–•ú›nUÒ,YÍŠ6 =‹!†ø·ի@¹k'-IÜ×>:¶¯=E…â.…ÅÈLkÞ=ܱÒ¬uÁ‚RÙé o;ïbˆ°iœžóÉ6­zµåá{b_;ÄñË¥Rg滎RA;‹—#yB Ru=†xcüÐéùlÑ„êÕÎ]6ײ2\ SEå´ßRž]ð?z€9u¥Øy¢Æñ Ôš4i¥× áÖD¡98í£‡_w&æ¨P@€¸÷|U&ÒŒR9ì‚?qôÊë‚%×rƒo˜3Ku¯_‘¶ ëWœÈøÁº?ÔaY¸¾¯=ÕX$Ó—)ÿ.ø#¯åÞ.­eØä_’•`ÉúÕtö 3åsç}ý Ð8û(±¯’×qÙãm6î}öñÕi†~È@oÒ_ô,Ëk†Ö¯Ö·óÄÑôö;ø2ë)™öWŽL+LD€äó(Utü{÷Ø@äÞ;àµLy°­Ådùyͨ ½d¸!Q}ó—ÎÂÄõÑ×R|¼Ãp艣³¶2å×eñײ’å Ñ2PhæÅ‘`íû¡Ã¾u_{«½0’éˤf"ª€ÑªüÖKpsª•,…ø ƒy©ƒiÛ¾p <öî 6&†ûÚõ¥|Ó ¿LêQªPÀ¸¹{·ÕóÑŸ:X¨Ê K½üþó ½ƒ!j½Áöþjíò·÷[õ‘.`­ÁP˜h‹ršòG€¸$Í.xÞ6Ürÿ}óêO‹—¬Àð¡A§éžD§èÐp½þŠô;ü:S"ðÖ &ZE!@rú2)wÁëd}ëþ'Ò;<Ðd©ì@”.HXâÝ$Eƒõì÷Ò·¯¸>xÎ@&æ4ßÉwTTßÀ¸„/)íØž¾üµOŠ"¥¬áû¦¨Hñ÷/¦µÖ÷¾ sþœÁéÚÆDóXÔI²ÄJÀ¸uÖA¿sWÚšþ×?!:!þD¦§MA‰ƒ ~è…t¶ÚÿƒÇ¦Û ÝZƒÌ_&Õ(U‡ 뼞µñ«_L u=ͨ:‰ j›pQ:€€ú`sP» Éya"$€$ 9Y§u‘ Ï>’Æí÷\cÜ”å7¡ÏÖ¤ȉ£ë¯ à!u»§¦Ù׎é/SRÀ’õ®"çy­´ã·oŠÍÀ5úTÅŠd` äUÞy5…DñžÏCrEáA…%sƒç š³ 9~™{Oäj ‘uv”b"Gž‡d¡Ó°¯w€Çe^)U Óû®.ç~Î…âBÑÉyì’ñË”Øß,:ë!DV’µwÜPÜñ÷]Í68I¢Mì]£°ŸA‰@ë Ž<_Bqp6\8ËYrEáÑ¡Ø+7öÉ Q£‘ù@×—À·ú™"Æ×~ÊȦ̦ÕÇÙüÕb©=$ÎÜ †ÜrÉï%Yéƒ÷æl‚ËæL¹@Dá1A‡yim¢KÔëD·Õˆ©ó5[Íg‘c¤aípéèWɤÇÔzú "@’ ÒÛ~3¶ÀÏþTáøé &s‚3þy»[YrÅ]>œ‰%Lí.â@ԭ4‹Cd"D†6€É,ÍR³X”m‡«Úªªà)‘> D8]çùõxp<I@¡ÜžvøËøQH—SöÑ$2jµž’WQY[êHˆÐëdRIKµÀÅ3âNÚX¤ò11y3RˆpÇe ¡®§0iGóÓ ?U¸¼YDóè@NŽ\&ÃX¢Zj²b©Vf©IpÍD-Â#FÎ+ñ ÉÑ!ÂÏïÆáHZÀÁÔýÅ™Àþ¹…ÅŽÑ,aáaªÈ/c‡È) "4â6ƒ=Æivâ–ofQ–Zj¨v‘T< éȺ„Mh†=4É€ uxšá/ÙÓ5xô©§—9†Hˆ a¼‚dXdLÄN£8xìàihÁ’–¬K.ºžƒ„Þ£àŒuøŽÐéÄúx?Ìe ‘GšD$³¿D(8Âk¤ªà±…Hÿ ŽPP˜P÷S¨ð3Œ&îôðNìS=n/S´í±¿L v±S±kR•Ñ!ÞŽü~äΗîžF9„Ó“àá@ÜíÔX vB€¤#ëz‘7¤L$¢‡»\:ÝoxD‹&;Q+5¬µ·RUÙ b ‘Ðù!LâGº\‡Ÿð(m'j¥ VR¯ª´$­ë£ÎaBáéœÐéüNì¥ý׈×QARÜN}ƒ+D‚£ª®ˆ D¢î—@‰ž&§ûóU¢[©ÑJÅíD Õ(D¸ûù ü ÄOïÀå½bÿ??.V*f'‚© €˜@þä@=½€á/8J[©W¢•ªÚNlî·;õðñÌJžù ÔßÇ+!@òÿ9àÇ#+!@ðƒ~ðã)@ðàñå  ðàA€àÁƒÁƒ‚<^ÜïA¶a &yîÃè™óéócv 3sü{åÌ)ƒïœ…Z6ho ì;ÊŒØ Sw¡¬(5è ‹ç OÐ.7.höÍgÌ à)Õx†`lÐúÖ ªt0û;ÍC’7¼*ÿVeð­A½iÍBvæ`‹’X`ßy™`³ýMFˆØ AhxæD·âñqú¾=êÁ`æpÒAï@—^tÐìû¥È(Ny?nœÆ<Ð3:ÈÞðØ<ÿ‚PÈ»ˆ–r9zpÏó€hÙéËßrÏœ5Ký”µ IEND®B`‚plugins/jetpack/modules/carousel/images/carousel-link.png0000644000312500031250000000065712651056012024274 0ustar eacbforgeacbforg‰PNG  IHDR &™ªvIDATxÚíÓ¿KqÇñ—wׯq.¸¨M‚ùß?uœýÿ ÝŽ³ˆ@ã/’(""¢"s-Óõé=<ä÷Ý:xÝ÷ž/χ›>–ˆ˜Øð <],Á2-§0Ò厞,šž.å0…‚ÎMS †™ÀœÖ@û÷b>\4°Œ8úØ .—õò UØÈ¢§÷%D,á…Š^¾ £Ë5 õ¾KÀK¶õ²‡Y$Q‡%XÁ@[«°TÓãy2à~E^ç+S`ºt©ç'VLÈ.t¹…9X¦@¨ÿÀ߬¹×6<º0wzݽIaAGÏÂ;½qtëAà :7ÃÇw1Ìæ4“Þ<¹¯À‡‹–G‚q§·NÊ|¡ Yô (!bí´#¨@ð‚ lÔ0„`Üéݳ§mz˜Eu8ð1Ùé=ï¹ ÁO§ùN ¼Óûç¯ED‘×9¼Ó·y|@p©ç'Ì>ôßpA ÆNj$W£]%IEND®B`‚plugins/jetpack/modules/carousel/images/carousel-link-2x.png0000644000312500031250000000154312651056012024616 0ustar eacbforgeacbforg‰PNG  IHDR@ñ¡ìï*IDATxÚí×»K[aÆñcEºÅ³œœ\„Ø 8¸ˆ‚Ck¯Vp’tðÐÅü"Ž."i­´Ú¦÷A{É¡¥§4Å6µ¸H0'æ¢o¿Ãiyy}ÏñMÆ’|Èå}òr9ð³„èÅ2òÌ ¶1–¿¹FŠgQEÐl ³‘òy˜L‘zŠç N  PgÒ´¸ eÈã" Xƒ<ÓòŽ”b[Ét¡$eJfåÀ6±Šh@æP*?7yÇ#XÄ RG»&›€<¹°â>d¡›R6Ž¢’I)…J8|´úYò#PL8|\ØÙ †u¢!M¸Œ$ú1ƒ½KŠGuÿQT”°‡8lìúåýHâT“½ K-¾¤Ø…2Ú¬¥–Gqn…ƒ°)ÊÅjyê’w1ˆt“E,KóÂDÀµe KXÁFV~.ÿö`û˜„eÂR/6èRBêZF·iyò¬¡bš_Ê®˜–OBÔ Îýz>–Ò0™yXõ”CtbASÅ,¬úËL`Gº"汌^Xõ26Ë›åÍòfy³üÿ+¿ö`¿ËÈCàÛ˜@ã{èõïfQ…°i5/ž‡0Fļøáû9E  š3³=tjóCÊ1ÿ¼kÊyƬüÑÇŽ |.l%Ó…’”1ßC§¶²ØÄ*¢™C_øzcˉ`‹XA ãh×d’à=ôæãO}ÈBhä²q•LJ_üäsEˆZý¬§œ#ª)VÂz.ì€l÷Ð[;_†àAHÊH¢3؃¸&[ÁÅ=ôöSw‰‡8lìbýHâT“U÷PŠŸ}FBâ!.D÷Ð;™oQCH<ÄÑ "D~±Zþ<—‚xøæþ rYï¡w_|ÏAHjˆçÚ0†%¬`#ßC§_œCø´{(Ï÷`û0ßC§_” |%tÉÛp¥LÝfå¯d $kèrƒ«œŸÁl½÷æç$„¢5Í™ñJy>‚4„ú÷Й·¿:± ŠÆ÷P^Ü‚ ì <–ÑÐú=hÌ ÑßIEND®B`‚plugins/jetpack/modules/carousel/images/carousel-likereblog-2x.png0000644000312500031250000000211012651056012025767 0ustar eacbforgeacbforg‰PNG  IHDR 7IDATxÚíÚMoEÇñi.EV•K=µ/ HšCÅ (§œçâJ¡ Èï¢=õDí¡áš=åRžJ!`àÆCÀ<šš‡M–"YJE?~‘þÕZ³Þٙݵ%Ðü¥ÒdwòU7n“NG(ã*-–Y[6xWÌ$8G17‹à ¤óò,‚HgcÚÁBF~ݘf°…ìÜœfpÙy8­`D'ÈÎ Ee‚m¡þQ;‹Ô«1Ö£kEtž6Q}6iÞçkØ¡#øÏuʾh®Sß#Ö§—ª¾J—=‚ˤªïyïW ž§¡GpH/T jø®ÜÊù]tÄÙÙ*¼HÇHç”Ö©IJ4åc§‘5Í2Á5¤³CK–{—äȬ• vi@-:GÊFîiÉš®oð2ݦ ¤|Èš;tÉœŽ Á Á ÁÿJð•í¯«˜Yð*-– ®lSÆ]1“à Äœðá·¾n„ÿ>Í«ï~çkƒ 6üƒžúhÐ!ARÃ+Ø~oÏG‹`¸é|ÿ{Ûƒß>Íküà*¢‚á„"÷à‡?>צ¡f#J÷i^ÿ¨7n‘z„šôèšÄ$øø'ÓÍO~ÉÓ¡#‚§#Êß§Y}ò«ÍuêõɾO³úéïE– ŽŠ÷iÞÜé¹Gptß!ø‡Íy ɾOsë³g6šàIÛƒÝÍÁ0¤Ž [Öà[_ü™ç"Ä)­S“”hÒº\ƒ8¦¦%øWž5‚Ø¡%R&J®íÄZnðí/ÿÎÓ¥µè\Þ}O$÷´dM×7x™nÓR6æ'”5wèÒäàWÿTÀ¢þ`ø·E†`†`†`þŸƒZ8ýçc}“±PwpožéÄuGô¢ÃÿŠëº‚íœGiNB‘OP9Š‘?qÝAâÑu(q&ÕŒá>qÕ ÷ú™½IÁˆöbU z¿¬«½þàÖŒ(q|”+°Œ5èû—/]¡Q¥ Ç·—íª³v£|@¨5(4(ü‚!‚!‚!‚áLÔ ƒü¸>ãzD žÒ}âûMJÄBÝÁ=jÁ˜ b—#Jp4¢tŸ†ø¾&tÑ%8jS{ô´I ÁP4Ü5Á lÒànLÈÛÎDÁ lœ½Õ„:ïˆ ªÀ%„ EgG“L0¨1ÁQ|v,Ƀ²0.³>{bèãŸM0( 3˜Y?éˆRLp““ šk2ÁÕO~‹hŸPà@îUc2As]Þ‰!M( I2AsíÄPLÈ“š 4Öeƒ·>ö\D Áp ×Ô˜‚‹¢Cš`ÐÆ=WhDpárb(&ˆØ¸Ö ]‚+—C%´O‘qíÁ‡ë-T^þôçÈUÈQõüIEND®B`‚plugins/jetpack/modules/carousel/images/carousel-sprite-2x.png0000644000312500031250000000403412651056012025165 0ustar eacbforgeacbforg‰PNG  IHDR ÏÇb5ãIDATxÚíÏOWÇÁ˜H±Xñ­ê^ X˜nºÒZ«.ÞÆ&â(ƒûšš.ü•‰Ñ…¸uV&âDÀÏnZ©UDЊšü$äö{Ó;épß¼÷î½sgíù&Ÿ˜{îù:óž399'SVö)‹1¶lKÒÀYNRÉW Áª$ ìdÿéÛ$ ´ù ´Å¼¼óà?WÆi`Ë×qh0p-®ä)°`€ÿ-e#AÌ2ûâ{fTMlÓó½êtÏÄZpÙBr¾ÇÚ0—¤Ì$æ1­¶>xÛÁ3ä|í×¶?ý{5 ìâëw^ÃÀÛÉ×€ |m…MiƒaÚ¦+þ•­‚ ³sÅVòõ`Á·ñ8j|kjÄß–|ëükÂ8âÛ´ÔY[/Öx:bÃ@VÀ$â«f:µ&Oðà­¡XL‚ÿ-|ð`çã ˜Ì2|ÏŒ’‰ÆÛÃÛÀ0`–à{éÕ »FÖ‚Ë€…„ïa^'lêmó€iÂcìÔ ›{ƶƒg€)Â×Ú­6ÿút/`ŠØ¯þØûì<`Š\°œüï5`0EøZ{u–¾çiÀ4±W'lÉN\Lb´ fŽÛ©ºûb=XL°Îßšñ·%ߺÿš^LРꋬ­k¼õá넇{•`(WX_.Öò˜lØäÁIPe[Nª’H$‰D"‘þÇ­iÓ`]]’âyWEN°!jƒrC#~w}ÇÝ( ð.¹-§>\W†LS/+§Õo(GkĹE̺‘PlxJGb€Ò œz³Ka`Àո܏‘}lÅÇoÀö)41Àû…'’O©|ˆŒÎ Í¯‘ñ%´õI©ßç¼SßT?4&÷ñ¢§¿oÖi7ù¼Šù‚‡:÷kÞ¥˜ 8õuŸVâ¤"‘H$‰D"‘V‚Ðošæ£M“irIН9Á†¨ ‚J)ÞõׯúÚ5K1 ¶H±é€uz—Â×®YŠŒWrëøßR2?q®ëCýRÈ=£Š1é€^SµK!·l*¬ßr­ž29¥ÖO¹%Sa½«ÑÞYúRÈm™ºß¢°ñeMÝO˜ŸÈãÑ~éj´kº û-‹)i ùÎx LV‚)¾Va¿eqJ§ i…nÉ´â^Ë┯:!Ý"’®Æ>Ëb• ´ô?O`Sü˜´¶!`] ZŸ`tC¦:$ÓÒšÍ`6`] Ú_CtCº¾îHW:V úŽ—ÄÀÀËÈIþ³t좯kR £§"4#¦9ôpI"‘H$‰D"Ŧññq¦C=ãxtL3P­B‰³é°xI¤ KÌ@¢— ô‡0¢äŽ|̺bɃÖX5 ’\^kÍbN¨&÷›°i`˜SM^ò^`x ü&œP7£Bnâ§ÐwÃÄoÇŸµq'çfDŒ ÄÅÊ3@"‘H$‰D"‘H$‰D"‘H$‰D"‘H¤ýW˜öpŒãmÐ1‘ØpSÒÿR­B±³‰ãŽo¿@òƒÚñf`ë’b/ÇÛ3ˆ¼€×0¢ lÀ^Ǽ=ƒÈ¸Žm`%ùõŽ·_!ò‚270}c0´ìáx{#?ð&ÞÊB%¿ùÈñö‘päcyÁ;0šÝ1dl±Ž·‡„´&ƒ[˾õØÈâ/^Â)´6o“ÆNŒiwŒywŸðb%œ"1ùÇšº0¦Ýe0æÝõd˜óâú-}MÝÓî5ºˆÛæÄfý„Í=Óî1ïïAì`ÞOØ|oâ‰ÝŽµÇ´m«¥cÚ½ÏYÄ9ª æñÞÄ©>(”§¥sâýÑ蟨.˜çPcÚÙ—‘ÀþÕó¾ûŠÅÉÊ3@"‘H$‰D"‘H$‰D"‘H$‰D"‘H+Rx»ßjÐ:À´Â›§ÅZ³:lòZ0ÄÌÅckM“×·,¼øuºÉ+À(³'¾W…Ž£Ì¾ŽêèÀ@¿Ž÷x¯c }Ræ#ÈÿAÇÀ½ ü¡càx~Ö1°N¼Ý×–ø^_èþo¸|´|ì2½ì¯C$çwÆïÂÞù»ìÏ€1Ä#à4øÒö³Á€”è ?½âÎÉÙª£|8éñ%ŸßÄýtÔ'’/ï“x<»/ 4'õ|øü’Øêï¯?ôÑc:‰D"‘H$RìÂtìjÐ:À´Â4í´XËcÂÕ 1[ †JMÏÇÖš&¯oC$÷à{èÕ 1’[F‹ìjÂ÷R¯b"öh©‰YÔë„x1r‘—&›¢^'ÄHî{•±]MÔë„ÆvC£l Àôlht ÌG`@½NØx{ä`–Q¯bd÷¸4Âkõ:as÷Ø:0˜%ø^zuBŒïî½Qà,³:!F€÷€×Þ8°Ó \cÀ5à +ò&h™pØ­bTwÀÙ¼»@`ëì᣺=ÞÈ.˜ñÖ e_ôL̾Xñ× 1ª{_Œì&S'ĤìS\D"‘H¤(ô<5gòF²IEND®B`‚plugins/jetpack/modules/carousel/images/carousel-sprite.png0000644000312500031250000000244612651056012024643 0ustar eacbforgeacbforg‰PNG  IHDRÈáža#íIDAThÞíZmh•e¾îûY DÉ}ø1Å…ÛŠb m™Ùj–Maÿ²þ(úSâ¿~„¥6uÓ~uüŽNe¤.Rbƒ9k-OàÇÚ,”Ê H¯~ì=ó=ïyÞ÷¼çL"á¹7¼{î羟û¾Ÿ÷zxD€d9Éò¨>Šhlñ¤4üŒdºTãj’ÿxR]J Œ'qFì!y›…q›dO˜“Z’Æ$ë E²äy‹ñ·$Æ©ÁŸª,íÕž®`-š|£^ô$‹¦8޼Ir7ɇI>ä=ß$y¸ñ’²èª<Ý88ƒÎ¡‘òΡ‘ÒÏDlHä™Xé@õ%àãðABоX àª÷çŠÁ–'~)*5¦C1žtŒ`û©zìðHÚþ ïhóÚ¼^ýz²À ‡ÿ`ëá¦Õ#¡5Øq&³ÀWž¨ÎhîoHü9 ¢ZÔ™¨ ¢ºRT!ªãžÀkkˆã STo‰ê¢ú¤¨Ö{Ï·DõåÈu°ë›©öØw`ÃÒ逮 À{lXú·Ûè0H.!YÕ!Œ•ÕxúÉT±z<]Ò×–Œt`i¯ 9ís0M²²)Kd©Ø¢ôê!Ð1UÌôT’œñ…wÖcd„¶*“ì²MKT$sóLr]{/”J¥Ûsÿ{溤sh¤"”ât 2„•=s¬µn\ zmíV†"ÆØ¤ïXkÝxwz,)Æ$Řdwz,ie(=Ÿ6×Û+ŒÈn´ë6×ÌX#ÈãAÆ| ÆTú¢ªcöçÕ@-Æp´ym»GD ‡›VKNwœÉ¤$}d“Nô7$Úsœ±“mQÓ'jnˆxò«¨é˧€&ÏÉ\(½ç®&dOâöC›Vœè=wµ À`ÐÑ¡M+Ä: ;‡¯§ààÆeí;‡¯¯pÁÆÞn\&Ö…$ª}¾N—”»ýçð`@ “ÉXßù‰D"«_ à4€åA½ÿDZl‘lÇI®…^ÿ‰Ä­RRÐ8)\óGRV‚q£§:Ë€÷ýÆ^=Édã¦Ð í7öv.L–º´£L&³(;¨Îw%–Ý4î7Oì<9b}3o«Ïê­<ñx[ý,O”Ùßâ ø:N ¤Q ×÷~sü@T1øÜúHž(ªáÃv#͹|§ÇƒTÙtÊ¢¼Àö/¾/Ì£ˆjO<Ò¼f^95q'Š OAŒécÒbÌœ1øŸ±ãÌÏóã‰Z ˆAôž½²¨÷ìÞ£y*E+¹Ó¨j°kxÊñD‡H¶¼@ònàß]¯½%ʸ•äÿØw‡dk˜ƒQÆÃhÑôÄ~½‹ˆä0”ùÀï`"¦Í¥°lYƒö¨™xäåßHn‹»²ßÙ_#ùÉG‹]P3$_ŸÏŠ|×íK‡ÿþæšEçÉ‘ïx* #€ï¼y¼­>muÐur´À§™»ž?ÖV7”w ˆ1{Å ùtœcöæÝ\gÏ9­™v­Ý1%±ÌwC°¦Ø3q®ªæ-Uƒò¶ÕAÓªO º ª¨Â"—¡úbÓªTè:ðÝL§1û½À—þ8ôìÊß"k{áV°ûà¦å•TÙ]ÃSîLt( ÿ™ËÌýЮĶIEND®B`‚plugins/jetpack/modules/carousel/images/arrows.png0000644000312500031250000001066112651056012023035 0ustar eacbforgeacbforg‰PNG  IHDRÈ~V®ÄÖPLTEÿÿÿ>>>===<<<:::666444gggfffdddbbb111///^^^ZZZ,,,„„„++++++******|||)))PPPxxxwwwNNNMMM™™™LLLqqqKKK–––JJJooo”””%%%$$$III$$$iiifffeee‡‡‡ddd§§§ddd!!!ƒƒƒ‚‚‚```€€€~~~}}}|||¹¹¹···———”””±±±’’’WWW«««ŽŽŽÅÅÅÄÄÄÂÂÂnnn¾¾¾kkk   ŸŸŸžžž···œœœÏÏÏ´´´ÍÍÍÌÌÌËË˰°°®®®­­­ÅÅŪªªÁÁÁØØØ¿¿¿××צ¦¦¾¾¾½½½ÔÔÔ¼¼¼»»»ÏÏÏÌÌÌœœœÆÆÆÅÅÅÄÄÄÙÙÙ×××ÑÑÑÐÐй¹¹ÍÍÍ···ÝÝÝÛÛÛÚÚÚíííëëë×××êêêÖÖÖèèèçççÓÓÓæææåååäääãããñññðððïïïìììëëëêêêôôôóóóòòòðððûûûúúúùùùøøø÷÷÷ÿÿÿ¤q«9ñtRNS  !"#$%&'()*+,-./0123456789:;<=>?@ABBCCDDEFFGHIJKLLMNNOOPPQRRSSTTUVWWWX[[\]]^__``abbcddeffgghjkllmmnnnopppqttuxyyzz{}}~€‚ƒ„„†‡ŠŠŒŽ‘’“•–˜™š›œžŸŸ ¡¢¤¥¦¨©ª««¬¬­­®¯±´·¹º»¼¾ÃÄÇÇÉËÍÎÏÐÑÑÒÓÔÕÕÖרÜÝÞáâãêëìîôõö÷ø5[ ™IDATxÚí\ùwG–dÝ’uز$KÖeɲeËÖaË‘-[Ƶ°å˜¤&ÄÇå(´B¹(÷™ÊURÎ(G „«¡P 4@ 41g9RÀ)¡qÑÀÌì®vf-¹ÞÙݼ¶Oû«Þû~õ™ùÞÇìxÆÓäÛÑÒÒÒÒÒ"?OòOF M‚þOÑP’ d¨R©5èS«UôPè(É2Wkšµ:^¯Ói›5%JJ2¬sÁh¶€Ïl4è´x–T8 %½Ñ$Ž’<@Ð!ê &‹ÍáŸÃf1t5µF«7ZZìNg+ d5uÍš'F"u³Îh±9Û=>_‡Çå´™š+iR¦‡Ëãõù|^w›Ýº-$²§¨3Zí¾@8v…;=­‰V#<€Ãéö…º¢±h$ès;[LúfõÕ àhqzÑžä`*•LÄ‚Þ6› ^‰x èH©^‚Ô"¡"ü…Áamõ†âCùOž>ýÅgă§Å¸‹uÇ€–ÞâpbÉì§Oßõì\ª7âs1‡Ò´Õ‘ÊD£5XœÞp"3zí?+à{ìÆÁîN—ͨ£¢n6¶´ù¢ÉkA”^_êïòµµy$JARmqz‰ìøìÃô=vM_Øã0ë4@´&›;Ø›ýCéÊb iµµ…€ Á2Û!ï‰ò÷+ìw×`Ô×jÑSÄÞHòù¥¿-ìÊõ…½N Rxå€0 bsâ™ñùsÜ+ßÎÄ;Û(Xœ¾hêCUR?Þ39”yìf䘔qhÖ6_,U(ß²Qåþ,b¥K©JªòÙ…b6€*Ç—B@‚tt%ó¥åužùg²ô7b@R/æim¼y¾ŠùÚ85Qò„f;PôÜôþs<ïG'3Ý>§…JÙu&‡7:Xø%Om}u6Ÿìê`ì¹"@ª Ò“Ü{'ϹòÁñTÔ ¬ùÕmžp2à OîÜÒtŽ5ƒuý¢ Œ‚´´ù»Sã»oå¤rß\¾/ä¶µ4±Ù`uzsÓÅæÔâd¶'ÐÎúE€¨› PAFçb òÀ6î‡*¢¢ñì@Û;¢©ñ…û159º0žîö¿¨­‡D¨ z³Ãî™Y:q½e.ßöØÁñ5‰‚d«=”n ;›õƒs£QNMä‚ÄxöíZ<…ÉÁ énà‹ œl9½]ce\ZÏ/ÍŒ 5©SaÄåïNO,ÅXžÛ?•KÛ³/¾ˆƒ®¤ÅÕÏ÷âÇs÷⮡Þ`}5‘D CE_tp¬|ˆ‚|2C Í…°mw‡¹™¥5L`-L€pÁņ²av`´|è2OùòáòŠàe¹€° â&†§öÁ$à =XtR!7«ƒÒ€°¹T+Ì¥æãë<ºxi ²µ ®œØ‹gYTdvW“ £DÁÚdƒq³¸qx7žeIÂåR!Öa¹TåA4À[7É£jƒÀïÃõɲ6«‰X x.Eè! Mºðj‡ HÌLè@\<̲a®A „+6øc‚\ªšµ9pT³hƒçqN•“(˪‰h l.•#|• ¡IŒâ`üî7ÞÎlS–%HÕç r)YB“-lð4ÁlýȲºY–( Õ\ªäRwW„‘©ÔÐ¤Ž öÂëÇ3,ËâÕD ¾Ø'r©Ê &’šÔL²jØ`&Ë"‹â€0 …^jô·²„&õmð™,À,KPŒWåóBÓ‰‚F-'ÒÑéú¡² ±} ¼(ÈÆ­»e MêÚàA2ªœ_žÁ¬‹H €& ±ÆI…v=.«å%‹*5m0°÷¬7a#z@T\¶3wð2iBd MjÛ`cƒÄ‘Er# •H °)ŽfhjÿŒÞ%˜B£®—_°6¸|ønò–F°0«CW²m °Ýjrx"ɱÝßÅæ¶Å"¬ÊšÔ²Áhƒ3Ž·áœ/,Ó1x%¨y¼} °Øêg§>‚S»wµ´³9•R@ØZD"WZ¹ç}¸’ p^Í"4j¡¾üÿ`´þürìXÁÁÙ`¦°ý²?âHÞ^ˆxì°è/ ˆÖh÷D ßÃ(=þÞ—”AvËtÂÁUQÁ•윽îÝcìžÌ€C„m1@@ߨÑM±L嫯]-åz.«‚ÂõX/½êËø•¼q(îo…1‘@@s/³ £óÛ÷ݼ2ÍÒR)‡ [±tqß+ßõkì¼?×ÓI¤#–™ÄèüïÃ7¯Ì ÷tÒõtD‰" ?—èR¦Šb„þú†Îî„–ÃЬV\´|H´>‡‹ÖK88ÅV ¸‘ÂçqJ?º~¡0Øåu˜t *I㋃‰‘Òuïü/ÆýWÅ4Å*;èR"b³ÇÍÖÇ–¦†{` H9³…›ßëƒ1¿ò¢1P´‰5¿MÐ!úº3“¯Ã£ÐK¯Ù]@¹¡^)áÂâÌò7pqøô ´˜@¬U¢C0П/ߎSûÅ2ò(&\LˆŽ0=±ç=øÞjH²Ä…(;PBžÅp$_€Á–üi®0h…͹ëð´ôâÒôp/ŠãÕMMbÃxOƒüð"QÄœÂåsZ±\|kLƃÃ(*̳‡â+=ÊØÇÊD²Šð¨%fV@¸øâˆ}ñÊ?hÅ ¬ÝÊ^ˆ¨œ§¹çx…h‰Áš†")"–ê’§ÛpD·ZTñ¡N´r XHéäŠ.>¬­£bËA\KzeMPú“³€]£´‹8º­j‘•F8$Њ†ð¨Ì-…'l’TŽo_2eÔD@5yä¶ÁxºN7)E›)þá Í×*›Ún²ÚàºÄóìä1`CÑV@£Mý#%¢Ú(¿ Æz®‚–Ò!ØÌ÷ FžÄw¬êÕáuÚå³Á\h²©Ù~y—`¦õV»"¬ê¡4ò´Þ‰z®ë[Wâ)›¡ÕÉ$Ù#ueÙl0šC ÕÞˆ`PS4²kõ BµS<4!†ÖWkt«¨'¸>bžì#²Õì~_†Ð„ ì@åô\ý›Ûì´#lgW †²>à¡ >ÖV§£+i¨†›[&f^VÙa´Žš,žöØC›zìRÆœjO?œe]®Ḋ&À2ncêAÊàYy”rØ`¼›‹Fî抴QÀšBŒ –V‹¨Û_½ãÚ“AR‡3kÍl­1f^‚ ÆIÈÍjÕžü¥BLÑÓ;§¸Ž"mŒÍ3([LÏI`æç×6õx©ãà&¾WYZY'r©ºóŒRgãkOš®3q0#” œ8K„rÅ­±¥ùךý}`q›dÑ ùËöÁúè'ðnôV3¿’×.¸,kxjñŒéíó ÏëeRº q‡úFJ7mlw [ŽE˜ê|<¾@rÜݲ¢,U®½÷^ s)¦¨U+°ÑÇväÆÂï@-“SH(úƒ=˜Ò7…¹T§k‹…éËbì ™e}}‚-/S/‹¾…0é5s)Y×÷ª[=“øVÏ•k³l—R<´¾—ÿ Oí!bÎL±…JvÏ ,">ÄóþÊíB¥.TFS¯Æä¦Ù<ŸK)·«[ͲJ7ü[®×h꼂|xÂXuÈLÉ¥cXŒáãØì›ª=øoe˜ý=º׎èà[ù¾Ôüx†˜¢Rr Åx©Âì§8îw Â­Žƒþ<ŽÒÏÊÙ^|yZÉÅ|´Ðˆ§G§Êpd(A¿˜SÃxú‡ ¥• Y@ Ý|*ñ‹Áxjdâ'ûŒú]ô+®­‘DöÒŸž“O÷‚µ|ì%¨Ð£ž@¬/{Á‘#7fúc7NÐxv³ÍåïJ¤ž{äÈ+rÙd<ä%(ñxEçD,Žv¸;ÑŸL&â]“‰S)žÑ2¤â ©H'GJöçDê"±·yüÁp$øÚ·÷*KÝ·b®Ž@( ‡:½.¼«òÀ ËÞ`nq´µ{À×Þj·šôZÚ'w˜×{\×ã÷XŒèy—«„{ºÈlµÙ;z¹HKûBb¶0”Z,F½n;Ï9Éòׂw©Lf³ÉhЃw‹ÔtlAJš*%ãv)É„}Þ ½ïżöP˜hJr©¾¸†>•JÊ+tT”ä"|OÊ”äòtyÞð)ä©÷5€4€4€4€4€4€4€4€< ¿ÿ_Ú½†ý¦ÏIEND®B`‚plugins/jetpack/modules/carousel/rtl/0000755000312500031250000000000012654411246020351 5ustar eacbforgeacbforgplugins/jetpack/modules/carousel/rtl/jetpack-carousel-rtl.css0000644000312500031250000006361512654411246025131 0ustar eacbforgeacbforg/* This file was automatically generated on Jul 30 2015 22:37:09 */ .jp-carousel-wrap * { line-height:inherit; /* prevent declarations of line-height in the universal selector */ } .jp-carousel-overlay { background: #000; } div.jp-carousel-fadeaway { background: -moz-linear-gradient(bottom, rgba(0,0,0,0.5), rgba(0,0,0,0)); background: -webkit-gradient(linear, right bottom, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0))); position: fixed; bottom: 0; z-index: 2147483647; width: 100%; height: 15px; } .jp-carousel-next-button span, .jp-carousel-previous-button span { background: url(.././images/arrows.png) no-repeat center center; background-size: 200px 126px; } .jp-carousel-msg { font-family: "Open Sans", sans-serif; font-style: normal; display: inline-block; line-height: 19px; padding: 11px 15px; font-size: 14px; text-align: center; margin: 25px 2px 0 20px; background-color: #fff; border-right: 4px solid #ffba00; -webkit-box-shadow: 0 0 1px 1px rgba(0,0,0,0.1); box-shadow: 0 0 1px 1px rgba(0,0,0,0.1); } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { .jp-carousel-next-button span, .jp-carousel-previous-button span { background-image: url(.././images/arrows-2x.png); } } .jp-carousel-wrap { font-family: "Helvetica Neue", sans-serif !important; } .jp-carousel-info { position: absolute; bottom: 0; text-align: right !important; -webkit-font-smoothing: subpixel-antialiased !important; } .jp-carousel-info ::selection { background: #68c9e8; /* Safari */ color: #fff; } .jp-carousel-info ::-moz-selection { background: #68c9e8; /* Firefox */ color: #fff; } .jp-carousel-photo-info { position: relative; right: 25%; width: 50%; } .jp-carousel-transitions .jp-carousel-photo-info { -webkit-transition: 400ms ease-out; -moz-transition: 400ms ease-out; -o-transition: 400ms ease-out; transition: 400ms ease-out; } .jp-carousel-info h2 { background: none !important; border: none !important; color: #999; display: block !important; font: normal 13px/1.25em "Helvetica Neue", sans-serif !important; letter-spacing: 0 !important; margin: 7px 0 0 0 !important; padding: 10px 0 0 !important; overflow: hidden; text-align: right; text-shadow: none !important; text-transform: none !important; -webkit-font-smoothing: subpixel-antialiased; } .jp-carousel-next-button, .jp-carousel-previous-button { text-indent: -9999px; overflow: hidden; cursor: pointer; } .jp-carousel-next-button span, .jp-carousel-previous-button span { position: absolute; top: 0; bottom: 0; width: 82px; zoom: 1; filter: alpha(opacity=20); opacity: 0.2; } .jp-carousel-transitions .jp-carousel-next-button span, .jp-carousel-transitions .jp-carousel-previous-button span { -webkit-transition: 500ms opacity ease-out; -moz-transition: 500ms opacity ease-out; -o-transition: 500ms opacity ease-out; transition: 500ms opacity ease-out; } .jp-carousel-next-button:hover span, .jp-carousel-previous-button:hover span { filter: alpha(opacity=60); opacity: 0.6; } .jp-carousel-next-button span { background-position: -110px center; left: 0; } .jp-carousel-previous-button span { background-position: -10px center; right:0; } .jp-carousel-buttons { margin:-18px -20px 15px; padding:8px 10px; border-bottom:1px solid #222; background: #222; text-align: center; } div.jp-carousel-buttons a { border: none !important; color: #999; font: normal 11px/1.2em "Helvetica Neue", sans-serif !important; letter-spacing: 0 !important; padding: 5px 0 5px 2px; text-decoration: none !important; text-shadow: none !important; vertical-align: middle; -webkit-font-smoothing: subpixel-antialiased; } div.jp-carousel-buttons a:hover { color: #68c9e8; border: none !important; } .jp-carousel-transitions div.jp-carousel-buttons a:hover { -webkit-transition: none !important; -moz-transition: none !important; -o-transition: none !important; transition: none !important; } .jp-carousel-slide, .jp-carousel-slide img, .jp-carousel-next-button, .jp-carousel-previous-button { -webkit-transform:translate3d(0, 0, 0); -moz-transform:translate3d(0, 0, 0); -o-transform:translate3d(0, 0, 0); -ms-transform:translate3d(0, 0, 0); } .jp-carousel-slide { position:fixed; width:0; bottom:0; background-color:#000; border-radius:2px; -webkit-border-radius:2px; -moz-border-radius:2px; -ms-border-radius:2px; -o-border-radius:2px; } .jp-carousel-transitions .jp-carousel-slide { -webkit-transition: 300ms ease-out; -moz-transition: 300ms ease-out; -o-transition: 300ms ease-out; transition: 300ms ease-out; } .jp-carousel-slide.selected { position: absolute !important; filter: alpha(opacity=100); opacity: 1; } .jp-carousel-slide { filter: alpha(opacity=25); opacity: 0.25; } .jp-carousel-slide img { display: block; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; background: none !important; border: none !important; padding: 0 !important; -webkit-box-shadow: 0 2px 8px rgba(0,0,0,0.1); -moz-box-shadow: 0 2px 8px rgba(0,0,0,0.1); box-shadow: 0 2px 8px rgba(0,0,0,0.1); zoom: 1; } .jp-carousel-transitions .jp-carousel-slide { -webkit-transition: opacity 400ms linear; -moz-transition: opacity 400ms linear; -o-transition: opacity 400ms linear; transition: opacity 400ms linear; } .jp-carousel-close-hint { color: #999; cursor: default; letter-spacing: 0 !important; padding:0.35em 0 0; position: absolute; text-align: right; width: 90%; } .jp-carousel-transitions .jp-carousel-close-hint { -webkit-transition: color 200ms linear; -moz-transition: color 200ms linear; -o-transition: color 200ms linear; transition: color 200ms linear; } .jp-carousel-close-hint span { cursor: pointer; background-color: black; background-color: rgba(0,0,0,0.8); display: block; height: 22px; font: 400 24px/1 "Helvetica Neue", sans-serif !important; line-height: 22px; margin: 0 0.4em 0 0; text-align: center; vertical-align: middle; width: 22px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .jp-carousel-transitions .jp-carousel-close-hint span { -webkit-transition: border-color 200ms linear; -moz-transition: border-color 200ms linear; -o-transition: border-color 200ms linear; transition: border-color 200ms linear; } .jp-carousel-close-hint:hover { cursor: default; color: #fff; } .jp-carousel-close-hint:hover span { border-color: #fff; } div.jp-carousel-buttons a.jp-carousel-like, div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink, a.jp-carousel-image-download { background: url(.././images/carousel-sprite.png?5) no-repeat; background-size: 16px 200px; } div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink { margin: 0 0 0 14px !important; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged, div.jp-carousel-buttons a.jp-carousel-like.liked { background-color: #303030; padding-left: 8px !important; border-radius: 2px; border-radius: 2px; -webkit-border-radius:2px; -moz-border-radius:2px; -ms-border-radius:2px; -o-border-radius:2px; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged { margin: 0 -12px 0 2px !important; } div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover { background-position: 6px -36px; padding-left: auto !important; padding-right: 26px !important; color: #999; } div.jp-carousel-buttons a.jp-carousel-commentlink { background-position: 0px -156px; padding-right: 19px !important; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover { cursor: default; } div.jp-carousel-buttons a.jp-carousel-reblog:hover { background-position: 6px -56px; color: #68c9e8; } div.jp-carousel-buttons a.jp-carousel-like { background-position: 5px 5px; padding-right: 24px !important; } div.jp-carousel-buttons a.jp-carousel-like:hover { background-position: 5px -15px; } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { div.jp-carousel-buttons a.jp-carousel-like, div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink, a.jp-carousel-image-download { background-image: url(.././images/carousel-sprite-2x.png?5); } } /* reblog */ div#carousel-reblog-box { background: #222; background: -moz-linear-gradient(bottom, #222, #333); background: -webkit-gradient(linear, right bottom, right top, from(#222), to(#333)); padding: 3px 0 0; display: none; margin: 5px auto 0; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.9); -moz-box-shadow: 0 0 20px rgba(0,0,0,0.9); box-shadow: 0 0 20px rgba(0,0,0,0.9); height: 74px; width: 565px; } #carousel-reblog-box textarea { background: #999; font: 13px/1.4 "Helvetica Neue", sans-serif !important; color: #444; padding: 3px 6px; width: 370px; height: 48px; float: right; margin: 6px 9px 0 9px; border: 1px solid #666; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } #carousel-reblog-box textarea:focus { background: #ccc; color: #222; } #carousel-reblog-box label { color: #aaa; font-size: 11px; padding-left: 2px; padding-right: 2px; display: inline; font-weight: normal; } #carousel-reblog-box select { width: 110px; padding: 0; font-size: 12px; font-family: "Helvetica Neue", sans-serif !important; background: #333; color: #eee; border: 1px solid #444; margin-top:5px; } #carousel-reblog-box .submit, #wrapper #carousel-reblog-box p.response { float: right; width: 154px; padding-top: 0; padding-right: 1px; overflow: hidden; height: 34px; margin:3px 2px 0 0 !important; } #wrapper #carousel-reblog-box p.response { font-size: 13px; clear: none; padding-right: 2px; height: 34px; color: #aaa; } #carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit { font: 13px/24px "Helvetica Neue", sans-serif !important; margin-top: 8px; padding: 0 10px !important; border-radius: 1em; height: 24px; color: #333; cursor:pointer; font-weight: normal; background: #aaa; background: -moz-linear-gradient(bottom, #aaa, #ccc); background: -webkit-gradient(linear, right bottom, right top, from(#aaa), to(#ccc)); border: 1px solid #444; } #carousel-reblog-box input#carousel-reblog-submit:hover, #jp-carousel-comment-form-button-submit:hover { background: #ccc; background: -moz-linear-gradient(bottom, #ccc, #eee); background: -webkit-gradient(linear, right bottom, right top, from(#ccc), to(#eee)); } #carousel-reblog-box .canceltext { color: #aaa; font-size: 11px; line-height: 24px; } #carousel-reblog-box .canceltext a { color: #fff; } /* reblog end */ /** Title and Desc Start **/ .jp-carousel-titleanddesc { border-top: 1px solid #222; color: #999; font-size: 15px; padding-top: 24px; margin-bottom: 20px; font-weight:400; } .jp-carousel-titleanddesc-title { font: 300 1.5em/1.1 "Helvetica Neue", sans-serif !important; text-transform: none !important; /* prevents uppercase from leaking through */ color: #fff; margin: 0 0 15px; padding:0; } .jp-carousel-titleanddesc-desc p { color: #999; line-height:1.4; margin-bottom: 0.75em; } .jp-carousel-titleanddesc p a, .jp-carousel-comments p a, .jp-carousel-info h2 a { color: #fff !important; border: none !important; text-decoration: underline !important; font-weight: normal !important; font-style: normal !important; } .jp-carousel-titleanddesc p strong, .jp-carousel-titleanddesc p b { font-weight: bold; color: #999; } .jp-carousel-titleanddesc p em, .jp-carousel-titleanddesc p i { font-style: italic; color: #999; } .jp-carousel-titleanddesc p a:hover, .jp-carousel-comments p a:hover, .jp-carousel-info h2 a:hover { color: #68c9e8 !important; } .jp-carousel-titleanddesc p:empty { display: none; } .jp-carousel-photo-info h1:before, .jp-carousel-photo-info h1:after, .jp-carousel-left-column-wrapper h1:before, .jp-carousel-left-column-wrapper h1:after { content:none !important; } /** Title and Desc End **/ /** Meta Box Start **/ .jp-carousel-image-meta { background: #111; border: 1px solid #222; color: #fff; font-size: 13px; font: 12px/1.4 "Helvetica Neue", sans-serif !important; overflow: hidden; padding: 18px 20px; width: 209px !important; } .jp-carousel-image-meta li, .jp-carousel-image-meta h5 { font-family: "Helvetica Neue", sans-serif !important; position: inherit !important; top: auto !important; left: auto !important; right: auto !important; bottom: auto !important; background: none !important; border: none !important; font-weight: 400 !important; line-height: 1.3em !important; } .jp-carousel-image-meta ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .jp-carousel-image-meta li { width: 48% !important; float: right !important; margin: 0 0 15px 2% !important; color: #fff !important; font-size:13px !important; } .jp-carousel-image-meta h5 { color: #999 !important; text-transform: uppercase !important; font-size:10px !important; margin:0 0 2px !important; letter-spacing: 0.1em !important; } a.jp-carousel-image-download { padding-right: 23px; display: inline-block; clear: both; color: #999; line-height: 1; font-weight: 400; font-size: 13px; text-decoration: none; background-position: 0 -82px; } a.jp-carousel-image-download span.photo-size { font-size: 11px; border-radius: 1em; margin-right: 2px; display: inline-block; } a.jp-carousel-image-download span.photo-size-times { padding: 0 2px 0 1px; } a.jp-carousel-image-download:hover { background-position: 0 -122px; color: #68c9e8; border: none !important; } /** Meta Box End **/ /** GPS Map Start **/ .jp-carousel-image-map { position: relative; margin: -20px -20px 20px; border-bottom: 1px solid rgba( 255, 255, 255, 0.17 ); height: 154px; } .jp-carousel-image-map img.gmap-main { -moz-border-radius-topleft: 6px; border-top-right-radius: 6px; border-left: 1px solid rgba( 255, 255, 255, 0.17 ); } .jp-carousel-image-map div.gmap-topright { width: 94px; height: 154px; position: absolute; top: 0; left: 0; } .jp-carousel-image-map div.imgclip { overflow: hidden; -moz-border-radius-topright: 6px; border-top-left-radius: 6px; } .jp-carousel-image-map div.gmap-topright img { margin-right: -40px; } .jp-carousel-image-map img.gmap-bottomright { position: absolute; top: 96px; left: 0; } /** Comments Start **/ .jp-carousel-comments { font: 15px/1.7 "Helvetica Neue", sans-serif !important; font-weight: 400; background:none transparent; } .jp-carousel-comments p a:hover, .jp-carousel-comments p a:focus, .jp-carousel-comments p a:active { color: #68c9e8 !important; } .jp-carousel-comment { background:none transparent; color: #999; margin-bottom: 20px; clear:right; overflow: auto; width: 100% } .jp-carousel-comment p { color: #999 !important; } .jp-carousel-comment .comment-author { font-size: 13px; font-weight:400; padding:0; width:auto; display: inline; float:none; border:none; margin:0; } .jp-carousel-comment .comment-author a { color: #fff; } .jp-carousel-comment .comment-gravatar { float:right; } .jp-carousel-comment .comment-content { border:none; margin-right:85px; padding: 0; } .jp-carousel-comment .avatar { margin:0 0 0 20px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border: none !important; padding: 0 !important; background-color: transparent !important; } .jp-carousel-comment .comment-date { color:#999; margin-top: 4px; font-size:11px; display: inline; float: left; /*clear: right;*/ } #jp-carousel-comment-form { margin:0 0 10px !important; float: right; width: 100%; } textarea#jp-carousel-comment-form-comment-field { background: rgba(34,34,34,0.9); border: 1px solid #3a3a3a; color: #aaa; font: 15px/1.4 "Helvetica Neue", sans-serif !important; width: 100%; padding: 10px 10px 5px; margin: 0; float: none; height: 147px; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; overflow: hidden; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder { color: #555; } textarea#jp-carousel-comment-form-comment-field:focus { background: #ccc; color: #222; } textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder { color: #aaa; } #jp-carousel-comment-form-spinner { color: #fff; margin:22px 10px 0 0; display: block; width: 20px; height: 20px; float: right; } #jp-carousel-comment-form-submit-and-info-wrapper { display: none; /*margin-bottom:15px;*/ overflow: hidden; width: 100% } #jp-carousel-comment-form-commenting-as { } #jp-carousel-comment-form-commenting-as input { background: rgba(34,34,34,0.9); border: 1px solid #3a3a3a; color: #aaa; font: 13px/1.4 "Helvetica Neue", sans-serif !important; padding: 3px 6px; float: right; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; width:285px; } #jp-carousel-comment-form-commenting-as input:focus { background: #ccc; color: #222; } #jp-carousel-comment-form-commenting-as p { font: 400 13px/1.7 "Helvetica Neue", sans-serif !important; margin:22px 0 0; float: right; } #jp-carousel-comment-form-commenting-as fieldset { float:right; border:none; margin:20px 0 0 0; padding:0; } #jp-carousel-comment-form-commenting-as fieldset { clear: both; } #jp-carousel-comment-form-commenting-as label { font: 400 13px/1.7 "Helvetica Neue", sans-serif !important; margin:0 0 3px 20px; float:right; width:100px; } #jp-carousel-comment-form-button-submit { margin-top: 20px; float:left; } #js-carousel-comment-form-container { margin-bottom:15px; overflow: auto; width: 100%; } #jp-carousel-comment-form-container { margin-bottom:15px; overflow: auto; width: 100%; } #jp-carousel-comment-post-results { display: none; overflow:auto; width:100%; } #jp-carousel-comment-post-results span { display:block; text-align: center; margin-top:20px; width: 100%; overflow: auto; padding: 1em 0; box-sizing: border-box; background: rgba( 0, 0, 0, 0.7 ); border-radius: 2px; font: 13px/1.4 "Helvetica Neue", sans-serif !important; border: 1px solid rgba( 255, 255, 255, 0.17 ); -webkit-box-shadow: inset 0px 5px 5px 0px rgba(0, 0, 0, 1); box-shadow: inset 0px 5px 5px 0px rgba(0, 0, 0, 1); } .jp-carousel-comment-post-error { color:#DF4926; } .jp-carousel-comment-post-success { /*color:#21759B;*/ } #jp-carousel-comments-closed { display: none; color: #999; } #jp-carousel-comments-loading { font: 400 15px/1.7 "Helvetica Neue", sans-serif !important; display: none; color: #999; text-align: right; margin-bottom: 20px; } /* ----- Light variant ----- */ .jp-carousel-light .jp-carousel-overlay { background: #fff; } .jp-carousel-light .jp-carousel-next-button:hover span, .jp-carousel-light .jp-carousel-previous-button:hover span { opacity: 0.8; } .jp-carousel-light .jp-carousel-close-hint:hover, .jp-carousel-light .jp-carousel-titleanddesc div { color: #000 !important; } .jp-carousel-light .jp-carousel-comments p a, .jp-carousel-light .jp-carousel-comment .comment-author a, .jp-carousel-light .jp-carousel-titleanddesc p a, .jp-carousel-light .jp-carousel-titleanddesc p a, .jp-carousel-light .jp-carousel-comments p a, .jp-carousel-light .jp-carousel-info h2 a { color: #1e8cbe !important; } .jp-carousel-light .jp-carousel-comments p a:hover, .jp-carousel-light .jp-carousel-comment .comment-author a:hover, .jp-carousel-light .jp-carousel-titleanddesc p a:hover, .jp-carousel-light .jp-carousel-titleanddesc p a:hover, .jp-carousel-light .jp-carousel-comments p a:hover, .jp-carousel-light .jp-carousel-info h2 a:hover { color: #f1831e !important; } .jp-carousel-light .jp-carousel-info h2, .jp-carousel-light .jp-carousel-titleanddesc, .jp-carousel-light .jp-carousel-titleanddesc p, .jp-carousel-light .jp-carousel-comment, .jp-carousel-light .jp-carousel-comment p, .jp-carousel-light div.jp-carousel-buttons a, .jp-carousel-light .jp-carousel-titleanddesc p strong, .jp-carousel-light .jp-carousel-titleanddesc p b, .jp-carousel-light .jp-carousel-titleanddesc p em, .jp-carousel-light .jp-carousel-titleanddesc p i { color: #666; } .jp-carousel-light .jp-carousel-buttons { border-bottom-color: #f0f0f0; background: #f5f5f5; } .jp-carousel-light div.jp-carousel-buttons a:hover { text-decoration: none; color: #f1831e; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover { background-position: 4px -56px; padding-right: 24px !important; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked { background-color: #2ea2cc; color: #fff; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink { background-position: 0px -176px; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like:hover { background-position: 5px -15px; padding-right: 23px !important; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged { background-position: 5px -36px; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked { background-position: 5px 5px; } .jp-carousel-light div#carousel-reblog-box { background: #eee; background: -moz-linear-gradient(bottom, #ececec, #f7f7f7); background: -webkit-gradient(linear, right bottom, right top, from(#ececec), to(#f7f7f7)); -webkit-box-shadow: 0 2px 6px rgba(0,0,0,0.1); -moz-box-shadow: 0 2px 10px rgba(0,0,0,0.1); box-shadow: 0 2px 10px rgba(0,0,0,0.1); border:1px solid #ddd; } .jp-carousel-light #carousel-reblog-box textarea { border: 1px inset #ccc; color: #666; border: 1px solid #cfcfcf; background: #fff; } .jp-carousel-light #carousel-reblog-box .canceltext { color: #888; } .jp-carousel-light #carousel-reblog-box .canceltext a { color: #666; } .jp-carousel-light #carousel-reblog-box select { background: #eee; color: #333; border: 1px solid #aaa; } .jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit { color: #333; background: #fff; background: -moz-linear-gradient(bottom, #ddd, #fff); background: -webkit-gradient(linear, right bottom, right top, from(#ddd), to(#fff)); border: 1px solid #aaa; } .jp-carousel-light .jp-carousel-image-meta { background: #fafafa; border: 1px solid #eee; border-top-color: #f5f5f5; border-right-color: #f5f5f5; color: #333; } .jp-carousel-light .jp-carousel-image-meta li { color: #000 !important; } .jp-carousel-light .jp-carousel-close-hint { color: #ccc; } .jp-carousel-light .jp-carousel-close-hint span { background-color: white; border-color: #ccc; } .jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder { color: #aaa; } .jp-carousel-light #jp-carousel-comment-form-comment-field:focus { color: #333; } .jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder { color: #ddd; } .jp-carousel-light a.jp-carousel-image-download { background-position: 0 -122px; } .jp-carousel-light a.jp-carousel-image-download:hover { background-position: 0 -122px; color: #f1831e; } .jp-carousel-light textarea#jp-carousel-comment-form-comment-field { background: #fbfbfb; color: #333; border: 1px solid #dfdfdf; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); } .jp-carousel-light #jp-carousel-comment-form-commenting-as input { background: #fbfbfb; border: 1px solid #dfdfdf; color: #333; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); } .jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus { background: #fbfbfb; color: #333; } .jp-carousel-light #jp-carousel-comment-post-results span { background: #f7f7f7; border:1px solid #dfdfdf; -webkit-box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05); box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05); } .jp-carousel-light .jp-carousel-slide { background-color:#fff; } .jp-carousel-light .jp-carousel-titleanddesc { border-top: 1px solid #eee; } .jp-carousel-light .jp-carousel-fadeaway { background: -moz-linear-gradient(bottom, rgba(255,255,255,0.75), rgba(255,255,255,0)); background: -webkit-gradient(linear, right bottom, right top, from(rgba(255,255,255,0.75)), to(rgba(255,255,255,0))); } /* Small screens */ @media only screen and (max-width: 760px) { .jp-carousel-info { margin: 0 10px !important; } .jp-carousel-next-button, .jp-carousel-previous-button { display: none !important; } .jp-carousel-buttons { display: none !important; } .jp-carousel-image-meta { float: none !important; width: 100% !important; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing: border-box; } .jp-carousel-close-hint { font-weight: 800 !important; font-size: 26px !important; position: fixed !important; top: -10px; } .jp-carousel-slide img { filter: alpha(opacity=100); opacity: 1; } .jp-carousel-wrap { background-color: #000; } .jp-carousel-fadeaway { display: none; } #jp-carousel-comment-form-container { display: none !important; } .jp-carousel-titleanddesc { padding-top: 0 !important; border: none !important; } .jp-carousel-titleanddesc-title { font-size: 1em !important; } .jp-carousel-left-column-wrapper { padding: 0; width: 100% !important; } .jp-carousel-photo-info { right: 0 !important; width: 100% !important; } } plugins/jetpack/modules/carousel/jetpack-carousel.css0000644000312500031250000006342712654411246023532 0ustar eacbforgeacbforg.jp-carousel-wrap * { line-height:inherit; /* prevent declarations of line-height in the universal selector */ } .jp-carousel-overlay { background: #000; } div.jp-carousel-fadeaway { background: -moz-linear-gradient(bottom, rgba(0,0,0,0.5), rgba(0,0,0,0)); background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0))); position: fixed; bottom: 0; z-index: 2147483647; width: 100%; height: 15px; } .jp-carousel-next-button span, .jp-carousel-previous-button span { background: url(./images/arrows.png) no-repeat center center; background-size: 200px 126px; } .jp-carousel-msg { font-family: "Open Sans", sans-serif; font-style: normal; display: inline-block; line-height: 19px; padding: 11px 15px; font-size: 14px; text-align: center; margin: 25px 20px 0 2px; background-color: #fff; border-left: 4px solid #ffba00; -webkit-box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { .jp-carousel-next-button span, .jp-carousel-previous-button span { background-image: url(./images/arrows-2x.png); } } .jp-carousel-wrap { font-family: "Helvetica Neue", sans-serif !important; } .jp-carousel-info { position: absolute; bottom: 0; text-align: left !important; -webkit-font-smoothing: subpixel-antialiased !important; } .jp-carousel-info ::selection { background: #68c9e8; /* Safari */ color: #fff; } .jp-carousel-info ::-moz-selection { background: #68c9e8; /* Firefox */ color: #fff; } .jp-carousel-photo-info { position: relative; left: 25%; width: 50%; } .jp-carousel-transitions .jp-carousel-photo-info { -webkit-transition: 400ms ease-out; -moz-transition: 400ms ease-out; -o-transition: 400ms ease-out; transition: 400ms ease-out; } .jp-carousel-info h2 { background: none !important; border: none !important; color: #999; display: block !important; font: normal 13px/1.25em "Helvetica Neue", sans-serif !important; letter-spacing: 0 !important; margin: 7px 0 0 0 !important; padding: 10px 0 0 !important; overflow: hidden; text-align: left; text-shadow: none !important; text-transform: none !important; -webkit-font-smoothing: subpixel-antialiased; } .jp-carousel-next-button, .jp-carousel-previous-button { text-indent: -9999px; overflow: hidden; cursor: pointer; } .jp-carousel-next-button span, .jp-carousel-previous-button span { position: absolute; top: 0; bottom: 0; width: 82px; zoom: 1; filter: alpha(opacity=20); opacity: 0.2; } .jp-carousel-transitions .jp-carousel-next-button span, .jp-carousel-transitions .jp-carousel-previous-button span { -webkit-transition: 500ms opacity ease-out; -moz-transition: 500ms opacity ease-out; -o-transition: 500ms opacity ease-out; transition: 500ms opacity ease-out; } .jp-carousel-next-button:hover span, .jp-carousel-previous-button:hover span { filter: alpha(opacity=60); opacity: 0.6; } .jp-carousel-next-button span { background-position: -110px center; right: 0; } .jp-carousel-previous-button span { background-position: -10px center; left:0; } .jp-carousel-buttons { margin:-18px -20px 15px; padding:8px 10px; border-bottom:1px solid #222; background: #222; text-align: center; } div.jp-carousel-buttons a { border: none !important; color: #999; font: normal 11px/1.2em "Helvetica Neue", sans-serif !important; letter-spacing: 0 !important; padding: 5px 2px 5px 0; text-decoration: none !important; text-shadow: none !important; vertical-align: middle; -webkit-font-smoothing: subpixel-antialiased; } div.jp-carousel-buttons a:hover { color: #68c9e8; border: none !important; } .jp-carousel-transitions div.jp-carousel-buttons a:hover { -webkit-transition: none !important; -moz-transition: none !important; -o-transition: none !important; transition: none !important; } .jp-carousel-slide, .jp-carousel-slide img, .jp-carousel-next-button, .jp-carousel-previous-button { -webkit-transform:translate3d(0, 0, 0); -moz-transform:translate3d(0, 0, 0); -o-transform:translate3d(0, 0, 0); -ms-transform:translate3d(0, 0, 0); } .jp-carousel-slide { position:fixed; width:0; bottom:0; background-color:#000; border-radius:2px; -webkit-border-radius:2px; -moz-border-radius:2px; -ms-border-radius:2px; -o-border-radius:2px; } .jp-carousel-transitions .jp-carousel-slide { -webkit-transition: 300ms ease-out; -moz-transition: 300ms ease-out; -o-transition: 300ms ease-out; transition: 300ms ease-out; } .jp-carousel-slide.selected { position: absolute !important; filter: alpha(opacity=100); opacity: 1; } .jp-carousel-slide { filter: alpha(opacity=25); opacity: 0.25; } .jp-carousel-slide img { display: block; width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; background: none !important; border: none !important; padding: 0 !important; -webkit-box-shadow: 0 2px 8px rgba(0,0,0,0.1); -moz-box-shadow: 0 2px 8px rgba(0,0,0,0.1); box-shadow: 0 2px 8px rgba(0,0,0,0.1); zoom: 1; } .jp-carousel-transitions .jp-carousel-slide { -webkit-transition: opacity 400ms linear; -moz-transition: opacity 400ms linear; -o-transition: opacity 400ms linear; transition: opacity 400ms linear; } .jp-carousel-close-hint { color: #999; cursor: default; letter-spacing: 0 !important; padding:0.35em 0 0; position: absolute; text-align: left; width: 90%; } .jp-carousel-transitions .jp-carousel-close-hint { -webkit-transition: color 200ms linear; -moz-transition: color 200ms linear; -o-transition: color 200ms linear; transition: color 200ms linear; } .jp-carousel-close-hint span { cursor: pointer; background-color: black; background-color: rgba(0,0,0,0.8); display: block; height: 22px; font: 400 24px/1 "Helvetica Neue", sans-serif !important; line-height: 22px; margin: 0 0 0 0.4em; text-align: center; vertical-align: middle; width: 22px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } .jp-carousel-transitions .jp-carousel-close-hint span { -webkit-transition: border-color 200ms linear; -moz-transition: border-color 200ms linear; -o-transition: border-color 200ms linear; transition: border-color 200ms linear; } .jp-carousel-close-hint:hover { cursor: default; color: #fff; } .jp-carousel-close-hint:hover span { border-color: #fff; } div.jp-carousel-buttons a.jp-carousel-like, div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink, a.jp-carousel-image-download { background: url(./images/carousel-sprite.png?5) no-repeat; background-size: 16px 200px; } div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink { margin: 0 14px 0 0 !important; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged, div.jp-carousel-buttons a.jp-carousel-like.liked { background-color: #303030; padding-right: 8px !important; border-radius: 2px; border-radius: 2px; -webkit-border-radius:2px; -moz-border-radius:2px; -ms-border-radius:2px; -o-border-radius:2px; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged { margin: 0 2px 0 -12px !important; } div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover { background-position: 6px -36px; padding-right: auto !important; padding-left: 26px !important; color: #999; } div.jp-carousel-buttons a.jp-carousel-commentlink { background-position: 0px -156px; padding-left: 19px !important; } div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover { cursor: default; } div.jp-carousel-buttons a.jp-carousel-reblog:hover { background-position: 6px -56px; color: #68c9e8; } div.jp-carousel-buttons a.jp-carousel-like { background-position: 5px 5px; padding-left: 24px !important; } div.jp-carousel-buttons a.jp-carousel-like:hover { background-position: 5px -15px; } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { div.jp-carousel-buttons a.jp-carousel-like, div.jp-carousel-buttons a.jp-carousel-reblog, div.jp-carousel-buttons a.jp-carousel-commentlink, a.jp-carousel-image-download { background-image: url(./images/carousel-sprite-2x.png?5); } } /* reblog */ div#carousel-reblog-box { background: #222; background: -moz-linear-gradient(bottom, #222, #333); background: -webkit-gradient(linear, left bottom, left top, from(#222), to(#333)); padding: 3px 0 0; display: none; margin: 5px auto 0; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.9); -moz-box-shadow: 0 0 20px rgba(0,0,0,0.9); box-shadow: 0 0 20px rgba(0,0,0,0.9); height: 74px; width: 565px; } #carousel-reblog-box textarea { background: #999; font: 13px/1.4 "Helvetica Neue", sans-serif !important; color: #444; padding: 3px 6px; width: 370px; height: 48px; float: left; margin: 6px 9px 0 9px; border: 1px solid #666; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; } #carousel-reblog-box textarea:focus { background: #ccc; color: #222; } #carousel-reblog-box label { color: #aaa; font-size: 11px; padding-right: 2px; padding-left: 2px; display: inline; font-weight: normal; } #carousel-reblog-box select { width: 110px; padding: 0; font-size: 12px; font-family: "Helvetica Neue", sans-serif !important; background: #333; color: #eee; border: 1px solid #444; margin-top:5px; } #carousel-reblog-box .submit, #wrapper #carousel-reblog-box p.response { float: left; width: 154px; padding-top: 0; padding-left: 1px; overflow: hidden; height: 34px; margin:3px 0 0 2px !important; } #wrapper #carousel-reblog-box p.response { font-size: 13px; clear: none; padding-left: 2px; height: 34px; color: #aaa; } #carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit { font: 13px/24px "Helvetica Neue", sans-serif !important; margin-top: 8px; padding: 0 10px !important; border-radius: 1em; height: 24px; color: #333; cursor:pointer; font-weight: normal; background: #aaa; background: -moz-linear-gradient(bottom, #aaa, #ccc); background: -webkit-gradient(linear, left bottom, left top, from(#aaa), to(#ccc)); border: 1px solid #444; } #carousel-reblog-box input#carousel-reblog-submit:hover, #jp-carousel-comment-form-button-submit:hover { background: #ccc; background: -moz-linear-gradient(bottom, #ccc, #eee); background: -webkit-gradient(linear, left bottom, left top, from(#ccc), to(#eee)); } #carousel-reblog-box .canceltext { color: #aaa; font-size: 11px; line-height: 24px; } #carousel-reblog-box .canceltext a { color: #fff; } /* reblog end */ /** Title and Desc Start **/ .jp-carousel-titleanddesc { border-top: 1px solid #222; color: #999; font-size: 15px; padding-top: 24px; margin-bottom: 20px; font-weight:400; } .jp-carousel-titleanddesc-title { font: 300 1.5em/1.1 "Helvetica Neue", sans-serif !important; text-transform: none !important; /* prevents uppercase from leaking through */ color: #fff; margin: 0 0 15px; padding:0; } .jp-carousel-titleanddesc-desc p { color: #999; line-height:1.4; margin-bottom: 0.75em; } .jp-carousel-titleanddesc p a, .jp-carousel-comments p a, .jp-carousel-info h2 a { color: #fff !important; border: none !important; text-decoration: underline !important; font-weight: normal !important; font-style: normal !important; } .jp-carousel-titleanddesc p strong, .jp-carousel-titleanddesc p b { font-weight: bold; color: #999; } .jp-carousel-titleanddesc p em, .jp-carousel-titleanddesc p i { font-style: italic; color: #999; } .jp-carousel-titleanddesc p a:hover, .jp-carousel-comments p a:hover, .jp-carousel-info h2 a:hover { color: #68c9e8 !important; } .jp-carousel-titleanddesc p:empty { display: none; } .jp-carousel-photo-info h1:before, .jp-carousel-photo-info h1:after, .jp-carousel-left-column-wrapper h1:before, .jp-carousel-left-column-wrapper h1:after { content:none !important; } /** Title and Desc End **/ /** Meta Box Start **/ .jp-carousel-image-meta { background: #111; border: 1px solid #222; color: #fff; font-size: 13px; font: 12px/1.4 "Helvetica Neue", sans-serif !important; overflow: hidden; padding: 18px 20px; width: 209px !important; } .jp-carousel-image-meta li, .jp-carousel-image-meta h5 { font-family: "Helvetica Neue", sans-serif !important; position: inherit !important; top: auto !important; right: auto !important; left: auto !important; bottom: auto !important; background: none !important; border: none !important; font-weight: 400 !important; line-height: 1.3em !important; } .jp-carousel-image-meta ul { margin: 0 !important; padding: 0 !important; list-style: none !important; } .jp-carousel-image-meta li { width: 48% !important; float: left !important; margin: 0 2% 15px 0 !important; color: #fff !important; font-size:13px !important; } .jp-carousel-image-meta h5 { color: #999 !important; text-transform: uppercase !important; font-size:10px !important; margin:0 0 2px !important; letter-spacing: 0.1em !important; } a.jp-carousel-image-download { padding-left: 23px; display: inline-block; clear: both; color: #999; line-height: 1; font-weight: 400; font-size: 13px; text-decoration: none; background-position: 0 -82px; } a.jp-carousel-image-download span.photo-size { font-size: 11px; border-radius: 1em; margin-left: 2px; display: inline-block; } a.jp-carousel-image-download span.photo-size-times { padding: 0 1px 0 2px; } a.jp-carousel-image-download:hover { background-position: 0 -122px; color: #68c9e8; border: none !important; } /** Meta Box End **/ /** GPS Map Start **/ .jp-carousel-image-map { position: relative; margin: -20px -20px 20px; border-bottom: 1px solid rgba( 255, 255, 255, 0.17 ); height: 154px; } .jp-carousel-image-map img.gmap-main { -moz-border-radius-topleft: 6px; border-top-left-radius: 6px; border-right: 1px solid rgba( 255, 255, 255, 0.17 ); } .jp-carousel-image-map div.gmap-topright { width: 94px; height: 154px; position: absolute; top: 0; right: 0; } .jp-carousel-image-map div.imgclip { overflow: hidden; -moz-border-radius-topright: 6px; border-top-right-radius: 6px; } .jp-carousel-image-map div.gmap-topright img { margin-left: -40px; } .jp-carousel-image-map img.gmap-bottomright { position: absolute; top: 96px; right: 0; } /** Comments Start **/ .jp-carousel-comments { font: 15px/1.7 "Helvetica Neue", sans-serif !important; font-weight: 400; background:none transparent; } .jp-carousel-comments p a:hover, .jp-carousel-comments p a:focus, .jp-carousel-comments p a:active { color: #68c9e8 !important; } .jp-carousel-comment { background:none transparent; color: #999; margin-bottom: 20px; clear:left; overflow: auto; width: 100% } .jp-carousel-comment p { color: #999 !important; } .jp-carousel-comment .comment-author { font-size: 13px; font-weight:400; padding:0; width:auto; display: inline; float:none; border:none; margin:0; } .jp-carousel-comment .comment-author a { color: #fff; } .jp-carousel-comment .comment-gravatar { float:left; } .jp-carousel-comment .comment-content { border:none; margin-left:85px; padding: 0; } .jp-carousel-comment .avatar { margin:0 20px 0 0; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; border: none !important; padding: 0 !important; background-color: transparent !important; } .jp-carousel-comment .comment-date { color:#999; margin-top: 4px; font-size:11px; display: inline; float: right; /*clear: right;*/ } #jp-carousel-comment-form { margin:0 0 10px !important; float: left; width: 100%; } textarea#jp-carousel-comment-form-comment-field { background: rgba(34,34,34,0.9); border: 1px solid #3a3a3a; color: #aaa; font: 15px/1.4 "Helvetica Neue", sans-serif !important; width: 100%; padding: 10px 10px 5px; margin: 0; float: none; height: 147px; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; overflow: hidden; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder { color: #555; } textarea#jp-carousel-comment-form-comment-field:focus { background: #ccc; color: #222; } textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder { color: #aaa; } #jp-carousel-comment-form-spinner { color: #fff; margin:22px 0 0 10px; display: block; width: 20px; height: 20px; float: left; } #jp-carousel-comment-form-submit-and-info-wrapper { display: none; /*margin-bottom:15px;*/ overflow: hidden; width: 100% } #jp-carousel-comment-form-commenting-as { } #jp-carousel-comment-form-commenting-as input { background: rgba(34,34,34,0.9); border: 1px solid #3a3a3a; color: #aaa; font: 13px/1.4 "Helvetica Neue", sans-serif !important; padding: 3px 6px; float: left; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.2); -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; width:285px; } #jp-carousel-comment-form-commenting-as input:focus { background: #ccc; color: #222; } #jp-carousel-comment-form-commenting-as p { font: 400 13px/1.7 "Helvetica Neue", sans-serif !important; margin:22px 0 0; float: left; } #jp-carousel-comment-form-commenting-as fieldset { float:left; border:none; margin:20px 0 0 0; padding:0; } #jp-carousel-comment-form-commenting-as fieldset { clear: both; } #jp-carousel-comment-form-commenting-as label { font: 400 13px/1.7 "Helvetica Neue", sans-serif !important; margin:0 20px 3px 0; float:left; width:100px; } #jp-carousel-comment-form-button-submit { margin-top: 20px; float:right; } #js-carousel-comment-form-container { margin-bottom:15px; overflow: auto; width: 100%; } #jp-carousel-comment-form-container { margin-bottom:15px; overflow: auto; width: 100%; } #jp-carousel-comment-post-results { display: none; overflow:auto; width:100%; } #jp-carousel-comment-post-results span { display:block; text-align: center; margin-top:20px; width: 100%; overflow: auto; padding: 1em 0; box-sizing: border-box; background: rgba( 0, 0, 0, 0.7 ); border-radius: 2px; font: 13px/1.4 "Helvetica Neue", sans-serif !important; border: 1px solid rgba( 255, 255, 255, 0.17 ); -webkit-box-shadow: inset 0px 0px 5px 5px rgba(0, 0, 0, 1); box-shadow: inset 0px 0px 5px 5px rgba(0, 0, 0, 1); } .jp-carousel-comment-post-error { color:#DF4926; } .jp-carousel-comment-post-success { /*color:#21759B;*/ } #jp-carousel-comments-closed { display: none; color: #999; } #jp-carousel-comments-loading { font: 400 15px/1.7 "Helvetica Neue", sans-serif !important; display: none; color: #999; text-align: left; margin-bottom: 20px; } /* ----- Light variant ----- */ .jp-carousel-light .jp-carousel-overlay { background: #fff; } .jp-carousel-light .jp-carousel-next-button:hover span, .jp-carousel-light .jp-carousel-previous-button:hover span { opacity: 0.8; } .jp-carousel-light .jp-carousel-close-hint:hover, .jp-carousel-light .jp-carousel-titleanddesc div { color: #000 !important; } .jp-carousel-light .jp-carousel-comments p a, .jp-carousel-light .jp-carousel-comment .comment-author a, .jp-carousel-light .jp-carousel-titleanddesc p a, .jp-carousel-light .jp-carousel-titleanddesc p a, .jp-carousel-light .jp-carousel-comments p a, .jp-carousel-light .jp-carousel-info h2 a { color: #1e8cbe !important; } .jp-carousel-light .jp-carousel-comments p a:hover, .jp-carousel-light .jp-carousel-comment .comment-author a:hover, .jp-carousel-light .jp-carousel-titleanddesc p a:hover, .jp-carousel-light .jp-carousel-titleanddesc p a:hover, .jp-carousel-light .jp-carousel-comments p a:hover, .jp-carousel-light .jp-carousel-info h2 a:hover { color: #f1831e !important; } .jp-carousel-light .jp-carousel-info h2, .jp-carousel-light .jp-carousel-titleanddesc, .jp-carousel-light .jp-carousel-titleanddesc p, .jp-carousel-light .jp-carousel-comment, .jp-carousel-light .jp-carousel-comment p, .jp-carousel-light div.jp-carousel-buttons a, .jp-carousel-light .jp-carousel-titleanddesc p strong, .jp-carousel-light .jp-carousel-titleanddesc p b, .jp-carousel-light .jp-carousel-titleanddesc p em, .jp-carousel-light .jp-carousel-titleanddesc p i { color: #666; } .jp-carousel-light .jp-carousel-buttons { border-bottom-color: #f0f0f0; background: #f5f5f5; } .jp-carousel-light div.jp-carousel-buttons a:hover { text-decoration: none; color: #f1831e; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover { background-position: 4px -56px; padding-left: 24px !important; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked { background-color: #2ea2cc; color: #fff; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink { background-position: 0px -176px; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like, .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like:hover { background-position: 5px -15px; padding-left: 23px !important; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged { background-position: 5px -36px; } .jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked { background-position: 5px 5px; } .jp-carousel-light div#carousel-reblog-box { background: #eee; background: -moz-linear-gradient(bottom, #ececec, #f7f7f7); background: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f7f7f7)); -webkit-box-shadow: 0 2px 6px rgba(0,0,0,0.1); -moz-box-shadow: 0 2px 10px rgba(0,0,0,0.1); box-shadow: 0 2px 10px rgba(0,0,0,0.1); border:1px solid #ddd; } .jp-carousel-light #carousel-reblog-box textarea { border: 1px inset #ccc; color: #666; border: 1px solid #cfcfcf; background: #fff; } .jp-carousel-light #carousel-reblog-box .canceltext { color: #888; } .jp-carousel-light #carousel-reblog-box .canceltext a { color: #666; } .jp-carousel-light #carousel-reblog-box select { background: #eee; color: #333; border: 1px solid #aaa; } .jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit, #jp-carousel-comment-form-button-submit { color: #333; background: #fff; background: -moz-linear-gradient(bottom, #ddd, #fff); background: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff)); border: 1px solid #aaa; } .jp-carousel-light .jp-carousel-image-meta { background: #fafafa; border: 1px solid #eee; border-top-color: #f5f5f5; border-left-color: #f5f5f5; color: #333; } .jp-carousel-light .jp-carousel-image-meta li { color: #000 !important; } .jp-carousel-light .jp-carousel-close-hint { color: #ccc; } .jp-carousel-light .jp-carousel-close-hint span { background-color: white; border-color: #ccc; } .jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder { color: #aaa; } .jp-carousel-light #jp-carousel-comment-form-comment-field:focus { color: #333; } .jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder { color: #ddd; } .jp-carousel-light a.jp-carousel-image-download { background-position: 0 -122px; } .jp-carousel-light a.jp-carousel-image-download:hover { background-position: 0 -122px; color: #f1831e; } .jp-carousel-light textarea#jp-carousel-comment-form-comment-field { background: #fbfbfb; color: #333; border: 1px solid #dfdfdf; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); } .jp-carousel-light #jp-carousel-comment-form-commenting-as input { background: #fbfbfb; border: 1px solid #dfdfdf; color: #333; -webkit-box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); box-shadow: inset 2px 2px 2px rgba(0,0,0,0.1); } .jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus { background: #fbfbfb; color: #333; } .jp-carousel-light #jp-carousel-comment-post-results span { background: #f7f7f7; border:1px solid #dfdfdf; -webkit-box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05); box-shadow: inset 0px 0px 5px rgba(0, 0, 0, 0.05); } .jp-carousel-light .jp-carousel-slide { background-color:#fff; } .jp-carousel-light .jp-carousel-titleanddesc { border-top: 1px solid #eee; } .jp-carousel-light .jp-carousel-fadeaway { background: -moz-linear-gradient(bottom, rgba(255,255,255,0.75), rgba(255,255,255,0)); background: -webkit-gradient(linear, left bottom, left top, from(rgba(255,255,255,0.75)), to(rgba(255,255,255,0))); } /* Small screens */ @media only screen and (max-width: 760px) { .jp-carousel-info { margin: 0 10px !important; } .jp-carousel-next-button, .jp-carousel-previous-button { display: none !important; } .jp-carousel-buttons { display: none !important; } .jp-carousel-image-meta { float: none !important; width: 100% !important; -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing: border-box; } .jp-carousel-close-hint { font-weight: 800 !important; font-size: 26px !important; position: fixed !important; top: -10px; } .jp-carousel-slide img { filter: alpha(opacity=100); opacity: 1; } .jp-carousel-wrap { background-color: #000; } .jp-carousel-fadeaway { display: none; } #jp-carousel-comment-form-container { display: none !important; } .jp-carousel-titleanddesc { padding-top: 0 !important; border: none !important; } .jp-carousel-titleanddesc-title { font-size: 1em !important; } .jp-carousel-left-column-wrapper { padding: 0; width: 100% !important; } .jp-carousel-photo-info { left: 0 !important; width: 100% !important; } } plugins/jetpack/modules/carousel/jetpack-carousel.js0000644000312500031250000015140612654411246023351 0ustar eacbforgeacbforg/* jshint sub: true, onevar: false, multistr: true, devel: true, smarttabs: true */ /* global jetpackCarouselStrings, DocumentTouch, jetpackLikesWidgetQueue */ jQuery(document).ready(function($) { // gallery faded layer and container elements var overlay, comments, gallery, container, nextButton, previousButton, info, transitionBegin, caption, resizeTimeout, photo_info, close_hint, commentInterval, lastSelectedSlide, screenPadding = 110, originalOverflow = $('body').css('overflow'), originalHOverflow = $('html').css('overflow'), proportion = 85, last_known_location_hash = '', imageMeta, titleAndDescription, commentForm, leftColWrapper, scrollPos; if ( window.innerWidth <= 760 ) { screenPadding = Math.round( ( window.innerWidth / 760 ) * 110 ); if ( screenPadding < 40 && ( ( 'ontouchstart' in window ) || window.DocumentTouch && document instanceof DocumentTouch ) ) { screenPadding = 0; } } // Adding a polyfill for browsers that do not have Date.now if ( 'undefined' === typeof Date.now ) { Date.now = function now() { return new Date().getTime(); }; } var keyListener = function(e){ switch(e.which){ case 38: // up e.preventDefault(); container.scrollTop(container.scrollTop() - 100); break; case 40: // down e.preventDefault(); container.scrollTop(container.scrollTop() + 100); break; case 39: // right e.preventDefault(); gallery.jp_carousel('clearCommentTextAreaValue'); gallery.jp_carousel('next'); break; case 37: // left case 8: // backspace e.preventDefault(); gallery.jp_carousel('clearCommentTextAreaValue'); gallery.jp_carousel('previous'); break; case 27: // escape e.preventDefault(); gallery.jp_carousel('clearCommentTextAreaValue'); container.jp_carousel('close'); break; default: // making jslint happy break; } }; var resizeListener = function(/*e*/){ clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function(){ gallery .jp_carousel('slides') .jp_carousel('fitSlide', true); gallery.jp_carousel('updateSlidePositions', true); gallery.jp_carousel('fitMeta', true); }, 200); }; var prepareGallery = function( /*dataCarouselExtra*/ ){ if (!overlay) { overlay = $('

    ') .addClass('jp-carousel-overlay') .css({ 'position' : 'absolute', 'top' : 0, 'right' : 0, 'bottom' : 0, 'left' : 0 }); var buttons = '' + jetpackCarouselStrings.comment + ''; if ( 1 === Number( jetpackCarouselStrings.is_logged_in ) ) { } buttons = $('
    ' + buttons + '
    '); caption = $('

    '); photo_info = $('
    ').append(caption); imageMeta = $('
    ') .addClass('jp-carousel-image-meta') .css({ 'float' : 'right', 'margin-top' : '20px', 'width' : '250px' }); imageMeta .append( buttons ) .append( '
      ' ) .append( '' ) .append( '
      ' ); titleAndDescription = $('
      ') .addClass('jp-carousel-titleanddesc') .css({ 'width' : '100%', 'margin-top' : imageMeta.css('margin-top') }); var commentFormMarkup = '
      '; if ( jetpackCarouselStrings.local_comments_commenting_as && jetpackCarouselStrings.local_comments_commenting_as.length ) { // Comments not enabled, fallback to local comments if ( 1 !== Number( jetpackCarouselStrings.is_logged_in ) && 1 === Number( jetpackCarouselStrings.comment_registration ) ) { commentFormMarkup += '
      ' + jetpackCarouselStrings.local_comments_commenting_as + '
      '; } else { commentFormMarkup += '
      '; commentFormMarkup += ''; commentFormMarkup += '
      '; commentFormMarkup += '
      ' + jetpackCarouselStrings.local_comments_commenting_as + '
      '; commentFormMarkup += ''; commentFormMarkup += ' '; commentFormMarkup += '
      '; commentFormMarkup += '
      '; commentFormMarkup += '
      '; } } commentFormMarkup += '
      '; commentForm = $(commentFormMarkup) .css({ 'width' : '100%', 'margin-top' : '20px', 'color' : '#999' }); comments = $('
      ') .addClass('jp-carousel-comments') .css({ 'width' : '100%', 'bottom' : '10px', 'margin-top' : '20px' }); var commentsLoading = $('
      '+jetpackCarouselStrings.loading_comments+'
      ') .css({ 'width' : '100%', 'bottom' : '10px', 'margin-top' : '20px' }); var leftWidth = ( $(window).width() - ( screenPadding * 2 ) ) - (imageMeta.width() + 40); leftWidth += 'px'; leftColWrapper = $('
      ') .addClass('jp-carousel-left-column-wrapper') .css({ 'width' : Math.floor( leftWidth ) }) .append(titleAndDescription) .append(commentForm) .append(comments) .append(commentsLoading); var fadeaway = $('
      ') .addClass('jp-carousel-fadeaway'); info = $('
      ') .addClass('jp-carousel-info') .css({ 'top' : Math.floor( ($(window).height() / 100) * proportion ), 'left' : screenPadding, 'right' : screenPadding }) .append(photo_info) .append(imageMeta); if ( window.innerWidth <= 760 ) { photo_info.remove().insertAfter( titleAndDescription ); info.prepend( leftColWrapper ); } else { info.append( leftColWrapper ); } var targetBottomPos = ( $(window).height() - parseInt( info.css('top'), 10 ) ) + 'px'; nextButton = $('
      ') .addClass('jp-carousel-next-button') .css({ 'right' : '15px' }); previousButton = $('
      ') .addClass('jp-carousel-previous-button') .css({ 'left' : 0 }); nextButton.add( previousButton ).css( { 'position' : 'fixed', 'top' : '40px', 'bottom' : targetBottomPos, 'width' : screenPadding } ); gallery = $('
      ') .addClass('jp-carousel') .css({ 'position' : 'absolute', 'top' : 0, 'bottom' : targetBottomPos, 'left' : 0, 'right' : 0 }); close_hint = $('
      ×
      ') .css({ position : 'fixed' }); container = $('
      ') .addClass('jp-carousel-wrap') .addClass( 'jp-carousel-transitions' ); if ( 'white' === jetpackCarouselStrings.background_color ) { container.addClass('jp-carousel-light'); } container.css({ 'position' : 'fixed', 'top' : 0, 'right' : 0, 'bottom' : 0, 'left' : 0, 'z-index' : 2147483647, 'overflow-x' : 'hidden', 'overflow-y' : 'auto', 'direction' : 'ltr' }) .hide() .append(overlay) .append(gallery) .append(fadeaway) .append(info) .append(nextButton) .append(previousButton) .append(close_hint) .appendTo($('body')) .click(function(e){ var target = $(e.target), wrap = target.parents('div.jp-carousel-wrap'), data = wrap.data('carousel-extra'), slide = wrap.find('div.selected'), attachment_id = slide.data('attachment-id'); data = data || []; if ( target.is(gallery) || target.parents().add(target).is(close_hint) ) { container.jp_carousel('close'); } else if ( target.hasClass('jp-carousel-commentlink') ) { e.preventDefault(); e.stopPropagation(); $(window).unbind('keydown', keyListener); container.animate({scrollTop: parseInt(info.position()['top'], 10)}, 'fast'); $('#jp-carousel-comment-form-submit-and-info-wrapper').slideDown('fast'); $('#jp-carousel-comment-form-comment-field').focus(); } else if ( target.hasClass('jp-carousel-comment-login') ) { var url = jetpackCarouselStrings.login_url + '%23jp-carousel-' + attachment_id; window.location.href = url; } else if ( target.parents('#jp-carousel-comment-form-container').length ) { var textarea = $('#jp-carousel-comment-form-comment-field') .blur(function(){ $(window).bind('keydown', keyListener); }) .focus(function(){ $(window).unbind('keydown', keyListener); }); var emailField = $('#jp-carousel-comment-form-email-field') .blur(function(){ $(window).bind('keydown', keyListener); }) .focus(function(){ $(window).unbind('keydown', keyListener); }); var authorField = $('#jp-carousel-comment-form-author-field') .blur(function(){ $(window).bind('keydown', keyListener); }) .focus(function(){ $(window).unbind('keydown', keyListener); }); var urlField = $('#jp-carousel-comment-form-url-field') .blur(function(){ $(window).bind('keydown', keyListener); }) .focus(function(){ $(window).unbind('keydown', keyListener); }); if ( textarea && textarea.attr('id') === target.attr('id')) { // For first page load $(window).unbind('keydown', keyListener); $('#jp-carousel-comment-form-submit-and-info-wrapper').slideDown('fast'); } else if ( target.is( 'input[type="submit"]' ) ) { e.preventDefault(); e.stopPropagation(); $('#jp-carousel-comment-form-spinner').spin('small', 'white'); var ajaxData = { action: 'post_attachment_comment', nonce: jetpackCarouselStrings.nonce, blog_id: data['blog_id'], id: attachment_id, comment: textarea.val() }; if ( ! ajaxData['comment'].length ) { gallery.jp_carousel('postCommentError', {'field': 'jp-carousel-comment-form-comment-field', 'error': jetpackCarouselStrings.no_comment_text}); return; } if ( 1 !== Number( jetpackCarouselStrings.is_logged_in ) ) { ajaxData['email'] = emailField.val(); ajaxData['author'] = authorField.val(); ajaxData['url'] = urlField.val(); if ( 1 === Number( jetpackCarouselStrings.require_name_email ) ) { if ( ! ajaxData['email'].length || ! ajaxData['email'].match('@') ) { gallery.jp_carousel('postCommentError', {'field': 'jp-carousel-comment-form-email-field', 'error': jetpackCarouselStrings.no_comment_email}); return; } else if ( ! ajaxData['author'].length ) { gallery.jp_carousel('postCommentError', {'field': 'jp-carousel-comment-form-author-field', 'error': jetpackCarouselStrings.no_comment_author}); return; } } } $.ajax({ type: 'POST', url: jetpackCarouselStrings.ajaxurl, data: ajaxData, dataType: 'json', success: function(response/*, status, xhr*/) { if ( 'approved' === response.comment_status ) { $('#jp-carousel-comment-post-results').slideUp('fast').html('' + jetpackCarouselStrings.comment_approved + '').slideDown('fast'); } else if ( 'unapproved' === response.comment_status ) { $('#jp-carousel-comment-post-results').slideUp('fast').html('' + jetpackCarouselStrings.comment_unapproved + '').slideDown('fast'); } else { // 'deleted', 'spam', false $('#jp-carousel-comment-post-results').slideUp('fast').html('' + jetpackCarouselStrings.comment_post_error + '').slideDown('fast'); } gallery.jp_carousel('clearCommentTextAreaValue'); gallery.jp_carousel('getComments', {attachment_id: attachment_id, offset: 0, clear: true}); $('#jp-carousel-comment-form-button-submit').val(jetpackCarouselStrings.post_comment); $('#jp-carousel-comment-form-spinner').spin(false); }, error: function(/*xhr, status, error*/) { // TODO: Add error handling and display here gallery.jp_carousel('postCommentError', {'field': 'jp-carousel-comment-form-comment-field', 'error': jetpackCarouselStrings.comment_post_error}); return; } }); } } else if ( ! target.parents( '.jp-carousel-info' ).length ) { container.jp_carousel('next'); } }) .bind('jp_carousel.afterOpen', function(){ $(window).bind('keydown', keyListener); $(window).bind('resize', resizeListener); gallery.opened = true; resizeListener(); }) .bind('jp_carousel.beforeClose', function(){ var scroll = $(window).scrollTop(); $(window).unbind('keydown', keyListener); $(window).unbind('resize', resizeListener); $(window).scrollTop(scroll); }) .bind('jp_carousel.afterClose', function(){ if ( history.pushState ) { history.pushState('', document.title, window.location.pathname + window.location.search); } else { window.location.hash = ''; } last_known_location_hash = ''; gallery.opened = false; }) .on( 'transitionend.jp-carousel ', '.jp-carousel-slide', function ( e ) { // If the movement transitions take more than twice the allotted time, disable them. // There is some wiggle room in the 2x, since some of that time is taken up in // JavaScript, setting up the transition and calling the events. if ( 'transform' === e.originalEvent.propertyName ) { var transitionMultiplier = ( ( Date.now() - transitionBegin ) / 1000 ) / e.originalEvent.elapsedTime; container.off( 'transitionend.jp-carousel' ); if ( transitionMultiplier >= 2 ) { $( '.jp-carousel-transitions' ).removeClass( 'jp-carousel-transitions' ); } } } ); $( '.jp-carousel-wrap' ).touchwipe( { wipeLeft : function ( e ) { e.preventDefault(); gallery.jp_carousel( 'next' ); }, wipeRight : function ( e ) { e.preventDefault(); gallery.jp_carousel( 'previous' ); }, preventDefaultEvents : false } ); $( '.jetpack-likes-widget-unloaded' ).each( function() { jetpackLikesWidgetQueue.push( this.id ); }); nextButton.add(previousButton).click(function(e){ e.preventDefault(); e.stopPropagation(); if ( nextButton.is(this) ) { gallery.jp_carousel('next'); } else { gallery.jp_carousel('previous'); } }); } }; var methods = { testForData: function(gallery) { gallery = $( gallery ); // make sure we have it as a jQuery object. return !( ! gallery.length || ! gallery.data( 'carousel-extra' ) ); }, testIfOpened: function() { return !!( 'undefined' !== typeof(gallery) && 'undefined' !== typeof(gallery.opened) && gallery.opened ); }, openOrSelectSlide: function( index ) { // The `open` method triggers an asynchronous effect, so we will get an // error if we try to use `open` then `selectSlideAtIndex` immediately // after it. We can only use `selectSlideAtIndex` if the carousel is // already open. if ( ! $( this ).jp_carousel( 'testIfOpened' ) ) { // The `open` method selects the correct slide during the // initialization. $( this ).jp_carousel( 'open', { start_index: index } ); } else { gallery.jp_carousel( 'selectSlideAtIndex', index ); } }, open: function(options) { var settings = { 'items_selector' : '.gallery-item [data-attachment-id], .tiled-gallery-item [data-attachment-id]', 'start_index': 0 }, data = $(this).data('carousel-extra'); if ( !data ) { return; // don't run if the default gallery functions weren't used } prepareGallery( data ); if ( gallery.jp_carousel( 'testIfOpened' ) ) { return; // don't open if already opened } // make sure to stop the page from scrolling behind the carousel overlay, so we don't trigger // infiniscroll for it when enabled (Reader, theme infiniscroll, etc). originalOverflow = $('body').css('overflow'); $('body').css('overflow', 'hidden'); // prevent html from overflowing on some of the new themes. originalHOverflow = $('html').css('overflow'); $('html').css('overflow', 'hidden'); scrollPos = $( window ).scrollTop(); // Re-apply inline-block style here and give an initial value for the width // This value will get replaced with a more appropriate value once the slide is loaded // This avoids the likes widget appearing initially full width below the comment button and then shuffling up jQuery( '.slim-likes-widget' ).find( 'iframe' ).css( 'display', 'inline-block' ).css( 'width', '60px' ); container.data('carousel-extra', data); return this.each(function() { // If options exist, lets merge them // with our default settings var $this = $(this); if ( options ) { $.extend( settings, options ); } if ( -1 === settings.start_index ) { settings.start_index = 0; //-1 returned if can't find index, so start from beginning } container.trigger('jp_carousel.beforeOpen').fadeIn('fast',function(){ container.trigger('jp_carousel.afterOpen'); gallery .jp_carousel('initSlides', $this.find(settings.items_selector), settings.start_index) .jp_carousel('selectSlideAtIndex', settings.start_index); }); gallery.html(''); }); }, selectSlideAtIndex : function(index){ var slides = this.jp_carousel('slides'), selected = slides.eq(index); if ( 0 === selected.length ) { selected = slides.eq(0); } gallery.jp_carousel('selectSlide', selected, false); return this; }, close : function(){ // make sure to let the page scroll again $('body').css('overflow', originalOverflow); $('html').css('overflow', originalHOverflow); return container .trigger('jp_carousel.beforeClose') .fadeOut('fast', function(){ container.trigger('jp_carousel.afterClose'); $( window ).scrollTop( scrollPos ); }); }, next : function(){ var slide = gallery.jp_carousel( 'nextSlide' ); container.animate({scrollTop:0}, 'fast'); if ( slide ) { this.jp_carousel('selectSlide', slide); } }, previous : function(){ var slide = gallery.jp_carousel( 'prevSlide' ); container.animate({scrollTop:0}, 'fast'); if ( slide ) { this.jp_carousel('selectSlide', slide); } }, resetButtons : function(current) { if ( current.data('liked') ) { $('.jp-carousel-buttons a.jp-carousel-like').addClass('liked').text(jetpackCarouselStrings.unlike); } else { $('.jp-carousel-buttons a.jp-carousel-like').removeClass('liked').text(jetpackCarouselStrings.like); } }, selectedSlide : function(){ return this.find('.selected'); }, setSlidePosition : function(x) { transitionBegin = Date.now(); return this.css({ '-webkit-transform':'translate3d(' + x + 'px,0,0)', '-moz-transform':'translate3d(' + x + 'px,0,0)', '-ms-transform':'translate(' + x + 'px,0)', '-o-transform':'translate(' + x + 'px,0)', 'transform':'translate3d(' + x + 'px,0,0)' }); }, updateSlidePositions : function(animate) { var current = this.jp_carousel( 'selectedSlide' ), galleryWidth = gallery.width(), currentWidth = current.width(), previous = gallery.jp_carousel( 'prevSlide' ), next = gallery.jp_carousel( 'nextSlide' ), previousPrevious = previous.prev(), nextNext = next.next(), left = Math.floor( ( galleryWidth - currentWidth ) * 0.5 ); current.jp_carousel( 'setSlidePosition', left ).show(); // minimum width gallery.jp_carousel( 'fitInfo', animate ); // prep the slides var direction = lastSelectedSlide.is( current.prevAll() ) ? 1 : -1; // Since we preload the `previousPrevious` and `nextNext` slides, we need // to make sure they technically visible in the DOM, but invisible to the // user. To hide them from the user, we position them outside the edges // of the window. // // This section of code only applies when there are more than three // slides. Otherwise, the `previousPrevious` and `nextNext` slides will // overlap with the `previous` and `next` slides which must be visible // regardless. if ( 1 === direction ) { if ( ! nextNext.is( previous ) ) { nextNext.jp_carousel( 'setSlidePosition', galleryWidth + next.width() ).show(); } if ( ! previousPrevious.is( next ) ) { previousPrevious.jp_carousel( 'setSlidePosition', -previousPrevious.width() - currentWidth ).show(); } } else { if ( ! nextNext.is( previous ) ) { nextNext.jp_carousel( 'setSlidePosition', galleryWidth + currentWidth ).show(); } } previous.jp_carousel( 'setSlidePosition', Math.floor( -previous.width() + ( screenPadding * 0.75 ) ) ).show(); next.jp_carousel( 'setSlidePosition', Math.ceil( galleryWidth - ( screenPadding * 0.75 ) ) ).show(); }, selectSlide : function(slide, animate){ lastSelectedSlide = this.find( '.selected' ).removeClass( 'selected' ); var slides = gallery.jp_carousel( 'slides' ).css({ 'position': 'fixed' }), current = $( slide ).addClass( 'selected' ).css({ 'position': 'relative' }), attachmentId = current.data( 'attachment-id' ), previous = gallery.jp_carousel( 'prevSlide' ), next = gallery.jp_carousel( 'nextSlide' ), previousPrevious = previous.prev(), nextNext = next.next(), animated, captionHtml; // center the main image gallery.jp_carousel( 'loadFullImage', current ); caption.hide(); if ( next.length === 0 && slides.length <= 2 ) { $( '.jp-carousel-next-button' ).hide(); } else { $( '.jp-carousel-next-button' ).show(); } if ( previous.length === 0 && slides.length <= 2 ) { $( '.jp-carousel-previous-button' ).hide(); } else { $( '.jp-carousel-previous-button' ).show(); } animated = current .add( previous ) .add( previousPrevious ) .add( next ) .add( nextNext ) .jp_carousel( 'loadSlide' ); // slide the whole view to the x we want slides.not( animated ).hide(); gallery.jp_carousel( 'updateSlidePositions', animate ); gallery.jp_carousel( 'resetButtons', current ); container.trigger( 'jp_carousel.selectSlide', [current] ); gallery.jp_carousel( 'getTitleDesc', { title: current.data( 'title' ), desc: current.data( 'desc' ) }); // Lazy-load the Likes iframe for the current, next, and previous slides. gallery.jp_carousel( 'loadLikes', attachmentId ); gallery.jp_carousel( 'updateLikesWidgetVisibility', attachmentId ); if ( next.length > 0 ) { gallery.jp_carousel( 'loadLikes', next.data( 'attachment-id' ) ); } if ( previous.length > 0 ) { gallery.jp_carousel( 'loadLikes', previous.data( 'attachment-id' ) ); } var imageMeta = current.data( 'image-meta' ); gallery.jp_carousel( 'updateExif', imageMeta ); gallery.jp_carousel( 'updateFullSizeLink', current ); gallery.jp_carousel( 'updateMap', imageMeta ); gallery.jp_carousel( 'testCommentsOpened', current.data( 'comments-opened' ) ); gallery.jp_carousel( 'getComments', { 'attachment_id': attachmentId, 'offset': 0, 'clear': true }); $( '#jp-carousel-comment-post-results' ).slideUp(); // $('
      ').text(sometext).html() is a trick to go to HTML to plain // text (including HTML entities decode, etc) if ( current.data( 'caption' ) ) { captionHtml = $( '
      ' ).text( current.data( 'caption' ) ).html(); if ( captionHtml === $( '
      ' ).text( current.data( 'title' ) ).html() ) { $( '.jp-carousel-titleanddesc-title' ).fadeOut( 'fast' ).empty(); } if ( captionHtml === $( '
      ' ).text( current.data( 'desc' ) ).html() ) { $( '.jp-carousel-titleanddesc-desc' ).fadeOut( 'fast' ).empty(); } caption.html( current.data( 'caption' ) ).fadeIn( 'slow' ); } else { caption.fadeOut( 'fast' ).empty(); } // Load the images for the next and previous slides. $( next ).add( previous ).each( function() { gallery.jp_carousel( 'loadFullImage', $( this ) ); }); window.location.hash = last_known_location_hash = '#jp-carousel-' + attachmentId; }, slides : function(){ return this.find('.jp-carousel-slide'); }, slideDimensions : function(){ return { width: $(window).width() - (screenPadding * 2), height: Math.floor( $(window).height() / 100 * proportion - 60 ) }; }, loadSlide : function() { return this.each(function(){ var slide = $(this); slide.find('img') .one('load', function(){ // set the width/height of the image if it's too big slide .jp_carousel('fitSlide',false); }); }); }, bestFit : function(){ var max = gallery.jp_carousel('slideDimensions'), orig = this.jp_carousel('originalDimensions'), orig_ratio = orig.width / orig.height, w_ratio = 1, h_ratio = 1, width, height; if ( orig.width > max.width ) { w_ratio = max.width / orig.width; } if ( orig.height > max.height ) { h_ratio = max.height / orig.height; } if ( w_ratio < h_ratio ) { width = max.width; height = Math.floor( width / orig_ratio ); } else if ( h_ratio < w_ratio ) { height = max.height; width = Math.floor( height * orig_ratio ); } else { width = orig.width; height = orig.height; } return { width: width, height: height }; }, fitInfo : function(/*animated*/){ var current = this.jp_carousel('selectedSlide'), size = current.jp_carousel('bestFit'); photo_info.css({ 'left' : Math.floor( (info.width() - size.width) * 0.5 ), 'width' : Math.floor( size.width ) }); return this; }, fitMeta : function(animated){ var newInfoTop = { top: Math.floor( $(window).height() / 100 * proportion + 5 ) + 'px' }; var newLeftWidth = { width: ( info.width() - (imageMeta.width() + 80) ) + 'px' }; if (animated) { info.animate(newInfoTop); leftColWrapper.animate(newLeftWidth); } else { info.animate(newInfoTop); leftColWrapper.css(newLeftWidth); } }, fitSlide : function(/*animated*/){ return this.each(function(){ var $this = $(this), dimensions = $this.jp_carousel('bestFit'), method = 'css', max = gallery.jp_carousel('slideDimensions'); dimensions.left = 0; dimensions.top = Math.floor( (max.height - dimensions.height) * 0.5 ) + 40; $this[method](dimensions); }); }, texturize : function(text) { text = '' + text; // make sure we get a string. Title "1" came in as int 1, for example, which did not support .replace(). text = text.replace(/'/g, '’').replace(/'/g, '’').replace(/[\u2019]/g, '’'); text = text.replace(/"/g, '”').replace(/"/g, '”').replace(/"/g, '”').replace(/[\u201D]/g, '”'); text = text.replace(/([\w]+)=&#[\d]+;(.+?)&#[\d]+;/g, '$1="$2"'); // untexturize allowed HTML tags params double-quotes return $.trim(text); }, initSlides : function(items, start_index){ if ( items.length < 2 ) { $( '.jp-carousel-next-button, .jp-carousel-previous-button' ).hide(); } else { $( '.jp-carousel-next-button, .jp-carousel-previous-button' ).show(); } // Calculate the new src. items.each(function(/*i*/){ var src_item = $(this), orig_size = src_item.data('orig-size') || '', max = gallery.jp_carousel('slideDimensions'), parts = orig_size.split(','), medium_file = src_item.data('medium-file') || '', large_file = src_item.data('large-file') || '', src; orig_size = {width: parseInt(parts[0], 10), height: parseInt(parts[1], 10)}; src = src_item.data('orig-file'); src = gallery.jp_carousel('selectBestImageSize', { orig_file : src, orig_width : orig_size.width, orig_height : orig_size.height, max_width : max.width, max_height : max.height, medium_file : medium_file, large_file : large_file }); // Set the final src $(this).data( 'gallery-src', src ); }); // If the start_index is not 0 then preload the clicked image first. if ( 0 !== start_index ) { $('')[0].src = $(items[start_index]).data('gallery-src'); } var useInPageThumbnails = items.first().closest( '.tiled-gallery.type-rectangular' ).length > 0; // create the 'slide' items.each(function(i){ var src_item = $(this), attachment_id = src_item.data('attachment-id') || 0, comments_opened = src_item.data('comments-opened') || 0, image_meta = src_item.data('image-meta') || {}, orig_size = src_item.data('orig-size') || '', thumb_size = { width : src_item[0].naturalWidth, height : src_item[0].naturalHeight }, title = src_item.data('image-title') || '', description = src_item.data('image-description') || '', caption = src_item.parents('.gallery-item').find('.gallery-caption').html() || '', src = src_item.data('gallery-src') || '', medium_file = src_item.data('medium-file') || '', large_file = src_item.data('large-file') || '', orig_file = src_item.data('orig-file') || ''; var tiledCaption = src_item.parents('div.tiled-gallery-item').find('div.tiled-gallery-caption').html(); if ( tiledCaption ) { caption = tiledCaption; } if ( attachment_id && orig_size.length ) { title = gallery.jp_carousel('texturize', title); description = gallery.jp_carousel('texturize', description); caption = gallery.jp_carousel('texturize', caption); // Initially, the image is a 1x1 transparent gif. The preview is shown as a background image on the slide itself. var image = $( '' ) .attr( 'src', 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' ) .css( 'width', '100%' ) .css( 'height', '100%' ); var slide = $('
      ') .hide() .css({ //'position' : 'fixed', 'left' : i < start_index ? -1000 : gallery.width() }) .append( image ) .appendTo(gallery) .data('src', src ) .data('title', title) .data('desc', description) .data('caption', caption) .data('attachment-id', attachment_id) .data('permalink', src_item.parents('a').attr('href')) .data('orig-size', orig_size) .data('comments-opened', comments_opened) .data('image-meta', image_meta) .data('medium-file', medium_file) .data('large-file', large_file) .data('orig-file', orig_file) .data('thumb-size', thumb_size) ; if ( useInPageThumbnails ) { // Use the image already loaded in the gallery as a preview. slide .data( 'preview-image', src_item.attr( 'src' ) ) .css( { 'background-image' : 'url("' + src_item.attr( 'src' ) + '")', 'background-size' : '100% 100%', 'background-position' : 'center center' } ); } slide.jp_carousel( 'fitSlide', false ); } }); return this; }, selectBestImageSize: function(args) { if ( 'object' !== typeof args ) { args = {}; } if ( 'undefined' === typeof args.orig_file ) { return ''; } if ( 'undefined' === typeof args.orig_width || 'undefined' === typeof args.max_width ) { return args.orig_file; } if ( 'undefined' === typeof args.medium_file || 'undefined' === typeof args.large_file ) { return args.orig_file; } // Check if the image is being served by Photon (using a regular expression on the hostname). var imageLinkParser = document.createElement( 'a' ); imageLinkParser.href = args.large_file; var isPhotonUrl = ( imageLinkParser.hostname.match( /^i[\d]{1}.wp.com$/i ) != null ); var medium_size_parts = gallery.jp_carousel( 'getImageSizeParts', args.medium_file, args.orig_width, isPhotonUrl ); var large_size_parts = gallery.jp_carousel( 'getImageSizeParts', args.large_file, args.orig_width, isPhotonUrl ); var large_width = parseInt( large_size_parts[0], 10 ), large_height = parseInt( large_size_parts[1], 10 ), medium_width = parseInt( medium_size_parts[0], 10 ), medium_height = parseInt( medium_size_parts[1], 10 ); // Give devices with a higher devicePixelRatio higher-res images (Retina display = 2, Android phones = 1.5, etc) if ( 'undefined' !== typeof window.devicePixelRatio && window.devicePixelRatio > 1 ) { args.max_width = args.max_width * window.devicePixelRatio; args.max_height = args.max_height * window.devicePixelRatio; } if ( large_width >= args.max_width || large_height >= args.max_height ) { return args.large_file; } if ( medium_width >= args.max_width || medium_height >= args.max_height ) { return args.medium_file; } if ( isPhotonUrl ) { // args.orig_file doesn't point to a Photon url, so in this case we use args.large_file // to return the photon url of the original image. var largeFileIndex = args.large_file.lastIndexOf( '?' ); var origPhotonUrl = args.large_file; if ( -1 !== largeFileIndex ) { origPhotonUrl = args.large_file.substring( 0, largeFileIndex ); } return origPhotonUrl; } return args.orig_file; }, getImageSizeParts: function( file, orig_width, isPhotonUrl ) { var size = isPhotonUrl ? file.replace( /.*=([\d]+%2C[\d]+).*$/, '$1' ) : file.replace( /.*-([\d]+x[\d]+)\..+$/, '$1' ); var size_parts = ( size !== file ) ? ( isPhotonUrl ? size.split( '%2C' ) : size.split( 'x' ) ) : [ orig_width, 0 ]; // If one of the dimensions is set to 9999, then the actual value of that dimension can't be retrieved from the url. // In that case, we set the value to 0. if ( '9999' === size_parts[0] ) { size_parts[0] = '0'; } if ( '9999' === size_parts[1] ) { size_parts[1] = '0'; } return size_parts; }, originalDimensions: function() { var splitted = $(this).data('orig-size').split(','); return {width: parseInt(splitted[0], 10), height: parseInt(splitted[1], 10)}; }, format: function( args ) { if ( 'object' !== typeof args ) { args = {}; } if ( ! args.text || 'undefined' === typeof args.text ) { return; } if ( ! args.replacements || 'undefined' === typeof args.replacements ) { return args.text; } return args.text.replace(/{(\d+)}/g, function( match, number ) { return typeof args.replacements[number] !== 'undefined' ? args.replacements[number] : match; }); }, /** * Returns a number in a fraction format that represents the shutter speed. * @param Number speed * @return String */ shutterSpeed: function( speed ) { var denominator; // round to one decimal if value > 1s by multiplying it by 10, rounding, then dividing by 10 again if ( speed >= 1 ) { return Math.round( speed * 10 ) / 10 + 's'; } // If the speed is less than one, we find the denominator by inverting // the number. Since cameras usually use rational numbers as shutter // speeds, we should get a nice round number. Or close to one in cases // like 1/30. So we round it. denominator = Math.round( 1 / speed ); return '1/' + denominator + 's'; }, parseTitleDesc: function( value ) { if ( !value.match(' ') && value.match('_') ) { return ''; } // Prefix list originally based on http://commons.wikimedia.org/wiki/MediaWiki:Filename-prefix-blacklist $([ 'CIMG', // Casio 'DSC_', // Nikon 'DSCF', // Fuji 'DSCN', // Nikon 'DUW', // some mobile phones 'GEDC', // GE 'IMG', // generic 'JD', // Jenoptik 'MGP', // Pentax 'PICT', // misc. 'Imagen', // misc. 'Foto', // misc. 'DSC', // misc. 'Scan', // Scanners 'SANY', // Sanyo 'SAM', // Samsung 'Screen Shot [0-9]+' // Mac screenshots ]) .each(function(key, val){ var regex = new RegExp('^' + val); if ( regex.test(value) ) { value = ''; return; } }); return value; }, getTitleDesc: function( data ) { var title ='', desc = '', markup = '', target; target = $( 'div.jp-carousel-titleanddesc', 'div.jp-carousel-wrap' ); target.hide(); title = gallery.jp_carousel('parseTitleDesc', data.title) || ''; desc = gallery.jp_carousel('parseTitleDesc', data.desc) || ''; if ( title.length || desc.length ) { // $('
      ').text(sometext).html() is a trick to go to HTML to plain text (including HTML entities decode, etc) if ( $('
      ').text(title).html() === $('
      ').text(desc).html() ) { title = ''; } markup = ( title.length ) ? '
      ' + title + '
      ' : ''; markup += ( desc.length ) ? '
      ' + desc + '
      ' : ''; target.html( markup ).fadeIn('slow'); } $( 'div#jp-carousel-comment-form-container' ).css('margin-top', '20px'); $( 'div#jp-carousel-comments-loading' ).css('margin-top', '20px'); }, updateLikesWidgetVisibility: function ( attachmentId ) { // Only do this if likes is enabled if ( 'undefined' === typeof jetpackLikesWidgetQueue ) { return; } // Hide all likes widgets except for the one for the attachmentId passed in $( '.jp-carousel-buttons .jetpack-likes-widget-wrapper' ).css( 'display', 'none' ).each( function () { var widgetWrapper = $( this ); if ( widgetWrapper.attr( 'data-attachment-id' ) == attachmentId ) { // jshint ignore:line widgetWrapper.css( 'display', 'inline-block' ); return false; } }); }, loadLikes : function ( attachmentId ) { var dataCarouselExtra = $( '.jp-carousel-wrap' ).data( 'carousel-extra' ); var blogId = dataCarouselExtra.likes_blog_id; if ( $( '#like-post-wrapper-' + blogId + '-' + attachmentId ).length === 0 ) { // Add the iframe the first time the slide is shown. var protocol = 'http'; var originDomain = 'http://wordpress.com'; if ( dataCarouselExtra.permalink.length ) { protocol = dataCarouselExtra.permalink.split( ':' )[0]; if ( ( protocol !== 'http' ) && ( protocol !== 'https' ) ) { protocol = 'http'; } var parts = dataCarouselExtra.permalink.split( '/' ); if ( parts.length >= 2 ) { originDomain = protocol + '://' + parts[2]; } } var dataSource = protocol + '://widgets.wp.com/likes/#blog_id=' + encodeURIComponent( blogId ) + '&post_id=' + encodeURIComponent( attachmentId ) + '&slim=1&origin=' + encodeURIComponent( originDomain ); if ( 'en' !== jetpackCarouselStrings.lang ) { dataSource += '&lang=' + encodeURIComponent( jetpackCarouselStrings.lang ); } var likesWidget = $( '' ) .attr( 'name', 'like-post-frame-' + blogId + '-' + attachmentId ) .attr( 'src', dataSource ) .css( 'display', 'inline-block' ); var likesWidgetWrapper = $( '
      ' ) .addClass( 'jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded slim-likes-widget' ) .attr( 'id', 'like-post-wrapper-' + blogId + '-' + attachmentId ) .attr( 'data-src', dataSource ) .attr( 'data-name', 'like-post-frame-' + blogId + '-' + attachmentId ) .attr( 'data-attachment-id', attachmentId ) .css( 'display', 'none' ) .css( 'vertical-align', 'middle' ) .append( likesWidget ) .append( '
      ' ); $( '.jp-carousel-buttons' ).append( likesWidgetWrapper ); } }, // updateExif updates the contents of the exif UL (.jp-carousel-image-exif) updateExif: function( meta ) { if ( !meta || 1 !== Number( jetpackCarouselStrings.display_exif ) ) { return false; } var $ul = $( '
        ' ); $.each( meta, function( key, val ) { if ( 0 === parseFloat(val) || !val.length || -1 === $.inArray( key, [ 'camera', 'aperture', 'shutter_speed', 'focal_length' ] ) ) { return; } switch( key ) { case 'focal_length': val = val + 'mm'; break; case 'shutter_speed': val = gallery.jp_carousel('shutterSpeed', val); break; case 'aperture': val = 'f/' + val; break; } $ul.append( '
      • ' + jetpackCarouselStrings[key] + '
        ' + val + '
      • ' ); }); // Update (replace) the content of the ul $( 'div.jp-carousel-image-meta ul.jp-carousel-image-exif' ).replaceWith( $ul ); }, // updateFullSizeLink updates the contents of the jp-carousel-image-download link updateFullSizeLink: function(current) { if(!current || !current.data) { return false; } var original = current.data('orig-file').replace(/\?.+$/, ''), origSize = current.data('orig-size').split(','), permalink = $( ''+gallery.jp_carousel('format', {'text': jetpackCarouselStrings.download_original, 'replacements': origSize})+'' ) .addClass( 'jp-carousel-image-download' ) .attr( 'href', original ) .attr( 'target', '_blank' ); // Update (replace) the content of the anchor $( 'div.jp-carousel-image-meta a.jp-carousel-image-download' ).replaceWith( permalink ); }, updateMap: function( meta ) { if ( !meta.latitude || !meta.longitude || 1 !== Number( jetpackCarouselStrings.display_geo ) ) { return; } var latitude = meta.latitude, longitude = meta.longitude, $metabox = $( 'div.jp-carousel-image-meta', 'div.jp-carousel-wrap' ), $mapbox = $( '
        ' ), style = '&scale=2&style=feature:all|element:all|invert_lightness:true|hue:0x0077FF|saturation:-50|lightness:-5|gamma:0.91'; $mapbox .addClass( 'jp-carousel-image-map' ) .html( '\ \
        \ \ ' ) .prependTo( $metabox ); }, testCommentsOpened: function( opened ) { if ( 1 === parseInt( opened, 10 ) ) { $('.jp-carousel-buttons').fadeIn('fast'); commentForm.fadeIn('fast'); } else { $('.jp-carousel-buttons').fadeOut('fast'); commentForm.fadeOut('fast'); } }, getComments: function( args ) { clearInterval( commentInterval ); if ( 'object' !== typeof args ) { return; } if ( 'undefined' === typeof args.attachment_id || ! args.attachment_id ) { return; } if ( ! args.offset || 'undefined' === typeof args.offset || args.offset < 1 ) { args.offset = 0; } var comments = $('.jp-carousel-comments'), commentsLoading = $('#jp-carousel-comments-loading').show(); if ( args.clear ) { comments.hide().empty(); } $.ajax({ type: 'GET', url: jetpackCarouselStrings.ajaxurl, dataType: 'json', data: { action: 'get_attachment_comments', nonce: jetpackCarouselStrings.nonce, id: args.attachment_id, offset: args.offset }, success: function(data/*, status, xhr*/) { if ( args.clear ) { comments.fadeOut('fast').empty(); } $( data ).each(function(){ var comment = $('
        ') .addClass('jp-carousel-comment') .attr('id', 'jp-carousel-comment-' + this['id']) .html( '
        ' + this['gravatar_markup'] + '
        ' + '
        ' + this['author_markup'] + '
        ' + '
        ' + this['date_gmt'] + '
        ' + '
        ' + this['content'] + '
        ' ); comments.append(comment); // Set the interval to check for a new page of comments. clearInterval( commentInterval ); commentInterval = setInterval( function() { if ( ( $('.jp-carousel-overlay').height() - 150 ) < $('.jp-carousel-wrap').scrollTop() + $(window).height() ) { gallery.jp_carousel('getComments',{ attachment_id: args.attachment_id, offset: args.offset + 10, clear: false }); clearInterval( commentInterval ); } }, 300 ); }); // Verify (late) that the user didn't repeatldy click the arrows really fast, in which case the requested // attachment id might no longer match the current attachment id by the time we get the data back or a now // registered infiniscroll event kicks in, so we don't ever display comments for the wrong image by mistake. var current = $('.jp-carousel div.selected'); if ( current && current.data && current.data('attachment-id') != args.attachment_id ) { // jshint ignore:line comments.fadeOut('fast'); comments.empty(); return; } // Increase the height of the background, semi-transparent overlay to match the new length of the comments list. $('.jp-carousel-overlay').height( $(window).height() + titleAndDescription.height() + commentForm.height() + ( (comments.height() > 0) ? comments.height() : imageMeta.height() ) + 200 ); comments.show(); commentsLoading.hide(); }, error: function(xhr, status, error) { // TODO: proper error handling console.log( 'Comment get fail...', xhr, status, error ); comments.fadeIn('fast'); commentsLoading.fadeOut('fast'); } }); }, postCommentError: function(args) { if ( 'object' !== typeof args ) { args = {}; } if ( ! args.field || 'undefined' === typeof args.field || ! args.error || 'undefined' === typeof args.error ) { return; } $('#jp-carousel-comment-post-results').slideUp('fast').html(''+args.error+'').slideDown('fast'); $('#jp-carousel-comment-form-spinner').spin(false); }, setCommentIframeSrc: function(attachment_id) { var iframe = $('#jp-carousel-comment-iframe'); // Set the proper irame src for the current attachment id if (iframe && iframe.length) { iframe.attr('src', iframe.attr('src').replace(/(postid=)\d+/, '$1'+attachment_id) ); iframe.attr('src', iframe.attr('src').replace(/(%23.+)?$/, '%23jp-carousel-'+attachment_id) ); } }, clearCommentTextAreaValue: function() { var commentTextArea = $('#jp-carousel-comment-form-comment-field'); if ( commentTextArea ) { commentTextArea.val(''); } }, nextSlide : function () { var slides = this.jp_carousel( 'slides' ); var selected = this.jp_carousel( 'selectedSlide' ); if ( selected.length === 0 || ( slides.length > 2 && selected.is( slides.last() ) ) ) { return slides.first(); } return selected.next(); }, prevSlide : function () { var slides = this.jp_carousel( 'slides' ); var selected = this.jp_carousel( 'selectedSlide' ); if ( selected.length === 0 || ( slides.length > 2 && selected.is( slides.first() ) ) ) { return slides.last(); } return selected.prev(); }, loadFullImage : function ( slide ) { var image = slide.find( 'img:first' ); if ( ! image.data( 'loaded' ) ) { // If the width of the slide is smaller than the width of the "thumbnail" we're already using, // don't load the full image. image.on( 'load.jetpack', function () { image.off( 'load.jetpack' ); $( this ).closest( '.jp-carousel-slide' ).css( 'background-image', '' ); } ); if ( ! slide.data( 'preview-image' ) || ( slide.data( 'thumb-size' ) && slide.width() > slide.data( 'thumb-size' ).width ) ) { image.attr( 'src', image.closest( '.jp-carousel-slide' ).data( 'src' ) ); } else { image.attr( 'src', slide.data( 'preview-image' ) ); } image.data( 'loaded', 1 ); } } }; $.fn.jp_carousel = function(method){ // ask for the HTML of the gallery // Method calling logic if ( methods[method] ) { return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.open.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.jp_carousel' ); } }; // register the event listener for starting the gallery $( document.body ).on( 'click', 'div.gallery,div.tiled-gallery', function(e) { if ( ! $(this).jp_carousel( 'testForData', e.currentTarget ) ) { return; } if ( $(e.target).parent().hasClass('gallery-caption') ) { return; } e.preventDefault(); // Stopping propagation in case there are parent elements // with .gallery or .tiled-gallery class e.stopPropagation(); $(this).jp_carousel('open', {start_index: $(this).find('.gallery-item, .tiled-gallery-item').index($(e.target).parents('.gallery-item, .tiled-gallery-item'))}); }); // Makes carousel work on page load and when back button leads to same URL with carousel hash (ie: no actual document.ready trigger) $( window ).on( 'hashchange', function () { var hashRegExp = /jp-carousel-(\d+)/, matches, attachmentId, galleries, selectedThumbnail; if ( ! window.location.hash || ! hashRegExp.test( window.location.hash ) ) { if ( gallery.opened ) { container.jp_carousel('close'); } return; } if ( ( window.location.hash === last_known_location_hash ) && gallery.opened ) { return; } last_known_location_hash = window.location.hash; matches = window.location.hash.match( hashRegExp ); attachmentId = parseInt( matches[1], 10 ); galleries = $( 'div.gallery, div.tiled-gallery' ); // Find the first thumbnail that matches the attachment ID in the location // hash, then open the gallery that contains it. galleries.each( function( _, galleryEl ) { $( galleryEl ).find('img').each( function( imageIndex, imageEl ) { if ( $( imageEl ).data( 'attachment-id' ) === parseInt( attachmentId, 10 ) ) { selectedThumbnail = { index: imageIndex, gallery: galleryEl }; return false; } }); if ( selectedThumbnail ) { $( selectedThumbnail.gallery ) .jp_carousel( 'openOrSelectSlide', selectedThumbnail.index ); } }); }); if ( window.location.hash ) { $( window ).trigger( 'hashchange' ); } }); /** * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!) * Common usage: wipe images (left and right to show the previous or next image) * * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de) * Version 1.1.1, modified to pass the touchmove event to the callbacks. */ (function($) { $.fn.touchwipe = function(settings) { var config = { min_move_x: 20, min_move_y: 20, wipeLeft: function(/*e*/) { }, wipeRight: function(/*e*/) { }, wipeUp: function(/*e*/) { }, wipeDown: function(/*e*/) { }, preventDefaultEvents: true }; if (settings) { $.extend(config, settings); } this.each(function() { var startX; var startY; var isMoving = false; function cancelTouch() { this.removeEventListener('touchmove', onTouchMove); startX = null; isMoving = false; } function onTouchMove(e) { if(config.preventDefaultEvents) { e.preventDefault(); } if(isMoving) { var x = e.touches[0].pageX; var y = e.touches[0].pageY; var dx = startX - x; var dy = startY - y; if(Math.abs(dx) >= config.min_move_x) { cancelTouch(); if(dx > 0) { config.wipeLeft(e); } else { config.wipeRight(e); } } else if(Math.abs(dy) >= config.min_move_y) { cancelTouch(); if(dy > 0) { config.wipeDown(e); } else { config.wipeUp(e); } } } } function onTouchStart(e) { if (e.touches.length === 1) { startX = e.touches[0].pageX; startY = e.touches[0].pageY; isMoving = true; this.addEventListener('touchmove', onTouchMove, false); } } if ('ontouchstart' in document.documentElement) { this.addEventListener('touchstart', onTouchStart, false); } }); return this; }; })(jQuery); plugins/jetpack/modules/carousel/jetpack-carousel.php0000644000312500031250000005745712654411246023537 0ustar eacbforgeacbforgmaybe_disable_jp_carousel() ) return; $this->in_jetpack = ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'enable_module_configurable' ) ) ? true : false; if ( is_admin() ) { // Register the Carousel-related related settings add_action( 'admin_init', array( $this, 'register_settings' ), 5 ); if ( ! $this->in_jetpack ) { if ( 0 == $this->test_1or0_option( get_option( 'carousel_enable_it' ), true ) ) return; // Carousel disabled, abort early, but still register setting so user can switch it back on } // If in admin, register the ajax endpoints. add_action( 'wp_ajax_get_attachment_comments', array( $this, 'get_attachment_comments' ) ); add_action( 'wp_ajax_nopriv_get_attachment_comments', array( $this, 'get_attachment_comments' ) ); add_action( 'wp_ajax_post_attachment_comment', array( $this, 'post_attachment_comment' ) ); add_action( 'wp_ajax_nopriv_post_attachment_comment', array( $this, 'post_attachment_comment' ) ); } else { if ( ! $this->in_jetpack ) { if ( 0 == $this->test_1or0_option( get_option( 'carousel_enable_it' ), true ) ) return; // Carousel disabled, abort early } // If on front-end, do the Carousel thang. /** * Filter the array of default prebuilt widths used in Carousel. * * @module carousel * * @since 1.6.0 * * @param array $this->prebuilt_widths Array of default widths. */ $this->prebuilt_widths = apply_filters( 'jp_carousel_widths', $this->prebuilt_widths ); add_filter( 'post_gallery', array( $this, 'enqueue_assets' ), 1000, 2 ); // load later than other callbacks hooked it add_filter( 'post_gallery', array( $this, 'set_in_gallery' ), -1000 ); add_filter( 'gallery_style', array( $this, 'add_data_to_container' ) ); add_filter( 'wp_get_attachment_image_attributes', array( $this, 'add_data_to_images' ), 10, 2 ); } if ( $this->in_jetpack && method_exists( 'Jetpack', 'module_configuration_load' ) ) { Jetpack::enable_module_configurable( dirname( dirname( __FILE__ ) ) . '/carousel.php' ); Jetpack::module_configuration_load( dirname( dirname( __FILE__ ) ) . '/carousel.php', array( $this, 'jetpack_configuration_load' ) ); } } function maybe_disable_jp_carousel() { /** * Allow third-party plugins or themes to disable Carousel. * * @module carousel * * @since 1.6.0 * * @param bool false Should Carousel be disabled? Default to fase. */ return apply_filters( 'jp_carousel_maybe_disable', false ); } function jetpack_configuration_load() { wp_safe_redirect( admin_url( 'options-media.php#carousel_background_color' ) ); exit; } function asset_version( $version ) { /** * Filter the version string used when enqueuing Carousel assets. * * @module carousel * * @since 1.6.0 * * @param string $version Asset version. */ return apply_filters( 'jp_carousel_asset_version', $version ); } function display_bail_message( $output= '' ) { // Displays a message on top of gallery if carousel has bailed $message = '

        '; $message .= __( 'Jetpack\'s Carousel has been disabled, because another plugin or your theme is overriding the [gallery] shortcode.', 'jetpack' ); $message .= '

        '; // put before gallery output $output = $message . $output; return $output; } function enqueue_assets( $output ) { if ( ! empty( $output ) && /** * Allow third-party plugins or themes to force-enable Carousel. * * @module carousel * * @since 1.9.0 * * @param bool false Should we force enable Carousel? Default to false. */ ! apply_filters( 'jp_carousel_force_enable', false ) ) { // Bail because someone is overriding the [gallery] shortcode. remove_filter( 'gallery_style', array( $this, 'add_data_to_container' ) ); remove_filter( 'wp_get_attachment_image_attributes', array( $this, 'add_data_to_images' ) ); // Display message that carousel has bailed, if user is super_admin, and if we're not on WordPress.com. if ( is_super_admin() && ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) { add_filter( 'post_gallery', array( $this, 'display_bail_message' ) ); } return $output; } /** * Fires when thumbnails are shown in Carousel. * * @module carousel * * @since 1.6.0 **/ do_action( 'jp_carousel_thumbnails_shown' ); if ( $this->first_run ) { wp_enqueue_script( 'jetpack-carousel', plugins_url( 'jetpack-carousel.js', __FILE__ ), array( 'jquery.spin' ), $this->asset_version( '20140505' ), true ); // Note: using home_url() instead of admin_url() for ajaxurl to be sure to get same domain on wpcom when using mapped domains (also works on self-hosted) // Also: not hardcoding path since there is no guarantee site is running on site root in self-hosted context. $is_logged_in = is_user_logged_in(); $current_user = wp_get_current_user(); $comment_registration = intval( get_option( 'comment_registration' ) ); $require_name_email = intval( get_option( 'require_name_email' ) ); $localize_strings = array( 'widths' => $this->prebuilt_widths, 'is_logged_in' => $is_logged_in, 'lang' => strtolower( substr( get_locale(), 0, 2 ) ), 'ajaxurl' => set_url_scheme( admin_url( 'admin-ajax.php' ) ), 'nonce' => wp_create_nonce( 'carousel_nonce' ), 'display_exif' => $this->test_1or0_option( get_option( 'carousel_display_exif' ), true ), 'display_geo' => $this->test_1or0_option( get_option( 'carousel_display_geo' ), true ), 'background_color' => $this->carousel_background_color_sanitize( get_option( 'carousel_background_color' ) ), 'comment' => __( 'Comment', 'jetpack' ), 'post_comment' => __( 'Post Comment', 'jetpack' ), 'write_comment' => __( 'Write a Comment...', 'jetpack' ), 'loading_comments' => __( 'Loading Comments...', 'jetpack' ), 'download_original' => sprintf( __( 'View full size %1$s×%2$s', 'jetpack' ), '{0}', '{1}' ), 'no_comment_text' => __( 'Please be sure to submit some text with your comment.', 'jetpack' ), 'no_comment_email' => __( 'Please provide an email address to comment.', 'jetpack' ), 'no_comment_author' => __( 'Please provide your name to comment.', 'jetpack' ), 'comment_post_error' => __( 'Sorry, but there was an error posting your comment. Please try again later.', 'jetpack' ), 'comment_approved' => __( 'Your comment was approved.', 'jetpack' ), 'comment_unapproved' => __( 'Your comment is in moderation.', 'jetpack' ), 'camera' => __( 'Camera', 'jetpack' ), 'aperture' => __( 'Aperture', 'jetpack' ), 'shutter_speed' => __( 'Shutter Speed', 'jetpack' ), 'focal_length' => __( 'Focal Length', 'jetpack' ), 'comment_registration' => $comment_registration, 'require_name_email' => $require_name_email, /** This action is documented in core/src/wp-includes/link-template.php */ 'login_url' => wp_login_url( apply_filters( 'the_permalink', get_permalink() ) ), ); if ( ! isset( $localize_strings['jetpack_comments_iframe_src'] ) || empty( $localize_strings['jetpack_comments_iframe_src'] ) ) { // We're not using Comments after all, so fallback to standard local comments. if ( $is_logged_in ) { $localize_strings['local_comments_commenting_as'] = '

        ' . sprintf( __( 'Commenting as %s', 'jetpack' ), $current_user->data->display_name ) . '

        '; } else { if ( $comment_registration ) { $localize_strings['local_comments_commenting_as'] = '

        ' . __( 'You must be logged in to post a comment.', 'jetpack' ) . '

        '; } else { $required = ( $require_name_email ) ? __( '%s (Required)', 'jetpack' ) : '%s'; $localize_strings['local_comments_commenting_as'] = '' . '
        ' . '
        ' . '
        ' . '
        ' . '
        ' . '
        '; } } } /** * Filter the strings passed to the Carousel's js file. * * @module carousel * * @since 1.6.0 * * @param array $localize_strings Array of strings passed to the Jetpack js file. */ $localize_strings = apply_filters( 'jp_carousel_localize_strings', $localize_strings ); wp_localize_script( 'jetpack-carousel', 'jetpackCarouselStrings', $localize_strings ); if( is_rtl() ) { wp_enqueue_style( 'jetpack-carousel', plugins_url( '/rtl/jetpack-carousel-rtl.css', __FILE__ ), array(), $this->asset_version( '20120629' ) ); } else { wp_enqueue_style( 'jetpack-carousel', plugins_url( 'jetpack-carousel.css', __FILE__ ), array(), $this->asset_version( '20120629' ) ); } wp_register_style( 'jetpack-carousel-ie8fix', plugins_url( 'jetpack-carousel-ie8fix.css', __FILE__ ), array(), $this->asset_version( '20121024' ) ); $GLOBALS['wp_styles']->add_data( 'jetpack-carousel-ie8fix', 'conditional', 'lte IE 8' ); wp_enqueue_style( 'jetpack-carousel-ie8fix' ); /** * Fires after carousel assets are enqueued for the first time. * Allows for adding additional assets to the carousel page. * * @module carousel * * @since 1.6.0 * * @param bool $first_run First load if Carousel on the page. * @param array $localized_strings Array of strings passed to the Jetpack js file. */ do_action( 'jp_carousel_enqueue_assets', $this->first_run, $localize_strings ); $this->first_run = false; } return $output; } function set_in_gallery( $output ) { $this->in_gallery = true; return $output; } function add_data_to_images( $attr, $attachment = null ) { // not in a gallery? if ( ! $this->in_gallery ) { return $attr; } $attachment_id = intval( $attachment->ID ); $orig_file = wp_get_attachment_image_src( $attachment_id, 'full' ); $orig_file = isset( $orig_file[0] ) ? $orig_file[0] : wp_get_attachment_url( $attachment_id ); $meta = wp_get_attachment_metadata( $attachment_id ); $size = isset( $meta['width'] ) ? intval( $meta['width'] ) . ',' . intval( $meta['height'] ) : ''; $img_meta = ( ! empty( $meta['image_meta'] ) ) ? (array) $meta['image_meta'] : array(); $comments_opened = intval( comments_open( $attachment_id ) ); /* * Note: Cannot generate a filename from the width and height wp_get_attachment_image_src() returns because * it takes the $content_width global variable themes can set in consideration, therefore returning sizes * which when used to generate a filename will likely result in a 404 on the image. * $content_width has no filter we could temporarily de-register, run wp_get_attachment_image_src(), then * re-register. So using returned file URL instead, which we can define the sizes from through filename * parsing in the JS, as this is a failsafe file reference. * * EG with Twenty Eleven activated: * array(4) { [0]=> string(82) "http://vanillawpinstall.blah/wp-content/uploads/2012/06/IMG_3534-1024x764.jpg" [1]=> int(584) [2]=> int(435) [3]=> bool(true) } * * EG with Twenty Ten activated: * array(4) { [0]=> string(82) "http://vanillawpinstall.blah/wp-content/uploads/2012/06/IMG_3534-1024x764.jpg" [1]=> int(640) [2]=> int(477) [3]=> bool(true) } */ $medium_file_info = wp_get_attachment_image_src( $attachment_id, 'medium' ); $medium_file = isset( $medium_file_info[0] ) ? $medium_file_info[0] : ''; $large_file_info = wp_get_attachment_image_src( $attachment_id, 'large' ); $large_file = isset( $large_file_info[0] ) ? $large_file_info[0] : ''; $attachment = get_post( $attachment_id ); $attachment_title = wptexturize( $attachment->post_title ); $attachment_desc = wpautop( wptexturize( $attachment->post_content ) ); // Not yet providing geo-data, need to "fuzzify" for privacy if ( ! empty( $img_meta ) ) { foreach ( $img_meta as $k => $v ) { if ( 'latitude' == $k || 'longitude' == $k ) unset( $img_meta[$k] ); } } // See https://github.com/Automattic/jetpack/issues/2765 if ( isset( $img_meta['keywords'] ) ) { unset( $img_meta['keywords'] ); } $img_meta = json_encode( array_map( 'strval', $img_meta ) ); $attr['data-attachment-id'] = $attachment_id; $attr['data-orig-file'] = esc_attr( $orig_file ); $attr['data-orig-size'] = $size; $attr['data-comments-opened'] = $comments_opened; $attr['data-image-meta'] = esc_attr( $img_meta ); $attr['data-image-title'] = esc_attr( $attachment_title ); $attr['data-image-description'] = esc_attr( $attachment_desc ); $attr['data-medium-file'] = esc_attr( $medium_file ); $attr['data-large-file'] = esc_attr( $large_file ); return $attr; } function add_data_to_container( $html ) { global $post; if ( isset( $post ) ) { $blog_id = (int) get_current_blog_id(); if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $likes_blog_id = $blog_id; } else { $likes_blog_id = Jetpack_Options::get_option( 'id' ); } $extra_data = array( 'data-carousel-extra' => array( 'blog_id' => $blog_id, 'permalink' => get_permalink( $post->ID ), 'likes_blog_id' => $likes_blog_id ) ); /** * Filter the data added to the Gallery container. * * @module carousel * * @since 1.6.0 * * @param array $extra_data Array of data about the site and the post. */ $extra_data = apply_filters( 'jp_carousel_add_data_to_container', $extra_data ); foreach ( (array) $extra_data as $data_key => $data_values ) { $html = str_replace( '
        'approve', 'order' => ( 'asc' == get_option('comment_order') ) ? 'ASC' : 'DESC', 'number' => 10, 'offset' => $offset, 'post_id' => $attachment_id, ) ); $out = array(); // Can't just send the results, they contain the commenter's email address. foreach ( $comments as $comment ) { $avatar = get_avatar( $comment->comment_author_email, 64 ); if( ! $avatar ) $avatar = ''; $out[] = array( 'id' => $comment->comment_ID, 'parent_id' => $comment->comment_parent, 'author_markup' => get_comment_author_link( $comment->comment_ID ), 'gravatar_markup' => $avatar, 'date_gmt' => $comment->comment_date_gmt, 'content' => wpautop($comment->comment_content), ); } die( json_encode( $out ) ); } function post_attachment_comment() { if ( ! headers_sent() ) header('Content-type: text/javascript'); if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce($_POST['nonce'], 'carousel_nonce') ) die( json_encode( array( 'error' => __( 'Nonce verification failed.', 'jetpack' ) ) ) ); $_blog_id = (int) $_POST['blog_id']; $_post_id = (int) $_POST['id']; $comment = $_POST['comment']; if ( empty( $_blog_id ) ) die( json_encode( array( 'error' => __( 'Missing target blog ID.', 'jetpack' ) ) ) ); if ( empty( $_post_id ) ) die( json_encode( array( 'error' => __( 'Missing target post ID.', 'jetpack' ) ) ) ); if ( empty( $comment ) ) die( json_encode( array( 'error' => __( 'No comment text was submitted.', 'jetpack' ) ) ) ); // Used in context like NewDash $switched = false; if ( is_multisite() && $_blog_id != get_current_blog_id() ) { switch_to_blog( $_blog_id ); $switched = true; } /** This action is documented in modules/carousel/jetpack-carousel.php */ do_action('jp_carousel_check_blog_user_privileges'); if ( ! comments_open( $_post_id ) ) die( json_encode( array( 'error' => __( 'Comments on this post are closed.', 'jetpack' ) ) ) ); if ( is_user_logged_in() ) { $user = wp_get_current_user(); $user_id = $user->ID; $display_name = $user->display_name; $email = $user->user_email; $url = $user->user_url; if ( empty( $user_id ) ) die( json_encode( array( 'error' => __( 'Sorry, but we could not authenticate your request.', 'jetpack' ) ) ) ); } else { $user_id = 0; $display_name = $_POST['author']; $email = $_POST['email']; $url = $_POST['url']; if ( get_option( 'require_name_email' ) ) { if ( empty( $display_name ) ) die( json_encode( array( 'error' => __( 'Please provide your name.', 'jetpack' ) ) ) ); if ( empty( $email ) ) die( json_encode( array( 'error' => __( 'Please provide an email address.', 'jetpack' ) ) ) ); if ( ! is_email( $email ) ) die( json_encode( array( 'error' => __( 'Please provide a valid email address.', 'jetpack' ) ) ) ); } } $comment_data = array( 'comment_content' => $comment, 'comment_post_ID' => $_post_id, 'comment_author' => $display_name, 'comment_author_email' => $email, 'comment_author_url' => $url, 'comment_approved' => 0, 'comment_type' => '', ); if ( ! empty( $user_id ) ) $comment_data['user_id'] = $user_id; // Note: wp_new_comment() sanitizes and validates the values (too). $comment_id = wp_new_comment( $comment_data ); /** * Fires before adding a new comment to the database via the get_attachment_comments ajax endpoint. * * @module carousel * * @since 1.6.0 */ do_action( 'jp_carousel_post_attachment_comment' ); $comment_status = wp_get_comment_status( $comment_id ); if ( true == $switched ) restore_current_blog(); die( json_encode( array( 'comment_id' => $comment_id, 'comment_status' => $comment_status ) ) ); } function register_settings() { add_settings_section('carousel_section', __( 'Image Gallery Carousel', 'jetpack' ), array( $this, 'carousel_section_callback' ), 'media'); if ( ! $this->in_jetpack ) { add_settings_field('carousel_enable_it', __( 'Enable carousel', 'jetpack' ), array( $this, 'carousel_enable_it_callback' ), 'media', 'carousel_section' ); register_setting( 'media', 'carousel_enable_it', array( $this, 'carousel_enable_it_sanitize' ) ); } add_settings_field('carousel_background_color', __( 'Background color', 'jetpack' ), array( $this, 'carousel_background_color_callback' ), 'media', 'carousel_section' ); register_setting( 'media', 'carousel_background_color', array( $this, 'carousel_background_color_sanitize' ) ); add_settings_field('carousel_display_exif', __( 'Metadata', 'jetpack'), array( $this, 'carousel_display_exif_callback' ), 'media', 'carousel_section' ); register_setting( 'media', 'carousel_display_exif', array( $this, 'carousel_display_exif_sanitize' ) ); // No geo setting yet, need to "fuzzify" data first, for privacy // add_settings_field('carousel_display_geo', __( 'Geolocation', 'jetpack' ), array( $this, 'carousel_display_geo_callback' ), 'media', 'carousel_section' ); // register_setting( 'media', 'carousel_display_geo', array( $this, 'carousel_display_geo_sanitize' ) ); } // Fulfill the settings section callback requirement by returning nothing function carousel_section_callback() { return; } function test_1or0_option( $value, $default_to_1 = true ) { if ( true == $default_to_1 ) { // Binary false (===) of $value means it has not yet been set, in which case we do want to default sites to 1 if ( false === $value ) $value = 1; } return ( 1 == $value ) ? 1 : 0; } function sanitize_1or0_option( $value ) { return ( 1 == $value ) ? 1 : 0; } function settings_checkbox($name, $label_text, $extra_text = '', $default_to_checked = true) { if ( empty( $name ) ) return; $option = $this->test_1or0_option( get_option( $name ), $default_to_checked ); echo '
        '; echo ' '; if ( ! empty( $extra_text ) ) echo '

        '.$extra_text.'

        '; echo '
        '; } function settings_select($name, $values, $extra_text = '') { if ( empty( $name ) || ! is_array( $values ) || empty( $values ) ) return; $option = get_option( $name ); echo '
        '; echo ''; if ( ! empty( $extra_text ) ) echo '

        '.$extra_text.'

        '; echo '
        '; } function carousel_display_exif_callback() { $this->settings_checkbox( 'carousel_display_exif', __( 'Show photo metadata (Exif) in carousel, when available.', 'jetpack' ) ); } function carousel_display_exif_sanitize( $value ) { return $this->sanitize_1or0_option( $value ); } function carousel_display_geo_callback() { $this->settings_checkbox( 'carousel_display_geo', __( 'Show map of photo location in carousel, when available.', 'jetpack' ) ); } function carousel_display_geo_sanitize( $value ) { return $this->sanitize_1or0_option( $value ); } function carousel_background_color_callback() { $this->settings_select( 'carousel_background_color', array( 'black' => __( 'Black', 'jetpack' ), 'white' => __( 'White', 'jetpack', 'jetpack' ) ) ); } function carousel_background_color_sanitize( $value ) { return ( 'white' == $value ) ? 'white' : 'black'; } function carousel_enable_it_callback() { $this->settings_checkbox( 'carousel_enable_it', __( 'Display images in full-size carousel slideshow.', 'jetpack' ) ); } function carousel_enable_it_sanitize( $value ) { return $this->sanitize_1or0_option( $value ); } } new Jetpack_Carousel; plugins/jetpack/modules/markdown/0000755000312500031250000000000012654410417017554 5ustar eacbforgeacbforgplugins/jetpack/modules/markdown/easy-markdown.php0000644000312500031250000006464612654410417023066 0ustar eacbforgeacbforg array(), 'parent' => array() ); /** * Yay singletons! * @return object WPCom_Markdown instance */ public static function get_instance() { if ( ! self::$instance ) self::$instance = new self(); return self::$instance; } /** * Kicks things off on `init` action * @return null */ public function load() { $this->add_default_post_type_support(); $this->maybe_load_actions_and_filters(); if ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) { add_action( 'switch_blog', array( $this, 'maybe_load_actions_and_filters' ), 10, 2 ); } add_action( 'admin_init', array( $this, 'register_setting' ) ); add_action( 'admin_init', array( $this, 'maybe_unload_for_bulk_edit' ) ); if ( current_theme_supports( 'o2' ) || class_exists( 'P2' ) ) { $this->add_o2_helpers(); } } /** * If we're in a bulk edit session, unload so that we don't lose our markdown metadata * @return null */ public function maybe_unload_for_bulk_edit() { if ( isset( $_REQUEST['bulk_edit'] ) && $this->is_posting_enabled() ) { $this->unload_markdown_for_posts(); } } /** * Called on init and fires on switch_blog to decide if our actions and filters * should be running. * @param int|null $new_blog_id New blog ID * @param int|null $old_blog_id Old blog ID * @return null */ public function maybe_load_actions_and_filters( $new_blog_id = null, $old_blog_id = null ) { // If this is a switch_to_blog call, and the blog isn't changing, we'll already be loaded if ( $new_blog_id && $new_blog_id === $old_blog_id ) { return; } if ( $this->is_posting_enabled() ) { $this->load_markdown_for_posts(); } else { $this->unload_markdown_for_posts(); } if ( $this->is_commenting_enabled() ) { $this->load_markdown_for_comments(); } else { $this->unload_markdown_for_comments(); } } /** * Set up hooks for enabling Markdown conversion on posts * @return null */ public function load_markdown_for_posts() { add_action( 'wp_insert_post', array( $this, 'wp_insert_post' ) ); add_filter( 'wp_insert_post_data', array( $this, 'wp_insert_post_data' ), 10, 2 ); add_filter( 'edit_post_content', array( $this, 'edit_post_content' ), 10, 2 ); add_filter( 'edit_post_content_filtered', array( $this, 'edit_post_content_filtered' ), 10, 2 ); add_action( 'wp_restore_post_revision', array( $this, 'wp_restore_post_revision' ), 10, 2 ); add_filter( '_wp_post_revision_fields', array( $this, '_wp_post_revision_fields' ) ); add_action( 'xmlrpc_call', array( $this, 'xmlrpc_actions' ) ); add_filter( 'content_save_pre', array( $this, 'preserve_code_blocks' ), 1 ); if ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST ) { $this->check_for_early_methods(); } } /** * Removes hooks to disable Markdown conversion on posts * @return null */ public function unload_markdown_for_posts() { remove_action( 'wp_insert_post', array( $this, 'wp_insert_post' ) ); remove_filter( 'wp_insert_post_data', array( $this, 'wp_insert_post_data' ), 10, 2 ); remove_filter( 'edit_post_content', array( $this, 'edit_post_content' ), 10, 2 ); remove_filter( 'edit_post_content_filtered', array( $this, 'edit_post_content_filtered' ), 10, 2 ); remove_action( 'wp_restore_post_revision', array( $this, 'wp_restore_post_revision' ), 10, 2 ); remove_filter( '_wp_post_revision_fields', array( $this, '_wp_post_revision_fields' ) ); remove_action( 'xmlrpc_call', array( $this, 'xmlrpc_actions' ) ); remove_filter( 'content_save_pre', array( $this, 'preserve_code_blocks' ), 1 ); } /** * Set up hooks for enabling Markdown conversion on comments * @return null */ protected function load_markdown_for_comments() { // Use priority 9 so that Markdown runs before KSES, which can clean up // any munged HTML. add_filter( 'pre_comment_content', array( $this, 'pre_comment_content' ), 9 ); } /** * Removes hooks to disable Markdown conversion * @return null */ protected function unload_markdown_for_comments() { remove_filter( 'pre_comment_content', array( $this, 'pre_comment_content' ), 9 ); } /** * o2 does some of what we do. Let's take precedence. * @return null */ public function add_o2_helpers() { if ( $this->is_posting_enabled() ) { add_filter( 'content_save_pre', array( $this, 'o2_escape_lists' ), 1 ); } add_filter( 'o2_preview_post', array( $this, 'o2_preview_post' ) ); add_filter( 'o2_preview_comment', array( $this, 'o2_preview_comment' ) ); add_filter( 'wpcom_markdown_transform_pre', array( $this, 'o2_unescape_lists' ) ); add_filter( 'wpcom_untransformed_content', array( $this, 'o2_unescape_lists' ) ); } /** * If Markdown is enabled for posts on this blog, filter the text for o2 previews * @param string $text Post text * @return string Post text transformed through the magic of Markdown */ public function o2_preview_post( $text ) { if ( $this->is_posting_enabled() ) { $text = $this->transform( $text, array( 'unslash' => false ) ); } return $text; } /** * If Markdown is enabled for comments on this blog, filter the text for o2 previews * @param string $text Comment text * @return string Comment text transformed through the magic of Markdown */ public function o2_preview_comment( $text ) { if ( $this->is_commenting_enabled() ) { $text = $this->transform( $text, array( 'unslash' => false ) ); } return $text; } /** * Escapes lists so that o2 doesn't trounce them * @param string $text Post/comment text * @return string Text escaped with HTML entity for asterisk */ public function o2_escape_lists( $text ) { return preg_replace( '/^\\* /um', '* ', $text ); } /** * Unescapes the token we inserted on o2_escape_lists * @param string $text Post/comment text with HTML entities for asterisks * @return string Text with the HTML entity removed */ public function o2_unescape_lists( $text ) { return preg_replace( '/^[&]\#042; /um', '* ', $text ); } /** * Preserve code blocks from being munged by KSES before they have a chance * @param string $text post content * @return string post content with code blocks escaped */ public function preserve_code_blocks( $text ) { return $this->get_parser()->codeblock_preserve( $text ); } /** * Remove KSES if it's there. Store the result to manually invoke later if needed. * @return null */ public function maybe_remove_kses() { // Filters return true if they existed before you removed them if ( $this->is_posting_enabled() ) $this->kses = remove_filter( 'content_filtered_save_pre', 'wp_filter_post_kses' ) && remove_filter( 'content_save_pre', 'wp_filter_post_kses' ); } /** * Add our Writing and Discussion settings. * @return null */ public function register_setting() { add_settings_field( self::POST_OPTION, __( 'Markdown', 'jetpack' ), array( $this, 'post_field' ), 'writing' ); register_setting( 'writing', self::POST_OPTION, array( $this, 'sanitize_setting') ); add_settings_field( self::COMMENT_OPTION, __( 'Markdown', 'jetpack' ), array( $this, 'comment_field' ), 'discussion' ); register_setting( 'discussion', self::COMMENT_OPTION, array( $this, 'sanitize_setting') ); } /** * Sanitize setting. Don't really want to store "on" value, so we'll store "1" instead! * @param string $input Value received by settings API via $_POST * @return bool Cast to boolean. */ public function sanitize_setting( $input ) { return (bool) $input; } /** * Prints HTML for the Writing setting * @return null */ public function post_field() { printf( '

        %s

        ', self::POST_OPTION, self::POST_OPTION, checked( $this->is_posting_enabled(), true, false ), esc_html__( 'Use Markdown for posts and pages.', 'jetpack' ), sprintf( '%s', esc_url( $this->get_support_url() ), esc_html__( 'Learn more about Markdown.', 'jetpack' ) ) ); } /** * Prints HTML for the Discussion setting * @return null */ public function comment_field() { printf( '

        %s

        ', self::COMMENT_OPTION, self::COMMENT_OPTION, checked( $this->is_commenting_enabled(), true, false ), esc_html__( 'Use Markdown for comments.', 'jetpack' ), sprintf( '%s', esc_url( $this->get_support_url() ), esc_html__( 'Learn more about Markdown.', 'jetpack' ) ) ); } /** * Get the support url for Markdown * @uses apply_filters * @return string support url */ protected function get_support_url() { /** * Filter the Markdown support URL. * * @module markdown * * @since 2.8.0 * * @param string $url Markdown support URL. */ return apply_filters( 'easy_markdown_support_url', 'http://en.support.wordpress.com/markdown-quick-reference/' ); } /** * Is Mardown conversion for posts enabled? * @return boolean */ public function is_posting_enabled() { return (bool) get_option( self::POST_OPTION, '' ); } /** * Is Markdown conversion for comments enabled? * @return boolean */ public function is_commenting_enabled() { return (bool) get_option( self::COMMENT_OPTION, '' ); } /** * Check if a $post_id has Markdown enabled * @param int $post_id A post ID. * @return boolean */ public function is_markdown( $post_id ) { return get_metadata( 'post', $post_id, self::IS_MD_META, true ); } /** * Set Markdown as enabled on a post_id. We skip over update_postmeta so we * can sneakily set metadata on post revisions, which we need. * @param int $post_id A post ID. * @return bool The metadata was successfully set. */ protected function set_as_markdown( $post_id ) { return update_metadata( 'post', $post_id, self::IS_MD_META, true ); } /** * Get our Markdown parser object, optionally requiring all of our needed classes and * instantiating our parser. * @return object WPCom_GHF_Markdown_Parser instance. */ public function get_parser() { if ( ! self::$parser ) { jetpack_require_lib( 'markdown' ); self::$parser = new WPCom_GHF_Markdown_Parser; } return self::$parser; } /** * We don't want Markdown conversion all over the place. * @return null */ public function add_default_post_type_support() { add_post_type_support( 'post', self::POST_TYPE_SUPPORT ); add_post_type_support( 'page', self::POST_TYPE_SUPPORT ); add_post_type_support( 'revision', self::POST_TYPE_SUPPORT ); } /** * Figure out the post type of the post screen we're on * @return string Current post_type */ protected function get_post_screen_post_type() { global $pagenow; if ( 'post-new.php' === $pagenow ) return ( isset( $_GET['post_type'] ) ) ? $_GET['post_type'] : 'post'; if ( isset( $_GET['post'] ) ) { $post = get_post( (int) $_GET['post'] ); if ( is_object( $post ) && isset( $post->post_type ) ) return $post->post_type; } return 'post'; } /** * Swap post_content and post_content_filtered for editing * @param string $content Post content * @param int $id post ID * @return string Swapped content */ public function edit_post_content( $content, $id ) { if ( $this->is_markdown( $id ) ) { $post = get_post( $id ); if ( $post && ! empty( $post->post_content_filtered ) ) { $post = $this->swap_for_editing( $post ); return $post->post_content; } } return $content; } /** * Swap post_content_filtered and post_content for editing * @param string $content Post content_filtered * @param int $id post ID * @return string Swapped content */ public function edit_post_content_filtered( $content, $id ) { // if markdown was disabled, let's turn this off if ( ! $this->is_posting_enabled() && $this->is_markdown( $id ) ) { $post = get_post( $id ); if ( $post && ! empty( $post->post_content_filtered ) ) $content = ''; } return $content; } /** * Magic happens here. Markdown is converted and stored on post_content. Original Markdown is stored * in post_content_filtered so that we can continue editing as Markdown. * @param array $post_data The post data that will be inserted into the DB. Slashed. * @param array $postarr All the stuff that was in $_POST. * @return array $post_data with post_content and post_content_filtered modified */ public function wp_insert_post_data( $post_data, $postarr ) { // $post_data array is slashed! $post_id = isset( $postarr['ID'] ) ? $postarr['ID'] : false; // bail early if markdown is disabled or this post type is unsupported. if ( ! $this->is_posting_enabled() || ! post_type_supports( $post_data['post_type'], self::POST_TYPE_SUPPORT ) ) { // it's disabled, but maybe this *was* a markdown post before. if ( $this->is_markdown( $post_id ) && ! empty( $post_data['post_content_filtered'] ) ) { $post_data['post_content_filtered'] = ''; } // we have no context to determine supported post types in the `post_content_pre` hook, // which already ran to sanitize code blocks. Undo that. $post_data['post_content'] = $this->get_parser()->codeblock_restore( $post_data['post_content'] ); return $post_data; } // rejigger post_content and post_content_filtered // revisions are already in the right place, except when we're restoring, but that's taken care of elsewhere // also prevent quick edit feature from overriding already-saved markdown (issue https://github.com/Automattic/jetpack/issues/636) if ( 'revision' !== $post_data['post_type'] && ! isset( $_POST['_inline_edit'] ) ) { /** * Filter the original post content passed to Markdown. * * @module markdown * * @since 2.8.0 * * @param string $post_data['post_content'] Untransformed post content. */ $post_data['post_content_filtered'] = apply_filters( 'wpcom_untransformed_content', $post_data['post_content'] ); $post_data['post_content'] = $this->transform( $post_data['post_content'], array( 'id' => $post_id ) ); /** This filter is already documented in core/wp-includes/default-filters.php */ $post_data['post_content'] = apply_filters( 'content_save_pre', $post_data['post_content'] ); } elseif ( 0 === strpos( $post_data['post_name'], $post_data['post_parent'] . '-autosave' ) ) { // autosaves for previews are weird $post_data['post_content'] = $this->transform( $post_data['post_content'], array( 'id' => $post_data['post_parent'] ) ); /** This filter is already documented in core/wp-includes/default-filters.php */ $post_data['post_content'] = apply_filters( 'content_save_pre', $post_data['post_content'] ); } // set as markdown on the wp_insert_post hook later if ( $post_id ) $this->monitoring['post'][ $post_id ] = true; else $this->monitoring['content'] = wp_unslash( $post_data['post_content'] ); if ( 'revision' === $postarr['post_type'] && $this->is_markdown( $postarr['post_parent'] ) ) $this->monitoring['parent'][ $postarr['post_parent'] ] = true; return $post_data; } /** * Calls on wp_insert_post action, after wp_insert_post_data. This way we can * still set postmeta on our revisions after it's all been deleted. * @param int $post_id The post ID that has just been added/updated * @return null */ public function wp_insert_post( $post_id ) { $post_parent = get_post_field( 'post_parent', $post_id ); // this didn't have an ID yet. Compare the content that was just saved. if ( isset( $this->monitoring['content'] ) && $this->monitoring['content'] === get_post_field( 'post_content', $post_id ) ) { unset( $this->monitoring['content'] ); $this->set_as_markdown( $post_id ); } if ( isset( $this->monitoring['post'][$post_id] ) ) { unset( $this->monitoring['post'][$post_id] ); $this->set_as_markdown( $post_id ); } elseif ( isset( $this->monitoring['parent'][$post_parent] ) ) { unset( $this->monitoring['parent'][$post_parent] ); $this->set_as_markdown( $post_id ); } } /** * Run a comment through Markdown. Easy peasy. * @param string $content * @return string */ public function pre_comment_content( $content ) { return $this->transform( $content, array( 'id' => $this->comment_hash( $content ), ) ); } protected function comment_hash( $content ) { return 'c-' . substr( md5( $content ), 0, 8 ); } /** * Markdown conversion. Some DRYness for repetitive tasks. * @param string $text Content to be run through Markdown * @param array $args Arguments, with keys: * id: provide a string to prefix footnotes with a unique identifier * unslash: when true, expects and returns slashed data * decode_code_blocks: when true, assume that text in fenced code blocks is already * HTML encoded and should be decoded before being passed to Markdown, which does * its own encoding. * @return string Markdown-processed content */ public function transform( $text, $args = array() ) { $args = wp_parse_args( $args, array( 'id' => false, 'unslash' => true, 'decode_code_blocks' => ! $this->get_parser()->use_code_shortcode ) ); // probably need to unslash if ( $args['unslash'] ) $text = wp_unslash( $text ); /** * Filter the content to be run through Markdown, before it's transformed by Markdown. * * @module markdown * * @since 2.8.0 * * @param string $text Content to be run through Markdown * @param array $args Array of Markdown options. */ $text = apply_filters( 'wpcom_markdown_transform_pre', $text, $args ); // ensure our paragraphs are separated $text = str_replace( array( '

        ', "

        \n

        " ), "

        \n\n

        ", $text ); // visual editor likes to add

        s. Buh-bye. $text = $this->get_parser()->unp( $text ); // sometimes we get an encoded > at start of line, breaking blockquotes $text = preg_replace( '/^>/m', '>', $text ); // prefixes are because we need to namespace footnotes by post_id $this->get_parser()->fn_id_prefix = $args['id'] ? $args['id'] . '-' : ''; // If we're not using the code shortcode, prevent over-encoding. if ( $args['decode_code_blocks'] ) { $text = $this->get_parser()->codeblock_restore( $text ); } // Transform it! $text = $this->get_parser()->transform( $text ); // Fix footnotes - kses doesn't like the : IDs it supplies $text = preg_replace( '/((id|href)="#?fn(ref)?):/', "$1-", $text ); // Markdown inserts extra spaces to make itself work. Buh-bye. $text = rtrim( $text ); /** * Filter the content to be run through Markdown, after it was transformed by Markdown. * * @module markdown * * @since 2.8.0 * * @param string $text Content to be run through Markdown * @param array $args Array of Markdown options. */ $text = apply_filters( 'wpcom_markdown_transform_post', $text, $args ); // probably need to re-slash if ( $args['unslash'] ) $text = wp_slash( $text ); return $text; } /** * Shows Markdown in the Revisions screen, and ensures that post_content_filtered * is maintained on revisions * @param array $fields Post fields pertinent to revisions * @return array Modified array to include post_content_filtered */ public function _wp_post_revision_fields( $fields ) { $fields['post_content_filtered'] = __( 'Markdown content', 'jetpack' ); return $fields; } /** * Do some song and dance to keep all post_content and post_content_filtered content * in the expected place when a post revision is restored. * @param int $post_id The post ID have a restore done to it * @param int $revision_id The revision ID being restored * @return null */ public function wp_restore_post_revision( $post_id, $revision_id ) { if ( $this->is_markdown( $revision_id ) ) { $revision = get_post( $revision_id, ARRAY_A ); $post = get_post( $post_id, ARRAY_A ); $post['post_content'] = $revision['post_content_filtered']; // Yes, we put it in post_content, because our wp_insert_post_data() expects that // set this flag so we can restore the post_content_filtered on the last revision later $this->monitoring['restore'] = true; // let's not make a revision of our fixing update add_filter( 'wp_revisions_to_keep', '__return_false', 99 ); wp_update_post( $post ); $this->fix_latest_revision_on_restore( $post_id ); remove_filter( 'wp_revisions_to_keep', '__return_false', 99 ); } } /** * We need to ensure the last revision has Markdown, not HTML in its post_content_filtered * column after a restore. * @param int $post_id The post ID that was just restored. * @return null */ protected function fix_latest_revision_on_restore( $post_id ) { global $wpdb; $post = get_post( $post_id ); $last_revision = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE post_type = 'revision' AND post_parent = %d ORDER BY ID DESC", $post->ID ) ); $last_revision->post_content_filtered = $post->post_content_filtered; wp_insert_post( (array) $last_revision ); } /** * Kicks off magic for an XML-RPC session. We want to keep editing Markdown * and publishing HTML. * @param string $xmlrpc_method The current XML-RPC method * @return null */ public function xmlrpc_actions( $xmlrpc_method ) { switch ( $xmlrpc_method ) { case 'metaWeblog.getRecentPosts': case 'wp.getPosts': case 'wp.getPages': add_action( 'parse_query', array( $this, 'make_filterable' ), 10, 1 ); break; case 'wp.getPost': $this->prime_post_cache(); break; } } /** * metaWeblog.getPost and wp.getPage fire xmlrpc_call action *after* get_post() is called. * So, we have to detect those methods and prime the post cache early. * @return null */ protected function check_for_early_methods() { global $HTTP_RAW_POST_DATA; if ( false === strpos( $HTTP_RAW_POST_DATA, 'metaWeblog.getPost' ) && false === strpos( $HTTP_RAW_POST_DATA, 'wp.getPage' ) ) { return; } include_once( ABSPATH . WPINC . '/class-IXR.php' ); $message = new IXR_Message( $HTTP_RAW_POST_DATA ); $message->parse(); $post_id_position = 'metaWeblog.getPost' === $message->methodName ? 0 : 1; $this->prime_post_cache( $message->params[ $post_id_position ] ); } /** * Prime the post cache with swapped post_content. This is a sneaky way of getting around * the fact that there are no good hooks to call on the *.getPost xmlrpc methods. * * @return null */ private function prime_post_cache( $post_id = false ) { global $wp_xmlrpc_server; if ( ! $post_id ) { $post_id = $wp_xmlrpc_server->message->params[3]; } // prime the post cache if ( $this->is_markdown( $post_id ) ) { $post = get_post( $post_id ); if ( ! empty( $post->post_content_filtered ) ) { wp_cache_delete( $post->ID, 'posts' ); $post = $this->swap_for_editing( $post ); wp_cache_add( $post->ID, $post, 'posts' ); $this->posts_to_uncache[] = $post_id; } } // uncache munged posts if using a persistent object cache if ( wp_using_ext_object_cache() ) { add_action( 'shutdown', array( $this, 'uncache_munged_posts' ) ); } } /** * Swaps `post_content_filtered` back to `post_content` for editing purposes. * @param object $post WP_Post object * @return object WP_Post object with swapped `post_content_filtered` and `post_content` */ protected function swap_for_editing( $post ) { $markdown = $post->post_content_filtered; // unencode encoded code blocks $markdown = $this->get_parser()->codeblock_restore( $markdown ); // restore beginning of line blockquotes $markdown = preg_replace( '/^> /m', '> ', $markdown ); $post->post_content_filtered = $post->post_content; $post->post_content = $markdown; return $post; } /** * We munge the post cache to serve proper markdown content to XML-RPC clients. * Uncache these after the XML-RPC session ends. * @return null */ public function uncache_munged_posts() { // $this context gets lost in testing sometimes. Weird. foreach( WPCom_Markdown::get_instance()->posts_to_uncache as $post_id ) { wp_cache_delete( $post_id, 'posts' ); } } /** * Since *.(get)?[Rr]ecentPosts calls get_posts with suppress filters on, we need to * turn them back on so that we can swap things for editing. * @param object $wp_query WP_Query object * @return null */ public function make_filterable( $wp_query ) { $wp_query->set( 'suppress_filters', false ); add_action( 'the_posts', array( $this, 'the_posts' ), 10, 2 ); } /** * Swaps post_content and post_content_filtered for editing. * @param array $posts Posts returned by the just-completed query * @param object $wp_query Current WP_Query object * @return array Modified $posts */ public function the_posts( $posts, $wp_query ) { foreach ( $posts as $key => $post ) { if ( $this->is_markdown( $post->ID ) && ! empty( $posts[ $key ]->post_content_filtered ) ) { $markdown = $posts[ $key ]->post_content_filtered; $posts[ $key ]->post_content_filtered = $posts[ $key ]->post_content; $posts[ $key ]->post_content = $markdown; } } return $posts; } /** * Singleton silence is golden */ private function __construct() {} } add_action( 'init', array( WPCom_Markdown::get_instance(), 'load' ) ); plugins/jetpack/modules/comments.php0000644000312500031250000000236312651056012020266 0ustar eacbforgeacbforg' ).html( data[key] ) ); } } }, WPGroHo ); jQuery( document ).ready( function() { if ( 'undefined' === typeof Gravatar ) { return; } Gravatar.profile_cb = function( h, d ) { WPGroHo.syncProfileData( h, d ); }; Gravatar.my_hash = WPGroHo.my_hash; Gravatar.init( 'body', '#wpadminbar' ); } ); plugins/jetpack/modules/module-info.php0000644000312500031250000014524412654411246020674 0ustar eacbforgeacbforg' . __( "Learn More", 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_vaultpress', 'vaultpress_jetpack_load_more_link' ); function vaultpress_jetpack_more_info() { if ( function_exists( 'is_multisite' ) && is_multisite() ) { $vaultpress_url = 'http://vaultpress.com/jetpack-ms/'; } else { $vaultpress_url = 'http://vaultpress.com/jetpack/'; } ?>

        <?php esc_attr_e( 'VaultPress', 'jetpack' ) ?>

        ' . esc_html__( 'VaultPress dashboard', 'jetpack' ) . '' ); ?>

        ' . esc_html__( 'Plans & Pricing', 'jetpack' ) . '' ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_gravatar-hovercards', 'grofiles_load_more_link' ); function grofiles_more_info() { ?>
        <?php esc_attr_e( 'Gravatar Hovercard', 'jetpack' ) ?>

        ' . esc_html__( 'Learn More' , 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_shortcodes', 'jetpack_shortcodes_load_more_link' ); function jetpack_shortcodes_more_info() { ?>
        <?php esc_attr_e( 'Shortcode Embeds', 'jetpack' ) ?>

        'http://support.wordpress.com/archives-shortcode/', 'bandcamp' => 'http://en.support.wordpress.com/audio/bandcamp/', 'blip.tv' => 'http://support.wordpress.com/videos/bliptv/', 'dailymotion' => 'http://support.wordpress.com/videos/dailymotion/', 'facebook' => 'http://en.support.wordpress.com/facebook-integration/facebook-embeds/', 'flickr' => 'http://support.wordpress.com/videos/flickr-video/', 'gist' => 'http://en.support.wordpress.com/gist/', 'googlemaps' => 'http://support.wordpress.com/google-maps/', 'instagram' => 'https://en.support.wordpress.com/instagram/instagram-images/', 'jetpack_subscription_form' => 'http://jetpack.me/support/subscriptions/#display', 'polldaddy' => 'http://support.polldaddy.com/wordpress-shortcodes/', 'presentation' => 'http://en.support.wordpress.com/presentations/', 'recipes' => 'http://en.support.wordpress.com/recipes/', 'scribd' => 'http://support.wordpress.com/scribd/', 'slideshare' => 'http://support.wordpress.com/slideshows/slideshare/', 'slideshow' => 'http://en.support.wordpress.com/slideshows/', 'soundcloud' => 'http://support.wordpress.com/audio/soundcloud-audio-player/', 'ted' => 'http://en.support.wordpress.com/videos/ted-talks/', 'twitter-timeline' => 'http://en.support.wordpress.com/widgets/twitter-timeline-widget/#embedding-with-a-shortcode', // 'upcomingevents' => 'http://en.support.wordpress.com/widgets/upcoming-events/#events-list-shortcode', 'vimeo' => 'http://support.wordpress.com/videos/vimeo/', 'vine' => 'http://en.support.wordpress.com/videos/vine/', 'youtube' => 'http://support.wordpress.com/videos/youtube/', ); $codes['wpvideo (VideoPress)'] = 'http://en.support.wordpress.com/videopress/'; $available = ''; foreach ( $codes as $code => $url ) { $available[] = '[' . $code . ']'; } ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_shortlinks', 'wpme_load_more_link' ); function wpme_more_info() { ?>
        <?php esc_attr_e( 'WP.me Shortlinks', 'jetpack' ) ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_stats', 'stats_load_more_link' ); function stats_more_info() { ?>
        <?php esc_attr_e( 'Site Stats', 'jetpack' ) ?>

        view your stats dashboard here.', 'jetpack' ), admin_url( 'admin.php?page=stats' ) ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_publicize', 'publicize_load_more_link' ); function publicize_more_info() { ?>
        <?php esc_attr_e( 'Publicize', 'jetpack' ) ?>

        Publicize settings.', 'jetpack' ), menu_page_url( 'sharing', false ) ); ?>

        →

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_notes', 'notes_load_more_link' ); function notes_more_info() { ?>
        <?php esc_attr_e( 'Notifications', 'jetpack' ) ?>

        on WordPress.com.', 'jetpack' ), 'http://wordpress.com/#!/notifications/' ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_latex', 'latex_load_more_link' ); function latex_more_info() { ?>
        <?php esc_attr_e( 'LaTeX', 'jetpack' ) ?>

        LaTeX logo' ); ?>

        ' ); ?>

        $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.', 'jetpack' ), 'LaTeX logo', 'http://support.wordpress.com/latex/' ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_sharedaddy', 'sharedaddy_load_more_link' ); function sharedaddy_more_info() { ?>

        Sharing menu.', 'jetpack' ), 'options-general.php?page=sharing' ); ?>

        Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!', 'jetpack' ), 'http://support.wordpress.com/sharing/' ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_after-the-deadline', 'jpatd_load_more_link' ); function jpatd_more_info() { ?>
        <?php esc_attr_e( 'Spelling and Grammar', 'jetpack' ) ?>

        After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.", 'jetpack' ), 'http://www.afterthedeadline.com/' ); ?>

        customization options, which you can edit in your profile.', 'jetpack' ), esc_url( get_edit_profile_url( get_current_user_id() ) ) . '#atd' ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_filter( 'jetpack_learn_more_button_widgets', 'jetpack_widgets_load_more_link' ); function jetpack_widgets_more_info() { ?>
        <?php esc_attr_e( 'Widgets Screenshot', 'jetpack' ) ?>

        The Twitter Widget shows your latest tweets within a sidebar on your theme.', 'jetpack' ) ); ?>

        The Facebook Like Box Widget shows your Facebook Like Box within a sidebar on your theme.', 'jetpack' ) ); ?>

        The Image Widget lets you easily add images to a sidebar on your theme.', 'jetpack' ) ); ?>

        The Gravatar Widget allows you to pull in your Gravatar image along with some of your Gravatar profile data.', 'jetpack' ) ); ?>

        The Gallery Widget provides you with a simple way to display a photo gallery or slideshow in your blog’s sidebar. Requires the Tiled Gallery module.', 'jetpack' ) ); ?>

        The Display WordPress Posts Widget lets you display up to ten recent posts from another WordPress.com blog, or a self-hosted WordPress site with Jetpack enabled.', 'jetpack' ) ); ?>

        The Social Media Icons Widget lets you add icons for the most popular social networks to your sidebar or other widget area.', 'jetpack' ) ); ?>

        Widgets. Drag them into one of your sidebars and configure away.', 'jetpack' ), admin_url( 'widgets.php' ) ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_subscriptions', 'jetpack_subscriptions_load_more_link' ); function jetpack_subscriptions_more_info() { ?>
        <?php esc_attr_e( 'Subsriptions Screenshot', 'jetpack' ) ?>

        Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.', 'jetpack' ), admin_url( 'widgets.php' ) ); ?>

        Discussion Settings page.', 'jetpack' ), admin_url( 'options-discussion.php#jetpack-subscriptions-settings' ) ); ?>

        Reading Settings page.', 'jetpack' ), admin_url( 'options-reading.php#follower-settings' ) ); ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_enhanced-distribution', 'jetpack_enhanced_distribution_more_link' ); function jetpack_enhanced_distribution_more_info() { ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_protect', 'jetpack_protect_more_link' ); function jetpack_protect_more_info() { ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_json-api', 'jetpack_json_api_more_link' ); function jetpack_json_api_more_info() { ?>

        OAuth2 authentication system and WordPress.com REST API to manage and access your site's content.", 'jetpack' ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_contact-form', 'jetpack_contact_form_learn_more_button' ); function jetpack_contact_form_more_info() { echo '
        '; echo ''; echo '' . esc_attr__( 'Contact Form', 'jetpack' ) . ''; echo ''; echo '
        '; echo '

        '; _e( 'A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.', 'jetpack' ); echo '

        '; echo '

        '; _e( 'Each contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.', 'jetpack' ); echo '

        '; } add_action( 'jetpack_module_more_info_contact-form', 'jetpack_contact_form_more_info' ); /** * Comments */ function jetpack_comments_learn_more_button() { echo '' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_comments', 'jetpack_comments_learn_more_button' ); function jetpack_comments_more_info() { ?>
        <?php esc_attr_e( 'Comments Screenshot', 'jetpack' ) ?>

        Discussion Settings page.", 'jetpack' ), admin_url( 'options-discussion.php#jetpack-comments-settings' ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_carousel', 'jetpack_carousel_learn_more_button' ); function jetpack_carousel_more_info() { ?>
        <?php esc_attr_e( 'Gallery Carousel Screenshot', 'jetpack' ) ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_custom-css', 'jetpack_custom_css_more_button' ); function jetpack_custom_css_more_info() { ?>
        <?php esc_attr_e( 'Custom CSS', 'jetpack' ) ?>

        Edit CSS.', 'jetpack' ), admin_url( 'themes.php?page=editcss' ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_minileven', 'jetpack_minileven_more_button' ); function jetpack_minileven_more_info() { ?>
        <?php esc_attr_e( 'Mobile Theme', 'jetpack' ) ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_infinite-scroll', 'jetpack_infinite_scroll_more_button' ); function jetpack_infinite_scroll_more_info() { $support_text = sprintf( __( 'If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.', 'jetpack' ), 'http://jetpack.me/support/infinite-scroll/' ); ?>

        Name : get_current_theme() ) ) ); ?>

        WordPress Updates page.', 'jetpack' ), esc_url( admin_url( 'update-core.php' ) ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_post-by-email', 'jetpack_post_by_email_more_link' ); function jetpack_post_by_email_more_info() { ?>
        <?php esc_attr_e( 'Post by Email', 'jetpack' ) ?>

        profile settings.', 'jetpack' ), esc_url( get_edit_profile_url( get_current_user_id() ) . '#post-by-email' ) ); ?>

        →

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_photon', 'jetpack_photon_more_link' ); function jetpack_photon_more_info() { ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_tiled-gallery', 'jetpack_tiled_gallery_more_link' ); function jetpack_tiled_gallery_more_info() { ?>
        <?php esc_attr_e( 'Tiled Galleries', 'jetpack' ) ?>

        Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."', 'jetpack' ), admin_url( 'options-media.php' ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_likes', 'jetpack_likes_more_link' ); function jetpack_likes_more_info() { ?>
        <?php esc_attr_e( 'Likes', 'jetpack' ) ?>

        1. Sharing in your Dashboard.', 'jetpack' ); ?>

        →

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_omnisearch', 'jetpack_omnisearch_more_link' ); function jetpack_omnisearch_more_info() { ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_widget-visibility', 'jetpack_widget_visibility_more_link' ); function jetpack_widget_visibility_more_info() { ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_videopress', 'jetpack_videopress_more_link' ); function jetpack_videopress_more_info() { ?>

        VideoPress subscription. Once you have purchased a VideoPress subscription, click here to configure VideoPress.', 'jetpack' ), 'http://store.wordpress.com/premium-upgrades/videopress/', Jetpack::admin_url( 'page=jetpack&configure=videopress' ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_sso', 'jetpack_sso_more_link' ); function jetpack_sso_more_info() { ?>

        ' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_monitor', 'jetpack_monitor_more_link' ); function jetpack_monitor_more_info() { ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_related-posts', 'jetpack_related_posts_more_button' ); function jetpack_related_posts_more_info() { $template = << %s

        %s

        → %s


        %s

        EOT; printf( $template, plugins_url( basename( dirname( dirname( __FILE__ ) ) ) . '/images/screenshots/related-posts.jpg' ), esc_attr__( 'Related Posts', 'jetpack' ), esc_html__( '"Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on).', 'jetpack' ), esc_html__( 'More information on using Related Posts.', 'jetpack' ), esc_url( Jetpack::admin_url( array( 'page' => 'jetpack-debugger' ) ) ), esc_html__( 'This feature uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, request a reindex of your posts.', 'jetpack' ) ); } add_action( 'jetpack_module_more_info_related-posts', 'jetpack_related_posts_more_info' ); /** * Markdown */ function jetpack_markdown_more_link() { echo '' . esc_html__( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_markdown', 'jetpack_markdown_more_link' ); function jetpack_markdown_more_info() { ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_verification-tools', 'jetpack_verification_tools_more_link' ); function jetpack_verification_tools_more_info() { ?>

        meta' ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_custom-content-types', 'jetpack_custom_content_types_more_link' ); function jetpack_custom_content_types_more_info() { ?>
        <?php esc_attr_e( 'Custom Content Type', 'jetpack' ) ?>

        Settings → Writing → Your Custom Content Types to activate either "Portfolio Projects†or “Testimonials†by checking the corresponding checkbox. You can now add projects and testimonials under the new "Portfolio†or “Testimonials†menu item in your sidebar.', 'jetpack' ), admin_url( 'options-writing.php#cpt-options' ) ); ?>

        shortcodes.', 'jetpack' ), get_site_url() . '/portfolio/', get_site_url() . '/testimonial/', 'http://jetpack.me/support/custom-content-types/' ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_site-icon', 'jetpack_site_icon_more_link' ); function jetpack_custom_site_icon() { ?>
        <?php esc_attr_e( 'Site Icon', 'jetpack' ) ?>

        Settings → General → Site Icon, and upload an icon.', 'jetpack' ), admin_url( 'options-general.php#site-icon' ) ); ?>

        ' . __( 'Learn More', 'jetpack' ) . ''; } add_action( 'jetpack_learn_more_button_manage', 'jetpack_manage_more_link' ); function jetpack_custom_jetpack_manage() { ?>
        <?php esc_attr_e( 'Manage all of your WordPress sites, self-hosted or not, from WordPress.com', 'jetpack' ) ?>


        wordpress.com/plugins.', 'jetpack' ), 'https://wordpress.com/plugins' ); ?>


        wordpress.com/design.', 'jetpack' ), 'https://wordpress.com/design' ); ?>


        wordpress.com/menus.', 'jetpack' ), 'https://wordpress.com/menus' ); ?>

        →

        Widgets */ add_action( 'widgets_init', 'jetpack_facebook_likebox_init' ); function jetpack_facebook_likebox_init() { register_widget( 'WPCOM_Widget_Facebook_LikeBox' ); } /** * Facebook Page Plugin (formely known as the Like Box) * Display a Facebook Page Plugin as a widget (replaces the old like box plugin) * https://developers.facebook.com/docs/plugins/page-plugin */ class WPCOM_Widget_Facebook_LikeBox extends WP_Widget { private $default_height = 580; private $default_width = 340; private $max_width = 500; private $min_width = 180; private $max_height = 9999; private $min_height = 130; function __construct() { parent::__construct( 'facebook-likebox', /** * Filter the name of a widget included in the Extra Sidebar Widgets module. * * @module widgets * * @since 2.1.2 * * @param string $widget_name Widget title. */ apply_filters( 'jetpack_widget_name', __( 'Facebook Page Plugin', 'jetpack' ) ), array( 'classname' => 'widget_facebook_likebox', 'description' => __( 'Use the Facebook Page Plugin to connect visitors to your Facebook Page', 'jetpack' ) ) ); } function widget( $args, $instance ) { extract( $args ); $like_args = $this->normalize_facebook_args( $instance['like_args'] ); wp_enqueue_style( 'jetpack_facebook_likebox', plugins_url( 'facebook-likebox/style.css', __FILE__ ) ); wp_style_add_data( 'jetpack_facebook_likebox', 'jetpack-inline', true ); if ( empty( $like_args['href'] ) || ! $this->is_valid_facebook_url( $like_args['href'] ) ) { if ( current_user_can('edit_theme_options') ) { echo $before_widget; echo '

        ' . sprintf( __( 'It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.', 'jetpack' ), admin_url( 'widgets.php' ) ) . '

        '; echo $after_widget; } echo ''; return; } /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); $page_url = set_url_scheme( $like_args['href'], 'https' ); $like_args['show_faces'] = (bool) $like_args['show_faces'] ? 'true' : 'false'; $like_args['stream'] = (bool) $like_args['stream'] ? 'true' : 'false'; $like_args['cover'] = (bool) $like_args['cover'] ? 'false' : 'true'; $locale = $this->get_locale(); /** This filter is documented in modules/sharedaddy/sharing-sources.php */ $fb_app_id = apply_filters( 'jetpack_sharing_facebook_app_id', '249643311490' ); if ( is_numeric( $fb_app_id ) ) { $fb_app_id = '&appId=' . $fb_app_id; } else { $fb_app_id = ''; } echo $before_widget; if ( ! empty( $title ) ) : echo $before_title; $likebox_widget_title = '' . esc_html( $title ) . ''; /** * Filter Facebook Likebox's widget title. * * @module widgets * * @since 3.3.0 * * @param string $likebox_widget_title Likebox Widget title (including a link to the Page URL). * @param string $title Widget title as set in the widget settings. * @param string $page_url Facebook Page URL. */ echo apply_filters( 'jetpack_facebook_likebox_title', $likebox_widget_title, $title, $page_url ); echo $after_title; endif; ?>
        '', 'like_args' => $this->get_default_args(), ); $instance['title'] = trim( strip_tags( stripslashes( $new_instance['title'] ) ) ); // Set up widget values $instance['like_args'] = array( 'href' => trim( strip_tags( stripslashes( $new_instance['href'] ) ) ), 'width' => (int) $new_instance['width'], 'height' => (int) $new_instance['height'], 'show_faces' => isset( $new_instance['show_faces'] ), 'stream' => isset( $new_instance['stream'] ), 'cover' => isset( $new_instance['cover'] ), ); $instance['like_args'] = $this->normalize_facebook_args( $instance['like_args'] ); return $instance; } function form( $instance ) { $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'like_args' => $this->get_default_args() ) ); $like_args = $this->normalize_facebook_args( $instance['like_args'] ); ?>

        '', 'width' => $this->default_width, 'height' => $this->default_height, 'show_faces' => 'true', 'stream' => '', 'cover' => 'true', ); /** * Filter Facebook Likebox default options. * * @module widgets * * @since 1.3.1 * * @param array $defaults Array of default options. */ return apply_filters( 'jetpack_facebook_likebox_defaults', $defaults ); } function normalize_facebook_args( $args ) { $args = wp_parse_args( (array) $args, $this->get_default_args() ); // Validate the Facebook Page URL if ( $this->is_valid_facebook_url( $args['href'] ) ) { $temp = explode( '?', $args['href'] ); $args['href'] = str_replace( array( 'http://facebook.com', 'https://facebook.com' ), array( 'http://www.facebook.com', 'https://www.facebook.com' ), $temp[0] ); } else { $args['href'] = ''; } $args['width'] = $this->normalize_int_value( (int) $args['width'], $this->default_width, $this->max_width, $this->min_width ); $args['height'] = $this->normalize_int_value( (int) $args['height'], $this->default_height, $this->max_height, $this->min_height ); $args['show_faces'] = (bool) $args['show_faces']; $args['stream'] = (bool) $args['stream']; $args['cover'] = (bool) $args['cover']; // The height used to be dependent on other widget settings // If the user changes those settings but doesn't customize the height, // let's intelligently assign a new height. if ( in_array( $args['height'], array( 580, 110, 432 ) ) ) { if ( $args['show_faces'] && $args['stream'] ) { $args['height'] = 580; } else if ( ! $args['show_faces'] && ! $args['stream'] ) { $args['height'] = 130; } else { $args['height'] = 432; } } return $args; } function is_valid_facebook_url( $url ) { return ( FALSE !== strpos( $url, 'facebook.com' ) ) ? TRUE : FALSE; } function normalize_int_value( $value, $default = 0, $max = 0, $min = 0 ) { $value = (int) $value; if ( $max < $value || $min > $value ) $value = $default; return (int) $value; } function normalize_text_value( $value, $default = '', $allowed = array() ) { $allowed = (array) $allowed; if ( empty( $value ) || ( ! empty( $allowed ) && ! in_array( $value, $allowed ) ) ) $value = $default; return $value; } function guess_locale_from_lang( $lang ) { if ( 'en' == $lang || 'en_US' == $lang || !$lang ) { return 'en_US'; } if ( !class_exists( 'GP_Locales' ) ) { if ( !defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) || !file_exists( JETPACK__GLOTPRESS_LOCALES_PATH ) ) { return false; } require JETPACK__GLOTPRESS_LOCALES_PATH; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { // WP.com: get_locale() returns 'it' $locale = GP_Locales::by_slug( $lang ); } else { // Jetpack: get_locale() returns 'it_IT'; $locale = GP_Locales::by_field( 'facebook_locale', $lang ); } if ( ! $locale ) { return false; } if ( empty( $locale->facebook_locale ) ) { if ( empty( $locale->wp_locale ) ) { return false; } else { // Facebook SDK is smart enough to fall back to en_US if a // locale isn't supported. Since supported Facebook locales // can fall out of sync, we'll attempt to use the known // wp_locale value and rely on said fallback. return $locale->wp_locale; } } return $locale->facebook_locale; } function get_locale() { $locale = $this->guess_locale_from_lang( get_locale() ); if ( ! $locale ) { $locale = 'en_US'; } return $locale; } } // END plugins/jetpack/modules/widgets/wordpress-post-widget.php0000644000312500031250000007520512654411246024417 0ustar eacbforgeacbforg 10 * MINUTE_IN_SECONDS, 'display' => 'Every 10 minutes' ); } return $current_schedules; } /** * Execute the cron task */ add_action( 'jetpack_display_posts_widget_cron_update', 'jetpack_display_posts_update_cron_action' ); function jetpack_display_posts_update_cron_action() { $widget = new Jetpack_Display_Posts_Widget(); $widget->cron_task(); } /** * Handle activation procedures for the cron. * * `updating_jetpack_version` - Handle cron activation when Jetpack gets updated. It's here * to cover the first cron activation after the update. * * `jetpack_activate_module_widgets` - Activate the cron when the Extra Sidebar widgets are activated. * * `activated_plugin` - Activate the cron when Jetpack gets activated. * */ add_action( 'updating_jetpack_version', 'jetpack_display_posts_widget_conditionally_activate_cron' ); add_action( 'jetpack_activate_module_widgets', 'Jetpack_Display_Posts_Widget::activate_cron' ); add_action( 'activated_plugin', 'jetpack_conditionally_activate_cron_on_plugin_activation' ); /** * Executed when Jetpack gets activated. Tries to activate the cron if it is needed. * * @param string $plugin_file_name The plugin file that was activated. */ function jetpack_conditionally_activate_cron_on_plugin_activation( $plugin_file_name ) { if ( plugin_basename( JETPACK__PLUGIN_FILE ) === $plugin_file_name ) { jetpack_display_posts_widget_conditionally_activate_cron(); } } /** * Activates the cron only when needed. * @see Jetpack_Display_Posts_Widget::should_cron_be_running */ function jetpack_display_posts_widget_conditionally_activate_cron() { $widget = new Jetpack_Display_Posts_Widget(); if ( $widget->should_cron_be_running() ) { $widget->activate_cron(); } unset( $widget ); } /** * End of cron activation handling. */ /** * Handle deactivation procedures where they are needed. * * If Extra Sidebar Widgets module is deactivated, the cron is not needed. * * If Jetpack is deactivated, the cron is not needed. */ add_action( 'jetpack_deactivate_module_widgets', 'Jetpack_Display_Posts_Widget::deactivate_cron_static' ); register_deactivation_hook( plugin_basename( JETPACK__PLUGIN_FILE ), 'Jetpack_Display_Posts_Widget::deactivate_cron_static' ); /** * End of Cron tasks */ /* * Display a list of recent posts from a WordPress.com or Jetpack-enabled blog. */ class Jetpack_Display_Posts_Widget extends WP_Widget { /** * @var string Remote service API URL prefix. */ public $service_url = 'https://public-api.wordpress.com/rest/v1.1/'; /** * @var string Widget options key prefix. */ public $widget_options_key_prefix = 'display_posts_site_data_'; /** * @var string The name of the cron that will update widget data. */ public static $cron_name = 'jetpack_display_posts_widget_cron_update'; public function __construct() { parent::__construct( // internal id 'jetpack_display_posts_widget', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', __( 'Display WordPress Posts', 'jetpack' ) ), array( 'description' => __( 'Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.', 'jetpack' ), ) ); } /** * Expiring transients have a name length maximum of 45 characters, * so this function returns an abbreviated MD5 hash to use instead of * the full URI. * * @param string $site Site to get the hash for. * * @return string */ public function get_site_hash( $site ) { return substr( md5( $site ), 0, 21 ); } /** * Fetch a remote service endpoint and parse it. * * Timeout is set to 15 seconds right now, because sometimes the WordPress API * takes more than 5 seconds to fully respond. * * Caching is used here so we can avoid re-downloading the same endpoint * in a single request. * * @param string $endpoint Parametrized endpoint to call. * * @param int $timeout How much time to wait for the API to respond before failing. * * @return array|WP_Error */ public function fetch_service_endpoint( $endpoint, $timeout = 15 ) { /** * Holds endpoint request cache. */ static $cache = array(); if ( ! isset( $cache[ $endpoint ] ) ) { $raw_data = $this->wp_wp_remote_get( $this->service_url . ltrim( $endpoint, '/' ), array( 'timeout' => $timeout ) ); $cache[ $endpoint ] = $this->parse_service_response( $raw_data ); } return $cache[ $endpoint ]; } /** * Parse data from service response. * Do basic error handling for general service and data errors * * @param array $service_response Response from the service. * * @return array|WP_Error */ public function parse_service_response( $service_response ) { /** * If there is an error, we add the error message to the parsed response */ if ( is_wp_error( $service_response ) ) { return new WP_Error( 'general_error', __( 'An error occurred fetching the remote data.', 'jetpack' ), $service_response->get_error_messages() ); } /** * Validate HTTP response code. */ if ( 200 !== wp_remote_retrieve_response_code( $service_response ) ) { return new WP_Error( 'http_error', __( 'An error occurred fetching the remote data.', 'jetpack' ), wp_remote_retrieve_response_message( $service_response ) ); } /** * Extract service response body from the request. */ $service_response_body = wp_remote_retrieve_body( $service_response ); /** * No body has been set in the response. This should be pretty bad. */ if ( ! $service_response_body ) { return new WP_Error( 'no_body', __( 'Invalid remote response.', 'jetpack' ), 'No body in response.' ); } /** * Parse the JSON response from the API. Convert to associative array. */ $parsed_data = json_decode( $service_response_body ); /** * If there is a problem with parsing the posts return an empty array. */ if ( is_null( $parsed_data ) ) { return new WP_Error( 'no_body', __( 'Invalid remote response.', 'jetpack' ), 'Invalid JSON from remote.' ); } /** * Check for errors in the parsed body. */ if ( isset( $parsed_data->error ) ) { return new WP_Error( 'remote_error', __( 'We cannot display information for this blog.', 'jetpack' ), $parsed_data->error ); } /** * No errors found, return parsed data. */ return $parsed_data; } /** * Fetch site information from the WordPress public API * * @param string $site URL of the site to fetch the information for. * * @return array|WP_Error */ public function fetch_site_info( $site ) { $response = $this->fetch_service_endpoint( sprintf( '/sites/%s', urlencode( $site ) ) ); return $response; } /** * Parse external API response from the site info call and handle errors if they occur. * * @param array|WP_Error $service_response The raw response to be parsed. * * @return array|WP_Error */ public function parse_site_info_response( $service_response ) { /** * If the service returned an error, we pass it on. */ if ( is_wp_error( $service_response ) ) { return $service_response; } /** * Check if the service returned proper site information. */ if ( ! isset( $service_response->ID ) ) { return new WP_Error( 'no_site_info', __( 'Invalid site information returned from remote.', 'jetpack' ), 'No site ID present in the response.' ); } return $service_response; } /** * Fetch list of posts from the WordPress public API. * * @param int $site_id The site to fetch the posts for. * * @return array|WP_Error */ public function fetch_posts_for_site( $site_id ) { $response = $this->fetch_service_endpoint( sprintf( '/sites/%1$d/posts/%2$s', $site_id, /** * Filters the parameters used to fetch for posts in the Display Posts Widget. * * @see https://developer.wordpress.com/docs/api/1.1/get/sites/%24site/posts/ * * @module widgets * * @since 3.6.0 * * @param string $args Extra parameters to filter posts returned from the WordPress.com REST API. */ apply_filters( 'jetpack_display_posts_widget_posts_params', '' ) ) ); return $response; } /** * Parse external API response from the posts list request and handle errors if any occur. * * @param object|WP_Error $service_response The raw response to be parsed. * * @return array|WP_Error */ public function parse_posts_response( $service_response ) { /** * If the service returned an error, we pass it on. */ if ( is_wp_error( $service_response ) ) { return $service_response; } /** * Check if the service returned proper posts array. */ if ( ! isset( $service_response->posts ) || ! is_array( $service_response->posts ) ) { return new WP_Error( 'no_posts', __( 'No posts data returned by remote.', 'jetpack' ), 'No posts information set in the returned data.' ); } /** * Format the posts to preserve storage space. */ return $this->format_posts_for_storage( $service_response ); } /** * Format the posts for better storage. Drop all the data that is not used. * * @param object $parsed_data Array of posts returned by the APIs. * * @return array Formatted posts or an empty array if no posts were found. */ public function format_posts_for_storage( $parsed_data ) { $formatted_posts = array(); /** * Only go through the posts list if we have valid posts array. */ if ( isset( $parsed_data->posts ) && is_array( $parsed_data->posts ) ) { /** * Loop through all the posts and format them appropriately. */ foreach ( $parsed_data->posts as $single_post ) { $prepared_post = array( 'title' => $single_post->title ? $single_post->title : '', 'excerpt' => $single_post->excerpt ? $single_post->excerpt : '', 'featured_image' => $single_post->featured_image ? $single_post->featured_image : '', 'url' => $single_post->URL, ); /** * Append the formatted post to the results. */ $formatted_posts[] = $prepared_post; } } return $formatted_posts; } /** * Fetch site information and posts list for a site. * * @param string $site Site to fetch the data for. * @param array $original_data Optional original data to updated. * * @param bool $site_data_only Fetch only site information, skip posts list. * * @return array Updated or new data. */ public function fetch_blog_data( $site, $original_data = array(), $site_data_only = false ) { /** * If no optional data is supplied, initialize a new structure */ if ( ! empty( $original_data ) ) { $widget_data = $original_data; } else { $widget_data = array( 'site_info' => array( 'last_check' => null, 'last_update' => null, 'error' => null, 'data' => array(), ), 'posts' => array( 'last_check' => null, 'last_update' => null, 'error' => null, 'data' => array(), ) ); } /** * Update check time and fetch site information. */ $widget_data['site_info']['last_check'] = time(); $site_info_raw_data = $this->fetch_site_info( $site ); $site_info_parsed_data = $this->parse_site_info_response( $site_info_raw_data ); /** * If there is an error with the fetched site info, save the error and update the checked time. */ if ( is_wp_error( $site_info_parsed_data ) ) { $widget_data['site_info']['error'] = $site_info_parsed_data; return $widget_data; } /** * If data is fetched successfully, update the data and set the proper time. * * Data is only updated if we have valid results. This is done this way so we can show * something if external service is down. * */ else { $widget_data['site_info']['last_update'] = time(); $widget_data['site_info']['data'] = $site_info_parsed_data; $widget_data['site_info']['error'] = null; } /** * If only site data is needed, return it here, don't fetch posts data. */ if ( true === $site_data_only ) { return $widget_data; } /** * Update check time and fetch posts list. */ $widget_data['posts']['last_check'] = time(); $site_posts_raw_data = $this->fetch_posts_for_site( $site_info_parsed_data->ID ); $site_posts_parsed_data = $this->parse_posts_response( $site_posts_raw_data ); /** * If there is an error with the fetched posts, save the error and update the checked time. */ if ( is_wp_error( $site_posts_parsed_data ) ) { $widget_data['posts']['error'] = $site_posts_parsed_data; return $widget_data; } /** * If data is fetched successfully, update the data and set the proper time. * * Data is only updated if we have valid results. This is done this way so we can show * something if external service is down. * */ else { $widget_data['posts']['last_update'] = time(); $widget_data['posts']['data'] = $site_posts_parsed_data; $widget_data['posts']['error'] = null; } return $widget_data; } /** * Gets blog data from the cache. * * @param string $site * * @return array|WP_Error */ public function get_blog_data( $site ) { // load from cache, if nothing return an error $site_hash = $this->get_site_hash( $site ); $cached_data = $this->wp_get_option( $this->widget_options_key_prefix . $site_hash ); /** * If the cache is empty, return an empty_cache error. */ if ( false === $cached_data ) { return new WP_Error( 'empty_cache', __( 'Information about this blog is currently being retrieved.', 'jetpack' ) ); } return $cached_data; } /** * Activates widget update cron task. */ public static function activate_cron() { if ( ! wp_next_scheduled( self::$cron_name ) ) { wp_schedule_event( time(), 'minutes_10', self::$cron_name ); } } /** * Deactivates widget update cron task. * * This is a wrapper over the static method as it provides some syntactic sugar. */ public function deactivate_cron() { self::deactivate_cron_static(); } /** * Deactivates widget update cron task. */ public static function deactivate_cron_static() { $next_scheduled_time = wp_next_scheduled( self::$cron_name ); wp_unschedule_event( $next_scheduled_time, self::$cron_name ); } /** * Checks if the update cron should be running and returns appropriate result. * * @return bool If the cron should be running or not. */ public function should_cron_be_running() { /** * The cron doesn't need to run empty loops. */ $widget_instances = $this->get_instances_sites(); if ( empty( $widget_instances ) || ! is_array( $widget_instances ) ) { return false; } /** * If Jetpack is not active or in development mode, we don't want to update widget data. */ if ( ! Jetpack::is_active() && ! Jetpack::is_development_mode() ) { return false; } /** * If Extra Sidebar Widgets module is not active, we don't need to update widget data. */ if ( ! Jetpack::is_module_active( 'widgets' ) ) { return false; } /** * If none of the above checks failed, then we definitely want to update widget data. */ return true; } /** * Main cron code. Updates all instances of the widget. * * @return bool */ public function cron_task() { /** * If the cron should not be running, disable it. */ if ( false === $this->should_cron_be_running() ) { return true; } $instances_to_update = $this->get_instances_sites(); /** * If no instances are found to be updated - stop. */ if ( empty( $instances_to_update ) || ! is_array( $instances_to_update ) ) { return true; } foreach ( $instances_to_update as $site_url ) { $this->update_instance( $site_url ); } return true; } /** * Get a list of unique sites from all instances of the widget. * * @return array|bool */ public function get_instances_sites() { $widget_settings = $this->wp_get_option( 'widget_jetpack_display_posts_widget' ); /** * If the widget still hasn't been added anywhere, the config will not be present. * * In such case we don't want to continue execution. */ if ( false === $widget_settings || ! is_array( $widget_settings ) ) { return false; } $urls = array(); foreach ( $widget_settings as $widget_instance_data ) { if ( isset( $widget_instance_data['url'] ) && ! empty( $widget_instance_data['url'] ) ) { $urls[] = $widget_instance_data['url']; } } /** * Make sure only unique URLs are returned. */ $urls = array_unique( $urls ); return $urls; } /** * Update a widget instance. * * @param string $site The site to fetch the latest data for. */ public function update_instance( $site ) { /** * Fetch current information for a site. */ $site_hash = $this->get_site_hash( $site ); $option_key = $this->widget_options_key_prefix . $site_hash; $instance_data = $this->wp_get_option( $option_key ); /** * Fetch blog data and save it in $instance_data. */ $new_data = $this->fetch_blog_data( $site, $instance_data ); /** * If the option doesn't exist yet - create a new option */ if ( false === $instance_data ) { $this->wp_add_option( $option_key, $new_data ); } else { $this->wp_update_option( $option_key, $new_data ); } } /** * Set up the widget display on the front end. * * @param array $args * @param array $instance */ public function widget( $args, $instance ) { /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); wp_enqueue_style( 'jetpack_display_posts_widget', plugins_url( 'wordpress-post-widget/style.css', __FILE__ ) ); echo $args['before_widget']; $data = $this->get_blog_data( $instance['url'] ); // check for errors if ( is_wp_error( $data ) || empty( $data['site_info']['data'] ) ) { echo '

        ' . __( 'Cannot load blog information at this time.', 'jetpack' ) . '

        '; echo $args['after_widget']; return; } $site_info = $data['site_info']['data']; if ( ! empty( $title ) ) { echo $args['before_title'] . esc_html( $title . ': ' . $site_info->name ) . $args['after_title']; } else { echo $args['before_title'] . esc_html( $site_info->name ) . $args['after_title']; } echo '
        '; if ( is_wp_error( $data['posts']['data'] ) || empty( $data['posts']['data'] ) ) { echo '

        ' . __( 'Cannot load blog posts at this time.', 'jetpack' ) . '

        '; echo '
        '; echo $args['after_widget']; return; } $posts_list = $data['posts']['data']; /** * Show only as much posts as we need. If we have less than configured amount, * we must show only that much posts. */ $number_of_posts = min( $instance['number_of_posts'], count( $posts_list ) ); for ( $i = 0; $i < $number_of_posts; $i ++ ) { $single_post = $posts_list[ $i ]; $post_title = ( $single_post['title'] ) ? $single_post['title'] : '( No Title )'; $target = ''; if ( isset( $instance['open_in_new_window'] ) && $instance['open_in_new_window'] == true ) { $target = ' target="_blank"'; } echo '

        ' . esc_html( $post_title ) . '

        ' . "\n"; if ( ( $instance['featured_image'] == true ) && ( ! empty ( $single_post['featured_image'] ) ) ) { $featured_image = $single_post['featured_image']; /** * Allows setting up custom Photon parameters to manipulate the image output in the Display Posts widget. * * @see https://developer.wordpress.com/docs/photon/ * * @module widgets * * @since 3.6.0 * * @param array $args Array of Photon Parameters. */ $image_params = apply_filters( 'jetpack_display_posts_widget_image_params', array() ); echo '' . esc_attr( $post_title ) . ''; } if ( $instance['show_excerpts'] == true ) { echo $single_post['excerpt']; } } echo ''; echo $args['after_widget']; } /** * Scan and extract first error from blog data array. * * @param array|WP_Error $blog_data Blog data to scan for errors. * * @return string First error message found */ public function extract_errors_from_blog_data( $blog_data ) { $errors = array( 'message' => '', 'debug' => '', 'where' => '', ); /** * When the cache result is an error. Usually when the cache is empty. * This is not an error case for now. */ if ( is_wp_error( $blog_data ) ) { return $errors; } /** * Loop through `site_info` and `posts` keys of $blog_data. */ foreach ( array( 'site_info', 'posts' ) as $info_key ) { /** * Contains information on which stage the error ocurred. */ $errors['where'] = $info_key; /** * If an error is set, we want to check it for usable messages. */ if ( isset( $blog_data[ $info_key ]['error'] ) && ! empty( $blog_data[ $info_key ]['error'] ) ) { /** * Extract error message from the error, if possible. */ if ( is_wp_error( $blog_data[ $info_key ]['error'] ) ) { /** * In the case of WP_Error we want to have the error message * and the debug information available. */ $error_messages = $blog_data[ $info_key ]['error']->get_error_messages(); $errors['message'] = reset( $error_messages ); $extra_data = $blog_data[ $info_key ]['error']->get_error_data(); if ( is_array( $extra_data ) ) { $errors['debug'] = implode( '; ', $extra_data ); } else { $errors['debug'] = $extra_data; } break; } elseif ( is_array( $blog_data[ $info_key ]['error'] ) ) { /** * In this case we don't have debug information, because * we have no way to know the format. The widget works with * WP_Error objects only. */ $errors['message'] = reset( $blog_data[ $info_key ]['error'] ); break; } /** * We do nothing if no usable error is found. */ } } return $errors; } /** * Display the widget administration form. * * @param array $instance Widget instance configuration. * * @return string|void */ public function form( $instance ) { /** * Initialize widget configuration variables. */ $title = ( isset( $instance['title'] ) ) ? $instance['title'] : __( 'Recent Posts', 'jetpack' ); $url = ( isset( $instance['url'] ) ) ? $instance['url'] : ''; $number_of_posts = ( isset( $instance['number_of_posts'] ) ) ? $instance['number_of_posts'] : 5; $open_in_new_window = ( isset( $instance['open_in_new_window'] ) ) ? $instance['open_in_new_window'] : false; $featured_image = ( isset( $instance['featured_image'] ) ) ? $instance['featured_image'] : false; $show_excerpts = ( isset( $instance['show_excerpts'] ) ) ? $instance['show_excerpts'] : false; /** * Check if the widget instance has errors available. * * Only do so if a URL is set. */ $update_errors = array(); if ( ! empty( $url ) ) { $data = $this->get_blog_data( $url ); $update_errors = $this->extract_errors_from_blog_data( $data ); } ?>


        />

        />

        />

        :


        :

        fetch_blog_data( $instance['url'], array(), true ); if ( is_wp_error( $blog_data['site_info']['error'] ) && 'www.' === substr( $instance['url'], 0, 4 ) ) { $blog_data = $this->fetch_blog_data( substr( $instance['url'], 4 ), array(), true ); if ( ! is_wp_error( $blog_data['site_info']['error'] ) ) { $instance['url'] = substr( $instance['url'], 4 ); } } } $instance['number_of_posts'] = ( ! empty( $new_instance['number_of_posts'] ) ) ? intval( $new_instance['number_of_posts'] ) : ''; $instance['open_in_new_window'] = ( ! empty( $new_instance['open_in_new_window'] ) ) ? true : ''; $instance['featured_image'] = ( ! empty( $new_instance['featured_image'] ) ) ? true : ''; $instance['show_excerpts'] = ( ! empty( $new_instance['show_excerpts'] ) ) ? true : ''; /** * Forcefully activate the update cron when saving widget instance. * * So we can be sure that it will be running later. */ $this->activate_cron(); /** * If there is no cache entry for the specified URL, run a forced update. * * @see get_blog_data Returns WP_Error if the cache is empty, which is what is needed here. */ $cached_data = $this->get_blog_data( $instance['url'] ); if ( is_wp_error( $cached_data ) ) { $this->update_instance( $instance['url'] ); } return $instance; } /** * This is just to make method mocks in the unit tests easier. * * @param string $param Option key to get * * @return mixed * * @codeCoverageIgnore */ public function wp_get_option( $param ) { return get_option( $param ); } /** * This is just to make method mocks in the unit tests easier. * * @param string $option_name Option name to be added * @param mixed $option_value Option value * * @return mixed * * @codeCoverageIgnore */ public function wp_add_option( $option_name, $option_value ) { return add_option( $option_name, $option_value ); } /** * This is just to make method mocks in the unit tests easier. * * @param string $option_name Option name to be updated * @param mixed $option_value Option value * * @return mixed * * @codeCoverageIgnore */ public function wp_update_option( $option_name, $option_value ) { return update_option( $option_name, $option_value ); } /** * This is just to make method mocks in the unit tests easier. * * @param string $url The URL to fetch * @param array $args Optional. Request arguments. * * @return array|WP_Error * * @codeCoverageIgnore */ public function wp_wp_remote_get( $url, $args = array() ) { return wp_remote_get( $url, $args ); } }plugins/jetpack/modules/widgets/gravatar-profile.css0000644000312500031250000000232112651056012023347 0ustar eacbforgeacbforg.widget-grofile { } .widget-grofile h4 { margin: 1em 0 .5em; } .widget-grofile ul.grofile-urls { margin-left: 0; overflow: hidden; } .widget-grofile ul.grofile-accounts li { list-style: none; display: inline; } .widget-grofile ul.grofile-accounts li::before { content: "" !important; /* Kubrick :( */ } .widget-grofile .grofile-accounts-logo { background-image: url('//0.gravatar.com/images/grav-share-sprite.png'); background-repeat: no-repeat; /*background-position: -16px -16px;*/ width: 16px; /* So we don't show the topmost logo */ height: 16px; /* So we don't show the topmost logo */ float: left; margin-right: 8px; margin-bottom: 8px; } .rtl .widget-grofile .grofile-accounts-logo { margin-left: 8px; margin-right: 0; } .grofile-thumbnail { width: 500px; max-width: 100%; } @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5) { .widget-grofile .grofile-accounts-logo { background-image: url('//0.gravatar.com/images/grav-share-sprite-2x.png'); background-size: 16px 784px; } } plugins/jetpack/modules/widgets/image-widget.php0000644000312500031250000002451012654410417022456 0ustar eacbforgeacbforg Widgets */ add_action( 'widgets_init', 'jetpack_image_widget_init' ); function jetpack_image_widget_init() { register_widget( 'Jetpack_Image_Widget' ); } class Jetpack_Image_Widget extends WP_Widget { /** * Register widget with WordPress. */ public function __construct() { parent::__construct( 'image', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', esc_html__( 'Image', 'jetpack' ) ), array( 'classname' => 'widget_image', 'description' => __( 'Display an image in your sidebar', 'jetpack' ) ) ); if ( is_active_widget( false, false, $this->id_base ) || is_active_widget( false, false, 'monster' ) ) { add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) ); } } /** * Loads file for front-end widget style. * * @uses wp_enqueue_style(), plugins_url() */ public function enqueue_style() { wp_enqueue_style( 'jetpack_image_widget', plugins_url( 'image-widget/style.css', __FILE__ ), array(), '20140808' ); } /** * Front-end display of widget. * * @see WP_Widget::widget() * * @param array $args Widget arguments. * @param array $instance Saved values from database. */ public function widget( $args, $instance ) { echo $args['before_widget']; $instance = wp_parse_args( $instance, array( 'title' => '', 'img_url' => '' ) ); /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); if ( $title ) { echo $args['before_title'] . esc_html( $title ) . $args['after_title']; } if ( '' != $instance['img_url'] ) { $output = '' . $output . ''; } if ( '' != $instance['link'] && empty( $instance['link_target_blank'] ) ) { $output = '' . $output . ''; } if ( '' != $instance['caption'] ) { /** This filter is documented in core/src/wp-includes/default-widgets.php */ $caption = apply_filters( 'widget_text', $instance['caption'] ); $img_width = ( ! empty( $instance['img_width'] ) ? 'style="width: ' . esc_attr( $instance['img_width'] ) .'px"' : '' ); $output = '
        ' . $output . '
        ' . $caption . '
        '; // wp_kses_post caption on update } echo '
        ' . do_shortcode( $output ) . '
        '; } echo "\n" . $args['after_widget']; } /** * Sanitize widget form values as they are saved. * * @see WP_Widget::update() * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $allowed_caption_html = array( 'a' => array( 'href' => array(), 'title' => array(), ), 'b' => array(), 'em' => array(), 'i' => array(), 'p' => array(), 'strong' => array() ); $instance = $old_instance; $instance['title'] = strip_tags( $new_instance['title'] ); $instance['img_url'] = esc_url( $new_instance['img_url'], null, 'display' ); $instance['alt_text'] = strip_tags( $new_instance['alt_text'] ); $instance['img_title'] = strip_tags( $new_instance['img_title'] ); $instance['caption'] = wp_kses( stripslashes($new_instance['caption'] ), $allowed_caption_html ); $instance['align'] = $new_instance['align']; $instance['img_width'] = absint( $new_instance['img_width'] ); $instance['img_height'] = absint( $new_instance['img_height'] ); $instance['link'] = esc_url( $new_instance['link'], null, 'display' ); $instance['link_target_blank'] = isset( $new_instance['link_target_blank'] ) ? (bool) $new_instance['link_target_blank'] : false; return $instance; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. */ public function form( $instance ) { // Defaults $instance = wp_parse_args( (array) $instance, array( 'title' => '', 'img_url' => '', 'alt_text' => '', 'img_title' => '', 'caption' => '', 'align' => 'none', 'img_width' => '', 'img_height' => '', 'link' => '', 'link_target_blank' => false ) ); $title = esc_attr( $instance['title'] ); $img_url = esc_url( $instance['img_url'], null, 'display' ); $alt_text = esc_attr( $instance['alt_text'] ); $img_title = esc_attr( $instance['img_title'] ); $caption = esc_textarea( $instance['caption'] ); $align = esc_attr( $instance['align'] ); $img_width = esc_attr( $instance['img_width'] ); $img_height = esc_attr( $instance['img_height'] ); $link_target_blank = checked( $instance['link_target_blank'], true, false ); if ( !empty( $instance['img_url'] ) ) { // Download the url to a local temp file and then process it with getimagesize so we can optimize browser layout $tmp_file = download_url( $instance['img_url'], 10 ); if ( ! is_wp_error( $tmp_file ) ) { $size = getimagesize( $tmp_file ); if ( '' == $instance['img_width'] ) { $width = $size[0]; $img_width = $width; } else { $img_width = absint( $instance['img_width'] ); } if ( '' == $instance['img_height'] ) { $height = $size[1]; $img_height = $height; } else { $img_height = absint( $instance['img_height'] ); } unlink( $tmp_file ); } } $link = esc_url( $instance['link'], null, 'display' ); echo '

        '; $alignments = array( 'none' => __( 'None', 'jetpack' ), 'left' => __( 'Left', 'jetpack' ), 'center' => __( 'Center', 'jetpack' ), 'right' => __( 'Right', 'jetpack' ), ); echo '

        '; echo '


        ' . esc_html__( "If empty, we will attempt to determine the image size.", 'jetpack' ) . '

        '; } } // Class Jetpack_Image_Widget plugins/jetpack/modules/widgets/goodreads.php0000644000312500031250000001402512654410417022062 0ustar eacbforgeacbforg Widgets */ add_action( 'widgets_init', 'jetpack_goodreads_widget_init' ); function jetpack_goodreads_widget_init() { register_widget( 'WPCOM_Widget_Goodreads' ); } /** * Goodreads widget class * Display a user's Goodreads shelf. * Customize user_id, title, and shelf * */ class WPCOM_Widget_Goodreads extends WP_Widget { private $goodreads_widget_id = 0; function __construct() { parent::__construct( 'wpcom-goodreads', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', __( 'Goodreads', 'jetpack' ) ), array( 'classname' => 'widget_goodreads', 'description' => __( 'Display your books from Goodreads', 'jetpack' ) ) ); // For user input sanitization and display $this->shelves = array( 'read' => _x( 'Read', 'past participle: books I have read', 'jetpack' ), 'currently-reading' => __( 'Currently Reading', 'jetpack' ), 'to-read' => _x( 'To Read', 'my list of books to read', 'jetpack' ) ); if ( is_active_widget( '', '', 'wpcom-goodreads' ) ) { add_action( 'wp_print_styles', array( $this, 'enqueue_style' ) ); } } function enqueue_style() { if ( is_rtl() ) { wp_enqueue_style( 'goodreads-widget', plugins_url( 'goodreads/css/rtl/goodreads-rtl.css', __FILE__ ) ); } else { wp_enqueue_style( 'goodreads-widget', plugins_url( 'goodreads/css/goodreads.css', __FILE__ ) ); } } function widget( $args, $instance ) { /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); if ( empty( $instance['user_id'] ) || 'invalid' === $instance['user_id'] ) { if ( current_user_can('edit_theme_options') ) { echo $args['before_widget']; echo '

        ' . sprintf( __( 'You need to enter your numeric user ID for the Goodreads Widget to work correctly. Full instructions.', 'jetpack' ), esc_url( admin_url( 'widgets.php' ) ), 'http://support.wordpress.com/widgets/goodreads-widget/#goodreads-user-id' ) . '

        '; echo $args['after_widget']; } return; } if ( !array_key_exists( $instance['shelf'], $this->shelves ) ) return; $instance['user_id'] = absint( $instance['user_id'] ); // Set widget ID based on shelf. $this->goodreads_widget_id = $instance['user_id'] . '_' . $instance['shelf']; if ( empty( $title ) ) $title = esc_html__( 'Goodreads', 'jetpack' ); echo $args['before_widget']; echo $args['before_title'] . $title . $args['after_title']; $goodreads_url = 'https://www.goodreads.com/review/custom_widget/' . urlencode( $instance['user_id'] ) . '.' . urlencode( $instance['title'] ) . ':%20' . urlencode( $instance['shelf'] ) . '?cover_position=&cover_size=small&num_books=5&order=d&shelf=' . urlencode( $instance['shelf'] ) . '&sort=date_added&widget_bg_transparent=&widget_id=' . esc_attr( $this->goodreads_widget_id ) ; echo '
        ' . "\n"; echo '' . "\n"; echo $args['after_widget']; /** This action is already documented in modules/widgets/gravatar-profile.php */ do_action( 'jetpack_stats_extra', 'widget', 'goodreads' ); } function goodreads_user_id_exists( $user_id ) { $url = "http://www.goodreads.com/user/show/$user_id/"; $response = wp_remote_head( $url, array( 'httpversion'=>'1.1', 'timeout'=>3, 'redirection'=> 2 ) ); if ( wp_remote_retrieve_response_code( $response ) === 200 ) return true; else return false; } function update( $new_instance, $old_instance ) { $instance = $old_instance; $instance['user_id'] = trim( wp_kses( stripslashes( $new_instance['user_id'] ), array() ) ); if ( ! empty( $instance['user_id'] ) && ( ! isset( $old_instance['user_id'] ) || $instance['user_id'] !== $old_instance['user_id'] ) ) { if ( ! $this->goodreads_user_id_exists( $instance['user_id'] ) ) { $instance['user_id'] = 'invalid'; } } $instance['title'] = wp_kses( stripslashes( $new_instance['title'] ), array() ); $shelf = wp_kses( stripslashes( $new_instance['shelf'] ), array() ); if ( array_key_exists( $shelf, $this->shelves ) ) $instance['shelf'] = $shelf; return $instance; } function form( $instance ) { //Defaults $instance = wp_parse_args( (array) $instance, array( 'user_id' => '', 'title' => 'Goodreads', 'shelf' => 'read' ) ); echo '

        '; } } plugins/jetpack/modules/widgets/gallery/0000755000312500031250000000000012651056012021031 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/gallery/js/0000755000312500031250000000000012654411246021454 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/gallery/js/admin.js0000644000312500031250000001453212654411246023107 0ustar eacbforgeacbforg/* jshint onevar: false, multistr: true */ /* global _wpMediaViewsL10n, _wpGalleryWidgetAdminSettings */ (function($){ var $ids; var $thumbs; $(function(){ $( document.body ) .on( 'click', '.gallery-widget-choose-images', function( event ) { event.preventDefault(); var widget_form = $( this ).closest( 'form, .form' ); $ids = widget_form.find( '.gallery-widget-ids' ); $thumbs = widget_form.find( '.gallery-widget-thumbs' ); var idsString = $ids.val(); var attachments = getAttachments( idsString ); var selection = null; var editing = false; if ( attachments ) { selection = getSelection( attachments ); editing = true; } var options = { state: 'gallery-edit', title: wp.media.view.l10n.addMedia, multiple: true, editing: editing, selection: selection }; var workflow = getWorkflow( options ); workflow.open(); }); // Setup an onchange handler to toggle various options when changing style. The different style options // require different form inputs to be presented in the widget; this event will keep the UI in sync // with the selected style $( '.widget-inside' ).on( 'change', '.gallery-widget-style', setupStyleOptions); // Setup the Link To options for all forms currently on the page. Does the same as the onChange handler, but // is called once to display the correct form inputs for each widget on the page setupStyleOptions(); }); var media = wp.media, l10n; // Link any localized strings. l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n; /** * wp.media.view.MediaFrame.GalleryWidget * * This behavior can be very nearly had by setting the workflow's state to 'gallery-edit', but * we cannot use the custom WidgetGalleryEdit controller with it (must overide createStates(), * which is necessary to disable the sidebar gallery settings in the media browser) */ media.view.MediaFrame.GalleryWidget = media.view.MediaFrame.Post.extend({ createStates: function() { var options = this.options; // `CollectionEdit` and `CollectionAdd` were only introduced in r27214-core, // so they may not be available yet. if ( 'CollectionEdit' in media.controller ) { this.states.add([ new media.controller.CollectionEdit({ type: 'image', collectionType: 'gallery', title: l10n.editGalleryTitle, SettingsView: media.view.Settings.Gallery, library: options.selection, editing: options.editing, menu: 'gallery' }), new media.controller.CollectionAdd({ type: 'image', collectionType: 'gallery', title: l10n.addToGalleryTitle }) ]); } else { // If `CollectionEdit` is not available, then use the old approach. if ( ! ( 'WidgetGalleryEdit' in media.controller ) ) { // Remove the gallery settings sidebar when editing widgets. media.controller.WidgetGalleryEdit = media.controller.GalleryEdit.extend({ gallerySettings: function( /*browser*/ ) { return; } }); } this.states.add([ new media.controller.WidgetGalleryEdit({ library: options.selection, editing: options.editing, menu: 'gallery' }), new media.controller.GalleryAdd({ }) ]); } } }); function setupStyleOptions(){ $( '.widget-inside .gallery-widget-style' ).each( function( /*i*/ ){ var style = $( this ).val(); var form = $( this ).parents( 'form' ); switch ( style ) { case 'slideshow': form.find( '.gallery-widget-link-wrapper' ).hide(); form.find( '.gallery-widget-columns-wrapper' ).hide(); break; default: form.find( '.gallery-widget-link-wrapper' ).show(); form.find( '.gallery-widget-columns-wrapper' ).show(); } }); } /** * Take a given Selection of attachments and a thumbs wrapper div (jQuery object) * and fill it with thumbnails */ function setupThumbs( selection, wrapper ){ wrapper.empty(); var imageSize = _wpGalleryWidgetAdminSettings.thumbSize; selection.each( function( model ){ var sizedUrl = model.get('url') + '?w=' + imageSize + '&h=' + imageSize + '&crop=true'; var thumb = jQuery('', { 'src' : sizedUrl, 'alt': model.get('title'), 'title': model.get('title'), 'width': imageSize, 'height': imageSize, 'class': 'thumb' }); wrapper.append( thumb ); }); } /** * Take a csv string of ids (as stored in db) and fetch a full Attachments collection */ function getAttachments( idsString ) { if ( ! idsString ) { return null; } // Found in /wp-includes/js/media-editor.js var shortcode = wp.shortcode.next( 'gallery', '[gallery ids="' + idsString + '"]' ); // Ignore the rest of the match object, to give attachments() below what it expects shortcode = shortcode.shortcode; var attachments = wp.media.gallery.attachments( shortcode ); return attachments; } /** * Take an Attachments collection and return a corresponding Selection model that can be * passed to a MediaFrame to prepopulate the gallery picker */ function getSelection( attachments ) { var selection = new wp.media.model.Selection( attachments.models, { props: attachments.props.toJSON(), multiple: true }); selection.gallery = attachments.gallery; // Fetch the query's attachments, and then break ties from the // query to allow for sorting. selection.more().done( function() { // Break ties with the query. selection.props.set( { query: false } ); selection.unmirror(); selection.props.unset( 'orderby' ); }); return selection; } /** * Create a media 'workflow' (MediaFrame). This is the main entry point for the media picker */ function getWorkflow( options ) { var workflow = new wp.media.view.MediaFrame.GalleryWidget( options ); workflow.on( 'update', function( selection ) { var state = workflow.state(); selection = selection || state.get( 'selection' ); if ( ! selection ) { return; } // Map the Models down into a simple array of ids that can be easily imploded to a csv string var ids = selection.map( function( model ){ return model.get( 'id' ); } ); var id_string = ids.join( ',' ); $ids.val( id_string ).trigger( 'change' ); setupThumbs( selection, $thumbs ); }, this ); workflow.setState( workflow.options.state ); return workflow; } })(jQuery); plugins/jetpack/modules/widgets/gallery/js/gallery.js0000644000312500031250000000067012651056012023445 0ustar eacbforgeacbforg(function($){ $(function(){ // Fixes a bug with carousels being triggered even when a widget's Link To option is not set to carousel. // Happens when another gallery is loaded on the page, either in a post or separate widget $( '.widget-gallery .no-carousel .tiled-gallery-item a' ).on( 'click', function( event ){ // Have to trigger default, instead of carousel event.stopPropagation(); return true; }); }); })(jQuery);plugins/jetpack/modules/widgets/gallery/css/0000755000312500031250000000000012651056012021621 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/gallery/css/admin-rtl.min.css0000644000312500031250000000024412651056012025004 0ustar eacbforgeacbforg.gallery-widget-thumbs-wrapper{margin:-5px 0 .3em}.gallery-widget-thumbs img{border:1px solid #ccc;padding:2px;background-color:#fff;margin:0 0 5px 5px;float:right}plugins/jetpack/modules/widgets/gallery/css/rtl/0000755000312500031250000000000012651056012022422 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/gallery/css/rtl/admin-rtl.css0000644000312500031250000000040612651056012025023 0ustar eacbforgeacbforg/* This file was automatically generated on Mar 22 2013 21:33:14 */ .gallery-widget-thumbs-wrapper { margin: -5px 0 0.3em 0; } .gallery-widget-thumbs img { border: 1px solid #ccc; padding: 2px; background-color: #fff; margin: 0 0 5px 5px; float: right; }plugins/jetpack/modules/widgets/gallery/css/admin.min.css0000644000312500031250000000024312651056012024204 0ustar eacbforgeacbforg.gallery-widget-thumbs-wrapper{margin:-5px 0 .3em}.gallery-widget-thumbs img{border:1px solid #ccc;padding:2px;background-color:#fff;margin:0 5px 5px 0;float:left}plugins/jetpack/modules/widgets/gallery/css/admin.css0000644000312500031250000000030012651056012023414 0ustar eacbforgeacbforg.gallery-widget-thumbs-wrapper { margin: -5px 0 0.3em 0; } .gallery-widget-thumbs img { border: 1px solid #ccc; padding: 2px; background-color: #fff; margin: 0 5px 5px 0; float: left; }plugins/jetpack/modules/widgets/gallery/css/admin-rtl.css0000644000312500031250000000030112651056012024214 0ustar eacbforgeacbforg.gallery-widget-thumbs-wrapper { margin: -5px 0 0.3em 0; } .gallery-widget-thumbs img { border: 1px solid #ccc; padding: 2px; background-color: #fff; margin: 0 0 5px 5px; float: right; }plugins/jetpack/modules/widgets/gallery/templates/0000755000312500031250000000000012654410417023035 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/gallery/templates/form.php0000644000312500031250000000620712654410417024516 0ustar eacbforgeacbforg

        get_attachments( $instance ); foreach( $attachments as $attachment ){ $url = add_query_arg( array( 'w' => self::THUMB_SIZE, 'h' => self::THUMB_SIZE, 'crop' => 'true' ), wp_get_attachment_url( $attachment->ID ) ); ?> <?php echo esc_attr( $attachment->post_title ); ?>

        >

        plugins/jetpack/modules/widgets/top-posts.php0000644000312500031250000003460012654410417022064 0ustar eacbforgeacbforg Widgets */ add_action( 'widgets_init', 'jetpack_top_posts_widget_init' ); function jetpack_top_posts_widget_init() { // Currently, this widget depends on the Stats Module if ( ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) && ! function_exists( 'stats_get_csv' ) ) { return; } register_widget( 'Jetpack_Top_Posts_Widget' ); } class Jetpack_Top_Posts_Widget extends WP_Widget { public $alt_option_name = 'widget_stats_topposts'; public $default_title = ''; function __construct() { parent::__construct( 'top-posts', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', __( 'Top Posts & Pages', 'jetpack' ) ), array( 'description' => __( 'Shows your most viewed posts and pages.', 'jetpack' ), ) ); $this->default_title = __( 'Top Posts & Pages', 'jetpack' ); if ( is_active_widget( false, false, $this->id_base ) ) { add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) ); } } function enqueue_style() { wp_register_style( 'jetpack-top-posts-widget', plugins_url( 'top-posts/style.css', __FILE__ ), array(), '20141013' ); wp_enqueue_style( 'jetpack-top-posts-widget' ); } function form( $instance ) { $title = isset( $instance['title' ] ) ? $instance['title'] : false; if ( false === $title ) { $title = $this->default_title; } $count = isset( $instance['count'] ) ? (int) $instance['count'] : 10; if ( $count < 1 || 10 < $count ) { $count = 10; } $allowed_post_types = array_values( get_post_types( array( 'public' => true ) ) ); $types = isset( $instance['types'] ) ? (array) $instance['types'] : array( 'post', 'page' ); if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) { $display = $instance['display']; } else { $display = 'text'; } ?>

          labels->name; $checked = ''; if ( in_array( $type, $types ) ) { $checked = 'checked="checked" '; } ?>

        default_title ) { $instance['title'] = false; // Store as false in case of language change } $instance['count'] = (int) $new_instance['count']; if ( $instance['count'] < 1 || 10 < $instance['count'] ) { $instance['count'] = 10; } $allowed_post_types = array_values( get_post_types( array( 'public' => true ) ) ); $instance['types'] = $new_instance['types']; foreach( $new_instance['types'] as $key => $type ) { if ( ! in_array( $type, $allowed_post_types ) ) { unset( $new_instance['types'][ $key ] ); } } if ( isset( $new_instance['display'] ) && in_array( $new_instance['display'], array( 'grid', 'list', 'text' ) ) ) { $instance['display'] = $new_instance['display']; } else { $instance['display'] = 'text'; } return $instance; } function widget( $args, $instance ) { $title = isset( $instance['title' ] ) ? $instance['title'] : false; if ( false === $title ) { $title = $this->default_title; } /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $title ); $count = isset( $instance['count'] ) ? (int) $instance['count'] : false; if ( $count < 1 || 10 < $count ) { $count = 10; } /** * Control the number of displayed posts. * * @module widgets * * @since 3.3.0 * * @param string $count Number of Posts displayed in the Top Posts widget. Default is 10. */ $count = apply_filters( 'jetpack_top_posts_widget_count', $count ); $types = isset( $instance['types'] ) ? (array) $instance['types'] : array( 'post', 'page' ); if ( isset( $instance['display'] ) && in_array( $instance['display'], array( 'grid', 'list', 'text' ) ) ) { $display = $instance['display']; } else { $display = 'text'; } if ( 'text' != $display ) { $get_image_options = array( 'fallback_to_avatars' => true, /** This filter is documented in modules/shortcodes/audio.php */ 'gravatar_default' => apply_filters( 'jetpack_static_url', set_url_scheme( 'http://en.wordpress.com/i/logo/white-gray-80.png' ) ), ); if ( 'grid' == $display ) { $get_image_options['avatar_size'] = 200; } else { $get_image_options['avatar_size'] = 40; } /** * Top Posts Widget Image options. * * @module widgets * * @since 1.8.0 * * @param array $get_image_options { * Array of Image options. * @type bool true Should we default to Gravatars when no image is found? Default is true. * @type string $gravatar_default Default Image URL if no Gravatar is found. * @type int $avatar_size Default Image size. * } */ $get_image_options = apply_filters( 'jetpack_top_posts_widget_image_options', $get_image_options ); } $posts = $this->get_by_views( $count ); // Filter the returned posts. Remove all posts that do not match the chosen Post Types. if ( isset( $types ) ) { foreach ( $posts as $k => $post ) { if ( ! in_array( $post['post_type'], $types ) ) { unset( $posts[$k] ); } } } if ( ! $posts ) { $posts = $this->get_fallback_posts(); } echo $args['before_widget']; if ( ! empty( $title ) ) echo $args['before_title'] . $title . $args['after_title']; if ( ! $posts ) { if ( current_user_can( 'edit_theme_options' ) ) { echo '

        ' . sprintf( __( 'There are no posts to display. Want more traffic?', 'jetpack' ), 'http://en.support.wordpress.com/getting-more-site-traffic/' ) . '

        '; } echo $args['after_widget']; return; } switch ( $display ) { case 'list' : case 'grid' : wp_enqueue_style( 'widget-grid-and-list' ); foreach ( $posts as &$post ) { $image = Jetpack_PostImages::get_image( $post['post_id'], array( 'fallback_to_avatars' => true ) ); $post['image'] = $image['src']; if ( 'blavatar' != $image['from'] && 'gravatar' != $image['from'] ) { $size = (int) $get_image_options['avatar_size']; $post['image'] = jetpack_photon_url( $post['image'], array( 'resize' => "$size,$size" ) ); } } unset( $post ); if ( 'grid' == $display ) { echo "
        \n"; foreach ( $posts as $post ) : ?>
        . * * @module widgets * * @since 3.2.0 * * @param string $post['post_id'] Post ID. */ do_action( 'jetpack_widget_top_posts_before_post', $post['post_id'] ); ?> <?php echo esc_attr( wp_kses( $post['title'], array() ) ); ?> . * * @module widgets * * @since 3.2.0 * * @param string $post['post_id'] Post ID. */ do_action( 'jetpack_widget_top_posts_after_post', $post['post_id'] ); ?>
        \n"; } else { echo "
          \n"; foreach ( $posts as $post ) : ?>
        • <?php echo esc_attr( wp_kses( $post['title'], array() ) ); ?>
        • \n"; } break; default : echo '
            '; foreach ( $posts as $post ) : ?>
          • '; } echo $args['after_widget']; } function get_by_views( $count ) { /** * Filter the number of days used to calculate Top Posts for the Top Posts widget. * * @module widgets * * @since 2.8.0 * * @param int 2 Number of days. Default is 2. */ $days = (int) apply_filters( 'jetpack_top_posts_days', 2 ); if ( $days < 1 ) { $days = 2; } if ( $days > 10 ) { $days = 10; } $post_view_posts = stats_get_csv( 'postviews', array( 'days' => absint( $days ), 'limit' => 11 ) ); if ( ! $post_view_posts ) { return array(); } $post_view_ids = array_filter( wp_list_pluck( $post_view_posts, 'post_id' ) ); if ( ! $post_view_ids ) { return array(); } return $this->get_posts( $post_view_ids, $count ); } function get_fallback_posts() { if ( current_user_can( 'edit_theme_options' ) ) { return array(); } $post_query = new WP_Query; $posts = $post_query->query( array( 'posts_per_page' => 1, 'post_status' => 'publish', 'post_type' => array( 'post', 'page' ), 'no_found_rows' => true, ) ); if ( ! $posts ) { return array(); } $post = array_pop( $posts ); return $this->get_posts( $post->ID, 1 ); } function get_posts( $post_ids, $count ) { $counter = 0; $posts = array(); foreach ( (array) $post_ids as $post_id ) { $post = get_post( $post_id ); if ( ! $post ) continue; // hide private and password protected posts if ( 'publish' != $post->post_status || ! empty( $post->post_password ) || empty( $post->ID ) ) continue; // Both get HTML stripped etc on display if ( empty( $post->post_title ) ) { $title_source = $post->post_content; $title = wp_html_excerpt( $title_source, 50 ); $title .= '…'; } else { $title = $post->post_title; } $permalink = get_permalink( $post->ID ); $post_type = $post->post_type; $posts[] = compact( 'title', 'permalink', 'post_id', 'post_type' ); $counter++; if ( $counter == $count ) { break; // only need to load and show x number of likes } } /** * Filter the Top Posts and Pages. * * @module widgets * * @since 3.0.0 * * @param array $posts Array of the most popular posts. * @param array $post_ids Array of Post IDs. * @param string $count Number of Top Posts we want to display. */ return apply_filters( 'jetpack_widget_get_top_posts', $posts, $post_ids, $count ); } } plugins/jetpack/modules/widgets/facebook-likebox/0000755000312500031250000000000012651056012022576 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/facebook-likebox/style.css0000644000312500031250000000006012651056012024444 0ustar eacbforgeacbforg.widget_facebook_likebox { overflow: hidden; } plugins/jetpack/modules/widgets/googleplus-badge.php0000644000312500031250000002651612654411246023344 0ustar eacbforgeacbforg Widgets */ add_action( 'widgets_init', 'jetpack_googleplus_badge_init' ); function jetpack_googleplus_badge_init() { register_widget( 'WPCOM_Widget_GooglePlus_Badge' ); } /** * Google+ Badge widget class * Display a Google+ Badge as a widget * https://developers.google.com/+/web/badge/ */ class WPCOM_Widget_GooglePlus_Badge extends WP_Widget { private $default_width = 220; private $max_width = 450; private $min_width_portrait = 180; private $min_width_landscape = 273; private $min_width; private $default_theme = 'light'; private $allowed_themes = array( 'light', 'dark' ); private $default_layout = 'portrait'; private $allowed_layouts = array( 'landscape', 'portrait' ); private $default_type = 'person'; private $allowed_types = array(); function __construct() { $this->min_width = min( $this->min_width_portrait, $this->min_width_landscape ); $this->allowed_types = array( 'person' => __( 'Person Widget', 'jetpack' ), 'page' => __( 'Page Widget', 'jetpack' ), 'community' => __( 'Community Widget', 'jetpack' ), ); parent::__construct( 'googleplus-badge', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', __( 'Google+ Badge', 'jetpack' ) ), array( 'classname' => 'widget_googleplus_badge', 'description' => __( 'Display a Google+ Badge to connect visitors to your Google+', 'jetpack' ) ) ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) ); if ( is_active_widget( '', '', 'googleplus-badge' ) ) { add_action( 'wp_print_styles', array( $this, 'enqueue_script' ) ); add_filter( 'script_loader_tag', array( $this, 'replace_script_tag' ), 10, 2 ); } } function enqueue_script() { wp_enqueue_script( 'googleplus-widget', 'https://apis.google.com/js/platform.js' ); } function replace_script_tag( $tag, $handle ) { if ( 'googleplus-widget' !== $handle ) { return $tag; } return str_replace( ' src', ' async defer src', $tag ); } function enqueue_admin_scripts() { global $pagenow; if ( 'widgets.php' == $pagenow || 'customize.php' == $pagenow ) { wp_enqueue_script( 'googleplus-widget-admin', plugins_url( '/google-plus/js/admin.js', __FILE__ ), array( 'jquery' ) ); } } function widget( $args, $instance ) { if ( empty( $instance['href'] ) || ! $this->is_valid_googleplus_url( $instance['href'] ) ) { if ( current_user_can( 'edit_theme_options' ) ) { echo $args['before_widget']; echo '

            ' . sprintf( __( 'It looks like your Google+ URL is incorrectly configured. Please check it in your widget settings.', 'jetpack' ), admin_url( 'widgets.php' ) ) . '

            '; echo $args['after_widget']; } echo ''; return; } /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); echo $args['before_widget']; echo $args['before_title'] . esc_html( $title ) . $args['after_title']; switch( $instance['type'] ) { case 'person': case 'page': printf( '
            ', $instance['type'], esc_url( $instance['href'] ), esc_attr( $instance['layout'] ), esc_attr( $instance['theme'] ), esc_attr( $instance['show_coverphoto'] ? 'true' : 'false' ), esc_attr( $instance['show_tagline'] ? 'true' : 'false' ), esc_attr( $instance['width'] ) ); break; case 'community': printf( '
            ', $instance['type'], esc_url( $instance['href'] ), esc_attr( $instance['layout'] ), esc_attr( $instance['theme'] ), esc_attr( $instance['show_photo'] ? 'true' : 'false' ), esc_attr( $instance['show_owners'] ? 'true' : 'false' ), esc_attr( $instance['show_tagline'] ? 'true' : 'false' ), esc_attr( $instance['width'] ) ); break; } echo $args['after_widget']; /** This action is already documented in modules/widgets/gravatar-profile.php */ do_action( 'jetpack_stats_extra', 'widget', 'googleplus-badge' ); } function update( $new_instance, $old_instance ) { $instance = array(); $instance['title'] = trim( strip_tags( stripslashes( $new_instance['title'] ) ) ); // Validate the Google+ URL $instance['href'] = trim( strip_tags( stripslashes( $new_instance['href'] ) ) ); if ( $this->is_valid_googleplus_url( $instance['href'] ) ) { $temp = explode( '?', $instance['href'] ); $instance['href'] = str_replace( array( 'http://plus.google.com', 'https://plus.google.com' ), 'https://plus.google.com', $temp[0] ); } else { $instance['href'] = ''; } $instance['theme'] = $this->filter_text( $new_instance['theme'], $this->default_theme, $this->allowed_themes ); $instance['layout'] = $this->filter_text( $new_instance['layout'], $this->default_layout, $this->allowed_layouts ); switch( $instance['layout'] ) { case 'portrait': $instance['width'] = filter_var( $new_instance['width'], FILTER_VALIDATE_INT, array( 'options' => array( 'min_range' => $this->min_width_portrait, 'max_range' => $this->max_width, 'default' => $this->default_width, ) ) ); break; case 'landscape': $instance['width'] = filter_var( $new_instance['width'], FILTER_VALIDATE_INT, array( 'options' => array( 'min_range' => $this->min_width_landscape, 'max_range' => $this->max_width, 'default' => $this->default_width, ) ) ); break; } if ( array_key_exists( $new_instance['type'], $this->allowed_types ) ) { $instance['type'] = $new_instance['type']; } else { $instance['type'] = $this->default_type; } switch( $instance['type'] ) { case 'person': case 'page': $instance['show_coverphoto'] = isset( $new_instance['show_coverphoto'] ); break; case 'community': $instance['show_photo'] = isset( $new_instance['show_photo'] ); $instance['show_owners'] = isset( $new_instance['show_owners'] ); break; } $instance['show_tagline'] = isset( $new_instance['show_tagline'] ); return $instance; } function form( $instance ) { $defaults = array( 'title' => '', 'href' => '', 'width' => $this->default_width, 'layout' => $this->default_layout, 'theme' => $this->default_theme, 'show_coverphoto' => true, 'show_photo' => true, 'show_owners' => false, 'show_tagline' => true, 'type' => $this->default_type, ); $instance = wp_parse_args( $instance, $defaults ); ?>

            'widget-gallery', 'description' => __( 'Display a photo gallery or slideshow', 'jetpack' ) ); $control_ops = array( 'width' => 250 ); add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_admin_scripts' ) ); parent::__construct( 'gallery', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', __( 'Gallery', 'jetpack' ) ), $widget_ops, $control_ops ); } /** * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The settings for the particular instance of the widget. */ public function widget( $args, $instance ) { $instance = wp_parse_args( (array) $instance, $this->defaults() ); $this->enqueue_frontend_scripts(); extract( $args ); $instance['attachments'] = $this->get_attachments( $instance ); $classes = array(); $classes[] = 'widget-gallery-' . $instance['type']; // Due to a bug in the carousel plugin, carousels will be triggered for all tiled galleries that exist on a page // with other tiled galleries, regardless of whether or not the widget was set to Carousel mode. The onClick selector // is simply too broad, since it was not written with widgets in mind. This special class prevents that behavior, via // an override handler in gallery.js if( 'carousel' != $instance['link'] && 'slideshow' != $instance['type'] ) $classes[] = 'no-carousel'; else $classes[] = 'carousel'; $classes = implode( ' ', $classes ); if ( 'carousel' == $instance['link'] ) { require_once plugin_dir_path( realpath( dirname( __FILE__ ) . '/../carousel/jetpack-carousel.php' ) ) . 'jetpack-carousel.php'; if ( class_exists( 'Jetpack_Carousel' ) ) { // Create new carousel so we can use the enqueue_assets() method. Not ideal, but there is a decent amount // of logic in that method that shouldn't be duplicated. $carousel = new Jetpack_Carousel(); // First parameter is $output, which comes from filters, and causes bypass of the asset enqueuing. Passing null is correct. $carousel->enqueue_assets( null ); } } echo $before_widget . "\n"; /** This filter is documented in core/src/wp-includes/default-widgets.php */ $title = apply_filters( 'widget_title', $instance['title'] ); if ( $title ) echo $before_title . esc_html( $title ) . $after_title . "\n"; echo '
            ' . "\n"; $method = $instance['type'] . '_widget'; /** * Allow the width of a gallery to be altered by themes or other code. * * @module widgets * * @since 2.5.0 * * @param int self::DEFAULT_WIDTH Default gallery width. Default is 265. * @param string $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The settings for the particular instance of the widget. */ $this->_instance_width = apply_filters( 'gallery_widget_content_width', self::DEFAULT_WIDTH, $args, $instance ); // Register a filter to modify the tiled_gallery_content_width, so Jetpack_Tiled_Gallery // can appropriately size the tiles. add_filter( 'tiled_gallery_content_width', array( $this, 'tiled_gallery_content_width' ) ); if ( method_exists( $this, $method ) ) echo $this->$method( $args, $instance ); // Remove the stored $_instance_width, as it is no longer needed $this->_instance_width = null; // Remove the filter, so any Jetpack_Tiled_Gallery in a post is not affected remove_filter( 'tiled_gallery_content_width', array( $this, 'tiled_gallery_content_width' ) ); echo "\n" . '
            '; // .widget-gallery-$type echo "\n" . $after_widget; } /** * Fetch the images attached to the gallery Widget * * @param array $instance The Widget instance for which you'd like attachments * @return array Array of attachment objects for the Widget in $instance */ public function get_attachments( $instance ){ $ids = explode( ',', $instance['ids'] ); if ( isset( $instance['random'] ) && 'on' == $instance['random'] ) { shuffle( $ids ); } $attachments_query = new WP_Query( array( 'post__in' => $ids, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'posts_per_page' => -1, 'orderby' => 'post__in', ) ); $attachments = $attachments_query->get_posts(); wp_reset_postdata(); return $attachments; } /** * Generate HTML for a rectangular, tiled Widget * * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The Widget instance to generate HTML for * @return string String of HTML representing a rectangular gallery */ public function rectangular_widget( $args, $instance ) { if ( ! class_exists( 'Jetpack_Tiled_Gallery' ) && ! class_exists( 'Jetpack_Tiled_Gallery_Layout_Rectangular') ) { return; } $widget_tiled_gallery = new Jetpack_Tiled_Gallery(); $widget_tiled_gallery->default_scripts_and_styles(); $layout = new Jetpack_Tiled_Gallery_Layout_Rectangular( $instance['attachments'], $instance['link'], false, 3 ); return $layout->HTML(); } /** * Generate HTML for a square (grid style) Widget * * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The Widget instance to generate HTML for * @return string String of HTML representing a square gallery */ public function square_widget( $args, $instance ) { if ( ! class_exists( 'Jetpack_Tiled_Gallery' ) && ! class_exists( 'Jetpack_Tiled_Gallery_Layout_Square') ) { return; } $widget_tiled_gallery = new Jetpack_Tiled_Gallery(); $widget_tiled_gallery->default_scripts_and_styles(); $layout = new Jetpack_Tiled_Gallery_Layout_Square( $instance['attachments'], $instance['link'], false, 3 ); return $layout->HTML(); } /** * Generate HTML for a circular (grid style) Widget * * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The Widget instance to generate HTML for * @return string String of HTML representing a circular gallery */ public function circle_widget( $args, $instance ) { if ( ! class_exists( 'Jetpack_Tiled_Gallery' ) && ! class_exists( 'Jetpack_Tiled_Gallery_Layout_Circle') ) { return; } $widget_tiled_gallery = new Jetpack_Tiled_Gallery(); $widget_tiled_gallery->default_scripts_and_styles(); $layout = new Jetpack_Tiled_Gallery_Layout_Circle( $instance['attachments'], $instance['link'], false, 3 ); return $layout->HTML(); } /** * Generate HTML for a slideshow Widget * * @param array $args Display arguments including before_title, after_title, before_widget, and after_widget. * @param array $instance The Widget instance to generate HTML for * @return string String of HTML representing a slideshow gallery */ public function slideshow_widget( $args, $instance ) { global $content_width; require_once plugin_dir_path( realpath( dirname( __FILE__ ) . '/../shortcodes/slideshow.php' ) ) . 'slideshow.php'; if ( ! class_exists( 'Jetpack_Slideshow_Shortcode' ) ) return; if ( count( $instance['attachments'] ) < 1 ) return; $slideshow = new Jetpack_Slideshow_Shortcode(); $slideshow->enqueue_scripts(); $gallery_instance = "widget-" . $args['widget_id']; $gallery = array(); foreach ( $instance['attachments'] as $attachment ) { $attachment_image_src = wp_get_attachment_image_src( $attachment->ID, 'full' ); $attachment_image_src = $attachment_image_src[0]; // [url, width, height] $caption = wptexturize( strip_tags( $attachment->post_excerpt ) ); $gallery[] = (object) array( 'src' => (string) esc_url_raw( $attachment_image_src ), 'id' => (string) $attachment->ID, 'caption' => (string) $caption, ); } $max_width = intval( get_option( 'large_size_w' ) ); $max_height = 175; if ( intval( $content_width ) > 0 ) $max_width = min( intval( $content_width ), $max_width ); $color = Jetpack_Options::get_option( 'slideshow_background_color', 'black' ); $autostart = isset( $attr['autostart'] ) ? $attr['autostart'] : true; $js_attr = array( 'gallery' => $gallery, 'selector' => $gallery_instance, 'width' => $max_width, 'height' => $max_height, 'trans' => 'fade', 'color' => $color, 'autostart' => $autostart, ); $html = $slideshow->slideshow_js( $js_attr ); return $html; } /** * tiled_gallery_content_width filter * * Used to adjust the content width of Jetpack_Tiled_Gallery's in sidebars * * $this->_instance_width is filtered in widget() and this filter is added then removed in widget() * * @param int $width int The original width value * @return int The filtered width */ public function tiled_gallery_content_width( $width ) { return $this->_instance_width; } public function form( $instance ) { $defaults = $this->defaults(); $allowed_values = $this->allowed_values(); $instance = wp_parse_args( (array) $instance, $defaults ); include dirname( __FILE__ ) . '/gallery/templates/form.php'; } public function update( $new_instance, $old_instance ) { $instance = $this->sanitize( $new_instance ); return $instance; } /** * Sanitize the $instance's values to the set of allowed values. If a value is not acceptable, * it is set to its default. * * Helps keep things nice and secure by whitelisting only allowed values * * @param array $instance The Widget instance to sanitize values for * @return array $instance The Widget instance with values sanitized */ public function sanitize( $instance ) { $allowed_values = $this->allowed_values(); $defaults = $this->defaults(); foreach ( $instance as $key => $value ) { $value = trim( $value ); if ( isset( $allowed_values[ $key ] ) && $allowed_values[ $key ] && ! array_key_exists( $value, $allowed_values[ $key ] ) ) { $instance[ $key ] = $defaults[ $key ]; } else { $instance[ $key ] = sanitize_text_field( $value ); } } return $instance; } /** * Return a multi-dimensional array of allowed values (and their labels) for all widget form * elements * * To allow all values on an input, omit it from the returned array * * @return array Array of allowed values for each option */ public function allowed_values() { $max_columns = 5; // Create an associative array of allowed column values. This just automates the generation of // column
        EOT; return $html; } function urlencode_address( $address ) { $address = strtolower( $address ); $address = preg_replace( "/\s+/", " ", trim( $address ) ); // Get rid of any unwanted whitespace $address = str_ireplace( " ", "+", $address ); // Use + not %20 urlencode( $address ); return $address; } function has_good_map( $instance ) { // The lat and lon of an address that could not be plotted will have values of 0 and 0. return ! ( $instance['lat'] == "0" && $instance['lon'] == "0" ); } } } plugins/jetpack/modules/widgets/goodreads/0000755000312500031250000000000012651056012021341 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/goodreads/css/0000755000312500031250000000000012651056012022131 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/goodreads/css/goodreads.css0000644000312500031250000000176312651056012024621 0ustar eacbforgeacbforgdiv[class^="gr_custom_container"] { /* customize your Goodreads widget container here*/ border: 1px solid gray; border-radius:10px; padding: 10px 5px 10px 5px; background-color: #FFF; color: #000; } div[class^="gr_custom_container"] a { color: #000; } h2[class^="gr_custom_header"] { /* customize your Goodreads header here*/ display: none; } div[class^="gr_custom_each_container"] { /* customize each individual book container here */ width: 100%; clear: both; margin-bottom: 10px; overflow: auto; padding-bottom: 4px; border-bottom: 1px solid #aaa; } div[class^="gr_custom_book_container"] { /* customize your book covers here */ float: right; overflow: hidden; height: 60px; margin-left: 4px; width: 39px; } div[class^="gr_custom_author"] { /* customize your author names here */ font-size: 10px; } div[class^="gr_custom_tags"] { /* customize your tags here */ font-size: 10px; color: gray; } div[class^="gr_custom_review"] { } div[class^="gr_custom_rating"] { display: none; } plugins/jetpack/modules/widgets/goodreads/css/rtl/0000755000312500031250000000000012651056012022732 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/goodreads/css/rtl/goodreads-rtl.css0000644000312500031250000000207012651056012026211 0ustar eacbforgeacbforg/* This file was automatically generated on Nov 19 2013 15:54:57 */ div[class^="gr_custom_container"] { /* customize your Goodreads widget container here*/ border: 1px solid gray; border-radius:10px; padding: 10px 5px 10px 5px; background-color: #FFF; color: #000; } div[class^="gr_custom_container"] a { color: #000; } h2[class^="gr_custom_header"] { /* customize your Goodreads header here*/ display: none; } div[class^="gr_custom_each_container"] { /* customize each individual book container here */ width: 100%; clear: both; margin-bottom: 10px; overflow: auto; padding-bottom: 4px; border-bottom: 1px solid #aaa; } div[class^="gr_custom_book_container"] { /* customize your book covers here */ float: left; overflow: hidden; height: 60px; margin-right: 4px; width: 39px; } div[class^="gr_custom_author"] { /* customize your author names here */ font-size: 10px; } div[class^="gr_custom_tags"] { /* customize your tags here */ font-size: 10px; color: gray; } div[class^="gr_custom_review"] { } div[class^="gr_custom_rating"] { display: none; } plugins/jetpack/modules/widgets/contact-info/0000755000312500031250000000000012654411246021765 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/contact-info/contact-info-map.css0000644000312500031250000000030012651056012025620 0ustar eacbforgeacbforg.contact-info-map-canvas { height: 216px; margin: 0; padding: 0; overflow: hidden; } /* Prevent Google maps controls from being hidden */ .gmnoprint img { max-width: none !important; } plugins/jetpack/modules/widgets/contact-info/contact-info-map.js0000644000312500031250000000141312654411246025461 0ustar eacbforgeacbforg/* global google */ /* jshint unused:false */ if (jQuery) { jQuery().ready(function() { jQuery('div.contact-map').each(function(){ // get lat and lon from hidden input values var lat = jQuery(this).find('.contact-info-map-lat').val(), lon = jQuery(this).find('.contact-info-map-lon').val(), lat_lon = new google.maps.LatLng( lat, lon ), mapOptions = { zoom: 16, center: lat_lon, mapTypeId: google.maps.MapTypeId.ROADMAP }, map = new google.maps.Map(jQuery(this).find('.contact-info-map-canvas')[0], mapOptions), marker = new google.maps.Marker({ map: map, position: lat_lon }); google.maps.event.addListenerOnce(map, 'mouseover', function() { google.maps.event.trigger(map, 'resize'); }); }); }); } plugins/jetpack/modules/widgets/image-widget/0000755000312500031250000000000012651056012021735 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/image-widget/style.css0000644000312500031250000000032212651056012023604 0ustar eacbforgeacbforg/* * Image Widget styles for Jetpack */ /* Clear floats */ .jetpack-image-container:after { clear: both; } .jetpack-image-container:before, .jetpack-image-container:after { display: table; content: ""; } plugins/jetpack/modules/widgets/social-media-icons.php0000644000312500031250000001721412654410417023556 0ustar eacbforgeacbforg __( 'A simple widget that displays social media icons.', 'jetpack' ), ) ); $this->defaults = array( 'title' => __( 'Social', 'jetpack' ), 'facebook_username' => '', 'twitter_username' => '', 'instagram_username' => '', 'pinterest_username' => '', 'linkedin_username' => '', 'github_username' => '', 'youtube_username' => '', 'vimeo_username' => '', 'googleplus_username' => '', ); $this->services = array( 'facebook' => array( 'Facebook', 'https://www.facebook.com/%s/' ), 'twitter' => array( 'Twitter', 'https://twitter.com/%s/' ), 'instagram' => array( 'Instagram', 'https://instagram.com/%s/' ), 'pinterest' => array( 'Pinterest', 'https://www.pinterest.com/%s/' ), 'linkedin' => array( 'LinkedIn', 'https://www.linkedin.com/in/%s/' ), 'github' => array( 'GitHub', 'https://github.com/%s/' ), 'youtube' => array( 'YouTube', 'https://www.youtube.com/%s/' ), 'vimeo' => array( 'Vimeo', 'https://vimeo.com/%s/' ), 'googleplus' => array( 'Google+', 'https://plus.google.com/u/0/%s/' ), ); if ( is_active_widget( false, false, $this->id_base ) ) { add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_style' ) ); } } public function enqueue_style() { wp_register_style( 'jetpack_social_media_icons_widget', plugins_url( 'social-media-icons/style.css', __FILE__ ), array(), '20150602' ); wp_enqueue_style( 'jetpack_social_media_icons_widget' ); } private function check_genericons() { global $wp_styles; foreach ( $wp_styles->queue as $handle ) { if ( false !== stristr( $handle, 'genericons' ) ) { return $handle; } } return false; } // front end public function widget( $args, $instance ) { $instance = wp_parse_args( (array) $instance, $this->defaults ); /** This filter is documented in core/src/wp-includes/default-widgets.php */ $instance['title'] = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base ); if ( ! $this->check_genericons() ) { wp_enqueue_style( 'genericons' ); } $index = 10; $html = array(); $alt_text = esc_attr__( 'View %1$s’s profile on %2$s', 'jetpack' ); foreach ( $this->services as $service => $data ) { list( $service_name, $url ) = $data; if ( ! isset( $instance[ $service . '_username' ] ) ) { continue; } $username = $link_username = $instance[ $service . '_username' ]; if ( empty( $username ) ) { continue; } $index += 10; if ( $service === 'googleplus' && ! is_numeric( $username ) && substr( $username, 0, 1 ) !== "+" ) { $link_username = "+" . $username; } if ( $service === 'youtube' && substr( $username, 0, 2 ) == 'UC' ) { $link_username = "channel/" . $username; } else if ( $service === 'youtube' ) { $link_username = "user/" . $username; } /** * Fires for each profile link in the social icons widget. Can be used * to change the links for certain social networks if needed. * * @module widgets * * @since 3.8.0 * * @param string $url the currently processed URL * @param string $service the lowercase service slug, e.g. 'facebook', 'youtube', etc. */ $link = apply_filters( 'jetpack_social_media_icons_widget_profile_link', esc_url( sprintf( $url, $link_username ) ), $service ); $html[ $index ] = '' . sprintf( $alt_text, esc_html( $username ), $service_name ) . ''; } /** * Fires at the end of the list of Social Media accounts. * Can be used to add a new Social Media Site to the Social Media Icons Widget. * The filter function passed the array of HTML entries that will be sorted * by key, each wrapped in a list item element and output as an unsorted list. * * @module widgets * * @since 3.8.0 * * @param array $html Associative array of HTML snippets per each icon. */ $html = apply_filters( 'jetpack_social_media_icons_widget_array', $html ); ksort( $html ); $html = '
        • ' . join( '
        • ', $html ) . '
        '; if ( ! empty( $instance['title'] ) ) { $html = $args['before_title'] . esc_html( $instance['title'] ) . $args['after_title'] . $html; } $html = $args['before_widget'] . $html . $args['after_widget']; /** * Filters the Social Media Icons widget output. * * @module widgets * * @since 3.6.0 * * @param string $html Social Media Icons widget html output. */ echo apply_filters( 'jetpack_social_media_icons_widget_output', $html ); } // backend public function form( $instance ) { $instance = wp_parse_args( (array) $instance, $this->defaults ); ?>

        services as $service => $data ) { list( $service_name, $url ) = $data; ?>

        $value ) { $instance[$field] = sanitize_text_field( $new_instance[$field] ); } // Stats $stats = $instance; unset( $stats['title'] ); $stats = array_filter( $stats ); $stats = array_keys( $stats ); $stats = array_map( array( $this, 'remove_username' ), $stats ); foreach ( $stats as $val ) { /** * Fires for each Social Media account being saved in the Social Media Widget settings. * * @module widgets * * @since 3.6.0 * * @param string social-media-links-widget-svcs Type of action to track. * @param string $val Name of the Social Media account being saved. */ do_action( 'jetpack_bump_stats_extras', 'social-media-links-widget-svcs', $val ) ; } return $instance; } // Remove username from value before to save stats public function remove_username( $val ) { return str_replace( '_username', '', $val ); } } // class ends here // register and load the widget function wpcom_social_media_icons_widget_load_widget() { register_widget( 'wpcom_social_media_icons_widget' ); } add_action( 'widgets_init', 'wpcom_social_media_icons_widget_load_widget' ); plugins/jetpack/modules/widgets/wordpress-post-widget/0000755000312500031250000000000012651056012023666 5ustar eacbforgeacbforgplugins/jetpack/modules/widgets/wordpress-post-widget/style.css0000644000312500031250000000060012651056012025534 0ustar eacbforgeacbforg.jetpack-display-remote-posts { margin: 5px 0 20px 0; } .jetpack-display-remote-posts h4 { font-size: 90%; margin: 5px 0; padding: 0; } .jetpack-display-remote-posts h4 a { text-decoration: none; } .jetpack-display-remote-posts p { margin: 0 !important; padding: 0; line-height: 1.4em !important; font-size: 90%; } .jetpack-display-remote-posts img { max-width: 100%; } plugins/jetpack/modules/widgets/twitter-timeline.php0000644000312500031250000002710512654411246023425 0ustar eacbforgeacbforg Widgets */ add_action( 'widgets_init', 'jetpack_twitter_timeline_widget_init' ); function jetpack_twitter_timeline_widget_init() { register_widget( 'Jetpack_Twitter_Timeline_Widget' ); } class Jetpack_Twitter_Timeline_Widget extends WP_Widget { /** * Register widget with WordPress. */ public function __construct() { parent::__construct( 'twitter_timeline', /** This filter is documented in modules/widgets/facebook-likebox.php */ apply_filters( 'jetpack_widget_name', esc_html__( 'Twitter Timeline', 'jetpack' ) ), array( 'classname' => 'widget_twitter_timeline', 'description' => __( 'Display an official Twitter Embedded Timeline widget.', 'jetpack' ) ) ); if ( is_active_widget( false, false, $this->id_base ) || is_active_widget( false, false, 'monster' ) ) { add_action( 'wp_footer', array( $this, 'library' ) ); } } /** * Enqueue Twitter's widget library */ public function library() { ?> '; $timeline_placeholder = __( 'My Tweets', 'jetpack' ); /** * Filter the Timeline placeholder text. * * @module widgets * * @since 3.4.0 * * @param string $timeline_placeholder Timeline placeholder text. */ $timeline_placeholder = apply_filters( 'jetpack_twitter_timeline_placeholder', $timeline_placeholder ); echo esc_html( $timeline_placeholder ) . ''; // End tag output echo $args['after_widget']; /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'widget', 'twitter_timeline' ); } /** * Sanitize widget form values as they are saved. * * @see WP_Widget::update() * * @param array $new_instance Values just sent to be saved. * @param array $old_instance Previously saved values from database. * * @return array Updated safe values to be saved. */ public function update( $new_instance, $old_instance ) { $hex_regex = '/#([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?\b/'; $instance = array(); $instance['title'] = sanitize_text_field( $new_instance['title'] ); $instance['width'] = (int) $new_instance['width']; $instance['height'] = (int) $new_instance['height']; $instance['width'] = ( 0 !== (int) $new_instance['width'] ) ? (int) $new_instance['width'] : ''; $instance['height'] = ( 0 !== (int) $new_instance['height'] ) ? (int) $new_instance['height'] : ''; $instance['tweet-limit'] = ( 0 !== (int) $new_instance['tweet-limit'] ) ? (int) $new_instance['tweet-limit'] : null; // If they entered something that might be a full URL, try to parse it out if ( is_string( $new_instance['widget-id'] ) ) { if ( preg_match( '#https?://twitter\.com/settings/widgets/(\d+)#s', $new_instance['widget-id'], $matches ) ) { $new_instance['widget-id'] = $matches[1]; } } $instance['widget-id'] = sanitize_text_field( $new_instance['widget-id'] ); $instance['widget-id'] = is_numeric( $instance['widget-id'] ) ? $instance['widget-id'] : ''; foreach ( array( 'link-color', 'border-color' ) as $color ) { $new_color = sanitize_text_field( $new_instance[$color] ); if ( preg_match( $hex_regex, $new_color ) ) { $instance[$color] = $new_color; } } $instance['theme'] = 'light'; if ( in_array( $new_instance['theme'], array( 'light', 'dark' ) ) ) $instance['theme'] = $new_instance['theme']; $instance['chrome'] = array(); if ( isset( $new_instance['chrome'] ) ) { foreach ( $new_instance['chrome'] as $chrome ) { if ( in_array( $chrome, array( 'noheader', 'nofooter', 'noborders', 'noscrollbar', 'transparent' ) ) ) { $instance['chrome'][] = $chrome; } } } return $instance; } /** * Back-end widget form. * * @see WP_Widget::form() * * @param array $instance Previously saved values from database. */ public function form( $instance ) { $defaults = array( 'title' => esc_html__( 'Follow me on Twitter', 'jetpack' ), 'width' => '', 'height' => '400', 'widget-id' => '', 'link-color' => '#f96e5b', 'border-color' => '#e8e8e8', 'theme' => 'light', 'chrome' => array(), 'tweet-limit' => null, ); $instance = wp_parse_args( (array) $instance, $defaults ); ?>

        create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget\'s config page) in the field below. Read more.', 'jetpack' ), 'https://twitter.com/settings/widgets/new/user', 'http://support.wordpress.com/widgets/twitter-timeline-widget/' ) ); ?>


        id="get_field_id( 'chrome-noheader' ); ?>" name="get_field_name( 'chrome' ); ?>[]" value="noheader" />
        id="get_field_id( 'chrome-nofooter' ); ?>" name="get_field_name( 'chrome' ); ?>[]" value="nofooter" />
        id="get_field_id( 'chrome-noborders' ); ?>" name="get_field_name( 'chrome' ); ?>[]" value="noborders" />
        id="get_field_id( 'chrome-noscrollbar' ); ?>" name="get_field_name( 'chrome' ); ?>[]" value="noscrollbar" />
        id="get_field_id( 'chrome-transparent' ); ?>" name="get_field_name( 'chrome' ); ?>[]" value="transparent" />

        ' . __( 'Snow' , 'jetpack') . '' , array( &$this, 'blog_field_html' ) , 'general' ); add_action( 'update_option_' . jetpack_holiday_snow_option_name(), array( &$this, 'holiday_snow_option_updated' ) ); } public function blog_field_html() { $id = esc_attr( jetpack_holiday_snow_option_name() ); ?> = $first_snow_day || $today < $last_snow_day ); /** * Filter whether it's winter or not. * * You can use this filter if, for example, you live in the * Southern Hemisphere. In that case, the dates for winter * above are incorrect for your location. * * @module theme-tools * * @since 2.1.0 * * @param bool $snow True if it's snow season, false if not. */ return apply_filters( 'jetpack_is_holiday_snow_season', $snow ); } jetpack_maybe_holiday_snow(); plugins/jetpack/modules/shortcodes.php0000644000312500031250000000525012654410417020622 0ustar eacbforgeacbforg '1&b=2&c=3' ) and array( 0 => '=1' ), which is useless * * @param Array $params * @param Bool $old_format_support true if [shortcode=foo] format is possible. * @return String $params */ function shortcode_new_to_old_params( $params, $old_format_support = false ) { $str = ''; if ( $old_format_support && isset( $params[0] ) ) { $str = ltrim( $params[0], '=' ); } elseif ( is_array( $params ) ) { foreach ( array_keys( $params ) as $key ) { if ( ! is_numeric( $key ) ) $str = $key . '=' . $params[$key]; } } return str_replace( array( '&', '&' ), '&', $str ); } function jetpack_load_shortcodes() { global $wp_version; $shortcode_includes = array(); foreach ( Jetpack::glob_php( dirname( __FILE__ ) . '/shortcodes' ) as $file ) { $shortcode_includes[] = $file; } /** * This filter allows other plugins to override which shortcodes Jetpack loads. * * @module shortcodes * * @since 2.2.1 * * @param array $shortcode_includes An array of which shortcodes to include. */ $shortcode_includes = apply_filters( 'jetpack_shortcodes_to_include', $shortcode_includes ); foreach ( $shortcode_includes as $include ) { if ( version_compare( $wp_version, '3.6-z', '>=' ) && stristr( $include, 'audio.php' ) ) { continue; } include $include; } } global $wp_version; if ( version_compare( $wp_version, '3.6-z', '>=' ) ) { add_filter( 'shortcode_atts_audio', 'jetpack_audio_atts_handler', 10, 3 ); function jetpack_audio_atts_handler( $out, $pairs, $atts ) { if( isset( $atts[0] ) ) $out['src'] = $atts[0]; return $out; } function jetpack_shortcode_get_audio_id( $atts ) { if ( isset( $atts[ 0 ] ) ) return $atts[ 0 ]; else return 0; } } if ( ! function_exists( 'jetpack_shortcode_get_wpvideo_id' ) ) { function jetpack_shortcode_get_wpvideo_id( $atts ) { if ( isset( $atts[ 0 ] ) ) return $atts[ 0 ]; else return 0; } } jetpack_load_shortcodes(); plugins/jetpack/modules/after-the-deadline/0000755000312500031250000000000012654411246021355 5ustar eacbforgeacbforgplugins/jetpack/modules/after-the-deadline/button.gif0000644000312500031250000000100312651056012023342 0ustar eacbforgeacbforgGIF89a¥ÉÉɵµµ²²²ÍÍÍÇÇÇóóóüüü¶¶¶òòòûûûúúúùùùøøø÷÷÷[ŒÄööö‘éõõõYôôôñññðððïïïšîîîìììëëëpÉ^êêê‰òtéééèèèáááçççÀÀÀàààæææÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!þCreated with The GIMP!ù ?,þÀ (Hd𠆨tJ¥ƒ"Áíz¿àâ P˜Ïè´ú\\¸ßð¸ü]dØïø¼þ^løÿ~€„‡EŠŠ‹”ŠE˜˜ž™¢E¨¨«­«¨©©E··ºœ¸œ¸ÁEÄÅÆÇÇÅEÍÎÏÏÐÏEÖר×ÙÙEßààßâãæEêêíëîëñëEõöííöüýEnÀÇA AE:(\¨ #2,ò¡¢E‹.jÔX„Ç CŠü( @(Sª\ÉRDˆF(A³¦Í›7IŒ ðƒ‘$@“Àü;plugins/jetpack/modules/after-the-deadline/atd.core.js0000644000312500031250000004445412654411246023425 0ustar eacbforgeacbforg/* * atd.core.js - A building block to create a front-end for AtD * Author : Raphael Mudge, Automattic * License : LGPL * Project : http://www.afterthedeadline.com/developers.slp * Contact : raffi@automattic.com */ /* jshint sub: true, devel: true, onevar: false, smarttabs: true */ /* exported EXPORTED_SYMBOLS, atd_sprintf */ /* EXPORTED_SYMBOLS is set so this file can be a JavaScript Module */ var EXPORTED_SYMBOLS = ['AtDCore']; function AtDCore() { /* these are the categories of errors AtD should ignore */ this.ignore_types = ['Bias Language', 'Cliches', 'Complex Expression', 'Diacritical Marks', 'Double Negatives', 'Hidden Verbs', 'Jargon Language', 'Passive voice', 'Phrases to Avoid', 'Redundant Expression']; /* these are the phrases AtD should ignore */ this.ignore_strings = {}; /* Localized strings */ // Back-compat, not used this.i18n = {}; } /* * Internationalization Functions */ AtDCore.prototype.getLang = function( key, defaultk ) { return ( window.AtD_l10n_r0ar && window.AtD_l10n_r0ar[key] ) || defaultk; }; AtDCore.prototype.addI18n = function( obj ) { // Back-compat window.AtD_l10n_r0ar = obj; }; /* * Setters */ AtDCore.prototype.setIgnoreStrings = function(string) { var parent = this; this.map(string.split(/,\s*/g), function(string) { parent.ignore_strings[string] = 1; }); }; AtDCore.prototype.showTypes = function(string) { var show_types = string.split(/,\s*/g); var types = {}; /* set some default types that we want to make optional */ /* grammar checker options */ types['Double Negatives'] = 1; types['Hidden Verbs'] = 1; types['Passive voice'] = 1; types['Bias Language'] = 1; /* style checker options */ types['Cliches'] = 1; types['Complex Expression'] = 1; types['Diacritical Marks'] = 1; types['Jargon Language'] = 1; types['Phrases to Avoid'] = 1; types['Redundant Expression'] = 1; var ignore_types = []; this.map(show_types, function(string) { types[string] = undefined; }); this.map(this.ignore_types, function(string) { if (types[string] !== undefined) { ignore_types.push(string); } }); this.ignore_types = ignore_types; }; /* * Error Parsing Code */ AtDCore.prototype.makeError = function(error_s, tokens, type, seps/*, pre*/) { var struct = {}; struct.type = type; struct.string = error_s; struct.tokens = tokens; if (new RegExp('\\b' + error_s + '\\b').test(error_s)) { struct.regexp = new RegExp('(?!'+error_s+'<)\\b' + error_s.replace(/\s+/g, seps) + '\\b'); } else if (new RegExp(error_s + '\\b').test(error_s)) { struct.regexp = new RegExp('(?!'+error_s+'<)' + error_s.replace(/\s+/g, seps) + '\\b'); } else if (new RegExp('\\b' + error_s).test(error_s)) { struct.regexp = new RegExp('(?!'+error_s+'<)\\b' + error_s.replace(/\s+/g, seps)); } else { struct.regexp = new RegExp('(?!'+error_s+'<)' + error_s.replace(/\s+/g, seps)); } struct.used = false; /* flag whether we've used this rule or not */ return struct; }; AtDCore.prototype.addToErrorStructure = function(errors, list, type, seps) { var parent = this; this.map(list, function(error) { var tokens = error['word'].split(/\s+/); var pre = error['pre']; var first = tokens[0]; if (errors['__' + first] === undefined) { errors['__' + first] = {}; errors['__' + first].pretoks = {}; errors['__' + first].defaults = []; } if (pre === '') { errors['__' + first].defaults.push(parent.makeError(error['word'], tokens, type, seps, pre)); } else { if (errors['__' + first].pretoks['__' + pre] === undefined) { errors['__' + first].pretoks['__' + pre] = []; } errors['__' + first].pretoks['__' + pre].push(parent.makeError(error['word'], tokens, type, seps, pre)); } }); }; AtDCore.prototype.buildErrorStructure = function(spellingList, enrichmentList, grammarList) { var seps = this._getSeparators(); var errors = {}; this.addToErrorStructure(errors, spellingList, 'hiddenSpellError', seps); this.addToErrorStructure(errors, grammarList, 'hiddenGrammarError', seps); this.addToErrorStructure(errors, enrichmentList, 'hiddenSuggestion', seps); return errors; }; AtDCore.prototype._getSeparators = function() { var re = '', i; var str = '"s!#$%&()*+,./:;<=>?@[\\]^_{|}'; // Build word separator regexp for (i=0; i 0) { errorStruct = this.buildErrorStructure(spellingErrors, enrichment, grammarErrors); } else { errorStruct = undefined; } /* save some state in this object, for retrieving suggestions later */ return { errors: errorStruct, count: ecount, suggestions: this.suggestions }; }; AtDCore.prototype.findSuggestion = function(element) { var text = element.innerHTML; var context = ( this.getAttrib(element, 'pre') + '' ).replace(/[\\,!\\?\\."\s]/g, ''); if (this.getAttrib(element, 'pre') === undefined) { alert(element.innerHTML); } var errorDescription; var len = this.suggestions.length; for (var i = 0; i < len; i++) { if ((context === '' || context === this.suggestions[i]['context']) && this.suggestions[i]['matcher'].test(text)) { errorDescription = this.suggestions[i]; break; } } return errorDescription; }; /* * TokenIterator class */ function TokenIterator(tokens) { this.tokens = tokens; this.index = 0; this.count = 0; this.last = 0; } TokenIterator.prototype.next = function() { var current = this.tokens[this.index]; this.count = this.last; this.last += current.length + 1; this.index++; /* strip single quotes from token, AtD does this when presenting errors */ if (current !== '') { if (current[0] === '\'') { current = current.substring(1, current.length); } if (current[current.length - 1] === '\'') { current = current.substring(0, current.length - 1); } } return current; }; TokenIterator.prototype.hasNext = function() { return this.index < this.tokens.length; }; TokenIterator.prototype.hasNextN = function(n) { return (this.index + n) < this.tokens.length; }; TokenIterator.prototype.skip = function(m, n) { this.index += m; this.last += n; if (this.index < this.tokens.length) { this.count = this.last - this.tokens[this.index].length; } }; TokenIterator.prototype.getCount = function() { return this.count; }; TokenIterator.prototype.peek = function(n) { var peepers = []; var end = this.index + n; for (var x = this.index; x < end; x++) { peepers.push(this.tokens[x]); } return peepers; }; /* * code to manage highlighting of errors */ AtDCore.prototype.markMyWords = function(container_nodes, errors) { var seps = new RegExp(this._getSeparators()), nl = [], ecount = 0, /* track number of highlighted errors */ parent = this, bogus = this._isTinyMCE ? ' data-mce-bogus="1"' : '', emptySpan = ' ', textOnlyMode; /** * Split a text node into an ordered list of siblings: * - text node to the left of the match * - the element replacing the match * - text node to the right of the match * * We have to leave the text to the left and right of the match alone * in order to prevent XSS * * @return array */ function splitTextNode( textnode, regexp, replacement ) { var text = textnode.nodeValue, index = text.search( regexp ), match = text.match( regexp ), captured = [], cursor; if ( index < 0 || ! match.length ) { return [ textnode ]; } if ( index > 0 ) { // capture left text node captured.push( document.createTextNode( text.substr( 0, index ) ) ); } // capture the replacement of the matched string captured.push( parent.create( match[0].replace( regexp, replacement ) ) ); cursor = index + match[0].length; if ( cursor < text.length ) { // capture right text node captured.push( document.createTextNode( text.substr( cursor ) ) ); } return captured; } function _isInPre( node ) { if ( node ) { while ( node.parentNode ) { if ( node.nodeName === 'PRE' ) { return true; } node = node.parentNode; } } return false; } /* Collect all text nodes */ /* Our goal--ignore nodes that are already wrapped */ this._walk( container_nodes, function( n ) { if ( n.nodeType === 3 && ! parent.isMarkedNode( n ) && ! _isInPre( n ) ) { nl.push( n ); } }); /* walk through the relevant nodes */ var iterator; this.map( nl, function( n ) { var v; if ( n.nodeType === 3 ) { v = n.nodeValue; /* we don't want to mangle the HTML so use the actual encoded string */ var tokens = n.nodeValue.split( seps ); /* split on the unencoded string so we get access to quotes as " */ var previous = ''; var doReplaces = []; iterator = new TokenIterator(tokens); while ( iterator.hasNext() ) { var token = iterator.next(); var current = errors['__' + token]; var defaults; if ( current !== undefined && current.pretoks !== undefined ) { defaults = current.defaults; current = current.pretoks['__' + previous]; var done = false; var prev, curr; prev = v.substr(0, iterator.getCount()); curr = v.substr(prev.length, v.length); var checkErrors = function( error ) { if ( error !== undefined && ! error.used && foundStrings[ '__' + error.string ] === undefined && error.regexp.test( curr ) ) { foundStrings[ '__' + error.string ] = 1; doReplaces.push([ error.regexp, '$&' ]); error.used = true; done = true; } }; // jshint ignore:line var foundStrings = {}; if (current !== undefined) { previous = previous + ' '; parent.map(current, checkErrors); } if (!done) { previous = ''; parent.map(defaults, checkErrors); } } previous = token; } // end while /* do the actual replacements on this span */ if ( doReplaces.length > 0 ) { var newNode = n; for ( var x = 0; x < doReplaces.length; x++ ) { var regexp = doReplaces[x][0], result = doReplaces[x][1]; /* it's assumed that this function is only being called on text nodes (nodeType == 3), the iterating is necessary because eventually the whole thing gets wrapped in an mceItemHidden span and from there it's necessary to handle each node individually. */ var bringTheHurt = function( node ) { var span, splitNodes; if ( node.nodeType === 3 ) { ecount++; /* sometimes IE likes to ignore the space between two spans, solution is to insert a placeholder span with a non-breaking space. The markup removal code substitutes this span for a space later */ if ( parent.isIE() && node.nodeValue.length > 0 && node.nodeValue.substr(0, 1) === ' ' ) { return parent.create( emptySpan + node.nodeValue.substr( 1, node.nodeValue.length - 1 ).replace( regexp, result ), false ); } else { if ( textOnlyMode ) { return parent.create( node.nodeValue.replace( regexp, result ), false ); } span = parent.create( '' ); if ( typeof textOnlyMode === 'undefined' ) { // cache this to avoid adding / removing nodes unnecessarily textOnlyMode = typeof span.appendChild !== 'function'; if ( textOnlyMode ) { parent.remove( span ); return parent.create( node.nodeValue.replace( regexp, result ), false ); } } // "Visual" mode splitNodes = splitTextNode( node, regexp, result ); for ( var i = 0; i < splitNodes.length; i++ ) { span.appendChild( splitNodes[i] ); } node = span; return node; } } else { var contents = parent.contents(node); for ( var y = 0; y < contents.length; y++ ) { if ( contents[y].nodeType === 3 && regexp.test( contents[y].nodeValue ) ) { var nnode; if ( parent.isIE() && contents[y].nodeValue.length > 0 && contents[y].nodeValue.substr(0, 1) === ' ') { nnode = parent.create( emptySpan + contents[y].nodeValue.substr( 1, contents[y].nodeValue.length - 1 ).replace( regexp, result ), true ); } else { nnode = parent.create( contents[y].nodeValue.replace( regexp, result ), true ); } parent.replaceWith( contents[y], nnode ); parent.removeParent( nnode ); ecount++; return node; /* we did a replacement so we can call it quits, errors only get used once */ } } return node; } }; // jshint ignore:line newNode = bringTheHurt(newNode); } parent.replaceWith(n, newNode); } } }); return ecount; }; AtDCore.prototype._walk = function(elements, f) { var i; for (i = 0; i < elements.length; i++) { f.call(f, elements[i]); this._walk(this.contents(elements[i]), f); } }; AtDCore.prototype.removeWords = function(node, w) { var count = 0; var parent = this; this.map(this.findSpans(node).reverse(), function(n) { if (n && (parent.isMarkedNode(n) || parent.hasClass(n, 'mceItemHidden') || parent.isEmptySpan(n)) ) { if (n.innerHTML === ' ') { var nnode = document.createTextNode(' '); /* hax0r */ parent.replaceWith(n, nnode); } else if (!w || n.innerHTML === w) { parent.removeParent(n); count++; } } }); return count; }; AtDCore.prototype.isEmptySpan = function(node) { return (this.getAttrib(node, 'class') === '' && this.getAttrib(node, 'style') === '' && this.getAttrib(node, 'id') === '' && !this.hasClass(node, 'Apple-style-span') && this.getAttrib(node, 'mce_name') === ''); }; AtDCore.prototype.isMarkedNode = function(node) { return (this.hasClass(node, 'hiddenGrammarError') || this.hasClass(node, 'hiddenSpellError') || this.hasClass(node, 'hiddenSuggestion')); }; /* * Context Menu Helpers */ AtDCore.prototype.applySuggestion = function(element, suggestion) { if (suggestion === '(omit)') { this.remove(element); } else { var node = this.create(suggestion); this.replaceWith(element, node); this.removeParent(node); } }; /* * Check for an error */ AtDCore.prototype.hasErrorMessage = function(xmlr) { return (xmlr !== undefined && xmlr.getElementsByTagName('message').item(0) !== null); }; AtDCore.prototype.getErrorMessage = function(xmlr) { return xmlr.getElementsByTagName('message').item(0); }; /* this should always be an error, alas... not practical */ AtDCore.prototype.isIE = function() { return navigator.appName === 'Microsoft Internet Explorer'; }; // TODO: this doesn't seem used anywhere in AtD, moved here from install_atd_l10n.js for eventual back-compat /* a quick poor man's sprintf */ function atd_sprintf(format, values) { var result = format; for (var x = 0; x < values.length; x++) { result = result.replace(new RegExp('%' + (x + 1) + '\\$', 'g'), values[x]); } return result; } plugins/jetpack/modules/after-the-deadline/tinymce/0000755000312500031250000000000012654411246023025 5ustar eacbforgeacbforgplugins/jetpack/modules/after-the-deadline/tinymce/atdbuttontr.gif0000644000312500031250000000017312651056012026060 0ustar eacbforgeacbforgGIF89aÂ[ŒÄ‘éYšpÉ^‰òtÿÿÿ!ù ,@xºÜþ0ÊIP ¬¯88Â|â28Úך²:_å\©;£÷?¡1œŽ $å8TV˜…ž‚P0HÖ«Vš;plugins/jetpack/modules/after-the-deadline/tinymce/css/0000755000312500031250000000000012651056012023606 5ustar eacbforgeacbforgplugins/jetpack/modules/after-the-deadline/tinymce/css/content.css0000644000312500031250000000035112651056012025771 0ustar eacbforgeacbforg.hiddenSpellError { border-bottom: 2px solid red; cursor: default; } .hiddenGrammarError { border-bottom: 2px solid green; cursor: default; } .hiddenSuggestion { border-bottom: 2px solid blue; cursor: default; } plugins/jetpack/modules/after-the-deadline/tinymce/css/content.min.css0000644000312500031250000000027412651056012026557 0ustar eacbforgeacbforg.hiddenSpellError{border-bottom:2px solid red;cursor:default}.hiddenGrammarError{border-bottom:2px solid green;cursor:default}.hiddenSuggestion{border-bottom:2px solid #00f;cursor:default}plugins/jetpack/modules/after-the-deadline/tinymce/editor_plugin.js0000644000312500031250000003740612654411246026241 0ustar eacbforgeacbforg/* * TinyMCE Writing Improvement Tool Plugin * Author: Raphael Mudge (raffi@automattic.com) * * http://www.afterthedeadline.com * * Distributed under the LGPL * * Derived from: * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $ * * @author Moxiecode * @copyright Copyright (C) 2004-2008, Moxiecode Systems AB, All rights reserved. * * Moxiecode Spell Checker plugin released under the LGPL with TinyMCE */ /* jshint onevar: false, sub: true, devel: true */ /* global tinymce, AtDCore, AtD_proofread_click_count */ (function() { var each = tinymce.each, DOM = tinymce.DOM, core; function getLang( key, defaultStr ) { return ( window.AtD_l10n_r0ar && window.AtD_l10n_r0ar[key] ) || defaultStr; } tinymce.create('tinymce.plugins.AfterTheDeadlinePlugin', { getInfo : function() { return { longname : 'After The Deadline', author : 'Raphael Mudge', authorurl : 'http://blog.afterthedeadline.com', infourl : 'http://www.afterthedeadline.com', version : tinymce.majorVersion + '.' + tinymce.minorVersion }; }, /* initializes the functions used by the AtD Core UI Module */ initAtDCore : function(editor/*, plugin*/) { var core = new AtDCore(); core.map = each; core.getAttrib = function(node, key) { return editor.dom.getAttrib(node, key); }; core.findSpans = function(parent) { if (!parent) { return editor.dom.select('span'); } else { return editor.dom.select('span', parent); } }; core.hasClass = function(node, className) { return editor.dom.hasClass(node, className); }; core.contents = function(node) { return node.childNodes; }; core.replaceWith = function(old_node, new_node) { return editor.dom.replace(new_node, old_node); }; core.create = function(node_html) { return editor.dom.create('span', { 'class': 'mceItemHidden' }, node_html); }; core.removeParent = function(node) { editor.dom.remove(node, 1); return node; }; core.remove = function(node) { editor.dom.remove(node); }; core.setIgnoreStrings(editor.getParam('atd_ignore_strings', [] ).join(',')); core.showTypes(editor.getParam('atd_show_types', '')); return core; }, /* called when the plugin is initialized */ init : function(ed, url) { if ( typeof(AtDCore) === 'undefined' ) { return; } var plugin = this; var editor = ed; this.url = url; this.editor = ed; core = ed.core = this.initAtDCore(editor, plugin); /* look at the atd_ignore variable and put that stuff into a hash */ var ignore = tinymce.util.Cookie.getHash('atd_ignore'); if (!ignore) { ignore = {}; } /* add a command to request a document check and process the results. */ editor.addCommand('mceWritingImprovementTool', function(callback) { /* checks if a global var for click stats exists and increments it if it does... */ if (typeof AtD_proofread_click_count !== 'undefined') { AtD_proofread_click_count++; } /* create the nifty spinny thing that says "hizzo, I'm doing something fo realz" */ plugin.editor.setProgressState(1); /* remove the previous errors */ plugin._removeWords(); /* send request to our service */ plugin.sendRequest('checkDocument', ed.getContent({ format: 'raw' }), function(data, request/*, someObject*/) { /* turn off the spinning thingie */ plugin.editor.setProgressState(0); /* if the server is not accepting requests, let the user know */ if ( request.status !== 200 || request.responseText.substr(1, 4) === 'html' || !request.responseXML ) { ed.windowManager.alert( getLang( 'message_server_error', 'There was a problem communicating with the Proofreading service. Try again in one minute.' ), callback ? function() { callback( 0 ); } : function() {} ); return; } /* check to see if things are broken first and foremost */ if (request.responseXML.getElementsByTagName('message').item(0) != null) { ed.windowManager.alert( request.responseXML.getElementsByTagName('message').item(0).firstChild.data, callback ? function() { callback( 0 ); } : function() {} ); return; } var results = core.processXML(request.responseXML); var ecount = 0; if (results.count > 0) { ecount = plugin.markMyWords(results.errors); ed.suggestions = results.suggestions; } if (ecount === 0 && (!callback || callback === undefined)) { ed.windowManager.alert( getLang('message_no_errors_found', 'No writing errors were found.') ); } else if (callback) { callback(ecount); } }); }); /* load cascading style sheet for this plugin */ editor.onInit.add(function() { /* loading the content.css file, why? I have no clue */ if (editor.settings.content_css !== false) { editor.dom.loadCSS(editor.getParam('atd_css_url', url + '/css/content.css')); } }); /* again showing a menu, I have no clue what */ editor.onClick.add(plugin._showMenu, plugin); /* we're showing some sort of menu, no idea what */ editor.onContextMenu.add(plugin._showMenu, plugin); /* strip out the markup before the contents is serialized (and do it on a copy of the markup so we don't affect the user experience) */ editor.onPreProcess.add(function(sender, object) { var dom = sender.dom; each(dom.select('span', object.node).reverse(), function(n) { if (n && (dom.hasClass(n, 'hiddenGrammarError') || dom.hasClass(n, 'hiddenSpellError') || dom.hasClass(n, 'hiddenSuggestion') || dom.hasClass(n, 'mceItemHidden') || (!dom.getAttrib(n, 'class') && !dom.getAttrib(n, 'style') && !dom.getAttrib(n, 'id') && !dom.hasClass(n, 'Apple-style-span') && !dom.getAttrib(n, 'mce_name')))) { dom.remove(n, 1); } }); }); /* cleanup the HTML before executing certain commands */ editor.onBeforeExecCommand.add(function(editor, command) { if (command === 'mceCodeEditor') { plugin._removeWords(); } else if (command === 'mceFullScreen') { plugin._done(); } }); ed.addButton('AtD', { title: getLang( 'button_proofread_tooltip', 'Proofread Writing' ), image: ed.getParam('atd_button_url', url + '/atdbuttontr.gif'), cmd: 'mceWritingImprovementTool' }); }, _removeWords : function(w) { var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark(); ed.core.removeWords(undefined, w); /* force a rebuild of the DOM... even though the right elements are stripped, the DOM is still organized as if the span were there and this breaks my code */ dom.setHTML(dom.getRoot(), dom.getRoot().innerHTML); se.moveToBookmark(b); }, markMyWords : function(errors) { var ed = this.editor; var se = ed.selection, b = se.getBookmark(); var ecount = ed.core.markMyWords(ed.core.contents(this.editor.getBody()), errors); se.moveToBookmark(b); return ecount; }, _showMenu : function(ed, e) { var t = this; ed = t.editor; // not clear why this overwrites the function parameter var m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()); if (!m) { p1 = DOM.getPos(ed.getContentAreaContainer()); //p2 = DOM.getPos(ed.getContainer()); m = ed.controlManager.createDropMenu('spellcheckermenu', { offset_x : p1.x, offset_y : p1.y, 'class' : 'mceNoIcons' }); t._menu = m; } if (ed.core.isMarkedNode(e.target)) { /* remove these other lame-o elements */ m.removeAll(); /* find the correct suggestions object */ var errorDescription = ed.core.findSuggestion(e.target); if (!errorDescription) { m.add({ title: getLang( 'menu_title_no_suggestions', 'No suggestions' ), 'class': 'mceMenuItemTitle' }).setDisabled(1); } else if (errorDescription['suggestions'].length === 0) { m.add({ title: errorDescription['description'], 'class' : 'mceMenuItemTitle' }).setDisabled(1); } else { m.add({ title : errorDescription['description'], 'class' : 'mceMenuItemTitle' }).setDisabled(1); for (var i = 0; i < errorDescription['suggestions'].length; i++) { (function(sugg) { m.add({ title : sugg, onclick : function() { ed.core.applySuggestion(e.target, sugg); t._checkDone(); } }); })(errorDescription['suggestions'][i]); // jshint ignore:line } m.addSeparator(); } if (errorDescription && errorDescription['moreinfo']) { (function(url) { m.add({ title : getLang( 'menu_option_explain', 'Explain...' ), onclick : function() { ed.windowManager.open({ url : url, width : 480, height : 380, inline : true }, { theme_url : this.url }); } }); })(errorDescription['moreinfo']); m.addSeparator(); } m.add({ title : getLang( 'menu_option_ignore_once', 'Ignore suggestion' ), onclick : function() { dom.remove(e.target, 1); t._checkDone(); } }); if (String(this.editor.getParam('atd_ignore_enable', 'false')) === 'true') { m.add({ title : getLang( 'menu_option_ignore_always', 'Ignore always' ), onclick : function() { var url = t.editor.getParam('atd_ignore_rpc_url', '{backend}'); if (url === '{backend}') { /* Default scheme is to save ignore preferences in a cookie */ var ignore = tinymce.util.Cookie.getHash('atd_ignore'); if (!ignore) { ignore = {}; } ignore[e.target.innerHTML] = 1; tinymce.util.Cookie.setHash('atd_ignore', ignore, new Date( (new Date().getTime()) + 157680000000) ); } else { /* Plugin is configured to send ignore preferences to server, do that */ var id = t.editor.getParam('atd_rpc_id', '12345678'); tinymce.util.XHR.send({ url : url + encodeURI(e.target.innerHTML).replace(/&/g, '%26') + '&key=' + id, content_type : 'text/xml', async : true, type : 'GET', success : function(/* type, req, o */) { /* do nothing */ }, error : function( type, req, o ) { alert( 'Ignore preference save failed\n' + type + '\n' + req.status + '\nAt: ' + o.url ); } }); /* update atd_ignore_strings with the new value */ t.editor.core.setIgnoreStrings(e.target.innerHTML); /* this does an update */ } t._removeWords(e.target.innerHTML); t._checkDone(); } }); } else { m.add({ title : getLang( 'menu_option_ignore_all', 'Ignore all' ), onclick : function() { t._removeWords(e.target.innerHTML); t._checkDone(); } }); } /* show the menu please */ ed.selection.select(e.target); p1 = dom.getPos(e.target); m.showMenu(p1.x, p1.y + e.target.offsetHeight - vp.y); return tinymce.dom.Event.cancel(e); } else { m.hideMenu(); } }, /* loop through editor DOM, call _done if no mce tags exist. */ _checkDone : function() { var t = this, ed = t.editor, dom = ed.dom, o; each(dom.select('span'), function(n) { if (n && dom.hasClass(n, 'mceItemHidden')) { o = true; return false; } }); if (!o) { t._done(); } }, /* remove all tags, hide the menu, and fire a dom change event */ _done : function() { var plugin = this; plugin._removeWords(); if (plugin._menu) { plugin._menu.hideMenu(); } plugin.editor.nodeChanged(); }, sendRequest : function(file, data, success) { var id = this.editor.getParam('atd_rpc_id', '12345678'); var url = this.editor.getParam('atd_rpc_url', '{backend}'); var plugin = this; if (url === '{backend}' || id === '12345678') { this.editor.setProgressState(0); alert('Please specify: atd_rpc_url and atd_rpc_id'); return; } tinymce.util.XHR.send({ url : url + '/' + file, content_type : 'text/xml', type : 'POST', data : 'data=' + encodeURI(data).replace(/&/g, '%26') + '&key=' + id, async : true, success : success, error : function( type, req, o ) { plugin.editor.setProgressState(0); alert( type + '\n' + req.status + '\nAt: ' + o.url ); } }); } }); // Register plugin tinymce.PluginManager.add('AtD', tinymce.plugins.AfterTheDeadlinePlugin); })(); plugins/jetpack/modules/after-the-deadline/tinymce/plugin.js0000644000312500031250000002605312654411246024667 0ustar eacbforgeacbforg/* global tinymce */ /* * TinyMCE Writing Improvement Tool Plugin * Author: Raphael Mudge (raffi@automattic.com) * * Updated for TinyMCE 4.0 * * http://www.afterthedeadline.com * * Distributed under the LGPL * * Derived from: * $Id: editor_plugin_src.js 425 2007-11-21 15:17:39Z spocke $ * * @author Moxiecode * @copyright Copyright (C) 2004-2008, Moxiecode Systems AB, All rights reserved. * * Moxiecode Spell Checker plugin released under the LGPL with TinyMCE */ tinymce.PluginManager.add( 'AtD', function( editor ) { var suggestionsMenu, started, atdCore, dom, each = tinymce.each; /* initializes the functions used by the AtD Core UI Module */ function initAtDCore() { atdCore = new window.AtDCore(); atdCore.map = each; atdCore._isTinyMCE = true; atdCore.getAttrib = function( node, key ) { return dom.getAttrib( node, key ); }; atdCore.findSpans = function( parent ) { if ( parent === undefined ) { return dom.select('span'); } else { return dom.select( 'span', parent ); } }; atdCore.hasClass = function( node, className ) { return dom.hasClass( node, className ); }; atdCore.contents = function( node ) { return node.childNodes; }; atdCore.replaceWith = function( old_node, new_node ) { return dom.replace( new_node, old_node ); }; atdCore.create = function( node_html ) { return dom.create( 'span', { 'class': 'mceItemHidden', 'data-mce-bogus': 1 }, node_html ); }; atdCore.removeParent = function( node ) { dom.remove( node, true ); return node; }; atdCore.remove = function( node ) { dom.remove( node ); }; atdCore.setIgnoreStrings( editor.getParam( 'atd_ignore_strings', [] ).join(',') ); atdCore.showTypes( editor.getParam( 'atd_show_types', '' ) ); } function getLang( key, defaultStr ) { return ( window.AtD_l10n_r0ar && window.AtD_l10n_r0ar[key] ) || defaultStr; } function isMarkedNode( node ) { return ( node.className && /\bhidden(GrammarError|SpellError|Suggestion)\b/.test( node.className ) ); } function markMyWords( errors ) { return atdCore.markMyWords( atdCore.contents( editor.getBody() ), errors ); } // If no more suggestions, finish. function checkIfFinished() { if ( ! editor.dom.select('span.hiddenSpellError, span.hiddenGrammarError, span.hiddenSuggestion').length ) { if ( suggestionsMenu ) { suggestionsMenu.hideMenu(); } finish(); } } function ignoreWord( target, word, all ) { var dom = editor.dom; if ( all ) { each( editor.dom.select( 'span.hiddenSpellError, span.hiddenGrammarError, span.hiddenSuggestion' ), function( node ) { var text = node.innerText || node.textContent; if ( text === word ) { dom.remove( node, true ); } }); } else { dom.remove( target, true ); } checkIfFinished(); } // Called when the user clicks "Finish" or when no more suggestions left. // Removes all remaining spans and fires custom event. function finish() { var node, dom = editor.dom, regex = new RegExp( 'mceItemHidden|hidden(((Grammar|Spell)Error)|Suggestion)' ), nodes = dom.select('span'), i = nodes.length; while ( i-- ) { // reversed node = nodes[i]; if ( node.className && regex.test( node.className ) ) { dom.remove( node, true ); } } // Rebuild the DOM so AtD core can find the text nodes editor.setContent( editor.getContent({ format: 'raw' }), { format: 'raw' } ); started = false; editor.nodeChanged(); editor.fire('SpellcheckEnd'); } function sendRequest( file, data, success ) { var id = editor.getParam( 'atd_rpc_id', '12345678' ), url = editor.getParam( 'atd_rpc_url', '{backend}' ); if ( url === '{backend}' || id === '12345678' ) { window.alert( 'Please specify: atd_rpc_url and atd_rpc_id' ); return; } // create the nifty spinny thing that says "hizzo, I'm doing something fo realz" editor.setProgressState( true ); tinymce.util.XHR.send({ url: url + '/' + file, content_type: 'text/xml', type: 'POST', data: 'data=' + encodeURI( data ).replace( /&/g, '%26' ) + '&key=' + id, success: success, error: function( type, req, o ) { editor.setProgressState(); window.alert( type + '\n' + req.status + '\nAt: ' + o.url ); } }); } function storeIgnoredStrings( /*text*/ ) { // Store in sessionStorage? } function setAlwaysIgnore( text ) { var url = editor.getParam( 'atd_ignore_rpc_url' ); if ( ! url || url === '{backend}' ) { // Store ignored words for this session only storeIgnoredStrings( text ); } else { // Plugin is configured to send ignore preferences to server, do that tinymce.util.XHR.send({ url: url + encodeURIComponent( text ) + '&key=' + editor.getParam( 'atd_rpc_id', '12345678' ), content_type: 'text/xml', type: 'GET', error: function() { storeIgnoredStrings( text ); } }); } // Update atd_ignore_strings with the new value atdCore.setIgnoreStrings( text ); } // Create the suggestions menu function showSuggestions( target ) { var pos, root, targetPos, items = [], text = target.innerText || target.textContent, errorDescription = atdCore.findSuggestion( target ); if ( ! errorDescription ) { items.push({ text: getLang( 'menu_title_no_suggestions', 'No suggestions' ), classes: 'atd-menu-title', disabled: true }); } else { items.push({ text: errorDescription.description, classes: 'atd-menu-title', disabled: true }); if ( errorDescription.suggestions.length ) { items.push({ text: '-' }); // separator each( errorDescription.suggestions, function( suggestion ) { items.push({ text: suggestion, onclick: function() { atdCore.applySuggestion( target, suggestion ); checkIfFinished(); } }); }); } } if ( errorDescription && errorDescription.moreinfo ) { items.push({ text: '-' }); // separator items.push({ text: getLang( 'menu_option_explain', 'Explain...' ), onclick : function() { editor.windowManager.open({ title: getLang( 'menu_option_explain', 'Explain...' ), url: errorDescription.moreinfo, width: 480, height: 380, inline: true }); } }); } items.push.apply( items, [ { text: '-' }, // separator { text: getLang( 'menu_option_ignore_once', 'Ignore suggestion' ), onclick: function() { ignoreWord( target, text ); }} ]); if ( editor.getParam( 'atd_ignore_enable' ) ) { items.push({ text: getLang( 'menu_option_ignore_always', 'Ignore always' ), onclick: function() { setAlwaysIgnore( text ); ignoreWord( target, text, true ); } }); } else { items.push({ text: getLang( 'menu_option_ignore_all', 'Ignore all' ), onclick: function() { ignoreWord( target, text, true ); } }); } // Render menu suggestionsMenu = new tinymce.ui.Menu({ items: items, context: 'contextmenu', onautohide: function( event ) { if ( isMarkedNode( event.target ) ) { event.preventDefault(); } }, onhide: function() { suggestionsMenu.remove(); suggestionsMenu = null; } }); suggestionsMenu.renderTo( document.body ); // Position menu pos = tinymce.DOM.getPos( editor.getContentAreaContainer() ); targetPos = editor.dom.getPos( target ); root = editor.dom.getRoot(); // Adjust targetPos for scrolling in the editor if ( root.nodeName === 'BODY' ) { targetPos.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; targetPos.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; } else { targetPos.x -= root.scrollLeft; targetPos.y -= root.scrollTop; } pos.x += targetPos.x; pos.y += targetPos.y; suggestionsMenu.moveTo( pos.x, pos.y + target.offsetHeight ); } // Init everything editor.on( 'init', function() { if ( typeof window.AtDCore === 'undefined' ) { return; } // Set dom and atdCore dom = editor.dom; initAtDCore(); // add a command to request a document check and process the results. editor.addCommand( 'mceWritingImprovementTool', function( callback ) { var results, errorCount = 0; if ( typeof callback !== 'function' ) { callback = function(){}; } // checks if a global var for click stats exists and increments it if it does... if ( typeof window.AtD_proofread_click_count !== 'undefined' ) { window.AtD_proofread_click_count++; } // remove the previous errors if ( started ) { finish(); return; } // send request to our service sendRequest( 'checkDocument', editor.getContent({ format: 'raw' }), function( data, request ) { // turn off the spinning thingie editor.setProgressState(); // if the server is not accepting requests, let the user know if ( request.status !== 200 || request.responseText.substr( 1, 4 ) === 'html' || ! request.responseXML ) { editor.windowManager.alert( getLang( 'message_server_error', 'There was a problem communicating with the Proofreading service. Try again in one minute.' ), callback(0) ); return; } // check to see if things are broken first and foremost if ( request.responseXML.getElementsByTagName('message').item(0) !== null ) { editor.windowManager.alert( request.responseXML.getElementsByTagName('message').item(0).firstChild.data, callback(0) ); return; } results = atdCore.processXML( request.responseXML ); if ( results.count > 0 ) { errorCount = markMyWords( results.errors ); } if ( ! errorCount ) { editor.windowManager.alert( getLang( 'message_no_errors_found', 'No writing errors were found.' ) ); } else { started = true; editor.fire('SpellcheckStart'); } callback( errorCount ); }); }); if ( editor.settings.content_css !== false ) { // CSS for underlining suggestions dom.addStyle( '.hiddenSpellError{border-bottom:2px solid red;cursor:default;}' + '.hiddenGrammarError{border-bottom:2px solid green;cursor:default;}' + '.hiddenSuggestion{border-bottom:2px solid blue;cursor:default;}' ); } // Menu z-index > DFW tinymce.DOM.addStyle( 'div.mce-floatpanel{z-index:150100 !important;}' ); // Click on misspelled word editor.on( 'click', function( event ) { if ( isMarkedNode( event.target ) ) { event.preventDefault(); editor.selection.select( event.target ); // Create the suggestions menu showSuggestions( event.target ); } }); }); editor.addMenuItem( 'spellchecker', { text: getLang( 'button_proofread_tooltip', 'Proofread Writing' ), context: 'tools', cmd: 'mceWritingImprovementTool', onPostRender: function() { var self = this; editor.on('SpellcheckStart SpellcheckEnd', function() { self.active( started ); }); } }); editor.addButton( 'spellchecker', { tooltip: getLang( 'button_proofread_tooltip', 'Proofread Writing' ), cmd: 'mceWritingImprovementTool', onPostRender: function() { var self = this; editor.on( 'SpellcheckStart SpellcheckEnd', function() { self.active( started ); }); } }); editor.on( 'remove', function() { if ( suggestionsMenu ) { suggestionsMenu.remove(); suggestionsMenu = null; } }); }); plugins/jetpack/modules/after-the-deadline/config-unignore.php0000644000312500031250000001037712654411246025167 0ustar eacbforgeacbforgID == 0 ) return; check_admin_referer( 'atd_ignore' ); $ignores = explode( ',', AtD_get_setting( $user->ID, 'AtD_ignored_phrases') ); array_push( $ignores, $_GET['phrase'] ); $ignores = array_filter( array_map( 'strip_tags', $ignores ) ); AtD_update_setting( $user->ID, 'AtD_ignored_phrases', implode( ',', $ignores ) ); header( 'Content-Type: text/xml' ); echo ''; die(); } /* * Called when a POST occurs, used to save AtD ignored phrases */ function AtD_process_unignore_update() { if ( ! AtD_is_allowed() ) return; if ( ! isset( $_POST['AtD_ignored_phrases'] ) ) return; $user = wp_get_current_user(); if ( ! $user || $user->ID == 0 ) return; $ignores = array_filter( array_map( 'strip_tags', explode( ',', $_POST['AtD_ignored_phrases'] ) ) ); AtD_update_setting( $user->ID, 'AtD_ignored_phrases', join( ',', $ignores ) ); } /* * Display the AtD unignore form on a page */ function AtD_display_unignore_form() { if ( ! AtD_is_allowed() ) return; $user = wp_get_current_user(); if ( ! $user || $user->ID == 0 ) return; $ignores = AtD_get_setting( $user->ID, 'AtD_ignored_phrases' ); ?>

        ').replace(/\&/g, '&'); text = encodeURIComponent( text.replace( /\%/g, '%25' ) ); /* % not being escaped here creates problems, I don't know why. */ /* do some sanity checks based on the browser */ if ((text.length > 2000 && navigator.appName === 'Microsoft Internet Explorer') || text.length > 7800) { if (callback_f !== undefined && callback_f.error !== undefined) { callback_f.error('Maximum text length for this browser exceeded'); } return; } /* do some cross-domain AJAX action with CSSHttpRequest */ CSSHttpRequest.get(AtD.rpc_css + text + '&lang=' + AtD.rpc_css_lang + '&nocache=' + (new Date().getTime()), function(response) { /* do some magic to convert the response into an XML document */ var xml; if (navigator.appName === 'Microsoft Internet Explorer') { xml = new ActiveXObject('Microsoft.XMLDOM'); xml.async = false; xml.loadXML(response); } else { xml = (new DOMParser()).parseFromString(response, 'text/xml'); } /* check for and display error messages from the server */ if (AtD.core.hasErrorMessage(xml)) { if (AtD.callback_f !== undefined && AtD.callback_f.error !== undefined) { AtD.callback_f.error(AtD.core.getErrorMessage(xml)); } return; } /* highlight the errors */ AtD.container = container_id; var count = Number( AtD.processXML(container_id, xml) ); if (AtD.callback_f !== undefined && AtD.callback_f.ready !== undefined) { AtD.callback_f.ready(count); } if (count === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(count); } AtD.counter = count; AtD.count = count; }); }; /* check a div for any incorrectly spelled words */ AtD.check = function(container_id, callback_f) { /* checks if a global var for click stats exists and increments it if it does... */ if (typeof AtD_proofread_click_count !== 'undefined') { AtD_proofread_click_count++; } AtD.callback_f = callback_f; /* remember the callback for later */ AtD.remove(container_id); var container = jQuery('#' + container_id); var text = jQuery.trim(container.html()); text = text.replace(/\</g, '<').replace(/\>/g, '>').replace(/\&/g, '&'); text = encodeURIComponent( text ); /* re-escaping % is not necessary here. don't do it */ jQuery.ajax({ type : 'POST', url : AtD.rpc + '/checkDocument', data : 'key=' + AtD.api_key + '&data=' + text, format : 'raw', dataType : (jQuery.browser.msie) ? 'text' : 'xml', error : function(XHR, status, error) { if (AtD.callback_f !== undefined && AtD.callback_f.error !== undefined) { AtD.callback_f.error(status + ': ' + error); } }, success : function(data) { /* apparently IE likes to return XML as plain text-- work around from: http://docs.jquery.com/Specifying_the_Data_Type_for_AJAX_Requests */ var xml; if (typeof data === 'string') { xml = new ActiveXObject('Microsoft.XMLDOM'); xml.async = false; xml.loadXML(data); } else { xml = data; } if (AtD.core.hasErrorMessage(xml)) { if (AtD.callback_f !== undefined && AtD.callback_f.error !== undefined) { AtD.callback_f.error(AtD.core.getErrorMessage(xml)); } return; } /* on with the task of processing and highlighting errors */ AtD.container = container_id; var count = Number( AtD.processXML(container_id, xml) ); if (AtD.callback_f !== undefined && AtD.callback_f.ready !== undefined) { AtD.callback_f.ready(count); } if (count === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(count); } AtD.counter = count; AtD.count = count; } }); }; AtD.remove = function(container_id) { AtD._removeWords(container_id, null); }; AtD.clickListener = function(event) { if (AtD.core.isMarkedNode(event.target)) { AtD.suggest(event.target); } }; AtD.processXML = function(container_id, responseXML) { var results = AtD.core.processXML(responseXML); if (results.count > 0) { results.count = AtD.core.markMyWords(jQuery('#' + container_id).contents(), results.errors); } jQuery('#' + container_id).unbind('click', AtD.clickListener); jQuery('#' + container_id).click(AtD.clickListener); return results.count; }; AtD.useSuggestion = function(word) { this.core.applySuggestion(AtD.errorElement, word); AtD.counter --; if (AtD.counter === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(AtD.count); } }; AtD.editSelection = function() { var parent = AtD.errorElement.parent(); if (AtD.callback_f !== undefined && AtD.callback_f.editSelection !== undefined) { AtD.callback_f.editSelection(AtD.errorElement); } if (AtD.errorElement.parent() !== parent) { AtD.counter --; if (AtD.counter === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(AtD.count); } } }; AtD.ignoreSuggestion = function() { AtD.core.removeParent(AtD.errorElement); AtD.counter --; if (AtD.counter === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(AtD.count); } }; AtD.ignoreAll = function(container_id) { var target = AtD.errorElement.text(); var removed = AtD._removeWords(container_id, target); AtD.counter -= removed; if (AtD.counter === 0 && AtD.callback_f !== undefined && AtD.callback_f.success !== undefined) { AtD.callback_f.success(AtD.count); } if (AtD.callback_f !== undefined && AtD.callback_f.ignore !== undefined) { AtD.callback_f.ignore(target); AtD.core.setIgnoreStrings(target); } }; AtD.explainError = function() { if (AtD.callback_f !== undefined && AtD.callback_f.explain !== undefined) { AtD.callback_f.explain(AtD.explainURL); } }; AtD.suggest = function(element) { /* construct the menu if it doesn't already exist */ var suggest; if (jQuery('#suggestmenu').length === 0) { suggest = jQuery('
        '); suggest.prependTo('body'); } else { suggest = jQuery('#suggestmenu'); suggest.hide(); } /* find the correct suggestions object */ var errorDescription = AtD.core.findSuggestion(element); /* build up the menu y0 */ AtD.errorElement = jQuery(element); suggest.empty(); if (errorDescription === undefined) { suggest.append('' + AtD.getLang('menu_title_no_suggestions', 'No suggestions') + ''); } else if (errorDescription['suggestions'].length === 0) { suggest.append('' + errorDescription['description'] + ''); } else { suggest.append('' + errorDescription['description'] + ''); for (var i = 0; i < errorDescription['suggestions'].length; i++) { (function(sugg) { suggest.append('' + sugg + ''); })(errorDescription['suggestions'][i]); // jshint ignore:line } } /* do the explain menu if configured */ if (AtD.callback_f !== undefined && AtD.callback_f.explain !== undefined && errorDescription['moreinfo'] !== undefined) { suggest.append('' + AtD.getLang('menu_option_explain', 'Explain...') + ''); AtD.explainURL = errorDescription['moreinfo']; } /* do the ignore option */ suggest.append('' + AtD.getLang('menu_option_ignore_once', 'Ignore suggestion') + ''); /* add the edit in place and ignore always option */ if (AtD.callback_f !== undefined && AtD.callback_f.editSelection !== undefined) { if (AtD.callback_f !== undefined && AtD.callback_f.ignore !== undefined) { suggest.append('' + AtD.getLang('menu_option_ignore_always', 'Ignore always') + ''); } else { suggest.append('' + AtD.getLang('menu_option_ignore_all', 'Ignore all') + ''); } suggest.append('' + AtD.getLang('menu_option_edit_selection', 'Edit Selection...') + ''); } else { if (AtD.callback_f !== undefined && AtD.callback_f.ignore !== undefined) { suggest.append('' + AtD.getLang('menu_option_ignore_always', 'Ignore always') + ''); } else { suggest.append('' + AtD.getLang('menu_option_ignore_all', 'Ignore all') + ''); } } /* show the menu */ var pos = jQuery(element).offset(); var width = jQuery(element).width(); /* a sanity check for Internet Explorer--my favorite browser in every possible way */ if (width > 100) { width = 50; } jQuery(suggest).css({ left: (pos.left + width) + 'px', top: pos.top + 'px' }); jQuery(suggest).fadeIn(200); /* bind events to make the menu disappear when the user clicks outside of it */ AtD.suggestShow = true; setTimeout(function() { jQuery('body').bind('click', function() { if (!AtD.suggestShow) { jQuery('#suggestmenu').fadeOut(200); } }); }, 1); setTimeout(function() { AtD.suggestShow = false; }, 2); }; AtD._removeWords = function(container_id, w) { return this.core.removeWords(jQuery('#' + container_id), w); }; /* * Set prototypes used by AtD Core UI */ AtD.initCoreModule = function() { var core = new AtDCore(); core.hasClass = function(node, className) { return jQuery(node).hasClass(className); }; core.map = jQuery.map; core.contents = function(node) { return jQuery(node).contents(); }; core.replaceWith = function(old_node, new_node) { return jQuery(old_node).replaceWith(new_node); }; core.findSpans = function(parent) { return jQuery.makeArray(parent.find('span')); }; core.create = function(string/*, isTextNode*/) { // replace out all tags with &-equivalents so that we preserve tag text. string = string.replace(/\&/g, '&'); string = string.replace(//g, '>'); // find all instances of AtD-created spans var matches = string.match(/\<span class="hidden\w+?" pre="[^"]*"\>.*?\<\/span\>/g); var x; // ... and fix the tags in those substrings. if (matches) { for (x = 0; x < matches.length; x++) { string = string.replace(matches[x], matches[x].replace(/\</gi, '<').replace(/\>/gi, '>')); } } if (core.isIE()) { // and... one more round of corrections for our friends over at the Internet Explorer matches = string.match(/\<span class="mceItemHidden"\>\&nbsp;\<\/span>/g, string); //|<BR.*?class.*?atd_remove_me.*?\>/gi, string); if (matches) { for (x = 0; x < matches.length; x++) { string = string.replace(matches[x], matches[x].replace(/\</gi, '<').replace(/\>/gi, '>').replace(/\&/gi, '&')); } } } var node = jQuery(''); node.html(string); return node; }; core.remove = function(node) { return jQuery(node).remove(); }; core.removeParent = function(node) { /* unwrap exists in jQuery 1.4+ only. Thankfully because replaceWith as-used here won't work in 1.4 */ if (jQuery(node).unwrap) { return jQuery(node).contents().unwrap(); } else { return jQuery(node).replaceWith(jQuery(node).html()); } }; core.getAttrib = function(node, name) { return jQuery(node).attr(name); }; return core; }; AtD.core = AtD.initCoreModule(); plugins/jetpack/modules/after-the-deadline/proxy.php0000644000312500031250000000641012654411246023250 0ustar eacbforgeacbforg $request, 'headers' => array( 'Content-Type' => 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' ), 'Host' => $host, 'User-Agent' => 'AtD/0.1' ), 'httpversion' => '1.0', /** * Change the timeout time for AtD post. * * @module after-the-deadline * * @since 1.2.3 * * @param int $var Timeout time in seconds, default 15. */ 'timeout' => apply_filters( 'atd_http_post_timeout', 15 ), ); // Handle non-standard ports being passed in. if ( ( 80 !== $port ) && is_numeric( $port ) && ( intval( $port ) > 0 ) ) { $host .= ':' . intval( $port ); } // Strip any / off the begining so we can add it back and protect against SSRF $path = ltrim( $path, '/' ); $AtD_url = set_url_scheme( "http://{$host}/{$path}" ); $response = wp_remote_post( $AtD_url, $http_args ); $code = (int) wp_remote_retrieve_response_code( $response ); if ( is_wp_error( $response ) ) { /** * Fires when there is a post error to AtD. * * @module after-the-deadline * * @since 1.2.3 * * @param int|string http-error The error that AtD runs into. */ do_action( 'atd_http_post_error', 'http-error' ); return array(); } elseif ( 200 != $code ) { /** This action is documented in modules/after-the-deadline/proxy.php */ do_action( 'atd_http_post_error', $code ); } return array( wp_remote_retrieve_headers( $response ), wp_remote_retrieve_body( $response ), ); } /* * This function is called as an action handler to admin-ajax.php */ function AtD_redirect_call() { if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) $postText = trim( file_get_contents( 'php://input' ) ); check_admin_referer( 'proxy_atd' ); $url = $_GET['url']; /** * Change the AtD service domain. * * @module after-the-deadline * * @since 1.2.3 * * @param string $var The URL for AtD service domain, default is service.afterthedeadline.com. */ $service = apply_filters( 'atd_service_domain', 'service.afterthedeadline.com' ); $user = wp_get_current_user(); $atd_lang = get_locale(); // If we're on WPCOM, this function should be available. if ( function_exists( 'get_user_lang_code' ) ) { $atd_lang = get_user_lang_code( $user->ID ); } if ( ! empty( $atd_lang ) ) { if ( strpos($atd_lang, 'pt') !== false ) $service = 'pt.service.afterthedeadline.com'; else if ( strpos($atd_lang, 'de') !== false ) $service = 'de.service.afterthedeadline.com'; else if ( strpos($atd_lang, 'es') !== false ) $service = 'es.service.afterthedeadline.com'; else if ( strpos($atd_lang, 'fr') !== false ) $service = 'fr.service.afterthedeadline.com'; } $guess = strcmp( AtD_get_setting( $user->ID, 'AtD_guess_lang' ), "true" ) == 0 ? "true" : "false"; $data = AtD_http_post( $postText . "&guess=$guess", defined('ATD_HOST') ? ATD_HOST : $service, $url, defined('ATD_PORT') ? ATD_PORT : 80 ); header( 'Content-Type: text/xml' ); if ( ! empty( $data[1] ) ) echo $data[1]; die(); } plugins/jetpack/modules/after-the-deadline/rtl/0000755000312500031250000000000012651056012022147 5ustar eacbforgeacbforgplugins/jetpack/modules/after-the-deadline/rtl/atd-rtl.css0000644000312500031250000000421112651056012024226 0ustar eacbforgeacbforg/* This file was automatically generated on Mar 20 2014 23:59:38 */ /* AtD error styles */ .hiddenSpellError { border-bottom: 2px solid red; cursor: default; } .hiddenGrammarError { border-bottom: 2px solid green; cursor: default; } .hiddenSuggestion { border-bottom: 2px solid blue; cursor: default; } /* Menu styles derived from: * jquery.spellchecker.js - a simple jQuery Spell Checker * Copyright (c) 2008 Richard Willis * MIT license : http://www.opensource.org/licenses/mit-license.php * Project : http://jquery-spellchecker.googlecode.com */ #suggestmenu { min-width: 122px; background: #ebeaeb; position: absolute; display: none; z-index: 9999; overflow: none; margin-top: 1px; text-align: right; font-size: 11px; font-family: Tahoma, Verdana, Arial, Helvetica; } #suggestmenu strong { background: #cccccc; font-weight: bold; padding:3px 6px 3px 6px; display:block; border:1px solid #dddddd; border-bottom: 1px solid #aaaaaa; color: black; } #suggestmenu em { text-align:center; padding:3px 6px 3px 6px; display:block; border-top:1px solid #ccc; border-right:1px solid #ccc; } #suggestmenu a, #suggestmenu a:visited { background: #ebeaeb; border-right:1px solid #dddddd; border-left:1px solid #dddddd; padding:3px 6px 3px 6px; display:block; margin:0px; text-decoration:none; color: black; outline:none } #suggestmenu a.first, #suggestmenu a.first:visited { border-top:1px solid #dddddd; } .spell_sep_bottom { border-bottom: 1px solid #dddddd; } .spell_sep_top { border-top: 1px solid #aaaaaa; } #suggestmenu a:hover { color:#000; background: #f5f5f5; } #suggestmenu .foot { border-top:1px solid #aaaaaa; background:#fff } #suggestmenu .foot a, #suggestmenu .foot a:visited { outline:none } /* TinyMCE 4.0 */ div.mce-atd-menu-title.mce-disabled { padding: 3px 12px 0; } div.mce-atd-menu-title.mce-disabled:hover, div.mce-atd-menu-title.mce-disabled:hover span.mce-text { background: none; color: #888; cursor: default; } div.mce-atd-menu-title.mce-disabled span.mce-text { font-weight: bold; color: #888; } plugins/jetpack/modules/after-the-deadline/atd-rtl.min.css0000644000312500031250000000264612651056012024221 0ustar eacbforgeacbforg.hiddenSpellError{border-bottom:2px solid red;cursor:default}.hiddenGrammarError{border-bottom:2px solid green;cursor:default}.hiddenSuggestion{border-bottom:2px solid #00f;cursor:default}#suggestmenu{min-width:122px;background:#ebeaeb;position:absolute;display:none;z-index:9999;overflow:none;margin-top:1px;text-align:right;font-size:11px;font-family:Tahoma,Verdana,Arial,Helvetica}#suggestmenu strong{background:#ccc;font-weight:700;padding:3px 6px;display:block;border:1px solid #ddd;border-bottom:1px solid #aaa;color:#000}#suggestmenu em{text-align:center;padding:3px 6px;display:block;border-top:1px solid #ccc;border-right:1px solid #ccc}#suggestmenu a,#suggestmenu a:visited{background:#ebeaeb;border-right:1px solid #ddd;border-left:1px solid #ddd;padding:3px 6px;display:block;margin:0;text-decoration:none;color:#000;outline:0}#suggestmenu a.first,#suggestmenu a.first:visited{border-top:1px solid #ddd}.spell_sep_bottom{border-bottom:1px solid #ddd}.spell_sep_top{border-top:1px solid #aaa}#suggestmenu a:hover{color:#000;background:#f5f5f5}#suggestmenu .foot{border-top:1px solid #aaa;background:#fff}#suggestmenu .foot a,#suggestmenu .foot a:visited{outline:0}div.mce-atd-menu-title.mce-disabled{padding:3px 12px 0}div.mce-atd-menu-title.mce-disabled:hover,div.mce-atd-menu-title.mce-disabled:hover span.mce-text{background:0 0;color:#888;cursor:default}div.mce-atd-menu-title.mce-disabled span.mce-text{font-weight:700;color:#888}plugins/jetpack/modules/after-the-deadline/atd-autoproofread.js0000644000312500031250000000715112654411246025337 0ustar eacbforgeacbforg/* jshint devel: true, onevar: false */ /* global tinyMCE, AtD_restore_if_proofreading, AtD_check, AtD_unbind_proofreader_listeners, AtD, AtD_bind_proofreader_listeners, AtD_check_when */ /* the AtD/jQuery and AtD/TinyMCE plugins check if this variable exists and increment it when a proofread check happens */ var AtD_proofread_click_count = 0; /* This is function called when the publish/update button is pressed */ function AtD_submit_check( e ) { /* User has already checked their document... no need to hold up their submit */ if (AtD_proofread_click_count > 0) { return; } /* Let's not submit the form, shall we? */ e.stopImmediatePropagation(); e.preventDefault(); /* We'll call the AtD function based on which editor is currently active */ if ( typeof(tinyMCE) !== 'undefined' && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden() ) { /* Woo! We're running tinyMCE! */ tinyMCE.activeEditor.execCommand('mceWritingImprovementTool', AtD_submit_check_callback); } else { /* Go Go HTML editor! */ AtD_restore_if_proofreading(); AtD_check( AtD_submit_check_callback ); } } /* This is the callback function that runs after the publish/update button is pressed */ function AtD_submit_check_callback(count) { count = Number( count || 0 ); AtD_unbind_proofreader_listeners(); if ( 0 === count || 1 < AtD_proofread_click_count ) { /* if no errors were found, submit form */ AtD_update_post(); } else if ( -1 === count ) { /* If there was an error, alert the user and submit form */ alert( AtD.getLang('message_server_error', 'There was a problem communicating with the Proofreading service. Try again in one minute.') ); AtD_update_post(); } else { var original_post_status = jQuery('#original_post_status').val(); /* Okay, the user has tried to publish/update already but there are still errors. Ask them what to do */ var message; if ( original_post_status === 'publish' ) { message = AtD.getLang('dialog_confirm_post_publish', 'The proofreader has suggestions for this post. Are you sure you want to publish it?\n\nPress OK to publish your post, or Cancel to view the suggestions and edit your post.'); } else { message = AtD.getLang('dialog_confirm_post_update', 'The proofreader has suggestions for this post. Are you sure you want to update it?\n\nPress OK to update your post, or Cancel to view the suggestions and edit your post.'); } if ( confirm( message ) ) { AtD_update_post(); } else { AtD_bind_proofreader_listeners(); AtD_kill_autoproofread(); } /* Let's do some interface clean-up */ jQuery('#publish').removeClass('button-primary-disabled'); jQuery('#ajax-loading').hide(); } } /* Stop the proofreader from doing its auto proofread thing (activated when the proofread button is clicked) */ function AtD_kill_autoproofread() { jQuery('#publish').unbind('click.AtD_submit_check'); } /* a function to force the post to be submitted */ function AtD_update_post() { if ( typeof(tinyMCE) === 'undefined' || !tinyMCE.activeEditor || tinyMCE.activeEditor.isHidden() ) { AtD_restore_if_proofreading(); } jQuery('#publish').unbind('click.AtD_submit_check').click(); } /* init the autoproofread options */ jQuery( document ).ready( function($){ var orig_status = $('#original_post_status').val(); /* check if auto-check is enabled && if #content exists */ if ( typeof AtD_check_when !== 'undefined' && $('#content').length && ( ( orig_status !== 'publish' && AtD_check_when.onpublish ) || ( ( orig_status === 'publish' || orig_status === 'schedule' ) && AtD_check_when.onupdate ) ) ) { $('#publish').bind( 'click.AtD_submit_check', AtD_submit_check ); } }); plugins/jetpack/modules/after-the-deadline/atd.css0000644000312500031250000000410212651056012022625 0ustar eacbforgeacbforg/* AtD error styles */ .hiddenSpellError { border-bottom: 2px solid red; cursor: default; } .hiddenGrammarError { border-bottom: 2px solid green; cursor: default; } .hiddenSuggestion { border-bottom: 2px solid blue; cursor: default; } /* Menu styles derived from: * jquery.spellchecker.js - a simple jQuery Spell Checker * Copyright (c) 2008 Richard Willis * MIT license : http://www.opensource.org/licenses/mit-license.php * Project : http://jquery-spellchecker.googlecode.com */ #suggestmenu { min-width: 122px; background: #ebeaeb; position: absolute; display: none; z-index: 9999; overflow: none; margin-top: 1px; text-align: left; font-size: 11px; font-family: Tahoma, Verdana, Arial, Helvetica; } #suggestmenu strong { background: #cccccc; font-weight: bold; padding:3px 6px 3px 6px; display:block; border:1px solid #dddddd; border-bottom: 1px solid #aaaaaa; color: black; } #suggestmenu em { text-align:center; padding:3px 6px 3px 6px; display:block; border-top:1px solid #ccc; border-left:1px solid #ccc; } #suggestmenu a, #suggestmenu a:visited { background: #ebeaeb; border-left:1px solid #dddddd; border-right:1px solid #dddddd; padding:3px 6px 3px 6px; display:block; margin:0px; text-decoration:none; color: black; outline:none } #suggestmenu a.first, #suggestmenu a.first:visited { border-top:1px solid #dddddd; } .spell_sep_bottom { border-bottom: 1px solid #dddddd; } .spell_sep_top { border-top: 1px solid #aaaaaa; } #suggestmenu a:hover { color:#000; background: #f5f5f5; } #suggestmenu .foot { border-top:1px solid #aaaaaa; background:#fff } #suggestmenu .foot a, #suggestmenu .foot a:visited { outline:none } /* TinyMCE 4.0 */ div.mce-atd-menu-title.mce-disabled { padding: 3px 12px 0; } div.mce-atd-menu-title.mce-disabled:hover, div.mce-atd-menu-title.mce-disabled:hover span.mce-text { background: none; color: #888; cursor: default; } div.mce-atd-menu-title.mce-disabled span.mce-text { font-weight: bold; color: #888; } plugins/jetpack/modules/after-the-deadline/config-options.php0000644000312500031250000001104712654411246025027 0ustar eacbforgeacbforg > ID == 0 ) return; AtD_update_options( $user->ID, 'AtD_options' ); AtD_update_options( $user->ID, 'AtD_check_when' ); AtD_update_options( $user->ID, 'AtD_guess_lang' ); } /* * Display the various AtD options */ function AtD_display_options_form() { /* grab our user and validate their existence */ $user = wp_get_current_user(); if ( ! $user || $user->ID == 0 ) return; $options_show_types = AtD_get_options( $user->ID, 'AtD_options' ); $options_check_when = AtD_get_options( $user->ID, 'AtD_check_when' ); $options_guess_lang = AtD_get_options( $user->ID, 'AtD_guess_lang' ); ?> '; $this->single_row_columns( $item ); echo ''; } function get_table_classes() { return array( 'table', 'table-bordered', 'wp-list-table', 'widefat', 'fixed', 'jetpack-modules' ); } function column_cb( $item ) { if ( ! $this->is_module_available( $item ) ) return ''; return sprintf( '', $item['module'] ); } function column_icon( $item ) { $badge_text = $free_text = ''; ob_start(); ?>

        sprintf( '%s', esc_url( '#' ), esc_html__( 'Module Info', 'jetpack' ) ), ); if ( ! empty( $item['configurable'] ) ) { $actions['configure'] = $item['configurable']; } if ( empty( $item['activated'] ) && $this->is_module_available( $item ) ) { $url = wp_nonce_url( Jetpack::admin_url( array( 'page' => 'jetpack', 'action' => 'activate', 'module' => $item['module'], ) ), 'jetpack_activate-' . $item['module'] ); $actions['activate'] = sprintf( '%s', esc_url( $url ), esc_html__( 'Activate', 'jetpack' ) ); } elseif ( ! empty( $item['activated'] ) ) { $url = wp_nonce_url( Jetpack::admin_url( array( 'page' => 'jetpack', 'action' => 'deactivate', 'module' => $item['module'], ) ), 'jetpack_deactivate-' . $item['module'] ); $actions['delete'] = sprintf( '%s', esc_url( $url ), esc_html__( 'Deactivate', 'jetpack' ) ); } return $this->row_actions( $actions ) . wptexturize( $item['name'] ); } function column_description( $item ) { ob_start(); /** This action is documented in class.jetpack-admin.php */ echo apply_filters( 'jetpack_short_module_description', $item['description'], $item['module'] ); /** This action is documented in class.jetpack-admin.php */ do_action( 'jetpack_learn_more_button_' . $item['module'] ); echo '
        '; /** This action is documented in class.jetpack-admin.php */ do_action( 'jetpack_module_more_info_' . $item['module'] ); echo '
        '; return ob_get_clean(); } function column_module_tags( $item ) { $module_tags = array(); foreach( $item['module_tags'] as $module_tag ) { $module_tags[] = sprintf( '%1$s', esc_html( $module_tag ), esc_attr( $module_tag ), esc_url( add_query_arg( 'module_tag', urlencode( $module_tag ) ) ) ); } return implode( ', ', $module_tags ); } function column_default( $item, $column_name ) { switch ( $column_name ) { case 'icon': case 'name': case 'description': break; default: return print_r( $item, true ); } } //Check if the info parameter provided in the URL corresponds to an actual module function module_info_check( $info = false, $modules ) { if ( false == $info ) { return false; } else if ( array_key_exists( $info, $modules ) ) { return $info; } } /** * Core switched their `display_tablenav()` method to protected, so we can't access it directly. * Instead, let's include an access function to make it doable without errors! * * @see https://github.com/WordPress/WordPress/commit/d28f6344de97616de8ece543ed290c4ba2383622 * * @param string $which * * @return mixed */ function unprotected_display_tablenav( $which = 'top' ) { return $this->display_tablenav( $which ); } } plugins/jetpack/class.jetpack-signature.php0000644000312500031250000001407212654410420021515 0ustar eacbforgeacbforgtoken = $secret[0]; $this->secret = $secret[1]; $this->time_diff = $time_diff; } function sign_current_request( $override = array() ) { if ( isset( $override['scheme'] ) ) { $scheme = $override['scheme']; if ( !in_array( $scheme, array( 'http', 'https' ) ) ) { return new Jetpack_Error( 'invalid_sheme', 'Invalid URL scheme' ); } } else { if ( is_ssl() ) { $scheme = 'https'; } else { $scheme = 'http'; } } if ( is_ssl() ) { $port = JETPACK_SIGNATURE__HTTPS_PORT == $_SERVER['SERVER_PORT'] ? '' : $_SERVER['SERVER_PORT']; } else { $port = JETPACK_SIGNATURE__HTTP_PORT == $_SERVER['SERVER_PORT'] ? '' : $_SERVER['SERVER_PORT']; } $url = "{$scheme}://{$_SERVER['HTTP_HOST']}:{$port}" . stripslashes( $_SERVER['REQUEST_URI'] ); if ( array_key_exists( 'body', $override ) && !is_null( $override['body'] ) ) { $body = $override['body']; } else if ( 'POST' == strtoupper( $_SERVER['REQUEST_METHOD'] ) ) { $body = isset( $GLOBALS['HTTP_RAW_POST_DATA'] ) ? $GLOBALS['HTTP_RAW_POST_DATA'] : null; } else { $body = null; } $a = array(); foreach ( array( 'token', 'timestamp', 'nonce', 'body-hash' ) as $parameter ) { if ( isset( $override[$parameter] ) ) { $a[$parameter] = $override[$parameter]; } else { $a[$parameter] = isset( $_GET[$parameter] ) ? stripslashes( $_GET[$parameter] ) : ''; } } $method = isset( $override['method'] ) ? $override['method'] : $_SERVER['REQUEST_METHOD']; return $this->sign_request( $a['token'], $a['timestamp'], $a['nonce'], $a['body-hash'], $method, $url, $body, true ); } // body_hash v. body-hash is annoying. Refactor to accept an array? function sign_request( $token = '', $timestamp = 0, $nonce = '', $body_hash = '', $method = '', $url = '', $body = null, $verify_body_hash = true ) { if ( !$this->secret ) { return new Jetpack_Error( 'invalid_secret', 'Invalid secret' ); } if ( !$this->token ) { return new Jetpack_Error( 'invalid_token', 'Invalid token' ); } list( $token ) = explode( '.', $token ); if ( 0 !== strpos( $token, "$this->token:" ) ) { return new Jetpack_Error( 'token_mismatch', 'Incorrect token' ); } $required_parameters = array( 'token', 'timestamp', 'nonce', 'method', 'url' ); if ( !is_null( $body ) ) { $required_parameters[] = 'body_hash'; if ( !is_string( $body ) ) { return new Jetpack_Error( 'invalid_body', 'Body is malformed.' ); } } foreach ( $required_parameters as $required ) { if ( !is_scalar( $$required ) ) { return new Jetpack_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', str_replace( '_', '-', $required ) ) ); } if ( !strlen( $$required ) ) { return new Jetpack_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is missing.', str_replace( '_', '-', $required ) ) ); } } if ( is_null( $body ) ) { if ( $body_hash ) { return new Jetpack_Error( 'invalid_body_hash', 'The body hash does not match.' ); } } else { if ( $verify_body_hash && jetpack_sha1_base64( $body ) !== $body_hash ) { return new Jetpack_Error( 'invalid_body_hash', 'The body hash does not match.' ); } } $parsed = parse_url( $url ); if ( !isset( $parsed['host'] ) ) { return new Jetpack_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'url' ) ); } if ( !empty( $parsed['port'] ) ) { $port = $parsed['port']; } else { if ( 'http' == $parsed['scheme'] ) { $port = 80; } else if ( 'https' == $parsed['scheme'] ) { $port = 443; } else { return new Jetpack_Error( 'unknown_scheme_port', "The scheme's port is unknown" ); } } if ( !ctype_digit( "$timestamp" ) || 10 < strlen( $timestamp ) ) { // If Jetpack is around in 275 years, you can blame mdawaffe for the bug. return new Jetpack_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'timestamp' ) ); } $local_time = $timestamp - $this->time_diff; if ( $local_time < time() - 600 || $local_time > time() + 300 ) { return new Jetpack_Error( 'invalid_signature', 'The timestamp is too old.' ); } if ( 12 < strlen( $nonce ) || preg_match( '/[^a-zA-Z0-9]/', $nonce ) ) { return new Jetpack_Error( 'invalid_signature', sprintf( 'The required "%s" parameter is malformed.', 'nonce' ) ); } $normalized_request_pieces = array( $token, $timestamp, $nonce, $body_hash, strtoupper( $method ), strtolower( $parsed['host'] ), $port, $parsed['path'], // Normalized Query String ); $normalized_request_pieces = array_merge( $normalized_request_pieces, $this->normalized_query_parameters( isset( $parsed['query'] ) ? $parsed['query'] : '' ) ); $normalized_request_string = join( "\n", $normalized_request_pieces ) . "\n"; return base64_encode( hash_hmac( 'sha1', $normalized_request_string, $this->secret, true ) ); } function normalized_query_parameters( $query_string ) { parse_str( $query_string, $array ); if ( get_magic_quotes_gpc() ) $array = stripslashes_deep( $array ); unset( $array['signature'] ); $names = array_keys( $array ); $values = array_values( $array ); $names = array_map( array( $this, 'encode_3986' ), $names ); $values = array_map( array( $this, 'encode_3986' ), $values ); $pairs = array_map( array( $this, 'join_with_equal_sign' ), $names, $values ); sort( $pairs ); return $pairs; } function encode_3986( $string ) { $string = rawurlencode( $string ); return str_replace( '%7E', '~', $string ); // prior to PHP 5.3, rawurlencode was RFC 1738 } function join_with_equal_sign( $name, $value ) { return "{$name}={$value}"; } } function jetpack_sha1_base64( $text ) { return base64_encode( sha1( $text, true ) ); } plugins/jetpack/images/0000755000312500031250000000000012651056012015521 5ustar eacbforgeacbforgplugins/jetpack/images/custom-css.jpg0000644000312500031250000002246512651056012020334 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿ£4ÿÄ ÿÚþÚBp[‡Bp[‘¹'Bq­À”·<ýèŒâºéLÀ[Ÿ_= Á ~~€[žYõ>üãÏõÌ£¿VÙrˆ-ÝIèöáw¼íz ÜÒÝèN1ë¾süljné2üæÇ¯Ÿd Ü¢ïméÀnB&ý ÀnUö–ôâÈÙîp:¿t1íMjYÏ'·¡Â’Æd9ö´f|60­ÊõéÎ QÝž×6+úèa­=IPò¦üiµyÌìíÉ;u­ÓLáåúVä2i¿8ÑÅ»ó‡b2Ê9½ çt?Z;À¹çÿ@ïÎ)¸tvéFö0úʛәm_¯ÄÙ“ZôÄGÖ^e¼,0¹õóМÏѯ÷”¹ã¿`ôçkÆæO.šÏƒ °þ¢±KÂÛVæ ý ÇοÞ<¹pþãûãt¡­°nQׇFq\e°€[œ÷BpÈ[‡Bp[‡Bp[‡BpÿÄÿÚPŠ1*[5’jK°‹sD²‹ H±)ž™•dªšÊlP“Ho›W(ºÌÞ7@™RM$Ö€ eE ÿÄÿÚ+´3Jðçf¶ÌºnÏ¿l£my§ë®ÆQuÞs½C¶W>#Îß’øYíªÎ÷—QÎi3Õ)Æ’|ËêㆊïÍÊË2îÅÈz@y';MÝFDd5nª®½"Z-ËÊûnÌ4ûVý qÐË–Ñ»-tiUNý€ðBThèfW`ÿÄ>!1"AQ23aq#BPR‘ $0@C¡b±Áð4ScÑñÿÚ?ý˜½âþ¼_Áe¬¤‚h)樎:Š£<$÷œü¢/x¾‡uG8¢ÌÞ@hVÒ–9ÊQ’!Øïkmõü Œ‰»G h8lõfž®9çšM£UqÙ”õnžˆ½âú+ÁŸ³Ñq©·?ø“výv]=4•QÖ²ž|BÈ×?Á"÷‹û¡¿à?â h¹´Ô¦©i¸¤¶již~RÁ½ÚR2à<út×]ÇCÓQ{Åôq:É(« hךdþÊûZ7Vsô[ꃈֻAn1¼EQÙ29{Å»Ç/­®× ,¼yèÌM"ÝcKñï1 åã©*Ý,kÅQã¨wæqGeÅnòïñ×­¸›#ÉÏDn_µ„aòßójо²¢·*#æL’Ó’—@—Ä|ï·Ž¸ç0P3ÇPÔü·ŒÈËog5½ï媪ù¢æøŠ}…?:*‡´¹-ÝÛäw}õRóŠ*‰!_ÞD,Ñ'^þ;×QÔQSAI=%R¿6HVºg“3‹_w¹î›ê^+7 TŠ•âjæ>_0¤oeÄ>Ì-×ÇK$©Å+ ®nô1IOHÁG3ÞwVâÿ¦½gZÝE[¦±¦*ƒì û¿ýßmpŠªŠ˜¤5$qË`@·¼‰$·Ó-)¦“‰UŠé±žcì14…‚ ‹‹Ý¯þš\WµRöØŒÓÆì8ºJNÁÆÒ‹÷o{l~VÖQMÂ8„(‘ÁÉ+ºË”,{¦êíü›Gûq#Ÿ6P×Ѽ_E‡–¹qÝN tö º|´#MÕ05Ê9k‰ê¶ÛX¯åÁ2ÏŸç¶úë®\}Þâ÷=º|½¸ûÝÅïû{uùèǵÑN;®Ý4UI T¾ÉòÖ/eæçoAmRA* _dùk• kgö…ºë €Qå¶ßÉñººªŠ¢žlT2‡ŒÁœVÈdd{±oD^ñªáðV‘ÚfŠØ½2ÈË޽õ}{Åü‰qX¸ogÏ%LŠ‚4ûªX!ßÀˆ½âú*jÌ1BÕäR @î¯RIùê:÷–¥©’”å=ªî½Ì…úxꊸ×e"A>á%,.H6±QÓUu–—c\,Q¼ìl£õÓVËÎìÑRš‰bU5EXL¼.ÝuÛé9¯ ›Œ1lQdö¬NÆÚõ…'%ª9¸Ä¤ ™Yw=,Þÿ 7£EÞR‰/²Å¶ïmÝúéø” W"cÈì’ZöLP·[ZûtÔ\RœÀÕ:Å9¡C¾çÃb¹òÓqZ‰'jËpÌ ˜ì›5Å®-ã êÈ$¡\‡ËCŒ/b“ˆ=;-(Lá`C–ø·Ç먫©¦À+Ù¤VeVM–Ù{@t¾–»:šhÑUé«"i`œ~æ>ÿ6¢¬¦šF†)CH·Û}ìll|mðÕeh¤ä ›-Ká Ü(½¯»zÖ©jZŸÝä 7Þ[‹tÜ[]¾˜ñsÔ×Ç}UÅ<½†h¨å’hÐ/f™TÇ×ÄçÝ;ußS"I±É´r)WðØêêêàZ™Uª£ŠD§’4o} q¸¾O¿Ó]žº|)ed𠍩à /l a®Þ_§MQðÛÉ$õ"E–9cjvÏÁb@~„Þúâдô˜$m-¥‰™ÙŠ«‚ÖÜxj.$’À$§t¡æÎ☷²ŒŠ0Å®m§áó¬­Å4’ !ì|@½Â@¸ä§{ø7†÷ÔtÜVDŽ*´•iãðåæ)Uä×rÞÖ-q¥{(H#¨c,+¼‹‡uÚ,ÿ7†_Sp³#Ú¨ÌȔЬ³bÁÕœôî6׉æáõĹI$.¨£ÌIA$2º¥4’ðþdO-2··ÜpÝNýìIó×fãP,âš&åÊ…„E!nê±\ž¡X¥´°¯gZw¦kj†‘ 9Ç*ß•möñ]í‰Ë~ Û\2)!§+"˜ÔÊí,nR2{ªzÿ/x¿ÂeWR®¡‘…™Nàè QÐæ¸íSÅ^üÞ[RÒQŠˆ)%•âçÉ™È&ÓlϦúàZâö:‹Þ/¢¶JžÕCMO0€TsyˆcÜ‹_]»ˆŠÑLïp´)"]d n29xímzʾ(b¨yÒAUl,"ÂDL¶ë`×:²Ã%O&«ž³Ö`õ¿f=˜Øedë¨'â•O€¨†ŠžH Y™œu/†ª¦ZziçbUb˜°;-pŠÉª^²)dç a'pžøèy}Ýq/%EDEs^JʇþÚ÷—#çßÄ}uÛëç1Ê˲Ïð *0Îäïå®Q+°„Ô-\KKó #›Œ6ùk‰ÖMH‰+‘;,“]”΄X üô8´æ¶•3¶r,UT­€ÅŒY›ScãÓQqzç§z¡P9qfŸeöo#Ù˜Xû*?7×T•ØÒ™«æWʆl”å•‚ß ‹ÜÛùbªØ–PÅwREíòôEïÑþÚ(„†* /²Öé¬WòrÓ0\-¶ÐP:<= ª»*…CETõëË<šÛéUWeP£Èi©¢j„ªaycCùXÛMm•Ôw…˜øþº¦á”ô®®¥ä)&<È8§–Àyxè"ˆ@òÛoå¸ÌœBèkV)gt‚š‘¡œ®zäO@7?-Ž¢÷‹èâRWÇf‚1#—\Áò¸ÿŸúÔ“Lf¡¦SŒ²}­Q°Ù¨ñêÄÀžš'‚¥×)iCˆ7Øg³yÛѼ_JS„¨ž ±g˜*òªø©'ðH½âþ¼_Áâ÷‹øÿÄ'!1AQaq¡ÁP 0@‘áðÿÚ?!ý?#ëðÿ#ëð° KÈ‹ÞëÓä}z”Ë@•r޽4bÆÿÄÄS%ÈŒ ¦ DñŸ#ëÒx’Œ`„—ÏýXÆOÕ‡…ÑZ)–gðP¼kÓä}~‚D¦?yBÖÿ‡ È0‘mA ü‘'¸=Ž|¯Eÿf¢û¥æ €S«<[ Ž*/;êA”²g«„Iw:y¼(ß$@4ÊCxà}±()nØ*E„C$s Áérˆ0 ~k%÷)”hAWf™%c8tѵIIYBë7Vá"õÀÒÕÌ„gCAŽÝåÇG¿æP7{ŒgòNB€vAЄ°FqÀw¬q‘YxŸpËèÇpÁô×ÕpŽšþ¢J„?Óä}z(Šc½âˆn?F0kÙüå«ÓÜb“);¯ë;¿ W!¼¯ yP1!N³ä}zÔHuð {¹ E9Vuš’vWSbS²äI%ûÿq’‚«P”W‰G¶ðûµ*–#[Þ@(UÍÎÄ5‚1.Î!M„Aœ7A#Cjy«\ž6Sbù-7÷ÌZ '‰âò*L’Q@êAñËBXeDé¼ã‘ƒ5Ù•|9Œe´ÖÀq§¬ÎK4èÎKÅ&X‰©“ã %6Âz%ËÁ€4.v`’¹w"® ÉG×¢&öʼn”G8].°¡äK§»ÅtlVƒJ|ÆòÎ'Q3Ru`yÉ%0±™B3¬!Ifx1H™¿µSvЏKL§Àÿ8‚oªëId¬Ó·b 7„h€÷OíDa²J¼µ¢"—Ó%'4‘*ν¯I&W°bµü–…øNI‚qú°„tb°†ë&J!‚|a5c\A`ÅbJ,^S0]yÏ:+PÀuÈIþãÌà3Q¯Ž‚RâÉÎCZ@ŠRqrmÈx ÞzÄÖˆZ,_yª4bFè´SºÁÁo¡ZÝb!öFŠ!§y#ìTŽkäîY¹Æd´Ê€ ¼H{ý€ú•Œ!±Z_§ÈúôX°(`ó (.`чø`ni:× ˜‡Ò8›»±œö0V)¸”åÀ<÷@IMc“"'‡ôʽL-s®×ê®2ÀJÁƒ ÷ë.5ÞCò~ꙕ€Ÿe¥XLjý>G× Í=´ †'ŒS‘þ€ð‰±ÖU³ÝŒžiÖ°Æ…"VòdtUZY¬lÔêGxÐa:´IŠ0ŸL0jÆÀHB†ÀG`éÊ܌š7Æ0¥ÒÉ(dÙ ž7ÙͲƒ¥Á¥6j€ÀRÿ™ÉäüìƒÎ)çQØ‘ Ø À.1!KS(•ÐÌÅVIt gÙÈÑTă[x!ÆK–$h#DÝs¼M  |¡í½Òt›Ä‹»þLJ£ÆY u$äi=Y¢"¥^2Ûº³´‡ƸýÀ]éò>¿OÖÿKN@ ˆáÔ(4ò¤­o\ÁÉ@!Ù’Zd·L>Lù^‘Š´Ì„i2ó8Z§ãtÍ\I àm†fMH\¯=ޏeØ<ÃÜCÍGƒ§¸…‰¨FNX.V³U¡8þòL $¡ÿ€ÀD‘ŽtJ5ÞG·˜J’lÐmžöda:6ï;¼FT}•S™Qc¦A*;„M,¿t7ˆDÅèäf—rÓéò>½ QBtzÍŽð ìrˆ¢#‡f*’0¨j²ŒÐFŒÝ6;0XB ã$-dšëÀÇÑŸì å0ý7£N9*ÚšÓHx]AÙ‚&¤Îåöð¯G˜ ¡Ÿ?\(ÉCÈ&AVðtÒŽ·¶"ܰF}qP,&ÑHšÇ 0u9ZÞQÃ̪ÒÔÊa&V!ä0R'àg[Ö^ ÀÑë…DØÀ2@èÈSÞ.> yßb®rte)¤•-Öojœ( ³Q ´ƒ2oÂͤ¸BÌX¶A-4Ln¤ó¨´*1v5 7 @j«·ô„$ACÐP@ÐܾÞŸÑ èÍàŒ(Ž'E/â"0U ¼à9&ÑjbÓ™ŸÖ[NZô'ó@¹ðŒéó†èÔGHŽ"wBÄò€ÛùàªÝêMú‰Ý¦jåÚ©§ÜÅêù<Ø¥öÇ$€Úûœep€íb¦*øÆ ”ÊúŸ,2-Øs¾?LfOˆ[ŠTP¸r¿Øèçrûy)t€Oµ®‚šÖ|Ð4Ìî_o% ³¨ î¡ ÇP)/ó;—ÛÃxƧ‚Âå@aÀÁLƒˆÉ4IBE]Ý4‹8 Xéq]ÍE/EèÅO*«UB„Îcvá5Å·FÜmÌwÜCâÜW'’Z–€­…Êy”„(B[M`$1-ašttR`5óÏ&IÄ!ÈÞð@S¢\èõ?û°ˆ…8™œ U÷¦³¦ô¸¢à%Ç|u ”Z‡ɤçˆ,°TÒn=~xU&ä@€õ‚hð ôŒK²pr€$´2n–f Š«ü¡‡e°÷†!`6 ] Vb°œƒnŒ ZÃ/‘²l²àˆ'ÌÔ‚ÏúÁiиéút:°L¾Ä8!ÆœoBßø\¢ÄŠ‘(Z2ÞçM$…Xo;—ÛÃÖ‡9es€DtárŒØ¢ XGÏ!– AF”è5†M0†A]`¢|)Šæ§i†oÝêPý¢¸J£P_GB€ „ݘÍ)ÊfÃn$¦ÆÑ“@=Æð”ˆR­þ7'¤mÆ 8v—"*äáu„Ò}D C/CÇͤ/SM ë Ì}£‹@‹K©‚5p—wxî’:’@3†˜%wy¤Þï´ç‰"´h2´¸šIJÑ»j-,j Áê»ñÀ·xúvjÚ$"ô£ÆI'ü˜¬Uy^òÙÔXð9œ.@Ã4{@ÑH""a 2¸^u‡‚(,ãjUuްpÈ£TH$l8#A…£~œÎ°ùèÂJ‰W$y9Îåöðo)A½Tàæ¨sfä­^}q¶±pu@ ˆ8»¢ú#p0¯ @/¹€ìÁ€T:ŒÐÀ¥ óáNCt›Î€:wìþ<àSDÚD¼.l¸¢ÐÀ€'Ï‹k2š–O²êÊŸýMTµCË'Ç;—ÛÂOü*Kì7 i½aè® v˜@»DhbF ÉÁ"“¨Š$Ñã´Óq¬Ê ÓäözãŠ]0©!¬×õXHV“ Ä@Rt8QFyZéÂRšÎn"òîY@óÓ©tID°ŸcJbnè)ÁBð]q[)¿:FïV-BÅŽŠѹ$;¤âñ*Ž‹°¼BX7WœqR'.ƒlé  Ã µ6#´`¸axìY>ê«…\‹¸¾ ºWù‹ÉJz…´QÖ‚ð!Àlp5ghVÚÄT³š@‡,L.»Š&ˆ1ÀBÿ¢…#l/‡rû~"*ºOÄÎ@r DDäp‡ÅP pµºmà ¨NlhqYJ9!8¤}ó¹}¼€×`F¨]:ÃÚ¬DIUD'&XŽ÷(€ C™»&¼"6J  w*JóE‹Tá É'z(,zëÀèœôy*\-¤84yh`ÉOØpv“d\$(øC$cÊ  ç!@ CTÞ*µ br ÓŒº lš˜Àb>ÍZ*ŠhagëtOS°_p߇rûx.j× \Ç¥Îÿs"Š|bá¡ áÑ'S‰f@ ¬,A‡шDØŽh, 8®"¶UV©ÅÜÅj¼Ÿ¡pÙíq;ºkK–®W¾Ù0Ä0M{A 7®˜è;8q8.ÿú>v4‰oë=ïó'Hú]“œ Ø:^fw/·„™¥"6QŒØÃ§5[ˆBu_"©¨™NjÔl¨S;—ÛĤ‘!¥&â‚òúÉ;—ÛÉû—ÛÉû—ÛÈ¿ÿÄ$!1AP `0@QapÿÚ?úµôÏø'7é¹8Å“,°¿Ù³m™vb¤<&ÌÅÓÏ=9ô“¢Æ~Û¾=DÿÿÄ:!1AQaq"‘¡±2@BÁð 0PÑáñR`b’#prÿÚ?þÕR‚Cœ„ è$¹ü› Ú^æü†~9w°èRÂȸü¡ÿ%ÅOT© ‹¸6äA>O|LÂ@lÚàÝï}lÛGL™jšPÏcåso8Tâ)`bOjÖ¶[_ŒuÉÄâϦÁß¿ÐÄŒDÅÌbÌäk6\|wŒ}]‚ÌG¨‰¸…%ÙbÉq—lÞß+^ñ5JÉO´Å¹´"d¹iJ¬È¨»ç¾×…âÕMUv]Y3°6gÏÖ”™êíh¾v\ã­L4²¨·³Ãù½£5sj.mæùÀ(Tåt†àŠCµ˜e½ßÒ ‘Prl?íµ»š J¤- ÇwN™ôþîÑHÚ@Ò( Í "î×û)}” ¤ €oˆf‚Š´R¿¹fΠ„€äéʈ*]93ÜYýbF#¦¸ßå¤N›Ñ¥óØnNPgªªB\†}ƒóޱ.¢—¸ùgb]5=»àâe€ 6<žÝð¬RDÀrIƒúŒR jQ`íõløAÅÊ &Çž™øk@‡Ò4tfa–¶¯á”"zÌsîË<àOu¤ ¥@y7ëž…ªoõãçôlÉ,4󎶲…ØÛÎ:Ä·!î>Yøk1²Òš³¸c¬¢×Ï7þB‚4qÄ~Çå¦ h*:Až”€Tsïôû:Ô»—Ë뿺*XMOúøgñHPK–$ sãø“e(¨-ˆq|ˆ?Ä/¹Š‘f¸ùg‘ô‰xu •©²Ð3󾑉AR]9‚6Ò:%…• S8#nøêk®¢ sÍõÞín„XOµpAäÒåïå¤b0³' ¨dÚ·<ýa8U¥@ÔE·|ù<# ¿ˆj«Þ1u¥V;ZÔ^’ÇÖЇ¤8bÐ0„ÔT@¨5‡™ã‰S”§â|À°/6…I_H•$€”†fз‡ÂtJЀí›ß½¼¢|µ,0fÕÃÂpD$¦¬ÂGú˜8pM‹îâ§âÚíhP$Z÷Òã2bndÆ.‡~ëù *QÈ]‰ô‰ÈRÐR–s¼/ µ!!À 3ÝÇ+ùe f…X@C†K5¶ÞñÕUaB¢ïk]²¾ÀPEÁ|óHvÓ_ÄR‚Yõ„¬(3úÁ 0!ÄT`–eWvätÎÐ ßî­aÏ/¼µ„$¨ä>âT\{Ž2@]*¦¦>WŽ®k+ŽÒ[“ù¼'µ¨Ô–ÙôÔ¿6ƒ@D°)¤ëÎ'H0YK†n÷ eLLÂ¥;‚tÌhù0hô M%Í[|NÚÄä)T¨$’E›ÖÇái I#Ó2bj!À [âJ]Ïy¿!ÔÉ,B€“žËßøÊ$a»EKw5øÝ÷ŒZ å°q—†*PpBÙò ûÜ´+  ¦’á”ù$3^o •=@‚À™Å©óö Ê˜P6¸lÃX”¾üxĬ!Qí»RñsÇ1hÅ ®R’3 °å* $”8$>v/®ìûÇEˆ@4ÄdüÀOp ÷4 )93D¼9D°š kü…ò½ô-T)(ck– ¼c”Ù{ôõ.´¥%ô|£¬Né($8 hó7¿&޵5) $L˜€þð'©T©ÝMU¿¤oÙ‰s'Ì,àwrIò¶‘9a*:ÁÏT K³m¯þmœb¤­CƒòÌ?û7Œu‰«¨ò[@o»ù4`æ(šj ƒmßWŒTõ!l)'¼4 bºD‡Ì€E­g·Åß”#4¤¬ 6±&çÕßq Ц›nì¬þöR v†Hfh°2‚ŠC»^(2’Vs ¤"Vˇ6kí·ó ozÅ*j@è×úúô…-U%#3sÈ~§çù:e²Êµ-à?éOÿÙplugins/jetpack/images/wordpress-connect@2x.jpg0000644000312500031250000003016112651056012022255 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿÂHlÿÄ ÿÚ‚à2w$ »8ÀDXFqäçgk0dœ!âk'·*U@UEiZV€ ¨ªŠÐ¥`v„n82w¼žÑ÷HuäöäA _pd¾Ã$†ºv®]ãiC¿ÜE!fQÏ÷>>¾~íÜ·r1ä<¦<“_qëÊ,{˜îZúƒ÷óÎ^úûµôû·õZü.R è†øƒ$g¶ÀtO¾-!lãmÀ⟟à¯Ä9od(ó”2n1ØT9Æ]qêrNKÅžwæ~«Èdþ>dÜm(!'²ô½ä†ë:/õæú~÷a¨;¢»à ‹žyGJ\â9XËo=|xÚvÜ^WIä3;àKÈ šñÇoÅšX"ß:5çØflc‰f4ð<ÆY!…=O{ãù •(E£kà …•þËg'ß®¶aÖ[ÛQ¤ à €çKÙ“eF»0l—ÛX T[¤›àxì+JÒ©+¶`R QPJ”T3N·À~³†7·¼^EÀ-[vèÿÄÿÚ §¼}ø†ª€Ý×ä'‚^QTÍÀmRl201—š®p]:ïI¾ezw9 ¦§SÕò]J›!ß: ¢©äí%ítÏf…§j™=²Ùž€Ëû®Öf¡îR•Œø5ßPŒü:ôñÄÿÄÿÚ ãVŠrÕƒõ$Úh4‰ÝÂ×öɉj%šÊup7XrªÒÊ«o*Sco€8O'”MõHXšŸ5ºå;÷yä:ms ¶é$ÛX4uñ‚É­ ç|2ùœrC]èæÖÀP>&¶¸`Â_@ÿÄ&@ P ÿÚÿ’7ügÆ|gÆ|gÆ|c·Ë¹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]tYßOØ£úödŒÙk[Vö?‘£Ï§4Q‰$‘"ÛŸÅÍ×mÃk›> $’I$’I$’I$’I$’I$’"ÇŸNh£B'Æf™ÔÚëk(¹›-'çÛ§öcìÇÙŽG)ÜÉ+áSØ¿"‰Þè¹”+·×äsɱé*ö7œý˜çìÞLrÈŸ&ÈŸÈ‘çÓš)BÉ‘U«MŽR.[u{hA}©iÉ<ì-1h±[òÚ,Lõ«j¸Z*-ô©­Å§«¡í¶ëlUhÚë"ŠZîo^;ÛNÊ]’§³š!¦ärnDÄ…ÁµkR ŠV4[… 2’Y“RoPÐîÔOä(óéͣذ.6T/—«Mé^óöуVDÛÞZÔ´§³h!¡fÐN‰±Â´ ~t"«•¶æKãcÊWå*"Ñ£u¥µÒ|E‰ÉÙSuÂÚžâmBÉ%áFOÓ{|R©å¢ŠêT.hòè-¡uÐ'ò yôæŠQk;LÖt‹ªúÌ™ÍÂÑ‚I$’I$’I$’I$’I$’I$›þ<úsE/ÓEÒáSþWw·è´¿D’I$’I‚I$’I$þ‰$“’Mû}9¢—¿ÎÒþÆþYçÓö=÷ùÉWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvjž}AŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8ãŽ8þ'?ÿÄK !“Ñ1TU"AQ#2@Rar‘²%&Pcq¡¢±Áá$3BSbst’ 04D ƒÿÚ?ÿÄå¢tdÞØùï³ùÇÏ}ŸÎ>{ìþqóßgóžû?œ|÷Ùüãç¾Ïç Mf ²UÑ“*…0Û)vY Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Ã>,¶s†|Yl2ç ø²ØeÎñe°Ëœ3âËa—8gÅ–Ã.pÏ‹-†\áŸ[ ¹Â’ÈéÅËAèœÆ¸@|W¼¥èÝÈx"vü-6—)«ÁUhÑn•!®©¸ÿ +ÝH™Kç±U±‹áüËPåøy¯¢§¸?(ü\7÷)~>+ÞRôî…9H‚ªªˆ4Ë´Dz¢U¢H¦¼À…™O-´PýÔ¾ŽÏ§odN_Iᛓ©$;Ø}W®”ÖÊñ`7” ¿|M1PrÕAQ°-Ô GÝB]|õZÖ•6:(‰m»–„ŸiŠúÃÙÉðëoAOp~Qø¶îü|W½%èÝ”Î'.„ D š˜Û-©@û@¸Ñôw9˜KÖxz€®%YJÞ ]šÀ hè*à&ì–Y5 ÔJsw²Ô|+&$hÃ6˼4±EHÜ‚©ˆE•¡B£J¨Éœñ»Ô’Ø&âÑ7HHA»ê¬"‹s¹PÁ¨!m˜ýV{`²©²È¤[-— {`ì)¶—Ô1ðëoAOtyg…×OFÚ7æ«<Õà›VcÐ øÒrºÕM“`£K<娜 k¨§€ £N@¨·ño *;vrPo‰&åT]t½zŠRˆÿOúó7ÎÕóÛ?«ë|^xîrr²¼;§ë¤Ö‰ìÖ¯PC¦Ä–f° ©"˜œ)à˜o à+JßÙÈáYüÚN䉔­SMv'  “7…j¢;aÄf)µ@Ž-ÕgÀ` )jÛXM»5žˆÕQ2Ö¿”¥µ&R†ß4×rk lÔlíê€Ðvmä ˆVðÚ¥oì‡ÿ£³¹’ª—,Ws¨ÖÔN–@lÒ4ÑÃ6ïÈÖRá')dÐ ¬E(`­:Cf°œé˜¸ŒÙdT2.š›jjh@€ÐG`@Ñ¥y [5 ö@â4Ø €Ô;y´­ý‘KÆà弡Û5 ìÛËñpÿÜ%øø¯zKѺ¶ƒÊJA²g.„Çë½C~ Ϥd6>n)¸ó–OõÁÐUT * s&¨yÊ4YY$»…NvŶÖZ]_¤°2÷ïýeD¥¯“´£ë3mdE¾½I4S¯‘·Ü×ÊtaàþÑFÔPÝcÐ ÇÃý=ÑäP’Y±Ò¹B´XJ!ÕÐM-•T¡‘¶jyF¼ß\ c›Á ›Õ t•¨Ï'„3Õž¨§6@Ç0&ŠE0” PÈ4¢|÷Gʩԗª×žKÈ¡­ WÙ1GªÍd×›[zB™B2nc˜H€a­¢ˆÖøîtãH$ˆœæ`ØYšG6¯XZ˜¡^«áœÖHÝyµ·¤)”#6æ94ˆÐ !xoŽáÌ4ž\™Žytµ";j‰[NÙŠ1¢Û‹Í%vgSWbc+P^ˆ…z$%€ P!FÒ 2n ô’s‰%Ž”­£&¥ÉZµÙ§L‘s5"“ ‹´Ê£—j*{VŒº‚"P}/A‘Ú[l¬¸VQ3÷©¬­k]Ý“tÚ5OTÝ¢iÞ4\N†‘ËÖ'#p¢Ä˜9m—î‡,fˆ‹³Ž”´3ѯñ€æ5ÿ™«õ:› ä-– ‡Ìˆ–ß´i W.‡*ªÎíV­Ü˜Ý$ìGmÞ¨g*ÑíL­¸6¾Dö@DÝ=•éW²%FfºŠ‚‹L1?u ¡õºÐ ÚÛM½P³éµËƒŠ‹1)Î;FÁ„•ds )Ñù–ÄÞåîé½?´0YüãJUSö)¡Ü–Æìª{ ­ è³ÿ¾ª¤”‰:í”Ô§øÑÝj¹Û7vWJ¦6O¨nO=(a+—8™IJysùqt×"‡@KÌS„kP‡Gº»Uy¢³W´¡o‰“YO8i ´RM2})DR|¹H91Ìs˜ÔµÒ¼+X•¦Ù1>·º–mj [­ò‚þØSô#Hu£UuŽõ£üÖB°¢r‰sfÒ›µ’j‘ pFÊ&(u‚;Ët>v«Û%1vWŽM„¬NašbŒæciÜØ¡¯UÙÌjD/¶@ª4bhUŸé;£.ùʇյ0/a«Ñ)5aHxêW¤ò¹#µ“®6µš¥<"šƒp4.`  TLÚhJkQYESs¬ëÚkýPÜ'h«¤¬¶ópâKz¤×µx¨¿dH›‚®äbQEÍúµ r]æ 8a)746­ÓÅHÙ|‘S¯Ø"L©™TáÙDw§TöÌpë•!='œÍû¤'V](T5`NÍJT`š3;”–\c'-œÍܱ ˆU.²rÚ¬i¥ºJÝÑÎfÇY¡L%ª „´÷Ai9<¹eXÊæèïÚ¦q¿UQèˆÞ¶] ´yÔŽc(LY¨¤Á&®HS˜ADÕ­@Ö„{9~.Ÿû„¼W½'è„sý%êIÜÚP:è"?‚ŸTT¯%‡õ„Ì=þ*éKT %9D:©r¿PV]'{*~¬D&¥êÖ#yéídi´µTù¥–¦œ¸GÔ?Tk²“µ-HÁ"¦šAå©J² É#•€‹½:yÀ¤r>CÐSÝä"é(Š¡i5Š$P½ k†&º,SK\Ë\M%i˜Æbñ kRÖÉËtwUUîKæˆjÄEäõe6À²ùáÞŒ"yCÉc·m‘Pã/zÑ=h3ª`ÔaãÙ»Ý xØìJvàÖ^ÑOÚjëQ1èk µÑöˆ¹DíÖ)•´’…˜*qêpM)ÒAB ² ÁÄ£` Ðv .×GÚ"å·X¦VÒJJ`©Ç¨aUtIuÈ(VZ¢‘WˆÝîɬ›`Ãíl™Œ©ã¢´+GÌÓÖ‘BÔ+Ø0}$“L™šòÞpšè¶L4¡Ša-ô ÃÆMPa0‘LLõ±!3tµ‰©`)hZ_™Oesþç¸pÔì…³¤‘-µ=å¦ÛtÜJ¢ …A5‹`áô–& N FMÕ;iò·|¹ " Šj–¦0õt!tÛK_Ë[g2W2-Ó0ŠCÐ1@þÈrßA–i¨Pïœ"*¬ˆEA:‡µK;j{—£ŽÛµ;…e ·]v…ùd¥éP;aYܘ‚Î\ô¦Mê5IT SÐ/¾àë€^"™¨¨Y¶K‘p‘ÐXšËi(Q)‚ª˜o…JDíS2®Ø¬“¦©*"b¨Ì# ³”#ÎJ$vìçtè¦ µF·‡ÑHwú\Tõî@9¦ºÈØÖ‰6Wem„<¹Ì½rêRs[kZ ‰(0žΙ++–Éß"³ÐÕ,»´µI¤Aðª=wB­¦º“t”Y´µ5ÒUÀh^ôR€œBà­ ÓyCÆ)PȈùdAí¥!ð FêH_÷T `äÕ÷‘>ËZÚÒÌ?GDg¬×l§<:ެ¦5N"y•¨:RyRJSQ6ˆ•DÌ T!w:<ýÈÂÇÕYI2‰Œ4T£°"¨¦Ü0z¡î‹$yKÉc·¬ÑPæ`ù¡5 )œkC…Ô]Vnž’Jø €“TÙBYYPé Iæ„ô…·5i!}Ý;Eæî×CS¨éDTêƒKŽVŽ¥¯“V_×PKZC /­6B©Í&ó–R•ØKÎÒ‰°9uF]bßhêÙO\=Ò}"œÔÒé…°]»e<´Œ4Úá.`"KhüÌnS*5L´®Èw£³y› b»ù\ÜÀ°™±m¨Š¡áT½ƒXy¤‰sÃ1^_,” • º-…TÛ(NÀ…ÓÒm%\è(Dº…ŒQžÊt#×H\ÚY&rT3tš®U‚ˆ€ÐÛ!wɺ .)M[¨ &Q5’¦urü]?õÒñ^öŸ¢”½âž_.˜—Tä`vûh0®ˆi 7ËR‰:êÕžãÞr…þxlÑÍ• YjJ qóœ)O]Á µ~ƒú‰•IPTÃå_S{ašÈ ýZÁÎÑW³ =/ñ4WN´¾uVìÊ¡–f™öœÃàˆ›÷{aI›çU¸V7DžIB⇨#á´==ß”~/úé}þ+ÞÓôC“›·dÙéKló½]¡í"”[+œ¢ÚÈ’¤Z¶ŒRÅ0€í¥÷ÄËj“6DOø•0þi¡)c¹''H‚˜‘"€Û DB¢M—Œ:¬S+Þ[%û¥ðKçó'ÃHú {¿(ü_Súé}þ*Q!l@áÿcá¤}=ß”[„§š ¯UR èø©À,„ ¶•ƒùCíƒùCíƒùCíƒùCíƒùCíƒùCíƒùCí…ÒI,¢fÙR˜Bï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†Îï«â8¾¯ˆláþú¾!³‡ûêø†ÎXÖ–Tê›e£ˆˆýøëÿÄ+!1AQaqð@‘¡á P±Á0 ñÑÿÚ?!ÿIÊů·ŠþîS®ë…:áN¸S®ë…:à5Òj¹Õ~â¡B… (P¡B… (P¡B… (P¡B… (P¡B… (P¡B… (Pþ]¢ë¯¾ßê?kÃД@å„K ):lVì2ƒo²±÷NP ·¥Ÿv]ËŽråË—.\¹råË—.\¹råË—.\¹råË—.\¹råË—.\¹råË—.\¸¾ "ö¼!«­j !0ž¼›Vq«eÍC²¯¨c„vÒ-æ!™àEZT(¨½û "ŽÃE²j/Üt~ËŸ„t‹Üð˜c÷¼Æ”¾€%Æ)ŠÃZ4CmzÆbÊp™ÎµÃcø„N;Ä#¤Û]—*›s­ÍëM&Zª”¨¡é¨)@éQú H*Ðmƒ¾guÊÝç %Ä@’ 娮üAl†­kЈAµ‚gD[X=+åô.Ó]ø—æÄ¥ ¦òZñúWE÷þ´aO¯Õ.?ˆ[D¨Ðw0*¶KgÐ5 %†„¡0Ê’]r-˜Ô9-!‹p• ×5,;æ ªÃè%çò_Rp,o®ºÔ9px (y¾ñoWRr–zÔQámÔå¢ð™¨ˆ;3–ºJJ,¢ÚµãÑЮm`‚„š=Õܲù¯J2¯(#c§ÐÐÔp¯>£¿e˜×àôÝðšIœ:øûqo›•UâÕ;x€]÷Õ1¹VS?4_y~y>ÎëÊ2ù¨Ûo±ó&ãÙ›å_Ö/IŒë³"27 ThÙó1~¤®ÂÙ×½ ɬÿv¨ß—]lÅ6—Óª¨µ,„BR¯¼N ÆÎ_g[‚vÔò J¼Pj êæ­­ÆŸë­ÂšÃ|­¡ÄÅ ÃP-úšÄã6%ª шÙAPßDªºí ËA«K¶[`sTùÖ+`-?Ÿ‚e.ÓŒCµˆ³Di‡ÐeKiêÉÒµ±Ø*gP/­ñÊîÇGÐK8Ÿ³)¾òP·šÙg›å¦{ç/™†°úbêƒ~9.Q¡€…Ÿó­½ëμ‹:Ó AÞ±&FûKèÐTYkcÖïqQícy,w˜—Å“Z–ž¹Ý2UÙÖbÅ¥-D´*^Ù€ ÍßÞí*E=i¤Øþ[qÄ»‚[j^û¼6[xs-sEÚ)iÏ»Y#ó‹Í.l÷²¾±$ê«¢Õ±â¥(›œÚ°Ä<^FT…Z}Õ`ïOTÄlµz”c¸\—VºXY,ÅÈ–?ïuê;÷f¿¤~ß‚ ²ËÊïÁ6äQàòmócÑÀ·•;—|ôðÞŸPuC0 ó>œŠ7%‚ø×Ì8Íýë¾çèíÍÙTc¨Ï‘£†«¾;Y§®›W.‚Ëb~Rñ™wàûÌZ1ìð#«ÁÝì­7kde˜ä‚(è…–ê4Ü­‘–c’)’¸4Ô¼ý%— 7U3Ñc€"´~S£Ã‚!€·‚a……ð=Å^0óVƒ˜”B™²]_ˆŒ†ù€â V{Àqí¦Uf]ˆ.@s@Ð WˆG>¦ÃÚ%Vþ’Ö‰ J-›2êU4èeU`ßqG*bXÜY¯$Ú̇¤‹Oª 4L‰B2°Vm4òwRÃ×lkÀ×—znSro7[dQøT¬6ùs †4…^¸Š.ly4'7üîW«”„„Lƒ1<~#Úâ;Ϩՠ¸XKò#-1ãA%i+õ锘1dêÞó Ž†°„M¯ ƒ_Ž­_S2¬Œò¼]æ!×.ZÃH–…•a³ŒÎÂdʨß9ãÍ  ÅK_ŽðÒ’A€±iEß3–ðèB•fÔO@1FEâØüC‚“Bò¸õûl³_ƒÒ/ÄTM³aºeØoˆòçD³Ö®|9¤,Ÿè¨ó YæöX™—Ž ï’ÖÊ]PÊ:”èÉ}ž²Ìà?˜½—/Ü@û즿¤öž’ãqšO–àR¸eê£á¬†OC¼ ™øau¤>ó.ÛÌ #ƒ†Ž!À`:û‡JñRã÷Ü¥ü ø/ü/õ€ïÜe5ø= 0uOø=›ª\¹råË—.\¹råË—.\¹råË—.\¹råË—.\¹råË—.\¹råË—.au.VßL{ÏÂMÌÌ*¯­Küô¿ÏKüô¿ÏKüô¿ÏKüôz”YÍt±ýÄpáÇ8páÇ8páÇ8páÇ8páÇ8páÇ8J(âÓðÅ%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%aþ“¯ÿÄ(!1aAQq @Áð0P ‘ÑñÿÚ?ÿIµ¨ìŸ 0WMöÅeùðÇpÇGfJ–°#¥›»Å?ä •+T­Z%J•ªV©R¥J•+T©R¥J•*T©Z¥j•*V©Rµj•ªT©R¥l$™!…$·½¹ý:BËÀ­J!Œz}š"ìI0[Ök¼aûb´ÑM¯a¿ FÇIÑ’þÿÿßüÿÿÿÿ=úʳ鼺BP€$|+j²T»5itªöH‹Ocvˆ aR=ÊÕ ^YAÔÝVa èiCÌ·G2@-âa S§ËkéÖùç£éîèEGìI“ Ñ{RvJeTNpEö¢é Š™Dñ»öôãÐÖµ.1äšEã^v Æ™ÛF‘… ÉCBvU€×j¼ÔRþ"ûA"«(*• `Ã.X—z°P´•¢¢*½á!›¶à8ÄAl€a0Ý­`âXyu|l p/—‘ˆ%™3""Ôx ‚iÜr/—‘Ø%™32d¨4$…iÜue¤r—ž ÕWUj=˜H/h-Ò¨ üùpú;…EbUÊ/ú÷<¥²é´=åœ×4s–auPœµ#ƒÉ eÅÇ‘5úE&a ²1áFæ+–µ”e”¼{Mˆ87™O¡zµWAëz ($,ÈŽ˜Mœ§ ¬VU„æt§¢ÄIšû­} …Ô&øžÖ+5®å ‚–}]Àž¬6Ý–„›mèV.Áqj×¥¢a±cØ´\â c(‹[:º0²úX­@N¨T`¡¥ „Qc¸¬JÞyc%Fuê3¦“Ã.1éÊ;>Z *…1gFÊ#bQQ´ä´J‹ƒ‘K9Él$V`uxD¥2¢Ð…=fƒ˜`§YFóUxXH—…m+­w[ü€PÊÚ ‚TKâÊÙOämÀLy¬3¾Ø`øqz( ¥{@ÈÍaLÇŒ!e³ß¦‘?GÓÝ?hí2ÇÓÕ1!+¤!BuÜšKñ! WzlÞ¾DZ˜M¨cg°Œ·‡}Ù¤—æöElU.q` å‹7> B]è²ßt£á»öþÓÛâß#{t{ψ{uýºžÓÛ£Ûà=§´öžÒ³GÓÝïvô²¨ø‘  ‡U€E¢Ùb V’™wåÈPëÌ>›9©…žHÛ$»®¯ SJÉ…Š0ÜP²=ú=¾`{|CÛ£ßè÷þ(·È©>™Ê 2c*—%×ãråË—.\¸ºQ÷þ þÿ÷úÿÿnûôûÿ ¹vÔ»Lhº mãÂÆ§AŠm3`jèÜý“ó?düÏÙ?3öOÌý“ó?düÏÙ?1° mh¨MX5ÇùqüUÜf>šs óèek5ɪqÂx ƒQ8÷Ÿ ‡lJPrâÄjù¶Ø=F¨¡5f¢’ÁÙE ¸Ó"ÚÅÞ£uQBSå âUvÔù¨é€c ú¢|ãø«¸Ìô˜FM­jL²1p§ü&(ÙÙ·‰vœ – ±â1JKO- ,8Hù¿¸øXtY Sά#¨“U Un;"rMç¤ *Ukàߌ‹uÝiKX@“W¬`ôùš•#ó&Ãíª0¿ª'Î?Š»ŒÏA9„J¤=L:UØŸ`=ÌM4© ²‘zXÍxÕï%æÒ±qÅ%ÀNqwpZwÝl×)—C˜Å¹ûuÄ”°z—Y¨¨þy£Nna±pVÂc º¢|ãb»ŒÏA9„)\–™¬ÜàöÞ˜ÂÙJ”‡ÇoÊv}DRœ]ºÍ­×W¯G]‘3E”Qè˜û‰¬æUÛùFÒA™wR¯´p‡æ}±ƒmñRîL¹z‰5ø÷\`ºJËÏŸ¹[ÉÛ[ÕçÜfº0Š~ŽTËAmýDZ=Ǹ„N&•’[J±À.ñUžè“mo8I±dùá2©u…3ØSPðÅ¢—²Ø¼ü¤zݦ'æ mÖš€Q÷˜”L£)i=šÏiŒ,ê©óŠî3]˜|)*<¾9ƒÀsQ>ÇÇTK53FÌq®´M÷]omb± °6kFÍϾ]J8°Mu›*ñ§‚(Ê)©Ô›ToWåÃá…U>q±]Æ’˜Cì¥H6UýuÆõTùÆÅw·Üo ¢3#–¿”V“¾9kùEi;ã–¿”V“¾9kùEi;ã–¿”V“¾9kùEi;ã–¿”V“¾˜uÁRÔHñ$þÑÏÿÄB !1AQSaq¡±Ñ"#4`s‘’²23Á Bbr $‚ÂáâÿÚ?þ”µ|0ïÔí‚L¦giÉ&ã+;[ŒH¬R4ín1"±HÓµ¸ÄŠÅ#NÖã+;[ŒH¬R4ín1"±HÓµªÍj}JÄ©ÊД€‚«'x¤_ÏÔhŸª¿Üuû’‚£ ÐUF>$L#r2Ù­A”æ™çÿMWc`­xƒ,"Ñâw³îž¾Ìú‘Ôh‘ί9ÖÐÐˈx»Q2ƒ¨²è€<ˆP˜6 ·MëíZiÃkÂ"ÓÞY4„H3W?Üvµ[£Ð°éç<•HüÝÆÿ|Ú²ÕP· ɔԌ¾ãÁˆogý=}™õ#¨Ñ#Vs­ª4¥Q,´%3Âd>àw–¦(èH\S÷EdZdLð_PP‘”b¬E:$(Ïé¿jr[nfW¨ÇÔô¹˜H&@™Ùm–µHCÃÒ‰ˆJw.‚®w)6hœÙëä;v^ÉsÈÕ¶‹1§p$…ò‡Üxè“{?éëìÏ©Fˆê³m£WœØT¡­Jû~ŠR*ULj‘Ï)+LÚ*Pï”íWRHðj|T ­÷æÜ ø_îºÔÄ ƒ‹xêð6fº45#¨j¾ì+æZR‘˜ÿÈjÝÎÀÂ=7JmïJKTýzû3êOQ¢8¬ç[!?W·)µN•÷?â­ P£æ‡Ê79C1±ZeâÔý ¿Rîä9/dOöüÚÚ ›)g°³ä„€ŸÜ›Yòµn¡ÌDc… |ä ç‡ÃSWÛü[¨7W—êT¤<%âÕÙaÒaá‡äMº=%ªN_f}Iê3ñÎ+9ÖÕV–LòíïÒx$pxæ¼rŒº=t$‡ÈµÊŒ§*°ƒšîV¤^»‡t¨• ]¤‘Þ.wØ9n"“9¨+trÛo‹)N–„½6¤rî»àZ‹„J^¼¥cy)™RAËsbpµ)¸ø•¾Wæ6 ððj‡Ó—ÙŸRzŒÿê+9×î¡«J¡Ýü†8¨w‘‘A3YYãžÌLèò£‘š #'Vq1¬òrØUU°kka××ÃßÔ„Ùââq2Ž‰ØØgžôt8[Z°úèÇÆà„) YTK@«FÀºz×7ÐÑ3íÉÉð9‚ÿµõí¼gÎÀ,+¨Ž¬êjXÐĺCh˜¹¹œgW|çÏcýÅ ààØßÇò½{ Éfi)WàÄ «¿+bÕwå ,ÙÉsøvçæ@-ݺ#?FALyU $gæåÑþh×0à=wް;?ƒ¸GF §¥ÁÈÊÂxl¬™§¸‡‡ÅÚ}ll€öœ< ÷è(°·‡Í÷ï1/Y0õñ˜eQ»J-íìé‘t[ÁéûsšYXˆ7o@Ønn†.Óþ«àÂþÒöl¶D¾üà(ÏÑ£ mŠûÏEE)°«kà9t´¸çñÂjhàYª`nÜ€-gL-]»†¹°0hÜ‘‡é 6w€Kì’2Ÿ.¬šè))põõ¶]´*¥q¼ bü2Å’s2Uä0XAYC—èu±6 —¼Î¤§«ÊQ,. ¬±ÔJ®Bøû˜’Ǥ\^2¿3 ðåŒÞÁ®IEND®B`‚plugins/jetpack/images/rss/orange-large.png0000644000312500031250000000467712651056012021417 0ustar eacbforgeacbforg‰PNG  IHDR@@ªiqÞ †IDATxÜ–Œœa†7vj3ÖÙfí6Ní6¬q¶mû.(cÕaÍ8g{Í4oç]ÕŠòüÆ<ß73»Š¿-o­Üøâв¢—‡—=yux挕1¿8¶ÌCPü‰?]ôpH¿?½]7=0–é²ÐÖ˜06ÆÈX³s0èòpxy2þt~#F²Âùr¨+wc*3ÆSC0šè±¤ÉOR1‘&¤b’d™A˜Ê²ƒ0Mr‚¡Ìòl¨òC *ºÐNQ4Å$š’PhKí”…BWf£" úJ;Uá †j;5QÐ×n‡®n/3c§]è$(~äÛI÷… _^zŸôÄû8ÅÇ’ƒ1pÉ ƒW„«nºæŽáë wŒÈhÄx`4N2$Þc žO’¼0‘,¤xa2UHóÆTº7¦3„L(³„l¨r„\_¨ó„|_h „B?hŠü %Å~ЕøCWê}™PîCy BeŒUvªaª±Sc]”s èB'ºÑQP8àʉõ†ã«0˜Ì1‘‹®sNÞLê„ú ê·8³nÒš…ÇŽ3íy£¦zF“ƒç¼<±Æúhhëösb*ëŠMâÛ´Iœò¤Á†±.ú»r ³³ ²S²YØÓ~ÞÉó˜÷èkmå@W: çì3õÙðæ«¼Iž1Ê;´µ{é :ó?뿈¿™™¿u{ÕíhVAû¨ ªŽ‹P6ž†²éôœ‘ç»t•‘ +énMÿ.‘ãìÿmæÍ]/ñ»å³r–žW0<«†¦í ”…³Nžïæw´µû¾”o lŽ-AôýœgcmÛ¶mÛ¶mÛ¶m{7;ÉäS¯Of•oºoõÍ$³ªï«õìî9é®:] `öïp ž r¸c¬˜ÿµ äøtÊZRãó?[øÂJ!ÌÀ !¡ðØ;ï{y"µÀ›ë”}hô'ú÷ç–æ÷àN@Þ²'€·o&ù.-%÷¢²ŸüŒ!¹9œèz.Ú[$€!"‹|——ŠÔT®`Áã*ΔÀ¦:mËÉt’q`@Ϙ"|†Œ€Ñ…Ø<ïQ>Vt\'c}혃OŸ,¾Ÿ&!OZNäd_^JuøÇ3ĵ8<0¦àCÚdªŒ€±…#Rx®És`×6R0!:Äïø´ñ§ÍKŠQ‘·óË÷ðhò?;•¿Øü„|k*D|ªÀ‘6YFÀøÂQ×öHuÆ™™t‘‘ò„ü;[F|Êe’„”±bù°1މˆÄ…À®–Ñ/° <‹H˜P¸@^u¾cÊ* 8 QŸ4Ràš #@°R`¯º•å)øò´eŒ uò >i„À6^Bª·xãÚ¡é¯Aׇܸ°„¼§fg]³ˆ´½ÿÈ@³³—•ËøÄáâC[XBÀä"Ü'ð¦?ðüGÇX’·þ-L?EÚ¯ç |ÂÐ?Ä-!u{æØãS×Öù‡ûÈ»¶¶ž¼][!ñ5 ©ˆÁ' ~´„ˆî΃«x´WKÞæ<ÝOºæÙÒ)"ðñƒ„Ø%!.àl×#–¸kË´ämð‰ Á 'eÎ)c|Ü@AÀHÓŠ²Ñž'€bþMuLå­ouyí˜`\Ýh¼³¿xïŒ($%€Kuºð§áè sy»¢¼¶hÊ\ÖÄxg¿ß(a¸„4*¹<¢eÁ3ãLå­wSsÒ1¼N­€wô5a2fcEŽW¤8Tqà§™O‰·€ ÁLÞ§gè‚M}µÁÛ{ †þ—‡”‰"QxHu·¸·‘‘pj¬©¼Õ9uÁ4‡6x{¯_)nˆœ€|—®}ÛZX–¸0cw¥¼EI]ÇÒ–·×oë),#`V±¨ÕíýûºRN–…ë!„SöÒrJ…ç=·„G/®iÓC”þý›—LfDµi±¦rº‰«”·é3KSNv&q–4¹ þM·_È9PJ@ñ˜4-í5 •$¥¼õˆ–gî³ëX𯻪˜SøUå)p}Y˜BÔÞXNþuÔ oY9-ñä92])oiól`d þeGA@_ ˜ÁÓo*z²œ(b*žwß>#¤;•òÖ}~=qfXT þE{A@Ÿäè{ŇӀWJá騻ôÅ¥ò6uI;â,av%øí~"›”L`r5q.OÀ«…¤àŸ¶T ¥ð‚÷ùSà¿¿O§nÏNœdY(ÕöÈóœ9§´’‚ÚBÐ=œŒŒaÙ@[Þo,SGï›u›ìÌ‘çênåÆ3ÇäVRðOšÿHöþ…ÂÇä04ˆM +ÚJÿù™¨ â¾çN|­¨e©c“¹c$ !7^\%ãù[–ë®Óë”›ì'WíÃýQ®{„ÛFÖ•€‡ÿ@‰ãʾ”|?*ëZV+Šc),‘ñ·ãòرùªÁ?núeÌ«6.Â&°cóµ‚V"ÏÂÀçY™ÁŽÍ×ÞÖ·re&lW0wc¬6vl¾*ð|ª¥©÷Ž•²×æ°có•{`2_›ƒc©à£ë€¬™|‰Ñ/ìØ›|q2Ü¥«³X3Á¦– B]¤™¹k¯<Æì-&L0‰!DÌáa ÓXHÂLÆR0™áôçÑ¢F—JôêЮBÇ5{8Jרޢ€‰ÊX6á(f¼éÿ¯:èz8ä-DŽ»ÕÕY‰“ËÓÿ’×çñGš7óÿ¨ cTBÑZ«IEND®B`‚plugins/jetpack/images/rss/purple-large.png0000644000312500031250000000703712651056012021444 0ustar eacbforgeacbforg‰PNG  IHDR@@ªiqÞ æIDATxÔÔŒaÆñ)cûÛŠ ¶{¶m#NmÛv;e¬FÕ)®Í™Ù™2lœ>}ŸŒkã’ßíùÞÿ‡Ñ¾å­]]ß¡ºÖ¶ª+×ÚÔåwmª mêÊ?¦ œ3rVÎ,´¯ùì7*µSÚâ—KåžïP½o翆eãî`ý¬GØ’)2þœÍŸ’ÅŸ['³-•9+gæìl`‹Ð>å“_lwkuéŒõaé˜{Ø™§ãH­£u6”[ØSÀ®¼vS¾C¾æ( ì- )¶°¯$jiH™…žò¨ƒ®ÊÀ¡*;âpÌWoãxÓs‘wæêàìl` ›Û">úBG¬+­]u?ž;ô&¶g?ʼnæç8 ÿ|sŠ5“u¬÷ «Æ‹ ϰzâ3¬™$&?ÃÚ)ŽuSuÇ4f¸fêØ8KÌÖ±‰’tlN2°9ÙÀ–‘j`kšc[ºÈl§,;²Mìôä˜Ø•ëÊ3e{ LYl“‹†cîbl“¶°‰mB ‹|Ò»’Ú¡ºß,uKVÕ‘:[†Ô±rüS¬ËpFák'{ÑŽõ½~:I,£p/šø÷¢á^4163ŠáÄhò¢ýp*`¼Ï;‰rjÜ@ž°©]u½n_JšÇÿ€GD$¼Å£Ä]—H ó”áÿKüG×o_iÇl¹ÂØÆF¶F®@åÈ›ƒå zNŽ wžGHޏÄûñôã©Ø±¯„‹`ËIHÈu¸¶²YhŒ×:ÞwoP’4Kž§cóÙ¶m.~Û¶m ~­mÛ¶më_O›c3_|§&»·NuVUc™çÄÌnwMUÝ›‘7#3¿²õÚ‡¿¼«óãnE¸= ¯ð˜þŒ˜@\+˜ÅrrÉù9Ik‰˜£ä‚yÑ7’º=ÿ'ñ[½ýK>ƒŒHð»8ๆ¿(ÃŒ‚/X öœû¾´õç}qg=iƒT¸$à1‰ A5óÕ¨šødD4‚[á^S¹D~¼B¼#÷Åpé€ãÜTV0ƒ=çþ/nÊá@žçeÅõ“»=1aï‚z¥[G»RÍõª.Ö®¢6uz{“Ú6­V-È«Pc H§ARÞEq: ¬`{Î"Qxùl‰qÌ¿-ìš]§ü´Ö¦N9ÛªöÌ«WsÞŠ‰-øk \ðÜW?cäÝaf°C@Gî_Îù]ŸA@:­:ئv Sž˜¡\`ðb"¨x.JIv@Û# ÀíßÉ€ÝÚÛ” ìof˜€2âÂ…áx Äº˜Ø!€‰ÚykLu|Ùj¡“­jAA/ÉK]ðÿ¶âó0Û`bCï›òÊ òÂç[;¼šè®jÂíª±¶Cuv¨¬6†Åô—¢ª$ôÌ>xzŸ”<à:'AzßMÞr /7i)3­Y¯ÇÔš¡ÕêÐʨ¶–N•I#…®Q ªu†k²ƒ:u!À]Ûçcñy½ÜŒË÷ˆ~÷•—u_H­T0R- é“qpy3R!ÀÙY8\ë$7“Þ×àÓÒöÖ¿ÿ‘<±i|е©tÚÙÝMjø]!ñ„²ì€ÿ+x\ H¼Sáñ":蔫ýªTäL«Jµ•ŸhU£îCB¦àÁ.îc ÀϬ3€7É[^Žk‰ëGU«Úh»J¥%¶àM}º•fþÏt°>d,»€·@[¹"ˆ\+ÿGÚ´=Ö=ñ¼àèBêøÆ&•J+=Ü"i²\õÒ> ³ ˜ÁôHƒ¥GZäåÕ¥õj㸵øÃJ5á‰=£ó¬¼|Båñy)S‚e•jªõŸKOnmâ9€N <Æ07ð'ó˜ç&û&B¤¾ªò6upY½ZôA%EH=,àµÈáß½äûi/FU¬ÄwD0’SO†{÷wÅ® r±1àq³=óý)A„ÒÎYujüãá®Þ*5Ê[¼„ñ]|°Yùiˆ¯ÅB2ï—"x‰q–Ò%å;@ß ÑžÔFA$eQƒWŒ{8„Ä…„¤ò–yÈ[ƒ¤=å§ÕWvHfñNÞàÿÈCíÊ{àML>‡€tZcu‡Ú8¦†tH'“·â©‘P¸·‰ÞÕ7xzŸùŽ™€¿š«· ›¸y “–TÞöéò„òã-ÊO[9° €FðïÙÁ3Ó¥˜Ës’ .e.]“êö.Ì„í¾íjA~óp(<âÅhqïê ·V 9ø– .ö^W¶ 0E¤÷Mu{Ø¿¸>[Ó_&P¸=Àm ÅÇs©>C¼Ú>é”\ê<½’š Ðû¦å*þ?驈Z-/¾yb­LVêUù'-RN³ur-žà(]÷êVÆ»7üZ ²a@à&ð >¨’ü#)xŒ(Ž Ô1‚Ïd²ÚR‹?ªTŸˆ8jmN RÚÊþUÜ[ƒ«HV…© í÷NG×5R°qíyŒ57~&t3@ï›À'‘·½Åõ¼¼¸0.‰‹§”*g½ã¹ZÞò<«zü÷5A´Dkc§×=è)鹂§÷ßø©€Ašxïê-ß  b“Ÿ‰¨Â=Í©”ÍYe·ñ™$ÇÜDÔŸgì¡` HWðØë?)’w4@/x‚ïá]½å:V`ã>'~'67Æëö˜Ä’™Hµ1÷93L<ò_ʺ¥<îÿúMÜäÁ™‚×"ÇÚF#Áf‰Ä‡¦:ž%W’ÏmLbn½EÈôjóó*èax1ùîõA´™€ÌÁÛ;ïÝ눞ªÊÚ¨è@Wx¹’ÞØàÐ\ç Nlid'‹<öÚ½ðÞúÿÜ\½åËzWÊÊwpÜ8¶†Y©­†‡á‡V4xHîvÞ@—<îÿêÌÐû¾À÷#X ¸–A©‡˜!"i“ëwÌôžMÖFÚù»x]#2‰™ò\TyµÙoÅd@G|ø×~$|¿HpÚ `ß{¤÷}€ïN€+S«W©©Ò0¾[$ME [‘ʲ4æzGSÆ2O^mYŸJòº/dࡵƒ}‹êhÀÑó€ÇýÝðÏ¿ÙyuRÆš¡¡áYÜ "; ˜6Ö:<†µ†CA—±8ìVÛ=ÏÕ‹X¸<@;Àc¯|?”\XÒƒû˜ÔÁe ÞÁ¬ÜÊëâ-Ž&þ“õî«È­xù<íg½S.µÎåÒÓx†ÆËßí"à?Là©ÈNz:‚êò§ó§ÔⲎ&mÆËQÑ®÷aˆÍmÚžÿ³RÔÜàžQb/}'à/½oðoæ%j‚˜”´k”ßVr¨™ÙÀëóÈçà‰Oaĸ×àñö(0,ÊŽ¹ÿírYƒxéÛxìe!æ#ÿ:+%g\ÖœçéÅKüO‡+KÈédgõ›Æ¹“Y#Ù€˜¡¥-Æò=B†e3—F0¦§íà±ï FÞÁH€YäÐkÛ§×ú_Ì8ÕBNfVç¨ÞJd7uTšI¯ ž!@ßà1M>»§ °ðòÒ·ÌÐû®ÕÛy•Êo;²ºAÖ K“–®Yc`,7ָ噯ÆÈå<&½@òº/³ ù\gû»`¯ ±Ä2•½@ˆ‘³%Æ%jþŽpiÔˆ]Û“ã'>q~¥mÄm¯ wI‡Þ îÚžZÚt‰à”¥Ý+Fô¾Û5Ëj2\A—TfÓö0ú°çœ"÷ŶÇ^ü¦d¤ðtäþù ûU¿žÞÛR&S_ˆªÀ¾f‡ ©*ogXæñÌèÜ-ˆì¨6—&1§ŽÙ¯ à=ܵ@S'CVÀÚÀ_øf@ðUî_ÛäÉ1öÐÊþ¶¥PøàZ–µXß[3¬š ‘¤R@úZ¢¦œM¾^=¤Zr~5÷¡ÌmÙë÷؇Ã2»K€'àˆ£¥½+E2‹uý^ÚË2>§êLöw·§÷_ùµ!\o”´m•ÕÇaüîÉ!ÀiL_í{¹ŠgÖÜDS°°@’îŒüuLl8 öâ· ¥gžaÙó_/ä{;x¹ŽïÉf°Ç7K÷ê^‚|Íî†$3x?L€;À;åmòho¯­ g ›¥Ù2ÎÖq½]~ÐMW&øç¥÷yÖ¨{íÛå! ~`B’pýùŸ› øŸe<®Ïõœ,ëÕÍ~`ðç™9Ʊ} «à±‹žLðÝB5ð:ŽÚ9Aæ82ƒÙM »- €6¸|Á½ë|9%̇¦´q¤ìÁ/l‹È…¤4ÎØXKÚÝ~™€ÿ¦åò<ž…ÛÓó`›ñØœ¶‡¾¼ùﶃ“Bì °Š›à¤?YU¶'Ï“«1¦´ïÆ×æ™ÒjЖÅAÿ”E 5`JX–é¹¼HƒXpò¼\ËóÂÄ30€L`Ë9×øá0ÇÑÙî%èNZð›ýöLu-»þœã°×Z¦Ó()5n±ÅDN÷ÑÖƒØ.ûŸex™6¦Ó6û·tö¯„¡í{Éwmr¼t˜Ü?Í£³Ú’ž~Užþ÷E²ÿ˜íC1äíkéž6Ú}|þÿÙÞéÛ¿ÄH÷IEND®B`‚plugins/jetpack/images/rss/pink-small.png0000644000312500031250000000116612651056012021111 0ustar eacbforgeacbforg‰PNG  IHDRH-Ñ=IDATx=’3¸EW…ÿ9¼x¶ÛUŒ.NšØv›&F—±mÔQÛvrí}4Ù÷{ØÆ¬Ñx{ññ¹Ñ±±»çø„Ö›¬/žxdiú|µòûeüvîŸòîöOÍώϽ\ÔÜ^=cW œÐOÖïýéØg7 Ùh}ôçÇ¿í „wÒÜ^é’Ëè «$ÿ¢¯ZÄ?t!Î,ÈQÁ¤Žîö<Ç?Τ†ÜÌ('Ï€‚ù¨Aóñ¿ˆ>m ž; ‘b2ƒïxÇɧ{¼®cƒ£ØÞL€·”'Ä…CÆÁ÷ÿNë¹@É R.ã°ÞðB GMB Ôîü•ÿ®úŠä÷Cç.PÊIEND®B`‚plugins/jetpack/images/rss/green-medium.png0000644000312500031250000000177212651056012021423 0ustar eacbforgeacbforg‰PNG  IHDREÓ/¦PLTE Y U ] rtowv‹ˆŠ~}~’“€‚…‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±´µ¶·¹º¾ÀÁÂÃÄÅÆÈÉÊÌÍÐÑÒÕÖÙÚÛ Ü Þ ß $à#$à$&à&(à(*à)-á,3á4;á>CàGIàPRàZsà‹âœŽâŸã±¥ã¹µäÊÀæÖÈçÞáê÷çíüèíüìðüíñüîòýðóýñôýòõýóõýôöýô÷ý÷ùþúûþûüþüýÿÿÿÿŽ3[tRNSUVWrsàääííîîûû þûËIDATxM“…²ëF @´Æà»;)33ÿÿtà13†9±¥zì’X:æ] ¢$5þ/r<%$á33j¨Sy½ìë2 Ô§¢`ȵ(5}§é«'Ë ÍÍ1·8 ÝV¡òqBwò^{·×VÌt²®Ix'SâÑDf„š¹Ë2ä½RåŃǯŽQ é[Ù´óúÌUÈ»¦r>nçOŸmó½7§æL]WgVðƒAfe9}æ#¡›¿(ê{F웄?¾üð­žííÅö2ПPŸ¹©¡~ÐÑ|ô^¶´Åú­À`ûw‹(µW‡åám¡ûäD¯Tpý|­-h g»i6$+iuÏmwË—Ïv½„´ý´X¼•‘?:Ð@Q >]ôs:þlŸNH—ϱd« ";ÑìÏ-|z…û;x Ç ù…© ýú­ób¥oOã ½“';>Kç«Lï-à2*¦Ðí•î(¡´ß¾€‹¶-AúF³=°×Àó%¾€´ë q#DgA¢Û6ØÝ(ÍS§`û@9C8Iöµ:v¦̽ô*ÔŽo‡rùnaðÏØëÎG÷_M «—·bUļ²0z²78úRKwǨ"•:!¾Sœi~‡8uþ/z<%ü0î3.Óu~IEND®B`‚plugins/jetpack/images/rss/pink-medium.png0000644000312500031250000000274512651056012021265 0ustar eacbforgeacbforg‰PNG  IHDRr ß”¬IDATx•Vc”¤Iü~ßý?Û¶mÛ¶mÛ¶m£gþœ»Û¯gfwÛ6ÍËxµ¯zjpè÷¢UÝ™‘YeM}ü¾Öûë{6ùé‘Þ­mÅþmÛÑ·m›Àöÿ° üoïV¶¢g£Ÿáž‹ ôçß7²WתØÑ½ˆÙƒÈá^DŽðýQ‚cz=VÖŽ[ƒ'ö!z’BìdÁ)ýˆ*8­ñÓ;¡#{v­âÞ‹°øäÞà‡s}9ª©cÞË…ÐN„öìãBx_7Âû ìAäÁa fM GK Ǭ âø>#ˆøiÈž·¾ƒUǺߞ+°¬Žµ?\wù^’…vu Á]B»9HLBEv¨W)?R D„V-jLÅJ-UgÏY‚å{v:¬×µ¼ýø¨¤Q+£ªÜK>”>‰ ÿ¢©Û–!v¶(?ÔCb’RÙ¿“©ôªÏ'Éûúá.‹‰Ù‹ÐîN­¦6:Ž©f¹ŽÊ`…w‚ˆ_0DrÖyV2E¤É¸ÎÀ„é×¢5°];kÒªÙT—a®G3_Cùç-¤¡¸¡¡l62f„A ˆë-ZŸnTäÁÄ‚šÅ:Vךs7ÒUä_ñ‹Q”cçRÆÔÓ`üÛÆ’'FªÜx€@#’ªØH^±Ù'Vb¬=‰F¼2+ñøiÄÏ’³(S­%%àgMÈÖŽdáCû¹L/ÛA}Ǩ¨îŸ˜AZé+ ~þRk(ó²\t8ûXr‘}¦Èó }çr¤ïFB2bÕw ±3Pþ!ÔW¤“ÞÓªÛ…Y“ÿqOÎï4!#ÒMÍVG”iVW›¨ù&Pþ1ŽäuKåO9£—hsϬB³T7H™z!1”Q½Á}5!í­'ÈÑB¸|¦K›ã ºñså÷*m™‡F¥eÐ}|…*É!ŠŒïC{»„A¨#£‚êâ2æzT¥GS¢–cŒµÏ=ç­ôÖÓl„HJ2QÚÓÉýÁŽ !mmÌÆä•‹‘ypÅÏ#2fªm$*H^½X™M6*ÿ’0Ö‹…ÜÝA2ö7G$kBF¤É´T Õó/ûÑLWM¥KË4 MÆÓh¥¥RZˆ{pTÁ]¬§&¤gÎF¦Œïiõ£{%Kf´Dé˨6Eá­ ±Æúw°#(ê‚; áA&!MF"Ú?uó2$.^Ä︆äµKÐÈÔô¦œFñó†8¥˜ 4s­µñ¿2ìhç©CbŽLMÈÃS“Q%7®Kíšj„åž÷qGò¯ùÍz}¦)ŒwdZiU84”ÊíIèÖ„¬…><¹ñÄü¬i’d•íÀš2¨[©­,*!´¿[Òfg`ú{Îá¸L§ÀÖóØv'ú¶#á66¦ƒd ¢ÖèCþ¹ÒDâ²ETÈHQþ.n¤•AP ‹)(uÓ2ø7Ÿ'¤ XgEÈ#ƒ.ãŸ*,}…9+‹ìOE(½•}r¥±ž¸d!UHÝû ÂÌc+àߤ-ç“< -м{'µ\€Š‡1Ù[ÀX[ñsyÒ³y™>™±‹Q‘µÉÌP'°ý®cb^“î<&=y¤n]ÿ¦B¸Å>ã??ã@?ã@@ãAAä>>ä??ä?@ä@@äAAäBBäCCäDDäDEäEEäEFäFFäFGäGGäGHäHHåAAåDDåFFåFGåGGåHHåHJåIIåIJåJJåJKåKKåKLåLLåLMåMMåNOåPPæKKæKLæLLæLMæMMæNNæNOæOOæOPæRRæRSæUUæWWçQQçRRçTTçUUçVWçWWçXYçYYç[[è\\è]]èbbèbcé__éeeéfféfgéggéhhéiiéjjê@@êhgêllêooë@@ëGGëppërrìvvì~~ìíVVí~~í퀀킂îUVîWWîXWïïï””ð””ð••ð››ñ™™ñ  ò££ò¥¥ó¦¦óªªó¬¬ó­­ó¯¯ô¯¯ô°°ô±±õ´µõººö¼¼ö½½öÁÂöÃÃ÷ÆÆ÷ÈÈ÷ÈÉ÷ÊÊ÷ÌÌøÉÉøËËøÎÎøÑÑùÓÒùÔÔùÕÕùÖÖù××ùרùØØúØØúÙÙúÚÚúÞÞúßßûááûããûääüççüèèüéèüééüêêüëëýëëýîîýïïýððýòòýóóýôôýööþööþ÷÷þùùþúúþûûþüüÿüüÿýýÿþþÿÿÿvÊotRNSVVWWWƒƒƒƒƒ„ÚÚÚÚñññòòòóóëÊp™IDATxË3ülWGñßÞç\ÞàÙ¶­>nât±û&mÚôM̾ˆmóoÛ^}3I»¾ŸE(ïbaˆÈdÊZYÏ»Ý_CÄÚehbr™–ßlEt+/¾1;Ll+få1k¦Òáç—#Ò…—^Q´¶<å2³Oš• …ãשx×R;÷H¡½²ðgÍwÔÆäÞüÛÚòCÖgv#«ÍÍüóíÿ<ÎéR%§óKD”T,>uöÏß* .#M“¬×†•e××@åæáCdB3Iš‰6* U25Ô=QÓ9 Ø»q¥e5â´n FÔ†=1ÓôÄp×S5¿Þž›ŸËÒ¦‘ÐUŽ[÷œÜ–_]êžáÍ›½É™4•Pœ1-̨\ÛÝ^üyt¼v#ÓÍ.GBcªrÀèàJÙ.î>´­½<œìr°…ÎŒ‰¬iU:qp¾L€½s‹Ìwû{”* OcœU:i-¦%BióÚD÷ÎÈó'ZŒ?¯ŠG#å ü1Ü.Ȧ¦“ý98]ˈ‚yµáxì+ß… 6 eTø§Ñ=ûQh}É&7¯JÇ¡¹±ûH!oîõPZéãS¢3 Tá„Qɹ[¯ÔCƒÕ½ä4¾™:» ôóœeÖPç8Õ³{ðí4°­Ð˜JgÃÄÊeòKòvô÷xOEs)Üj*¶X1Ã]v´ ä*ኜŽ)]'¢Òw²­ö}i¶‹ÒÄìÖVDpëä?¶%Fm)XíÐH,íL %"ÆÝ÷‡oBCòMî˜ “DŒda’šì©ÏÚ*3_=´Ö4¡ ÅDÆÄ"ÒùP~î…õ”+¸¯ÚV§F’IœeðòÖct”s "†…¡€ ÖÃzü ë&Ok£|ÇIEND®B`‚plugins/jetpack/images/rss/orange-medium.png0000644000312500031250000000305612651056012021573 0ustar eacbforgeacbforg‰PNG  IHDRr ß”õIDATx•–”#M†Ÿ[Ýñf‘Íä³mÛ¶mÛ¶mÛ¶mÛ¶‡‹dftWÕŸ­NŸ>™ÿã{Î{n Ÿ~ï­ª´@¢çÖ¦Ò1}eÇT&w‚Rªd°8Yþ“ ­†S&Ÿ5ºwÔÀ(Z’&Äih©´Í43OÞˆÒˆY´¶mEÓU‰*­*I¡õ³Ö÷%Âêºatç˜ßúþè>¸ÏßÙ¶„'l=Ã\³ßUÈüIc€¦JèýelØùÃÏÛÈÓëÑ1× ~Ò1rä FE¥<ÄÔeQžBü©öQ¾‡x*‚©Ì#ªÒÞ ñ÷‹’"?}ÙÝÕõÑ—‹ªJ¥²s¹ig,ÏPœ©²‹ŸÎæN5` ÊÇ%Ê-± ^ebÙúô¨ï zýãK0î„¢hã?iã?iä@jäAkäBläCläDmäEnäFnäFoåGpåHpåIqåJråKråLsåLtåMtåMtæNuæOvæPvæQwæRxæSyæTzçU{çV{çX}çY}çZ~çZç[è\€è^è`ƒèaƒèa„èb…éd†ée‡éfˆégˆéh‰éhŠélŒênŽêpëqëv”ëw•ì}™ì}šìí‚턟텠ï¨ï‘©ï’ªï•¬ð–­ð›±ñ³ñŸ´ñ£·ò¥¹ò«½ó¬¾ó®Àó¯Áô²Ãô´Äô»Êõ¼Êõ¿ÍöÃÐöÄÑ÷ÊÖ÷Ì×øÍØøÎÙøÏÙøÐÚøÕÞùØáùÙâúÛãúÜäúÞåúàçûáèûäêûçíüèíüìðüíñüîòýðóýñôýòõýóõýôöýô÷ý÷ùþúûþûüþüýÿÿÿÿi_jtRNSUVWrsàääíííîîûû©œ:‘5IDATxM““&1EoòòµÆ¶ÒÚ*îOÞÒ”Ö¶5öguç%›¬ïMóÔi·@*ˆÿGÖ3Í€ƒ×ZHñkH¸ ™­qê`®íäŽ$}ÜBüjÐr«¤IFg¿ËŒ©È ‡]ß\þ¤Etaߨ›A½²·“†È{n ±¦"m$MôéÑþÇÍÀ3)cD*ð×¢CCóëo¶" xÆœåû³4/ xŒÀ3CI¦ÄÆ—õƒT…@8ÜyÒ/–ÛSðgÉçIÈÁù™.`&¾“¿DP2 ‰NupÖ\ßQ½mmuëa°OÉ –êÆòÌÔ*è/<@èhy çéÜ!%C.¶Ê¸w¢«í4‡ Ýæ“0ÌÑ¡7I®´=òFÚ×ËÖppDÉ0KQß­ÈHúŠùõîDê9óØCAÇ{_6²öaÛz#?!þR‡yJF5 ¥oÔºb´ïó½ƒëo%Çy H!uËTøíQ˜À‹0 c-(câ©‹«£bw§uÄoò³] 7UšXè­+êièÓ mT;S:&r €$6»@W¢_[)ý;°³mÛöÙ<ÜÂ1R©£Ñ3Ó]{Ú€(lY¤Øÿ&ÝÜMÝPY©ÖlŒõ“…œ¾G¼µÚd#¬pû\­µÆÂÕL?nìæR3cmØa¯±QÓ¯jF9u•Rc®Nó.‚øÎðëwÈÅ#Ùhj~ën:°xÉuIEND®B`‚plugins/jetpack/images/rss/purple-small.png0000644000312500031250000000116612651056012021457 0ustar eacbforgeacbforg‰PNG  IHDRH-Ñ=IDATxURC€]m»ûuµ+Wµõ÷WmnjÛÛ¶mk]ÛnÇÖÕÃØžôKÝ<]åœ$q|ÚÛ)–sË󬿕Ãb^1,ù™ÿícµàÛÇfa¹8/Í;>ñí‰8?óÅ$×U Å^+ÍpZ(Ãe©Ï¿ø®Õ°QCÐ!Ûu„îÔµ§ Þk‹Žd1·¤Àc¹û x•Óƒ[!H>cD>ÿ«‚¨!x›†ßÈ;Û¨ª@¢<çÅ 2.›ñ;? "תþÔŸ¤ ­7i°^P‰;y®QÁ 1 È·mEÙ½>ŒãcÀ“ä.ÀÉþëùœz ñËKãñ2§EN­Þ®!ý’­M# ÅwÂëÞÿ*âW…‰tÎëo9BÖ´)#ȳi´6`tx©çMpY&Ã}•‹¹ß‰tSRÏ™@iCýãàÃÙ7ÌH½`ÂØ(Pûr@xÑ º~cŽ 2#Z –Ž=d »4EÇÀi>ÿ©¨xÔ’Ã÷ê°Ÿ+ÿIL9kB_ç:ôQÐÁ§©] 2®˜‘+dÜßjV,Hd#‚·êH»h%v›G¶K³$Äv :ˆûѰ˜Ö˹ßâ(ˆÚÛ†`ÑŽäÓ&!×(âQÀð©‚á»,‘wÄÊvšk¤9Ò‘É/&±F»Úà·^ƒÏ¿*¼…åî+8.á0O†ýV3›á4Ç—å Ŭ©D°¸,°Íür†Ëœø¯4î«9eBbiÞÅißJþíö®/qóIEND®B`‚plugins/jetpack/images/rss/blue-large.png0000644000312500031250000000331712651056012021061 0ustar eacbforgeacbforg‰PNG  IHDR@@·ìãPLTE @¯ H¿E¿GÄGÁFÂFÂFÂGÅIËKÐMÕ#Sß#Tà$Tà%Uà&Và'Và(Wà)Xà*Xà*Yá,Zá-[á.\á/\á0]á1^á1^â2_â3`â4`â5aâ6bâ7câ8câ8dã9eã:eã;fãhã?iã?iä@jäAkäBkäCläDmäEmäFoåGpåHpåIqåJråKråLsåMtæNuæOvæPvæRxæSxæTzçUzçV{çW|çX}çY}çZ~ç[è\€è]è^è_‚èaƒèb…éc…éd†ée‡éh‰éj‹êkŒênŽêoŽêpës’ëu“ëv”ëw•ìy–ìz—ì|™ìí‚턟톡ï¨ï¨ï‘©ï’ªï“«ð”¬ð–­ð—®ð˜®ð™¯ðš°ñ›±ñ²ñž³ñŸ´ñ µñ¡¶ò£·ò¥¹ò¦¹ò§ºò©¼ó¬¾ó­¿ó®¿ó²Ãô³ÄôµÅôºÉõ»Êõ¼Êõ½ÌöÄÑ÷ÅÒ÷ÆÓ÷ÇÓ÷ÉÕ÷ÊÕ÷Ì×øÍØøÎÙøÏÙøÐÚøÑÛøÓÝùØàùÛãúÜäúÝäúÞåúæëûçíüèíüéîüóõýôöýÿÿÿ(ðèœ tRNS 0 °ÀSÝU’IDATx­——Û:F³l—¹ËœlØQÀá4L.ãÃ23333óO}ŽF#+´óæ ÔÞ»#ù³™°Ú»$yÖ%uu˜ª«C’ç÷ªImV•T{çËR•¢S^@´\”ØN§Ë­(ñz}>¿ß¯ªÁ`0G"‘h4‹Åã‰D2WÒȹ“ãm=ò°–S‡†FFGÇÇ'ÌfË”Õj³;t™[ñâõé¨j(®H²¤ Ë=mLÐ3Ï®æÂë½d42¯û'E÷\ùX.¹ÝÔ5_Ãýß}îÜ_[·Îž%´ù]&©7‡ÿÕoZ_ß\Üž ¯J½’IV£Ø? Þœ(ÌÌûÓªl’“×ÿi¨wûgâ}±¤.ÐìŒ7X?¯¬™–÷µŠÀ‰û/°~]INðçW%Àú¾»9ïQA€Ï¿F€õn]3^ ósãÍdž†_{šð®¸«ò·cß­OuЇy— ”ºüÆ<®1|É7â(hÿ5§¿W¶7àí ð4yV)~í¨çm^4}ÿý Ûëø)B¤ùû—y&Ö×òLàEþæÛwï.ŸÜ\•ÿ=B_R5¼Eþý·ì xrPÈïö/B¤jøIø°ÿwF·ÖñüæÕj~Ò \? h=XÇóûȘý£ŠwQŸñ(À.®ñü>ä“ßb"?Ƹÿïjã·‘å7g¬â–È:@€ÏÏ`{Y~3F¦6üTÆ‹¬c,¿[¥ÀÛA€ù9påÊSüSXGY~Oñ™ ~ÈFÁªü­; Æ:ù5ÚûjðƒVÔ~¿·Ñcý ù-ð‰-œ@AÝ÷ÿ_a%¿R¿K8ñšóý*58?ò…C~#?q"Ž| Ïc†áä÷ޝ#ß‹‚†çÏQã|‰Ñü±…¯È÷š© Òäü:Ç — ¿÷pœgüj49¿žñ"4¿kq|•ñ«&A`ðÙkúö¿^€ü¥ø³8ùýʆÏQƒgú±ò·‹¿„ßë8¶¿r¼žÁï9Èß:šßÍ8\üŠq ø7¯³ßý8>ùÅáIà—ƒ †û'$øä—|ÃôAþ_âQüò1àþ¿ò ¼çN@þ¯±Ñ à—RAŸŸ ø ¼²'6ÓüÀ!ðKG@€ÏÿŽ!xŠßoœØEó¿‡À/Aó³Éü‰ßïo¸«4ÿðßÇ)ž?ÞÂ}äíø«å Í¿ ÿƒFy$“F~YRnç îÂûƒ‚2å[’º@Í ù_æéÓ+špþìyýúe¥®Áûóêy‚ò‹TU6I½%äëÏáû‰ïì?ð ½RåÇv²UÞ\ù±Ý.“R‹üÂ,‘Ûé…#Ó¯T.påIµÂ›áÊS¹tÙË©ø‚¯ŽÝúµ/=÷þíxí3µuë«(&æ´ÿY½ÿî¶ê«o) U5àóù¼„(Š[Wé.«Õb±˜Í““ã£^µ€WßÿëòÝÂõ¿¹ÿ—§^î)k"àIEND®B`‚plugins/jetpack/images/rss/pink-large.png0000644000312500031250000000660212651056012021073 0ustar eacbforgeacbforg‰PNG  IHDR@@ªiqÞ IIDATxÜÔÅ~q†áA/âŸtƒlêîîî®—Âut‹Ea…;ŒT“ îÄlÛÎ׉ îíï©ÌLfÎ;&}Í×ma*R…å˜"ÌÛ²0í¨ÂLÊ_Fe˜ 3bVÌ̤/ɸÂ*Y÷ÉFÓ"LW–…íãöÑóô¨ð½¨•éE›J/Zã)¿_K,«½ƒ ³bfÌŽ´°´ßijÆGTƒÕ¾b°Ó“üäé^¥àÔ&§·(0²Aþ^ù»×u=]oX_œþ˜À€“ƒI†â oÄŒ$ ‹ Žo&šd3[šßÆßäéZÁì„´ ‰IÉR¨†ÓÍš0¿¼ø¹:–)´°ƒ“·q™È¹‚³Gþ°«T#W¾Œð'>ùñrPp–{øFÑÊ$Øýq?ÇzP¦³¸Uãúsçâ[ÜU¨üÊxøµñaƒúIðãNàF´¢™Iˆ—Ô,ÛÀªñÌŽ«s·="ÿŸx/‹¼Ъf™˜$-J‹aºþ$ÿ:6 /žùüôñ®"V èï„b,ãPÎ*¿&þH<¶Áçøqp¢‘Ð*‹ÓWÑ.©†S…+ÂöÁÓµú©{³ðŽ[WÂxÿw½ËÌÌXnÃÇÌÌÌÌÌÌÌLrÓ¤á77°ÌŒóô;Š}¼×+Ë»åªgÎÖö÷I}3#1ï×<U¾!ùÖyI¼rF/fX1¼&KŒŒÑÁh¸÷ìqîÇ+˜Á¾nø‚Ÿ¼òÒ¿°Îó²j™ëííñ ¥ßÅÄm­Ž´K-i¥êÒŒT¤º++…Ÿ¬JúG$öÂI¹Ëà2ËÞ™q:La=(`ûºÑ ~2‰zÂó/©!mšóPüeT´Nµ-c)ý&&©w¯M 83๯£!âÏž0ƒ]ðÓö±{Gðük0HkFk!‰×ÎXOGN?xÏE)"›Á¾Ž@mx€?x‡€v¬Lt¤6žWÓä°¬lß_8½à×kÍ{Ú¸Â<*`‡t=žÝ¸Ôáñ!àdµÆ¡’¤?tD½ä>^êô€DËmâ ‚'?7›×y®•“Ýj{s’|ýœzA= N!xˆF‡(ø ¢£÷M"‡ëEVSÐ:µ6ä¢BeyÃÞSþ!½GŸì#`èe£ÂãZî«‹xwiÅëÒ.4EÚrÓ¢,É7Ík¶ž|ðô>Q(¡¸Ÿœàmò–›èðð§èH+õöÉ}yQÊO@:õc…%4÷µE SyÒÀ£sP§X´=vVyËʸÎߘŸ—ˆ=oRr_ˆ Œ¤SnÉ ­ü×$yEÂ~Ÿð÷k Ñ'ú `˜‘ÈpÀ¤íñ°Kj–—Þ#‘ÿî²4«2H«îË!· 'ü}tš…€Á÷Tx¼Ÿ#É~æ¸4Ž–û÷ %‰?N.½K_sµ&¥¿$$󑣤­q‚¼œ!?Ï!ô@ `J]³Ô•p‚'ØZ™†¤?x„ø| {þ”´¢5û½R !‚|ÀaÀíÞh €‘Þ7äí5Lœ´ð—ŠapÌ»:ðÜä[”±ÆtŠº+ xz_°ÙDÀær¿'^5ËKáûËRRÁJ}®$ÒàOá‡+Œ„Ǥ®µ~à]ðamüÅS äÀÜ ^W» (™JïkuôuÇGp GS…†ÌÇŽ"ŽèÙ>½cG²Ÿ=νð®Šäù\¯Û—ÇÊÒ:’µ€§æAaguSOÆÑëFð~y‹iIÊçù=®C²"èÁÔÛx®#o5ÙL»v+-1-JÛvÕeñæÑ`ð7(»ÎB€¼={‹Äʼn%^3+µýù~Òæ:ì…|À» oêTJö\$ [@ƒÇ®Ul4ðpð[¬Ù[½Ö«U…9N)L«Œdܼ=æ:b28Ïœvª¼"$ëŒB 8fðÔ5¯1@a„Þ¯ð¶)S/„hÃ<™s“)N`…ÏaXC¦¥QoP=_üyÔ®îuþŸ›|Å „u>ùº9±5б‘+‡ß þjeW(Öû  3vð,ªÄœýb„,´Õ°d™j¯°Jü…SŒ¼Ï1"žl-ó©cxs¼Ndìb„Zs¥?Ä%Ðë{€¿ÊF€…‡áب#ئ¹¦€ÞQxÌëâo#R 7§@ûÁc‘+† <‚ç<½_þ‹5 ;ĺÎç} L–ÚÊÓÁ¦Ñf$ùä-Ã:õŽ jÔ"VŸ:Px¦Fä²!MÀz[Ì"'ñêTW8ÿ£†¬/‰cK¾y^:}ÀÛ{µ=¿3­Ú–‚ B,réü FÀ#‚JÔ8±¼Ji‡mµÉ"ÑÀ}õy©/”­Âˆ¦7“CõzéîÝRŸ-JP£¹dÈ»övÀfcöÛvo=õ«»ÒŸB‡Ã8+,†›/{ËÜÎgÙ¶à3ië@¯R6³…Èô´üåÊ.Fr› ’·…Ÿ®†Ïþ.³&Ú—½¥“j˜MƒN½£–׃lÍsÀ3ðâÖ0¹º?X?øË”]p$|qóŸ)ÂëÞ©ë{÷¨¹¼_Úù`‰œzëk¹ ‹\5Œäµ’¡÷»Áãÿ3`ïb‰2U¨½@É×ÍÊrÖP¢æçúTð\&ŽXT€½Ú>rõ0yÅàÇ/Wñxünðíõ;ÁØ3!À¢í·ìW|NÚ™ÀÈŒŠKÔ¤°*ÿIßçK,e]Úâ/˜´ÄUò„î]ô?-…7¸ü´}ôžaö B€u[Ê $¼aNjò>AÓRë?x‰hîá࢞ÕÔŠ?"fð*÷°&H¨C¿È»DUxØvg£${h9lj[ š€ÏRÖ¢¾—ûÊ"œ¥!JÔÊTâ’õ:÷¥EÉ}1Â}Hskûœþñ4’Ö?@á!Ž®Ìî÷Ohãw²Î¬8¼nðCCl—u7Jz¶Êä¤q|è=988$óžï£J«·àº= X"9GÁñ3ó6ü @ÄŽ«y}ü"e®ÙãÿÇß»Áó¹ ‡ F0án•õn–F¾žÜ IöŠ-‡gŽêü"Çïð0/QÊØ+¼´Å³Yš-ãlw¶ËìœàÞ?·{»<¬ãð‡œCRli9+À_òÀóyö/nê>0x÷È ÇI8V¢ÏœTðØ™‘2õ÷¨ÂCm¦×‘Ì{h*Êá %mb€Ÿà/bÈk‡Ç³öô<˜Àf<6ç˜:jú€÷à$Žötrs¿¸2½üQUî~·g¿áí]µy¶Ý;EJ̳ü9 •9 ¯$…¥MÇò޲ÓQîéÿi»HŸåyô:þÌ{plÊÖy/>óUÇP9RÃI ¾Çžæs娫ç(ìµ¹ËèvmÕ†œvmóšmZ³Úe®­Œ=‚í% q mÏßè$: c©ìè¬cæÃÓÃ'áðóŽÁl}°!o?¯Y6k®rÖáõ>?ØßÝßž2‘“§eÅ¡xüNÐ0Ñ èÍIEND®B`‚plugins/jetpack/images/rss/purple-medium.png0000644000312500031250000000316712651056012021632 0ustar eacbforgeacbforg‰PNG  IHDRr ß”>IDATxuWtlY|Çg¹ú¶mÛ¶mÛŠ¾mÛ¶mÛáxb;™ÔvíÍË{³ÙÏéŒoÝ®®êÛÑÌ«³vñïQ…^øO*ý6aJ¹w˜\î &—•Gãù[#Ê¡Îçüí¤RoFxáÏ=%4=òž ûûyŸµW´p`Y3'–6µc™Äòæ,—÷V´t`e+Vµ‘hëÄêvN¬atpb­ÄºŽ$:»°¾‹ $ø9÷öÇ“>ƒ´‘?éãÓ 4im›(,©iÇÂê6,ªiÃ’Ú6øÔµÃ¯¾D;üÙÐØ!q€Y©¢µ -`€¯—ØØÍ}cáS?$IÕÚi× .”SlAÁäÑŠù|½¨AmðohÇÒ&vÉ^²õÊ8¬½9SÌ”±½W,Ô ìøÛÝÚÈO¸ÁâZ’Y5•Ñ•±¸·3Aãpdj¶öqc¹ùÕÐÆô °µcv¤UQ«^ øê¶Œ(ðÜ_›TúMkÆÌ×P™¸~dB_99@Jœ¶é¸/‡Ø>0œ™²®ù2“ÐøÈðsR.ßq‰^'jSDmÜ€Ô-–º±NÎoøÕJŒÌƳcIØ1(œÔrCÌD#3sñ3¬nãF0Õ«Q΢F%ÚŠ²ŸS‘ëAfjÎ/ãóqmmœ.‚yÑHRNêY~VÒè*NWc€PJжHÝöŠÀ¿¼9ŸŒXGV>PO6ðáJ 6õr“2‚)Ûé™9¸·0H%;èQ•!ëA0Ö/@(õ©CKØá+‡ð;,“lêîÂõu±ˆ ÍÌü" Ûú¹éMïÌ&b™øšX¤ÄuŸ‰ìí8:= 'fGc÷ðpREß©j6÷ráõ™$dexÓô,æÙe…ß*ó}b‘R~A™š'E¹¾gÀãÒ“=pÿÌij£‰80>‚]F>WÝæêª8¤%z¼@_ŸM¢°LÀ–)02Är1[=÷Ü@>$×ÜLþw¥%y¤–IØÒÛÍïSê8»8©&POVÎ-‰a)ôÌøœ‚äA @*ˆ'¢šXÛç úïshb$CšpmM,²3/G[³(øÖ± ˜hAi9À )sR¶otÎûÄàéáD8¾æ±gáÀØú¿Ã› É0¯;[ã±°ª•™ÑÛò\æÚâ-elnWÖ7o9qmu,"²a^Ž/ô7ÂÆînĘl–I°Ub‘t°ù•­t€H)ë`º´•—”aY¯ýc#óu §"&ÿmdÇ­-q0¯³K¢1§¼ $Óy­¬§H£sSŒ@›zºqdJ$v ‰À15³L£ŒLSâ=Ø>À-ßFKÈg†€¾ÞIżJVæ–·ÂW?Û(}ÈVÄLòzßqp~Í ×H¥P—WçëëãcrÃí-ñ m‹ôó­¯:ˆêg—µbŽD@úPÌM0ƒÊSa^ îllíë& (Ð…ð@£Û„¼Léb&—WÆB_™i9Ò$ܘYÒ‚Ùe, °¼¢”cºÏp}WñáïZe¦z°Gº½Dj^žJ‚¾’¤É³Í)gÁ>¡Ü“mHú ØgZÑ0Ì*e‘‹!W†Þáy¥ºÇòõJ^ lmì³¼ õE€rUÍ*& ßåÕòÎ,ŽÆÔBa˜YÂZdjy¹žx)n `'c4Ø(úÁîxXÞ¥ãÝÅd°1³ ±9ú4äUBߤ=”7ˬ²¬¥½› 0äuºÊ°pf ™™TF.à=÷—ºqàa¦ Nbô%•K5Á˜?&°œš]Ä JŸ^›WAY@ì b‘(m0ÖÐ –cT!1:jw pÀÙÑ'Ö|yzßgz#6õF¶+›ÃÖüJRòŸ%™YJ¢¤›VL2o ÔÔ%´á>ïí[?4q{ïRzŽc{+©¤¹™™¬*;ˆDéS³VBÏÌ&`Q𑽇xÞ[BÓø‡APfJqðö&ͪËäÞo*[R#cˆ]eÜЛb6lª‘‡ò­¯FÊ…u‚u0/@ÇrŽçÓ§”}gçÍ£>Ã{䟢GyTãdùwaT¡ü£þ?²4¦D²ì‹ÅIEND®B`‚plugins/jetpack/images/rss/green-large.png0000644000312500031250000000310312651056012021223 0ustar eacbforgeacbforg‰PNG  IHDR@@·ì›PLTEpxuuuttuvz}€‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š››œžŸ ¡¢£¤¥¦¦§¨©ªª«¬­­®¯±²³µ¶¸¹º»¼½ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÏÐÑÒÓÔÕÖ Ö × Ø Ú Û!Þ!ß$à"%à#&à$*à(+á),á*/á-0á-0á.1á.1á/2â03â15á19á5“悔炔烙凛çˆãŠóòÛøðàùïáùóáúòâüîåüïåýïæýðæýñæþ÷òþøòþøóÿøóÿùóÿÿÿ|zõU tRNS 0 °ÀSÝUNIDATx­—·â:E¹ÞŽ 5 ¸Óqwww÷™2î®üì—æË© ×Ö;KSÖÞ¤é©$„ŒOIò¼#MM„‚™ä¥a³bÍ+3¼T–ŠIy™a5І¢ªª¦é,F&“Íær9Ó̳œ‹ÅK¹\it,c™<éâc3rÌjèÑh4'ÉT*•N§…É›ad²,BF¦jÇŠÉ3cB0³D±r‘ð,¥ºe,™Æü¶¶P¾TªZ Å›¿º`žb²³’Ò²…ÏŸ§X³–IÎŒÆâøb¡mÈã¡©¥Öÿùó»¶n?Ÿ/[K§BR¸ÿÚãùh_ÜV˜oæ:a)$›EÌŸûTkn>W3å\1pþ6±H÷ð\|¶TaK¼'@~_©ÌÊgó–#P‰?Wª³ðħ!äËþѼn’׋ؗî†Q¼hèÏ ûíPÿ#x-G‚@ÿ¶ºùj@q8¯e¹@èoéȃ>Ûæ0^…`Hÿ+g¾ ¯·á†ß?GŠÛy%C‚‘÷ß±ß6¸À}ÿÕù ûy!È€¿iw»—Ooôÿ€ooª}|J'þ_4ñ÷ã¾þn{ã«TŸ$Aóïz·À½õn›¯=Õ ŸÔH€ó‡€çÞ·¿÷½£;|‚9ÁC€5»F|Àð³äçãB€õïö×o“èoÃ[‡›~>®B@×oEë^§6úø LÁCàÏ Ñß­=Äöñ1…èÏ‘+W~0PÿN÷Ý%A>пõÇè„‘ãÔ_ozŸ<>š&Aÿó{/0²‹úÛê![\>ÁÀóÏgOð·Jý»ä®‚ËGR$èãyý|åéR ¿p >L‚ÂÐ÷Ç Ïp„ú{ãëà!Æû ¿K¼¿yLá+xyžó®áõ÷ÆMÁ¯…`Äûë‘;…ïï:Œ¯ ~M’߸Ɗôùz‹úWu[u’úûM ß ^Š/:ôa;õo?¨¿×1Vˆ‡À¿ÛÁÏ êŸ[¿õ¼¿›1ÜHüê Àï¹9Gý=Œñê/†§‰‚ÖÏ×à.õ×øöQÿãUGüê8´þÏ}ý%^¿‰Ôÿkbô„øUï¼#^ß‹›yÿ`Hüª pýo{‚‡x~ãÀ>ÞÿM¿’eôg“'Ø)xõ;V•÷#~Op·îî‚WðÕr–÷_é‰Xœ'A¥âõW4å–Ë+¶ nÓýã 8¿"Ua³áëÿƳ^±<>}À¶;¹F÷ÏË',Ïž½(s~…iÊ!)Ü?øþ÷=?qÿÐú¿¼–œíêbù”ó±=.Eòˆ<Î7õÅñº³á -Ou1|ÊÙòЦK±ª‹à[ ¶ŽÓlÛW[øülûBcÓì,Úå­ƒÍz,¸õíÔØmšL“Íܤ©är’dBÇÈ’2[Øúþ_›ïElÿÇÁý’‘cžf0‰íIEND®B`‚plugins/jetpack/images/rss/silver-medium.png0000644000312500031250000000145312651056012021623 0ustar eacbforgeacbforg‰PNG  IHDRØòIDATxmÕÌçH‡ñOÛ×ZÛ¶m+>;NVÑnp¶žmÛ6×¶½ï¿»L²Íj¾uçÉó›2.ìÞíêúÒ– 8´[wݽæ§WB7^ÐcNã ¤qF·â±v[?oÙì{Ÿ!Ạú?ÚÔ´I!“ƹLÜKÊ9Q%±dûÂËî}&¹¤ç˜ÛZ'Y™ýñ¤£ß‚yßUÕéªÆA›¥ªŒÕ`—í¶Ú)§Dö¹Šƒº^•6\b‘UF™æh§;Çi&h'P–ƒBn¯* 7&³B»¤jœ¯ vX`¾mª%"*ÚâœX ˆÁ»´h4ÚñC´–˜\.HÉbøØK^ó¡?m4™j²Z$©ˆ¨(S^†]6Zcž¯¼é+›Ab ©jµF¤‹ËX¼ˆÉô5@g »üã=ÉAw$ZEßþÆ$¦Êd':ÍI&ê¤Ê?ùÎ^ÐÓ˜‹N˜ „ÃãamØ×ö„¿ÃóáÉÿóIØäá½pO¸7Ün7‡»ÃÌ*ïS ÆGj/±Ìr¤&¨×ªˆ¾²ÔT&øÆÇ~µÐÁ4-rÿø´3Ä^qŒ ¤ÊGy“%~ò¡¯í-&É´úÁV0L£Š"†ýJ­V¥Jn‘OmŒÛäWÐA_ÑY‚"*¨ÑI³Ìߨ†hËÝÁP%‚vŽrŒ£õ¬ó‹€z}¢sè/PY*Ñi„Ž2F©V˜oè%³7‚4j޾@ùä¨Ö¨U%·Ý*ÐQ½Šu TkV–šˆ>¹€Õ6+äÖ:õ ;Ð(ÞG‰ªÊ6Íõ¯\W[üb Xo)*ö ¶ûW­ÄvUŠmÉõsÆÎjPÑ*h• âmŽÞ˜h)âºénñÜtõƒëçe’xP„ÈŨÄÄîåV®›=ó–?˜>·bŬÅÛÊŽû½@%¾Ï›é#ß¶jÖs+¸áüs; ªRØ?A¹&Ιz»ç-Ÿu÷³”¿€.W7Ä_‰Ã·T±uçÝ«â/€ÿKºŠú}.ëûIEND®B`‚plugins/jetpack/images/rss/red-large.png0000644000312500031250000000647412651056012020713 0ustar eacbforgeacbforg‰PNG  IHDR@@ªiqÞ IDATxÜ”ÅvaFô!þîlMÜ=w×xò(<€îq‹ïp—¶lÇ6E}Ó‡Îîsî̤µn™øš¿kRö­IylUÊ[7¤Üáß´ú—±Æ 6ĈX3#¾Ä'Oœbß UÍðÏoJùîÖÑ£ô ·—žMNÒ³@€žùýŸ¯Clˆ±"fĸ0¢•O\WÕ#kŠrzKQèQw7Ñ(Uææ¨2?Oå\ŽJñ8•øXX à˜M"±K2éPN¥¨œN7’Éì’Í:à6y›<(P¹°K¥Xldv–* T]^&ü6"Bìp€ œÑL˾ػ.å󻇓 Que…€év“14D:gXïë#½¿ŸôÒIÇñáaÆÈˆÍè(ãã6dpuŒ©)›éi2Ë…ç’éñéõÚp5M¿Ÿ 8XÁ Y‹C8L Öà"X±'+Î$SHž“ 8ÀNpcD= ÿ¬*Ї/|{¯³“ÊÈ*WÜà 5÷ô@Ò­â,ÌØÒccÒ âx^³8¤ñ@€ :4H[Ú,Î$œNä¡€è8­Iù溪ºñçG­í9K÷::=T4–Ô¸ þÏÈ7Weq‘Ê<Âpƒ#\FànGÇÁRžE« òh![\C»ÿJyð+åS)Þ7HB ÀŽp…3# /ÖÚÚRÛªº£ñ‹Ðöü_ä},Å;a…°à gFˆãBX•ò6&–ýTÛch¼ ð%ˆc'Iø*yðäq îÃ8À®ï™5 Y–% Ÿ°í _<„}mÛ¶mÛ¶mÛö=¶1ëÑ™{&_~ÑQg^wuõ¬ÞˈŠííí®ÿ¯Ä_Y£^ð-ØI~ÿþ»§§HÙ îž1¬¹!uå•’<÷\Ižy&n…{y`àx$üŸ€çxÏÃÃÁ f°Oû¥§çf„užÉRæ‚ÜžœPüè#µfSZÅ¢4ÓiiÄbRùóOÉ¿ñ†l¹å‰Ÿz*àL¤äYÀ3¦<ƒç³``3ا!QOdþ~ÀZb ï¾+Q¬]©H}Ó&)~𤯻×3aÿð<×¼#qüñf°C@k“NŽÌ–ð¸c±Æð°@Fò Nh p¦<‚ ïC)"›Áh{ăN€ƒ‰†T/Ö0¹Uya*ÁC>×\f°C t=™ÝZê¸eõuëdËm·1I&55à'yˆý˜ý°ú–:ÏõÂ{ïÉD[uÞ%™­¸Ÿ’ «o—·<Ä{/W7b§•¾újÉ>þ¸”¾þZˆëv­&ã1Jhö©§<åÆôGçô;Õö óyÀ|Ö¿›=?“ˆŸt’dyDFíRIÆj¥/¿D™B€'<ƒ’¯Ïð€›!gýà£k{~öëË<Á³›@FîÅ—¤ÑÛ+c±ÊüùÈm¼aBÀ3/ð¸ è¼OᙉpJp䤾qc÷yaíZIœ|2$ŒóŒ4S©®5Þ4°×Þã&8.Ë¡à `ópîcð;/wh{>óÿñSN‘ÊÏ?K7V[¾\†(“Û[%VË"oñ⻺t©D0Ä—’|'óë¼J=%ßG′d{®ÓéZÔàñÓOGâ²êò–}Èð‘GRö¢qÉHü䓘S¤˜7àY}Ô.ÚÂN€¥Éu‹µ²YÉ=÷åPW|ï y˪tEBeáB¼‹¹FÏê³ß±rZã&Àmµ¥KI˜$°@yk<¡¶fD±‘‡`dð¬>[~ÞHKëZKÝNRüøc¯5Õ}·Üz+Õ| o`OÍ *|šÚErýHv}ŽÞkùYP÷dõm}{j}ñÓO'jûË ·x§ÂÛ×kÐ}&‡¸ŒEh$ð4| @É&€Õ·W¡í“ç/L<ÿòËRÔÍJmõji‹2VË¿ú*žpûšÖ5•¹7"%Ú„&Y@àVðÞi—…•©¬¾í¬Ž,Îu“#ø‰,® ™»îÄ+ÛQÒF|g‚7*’¦)×é!º¬üÃÞNÖÞì )ÁA°úðÁò–ÁgîçsB\QÅR7D°‚é«®â½FÞzdv;í(h‰v¹ì| ÑKKÏžÕçÔËA€¼³{‹Ä%‰%/¸@ª tÓ6÷¶½ÿ_òuZt÷"iØ2<ãÿ!ÅLp´£{Ë}œÀ㜠E±ò¯¿š¾=c4S™(-Íø!Æ“…áÇžsÍí·&€ƒ^<^ðFäáI6ä‡V¡ Q,s÷ÝÔóŽ&9·†L‡q,Ç [Áó·Þí¶S¢­ì>^ð>…Çÿ¦o¼‘sDw( Ò3M´FáQÞø‚CÛAdù·ßø&‹îx‰{ßÃ!}MLÈ€,î/¼ý¶[Ý%“ü_G#BHl©‹.—qS&ão ÷ï;—­´Ÿ:°0ã¿·~Ö7òè£B—†ø¦LÕ7oTYâÔS¹ß×À4‰ñä²Ì}÷‘Í xÓÈ G9{ÅO>‘@YùN𸇻ÁLï#Ö,††çpoð50Ilœ#¸BÞ!`À…G\ô”9Ä8¸<@ûÀ3bV7ØcžÕ/éþÞat‡¨ëÜïk`"©Ë?þ.lêu<É'oqëô5×H˜q1tè¡õ'4b³g{è"À ‘“<ÿ|TW4ÿÚk¸¬¯Ù¿ãN’ºüri‡ëBŒlÞ¡íù°j9\b±Y³|à!%:¯ B¨Ib9miGµê²eh€ûÎç!¤¶v­K÷N¯ ‹ÚªUáä=ð ÄfÎôg@ŒŸß·…[§“Süì3‰h$+Ô¥×!öË[:Ê®j@Î0ÒÖÀªrlæÚ"³Ò~ðsæ@ ’ÛJ@¨¼Í¿ùfôîÏúõÔdíïÞB@JÝ4$ è4S^I| Ç;òÎsL` RÙV,mûú¹‚¤×wlžÿ7VK~ÞÞ>:Ûc d¼ói„™B:Ä/±Ì°“°•Äð‰äágÈ›êq­?m´óÇ,3К¦®7A`3±9ú»äKq¾dšøž6M,eg‹Å-iæÃ!›?A>«A €gyíe'Üž´ÍÕjzÚ'AôÌ*™¸åihœѶV¤³¯WäŒËßHºVü@jy3 ˆƒs=OÖÍg­q·Šƒ¾Œ˜­³–Èí–ÓÂwzûØ\5Uc…%³,£]‹m,· oZU a—kXƒrº…Z4½½c’$Y`©{—u6xÎ<ýs†éJòY}‚yzÄ?·Ïßüÿ‰ž®ðqIEND®B`‚plugins/jetpack/images/rss/green-small.png0000644000312500031250000000101312651056012021237 0ustar eacbforgeacbforg‰PNG  IHDR(–ÝãÿPLTEj €lvq‡‰…†“–††‡ˆ‰‹‹ŒŽ‘’•–—˜š›œžŸ ¢¤¥¦§¨©ª«®¯°±³´µ·¸¹º»¾ÉÌÎÑÒÖ×$à#'à&+á*;á>½åÓÈçÞÐçææëûèíüîòýóõýôöýõ÷þùúþûüþýþÿþþÿÿÿÿßÓÜ tRNS¨¨©©ÏÏÏÊÏRH®IDATxÎRÅ@ѱ¸'¸Ãý/…»Åev~uY—>’Ä€t«CÏoV"!B”»‰ƒ&½Ée¶Œh‹^BMj€ö÷MÀšˆƒhj7Ír¿sêFƒrß>-~IŸÎ-…õQ–®Q¶µ°p/£¦ÙÜ•ò¶ÛÔRkbï>ÍÚA9ŒŠ‹êѯÔöÕïðíÂ/G–šiúéÖù«›ß¨GŽN F¬a»" —pÿѤö:1XL-á¢ÐIEND®B`‚plugins/jetpack/images/rss/orange-small.png0000644000312500031250000000121412651056012021415 0ustar eacbforgeacbforg‰PNG  IHDRH-ÑSIDATx%.9€¿îäŸYžmÛ¶mÛ¶íÒ•Î*ܳíw(žmÛX{wf’ÉdÕi»#ßÞ°Ùzi’>#*ç†AÆt«JÂ܎ήÛö™ÒÞ"ï]²æ†›l¼ÙŠFe7ç24LZ¡SSÔ j±BR³´·d_üôÞo'šûŽØdª‰=2¬¾)MG]‹]wKD#’w âPkÆ b¬hª¯­çBÜØªÈ9¾ô¤k®CýþþþˆðÉDbË'ˆIÊ¢¢pkôsÓ~k>ÖØÜY;åwË©þú‘ˆÝü Ìö'#•‡–/)]Äç‘à ¿?GAPSa×Úˆt×Ók)ß|¿ørbï_˜}o&îp>~0›8B@D0¦Â¬¶.ɾ—Qwò“¤çLG’Ê×{þÀî{¬³;åHqp‘AQÐúÚ¿ÂÍ9Ÿðá Hã:ØãŸ#ÖoH¶òD•ô€«^)‹@¬@ŒU´ÊÀõRý°ðúíÄÊc}÷÷¸Þ¤¶Å¾È[2TDf­-HΚNíôiøÿÄ2ñÉú{}þ*b,vÃ…@­ÊÄZ05¢XJo)~|bD×Ý‘â¿ßÆõU׻Ѫ ?ß¹íÜ­vZïœ2䄆MG> ÀµþI둵vÀuü‡ïh›V´þO’µ2äó̹kË{õk4ÙXŸ®WtµSöõQ•–{\ËŸ”ýýT¾Âý÷'iÌ)›Ì½®åøè²µ×[c5ž1ªçú0þÝc,¸Fe®sÅm;¾ôGË0,¹AaîLKIEND®B`‚plugins/jetpack/images/rss/silver-large.png0000644000312500031250000000363212651056012021436 0ustar eacbforgeacbforg‰PNG  IHDR@@`¹UaIDATxÅÙUp$Kv€á/«»Ô3Âáû2Y÷†/ó23?›iÍìã‹™™ýjff\¸ —™I³#–Fê®L“"#2ª„K¿¤¦¬¨ÿDž<§²UAƒo¼!½3¼/]‚Ï)…Ó†?ûùO*QH>Ð9üÎøu»öŒôèi#Ù‹[¬ÿ³úå™?ûýº5€^Þý‘Îû¦°W20òù]~_|Þx,_ œ5k^ý‡Ãïù¥'|ËkãoŽ^|̤%§\P«ÚŠªüYi ´RIæ½ä̳ÕWüÌ?|ÓküáÔÄe*³Î¡R±ycD»>ÿu,yÚüBzïÏÿ+Tð­—û­©‰+ÕžwFø¬éƒ Úå S“áwþÇŠŠØ1ø±Ñ‹/³ì%C᳦‡ é¹ÔèŃûT,¼¥÷îc*ÇEÕ6ô¶¤'©írTïÝ o¡ûÕ½øMäCY/’ßm¤¯¶¤’(š²/Ì|ÃWÿUwdÚm,9' qØ„µK†ªÏ˜>I’ýfïèNwïï÷Í’õAtƒë ¬8cÁ¼“N £ú´õÑÀýþ©÷„o¼ÿÐu—xAÌú yƒ/FÉÀY3^ò)‹‚î§¥ñ„ãT¦û…>Úè™4íÞínGIbÛú¨6Ât¥ê­úvöšöov™ž¸m}õ¨*ˆÂÛˆÊa¯ö—©Ämé“*Ú«~3Ly•×8(±M=ØfpÔÜl§z+úÕŸ5g rÖ‚s–%Óq×:(n^¿ú¼æ tÜïüßóûþƇ=a^m=&½ÖÕH›Ô' Ðm›¢œ· vÛãˆcéi§ë&ãî56Ò!tÁ†—œ¡SNzÔ˜K\jL;—q%¤uõÄÖÚõù§Ýë1¹Ú„6»Ë‡Ä õI@µ}ÐÑ5ð¸¿ó ‹í¥éN» [ /ëÅf–ÊJ%HjµXŒt =è<¯ ·ë‰ }’õ¹ ¤†>¹Î;½Þ«Üì*ôD‘☮³þÓ=V4ÙïVA½®>R®‚€1ÔÍ8î¸%A%~Üi·UºÞGiM}\»${]é•Þæf“R1]sþÕ M®q™ázú2…¾¾iov»1±X–‹þÓŒ‚[ŒJízZa¤²]—{£ku¥jÇÀ‡[BØíu»¾¥ozO°Óõ^e<§‚ÊŠ™WÂQ×®«Ï)¨ ýÆðj_CˆXòÎ)ázcêV}±ši¨´SNð¬V{œö!C%}7®­o¯*•'}Ô½ž0g`-:nr:¯r^pŸ®rØP*õm3õ¨œð Oú¿óþÓsjíL»D>½Êf”tÝ(´èË> Ê-˜€ŽžžJ²èiÿáo=ÞDp“Ãrç·â#J.¶_õùgÍ2lÔDGå”ù3štݦ¿ZlIeÆ£#®¥BßhD}ít,øHJØãfU>=÷;¯är£EmU°ž>§%y؇­(á¢Õ•DÌ{´âņ" =Õ&õy<ß’e®7’ë=xIJ’+…RßLA»žTn5u¼èc¢’QWå‚ f=£äˆ u‹ž Т'ê1b‡(å®<í%|‘yßÓßíh®•Ö>ZôWz·x«×¹Q¿èf˜UÒw‰<fœj£=ݵô;Üî`̘£>lIÂ÷zªÌ³Õ«'?ë9ãeì0Ère ´äþú¬ún³;7œàEÏ+9`_γÆè¨Éžö*ÈzѤ‹[êýÒÜv©="ʠ㈜/—µb‡qµ¬oßåt8¨«ÉÝ¼Õ Ž[PrT'Ÿüœy%S-z*´Ôý^mìVÉÛ <Û 07ÙÅFxûšUЦgEuÖG¼,Ê`—qù I£ÆYûbTêYÐÆ)ËòFse ºFó08©dD(ô-ûy§û©–¢ÇÄ⢲ìTCsÏ?£¤gW®ƒŒJkϺ×%÷š²>J†Î5Àê芒 eØ•8(õ cο;.Îú/÷"ëÕ–•ìÌÇh×_í#Vÿv»Z¼®ÔÀ¬1iLpÆœsB©—ð˜…"§/“;ÁYKÖ1pV@B´Cß…¯ÿÁñï›Ö‘d=9×µ(‚Ôú%k˜³ºªäKŽAQ÷I%HHjS.ó S?¾åzÿqMRlè×ü÷BëF;¶\ïK}"Â5’‡Î»»Z|hø¡YéÓÔ§-ékF0üÐâCÕ¯ ª_˜OóªOKŸ¶ Ov¹È‚¹TýÂÿØ™üëÁŸ¼dés¤:.¼hð'“MŬô¾ë̳O[á³®¯ít•¾§œy¶÷]?°B?ýdúÒùÙ']Ð峤jÉ>ÓvyÜülúÒŸ~²¼qùêøÛ£5‰Z-fy{íòØÐ“$;ìqȨ/:ólõe?ó/kÞºÝo¯®Zîê4˨8¹bï;vQ9焹Ö[·›×ÿ¿N2¶K0pÞù֛ן÷Û÷ÿ –ƒ…žäIEND®B`‚plugins/jetpack/images/rss/blue-small.png0000644000312500031250000000112512651056012021072 0ustar eacbforgeacbforg‰PNG  IHDR(–Ýã;PLTE @µ JÕE±EÄB³ Pá Rä PÞ Pá"Uî"Wô$Zú Pß!Qß"Qß#Rß#Sà$Sà%Tà(Và)Wà*Wà,Zá-Zá.[á/\á1^â2^â3_â4`â8cã:eã;eãgã?hãAjäBkäCkäDläEmäFnåGoåHoåIpåJqåKråLråLsåNtæOuæSxæTyçUzçW{çY}çZ~ç[è]€è^èc…ée†égˆéhˆéh‰ék‹êlŒêmŒênêqët’ëu“ëv“ëw•ìx•ì}™ì§ï”«ð•¬ð™¯ð²ñž³ñŸ³ñ¦¹ò§ºò»Éõ¿ÍöÆÒ÷ÍØøßæúáèûâèûæëûèíüîòýóõýôöýõ÷þùúþûüþýþÿþþÿÿÿÿÍ‘x tRNS¨¨©©ÏÏÏÊÏRH¼IDAT×ÁÛRÂ0ÐÝlRHlKa2N©¾ùäƒÿÿ#~ttpŠŠPÛšëz‚UD@yõŒªèf¢•$BõºÐªµ/v=E)¦ õº‡ï^bÈwTTã-¦ª1—Ò´i»tpë­zç<‘6û}½ñ§²Êg^H7î—ËúïgWô°PÎõ§l߯²u@¦²Oö ·>&ADˆ0°XDEü8ÍŸÃâ?Îþ(®HúyL³×€ªŽÌÀ@sÌÿóC]dâiaþIEND®B`‚plugins/jetpack/images/stats-smiley.gif0000644000312500031250000000006212651056012020644 0ustar eacbforgeacbforgGIF89a€ÿÿÿ!ù, bx‰Íj€ ;plugins/jetpack/images/download-arrow.svg0000755000312500031250000000156112651056012021207 0ustar eacbforgeacbforg plugins/jetpack/images/the-undercloud.svg0000755000312500031250000000240312651056012021166 0ustar eacbforgeacbforg plugins/jetpack/images/wordpress-stats.jpg0000644000312500031250000002661212651056012021416 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿ£4ÿÄ ÿÚûøBª›Ø2 ÿt!H~¼¢>d ªl`ʃýÐ…!úðJˆù*©°}€C*÷@"‡ëÀ*#æ@ª¦Á÷­øçèq ¨?݈R¯D¨™Bª›Þ°â¤ä2 ÿt!H~¼¢>d ªlzÉþ“ʃýÐ…!úð"6XQ2…U6½aÅÝ£<¨?݈R¯ÍNátQ2™·ƒHBª›Þ°âœôgTî­hî–"‡ëÁóS¸]GÌ…ý Ϋ´TØ>õ‡àw£: ÿw[pçÒÂ!H~¼5;…ÑD|È@à™¸~n„ˆ6½aÅ8象zuþî¶áçn»bR´·UüÔîDÍÕ2H#œ£õˆ7,–Áç½6‹Þˆœå؉{'‡­wKz™¨kÚŸ5;5áW‚:ïjãðLŽz‡Ò®6K‘ì% 2‡ÞˆœáÖ\ŸÒÍ<=kºZ³øþ;`ö§ÍIWGÎ^ré—Þ ‘ÏPòàHöb‘ø:¹§Ý7Ç9Zî•fì®?Ž‘a×2†2³“4†©‘ÏP‰ÁãŒR?|ÇUróX»[G s²xþ:°wå eg*U~G=@n ¸$~ùŽªåæ±v¦+ïwéœJÁß”1•œ©Uùõ¸ÇVq©>cª¹y¬]©Šã«8Ö°wå eg*U~G=@n1ÕœjGàO˜ê®^kjb¸êÎ5¬ùCYÊ•_‘ÏPŒug‘øæ:«—šÅÚ˜®:³k~PÆVr¥WäsÔãYƤ~ùŽªåæ±v¦+ެãZÁß”1•œ©Uùõ¸ÇVq©>cª¹y¬]©Šã«8Ö°wå eg*U~G=@n1ÕœjGàO˜ê®^kjb¸êÎ5¬ùCYÊ•_‘ÏPÿÄÿÚ ^ç2ýîX-ûܰƘ€[÷µøUÀu\ýP=Z@[÷¥ÎÖ ¾‡”ÕsõCg¥éø5[÷¥ÎÖ ]*ÕsõBÏE¶˜€·ïKÛ{Ã-tüZãÒÝãõ\ý\úždlôQ†þK߯åÁéݳ.vÇ¥Îz§Ð9ú§¡{UáTuž%LôQ†þ[Üß«ô/Xœ¹Û—?Ðùzz?ZPé%[Âê¡Z—»_ʯÑFÚZ¹Þ–Xœ¼·,W¥QÏîõ9¾’Q×fŠú£r0ÞÒÕÎô²Äå¯ òš¤¥Ît’lÄ òÙoiGVìâr×…ŠùM<ÏS-˜b¾[# í,XÐÄå¯ òš X®lÄ òÙoibƆ'-xX¯”ÐbÅsf X¯–ÈÃ{K419kÂÅ|¦ƒ+›1Å|¶FÚX±¡‰Ë^+å4±\Ùˆ+å²0ÞÒÅ NZð±_) ÅŠæÌ@±_-‘†ö–,hbr×…ŠùM,W6bŠùlŒ7ÿÿÄÿÚ <Ïh9^ä(r½ÈÀ(r³uÀp½eà?}ëwü¥¿rG‹æSÓ°§ãöMÈù«|,GI~?Õk…ÚS‹ú8ØŽ™{UÎ&#¦FÇÕo…ˆé/Çú­p»JqBçÓ/oê¹ÄÄtÈØú­ð±%øÿU®iN/è\ãb:eíâ®LÌÉÓÑ¢2,ÒNËœLGLªß Ò_õZáv”âþ…Î6#¦^Þ+'ÅÜý—8˜Ž™U¾#¤¿êµÂí)Åý œlGL½¼VO‹¹û.q126>«|,GI~?|úœ-ž˜§ ³"µÂí)Åý œlGL½¼VOŠÿ¥*‡†ÙjtÞvmDs‰ˆé‘±õ[áb:Kñû’8¨ÿÖ¸]¥8½Õ¾Aç¦*…uw\ãb:eíâ²xÜQÒ¯w¥~<\âb:dl`À‡ú ÚwÈxO¨v[áb:Kñû’8¨ÿÖ¸]¥8¸*\þ´=)ò.3epþ h×û®q±2öñYC³i“ê:W$±•S)c”Z¿ãq·íö’xåo…ˆèC\–*¹œ±Ò'ÇçÞ T±m6žN+%*I(Û½}Uµ0O ÞXñ*©øõ*êZë$²ãû î+žvLÁæD!]@ê:.×4AÅŠ¸](m"7gt«Ýé_>C³i§WOAÄVÑŠŸu|}bUÿ¸×o´“Ç$sRÒ‰ùJ©s‘Òªyy‹ñù÷‚G?L"—LI¥På*ÒBîw¬åÅñáŸTüz•u-u’Yqøôà»üŽC—>c¥K*²Æì⎕{¸ý[E©• 0ø >ûøôÿÌñÙN*:X1MXF: q®ßi'Ž~BB¦Ý=0:Ž•SÈÌZ|«<‡ž•XªÊ¡,?‚BkZs5Ëë9q"ITRò”´«©k¬’ËØ¿\† .|ÇJ–þUeÙÅ*÷rÝ©F}÷ÖxìPd [FÜk·ÜÊŽ\$†´nHd MŸ1ÒªyyŠ)ÄC½“9I­iÌp×/¬åÅ4ÄÛJº–ºÉ,½‹õÈ`ƒÌçIF®œ~3«4ÕU–7gt«ÝËv¥A÷ßYã±A1mq®ßJ8r,ZŸÑ*cÖ)øÔ¬þ‰£yæ(§öLå&µ§1Ã\¾³—ÓKm*êZë$²ö/×!‚#xŽÙëÁU–7gt«ÝËv¥A÷ßYã±A1mq®ßJ8r,Pç¬íÑ<Åâ!ÞÉœ¤Ö´æ8k—Örâšb m¥]K]d–^Åúä0DoÛ=x*²Æì⎕{¹nÔ£>ûë"vÆá#¡~¥®!t=†ì—OiRè{ 3ØOOh¸‰óØaŽz´|DíÂGBýK\Bè{ 7Ù.žÒ8¥Ðög°žžÑqç°Ã4ô/hø‰Û„Ž…ú–¸…Ðöo²]6Z$;ChcÑÈejmi½öÈîRLŒ½ÂÏ4í ©¸Û•HhqµË}IRTúÈÈ×q‘—Ëj8¥Ðög°žžÑqç°Ã4ô/hø‰Û„Ž…ú–¸…Ðöo²]6ZNÆśšjµRè{ 3ØOOh¸‰óØaŽz´|DíÂGBýK\Bè{ 7Ù.›-'aCbÍâеÚŽ)t=†ì'§´\Dùì0Ç = Øz3ö¢OÇqM>Ñš¯JÐf•$ÿÈÊá§K”‰°%‘ª<¦ïÝYšLÊû¾ddˆ±¸Hè_©kˆ]a†û%Óe¤ì1¨lYœ^¡¦Ûv¶ª†Û–úBe8D”¥Åÿ!f¦Ï’äÉ’a’äJyFµ­[Ê÷©Gï3â—CØažÂz{EÄOžÃ pÓн‹A‰ÌÏX²ÜsÜÄNØÜ$t/b§M+,‡Š-ø¤÷­šwý ŠFõÞˆî¾ëÅ6Ð*!AU@œ3ŠKô„ÇÚ¹7ß»ÃØkˆ]a†û%Óe¤ì1¨lYŒ^¡­ÎÈÍP²|‘x”Å.‡°Ã=„ôÙU´©ëßÉ­¡~«¿è÷÷œJ.Þ¹W~Õÿ衵ëÒYé}pwÒ¬‘½w¢+î¾ý¥ÄOžÃ pÓн‹A‰ÌÏX²ÜsÜÄNØÜ$t-•j÷«zçò[÷ªïnoÜdWo\w|p‹ôLÑë/6Îÿ®ݾ¢M÷z/•âÓî«M/ý…‹9Ù‘¨sØkˆ]a†û%Óe¤ì1¨lYŒ^¡­ÎÈÍP²|‘x”Å.‡°Ã=„ôÙjx g¶(”Läm."|öc†ž…ìZ NfzÅ–à;žà>"vÆá#¡lµœŠ¼I¾r>jE§Åçj,Äj½n2C­>ãlÉy ©Hõ—Kx‰FGuä?ÖÊWø¶¿‹aÄ©W @”I%œym{ªøê”Gqƒ]&§¦˜ï%/ª+¨tjJŒ‰[†w_và öK¦ËIØcPس¼B[‘š¡dù"ñ(@•Hœä TÚio5uæƒmÃ4ûÈþdB£\‘.…¸OÇ^æêˆšZŠû’Gñ ažÂzlµ<³Û|çS‡žVa›S-¶X›!¶["n䥨’Eø>DBÎÔªrW2t¸êT™.]¼³'WÄEð \Dùì0Ç =Y“ Õž¥ú⥯C»ø÷ ½Û÷’ Ì=µ\‘Q†šsÏwI»é[DJü)#÷žËA‰ÌÏX²ÜsÜÄH‘ Ó¼L4·M%î¿q&«¿ïpÞý“ð¾ïYGð TÔ ÛLÈl>–Ìï4“¥Wüî¿e¬äUâH¥ó‘óR->/;P±`ðwµÒÃc÷—ü>/E‹PìÙlBiuiK¸–’jô/Äj2+î b-Z—×~ã HmkUÅyÜ”¨ÌýÀÃ}’è,ãt ³”ÄMjR¥%m[æ…4I3ôˆWÃxþÛB¯V©Ef”ÓÍ2´4’' ltï^„$þbÌbðunvFj…“ä‹Ä¡MÅšÊtP8Žä¬Ÿ@~.S´µ¥•ÈmÖÒ•žâUyûþau¨°]§¶‰NE6RT«Û$™ªôû®=ájx g¶,ö)=·ˆJÎX²¼ªóV ˆŸ=†&Ù÷è2å»Lôm®Kn¶”¬ÔÒyûÿÚZ³ ´öÚ™PŠl<¤©FhDuo^ŸuǼÂdf3²Ðbs3Ö,£¼(ª3«K2d6ÒÍ'!Ò%V¢;½ßéSjq*&ÂÑéŠ3È{szû·· î¾ïuâ£Ê¿–¡öù mŸ~….cÔêl®Kn6”«~+N{‰^ÿvõÂMV,iíÆ”¨ªeå%J3J½â4û®üBÖr*ñ$RùÈù©Ÿ¨X°˜;Úé?ÓôïñLÿ[ñÝCì;Nˆ¦žmD¤)&K¸Ò¢¼Œ…Rò¿üფ’(—¿ÉX1P¡H¢Oý-ß@ëí)­ÅéÞYÞÿ˜²ÈQ„ÂŽ£Ð>i5ÞÒØ¼ÿ™\w‹wƒ7®Œ,Æ/PVçdf¨Y>H¼JÜY¬§E kQ![ÊZÔw0á™™ŸÀˆó̇üË_Ä-:’d¤ªJ */y-ÜdaüZO¡jx g¶,ö)=·ˆJÎX²¼ªóVì¹-ElÞBIÇ––Óy‘û¯Q‘^Ë8o¼áÜÛ-¾ÚÖ£øû’•˜1ixÌéšsªeEá23Ùh19™ëò#þaüì¡kê²¢;)¥È¦GôLI[Ëõƒ#üFEqnƒ£±IšÃÕ^i·œSF„Ÿ¢YÞwÿ!öùáôÍ©‹9’еœŠ¼I¾r>jE§Åçj,&öºFÏÙ/ü -wý7Nè±Tï $‘Dþÿ%`Å«çÕáH±¼ÝcÇ[¼½taf1x:„ ·;#5BÉQ*ÉÒä*Ì¢v15¹ºâÜ"/Æ´å»û»Mƒ*Rë1PñJôw¨Ýeó-ÝÅ+á»ó òsôoÙ/Ùýߨ*¿HºV„$Ô ËšuZ¬ógÕI¿ÃèPÁöúÓñÞ÷\-…"M ö)É”§d“[†”Ia&E¸µÿ‹÷ =ŠCÏ@­â³–,¯*¼Õˆ·•ÿÎñòÝoÜ_Ö’à1ixÌéšsªeE¦­Lx£Ïgä9ãJWº¯XŽWÜ2ÈÏWR¶dLa§‘êÌè[‰JŠòGÌŒZ"/U&g¬X\ó²E«Äéb—õ{!ÁöùáôÍ–~yATúÜÔÊ3i·w‰¸ñ?Ò%W]yü®¥×*‰™¨2Ÿ&I†›ÿ(…´I=ä$ݼb—ÎGÍH´ø¼íBÅ„ÁÞ×HÛe»·Nè±Tï $‘Dþÿ%`Å«çÕáH±¼ÝcÇ[¼½taf1x:„ ·;#5BÇ÷nk⻎Ӵòƒ\œýÃíò_¤]+BÊâuo AnpÖE{‡ž[Ä%g,Xê]  ÔXNQ¦—§OÒ.L„¨÷–“?‚KÜ+¤—üŸW§z¦ã-µ»é“½~á÷î—ÄYÎayN—ŒÎ™¡g1ЦTQm{¹#SQq¹É‹›ž±apÎɯ¤xeŠ_Õì‡Ûä‡Ó4 &;PÓÅ¿»ss¾r>jE§Åçj,&öºFÛ-ݺwEЧx`é$†fG2Kñ!Îy…^D¶âº¤™‘ü}ä ýz-û·ÿUk÷}¢ugzÝ’•¬ËÝïSH37›¬xã wƒ7®Œ,Æ/PVçdf¨XþíÃÍ|WqÚvžPk“Ÿ£x}¾B«ô‹¥hY\N­áˆ-ÎzÈ¢ÏbóÐ+x„¬å‹ÝæuRE¥ÅéYr…S„fÜe¼ó„Ÿ‰¥ 8£»ûn!½êu+®¿ú&ÿú ä¦Èɹ^ªód¯‰%Ȭ¨¯þÛŒYÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘¶ËwnÑb©Þ:I!xuGHè>ϯq‘”cyºÇŽ0·x3zèÂÌbðunvFj…îÜ<×Åw§iå¹9ú7‡Ûä*¿HºV…•ÄêÞ‚Üଊ,ö)=·ˆJÎX±}ÞgU$Z\^•—(BáKÒ¼>ß!;—¡`YÌb©•[^îHÔÆ\B.rE¢Å&ç¬X\ó²E«Äéb—õ{!Áöùáô͉ŽÔ4ñE¯îÜÜÆE/œš‘iñyÚ…‹ ƒ½®‘³ÿÄ'231 0@P`ÿÚÿ¼e­l¥>ⱸÐþ+ÒÓBïKFÑ¿Ñcq †âú]'I/è nù£Ò’q{Kü n4—|@/ujã>~AíßÜ^øÏM®ü n4—|Y\X~Aíßw.!ƒÁ-fÿ1zH–­(jGÅÆ‚"òæIí°Ð.Ù\X! ¶—HÒKðã‚cà ÁAíÙ­zïíjŧéÞ3¹q .¸êy4íJØ×­uÇÖÛŒk4—q–>§Ǩˆp …L®,·v=DC0l*äªÁAàÔ£) N"Y¦ .8o°©Ëˆ`)g´¼ãõè-Úúœ¢%v–F‚"òî2Ç´ûKÆtòV²¸°^ݤïy±«]2¥6òU` =Ì¥qê±¼9;ܸ†—AÍÚúœiJ,,D¬”b4l Ä1µnš¨å 5…€âöî6×´ã*Sk”iz[é"€¤«\×à@ ¥SQKˆ`)tݯ©Æ”¢ÂÈÐDC›µÄ1µi´²,5T†è^ÓŒ©M¦òHŠ’­s^7‚m6.!€¥ÐsvºN”·kÐH°²4æíq mZm,‹Ä>Uk½z‹í…Æšôm7’DP•kšñ¼i±q .ƒ›µÄq½h°²4æíq mZm,‹Ä>Ukšñ½i´ÞI@RU®kÆðM¦ÅÄ0ºnׯõ¢ÂÈÐDC›µÄ1µi´²,ùU®kÆõ¦Óy$EIV¹¯Á6›ÀRè9»\GÖ‹ #AnׯզÒȰCåV¹¯Ö›Mä‘%Zæ¼oÚl\CK æíqoZ,,D9»\CV›K"Àq•Zæ¼oZm7’DP•kšñ¼i±q .ƒ›µÄq½h°²4æíq mZm,‹Ä>Ukšñ½i´ÞI@RU®kÆðM¦ÅÄ0ºnׯõ¢ÂÈÐDC›µÄ1µi´²,ùU®kÆõ¦Óy$EIV¹¯Á6›ÀRÏÿÄ.q±ÁAr!1ð Q"0‘2@Pañ`¡ÿÚ?ÿ¼h)Ýc§õü3|Ñ: ?†oš'A§ìó +#ßöMóDè4Cé¾€íŸì[;Í>À>®ãáçž_e¾hˆBtûƒ{f‰õvþ¾Ó`'y§¸7ågêÿÄØNóO²ß4NƒD!:}ÍóD`ý¦ÀNóOseMDâÐOø¿Iüa˜¯¨eíoš'A¢(‡ ÆIÄ7#ìoš'ACé“€ííw¨gÙfÑ‘ÏÀNóL2_¨~6Q„ØO› y)¹ ú™ñ‹½C>É¥£.¶)Ðh„'J0æ¸f:¯I9¦ù¢t '{³SšN}×86v@Ÿñu!8:“U‘9¦Ê0›‰óa‡cø]~JMBwšàêœÒ~.™6)Ðh„'J0櫱ü&Âà&ù¢t '.fAü`ØNuÎ €Ÿ6 ­æËÔHé‡&¥M”a6æÃn(m5 Þkƒa:Ó&Å: „ç;®¤uË‘Q€æ¨äG@.šâG{è(@N\'`ØNtÖžÅÖ(œ´ù)°(Ÿ6 °lšáÉ©GÔ3È ”ÒÑ×0Œ&À¢|ØbíÅ ¦¡;Ípl'@ºdاA¢¸Ù5 ‘Q€æ©Ð.™ºÅ: ‹‡\ìôŽàÙ;Ât ¦n±F l 'Í‚l#æ¸rjQR›¸]MDù°ÅÛŠMBÈêEWcùMNtɱNƒD!;q²j"£ÍS ]3uŠt 'n°MƒdáçuÜ&;§@ºfë`¦À¢|Ø&Á²>k‡&¥)»…Ñ„ØO› ]¸¡´Ô.EF:Ó&Å: „íÆÈA¨\ŠŒ5NtÍÖ)ÐP€ºÁ6 ‘â£ÍJt ¦n±F l 'Í‚l#æ¸rjQR›¸]MDù°ÅÛŠMBäT` ]2lS ÑNÜl„…ȨÀsTèLÝb Û¬`Ù*0Ô§@ºfë`¦À¢|Ø&Á²>k‡&¥)»…Ñ„ØO› ]¸¡´Ô.EF:Ó&Å: „íÆÈA¨\ŠŒ5NtÍÖ)ÐP€ºÁ6 ‘â£ÍJt ¦n±F l 'Í‚l#æ¸rjQR›¸]MDù°ÅÛŠMBäT` ]2lS ÑNÜl„…ȨÀsTèLÝb Û¬`Ù*0Ô§@ºfë`¦À¢|Ø&Á²>k‡&¥)»…Ñ„ØO› ]¸¡´Ô.EF:Ó&Å: „íÆÈA¨\ŠŒ5NtÍÖ)ÐP€ºÁ6 ‘â£ÍJt ¦n±F l 'Í‚l#æ¸rjQR›¸]MDù°ÅÛŠMBäT` ]2lS ÑNÜl„…ȨÀsTèLÝb Û¬`Ù*0Ô§@ºfë`¦À¢|Ø&Á²>k‡&¥)»…Ñ„ØO› ?ÿÄ+234A1 0@P!$`ÿÚÿ¼É+t·ɹ?¥ÉñÛÛý.OŽÞßánün2$‰þOŽÞÒ<6Êb­ÔàÌgï>)©þ¸ÿOŽÞÒÏÇû\›è¯™_„öc8ÿk‚ý!§7ñÝŸ¾?àÉñÛÚYãøÿnOŽ? ìÆqþ܇rsn<ãÖÂÎ4n‚ ŸnOŽÞÒÏÇÊ™b¦!üäøà°¯Ï²Ø-KÙ—pAkì¥6f3¥oðÛ÷ÔèjùÓ¬‡rsiáã/È­(JL…oã,äÝ.Êa·´³ÇñóTã9>Y"#G[8FOŽ ž\JAö–n=&†vtòÕÒÞ °Óqé3·§v®†Þƒ3Øx¢†wtòÅPÛC“›OtšO§—A½¥›I¡<µt·ˆ,4ÜzE íéÝ«¡· Ìö(¡Ý<±T6ÐäæÓÃÃ&†“éåĤoifãÒhggO-]-â 7‘C;zwjèmè3=‡Š(gwO,U ´99´ððçI¡¤úyq)ÚY¸ôšÙÓËWKx‚ÃMǤPÎÞÚºz ÏaâŠÝÓËCmNm<<9Òhi>ž\JAö–n=&†vtòÕÒÞ °Óqé3·§v®†Þƒ3Øx¢†wtòÅPÛC“›OtšO§—A½¥›I¡<µt·ˆ,4ÜzE íéÝ«¡· Ìö(¡Ý<±T6ÐäæÓÃ_ÿÄ0±qrÁ!1Að Q"02@a‘PÑá`¡ÿÚ?ÿÞ8ƒÁò”ßÄ}G¹ûÿ†wR›Q?áÔ¦ÔOìø/9§dî¥6á(þ3ê}ÓI<ž?bê™Lùî ·ÁèHõÿˆ?Ž9ü—u)· F¥2ŸQð€ðzŸ¿üü§TÊgÏsõñÏÿâuL¦÷?’î¥6á(Ô¦SêÏp›Q?”ê™Lùî~§Ñ „ûŒ¦‡8çëR¿XþöáÎÕ~ >—u)· F¥2ˆ)­s‰ý}ùîj%}Jkœy$}-ð9åp÷8ÙÕ2™óÜìJýûAßq³è…B}ÆV¹;ôˈcÕp ¨Ý¾Ç<áj»‘ÆBmÂQ©L¢ÿi½Áذ´žŒ<øOùîj%:¦S)Ÿ °´ždBèãgTÊ`s€òûÿ%~ ¡Ø0´ž€‹€ãÏ„ú!PŸq•§nNߨar>Á„ÞãbÂÓåDÇÇ®¥¹ · F¥2ˆWý¦÷~¡ý„ú®Îþ{„Ú‰N©”ÊerO €áýŸ\Û…ÑÆÎ©•§nJ{ÈçÐyv¼§ÏŸ·Ûn„k€ŸD*î2´íÉÝ–„nS{ŸTÊ» R܄ۄ£R˜ÇO‡Ÿ%ËA8zЮŒPñy'Ó¤ö´åÏBmD§TÊe2…FS+ƒ³ë€›s°žæú†™ïqìªeiÛ’ŸVå7¸;t !àÓ„*î2´íÉÝ–„nW#Ôzè'å2®ÂÔ·!6á(Ô¦Z2p‚º0vwP*ì-Krj%:¦S-ÉN¹¹M?n`¯G|í8~ &Üì-KL„Ú‰N©•§nJ}[”ÞàíЀ›q€Ÿi ÷ZväîËB7+§AÙß=“*ì-KrnJe£)×+£gu2®ÂÔ·!6¢Sªe2ܔ뛔;ƒ±êmÎÂÔ´ÈM¨”ê™Zvä§Õ¹MîÝ · öœ!PŸq•§nNì´#p‚ºtóÙ2®ÂÔ·!6á(Ô¦Z2p‚º0vwP*ì-Krj%:¦S-ÉN¹¹C¸; &Üì-KL„Ú‰N©•§nJ}[”ÞàíЀ›q€Ÿi ÷ZväîËB7+§AÙß=“*ì-KrnJe£)×+£gu2®ÂÔ·!6¢Sªe2ܔ뛔;ƒ±êmÎÂÔ´ÈM¨”ê™Zvä§Õ¹MîÝ · öœ!PŸq•§nNì´#p‚ºtóÙ2®ÂÔ·!6á(Ô¦Z2p‚º0vwP*ì-Krj%:¦S-ÉN¹¹C¸; &Üì-KL„Ú‰N©•§nJ}[”ÞàíЀ›q€Ÿi ÷ZväîËB7+§AÙß=“*ì-KrnJe£)×+£gu2®ÂÔ·!6¢Sªe2ܔ뛔;ƒ±êmÎÂÔ´ÈM¨”ê™Zvä§Õ¹MîÝ · öœ!PŸq•§nNì´#p‚ºtóÙ2®ÂÔ·!6á(Ô¦Z2p‚º0vwP*ì-Krj%:¦S-ÉN¹¹C¸; &Üì-KL„Ú‰N©•§nJ}[”ÞàíЀ›q€Ÿi ÷ZväíÿÙplugins/jetpack/images/jetpack-logo.png0000644000312500031250000000130212651056012020602 0ustar eacbforgeacbforg‰PNG  IHDR· gÓV3PLTEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ·•â‚tRNS0€¿ÿ`Ï PïŸ@p߯ u¬M-IDATx혇’µ F ]Å÷Ù¿˜üäf{/gÚÞhð‚ºÐ‰ó,ì}B ú$– NôùÉEn(™>;ALÂg¯6t‡ Ÿ»â šÄ RÒÛ×Ì׿—[§ÕsõáÞëCɦ U£Û˜¹0Åì lÐmŒˆ,C‰Œ¡V}Ü]›»t²[|—ü㦉!ê¹m#úÊÞZ§³°‡à§o:óZèM§¾=ÎxØû|YL²è ¥&mŒtô¦ú&ÞNØü€7?Á»z÷òÞƒ ²Àc½µó1²uôöò†ÞLx‹º˜ùuŽl-w"X3¶÷ò¼u p¿Ï;šO_UÆW8 ›¦ïÖs0·š_èÍè>ïåœÃ|ªÐâÞH_Ì÷Î&¼íÏ÷&ÄZ—°²8/Kàé}ÙãÙâÎðÞ¬÷|8šIÁpÀ˽õ:Hºä»r¶x¼ñ^¡q°Ü'ë›yOâö÷`€ÓÔ‹ù[ánú[zSžò¡ÅyºzÃ,`-ð@xKoêAbs7ùg‹§"ˆ›ÿOƒávæO´)”òçß}ˆØ÷ùÝgûÝ×üªûȇ %Ïíh‘IEND®B`‚plugins/jetpack/images/jetpack-protect-shield.svg0000755000312500031250000000235412651056012022616 0ustar eacbforgeacbforg plugins/jetpack/images/wordpress-connect.jpg0000644000312500031250000001262412651056012021707 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿ¤6ÿÄ  ÿÚÑp\fU½€¶õÈŽÎgÊvWéîsÀb0•@u÷ófºù"_6ýÂqÒïNAX7Dý‰qLYV_½¤mx܉æn°¾ñîÿoç͈†§Z bjÌë_ýKJz½¿|DCÖ­3xZžm롞¶Š¦ýÜQÏ OçF°˜údŸp T¹ÿÄÿÚëЫŎÝS9º°RžpñuêºÒ΋ZŽÉQú¶ö“Ïà?ÿÄÿÚ¹ÒfýÀó^qÚ—P ÑÖÈ{®`£.S„´\€'çŒ÷:þÔ¸€<üNþ`ÿÄ*30€!"'1AÿÚþ ÿ¯ë!":Ô©W¥Ó‰×N']8i†ù\¸·3A^Õ"ðÞ©†õH¼7ªEá½R/ ê‘xoT‹Ãz¤^Õ"ðÞ©†õH¼7ªEá½R/ ê‘xoT‹Ãz¤^Õ"ðÞ©†õH¼7ªEá½R/ ê‘xoTˆ¿I:†“,'ý5ó|igÅFTøìÙ¿ †´dòñäg§¹œpfÔð –ÜNaK¡¿`WŠç\ës®uÏ‚ç\ëŸÏÿW:ç\ëŸιð\ëŸι×:ç\ø-AVÞÄ^M¨c½*xãúý9ÖœÛFe#È[3ªÊc°/me×Ô°ÐÀ°5—¹vãRÅwZÛ6ÉŸCþ6À¥ÏKŸZñ·sóï8ø\]+ï$úN^%µö–‘r1ëQÌš´†e^þg4l5FÝÛCã²Â‹‰KOPñŸãjNLµ6ÞìÈw{º ®Ñt[RËœé͵·whfê ƒ5º“óðWHò${,Nv·é¼›Â‡Pó÷2â=&¶UÞÞ)†1Dñ—ñÜ4x«‰ˆÝIS%¨4ÄR"ëÉÎÜ °¨â‰;@»0@[‹âê…)\²Wö^>ŒìÆ@ãéIÙÒÁBKúãåc/Tßé§ú\ýYÕžˆŒ#o EoÁžÜëI`îû}WÛ‹Ëm\¢VíǮɵM×øÛl mbY!Òh'€åÒÆçÝÚÊ0PeŽ!-‹hRÖe™Y¼)ÈâEà,„<0°”°ÁAdÖG6BËÛºûö"¸ö#¸Ž ÊGÌϰ·‘ímDæbÆAÍ[«{o]‘[Ù—ó&2bÐÖ¬n8ú-+R@íà»’~KñWâÌIíæTÝŔے’á\D%$íœ¤Ôøœ„¦eíecŠbëÚ'5¨I åsl[¸™ÌÄz›‚Ãl/³•’»¹S¦ŸésõfL1Þ=–SepÄ‹ïˆ%¦u%3jË ÈŽ']“蛟Œˆþ;Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[Ö[ÖWåÝ6–NëÔyCé§úseùeÇRƒ¯íÃ'ÅÀñpcÙwTO–¯3œQ|,]\µæ¿¢ÈjG|ïPæÛî]F9 Ê{XêG©»rb¸B*@H¾(¨„+àH‹¯ûÏå#éÁtº].—Kþ+¥Òétº].—K¥Òétº]•0Ë­¿øÜ×ÔSø}ܺ„6•œ0ÅffNÕ—€É~­†û£EóðíÜÿÇX6-cæíI¸±zuz>¶3ä4. Ø8†*èNó®Ü¦ »ølœ=¡Äê¯^i8£× 2‚a0"2뛦ì’#œÀ£â¢‹¾«†.IC…Tñ&§ÄìV¬%5LR]·å6Ýæÿ5Uúi~y3ŸÊGÖBþæ¢Ï#Ê2xM²å‚B¯zmÔE¶ÄS&È.ëçÙÙ×Jµb:Æ+f•ký¤öÛ’/)Ê{ T1=ÄuŒVÒÔb·ËS\k>ôóf0aHFM¤ŒÚ9̲ÕÔ4Ûó9WneÆåG™œÝØR^ÅI€¾zT›Ò‹‘;@9Î2ÈìƒúNo®©d¼nŽÅiB|ö’ªKuùS¹cÝÒ99Ú+¨h Úl ›/Šï¬,n%ÇÂil¤âë~-V@s¾ÙƒŠÌ³‹ùGäˆ"#ŸÆH‚›Ê“[É·Ç­2H‹jnQÚ<0å²ÿ"++$\Rù·óåßVã†ëY‘/਋sptm«f¸é¨¢ªþ‹áðÖ''ˆ—ü<Çk&qbùÛõÏ-Œ¸#`ôX1Õ’6Ñs(ª´ <ÜÊ»cNJÂ0šè7™6püÁa¡«°¨ vœ‹7^{³=•­ÅdU=ÉX̬ åWq–­ž’ŠE‘©í6ÛbÛì‘ ˆ” ÷ØÕEuÄ›Ž0DüI‘qvŽkqf©ÈtÝüI™ñaGHî9,{dÕÎd%]¾ õŠ@ÇgñNFó!‹^Ú׳¹J³’ã*I;Pd;c%$ùl\¸Ì v×ÌØ+ŒÛd«¡”ºÉÇLùÀÌ–ç=Πöh(­ël˜ÔÙÆ&Œ+÷f]5ÔXmå˜ÅRÇ#z.î ˆêsª¢&ÚÃÃ.¼ƒVÅÍû²ìª$8Òžq˜ÁÚ“ ÇžV\QD܉7D\)×xgMzXý®f–-$y©c_"[u½—1ÅfRöd}ª¢£j)ãÃ9“±|w1›fÍœt˜õ€ÎJö Û6Mç#t9—á$UƃÉq ¯“&,yãeøvbñGy©Ë Ì…À1 M•7ET]/Ï ¹OöŽköSø}ܺ˜5ØöËÄ.lÏnHkA™º¢ ´ø¶D¿AÝtàÐeÜÉá¹)Ù+àÍQ=Û«íŸ3nE9"Ù'‚&¥5_"¿ fÛ7×á…POtDù#-²m®ßCФF¸¹"Âz¯Ì?ÅJƒµžíº2ïvl_ÖU%MÓÇKóÉ\þUdob9ž)ÞZ§¾j;sr$Ô•\WTæ\VÀ¶C!$úçñ“ˆ«óÿdlRp“m·"õë(ˆÁU 44} QwÛq\û{ør² †k‘Ûdlfä! §@Ta¶„Ûm¶œß x’®ê·®Èv%¾UlI"ÊN)›|èj¨‘û²r®ß7ŽÛk&nPÝýýÄY³êÙ±†Q²ZzL p9Ä †ÈÑSîUÎ"Óæµ•OÑÜY%[aù)(AkBC}‰2ân٠ʾ%ÏÍÍá“……>e!«KZG n…°D Ù Ê~œÂ]’¶¼¤¾·†¯¥¼QhF¼QT¡y eÑ>/ŒŽh¥æåø…üõ‘Ëi’À“ 9¡¾ÔïÉbVk¹*+…!‰µM—uøµ‘µ{}}E_Idq ¤ëø=ùo í·Û¾¢¦’¶Qæ_Íß’ÅÉÕÍc…±4 á ´MŒŽË™EUP‘9¾ióÕä¾ËŸs·+öj kbÜæØRõsµÙWno®³—1¼EŽË¬®jq›ŒÇîi* Î:ßwx£ìÚ© ƒð‰ ó"în?Œçuð*¦Û“ºÁNÕ0´n¤jM4…Ì¨Š‹÷ë‰.ßµ†ÔÚÒѰÝS1Æ-+Ö¼Ÿ˜bñö¯€ ¯0 ì¿sn–Î÷DÄ¿ã²N~NáÜ;ÏcÍËÍ·ÇËÍ·Ó®®Û©ÉpçžÖ\¬b¿Dv£ÉbT'LÁÎÄ \T-·Ęܧ±†ô[öKŒ¢®}÷Ùy¶újq¸öU]S\ír‚ 0•E-DÅÎmÉ\ïKº*&Ü¿]ô¿ˆ\'ûG5û)ü>Çî]|IÝÚÛÅ<uLÎuØÓ¹œ×87lUº„‹›6„ÜVÇ™TÁ._ÕTO pÂÊ.EiÊǦd×îYCÎsb plugins/jetpack/images/the-footcloud.svg0000755000312500031250000000135212651056012021022 0ustar eacbforgeacbforg plugins/jetpack/images/wordpress-stats@2x.jpg0000644000312500031250000006032212651056012021764 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿÂFhÿÄ ÿÚýü 7P¿ ‰àÿÔczѼä V7<° 7P¿ ‰àÿÔczѼä V7<° 7P¿ ‰àÿÔczѼä V7<° 7P¿ ‰àÿÔczѼä V7<° 7P¿ ‰àÿÔczѼä V7<° 7P¿ ‰àÿÔczѼä V7<° 7P¿¡æ?>Ñý®žßý@7­Î@ÇõcsËÃq úOó]GÞa‰àÿÔczѼä V7<° 7P¿¡äÿ5Ô}æžßý@7­Î@ÇõcsËÃq úOó]GÞa‰àÿÔczѼä V7<° 7P¿¡äÿ5Ô}æžßý@7­Î@ÇõcsËÃq úOó]GÞa‰àÿÔczѼäçÎgrÇõcsËÃq úOó]Gýãzª¢ÄðFÿê1½hÞrüÝÎûüÇõcsË¥ùö<Ð0ÜABþ‡“ü×Qpý·ibx#õÞ´o9~nç}~cú±¹åùÍ”õ×¢€Ãq úOó]FuÃöÝ¥‰àÿÔqxßNxczѼäù»ö5ùêÆç–8üOïóÛ)ë¯E†â ô<ŸæºŒë‡í»KÁÿ¨òß—éü oZ7œ€?7s¾Æ¿1ýXÜòÇœ<•²øe=uè 0ÜABþ‡“ü×Qpý·ibx#õ[òý#ßëFóæîwØ×æ?«žXó‡’¶_ §®½ˆ(_Ðòšê3®¶í,Ooþ£Ë~_¤{ð1½hÞrüÝÎûüÇõcsËpòVËá”ôÖío 7P¿¡äÿ5Ôg\?mÚ^=ÉVê ÿÔyoËô—ÑTæ7­ÎGÆORìß›¹ßc_˜þ¬nycÎJÙ|2•Ùõ”Ãs{î ¡CÉþk¨Î¸~Û´¿=ð~‡¼·ÿQå¿/Ò1W³î¬oZ7œŽ»ó1ïŠców;ìkóÕå<\ýÔ8y+eðÊWdOÔG|‹«÷P¿®ŸÉ®4:£:áûnÒü÷ÁúòßýG–ü¿HÆu^Ϻ±½hÞr:ïÌǾ)ÍÜﱯÌW”ñSôkT<áä­—Ã)]‘?Quò.¯ÕV—½P¿¬Ïç »"¨Î¸~Û´¿=ð~‡¼¼ç¸{å¿/Ò1W³î¬oZ<õ«Ežø¦?7s¾«¢ÿz¯)⥖[\ö«ÎJÙ|2•Ùõç_"êþØïGÜT/ë3ù®Ȫ3®¶í/Ï|¡ï/3ÅîþÍyoËôŒgUìû«Ö7D+²'¾)ÍÜívEÌýêòž*VdÖ/q<áä­—Ã)]‘=ö”ùkWöÇz>â󬦡WdU×Ûv—ç¾õLG£Wf¼·åúF3ªö}Õè{Þõæè…vD÷Å1ù»®È¹•‰®öP¬É¬^âyÃÉ[/†R»"Ù¯íŽô}ÅåøývD®Èª3®¶í/Ï|.h­InþÍyoËôŒgUìû«Às{÷ žnˆWdORuº7gk².e]I›+2jöÑÂóÖËᔮȅvE«ûc½qy~?]‘+²*Œë‡nžw¼<.h­IkØÆî3HÆu^Ϻ¼7¿z æè…vD¯È7.v»"æQeÔ™²³&­ÉÙËᔮȅvE«ûc½qy~?]‘+²*Œë‡]‘h»¬.h­IkrEvEHÆu^”åòã³{÷ žnˆWdJüƒyÒçk².e]I›+2jÜ‘]‘l¾JìˆWdZ¿¶;Ñ÷—ãõÙ»"¨Î¸uÙ‹ºÁÒæŠÔ–·$WdTŒgUZ’ö»9½ûÐO7D+²%~A¼ésµÙ2‹.¤Í•™5nH®È¶_ ¥vD+²-_ÛnîivD®Èª3®vE¢î°t¹¢µ%­ÉÙ#ÕV¤½®Îo~ôÍÑ ì‰_o:\ívE̢˩3efM[’+²-—Ã)]‘ ì‹WöÇR¦ªÌš»"WdU×»"ÑwX:\ÑZ’ÖäŠìŠ‘Œê«R^×g7ªgš©vD¯È7.v»"æQeÔ™²³&­ÉÙËᔮȅvE«ûc©SUfM]‘+²*Œë‡]‘h»¬.h­IkrEvEHÆuU©/k³›ÒfÊÄž»"WäΗ;]‘s(²êLÙY“VäŠì‹eðÊWdB»"Õý±Ô©ª³&®È•ÙFuîȴ]Ö—4V¤µ¹"»"¤c:ªÔ—µÙÍé3ebO]‘+ò çK®È¹”Yu&l¬É«rEvE²øe+²!]‘jþØêTÕY“WdJ슣:á×dZ.ëKš+RZÜ‘]‘R1UjKÚìæô™²±'®È•ùó¥Î×d\Ê,º“6VdÕ¹"»"Ù|2•ٮȵlu*j¬É«²%vEQpë²-uƒ¥Í©-nH®È©Ϊµ%ívszLÙX“×dJüƒyÒçk².e]I›+2jÜ‘]‘l¾JìˆWdZ¿¶:•5VdÕÙ»"¨Î¸uÙ‹ºÁÒæŠÔ–·$WdTŒgUZ’ö»9½&l¬Ië²%~A¼ésµÙ2‹.¤Í•™5nH®È¶_ ¥vD+²-_ÛJš«2jì‰]‘Tg\:ì‹EÝ`ésEjK[’+²*F3ª­I{]œÞ“6V$õÙ¿ Þt¹Úì‹™E—RfÊÌš·$Wd[/†R»"ٯ펥MU™5vD®Èª3®vE¢î°t¹¢µ%­ÉÙ#ÕV¤½®ÎoI›+zì‰_o:\ívE̢˩3efM[’+²-—Ã)]‘ ì‹WöÇR¦ªÌš»"WdU×»"ÑwX:\ÑZ’ÖäŠìŠ‘Œê«R^×g7¤Í•‰=vD¯È7.v»"æQeÔ™²³&­ÉÙËᔮȅvE«ûc©SUfM]‘+²*Œë‡]‘h»¬.h­IkrEvEHÆuU©/k³›ÒfÊÄž»"WäΗ;]‘s(²êLÙY“VäŠì‹eðÊWdB»"Õý±Ô©ª³&®È•ÙFuîȴ]Ö—4V¤µ¹"»"¤c:ªÔ—µÙÍé3ebO]‘+ò çK®È¹”Yu&l¬É«rEvE²øe+²!]‘jþØêTÕY“WdJ슣:á×dZ.ëKš+RZÜ‘]‘R1UjKÚìæô™²±'®È•ùó¥Î×d\Ê,º“6VdÕ¹"»"Ù|2•ÙÿÄÿÚ[¥/ÙêIó ÏROvz’|è³Ô“ç@ž¤Ÿ::YG8ÙêH÷ Ômâs@ØÇÏRJràÀõxœÐ>Ÿw˜ÙêIN\¹yˆê6ñ9 ܼú]Ü^`g©%9p`~´¿8ú¼Nhêvt{»‹Ììõ$§. ¯Ö—çQ·‰ÍNÎwqy€ž¤”åÁ€uúÒüàê6ñ9 ©ÙÑîîTÈìõ$§. Æî| uúÒèË™ ]Ç#Cê6ñ9 ©ÙÑîè­|“uÆìõ$§. ¥£Ê¯Ö—~|.x_VùÙQ·‰Í}#æ5§gG»¢µòNŸkOÌŸeïBJràÀúZ8ü :ýiwçÂç€eõo‘õxœÑGÒ¾_Pêvt{º+_$éö´ð²Ñ¨mú„VÉN\KG”î_Ïâ:ýiwçÂçÛèGsçd}FÞ<ÞH£éPÙÔìè÷tV¾IÓíió–6ýB+d§. ¥£Êw¯çð~´»óásÀîô"µó²>£lVãòŠ>•°ðNÎwEkçuôù¿Ëw-’ôVÉN\KG*Rþ ×ëK¿>=FZµ;½­|ì¨Û¸Å\—¢¶©ÙÑîè­[§Íün[¿tV¢¶JràÀúZ"µ¼þ¯Ö—~|.{èêäòÞ„V¹êêmŠÜf®+Q[†]-îŠÑº|߯å»÷Ej+d§()וZŠØ·§º]ùð¹ï£«“ÈwzZŠÙóÛ¸Í\V¢¶+Q[£ÝÑZ"·O›øÜ·~è­El”庰¢+Q[¨­—~|¼|¶®O!ÝèEj+gÏlVã5qZŠØ­EnwEhŠÝ>oãrÝû¢µ²S”VꈭElV¢¶]ùÇf*äòÞ„V¢¶|öÅn3W¨­ŠÔVè÷tVˆ­Óæþf¥vÅj+d§(­Õ…ZŠØ­El»óŽÌ4UÉä;½­ElùíŠÜf®+Q[¨­Ñîè­[§ÍñZŽÈ­El”庰¢+Q[¨­—~qÙ†Š Ü×lV¢¶|öÅn3W¨­ŠÔVè÷tVˆ­Óæø­GdV¢¶JrŠÝXQ¨­ŠÔVË¿8ìÃEQZŠØ­ElùíŠÜf®+Q[¨­Ñîè­[§ÍñZŽÈ­El”庰¢+Q[¨­—~qÙ†Š¢µ±ZŠÙóÛ¸Í\V¢¶+Q[£ÝÑZ"·O›âµ‘ZŠÙ)Ê+uaDV¢¶+Q[.üã³ Ej+bµ³ç¶+qš¸­ElV¢·G»¢´EnŸ7Åj;"µ²S”VꈭElV¢¶]ùÇf*ŠÔVÅj+gÏlVã5qZŠØ­EnwEhŠÝ>oŠÔvEj+d§(­Õ…ZŠØ­El»óŽÌ4U¨­ŠÔVϞحÆjâµ±ZŠÝîŠÑº|ߨìŠÔVÉNQ[« "µ±ZŠÙwç˜hª+Q[¨­Ÿ=±[ŒÕÅj+bµº=Ý¢+tù¾+QÙ¨­’œ¢·VEj+bµ²ïÎ;0ÑTV¢¶+Q[>{b·«ŠÔVÅj+t{º+DVéó|V£²+Q[%9En¬(ŠÔVÅj+eßœva¢¨­ElV¢¶|öÅn3W¨­ŠÔVè÷tVˆ­Óæø­GdV¢¶JrŠÝXQ¨­ŠÔVË¿8ìÃEQZŠØ­ElùíŠÜf®+Q[¨­Ñîè­[§ÍñZŽÈ­El”庰¢+Q[¨­—~qÙ†Š¢µ±ZŠÙóÛ¸Í\V¢¶+Q[£ÝÑZ"·O›âµ‘ZŠÙ)Ê+uaDV¢¶+Q[.üã³ Ej+bµ³ç¶+qš¸­ElV¢·G»¢µÿÄÿÚÛz ; ‡^çaPëÀì*x…C¯s°¨uà7Å`; ƒç¡ ÃøtöòüôúçaPÅñÕÔáü:{q9ºK`ì*¾:º€çç÷ìÃøtöÏÏ¶Ρ‹ã«¨9ø»áÓØùÍ_™ºK`ì*¾:º€Ÿ»±pþ=€œÕù›¤¶Ρ‹ã«¨9ø»áÓØùÍ_™¯kV…CÇWQÎç­P~í_÷€|òîƒS‡ðéì|æ¯ÌÔ¦»ö|ŸT@ì*¾:ºŽ3Et~ì¾}EpŽ Øopþ=—‹vþâ9«ó5)®ý›ÓÛåξdÐÅñÕÔq˜ú+ sð7eóê+€|pnÃ{‡ðéì œ[¸÷ùÍ_™©MwèœÞž£çO¸ðáÔ¦ÐÅñÕÔq˜ú+®b]^™ÏÀݗϨ®3*Œ§a½Ãøt;”8µYÔº”>sWæjS]ú'7§÷/GpxpêShbøêê8Ì}×+*¿PçànËçÔW—‘Jk°Þáü)Mûï8µ)´úÄ>sWæjS]Šw?§÷/GqËΡ%Jm _]GŽõ49Uú‡?v_>¢»'Ç¿»—‘Jk°Þáü)Mû¥‡|•)´úÄ>sWæjSE)ºrôwœÊST¦ÐÅñÕÔq˜éÌR›_¨sð7eóê+¸ì7ú/"”×Açï”߽³éMR›KSæ.¯ÌÔ¦ŠStþåèî99”¦©M¡‹â®?_œtæ)M¥™®^ì¾}Ew†ÿ@åäRš§3g—…)¿{gÒš¥6”Õ)º¿3Rš)MÓû—£¸äæRš¥6†/ŠS}ýqÓ˜¥6”Õ)»²ùÝúú™†ÿ@åäRš§3g—…)¿{gÒš¥6”Õ)º¿3Rš)MÓû—£¸äæRš¥6†/ŠS}ýqÓ˜¥6”Õ)»²ùÒ›é« þËÈ¥5NfÏ/ S~öÏ¥5Jm)ªSu~f¥4R›§÷-¿f ´¦©M¡‹â”ß\tæ)M¥5Jnì¾t¦újàrò)MS™³Ë”߽³éMR›Jj”Ý_™©M¦éýËJj”ÚST¦ÐÅñJo¿®:s¦Òš¥7v_:S}5a«í2”Õ9›<¼)MûÛ>”Õ)´¦©MÕùš”ÑJnŸÜ´¦©M¥5Jm _¦ûúã§1Jm)ªSweó¥7ÓVST¦Òš§3g—…)¿{gÒš¥6”Õ)º¿3Rš)MÓû–”Õ)´¦©M¡‹â”ß\tæ)M¥5Jnì¾t¦újÃJj”ÚSTælòð¥7ïlúST¦Òš¥7WæjSE)ºrÒš¥6”Õ)´1|R›ï뎜Å)´¦©MݗΔßMXiMR›JjœÍž^¦ýíŸJj”ÚST¦êüÍJh¥7OîZST¦Òš¥6†/ŠS}ýqÓ˜¥6”Õ)»²ùÒ›é« )ªSiMS™³Ë”߽³éMR›Jj”Ý_™©M¦éýËJj”ÚST¦ÐÅñJo¿®:s¦Òš¥7v_:S}5a¥5Jm)ªs6yxR›÷¶})ªSiMR›«ó5)¢”Ý?¹iMR›Jj”Ú¾)M÷õÇNb”ÚST¦îËçJo¦¬4¦©M¥5NfÏ/ S~öÏ¥5Jm)ªSu~f¥4R›§÷-)ªSiMR›CÅ)¾þ¸éÌR›Jj”ÝÙ|éMôÕ†”Õ)´¦©ÌÙåáJoÞÙô¦©M¥5Jn¯ÌÔ¦ŠStþå¥5Jm)ªShbø¥7ß×9ŠSiMR›»/)¾š°Òš¥6”Õ9›<¼)MûÛ>”Õ)´¦©MÕùš”ÑJnŸÜ´¦©M¥5Jm _¦ûúã§1Jm)ªSweó¥7ÓVST¦Òš§3g—…)¿{gÒš¥6”Õ)º¿3Rš)MÓû–”Õ)´¦©M¡‹â”ß\tæ)M¥5Jnì¾t¦újÃJj”ÚSTælòð¥7ïlúST¦Òš¥7WæjSE)ºrÒš¥6”Õ)´1|R›ï뎜Å)´¦©MݗΔßMXiMR›JjœÍž^¦ýíŸJj”ÚST¦êüÍJkÿÄ467 45023GV@UQSTÿÚ Ú?˜'nOf_TËœ#h‘£ê›sõö„â†õN9Ùö€áýþ`¹=™}S.p¡þFªmÏ×ÚŠÕ8çgÚ„öCù‚väöeõL¹Â6‡ù>©·?_hN(oTãŸhoÙæ Û“Ù—Õ2çÚähú¦Üý}¡8¡½SŽv} 8A¿d?˜'nOf_TËœ#h‘£ê›sõö„â†õN9Ùö€áýþ`¹=™}S.p¡þFªmÏ×ÚŠÕ8çgÚ„öCù‚väöeÚÿ”¦òœ+ÉùÑc÷aÎ5:”ÅÂOƒ0P™Ž ´Ëœ#h‘£ê›sõö„â†õN9Ùö€áýþ`¹=™vùìÒðËÜ´Þã.p¡þFªmÏ×ÚŠÕ8çgÚ„öCù‚väöeÛæ?³KÃ/rÓ{Œ¹Â6‡ù>©·?_hN(oTãŸhoÙæ Û“Ù—o˜þÍ/ ½ËMî2çÚähú¦Üý}¡8¡½SŽv} 8A¿d?˜'nOf]¾cû4¼2÷-7¸Ëœ#h‘£ê›sõö„â†õN9Ùö€áýþ`¹=™vùìÒðËÜ´Þã.p¡þFªmÏ×ÚŠÐ5óXVhdY8+[?ê8«íx@­Ã¯ …š†¨_’9Ùö€áýþ`¹=™vùìÒðËÜ´Þ»n&ÁzZj]\¹>/8ßsêá >7R#òÌÐ ÛD Ã.ab´Båÿ4Mü°,i›jçÉ¥¤fWQw[+ãËŸ@¡ôóíÉìË·Ìf—†^å¦ðc؆É&\áCü¾d½èØh®2cq·?_hN(oA]V)ã˵ o'ìû@pƒmóÓ&¡¼®’X]ÖÊøòçÐ(}üÁ;r{2íó٥ᗹi¼ö¡… rI—8FÐÿ#Go™/z6+Œ˜ÜmÏ×ÚŠÐWUŠxòíHÉÇ;>Ð Û|Çtɨo+¤–u²¾<¹ô @0Nܞ̻|ÇöixeîZo=€èah’eδ?ÈÑÛæKÞ†Šã&7sõö„â†ôÕbž<»RòqÎÏ´6ß1Ý2jÊé%…Ýl¯†eJ\“DªÍ|5³øþ„ÿ‘¦>?¡?äi¸0Nܞ̻|ÇöixeîZo=€èah’»tTäêóòÀžÿ¶øÆ°ÿ@pÙ«•š&ú†¿ÿ¨ò4vù’÷£a¢¸ÉŒ>«€†f!4¼ ¿ ãêóýá§V›,ÓBMNû¨6çëí Å ÙÃ#Oú~'ÇÕçú-ÇÇÕçú-Ãzz9L&<2ü?ïa]V)ã˵ o'ìû@pƒmóÓ&¡¼®’X]ÖÊø$³‹]ªµ™0(Qgššºz?Ûïþ¡¸-yÐæÆ JÁ‰˜Xþ`¹=™vùìÒðËÜ´Þ {ÐÂÐ9%и ¨cxª9ò4vù’÷£a¢¸ÉŒw‡1åîˆ&Üý}¡8¡ ß©4–vÛ¦e]V)ã˵ o'ìð¹ññðH(¼|<§ãk×>?[þ¹ð‡ñññF$ü||¯ŽÏ1Ý2jÊé%…Ýl¯‚K8µÛæ3 OB¶H`0Nܞ̰¡0Ö) <5 —&q¨…¯ñd˜ýD-‹$ÃÂn$ü±»9“KLV{–›Á`:Z$ºU oG!þFŽß2^ôl4W1ƒîðæ<½ÑdÛŸ¯´'4õ&’ÎÛtÌ«ªÅcºdÔ7•ÒK ºÙ_–qk?›Ÿ¹ô±ñy¹ûŸK™ÙZ…"š4&”p !+d†*å[ V{/1ùñzäP`cÀ†üÚªû˜Û ¹Ùɘ'DÈÜi†”8Ô«W ½ËMàǰ -’] €ª†|ÈAB¨ÄÇ_À0?‰Hçôññ)üþž-LšËZºy¿õ§/5±„ù’÷£a¢¸ÉŒw‡1åîˆ*eÚL¨ðqxóŒÆ|JCÿ?§‚U1‹ÄO1†QÞ0ýÕ„°ÌTÆòÎÛtÌ«ªÅ<²Gp]ØÃÀvrÅP‡ n40ÌjçŒp“320N/ò07,:€†òºIaw[+à’Î-vÙÄT!+d†*å[ V{/•~.®3‘.5*ÕÃ/rÓx1ì@ë$I ±1‡Bà*¡7oxê"Xh{”®íûK ÆL`û¼9¢CÞaݸÊxc=Êy~êÂXf*cyWZ¦¶ ý+…uX§€6Hî »8z.Z’ó….·†R¹Ò•Ÿ@Cy]$°»­•ðIg»Nìâ*•²Cr­†àÿ*a"§9ÎÄf_ŽAþÛÔÇÇ ÿmêaîÏø‹½}Oéý!ªã9ãR­\2÷-7ƒÀt²D‘«t.ªvñÁ—Ž¢%†‡±YJîß´°Ñ\dƻØú!=á6ÛŒ§†3ܧ—î¬%†b¦7•uªka°¯Ò¸WUŠxdŽà»°‡¢å©!O8Rèñxe+)PYô7•ÒK ºÙ_–qk´îÎ"¡ [$0áW*Ø&¶k)zklðÕqœ‰q©V®{–›Á`:Y"HHÕ‰Œ:U »xàËÇQÃCج¥woÚXh®2cÝáÌ}‚ð›íÆSÂp²Ô»‚8¾`Âþ!­>àˆkO¸ááÖÕh­ŸÇS[ ÅLo*ëTÖÃa_¥p®«ðÉÁw`EËRB"žp¥Ñâ6ðÊW:R ³èo+¤–u²¾ ,â×iÝœEB¶Ha®U°MlÖRôÖÙáªã9ãR­\2÷-7ƒÀt²D‘«t.ªvñÁ—Ž¢%†‡±YJîß´°Ñ\dƻØú!=á6ÛŒ§„…ãË·ÎEC1SʺÕ5°ØWé\+ªÅ<²Gp]ØÃÑrÔˆ§œ)tx¼2•Δ¨,úÊé%…Ýl¯‚K8µÚwgP„­’p«•l[5”½5¶xj¸ÎD¸Ô«W ½ËMàǰ¬‘$$jÄÆ €ª„ݼpe㨉a¡ìVR»·í,4W1ƒîðæ>ˆAxM‡vã)á!F8òíó‘PÌTÆò®µMl6úW ê±Ol‘Üvpô\µ$")ç ]#o ¥s¥* >€†òºIaw[+à’Î-vÙÄT!+d†*å[ÖÍe/Mmž®3‘.5*ÕÃ/rÓx1ì@ë$I ±1‡Bà*¡7oxê"Xh{”®íûK ÆL`û¼9¢CÞaݸÊxHQŽ<»|äT31¼«­S[ …~•º¬SÀ$wÝ€=-IŠy—GˆÛÃ)\éJ‚Ï !¼®’X]ÖÊø$³‹]§vqJÙ!‡ ¹VÁ5³YKÓ[g†«ŒäKJµpËÜ´Þ {Ð:ÉBF¬Laи ¨MÛÇ^:ˆ–Åe+»~ÒÃEq“>ïcè„÷„Øwn2žc.ß9 ÅLo*ëTÖÃa_¥p®«ðÉÁw`EËRB"žp¥Ñâ6ðÊW:R ³èo+¤–u²¾ ,â×iÝœEB¶Ha®U°MlÖRôÖÙáªã9ãR­\2÷-7ƒÀt²D‘«t.ªvñÁ—Ž¢%†‡±YJîß´°Ñ\dƻØú!=á6ÛŒ§„…ãË·ÎEC1SʺÕ5°ØWé\+ªÅ<²Gp]ØÃÑrÔˆ§œ)tx¼2•Δ¨,úÊé%…Ýl¯‚K8µÚwgP„­’p«•l[5”½5¶xj¸ÎD¸Ô«W ½ËMàǰ¬‘$$jÄÆ €ª„ݼpe㨉a¡ìVR»·í,4W1ƒîðæ>ˆAxM‡vã)á!F8òíó‘PÌTÆò®µMl6úW ê±Ol‘Üvpô\µ$")ç ]#o ¥s¥* >€†òºIaw[+à’Î-vÙÄT!+d†*å[ÖÍe/Mmž®3‘.5*ÕÃ/rÓx1ì@ë$I ±1‡Bà*¡7oxê"Xh{”®íûK ÆL`û¼9¢CÞaݸÊxHQŽ<»|äT31¼«­S[ …~•º¬SÀ$wÝ€=-IŠy—GˆÛÃ)\éJ‚Ï !¼®’X]ÖÊø$³‹]§vqJÙ!‡ ¹VÁ5³YKÓ[g†«ŒäKJµpËÜ´Þ {Ð:ÉBF¬Laи ¨MÛÇ^:ˆ–Åe+»~ÒÃEq“>ïcè„÷„Øwn2žc.ß9 ÅLo*ëTÖÃa_¥p®«ðÉÁw`EËRB"žp¥Ñâ6ðÊW:R ³èo+¤–u²¾ ,â×iÝœEB¶Ha®U°MlÖRôÖÙáªã9ãR­\2÷-7ƒÀt²D‘«t.ªvñÁ—Ž¢%†‡±YJîß´°Ñ\dƻØú!=á6ÛŒ§„…ãË·ÎEC1SʺÕ5°ØWé\+ªÅ<²Gp]ØÃÑrÔˆ§œ)tx¼2•Δ¨,úÊé%…Ýl¯‚K8µÚwgP„­’p«•l[5”½5¶xj¸ÎD¸Ô«W ½ËMàǰ¬‘$$jÄÆ €ª„ݼpe㨉a¡ìVR»·í,4W1ƒîðæ>ˆAxM‡vã)á!F8òíó‘PÌTÆò®µMl6úW ê±Ol‘Üvpô\µ$")ç ]#o ¥s¥* >€†òºIaw[+à’Î-vÙÄT!+d†*å[ÖÍe/Mmž®3‘.5*ÕÃ/rÓx1ì@ë$I ±1‡Bà*¡7oxê"Xh{”®íûK ÆL`û¼9¢CÞaݸÊxHQŽ<»|äT31¼«­S[ …~•º¬SÀ$wÝ€=-IŠy—GˆÛÃ)\éJ‚Ï !¼®’X]ÖÊø$³‹YÿÄ@ ³±²´ $!"0Â1@QstÁÄÒÓAq2rÃÔ3Ruƒ‘ÑÿÚ ?ñê?ñy¿ ñé— ø¾îñéH|^RåãÓ©u Ÿø¼ßxôË|_wHxô‰¤>/)rñé‡Ôº†ÏÇ€|^oÈ/»¤/7ä=2äÝÒ="i‹Ê\¼zaõ.¡³ñà›ò™r‹îé‘4‡Åå.^=0ú—PÙøð‹ÍùL¹Å÷t‡HšCâò—/˜}K¨lüxŠðñX‘ 98 3?Þ߈ýö[Ö…ˆ‹YTÍ˱ƒ˜‡8€ð!ôùs~AãÓ.Añ}Ý!ãÒ&ø¼¥ËǦRê?ã…‰ÖFõ›5ü¹¿ ñé— ø¾îñéH|^RåãÓ©u ŸñÂÄë#zÍšþ\ßxôË|_wHxô‰¤>/)rñé‡Ôº†ÏÇ€xábu‘½fÍ.oÈ/»¤¥Ô6~<Ç ¬ë6kÙ5”) чö@ÿ¾âø¬1‹¤+˜¤(ò—”8¥g±ù¿ ñé— ø¾îñéH| ´ms´áMºÊ\¼zað0‘dTŠD¦!Š<¦(›ˆÒoÆ#ûì˜ò¨xeH¨~ž$à?¨lüxŽ'YÖl×¶!]bÓŸ•ù¿ ñé— ø¾îñéH| ´ms´áMºÊ\¼zað'1Ûƒ´À”ƒàu ŸñÂÄë#zÍšöÄ+¬Zaò¿7ä=2ä*qéõ”)9¸pãØC6ûôÿuì"I¬C¿°x—»¤e¿ oÿmxÄ' SC˜¥0¼Gû·PÙøð,N²7¬Ù¯lBºÅ¦?+㤫 ¥Gé— ñå¼3†n²Ô¶:"©šp½ÝÒ="iÂ/LÏɺYæÑµÎÓ…6è?)r`W€‡ø·û†ßî ÑÄø ãZ˜4Ö Zs¸;N s'ŒÀô…§0;‚[¨lüx]—|LZPH'E# `o }ÄOý›}ÄOý›^WZ«®š ˜Æ ˆ cùoY³^Ø…u‹L"~WÇH7VJÓ.AãËxg Ýe¨)ltES4áz(?»¤ß°møhŸâ´1À‹˜SQ>0qà¡KÇÙö?i4~ÝG’QÖl×¶!]bÓŸ•ñÆÒ ՆңʡMÓIS¼DOÄx@-÷ê~ëι5U9Ê Çöû_–ðκËPRØèЦiÂôPwHxÅ aM%NBˆŠ«‡öû-÷ê~ëH£ÓUSœ¼@ ÀxD’'t³Í£k‚ü2B°&¢žùáÑåTÊaöðû-ø8¿á²¦¸H°â&ô£nRäØrsJ@˜ÄIC}àâ Q }úŸºÃ "’ªœåâö{Dµ0i¬5@´æ;pvœ@æOé N`w´Ú*¡›–~Òhýº$>¢7¬Ù¯lBºÅ¦?+㤫 ¥G”Bæ£I—ÜC¿-áœ3u– ¥±ÑLÓ…è þîñBÖ]¤1ùù"wK<Ú6¹Ûºۦ؄µ…¹K“`UÉûNæl$U7Æ­Lk P-9ŽÜ§9‘þâ#ø­÷Åe¯%ŠœAJb€‰1L`‡ØÓ˜Á-6ЍfÅ% \°¦,<¢7¬Ù¯lBºÅ¦?+ã¤HAYq0›œ¡ì(ý"ô[î–þ;}ÒßÇenh3¦o´¦ˆ I—ÜC¿-áœ3u– ¥±ÑLÓ…è ðÂB®ˆ¦¨‰DHQiH!ôÛoº[øí ɉå!ËËÔæåÿYKôòÐòZË´†?"?$Nég›F×;wB[tÛ–°²XNš D(BŒ"&)€ˆˆ¿·î²wQE2Ä*u¢"n"Â<´à~fÂES|jÔÁ¦°ÕÓ˜íÁÚq™òª‹u– ¥±ÑLÝáú&ÇCÕ-ºÈÐM¸AÿÎòZË´†?"?=ë¸lq2M£k»¡-ºmˆKX[ÑìÐiQs3öœÌÒøÚBóÆ©Úk P-9ŽÜ§9“Æq™Ús¸%¦ÑU Øè„ytnѼ4ƒÉ¨ë6kÛ®±nèWn£M «’Øãiç»ë?oÝúLݧyf“á/*¨·Yj [TÍÞ¢lt=RÛ¬Ú ¹xq(õ!Çö‚~Û‚~Û/ý)w(ªƒô˜Æ2Â"?äE¤1ùùï]Ãc‰Úm\íÝ mÓlBZÂÞfƒJ‹™Ÿ´à~f—ÆÒ˜Þ5NÓXjiÌvàí8Ìž3ˆìÎÓ˜Á-6ЍfÇ@Ô#Ë ¨ƒvá¤H}DoY³^Ø…u‹wB»um\–ÇH7=ßYû~ïÒfí;Ë4Ÿ yUEºËPRØèЦnðýc¡ê–Ýdh&ØhŠ?hÝ™ªÒüˆü÷®á±ÄÈm6®vî„¶é¶!-aoG³A¥EÌÏÚp?3Kãi Ìo§i¬5@´æ;pvœ@æOÄvgiÌà–›ET3c jåÐTA»FðÒ$>¢7¬Ù¯lBºÅ»¡]º6‚®Kc¤žï¬ý¿wé3våšO„¼ª¢Ýe¨)ltES7x~‰±ÐõKn²4l4 E´nÌÕi ~D~{×pØâd6›F×;wB[tÛ–°·£Ù Ò¢ægí8™¥ñ´…æ7S´Ö Zs¸;N s'Œâ;3´æpKM¢ª±Ð5òè* Ý£xi’QÖl×¶!]bÝЮÝF›AW%±ÆÒ ÏwÖ~ß»ô™»NòÍ'Â^UQn²Ô¶:"©›¼?DØèz¥·Y ¶¢Ú7fj´†?"?=ë¸lq2M£k»¡-ºmˆKX[ÑìÐiQs3öœÌÒøÚBóÆ©Úk P-9ŽÜ§9“Æq™Ús¸%¦ÑU Øè„ytnѼ4ƒÉ¨ë6kÛ®±nèWn£M «’Øãiç»ë?oÝúLݧyf“á/*¨·Yj [TÍÞ¢lt=RÛ¬Û QGí³5ZC‘žõÜ68™ ¦ÑµÎÝЖÝ6Ä%¬-èöh4¨¹™ûNæi|m!yãTí5†¨œÇnÓˆÉã8ŽÌí9ÜÓhª†lt B<º ˆ7hÞAä‡ÔFõ›5íˆWX·t+·Q¦ÐUÉlq´ƒsÝõŸ·îý&nÓ¼³Ið—•T[¬µ-ŽˆªfïÑ6:©mÖF‚m†¨£öÙš­!ÈÏzîL†ÓhÚçnèKn›bÖô{4T\Ìý§ó4¾6¼ÆñªvšÃT Nc·iÄdñœGfvœÀî i´UC6:¡]D´o òCê#zÍšöÄ+¬[ºÛ¨Óh*ä¶8ÚA¹îúÏÛ÷~“7iÞY¤øKʪ-ÖZ‚–ÇDU3w‡è›T¶ë#A6Ã@ÔQûFìÍVÇäGç½w Ž&Ci´ms·t%·M± k z=š *.f~Óùš_H^cxÕ;Maª§1Ûƒ´â2xÎ#³;N`w´Ú*¡›P.‚¢ Ú7†y!õ½fÍ{bÖ-Ý íÔi´r[m Ü÷}gíû¿I›´ï,Ò|%åUë-AKc¢*™»ÃôMއª[u‘ ›a j(ý£vf«Hcò#óÞ»†Ç!´Ú6¹Ûºۦ؄µ…½Í•3?iÀüÍ/¤/1¼j¦°ÕÓ˜íÁÚq™òª‹u– ¥±ÑLÝáú&ÇCÕ-ºÈÐM°Ð5~Ñ»3U¤1ùùï]Ãc‰Úm\íÝ mÓlBZÂÞfƒJ‹™Ÿ´à~f—ÆÒ˜Þ5NÓXjiÌvàí8Ìž3ˆìÎÓ˜Á-6ЍfÇ@Ô#Ë ¨ƒvá¤H}DoY³^Ø…u‹wB»um\–ÇH7=ßYû~ïÒfí;Ë4Ÿ yUEºËPRØèЦnðýc¡ê–Ýdh&ØhŠ?hÝ™ªÒüˆü÷®á±ÄÈm6®vî„¶é¶!-aoG³A¥EÌÏÚp?3Kãi Ìo§i¬5@´æ;pvœ@æOÄvgiÌà–›ET3c jåÐTA»FðÒ$>¢7¬Ù¯lBºÅ»¡]º6‚®Kc¤žï¬ý¿wé3våšO„¼ª¢Ýe¨)ltES7x~‰±ÐõKn²4l4 E´nÌÕi ~D~{×pØâd6›F×;wB[tÛ–°·£Ù Ò¢ægí8™¥ñ´…æ7S´Ö Zs¸;N s'Œâ;3´æpKM¢ª±Ð5òè* Ý£xi’QÖl×¶!]bÝЮÝF›AW%±ÆÒ ÏwÖ~ß»ô™»NòÍ'Â^UQn²Ô¶:"©›¼?DØèz¥·Y ¶¢Ú7fj´†?"?=ë¸lq2M£k»¡-ºmˆKX[ÑìÐiQs3öœÌÒøÚBóÆ©Úk P-9ŽÜ§9‘ÿÿÄ= 3q12±4ArÁð 0BR!@DQa‚‘¡Ñ"P`áb€ÿÚ?ÿíÛ¶Lñ|„?„?@²ØD,(ý¿ÿKºò™—I6›‡ú]ה̺I´Ü?ÒeÒM¦áþ—uå3.’m7ô»¯)™t“i¸…%Úcú±·¢Íñ”§&ðñú?Â]yLˤ›MÂÅE@?·{|Êý–Ã,8žðÿYh5ç0)Ü~ Ž8þ–ùü#úXÅâRºò™—I6›…‹€5ã7OðP%–³^sÇê å³^™ËO©]yLˤ›MÂÅÀñ›§µˆàù3}Ãa!ƒ—ÔàK-f¼æ;µˆáo“7Ü69 “Ê-f½3–ŸRºò™—I6›…‹€5ã7OkuûÚwe²MçŸÔàK-f¼æ;µºóŒ¦Q¨6O(´ šôÎZ}JëÊf]$Ún.׌Ý=­×ïiÝ–É7žS,´ šó˜î>ÖëÌj2™F Ù<¢Ð6kÓ9iõ+¯)™t“i¸X¸^3tö·_½§v[$ÞyýN²Ð6kÎ`S¸û[¯1¨Êeƒdò‹@Ù—B±JPÇÂÞ‹ø[ѱ¨]yLˤ›MÂÅÀñ›£§C ðÀÃãâ6ôt/ÆËS–‡ôóö_½§v[$ÞyØ—|!(ÓoGBül² aÀ¿w²(xˆ½ ñ·£¡~6S !Ćð%–³^sÇÚÝyFS(Ô'”Z͈-ÕƒÑGÀ¶ôt_Ãõ±ÐÅ(‡€{;¯)™t“i¸X¸^3tt’‹F½1.¾Âë÷´îËd›Ï;CÊkÊhSùöDÌuÓ¦ÏYh5ç0)Ü}T³K[x¼Ñ棿«uæ5L£PlžQh4N ´VëÎj2‰F íì! pæ!oFCûÇöþ-èÈxþßÅc”9 .’m7 kÆnŽ’Qhצ%ר]~öÙl“yçhyByM >È™‚®ºq´ÙàK-f¼æ;ª–ijñ棿«uæ5L£PlžQh4N ´VëÎj2‰F íb£Š`úñ |Â7Ýû…¢À‹|Ê7õ¢À¬> ÔQ(Ô¬šQhצbÑîùAQe˜“¨.x•eÒM¦ábà $)Ôˆ<¶ß7…ð‡éhÉá PÀyY$¢Ñ£O‡®Î‡ ÔYpx”½Ao›ÂøCô·Íá|!úY)@±baô2Ù&óÎÐò…òšþ]’ùæ×§»¯g»% {.ȃ>&›2¹F¥ K-f7=ØØ É.»‹*Ï®õ /•¨<. ôS(Ô'”Z͈-ՇĀÊ%ƒµ“J-ôÌZ=ß(*,³u¥Ï¬ºI´Ü,\‹ÄOv,Ô¬’QhѧÃ×gCj,·õ§› Ëd›Ï;CÊe0>Z?ôøøo{z/ÿ_·ý±®Ïþ¯ÛþÙ’ùæ×§»¯g»% {.ȃ>&›2¹F¥ K-f7=ØØ É.»‹*Ï®õ /•¨<. ôS(Ô'”Z͈-ՇĀÊ%ƒµ“J-ôÌZ=ß(*,³u¥Ï¬ºI´Ü,\‹ÄOv,Ô¬’QhѧÃ×gCj,·õ§› Ëd›Ï;CÊo´þ^í(ÒȤ—Ï6½=Ý{=Ù(kØv@¨<ñ4Ù•Ê5-Yh1¸éîÆÀl†IuÜYVxutxŸ¨Y|­Aáq 2™F Ù<¢Ð6hœAh>¬> ÔQ(Ô¬šQhË!|¬R—ÇÃèz,~/ÛþÛÑcñ~ßö×|­E–bN t¹âU—I6›…‹€1x‘éîÑ嚃µ’J-4øzìèr E–à^ tóbTl“yçhyBöŸËÝ¢eY’ùæ×§»¯g»% {.ȃ>&›2¹F¥ K-f7=ØØ É.»‹*Ï®õ /•¨<. ôS(Ô'”Z͈-ՇĀÊ%ƒµ“J-/J  •¨²ÌIÔ—¬> ÔQ(Ô¬šQhÑx‚P]­E–bN t¹âU—I6›…‹€1x‘éîÑ嚃µ’J-4øzìèr E–à^ tóbTl“yçhyBöŸËÝ¢eY’ùæÊ&èº, Ô,» T øšlÊå–,´ ˜ÜHt÷c`6C$ºî,«<:º»:ƒQe¸¨<Ø•[$ÞyÚP£}§ò÷h™F–E$¾y²‰°ê.‹u .ȃ>&›2¹F¥ K-f7=ØØ É.»‹*Ï®õ /•¨<. ôS(Ô'”Z͈-ՇĀÊ%ƒµ“J-/J  •¨²ÌIÔ—ÔÇö TŸ˜|ð ?`}Íæiê;¤Q®èÔÆö TŸ˜|ð =á‡ÉǸwH$³W§Ü£™‰AH^¤¼ö0Õ ò9µŽ{œú$7PO=ßsyšzŽé”kºµä-QÊy*|œ{‡t‚K5z}Ê9˜”…êKÏaÁó R#˜ûXç¹Ï¢CuóÝ÷7™§¨îIF» {XÞBÕ§’¡‡ÉǸwH$³W§Ü£™‰AH^¤¼ö0Õ ò9µŽ{œú$7PO=ßsyšzŽé”kºµä-QÊy*|œ{‡t…·+'9»8†=2ÃõùÜze‡ëòÿ¿pŽf%!z’óØp|ÃTƒÈæ*õlÉ©Š8þXôÃÓåˆcÙÞßO‡ÙÃØG=Î}¨'žì4‹·)„‡Ø?–=0ßôùbòvìÄÆíãÃodqàQza¿éòǦþŸ,963f%9»GùW™§¨îIF» {XÞBÕ§’¡‡ÉǸwFZ3Ü«ÃÑ ûñéwÌ~Xg`s@GˆÏgÌJ Bõ%ç°àù†©‘ÌV!<õHSòëì#žç>‰ ÔÏvg5E ²FáØ=“LƒAXfœ¼÷yšzŽé”kºªý ôÇÇì’Zz±¼…ª9O%C“pg¸=Xܲע9Î%Á¿°lq#3;@qé¦ß‘~CüãÓM¿"ü‡ùÄM ´+3h‚Bõ%ç°àù†©‘ÌV!<õHSòëì#žç>‰ ÔÏvg5E ²FáØ=“LƒAXfœ¼÷yšzŽé”kºªý ôWY$´6õcy TržJ†'áÝhÏpz±¹e¯DsœKƒ|"À†‰¾ÐýøÇ¥¾/ØŒ0yfÜHaªAäsˆO=R”üº¬\æÿ``cú§üÇçˆ9ÌfÃÄG(î ÷9ôHn ž{°Û9ª)’7Áì#1[¡¸ãú§üÇçˆaÌ-ˆŽQXfœ¼÷yšzŽé nF, cú]•vø¿aþ0Gq÷¿aþúAè¯ç1A—÷Õ?æ?Ï=E ™ U‹ê€îƶ ¿JejBõ%ç°àù†©‘ÌV!<õGm+_똂Ag £¸,sÜçÑ!º‚yîÃl樤HÜ;ĵóÜ?—UN CqH\Á´U›è»;3¸Ûã7ÌpîôØZæíñüñžz£¶•¯‡uŠL A!‚ sˆ|Ó\mñ›æ8úãoŒß1Ãñ„ÌYà=¨'žì6ÎjŠAdð,KP=É÷ùuXÔà´7…ÌE^t¬¼[£„òW3OQÝ ¢5ý ˜+ˆ¦¤Ü¶q”ÖÕˆö2°?ì­´Œê(å<• >N=ú2ÑžàõZèÉp£œâ\áöyê)Èj¬_P4‡v5°UúS+R©/=‡Ì5Cè‹AGi¤¨oˆ„óÕ´­|;¬R`Z Ì{¢½ÈcAܨ'žì6ÎjŠ9=}Y×épãýÜ?lzsÿ¿üÁ#_HÀC·õÿ˜‰jç¹ ~ÿ.«œ†â¹ƒh«Î•—‹tpžJáæiê;¡4F¿ !3qÔ›–ÀŽ2šÚ±ÆVB§ò•¶‘E§’¡‡ÉǸwFZ3Ü«].sœKƒ|>Ï=E ™ U‹ê€îƶ ¿JejBõ%ç°àù†¨}oè(í4• ñžz£¶•¯‡uŠL A!¹`ôW¹ h;‚Cuó݆ÙÍQOÁxú#å¨b%¨?žäûüº¬jpZŠBæ ¢¯:V^-ÑÂy+‡™§¨î„Ñþ€„ÌÄSRn[8ÊkjÄ{X ŸÈvVÚFuržJ†'áÝhÏpz­td¸QÎq. ðû<õ‡<AÏà zp>ßþcÓð~ÿóaâÜh ìk`«ô¦V¤/R^{˜j‡Ñþ‚ŽÓIPß çª;iZøwX¤À´˜öE{ƃ¸$7PO=ØmœÕü¢1ÎZ†"ZƒùîH¿ËªÆ§¡¸¤.`Ú*ó¥eâÝ'’¸yšzŽèM¯èLÁ\E5&å°#Œ¦¶¬G±•€©ü‡em¤gQG)ä¨aòqîÑ–Œ÷ª×FK…çàß³ÏQF:F•ŠÏä ìk`«ô¦V¤/R^{˜j‡Ñþ‚ŽÓIPß çª;iZøwX¤À´˜öE{ƃ¸$7PO=ØmœÕü¢1ÎZ†"ZƒùîG˜ŒZ˜£À@®= ññŽ= ññŽ"‚"rüÕ!sÑW+/èá<•ÃÌÓÔwBh@Bf â)©7-e5µb=Œ¬…Oä;+m#:Š9O%C“pg¸=Vº2\(ç8—ø}žzŠ1Ò4¨,V Hwc[_¥2µ!z’óØp|ÃT>ˆ·ôvšJ†øˆO=QÛJ×úÅ& Üǰz+܆4Á!º‚yîÃl樧à¼}ŽrÔ1ÔÏr:Hm@ÜV%˜–T…ÌE^t¬¼[£„òW3OQÝ ¢5ý ˜+ˆ¦¤Ü¶q”ÖÕˆö2°?ì­´Œê(å<• >N=ú2ÑžàõZèÉp£œâ\áöyê(ÇHÒ ±Yü!Ýl~”ÊÔ…êKÏaÁó Pú"ßÐQÚi*â!<õGm+_똂CsÁè¯rÐw†ê ç» ³š¢Ÿ‚ñôF9ËPÄKP=Èé!µqX–bXR0myÒ²ñnŽÉ\<Í=Gt&ˆ×ô&`®"š“rØÆS[V#ØÊÀHTþC²¶Ò3¨£”òT0ù8÷èËF{ƒÕk£%ÂŽs‰po‡Ù稣#J‚Ågò‡v5°UúS+R©/=‡Ì5Cè‹AGi¤¨oˆ„óÕ´­|;¬R`Z Ì{¢½ÈcAܨ'žì6ÎjŠ~ ÇÑç-C-Aü÷#¤†Ô ÅbY‰`uH\Á´UçJËź8O%pó4õК#_Й‚¸ŠjMË`GMmXc+!SùÊÛH΢ŽSÉPÃäãÜ;£-îU®Œ— 9Î%Á¾gž¢Œt* ŸÈØÖÁWéL­H^¤¼ö0Õ¢-ý¦’¡¾"ÏTvÒµðî±Ih$71ìŠ÷!pHn ž{°Û9ª)ø/Dcœµ DµóÜŽ’P7‰f%Õ!sÑW+/èá<•ÃÌÓÔwBh@Bf â)©7-e5µb=Œ¬…Oä;+m#:Š9O%C“pg¸=Vº2\(ç8—ø}žzŠ1Ò4¨,V Hwc[_¥2µ!z’óØp|ÃT>ˆ·ôvšJ†øˆO=QÛJ×úÅ& Üǰz+܆4Á!º‚yîÃl樧à¼}ŽrÔ1ÔÏr:Hm@ÜV%˜–T…ÌE^t¬¼[£„òW3OQÝ ¢5ý ˜+ˆ¦¤Ü¶q”ÖÕˆö2°?ì­´Œê(å<• >N=ú2ÑžàõZèÉp£œâ\áöyê(ÇHÒ ±Yü!Ýl~”ÊÔ…êKÏaÁó Pú"ßÐQÚi*â!<õGm+_똂CsÁè¯rÐw†ê ç» ³š¢Ÿ‚ñôF9ËPÄKP=Èé!µqX–bXR0myÒ²ñnŽÉ\<Í=Gt&ˆ×ô&`®"š“rØÆS[V#ØÊÀHTþC²¶Ò3¨£”òT0ù8÷èËF{ƒÕk£%ÂŽs‰po‡Ù稣#J‚Ågò‡v5°UúS+R©/=‡Ì5Cè‹AGi¤¨oˆ„óÕ´­|;¬R`Z Ì{¢½ÈcAܨ'žì6ÎjŠ~ ÇÑç-C-Aü÷#¤†Ô ÅbY‰`uH\Á´UçJËź8O%pó4õК#_Й‚¸ŠjMË`GMmXc+!SùÊÛH΢ŽSÉPÃäãÜ;£-îU®Œ— 9Î%Á¾gž¢Œt* ŸÈØÖÁWéL­H^¤¼ö0Õ¢-ý¦’¡¾"ÏTvÒµðî±Ih$71ìŠ÷!pHn ž{°Û9ª)ø/Dcœµ DµóÜŽ’P7‰f%Õ!sÑW+/èá<•ÃÌÓÔwBh@Bf â)©7-e5µb=Œ¬…Oä;+m#:Š9O%C“pg¸=Vº2\(ç8—ø}žzŠ1Ò4¨,V Hwc[_¥2µ!z’óØp|ÃT>ˆ·ôvšJ†øˆO=QÛJ×úÅ& Üǰz+܆4Á!º‚yîÃl樧à¼}ŽrÔ1ÔÏr:Hm@ÜV%˜–T…ÌE^t¬¼[£„òW3OQÝ ¢5ý ˜+ˆ¦¤Ü¶q”ÖÕˆö2°?ì­´Œê(å<• >N=ú2ÑžàõZèÉp£œâ\áöyê(ÇHÒ ±Yü!Ýl~”ÊÔ…êKÏaÁó Pú"ßÐQÚi*â!<õGm+_똂CsÁè¯rÐw†ê ç» ³š¢Ÿ‚ñôF9ËPÄKP=Èé!µqX–bXR0myÒ²ñnŽÉ\<Í=Gt&ˆ×ô&`®"š“rØÆS[V#ØÊÀHTþC²¶Ò3¨£”òT0ù8÷èËF{ƒÕk£%ÂŽs‰po‡Ù稣#J‚Ågò‡v5°UúS+R©/=‡Ì5Cè‹AGi¤¨oˆ„óÕ´­|;¬R`Z Ì{¢½ÈcAܨ'žì6ÎjŠ~ ÇÑç-C-Aü÷#¤†Ô ÅbY‰`uH\Á´UçJËź8O%pó4õК#_Й‚¸ŠjMË`GMmXc+!SùÊÛH΢ŽSÉPÃäãÜ;£-îÿÙplugins/jetpack/images/custom-css@2x.jpg0000644000312500031250000005501212651056012020700 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„      ÿÂFhÿÄ ÿÚý´$’@ Ü’I+pI$­À $·$’@ Üzb $‚yð7[ƒÉ¦û¦I$†»Z0{À­ÁÔâ$’G]1u€nI$€¸$’ š?`VàŠé'è)$’+Š^Û«¯œcâšL§zYyÅv*®®ìÿ<.½½ëÜåõ®rípŸYP› ÜŽ‚~¤’I"ù÷Çaá“{Z…‡urÙ»§W±ø-ͦ¢qŽºŸ`òU¤y¹Z»bÒ2H5Í}nI$רâäëç÷çÇ'.®Þy<9}ûô+pI$­Á ö|’I+puþzþ‡I n¥ ´¤’H[€I nI$€o¾€W¨èô/¨ vEåôý_à¸0¿œ§$’HÆê¯žìÖ­ÚÉë^cÕ’Çåz3Uü†±ÉIòµÖÌù´êErúñ±ŽënO£rKÛ÷ÉQßxï ¥%Ö[Ú¡Ø/šï*ë¬}öÄn tÔ¿Ó?bI$auNÔ¦ýw}¹­}²*Ñç™Iuªäôíêò¦ý"ði%‰oéöàÑÔöéYº‘Y^tg¯9<ŸëFÝáímT°õKôO©y.3tm€¸$’xóëíVV©÷‡7Ï¿H=3°y¾®Ü=Uvºû]®¾|9üáXZƒ«µÇé÷¯° Ü’I+pWõ†Ç’I!ÄÚH¶_%„ê`kl€…žVx “°n žÝbI$c4žE—y6ú¡ã”ýûŒ[Z¯»õ†½gaóE»xj?¶¾Íqコ©Eé²:Ñ ÊÔ2ÝÖÃêë+³@+pE¨}¡$’B‡ÍeªÙö6îÆÒßeÕϾc ØŒ6¤ÛþººâµÆGÝò×ó.XìÅÒ®PÜ_ƒfÚãž‘YÀ+pI$1žþÀ[€I 7¤çîä+pRÚí¾D’Hjì¯+\OêK7£¯`ðýÿ_vA`^ͧÐv–:¶e­[ƒW5³ôØ’I lƒg2´£ZH÷‹ÛEëè–¼éý–ön]u­>¼][qOçw([Ç‘$’_gÇÁǑÓìCºO¡oI?? nI$€¸ ºÕ¹ä’HkÝï_Ù nšnY$’Étî0·ެ·É$Rx­À $·$’@ Ü’I+pI$­À $·$’@ÿÄÿÚÆP+(43@Jjo0ÝÞu—9Y™X\lme€Ë/6§3n£'16ÌÞ‘²Ê°9ª:¡¡³³­ž™ÏhÅo-ÝfQ»6NíEJªìS+'³–×>“=+žT•±Ó+sìæfW@42kDÐ&€fS5ÌË&€  f€rÖ*ç&ŠçÖešªæÍ2£jã½sží€ÍRËȤÕ$3Y´Ä–Pjjt¼›ÄæÞN¦”F6*wªyöŽtÞ“Õm7&´.h”M?ÿÄÿÚ¯ç;  Ûuï€yJð„ÀdUòÊšùF=ûXÿËJ¥k~p­¡UÓC7¶e‹\5?8ÒáÞæRöTyíÒãËÊš2«ÂÆÖUšx]О€yè=@xô>ú<ôÉç xôÈòöfäòú{(ÏÉ×éV}e[V8½nʽ¹×­™#OB1·×.ý=oo*ÊÅІEº^ß¹—ï\ÿcß®]ïx]­O飅fî6Í [–±êß¡ïK2öao&ÆOÒC"qáÊö¸žªØ‘ç p££ÓÏaRóÏ^z<õå[cÏ@óм-¹N\Ý9Õ†ˆVÐVÐ+Ø >³¯ þt´"¹“»W7§йU¦sµKÛúy|'O¶çÜ+wÀ2¿Iç[«×vT2¾“7Ôå·[/ØÔ»bÅÐç§ž€>õ埰uúö€wxÝ(_ÿÄ<!"1A #23`04@BPQ$CRs5r%Scqtu‚ƒÿÚû5úý¿_£Wëôjý~_¯Ñr«¬šã…¬|ÊŸ2UÖ¹kY†Î“¯jý}‹.éÐmóÇá|(W¿à#óš¶ÆÈ‡÷á‘ý1eµOõžmþÔû õöüÅÔ£òW÷ÍáÉÞˆ‰"üÁJ¬ÖXFS®:¾x´ÔB–ì2~¯–^[Ùf9§¼v;ÓÚ¿_b’ÌEŽlbë™ÇÑ õú5~¾ÞâõÇ1ËöüdÆšÌF¾_¢9dÕŤ™/ê9?Ãíòþí9°Ü®ÕúöÝפ³¤é0²˜”Ø^5–Eï\¨!Šö¶ÓäNsÜÍ•¦Ô“v™C´ÈbÒ”è˜,D³™X°—™ë=ú)Ö ôeIHÏ‘ÍÖ2+U+©ÄÙüH&+YØÊ ™e·î&i¤vÏpÕ^¼Ø•|Ù®ñ°¼Æ$tœL8²û]eHé¦;Ù€uD´›­'c!ë˜ERB™:C8ºþš³]ä?Ëõ'Yt¾~#åaµñùB3˜Y‚e ˜Æ*é‘.݇@šéL¤ü˜:È’Q0@bksg9±_§rþ Ì7â™Í_=Ös‚!R¥Ø®ªoCšµ" $³‹fÃzi¨å[±$Ö*˜$àÅ­ŸÞ+BíË"ÛÙ çÜ^"@U^á…y,^êÕк–‘ÁGãßòïó~‰rÐR®Ë ‰˜ËO˜Ð–õ—-Á[gpjý{lFµßºË…Aqæµ6…p!¢èX2`'ÞCZ)5Ûe†€Îœ[»VlS˜l{–Nç.+ß%,ȸUÚÏ(72žý*YU%{3¶Å™q\lÓ2¡¶w_þÈ…¢Å ³aÕ·,\Ò@Wa4Xz‘ñ|¶¬Q²_)Rp¶Àµ[r´ïôí1·eW“ÓVÆ:G³˜$ŸQ«Ì8iZF7&VïÎ’rêó›çr‡¦Ñ's&˜È€¦ ‰N“Ë,‘φŸ3×i ÇXCÁŒàÜ›Õì*³39\ñ“ÑÂ{ú˜^ßL¥’bÚËâ Q¯ ù¼£ÿ{-ä‹H»Œš„enáw«8°S3ž,YåVCÆPgùxM‘EJáÌ `ÏÙ›Ë._®Î…ÕqrU ¥¹%»îÿI_¯Ñ«õú!§*Y,›#äµó/~ºö*¶©»äÏjý~‰|Û TÌs\¢çµ~¿D8Zk!KvYùYÓQÞ¹Ô K0Ojý~_¯Ñ«õû)˜™™Ò#Îbbb&'XŸ)û˜ttóãXÖc^øó±"øŠˆ˜(ÔgXýý‰˜55î°ÈrÃ(Îc\{&`cR#÷öü¸‰‰ïŽøýþÙŒ±“ˆjR£²ÎgËì´Èæì®·jý{L Ž|†5ž+×+«‹6\Ï{Þ ·2‰¨ƒs¬ëºúõÒ¯x–‰Ç¡vå‘mì‹Psîp fq5â×óSKúq¶8ºÓB82Á`$º ²‡ºL|寲&BªrÑÏÕÒ¹‚â:ÉÃ)íþw[Á°…*l?L¤Εi’zÖ¬lÔ” Kc-Îé%› öqËÈô¾{~óx§j¤ŒÜ³•iCäbYÃ.ȼë-ÖÄDŒ"à°L IVùÀ|Å ¨±ÑÎÁi‰„”ˆÉ1Þ ’…²B58Â*-×Ë-+?ÔŽfÛ¼AS†AïÖg<éíâ: ´ ­Õ|#ŒÉ@mÝ®¶¹⌄9WÜ+ÿõÇZeœ×ªORçBbZP5ùv+ .x[q‹…“‹ð5×G¼ˆU`g€¸{ËK«7µÙ“¶{†ªõæÄ«æÌ^WO6&&1œ QpÄÖ+J!ÓŠÎËíu•#¦˜ïfÔ%޲ˆ_åU‹,Öž ?ê_T’·×ÜúÞ5’YRÛLžÎdS´BueÕ⠌ĄT%ð„¼.݇@šéL¤ü².±¹Mj„õ éºë[rµ‚¥¯de E½Æ©®àŒ°uÆ9”U&#ôØ„S¤0Ö´"¤Ú’nÓ(v™ }¯2ªûkZÔ`1Á°<Ëø-‚e}í³#®1—ŧ‹µ~½¬ Åšÿ¼dx«uu’5­ê–§ÃÃ.ÓÄaÅ ¶5«µÖRפÃßqbÏ*²2ƒ?ËÅ î‘;úîéßÙòù¯•„hÌ㦲±–tÇ©ù…F€3#.ìMñ6,«-F¢RQluZÂeåÂe*¥d줾jåƒNý†?«"6ÍÌ©µÔË,gÞI.ŸjˬèàÌë§fè¿Q–”¸ Ø¾æÆÔoI.õX¿a²èÛ0Wú•¿ñ‡›xsî ÚƒJSbüìF:ª&&5ŽøŸ)3|!—ˬ’§;Ñ›¢éåá%5{dØEÊÖgD³9ÓY‡ ­ÎåÁðÝ`˜KŸ^¨ˆ°áq1¢ã”ØLÖMx?}Z…}” ¢Í·Öjæ|4Á+®‚’W|‰pû<ªÄL8 ¦;¸÷½?-Þ×^¬pâçÞùoûψ…¢Å ³aÕ·,\¹ š›•Lj؆´‡¡qª:ç4³‚ß-«l—ÊTœ0¦Í7!¥'ˆîl­‚· (Y7C+Ú8]g™y@OBWR¸œkÙÍ, k½ÍCÜíWj'ÌR»Á1)Òye’#™ðÓàã !Žì¢cZwY^Äì5=Ä dW¼6Y¬Wrp†}öÑ5)i%î®Ð —›"²DŽ‹å2`&‹Z)5Ûe†€ÎŸƒ_¯ÙZ¯ÔhX5s’X:ãw–ž)û;)êÄåŽq¦R‹ÌONfˆ\Æ2kRÁcä±`óͱÜü¼"±ÃŠÍ“†:c¶}y°Åf^á~"Wã×ëôE«V»,I £Y…^sLy{Ö'ýNÕúûñ7½ª1ÊXù 5‘§sóÖ{ØB¥ÀF³Y€Ÿ÷F½Œ8RØÉòXÉO fê–Ø!ƒÃ70˜g¤T°ÇKÅ¢"HbÚëéÜk“Ëìí>k€FY0CÛ®ñ°$c%#ø›ÕæÝGWÆ[A›ôJ´[Ùuv˜§>Õúö˜ €»Ä»¦F©]¼¹_[xE¤GUË+ )cW˜ÂS¨©©ÊVá¤ÙqóÖ˜bÂÇ*‹-ŒÜ*î:´ë¬Rà „wñ̦×s u%,ä&:ðšÏ€÷¸ e˜X}©°‡¾ÉZ‡—îí¶ a ­ÑƒT-A×·é<\Nýf.>-5bmÔª¡p Ä(-Ú°¶ë)«ˆ-3ª#™Õ™P'5qcý'þŠøhnÕ^á•©Ó<ÉS¥s•Å¥osr),øPE^a°­a-NrºUÍr—™dP°Ûi2¥ ’\›¥‰é¬¬*âØ$¤_À9rôÔL"x=µ\jÔó¶FÀ¥Ñn”%E^Æ>%’s,W{ç9ðɱÐ*˜0lt1K'tKߟ×Y®ŒËƒImp¨úLT–ll-Ä Ï·650Ií©^$»g9%Õ´¬%÷¥¨¾iÈDGûcN•¼phä:ë§/£Yª25ë0ÒˆãlnÛ´/ÖU[TÕ6¬Õ‚’P@šãðÎ’ÈRÍ–OÂÁ æ5M½o©Øœ”®Õúû ¨Íò±^ÆÉ²"1j¸Û‘W‚ˉ¯­ ³—¼0 \JBÜi™œPFŸHE˜ã#%^½”à%oq!ÝÁŒÂq¤ñ^­„`^H%•F XÚÖ6w{ؽ»;Xõ>÷_ššvRÂ>² y4mÔ}¬ÃªÁ%§»…YÛ1+Z²~ôna¨¬ÙÝ–b¨É‡ ß—¤NÍ‹c®ÆSÓpʇ¼V+¿a‡6LD 9s,÷9“ËZiéÎäʆ4XôßÌ)ùüµíãØú¦ÇÔý–ãÂ+m°ÜÆo<ãê×é•·–~)-lUÞ%µlÙz¾*© z‡»}ºb/–&Â¥¹o|$\ªêJlàA®Fª§‹¼ÁCŽ«6[BÙȔʦä­l~F,ì³_¨ °ÄÄõ}}ùDåŽÃ!œFCÕ¬lK~hÏ/‰®ÅnÎëJ ì-£ ǧî.ئõ:{[kag+eCÞ+ß°ÃëlnµÍXßů×ð„q¡Œ~߬/×ìub5ïŸ(û)˜ˆÖgHýÿSæ¦F¸cS!qTj›—¹ÍJÕ¸qí_¯°Äš%(ªM×r:ð• Öóò”›RMØreÓ!ˆæFÀ"MBfÞ»¼Måì%Â$sc¹JÜqó›ÈØÐYpÈØ5«MˆLèÃ.`¡¬tœà "ñn*XÔ§Î*o "’ËJ<€n2µY«(ÞîYpçì’"GXq᫬Tæ|{1â¸R[h¯.d b͈±Ëíøef¿ ä¶bнÑÔpæl©Ó]±’ÓøŒíÃâ©Ínìš×60دÔeå^Þöð±r†£æsBfÈÓ’¯èerF;VŠgq†–*PðŒ°ý+œ ßE±Ü ‘=»§y(E‰µ&¨í_¯±Ê¾ëÿè|^T-õ[ãUq‚*ÑLì ®Û,4tã—}ÌÿÞÎ;Iå6Oä«r[ãc˜Ô%Äí@²Š… œ«6T÷&G‡’zs–,ì‰e"%¦C¤ëœÁ¬M|—8ø¢”“él½Ö"9ÏÃ\[ÿ! Î,ŒµÿŠé%Á"åž¡í¬-˜%0Á ã¬Ó±¹ñ“ìªÕH«Zw\ØÆ#Hˆý¸»÷;_â.:´³—…dÎëÍP½§¥©¬û^¸"4:šos ÆŒ¨qá-QVZzE?VàÊ,K uIXoT„ùb­†ˆiÁܶº˜“#\ÿN_¯áì.Z‡*;¥#ÚJ—>`3<9{ÊbµÇpdu„_Ùé³FÞ8f…B´|i¯ê õú"É ÌRv'_–|Ü•Žï.°¸2‰í_¯±<Á0Áq rr.øÊ5Ð'e©÷iÌþ‚û÷4ýëòÏa~¾ÁPÉëd™–‚Y9‡ÐL2Ëh{抉h‚?šéÜoÐE®3ŒâZxf•H¤¬· fI­í_¯³mfó®œ}ÎY¼¾‡_¯Ñ«õú5~¿F¯×èÕúý¿_ ¿ÿÄ81!AQaq"02‘BR`¡± @Pp‚#br€²ÑñÿÚ?ÿPåIŽ¥­)ïN@¹WPUÇ Ž'† X/„f‹ïÍVè³›B¬è†7*Ažª ìN°¤46w*s‹J®¤ºèŽ0‹ÆvÁ^ê²<}ö…X2tÁiNïBþEH¼ øÔZ)ÊÅÙ¢A˜×E! mŠ÷«øUAØèW´ÔÁHtú*Æ+Ž!á°´‹À1¬q¨6yJ´ Ê&dj ¨ !ššóŒŒ ×SåÆP×ñsDFÉí8…m(_Do· ÚP½&ê’»9Ýp¼§ßªv!ƒü–RÑ¢Ú”âh ¨lŽKÁÌ‹d]dzº²CkðѧÏö\—Rƒ¡¤j0G…&®‰×§)]L5À¯{ Âs½áÑiPPsG¼Íg.øÅ°X¹§ÖÜH?E38¬‹œ£¹]Û)Æpôüî…1Érü´î›åhÛÇø”üЦ×Àÿ,WøŽ#%σ¬š‰5cârñ9þ3·æJìä9¤ÚþNͼмFªgoŠdÀvØ…'"ª9Ž|$èª7#š`4¶žFë´óQ’è¿àú»Ç ÂÒŸ:˜‹”q¦E—¢ncE$÷õàÛ‘6S0Aº˜ Æé¤÷ñ€%L€@¸Z{­ú `»³´Ÿ ÇTÀihbŸxÈ”â{íωq5NªH3Á‡´_ª‰õá$}•N˪˜æaiœ¿/GDÖÐÐíN¾m@§ÍPŽŠo{ªVº¢Øðæ‹Æ’‹jª zBöwúª&ÛÊöc‰¬§ÁÆßÌBŠƒ¢ÊÓ’¦9Nª8ÓP…@EÔMò!E!£`£Ëª,š§ Ú@NmBvTÞ6ã{-aÔèŒj(ó‰ïIJ¨'EE‘Ãõì øŽ×¹;4xFëð~Ñ/ÆQ¡ˆ„§!|åH©áŒÄ>¼Û$f óÖTÐä¬Yï K‚ñï´Ù‚ öÏÒ¼”Êß{Ü6cùC’µž€UB׌5d]?x“ ¢ MDt·—uÌ}ð¨ñ ˜Šby .åcË}EärÞ 6è`¢’yÿpÄÔ 4©“œ<_ÄÐÄf±çß§­ý]ʬ‡¾SŠÅaÝLaP¹åÁIÍXP’ nyR¬k¬ó=¿î °‘ˆÂ=›þ§àñhÉðkU〔vô€Õg¯=üPLÅ÷Älþ¯àòAŒ íLdªÕ%Ä›ð|Hfß•°–B%=¼’ ’Å»´lÅ G D ÃÁðy7àòoÁôŒ1å4aÈi£Nåˆ:{`á/?dê~”=æ¤î#i$ðÓ¹,b^ßB3¨3ÑÌuxSÚAô °® š\¦þ/¡4ü¦3/Á×aÚÉDœˆÝäK…hÇ´þ¤Î_Dà˜$wzmš¿u}ÞBÊiØ= S˜+¾Ñ‘!nj¦Žñ(Vgþ˜™%Ïäd“Ɉ;ɬb’€ÝasqbˆàÀ†Ò$L¶¼uÅé}òQYQÔEaµw›) b»ff‚dMçµ70brðÍgi2nÜÿ5/»‰«1Ûܼ-´Í>×bp¹6Ø~²…h)§\0^à‹5ä°©HÌ·ê>Ý)ý…]‰›Ù,ûã™%R¤¤6ŒDhIdðvqzÇŠJ)ß*µ„'¨4¸3…†<»Á³j=0”¶$èt¹ÿý³è™I0Òk §hmäU‚†àÂŽnv:«, 7±aÿ”î£,h°ÈÞXppØE¡‘Ž0Fªè1}å£Ð¬-Üôw; ÃêcÀpæu¨Í¬b–Ñ×àë10L{# 9Ai@àÄÓÁ$Yîjœ¬OCë{c …Ï. Nþ3¥·¬t›+÷'ãTߪˆbŠH.“Þ«%íÛ*Á,¤Ù"—3Š%Ñ; G¶J-3Q ÓYc’ö@%Àâs´ ³™q‰BìF qˆËvéA¸À ƒÖMñÓz÷{ch •átƒ &0ð†‰£Û(VþÀ?xÆùȘfFµÕÉ€"ýfNéP·¾YKd»çéu“ZÞ(eÉYUàé9n‚%ì¢p þÒÏIYL­÷½ÃfAà—t.ç7Õ({d ±èZ౛˼Ó×%þ±rgÏ’¤ç)áÛhýôÀÔË.$ *z"ôärÞ 6èt:I Ù&+ùw%îÎGXä è윛BR)¸Çà”—) ‹Íòå°4ä/œ©¡×Hgã…š}¿“ h8DÏx‘"Wƒàêô”ûb.{¹»8Óšsi2 쬔© ¼™bªËõD«Órãó“> ½ÊaÒ˜ZD6ÐÞ±tŸt&©’ Áì-Žmˆ0»“Û©ºHÌï„“ |9bvtz«’{ÆRi"Ëõ‘.e­ƒO¦Ro$©s'qÙ6¦] —.'+gåÀ–“éÒC´w›æ„$%ç/ÙtöÙïà<’£X+çòÉÞ4- õþဢž}¦3@Úì‘É7}Ô`€¼—COÍQÞ1Š9sÀMt(aäéä ›dçg]…¸»¤ŠQÓ?L­xç“O‡ð#>Ĝö‚•kjÔ†Y„úaWT²å“ürg h­v‰“¦ê%Qǃàð>-.p\‘Œn·D¬o—7y,ÌÎ@gdµ¿J°¹q}ñ ,ÁñÐ~”Ÿ ‡ ÏÓ·-í—±deØç-`÷~r3…zÉׇ](ñraN¼€?{9 bŒ–¥eéÄ\ˆ'ïšI¤Æj¬«"AåVa¢`„P ”^Äa—L÷×ÝO3=fœW¯¹ŠÎB`YóYLê\e™°#fL@ÌŠ›‚8·nŠD'…8 ’„¸«5o|–¦ Ý\æw2öØŒªä¶b uôªÅ§1³;O¤O¡²2•ÇHsx®„˜Gl¯Vm@‘º‘=]'ð\„”ʲ$QfBh?™ð$c ‚~ø@hþãàú)¤űôѶ¨þÐq”­Ÿ™ÈaSŒ£Áðx­ÐÈw¥ÁŒ§tp'‘hÂûËG¡Söd8RÑu…Ù'ÛœÙÔ&à  RîMŒ1µ $Ç&°ѪU¦Ùt…ÐNLmÉ|(mv<:[wì•„TS3ÀöÍ^:Ñ.qêǤÈüÇ@Ýžî’7£„ãÛ¬bNáÚòÝŠ N/Dd" æèX&4µd&hÂ1I‚˜+P7ý\U]fOÆ5tƒ²!à| ¸9²å†šrÎTŠžÿ¥Ý‘ÁÑÓ¼£&T“ ]Ç|Ò[uW3 ’¨<³´S“¤ÓJpIŽC‘º$³¢ÿðú?9ÄÄž„†M5˜ X Ù’ÐBr˜5GDj“Mg7Ä'Û?ô{±‚Õ$ j£6˜Ô/Ž(zL>¥ÃÆ-ö[K¸‰ÈNϵ, Û$m‹]½áÎ)âÓóú¿ø>ˆð 쟢ƒMžDR5"1à‰‹”Ž‚³!#××ýÆ- 9s€ý‡Á䊧¹¼’}&üÜdÀ–\!  î`q{¡¼o!ðwOoù?¿ÁàœOÝ:ñA ^%‡§|ÜN½b¼„Š)H TáÂÝBÚ%ð| —jÛ÷^Hø<›ðy7àòoÁä߃ɿ¿ÿÄ+!1AQa qð`‘¡0@P±ÁáñÑÿÚ?!ý?‹ßèß‹ßèß‹ßèß‹ßèß‹ßè‚¢G – Ut$¡ç¬0’v#äø½ü”É~¥Ñ»FAù0–ÈeDàV­\·ïyNþ‚\ê¡$bCÑò’ø½ü•-gÊêî3éÎ%÷n =¡'™À‰pSÌ ÌÄýÙò–Á mÖpí0µT¢G“â÷ñªbÇL@ziÆÿ?Dü^ÿFü^þ~ C®âÓ?½A¯O wü'[8“Z Tìâòy]ÂË´Éäø½üam5(Y 鈵‰—„“¯=rg²àÄÝ7ÆP´Sv§$cëÀNÌ‘-³‘MIžíÇVõÅBKya2q+¯M‡oü™³„BîÍ„¶3ÔU# ©'5°¡)M•[ uÅBf£…¼žnX%tﬔ¤Ð¥QúÄÿ—uòïà$Ñ}FW°ÉÁxº¶‰ÁY C’}ŠTG\ow…’ؾèYL9ñ3…‰‚U‡è¬×ÒxgÒy Hذ¸/z½d¼æED Ú±YBQÚ0ꋥ߄‹—1C/*§ 1JDò™F}6ís}û°¡N’ NeíÝ™ÉhÑFW£ü ¡º$¾%oŒâ+Ò­·Š•ñø½üãf²cs Î|]êòL Cÿ%ô[¿X·©ÇVÓ£ÍÊú`*MÁR #áƒÁØ!@{²äˆqË¥¦0;½žCðqØG&Šöã¿v‹Yø¿ ýu0,I—=BX–G/KM¹†F à±wb`® ƒ7¯Ìdå_ÛiI¿œ˜‹9*§ -4‰¼:&3¤äÊ«3öÞKͰuÓ^@£P0¢UŽÈ})?ŽõšE/q)—mxùŒ'³¦àWþ𤠰!鋲8Iæ#)᮸Æe¿qIn·9vtZAêc¡V«Up¯Éþ'â÷ó 7 €Nò³Oˆ0£~@t0`‰·Æ ˜½N ă “×Àv„ß@JØÈ&…#ª< "o8Ü÷ûà ±¼ 4v×ñ?¿Ñ–à P‡7zÊB¯–j4¯'ÅïôG«Òž' 1Ž$¸¬my>/¢+%ýŠY0l7[ϼÁý˜™ñø½þø½þø½ÿI+ø°UÃh‡ä 6?¢ M ˜6£NCû`Ô'ô‡AÕÎúHÍ}*“ˤ 'Bv¿ ±!$òD¾:PnÕ¯èc«@ÕÀf2ɨŸ¯¨«´9\&D ka†¨z?¿ågP¿¬b–2$B…ˈ «-`'ûLë ©¸'¾FÑŸM»Aß~ñÂ`D¶ß N„–Kš‘_ÒÀÜ+z¶ŒcŽ×HôÁå’AhD–¸àŒÀ„òÆÆNè$…6Õ.?=)åó‰ˆ]ØA ÓÙÈÌ#T…°»n2nµÏcÝW vâ<LN …Œâ“Ð’Ì­+:7ÔÄ,æì> Èç)d…‘½&:™ßÇ?¯¼ä4 Æ[a TaÀtîàÌ;ªZÏEç/s 4kYo k MPxŸŸŠBé:cÏñfz`hGÀøá±4õ·–(ÈÃ;\¤ø|4{Eä,(JSeVÃ]rY²éPÜŸµàzÕ §é7nX%tï¬xÅr «ä¶©›è3œÐAÛf¤‰“hÖŸc^ (¢:Rî+]p ˽’:°a…”Ñï> ´qa­Lê¬ùI[>ú!õÅ)¢n±£¿û‰¬IþRÉŽR²@Ú6¹BÑMØXrœ‘úÔ;) 4bOšê1‚Í<‚÷€ˆh28X±oSû?‹ßȃLY€ÂÀ Æç¸ßßÅ•°Óž«C#@¶ Á9,[· ‘‹4ø 7‚Cc³À‚™v×Y«‚e"UIWÛ{bplƒþ‘Šrb²Ÿ·€ä#°7àHˆV;.‹Ó$ÀÉÏÊmRÚøÂA°“ÇÇQ¿¿ˆ0£~(ÄoÀ —½¶…#CÙ>³wvç í¾(0 Æ±†ÇfPhÈ&yëà,Ü~Ïâ÷ú W¢$R‡8T}TCO‹ßÈ)D•h³FçÞtøwñm߈pJ CóáeÎId ˜1$nô zøjt¡Zž0jÒu¬¢Gñ±²:Ð|_¨yЀkõ,¦)Nžzld¨Z]þäÂ`Bà_L¤åàGþy>/‰È¤l% í‚]ª+ «ÛVXꪦo#¦\Ú„”Æuk¾!Ò/€êÈZDuQμ6.;KOOb=Åœ¡Y¡ÓHŸWQÓ–ò9y%³‡{ûQ®dž,Mrä:vpR‡Œgtžƒ¾¢ºx&̧BkÞ%#ßÞÒ[Oˆü½ß£à&*ŽÌ)ÐÌl±6Ü uîÎX‚Rp)C¨ KŒK B]Þ÷á#(&ÑØ¤¥ÅcM¶M’C L½j&KÊUnQ7¿@DO_³@)y¥)¦6d¤IdLÅ™œq”o‚OGúeŒò%wQ²ñeÇzJsXÇ8#-à ÷Œ‘ _Üî$ñ@xFe,´âã ¹Â,² ]?£&Ê%ƒS’—ÿ#}7ù¯-•|)™·Œ:fàE`À·¬X£lÊ9ʨžLQV ºæ˜…$vcÝc0剳þþÞ—5x…“ ¾gc¥ZGR¿“â÷òD cA„Iô4¤a¸¼øìsïhÃõöäC½±WÙâ‰BPNì–³áL@Þ<\xw0>Î'?#“4xõŒš„¼ˆO=s£;ôE_¾ 7©¢K•FOä¹)Ö&fücqЄ‰# zÞC‘>y~1ÓÂÓ'‹‹¬˦’®!0ìôÆ 6ª6S?æPMNÌQ}u†£‰'ü¼ÔôÞ‘ïãæ§VB0bÑÅI= ¶ÙÉ]þà0è=r$‘YqBOZÇ«pRg”â43m2†flOl r‡bq=y9¡Iê¸Ê]Œ]~˧úÈÿ†H%(ÄËãþ#“®}¢ÉÞ'wé‹:ºCÓ®Ü×0Є58úCþ–ê+|zòúÝv®˜ÄæÕFÀ*güÊ‚1dqRÞ|^ÿ´rLð€8?˜ø½ÿDʸƒh9Ó¿!´UÁFFÄþL‚N˜> —£¾ÜXÇ]_“â÷òtÊZ€RÊ=?”2[”-Ý…‡)Ér×Ïb5B‚§x¢1?w`­¦ µ3b,&ôŒy…86[¼Œºû Z:7ƒIœZcèežÞÎ#p&Uã&¥2MB^ R ÂyI ÌeA0B*Lò`Ú×ABvÎýÜ!tT”9&JÊ)7¹ÒŒ$±Ó†ºWÒq1”Þ– ‡{Óíœêú㺙.ŒZGEŽQ" óÕeP—~úÎhšEâÖQpQ4×ñlüBJPË™s€Í¼© $oÓÉñ{ù§sýø™Eªc$HVüíô[¿X·©ð¬ãÄp InHE¦0iîu¬1@óÎ@ óÿa2[Z·\ôfž4g 6“¯†ú·èQ®qѦWI$M5>\ÃQ¸'l™â±¥ÔÀ V¢.„¼•ža2þMå5iK–_›+˜G€%lýY’Ð ²±–ãÁP‘0G䯫BX,hí…xò G©t¬›µøhªŸ HWp b^Âr,2.£[KËÇñp €;:ù>/0°Cpà‚Cc³ÀX!¸Iò€  ±¼  Ñ_}øKÌE‚BÄÕã×¥¥&øÄ“ŒFùÊÑå>znŽñƒÅ[˜m}\èVA3Ï_ãþ/¢ŒÁT{€ƒ#;<As^žO‹ßÈòL5RnЏ¬0Ôˆ˜K“üs¾Àªïzú c,ÍW¬~Þ¯'Åïä…ÞzDHš[#9K…Û´/§.¶³rÿAìú7.e“€x’zåÆO¶•…A¾<Ÿ¿•¿=ý‡­?o¢>/£~/£~/£~/£~/£~/ ¿ÿÄ-!1AQaq 0P`¡@‘Áp€±ðÑáÿÚ?ÿpù™˜ˆpr1$táàùÈÄ}Œäž¥¢¥1‚…zÄ)D€ŠÉwšñrcÄEôD‡ì'KP“PÒ¸M ›>ÈüÔ(âä~X#¢ëPÂè1§T–³S<¯”dœÃ$¹?aІ mØkFÌrVà3‘¨^ÚýyÐûM%ƒµèȶíÔÕ"ÐSÅèîfÆâ¢„e ›'õ¼m”lÑú è,,ÐÀÀÙP4Ê‹Z´kß«î H¤"v0²-Ð×-Ó"ÇG§B[̹kÂTà)O(CxâÉøp¬•åÇÔª½Ë#¾$ØÛAqÇ;Ó§Ì{a=ô/ð£86VE5P3qÇIgG»&gŽ$C°"Ò ²XI°O":ãÐx^ ÒÍœ‚ìmq¢fÜL'Ü”ç0“šaì¦w± Ù]£A‡b`™¯ZL+š¥‡éh+‘«ŠÅTQnÁ-b€^Çr@<—W.nÌ ½\©³-Gå4° âÀÓÉ =²ÑB!Gz®ÑA ˆFÜ6\*ÍK=ÌLTÔF;5Õ1d§êm¤Sa#‡¤œÍ„Eü±°kŒ6AQ—ø(ŽvGWε%ÿ'ôA)öZ$¡]ðÞ‰g?%§ ;(•õœÓ_çÿm‹ÝO¿[åuýÎ&óܘÀÖÌ&"®ã0`Ê[hð§,yo…ô€_Dç²éëEa3ˆ…x0¯îøÀH`o\x@K@$†ÓCÂa ’³‚F`ä!GzpXîExH1@˜kß ”ˆÀ”ÃØÚeAbTб:Ãþ¼%ùˆ ·z¥„¯/Îq#]†Õ@E–WxŽ9²cËCÄÙA³ I¼•cíîGÕ?HŽÚ€EÈ*1@Ý·Pè€ïÊAQ Î7Æ?'Þ!-C°äÏâC‹1³jàšÒ°ßìÀ&ïïéJ‹æWÎW4‘… ;f¬ š½`'Ëõ&×~ {Jï %{“³©™f†¸å‘6ÆÖ¥{GéØÑ¹P…yaê²#¬_/œPªÆË¦z홌ÁMŒp =DJ:Gð@ðf€SA+åõèRDîs.pí¢8Kߦú‚Aò&ßBE{fn€ä²øúhŠ„«Ë2!  éåš ÀüŽ6  ~ QH*©é’Ÿ‡÷޽ón«%$@½aZ—!Ú )eçzÊ5ôn^f.Úþäló`>L_²ñŪƒ÷‚NÞ%d½µéþ”30.ŸÂÊè\)Ið²¸9û-2,¬¤‹2Â1«0óñHEé껡Ç‚jܘ ŒÂhÕgºXCLÀN%—êM®&ü&$lm$ïsÑ•*§);ÃÛȉ)Ðuïxç¿`¦Ô.Ðx\¿ÿ‰ÂçANéh*ÉÉŽrý+˜ƒ²µd];La¹çjËDâ/8Ò„Y×—7@†½²¸‡bÒ¼ªLtÚHÿ-סsA!]Ó¬{mˆ“î ÿ¬ñ”%R ‚¥"­ãôÆCOaC¦x"& œF­ Aа/a]aƒàV‘…jTX¨–^1Ãp&œ‚ H·Æ°'š© ¹ÀùùÅÞ 'G~plå›vn;d w#¥ÙlG× ¤ãj\kþ}*ø@ @Þ‚‡É‰âvÞ ­:Gd=!$fB4w§å—ŠÛèNá¶4Ì7aš#-QVÙ‚R#PKci’ÛLv?!ò¤§‹¥î- Fò†J•›!îå!°—NÏDN#!Y¢w†u9¥¦´ ’d îÀÛ¨t$–Dz÷›+&Ùt·-M©°~å)Él$RP˜jYNOSõ? )€ƒò(E1Õí•·ø{îà@3ptNazÙ’¤ÄUÜgôù ØXù1j&ðà@" ž^£»½¼ôɸcÄ5 ‘’JAXw‚HÛ4\Q! †ËÌ}ñD£¤q£r¡ òÛéÀ€Àb*Á íÅ‚ªž™)ø~ŽrŽi4Õ-&Þ+;PѤނ2LElSmz9Ž¢ ò§>ˆÕLm¥W<°üÎ"l]Úp·Ó“óLÇÉxõXµ G/]³1˜)±Ž4l÷‚ä÷ˆ"%#‡ x ø0ðCˆS噸VŠu¡M¥èO¥¾ |‰·ÕdGZ >O€DØN4Ñ›Pd,?ŸFÊ„+ËÛyÌžZ”»q#ܱÔÒ£À¿c5q™ó âøÖðîæäã 6Æú€MíL9a^ÜeFˆŠj„z_M¢¡B¡{ÄÍä‹UiBèˆ*eˆ· ;,‰Ö™e¶‹t4Á|}õ÷ ®€~äߨ !Úò>¶C¾ó­ÿSXôÙÛ²$ë#ˆ1Œ@´ét÷Õ‹­?M›¡Æ!5XÎÄâ §>C€b°6®vMŽû|èª–Ž‹ ‚4ro"ŠÆ# ©››®§«ÂÏ\zž‚/hFëgHMN.nöpI¬Úú]K/zÝHHô7áô¶ÍÆÛözYå³{©Ç’;i.,O6²ÒİX,ôu}LóHŽÒøXÛ.añÉ`iThÈ7xd¸fñ( €]ê_‘qEÖöÝÆ ¹è9ŽÐ q_œµýFj¯°&#CŠ+KdCM-Íüý.PSS½¾ÀÉ=Èh†W@C*‘EÏ@¹EUlýøÌRD=É}¢À,[àLeÐñÎ.oœ^B:ºB–W÷쀥6ìsÍc´v£Eª«<µ­ÄS…6n¹/8<£¶Ýuf“ðDÅz,¨¡Hª1ç &ÅJ›"H àB‰hE0"k®0#­ØTùöFëôµØ2˜cHJ8‡ÖÖ }æ.§LË€Øõf œ…S£´¯kÔùˬ ðÀ*͵€@àG•OôŹ©¢XGM0øùˆîZ€ºD?^%Òñ>ˆ(¼uZÖ‚ð’'A|Sœù"ëØ”œmùÆæLx¶]FÌ™åËî¶®éVÏÆ*¤ Ü»r;ô_E[ê¦ Š‘Ñ(íÔãmyãà÷ \õ “ ¦­‚¸wNó€È3’›;Z9™¸ fK|8H<¦-}™¬¨ÒëaãJ2š@o>—’º€LP7§IÒ¶Í6‘Þ?WÛëkP¸ZxÇNõ%žxäÕÐešiÂ(Žƒ9ñö\íõŒÅ‡¥›XÝS(w±6ÛÿhڌԼ¼¥|) L ÀŠTç}Ô…_H©¬í ‡‰ªØ›ÓË6Þ~†ó*:÷ÍýÃ]É\’ 2:€˜§DêâŠ{À”ð4„Z­}ù('®Ìðçü˜#Wðy`gv¦ñ•…8‡2µØ“¥mÀ'ÍÖåâš}v¿»ª(€€ Û¼ý\ o¬­BàÇ\`î¿Lù?OÂ\ÐBA0Æ\><4Áû8¤[´a¯¶#âl¨ó€˜âÔGb'ê|ÍÐií¸c qÖdïg+ZJ¡aõàSó†àè%k–$jZ›ã!Ôülà)O(Cy’Žmˆæõ@§!ÃA¶!t9i]¨eJ ØùÓ€e÷€„@ux®’FßA;j#¼uÅQ§ˆÓÞr™Ü„Ö{AsmÉHn¥¸4×Ú¦ c)q²d§œY°&¼Ir¦ÈÙ›|Œ% )ÁßœmG#R£4ô1`fಊ ‚PØfVš„Û: ã#anSI‹ÏBŠvƤþ v&5@7`Õ k¤]üß’¸4ΰ)œIôŽy–4ö8°”ÀŠÐý)÷Ã;DÑ€T@WGYåH»D!O¯8ƒÆó¯~tbÃ~›JJ ` ëfH“Wq˜Òˆ#Üd< Á8Ðm0:´ÿwŒƒDD¢žž—¥FDn:;ê ÉËmn8Ûo·š—kCg¡Âöz›bŠœ7H8rc°T$=âaE³úùVûƒÜ>~ýgÐf¾p\e‘ÔU§`éα'ÙÇ:`›íU7?²ŒüÏDŒzÔN|œF™¼ªk$ˆQ.$ëÇS‚fÓ¡RÍ*¸Š  ¾Æ° 7^°†Òð³SîWß<«1j¬W Ð kNw?JÐA ÷¯µ•W–ˆMˆôà@aBäáÒÚ€ø> Ð`~GèÀªŽÙ+ø=8‚ç­¡ÚX j€!u¥™,Ny š`˲ïŒZ„ÂŒ©óìë RùyÆ4Qa£ŒÁ€ü¡vSøýï”\:Rkï¼>׫cb`+±†R˜²P¤h[Fv„O+DØë`-+B7»D ý†0+*Ax¨ù9ÇØa½®Û yÝœ¸À×½8ö3;ØU!^²z0ªN.õŽB©-U˜äâ¾bä¡ÞƽèVps'÷Õ®ºÎåL#]…{Ô§Y ¡^õâžéëcblkÞœ:RÙªzçê—:ŒÐeYõX•þ'ºgÖÍLU K»=g/¿/T"?)y들—|ÆFFBŠcþüÿ;Æé~K|jÞ)§V+¯ñCJƺ3úÎsmiŠKËôà;}²;þañÛíöçnÿúÙ˜(îAw€È0'·á3ªþjÁ‡qö ùý¿5òñùf ;Ÿ¶Onî?Æw¥Žlí©=µØLLæÙ³NÄ™Bi$YÁBükþ}–ÝV@“œúz£Ñebu ˜^ÌÀ5öx?­Ô3,ß\èÊ+]„9œús·k71°:½w•©’Ãh¢±ju*,Å8„•Ô°BW¥¥n©j¢vYÞÇ¿”u­#íâxjwéÚ§ænæp²Ù¯%㢎¶êA%Éíc@”}Œ\¤ÇPŸ¨Ð®ÖVU®&9õ,“g¬´ÙÈïÔ"Y=‹ Š¢¸çSsàC#*ÌOej'ÀÞôîem~Qa³ÍÌÞû^²s8iÏ #¬µ=oþ-SÍ ó&äÏ1+S~~À>O¨&ubºÿOözÙÏömûúŠ0)UŸR…U}ÕÅq™ ÏíÏP¶T¨Ë©Úš¶ùgjFí6ððž„ËjŠtú…w–ø Næ?ÞSŸòÓÉZO5Jî(á±Û|—RSrÐä¡¶7=’êÉFÌ·Ñ,êt}31Yó0œTθ§4æX¬;8‡žßëÇR5¢ÖÙÐÃÊ)ôÕeê ꬪ[VzɉVtEÏ®‚qf8&gSΫªK'™Í®T—Üõœ¾ü¼¢ù)ÙgkQ"­ßê®^rÖ«—ÕÆO…*çz†_ñÈïñÛç^ozýËß°ïòoÀÕ|™8Ùô¼ýM)‰ QÎßÄøgʆµøíßç·Éþ;|€4f6uòû‡àÛ÷$ô£ÌWAK$þoa.Q¼”7Åh&…Ìh(Šã•.øcÒõ.v›gÇá¶‚.²üMz ö³hRÃô@êU³à‹hªyÁ¼f±’ç×à–\ô,V“[â|˜£0®¼ê9Ò’fl¢&”kzÐÓ¦šxø?«nu훚•ÚL'”gGPüÛtYE´0šŠé»«žñˆÒOú~Zfšf¼ÏÑRSšåíÖ‹ÈÌgÕëL8×D‰§®ŒóÏJÀBÂsÏÔ ,W‚t¤Y“ Ì„G]šµjý*†ÿOðutçVÈlËš²tœW]hhKJžѼÒv^"ø¨´Ëâý;h„·¬k½1ƒ+¼GùõÆþÓYœ¬Ô›³fïq^O§º‹,asúNlÖ—`xèJœù+ËÆÆëBòõ[×ÛÅi9nlÇ]׋+ ý(ÊkÊU&;·N€{=…q·°ÒRÄ\1é”iú›éš´ùÑ‘ž‚‰ ¾¶.ù3}:xóNOk+¬r2ÓÙIô¥IºÉIIQ#‘…=´ú*M‰•r5fªß³ûÔ/4g÷<|n(^MÓ“')ÒÕ„Àø\5›7ª¸ÛØi,Ù}=Øþžè®;0¿`ù{~ çõÄêMU&g¨)Dd޲Ôõºõ6u%zzÕDz®~mµ™˜Iú’,Ex7Ÿ5 ʹE%WkŠ*W—Ñêd¾•’3ñ¶±oêÒ/–œ^ Q/_TÙøz™ðö ^ƒ·¯6Á_ ÏÔœOÚiP£Õìs7ýO¤ÿC›ä'I¿2®w¨eéŸÛžA½sÏVúms+‘fJÞr\ëëe ùó©Yå.êí6¬¼9ÕŒƒòªê¿{ªËCûrúj´´jMõIG`7nü;'L¢IjQeLd{,V›EgMŠ«d©Æ°jù#íTºÇõP;}‚;þnÿcDÍdÈ!?\ÕO//j2pgÔ'êä"#0€ßô u)‡ŠÞ@&‚öd²Ÿ§yUXÒ‚,Ø$R]Ûö^ɵ™'ÿÀ¿ÿÄ< !1AQ"aq‘2¡±0BPR`ÁÑá @pðñ3CSr€‚²ÿÚ ?ÿÉ ­Ìä¨O€yœ»«Ä˜°å:òü—fñ¿d~¨˜ÐRzç›Te:Ébó'–ƒ°ÿHž¿Þ›ýÙ|%'4d œç:~v7 ¢o ŽE4\gšè¹:³-È+f\`™¼µM$ºDg"(|øL0NfÎÓšf,7¨¥nU+ˆËs Ýâ§´^©¸c)|-™kI‰|éºâÝMÝPb:!éÏT#W´­— ϶°šc¬Ž.QÏšf9ƒð¶gèõ‘1®qCC¯önOotÒ ë¦ã$‘xuNws §Ÿ¤“Ã$G@œC&ìùWšq ó¿Ýš…vaþÖˆw™>po–ÜI5è¶Žs€73O Þ—½Zé1¥§²tžèÃ:Ôp„bvÑÑ  /úߪ{™.$A€AítâàL’uöÝéi2t¸°¸‘—8Œ+s¦ëÜvD‡f ÌøThƒÑ5Ò4èžIŸEH>l‡¥áÇ N“…N<8pÁ™ˆW!ðWà?p% èÈjŒž‡öFNT8»Q$þ½¢ëÓN]ú~êg gÏÏùÙ[êJ5T@Uþ“õºo0>àÈJs¸¬€IÎ:˦¼(’9 çé$ðÉÐ*Æ»½1‰ÜÆCÊ¡q‰Ðfœé›õ[<@g x@À¸Îm g\@û&—:&-™L!Ã){­™hq€dó„Òç Ô;œÓx±NzM“0¾ÖS ?! %ž¡x[#€ØÈÎÔÉ:*˜1Õ=ÅùñAèšbGß”]lâ* (¨ “Ê.˜+P W?’¶eÍȼ ÕŽçàhÙ FQª’ñÌæ˜[Šb Ìk¢f,7¨¥nTÐÄg‹DÂÜTA®‡DÃw@Ä8©íªnæÂÙÃNx‡Âõ² üŽ…f'vÏ.LÇò¨ö…²á9âÖ7ìËš3'¤Ý4¹äLh9œ“p¸ ‹ÓPS dŠ@îa s€€?Õ“pº&òä¶Ìåp¹´±¯Dhá˜5öSôqÅ|3ÊsFNT8»Qz£¿/mßi”ê €ÉÑ’rƒû'¹°xZÙ5 ¬¯N2 ß+óO/i¸5Â:þŠxr ˆFb“$§½üM™'í*˜ŒŠô\Ã}‚Ìn°øY€|î‰çd-1DZ#3?X(A?X&H¬X‘ãîÚ 1S˜ê‰kÄj¨×6bs›¦=ÆOšUŠ® ¼P¬jsw µ¦*tCйӬ&=À8€ÀŽ„UBcðä¿åò‡E vœæ§¬ÁÝ|º…êyòRô²×(’ÐÙ¤Y~þ‰ÄÊÆš#ÀE¤úµñ¸0™&ËÒæÌhfè’$À˜Šß¯T餘'аÝN£\"l@¸BA:}‘î¤ÎÐ’‚[h4µñPfc½ã$˜i[©xÈ”N x‰'ˆgºœA%Ðd“ŠuRCN$Léª$†m-ÙO18gÊÈ!#¿è…qÎ]Ô–²ÌÂ$´Då9}Àü$ŠÒA„é,œ¯";#a¶„2m®X¿„dAe´–Œ¢¼«9n±¶’Á” %?+ˆ‘:§ñMðûD­¤É“Ãz-¤4Å0͹ΫiÅ‘Â)ÚjŸ!¦@*7:/Dœ=ýD'a&ôaEþ£íÙm8E©âkXF͈Þì$´§by¤ÚšŒÔŸ)Ø^Ûö!;¢ È~©ÓŠÆ-˜Ï#Tø#8™žR‰À@¤Ÿ„8ÉHžIòAcN[ÌAÂ1…Àõ„ü8®"GTã‰Äîc’ta½=BA×Q;öÒf"kÉ; 7¤ƒâs®Õ‡Þ¿¯ù#f\DÍb;æs€%ö>pº&òäV̘™¬D|œÐ'†dÿ¦a£³iÉ0¸6„ÈÐj… ŽšÏDÂÖ¸À'\¤e;„Ï+½·QŽŠ¸n18M@rP‚(AȦ£ ÅúÅãu`¶gfŸ)˜§˜Ý .mÁýÖÌ–k"zÂl½ßfG’m ¸\Åé¨?z~#ò¥¬ m0ÏLŠÚ9ÎÜÍ<-]ò½-Ä)±C†ZV:-£˜q À æ(‰-/OT&7R¢Nƒ2žçñ $’?ßwÙsO¿ò¿çGcŠù)î`uAö¸N.›“ZŽÈâs tµN›¿ øGËC`tdòÆ ŒÈ¥Ö' "1\Ðüä¶°ÜÆã‰ÄlËb[•dv+h\à"¦iá$_ò5È!\< Æ$B,Ã0f-k+þffAH½ef…žg/’É42f³HŒ©TgóþëÔî#ÔþL3.=,;Ÿò ÿÙplugins/jetpack/images/the-cloud-sm.svg0000755000312500031250000000605112651056012020550 0ustar eacbforgeacbforg plugins/jetpack/images/jetpack-icon.jpg0000644000312500031250000002322012651056012020571 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„ÿ––ÿÄ ÿÚØ€–È.Õe>Y¥Sù?i‰šìÌ5¦¾º^•c¹+0üÀpk§ NØž ê꟪aì6ùítI*ÓôLìémJVÌý»aò Þ,¿"$:ÀÎÄX–®»Ÿ4Û°W2¨7AĦ~±%ª’Wl&@4D 1Èi ‘¯ÖØŠª]Å·½è®Tb ¦œ Ãµ¶ªS?:'ʈkøöÛyö§•«·nTi¥V~„ëÌÈiç€Ê ÁªÞ ƒ°²¤† 9ýzõÅXdÔLÖD_m=E¶«+ò½'ÐÎÿÄ ÿÚÕ8ôfi ÑÇ¢¸³ˆ•šµ `”Î.Ùw§cÌôÇM&€µÖ¨T+z>¼£ÀɶSôí>Ù"¡¶çF¸¿v1ËéšÕÄ…íšÊÉP³[­@eK*”~”z¿òó[­¯Eˆº:­‚÷MEWƒ:.®½>eå"¥¶aæ`ºô´6ÜkcVÊ;‚2¢Û%ôH¿^à·€#,:~:µíƒºôMCÇõ¹8Rêö²ÒÚ/´1 gÌÙ!ú8ôWuÿÄÿÚäà$Ì–Mx˜ g¶e TXoæ,£Ê4Ë`§\CçœÇ†ÏMú!iÝ,ø-ç›:G¿A̵òp«Ó÷nüúVÕ,Q`GB–yËqnÝùÚÅv)•¡|œ*p_7~wõÒ· 4µ[ƒ‡;´ÛÇ3Ó]3è"è}3!Ïnµ^•„óFƒÛäØÃ˜ò“^íªÕöt¨€4äŽMh¨ÿÄM !A 1Qa"27BRqr#0buv³µ34CDP‘%STcds‚ƒ“¡¢£ÑáÿÚ?þÌÂà3zŽäPÀbr‹“ý_UÖŒ#ë6V2)_µŽ \x”xéFË71c ¦T[L®Ý‚ÈÞŸõ|x²´æà˜ñïîš=Opâ#ç=m•yý(¡‹§L7üÙ°ëå·Ûÿ£ê…£$fTj?(Äœo÷|ÞÝÍo„ezžœ \A*rø~QŸdšV¦cÞQL¾ï„ꎯ\QÒâÇÎ s´—¼Í½:ï8Ì wÉZ2Qó#HÆ>·wCS MSVR S–ÅœwH1g`Qâ%1ãßÉ-ls”¬Ü昩JPÖò‚Ö°‰60Ê`@$Šgh‰™éÂî«–r!_5Äs~>©Àµ:b«;<ƒFv!óµ±Þi }*ufmíÜ×ÕdJº`´î LP^3Oâ¨â(ª#jôP ˜¹ÚQ£Û?IÏ64½dsék¾èŽ! üùŠZò\»'9€©—Díñw²#1icþBèXNÛì=ñÅ.ꎰ®ŸøëL9Qž¨©'æ–œµh“*.àE¼ÇMÅ;-âÉìGòC¬¹5«%¶,ØjÑ] cžæœ”¥„Ie12E1ïàwihjµµ.¥Bnk+ †-gÊÚúulæõ}`yYå·z7ä™*õf m‡1Ç`ãçve–Ëãð˜õÇ{,ä2.ì’¥Žñ¿ Ã,:~‚ÓïåÚ} Uk]®úw+¦Õ[*4X­a`ä=,V)ªd1f3"BQ11=ñÓ = Öj.–·HYty]OŒÖéË-€$§sê52Tícï×UºWPÚ¶ê¼!‰±]Á+j˜ÜBa3öôã ŸÃM]c£0y+úzÙüi:${FŸÒµŽdù;¾“5ìÌGo´z:IX×:Ã¥ÑÌ#“º1qÁë­DMŒˆüåT[{=û¥Ò±úQ½ 5q”ªc¨ +R¡YêW\l ­Yb¤¨#Ø û;ý°¼IüѬ£Žg¨õ8¿ä/ÆÒ©É’ÊGˆJÁEbîŸ+°£á,Û„_:õ«ûøôøý¡\pÿ!5ÓÚf´è³9ˆ!ØsYs7éŒÅÚPÁ•euK¿’=.¨Zh]UjçóM5p4 cÔËSåÙð!R¨ñô\Qê™ßá¹r¶>¥«÷^ºÔéWu«V<«Ezë&¹¬/ZĈ§Ù8¥¯mqYdµ %C›È°•Oú¦"±Ÿ“ ŽóÊëGr×úw˜ü¸Gó£ ?Z±?¿Ž™,ž?Iù,­ÚØì}h ±vソdC s›"µ‰5€Ç1”t¥~ŽIgv¥úÇò,R²›H/ºÔ„þŸFb&&&7‰î˜ŸTÄøON'i¸Ò:ÿUà©åÞÊ#>ûÜ·èÄ{‚­•/ýÏîô:¯cb )YåØòùœÎ@çĹ,ùµ²@vÿï¡Ö§‰>AŽ¯Ã¬Sö¹–Zïj#Y|dbà÷©)‰î<‹ƒ·pÎÓäˆ-×n7éÂ?úÕ‰ýütãÿÌþ¸ýSø¶?¦/1—Â>,á²™MáØÛ¶i3yVbù¾ÂÞ=ÞÍ=ÖKЏ.̘«¨+†ß‰ÏR[Ù1ìòÚ“NìÏç5ügÆñR¥´?4jþÅUãìˆý¾‡W®_ð=£9Íò|ßÏ™>o…씡΀–J”ÆBÇå€I@G¼¶Ú=óÓQç²:£=–ÔfËrk®·bgÔ¾rÙU×E5R+¬îäR€|>üèèÖ¬Oïã§¾gõÇèúŸÅ±ÿT¼JδËê5‰¯ŠÂ»aÝð»’}f¢¨ýiZª²Ë}}Ÿâ7Ûµþ·ü¿…Z?ëþÞæöòùÆ9?ëÏ·íôz¯äb÷ ñõ÷ܱ9|Ö<ã~ñæ·9ÿÅ|6ô8‘Õ^ÞK17 òXúÉÈ9·ÊvÕ×^ËŠXáÇÝB¬ Wc$uì$"¿7 ¼—¨x3Äí3ÎY-!”mu÷ÍÌPb¯/דƕƒXÿ·Z§Û·N /Šš L[CUâ ÖÁ`Ï”GqlC>鎜~ùŸ×£êÇüü}̵úX¼rÕü¤R§Yq¹¾Í– ’¸ûÆQ¹z„w"ᦆ§ÃÍ‹Óu¹ô¯Êr¶Æ6ò쵘»f|y9öExžðª”.~O¡ÖÃ$6ø‘BˆÎþiÓ4TÈú­¹rõ¹‰öObhŸ²cÝ¿¡ÕR ìêÍ"æm6®  ?(“µ Œ xÏ)㋻ |'oFÞžÀß¹W#w ‹µ¢õÚ§}ô+2í[ žeº½¢\½Fß8ýó?®?GÔþ-ø:ªðÛÊ,Ùâ>U‰¨OÆé`÷2ÎÒ¬–Pb}p"¡Xûãµ;³ÜI ŸCŠšuoõfuGÚV³–uz'àT1Ð8êGæ"¨7þ$ú<9ÕíКÓ©×Ï)¡n  õ¿j&¾E1¢/&a±Q?Ó­Eá*Z¯~­k´Ü*\BmUz§™n®õ‹RÐ/bÈHgÆ'Òã÷Ìþ¸ýSø¶?¦†Ò wªqc¸·#b<¢Ä0Ñ ¯Æ^¼ÏÍ®ˆ"Ÿå*L|fÆø<.?Náñ¸,R"¾;M4ª*6îRB˜æ6æk'v9“ÞÆ™°·"™Ÿ‡Žúì4/²ŽC»<Îl…-›.,†ÍÁ•BŸmcž;…ñ\'½‘¿¥Õ{Š«µPxmœ³n±ºYí/çT£vØÄsO­ô¦MôÇy“§,P÷SŸGÿ3úãô}OâØþY8mø1¦KWå+òg5RVuEƒ³hà"a•ßäkîö§È†v%”zl×¥]÷-¹uªÕK,Y°ã…¥HKÖ™L-`2DS13>î4ñ1œKÕÍ»X˜:{ ¡§«žãÍ_ŸwäX¿¢ü“[±|eÖ ¨/Œ²ßÒ©nÕ U¯R°Ú—)½VjÚAÊÝ^ÂN§(ǼMgC1ìöo¿¸áâ$á3mEiQ;53ʤgT±ø×ñ±¾Ý¿,sÝ ?%»‘Zg±ô56¡«0¶ðX#Ç_:~X¡îíÑRõk¥X§Áv|šÙŽþɇ˱m=b  0"1°ˆŒwŒFÑÝGÂÖ© cÞÅ¥)kœÓ©KXóØ’3)ævõqóŽß†ý¤,ét³—)“\ÈN rxB=EuÁo1}'1äà¯ä+رNÂmÔ{ªÚ¬Ð}{5Øiz¹æ[RÕȚ؉DÄøôáwZXÖÂq(Ny UQ2rQùê’FK›o•z’Ë›Öêƒ<îœV_œ¤œ–!O)BÀó&Ý ²ƒsEQ¿Æ ØÂ{Š"{£ÑÖÜKѼ>©65&](|„•|Uy‹9k“áè.{^RõvîìjôœVãΤâ<·PO¥9»±Ivö²P3¸³1d;¢Š)Ú¢çn)1~SNê½K¤­ynšÎdpÖ&bYäVý½Qf±sV´?›a,wM;ÖÓ[cĨpØ}D·5„ö¸kÅÒ$ÅšD_v’c~”:ÞéŒyËKjJGã䬯äaªG?òcìè]m8o¸bõq—Õóv8Ý2½pq@%M’°A™\•ZK‰ð’U@¾EöCGïtÕex¨…ˆ§z¦˜¦ÍâWD…¾_dä­›B[zʯ’ÏÙÒÍ›7Ûw,>ݧ”›ìÚs,XqÏ¬Úæ‘1…>Ò)ŸìßÿÄ$! 1AQa0‘PqÁðÿÚ?þ2}R&¹t’ P·‰B½jƒä]4ú$Žê—I ]¥’kû]°DVÔ¥|Ù£YZÐ2^ÝÎ>QmA27¨ øÇBv'-p >¨$§KܘB†Þ"€èÕÂB—AHAÎ¥Áˆ¥:lD^ø‚` ˆŠ"Dck‡QXIUtÓˆö H¢öƒµÕI§ †]»”›Î¤´Wâ P C¥Åp—ò¦ˆMÁ¤Cp®ðSxl¤ˆWˆÐ±¨²– ÄO¼ÿoö÷_?½Uð¬ãê1‚g`^ `rRØË!Tä´‘Xx D¢úŸU¨ïk#s ‚Š:Ñg Ë{safå ËÁøDñé…&Á¼I G1Ò4}oçd¨ð¥CâK‘˜¤¦£0¤ ìÂøxQ±¹åÙÅ{«âcÙkË&ÚäNCýú´‰í=6úùÙº{I§8€<P@ ®€;WÀMÏÓcÌÒ¡ÛÅ`í·ê; Ä5‹`ÔÈ£CPŠtÝhç° sKDk€à±ktRY‹ƒ0(ƒât@”<tyÑöÕÿ/ï&ÇjÝà¿•Ôg@ÊøÂþ%X"„P@üæé @_Cå¸X—EPðþtFùV:æL"†3Öß!xSLq½RÛ]К|Д-Ž'Ë©hI¢‚àB2Óš,ˆûølÄ“áT:ŒlG~–Øã¤màRÆèy7Ì8»ävSЮ]&‹YW _’Å(Õ?uqˆt}hÌ‚Ú(1YuèfŒ© =Ыæ.:)¿}U±½ÃŦ-ö$¸h<2²š 6¸ª• –E3³CÅÔ†£c¿¿ÆÿÿÄD ! 1"Aa27BQ#0Rqtv³µ$3CPSr‘’bc“¡±ÿÚ?ÿ Åáò¹ËB–w'híøŠ5ä°Ê ÛšB€¬H›ÊȃÞÀuí„ôzÖùIrsbð16ÄÇbv½pÿbš¼ö^à#È…?JŸ£>5U~pÕy ßí xêµW¸¤¸Û|HýÞ]›Ñ¯K•<š‡P+{‹|Úãþ"‚oÿ!Û!èÎáKbuhgëËK²žž¬äÎû‘_§æž‡¶ à¿0 $Ç¹Š±îMŒ¾¼yG™4Ù ¾IZΣÞÇìºÜŒy¤?jYYäc¹f'¯‹WðßIëXŸçlrGx®Ñeé­’„íì“aT‹?É´³E·’);öâ uƒv´ãç\¿,9ŠÑ•;$Y(7f©)èNg­+’P䟊)g–( ŠIçšDŠbF’Y¥‘‚GQ®ìò;ªª7,@ôíÂnUÒUàÎ硊֨ž0ñÆü²ÃƒŽEþ¿š=íºY¶7å$Á]„aäŸåÉåèâEv^í²Y*XšH:¼÷oIÉh½7åQ$Ò± R?]¶ðد¸&­j¬W±Å<"É ÑH ¼rFá•Ñ”ÊÀ‚ÇÌvâ÷ [HHú‡OÇ$ºjy@³_rò`ç•¶D,y™ñ²¹ ¬KWrµæb)ÇÀ§vºï/gs$Zr SqÑXÊ•aý¤Œ½&û¬Ó¨&X]|\þñ›Gã¨ÍτӺ’¥:¥xíßï¹/Ý麺‡OU®ÀíÝBÒ.ýùñ[©Zý[®Aš–á’½šó(x¦†U)$r)èUÕˆ?î:ŽÜLÐÓh=K6=;É17CÝÂÙh½F}š´°Åq'½ãî'!{à·y”û˜G4è>ŒŒ:ïàµf½*Ö.[™+Õ« ¶,O!åŽ!F’Y\õÙQ™ŽÞCßÛˆ¾Æ·ÕóRs­NoTÄ×r«c fÔ¯^Yg%íXŸÇLËÑUðßëFþÐãÿ‹ÚõúXʲÞÈÚ‚•8íZ•!‚ò$He•Ê¢+H꛳(Ý€$o¿j·*^…lRµZä ôg«oÐÜÛü6%p¼râ#‘%É×Í@ŸÝf*$ÒÓ¡·]ªÚcÓé<Ïç¹æ;vá—hñ µ˜^¯Í™Ìz$—( {ØeÏ"ܧ)ÞóhåŽ@$®ìŠL‹"?ƒÒ&‚Õ×u­¨Ûç< )œþtµl[¨OݸŠ8Gß¶ß¹£-/·ù7ù¿ÕóµíöùfÅ ²„2ãy/ÒrŠX ø¶Û‰í›Ì^Ô|Žg%#Iw#nk3’NÉÌÛG³x• ‰ÁcWÜKvá¿Öý¡Çÿ·>¬õgêU¿™Rù}°÷¬jœžq“ŽÅKFi|–kw¥¯$U‡çâ®óɱö?¾Ýâx=%‚þé“Ó›æk`ýü¢ðåßá¹m¿‡€7–ß©@íÉei8ßr¼Ö}u¿§wqÿÖÛà×vodîå´…úPEvY-I†Èw°¤ÊÅåZV¡ŠeI!gH&‰;÷k)@¼¹®kÜ;_Ó9!MɳŽEÊWål^‰{ÿGn¼½6íÕdâÕ’DÔXðÈêÈêD½C#ÀïÓ¨^Cb;q“êÏV~¥[ù•/’•;Y•qôa{/X†¥XnòØÄq ý,ÃsÐ*‚Ä€ í¡4]¦qø:ü¯4Ißä,¨ØÛÉNZœù^`"€©^(S¯)>H«Ëg\Ó¨§›p#q¿”¶­\²FÞ@÷M óÜ‚<¶F¬âÇcQé¹_c:VÌÓRvÝ¢þ§x(÷žW¤û»+“Ðx¬á0÷mV½o³vœÑØ«rjuäµ^h4rCa£3Fêz‚Ž¿úÜdú³ÕŸ©VþeKäôzÐÝüó뜌;ÅXÍG’/F±Ö;ùÌB¤Ó®ÛÞ5²=¸‘—ÁÄàÔz×Qå㓼¯>JX*?¹©Ñ J«/S°xk¬žíË“·‡DêY4Ž©ÃçÐ¹Š·cO9±Öqz0:Ýô‘ƒå4qž»Úµ˜.W‚ÝiRjÖ¡ŠÅy£<É,3 ’)‡šº2²Ÿx?>¬õgêU¿™Rí¤ôÕÝ]¨1¸ ¬—§yùy–8ý»wtAfPHç”ÇÝCbqt°˜Ê8ŒtB XêÑU­÷G…æcö¤s¼’¹Ü¼ŒÎÄ–'ÁÅí\ºKFd%†NL¦Y_‹PÀH&µ,ö”} )Õïfçe›¹S·:ö`ÝÓÅÀ!$õ—Båì³Ud—OM)ÛÖ* 䛑¼Õ7i«)½Vx×¥U.2}YêÏÔ«1¥Û€ºæ jl„<¹mE5uu!êaZ=ˆ^ómn_¾/US±F òÏ<`šÍ™c‚½x¤šyå`‘C J^I$vÙU³1;7;vâ–»}w©$·H¸LpzxX\-03^‘7öf½"‡Ø€É]+ÂwhÙ›Å^Äõ,An¬ÒÖµZhç­b)4ÄÁâ–'tpH÷Ž»ŽaÛ…°|6æØc¢“{€;«å,#(Ü"²;ÏXuYWòx]EÓ–=k–»‹œ\Ô™’9¶êŠçš½…ÿ¦h¤}“a}#u]%HóX¼^mni¢çÅÜaåí»ú…½þÍXÁ>@o·j~’šjE½§³µ[Þ+½ ¨?CµŠ¬ðÒ7ìÞ‘Ú.ëÔŒÝ}ŸQ¢½}ÞÑÈûúmñóíô—Ǫ°ÄékӾǑò7«T@}Å£¬·üÀu?¸=³üu×Ùµxk[­§ë>àLJ„­’§ÜoYy¬+væ¬Õ‰ó|–yçµ4–,Í5›1y§±+Ï<®|ÚIef’F?œìOèÛoðßÿÄC !1Aa "Qq‘25Bs±#0Rrt‚’¡³CPb¢ð3ÁñS“ÃÿÚ?þYRÎüÜ1I+ýÕ˜ãÚEÂŽ-‡m®rv¾P ¦*`w;Ê^ÌÜ|v““‹s•’±ß± ý^Cþdm¡äÍ-°©¨¿tgôØëé'& ¯ eÏd±X~dsoÉákiQ©u8$ÃÏ Çj¶ûî‡fOíãq“dH8ax›$ $؉'°rIìÇM]Éç,Õ÷+L¦Òzã¿ÐQµl -ŽÁ :à‰"Aì¢~&ؓĖ'·•f¬¤®žŒ =™’Ë*þ+Ãú^ëÀ\²ë US«Éfí96YÔeÂUÄ£qôæ9|Èf!UT\³`’I¿MQ©Ò‘V¢¡CÕ°¸ÅiÁöS¶KzoøWdÍå–háæöÍŒ²¤(7³Èld.DZTœmn‹*º•e ¬e` æ7ÃÇMqª 5àšV=eÌÓ±9_bbl¬EÓÑ7o˜äö® a2öŠe#!“MnÓè¥òGxèÔ×ùÞ»£Ž6¼ÕI['’ÿ)&ð@#aMòREö¯ÒtI£‘C£‚¬¬.NÄi¬èZ‚¥¢±0¿^;Òø¡6j3Õ=£e°Ú²ôhéš²ªa{Jýr=˜×­#drPm†de¢"Æ‹¨ŠTd@ ògãÐ×uþgJcŒÚz¨ãíD·ÊIÞ …\W®Àƒ†š·Ö?iãÓ×t~wDåEæ§¼Ñv‘×OÆ ‹o`¼z\™§ %MQö`Nöë¹loÏÁ|®êŠÎä*"–f8ª.Ià:k Æ®ª’v'bû©ö"RvGÆîØfÛí¦­õÚcøé$‰$uÒw!Un@&Àbm‰ðÇDt‘CFêêrd`Ê{ŠáÒ¯ƒÍ«j`•Š{·ë§nJÀg»G“ɱ«U·Ë4¯àÜØÏ° õÐå~Â- g­ 9(ïՌ猄m‡Qw»i«}cCö˜þ:k¯UÖ{µýÄÒ9$…¶¢’H›+Æì‡ûm|÷Ÿ é½ÖPØVuì™=Ûi°øö’{†š¯Z¦±WRœÔñ€^;ÝJ“`èp;7À‚.¤vÚ¼¼£Œ.°WÿËO%ÓàgáaÑÔvÿK¥·Ñ’ýüô—ÿV6ÚöØo°ËïÒi¤¨šYå7’W.Ç¿Q•‚¨ à»óòjßXÐý¦?ŽšëÕužíq<¼›†F«–qqQØîg© ÆÁvŽa{\t9Mo9¥íæ$¿w8-ÿ=O8mZŠ?…,ÑöëíðÜÿ÷bzÜy%y¨äUÉc·P›žmÔ©&û,£g ͤگXSßœ¥“d{qÚU?’ä~ ;ǵ«}cD ùÌx‚19ƒˆÿ;t×^«¬÷kû‰äDi#@YÝ‚"ŒÙ˜Ø Ní((Ö†–8jGúr6.Û°¾ ت½‰èrÃW¢áS =îîß nñèòf{5M1>YÐwY$·Ý°wþ—^‹ÁºÈñFÎŒ‘K« ˆlÁŽšëÕužíq<œ Úf®‘z«µ8;Û$£êãœ1/ln†°ŸÎkjgêÒC»b?“Kw…¿ôhªM\5ö¬àoº² HöMÆ9žŠÊꮤ2° ¬1pG1ék¯UÖ{µýÄÒ’™ë*"§Ž÷‘¬[è ÅÜâ=ïÆÀ t†$‚(áˆlÇ* à¢Øårs'yÄÞ÷èkŠÏ3¢©´Ó|Œ#~ÓŽ³v·l³Ù_A†ŸçK“ÚÄó šÌ€šbO¤™´_Y3\qL¶zZëÕužíq4äý1Nj¤[MRPF)ÎÀï“Ól°Ø [ Ì¨¬ÌBª‚ÌÄØÉ'p5¥yÖFE$AãN[õ¤#éHlq7 anš³++«e`Êì ÁGg tÕ:Ý+PC1 V¢Äd³üHò³otăŠÙOF¢©‰¡’æ7)¶>’««•îm“Àá °2°e—w‡”$€$’l’IÀ3'þ4×:ãζ©i‰Àü¤ƒ|ƒè®þhs<á¶J o˜© ¬U”†VRC+ Š‘ˆ ïÓWò†ÀC_{ ©Q÷^d7Þ]0íSéi±Ì‚HdFWF §ïðÝÃ.•^°¥¡]ª‰@of%ëJÿU¿âk.âMÆÎ±×÷Œ^ kÿ´ ÚK ®-}Ç`£ykm|äÓ6Ý<ÒB×¹Øbpe±VûÇ…´ƒ”•‘ØOSì/þ€§öqÂÖÑ9OL@ç)ªÿO7 ýZ"| í¡å-Ê*¢{9¸Çÿ]þú¬F’rùšGc¸Ë" ð@çõÒ£_k îÖ™Nè¯ÿ±É`~®Ï ÚÚ331ffv9³Ìx–7'ï>8-ÿÙplugins/jetpack/images/rocketeer.svg0000755000312500031250000000234112651056012020230 0ustar eacbforgeacbforg plugins/jetpack/images/connect-plug.svg0000755000312500031250000000311712651056012020645 0ustar eacbforgeacbforg plugins/jetpack/images/jetpack-logo.svg0000755000312500031250000000463712651056012020636 0ustar eacbforgeacbforg plugins/jetpack/images/screenshots/0000755000312500031250000000000012651056012020061 5ustar eacbforgeacbforgplugins/jetpack/images/screenshots/comments.jpg0000644000312500031250000003753312651056012022423 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý•Tz¹€DºÑ{À °ÃDH|ÕÔ_rì"hߢگ^©P,!î‹?Ô ÐzЇa¢&ºýõðzü}Œkiu:·L®ŸIw_mªƒ£æúíV ; '_¼€ÃDIÀC°Ñpì4Dœ; 'ÃDIÀC°Ñpì4Dœ; 'ÃDIÀC°óQì(àqœóʺ¨\ºoUó¿/£$âˆåÖ©\-ä¿’™¡#Îø“«!ÕóR¢l“£¡çcÊè9{xu”½ï«9àrtïvðý§ ö_ËÇú…'À<î:8&-»šl×ô´œG“ˆàq/>.¥EÈx±ÌœGªà:=ü¯ig?`ÎCÛ™8UóÿªÈù7cgaòûT…©º·SýLŸçluJ¾êž4úî–‹Dȱ´ì¬²»Ù™8UÂýÎ:»;or¿¤ç'Öî•î̬ür*?Â/|#(û2³ñȨüx½ðŒ£ìÊÏÇ"£ñáü"÷Â2³+?ŠÇ‡ð‹ßÊ>̬ür*?Â/|#(û2³ñȨüx½ðŒ£ìÊÏÇ"£ñáü"÷Â2³"Gî¢ð­8G펒­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤«IV’­%ZJ´•i*ÒU¤ªuç8¼dÞÉý¿…¿·×Ãþó'hÅå+y ‡ÃµLÐMåÞ.Ò‹J7ì5Z²;þp«ó…TrÎ{CÓú›þcþ¦uS³ÿWú¿·Òó»Q°íèáS³S3Sµ2—1áK/ô%cY\œ§J†/6CÓÃÈýU:VaS1”…ºCÊVϸÌ-ÇÁd²9V%?Så²¶q9¯Çå½S*WçDÍ_³›§n¦#Ô§µ–:Æ*ôÚÞ2Àý-ê sý³¹c/V[2߬!«Ï[5ùK¸‘«êŒÅK õT¢øÑ— ‘{Ôru=A‘˜èß³„ÉdrlýåËåjçã)Y“KþíÆZé#n¯£óE·!âêú‹+c0À õ-ËxÜa©ú~ý‹Ã³ ƒË”%z$Ìf`@cäOQ^…IÁð—îY³v–@™œ¥,Î^2Ään“'c’6T˜ìžx¬_P[Ç=Áf)e3ÍÕÆäòw9sD“bs93] <†>VçU¥{õòåf)^¨½PÁ²êè8²Cu€ÔãWXÚ¯z$ˆêa~ê’èÆÀÎÖ Sú2ôw-·²OPÙº[~o}_Ûèqí°Ô›‰«AªúvâU1­_ÓðÄ6?–Åa±4Û‰FôæGfͪ+·P×êzdÀKE±õÈ&Ézh¶{ÃZæòº[Xü§¦šìCÐôéÁ~¥£Óôô+òøÆ` _*,ÜŽÙ²¤ÈQ—¦Ø NX°`þÉãæZ¾š˜¹kï¥kY±–2ÇR ,X1ð©é¢ ’¹qTZ€J6·éóžQ`F?³À½:QHêútuKDõòøYÜʃ'[鿣1XêML×JÆôóHo ¿§÷Bâ¯éö„#"Ö¤ÀÉܺ²>›{wíZŽ'Z·»{Óá·<ŒçsYÕÈYÈzz¾NÏ©+^µÅFݲXxâãbȨàªÃ³úþ£¯¸ '¹ä´*d?ºíJYhzv¾ <—©ÿÂ`¦Ùšîfa»¶ ó±ê‹í/üz@‡…âE•“Oï7Õý¿|“4¢ñ•œ^Àè…\S. Eš1hÇ%V7i´¿Ò«ý*±X£v]KÒ­åþÁúd£#¥«}ÿWöþþßÂßÛélÚ+È«ó ¿0Ëó ¿0Êž¡9‰¨R#ï"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-ä[È·‘o"ÞE¼‹yò-äS³8ÅäÿWöúe¿Ç—éÆ9ÆÅ-ÌOØ7u‚ø’W¾,ÐÿµEá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeá—†^xeu¿ð̛پ¯íôË*ÿ…VQ•aÊìÍåÈìä“Çñ$¯|Y¡j€„\ŽIÊ|†DºÕ?%’üY>`åšÇÆÿ˜Ê£dÌ ×,µœýŠäˆLá稬ÈRÁ6Ns-[)óÖb•󥵤5jڴ²ôßûB<ñFb–FkW§sæ%ë§…C´ò¦€¬žš&“'˱ý fVê±d™j)+færA¡´e‘¡œŸÚG w§#ØG"W¯6hÑ­±oÚ6Ö©¬ÃV šwÿôÏ‘ƒ_´"}–ò‰Â?¶­Ëm0 Ý+ÇŒD!Èö¡b©O{á™7³}_Ûé–ÿT!̤aÃUê‹í{€è‰Y+™ÄLÄ’½ñf…ýŠX‚5ƒ” ‰‹‚üE{‘ŒJ\ nC‚¬jňË"dŽó¹‰ìðÈáA²ôÿ ÄS›aÀÐQq"•j£Œ°¢ð)EðòÕ¬þ›ÔŹ+”CkWÞ [ À$¡ˆ„d&iPª’¼¿'ŒžqÅ´a/¶…HTãlj€ªØæàÚÂkQM‹ò9@³ƒLRŠÇ*ÒoÃ?sñ-öøƒã1‹õðĦãc}çl<|3¶6"(ç?ĉ£²4'Ù^øfMìßWöúe¿Ç•zxMÿpïôÏ ¥Uа_J÷Äš…ªíë×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×YuÖ]u—]e×Y[² Õ,bÞßWöúN1œ~ÙŽxÒqiÇí˜á·ˆoз)B´åŠÃ·•¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl-6› M…¦ÂÓai°´ØZl#ÂÀÃ9¦öú¿·è^ø³BþÕS!VÍ»5NЭ‰È­‹®Ðs}lœUÂæ?ÒÍÚµ¤ð4$Ó‹J?·ÞøfMìßWöý ßh_Ø¢µ«ù:a³\øª‘–""¹v½" EG®0‘¤W±<Û¿åñÌìKÄRµ!Û°úkØÒ¹Ö¯H¡Ì6%rV2ÇnÞ *Õù¥—h‹Ó/'ÀÓy~ß{á™7³}_Ûô/|Y¡jŒc?l«×õÊ g÷ÇXþßµiíÊí1ÚÒóÖ=z“„.=OV…p= ´^-F.ïCóöX¤Ö "À!€Gû}ï†dÞÍõoг „c;,ÞËKe¥²ÊÙil´¶Z[--––ËKe•²ÒÙil´¶Z[--––ËKe¥²ÒÙil´¶Z[,­––ËKe¥²ÒÙil´¶Z[--––ËKe¥²ÊÙil´¶Z[--––ËKe¥²ÒÙil´¶Z[--––ËKe¥²ÒÙil´¶Z[--––ËKe¥²ÒÙil´Ò@ÌìoÐwfo/¸+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·n ܸ+pVà­Á[‚·nûÛô/|I¨WÅs s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s [£T®ÍìßWöý ßh_Ú–¹ e§„2Ò)1ºìç«=+«W7@îÑMš¨aHrí, ¨½lÅ "þí{á™7³}_Ûô/|Y¡bŸÿ½uY¾ázŒo™¦b‚eœ/ý‰=ðð@¯ój ±t‚ؼ-‡ýÚ÷Ã2ofúÿÿÄG ‘’!1"AQa“¡Ñá2Rq±#` 03BPbÁ$@S¢²ÒCrâUpÂðÿÚ ?SŬ)âÖñk xµ…š8u& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2L& “Iƒ$Á’`É0d˜2M =Ï€®¡ø#à>Ï€® ŽÚ¼FßæqTm{iÏ9ÆK_uÓ~êX˰—Úûº~JަÖ$Ég›q *fÍxĘ‹ðî*I°§{œ]¼_¢ËÓŽþ”ì%ÜhF8"Ù–»±c'ú&ÀÈ¢p.{]rü<7t,ªç3ÕaÃ8÷ÿ-– ¦ÛÖÅt@‰ÔΈõÜ•KDÜbœ —•¸¬?~ë³òÙ6'>˜$ÖãÔ­‹NóÔU¶[Æíû÷ªj!„卑ÉoË­[Äa±ì²¦¢6;ª.püºÓc؆s ÷âíìQÁŒŸ¾çÙü3à>Ï€®¡úlkÚx‡ „,øà>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>Ï€®¡ø#à>ΑeU(äªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUËáäªåðòUrøy*¹|<•\¾J®_%W/‡’«—ÃÉUJAÜFïÂøÉ ä”w‡Jü8»@›vÙåÑ?Òß’ ƒ¼˜_k:É6UK~à©aïÏü;[ŽàÉ‹}¯Ô:½”Âxb–ÆÚU$}ñÿŠ¥ahã†kŸöþ‘±;訹|Ô9s§s䨗q½ñZÈËCXK6¥ÛÁëžëšã †bâÇâÂýÝ]!S0QœDæâ÷.¼uðTtñQE,µâB^ç5Ö½­ÁRFÚJBè1˜¶RálNh}¦š:CWQ³2/…›ººOZŒ>ŠNK}OÙ̘\wË÷oÝÅ7“žfòt©2ˆë·}sÿ±¥—`%/.!äñ)”ŒÅŽôõtGà{]c~ÕÚŠ'–Ï)kG9Û…ºOôM¤§’® »[6F/l;¸›ß%xš_TÙ˜×âi,gˆé “ “+flqÊL¬6cœ-kÅHÑ-E[éê@qûŒ.Á|ËsQˆálÒ6" ñ±†Ø¼ äècäÚé[E²“+1{Žpµ·ö*:x¨¡šHCö„½Îiµín ’ᨦ¢›c&9pÉ+·bÀ8n¿JÚÉ‹ÿP>6ÞR0nñœ%E'&š“;_¾Â%¸Zýºkg4î‘Õ³Jó̼ŽÂÖõŸ›EdºzÉöq¶ÝdªwÔWO$t§fÒÛó¯mãr‚8jij ݉§p7‘T{ZºŽSšÛ$Çíîq=ÝrT åå{XLßpXÐ ’ö¿M¬¹:#ÊW2ñm~ì— ‡[‚§†*ŠG2æ—1íp¸"ûÔ1ÔÞ¦zH¶¤YïnîÂ×'µSCLQ¶f¾—FönàÜ(ßRñ54PCŽÃÛ`;ÕBh)~Ó¦¹² áün7² ¥‹í0¾VÉ ÅÖÃnnñÇzˆ¹Ñrd“´6Üá»ÍPSÁ(Béa1J\æXg\u… PÏsvFüB×Ý¿åþöã“´Ðn*`è&ÿ¯¿¦÷ëP5±=¡ŒâxôïíÜ¿bÓŠ>ÀK´æºÏ÷…(l¬Þ¸9ÉÉæïÜÔÒ×;ýŽöu(ƒ¡`!®6÷÷t|Ѕɳ°kM÷oí?¤m¥·ù© ¢ž!2-ŠÊ­îû,Cî{ÛC{þJbàÊm†Óþ½”î~Ή”–Ãká>ò{¦4ïýÛÉà©j ƒ”žæG ¼×²#ÇwîÝÄ›.V–¹´M"† Ë\Zî#Þ6\±,””íiàØ´uî'§Š”ÉŽy&¹¶'^˕椤¯v9ásúH=Ûx\¨ú'TFÖN6"LXEƒ…ý×YrDmm#¨åÄÐ÷JÇ[§ Üq\©µû,o‰‘2™±³ …º:UlßqBú;´aw8ƒˆƒ¹rÛ&†#gìíŒx—‘ïË•ßDù`lñ`Nýý;Õsé&¥ƒìøŸ”HËßœM÷ÝWORúC)s¤å2 \«4ÜI(– c[Ýý *™yF0ÛûÇùä¹ÑEïnÞ¹Zi¹>ŠQ-=1Œ-î‡?¤)“i<“\‹[½—+ÏIKZý¥D,`¹wNñmìª]fò‰®ÞËaõ\­PÎMûGÚ>ÊÖØÞø°ãã†ý ©ÑÔR¾LO¾î.,püøªÑMQF.|Q„›î¿Ú«¤›ì•Î Ø.ü`î9© þÕQ¶"ÖÃÍÞ ºHj›ZúÈf w‘Ò,¹fí6ÊdûIŒØ‹løa°UÒMRk[Y4Å€mÝÁ¶èR¡Ûow#ú®Q– »£•¡±‹Ç3šð~] ¹Õµs1±ãÙ†5¬¿2ª¥c«ŒsŒ/ŒsHëSËÊõRÒìÆ6÷³šûîŸÊ2ÃKJøñÕÓˆwºÛ€ýã»{”å›J'Ò[ Fø”ÄÿgÆX~í ü¸*·UÈ &W06û÷ ®à -tn'÷obËFhZj0æJÇ÷|l41Ï Ç—?ƒ|w£‰¸[wÅk’~Xœr]lÿxUÌ€}ÝÍLÉŸÐØÝtìNsœN‡{âœáÌœ8·^ã}“žóÖç\þƒ¸‚¦ ßg+Kƒ~D|T @MÌq4´;çrOЏœXmã¢Æê¸w?ù*áÜÿ䪶˜/`n‹uŸeu›Ð W?UÊE‡­±ÿÙW]½ EcõÿáÆâÃÑuOþ¿EOþ¿EOþ¿EOþ¿DÌu­{¡{t*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦~ ©Ÿ¨*gê ™ú‚¦}‡pý.Ϩö8±‡€Jyu¿tû?Ìþv}}–ýúÚ?‡gÀK³ê=œ0‹-Áp$Ù™ýìúû9zâ*ˆk…‡4nÞà¡¥ŠŸ“ØÓ‚@KˆÃ|;ŠeÚRºxÀqhiÜâ~|Q¥ªnÀJ l{ïmç!|qÿ°&:`ÙÙLȱXpÞ~j–˼­3qìo^åFÙiéÚ ÜçØïÜ-)Qïq$pLpÅDù° 9»»Q}£|Eòî·I=J‘©yv d³@7RɈrƒ¢{ î0žËüSËa¥ƒdß~AUm„°šŒ!×ÙÛ‹2·Š‰°Å+‹¹’_v¹ÊÅO5C0‘':×骙¢d14ãÞ÷b·äQHøËyѼ˜ìzNëîQBãµÙãd˜£â$ €„`Ü»~&žÐU4m§’c!÷u÷ﵸnQBD×Ù´IÎÛ±nÝu3ìÆywïofwÉE ˆ„ÊÝœ—µ¿uÛ¸¨[ì\}ݪŽjcÇå<Û[ŽîÕ ;/yMÄ‚w4~…L×68ƒž_%8^Á+©›#<˜oê¢?³Ç€ý4l/‰ÒG÷÷x´¦à3Ò¾L@ïi ¾ìÔ `ž3³s_r±L3TJØÃv’>é$¨¶N2˜ÐëµÀ‹‡ðÒìú„.ãÁH^NCä¤s/Ô†ÿªÿ3úÙõör\i6Žc-Ìv*‰žk#ͯîá¿ùwu þ|йF®W˜ön'»pz»œ]9ÀôXY)ß+*æ‘|c¡TÔS™@l¢3lji˜éc±ˆ?šò몉à“ìí†Q…œ,¥—îéÝáÀô©¥ôÂÑÊÛbUuMž2NÛ8ߊ.}8©5¾Go¿@ÿ}Œñ†M„ïæ›Œ÷…ÍÙºüÞ‘kò²¬¨”A}›kkuoUudGì#ÂöN~¼É{ïi½÷*ê§JH"K†Ýƒr«œLé6†Q`Iµ¸ZÖ²{žç¼½îu·ŸÉ=öŠ]¨í7'úª©Ý_³ˆ‘…¿Ôþk›RN0zPìÞUeL­Ù˜ÛˆŽhËyù®Y9ßÝã1·´nòUU‡³¶ç žÍÜUeDx£ɆÜð7Ç䪦ñÄ"ÆÛs›Ûp±<ìð··ŸÍTMPDf6íæƒÇ‡ÕVTH¢`u¹­"ÝJ¦y¶M-ˆ<ŽgšžfHÌ8-vØY=ò1²ä‘ç{Ÿkÿî¥ðÒìú„7û£Ú9Ì> üÏègÕJÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3TÍS5LÕ3T ’ÓoÒhp=40u È”Jè)hìƒ _æª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚©~AT¿ ª_U/È*—äKò ¥ùRü‚¨4_€ýggרÿ¾§6‘¤+ás7‹oÇô‡ƒÚOè<1ƒ‰>Ùƒ\´#ùzÑ»H¸?Ä>úÎϯ±·©¥­uÚ?êÇ…¸™ýB¾Î¦®g´>m”gy<óýØáÔs"™ØpÙ¤²Ôù¶°òŠ7]ÍfÔ7Êʦš:ñW†î™û_zØ0pµ—º®÷îUõNÃ!t¸CG@¿GÍW¹”f¡Í32[žî5]3ág(5»Bÿúvú*§:6>-™Ü:ìªçþèAŽ&×ÃÔ«6€Óâßí\Ó{‡7ä«_W¡~'=ø¬¸ìÿˆ|õŸ_c@¹¹°â ˆ²÷ÂX,¡®ë Q²×Åktõ¨cÚüxw拚èdcš£f†Û”QàøpîCøÜ×`¢ŽÇˆÃÅ4î$*&76×M‡´·m€x¡f1¸Gñ€þ²×=j(»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(bï=1wžŠ»ÏE ]碆.óÑCyè¡‹¼ôPÅÞz(¢…¯Óõ„Ú¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=AK ¥PRǨ)cÔ±ê Xõ,z‚–=CõŸTÆä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1¹&7$Æä˜Ü“’crLnIÉ1· =¬ìúû#ÕÑÕxÙmÎ7æø,9átó“ûÌ¢í«at±mbsD€t‹ñ GÆLf@dÌhâA‘8ÝÍiP`F“PsQj–¯9gXÖRYçM ¢Âè‡ }F7ª¡Ëç9–ýö´ø…â½ÁkHÃÒyqç.¢U|*E_¨ê$íî°¸¤0åq¾!áçLüµPäqªòJt…Ø5™WŸYGÞqd¬é¸O¹èÖ c„ lâj€¬®ŒbÍD‡ÀÄ„?&@¾ôáZÞR‚³ÎZ3E‚éY‡ }K¼  —Ìz²…‰)Ä€_Wr®ÌAaX¹áê]g>¾;ñw h±Ôÿ[Èi>‘8ÝÍi<ÑÛ¢ìÍ€÷ ÚqÇ£ûcÛŠª±ª`eîbñLjËU«¡p`´Ê@+6Yke˜ÇÆ"ðx(¬Çî%ÀΩŸ‹™J8³T\4÷9…ËýY§á¨q0Öq  dÍEÁNfpÒ“ ¦¶,@­q˜L–ü«:ŒppX°ø‚»¥'èð-V'á5>f˜ÀTKq@V5Løx¡_¢2ÐÈYTJÙŒBs¬Ìaw5¨hºô˜ \UâÌi†qU™Æ@ÈøK03ص¹gþ³Ò}"qº3šÓõädOá„Ø¡ûÒ}"qº3šÓöG!¤úDãtg5§ìŽCIô‰ÆèÎkOÙ†“éќ֟²9 'Ò'£9­?drO¤N7FsZ~Èä4ŸHœnŒæ´ý‘Èi>‘8ÝÍiû#Ò}"qº3šÓöG!¤úDH:¯d  ?âu2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]Lº™u2êeÔË©—S.¦]L†ñØÌPP4&gÇì¼ÏϱýJte7^YŽ_¢Ç‹üWë§G_ÂVâ¯Ía~?ñ P  Õ•§Vºü,ý€|,¥zµ×ägì óP`¸…ˆäŒµÁª¿Œb ~(ym>QŠX—ø¹·Äjž 0ñlH´ÍY^Γ` Ð@µâÏÑ™ñøDÈDiã(áÍ ÅÄ4Ò˜ Œ¸r ˆŒirº"°>DÂ]bëœùP1°¥íe‰ÆU\xÀ¸ÚiÛÀÀyXWY:G‹¢Ahs 8õ4(²±aÏY¡éòš!æì„…@(A(·Ê-5/’¾XNd-·aU°*Ï Ê@—Z5iÄ`ÐÃdfxÅljün½0!Å«RëJOˆtïÍG'`®FU¦2vº…¢Q…ed“ÌJ’ UŠË%úóÁO±õBý¾IK=®â¡Í›ìë"0X¬²6“¿Iò~nÈ´l±BŠf.™šMŒÅÐAÀ¤¿—©m $i±0à!l4¤„±XäV7„•÷¢û¼ 6¶ Òm‹rºu‹e¬ Ò$ · » !jôFT@(À0p`Ýú•®ÁعaK1‡o…ÐàˆÀ½†ˆ«LSÏ!x1üV(Odo‘«°àÊÖa÷ÄÏÈ‘bê©¿Dã—œ``Ìäø‚ÌÌ7žŒÏó2óMÍJÜ lÑ@6Œ!ˆ-hº-à^iFäÊz¾úG™™É]?ÜÄVTeÛÈ©†®œhàñ. ÓŒ‰_WÍdJ'˘˜Ã bRgNp/´`Ði¿~+&?¨U€ßÇ¿ÃWyê+ôAŠîÆê½Ü7X‹´Tĵÿóôf|~ †^ÕþàaEZc_°Pk%n,pty˜Ò)ÏUãuqÚ‚°˜¯7O¹UüÍ<@.8ÐBFâgavÒÌþbñG àbµ/·‰PðíÐ`ÑZ>qœ¼Þ.¯Ì925ìhÐjcIqï—Œ±*,±E ¢}¸¯ÌEîMHnîµ.\èl7‹«”‰uŠ€î)‹¡õQÑ]æ¬[ËoPÅEq..<jê`ea-b_˜W/´Ñ`ŠÓ'Œ*!)öª `¶Ã¤Vf5¦Ç;÷2‰¨ã¢Ó¤q/ÔI)ýÈšTÀn˹K-ô £UÕy‡2ÔËãx½T&bü…Ä¢,¦Üb‰³cªjÑUm†¸ ö“Ôx—$P@±Ì „„+X…Æ”ä4TG’D ,K̬¾æQs4qöayƘX§ ÀžÕø,h*¢ÖÝtâºò¨U¹Uæ— óþ bÈl¼·Êùæai$œk>A Žz‡8õÁ†]ö–)aXûú? c`˜`Ëû çL72®°¸ò³ÇÖÿFgÇûÁ‚È#˜’ÆàXʇ=(2(Œ„O)ºå@È0\€2P¡Z€5ç—ÿª/ÿT_ <¶«+f ø¥b9Xx7ýFï%(+L$|ÇW_×èÌøý—™ñû/3ãñ¡cÁv†ÌöeìËÙ—³"ø¡¼a ’`qm­àşši¦ši¦ši¦ši¦ši¦ši¦ši¦ši¦ºi¦ši¦ši¦ši¦ši¦ši¦ši l;^b¿œÏÇÓülVâL qÈ–±k´ôž}B}ô8Þ‰À•/A=ôÐOBz è' ž„ôÐOBz è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è' ž‚z è'¡="€ÿ„úç3ãñôænѼ„ñ†QZ¾ €óCÕá>úoI“#'‡‡Ï/2ÃÁÄ‹½bfñ‡˜2-rTÝ"aÈdáÇ´²Õ¬9„ñŒj ¡QyBçùèb@ijæåÑ”â`âÁ~åäÊÞà(r¼b ¤6q½ÅKÛn?Nf6Úñ¶-<Þ‘=Óyúu! "d5'ßCé2"7Ò`)kóão€ªZc•\³î‚d}ᚪc@BÙ‹æT x¤b¿ƒÌ¢W© &Nw¹CÀÌQ¬,†öC å‰z^8Å à©JÔ<ÐËÈéXgõ,ÍåªFÊDõiù/Žlªô@7¢Œ «·Ïþ¤, S0)^¦6…ÄŸdŒ¥…™t¨Ðp9­Ë·Fêñ1`.¾)6µx§/‰É¦bÐL[±¿1¼>ù[‘Iï8H4 ½[@ Œ^ÒøÕà ±GÆ¥5`•`- ¯âà—zVO•€šƒõy ƒ1€E´Î’£3¢Ä¸gƒ(5á@ЭB…­­Â=÷‘P•P´`·õ)pVܾ’ߨl©M‹bT¥'^áˆ2 ¼)8'Ð?9Ÿ§5k‹_§—iƒn¶ ýÔûè}þà'ùœ†rÈg!œ†rÈg!œ†rÈg!œ†rÈg!œ†sÈg!œ†rÈg!œ†rÈg!œ†rÈg!œ†rÈg!œÆrÈg!œ†rÈg!œ†rÈg!œ†rÈg!œ†rÈg!œ†rÌg!œ†Kxµ2>ÎgÇáF`‚ÆXinš^¸KèËèÄ„ÍbðÅ®M¡ëø·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²ÝYn¬·V[«-Õ–êËueº²Ý_Ñ™ñþaTÊÁp¿“í9>Ó“í9>Ó“í9>Ó“í9>Ó’í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9.Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó’í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í9>Ó“í¬­ñ2>?9ŸàãzL˜ŒÔËSÜmšœE¯à³ô¦•Ë~„Òá’-£í† ™?‡¥š*¦‘ù@pGÿaÄi>ùÌøÿÒdMU‰yî¾÷¥V0|ˆ3OPUž¸@‚¸‹K΢lêªk+ÜV©Tg ‘N¥Sw.0ð“;\u¢­ÔÆ.Ìc\t/&¾¥ÜWfìÍÕ…øa÷MôT=ÞYËîì&ìKäµ®1dUÖ  À,\ßü™Ý D˜—ãZñqYZ\PPú¯öF“èœÏðq½&LY§rµug•ÖEõª«ž¬d¬ëL&;ºšmx5¼n.°påáqºR"ÄÁ1‹Ý¬?ÀÈC5PN¼á[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[μá[οèÌøÿr¯þ¢ÿVtÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tÙÓgM6tØe 4Ÿ@üæ|ƒé2e¢2ÁI~]çâ\ƒgp{¦ðÊÇFyÀ1š^Å$Ë1ÃÄ><µ†B `¹©—WlfÁ±J+åppÎxßPX³'Çû~#IôÎgÇø8Þ“" ñn´¯öxÃ|Óºî8È!âÉFâJ€n²p_Ü`+)y®’ì ×T5RéPi‡Â%b,)dC†•‹‡û~#IôÏÿÄ3 !ð1AQaá 02@P`±Ñ#ÁBpq‘¡ÿÚ?ô‘ýüküsÌB‡$A6„í+DÈPá>'t.‹gPg{Qîäg+©üIÿy*cysC ÙòŒ«ÇóÉ_í /$.ý–[îøª_i¸‰¡wü¡,Õ=ßxsY…˜½ˆc{ù!,ï]Œ ÎcŽJ5[3ˆ§´BDã4ÓÐÞçá+’úêàƒ~éqò¼·ç¹Õ*‘“ “´¸Î.¢‡ðû¥t¨»|ºjU–»÷øðê,ä§I£I£DEeÙO=RGÚ£_0B«)êÊ÷|ê—«¥åDi;Úï4D©ã¿ÿÄ1!ð1Aaá0@PQq‘¡ "`€±ÁñÿÚ?üN|FÃqLˆØ‚m*6*(Ž’f;÷µÕ)Ï ÍtÌñù „ÙÒôÜømzòZߊíÍhµ½•ÿ+[¿ñ¿Dí‘Ù¸¸œ¯nhß·>§ œAÒGô3öXy‡É¹"ÄX×b˜&%åªs0ì °óçºÄè‰úîÃkÄœ!µ‚M 6 c8šfÇ5µ ÌÍt,ðîìÔé>7~½—I­d…Pª:©R\'Y¡NÎ(…;ËY}ᬮ¨Vü©•èíßÿÙplugins/jetpack/images/screenshots/carousel.jpg0000644000312500031250000012226212651056012022405 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂÏä"ÿÄÿÚøË¼4¹`–óLL—ÔÙØÎ’˜ ´ËI¶¾·Ÿ-ÔFƒ ¦i(VÒ•Þ¦M„ž·U",f½Ô³µ3§<–áAg‚¤×°N”¤«Š_•OX\¸k´–²áQEbó·VKëÛ_Y·Ëø˜PÇ·ßê,2{VybÛ÷ReÉWóŒüs€46*Z"W¥«iùH`÷K4¹¬^qž©Ùs®}yw-犺èðê©sÕ—!ÙúmmÕοDÆɲ‘äè/lžÈÙz´yU‘­Øß{‘~;À€;¨±V—#D»¼ÄÒ+苸¬FR:vD˯EÙZLŸ5uí3_MA¦Œä‡åný§J¾Ï“Eæ¹.ZXØ8˜ÞcSõ{}¥¤²–‘‘çGÇ^~kI5­«uT©oaó  úJuV“ë“­ýQems=Æ’Åes?GÙ’mý×Ó'Sç¢Td³¬Î¶›bÔ«o6󿦛*³·Ú)# <ûmü{€5MYWѽ£™=œ>x_J˜Œ3}8•¿>Ói£¹Ò^Íu¾3QšÌÐQEzl·ºjé¼¢†, ÚØ¼ê®-=ž^?ÏãIr GßNL1ǸÇÇø M?±«mutVÒYÃÐ+èª?¡k½è=&dý~“E«½š¤¦-&S+AGD»Jõ¾sC%¨U´´ôÔÉ¿ô Ì—äös"Tí=1¸Rã¬5òf ØJBkÞ×g®ÔœU½‡%™hWE½%ÙZÃUyaѺüîG%EFĉÚOAÚ'?1MWÕÓÒäññ´ßUî¨pXL¶Ý§-a¨Å¹§¥·‡?ÌÙ_1-u­-ËÑr Ýæáw½ï]—%Çm´ºÝ†žîbÆjs™,… 3Õ]è¥JÒhí#æ(í'°ž´Ï$BùKz é·ydà·Ùê„GŠÝŽßÓ<ËIÇzÇÒV<ÝmšR §ï<(‘j³õ’iëÖ8ÛZ;Þ'œ‘£ÑÚGÌÓÛKa¡´6¨Ÿ,aC’l²fê÷Ë,wÞ·1|×I×|ã̧ý¤Ý}‹ß=ú&r4ý5Îùž¥ bª‰ˆp*suh=COòK7ûÄ2‰Z=£9Ê»Y 4Óm¡ ù[o×týJüêê-Æn#`ýu’ÉjékSéø_C»wAa¶Æf¥_üßëÿAi„œ˜´T™X¸kßR‘ãÔVÖ/œn,k ^Šáš Û9HbzÃGʸPs3[BÛžgFú¡ÇsêDç#ê±h•ìúü÷½œ,ï$ÎûÄO©IïŠ œÏœãÛÛÌê[‡ Ï¡koÑEYe-1 ñÆ”pÀºU“Îw bË褯wïï@Ÿ$Uò56 E–ùŸVûë.§í‡£¤ORDMmt©c¬Òå<÷"ÛLC}ì½;tÕv2Û )säÜ0¼”ÿ x¹UkL(@ý˲qkmn¦ ÷¥s75˜®?WËÏP­¬WyÕ÷'i¤o­3–+ü«Á‰CíÞ“¨åUdÙˆ‹ †Òã_(á@H’6;™iºõ@dß½6ŠP®ZÕÞT¥áÞ'§x”0¥±Å´ÔJ//Ëù[o‚Ûqظ÷SÖv)2X†Ädޝä èrEœÅØÀ{µpûÇXÏZ»Å:êÒ9Þ!JêSjâO¤De,¦$ïÕù÷†ÁCMOößY×*yr¢Àe¤©î|ƒ‚7’Ö¾«*®LЏ ýˬCq–÷TãÝïzï8“®=Î Jë„1; ÂÌùÿ”´–äû?°l;X‹ 6†’ëŸ!`€ Ĺ²¼%[꫆ïÛ{’ÏyǺqK_x… w­§¼IÁ|Šë õˆ¬Db»—ÈâÓǽ{Ùö%Qi"xÃ|Kÿ á@ å’Ϋ#'^¯ŠçÚ[\aoº·®$Rú¥ˆLU(CŠ8ˆÍv+âÇ¨Âæu>!ªõmÙr¡VÒáUõ‘ûònôy|ö34ºèÀ ú/×§õ2ú®¸·ÔŠÖ§?"@¾(ëm4uî󑢈$™¿;‹s”LJ¨û†Ñ5„ZµÆˆßÊXpÑÙ˜ënùÝ£.½KÙzÿ¦©Ëµ=×R‘F©RlžO`»!=ZúÊ›X×H0áÂÊä£YPâNz_¸í;TÝ…¤Z¤§Ekäü@è½}Ô¹ŒÌ‰´À FËÙô/­çORtÒžïxØEê:ÔfY‹5e>k1˺\79é>á³][6qkx–ù¯å¼Pè“‹“éO¾‰Q·ú!ô.T—Q×z·: àÑÞ´úPˆíÄb+sùŠÉ7éérdº‡äí Ùª¬öog¬W:-ŒþZ¥6×VJ†6ËQê³ù*tÌÐùÞ<_¬z­õLk Ù)Ø ÆùSzÅ­<Ç0¶šsÓv²åIyç•k½õˆ^Y’ÁHõÛD!·£ÑPCo“d¸ÝKëf¢ÔÐeê]“yæ9S¾¡µ›“Òì´—k‡-ED”ñ`¢Ês‡pëìf"´ný+@쇒H]ç¯ú& ƒÄú?¦¹Ç{QR«gé**©ó±½wf˜”Ùš µ£G晞›‹ZúQô=ËÑ£¢+ Öüµ=gG9çrå3&š¼¹ÐzvêÙ©jDy·'eƒ)絾˶ë|¤Ì¹èªòŒu=-\¿gÞ"¾—+I]!û¿8¡J¯\€Ï§zŽáæPÜH܉óNDßL꺟3§zàtà“ªœ'ÀWNztàs€8:C  gNðp°¥Mhãñg.­Sà¡bgÁåmõ;e[ÅO¯°«ÛCé5 ÔÐï*³Ô`8 ú—A+/`Ó½În<£Géx|†ÞÓÏw™Œç h³uX¿Y²¢Émlê°ÿ9€léÁÖĨ!À:®ŒÊunŽÈ…aœïxw–Uï&C²®â@¶y@ …ÐtE ms "–”ÐÚ¯5YÀ‡€M#±œï{€3äýnÃ+8zN’;ò —ÿÄÿÚcªó'WV¹8ø±:/¬÷Û(³J±‚Ù%S, Ëîz6õç–‚Λh•ÖÙÙÖ¦dn½hÖRš¤]-1rÀü צêãóU,Ñf^2–ÆîÑ—ŸÔu)!;$‹ª L‚òßTʸÙ)g=·ŠæUfý2ö%2‚××%,%Œ 1Æ«žFUÝ®}ëLõ\ÍÑ£n†&TMöX].Z&Á‹S„sq*Ìv†Q*Ì3S«VÊå¬-}2-½âl l‘D`À¡ŽÔÅÑu¬;£lˆk©]½˜(-@è†h…ó¸|ØÒø^~|zæç«ºŠ‹%1S¡Ú›f¨ºV­‹4Éòj¦n{t6àçaÍØ÷¾f_¦azk­ûm&…YÄ|›‹‡o×_™Á³šœsÞêymÝŸ¢³ªØnZW7I€Ù(»‹µ˜GÈócåß]o*„Âs‘Ù÷—N«5Ù¨)¶´ì±DZ/i¸c´x?‘PÊMPwC§è=Aª×u ]™6Û"Ò -pÂÉ<·Çúý®Zðy¸]½ž®¯U“¥y½ ¤Þm¶ÂÑ6d—#Âöœéñ:º|üÿ9ñ˜¾£_[èµtÙ6¼Ò,^vØR¯ZÑšˆüØ®}´û-“Ïsµü×=–Û°oSë}¶] ™¾Ù(©”1#óG4ŠÖ¤V³%‹KØÞßÔ½3m¡23d”Tˆüቔª¢±j¬&G1ºßÛú¿BØÅÞ,3\‹I1iyò]J¬R Ò×&·uõkîzÿcl§A6Ù%A¤>wóä"ŠÙñÖô–Pf»ëÝêº~§^hSf m’ˆ´ª/¨3|ƒÎ­ëH‰¥­i¾[ºžšþ«^hS-¬Q@™sÃ7•óDQ\|)gªÌ×£WwÑ/ÖkËT¶Ñ&ÛTÂÇ89^uj­û¹xg{Ýtº8ü¾²¿fì´ÎûÄßUŠ,Vè ~'΢i×ö¼ ?=ͯ辔ÎÂoôÝ*z× ÄËÉmv(¹‡€HDÄ„Ö` "f²OÿÄÿÚ‘a]×Ñ„ÑÜèL®»îÏL‚5ä…ð¦‰Î9Ò‚C‹ˆn¿'=kô}K sèÑ‘iºŒØy·^òÕ)×KžHƒm!¾Ü4­ƒ¡l2æºØË¢êçàÁmóÇMŽ0X„e$5jŽöúU‹4î¶ÍtåçÆ›:x9µXâ²Ä"äàÀ阫%·Ñ]m9r«´ËfJ;vñ9Õ] Dcˆ™ H:xêöw4_ ùi»dywZSN—ЦSŒˆb 4~Ž—Bõ y­Ù“5¶£ RÑM~-R9BqnÝ»ui’*«\ø‹TéçYl\Qӳą¬CS wu!³©u8á[”î§™Ò¶®¨„|Ò”AÅ’Sqo¨×çyY.v¸IWÀxéuZŸK?(+Dš”¡'uð­N¨H™v­’år$B¬óŒ´B€ÇÍ΄xtwÍÆ,rs²Íº9-UF¨MF8“±” TÈßèuîÛ>6ääYƒÓà á6¢¢NÁT€}¼`¾ÏÏàõ½œæùÙI¦ùá‚…Ø$¢Ni׸w©zlšû<>6~n–Xî?>ª\&&–8’±Äc÷01C˜Ô´r8yë¶28“›)ˆÇî/˜Ð1$Ú$‰ÆŸ5ŠFqa‘'`R“»½¦š$Da(ß櫾6VÙ‘'0ª,CèdÁ1äœs׿²\§[aŠ$­J¨¶öÛdšb’ciWœóX1DœÅJl(çlºnË}eÎb«,¼¾[ÕÕ&¢JÄó±‡3ÏÅ×§9ý»yƒÀò¡f¯Yì#EÈS¥ÝTXâNAHÀÓÒ× iòü~_нìù,ÕLµzŸi õ/']ËL ÉS €€$6$À€(±¨Î,hh?ÿÄ( 0@`pÿÚÿΰçïÿæÄ«ÐY[}2 8æa§—~˜~ø§qnÇ7 #„gçƒóoþhïÍ_ùÓô´AчG$t¯ø±Ó`‹þpÆÿ3ùËþdñØtË´»´ÓðÎź“iljn ü{üxé÷`߉’›jGŒnø'p’bÝS££ Vm ãúŽ¿ ìx qí e(†Ôly¸QQ¶“!d`ß+‹œJ•B±í¢Úí„0lõ2=Hž\^KžûFR[ð, >ãmX³4²L÷ÆjºßR©T¬c!l^§RÖC H(ÃCQGõI8¸ö­ÄNcc¢ûLï¨QUc«a9ö%t¼ù9Ï5†=´EujÞC1™Hd/s#Þ÷:ÓA51œ ×쎭ª×Óœ w@˜âþ3µà·„mL†PbŽ¥j5èAJ*šÙ¿UïÅØ ÏdæH¡õ chÁ&y,ÍÙÙ̹TmH@£M;Èf3L…åæG=Î}‡ ‚…¬g5ÍÅׂ­ÚÙ¨žj„Âí5BºÔ™!VÃÙo‚:…X¨ÁF½(j²»b×ãê¹â .ºø˜KDl®Æ‹þ T¡© Èë³O/g0ö–*ª‚¦¡L ò•Ó:wJç—™T®{ß#ˆðfìQN[`ᆽø3ñLЂŒÀýg–¬ºËÈ SSC hê2œub¯1ÇÇoоâs|8r……ŽŽœo6¤±÷†…f2D÷X’ôÏ““H,1º«±æšŒ±ÁÅÒºgNdOOS‹É%UpáÂUdWcÔ1Øg†*qCeø¤¬êí­_Y•«T†´p¶ÂØÀ¿CûˆD8ÈÚÏuš’ÜË4…L>°W‰ÂC3®KjD °Æê‡j˜Ë]Ï“ÌÆRððõ2= ‚Õ°‰•18ª_I¹Æ[‚H:jUÇÔqëØEb¿šÌq¤ÊqÕl ˆG²ØãúÜO ’X©†&ÊaPU’­¸þBÀFÖʦ6ä¹4‡ËKª;k9‚ó)rsdlªeaHŠ ¨(Ô":øˆñUñ´ê±“,»² – Ç3_7E zÒ=+5 FÕš¿\1˜öñ°99~ƒ÷•l$°Xú•²«VÆDVké«O´©n[³Ìï–˜ÕC0½’1ñ œ¤o6VÎ&VTˆ¦¦ 0´1øöV0´1Æk·r6ätqÅ !"mMMWEd‹¹Y|’Ö˜¼"Šx>?Cû`„r² ŽF30Ê-âÖçþš´ø•Y’ý‹;éª5UcÌOÑ(€ð{%m:°%ðÄÐÑF, jìÚ݇ßvVÆjÞN[bÄVb¶Ë¾ßµ ­SËÕÃ&Þ}Ö]¹m÷(JÒ“Æí(¢Bûˆ°©çVç×Ïú®Y-uÂT×ï˜,V¤•N~·+v´B+ŠÂ´ua§_6uzQÖŽFÆF‚¤R‰™$&·«êо¼ëÁ$l¥ïصâe§qpÔÉÜWæ¤Í»'-ïbärFd†Hd‚ÔEünCYÏA¦[¶nWºÛ6.Ù»«¾é«0C+ P1ÜÉHÛW'ìŸïr˜1Ô Ä b‡21ÖŠBØÃÖ ¶-s_á5ý~ŽŽŽˆ Šy%p ÊCN,,¼Ž_5g2ì¼…Ö\ŠÍ›&Ãn:çô“9_íbòÚÄܳ—t’XÈO8–,†C/˜“ê% a9rkÓ–à¹I÷OCŠÃâ«Ñ}&Ôm?XWé"75Áìp¬cc1˜ÌF“OWWScÚS)!=óI‡c¬j,†Jã˜ljÙt_~E×}¯`Ê齆Œ+3ñ[9‡2í«}þÔòsÊ;ê£l3§w*¨9è¸)”ŸMZ{Ì|E:1Ö’¿A†f‡Ë-ëÉǑ㽠ªÒF#`oÎ :úúø8Lž‰q{¤|ÏÄ\½wPO|dd>;3eë«¥¥hèºZ:==i…øm',…ÖYužþM™êÁú¯n;R¹j&"æ ŠµõÑUÙUµ¢‡„âñxÈù'ÎYªèŸÍÒcíbßY4I;îI!qp(§)”{dl¦Wòe›ºˆµƒ‹xuˆ™ Qb¡Ç²…9[3ªÁÑkªñµ‘úƾÁ¡Ó¨ÌrNç"XÒ"N-|…ÿP­Ð9¼^ËPOUôçÄ3 ÜGò’ÜUÕ€\‰ßÖánâI%HÙ(²&:[ðëßÌÔ3Ï\Võ½fUeVVÆAN:­‰=[2šªºÔØ,6‰Š:LQAú úb€K˜#¦a‰1…ÒTj—é‡FêKZª]e&¶‡YQ½Ä‡Ækz¦¯ª*úÞ¯ªØÐIø(€KœâKŒŽsß+¦u‡LtâÊ_ÁCŸ|5ß_Öõ}VÕmf×§F× R+fEQŸS‹ÿ¢}Ô…µ$¬Cw`8ºù›œ¦!iI¬RþíLí³6ÕGã}ÁÉ<·åËŸ>EÎy{žé+¥tòO-©l¹ó-=gPÓÄÔÖö"gWWWWSY×]µD ªUi=T”ïp(IúÞ=Œs”Œb1ÕïÎ蜞~BÑçòäêêÛšŽ …|–Õ$ïÈÁ—.EܹóçË‘qsœç¹Ï{žçLùž^!ÀÜ´1Us²ÄÖ7ˆ•ÃÀQ:TÇÌ~´#¦Ãäã«„Éáq ¾?7YØœ\³-Ó‘…ù!¼ùå’þ'!©ïi½Cﯯ¨ÀúÖ+òrrÎl’c~¬ì§¢Q(”ÊY@X§S¢ EƒâU×ßuœN*…°/gËFÆIõ¢ìþV® Ãeò’T«Zô Ž–BÅ%aVPMR(ã–¦B¤‡ÿÐÝÒ:¶–|x> ³XæÒ4‹Ÿ >ž›LÚ«¥£®ì¾¥Ëj(]c¹rä^ù µdª`1©ÔÉʱNAäå×ßp*ͳ" '†5­Ÿê%Äæt}=_N>—òðøÜ¦Ga)Fe5&<Ä5#«S,5*_¢& t½¢Ô|l‡ä¢.ã«â3mHà ‘Ì'ö}—[}¹-¾Þ:Õ9+”êTT> zrj+bÝy÷ šðŠjè5€›þ¡Z FKÁáÈ‹dŽÐqqª±Óê ­1¿Ó‡1‹ÊæmYÃXÀc4åÉ<8qà¤Õd¨cbisc«o{KO£3XãoÛ6bK±ŠŸú¦%2˜ ÉéÈ'\˜uïÝX› ®c£zå)ik®;æ%¢™Ö# âc â[b Â\xÑBÎ;üwø²ió¥áÓY, ´Ím-ŒÁC-¹‹Ã¹óìædÌœ=ÎeÝ©Í{xmf<ô2?Ÿa•ò9ø‡áMB¥R‡ÀO È ‚׿tVë©ìkvK q–_¨V‡|ïö"®\·½õÑsùóìåËŸ`xw.\·åÏ~\ùîÏ~[òåË—-Üé$.ÝËw¾Gò‰ò˨ñW`D”V<àDœ¤!3ĉÈùg‚ïÐ>ê&Ž&Iƒ+¿Q-w+uÈAo¾à£ã}÷iß}ùnNåÀ’·‘ÌNðSÑD94Ùtòfª;ÁEUXPQ') i¾%Nð|nÂGèꨅl OkJj¶>bZ0îã¾é„&ü¸[ø>6OÊÜ'-Ñ[äJq)ÅÄ:Ñœ™54Ì+Oœz‰H¤1(ÑR£áËg&';^ýÑ{yi½áÒr²~cZ:M÷ @ÄjåÈxÙ¾Ýà¢àî\‰.ðSÏ) %[}Ùžûtç‹dŧÎ9D¥R(Tki‘ðPR"w׿tVû¹FíâŠt[Ê&XgËV–Êи_ØÉVû‚‚é®3 Ë-‘¤"åä‡5mÇo9îK‘NNR>ü³Qú­»lÕ§Ö5F¤R(”D)“¼«`ußÝ5=€wˆT¤63µÑõJm5¼ËX‚[ ·Ýâx`«êGG™Tnä NM äç=Ï!Îw)d{îOuÓ¨Ô#V Š ±ª5"‘1Bš¦Nøpx']}Ó±±nƒ.ˆZè­ýÒ‹6=ÑÀÈÐ-@-Ã‡Ž anÉ95$„Q.p§¢NtŽ&WÙ}Éàb±¨ °+£R)T%ªdïÁ/O:ãî`ðõ¼R9FuÇ}Se‹:K9ZBy1Í->6ß—-Ç€¶dw`‘Ò€Š.sœKœé$æó1¶l•k-RQMXŒQ§©0–™“¼29kº(WŽväØ?U§²±õp›Æšàþ|ûùóï¸p;¢‹zÞ«³Ë”ɯq{œˆ”Nm:É 'Rn²’ÅXÕÈC¡,R¢Šw‰ R-k÷I°ðP/6DU¦ýDìN:Ž* ЧÀñ¿'HlÅu¶†^Á/hyx–Iƒ„½¡û• ,>z”ØVœäõ¤5ñÀ –WÈ]5HŠ>8½==koº_R=6BA±÷PéæÄñ3eììláÑ*õ§ÄË^VZov1̓×õý~Ž™mÓä˜nb<¬W!•¯sÝ/7$S«ׇ6ÓZÁÛ¦,©/}‹Lš#]F¤läôZ[­þè„ßÃÚbkš¬ýÆì6I™VäÛ’nD_…öä¯Ää);)Fä6Ûní)÷ÝË}äSÇ5Ž8öÓdaíµ%¹ò ÉV° Ý#¥u•d4lÃMj³á«ø¬Ë—!JZÊrr!ôKηû¤·ð<>@ù"™0J~á’¼¸Ê1Æÿ7ùÞˆ¢Úõ$Ó¹1g,-7 ɃÈÁ!Tïöˆ]1šÄÖ¤»%ùò³ä້‘ˆ‰ æÌ–‰¤u?©JlËnñO¨è]‹œI(—™Vµû¥ó¸ue4ɦÿÝZXümLmglâ`ÍÚ$s̵îA–³‘šÝù¯¾ì6dd=ï|ß·u×›yÙ ½¹ïMr[sY|Ô¥ÂXrK¶nÙµfqb)„Ñͨ$åÈ:+̶+K‹¹Vüâ¾ëþÿ¼ëþû¯¯½¬õNNÞÞÎÎÏ÷oË—.\¹råË—.\¹rÝoËŸ.\·ß—-þ·åË}ÿß¾ü¹råË–ûïÿéÝ}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}ež:úúúúúúúúúúúúúúÜßüd?ðZÿpãñ³cø†E ºœ-Q›G …xpãZ—Ùñ܆ãÇóøð‚‡CþÈVi‰v2|NW‡­ªñ0â³u>­¹§ª1ù—ÕÚ‡ó£G+¨µa“Q_Íj ÿIµjîGUëùâ»”ÌC)—üÆî™ž]MZäZŸ/sóìŒy;9œ®¡ÒRXÔ;vòZÇ+ÿd>vؽ·Ý¯÷ïË‘8íB_¾SP-÷Š[·Èßä]¿ àIå¾G ¹r'ÛÝ™DÿÙŽ\¹råË—.\¹rä­¿Óõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=OSÔõ=GÔñ Æ4Cutæâ„RA=|›~-¡Íúc‹ kn<89ý†O»LEw«açÏ—-1Vj>†>Ž££Ë—)ÏÔUÿÿÄS !1AQ "aq‘’#2Rbá&0Br“²$3@CDST‚¡±ÁÑ%4Ecst`ÂðñPUdp¢âÿÚ?ÿ˶x*–¹ñšZ~@4[a™¿¥–óÿÇþ\'aNk†'ôx«]:Apö€Œ/ÂâWËž\Ðq#ëok§Éú@>¥#¿Nß ‘߬³ÂT‡õ¸üHßÖãðöþ°Ï Oý»<)ãôíîNý«{“‡éÜœM¹F÷)%ýaƒøT²~·þ¦ëðý™ÿ*wÄ`û'•9ÿ‰Sý“¿ÊŸÿ¹Óý“¿ÊœÄéþÉßåNßøŒdïò¦oüB³wùSסû3þT£õè¾Ìÿ•/ï±xùR×#ð ýn?R~÷€©ëqø |¬°ÿ Noé[ÜûF÷'~Õ½Éßµorí[ÜŸûV÷'þÕ½ÉÒ:ܻԤýឤ’ÿF?€©C­åQøJ”mªÂSÁ·.Ãõ'Ò·¹9¿oIfųV_)p®yøJ fžÑÉ:×)Îm••÷«®’ËV\Û¬ùùê.DîWܺ—%¦jÂßtsú,¶Eq–ÔEƒ¶]bvz*Ä…ˆÝ·MlgºŠ.‡ã}èXÆí‰—¤†Ûe–'süÓu\…a®ÃV|Þ’Ù«f¬¾S¢³ùŸ Dµ8ZŠ:òÔ:DÕ#ý9Ý=‡ ÅŽ¼ùä”NåÔº•·.¥ƒá=cxýÁÏ"ßì«íÞh æš÷aÚžËeem[ê@–!rm ÄÖÚüpº7<ð ¢^€°áÏóMìXœ¶d¬5Ø.¾wIlÕ³å¯Ì¿;¯eÑØº'%g¬õô–IºF· ïs)ã¥-ÛØ:Öˆ¦–ú6”ï ÃÊ›ûܞɟgœÿšÖá#SV5“~M§çq\œŽgŸ8”NåÔº—R[áuwk>ãyíeuÍð®R õ…ÆÁrr5ýë-xÑ,ÉÃfÀ¯ˆºá€n8•†ˆeߨ(ðôbÑ}Eȶ\ÿ4Õ‰ÊÍØ­¯"®vó³[?5Ë™r³aغ%Ó6 Ç^z¹*‰#6騢 óqÖ}¢‘ÒÂÉÏ; ùªz]p2|æ…ŽG;‰Õ}wWܺ—Rr5 +ûY÷ÏvÛºÈFܶ94ôG…½<³M}.ÐdMoRkp:ÁÛun&¿öÛb2Ó5®èŒÈëA„0|Í3^3³zéý\òøØU†Åa®ÃUÏ;¤Å—ÊgÎÍeÍ.xD4d¬ÕÑ+7,õ扶Iñö× ái:ü4qÕrnvÃþU]6“ž–³£,G ¢v#’zëlDnD”x+n]_!ñ¿µŸq¼òbgb$†”[6ˈµ¯ˆ\"üÀTÍ`aqųbo(â̲¶H2•£¸¾À¹GÞÈ›X_©ìŲçÞŠ[kU‚¶«-ªäóúKbËŸsÍÏž²œw'¸ìNq„#hÉX,,+ŠÍ9?‚y#%³%–ÅÉé(´ƒtê2Ån•ú{A¶ÕÔº•‡¢³Ø€;Gb¶±Îøá_ÚϸÞ}¡e¶Ù?iG,úŠ$ßh(ZÛ °¶hœÚ3ßtí÷Ø=#³eÓ$~ìjh>Šk7 É Œ•ˆìWÜ;ZÑ’Á¹Õ rÃP瞉¾Ûÿ5ñÉ[Œµ€gv¯Â•þA-#bw$^×5÷½­´nÚ‚Í (!t0ü—Ç þÖ}ÆóÇ#. ¸XrÞ™rÛÅ‚ÝáX°ñ@ ç?¦\È4œw¾ÀŒÑbiÎûÔÑ9ØÛfîÔ<¯!nˆçt‚ÿE¤?òƬ•–Õsò%³™–¬¾W4fx¸É1ŒÐ6 €SÓšÆNhMà›tA M¾j‚‡TK ¤y6÷or†g—ƒRØö˜Û&Ÿ©OC¦é詬Èj'Pî‘9qÜ…C ÍUÇÉ|q¯ígÜo<6\|À±Œ çÁZׄytëXîV-èÖšhdqˆy64j ñÑô;¤úý ¬¬ Ú®V!ÓVì¾W””&±ƒ$@ÆoLÓõ–NX¤±¨ 7¦ñMjiP¾Ôéä›K­™²žHnÖ:ã=‰ü“‰‰ø» u/ Ygc£kf½¤&ÛjWZP&×WWÖFܵ_]—Ç þÖ}ÆóɤcmóVÓ]Ø7·®žy£êêBñ|î?ª £„{UëGÐîí_è_ô‚ Yˆ«Ÿ‘é,µ\êËåùI‡Ь!iÏ5$²!ÞT‡zyÞŠ!ˆDoN¾Ôò=%4ó6(ZçÈí ¦Ñ+0H\I ²:p#{ÛÒ¶[UcŽrMüÕXyª™3>‹åY |¤S05 tÚGõR;z“EJä¬M ãU†]üÿf¿õý¬ûçù¦Á6Ý« H9¹"Ç -„em@Ñ^Ù‡/0Ï¢5þ8>€çt‡j ø?EÿD-¹¬D«Ÿ’ék¹Õ—7-[y÷+ ~µf«5Ì@(¹u#Áuk(„B7Ym\¾˜.ÄZØã7#mÎCû«E‡ÊrÜK3RaÂÝ0ÁÔc÷ª°â? Ãkm»‚ªÄÔZáÕ#Ñ¡†A(&Ø®º¾åfì[ìˆvÄ[eÑL¢äXY‰ó›7;X(ds™'šx94›âBƒ|S_,Ûªq¶P©@Îfª3pÙšáÕ¹Q·#;BŽ…U²ÄðöÛô=¾OöB%øS³Û Šp!»nˆÊÚ‡“6—w䬯öküp}ÎÌ,:•·ÙW'5sòy«}ysrÕ·^zóW±XE±¾åapC‚Å“@Y«f´Ž’2Š–I}°,Áü[àÊ,2yÉžo#í•úºlggj Üweu}§a]'CQŒ „]4sÅ›^.º—Gbó›ÈúÙÝyd¢ž­øf·%mƒe“\êj¦²ÀÈ=ÿØSrEÑråé› oNmyåàX;,ÅÓe´Ž†ÙeØ{®!ô|ظXzÎqÜoýÖ ìq¸ßb1iژȴŒ¿„sÀ‰¿D"vmVœS År ìsRoÏWâíú_ÙÀH¶Z™±ªõ€ûŸmöÏÉæ³G%±l[\ý«=Fû¸'pNsö-™.¥’èlY¡eŸ6z’[O å>ÈZN¨b–X©›ÀôŠÑøª­ª“Ž4•¡ xtZ9’})Ž3üÔlsak@Ý`2 0‹b¶}HôÅ­¶Æê&ÓÇyºrœ!ªš3Uж¶˜´JMò.ܨêgä©ë¡¨6$òi®…å힊–‚|TÕlnô¢=&ý”ž'Dxí ‘Ã)˜¡Åé7½bx ÏyìOކ)â““{™ìÿT rD\øÚ_mÄ“—r;@³•Ž@ÿ5$dI¸¶æ¤ü1&[…¬Â~gÜPå˜2, h\TŒ’HÛ HnÜäsRHìXm &²nRð´wÙ38ò#‚s~Vm»~èçÞ(úÚº6ÇšˆDÑ2·Áš$e±LÀ„j>Néd~¥xšsoVi)²¹Ž ±LÞ¦ÏüR/¢³ùœw'ÈðVܬ­ò8Ý9Î]K© ©‘’êY"BÊÅY¼Ç9Ø@¹+–´µ-.ÿ–6}k a¸7Y]¶kšû¨„Nhy2 ©£ `ÖŽ—¨b•ÏÊÍÞw§\ŸmÔƒ*hátnv6zVɧoöPÕQiŠÐÖKÕÑÙ’\ÑØB­–±ÏªeZÖØrá]<ý›n ”H ÊÈ;£Ãzf—Ô£Ù­¹±Cðë¶++‹—Jùâ«”yèDß©hù%}Ø$7±q6pخ瞾õkâØšÓÂÙÝ0 ’píLòÖf-ŸôM:68°·ò¥Ùõ0§Ið‰“ ™h±ál“<ަ9 ƒ‹›žvËmº–xºxXÆ “F uïÒuÕ¼Ö>–Þöˆâ~ ñ£\ŸIÓæ8”'§å ˜;§—oþÊþ!«å.Ä/o¢9àÓµ®5Gw§5åˆô]}»V=è«m!0’–y&KÂv(ˆÉǹ5ÀÈ [nhcÈ[Ÿæ[ÙªîFKd®=쮥ԺbrØ€A“ê]\ËdÉ_›ÊÍ}Íþ©°Á‹ze‘ùåÄÿ%|8]clË ¾n;Áu“ex ÀØotÖ¾ö,¬*ùÙý9î4Ñe–‹£ nY£ƒNÿÉpb Ð' fÀqÞŸÉem««$Ü ´¬ÔE°…Òç]õ2mE)o¥)„ú ŒØÄ6+ ˆY…в+ªûÐâ;P$f±+Ío’ihèZÃyÞ#è¢÷:ÙíØ¤fÖÙqD c½ ñرú2wµ>cùfáL—9k_ü,ÿ+Eþ’Z—ÿÐ/ƒ±íÑâ_ú¯s¿ªÐPt¢ÑL\Ù²O|­k3qvKIQÝŒ§†£;›än«pòoÐ’5û.É1_¤q>F0_l®µ””ícëÂdýiÒÈ^E¯¸n¢œŠ(£p¬زYk¹È¦Ta,`-i!ÝÉ”UuqEÑÄàü¸ßÉ;+ßrwWzžö %NݬpRzã=Ø“¸‹v§ä1bêį)<ð"eø'b fœo—E9€p*ûv¦[2£¾-ˆr2EÊvx– ®KçYô‚ø¢¿í›òßbqܹM­M1U{(z¨4äÔXJߘh‘Ï®’ý ¢ú\ULnžx[Ñià Ç×½~§aŠŸ¤ë°µÁÆûõÈÁMv´m,.‘Ùä/b¼³KÊæ€›o]¶•q±u.¥Ôº—RêV¶Kf¼–k5šš–iZ q8›´Ç©E§Ñ<‹ù<"[mÎû8uªJf/1Ô8šÛÚ¡cC[ meš³g…Gû6xB€gÈÇà 7~Š?P4eWúðÇH€ÙÃyþm£r,›5Ê7€Rbkwu'1d°äâ¯ÄýHšy;lv?ê*VÓòÍhÃÀm²ÌŒúòC\ë=§­2@èêy˜eˆDxó ðZ2ì¢yevxÌÀâz‘ŠAÊhz˜âw¡!p!Þ¨¡}¦Ñµ;_”Ø;3ÎëF<¸HÈð“ŽÙG¤ŽŽ¦)€Û…ÛÕt à‡8&ðC‚o°üÀj_údbù™ »×!¬É¾SŸGnÛ;ùf§¡”ìaªa~ó±oÕþñ芷ÈóŽ8…È;\UÊËbê]K©u.¥Ô­nfK5ž¡·z·2Ú³Í /Ž5ý¬ûç±Ô‘â;Z+3c‡2x©©ÝÉÉßÅ™@…e‡bl”Ï~ôéÎ9›¾Î+?'…ÝzDo+3جëm˘Q~ ¦m+™ñòD†tÁêÜGZ«£žZ†¾39“Äܰû>×WZR<™<óœXæF6»¨p⪫ϔVÈã†ÖiØvÛnÒNŒ«åÚ|ܧÎÇkö•OI$uÔJ ¶¶Íu6ÿáà¿F)4‘k*Ûó­‡ Çó1òVD«ê§!˜šK¡”ã†Õ”>3™‹T_?ç»ë\{„3¸S±ÄÓ›¶ÜgÞžÊ YÊI×ÃUÇ0sòY•ž¬¹™ê¾­Êÿ +ûY÷Ï>MvÌ"ÈÆàæ±2º’ã'B³,{sB¶Äî¥qÑ:³Nš;îO…4 Š!g–Ü—¤…®®yÙª84d5¯&9[~S»xÍRFÌ-–)„¿¶j™ÌtÕ»—sº-`hãÖª)ch©Š`Ì=M ?ÿŽ*ZæÈ)ásþmÃ7vÿeä±¶ª6R?ʳ#õî¶kGi8F)<žPÛ òí˱c#EéiÛË9œ}1¸kóÜõd›I¤•tU$4í;н#]ÊtšÂǰ¤fr1Q¶N‹Ÿ!7ô¯³j5f¥äÞÏÁ~̵eÏÏ^K-Y¬µgÎÉYöWø[]ÚϸÞ}©!úQ§–ÿ0úAr±òñæà7o Áb؈p!ÆáGärG€‹µJÚ§9ä–»6[wRÁêBCm€&‰,Ñ»Ÿ]¤æ¥¡¢Œ 0€,ëd>qà´5 ‡—M6‘“kºX# Ž“G ¡¢m#óÁ‹éô4œÂ½)d&×v›u£ô\ô¯ ÎK†V mi€L¤˜²š£ÄóÓÜ;rúЭ½Ôpý‰FWr®oE»:Ê|¯äšG&=#Ħ¢ºw(Ãlí’u+ñß#µ¼BŽjaTóº8É].wgÒ :úc/$Ñt‡Žë4Êh¹e‘­ŠñÚù¸ìÌ;hëN2†H$|É-s·zst‘”µ¸„M.·¬ç´nÿ+IG°C%2ÊáÑô˜çÝDzûÓgÐòÉlƒ‹rÅ¿1ÿ»ªº:^QÝ8ŸÑ—e¸ÝýHi ¡Q<ĵ—"!g¥nÏ«5N)pHë \dÑÁ½Š:H¤‘Ìéá '0o»wÕ±O&‚6ÛØ[-Ùn_‹@Gªá”l.*ycså-ÇDªm1#t•å\o¡¿ÝSU¶ÔumyàJž˜žV2È+W°q(ÁÚœÛ>‰ÐÔ±õ4ç`Ç›;.´Ml,–Øìî'aàUµ—Æ@R‡uÅ6Û\sLsrÚ¥s½,“„w7RÓHZöžÔét°Ãé67¹·ãktÚ9%|-k¥‘Â2çmÃm›VŠÐ´ÞFó-EAü¤0Û Ï2v(ë)EGJúx^ðç™\ ·eò!_™–¬×G^\Ë,µ|m®ígÜo>ôÛnŒ“IÃt)àE`Hî Ãä2([Wúk;œèðÝÜCP¾@ë§ÊÜï8ÞÕU¥þhPßÈÃM³uÎþµ¤k]q+®Ñ‘q½Ïf奩f28FüˆÈnú×Â&ig4ìh4d퀗pZUµµ2ºŠIŽ8:[k}]‹MÓÒMOä²5{d%»I IÖµÕM1?ñ7òbÇ>³À*¦ÔºZ(›è–lß²ûøžµ¥¢£š’Z:¦:VzmÌ7ÿõÖª§¬ÓÀàc¶o@q¶þÃÚ‹´,‡þ`V¤ƒ­©Ä„8.Na„Úä*(k¼–¦"÷³+Ùhª÷ Ê*³O3·Æïì¥òSl‘Ô{\UÜé)Hµýª)ô”\´$ í_éÑýjÖ]嬣}ÝÒ°9·ö‚£ MÂÁ“G²æÙ a54¨'í É4“&‰ØAè»°¯#dιx#¼˜zM.ÏYRË3å™Î|v'9ÛIY« €A ]k­u«‘š¸²×šË™Ÿ0jøÙ]ÚϸÞ}©£á„&½ÀYÊK]Î¹â¸æº*á0X’BƒZEÆJŸnÜf³$E±|-7^zùæÝãçYô‚‰¿ôP?»5RŸHª'6âOæ©ÁÉÊ.¥ö… ½¢àkZ¢…„°ö&6ÚzZ¢¬BdV¹ <,p#-ª„î2äÇS©ç/£šÊ²œòs—v…QñŒ‘oЍe($n*Óˆª!cƒÆõ $lF+   ñ#¨êZ79i(ë!yc\Ó ¾ìÍM%4|¨´–ÎÈ´Ù×+­{E{E;ÖNõÔ€+td8zÓ›ex¿Z¬ù•áifºØ1-*ºý&žå6õè‚Ñbmn*Œ½®–Ž7·x#jÑ2¸hؘ7Ø-SL-|oÂ¥íëAúmUÚ-öœ5ÃÖaºë]jû×^®µÒ«´-‹-y¬¾Bë%ñ²»µŸq¼öºŽ+šë°f€ æ‡’’ÀìA^×ÍZômÔ˜IòÛ{"Z\÷?±}7° ¹,S_«ç[Ú‰ø'£?íÚŠ)ÉÈ”äurͶj03³Ži…n}˜Ó½E|î©Þ6¨ü MÉô”ª£tâºÑ„ÿ·TJE§µSVò˜òàU'“˜¼çn,Õm"óf3é•EKTÉše»x»"šË”ç¿Ôþ ü¸'ðOàÃT¯alm$©Ä ŠªÄgeÔj;ŽŠÅ4qL&áî à“Ê•5ÿ*Q{$¨’ÍÛÒ²m=C0½ïl¬é:êÏpa²(ó:A]¡d9™¬–\ü–kãmwk>ãyÿ‰Ãô͘;Ïä…“Ð<7@ÄdËÍæ/¿#dYlN%ãeyÅ)ÃÁtö[çYô‚ø¡¢ÿí›ò!A aAÞ‚ ®‚†°…Õ¶"w®(ÁHày)ß»V•‡9‹Ù{ݨ™1Í-íÅYîeùÝ0º!dZóù,ׯÚîÖ}ÆóÏ’Cô*È‘šµEò‡emɾM‡4EËñ>Ç JŽßl;^Ìmm|À9" ˆ#çYô‚øŸ¢¿í›ùCXù ®U–ZòA;Šâ¸ ŧ–’VÓÄÆLZCJ’šwÁ3p½†Äsºk¢Ae¯?‘ÏU¾W¶}ÆóíIÐ =FËzàÀ ƒ»©0ïÉ\d,ëææëpÉ5ùÚý«Ï}\ï:ϤÅ ?üfëËó3¯=fúíÌÝÍ(ˆ«ö!ʽ¡¹(4ƒ9FZ:‘ó¸ö©ijÂÏo6Ò¬‚Ée¯=Ys†­Ëã}k>ãyÿŠEŸÌÇ}‡Sp——ôŽY #äÌÚv)â[fÝr™fš#°Ä0ä‡-—wojø§£?íÛÌé~}d\o«-FÚ³Ôn­r®Óšmtd·òìÙíu" "9–”,‚È.޼þBÊú¯ð¾¼õ³î7ž<–#š2Yä†ô× ‹-LÌ:öùÊц5¢ý{–B1_XEšÜ÷”\ëãé怖ͽ­•ùÞu½«â®Œÿ·n¼••óW+—ÈyqÍXkË›}A¸ºÑdù/>ʦ´ ³­ës- [Atuf³Õ’Ë›–®ŠøÛ]ÚϸÞ~*XDz›½ ÊçVyx-k ZMÇóLqØw„ËNì @¼aÙl¹Þq½©¿ø_G6ùˆÉy~i’w2üܵä­Ì¶jÈp•ç%OYEÈã½À§E+£x³šluôÂØ² ¢²YëÉe«-ykøÙ]ÚϸÞâpý¯%qªÒ~PeŸÓ½®w éZ>coÒâ°_¤Þ6N“Øm·ää°7ë8&Ç¢©"ÅèÆlÌÛªÁ,µy Ö&91ÛÐ;È„gÈ ó-®Úˆ•×9,òG PA€6ÞhgÇ^kÑ]º+.fZ³çñ®·µ¿psíE ý@™ €;J¾jèÞÃQå…¯lI±Ì×qºÌàv[ìrMác@âEÊkïcÖ€›.òÚxÀ9Ù8تèâY|…Â7‚–—1×É;z)È«„ÏU‚Í Y"½8f!Q¾{`4 ªè8 t‚o-L~q=}%±dD,¹™jÏ›š|k­ígÜöš(±Ÿ˜o>Öa¨“–¡§!Ô²I–Éã= ¢ÓlV=¹+·1ŸQG•épç¸ÄÇn²ä&ä¹xÅŽ Þ~zî­¬Žmù·Õd]VòA EqC®(X¢J¾@fˆzhu!ÅÒäÍÇׯ¤¶.ˆ]²æe¯-yj8—ÆšÞÖýÁϽ_@!¨,>ˆÍ;x(ÞùÁr… Œ‚âÀõ‚ƒ³h'¨µIű ×±oçÁ±e`ØU¦HäÙ"U•ÿ0¿0Ad±ìV×ež¼µuš‚º»ƒWãíoªËké±tBè…–¼ùöþ4Vv·îyò8¾€VÕžK¥{C`k‹S£¾Yßjér¹ðBür%âû‡>Ô·ÙN|™)ùfÈÐrRr E]X¡¯>fh y¶Ю³Eù"Õ—3%|µn²óYIY«ä¼ûU´ÎC# ?¾¾Y…YsræÛ™ñš³µ¿tsÿ‹èYg̰>†íè»6âËpN¶eßR#%ŒŸkŠ —7Ëžy6µÜ ­hè¬NN ÉÉÉÉܸ"в±Ca)®Snš›dÔÔÔ8¦ñMMÙuç/tÛmAoªèmÆ«êëW9"%ç‡+‰ó—"ÝZúaz*À,W+=Ysr×uñž³µ¿psÇ‘ÃôÎ蓨êšÝ‰·6µºh­5×8r¶mnÍèãÛnLÁL MMâ›dAÔÒ™&D'aÅh´ØY"ÉlJk÷¦œÓSSSSU‚s6)¸©Íruó8î)ïGy@«,삵å«%µgªÁY×WÓÓu5ŸÓ_L,‚µ•š€Þ±+YsrÕqr¬¾4Vö·îâ‘}««XN¾].Ä[³£‹r̋ⰾ³Ú-Átì7®˜ìçáx+@ºç!ë!ë.µÖº×ZëCŠÚ™ˆS_!2hËÚrÂHY+…øIBFs :± NÄ=T=TÖüÔÖ¦µ7Šzí@»jÆô.‚%dU—IgušÏ¾Ÿ©þº5ô‚ÃXw #Ú‹æÃuŠËf¬¹Ù®Ž¯­ûƒŸø¤_@!~k£ŠÝ«=¡Å·žqî²ô\6w§¿Š%÷? öœ”Îp*I˜ ºpNNNëOOº}”­;J–7 ¢&ó’j¡#VÔèfÄp¡#5…’²±²?E…ÝŽ“ú“jhÞš7®´Iڜ邻è ²Ø3­;’µšíëýz¯éº5ô‚ÂÀ²Ú­t]P®Ð²²ææ³YYd¾3Vv·îŽâpýÎi=']4MŒ¼ÔÃ-pÐ*,_î û@¨­þêŸí¢ýê´ ÷¨>Ð*XÝqUÚM„~;Oö¡R?õʵ þµÚJFU0øÂƒ;Mˆ&SÊ*Ë}%Læ U1×…DEü®Ÿí¢ýòŸíB£ýîŸí£·ûº´ —uTh¿ÜCöSþñŒ*hûŠº|NÌùÀ¨}]9¿¤Ž¥íŽ¢'7wL(jÏ‹öŒñ(ýv÷¦œ;Ð'hMå‡Hw¨p‹Ïþ0©°ÛÊaû@©¿y‡Æ0ýb/Pnž/Q8þV?QÛò¬ñ(ÏÏozöŒñ&m2³Ä¢!¾~;Ü|àší5VààA~Ûõ8„8„1 Âh˜ïMõÇzçô¹¸(€•ƒø•=¿ÜEã —÷˜~Ð*OÞ û@©?{ƒí¤ýê´ “÷¨>Ð*OÞ û@©y‡í¥ýæ´ —÷¨|aSn©‡Æ_ðŽ­Ípp%¹ƒìŽ{,C}½Gë·½GûFw¨ÿhÎõíÞ£ý£;þ_³¹®äz»‘êîG«¹®äz»‘êîG«¹®äz»‘êîGÙîû>Wr=]Úû;‘ö|!gÂö|!gÂêîG«¹vw#ìøB=]Ávw|êîG«¹vw.ÎïÌOWr=]Èõw#ÕÜWr=]Èõw.ÎåÙÜ»;¿ýžÿQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÊOQÝÉãæžío"á®?R“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwr“Ôwrs}&‘Ûÿ“|Ë~¿Ì2g×òÄìZsÊë)¼ËGOå3€öœ1ØW¾y±VRÒÒÔÔEÉÇVÒøIpé4_½UCGOVøˆ†£$ü¬ì&Çù£ì÷¢x}fÉòÈØÙbçÄ7©éj¥¥­lÑ<±íÆ ˆÛ±®õSLÈ;ÆÔD%¦ÓvÜ‹õl*ª:z·ÄD5¹'åga6?Íz»ÕMS©j˜Øåm‰o(Ó´\l< <[â§uw£ì÷£{eÞª*b¨’cm<|¬¤ÑmÀ¿yõÒ‰¿R«‚Šš¶XÃ`©/¿é` ;ú£ÕÞ´‹è|µ°bƒ“|˜Úöž‹âs¸ÍýÛ.ôîõwª¯ÁÞ^"&Ÿ•äyL­ŽØ­Ýš<[âžèû> ªg£ž®64ÃOƒ•w(ч°Êèõwª‘£Å$|œÊbÇ»#¸þ{æ[õªJ7Ct¬†šJˆÛ+ÜâЈ_1³-ëAÓh'i ˆf’µÑÓ±•¼»a³ó8…í¿úf´5KœÈªÖ%ŽÛÑI¾ÒoÔ´U݆£,<˜åo³ÑÏ~Î’‚“Fš¨§’N›@'É»rÞ-Ø¢­Ò”Ô“Ìè4‚3#Z†ûìHÈoêºÐ4 )iôNš>|.Ä Ù`ûç˜7Ùk…IäµSÇUÏÏ‘Òë¶Ë©AE[ÈÓÔrìÀ|²Ûß“>¿–³µÖ¡Ðú°TÂêʇAC¤"Æ!ÆÜG´=¾£ ®©ŠƒMSrt¤¤‰ÞU<¥<`—<½ÀÝ¥Î7kÑ¢¦ž#¥´c™ ô€¦ÃSlR9×À؆Œ€ë[T4Ÿe5tŸ…f0ÅTæËÓø®à-‹ÑŽË©¼‡àôTUt”°¾¢-‚vYÕYôp‚<å›a—£½P¶‘˜ô–Œÿ5‚½œ «Ë2ݸñç‹e³TøC‹HÑ?BÔSV ¦FYÎs¥ÃsÇÑ·Ôªð{á–¶Šj8ç¥ò:hÀ¥a“Ñsl y[¢x‹ø£ÎˆÒ4‘iN™’`2 ¥ßún´t³BÚm3¢Ç&kÅ!|±à‚wÂënm‹€vÅKQ¥¾ '[EQ^Ü-ÒU -‘€rÝò2qk/‰RVh[ISS|¸–E4¼ƒ˜p›p2¶WZ*’´@Ùèàkd¾“ŠJˆâi‚<8Øæ’öÛ.Žóõ“Ei ÌÔ-ÑökC¹R/µÖÈÊ‚ ÆØ¦œ4¤­Ãc,³YÙ”r¦u]8:wBÁðo (§¦1îcÁeÆ œ×ˆ¹ÎÊÎÎû ¥Ñ’×~¡:N J¸â/­ŠyîçÄcôZÀë±hê߇:HUÖÑê(d«Ø-ˈßé_ ëáÛ°Ù7ðT¬‹LPG_6‰–9±×Ã$†FÊÒÖ½à]ÏêÚ‰ÎÒ4—iÕ2J˜á´»±ç·Ùö¨ij>Á£+¨)4™pm Α­i`”ã¼ôA-Ãn¥6‘ДŒÓ:.X%¬¨ü&`cY î3cIÅžÂsZ´ñS»Lh×QDhŸMÊVDÐ{yLvå{â$œÓªtL¢=1A l´•  qÆ16hù&ø1aÔ4ÒhùôKôu^œwá)MX ŠòE¸}Åü£‡]–‰†ž®0ø°Ñ¹šJ”>ñ9>²ë·/d­ ìÐÚFš gÕÝ¢‰ü¬ÏÌ>á…nb×±Éh“i]&ü/ϵ spšqg[}¦Ìå–Ò,¢¡Ð55º‰Úq´øY#ªb¨–ÆfÛ6´4刷+€V’gÀy§ÑzJŠ‚­ú[§5DŒyOIÃeúDo­ÚبtE~¦‚Hk Ü•<£¹78ŸE»Ko–ahÏ&v¦†ª¶ÓŠúæ½q–ND9À[r¹ïØ¢u l:KGÅð›É°ÅS%dR?* g*G£¾Éõ?*)? hÚ©¤±JÚbÖ5àÂΓµÃ”Åw ÷?žù–ýz‡܇‡žXØËÝ»‹!õj¾ÔÞ¹³Ÿ“>¿ÌģŴΡ’Š“IUC›cd–}—ê²qÞŠÓNŽ*Jí#UQ ^‹$’âüzÏmõ(ßnÅ$OkØâ×4ݶÜUUmSꪪ$ši'=íD‚«4I©­©–¢Sµò;NâQ9]x¢6B'iNâQUºF§Ê+je¨–Àb‘×65)×¾#tUO‘ù,ÿ'å9NNýVµíÆÈÞ÷UŒ u jem3ŸÊ: ë4»‘â‰Ú=ó-úõ(ñGŠJOÆ&Ž91ÙÅÒZ2µ†ýë@`‘Ì«7³ð0¸ß;aîÏ·% |ûRÀâ|ËĤ–Óš¤mYò éÈ·½Çoÿ¼ù¹3ëù× ÛŸŠ[µeénÿål×w£É—ßfä}q×Ôë ðNØ Fù¼+8‹ÿõ>‹»ô×æÂ§©ÒŽ¢.Tr4ìÇl®¨dŽÉ´o"Ó3K¤lÆï„î³·-™ªJ]+‚ŽB3]ƒÎûÏõ]|ÍUK–CŠn^C¾Ï``蟬â¿RÐÂbÚM²°\Æòà1a8ØH7ì¶Å¡€KGÈÕYòI\K °g°>°¨¤Ñ´²?DÃ/âìs_Ê9®–KœM9æ,:¶mÍhÚ};©h[´²BIq»ìEïÃu¾³Ì¾|²·ÆÍ«ÿÄ+!1AQaq‘ð ¡±ÑñÁ0á@`pÿÚ?ˆ›?üá4 #ai+Ô#[ uCŒ?üâIb'D[c‘­^ÜAByöG0ûzŸ]!^¢¢'gšS„}_¹Å.³Š>`gìkìK÷?s÷÷fßÞLyz¢€XêŸöUU£Îd4ÀT¨ñü‘?!ÃÏ2#vØ óï6ß3¼~ù†|Ox¾K÷D·záÿ¼‹ý‰ýäþ†b¿½‰~̙տÜç}ãâáÓﯖà«òÜF(r?ÜæOTÞ?ª+ôeU®iýÇî ò>óçŸì+Îoýçî ·×/‡ôbz½Àž©Å¿ÜÇð=àÿc÷ ¿ºýË •ßKk³ýù“¡íG¨Oi¨F=ãM§rÿ߬lj:éLL9N¬DÔÉcM31'9J¨=R­EE† ‚ãÊ¥Xc0²dÍ¥F«w9™×vËß?XÍÚ ¤cÀ­u(!ä¹ÕNä¹qb=åÞd"a4âaCq+™£áR‹™æY]ÊÇÁ0$Bó¤EUøOF! ÖP\W¸í† Äkr”uÑBÌ,ÁjUá(•Êfc‰žÔ®j€¢ØÔΖ±,´¤¸Âÿ0ñlÄ5½>° ÂÈWÞ_4¬Nb‘b G1DX ¢À»r2€(KqkÔ–…äYk§u;¶e‚ÇΚt3Upõý´ˆ¨­Å!„+Â\Ë­sÏóà+‰hó•Æˆ `š£B`˜˜ñágeW*fȧ;—ÊT[L0ç0[QÌR–ÈD …Ì!¸©´ÜµLA–o5+rà+U™^Ætª{Ä).!XÄLI§Œ3x•*¸Ùiˆ„¶?Ì0I‰Œ¤ úËN‡ OöX-rh$vDE¨…„si:òÙXÂBô² jØÈË9}âæj@ý̵TpןH²Ç,WŽÙß׌ÌK,Å1P*—y™XϘwC d–¼6ˆHX˜#æòo˜Voï7JÝÌ»¹s^áà¥bX@cU/e>H´ŠûIdV®WbÊpi˜ø.£¸êüY¸ak}’VáqÁ‹´•°1VRzÄ •Ÿ¶¢ ªÈ"¬Áa¨Î¢=EIbN»ûe5ý°‚@ªŽ:TN>²ÖjÅâ`JÍq iRÄq~ÈjõÊX•9"7z·†¨0W0H޽ýàuPØÁû `V9|ëêÀvÏ×dˆádª`”‹*É!c0w¸ØÌ7p[ R: ŽVG ›&ư1ae Ÿ µrá¶y¡¸MJAAã`å¸,”5vÅÀK3e&¥À\Ë (tÔº0™`›•_ˆ-¢WÓ^rž"ß“”÷jüå‚Utí3Ct"V†%nÒÜþ® AZ€2@ȯ¬¦Ù1.†Yí+E‚†˜jÖ¾‘AXŽ´Ë òv‹ÂÑ’ÌTApsŸ^—ë3Z8õüJõjYÒÖcS{§7õÖL$\¡Ú8æU32¹›æe˜çOÄ t!Ñ¡T£˜uS ‹3~‘n`zǶbܹÌeÃ9˜lJ„ñÅâSƒ¸h£gäH)SŽ2È©vBa2K´ÉšîKa¬m8«r"#"¡©‘†^»GPÒPå ¢*•0êFjÄ3¤ÿÔ±TseGÏ“ÑÂ11€¸ðઈ ÍŽ›€¦4 )îõóƒËX¶v‰Y/ž_ý€Sb½¡ªúxÀÀ<„,¶e;DΗ˜„¿Ÿ å-Vf3s*ó1ÁÏ€&âtƒ ;ƒ(éc\É—01‚5  šK´\Ш8´su²1W¶  t[Ú;/ÚPZ(0#uûJB)Â!=³2ÇAºÝ“%þ07_Œ!E\!'ð€û%­J¸„‰”ÁuðôLß×ULU$¬µ.“‰VéN @fJŽ‹Ú"J:(‘lç€?PÅ2º<½¡1]¨,,5—t*mí0òų#ÎXãFÍÁõkó†×2¦ V°Ë™qèA|f¼Ä¦y–Å0ÃpºÎ³Ç TyBÄpnU-nfÐÁëf5&[^Q¡YP?d8ÓÚQšT ˜b¸4‰a„·",ûJSíJs º›l°5Y:ëfÝVr­Ì› ’ކ—˜“PËQS…ÆØ€ƒFjPÕDë0ËÄ´…¿øJň¥ %”%{i1PWu›(ŒÇ`á ëdFnY-²Å¢ƒUÁã$mÄÐû¿WÜÌÒÄe 0/™r:f1ð çÀsÂPåœÅcÀ.n¹©Ù”‰)rÁ–ͦ„1! c¤1²öJûßxpyHÌl®i(Ñ—XQÜÜ—ˆ í>º­¥1A…rqó„e„"¡hâæfQÓ’¥‘•ÔZ¾)+Hd{©(0A91—ö~¯·Lå˜Cl$TÌl“)´¬qñ½©‚PŒÁD¶–t¥KcŒÅ(g9«7œÌÓŒ7VVs¼KZÉx¦}‡!ˆm µš%œ»:öç¼Wߌ"E­Ç tŠ‹NÐAÉFT§,m»]A!ª®&€ýãŠP]ü–\MÒàÔ©D†X/2†ÐmF/<½%Öá¨9Ó(Æ]Gû7†Ëÿ‚"ZL*¹¾]æ -9€nîg¦/Ž’°˜8žIh…@y: ¼Úi9ŽþF_«íÁr¤2+Š–ÊÍÀ gV‰I0eÁ‚R51˜–ŒL1ìžYÚ•A¡Ž£#.³9ðgç)Š—mf—³9(Ö«3u¸ ÌgEWõ¼µ X–à²ãë¼#Á/{#ݧFØjÖô{:@¾b”£èJbú~´ï´yxvÒü—÷”‰ÃpÛ(e32ȬDPwPH*÷P•Þù`ì[?( Ëm”Ü}+Lá¿9INõ|Ê“h°Ò£¢2ß׬4/Ü~»/n\RŠÅõŽí§A°š¹ˆ©l•´8ÝÄqRPk¹¸à8?ˆŒ»qYð_«ï¢pù‰!Y_SÀ –Y1ž!ÌÇŠˆJƒ‰0A“ž¥PpÂÔ4X°Í’â,†Áá3 ˜Mâ\Þ«l×N(xÂ.ˆ˜n!Ö¢¹š¸rñ2´£&­\;[Ú¥q¨´ pý¼ÂÜͪ߄d‹66õ•;œ2]»ÁúQæ72´œ V8OX_B´·½™©Yeèº÷Õmhngnà³#“ŠhQ¥&zJŒMSJ8j,\F NÜÅO% jtmUÔ§€ƒ¡ÇlËÑ‘ã]8•AÁ~zñ/Ì"®hÏ{¸¥Ùåº1ý¾½ËIDl×EÄÍ÷ÍËCxOXñfƒJƒâ·a %½™†,8ê+AsV1±Ù3æÔ¨•C¿8n m6Æ#´JzqÁ´r[˜Qp¢-1+ ˆ˜ *tâTDe'J<1åsöÄgñ†æ”eaQP*c+²°Geíš³” ¶P¬AaäÜçËS¥6=ˆbc{TÀÉ Rñòåûi—cë&fL.¢–éÆ:È.º¾wm‚Ó>¬n¡÷\3œžû•u~ñ¿Be4ÙgÚ!‡HèÄ3Ò¢¡B xцÈ7Ým0âŠÏá…tÄ΃£"m€*Úò·¥Ç„;4Ñzµé¶ˆîJ8 óÄ9"0ÝhúBQ@sºwPÒôx7-ñ¶V¥Òž¨¢†ôqÎaët†Î<˜C»•¸ ÿ>µ¥ÐL²QCÞ×U¹@T`Ä´º3Cr”µ¬iq™²•( áø†ÕZQ Œ¨p_b.Ú‹\ýxŒ¼ÂÓK8æ7”ê„•V~Ñ(²xÿ0þ!Vk¨£‰OŠÄpÌ8…B$e¤¶ñ/ ®üDô{@èö?ñ1,ûB š¨uIJÖH,•ÂéR±‡§=#€W8ºí @ “~"Їb¦ E¦QÊÊ‘:ÄmS9 œyJ¦CAÝ æ5˜ƒ)–„£ŠÒŒž¬YYÈÍÑ^0œµŒ“WzfD”·º/DYƒŽìMLÝ YN`8Ê£ œ ëçÄJ,äÀó «?)(òèaòìœzCW5h²úÍjã3 QŠe\ÎhÄØ)n°iÏ^%册†s®¿¹e5Ù|¼ÂÎ"uÔR±O¬jú¥TIJtf°Ü1˜·"¶Œ›¸,›•ºÊ30·.˜ÖÑPU)}—¤/‡.Ñ&K£ëqzBQÛWí‡Hö‰üÅ¿ÖPŸæ*\ƒÇÀ˜D4Nœ4> Fˆ+‰™ê5Gb&£7ˆwX×SËɘ¨@ÄhÉ\KÔ®ÒPc¤ÆÆ¾[z«kyaãjãÍ™²¯Xí4£8]{J臰Œ°Ì›¾ïxЊ®± ÝZÀ6¸/rþšqë:ÛÖy·¯´PäLg¬µVåæ»5ÏH„ ZD-ÍæèXiãàJ]·Òœ%kÛ··Ò+nØÅ"‹œ¡}èñ )Tš4›{Ô¦¼€ê|ëݼîî$ŒQVWû)Ø×E%6@Ík7)KgÚ8`É`r„C’¥³õܪO½R¥(Ý9"SkP:D–¦Ð· !¨Õ¤PT¡êê=«w(©K¾‘às°ƒ¦¢]šÇÖãÈ7ꋉí+?³(ú#·¯”½_„ ~<£œdc,o2öçQÆ"ôŒñ/9•ñsµ2jY é;Qìˆ8”é6Ô0L}ÞÅ‚Qy„¨—«?Šö‰Â÷šsz ÍÔ΂àë9äÏÕb‚ÄÙQ€Ý"Ò›K“I_Ž!@í9*f÷*ÞŽycœW7œÌ¡–>Lòq ^Çüšz«ö!1Y„d N©ˆ#ÕšÃAnJ;Ë(œ–å`ºS­Â@´QAq›ª4‹YÞV²À>ª?E€£c¿8€ÉkˆbâÙ̯¨²œfŽ q~Qšmv­áõáWÚÙ—ƒ•* 8Z7Ô kéµBœË/°¯8à / [€dØ5ÒfÐ!©{nÙMÇ?Q§Ô°*˜šÚVÑí ké*¤ ÔDˆ}ÈX}!œýó0óÞ!ݵ+5l…zˆ”í´C¹Ñ™Íx˜°¡)&7ØG0ëp+r“sDåĬ/ >ð”µ"îÚ#ãèC|ÂŽØb‹Yuhð»³í0ë…²{´µ Êqa>õ+ vOܯ·º,}å8°õ=îûA{—ò¨+¡oºJ°=·à}€Å-z€»â 8Q àuO|ôL<·@QÚ_OÕ–MUªÎ†VòŠ×ÿˆÇØ ,¬Î"ð5WÅèØ–ßh€•½¾_]÷&3¦UVÞ#a«Œ¡¿¢"º…m N"QË}àÑme(Ö+ˆ)t¦ï˜Ì*]‹ ±¡Õ‘öþb£aù‡á ÂbjQ¤'DÛR­"Šf?ę—¢ %àFàHÜRîÃËGÕD(È@@e%:@„° B¡²X¬\Â$ðG€Œ­â7n i§Xãt—²MGìÑÛÍâ3v\{Íf·k¯>ðÎà P‘KMT[‰ÓËäB³Ö0¥0Š,°…Az2û>hضÀPDÊ̆`LÓ¬(‚4e†Œb†f(¹Jƒˆ¥/u'5̲ o¿xAU5¦øëõŽmFã10#z;Žˆ±K/š&ô¯2¢£„v÷‰°/Ê Àš¶e´6î[€ßÇjïú¾#¬qŸô‡ÒLÃLBæ&å„fÄKbä´»Ò;E=!Ö,û ›û!–H è#BZ±]%ˉ®| €­Á‡RÙ™s)jxLå7æuYoj=XŠ 6 ]ØL¬zWî„°ã‚ê¬yã‚¶ ˆ@6Õô—Bz[³È"Û ÿâø—„ŒÇ€¥AyÍis€ãÍÇSò –*¢g¶{ãbU$ …ìrÎ9…·ª7ue}¶A„t´ÃþÔ_ïú"š—èV—Š£ôC⪯®ömu%´Âiˆa°Zæ͘>*-w–‘‡*ftGpì=ã :v–\âÚ8®°¹X93i¨­Å&™é(ª\sõfJ ýåfOÛ|Ž}!Dº4¥mš`­ÓP¼'PÎfž¶mAä׬RU.Õp¦ S˜ ( –Å–lŒ0Ê1Œé§Böœ/U§‚,ÒPÑEx Ħãrªq‘ D ÜHá(ÍÀÕÁyšW†9†ÞfFVzxkÿ z£P\ô-°f©–Ô(̤ÀÍQˆ^± ë¤Ä¡Rûõ‚ÖsN™[¿Â‰§g.qÆMƘàU˜k¤¢PË·–)}""Ì`ˆ˜…ÚƒaXŽßëæ’¥'¤jjYŽ£V ƒ´W´<ÌÄ+äªe=¢}LÕæ*¤@Õ.ìrÆ«+o :to$+–I`¶@Èѱ`*‰ŒŒ àz5®°`žJtÙƒ7®£€¬”á·zȰáuYB®˜1 …fJ{5Æ¡í£,ö””‡ ¬²_x¤$æW¬C)ã s;°zÃ9ù[¹Ýø–Xæsæ—Ä-04o«xò®e¡PÀ°»mM#°¸ ¢Õ޵¨ÌÅÿ'”®±¦Võҵ⪂˜š!Á4#§3Æ!˜e ¸ï>cç_5˜+×V`]OIqÏjT:ü~Lò†€fÅ@ir1åÚ  SêG¤;)–œoÙZ‡2–%¶“œ¼7RŬB¸är€·X]„W*ÌU˾¡Y*µ¡m»bè_"X/º‚Ø EŒ±Ô›zPB@ Ú ͔ŌõÍCU)Ìf±]ËÓÊn øz›=|/0„”ÆåÇ};L³Òâ”7¼V³<Ñc̲  |ø;¾)³1bg9ÊÌ,¡sí,7:ÈÀ,G)yuå~“u;¢û}–aÁZ³uº¡Tb¦Dºe{yðRiàO G "‡œÉaš À¯´½u‹†.&giqhßl˜ë+‹_YUàB¨^哪j ]}„<½ Ÿ(Å7ðÜYqiÊç“ó)Üî—O>_äÄC‘ÕÍbÙTƒP/ê2‘&éôK Bôâæ@„'pÛK’‘ëÒW… Mj0ÓhZ¦1t0NUs‘q|B WªÊØ)U`^¡V(`ìgy\EK[;Ç)Kw¸Ü)lšQzyc˜ÐÍ»€%†ÁaZUâ@‘ÐK‡QifÒ£}R?e´²Nǘ‡‚bʉÔá„™#`=î"!}Žx›þ{ ‘ÚC&0éÖ$\r#c*`²ÛgQ„Å7 ‹©˜,›œ÷œ>è™™Ùœ M»‰”Ã¥Þá wŽèÒ)”[H† €¸t[1†'8ß©”†xŒ¨µb^"‘A"Xõ4EŽfÿ)³Âhñɱ1:‘¶^˜ËZµȾ_ðÅðÆ£ˆäÉ2Û™888ò?2 °£ué/ÐðV­[â'äœAæŸÉ SMQ–[b±õs¾ ¥nÅÙ­†ñß²„ãBåmjFĨM 3wœ¤¬O’Y6@…ô ºë£÷ŠV b6hîä,O! 1lÃÂ\òdsACX F†³µÀ8°¢®8„*£A½2mn tcÁ7ÅwC-Ê )”Ã'JÄÓÚ–Ò¬\µ‹U¸|I¾ ðBgª;J26½bàZ˜'dKí Ê$JÙFûKˆKQT(mz{D¢XœÍ¹™·à§.´º]G 7Šç´´ˆà4¦¬ôŽ«eÊ"Â:# ‡ûA+e¬Us««²›@T˜»¦êa&f‚ȕۃ$&¸U+Ö'¬OX}`ΰ€‚ɧ3LX‹/( X a4ðBÌ͆=1-âEkZ™}a0È¡gʤéòÛ0Ìo÷39N’Дf¥5Œ¨Ü{òd­Âê dCO§YqPecˆ@Ø —ÏÕƒöþc:¢ÏfØà¥r2Dûyf;—4)E Z”ç´`¸5-UCOLÂ"E:k8ªQ‡B ˜†Y³űÑFÛ™Êv&La¼ÁÙPL\XŠªÛMtަƒ$±²È*Œåx%¢ï½e¦Ý2„j2„1,7B5RÔƒÖ:Ö°{èú‘„#@¤w&pš«Ê65±ïPpöFk qg²–P‡K„½?&ˆ¥&"’îR 3ñ1Ò_:–rC+ ³*dzº×A‚ûSPP¡R³’½w6µ}e[LKeMÃ7*æ=bPn'±ÉñrÚ™ £á•Fðëàm:âá„ë4䆃ëZ¡¹6F©°G2ýÉÔÛï6•ÕŽÓ-D¢~ù‚µ4mª.dC?*D­Ý]ö¿yt%A ¼ó\š€­• Ðóõr¾ ©Éç˜ÎX AécÒôâw!­Gb$ǵ¥zE°ZÁsÕÄY±pé8qÀæQ$æ(j¹Óý€¼¶;œ@†OH^±aÐð2â5A¹‘†YA7ò˜73« C§“þ –{â uz#(2gè(»‹ªVé7,rF“÷¦ºù‰” "½\¦@hÁæ‘Ô6SlùJ]ð¶°;™`.ß?«ì˜ÒiÿhuØpf-³mpZZ€#²Å´cWí”ÈP ýö%6©AÎb®[ë+€z0Íæ– rìPÀºÑi^ÑhêúzÄ€r>ñ" ©_0”‰aˆñ6b ¹DùD‹´6ZeJ DÈj wK¸åºw* :¨˜ Nsû…ã)Ò$dœôŠz)G³RäÑ%ÖEEùFÔÐ-}â*"‡°Ç­7-ŽÅqq\ÜÌŽá¡6|f:IŠ*Qs™{ƒR­¦ª?á ÈÄ,”¢%Ç*ѹ )I§Z¿xPKûC,/wÁÙâi0Î]q˜TÖ”8«êN‘€,b’„»ú¾#¬/‰Ì®ÐLKT²#P®¡è tG²y%%¨x&FWDwRÜaV'bŒÔ'¼¿‡é0m–vÌ+Š„êÐ)D¬‹ ä{FîЮ̪ÝÑ]à8°Áê[‚£Ã3fÐŒœËb¡¢døËD5Qá TLÁeßœv iøŽþ²5Õ_á)s.;ÆMë¤@ ÊÜo°Í[XÔªXš_¼3:¹Jë"-’òdüC!PteÉêøŽ³)ðÌvÊõ‚r²¼J¤Œ˜Ê¥jV&ñ1&d¸Ì«(ay€e9„rÜ­MªâeàÕÜd¥Œ ²g+ó³Ä)q†v!Ú6@˜‚­êQiÌêÑEOˆb> ÉÞ^>ðò›ß„NHMentAlÓ¼6ÒK? ٩د®ÍýŒL¨$6_H œ8¨ËÒ>©Tˆ.+\n:°kƒËpíŠòÈ_H!.(çÒ»V—WÌu”ô_é,0±–õpÎî]7‘—lKÌ;àê+¬9K1s¤Råƒ1sòÂݱƒ2Ì\)æ=ò­±.›ˆqq¢&¡ß8ndŠ …÷ófQÄ"¶áÌ ­À 8,¨˜¸= \³ Ø÷"̉Kç,‚,|£Ã)™IÌÄ‹1Û—ÆfKb—g§©—Éõ’ø h¶_YZêŽfjµÆÃ‚¸–rË0¥BmõœÈL/ìÄ´"²ÝùܺY\Þ]ÙÅÛaÈsÌ$7¤¹oêûæaþ˜Žc¶fm ´±^až`›‘8Z%Ô¤Šë˸+ FYɨc,ˆ•¸&Ù{¹Š… Êy–*X%¶"-2îኮ‰pº‰`A}1ð<ÎPˆ(Dxbùø4ÍNf+ƒÆ:›qÜž“ BÛ©•Ök*Ž~²É‡w¢PiE\£`X^lJíY&Dˆ«É 0/EeMP]_‘(вÜ}ˆˆÆ‹xr{CÊë³Ê}_cüÅ á˜c¸¼F Ú< Í„Ã3hkRâ÷Šˆí¸)w/1ç/(+†˜(¸a—ë ¹Š÷10ÀÑÌY™q¨Ò QªÔ]DŽ"w@ÔÙ '$ÂæT†, 7ˆagˆÀ9õ?xÊ™>òó8þÔXņfGqA6TÆ+ˆ9ƒw˜ ²yO®„ œ’U¡ 1̨­é•bª³¾{ô™¤r¨é’!êÏ–ªº¨²ú½fAAtfØ”–¼›~¬_·ó¤?̶DnÜÏq.¡ªJ½`â*| ¹‰O L x‰7à3bs2—QR,éB4 z̨J®:ÇqxŽ2K!5ˆº²#H!HØ”4nPå•H”Ìä7@€ì—µ•¶¼FŽ€yrvðTÇÌð½_O”å—…˜ñ2ÚS^ÓlÁJÔêDãIßþTUÙíup ¦€¬ÔA2®ÂÐöç¼}l!½+†?i°ŒPÎ=e^<ÐBúõk›€hÀw\b ;©XèŒFÑd¸lC¸˜XBrïMe…b„d³k¬ H–-ö•s0‚RæPÊ*+¤"á!œ¢ÀÄw2"¦˜‰u·)›Œ¶q«,+wÚâ`AÙ2xå-ÝÊ JpÞ¥Üv§Y´ý¦‘¡/xóæŸa5ø{ÆŒË3 8`ž<'Šì#5«õë,?”¶u0c¨t꥔Q™¢÷2ôжЗ£õ÷&HX±WOÔTH—švypÚ:>šþL×eqÓxúˆî€!¾d•î\ܶb%n â2¡H†÷DFÊ¥ñµ‡Z¬P*âØ”#"Ìac²ãu$tQ ›—²¢d¸æ1¹•(™š­ÃWt5âsÛf 1+Vå€!áç1|ñûqî‚DurÊxo 0–D©tGK©e%Já×Ö-80’‡BiH&Mu[©®`J¼ÊeSCNX¨ÍÅé|€"{Å9 4‰Hƒ6iM Ý}y™Ámàç-F¢æ` Äë-Öd¸˜–"àÅqZ©WiZ”–¬’æ5.5s˜‚"fip‚Q@Aà+/;™NÒ3XŽ(% DÌ).°7(ÈÔB]ÌBÂ51»zF1´+Yö”þecÁ«Îbøj‚žS™ª"&L¸D¾<¥R3*;úÖ£Bry@]öð3ê±Q¡\G½¦3WYbmVé5ãŠa¹±À}ø™à˜³uÚãXE0¯ê6BòÒÆnÓ–Î.fÏæ–¢/s ˜²±;ÎF 3Qs0‰MLÔ&”YjX²áY£¤1»¹E„TAK¸WÐA(c´nT¦ÛAËY†è±UÜ4z­îÅŠ/rf΄Pp‹ÜÛà."ÄY—ˆåÛ ©›H­þµ²’ƒ'¤@÷ˆí™îK¡²qÄlzÄHâ‡D÷—–3^Ñ ð ©b½æ¾Ð ýA_ˆ †“Q¸w¥”˜ ¹†4Uâ 6À3/ƒ -Àt²cm0Ãəʜ´]#:& U‘j)™—-¨Öáâ"íh¸–ã!˨ÕÀ0Uî™yN q3Ã&MÂ8”d‰¶¡ÃÌN q¨µq¸E@‘Ý»øb,ü/ÙÍp*¦yÁ,J‰‹¤ÄDÁxGª[æXëÿáhcn Žlô˜7‚Ü5-–§C¬ð:·5Õ‹;Í÷_xÔF¹2ÅF‹ÝÊŽpbÚ¬ýuÃŨÌx¿(u­B„  ÁgCᾉn`¦Ô¨ÔC¯„ ̲}ĺÎFûX½àæç[·Bز0 •QŸ†vE¨ä•Q¬­–EËR¤j­ˆÊFÒ‘GHÐs#î-¬5wˆ>d«îUš‡û,û‰™Aòp˜ Ì4F]´Z™Ž!Ä4/…/PØÃ¸ ‚Ôf?­_qþÿâÙPh–¢çrá€`WærÉUhWöcàzŸ)X*îè½c>¤J‰‚Ñ»úÍ Ä%Ô:ÂtȶÄmÙ:²u$Y²3¤¸j¸D4ÝDËV8•$ƒ!vƒR=h€’–5b D\»,òˆ”Ó¿IR#ÆÈ ”7,I…5wÔ`ª–`ª@…­ln“-?áÛr—Ú}¦Çt¾×ýð\~ä`ì0/1\´¹Ú  ±0j`Ì; ‹+Ú,@²ÿÃk Xy»A[”i.'F¥r•z›É³Ö6Z›'0Ö%Cë[ÐP7±Ýå*fQ«âúž±^$@7Îþ´'† Ÿ|8ÿQ¹ü§ö ×ï ÿÜOûˆÌPcH¸Ø P`ñÌF “**&Q²0®MM%n¢§ å…V‘Xæ2D–¼§Fö‡Þ^QK¡éÔÏYÖ´& ûÄnbØJØ¢N(‰Ai•Ìk+WÄÑÄo)™hÌøB/§0ÏÎGˆË‰Ô€qqzb•f%ÌG ä¨ë×bïPÃN%Õ‰jÍV|dZ‹—¬L»Yz«7X¨®ÓD!§p©Ì+U¨*â,Ic+ bkv‡qûÒ¡uˆäì÷–U–›eÁS0é ¥°Ø€ðÆYƒqÒ ¶}?àŸä:A²ªyCrÊܯœXG^‘-6»mœN¤SR Ù(:\¶Èµ.pÒ´ÞsõˆXØ ƒ³O?º<Åïûá0øî7'ÉïŸÁï>Fýç ó{Ç_Íõƒ|¼øÇ÷~?¼)‹Þ ¾{†.Ž`V£ñæüÿX¹O—|¿tÚIœ!Ï‘ö/¼~ùˆ?/ÞXßËïv¾}a^oXW? ¼ 8e6ýáÖÅ"ØPãßìEÓùÜMÓz#®½¬A¥ôE•ï ™|ˆ´óÐÿaGÂùÊT|þó¿Ë¬ÉµðëW¥û¦PODýgŠmö’Øë3AAïyÀËš¼[þ´þ”ºru…ðú%h‚i"ø íg­À%]Ÿì– °[/ŸYJÞ:>_œË/ÎTù>ñµù¾±Ëó=e øÞròP~[•—äH÷Ï­dt‹12ßÛÁûü Wõaÿ™ÿ­Ë{{Aôö'cÛoõ;Üì{©ØöÿS±íþ§cÛýN×·ú¯oõ;ßêv=¿Ôí|]§kàí;ßê=b+·±. Ñê í|§gàí;iÚø;G¥íþ§kØ—éì@Нƒ´í|Ý¢Þ=‰ooi~^ßHŽbv=¹Øö%ú{Ý=‰ooi~^ÒåËòö–ööŽ_ø\·obv½‰ØöÿS±íþ§cÛnv=¹Øö%ú{ý=‰~žÄ[oþW/ÿèb–{‰ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þÂa?°ŸØOì'öû ý„þ ©†ßiDÏíçöóûyý¼þÞo?·ŸÛÏíçöóûyý¼þÞo?·”R¿üoÊïÿÁò<¿ìÍ i}؉hçé@¨¹£ ËZ÷:]†Tµaf3/¬ôimðºË‹˜–ð/_Üp½SùB•«ªƒ.2ÿº„å{mÐŽM–<\KÈPoóÀf å§U3Öháu·Âë)WZGHÙ2Õ½èº-jÊ¢d|Öñnsû¢uŽçÆ Õ[iK>} úiœÖ¿?Ùƒ±æ•ï¨áz¨fê–-´Æ`­6]P™` 6V£¾(èÙHÞïi«‹gÏ´ÎûŽ@ &iV[XQ¬üÁº3YCáÞoºWQñƒå…Uuï}ª®oVÞ v ¬‚iȶ³û&YÜ2P[GC[h˜W@µ¥{K(ƒ(²â·`:ªwÇÿoÊïZ6H-¬t(¨ ÿ”Ê"±C4U¬½Ù˜x™ )Þ`uhK­©šžu2Eˆi.Âï#fê,[Â7EADl˜+ÄkO}r5N„+3>ÎðA…£©T2Ë\K’м;9ëõü/û€ £ÉÒ$‚Üàå¸AÑ„MF,׈*ÓºÍqh¡¥Œ4t¹ `¯¦²J̇™“Fã‘¥2¢2ñ{AŠÎï"¥ )09(cDºnòMaY4FÕnª ¨æ")½AÃzË&”MTê%è¢zh5Â8»RÒ€3 Ä] Œé°~‚>Ð1 ÀëÌUO%h8aØÇiÕþª:*±YÖ(ÕÛQ4( Lë)¢îÐrÌG~\â³b¬&µ+üPd‚Õ…˜\"ÛJ—m´¦Œƒ[@®F5+cãBMË‘hì W¨XoBŠWJ©Å`À%¦—½ÊD "TÊTæJ‰C„±`\#, \à’RÂXciÜ–&Rê<Äa[!uðrB(¡v†•qÞlj°Z¬öú 3†´(REÒÂÆHoã¦GQ‚V‹A¹³`8ÑÿÙò»øU¬Ú}b¥.k!=_x3Òï%¨ô#IH'D¸¬´WwÏœ Gä :}#Ëþö ¶@›.»ß=|æ[µçï¹°n ïnr݃h4©<ÜÙ=W§O.Ð&í½EVÁ…ȃI-ª¼Nú,^¼ ßaB"zƒé-5×T«:È b¬µÕ‚j x ‚¢uw˜•8 ‹uQR”•UÛ¤«°¦ÊâXSW³†!h½X°›ªóºÕÀ1xŒ,ÚŠè )t¥á˜jÕULZÔµÝæúŸ4q,)Å-¾‹p_IÎ/9¾»8lÇc W®&µUWÓh>ý¿+¼lgÄâ ñø‚|A> ŸOˆ'Äâ ñø‚|Aáò<¿î ÐaB åSµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkێ׷¯n;^Üv½¸í{qÚöãµíÇkÛ‹J`LÓ·äþf3þ)õ°Û§ 4£…ÛFlUƒ&‡>ÖÉ!y´º<Þã–ƒk8,ØÓ‘˜{{eê*ÓÛ^6Æ.ÏÛŒB™Þž’ù÷ˆÜ"œ()ÕmBÚèéYïê±èЇÖÒì¼ð%5u£äyÀ¥/3ë`*³Ë‹™Ñ´À‚þ”ã= ÐAuÀ³Ëuqª6ɪ5Ü•?3¿nÌÈ&5YêÈ:ÞL[÷”…Kë--------------------------------------------------оþ`Û¸ Ç ·]j9ä2q„ÆÖÔ}+´èÁ¢èhG½E<¢«ãž+]]6‡ C¸s)–”å¼;0K0iS”yÊL[[*¥Ð@¬t’”È4°PH£ëE‚ÉØP¸ ±¾K²þ¶CÖ ügÿÄ=!1A Q"2aq‘¡Ñ±ðBR²á#$3PbÁ0`rÿÚ?ÿoϦÄ$äì;%n¾J6*%)\¥ÉêC E­Q,%.ˆ­FZ"½ICbXº«©éµ¼ÏM­æzmo1bëyž—[ÌôºÞe«%ÚßVO´RóN¥|EI«•ëM3Òfˆãfº”xƒ}G”cvVâl©Ä$Éãdú#ƒÎS«sÓ*w1~S›H¥Å[z²†?7S êR_1V³ÜnORÎÚ”âìÅ©*]QÜ\xe°à©Í# Ýß¼ŒÚ;Ë™ü¶#®¢×qèÇ£…9knocÅkF½H§³›+cªUz²´åqU›g–yZF º2¿  ‘>JKFŽ!xvP¾k•[¶åH]Ž–›“†º œ¬p™*oS‰cTi5r 2”¶0”dä’:ÉZJÅÔò²šJ%“Üî¡'ª($TKeÉìJ7’fæü†Ñt\[sš¸•™bè÷ ¬ù½QÄxô©å¦Úm´×“l]šâ¶¿uõ_sñ˜XÞµ6¿/š¸¢üˆJpwGí ëf~ѯ'¸±µ¼ÉT•eë3"ƒ'<Ú#)(«¤›'IX„Ô51ÕFRR¹…‹¹ÙútÞ#5M¢®C«â' ¥£ºzêºßéî)Ön¤ãÑ5ùyþ$j4w„*zzò–ňɥa3aÙs›jÄ›n⛵¹J)j6–ŒŠ·‚Sy솟ð™sFÒGìþDëᣧUåï^âm$9¡Ô±ß¯bX†ÙéCÅ1âäzK"Dg9 –mÌ>,ŽAhpJÑ¥])ìô‰…ÃÁUîÖúüºþdeë±2äX¤K”¶ä…É;Ùs©°‡§)2Ú‰;ø!^2my2 7v7¥îFq“±Ç»/KV‡«?£øýÑÝVo*‹0]žÅbõmE{ÏÝ(Eä•M|ìWà=ÕG ú|ÙùÔ’Tê})ÁqxçK:[´¶=-y’…ˆ‰J¼$ìAX¦®a!qÒV04}(»;ê–—ZëñØUcB-ÉzÍ»t÷ïôƒ#·8±ò|¹ÇeΦÃf¯”º¶ä^¼å³8WáøJzÉIÎm¯Œåo ¸ç ò×̧Űu£V?4zv?õ#ó_rž&›MçOñ_r»ŒèÎIZþ_pˆgV*Êê«îŒF–&NW³ýt(Ð*š£ ªüÿèâýÁ㜱 Ô’ÞÛ?Šû"£&“ºO”$âî‰ãêÈXúËb‡ÄÒÙ˜ÒÔŒ­_TpL}ׂµ5Z©Çpu°5ÜZÑì4å¹(´J朤Ûг-c¡aSoS#¸£—q‹ ›)Á²í¡…¦›F *KÈÀ/òñ÷Ô€ù²Êç=‹ó»™N×ðUª©'&qxLjG,–ĸz2}žÍÔ}›~gîÛ}Ivj^dû7RÚ3ÂëPÝ”–èÈü‡MùÈË%±N2z²Q”Ú9yôzŠÏb-"•î`ávŠz+}Wdpù©á ÿǸÆõ ù¡¢Êç?°’¹kÁÄ¡7Ä›’è:ÖèzE‡‰D1P¾¦±1x7KU±‰‚š³8¶¥ Ýlw“ó¦ú˜XJµU îPà”TSzŸ²ðÉ{'ìú øE‚¡ü£á˜vý“ˆpØÐõ¢$P‹0:¬É6Þ¦ý/r-É6Ö‡R%ù¢;.u6ðJ)"—TSžimௌ¥M;ëcŠñ¤ãj0wø?±ûWÖ±'öÄ_Ù'ö®÷‹ù?°¸…Võ‹ù?±Âx¥XUI§¯¹ýеZ{èÉô1GËê¡o‡ê,"x: ±:–È… ot}–—‘,55Ø•.æ®F”YàÀtâ‡…Šš³è±dY76èîQˆÑUv%OQD¥L*´Hg6_R9вæŠTùµ4N™%ÊWÕ ÷#£/¡k¯'êN2ORÄVRG(–Røžw±|¬_ªÔ§ hTÜåG*)Fì¡ $@°ô*Hr!;ù$SVˆÉ¤®Ió\z2.ä_+M“œmr¥K‰‰—-œ·} ÛqkÑ~ˆDбRVГ»É"„}äS¢…”ÙP‘&E qM%©,DJ˜4'R椩ܡGÞW1RVHŠJ6eK§©3›B/¡ÝôJ7bŽ·ÍÜ·E8û¨”¬Nwe²‰Aêˆ?tB&‰¢h‰; ­YÜSli±@±ÊÙB–Æ.*4ÉB-nV‚OB1g.„V¹Ø±/‰ô6&[7ÑÍËNwÉeRÑ¢œô î&H’*"$³å‰+¶S‚µË!¤ÉD”ÜL>1§fc1N­¡qK—FJ×D•ÐãaÊ)ٳć™âCÌñaæIݾ”sfú*KDºS(Îäq²ET"#¢+T¾…ÈÉç'¡U9|$iÉ=Y.k¢SRw{“^BlRf„1Ô'³¿Ñ6{OÂi`eJT]Ô–¿5þJ‰¨Ý iq{Ä~›Õ‹æú$ÄYœ¬…&ÊxY2TˆRHŠHc7'JähX…?B¤m«Ô7"4_qÄ­QRÙâÊ£Õ‹z\ FÎKr*ÝŽWvÐý®$p»ýªõ¿Ë•ÜãÕe[‡ÐœŸÞ’_-,L‹Ði¡m›èY>‡N^F Ìï3ìжˆû2¾Å)½e¨¸zh©‚” G•ê9$:ˆS9ȱIçîØPæ‘K ’!Ó1-Îl¥B1‰ Æ,­ˆgyê5©9¥±â#ÄHU{˜ œµyÓ×·­Õ¿ìã”ã 4cut¬ÒüÞ¾¤¢˜¡bÝ6adóE*QpÉ~†‘BȽNNެ¯^† ËSݳå¡[…œteu6Ñ[AHRg;Žr¥ÙF˜ŽS²CPzÅÜ”¯®åÚØñª%¹ãM²2–ãl‰„­á¦Î+YAs]É&þº~]ýK3•–·aïœF•ˤr¿E,]? ]Kk”ëB 9ìC8ìÊ•§SâeÎb8‡bu9Ä\Læ"õ)"1¸ác‰ÊQ£hîô#N’’ýüŠPÑI’Øà‰ÀäÔí”HT亶åY)ÛÑXy2[¼âXQÊ;õ(ŽÉh&·0øŽovB‰c”p1S<3ÂE‹ s™˜œG,Z‹××õ<7RJ)é¡T–ùÉ(õKâyÃ-²]+s†«VIÅ]Y~ˆ–ø°µ¢µ‹þǃ;ü,Xi¹¥g¯¡F‡‚éÓ½ùn¾ˆã(¶P£Š©†’¤¹£-í£Zÿ“ Äêp¸$ï(­ã$Ô—ÉìÉq<;/jímßû %JƒòRÿÈÅÐÃN´yªô/ÜDem‰O™ÞÇ0¥è%sÛQ^óZ|»”xm*)7«ýö+D”uKXvQ/Ñ/‰ç ®\EËæ·(ÓŒ©G^ËôD(¸¿±$4ˆ5r—¢ÜÛº½ÿ²_ôcñ|J³z'‚ÁaåNîí[ëq{A‚åµEÍù#ˆUá8·Í¸¿K"¼)EÅÑ©"¥ióÆNWåô!)º–ì_Ô¿©ùر5)JÃÇÉýÄ-‹{³ø®%éÌ.!ˆZóxÆ!hÙÁ¸LCåbÚä‰ìZèzDÄ?êËç’ÕE‰el™/‰ç ï»ôSÁÎ¥•´fR½ê4ÇÀ0o²³¸'ÙöcÿúOÙ<¶ýN'Á*péx´]шªëBÍ ”¡4Ò8=ÒI=Šu¡5tÎhùœbQð£«ï5aA4J ú •ÊxTÎN4æÅR6Ü”ãæN¤RÜUbûŽq×R«½I?Vh)ú‰ÝhV.\¹-ÞqÏOô.˲ì».ò±e•˲庮˲ù_þgcc²GÞ¿ï÷ÿ±«Ùüþ£w¹÷“Ÿ¿ßí‹A;;‹Ec‘Y¡2Ù/øÙòÝÛýÿÙplugins/jetpack/images/screenshots/mobile-push-notifications.jpg0000644000312500031250000006667512651056012025702 0ustar eacbforgeacbforgÿØÿàJFIFÿÛ„       &&&&&++++++++++    $$#$$++++++++++ÿÂ,X"ÿÄÿÚìѸ—Hý€ÓúäžyÎZUÜ:üh€3ö§ãóðmë >×ĺ@^§õÈ>ÀÙ5Ü^ß‚ÈÅç€6iÙ- }™†Ñ€}³‰t€¹è ;®ãù'#|;Ln%Ñð>À —B™?®ãôI; ׉@+@ 1¸—BÑe¯µ¯7ÀVHYÜõ¿Ð§X²ä¯LÍÕtYž,BÈNÊ„ØÜGzä·ÆÍŸÆÇ±²Û×æÇµ€²$]Ÿ¬uü~/[Åo;<€"éÔ¹?o3®NÉ`òöÐÈÆâ;Dz6‡‘Äç4LÖn°ðvXصžÁŽÐ‹÷ýäV•¥TT(8ÜGxáÖETR¾¼—.ÆõçÕÉ/~'v=g°c¹ôìôÊù 1ˆï:ÈÙscc2×íÈW•ÊÁ¿L&S#ç ‹‘ØõžÃŽå¶6›VÞ¤ELZ¯xðthÜGxáÝ›d¹¦riò™þ Þ^³r´óâÅ2Ôî4êÜÇ_½Ù5ŽÃæmÆMÛ^¤,Z¤Ø·–ýFÉ@•Ö4íˆï;©l­OJØðö±5ÉùÇf)E)æŸOÆâ[¿²'̳[w¼Rô t§‹¾¼CŒ¹‘í¿dÇpÝk?±i/K“÷ÎOœ-«K’z&3Ì)JSÕݪxÄ·~-¬×`Õû.;’k}K•ÄV¾¥mÙI¼¶Â¯Rz'ÍT¥fn=>&^7Þô| 컞«ÙqÜš~kÒ¾«sjÓëêŠÓÝí× —Ñ)JR¾³ñ¾Äzäy\ƛٱÜ'W—v¯Uz•Ð+s#zÆ&ŠR”§Ÿ§ãq.çů»šOfÇp­ZUÏU­J‚´V… R”¥>ŸÄº@i]›Âui7j­U¨AJQO/¨cq.WfÇpVEÚ«UEiU ¢”R”ú’7é¤ö|wÕd\ªµT)E(úž7é¤ö|o3“š—Pln%ÒHíí·´ù[üœÎN` Ä:8i}£¢GæÕÜáôƒŸà­H—Ö@o›¶0—ÛñºÖv¾kÙ¶(vìÍœ¥@¾lØÀgpÆèV9WGÌsÓ±á,Y½ê7™~/zƒ™ƒsÞÄæŒûÄ`{’dûŽ7BÔõÍ‹uå= {Ì€S˪z™dó±`‡&C¨v§–W S©s7” üpôýúY\ú; £¿—ýóy~‡M~å½ákÒº“ †YæâèMGÿž†Kðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä+ðä*>–W>ŽÂèïåø4ÚÔ¤Bqè.=Ç ¸ô‚ãÐ\z Aqè.=Ç ¸ô‚ãÐ\z Aqè.=Ç ¸ô‚ãÐ\z Aqè.=Ç ¢ bŠØ¢¶(­Š+bЉ8åƒ2é¯Ü·¼-zVGîST÷Ë$F++fÒÙ´µ0‰“UªÕjµZ­V¾­V«UªÕjµZ­V«UªÕjµZ¨úY\ú; £¿–§-U±Û^ ¹K”¹K”žìMkÃwx´nÂm¬9K”¹âmSd@ï£r—)r—)r—)r—)r—)r—)r—)r—)r—%rW%rW%ýÛj/ªéŸÜ·¼-zVKîSX×ÿl%v¶t–žTø=T±Ê…‹í /ýJëUªÕjµZ­U« Z±O*TodëólV³n• Ï. ØHaˆ¦Í„vKZ>òUpï ùºã»Ç¨)LHªE¥;_2"œa,óài˜cÉf¥,KZ£í˜Ž½w-<Œ-L‚Z­V«Uª¥•Ï£°º;ùhïù([h·d¹P\¨.T* ǹN蕜uIÖ+d*cäkˆ,#ÌÇc¶IfA©ßÄÂ]¾[å ‹¬ ³ŸNÎ;ƒ‡±ëµaØ%LXlÓåÌÅK!C•Ê‚åAr ¹P\¨.T* •Ê‚åAr ‡n.˕ʊåEr¢‡e¦qB!ÉtÏî[Þ½+'÷)¬sÿ·ËÃ¥å›ä6ºtÛ`¢Ö=“aÿ©]jµZ­V«Uª´³XµÞžBÞ2»R³b–^Ö%ÞŲŸ,J¢!–9ûåz±&@r{ L"®2·RÎØë‡¡|qCjȱ,-äå1Sµ.™0̇j¥YŸ ÷yeªÕjµZ¨úY\ú; £¿–¬y"úþN8ÌŒ-N‡SƾRíÉÓËSRÒʨêÂôg fNꞆEº 8éŠÙ˜öJV¿•‰Úƒ‚ÞwxÂÇfñV†Wܹ•½í ®~¨ßI|4¾¤h>K¦?rÞðµéY/¹MS°!##7î'~Ö8ñoBÁGµúÎÞKW=V®µuªÕjîµu«­_ÍjïçðÇÒÊçÑØ]üµcÉ×ð³JNÑ‹³³èÿ¥¯‡l´îø6ù2%[by“ÆQõ(Âs“@e€OnÄ{§£Ev·¹•/©’éÜ·¼-zVMÙ²dÖ±b̆f[ñ[ñNh?žàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÖàÔ},®}…ÑßËV<‘}yžÛY¡\Ù±`AÃM©MÇ‹ªW Æzön;¨1·çB\^EÇ!¼0íL¶ZÅ,eXZ4¬ÓÅ4í× 1X¸<ª'£Šå=.¤eìÌa6 BÓ.²­P­@V¬ž†2  bY:à˜µz7Ég%Œ€Z¥±z½acñò\ q#vdÅbàò¨±v8ífs~]`°iW£½FÅxPÆÆ’YaN¼»vi}HÐ<—L~æ½ákÒ³­®Vh0MŽh¼c"V˜¦ðžÚÛQ²h¢ÓaNpžÚÛ[kmm­µ¶ƒNFïÓmm­´*³4»a³ÍVÚÛ[Kim-¥´¶–ÒÚ[J>–W>ŽÂèïå«H¾µÑà¨×#’›'u˜,ÒÉÝ‘Ec%rÀv ^ýªðqŒ·m$M`†”dP˜, "fò$„âñÌäcäÙ ŒMÆöÝ­¥VÝŠ¤Üó¤ãílÍöìd±7lO'y9¬ý›”¾¤hK¦?s^ðµéY–ù¤ÐYX•v÷F]؞īÎ0ã)6bIîÃ-þñNSÀÂ/ @&z×c-°wÅå {Èr™È4íì‰0„åVG¬Éìî¼¢×ÛîhU,ÂÒ±Ârma|¶´¤åмݕ'賆ô[r]«µv®ÕÚ»WjíQô²¹ôvG-XòEõ¬‡2khd*Y„­Ê†JÞ½HNìH «gÆYí.>„¯ÓÛöDh…Á„1Ê1ÀÕœA\5\À9b؆Œ7lð , Õ\!®g† æá„O†ÚÚšB=r«!0 ‚±Yë°»› #VQÆNV«ÖOЬZôxÕqô^´å]ñÁfrÛÊV²²¯á­HÆ £J©1“«uŸØ-ÊVtĈ£‰vµ½š`”@¯áKêFäº_÷5ï ^•˜û¡4Py?«ógiG¸Ý﬿é¤FnØwþû§æìHÇWœÍ¸ÑfÕü—tÖ³iwÅÿÕ«ÏpïæÒ$ua³»7kw™Ú=Ä×¹wMýZ“·mjþKWWä¿%ù/É~Kò_’ü”},®}…ÑßËV<‘}k/–4T™½™ÇeU®Åê'ÿ`8¬VGÙöwÕl¤ÁNÕgŽPã¹!eˆ:Q®ÖmÓ¸K&.¶77 í6,¬µ¶Ê‡±ë=Ûƒ± âr’#Ì 3†Ô3ѲƻVr¹aìÚ!ݲ cµÔ ­q&¤D*ÌÁÉÔ­ÊÏ~±¡ÙnížmɯdHÒaJõH ÍPÙjó“FwÂ[ƲifûŸ±å•iG VùV7|i}H<—Kþæ½ákÒº¾RlÌ´‰ ˜¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦[¦Qô²¹ôvG-XòEõª™+5"ð·¯/o^VïÙ·¦èhÚ8 `V±¶ë;ºâEˆ«¼ÓÛ•ŒmН8ÙáÞíi'¯iÇzøó”¦ *‚¹¥ÚcaG &ª2×´ 4JÖÄHˆ¤­hDa¡8'·bís(‡Vá¡"u'W$cZÔá2­r0ªÕ{3œ5­H2<ZÙG"†UfÕÀh»;>àÞ~4¾¤HK¥ÿs_ðµäºÃï2QL´Z-<4Z-‹E¢Ñh´Zxh´Z-‹E¢Ñh´ñÓÂ>–W>ŽÂèïå«H¾¿‡9po/y¥–f~CJrò²‡7¸wìÜÙs2¯ÝØ£#XoôÆ"ü‹ ^ØáÔ9 #Æß +Õ•˜Û`°a¨&Ì¡aÃæRB„ëc&ÏT+Ua\TÞ¥‘Dt»*œdÙ×1Œçîä÷)[ –f-#RŽCñaŽpxMàþ1ËÂÔ‰Ét¿îkþ¼—WýêJ)¾-<4ø4þÊ>–W>ŽÂèïå«H¾¿‹¶Z<›Á£'×µkªhÊ^ŸÙ33»FRô¼gSFnÏ&ýXøQú‘ y.—ýÏÂ×’êï¼ÍA7êiý”},®}…ÑßËV<‘} ×qö u*ù((TÄ>Ý©@× ÕãÝ^OiX¬Œ , ¸5iŽNz³¡Q£+H5v,[³ Ô.Õ§&ZPî±Tõ)r´pÔ­fØpbŒ[tÁÀ©í+‘©ã^¬øŒìþ_§KêDäº[÷=ÿ ^K«¾ó5ßk¦­eǼӧpqî (ܱ«‡áÑ4&þ@ÇÞ°ï{ 2¬Ó·VM?£K+ŸGatwòÕ$__Ã^õšðÇí¬—tä피År¯jÞÝr©änR”½¯Ûq¯iÞþŠ–N쥪±p~Ï W´zÓyy[ó˜æòÊ]“¨ä®Æ}ìL…Âîw—+|£çí|†ÛO)zbqJÅ“Y&á¿I•©’éoÜ÷ü-y.­ûÔÐáªÇâÏxìçðu1Á Að2¤Ow§ÑãÚ¥ÙJ? 2hÅ ­\U#Dý´ÑéUËR Cðéªa,gMX¹¡ Ô4kQÈ0kÇÒÊçÑØ]üµcÉ[†iEÿÀ2ÆŠS´=äº[÷=ÿ ~LºŽ‹ØÈšc¡HÖ²7³GGò·rÅÛbÇÀÊ3fXó´°Ù³uuÑ—½8®ÞäbD†!!ð2mFƒ¾ / ý”®´YóñÀÚ!¼˜¶7û­Ä[uöK+ŸGatwòÑÛòWªÀþ® ƒÁ‚àÁp`¸0\.  ƒÁ‚àÁp`¸0\.  ƒÁ‚àÁp`¸0\.  ƒÁ‚àÁp`¸0\&¡F¼é ~K¥¿sßð·ä³wš¶p‘™/Ö¤ ç±höÌç?ÂÞVî«o&Z7ÄɤÊ…Xxc—œÊ-Ùlâøu]ÿþãóöih9æîW½{x1ô²¹ôvG-N:²5mSÓ\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\5Ã\7MM¿j‹hºW÷=ÿ ~K«~öUúMñêè,ÖÜØo/WLR7sY` †/xshùŒ¥‘8Mú1ô²¹ôvG/ÁâËm–Û-¶[l¶Ùm²Ûe¶Ëm–Û-¶[l¶Ùm²Ûe¶Ëm–Û-¶[l¶Ùm²Ûe¶Ëm–Û-¶[l¶Ùm²Ûe¶Ëm“GO•ýÏÂß’êß½A7÷Ñô²¹ôvG/ü7Jþè¿áoÉuoÞˆ¢›õõýxúY\ú; £¿—þ¥t_ð·äº¹þvFQLµñÕjµZøkáªÕjµZ­V¿«_Ð¥•Ï£°º;ùáºW÷=ÿ ~Lº»ï¥QLëUªÕjµZ­V«UªÕjµZ­V«UªÕjµZ­V«UªÕkáK+ŸGatwòÿÃt§î‹þü–WVÎ\ó8:w/8t¾üýÕÁ/upKÝ\÷W½ÕÁ/upkÝ\÷W½ÕÁ¯upkÝ\÷W½ÕÁ¯upkÝ\÷W½ÕÁ¯upkÝ\÷W½ÕÁ¯upkÝ\÷W½ÕÁ/upKÝ\÷S½ÔÁ(úY\ú; £¿—þ¥?t_ð·ä®ýÐè–L)Å LÄêÎru®P’~5^´¹Òå|œ¬&,è”ÅK%œ£Ž$lfZ–LR%Oí£éesèì.vn^½ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð]ð])ûžÿ…¿J»÷K Ïü°]AwvÛWlm_›@^ê…›¹úrÌd” «Á—ÔzPÌLUòÁ¹]¥”%f­ß_¦£•·‰•º½L*oýœ},®}…‡h»^Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®Á®ŒýÁoÂߥ[û­•“$Å “œžO‡k”kvÈ÷È"Â-1*ç DÏ«3ª¿ðE_Äã²-» .&åJ!Àa@ìâ–3*\ UÂbj¬™Ùü¿±¥•Ï£°±ùjµZ­V«UªÕjµZ­V«UªÕjµZ­V«UªÕjµZ­V«UªÕjµZ­V«£?p[ð·éVþëe[Ór:Æ‹ÕÈýÅ í pײ!};@ž’L1³hĬÎ3Ÿd4ÑDC‹3F"{»b1Áš0íèÇÒÊçÑØX×ÿ‘jµ]-…­q¥“ºÃ 6Ø%Ø%Ø%Ø%Ø%޾œP¾zrþÞäAi-V«¢¾ýgÂߥ[û­…ãtžVËœÌÍ@õ§ÀÖz‚½PmQÄÕ•«iç€ Ý‹ƒ'‹«Þ)bcëO|M'gö¬]R…’î1/vAËoŸÛ+¤v³6,¬ïÅ”e0ÓB/¬Yßõ£éesèì,{úÖ«UÒrÓ]w­Æo=Ø«W$)°VFh÷C½w®¯üú†×ÃJ¯$“‚Ø Ã'C‚aÆUçÀÏð1‹ÿ§ãÆúfµZ®‰ûíŸ ~•oî¶ëW+´‹f6~¯câ±ñ)±X¶g‹GBì„!E£Ð×ûúY\ú; œ»{–ë-Æ]/6l n²ËÑîÞGÉ®¼&ÒÍ'„\›¬º­õÏY€:öCb‹i|èUÆL$K# m¹c«[§_!ÔU†ìä²nÙ;+Vg,`54š·hÇb1ÿA#[¶Rq¼bÐäî(ÊÄbš=ßé'kL ¡EJ I¤I;xÑ—lf·Yn²è¾Xð·éVþëaä èÑÈÿ¶%²õ&vË^-! b†iÆK›ö2¡ 8“3]¤ì#åBÎ-“³0ãIf½Œ¶Ìá±›´8dÞ2ÊÆ:3K/_½†ÍW~͉Xk½‡öÈbÅßl°åvW´+c޶\í’X ¢­]g2`4Ä6±˜xœòÕâGeDæ)®Ä´,Å»,ã,–iƒZÜ«—*!IàÞØ«+ ƒ(pQô²¹ôvoýxGÔ˧'¦ ,·Q‡^Ã3W)EœQ§R°ª¶«un®¥}sGˆ-#Ý––$gkîØæ¦Ö2Ô-š6mØÏÌ™QäEøÑ–fþiìÂU!^R< Ê.ñvv1wtÑÎû±#1ÏÜÁ.ÓºÞ /†§¢~=÷»ý*ßÝl' Öì Í3Á­µ|9Gf©%’¬k5Ú!ž8ó©‘Êž@%°õ„>Ü"¹K8ß ö1s¢2aÍš­Sãl“ÚCk{;Ù•,tªæŸ i«/:ÖßÅŒðvçºñÈâžÁƒb8úV¦ÊÓúƒ£›Ô«•¬½\«:™=ÊöžËÐŒ¥€}ÙÆ5ÆHNÃΕY×-¹ÎÖù¤Wsãr\[t«½<€ yS§ˆjûÂzY×0qô²¹ôvoýxGÔËj-]ê?zï]ëq×zïR+EžRÊY«æ<·¯ˆ]ßáþ÷cÂç¥[û¥…[ÉÉNÀ†Q h¶) þê>–W>ŽÂ­ÿ¯“jÒ~}µí kÚ×´-¯h[^жŽbØi¸À\`.0 ŒÆãq€¸À\`.0 ŒÆãq€¸À\`.0 ŒÆã5zñüÔ¥¯CýîÇ…ÏJ·÷K ÎÇ*·2s£ÙXmJ]±„±S`YöfÅQÍ@ÖK±Ç7}¾¹mk ?èûxúY\ú; ·þ¿Ãt?Þìx\ô«t:­ä†›ûØúY\ú; ·þ¿Ãt?Þìx\ô«üŸjj¿´ÿè~×_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_9_ÿÄN !1Q"2A‘BRSaq’“¡²Ñ #0c±³ÁÂÓ3@Pbrð$4C‚á⃢Ò%DñÿÚ ?¯þ鯳ýÙ¸KøœœV¼÷›‘ƒh±<½JX¯¥L&˜nŒ××€¬\X±uK‚·Òã5³ õŠ‚@’X#kw[Nº‚NwG˜ÚõpñR´òJ›Lˆqâ±Ûˆ¨df)N‡}ÔœE•QOIƒ æÓªœa!‰6¯$ ôNƒ*ïkø«1´k42ÄHºÀ =L³œ¡ÉK‹fÜ=vÖ±ñ®+É ,­®mÃ6¢œ[+ÅmWœRäùEHâåªèÄùþ«Á?ºkìÿ_önþ''£hò®câÎ×§Vtš&ŠF¹l·Œ¶¶òÖ!yø˜wꫲÌwue4vØSeb½éŒ#ZöÝX†ÆM!]•“f·»ͼÛJÄY%ú’²³å‰Õ›hÏq{w¢±/¶ÄÈŸ%<ëìñ çšiÀvÂÃJâL¡£f,³*Úßx©ÊÏ4±Y‘Z<è‘åc¼õñ7ú—úvÄ#ªuå A5üK>!!Œáfe&8ÙOòd6îÊ•^8#_•ObI#Œ«m×°ÝFï+cå7¡ 53˜óHŽ. Ü*[Á42&/5ö›T'J{Íò™œÇÖ¨lØ>«Á?ºkìÿ_önþ''©vyT-²ß¬ž"±„éÿçXæõCÿcÛÕܬ{z¡û•oT?r±íê‡îV=½PýÊÇ·ª¹XöõC÷+Þ¨~åcÛÕܬ{z¡û•oT?r±íê‡îV=½PýÊÇ·ª¹XöõC÷+Þ¨~åcÛÕܬ{z¡û•oT?r±íê‡îV=½PýÊÇ·ª¹XöõC÷+Þ¨~åcÛÕܬ{z¡û•oT?r±íê‡îV=½PýÎOþ鯳ý|†ðV8úŽSbÍÆçp¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°Ñz ð¬4^‚ü+  ¿ ÃEè/°ñz ð¬<^‚ü+ ¿ ÃÅè/°ñz ð¬<^‚ü(“§.Ro•º¬OQäá/ârq^GXÕµQ—6W72ú¿üêuõùÔëêÿó¦,—€ÊA6ëžÖx'÷M}ŸëäÿZŸšÀ1Ü/­8,»Å÷SA¿,‹Íéj4òÔªIêÌ?§ð±ûÓ„¿‰ÉÅy;Ñ_ÄcÃ@@Ë Fš÷&¿ŒÁìýºÆ&2öÙä÷¾ƒ}xCî?Ôj"RÖòuV:X^[˜’=Fáqz „€†.:´u ¸c?òZU°!¨e–x{˜Ö÷ë¸òT3H‹üÒ«¤æ;¨;®-sFT_Ím÷¬4ÿ*Oÿ_'<øè˜ãˆå‘XsáaPˆ3ÿ$ʶä¨&šL9!Â-ôÚü+:í ¶¶B¡ï}õ ¿(Ÿ›9Fw °ÖÖ5Á<=8¥:õüÿþ鯳ý|†ÖÝL;i‡m0í¦µKŠ6°µqc¨Vß­B£B¸¦UȘk˜M¼u'Èÿ‡C'Éâ ª¥Üt¸ +NxŒø|Eµ²õ8ñV:FÀÃdiÏ)ê[îZHç‹®]Ú5¼¶ÔŠÃà¢Á"¾ÁF$ÍÜeÊ.+æ|ZÃa€»n÷½U$ç ç.Èí©D;ü•6!öÉœâ PðÅþQ­I> É“ bPíÁÖ¦ÚªaŸ*Ôö˜vÓÚaÛL;i‡m0í¦´Ã¶˜vÓÚaÛL4ñÓÚaÛL;i‡mkô‹sçäá/ârq^NôT’®*Ëœ%í»NäõTØoíÓÈý¶Òþ<¶¸:ðŸ¡þ ØJ¥oÂýuƒ•äŠâ&Œ]XoÕßµ&K„ÎzÖX„2 &’UÊÝ@ôŒ±º®W €z;FêîÒeB¤ Ü:ê'ú vœÓÍ׺áHÂ3K·æé›uFÂO”íQ+œ ôo¿}Cvƒ»bÉæ]i’] fí×ßQ>Ûi›fT†µÆàk3E1ä[¬Ñ¸Q¼iŸøpBØ‘gÍ⾿?Á?ºkìÿ_Ï£«ªï ùmHÍ/¢¢×tosQ<Øi$Û)ŠÁÕÎýIêLvÃáâÌ3uµÍDòàæ!ÆÏ¦®:ÅȨ8?‡‡\šfÖ®G,ñ›Ð)&%KžùMî*Ïñ –ÅK‚µ¬]T=A4XØ–ÅakA#ZÙsT2ÇŠØCµÎl¯Î—&ÔŽoˆ£îúÞ¿›ß¯ßÉÂ_Ää⼇# ±ÅÖ(DíÅ1í+QÁê—ÿlã¾üŠ·(ÎXس7P敵øëõ'üãÊuúþ鯳ý<c Q©'¨BÄhAЃÀýjœ›‹[Kõ üÈÞï¢ §œt /í¬<±&ì΄ |g‘JßQqm ùù¤vÑQEÉòQ<oË"•6ãc@³6å’xÈŒS¾¶]~qÛÉ߯ßÉÂ_Ääâ´iý´þÚ“ÛR{iÇm0í¦´Ã¶˜vÓÚaÛL;i‡m0í¦´Ã¶˜vÓÚaÛL;i‡m0í¦´Ã¶˜vÓÚaÛL;i‡m0í¦¼ž ýÓ_gúþ{¤%ŒìÚC•v²]#ÔðÕ¼Õi¡Äa¤ÄI±~išÉ—+ñ ÞzÀ÷×1:mdʶ`¹Ó[æ9ºÉŠ9d‹oÜÇy3ø³FòŠpè²LcCÎ+´›5'­XWÃGѦ–duŽ3.Eg,C›vVäÁ10C2£»#¤ÌW{’C uÀ\Á2ÀË%œ8vÍ%Žñ“ªÕ†Û,sBÄÎÖ ,m) T‚mjÃÞ„ñÎdfkœ’ݼën½4;u0˜K!œÉ“?ò­“!=\:ë ô‡ ¶ùFѳ,Ÿ'ùG5o—-úF°Gl÷‘†` eBÚØ_R@¬›8ÖVž +»£l“:åyÖýÖ§JÃŒ7ûÔA³2£šÖÎI¿j•ɉwÜ‹[ô»Õb>aŽË•g‰¦É&[–Ô»8¥Š)–2seÚF®VçSbi@â!±H!×ͬV"|LÑN« €³t]õ·ë‘b ó‡31ÄgXö ²-ÑTð:ÛÇVžEÃaB¦Û Ñ(ÚÉÇQ`;i¡Û¬y„ÂY æL™ÿ•l™ êá×Hæ‹g,ЛV€Št.·+œ³.RS}*8¢cb„<ŠA!µ2_]:l]ñE™¶’º2®vŒ‚ _›×z³ÆDÚj »ÄooýQ쬠IÎ-™ÇIµÝ~߯ßÉÂ_Ääâµþµ<“ÆŽâê¬Ö&õ£^³j•C¥¬·Õ¯¯7ê ¶k˜ßæoúšgêŽüãã·Öø'÷M}ŸëåEÚ3¶w"æÂÖ¨Ÿô‚|ýB£YurÄ6ë¤Q.Ð&uëR¬ß•7ÐçÚdÓ¥l·¾ýÕ%¢çól§ù‹³“R/ªÓi†lðè4$ƒ}Úîë¦âq¤mî@ –æØÜ“ä¦)"« “!€æˆF«Rw±…4áv.%Œ"".Ðnr¨ å¦ú9JËaÒ€oÿQ§Ì²2» ÎJ)ÐuOÏ™6r WAmßá ¶]žl«Ÿ&ì›Kgµº¯OôÙ6y¬:966µ­ÐÒ¤·ÉXˆU¸z“k‘®ãRd0ÜÆ#UEúVHÀ]zô¦Ùöhˆ‹˜\f´j¢úÓ ™9²:$‹›v`²øêBâgÉ}åÀ* ÷îcM˜ª¬k¸sPQ§(å’&¾ÅMÁÖ¤U‚ÇhH;ÁhÐjE¾]›6Î2Y-—+±[°·}OÎÙ 9æ©0¡EŽ‚¤˳͕säÝ“ilö·Ué²µ²á•®òÓ,+ ̉$jq9P|ôꪒ,¨«j®¡”*€<|iÆ„°Ì¨ÅXï(X§ÉFäêI£}š×@9«¸ijï×ïäá/ârq^XžVÈ-—-¼÷5Ì”—*í Ú³AÚNuäxòf>m*Ì«¬`(u;­VÙ0Œ æ=w5Á~ê°”g\£{ï5ÍJA !|@Þ€—amtê«+í4ko%êÁePeG:þ:ÒU{^×ʾ jÛW¾m-šÛ‰¨ Às@ËþEÂì©Ó?ÍI”í9¢EèîîjL›V¸ÙG™Øõæ¾€W5J\¨}·Ñ»f ÕÂÔÉwlò‹ZÝ,Ûè…;BØ1¶»¯BÅ·ªðOîšû?×Ê/’G{q˨c‡Å¨æÛ›þ/k DeKsmçÒ»™ôô1·¶’ø˜'V"x™|™ŠÔkòhHqvÜç6’;k±žÍGô`¸Ì‘o¡ Žª”}4;ub:ól¶[÷í9´×8•.‚†(œƒOÎÃæ;t”°BAÿ Åb6ªFÒ™˜4À´q*Ü\åŽëTâl2Ä&òظ2J•¿4«lìà[£•Ú;í½bo4ñ‰öb2rE”³3[yЭNɆ•Šg…¢d`3/\×fÄa§Û.YâÙ6hãÍÑ%®5ÑñáRwKtùå]¯Ä lÏ,bR¶è†ÕGl|õ‹í&[Œ6Ï™˜ŒÂ#-ú^k^¤±Ä¢ÈÝã5­}j_÷œHs6e!@\ÅÜ›ŸåÔ5©×ûh#X²•ÌÄncu>ZÅ|•dwXU"Ï|†ÅˆÌ2­ôë¦X¡0]Ô]Vî—ãDma•pê:¤‘تØõ ׬gÊŸ 3L†<€­ò–‰®sO]ª@N1f·K! ºú^õ‹Ï,Hd•c‹1Ê-`ƒ7=¹Ûºªv’P<ް±”f6ì{ï=­\øÛ µ‚WŒ£¯ÓG&6ÜÃZ*R8£:FÝãG»6öÍ{ë»—¿_¿“„¿‰ÉÅy\¿ ßu9F™MLÆNþâãÉ¥…HEú@—ùªgD=Ê?íR±¿Jäs¿Í¥Jņ縸òi[BÇþlOgò0¸—$qŒ¨ »yM9ÉÞw7ãRµÇE®.¾M*VY:ÜO—¨Ó—cݯŠÜ+!êÞ7pÝS4jwª=··šœäëKèOã©ïU:|Gš¥lýO~uJÌH,O¥Lû.ó6–á}öóÓœIÜùiËðÌwê¼û¦¾Ïõò÷í\ùcc°¤¨ý.ÍÕ®!IŠ©ºæ=CAFÿKr|d5ê10*T¡6L§¯si3¶*ÖPêî×2›V6> ¹dÏhË ’4YuaaÝRý*K´Y¯®[‡)oó¨5ÌäEÁÆœ™l-¸¥ïzt\2« Hv´L º¨ÞÄÖ¨¶°âœJQ[##­ò”k,Õ‡ÿp1lD*öæ ³íržvaÂÞ*‹c j3f&ìÏrl5çRXGúæ<åË‘µ"þÊ…Ê.|ÆY‹ËÏRœÉ2Œ¹o¦›ëÿBò8g›;6Ö=™Ìr t¨¤0abÙb6lÑs„™F—%ZÖ-´k…à;•ó + ÿä K´ú<àeì²ôºúV¿UaŒ˜¬2Õ¶–B!NÏ/H𡼨Rã9nkG&lèRÝy·Þ°¥CK¬^\íôG0Pr-†µ‡2ª;¼Y$Ù‘œæ(Ç+fòR,[L %ù¢À.óÕ¥26# –Y¤ŒçV˜Uç–TEµ†ØI‰$f“8U¸b±.Q–öë&°Äbq¨Vg2]Ab˜Ó(µÈë& Ì“w*ù]–d’Ú8Tr>ÈDo1Û¬]XÍ—x½·ZÝUÉÁs¾wÖE”»¹ãͶáK“™e½ÿ–‹ï¦ü·åï×ïäá/ârqZ$sz¼¦»MHÞ‘©Ò4í鑽#R7¤jFôHÞ‘©Ò5#zF¤oHÓ·¤jFôHÞ‘©Ò5#zF½#R7¤iÛÒ5#zF¤oHÔ鑽#R7¤jFôHÞ‘©Ò5#zF¤oHÔ鑽#ÉàŸÝ5ö¯”Œ‡\¬/­ôïA=ûÑæ®å-!h°ö/`Nóm,:·ŸG$°ªÆÍ:¡È6ˆ²X¶í3Z’LLŒò¤m›Póx ïë¤e"Í~ QÑE²1VÏ”Û1ÙskãÒ°³ec‘[fÖ-ÞîßPH1¶%~=ô ,I3$ŠAú5Ï–ÆÖ½bv[&{ßÎ-X½¶#%idGò•œ€sß-ª !v裡RoºÀï¬<±ÊýÝf¾œÑ×PIÇ£¡ oºÀÔO›òH¥M¸ØÔIÌ‘•_)‡–hÓ¦ñ¡ez‘W‘±Y²F¢çšÙmã¨%’8¿˜ê„ªÿ˜Õ’B9Q QåaM“g’Þ×þZ™óÚ •ðéÒ™P”ßvÝXye‰:r"Qå"ŽÐâK*F£[¥†œoz#x?;¿_¿“„¿‰Éß-w¿™þÃàŸÝ5ö¯ç̱3"²«¾@Ö`X Mº«`öCŸÌÿ„èo·O«<+ápªñI.Ë1HÖùf ¡YNðjS/5.Kí °QtÚ€3åÝz$Yð˜alÊpù×-î Ô›V'šø|°ú|BÉ®¼Ûî¦I'“"å)¨ØÆÒuºq£ Itp'/e`m”–u¸QZ Ãï©•F\Q†PÂÅŒo“+q'uHD›;¦xcÚs€ÏÖ(áà˜JÏ3¶!lѲ6iîºeYrN‰ÄíbŒ°\¬&K”Ϫï6ßB%’7r)Ž#*»äÌÃR7 ÆG„‹ –—3€Ñ¾vfq7“0=^CX„x£“4,â-—Ò…éÜk}Gš"ÄL³ÅòÅpv$Èr‹7YáBpœÙY±&<‹0XmíﺤŠ<,m&YRm„Ð+»6LNÐkqÍ<)ÀS†Ä*–ÒäÄáF½f±qÃ"@Šɱé>s}Ã[Ö*<.dif"—;;ÝóoæÞ²ÀqRb–,@6l:ÈÃ'7¨ÇÅD¦Ä©Ì4àFÿ߯ßÉÂ_ÄäâµÃó?Ø|û¦¾ÏõýB’£{[A}×>>U-mM…ì8žU-mM…ô“æåRîkhxØÒ–¶¦Âú IóR•¾¢âÚAóÒ’«Ò h8_úý~þNþ''®™þÃàŸÝ5ö¯çÀ’¢•Uiä1Ä ¹µ†fÓ@*¶_évÊ ‘»êÚ6Q›N½ÕÊD%ã†V“b%Y6|éž§®°×‚5‹e‡YKDÆ\Ãh$S› Èt¾úM„xœ$·†å€d‘”-®SKôqaÞe[`ÚƒéTix|LÊÒ0VUDfÔ€/ÕF1´ÃcHàg’0VAV_[ê/H~Eòq,isüæú-÷èà·T{tô7*¥œØ+­‡Š“äøTLL­9ÈJ•Y5l·ßç­’–ÃâÒHàw’= b¤4šƒ®¢ô‡±A„Ë »X´ñæ%ˆ7ʹM€5˜D•`È®NP^Ae¹ç' ÖÁ.%tœ»;’%SÍçZÚcKôqaÞe[`ÚƒéTJòEv}£.%[M¦Ö,¥F½õ½úýüœ%üNN+\?3õ"¢sòç±µøT =eüªp/vNÝ߀¹Ty«¯m5‹ ¬ ¤o³+òÔ¶0\DUB†éª±áNet ˆˆ¶e{"(]G]©Á;5„†Ue(€VFM­Ö*K킫艪€æâ©4“I*‡p;÷U ÞsRhSdÍ‘32[.V|¹ˆ·N,Ë‘›"g*;–.r<¦Žg°[Ø Xt@úÎý~þNþ''|µÃó<Ÿõ¹Ü£‰©uncFçV=úþ?|s«îC]u¸é]É#³æš–ÕüLDØõ)€è•ÞP‚o¾¿ú‘ÿ÷ÿò¯âK3R$•‡H¶âä7}EàÃwǤßå)H¶ju$êossääðOîšû?×ÉÜŸì]Lù¼œ%üNN+_ÍCÑâ>4-n›ʱþ5õñ¨¬@}cüjëãPXÿ€úÇøÔÖ?Æ >±þ5õñ¨¬@}cüjëãPXÿ€úÇøÔÖ?Æ >±þ5õñ¨¬@}cüjëãPXÿ€úÇøòx'÷M}ŸëþÍÂ_Ääâ¿}wÔl¾ê”,kâ€q¤H¢êiÏä(àÈ¡Oa©3Fû…7°VóYäÄJ.B¥ÞÜl:©‰Ùœ²# ¬§ƒ)þ£Á?ºhÛù®˜S aL)…0¦˜S aL)…0¦˜S aL)…0¦˜S aL)…0¦˜S aL)…p—ñ98¯ß]õw¿LJêêÎwŸ5s »ž¡ñ5;;׺õ¥ÉÄëñŸëZÇñ˜á·Ò-ãx÷Úç¯ZɇÅÄѬ¸ì®iK¶·ëå­¶9p3HÑKˆÛ¶eF+!·DéÕ_Ä1[lJW!Í”ÑP5¹Ç.­zÁ ØrïÓíÉ"ös¼)Óú_þé Gž”vRŽÊQÙJ;)Ge(쥔£²”vRŽÊQÙJ;)Ge(쥔£²”vRŽÊQÙJ;)Ge(쥔£²”vRŽÊQÙJ;)Ge(쥔£²”vRŽÊQÙJ;)Gex7÷ù8¾»ê\ΑÝGms™ÍÏŒš…“»rlsx€Þ,•c-{ëÝéXŒƒm$fR«˜€Šê;Ûëˆi4BAkÛªm,M·y¨†xÉW3óså;=/ä¬JHò¢1E£ÌÊ¥ù½Êæë©Ã¤k·Ê·³«³.œÛŒµ.u’i`+” =›N¾oÕx'÷Mx¿>Rq5 ©H*AR T‚¤ ©H*AR T‚¤ ©H*AR T‚¤ ©H*AR T€žùž ýþN"»êÔîÇsV>!¥sXns³wF¿$¥6Ý}+PG—¹>/%_lsf¸·tzª5fµ®@&Ü)?}a~ÚT°ÌE…ÈÜI ¯²6±å;üÔ‹´ïì/ÛH¨ü  ùmJûò€>êE]o ^4ˆÝa¬žô Ỳ”™´°±Ì,n:éE­–Öêáä¤U ª€·’‘F~•€×ËÆ‘UF ¼h 5^?UàŸÝ5âüùPL¹Ša¢mTйfôŠê°¤^ÁH½‚‘{"ö Eìµ÷82øÕ·Š9Œ-`ÜFõ>p¨Õ“Kòø7÷‡']õ:¦T¾§]æ¤:^˜FÉÝÄSmg"Ùû•ñøÍ;"Ä "ï5ñšJã­Ù¤=ºÑ¼$‡^ø÷ÚÔ’#ª/ÈÖ;Ù›[îc›Kªy3|¨ÆRç&φ^:|œ‹ÿÖ)ž,+bjéqÿ*<š@&ôÒŠÍ lF«gæHx=”ä6Õž~‹[sråÝ®kï©%‰)ÃìoÎ{œÛ…‰Ý¡§‘A›e"’ݤt@Ê¢ûïRÈ2#Þ;ºœá»–݇zE¨X Žÿ?ô ýÓ^/Ï—Œ¿ˆü†ˆ«87Ì>oLjñ_³ü4ù§.Tgôu©FÛ>]^[_7#fÚD’úböåèIp¾mÿ4æÓê8Ž_Þðäâ+¾¨’B4»(?}a!o,kð¬©>‚ƒÕ/°€ÛÆÍuòéXh•x[}Ô¡TnQ þ«Á?ºkÅùòñ“ñ\\ýÔ´-WÚæñ[®—#‘Î]öóò}Ÿá¯ÌÈOv­k“ç¨ö?C'3‡6” ?]Šñ¬4' ’A"i ¹Å˜ëÙC.ä±É’ýÊ®`·¡‚L“dÈ>÷)šÖÆ×¥Ny`l¼8R‹å˜‹Þô2‰Èñ×v,<½T9Ìrκ9A=•³ âµÅt‘­ÛBÖlæ­WÌñrø&÷‡']õ>VX¡ëç6—·ˆk_ÏÛ|–R‚PH¹àó¬ÄáævÔ»£/sQL’¤g(¾ŒÀäjzª)^,<¶.Š-eóõÖÄ›Úõ³ìiÚ%Ìq}E͵°¨äĪ"Ë#¹‚£ê¦×鮂£–U„<‘­Ö0FnuÈ;µÒ˜fJ6ñÎeq¦eX]§U ¹™Â”[wØð¬3ßm*-ÑŸÎñßÉXy¤” ’XÑA1©ÝŸ¼Û@5¨äı‰g%èÚö7b8TrâsÄ1D¢ëÐŽ…_di¸ÞÖ¿Gš¡—bˆÏ–@.Ñ cØj 幊  3"Úòsˆ²ë×W ®`ÂÅJèÊè‚*9c†E2E;¨Èʺ“pM´ãQËâ?áå‘l²i}5¸¸Ô^‘åškˆâŒ]µc©ã¥t’m Êëb¦+g ÛP¼ŠØ‡ÃÊ@ÑI!yÃËä¤À²|H_¢W¾[{ïÒöµtaœÇùr#~tn Äãñ.U?E.Éd¶#/чb MΦ×£‘Ž2ü (1¬ n776;ôµE,í+â Kp™…õÔkml(<¤ªKG0F÷"FbtTrF³Üáå‘l²X_›­÷j/ÉàŸÝ?3ŒŸˆÜ‹˜.£R>êŒúmñ¨Îf'5Ø‘n&û¨ç˜ô¤ü—‡/ø=Åù‘êº]Z×öŽàÆb }À‹^öÖ’Ì%Û oâµ²Ûó¬ |E†Õ’lŠäir»3÷Ô"š,{æR XÃB+g7ȲKž¼»1~ÞHõŒ’®jK²‹f×= ª¢Ê+x¡”¯ßBÙE­QëÕsqÙjê¡rÚƒÀñù¼G/‚oxrqßW; ’ä!Òú[p¢B£Æ $®"3púßCazu1ı ¯>eÎU‡ŠòeÇ$r®{å;6 bEδTIŽfdßa™5Óˆ£L]‹ms„–AÌ,7iKˆâX¡Ä1h¦ˆ¨¶lÑŽp¾¶½$“ˆ šYóW ›*èÀÚöÒ¬.Š‚ú )7h)‘pR´rǿѺº³…°<ÖþZdcÖèÆù•òìÂÖ¶œj<Òͬ‰#>Td¸ …F¢ÛÁWgòx F^r$…êêŽ Ì1lÃ3ØMò3–Ê:ÄÖKkŠhv£#,Ž[2myι@±ÔèoF&\XRÛRÀ£„–AÌ,7iMš 0ñaî¹Õ‰ò樰ê¸oùɘ»2©ÊÚ''‚tüÃi!fÓŠ±ÌíùæÀo&º,y¾@2ƒìþ£º:y¹|{Óˆ®û”Ù縌qÊ3g!³NÙ#ñµ‹}ÃúÏþéù—W^ŒŠl±OØ¿ Å?¢¿ Å?¢¿ Å?¢¿ Å?¢¿ Å?¢¿ Ä;/{ ‚©Ú©Ú©Ú©Ú©Ú©Ú©Ú©Ú©Ú©Ú©Ú«3ø·V€n¾ ½áÉÄW}_ð9^ùºM2çó^פ LÍbËlt YPt¯Ü_ª€;)ñ–u#.¬bB«Õ`k."VÃhÑâÓ6k톡ÐxüTŠQ'ÊîÃ@¥×ñfµ_ÿ¸6í³ßµÍ´ú<Ÿg“Íj¿ûK;|¥Ÿ.Q°ù=¼{í׾𸏑 ëÀ°ã»úŸþéþÏà›ÞœEwߨ|û§û?oxrq–×î«e[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µ±öÖÇÛ[ml}µÿÄ*!1AQaðñq¡ÁÑ‘± 0á@PÿÚ?ö4ÿÚÖ§õÁ©Õ˜ý %­XSAI‹t»Ù*0o[[̽¼—n€v(<Üh‡©ÙZÄŠÚ€ÈTW2ˆ0WÕ:ІáÎ3!©¢(ƒRÞ2Þ2Þ2Þ2Þ2Þ2Þ2Þ2£¥¢ µa¼n Žƒ^N‘l ]E™LdÀtÓRi©‚œàòºª¢F{Ó!ÍL~°dͬ1aj-ã-ã-ã-ã-ã-ã-ã-ã=§†M?ö±¦ÿ® n¬Ãv#=GcGBQ;Jˆ G,ãKí7ƒØMmpb©o,ÅÂ{ô|—˜½•Ý%ÐA­B²‹F1Û3%uM(•zË5TU¥W, ×úFˆë»1T/𓨢£QÑt*Þ! "lv3–_¹„Þ0p¯Dw¾ÎàÙSn1dVºëJ¬ÿO°ðɧþæïÉýHjõf8·@×g)n×+E‡ý´©R¥J•*T©R¥J•*T©R¥J•*T©R¥Oiá“LkQð jUí1\ÿìÙ»víÛ·nÝ»víÛ·nÝ»víÛ·nÝ»qšø$H•hÔ|4˜WqÁU³U/ÇŽ‹œgãý°Ë\MI•ÉEºçZÛ%h‹?Òoü@iá“LwS3è0óO4óO4ÈÔäk4FÌ^&aMRæO4óG:«f8݈{Šù\óO4óO4óO4óO4óO4óO4óO4óO4(Ýé—zÏ4óO4óK†ôOÄ«_ŒW8«Ñý³©ö•ìä®(›¾Üë ~\Vï#(ßÓ4âóŒz˜Ä–‘P,ÐÛyzY<;ø¼N,L-¥ ¬˜)APàVWèrr4êÚ™w·«¯‘jƒXp£0U´Ëq{a:̵¼T=~]˜¹€t/QQCFÁ° ,ÂÔq‚#®@*XpÇ…#š(ŸÈÓÃ&‰êpµÃlè–³µ'jNÔ©p|FÕË{*Џ˜N ³6 ghPI„ê!q1Yq*^ ô0Ö,ă7éüí<2hŸ^kzþÿqņp{CMpI1çaJÌ¢Ä6àµ*ï™i¨h* %'âÔdg7vå “ÙË,}¼ë¦–•ÇœÕÐ;\¢^æ"£y |ÖíÄDbWË4cHêÀmlkšËûi8a.\¹qt»fŸŠW2uüÙJ°!΋+#0"©¯ L*“äȘCHq •iÓý ©€×ƒ®ÒÛ–ª¼ÆÕ³Fjeμ媯"[­.8ÊCKn)VÝimUã3俼ŕâçù{O š'ך޿¿âäÜA 2«¤Hç# aD¬ ÖÍ>~²,ª…M‚‡/á“4+%@l8ÌÜÒ—¸Ÿ$(^Ã#¿ƒ};¸XY‰œ Í à° ¡€U%&£¬]”šCz0“äã..—lÑñCªæJà<Þl9SæW1ëç 4uóœ‡_9¨0üÎÞ½;zvôíéÛÓ·§oNÞ½;zvôíéÛÓ·§oNÞ½;zvôíéÛÓ·§oNÞ½=§†MëÍo_ßñB ª±ˆE\ÄÝëN,Ô€8C­2hfXz&PÆëK¯V:ÚÙ©ÒlfÖ³¥œšoC:®¥®âaÁ’nrbJ3‘)\ú¸Ï(½ nJàà6Á¬Wî(0S'dô eJRµ8\´˜%)Â6–°UÆšIÜ$ÚF cÇJÎŒëBßB°=£Ôîh+s¸·ˆG22!Ã&!5{Lú»¶Ö¼»5–Ý"·"eº†eÅ6–lt3‰IZ´ÊtŽ Š ÉÙ=…™AÕ4ŬxP Üu”<åÀˆ”2*c[tn ¼(Æ(Wz›ÖÅLê^'eW0ÝŽÞš+leÙ‚uÞ£ãGUÌžˆ!„Ö¸lÀ(yÃ-ÔæÌè“ÎÏ;¦’ Åjf͉ 0µ<ìó³ÎÏ;<ìó³ÎÂ)ØÌÈlTó³ÎÏ;fcÀQ¬1 .ó³ÎÏ3=SÕ=SÕ=SÕ=SÕ=§†M3ëÍo_ÜJF Ã{rãT6£ö')A¡z´,Ƶ Ç k‘S†• ÈÐéjÀ.ŒñŒ·­TÆM<õ”™Fbñót+®äSl&Ób‹3sp1e±À]"™k;Á«Íx£?Pĵ„cjÊ0 fjãJÖÑ\ˇ I¡W Àý³{ñkF±²½ãR¯}sÝ"a7B-L€r<â°7†°d2Ø@íßxî§f¥qBæUU³@*ê]‰ÅQŽƒD_æbzœQ+i7&ÏJ9äžâó«„léÑi3]‚ªj^/\Àý³{ñkF±2;¡t<…¸Ôñ~AKB)ƒ†0ÍÿiG!Íq æ«TS·Ƥõ UÊ«FêôN±mFîcëvÍ .u\åÝ;°è•{ÑQqIÖ1|7Äwå #®â1©äŒ.ÒD…ºo™zº§L¡J8D-¦NHòžØh2VÕGM í•ZÜÃHØŠÜ .²++%mPdŠÝNÍ@žÐÑ[„œgš¢ž%@ W†‡2!/8Q0†°6«LÑ)ldÎÚ–¹¶!k¶ «EÇÒ¡àÕ€ NN?L̯œåÑS5IO”*óR’’’’’’’“ÚxdÑ>¼ÖõýÍyäDaçT•Œûp,´ŠZC)€ùø&„VvÏÎ÷€ùw¨šã²ÚÖëƒ0h„¶Ã’¿3_Ð}-yáZC&ìÚ‹2V—Â9?óDn–^™þZ§SÖ^ˆ]7›4/™abC\#Šáˆ—ð›D½h8j0ªIWªµ jg¸ô\èO™ƒ¤üÇò}:æ`é?3Üz.t'ÌèÏ™î=:3æ{E΄ù ó=‡¢çB|Ì'æ{E΄ùB~ç´ô\zÓ÷:“æ{O š'ך޿¸Ò jEš1b•8)=â¢8"¶z‡¡x7aãD¬ÕK…Û"VSNS+§0P¬Í9åÀ0Q\N¢.°K†‹<ß)_Ì¢3¶T⼓e÷ 8¹Â_hKSEvfRÐD”Jå&­M†·ªÍbEJ—|¡‰ç åÕª’ìãQ Š–—g„«¼œmòKAZm(3†‡Ó¯ M¢f²hÈc1­>*T¦¯IvÓ(*¤áQÐûÄ¢4ªÈkÉ¢·,Ê¢€Ñ¼Ùåe´Ž¹8[•Rß#9È DÂ'/Aá.\ë|3GÇ Œ~4NžB5~&‰_3é>3íàÑ>Þ'Új•8¼üMŸÏO©ôš"JøŽ3=§†MëÍo_ßñXÃS‰–ó:G,pFk"õòÍŸÔÄò³Ãéu愊o笣,t Ø Z¨¹ lÌðUQ~ó‰É¥Ê ª1‰ù0™…f®1WR"!žÀ$Òƒ ]&o)gm–vL’§V‘Ã¥ iUDåíN5ž‘Î cTЀD—Æ­\» ð¤@%ØÚ#B[ '|iÂHjS"º êìkZNÕ4%èÐØP8èÍò"Õ@°lǦFŠš[Uã2t¿J¥€v†¦ðCå‡;–F…®™šàÅÓ‡]s¨š¼IUWxøYäLJKáš>8hõd™ù8=!į˜¥|ÊÏâh•óà¬zJù”\Ñø•ó+2¥|ÊÏ\%cñ+æVe|Jù‰ŸY_1'ÄH™žÓÃ&‰õæ·¯ïù ÀÀ’Ö¦€Ñ¯/ µ hÐ8øÕ³O™FB €±[ ®Þ-¢ È£È5¼i2Ål2»G$(ÞÃ#)$–­[µ¸?¹S\|:_ ÑñƒO«'†‚@ù•ñ+Ÿ2¾`|JÇ\e~3+âV%|ÊÏ‚¾efV%|ÊÌ©XüÊ•ñ*V}~%cñW̯‰X‰™í<2hŸ^kzþÿˆ˜Zºµ“œµÚ#¯„;ß»9&ä<¥,8EÔFï H ¢þc¬RâÍ–¹ JÒ­iÆ ©ÅÖ¹»­Yòš?Œ‰(gu—ç5¦`%çXª媗 ½¶4²B¡¢ê+Ž¢ÔÌ %s±P'GR½åäÕAm6w”ô%BÆ€°Ò)'G2•®ùò‹ÇFùZè±Æ ©ÅÖ¹»­Yò”«˜0.°G‚)¸«4üPÓpl¹Öøfˆ}Y<zCˆ0ú›z|ÏöP}®ÑHAA¯Òüa Ö >¬¤B¶ê æV/”¯™×´ÚY÷Še`ñ Á{Ú–@˜Q,•ñ+ç÷>å|Fã?Èß´užÓÃ&‰õæ·¯ïø«9+ž@ŽÃ.0Ø/= a‚¬¥Å9G0PÒÈ5³-—ÚQ"gQx“@Eì@J,AêN“¡ ¡(ÕT"Üå8…‹•M‚\"i•˜ ¢â &‡RÃJ…ò¡}a-H·9z"–Þa#¨ï¬qµAJàp$(© Ú"œ, voM@n?±*" Á˜ è ­â¸N—Ã4|@ÓèÉ ÄczL o¼ýƒx¤,È[À84%|Bý¥|Ã_ÄzEóñü >Ä£¾!9h44ÉQ©æIþ~çû zá8Cu¦°¥¾ïÜHsÃRðÞ ø-©µè”j<ñ¼ÍK»þã¯\'ù6ƒÑ3ƒ×/4bçíÍ9¼˜q©Äöž4O¯|¡æ^SÿÓç†9cGÆŽ•Ä—tКÔ@ …æå ƒŽL}N]iîç¥Ð6-þ!§\gûlESX¹sÈ‘e° ºÎ2†¦uŸJ¯y¥ñÔ .¼ü?Ù‹õ”þ§Ú6uP‘#¨=,n¼a›C*Ó”M/AƒÒ?sy·â-ÒÎg iŸ;ÆZhžiWÄ:é€ó§´ðÉ¢w\·áà8¤Aú~§R}N¤úIõ:“êu'ÔêO©ÔŸS©>§R}N¤úIõ:“êu'ÔêO©ÔŸS©>§R}N¤úIõ:“êu'ÔêO©ÔŸS©>§R}N¤úIõ:“êu'ÔêO©ÔŸQ ðýJÜn£+ë(>Ð~ À~çÒhÊ_ÄÑæR}'Újð}¦©rñù—™OׂåüKÄYbüÏiá“OþCã¥pN‰ÆLjúx>ÓWãÁöðhŸoí5JöðlôðjŸI¢1ôŒ\öž4ÿä24z°¤Éª€^㌠»E˜J¿íÍ›6L¹råË—.\¹råË—.\¹sfÍ›&\ûO šò9=XN‘ ¸(C›M椥nUÒ†VįЯèQå˜È‚:`ÀØK¢y‰XHp]¢‘w[¦ŠmF YÃXnÌV~Ž“RSÂ"jWüžÓÃ!Ô-µ=ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀŠÜÈøM¬'CÈžÉûL9 m–¥äÄ£-˜“O¢#€°£Òa°/kg… û¿´,+¬ÐcÔº9DqPD™ƒt®be."(ÂKô(q×β¶dX¶ecÙt¢£°ò{O ˜Æ0 ûçg}NÎúõ;;êvwÔìï©ÙßS³¾§g}NÎúõ;;êvwÔìï©ÙßS³¾§g}NÎúõ;;êvwÔìï©ÙßS³¾§g}NÎúõ;;êvwÔìï©ÙßS³¾§g}NÎúõ;;êvwÔAHy<4ºð™ù_ÔVM—6é¬Sª‰ª‹+5)2¶†’ö©ÓÃ%Þœê”{Îÿ;üïó¿Îÿ;üïó¿Îÿ;üïó¿Îÿ;üïó¿Îÿ;üïó¿Îÿ;üïó¿Îÿ;üïó¿Îÿ;üë Éòþ«pxu|Éí¿¨}¥FœÈÈ€87aôª®šÖŒÕÀ\֚»e†E«y¯™BÁ 7,3“ŒFxq&“Ëo-ÓEâ®B6:E¦iˆYöAJdmI2ó9SJÆâ""/ ¸(;,ƒÎ„.ŒÑüdkÎ6Ü—Yœ"ŽZÖPý¤4Qí6]S†m¼ºü"n:P|§*«>SÝ‚ÑÀp:¢³€Â»Û×ú}§†J“€giµá¥yPì8åS¬>'X|N°øañ:ÃâÈ¢° òþCR­ »ReJ•*T©R¥J•*T©R¥J•*T©˜åldÕ6¿ãšêyÏoýLÊ\„ðB6à+»ç)N@”q~j–šCcIqPD lWJkpƒ™Ž~&­¬‹§!„ Á­Ì‚`‡å+¸¸¨V8*ŽOtË-¨ÕßWÆ –«('© ¸æ ›§EÈ©¨Ý$ In„ÃQì‚Ö4%4h:`aË¡ÛVÕ·”Ôb­¤7 -.3â¥Õ7þÿiá’ƒÆt :ógz"iL_šËfb= pœ ŸXâER¥J–ƶñ¦óOyF´¼k*º­ÃJ•*úÚŽo¥J•‚©²êJ•*T©R¢®“ñÛu¼çµþ¡` ) hC1YÉ‚¯ «Ñ#P”Ò†Pèj¡ÁuhÌ@¼à1-7–ø[Æ[ù–Õ^8KMn—‰n?ð{O †/yÙ–Õ39§ùFaŽŽ Ëþ¸µÞâÜ©«y ±WLm,áIæ@#søÀ×(ñH‹)mÙʹ;Jß2šK˜g«"h¥Þ-/ÙÓ5;q‹€o& ´Fë tµF5du,0ŒµÚ $.³¡+à€è 5hÜŽÃ0œjÊ"øQ‹«{ÄH$Ac‚Žò¤ Úni÷”x`¸Ñ¿Ü KhQà¯]³’ÎK¯ðºÞsÚÿPˆ‚ð(>]ÅÏÊá²$Bôy%râF÷’‹äÀ¡Ú"Ùsë(øêDUHdB…–ª›µõ¬ }]Œ乪ˆØØ*ÌzÆ,Ãps[êhr¹’cÌT¢ ,?U/CƒxU¤¦Ú JÐó!QIœŽaID€Š‘ª­GOâÖUÁq}MDÕà¥ÐÅŠº(‚z‚Åጠ•9H$¡ âæ>Y7zºÈŒHÈÄHG €åQ/Ai&w®4–1ùh–¢,2ØÅUBƃdaC¼l` k—˜}@k\¼ÊDõ¨H.!©üû¨B°F(rÓÎÎ!j Q〙oÀ•óàò°SA,Ò{O š=>Ârzš0¦´ÕRgƒò9„ÚÐ¥¦¤4½Gg»<ÓÍ9”MR¥DÙ$-Çz>˜Ú »(˃&”¯Þ\Š4 ÔPÍC+˜ÊÜ(ª‹ˆt•K´ØbÉ]Vã²kPgnUþaËŸ†”ƒÐ ºsJ'™/jsFòZЙAMˆðÖ'Ë])È—¦§)¬ŽŒm`›9Ê•*T¿‰#­ç=£ôJ§ iHn•µæX|zB³Œ¯f@²U¼ÐœçgƒØJY *Â-ÙXÙå…ÐÒ½rL-œ·ƒ»nØ ‡IBœiÁ‰©8º¤r²ê!.Ü&‹‹£B£8MÂ[Uõ–¨¤x–å!1…h®Š¦T e°.‚áÞÈD"Õ6lÉa`€N°¶úÄò4.óÀ4ªÁÆ3«Žºn# £TÈ£tÊ)à‡¢JF:6Þ BwdÓ€1ª(ì[ZWEH#h›iLàŽù†’ÙNŠ‹ 6ƒáÍ$‚´T¡ÌÄ~«DøM=àmÞ×! ÛÒZƒÛPK"8ÚØÑƒ¤¸¥9l*6•H¡&Ö-µo2ÅqŠB˜6GsÉ\ÚÚxdÑèùð`Η ÒÁê‡Ì^^^PUá——‚@êŠÕVdââ/PZT©R¥J•*T©R¥J•*T©R¥J•1•ùÆïã#¥ç=³ôDp¬AeÝÁ,ŠªZ®„Yie™MɃœÔº­2å›ÖúÖõ7 Ý?ôûO š=>)SæÈ@Š)8»ùþUjÕ«VHŸ8!æ úÎØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØNØF¬Ñº‡­f#0ƒ@åüdu¼Éì¢l#öýr‹–Ø×´!‘B*Õ^fT·µi1 8m lòÈ«ÄJÈzª #höˆ¾uÌQ»¤1„ËÞ´tèöž4z>ò$u¼ç±~ Ãƒ/Dµyë+7¾—33ñ3øÒS*T©R¥J•*T©R¥J•*T©R¥JžÓÃ&GÏþD·™9TÞWu0žåÌ@ÃþÙ$’I$’I$’I$¿ÿÄ4Q!1¡24@RSabq¢±á A"0B‘ÿÚ?3Þq_§Âþå·ñ§’¼—CÏyÅ~ŸÉæUJuWkzâ$âåÚ{~Î.]§·ìâåÚ{~Î.]§·ìâåÚ{~Î.]§·ìâåÚ{~Î.]§·ìâåÚ{~Î.]§·ìâåÚ{~Î.]§·ìâåÚ{~Ívžß³@]§·ìÐiíû2Ù²UZõþÓ)ä¯%Ðóµ9Í~ŸoY"ÖAÈd’I$’I$™÷ø}̧’¼—CÎùÍ~Ÿ«o.eÌm²æ\ÿ«=ÙG“)ä¯%Ðó¾s_§Â"jæ¹EMÍ8òµ—µ"âä\:‘$ë.EË5È“=ÙG“)ä¯$-£eÝÅÅÅÅÝÅÅÅÝÅÅÝÂd’I<ß9¯Óá6–R^´M6©iÓ®‡ŒmUF¯oôÉF¡D ¤”(5ZÙ¨šF×ëƒ=ÙG“)ä¯$"âårÀ¹`J.X, –ËårÀ»¸¸¸¸»ƒ;ç5ú|!¸eÕbmzÈD-d!Â5ˆRB! "áŸl£É”òW’èyß9¯ÓámàJKKKKD¤´´·ó϶QäÊy+Ét<ïœ×éð‡¯^:øe’K'‚I%þy÷ø]Å<•äºxã9¯Óá<âªi…Q¥UÖ4ªºÆ•WXÒªëU]cJ«¬iUu*®±¥UÖ4ªºÆ•WXÒªëU]cJ«¬iUu*®±•®ç-ÉO%y.‡žóŠý>$²Y,–K%’Éd²Y,–K%’É|òW’èyï8¯Óát:y+Ét<÷œWéðº<•䊶ÖÔ§¼w/õòY”ëo&¹‰z‹ªÅ—U‹.«]V,º¬YuX²ê±eÕb˪ŗU‹.«]V/ƒ8Í?镪»¢cTwq ø÷q ø÷q ø÷q ø÷q ø÷q ø÷q ø÷q ø÷q ø÷ BK¸¯`¹)L«u4ª…ú†d*šàŸþÅoÍ—S¯Qr×ß?Ù_)ðCÀ‡<xð!àCÀ‡<xðá[ ¶USV%±ÚUüVµqFRœš¦šõ6”®oirÀ•rÀ•+µ+¿Ê¾S2{_@¯“À¶lŠ“zà«'’ª»ªM­¶þŒªuÕ74¢¥Æò]þd—wÜ]ÝýYNS2_¾_%ð-ˆ«aª RâE8Š#Ôþ$R$¿cˆÔ5H’‚)5k"Gñ"™àÊrÙEIm?éN%ôâ_N%ôâ_N%ôâ_N%ôâ_N%ôâ_N%ôâ_N%ôâ_N%u¦¡p-ˆ«al–Š™Hj?»)Ë} lE[–(…ŠÞBÅo!b·±[ÈX­ä,Vò+y ¼…ŠÞBÅo!b·±[ÈX­ä,Vò+yÿÄ(a12@AQ!0P¡ qÿÚ?*ÜøkN[˜¨É É É É É É É É ÈÕ…¢áÕ¹ð«ì-­Ï…Wah¸un~ËÔt]PU¦üp+ì-ô#’$H‘É$rDŽF‹,[Ú­Ì­7MI;6¾ äãu]×UxU5©¿ô¥Y$û/¾¾ÂÑB$_’/Éä³"ü‘~H¿$_’/ÉäŽH‘"GÚ­Ï…_ah¸un|*û EësáWØZ.[˜ª$H‘"D‰$H‘"D‰‹‡VçÃZ.[Ÿ h¸un|5¢÷]*žˆjß }î›»É É É É É É É É É ‹Oj]™ÑéR¨UT¾{ݦ”«myiþ¿ ÒtÒÕoæÎå=DÕÓOQUÔªª©M©6ÿèþæ.ÿP¿bõ]EDU“µ¥ÜéõUÚ)½[?§vß—¹‹€ø¬EË—/øÅýÁ|Á|Á|Á|Á|Á|Á|ÁÿÙplugins/jetpack/images/screenshots/custom-css.jpg0000644000312500031250000006153012651056012022670 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý–) Tßã& þ23®±#WóÝ|+= òÛž}Ìêzæ¶4n—¯î-®|ºëNQë-¢ßlÊøxXA‘yÍáy&–¯«¤ùÞì•‘'v›kê÷í—|Ÿ²4Quµúöã¢<¼õç.¯~::=wp Mûö.q­¢Îƒ.žÒo¶?OGr…&$Œ¾BŸŒy_oyþ.ËOUÏt:9©–—œtyWüÔï—¼5ïmŽ®zöï¦Óö*¾knÍl2·¤ªÇ¯®Û»“ê8µÝ 54¿“ñ‹Y"ÊU¯)3×|­³ Ý,uoŸX¦¹ Ôú•|§Dòª?¥üçÒ@O¨ùöê ;yº†÷æL3ןÖ9ú”5½…Ög¦&yo‘$ëX>Cí]ŸR.› ¬Ê‰Ýqí"ÊÒ™M£ SêWr}íÖg®&³ßº'Úû[N‡õË }HZlî³9Ýßpw§—é>a.‹>”ŸRޏºÌ㲕²&Ê;}½G”ñ}ß=Õv–@úšëm®³)k&]UkÕ>GOÉô´VúP }N{WM¾·¨)õ!Ôô[é;ŸRŸUíÖ`ŸS™ÓÖ]f)õ"Tô>[èÅ×:Ï—ž_fmä/I›G¦Á÷;º>Š_/mŸÌ2²EE•V=n¨%Çû†É5ꕯîç'šéKš}JÜ#ùœuVŸN3Ðèau¾¡å52&uéùþo¤¦ìyË(kýc…çäVake*ž'´ù§M§ÇÑj+{ YÐ4Ì­¯èìù>Šÿˆô2öŸR$kMwAæ«e|™:ùy—ÿAŽ@1d#ÈϦú}NF¯Ð®³<Ç qŸ–WÜìß³ºæ:+ÿeú>¦S.³4îÒa„Í;µg–žzã9€)õ9j/FºÌó]p´Ë|øµ¿,,,¼&Ÿ£í=@ }OŸ2´‘õPÅIvùõYgWh>­^Õz|¾;ÐÀ }Zê'M’´)õjá¬zÛ¬À>­\äû›¬À>­\<û—ϳìèsOºãNP~áÝùÇ£€ }Z¸Ž¢ÒÛ„¦è:0õLècUCæû.ƒŠí@>­\dž¾ë3Ìl¾SÙØÎ¢‡³¢Ñ‡-èvÀ }Z¸Ûn†ë3Îcö¾mŸ¨ÓEã:ÊÝ9Ðu` }Aªû`ÿÄÿÚ7†¢çy(jÙ+0Û(X™X°³ßÓ6Yϳ¥4Îó/0Ö@G轿!GTžzàÞ@ÑÔÏ—G6à{õy{sóJ€}2¹Þfóõ~—Æ'¦ šKí–®oˆާžwÃúo™òÀ£©?^_¡×ð¼À.=$oÃY\ê;jå¯ ¹ÓHôñ°çYÔÿÄÿÚÜÎìÖjtÅNÖ€p¦‚¨3[7+›ŠôÞÎøÛ;³»>Ð ã>jcr³¬è&7*z\hg:Ê£4ÙÐT¯ó‹½ÍŠÆÇ—¢'¬úð nuáÒ€cr§¤Ç]l雚eLóËÉôj%sÏÓ:TÔÖ?ÿÄ2QR!"2 #P1`$3@ABSpÿÚ ÿL¹j½EöXdSÜ*[9Z[ÉÎó·AãäjÝÚÕ@MíŠW«\Ë¡™MËUê/²Ã ú–È äÔÀhA¬àĄ̊šÉà"yŽcÑÎRpì,G`võgÜ´ŠŠí°x}ßo°áJldn`%DÖO6Q31Ù!˜‘þX±/êh†}u¸øô¯£T›ÕöîµkÔ±%IÛ{AN¨ÆFïv Ù=Öêô¼k—à¤ß¯ }P}}ˆ-¦Ã‹WÜV¼ã['ǵaͼUÿçB»w6ÖOg—‹LßQ l#k¶Ùx ‡èw÷(µvÂŽÐNãÚ¤›wÅ4œð/ê\¼DaÆK=ÐK+S¬ÕbÎÄËçyÙ¶ «z»X=áWn¦«M^;4 õÆÛZb\¤dû&ö)~Šna%&¶WÛ·KšÆÙgöe@ʂݰKöºÌÀf‚©·-&Á5ÏuúJ¹œ˜mµj±çØoŒ;}FÂBÅ‘ÛvèVÍá·é66åµ¢ÐsÐÉÚ+@.Ç(×µ `qÄM¨¦Yï>fU´$ s/°Àf΂#áÖL¢¢´›mYnu0¦†‘¶õ8YçÞ=É\€•² ŠJ‰9ä§_ÚQáim‚Ðí(ÁÐÆ¹¦1ˆÀÇÿ€>Ԫ謇ö¼˜>"+ H?ðYzbsZ±ëæ&tV,ÂYõ¶ÙJ¹È¢m­Ÿ[,Z`•Õ1Ýa­p¤”:6Ú(’ˆ Y˜Û¼¬> Ë"fJj—u%]m.GEn¸¬Y,ûkXF"u/LDLœpÇÄ2Ht€ILb*`43 æ<¤vuçõ»cÇ…”ñ»H02†q ·]™b|h.×dÀƒ>躑ZûYùXqýÎtVëˆösv´oÒ呬E:—ªM“ûê³|ár¼–|@ÚYPÀꛪ$¶T\šç%‰iŒqØèF#¥X 3Uœ`‰«ÄŠ"Wn¹óÃ4ËÉ›’Ÿ 92#\[¯"EÙÄ ¤çÆŠÎa1[îef2^Ô°€õvÑ Æ`´ë W”ëÉÙû‡¨Ùÿš+h¡³î°èMcåjáØ—âvP"3'Ρ*íä—Ù_ÉOaìµÐ¢ZflÙ“J'© ªN‘(xIJ݂a"Tµ×t˜„4zÚvõ=EÕÔ°û¡w+1Îgû…?þÝE‘d¯¨Ç€¹\š+‚˜ ¹XËg:­s¾qˆ ®Wib ú¦íg Ùήؔµ ¤ÊäÞ¸gÔm×)(†sèiÎÉÉ+šv¿s.K^;., IU QG稀$ôk|!Õa9jÚŒÒ=S†Yc!$‘zšÁ(*ò³)!}?"zL«WS¹d¿³¤ºxÍj™²³]I­¨]ˆMx•6"¢]œ×#ªÂbçäb›a‘u% Œ~újl3^:¨yG•ZûrSH·VBÅÊù°åZï>ä+FÄ:Ë€4ËëuºÙu.(:º¤$ì×Pmu°ìW©r¶M-TearXODkp·X‘vsfÈøÖk$´÷¤‰ø¹«6jX}ˆ^¯XQ0É6kL÷,šSÛô¯3 1ÇÚpÔÚ6‚å×iýÆÔàÛ)±i‡û2¨èk&fRz”Ø%¸aláés Û Õ…:ÉIôÈEıŽ"…Á t8¤…ºkê®#ŒŒø¤Ö96º^"¼–ÉŸ ÍÆ[8“;DâC)'G#õ•3û_O¸9²M%Èè+9}E ÉÒUBAÜ/që­à‘-±j´ž6œþ¡ücMH4Ôg]Z¨'îkÆDBcÓ* ­™Ê¨úúÌÄ™ô)ŽJb#ùsüç×p$C+ؽ© 9áa:Æ?E·ØÓ¦LK%¨RáÒî±ìÕjµ«eã×RuB¢é×é_øþHÿ9õ² ‡‚lä|=MÌOCøÇè³aànëâËMûˆ æ°Ô_hªö¾³>Ñq®‹›Àç6^¼á€¹5XdEÑ”¹ìá]!õ2|~Ø Z²Ñ&õuðOzØóˆ´‰´Ñ( äy ì…tïŽ*û[X×;^±–tÕïñÃÉëîþDÿ9õrÅËÀò⺘\O þ1ú ¨ƒc>èeJì92gįÙهܺ•ÖÈ0 ÆN,g‹(†p#•*ýÌã‘”ŒÌ}\ tDN®S'²ëࢤ¡rîÞ'%×Rì5áØåƒ”JhÁ…j(¬ „‰eµÕð¨*®Y$œúÞ²+ËO[5“±X»Z¶7CøÇè}ÒƼž¦ìÌd äÔ•Ÿª`Ùm"'‰A’îv™×É)øQ†–e%fÈËù_ÕÏt58¤¹òZIKZOÓtòüŦ¦àÐjw+eqMË[©–M*d“ýB¶L" ¶íÉ–ÌÀªJ¦©±•ÀÜž–"œúÁG:­]uÄ¡qè?Œ~‚¬rS%Ï€¿ñØØ¨¸d7“ì`Áÿ„ÕR™<óâD§±œE5àÑ“dèSÁ “ ȪGZ€密¸EÃµÌæ¢º­v‰³ÔR«©¬6Ø…ÂÎå–-4VŽIrymiz()V[-oò'ùÏ®âÖ¢¡1#‘íÏ› “—)¾†ÍiégYí6&ÞÝ^ÁHgþ†œúº+˜QÀ:ä’kÈ6éæAZHÆ–Ë[ÄÛ¢X-ŸègùÏ­ÇÅtK1Êi8ž¬ç¦}ñôSüç×s­åÔ•F<ÑCÎ{Ea:Æ?ÑOóŸW‚ä¡dɧj,G¥«Q½©¿­¦‹h”“¢Êú¦Êaó`!N»]U¼ƒ°¸Zï$’†EZm¤ªxm…†¹ŸyÕKʲ!‹" m ¤àl®dm$³ÆÂçJ²–€š¬‰ØP ‘¼ò!<‡™÷ZÜëWo[÷yIË!yy)ì•ùšlÃ-Ê ðn]n×3ï:½j*£´²-EÁZ!ªL²¥°Ç€D£9ÏÈWGxvÅ”ËaQa}•n±Ñ,$J’6’Yãas«[ˆ*—˜žm%ÏZWØç Â(‰‚æ-ÞñÝ •°´ëHIˆ:ÊÖQeRùD<;FÊIc`$ëZ]…v¨ùÚKMvbWQ…›P‘º&]eIŽ\ð^®]è5¨œß)pÀSá½Í¹¯ÔÞk]k-Íf×4—3ï:#Æ9#âÒIRѰ¹Z¬)¼u¼By~'Ήà3Á8cDàˆ&ŒH;6Äó¡pc )ó®gÞ}óŸ[]±YËj$k׫ԯ]†j\ ÿV€µ;zÌrûu‚s ˜XTz|V G8SJúF2¤ 'm–x5Ø0ðËÖa0^ŒÛ˜¾¿P- P•‚mtUjÖÚ@F­`ÊkÛòüð¦Q§êÍš0ç$kÛê$”&Zm-ÜÉÙ@¬vÖC;!J­¡e1:5¬Ûz§#)Gm¬Z„U¶Ù›”UfW×­êœ\®±èͺ¤›Di 6{}¥Öui­å© ÷1±ý´-j®ÞðÜyhÙ(Úè‚BM¨rZ«;+é!Ê;6¶Ð5kGVÃjneåS¹¦ÕŸÈ)á¥ív: {5€—\e‘JÜÆÃ<)² §f Hš¸ê®ÙÖÆ #n1ÛmÒ]CCocPèe{ÜÛ{ïqiͧ ûLº§“l¬²´r½°M»yX¨£ÕºvHí¤jåéZÅ{;áw­ÑBÔÚïåXkv¯6©ôaœZ¤ñ»-]Hj¤‚>¨E{<Ý2ëûVWãp¸³\æ£@XÆ•šÅÉõ*0é|ö6g\ü qÍ׋KuÐùDÄ#9b"-Ã|Af LnœÂçÝKWF2ŠýV"¸xv(‚ ׯéÖ¬ö¤€É~ƒüçǪ̃šÂÄkX]ˆ)^^–)׳ ï^ZÀ}µ€ûköÖí¬ÛL•¯´}BbþP¤ˆÏZºãöÖí§–A˜Î°m<Ö®9™¹ž?÷À}´P33þz™ö}Mz«bµ¬áys€ûköÖí¬ÛX¶°m`>ÚÀ}µ€ûköÖí¬ÛX¶°m`>ÚÀ}µ€ûköÖí¬ÛX¶°m`>ÚÀ}µ€ûj#üF°m`>ÚÀ}µ€ûköÖí¬ÛX¶°m`>ÚÀ}µ€ûh’¢˜’™À}µ€ûköÖí¬ÛX¶°m`>ÚÀ}µ€ûzç>»ÄmÍ µ² ¼p—¡ücô];l°,<ÒÆ7›2†Kk¯'¢M ìÄ£o²YĹ2®ÑH³ C=–"¼tE¨dTû¿p¯‰5ÀSÕ5ó}i.ÙÓ–°…Ó þê„¶ÒÁDp2S‹-Q°Î«yë)[l—|AVd¥¾w§S(WôéùÕ¬ãÈç>¬1XI™@ŠZ·j`˜èý#%õÑLF¤† gê'Î3ΘÀÀã˜R–¡Åc"ã)ãÒ &f"}L„LÊ|Š6LïCT‡&ÂûÐ`9Kp`ЃäóŸ]Ð`ªòMZµ³dm¶ìÄÇCøÇèºsÞèò Jç°ûbÂd…äÖ áÖkÉ4ɽ³}˜̱ÒÊý£dꙜ›â¹ö žéñÀ®_7ŽDóãpw tXvc6^-8Ò± í²q5‰S¸[´Æ2óµ6Ødr6Z³ÛÝtZ«oag³û† 7Ü šLslCëxTL¯çlÌýËÖ*bbi¶Q$ÐApÿËÞŽ ½×Ù¦Ø=æ¡°a;F´WAª±SVìÊZº$cµ5¨[¶Û•…[–¶®²½\F[~Ñaé6BtÄ1‘V½š lÌDÕ«kÿ•ÉM#0¹Â…ºGCCÛTq!íú×ì¦è♆šf^*Ž·jÈððAµ7³‹…rÛ_¥~Б4'†ZiÐ’“É¢—Ø‘¹O­{N¬çuì)½œÜRíΆ{ÓÁ3°ôûÕ<à Œfé˜Ê[šU‘ÞÛA¢2ºÓÊ“Tt0Ë@B›­8úSÿ•3•qO<è.9[h‘çVæ.+sÞh]K³Ib;Ñ´méhÊ[wåZ¸e­+òš´1È0f‡Ù{² 1ž¿-=¡hëÐR6VÜ¿2zUåÅ®;KG•øTKv$éV™õ©Æƒ5lÃyS´m@ÁÓAúÑ!TyÓl1¥b8QͧŸz´cšT x‚uíXe0ÔÛ_÷§Ù`“M¶”Q|?Z ÎÓ¥: “:mîœvÒ{Mʼn¤ñd">4¢N@®õ¦ðÊ‘4È‘Iý})†Kˆ&GéOáÄI5sÃf™Âè)w=ªÉÔšM[% ŠÀ¶²¯¥"”‰¢)D»°ŸÒ–a³XåúPj#Nô‚q*E*†ÖA¾,J$È*@†R"zÒAÉDoÒ¼W<–Žº•pÃåXÈ,( 0 ŠUŸZÀ2ò™ëN%q? ‰‘Dd¶Š™#×½ aþ±d™§ X¶£NÔ­»7+\Ôœ£õ¦—Ò²+I2*ê’GA¡ƒèk¾'Z.UƒÔÛ„Mtå:úw¦A™¨‘*Dúw¦ðè`ÕÇ‚p'J˜'´íJØ:ÌG¹­ùšVB„4úÖ##É‘­?=ïù¦GóùR\’\f‹’#^õmƒ,õŠ™rÄ|}›Ê@ý{רuÿjR3×ýÍtš¼25òÓzDÅ‚ÊtëÚ‘Ü™iÞ™ò¾‚ˆ.¿ü›Wžç”ƒV‘”ê<¨Üc󥻑‡7è(\ÊÂÏÆŠªªµå–ƒ=+„T·Ãkú´¥ÊIº§ìùÏm?z»‰š~õ{Ð¥mûB‚%¤u .õàÁ$RÜVuz¸Ä«qÒ þµÅK«õË §Ê¸Xk«-¨óò® Q7y¦°é7=¥ Ÿ`!Þ®‚+Àt0f¸8Œ˜jfzW ­¹2OM(Ú Œ Ÿ#_VÁIÞ Ò± ‰<Àšà•‚w3XéÄ ´ÿjݧy§å…#ÃH ¶à7•-¡¶SÔS!ÏZpÿ¦¸8ÇœQ¶£_S\,¶àD6\ÛO(Ä\ã.»Íb ‡I®æµú¾*³&ºnu¢Ò–Íàq‘de¼uƒ&€`á.®“Ï•q¾¯Ú2Ïë‘q%dˆŸô«L¹\ã,röÖ­¼·Ö®šãgûÕÛ‡Μ‘¼˜ è7«gŸ/hHÚ4íKnå²MÕë×zµ©~ë¦xx!TAâ'IÿSM‡vÜ -‚ÅV4œ´Ÿö)âµÜ¿ë´¨VTµx9Õ‚ÁìÚíALsÎE[ó¢9“)Çõû×Ι‹|~‘l¿úÅh`£­e%ºŸ/Ja-ðÿJ™ÃÖ®FDigSçVîgÊ|^GËÜèÊÿzâ›Ü1ϾÓN\°oâ$ŸçJWb¼¸GO.µ7üM—ó¥ÌLüúýêû%ºö1È…cÔthØåò§¶ c°?‘ú³WL± ݉ùÖ‰VOäyäÔÿ•s1ù*C ¶Ò®Ç"?%~Þ­˜lãús{uµlZ$k¥.ïž‚·Ï>_tlľ ¢»A3Ò‰Žg}Ì™ðËséIã‡ðúÕ¿?‡Ö˜Â•yš$·j;}Ñ:0îõ©ˆÎ†ëž´ ×0G­)†Å¦ºB…’L s^à֟¬ðZ‚åQ8eÍ”v\õ­~±®•oÇÏáõ¡âkN û×âvGΈG›þ´þÏ@Nó|*2Ä>±Þ¤ŠUäMeŒ¡f)˜\ÀŸÅ\’0ºÓ-—VEr颃ýh&~0zû¼Í.ìADHŦkm yµ¥·¥ë•DÆUëK¼6ÕäÕ1W™£´¶õK×*]Æ[PÜ·¹¼0Ô‰ÃÖ†ç¹êiþTÞßlßzÒà[x‚Б¤éÛ~Ô­q»®’¶m4ï·z6]œcm‹“ð …?²[²ÂË[ÐÁËúS"*±ò÷"]7nH’‡R}iðæ¶]N§¼iKÃÊÞÙ…3ó®8nK—€¬ï~UÄ¿pZVj ëW/`U[Á‘'NñîÌ}€tQ§Í¦Ù?÷K7Ê*Ë7æ@æH:Ó³”ÔCI5ÀEXÓl¿ÒœN34·ó¶C/•?³ð•†§¿C?*¿ìÉh]Èr#YÖ:éMlà$«ƒâ×ýéCÚZòºµ¼5þÖÚWåÉõ&»ƒ†eÖ—‡•½³ gç^Ò‘nÑ"g“ÓZ´[+Jmæ'IÖWþô«=ÆÏà`´«ë¯Æ¯ã òÀØÏNµoÚãí9"Iõb—?Ú6ûJwïN®ñŒ<šÕÃd0¼mêªÚø<¦‹Û{J@ÖŸM¢–â²Ùä8'cû. œI™oÙ°ºXÍËÖ½¢òºûFC“oÖD{‡³J4ýªµxÛñNQÖÄÉ|²ò¡}_„¥F\‘ò1Vï»*eÊUŽÓþö¡£™V¢óúaýèáÏ#aS¨æçJX¹õË1ŠrµQAÃÛåµÞ³&¸;3ŽJ{ ªÄøtÚŠùhiÔsÓz¶­/#›Jq>²(ý¤ÜUµ‡ê§ÏÏüÜÒ˜`ÊAu§SS£¿I›O ©ü1ï&½Ç`¢MDǸUµÍ¸¶Ù9{ëKâWR§à~çOøíÀ’êb³ä¹uHwÓ¬ý,W‡Þƒ® tÿZãË9éRÜgeò4±§¥IŽºëúÅJÆKåÚƒ)8¯ñv¢š}Qh>•Ã94‘Ú™t*[yò®ÍϰD=h ÖUÈ{,‹ g†'ýšcd]¹ƒ#;šÀßA §¾§ÙdW=†ûïVÏ×®¹3N­=G_½ä×u3ôŽþâ`Sm@ÇÐcÜ7÷¨’IÐU³“6`…kñ)‘S0~ôGVÊç‡~´÷2S¦±ýþQÃE;µ+¨TSÓMköEKf'Á¡ÓÊ­³}­FµŠͬI‚hLjǵ3Ã`|q –m#Z[Tªc#Þ•Ö:l´XB˜æÒ†Ú'Kztõ«jXŽõÄ´÷’Ó読¢úyÕëê/_W…fÁ²/£uÿfG׉o»OóôïFê€Ý]ÿ }íÜýßè÷SÆIc$ûÎë–‡éZl—Ö#úû‘Ã=GÞDt1CÛ!À2JåµJœÂŒwåî˜H¥¶¡uœ„oùèA¦ЃQ]”G¸ý¤‰ùÕµ 'ò7~Ô/²‡™jØÉü’tÐÅ?‹ëŸû×bäÿ?É=&­ÝaÅ E¾¨¸†ÇΓrÀTm”UË9êÀ ”š.TZ/° IéâIfv1HŠÇXÇy¥ 7>ºöhÜáç—_J%µŸô¥·Äó§ŸcACcK¹Vˆ¬Kv²]sÑ`÷¥´.?4E)¹õ×°ë…_ZÌü¾÷=GJ¸ÙÇyžÔiðâ)­©ld)\{Qffd¼‰U¨Û–­œŽ ç1æ*òâÔÑXƒJùªÎ‚’B©:zQL Æ‚…0ƒ‰YÓ¿úSÎpwÖ™OCô¦Œ‚ÄuåPNd2ã=#]þ÷è&­Üe¥†ŸÎ–áPÊ"NŸJÒ«žN ÔšF rðˆOˆ¡w„Ε[Ö™Ÿ+̼§;|)-q†KãNâ•UÃ\\C:…de©¦vAg™#~±LŒÂØ]D“¯z½k7<>V8Άt«7¶Ó©ÿB‘Š5Í1tÞ~U쩞«ô a—ÚbÉwÖ2ԑŃ¿Þ½ ïŸîzÿÕWL±Òö… uE¾hš¥_p÷máÍÓ@g@cµ\¸_j²®‰l[ŽRÔ÷«–M¬íû(F׫×åQ0ÐÒÝ!Sx«a—TÊAíMlÛ¸ÆÜ’2&|1¯e&Üä";éWn­æN¹ëÛ–•‰ä³‹°ü,Ó¨ý*ò⨠i®½jÕ¾°©Ž„É']I¬Ú4–tÛËï‘þDÿÄ+!1AQaq¡Ñð‘PÁ `±ñá@pÿÚ?!þ˜-m‰]\‚íC`Êqtiû6œ$þZ\D+¤3PMv¯€Ð´†Ur µ(‘¼5‚µN”ÍF˜”FÒ 8i½ØYp(à‰«bâƒˆ™û*S5`:P¾IÀ€¦$ôh¨„‰¿åÏOVSœV.ðr<·©¾ ¨çOÝKS–&óË¡<¥ )|Ó"r P]K%¦´%!ýÒv³–u.ô ¦8¦¢|GN ¤JiË•@…¾aŠº[Ï!€9Mê2-e„>¹U‰ek‚ߥD9~m|½Š3‡Ò°EÊSxšÌJ¢JŠ|è×íkPÕâ ^Œ<³BPÏåR¯ £VîÆ‡åegìí3RÅüÈ«Ý|ØG&&)’é)4ëMœG1µ²–þŽf¢ËLÂ(jD¦ØA{ÕÛO,‘Ëè·ÅB¹âÁeéMR‡mD^jNBÊ0Å/ŸÞÙj÷ªñ Z4Òmçí­£Z4©+0F(HÅ/”~~ H¦ÓHX¼ˆÞõj‰Në½êAfbQ¢Ç*±E l‚‡ød˜×`—+E?fÃ/`†0X²MéEsÎé=¸ÓobŸFNGFVS¼ò˜+VhÍ–JÈŠÅ•¾:T¶æ[ؤP²D¹ÖƪŸP4Nì)…Cbb/KÖ®R)WhÌò¡ìsUì^å TÎ"®] L°†¸j`’¶EeòéDgú⇋~ŸÐDòšdÀÁ9Úƒ&¦>² @­S¡ÐçV®Š1’K–ÍN€R|t4º¦ŒWp9·Ò4› —Š9¼ò«ORG,M††à©†i¶C‰ƒ–ìEI™`Þb‰u02¥¨Â Þ$æR¡ZsbXBp /jKIˆAmµ3*Nthôßx¹ÎžÛÆl˜çAXý’™émkÖå–IŠ;Åú—.Typu¥¬ –¥Ä··z)€^ÓANwìÒb@@ìo]ã{®»Z­{€ÄÊf)ü@1ˆ™`±Ö£¥ƒJ[TqÎå•¢bÆ• ÕÀcxÑQññ%2A¡~G*G R.V 1¡ðT”A’g=);Ð`4ü©ÀÉ+±l ›Tçð¾hS•Ϻ4³ RÈ@M©nt„F:ôŠ0V'2AÃ_‚Øbï"ô“)€Ñ´ßJ‘-bµÜ•:IXŽeðšˆç¸F½êõ @Ê“²¦ ¢‡0¤?ó’BMh$‡;¥“Êhk ¼Á-焬˜‡z‘4$t»ì¬cÃHa@ŸÝG&9Þ‚ RÓÖ¹6À®gT“¶•h’™–’h‰;&À¿t%™ Ï)L#j!;ž•G¨¤€¢ð`s8LQz–ò¥ž%€ 8-Z»SMƒ-Žº¹Á¶HÎ\ÅÜ+ E¼éE$‹œ@äüÔR`ip»HT«ÈÊ]bë Ìú2)V ¶By ù¦ŒlÄÌK™Ú®hÝ u1±K÷Yr‘€Jt+eD[¬iWé $X3Ì«úÈ’©ž•qä‘K^ êxÅ%›±8µXÖ”(+–4§²cP\fe%è è(Gžr7iD§9GƒýRo–¬ÀÄ.Ó›U·f8b,D-¥ 4Ô·N×çR§@†±x’*T8Õ,6Æ”‹.žD\Áj‚¼ åX¶zPðÍkô ÇV‘ÀQ&*'zsâb¥%,ôÍA° ¼Ñ/òhä&²©–¯æ£›g7~j3 ”°‰Ö·9”¶Ò 1nWhLw pÞ‡p\Òðöi¬ÜœÐ„M‘"JYæU` Eua/D2”ä,®µI¾Ñaý‘0¾qÎ9µ3³{ÎWEÕv+¦ˆæÄ²ÁŠ–jdØ šMiíºˆ‚BÊŽP”ÒCpÜh¨‹CX/@³5œ‰K„KFþÅõwJ4{®¯¢ŠÇtŒN16»NMaÃËÃ!=bŸœâ‰–TW8³á}b¢Ý F»ºT¦`a#¾éM)ç,L5¶´ÉƒhS^bSÿ¥„‘¬Á }~’°W5ôW5ôRB± ¶¬Á²Ä~kšú)qòñ@È•¡Ãó^Ùâ½³Å{gŠöÏ1Zd&bb1^Ùâ½³Å{gŠöÏíž+Ûcb‚x)Œ· ¾3nqS%SÈ¥bÁÉ÷®1ZÊo(\­ï ÏߘáØ pò ØÙõš“¶7m:°¤-¹ålP!u¹18n¿J•ô™2'3Q¦%€®Éš¥o°œ^6 ‰f>+,𢾠|A‡z"åY"‚?ÚgÛÆ­ììÌÔ:mœˆbŽ)2“+tsˆ§™s©_Š‚+æjI_¨Úf¤Ž#Éö/’îÿ\^0HÈ(çugܶÝÕw‡aü=MGQ‡æ¤&…´I¬NyÐG+àÜjœ)W¬™‚l]­@JÐ+}íñS¬q˜m–ôç4Dà¶í×Mû)Ãû¥´/J§ZS"V­&M§ ¤..‘áVe¶Pă ÕÈÑ„ÁñKt…X:RHAñEƒi¡=žé6™¶×Ç仿×Y ñ*Dž$@H"4µ¸vÃC@_ÔƒEY ,Ä)¤Úhž³µ9ß°Í-„ú3P>D(€MŒÓ«Ã%v3AðPé “ ¾$¼îˆÁÂÎ$DHºµ¡{†˜p$†…jæEñ¥é'5rÆHL©}5©Ÿo# á³51lÌå .v)?¨›hgò]ß댻 ¨ò Èe,[Kðì?„Ñ-_ÓJ‘‚ÄaÈ£äU4¹ªßJÊÈ]´¿ Ùû¬èsä•8[}èÈv²£ XÙT;69V€‰ãr¶®§jÜ[÷íH-{‚ÈuªŽ·&!Òêt˜Ã2Q7RÅ&þN¢Óuª½•·ìbuÉw®"x6#µ’÷I¡G ÄRרšZAwp\åÓú'wúãk³~¤ÿhÇ.5AéÏ„XÐ>’ô æ0¤L»¿Ñ;¿×jˆìH€.æ® ÷Ø/ðþ‹Ýþ¸¾ˆ–¡‡“š‡Cl‰˜%gm‡ô^ïõÄM™}¡BÐâ$À§/¾ çÉIw(ÉÊ’-¬Ë0Q§R HßE[D²$f)®€ÌÂ÷o¥J ,Ö¿îTUšf¬¨*êXg+RE]0ø¾iDh fA3†­ãa«êŽ6 %ܨÌ,,\ÛôФÌ —[?T“Dæ â ±+À¸bôÐfÔrLa¯û”¿=) m”§Lî†i±ÌÐhk3HT?Ɔf,±õ5E(¨‰Å›r£åG`º1¦)"®˜|_4€$P Ì›¢4½:È å«K‰BVQrÈÂgyt¥Pzéô•s@ßUi­ ôs©™º]q¨²”²Miaˆqr·6“9 bDÄÍ&D¥•ŒÒ Î J Oº»b'Ž„ß┘Ӛäþmøh¨RÍ+þåeÁvÅ%ÖC3.(G3@Àe"„¬UÈL”ÙIt+õ€ôUµÑÞÑ’´OLoS1̬ƒrh¼ùT-ÊÄlÐ:&ÜfÛ»3Bë0©‰ð«©àsÒb­&Œ€ÞöŒ”E$'«j×÷âõWýÊ–$è:WýÊÿ¹_÷8w®)µ¼mšœF2Ù9­éÇù665ô¡·à!JjÑPY ¿ð«ã®ß hü…b¢ú&üÀ_)2y +#ù{ò ±Ú‰)l^:ðBE4FýGHåK§F[Q% †/{¬Uá :=7Ë+z1µÆLõTZqI£q)# |Q`l(øa(ƒBtàØ·+•y¦ XmæVöTíF ލ®·¾( ãm®"¡†pD+³•š |µ}MšHÚ ¶\ZuŽ\‰“ÉEŠÈ„šîKné4òß ·D¹-9 ’Dl¾V\ø¨Ø bXòå\ñEEɶLÕá :=7Ë+z½½Å†ƒf¸ qM @^EõÅêrûö…ª1%K{—íi›l@I™M“–¦½‹°½âA#7Å ‡$L¨¦õ îâJÌ­‡RÕg¥‘ K´À‡ŽQ 9&JöX€XÈ:ÕôÈ•¨IÅûÔ¥ú‚xmHSi’òæb¹‹Ò+bŒu#+ZœÄÛ!buÆ©ˆ-Q²_´Ö†Ás ‹í@m2©ä\zÕD¤A%nÛÞ_šMå¦. RNJÐ}’<¨¼à䀗I3©RÐ!DÊ}Þ+ÿ¢¨DðØ ¯Ñ–!—¼AQ¹'Í"ðÀ¿_ª3Õ-ÔŸòqQ¾·]|Ô&(L\³þò¨Æh#Q3©B °5Öë7ŠœáA4Š¡‰¥#Aç³MÓw9þ=ßëŒp”ÁID¤¢DÜ„àŸ¡e ±çŒW¡¯C^†½ zÍdY2Óº†ðKE'$Bë¿þס¯CM‹b­$…Ý4¥‘J˜åPüΉ½© Ú9äA¯CB±-"BIjÓۅㆇz‚Êô5èkÐס¯C^†ƒÁ¯C^†½ zô5èkÐס¯C^†½ zô5èkÐס ðJ9W¡¯C^†½ zô5èkÐס¯C^†½ dB1^†½ zô5èkÐð~†½ zßë‹àpRÀƒR+U³ p,bypì?„žàËËV¯M€¢¹=4„Þe¸lvˆÅ>q…B'nÕˆÊUœß%/­ßŒ1%·RÓš5÷á:T¨”•Ó˜"1†±m)<Ä&9¨¬Ž[NU+0œpBÌA—Ò$¬f‚¬‘Ï@…7JôâI*í±Xé4Ž™© t^¦Y($B…—2-"”‚~C»ýq+€ ®øˆáØ8G-ã7ÚC—j5e¢ëB#£s%:èÔ͆XÕÝàépÕÛhWf&„TLð}܇ë@  (+¤DÑ–&ý…X¡É#'È÷®#"ƒ¨”›/"'0Ór<;àm[iÓ^”yO0ˆ2]Í2…ÌU ckÕÁ2 ²«½ElȰ¨M$ MÖ)TM‘£$o­\ƒû‘/JÀ2Y’ûR’”јŠ(Ýrw©¸&"þ‹ím«â€"Øu7i5šá¥èXfåfî,%ìÉ¥0ÛhF¥J5#fê Åzïl¹Úl^d´Gä;¿×"ø« #Hà4.AC$œeZßÓøƒ)Y6C_Wò½5FÀ%þ ¼PÁ&°ß¨~C»ýp|˜ YRHîg5}",-Û^ §Þ¡ dªM’ `vnDîÿ\ ºÀH›T5”ÚåFåf àÔ„ZcèªEòÞX¿ôNïõÁÍzh7Hy‘Ú›ès0»—‡aý»ýp°ù”‹ì¹Nf,ÌÎ:s·C:Iއô^ïõÂCp ™WÎV¶d-¼ÔÔ¾@¸,¥±W©¸(NÖYßÒ‰éÚ¿Öò™¹Á$DÁ¡š€í…‚îÄÝ‹Ò!6 Wø£cZˆÇ—*‘:"Ô¦ô {) YÖ‡íÌîe6X´æ¯ÕR9>¯S23ž\èQF%K7©Lh„®hä’b†‹¬RgDŽ"’»L×DA>Á7àHÉ@LCd©vbý+Ýþ¸#à Šy‰©oéí¾¸ÅJ3ÛAÂñI I€1û¢1kÀá¤ÌKUÎéÄU]or9ÅZÐbp[îyC¤šÜµ¶Š4Ì çfmÚy'ˆGtNqñž³BRÀÙ^‹€¦Ù"JXȲ†ÜÜTTSF@7IË4‚ðÇI5¸ÇǺ€-ÁvR~W»ýpAÍ ®•n!‹i:T²9ȺÕY³Ã°þE²è™slÍš€ˆfŒ ¦zx§q`ˆH)¼›Lk}¥843™ÎQ 1Nn$B<þÌ7-Cª×'VB‰2æé »QEÿ+‚ Ö(b"8ÙJ†÷Ò–-ÁB0ΧѬr¢;/=uÿ²§"C[íY¼!J2WAjP+ Z&6bN_“îÿ\6F@šÑsø*2ôPo‚%ÓŸÃø\¹°$c*½Eà ݬf|XDªtJA¹ip9·J´YðˆˆzB ¼†MLF±躛kˆwkI öhŒ-åa†t¼ìP=ÁÂ^í }üÔ^Ö$¡ÅùÂÑ3¬Z¦î!0$ŸŽ@eAgQžU+U€]Ò‚[t½e+ÈYvòÁ³ò}ßëù'‰HÂíLš“ýÿÄ*!1AQaq¡±ðñP‘ `Á@pÑÿÚ?ÿLÓÑö@)ò5šEµ/¸Mœ²—¸Õ‡}³ý–|q~\<Ÿ•FÍ„Ùï­ó~1Ÿ`–MR<O‘¬ð”¯S„SfË)”bkHŸó7F²F«ºö2r‘$¢SÑÀKÏaà2Çl>?á¡»„¿´¶Õ÷ÁÖEëEWÃã+¶6x¢¹º5’5X×±ƒÜã¹P“s²ÌH NˆÛü¸ž( R/ö¥7ÛÂÑšžPo]w7ܬ/è©ßfñMÚ7¥ ºuäŪmÉnÃOª¸€lÙtXƒÇ§¡ TCˆbèÚ“@h ©#eÞ“Ïmž½tÔo‹‹N„o/†UÈ×Ýw†Ìëä±­ŽFþàlÞ|j@¯b1YD:‰çá4l®'XV-ÓžÜǕֆ`ªÔD4øcB äñòÛÕóŒ¡I;àܲÌD¹Â˜Ðdì øÁÔ6‰êk~°—G@“Û-Uò%ù“ÝæÈ4Ä@ …Ÿ/ƒE‚e{BŸö]+aɱž„:}“å0‡\XÐ`(ëËîÑShŠ5Z]Ö¹zUÍÒÃæ×nöØÇ{åïî׌h÷C¦L : ¦—yÛöO|•ù>w„Âà–³ÝMrÁDx`ÿD©í&J™Û¯ d—ïa"˜‘HñÁÐ"xK|[ÏXzgº€/ÄYñÞ$ZÜsFÄA>Ø=@ÁbÙÁ>†úÇ[BS¾ÙjÛÇþûŸ qw@Vö6({càÃä‘!ÖÎ@ÈÖ 10j'ôN©î¢hPx嬞Ý?ú3d-bÚ[²iJÌê•´w½€ïÎ5U01R˜hÅ#ã4š.”‰µƒWlî W+Mº «WÓ”‚¼áU³J;2¨GÀuøIŠ$ôÖä)ŽY¨•6£EC]˜ÔŒóf€ÚÁÂ8RƒQŽÝæX^Ò(bö¾Ø"›¶†S«@Ô j"H(KÁ<àÓ©Œ˜€hu¥¹T{! 6j“n‡‰• ÛÃÚ?~baºX£pCz§fxŽ|j¢Œe>ºÂ#ˆˆ‰LJ–Ïÿʺ]b{4 ^ÆöÞórÒ_(˜ ±HøÎFUð‚C«¦¾9>…¥iLk㳎[Fvô֯L"bÓ>î i¬×œ.§R0VSεæaeä^PPb›Ö˜U Q¯`žd6˜”L{ –ޱöNÔ *Á4™£|F§¼š}±¡Bš ]ùÒk5àBxpßw„¨¨:Æ´Š5Üš*U`|ò„1°XJ†Â»O|d x˜‡õüK䩇t-è+N´CË”q¥4ƒLmi³‘PQEì™ßV.”)¥º¤sЕ§d¸x.÷Ýàæ0¹=,@>T_ãÍZ)·[Æ5àAݦƒÆ ž¬B#ÜIf=$Dˆ6Ø>8P¬¦šP`ëró NÀZPäK·fkXsP óI”V°ÔATþ²ì€ 87ï"$f…½¡ˆ]#¡îa®½Ør¼¤œ@—¨ŠÅosJ4ª‘×Kí‰N¤žnMÒàÆ‹rh ËM¡ i%à ªA¶ªT=2¥Ü{C‘ÒqösƒÝt»ÝgÇŸƒ¾”£íb ×¹†–Ü t&hÛ†ÅÞ36½Xð]GÜW¸©<“Žw‚`Åín·‰©bJ(1C¢R4Ó‘ Ah6èV ÊÇ&€zž¢tã²<` à—T]#豤’*BÞ ãÀæk@vÁ§Ç ‹ª»ÝÝj`Sð©Í€Rï™KjÀ»`R¦00Éè´AX°« $3iñ¡~8œ‰Ì•ò9œwÞòd–'œ?Úi ÓÜÁ4uíXûáí°õó)|\¾%….) ·\p›/!hüBš3~p‘å-;)h¯p§ÁêÈ@‚/¡ãJVb[®³«x/†M Ù]Ù$av`ðš°º^ä׸üó¬Ý=ËèMê6«{ª3Ëq Ññjw P¸l‰_yJ©ŒæV¼¢ÞvÒÄ™&YVZoc¡ØÔ¶*xUó§ 1;l{"‡âï2nã%A&Æ´Æ-- º- Ù©TS‡ruS ¡r¡‘oß-@Ñ´0_ñžCn3 Ö´yd)fô K’´ Z±ZÞ—`‡"½T‡€/Œ«"a%¢`X’’QA:Mï<ËX B€›„-9È£<Ê>rͼ¼äof|rµÚy÷ 0G•7Ùm½®,›­qQ² bðfò·î‹P=æºóˆJ6)]8?»ÇØèeuñe~¤´ ¢@ u¼\QÆkÀñ5£™d"ñ¼w0¦-Ê÷RŸÖo-pwÉ´ï›0u5¡)á{6{1žîÎÜ‚=ާ›€ƒŽÐf‚‚W–ÍcA(„5µÛ£ßBâ &€ ÖÉÌ v4 n4M)…:fäÉB‚’VE ¶GI‰æã¾Í+ˆMQ{ïŠ<…uvUG³4˜|÷ßc ¾q éDO ð¾y4/48•ñ®Ûï‹ÄߟÌóÍáC: ¾‘I]¼ð¤5…)Ð5Ä¥D`6 ·ÐtÐÕÜ&O‰Sthrã…ñ(;ÔuÛÍãq–Ew¾–¯sÆ^ºœ‘_s¦’T‡„eO?ù,̉DÀm1¸{(5ðÿ~€Ã@Ý“㟖æ~Yÿ˜íÁP{ó =`¿ÜLü³ÿ0ª¨]dUäc“º‡CcÄæ~‹/Ñeú,¿E•ÙÚ­\U+ªLý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñeú,¿E—è²ý_¢ËôY~‹/Ñz_Bû=P+á¯aì_3yÙT¸ÙÃÛ.ÙÚÚšÕÓP²³ðj(à<žAÆLã1ÑHu°lxÿ%$"€ZÝHD·ÉÒ×’Ô6'¦m°à´åž1¼GÙ Q;ð=ô/³Õ@« $$â4ôúÛ"@§Ÿãˆ=Înx¶D;44,[ò$Úô Ìe(%gq@ÁvàÊhª¬M'ªÁÔ_—¢’ "Ûˆ(ž}oïoå>…özÀÄE¬iV «.²áŽQr3J¢É=>ƒöÿ0²RŠ|„ÖêDò^ª#9Ad–šNñþ݇·­/@eà?a²<[­c;o@W«7аêlwp­÷pš ±*Ûàß#¦&ÚLd(n<îr[¤P'¾àæO˜°ú8; ÆûqRÏØ!|!5·‰n‹b@’¸ÛœvdɈtÈÇIïwžT4UÂâ” „Pv«»üŸÐ¾ÏV–ã9PF ãÃð Î( éô·ø~‰»iK~˜oÄpœ*hþ°NCØ'š-=ñƒÃW¨»ø¹¢*³·WÇÉ{ïŽÖî ±×ŠÈä€,'s}[¼™·›3J:vgGðß”HÌ_‘@ Kì4{Ë:°üªk†à ,«5 ¡Íâ Ž4ž7XÀ²½÷q¶‚µÀ4¾ÿ'ô/³Õ. NÆ•‚¤SÅà ˆ¥ Ó žŸAû€s%à(€éEºxþÒ™B¶£Ìí-DV! W£pÔð-&ŒÖî)@‹EØ‚îXxÈ~[!— <jòY|«ZåÇ3t š:Þy9ÛŒEn&¹”]7ð`M=¢héê7dÜÐé Ž«Î¸×i"©‰êÑjE{2vÞÆ¤Ž6:îpöÅ†ÞÆaH A|)„`Ùi cËÿSÉ} ìõ¸ŠˆÀÙáÀë]m@ª¤n€=>ƒöÿDm^ë›Õ1Ïì˜4³›Õjšè)Û ùÅÛHœo —r%ƒ­ÓÑTCR…±|ÉŽT*³ *«j¶®\½=I×tûáÆJÄ¢Ÿ9ÃæMi‘Uo0ÈØ„¡iÖ¹N|òÖÞð ‡ÄsÚ:‰Ÿkð/›–Š>&¡œÕ…Ù@¬ŠæÏkDH À¤¯’úÙêöÈ"ì%¢½]®‡,eÏ–kk6;B×¾ŸAû€k"ñ®Ù ø‡l¯‡6ò‚<ïœX«/Dh FÙ.sÒ•?ùäS¿:–£ƒ9pFÆP›ÃYŽá{Âí8ÅöÞ ¡Ô5À Ò»®?šF!û„ué²Ô3R§{CpÆfQÚfÚ>ë••ÕÀF ¿’€µ.Úq—+îh’aL¼Ã8¯y#ÜþKè_g®ìM„_“Œ9"”A¢€ðz}íþö€(œç?†±ÊÚˆl&Xåܲ6ŠÎ3$$wZÊû~ùÝR‚)E‡^^|0&°K+6냔ŽàD!&°Î¨É¦ÁÔÉ:÷Jò¯*Ñ¿Cá*œ”V›FhMÐ[¡wâÚ‰‚A]Ô&ÕàtAÙ*»ÆäÀ öl ‹qÂA·âhŠ/µÞYàÔµ  PJƒ²%ô/³Ô Ð¦‚ÄÆ)Údó5ÜÒkГˆ¥léÜ«b …T,¥N¢} ìõVuI E)¡-ÈöLˆïÀT¯¡eNB£å»Õuˆtî4GN­|¿èŸBû=eŠFÜÐB®ñ;ÀºÁQ#ã{ôúÛýè_g®§Wjfô*pZy’?ÛB{ÒéÜôúÛýè_g¬>ìíÐ×"ݦŒÅu¨)-#ÓÝ™ëÅaV˜\fJ2ê  {]`Ѹz8£ïq“ã0Û RKÜD*ž„¡¬aͯØFsöLM¿á!ñçÇõ…ž€ÒRÙ. ÀðJ0ö ưXª•" D9l–…U-XRµÞ íÛb#÷ÏÙ2úƒ¬9¢PºP6€[Éam:×¶?ú¼Ì*®„§¥ƒ ÀÅ¥ˆ:Æ•P;sòçì˜.ª)*P:¹|1lp`ˆ ÞÁÖW ̳— at§]rÝ_/|X™LŸ5ÿI1÷¢˜µK¨„a¤nZ6¥—Jk n`œ£`¼k&l1½d¡^1ø2@.4[/ƒb'GGj&Ф>u–A}Bª½Êåg:;T7<æž{z ß¡€ßªTGÁµç¸4ä–h ¤'ja-|%¸°ÛÎ%z• 5 †SA%lQÔCÝ&N J$gU‚ˆ¢"m56¦5£NQ“r:ØgpojKcG¹û&DÎF¨^ªº˜û`ì öºÀF!¸‚ƒAAN)†=±¢GHˆž00z„*‹àGþ™?µbïþdݶ˜hO!߆r¾L6|sP^Æêó PŠ:C§çŒZAPƒ&F|š4lìžæC¨WÚ¯pËÙwÿ0m„†ýèë"í¡a¡<‡~|¤'Qhù䨤º9KñÄ‹õ˜"‚f%Ú§]4󻟲gì™û'§Ð¾ÏS¼iFêγíûîé>P§ÝË´# h§äM?#i&‚)ˆ[}ÒЇ„k8 „MhR Lup.ªº°°¢tQV‰N‡l4ºIn"¯[͇¡œJnì;)¨ ¶*Z’VK`À¯ÎCO%w*:l&ÁªïQ}¢Ìs+uÑ µƒ`%v!(Ðk6¥å¦‚˜ÕƒX™ÕÙÚpºÕ;¥ŒµöÛ½÷б1Ù« LY±À¸Å g»ºÊ,õ«¹TI­ŸfÒH÷L¸ÿ ÜQ¥">s„“ Èø¥CFÌW,iå °¢‰«X!fÕ¤Ð%]!B$‘;K{A9Í)XB!w Ž{…ftÑàðLŸçé,-l—+óÓÉ]ÊŽ› ³6ÕDÎÒ4ö–Ðu‚Dº±M¨ˆ‘MÒ+u¯Ž5‰P'%Y`#Oߊ÷\ZjŠ,KgPôˆ I£ˆØû©ú³"!x4uŠ¢Œ†oUÊüù%Ð L,ê+AP#+‘*µ ¶À—7ÎÜXÐ ”È% m.^í÷ƒ²¶‚P®Îq¹¨XéPŒ@UX\MÁ×KA˜X1Bè삚 =^ª L빬X²tÌå8_cÿ»9¸Û ÆcY@´ºZ׿`íG»áóß|Þh@éoæ¶"ø–øWžjz½Âf[ä³^ „˜0 ð¿€É¥'˜Þž`k÷é '6Ë€‚Š¢ 4¾ Røx²‚¢jÙgÎhËíŰ¡v!*M÷l¾îžE¦”(&Ú½ÂCáò^"O9L´¥¼êé]ùÞò>jøÁ`¿1À=ŽÄ½ ý ÿè_g¨°¯“€ « VÚaz¶>–ÓòƒùVÕ]Ž~ŸgàYø~Š "¶†¹Çx£ô)D ø4=À&é1€(Íyø~†ð5j7/üÅ:56©5í¬ ­IúT+ñ02U;JlOùŸa&DX~Fk—ÚTIDRÇæf e,UiˆdF;Ó‚°ÏÀ³ð,ü ?ÏÀ³ð,Z‰÷?ÏÀ³ð,ü ?ÏÀ³ð,ü ?ÏÀ³ð,ü ?ÏÀ³ð,ü 6ß$\ÚjYAV¿\ü ?ÏÀ³ð,ü ?ÏÀ³ð,ü ?ÏÀ³ð,zãhŸÁyŸgàYø~ŸgàX ±wŸgàYø§Ð¾ÏQ¡© €¶°#“’‰BT  &½>ƒöÿ Œl!ã ç: uOJ ¯±qÜID8{MØÊ’š ØKO2hC®k7ˆîH!îšÅÓUz½R,ÞÌ}¤œ¾ÁTlÝ”®ŸàQ¢-˜Q'.>ËIÔ5f¢éÐ:M—EÛÛ3²9† ¨‡_,W¦Ù(@ |­îº!{²<ªù w;àPÀ×ÿ™‚¤Õ4¸ÕÌ'åÉ„Tçbä‘LPj¶MÆÒ˜A?úÙë ÀÉýÕÐcþtSIMSÓè?oð$"¢¶ùWÑa5×^Áñc§¢Â¡ïqje®4ù‚c«q}á¢&ÄN˜É­.“¨í~/¤nG^5ŒëÐ+üÎØÿˆÿÜX®Ùóô? ’¨ÐÕÁ·¸‡e_kŽ È’i(”Í—ä7#¦>!üоÏQŠ“ú„Ù…¤QñÁ¿+Y ¿ z}íþnù B ‹ׯlT=÷n„åĆJ®òR…¶³C¸RTƒ€&¼¢ûeO±ªÞq¤ß„§¤ Bs.‰RVDLµÓÖDÌØ74ìásh@BZŠtoF+˜³¯¢€Ž€TóŠ“ÚÀHžc#£æãX»rjP#°g^Ë6q#ÜÆ Oœ€°:¯7¬ 8ëå¼ééZ ¸Ç¬G”ÙÛvU© E„¦½M²t @’°€$ä>…öz”‚1»ÌiŸ>€åd°6ëD¢qõ )u ñ×!lÞB¬îpï¥^A¡ºO·³;_` OX¢@€ù |Ü @È[ yÀ@¯¿¢R<ÇmÒ`uœ?è¡>å2a€QÐþCè_g£B²‚H¢ øˆ˜»þ2«*ù*ïEÞŵ&!8YÖéè«jÑE$gp5ä8w%À8!þ‰ô/³Ñ”äzÄPéQÆÕ:tø ËÖ} G"™ ù­®ê;ÇÑ¢`¨W^ÇÈÿDúÙè¤Q@§v'¹„ÎUЩÕ5Ðk¸BB›XôúÛýè_g¢0° ‚|DOൠ Ñ M*kiÜžÄÛ¢_O ý¿Ñ~…öz'æéRôæ`tÕµAÅ n®ñH":àHh¹%Œhê…©Dn臺eò£ •T ¾™2¬ª¬*.žØðIåˆýxlh€Ùü«è_g¢ôîÅ$ÐJt¢|™ä*Ji¨bëð ¹ðAŸ;èQ”ìI€"aZÒ™ò‘o^1—ñdD 9Z¦é­Þ˜™Å”Œ\6hÒNºcíñ”`¥UHTw¨”&Ä|Š•‰\]è<()Õt'}‰4…A¡XcÔ%{cWp)D¿óhQkˆ5zï%>ÀPÅÊž ¡zœr…1¥jP¤€*(?M&:abk¶ ¦ùO¡}žˆÐ-Uha…óìãu;Õ”¶5³ãvJ¤["•ƒÄôúÛü÷R‡j"ù -å’°=Q‘ÖÑ  Dàò5áн Ñå®eáÚÿb*C×8û0cUÔàŒ {œAB:9tT .Ía¡×rà"”PZ†8e=Ž`Èyà r3¥i¼ZÂA‚5Íf‡ ‹í¾‡^}°ð¸@jƒ·Àìxâ•uä^§æ0h/Fߊ¡D)-q=ɺØ<¡×òBû=¸F%iB@ø¥÷0_ñJVKkÌy¹Ž Ú6©_øô·øŶYªb;â"èaC±×Z¿Ùƒg–»ÌåVAN ‹ öÜžp¥5†¤å3„h<±Êÿ)¾¨RLjœÚZ(+¢„h9¢´¥õ¨*UDX^‹" FÃã ¸+†Ú¹æ Oűj°ˆUµ6©TB^º©1CI¼³ÏÆÀÅ_ ¢”³±ä™ç`‚¥wù?¡}Ÿäé…`ˆù÷Ä, ©ÍŸèÿÄ6 !1AQðaÑ@q‘¡Áá ±"PñBbrÂÿÚ?\:nF—ý†ˆÐIQÛ:ºPŒü¯R7¸W×UMñNýÀøy¤J&ýb}Ž¡:b—×ð=ù£}?«µª}@Œþ§ðœ$cîœdžùõw±P…'Yüv¼a ý“IF“8}œã·w¢ˆÙ¼M.FÉàÄ.­ù¸â&5¢º·äº·dˆƒn]8ÇGRéŠRþñN²-N®FÌ€…›ÍÁuOÈ®­Ù.©øh.­ù!fâ‘x镆°è• Y)B†U°`¨øäºû2 ðò#Ý:Ü8“üóGh\¬í˜È¤ÖÙ6Ý­ˆ|r ¶íkbŒ™éBˆ× ‰f‰’N}s&wk¯/ëv¸ëFõÖ²ýÝD#nÒ"¶€pÆ|tW\ÍØ#NÚZpÖŠ6Í7 Wšm³Z‹¶f-_kšæ˜pƒü ¤­’ßôöìµ‰Ý Æp­¿Èl­@s¬åÆfê_ÒK€Š™£qNÿ ØÛ»hËL’Dlå-©&ù¡uËý§¿ñöF=¸RzvkFY¸¹â|Ž#?ͮű ¯†Z­éû]“ˆ´J`é*z•ר›#-Ôû+¼–ÐÆÆóf&˜V3Ê=sCki‚.™ø÷NØÖµ’.Ÿ/y÷Рíb„ôìγk‰´<ñØJe¾ÌØ!µîáßë蟴læmaÿ)"ü±Ää·ösd\@šSÊì…êÎÚͰ7sœN1ÛMžÍ 3¤øß+g±äˆ¦XÓ¯¢¨“ÃÛS¯§k™éÙÝd×h$xû'Ž âÿ ¯ã‡ÇlÁ‡xì5LS-vf— “‘ºGÏrµ}‰`kEDV¹™ôŽ(QÀ¯ô¥þð=äê·`Ưõ¹:úv±Œ§Î鄸Þ1ü#qŸá†2…è€Õâ§ö”@'_?Úgî½}&Ãd¶´yÚÝ &ø“€¸«O¤}<0¹›DÀ8°Ts¨1 ÉÈWjØöK6Z¸ZTºéÃZ“'xÝ‹Op Ìw{+õ®Iµ0xþyUç€nüI÷šù,å ÀB¤ 'ÓÛå‰áò…oÏŸ!æ©­ ¨ÖqÐÚë_Úm›A­Ï|½SZÓŠÜ`"NI¶@´Qkb™z£fÁ޾|Щ:Çímg§f°ÎÝ&48ŒÓ6P—SÃ.ûµ û ­&ì]}Ø÷V‹ô,/§õ}Nye³6ÒÅõî‹®¿Ù~žÈ€Ðkù‹øNi¢c4ߣlö›ÍÞ-tx5§q Ö &2ªÚ¾žÛ.°>LšÅOî8˜ÿ°‹«ÚÅgYkçf°6Î-<ó&}9Æ 4î9O—“þž[ šÓ Ý_›ò_¥THí¡Ä <êÏf½S4„ãà™°4蘊cŸVÖ=Y‘7ï_NØ?R7ª?p‹¤áü$YVßA-pÜ} ¤‚#¼Ð"¹6@¹ZÙ›'¹‡G—juÀtãºÒSÛºâ$]Ò-º :hç  é/s€Ýýö¿TDТf¿Á•È';t‹$d`þX\cXs ªtL.¥ñ0º·L!fâ7°BÅäÄU ˜í…pÖ€DçL›Öù˜Ö‚r6Ž"IÖ¼S¤ßóÍW4:¿^ÊÑï‚j ô0}P1û†GËQˆ×†¹vÉè4Xʉ$γDÍ8—ã|Ï™ŸÈ•wwh’oÕgµÿÄ4!1ðAQaqÑ@¡±Áá "P‘ñ02BRÿÚ?Òh¡c¦ ƈW¶bR$©AôDìDçyüLû »Ð9M‰®k>\¿¼súCìô#Í0C@9 `£R#8{ö½R>H¬!PÒi Ú4:é5Ï$-XcêBÙ„L®µ›B¾Ù‰ÎB¬:ò´a0)¤9·‡Ë·äÅ|CH pß;2mƒ‰Mµk®¬ä'Z±´%u¶cýÖ³jëXp3ŸuÖÙÿÐFÕŤä öœƒ]ôBÕ%b#E­‹­ ­?|×ÃÚ‚pßC´DÞŽæ€ã»’ÀÌÁV–6Ÿ¨ Xq©ÝæEêÜy”îŽòë׆3¯výÉ­ºÐÞ P¦ƒ] ÄnQ@ÆBø{K·oS†g½3£=¤Ý“°]E¤Eêp³™_ izõêä¦ôg6kÁu׃†3‚gE{D^ŸÎÀ6îC£WR4¸Ý¡Ø¯’s°®²±¸…|ÔÆÄ˜FÐ"¹ÉMq$Ûžþ{¤ìQü‘¥Æè’¨ZIÎÃÉ_(œøš'ZA€™ÜžèñM¶œç‡&™íÎ}»Q¦w‘耓ù c¢Ïm ÉÐ}Œ#êPaIO´ s"‡I²$€p_e1>è[°¶ð(Û°:é5G¥Y4I4G í»Ð0…(º±f¼Ïå2*7橽ÌhɦÞ퉡®l =#’êâÎJgG³þÃ\wRG‚‰¢sßž}´ ÓeAò®‹·u)3(4‡„y$Úùv¿ÿÙplugins/jetpack/images/screenshots/spelling.jpg0000644000312500031250000004515312651056012022410 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚû,W¬ÞYµ–Z wü­ÎÑg[éw€£PÛtÍŠ?+hóoÖWæwI®iM¿:£e€9áy½‰-!‡+)¶âó uãØ]g+Q®íì¬P ø6êRž>…h(©Jz óèóèR应Tó觪 *Q´køùö£öHYK;¹²ùWȲ̹)ãRد]¹›â‘˜sšÔ¤æ³³k2y1ÓZÙlüø+¶&ðc¤£|FÖZÎ}ì/4Õäqg-lšî.f‡Îû¯¬û<—±Ãåñ¯]FîV½™r^œ· ÝÌõÍ<ïyx¾¸îoXñÎ3:×KD’븙qйòp–³|GêµÝ+›®Fçíuæ}Jßp÷ sþ©¯oy¹:Þ>׃w\õ°ÙÈÖ²½ÍÓ‘ôk²MNÌľ5®C?Óñ¼rÙîƒn3•çuÛ5Óåö _:ä®z;Õ}ßËÓðúŠñÏ{Vý­àÙ©[Wü=ø®&Miê:A_5+O~iîÅÊÒ•zx¿cï·¼lŠÚ½éçÍiJÒ¾”[Þõìj€* TÚcäò•hT KÌ€GÈh=Z.^&XµÎ+ ­ ~üÕ6=¤>B˜bù¿¹òO¡>lúSå¬Ë¶­gÄÈ@NÞÞÛ;(|†³™‘=§oï¡üý! _Q¬{Ùh‰Ï£=Yâ@i?±€÷·xæ¿©1tyÝŸÊ€ïL ñÆ>UÜôIø®±Â:VÕÛÞ˜>@ã•s¸>ƒ''¦í=]é€#ä9ÍçF ·¯û¦u*€’ÍöPò zýœs½àHÃVs6çp[Ù@GÈ-ëþ4ÛX8Óž¤8×Ò@ {(ù½Ø[Ù@GÈ-ëþë"¥u‰i ¨oe ·¯ãüÓ'Xù«Ó>ã>Œ  {(ù½Ωj3 ZF¹üc¤ô@ {(ù½<­+JÐÜÀGÈ-ëõÆËoÞÊ>@o_õó&Ý~"gXéËÞ6­)«ôÌMÇ{-ì #äõÿ<ÏTÒ÷x-«šÛ‡„ê8ø²3r[)oe ·¯ûª€V¾@-ì #äõôt 0ó½”|€Þ¿sæM—"g]ë;iÎԶ鎰½”|€Þ¿ç„Ûêšvé¯Nê›>±Ÿ µï[Ù@GÈ<@Öªª€­<ì@#ä?ÿÄÿÚ•(;ïÊ9g¸5§ï§>ŸÌž™—ÓéÊ]üüêj€•f²X鎙ʸºÈ²Æ²ÿÄÿÚ©¼J<ü}ÀŽ}<>1¬ý>à竵RvÈ:ô €Â怲ëË®t‰e¹–JÿÄ4!0123DP" Q#$B456A`@ÿÚÿÇ4âòx³J/'‹(J3(}%(ÇnS(àûOöžxÀB7+M<Ö‡"!dôÓ˜‡ü›rï¸j™Ž›^,P…„¬Ya´Ñ®[€§5Þ“¡ÿ#Ô‘¬¥rÈ`{à¿\6ô“ÙèhQ¨ú…ÁVº#SÕÊij’ÏÜfúa­ë_Üu¶žÅ½Só‡QÔìÀ£V5cóSjwÉB»N¸þ¡°Æ¸Îõ ÌSmÅÎV;OzÅjÌUýú#qÈÎ>ƞϺÓ=k[jßíÆMzaÝ®v¦gpúPù;št‰{­«¨i® ì!WM$lŽÍ¦Ññ‚³ôXÊ©!8i3{2=‘èÅå[,ô¨KKjIôøô׋¦Ÿ“=hèø/J:c0«ÆMOލ÷¢ŠÛÂ\B ;”¦qrÎjÍ„:ñ¯p²ÙTW Œ8˜Rå¦ ×Ûí´™¶m›ä%&‹o,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂY„³ fÌ%˜K0–a,ÂúÖúoünëw[ºÝoünëw[ºåØ·u»­ÝnéŸuºÝÖî·u¿ó¿nËw[ºÝÖý»-ÿÝnëw[§}–î·u»­Ýr[ºÝÖî·þw[ºÝÖî·þVÿÆî·u»­Öî·u»­ÝrìÝnëw[ºÝÖëú[ºÝÖî·þwþ7u»­ÝoÛ²ßøGõ¾•ý5bÈ€Û—î{7ÝXó¡úpR–Í»ŽõrO€÷EóÍn·[­Ô<}e©[%yB0…›çöÑŸp xÍJôã¬5ILÖZNÑO)ìCøÁWôY<¶mÞ3iG”`HÍ·}e/b0¡)¿ÜD«Ú‰äí/RBÝæðzçcÇx—Òš¨ëtú€™öC¼9‘ Ö=6úWôYnciq€Lò—XóÉ3þ †~jv%¿àóìwõ^1 @ ¯®WÖžb”SÌ?# ú²D°1’0˜ïW#Øc$lzl«øM}ÂN۳شͻŽô¥83ŸÏóqÑr2?­ô¤¿QÿµI\wž—V¨ð釈þeþœQgÀr›þ˜Žã=—ÝÏ%dðs#êÆzætÚ¹¹àZqfHÍå/Uj61JP²Y ‡PtGþŠù«EhjÐf‘ÌÒva²–Ó/ø ú,µ{P¡Ú¥ÁF½x‘@Jìõ‰ê©x-Gý)VÑBéYÿ¹¢áÄÝ8½H-Aê~=TðòþºoîcǧüçuyèfþáøoÙSn¨hÞŸÐ>ŒQ,´_h•±³»Õƒòç#ù¤ŸËÚ9Eßñ#qnÊÑxö»ú޵ÞB’Ìn–cmZtZ–Ðò2©%rŸQaŠºÀÕsÙxžÉ½4 Òš¢;”’•&])bào4vû|¹+·Ò’Õ@[up Ô­–€éʨ£^´x²ÿ­B=i„:X V«{¢yä­‹Žf¡P³ç>†®ÒU‡~1‚¨êùš2€ÔmJC„ãÔ‘I÷ „Õ©í«AHói;0Í9Ëg'ø!ú1Z…]âó6\•!]Q®:Ä9úŠKQ“5ro”j‘ ÍújîGÛ(¼ðG•†ô,úÏ–‘,p~›wÅ.Bó:4í³ÿJE‡'Þ© öG±=?§¶ìÿ¦v©ÙÎoº7‹«[áìå·jå6ƒ*òÞ ýGVàİ úX®–+OŽ6$ZFCóÉj±µÆª5é ¥ÝÓBð’~/³–ý Wq*"xÁZÿm'ÒϬßF,#̘+0S͈ÿŽqqf|ÁY‚³J|¹MœáwY‚³1ÂΣå\ØsÞD•R6Ä̘)ËäŒM/ìòdY‚³dŒÞ-– 2̘+0W6œ÷Œû#ºs…ßuœK8“,ê3ãÆo˜+8–p§0¸»3N#—å˜+8–q',$ͨ– 2”ªÉ÷–Jë(T¦ÄäñÎ'fÝ¥YŸu˜+0W?'0wÝu]@ÔN}Ô<¬¹Æü³f Ìå„™£,!Ê2Î%œK8–HÎQã”XøM2‘¿EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬EXбb*ÄUˆ«V"¬Eú{ü_¸îåØÎ몚ꦺ©®ªkªšê¦º©®ªkªšê¦º©®ªkªš¬Y}þGÜ}.ß5rM›ï3jýLÙ÷fte!£ô°lR~ÉùêåçûËj)â°Ä$"ßJ>2ù/qô¿þ‚»ÿWª½* ¶;t¢Ôc_K˜>åUœâz ò¬>£^[Õ„Üäƒéæ° IçVåÓd“ǧ‚êŸRJöq…ÙæhP¯!FÅvZm^ª³–Á,Ÿ¥yˆ˜-4« Y)grÊS)§>siF-:ï ®!î¶|ÿ§ZpµxSùqô<2€‚F£“Hûz¿Sª«#i|ØîÂ¥bVÅfåºÝA+É6›hp +†°ÅN5cö›2§Ð˜)Äd ŽI‹Ì¢žpp s˜osb›ñ³O8kÀLœp”žCµi‚X4èL'Qê˜jr„ôy Þm¡Gø¼>GÜwsmá&]uÑW]uÑW]uÑW]uÑW]uÑW]uÑW]uN0ªòquS]T×U5ÕMuS]T×U5ÕM5™»íñ>ã»RìÝÝõý)‰Á7knÈÓ`†eœµzP”. z„è¶ÏßÃÎßî;·ðu¨F¥b%w½£ShÊÓ=ßÔ85°ý98Ä0ºþ;¤(”¿þžø×÷1Ñ©+ò{Ÿ¨gZÇèâºidNòvøŸqÝ¿ƒ¢Â„ÆAè:HÈÄkº?[¯JÍ–¡M©tJ¾‰¦O!¾—E놻ôuú²[O¤ÐzMMkš}›6ZAÐ(KN¡„ä<íñ>ã»—ƒ¬Fÿ¬GXޱb:ÄuˆëÖ#¬GXޱb:ÄuˆëÖ#¬GXޱb:Äu•¤Ï/ˆ÷ܼ®›Á¾¦(ƒ‘¿g[Sµ ¢$§÷’ðøŸqÝËÊé¼ø„’`—UzÚiÔìÚMX¤¹j:‘anµë\Ÿª µL¼_¸jV"KUÛ´FufݨQÀ[74ËVÄXýµ2EîŸÃâ}Çw/+¦ðe6å ECL AD(šXHBÍϤ1ÞP1´‡qnM#Ix‘.>’Ñ™:µŒ¢§¥†lv{T„[%µ=>‰ç¨Ó›wRðøŸqÝËÊé¼ÿš^î;¹y]7ƒ}lUâÒ7ìëêþHF¤H‹¼‰÷ܼ®›Á‘Ÿ`‘Ø?qzÚ]„çµ^'ªç=‘ê%{à³ds~´»\]ùµNÔ r»vˆÎöí[Ũâ)­iVî FêÙÒç*§± F ¨÷2ðøŸqÝËÊé¼I¹AâñÓ«Ä4ÄÄÓ+L…›“F®I¾BhÂa;­H€CL¶g£WrÇöºÜe=2´ØÌö*– nZvšWÔj•‡¤W‰G9w2ðøŸqÝËÊë™W2®e\ʹ•s*æUÌ«™W2®e\ʹ•s*æUÌ«™W2®e\ʹ•s*äGñøqÝËÊé¼?cnã(‰é÷’”bÛË÷KÃâ}Çw/+¦ðe³Kñ–7©ZB¢÷5 Ï©Àµ©å³¯ÔÛMmeì^¾×ob¥«Ú™êÍõûf§V -@ò·LJÖ©dRº8u—¨Ý0nBΪ9iå9µ»2sœ"ÔîX»1ªHÿLÄ…%NÑîÊŸ_véhž‰dö*“©úËÃâ}Çw/+¦ðe.\_‰ôÉÓ¤ò6™L÷R!IE¦j_d&6¦ñ£¢ñ'R…úø„¯ Éc•´2AÚÀìilågKmê,X¤#šõí¶Ã2Ɖt«'”!kìÆéçQYÒÎç±*aÓ† UJ->¯I·ì‰÷ܼ®›Á¿ùŸÃâ}Çw/+¦ðdîÌÏ'Šçßî)F(ò/y/‰÷ܼ®›Á–ÌýD„W)Y¿RZ˜Hj5®ÐêºÍQ´¶ÖÞŽC®Ô$::ùž¡V¶|7S¹dà=ku;âÊÖ©#=¢Â:Ž¥¦·©Û,ŽM3A²ç™¸—‡ÄûŽî^WMàÊ[¼]¢}+¤¥.z]Ùû‰ JP™i}¸µu Ck *ºaë¸àÚ.¶Ù´Vyf}"Ä`AOk¼D›¯¸Ž%T¹îî¼qBÝ„rVÉ£µKNàMº­%aÕÿeË´|ϹäU¶ÙZþJH¥eK]llüS™¤kÞ繷šܔ”Âzg4 ]ÕiµL*cŠ ¨vÈÇø)!s$¨k±kmìóBíŽX©Ùø8)`lt¯!­,¹}‚•´pºöÈèKÃËÁO Â$|­a”›g}FÄ—4âJ[% fVe¯ÅqÀþJBÞ¨ûˆRJæbÖµ‡šv_ûYqÄ£¸W Çä¹(6w’Á®üÖÎØ´åÝ3ª}4Øàû488y'KSQ?YîûN*²J‡DÌb c̪·Ç5=ñ“¼ …S#§’Q)˜ñ¹*Ù'ÚDb‘¥ ßKÚ3I3²‰¥£üóS;ãÚÛy9]JïÞœâM¾‹*ù"ú±hp6í²«’ #f]ˆvCÄ*™^èfÚ—»yyS8dÌ·pè¶Vܘö?gXñ7ìL{2µƒÍÏG]½Õ ú–þe|.⦟û…K;ì2™'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'„ðžÂxO á<'ŽŽï@qò Ñ1ú&?Eqæší¢côL~ ~‰Ñ1ú&?N‹Ÿ$Çè˜ý¢k‡˜@Ÿ ˜ý¢cô@0šãä¢côL~ŠãÏ¡Ñ1ú&?DÇéÐÇè˜ý¢k‡à®|“¢côL~ˆ8yކ¸ùÇè˜ý¢Ýæšý¢côL~ ~‰Ñ1ú&?N€O’côL~‰Ñ0>A1ú&?DÇèi®?‡Gw£™NÄsR— ôwW.‡äî@tw‡íwV È“øy*Brmþ;YPÿò…๧G³soãuIç´Õ6ÌsÎëŸA°DÍ88x.êæqº.TU_ÙrdÃúã#£™èŽ ‘Ê"SdÖË.Kº:"©þÉQÔyÄ@]áû‰V¿a ¸¹&‘ÏÁXdq\Bþ",Bw¸_±OOý²§§þÙXä×–õ|:;©Ýg'Ø0›å¹÷›b»Áw” Äü9LÕî{P¡n.v96Pë⸵—èîôs+¼[({e⟛-¸ó]ÕÉpq{­ÑÌ+ÛÉu$k· v+e´Ä7Ù;+>ÀÚÛº;©‘‚o'H÷6ü@²¡“Ö‚æ¤aq#«nQ½ÃžCz¦|c™p\ú[ø§ã ¼\9"6kº¹¯×ôÞƒ= qû•e‡Þ¿ê¹•Ÿ†9~ˆ ;2d×Yßî6Uðã¹wV×inÀïÑÛú&Xü]Ù]˼:Z_ä®eq¸ì¯Áw$ ¸]ËpBÄör_ÄO1–g9xª‰o‡8ÕL·>à»Ê¤G…ÃØC·õ®¤;¦Ê£nã3Nàwö;ÖZ,´Wܯp²Ñe¢ËE{[£-Z,´Yh²ËE–‹-W*ûÂËE–‹-ï~‹Ü&\ù tWÑ^ØÙe¢nÿ%–‹-6Êë-zsÖZt^Ä,´Yh²Ñ^÷Wâ²Ñe¢ËE}ÈGwGuªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€ÕªT¨ P 5@j€Õ¯Gwù/»ïÔÖ¦µ5©­MjkSZšÔÖ¦µ5©­@nù—w£ÙõÆÑ}£H²ömKaÇ,îÞôDölÝÜ>/Ñß´~=QðøŸØåÓÙƒËzݾ?¶×[Sä£}ŸÓ.Ï/?š÷z?„ïÉÆj©œÎ$fn/6}ÍŽäé\[T:­u……Ãy)j`»tõu¼EӜܪ,lxõJ5ÑK™1T°“Gg#_Ô¼p>*Zúš–ÝßHŽígáÙeÅÌ©ç273Ö­ŠšSPK –ãsÂËjükMkºØr y£ÃþÄ÷¾\ÅÓê©gÊÏl÷-“Ã’šw÷ÚB1Þ¤”“;£‘ñ޳šÕ^ĵÛFÊ †íÇz>Ð5n‡µ§y[’n/w³îáÈïOpéÙZýª¢sR#Ï?ñd÷ìâÅ­c]mä^êgÊöã‘à-ó.ïA¶m-º–ßV“ñ³šëÛ‘Ucß8™Žà •T%1ƒ[#j~;3áÇr¯Æäõ]E·ãb¯³k0^Ð?EÇ6;:Ü®Ÿ´sl±µÑqi.·4HÜÕ¹)^Ƕ Ênö)‹Ì‘âÌŽ7U&HéÜa‹ˆáuS†ÝîÜcÊÆý‰ò2Jc´öä¥Ûqk‹UcÄpìÈ“Xè~ޏx§:ÿEØðÿ(ÐÑVS¾º6äò.×ÿöªeŒÈæ‘1ø¼þeÝ÷}¡m=Kiê[ORÚz–ÓÔ¶ž¥´õ-§©m=Kiê[ORÚz–ÓÔ¯ÖæP€@ )îûÍÁT6Ën›âÆäVÓg;±gWµíX.N;ùÇwÞ?fÂÂîKèU”/w ÆÿªªžšR‡Ù¯µ·)žxÙ‰/¿pºd±ÒËNë¶IÃîqâüƒù©€¦$6û†å]Q´â–à«O PäÜ]Í‚‘Ò·ö|ۻŽj–äv9ä„ÀêS·:Æê¿Gîþª\´·{ÉÜTGe ²ŒgÀ¦´­ÁæüB…ÛìñϵQÒLÑht†Îöœ#“­ÃæÝßxªk=I¬õ&³ÔšÏRk=I¬õ&³ÔšÏRk=I¬õ&³ÔšÏRk=I¬õ&³ÔšÏRk=I¬õ&³ÔšÏRk=H2Þ)îûù'\xž_³;wK±?×ÉHטÎ/±øOÍ»¾÷ˆi+ÚŽÊ´àAŒYž#ÅTmÌÑ0Hö‹–¹VÔѵ¡/©s{7øªê˜*ìòiä†ÑºÃƒJ¯tíª{$E€·%ôÝ ”ˆ¢dˆ€x…¯í†îÑJ#x¯lmvp6ÕU:°2“nÜŬëÛEí&O´Œ-ü7ÝóNï½ûBÉïµ²gš’KË;&>mUÕO§só0’-¯*Êš­“±ŽB>+•QQ# `,…ÿ nUÕtÑHìnÝ~ÛrRIÖ©?ˆìRIõÕsàBk¤.§0˜ûЊ*bIúT—wÂßšw’û¾ýáÎÄ_ŸìËðͰ;¾ß$ðã±ù·wÞñ +ÚÕ9ÖœÂÍ*ªIDÑ1¯~÷bî!T×Òµ s[õvªý¡OXCúoÔ¿w¯hO9ª{$oøláØ¿Ô ÂR"l`ll…‰öÃn4Uí¯llp6UrÕ5´{ví»{/iTÍô§ýk\z§«}ʪ¾š¡ÓXߨxìhùŸwÞð"ÈÉÊ=ÿš2^Y›3·ý¦ðUn…ÏÌÀdê]OUPcc¶1Ë%ÃM”•M £‘÷lnðUp2C“âŠK4”d±¨~Ðý“ë¦»Ú †I‹z®•M,tä“·Ÿ>Ï…¡TUÊÈß›"’K´™÷}äÔ9õN}ASŸPTçÔ9õN}ASŸPTçÔ9õN}ASŸPTçÔ9õN}ASŸPTçÔ9õN}ASŸPTçÔ9õ ž_)îûÝÁKíÝuýëÚÑÌŸ˜w}è»Nâ Šê*kßyoÂЧŽwSS‰ýž:©¡–*Æ“‹#¶ÎͿ⤇èå×ú6böø¹§@)©ל›Ö;¯e0™³¼ÂÚrÝ=¡Ý¨á”¯— öc•m=dS9ÿXÆbwÞE5Ž{jY†CµOK#¤t÷lxŽÅQ ™Y(iˆEð/ÅL²µ”ßG.Ìnæ«`¡“8òRâ_u¾>­•{¿ÓÃòØá¿ž9rG6U†µÌ·—µ^êXŽæl†Dr.UF{Mï†AÞ*ìkD¦C.Èc¼ZØªŠŠ—É#eÎ6uÚáÚuTðS tÑà]àÐ¥¯’*i2"¢,GæW´ÝO®.,Ù‡bOí#53^‹¢îìÉWþêdÚ1›-í9eÅWºš:­ó3 ·ó“¬Êx !œüSóÚÌéxp¿gË{¿É}ßzlª"–Üpx6ý·†6ö¹çónï½áš§ÚE´ÇáhU›sOL$æ0 ʬmDu93gŽm÷*¦ìò¹¥Ã«…íÇš¨”Ôml˜–]ÎêÞÊYç¸mbú.,`=¡Þ °Ò’ûóqð:Wˆj -t±`ýç´"×Õ¶«·}‹eù*¶ÓS2ñ~YîÞ¦š]”"¡¦x0qïV]xá¦kíîçÐ^Ô5–h»aÿ¯˜÷}ë±6Üy)ëj¾»jÝ‹|nípF©±ÕF"kª?Ü>6ìO?ºpøº¶UÓšüþa¥ù#˜«=‡€Y{V¤ÓFz°â8r¿%3 ’'ç±UÓM$ÎÎsš>¾Óg†=žjW·9¶¡ã‹Obªš¶Mai`€ òRÍ)Ú3âaì ­õS½˜dXfþ1îûƔҚä×&”ÒšSJiM)¥4¦”ÒšSJiM)¥4¦”Òš~SÝþJÿÄ+!1AQaðñq‘¡± 0PÁÑá@`ÿÚ?!ÿÇ%Ý4ån$ÓÕv^oº%/ÜàBÊ]>¦i§‘1ÕÚãN7ûŽBôËW˜*Škš¢Ñl`|§¤š½tŠìn5…°mÖ`N†ýᆠ.­>c;¨/äÉ}fkuWbÔšù¤”¥)¥ mè_¡)JÂÆâËkBþ„¥7+)È—èp} JMv(Ô,cè¥)¦æµU›úR”„°#†9Ñý Jn&W‘5¥6¹>„¥&±\•ä.&=5—uµƒ–ÛŒBÞ5q±³Œ^ÿÌUå`½ÔÔ»ÛiÐyø:Ï(åâO•ùš½uŠuáÃ|˜uÒv,áLç Ëe7c†cô‰x"‘"øiÛöG~{â:óߘÕvƒ’ô&@Z¼ÅŸ“æitfk–ÑSÈ'Mcáxx-Ôê¼å®“u˜êañ¬Þ/S«UÓúŠ6±ýqtÍ Ï6± â¯=ùð#Uf¦O.s^a{êu^rÈVÂÛ£´ž–=J­Z'íßÄ*Ÿª[iÔÌ.èýeŠoÑCÅàŸ¤ù•ìÑ8sx\¨ ØÓW®q¬lÞ“À]2ýDÑ”ØkµPA‡˜ .£ôà]åá§ÓYqWKX®&=ymz*· ?Ìôx–R#^òðtnQª V™§G[[–%§qˆŒØ›ÃqŸ;ó]uŠ>¶ó†¶XùE> Ü”¦ðᘽ¿‰e*˜ºu¾0¡G®iƒÑ¬ÑûßWšüÊüŒ^Éh'ƒ¡Ô 0Q¼~×ÌÒò|Ä ÕVãߪ¼½äßyÆçŸÊuszùjK}@1i—x­Ë.Wuû‹ÒÍ!ÌSøAg*¸‚¡¥¡ôsŽÄ/1Wîù–ð <Ð÷W"hŠªòÕ½Xúã+j5úJr)•«¥^…ŸÔµ¬àOn‡¤;<ÓË«U\b$H&ñл¾ÏýÌÏ"õxI veë_>Øäɳ>G¬v º<%q&]5¶Äª]ÖŽs–ËÙ‚ôáŸVxhô×ÁÐ’Š`¨íå+Ì–ÕmSPYî¿2ëÉÌ´bª;iÝ®|îN¥Ê©9|EJ0¨¬#¶Aµ‘ÎkWûŸ#ó:ÎqP«?íÑŽ×,³£þòáªàᘫÉüM]¦=a䆌ÞV{å=˜±ç|E^cóÁx;DNŒ¢’ ·Qcö¾fƒÉóÅ @3ÇâUüGcEü Ê㑟té<âÇ•·Ä«ƒÀ¡QÖ/åO ˆ»§ŒJæPû&m“üáÚÈÀËúëɼ.†Å&iÂpÝq,Þe:¥xλÎ]^ yo ,Ø]¶p¨ER×:j'´ÃrEž 渫Â/Aó,–Ü]ÃcVÂß «0U"J< „e¨5½¢#æN#ôáׄtü+‰ Á9æC wJm!@Nd98Ð õ.æC™ „†ªí˜Çd'Xl.Ï€s!_Ú@ϘD%H:È&<Ê©™Gi̇2è[ÌZ ¤|09ðæÂñ×C|®7kl9ÊÐQ‰„h%“l9°.ÚI¼e§˜øB’@<@Ö8@†b“¯ó pCFÂå¾4vNÅ;D2÷MÑX—iÀØNw€Èm$ 7lQ9°æC›!¡mI(Ðø¦æ·ÿÅÞöµ¯{Z×µíkÞÖµïkZ÷µ­{ÚÖµík^ö½¯{Ú×½ík^Öµ¯{Ú×½íkß]ñ{úëö×$!OöN‘ú‘¤~„DéT“ ?%¿®¾!«uoÜÏÔpc)ÎÂ㣲ÀÀy†|ÆÃò1ô{”4ðò*Çg/®÷á°sİb<^/f~K]|:‡½ë\„ ¦Egm GuÔέaÙÔµ‘£î3tÀfÑM‰.ïÚ<æ‹*^à >È/S™ÃäÄP|ÀH÷€«þâ ßv*˜‚b¶uWHëDÇôBý{@ÜÛw-œ#1[ÅYÁ·­ÝÙI,“"Àù*SqG$G §4ó%ˆFÅç]µxäUDPïÑJµÖÀ]Î@~K]|9`ƒK*p~‹Y¯Ôþ4Ÿâ‘¹d lǼ2U¥e\CEhùkËYgZƒ…šeÔÄÒì檣f!.Õ},Ìàd4G r¢v®ºr¹ouMÛŽŸ¨$Ü2ÆäfceeÞÜJ–^•†¥üBÃyåËRÚ§ªã/½"=عxZÝbÌ^ç=QªÔUBõo¬ŒÛWÙ.ÚèÍ~¡C(« l ÛÙ-V»5‚€¶ñüŽþºý²wD%XÛÓiÑÿ3£þ'GüÎùñ:?ætÄèÿ™Ñÿ£þgGüEõ·Ÿø€ƒÂóiöjªªªŒê¿¿®¿oÛDZjºqj°×bXÊn«0‚° Í]“ÞeYÌÏfç'G÷9ˆ ¡qSîûŸÄïë¯ÛöÓ•õæšÍǹû?ˆýð‹®§&Ðd¤cÚìàœÇ…ˆ~ï!\„BN†:5¸4Øz²õUPõÄ UO»î¿®¿oÛCHúhÄ‘g 0PtYÀ•öá{¼Úß9•GM~¥Ýj뉮ð\lꚪÚ$p5—Ïq„iÂZì_Ià}ßsøýuû~Ê*­7Où²”¥)JR”¥)JR”¥"‚kñ=ýuû~Ò{o“z@šy¾œ`qüòµu.ä<þî¯âwõ×íûIí¢  0‰··™#ƒÉ¬OLò¨Qþá38ûoU5âÚ¿˜¬蛼Ñ0ÓsÞ^Ö%©M¼b²Io²%‡»˜âÞ-ò©¢ÁdÁRBÃíëþ']~ß´žÚ ¸W2 1ï8·IòÚÀTi†4š€kVî°ÔÚ ½Ö˜d/VñnPfÍmpAÌc6â]¹@EJšmz1ç­4İ¡¤²ÝyíÑM|þÞ¯âwõ×íûIí¿æÕüNþºý¿i=·…0e±÷= O R 3 ØäáôÌ®ë3Òð¦gíkþ']~ß´žÚ3ªDx58É8IMeS”¡F`c¦]¿aÞY‘i­!ƒfS·6¶ÁÄã6ñ=Ÿ©mæÄÙà:ˆé~鬲d`)èVܦ7ÊW(lD 1íÝxëÃìêþ']~ß´žÚÚÒ® ×È.K^­fÙpXÒoo˜¯~u{@^uÆ ®:ï„XÖÍNvG§ž%ò€‚Ôùj=€iت刴ÔNeÞa²dõ¶ç9$”‡t¶¶šý_Äïë¯Ûö‡6u?æÛm¶Ûm¶Ûm¶Ûm¶Ûm¶ÛM¾¨kñ;úëöý¤öÑ€eW°ã*éé÷sýjˆ_Ÿ×«øýuû~Ò{h>(Xœ&*B±¦ôhCev6[Ðy@eÍ™h]i|€-QfÝñ”¾|v›~”ì(èÞáhÌ=ék W 4cµ=%—Å(](Q+D'ü¨ÒÿÜ>vBœ8\¦¨dW‡f¼“rÒåaS~r÷ì|k³g”­2ó(C£ ^œÈtm¯Ñ«øýuû~Ò{hQÜ,wmšÞ ®—Ìk›8G5mÍŒ(\`iŽkÑ…µÔ×ú‡(}`¹¥ó¸¥0c§ ¶’÷,TµJÏb\ÈÉ¥J^zP kâ_qƒEÏ ^ðÿxˆF…ý¿&«w ÅÃé²ék9?©‹:+]Ìïëù`ô)]ÉëD]Õú‚ àÖðú5ÿ¿®¿oÚOmà)£QW.~½4Šº«uWíkþ']~ß´žÚ!Z4|bî©itýeÛ \[¹«øýuû~Ò{h`ìL$’+ušo[•Ò³PÖ,!`£s_ܳÊ4x·ñܸ"Y£S°Ö±àuÀëݬ£ß>­`GNi‡ÌÓgúþD”T¿f7k|!kÚ·Y\%‡ƒnyòÔ¡ÁŸ®¿°ÕüNþºý¿i=´-‡@—n53!ª½o˜ÈÐý‘Šï„àE5å*kÕá E»¾.[EÀ&);„ikh´zØ =Èl´u€.Vh<6‹SÁý bJ®)º Â*Ÿ¹¢ö ç'àÜàQ^pݹ깷û¿‰ß×_·‘r‚Üìr¦G¯üq™™™™™™™™š©øŸ]ñ_ÿÄ+!1AQaÑðñq¡±0P‘Áá `@ÿÚ?ÿã‹·¢ÐêµÅ `ae –g1h·I¡ñÏi„ÃõP*t³WJÑRÂÁx¡êÿæË«Ì..Š{Dï(uH7óxE•ª€Z/¦nôŒ#A‰O€ˆZ±t¸¢‰BíWXµa(o÷RÈ «*ƒû!–€…º Ò5˜Y<¼ÎÁ3)h‚+@ç 0 4´~L”¹Ý‚1žZ”0fõfäV–[MšLMAåp2ÑT-*âä¬AFÙ­˜¡Æ¯5¨Â©dT7—+,²Y„i±h-ø*»T'ÄZ6«×9Œ6%‹[jI¦ Çð[‡J1Í’ó轆©ç#D&]j¨-mrõ& !º~—¦Ò³Â²w¶‡´eUÔµº¨¦™þÜB¨Ï-2o$áe¬×îoP¥ö¥‘pvÜNã`[™¡- _ØíÎÁù1ŸðÃWM±i8Ì’Øe<€Ò¥dA°܃$ÄTu•K¨ªÒ’ãØ/^5¨i©k£õY\erÀÚ—$´ Usš±iùÈi±ÈðÎpP5–xÀ:èºHÖÓ,ÄÕ=dSTdJ«­%[y·0[   oί(°¶šý­ ‚kÞjË&C6ÀkL¤>"EÆq˜%$TF v —Vdßî m±¾©Ôµe}Ø"«¼&šEä@ ¢[¬âR²^HRQƒ€ù˜5ªÿâñŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1‘0\9ÚZ ªh¯…Ï&žM<šXŽ‹YWHyŸD"q'“O&žM)Ë:…O'žM<šy<¼´•$•–UÆy4òiäÒ–hH_¬VÃGô'“O&žMM?-RÍYmë<šy4òipæM…q‚¯CYäóɧ“O'›¼êá8òiäÓÉ£â]P¬ ·šŠ¸Ï&žM<š,ª Â奪Y«-½g“O&žMImؤ±‘$òiäÓɦR X°pWäÓɧ“DËD5mÙ G/$g“O&žMŠ Âå–š¬ðg“O&žM e†QÊ Á%«Ñú*ô¿/¡×œˆ°èF\.SÄX_®¸†Œ…±8ËÆG}eÆ×#y_ªÀ_ò%î+ì1 3œ¼¼twø¢ÉÍð‚ µUYF“[’ä¹®š°¼NÅÿ#ÒÙv¥—*^ÊK À¬6æé½B¶‰ÿ(Ù¤³ÒkJé»/2ê>T>Ãj qXQÎÂQÆâRÄΩfó1ÇæGÝl‚Do,•º_K—WQ]è€e*çàì9x¥GÒƒ.¿ ›Ð%ÇI¿ø²„î¶ î€¸[úŒâ²R5Áƒ6 î”د#æƒîåÕ/8Ðv•éZP”WQ£ƒÆ+N_˜V‚¾4‡€[fÙ=3q@˜D5A8ÃU]²Ñ äÇ‚m©|TCoÓ²A¬ÔÈýƨ©qõ”'u¡Mf"ë·pXT5Y$K˜Ú†èo%\rW9Úmczáp3*´ÍV1Y1`ÁÆêªW ‹À i°eÙˆ|‹t(Rù}z?”·B܇d¯–²ª–zÅ,—Î$²8ËJ‡¾¢Ò~š#YG‹×ì32E}þ"ß,4 Ñƒ± –c_WŒQPfÜ¥UuoVÍF2·d ÝÞÑqyÒ§æøL6©u¦<÷I«f2Z]“¾?ØÏ ŠmTÇêQxÏ…--²òª/KŽÛpàÏÜ–”騥y—*.Öê–g*ðášé.¼7ÆÜ5œâîA­Žo›,·u¢u&]äô ªº(«·j]i*¹éÀ0‰cüˆX¹+0­³©FÚ7hÒ®‹¬¦‚÷¶ ú Vå¡·úÞPûOA¤gÝöŸÄž×çöýóâ`ìÿwƒ]ÃX$4Àu]Ž K´Ç 6Ь\ /JMõÆÑPnð(bU”*ò Ç4áv÷Ž;ڱ䦀m[8Æ>f„ÐVÖÍñãÔT2 Éyáb…tßîûOâOkóû~ùñ.a’èJ®2–Õâ}zú0eÓ) ò¨ùÔÙ+Åu¯Ô¸¸6I|â‘„vË«-˜~Y£†…@YY8YîÕml™4Cp­ÌÐ:ÐkGÝöŸÄž×çöðgK|FjkKÚñ<‹¤ò.“ȺO"é<‹¤ò.“ȺO"é<‹¤ò.“ȺO"é<‹¤ò.“ȺO"é<‹¤ò.“ȺO"é<‹¤¤[¨r+?‰=¯Ïíû¿Äö®Êà1ÝlG :ýBÐ5tˆ6æõ ñMòù?,kóû~ïñ=‚ri%é/<¶ 6ËUàFø*€Ie  6IbæúµKÖRYýLa5%Kï{±ôc‹.ìò…§¦gôá†ñ§ÁßZÚµÕè©úˆwƒ0Í9ŒÙç0h&ôZê[à1ÍY›'B%h0Uæ¯G_ÉÃÚüþß»üO`Ž¦Ô“ža ’qT0ªËdÄ=X ^Õ¬Þx2Ö˜G8 8Š¢Wt`[xŽ”À™cPÕ4-‹HÔRÚ'¦%«.·{œÂ3%Õ+ŠkwžrŽJq…JXÜ¢å¶E\R%í:þL×çöýßâ{çÁí~oÝþ'°|}0]5éþfÖ—¡Ë0-¨Þ¥ªé®5qˆÐu«‰ÝVãÀyœãÈm™w³ZádDÔOXh‡¤ª]5Çòpö¿?·îÿØ"^)µö'©_~+®€`í¶ö¨$£k¨#&u×Ò/ŽØ*è§"úÇêž“˜Û{ Õ‹ÛU<ËžSLWEAh6æôœõ’ÿCgê$G  Vkw¹e©ÞÌTiI,رLJ9«—ÁCÝ4]ÃL­Zpü=¯Ïíû¿ÄöˆóäÚš®tÇ¢*m–•@äÕâK”Eí›M`5r­VZø(ÀSW0ŠdÜÕjË(Lч¢nŠx«b–` p,sεÐìmçÏ9DÜV02ÀÄ’ö4(Âm¡Šá5P›¼ j EÄU*Úëù {_ŸÛÞµŸÄ$P•8×ÿ˜‚ ‚ ‚ ‚ ‚ ‹ƒsH!ÆŒ¿‰=¯Ïíû¿Äö0e ª®œD¨¦Í_?»ƒ`Ë3Af­qQ¤¯ÇƒÚüþß»üO`øƒS[aáC¨˜¨EùêèÓu¸.Pl_åST(Ä¿•BÒ[ÐLPœ‚‚HÖ#'’©Iï©Ôm8³Ã hcÿ§É—0+¦;4‡nˆŽÉ#Ê1¾;$(ŽÉ#Ê Iɉ`‘ò;$(ÆøË”N!!‡Õ,:H£Þ$i!4Ƭ_ oå ´¶+æÊGO¤Z„Œj‰¹D¢©ð>Õ”Ë:³þ[»µjÂr™E 5ë UÎ}£´ËP «lßQ±À|ðr™jýª¶ÏåÒn0¬¯& p§IowÜB¦&gy%Ç×…Øc¬U¯b…^:k±ã¬V˜ë¦:Åi‚I©úò4ZÏ®è5|fkë .úßÝ _ 8þ-|*Þz []\Þ4c0„Û]\áõ^—¸ÅBqåùƒfóÂèqk\Þ4c0„ÛÜ"€>«Ò÷b/Ì AÛž‡$âÑ4Óû~0l¦îÝï f¤3â©äðŸÜ—Àsɱjl8º ”Å7Š9ß}=½(_ˆÌ4Óû~0]©»€·{â¦j`Eq³ä6Ç…¨Æ{é²( ÆmÞ?ÿÄ6 !ð1AQRaqá"P`‘¡±ÁÑ@B ‚²ñÿÚ?îr"Ò6ûŽhß[y*ôÔA"4#õ^Üј•Lüx–ÔÛÖÅË9MhVwÏÚ cW5Œ+E{©Fu2°Ùí?_^Ì*â¥\9¡ΧõX¡|Ôk4£Ú{ÔȪÛÇ¿ÿÿÙplugins/jetpack/images/screenshots/related-posts.jpg0000644000312500031250000002616612651056012023364 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂÄX"ÿÄ ÿÚöX¦é¶è¢éÌ©¬èr©8fÕhh˜mµ6yÆÌ7Ð;«º'ÎÞ©€4^-²dã#iê oxXtÛrãO"£—bD—…Ü^Ëh2îM[*uoºßAzÈ.ÕÝÐ>]ÖY¢ÉúÒz«VãZÊ£7üýúYIScoƒ½üÓʉ“kñ«cF›*Ÿ9Ìåÿæ=5¬'ÖÆô׬µÜ »»mOœì]yE…ÝE—T Ñ7PÀt~ëÕ´9íýQ¦¿E&Eû÷·>M#]_ÔØCØ8tîü'"ºé™v<Åã;™±þq"«Õþ´Ç{ñË;,K êç߯‹·®ŸÙU·ñ®­o£6­lŽž}Z_[~€e Ì>8Î7¬v%ToGú<Ï 5^¾Ûžê—1…¨u‡½çÇ¿§ùl~¾îÞŽÇØ“dF·ò÷Œ%fþ§¶Ä#c\wžÎ‡>7/µVu–\xðïèëï•ä&ƒréÌÇÊ jMUïyѯ»1ž6ý½|:,ií¦ÕÚÚ<½ã«ïKî¬&²†NÔÙPäYÑ|tF »”nÞvU™83Ÿ¸4îy_—ti]Iú”ˆòl¨òæ_ñÎÁ®ÜûBE.¹™¹·( #ŲG‘âPœÙ®o¦¶F¡Ín¼ûôß3kñÔ¬¯;åœUb={ÇР™4{²×;jß©™¸ó'ŽgN™gÊTSz¸ó'ZwÈéù×ÑÓ×ú¯›€.ø¶Të ˆ•ð½]ë  .ß™ä EŒ}åÏ“ç9BÿÄÿÚÈ×=\ÍdyË9 J9V¤©¢øÂrçC>~jzŸ;8OœÛ‰o¡r1Ó§¹<Š4ѳ3ß?^YñÙV¯W(9“?ÚwÇÌ#ãi£G·”â—³:j|ý:;< ¢­Û¹’°fŽË”P­º4ðÿÄÿÚYX´I DÁkÚ3‰¬IÎøuDÆ•œôW*¶ÚÖ§&—Îùê½#›ÖYÈ7èÚ¹áÎ'§·5€¿dÍ0äºgX:éO?B&@{ÙLàÿÄ>!"1V #56@U$02Qbp3AR`%'47BFaÿÚ þòHW=¶2†ž¯7ê³sÕæýVnz¼ßªÍÏW›õY¹êó~«7=^oÕfç«Íú¬Ü"°­zØËzv5ÛuP**äˆ9×PWjh•vå%’µ=i‹ÓØ…}įm‡^‡bÝY@§é%ƒwf¯ŒºÐ¡ì¬õ5tžÚ\Ö°³nêáÂÃÌ£YúÂ3UÔr|1Êj¹Ë²TZBµŽãÁ/Qƒº¯x£•¥w-´[­æÚS¦Çm‹`+—¯ôÈ“:‰VrN§« Š4qÍŒ¶€NÍF~iôÏ›ùV¤i±äI‘NU'Öñ—PÛiê˜'©“Û~$ëG'¾i½]yY"G¯ÚÂMñZÇ’ðzÛw]ë-¹É¼A0¾$j$N,°Gc|DÕ|¼®wÂøª¹l·]%v¹×ÜUíµG1³–¢e¿["Àè[LŸÕå„ӈ࿄ǎEud±Ø,û J-ÕpmkÉêæ´ô6³#6ûÅ$1T´W­²avjÓðÔ mGEtãg¶)ûòëkYßL#­ÓÊú¾Ò¶D>·< ȉÕöÊN3Ô“`SžWÑØw¦ŠÙ©6uâWÚd©6äû+ ¡ ØönZ:ŠUY$9PÔ6§tRññjz¬ƒ×å’):º~5Os¶NÌÓ»“»ê^NIT¤NTm™/QË|šøº~?>½_0ÚÑÌ„&£¯ìë€ß†O?LnFü`3„tUþ+¡À¨ý•nX­ŒFäªÎ_†ü+UùßHeÚŠ¯g³á¶UÜÇÝ0YLø!/hT{là µ.w.UÒ°ÇâÞ˜Ö\^-òãÊE;ÒXA×£kJàF&I¤"öî©à¼'Á=Èžæ»ò(ˆŸýΠ+:WIª_[ͳ¥c•ÉðÍvWº<`ªy¼ý!µœWÊc7—ÇÉ0Ÿ ³V'M¥Êæþ®UÍ%ø^¯$=[dÝvK%Põ»Rt“Í7ÀŽBKäî\sÔ¤¢¼‹.[_ g4ÁLU2ÀpsÖçU#@9EuŸc”K`»9ãŒG‰óQ\ÖGŽä²g=Á{s½zñjD'Qg¢Fyœ'5[5y± âk$“e1‚!°3˜G89­Ô1@Ö®WŒìUëoû¯H¸ªñ¸Ý“â¹¥æ$ ]ëe°9Å–UÂè‹›+¡¶4—rû<›£ÊŽLTìâ¹%N™99X8ð`›¬Ç/‡­jH±Tã–J­‚eETT˜æ«Ð<¯‰!$1ËÁXéã;öèï’$öÍ Tn#ƒ/™º ‚H“H8»¨ F–b!0‰Æ|ÙÏtUé0Œy&+Uƒ@=ÆIãéÄc˜ôœä(ÆX¤²É®b¿ N˜õ0ÆXÏ$÷¿ŸJ!’å"²)ÇÍ[ß9½D$g±å”Ö„DkUøqÈY|›Ë‡Ö×¶Ž9-sSo $!i UvEß5–Å»®Ç$ gÆ„¶|1ìóÝ1ÿ ×)Æ?-ò©7®\Ò_…êòS¶r5U¨2z‰GÁÜÇþ~ˆò2%"„kBnÙ®pÕ8N$ ¢"ìÒ™{NÔªQ à˜6«æ„…b¬b¸‘FXEpÜF³¨bÝ'"ÎRwiͧP=Èr[Ð òA -Ç+#\Ùr•Z¨Š'¶µ_²µõ¬TÕñþëÒ#î:¬ùy¢¦®iF„:¸8%Q‘x{ÞÊçXØæÝrÁ¹GrTS9Þ­x}ì”%Èn ÞüŽ'Ëû$÷••‘‹š­,‰êå–-s ™­EUˆÇ¶o%b¢Bkši*æª}os$ÅsX¯V«äÎPD`Â7¥Cجw õ"à‘ì0NPÉ?EÉŽ{Ç1%ô á˜G;ß-­ÉqäÅNŒlÓì6¹‰û\r°•!IpXVöå~9F8ˆæ.äbºÉ‹ÅUþó¤ï1ý¬”VR!¢ož“£EÔSqrÌ#Gþ7,¿±TÕ##šŽk­Cü ŽEc’÷½Ž’5b=ŽEkÈ>¯¤1c+ñ©*ö.OòÒ…j¾¨BÑ8ŠÝþ±â°¥êó ߎÅk7ú$‡MûíôJŽÉˆ÷?îý!þãªÀ½­ß*µkfȬ$NkÕ|8F¿ÄûÊù²ˆÀL{_Û!b{²œ¬0äÌ+e¯=\éáŒÉC•ȺˆÓÃAœÓÃ* d‡IC;ê-yFEß« ,8”dO!Cc …sÈG} BÕk7úÞLVî©‘€À1ZÍ×÷,Lw·6aå央ƒ˜pSwÜ…ÉÌÉ“P·œ‘ÜQÓï.²+µu©Ô¬93M[–ukXâý¤‹2Æ ÈSñIÖ²æÊr˜ªæ÷e ~"~É¡¯ÑTwÇóž>°/¤¬ë*¢4ÕòL9ÞEvÑ`U¢}¯UV†|Z¿tVŽ1)E §iÌ×ÃÔ±¢´ ’elûÚÉQ¬“a¦Tî›Ì;™:Ʋ]{b–Èü|,G2Èqd<ßšñUæ%ÞSؤeF‘û´RFa#Ô¨L¯VÜjý¶`(NTcùÎ|‚¹ä~êÉŠna"µfÙÍ™ärîw¿¾ßfÜÐ?èÿ;éî4uxÃ.ÿÆÿÍS!ûm»°g_þàä"|UqÒ™þ¥ÂÉjü…:«dÿ'.z>¿šÝyïù¯Øçø“p‰j£¼ÓG±=׫qÎztv*ùùç’bíüñvÅ]±Ëä™ ?Q~wÒ'î*¬EÆž Ëüðgđ忉Šén<ßÐÜ!¥¸âJg£ªî·ž_š›¤ôÜÙ¤›.–¤{¤¾_žÃi—kóØ}!òõ~{¤~^¯Ïaô‡ËÕùì6ùv¿=†Ò.×ç°º?åÚüöGü»_‘#†$QEŒ6ˆ?œ¸§«¸iÙì>ùz¿=ˆÒ?/Wç±:Kåøì^”ý{¥AƒžÆéoÐ`籚Wô8º+I¯þ¿=ˆÒ?/@Êj:Šn¯ª«ãÃþüÿÄE!1AQa"2q² #BRsÒ03@‚‘p¡±ÁÑ$C`b’¢ÂSdtÃðÿÚ ?ý²e¶ÀýËð|«ð|«ð|«ð|«ð|«ð|«ð|¨ë­ƒû¿k5©HÚSNÑb´4ÛÍ€HÅ;´Ðp™”M³c­ŸQcjXëM#ó[Ú]0ªý[†wxB©@¸€ÌîÏïáþ©G½MÐá“–%„5Õ̹§1¯ä¶„Tû }GNTÿE¸†Um¥ÂÓ‘ i=J†Û9—*˜*ma-ÕÄ6J†v¸]®Õ¦týÊçÃêÒ€3á'Å&\ÑÆÓŸø hûszot¹²B÷œÀJˆ¾ÜãÅ;_T3Lî’ÀmðCBö½×6Bh€ZÀ ~Öpµ…:LÙ·.È:ªcꚈE‚îÀ×òA³ÜÔ0vmÓò_ ¿ÑFö6‚ÜáI‡ù!Ç KåCþÚ—Ê«aiÔ{¢$–‚Uf¹Ì¨ªssÙžš£Ÿ@̦ºÓ”f± }ƒ›ÿøtTmÍd?¹>™¨{#-} ¯±“í;‡E#J‹žÖx±„Š%¢A'ÃЩQ´Û{GE†!µhHŸN® ±æÆºE¤ï ÿ—Ê©hÞ¯O?ö¦º2ÃSùW­J|«ßسú.ÃSñ\†¦áå\F—Ê·e¥ò¬>ËeêšÈºùîÀ& 6¶Oä¢mêϘü•0àúe¤Lƾ.{iˆ™ÑRmÎ19*”!¢ÓÜ;Ô\汤Ú9Ý—ÙK)“ÒÎó Gèëb¿Ú® ðèÙ•d®Z~kþCÚ#5J—”'a«Qš·-UwÔ§n]žÑÌx Ã¶«…`s÷O$ÊÇÛmFŽV)ÛÆ Oä±xv¶ 72*0sâëwùœ€’W[°þ©ÙSn@NšJ­€/uFEÖÈÈsTðgAÕlFV˜M`®ú­Ùû©®¤i0û̘Ný&ê"#³Ût8s ­‚㿚}GTamK_þE;Y˜Œ;õ¶aajÕØÓ`lCxåšÄצÚÔKZ)ÃøT1&Ò ™ËE…ý,Êx|;UF«6Ÿg³éõ³ä+’:€uGW; û[—ºÞԨ̹Ó(ëM‚!o]šõ;çßèý\|èR¥~È œ`ÆgïGSüSiÜûÇÕJEÁøš6º›†é!uÊ>e°wðU?CÓhsŽLò¼ŒfÐÍM§>޹ü•µE06;$÷²ÍUÁµî«ƒ¦­Ôø*…Zu-˜!aqg;>ô’c^j«mÚ[07¦SÙÇ(…†mS0Òfy…Ч²y²ÖµœM?W²–û¥Ü>å‰ )ìnˆ-3–K ‰ÛÓ¬iÎru­‡‰N$¶•Zìç•B»ëÕsÛW8GܱnªëìîßÊV¥'ÝozÄìYkšú7´ä3Ó1MÄÔªá&£’±®i€"È÷÷úÍgU‡{_Øtm#s¹z=lùG0†ûPÿ*>ÈÑx.Aqh…ÅËÔÏ¡¸sGgo9™X–°YovÙþ¨cŠ£Y¬ú²íѼ Í›ÖXÆ)ÐC›«HЯl2¯¨8JnaÅ+të)í·JÉxECöF ƒfì–¶Ö-›¹rUŸQ×[yT°í ûé\Ǿ'"±®/«ZÀ;\‡ •*F‹žì8-{gÝœ–%­}FS¦6—ˆí7£]®´aöb›F®yÞV"«ê^Ë®XW‡R À߼NecjÔ©6÷.÷ª?Yf¶ò•U¡»"îÃcx†æ„ܶ®ÐJÿ1ì„\­G$íVî€NK©Òò¶õ³ä=Ú–ñ½]”„$–«­ˆýê ›­îª& Unº½Ncñý©ÙÜ|j²Cª„•\WT§å Ç÷N?Úð…LÁ‚…Qpßàˆ–’uSõŸÎfYåòiÍá9·e”džuNÎÞ\U7Zæ§ä× À9 •P`ÄnLnnçÁXÝLçý[>CÒÇêgûÀª‘iÕm4…f¤d‰;µð@ðþ(ìûº{JÝBÙ‡dS]kšw+¡Œã$ü qQ 2˜MÏžh¶è@AÐþ-N³3‡^J¡ÊJhí;ŸSºI”ÂCŒ¢þèÔå¢k/ Bª@hÕÌö¼gÓ€xä¨ÔÌûÓÐ$"2*Ttq]R—” ÇI…aìÆj: MXÙÍ?*ð­x'„…mšv|eÍ›-i ì”ê`WXa-à¹l¸ó[F¹¡ßÕ\ Ë„ Îxä©U5>*©¼ý[>CÐã­Õ3"©?%EwîæMd&+igþ¤[ `Ñ1½²9åÐr 9¼D’¡ùFz•R“A´IiTsmfø ¥;H·´ß¹Ûì‹¡êñ“”gš{N©$­£­,lÊÚ—:=™[" ݪÂÍ¿ÐO†AT2%D üW\ÑEÅu:^Qè½×J"æDÉ$æz&ré€r>?IÖÏônéÍ_u>Rœò_j£“› ÂtTÄ7²ŸX a9í¶é* ¦2EÞ3#Ò)½ÛÝ1Ò\]ŸAÞ2I9“ô ªûZ†þ(랊£¼tNTóTÆbSsÍ]—‚¸£€¢OúÛF(Çú â¼ÕÚª½ãb{àÅ9“š~­3g76#½ö­¨òµ3AÏ[¹'f£ráÓú¾}·­Ÿ!èåô£þjÛ#zc_Oõ} ûo[>Cô^£ÿgÚª}GÓ’â¾øKá/„¾øKá/„¾¤ÀÊlnhÐ}¶›®cj¶`¯„¾øKᯆ¾øká/„ªÆÓdغ4þ'öñÿÄ+!1AQaq‘ @¡ñ0p±Á`ÑáðÿÚ?ÿr'M£ñø+œþ÷ïpþ÷ïpþ÷ïpþ÷ ãRß…ŸöȘ‚B†«Œ×®d@ìØœdÖîðɽë¼e³›&jøÁÚ‚`¿ {³øí'¦RY5ÎE* Õñ¡ŸçmU?løï%(Dh©´ÿÀÎŒGR.ž¸ÉS=™y]>q9YSh£Ù9ï —ZhB<^0Ðæ]¡®WÇÍüQM°5ä9QßœUžA$"ž4ÁÝ Àw•Ûî´xwÃÎ/L ¢$ÑVÝ} ~ÙbmßÛXV>('§)¯ÐmdnSïè&vG ¦»Ã‚pÔ ,à3ô#r¥¥ƒ\o¼gm¦tëÇëi ¬‘ƒaÆ|`-•Ùu;ðÉP„¦Ï…ïàþØ=`p¯ÌËeᜠ£‚©î¸-žÓÁ¤"b _ö” Ýx͘ÉWшLwþSiï@6gP_TZò´ðCßxï\2@+£n$*$\àõ+æ"uåìóôˆ@ÃѱN>_©k ¨oóŒØ 'gøø9=žþ°É¥Ë  0‰K_ã#a»oxÌþ¨«ß†1(•ž.1î…÷È®ÊL,Ïtå:"£J%ù2›|2MµsÉ´À dС‘:ó†4x`}ÓxæˆB¼`xò`–¡a*ý!…å‘À¹­Ã¶C4Rw’VA³A Bõ‹öP¡J)ÎdPJAæä†±5åÍB€æS‚¤1šPŽ0mM^ò¶ÐV¥ÿ“ ³mƒMÛª‰&4'û‘Yt:½ä™p&·}뤿 6ªŠkçy<éÙŽ*8i5ÂÐù]ižÓ å€²[öaÿS¼¿kr6a~߬_­5óÖXÓmyRϵºÄtœ=ýÜ«j”:¾ŸÿWË,õ¯‹˜ ^u‡Çeˆ&Üu—u@Ét\B—ãˆfcBÌS¶®¡{Np"¹j¼s?÷~ŸÈaä9† tyŪ^Î*Fà`65ãi„-Ô뜫‰uAež0DÛ­2ÈÑiOë#Ʋ’¼i"'ÆðÅD¤’K+AàÀÄÚÚÒ†š—[¹Ä¥§ ¦ 9cÀ±`V%o7ôÇ”–˜ªÃ‹79߃‘tƒâ\…oZ:‡ÎyV@.ö.²¤"pw„åñ^ñ¤ Ì>2¾bÐmIáÁ¼=j[ÛÁ‰3LÙSw»Ž :Ð „|¹ãœÔkU|$ûäò þxJQ5Î|[uÔ<=·ÇÊíÅYàS’œ÷†0G#“ç4Ÿ±ˆkêTêÓ‰œi=ÏgÍÄÙA¬v–ð†¢¬5E£±Äô£üÀi<ózà “Dr,êøÂ0kÊ’j¼&H×–'‡ž>ùðn‡6»%ò_Yó­ª]_–{Æ²Ž…°JARìÇäå'¨R^;žóÌ k¢k|ðfç¶ß_Š>ßÜ«.„ö.ÿM“ªôq„­CJkR-×6äm½&údòNã‘‹ï†!!;ï‡] .r ôð—Þ÷¸ûI÷Ï…4‹nï¡&L–1b—A¾.%×ò++Tår”ì1ªÄÀˆ^*}õ¼Ç>” ž5'ß<{^3²óùdžp>9Aa¦äÎê¯I›SîÞ~b¿FJÙ|ïÖH>šër=¸¹@\ˆ°«÷Ã8Y¥£È<Ýà“A"°–@j8=cA‰wç"´ŽJb+c>}eÚ?–z†­zÞ|KG§ð–êçM.ÆñôYåžóËÇö· ³ =ž¶G3ŒCv£´™‘%“Ñ…VäWx0p #Æp»© ¦;­)1¸Ô®½$ØÓ\7¶Ý)š3 ž±àÀ†“Ég ] ›vª×¬E??SÑ1Ûb÷=Ì VÀؽã€, û óÃζ¢?󔃩” \Ï»‚%ˆ¶*®e†ñ9RDÍen¬ÙÌⶺ0ñ„ ì›´uÙï¢Só¦èEùøÄyþ{õˆð„tc´bœ’ok£ÈBqù&'êÔ£®þø7?LJð!Å÷Œ…~^|a6ÐÒ÷…´Kf¨×Ë8=Dé=žÇÓi€‰ÍÁ#lмÌQ &&îðÁСã\füNGÝÍKF”k‡!¡ÿÃk0®Ü:nnSà¸7“D‰ŽêÜÓuxË®EÏT^ÐyyÇÖuZÁŒª“ {‰ˆu[ÚÛ‹¶ ´” ®, ÉAiÍó”–hù^0Ày¶KÓÍÈTCþ;õ€ºHåãó’-BÆqŽI°§¯?»í~PQóŽâvâxÊbEÿã;Vš‚ÙúƇrl'7¨Ÿ9r`:äÈh„gxR$(q€uÓVòdx²ê››r–N¦}<¡_()¢á¸6Ùµu0 $B'ÛèÞb@ÓüdCnÙMhRš%ËI(%®¼6k@î½yÒ„-ëœÐF®§3ÞHLT<ÏRà‹E­ïMñÚ hŠCÉÖhâ«•X÷öÇqO.˜é½ù1 EúïØŸã©;ðRÊ2BÜàÜ^ÚA8NLWt®ü~1Aåb/&¬kbsç4B›ôw‰A~¾=aíI˜Ï`&@Us–«ÐG%ó‡#²’#gÓȽ99Os+í:`0¦š« eEÖL³ZPù©çÖÀ°7x£çè&ÚyÞ°-Ui4ÐwÞòcöDnØ=Ì’2‚Ø!§¯xÆ¢áñ¤”(ÏŒyê9ɹ`Äy]?øTÁ;öe>£ýb[qp|7½2 hfÞˆm.8p¨ÇžqÄ8®æ&û‹g?I$u¹{“_Ô0ZIáÁ-R¹<¯Ñ’†6FúŠâpþŸ.0 ÿ ¦'2ë"ÈÂÀô@ª/xçj`·""â÷’tzÎðvñ8A^þ0'w7ž Õ£Íþ?KcR.ªMþ¤ˆÉÓ8GΞEøŸ«x†*íkôâ®JÄö82_#µÿ*‘‹Õ¿ï*_Àlm3 a]Þ6YR±¶(Bgg¤ÂØéñœZpF¼â ½|€ôµ¬N"bÁ\=¿½GíÁ zk òÒdxؘLj(¹KR’ÝÈéT^0ÖM¶ ùÇA°¹>G„Ä ³Æ[·+_̺Ô2q¹$D5ž"5ívæ”h xrâ¢KEçâê½äWð® ìÚi«Ž¥ÌÊë¸ëþõÉ n €Gã4ßGQ±Ó°]œIÁœEü™£SøÃÙü9Kÿ¨e pýÒ=ÈWà1{wï†l¿ÀÅš³ðÍsWÃ?ªgôŒþ±ŸÐ3ú ð~õŸ²ħ¹ŸÕ0.?à~Ìûp/ý<þ“‹óøùË'Ù‹r¿fzg™·™üûãÿÄ4!1AQ"aq02 B¡±Á#`bp‘ÑÿÚ?ÿ“in$(óBá&’à9ŠK%Bfœd I4]@œŒv¤($œšCˆ_Òfƒ¨<ãß§¯a 4ëÍ´%f)+Jþ“=â5iœýÂb’úT¢‘Ih‘$Åwf7XZL(G­(„‰4‹¦\:R°OaZDÉÛzÔ7~”¥‰QŽÉzáPŸZº’”¦šoùr³i/¤·VŠqK•UÖ˜_d&ä­IJ¹à„ùùCO ­YÓ눎3ׂ1¼Óöï­Òò 9 o™ÄÉÿB¬Ùu†Õ)Ìö÷£dûp> `˜ÆAž¼Él)L\i81˜¶3‰ÏOXÛ4ë#»RI‰ç"3ÒwÛjºmD¥ID¸8#­"ÖáI…ãctãc×Úil­·’ ‰çNyëæ)†.âT¯)ÏD«~»Öµ¹§È÷ߟiŽi:dRQÍ”}^:.¨ø”I4é•LEU(†5“¿åM[ÝRTLçŒÈ9ôàÏQú sJgPm¼™õó¦,ÝeÎó|‘Œ&“<ÓÉîÒ_pë â®#ç˜æž´ï Á«G¥Têí”[Uº50>{„©%d) 'ƒïÓÒ˜y"êNÀ™Š?iµ€áäFõy}gr¦V”Æsžq—TÁ”ñóm@+Í\Yjpšzܪ;fÐkh«½‡ÏZN©‹j^ «KF‚‰<×ðû`ui«V ê…æ¶½kíäP¹Dí_kOJ7c¥:÷yóÈšÓIVšïè½4£&¦?ÿÄ-!10AQað" 2R`pÁá¡ÿÚ?þ@šL xq/4ŸK^FóIõ [hAúXÚÿ€)"L0pìDä5¦ƒ-›BŒ2G¥ŒÒ|@/·B׋ˆÇ37Ž@‹¼æ}Ç÷ )KwŠêIï*2±œÅ>Ð2ßüŠÈ Áùh„Xƒ ¥ñó00 Ÿ›Æd ó"XyõAˆ  oÕ9švÔR2#þi¬ ¼FtÒm­…ÎѪ+ E²¶`u¹š×kÁ¤ämþ@èoó´æ-þx‡ÐEÞ6 ¦uYFñvëÓ6T¶ð±Q¨-ωPQ©Eëê*qo›EàÔëS¨[6Àû_ûœR•ªÀ®ŸkÞß~ýQ.&››Ji¤Êƒuéí)4œÛþÀ̤:ïï8D«Qj ùíØ~ððAj Àn;âqÊ©\ª®‘ŒxÇVö‰QtÅ Å©¥¯*ÔÕ¯M†›•{AP7h•ôˆxÓŸ¤fq J…XbfZi€uÕ­9“œ!¬!¨!7?¶?ÿÙplugins/jetpack/images/screenshots/subscriptions.jpg0000644000312500031250000005322512651056012023501 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý–*°vX» ¬]•X³fÁ÷sÏ·Ò*/=Æ\X n¼É‰ŽE¤…V.Î;G>E¶·Ú:ïw<« ê÷¹1i/¸ZÜüÚŹëÀ*°vaó—Ç´yq²üś猿>eðóëçÏ™€U`ì*°vWqYãÈ+öÐgòM®³rUd-]3aÑìå~"Ö¾õšn}lË·,—§ÞÓûg+•f¢nbNµ@tã6êWB¨ô›Ñ ¬¡Ø¿$~È­Uvø£J¡v¿9û»Ãi¡j:è]”Ý]¢±‹¢òë&²Q mµñõz¶ Æ)z¶ó5zõIÏgî]¨…VrïËߢºýcIË»ç/µéõ]ËžFæ—‹ÿ“÷€» ¬¬e‡l‹ŸU ±á“¡¸Àñ®Ág¤Ùö@vRaî&ê°löX2D÷\»hæyÖo í´5ì¶(ÕÛD¨³|×,[¨U`|Á"$° ³œøáÝ_%N×P¸çæû‹‚»NÛë¦lì°k‘dÁ´W3Y+Ø.YyÿéPªÀæXw\¿¦a™*Û ©{è´x¾'j¶z|›¸ºÝ%ç-½vEÍÆ\~u-dBŸƒÏÌ3qfB•ã,LyüMÃñöZXöxùTÉÑôœ£°Ú):6 z]Æ dž—Ênú‚ì*°#ãÁïωZm&ãyª—­Úùùõƒý¿s×eCóµ¤í!ËÐÞéòmºêÄ™Zk-ôX²}OÐ ²«Î¦jû'Þ±zŸî,ÈÚëŸ3õw耪À¢ë7;L=”ße–v4@›èU`Q~Ñ-S)û2´oÀ.ÀB«¦.Çm¡Ûùñ®Ï2PØU`ì*°vDÆÍ&X»5yÀvpªÀÙ­”±…Vj±ñkÝõân8°·` ýš.Íl mŒ*³–Dâ_°êô]¶]FúÖmœ›äù6ªV‡°s4Ü®œf¶P6ÆYCàݳ ÕññÞ‘£Ýý­÷*Necèz-m¡qëW‡wìÔæùãi ¬Ñ`ùdúx÷òšÎ<{ñìxöv|øûöXÅç;Uµ¨mÀ.ÀB«©[›H¾ºß ™k¼qè; ÄûΈvX]F¢t­nƣ߸¥¢«ÚøFÎ׊‚³u °ªÀÓmýƒ¯ß]˜uÿ@I˜…V.ÍFÇŸìüS­Û¨önà ¬]šo<¶$XºØ»në÷x…V.È•ãéðÜmªÀØU`ì*°vXÿÄÿÚ @MB[›€u€Ù-ËPJßËæÍÌî,Y@;c&³Bk1¬i`F²Ô¸éÏh% X, ôƤ  o÷>O6ngrÂÀ™zríÏYÖh&ñ¨?ÿÄÿÚ`\ÕI¬Ûš èF²¬êY¬)ãý>‚T,°,8o  gXÔ5ãyÖ@¦uq©¬o2¬²  A`5K ç ñ~¿A*%‹ k9nRÿÄ7 3QR !"$15Pa#0@T2`4S%6CFÿÚ û;û)ÿKe?éoì§ì×n…S%µ…ˆtíq"ÂÄo$¨u¾Þ:vBÕhxDÀм›°|:áv@í6¼An§`-'”"b0ÜÕ LÑ/0ë/J‡RÇRaUзúa;9:{Ôþ °W›[6éeìåšÖa½ÒWOÂ.(¶åK)¸ÂÈ•;Š‹µe6õ¹`*×—3YŒn¦ ’kYlFn£ b+Øp70®ºgY!F`bĹ aŠÖL2Ú>–^ÎY­fŸZý$¨Ä`¨@-‹Þ½HßaOU¢C/²Õ¬fFеZ, Jc•ÇBU ÃY–1ûº«¦ÙÚ8zbÞz–p²Í"+]U{†ú(:3L½œ¯Ê ÁË,Ýaœ{#L^Øc¦­Ó®h®¡”¬‹OF¢™C”´,¹°ÇpÝb” Âx¦Ñ”fz´@rˆ²¢káÖne™KZ®ìÁƦPdXkjÛ:ø©•®·Ö™aôŽm•šÖJ¹†W*b.4V‹Ü6ÙiÓ”Øe–¾\æÕ’¾»`é œ±ƒÊº÷X”WP!•Æè é…bó]2mm‹$æú\d2ÓÕ4YÕ‹VŠÁ'.JîÙµ¬Î2ºAB§¨þÊ|í®z¤¶5]º™…ZÉuétQ ~jìÇ×Ò¬bÝB±—¡©÷lX±Ö.ã¶Êý0¤x" 2\·Ï2ú–]Š(‹5³$*´¯¶cùã ˆŒ²1}1Z‹)‘d+Tè}H³tJ| r¦{&aì¯Ð GƒBŒ£+ßóû£û)ó˜5n#P‰ÄXµ§F8>¡ñ°’*öF˜rÁÊ%25U® kQM {ešé²ž'àŠˆŽs JÓ¿ˆ4Æ_T’ÛnÎL!+B¸Ô;Fº„ÂT;BhÕš‘VSšù}T7”2Ɉ˜ÒcXŒ¦†½±ÈS !ƒ¯ð.fUêÜMf0"c4Bßavœ¥c«rÕÈéêÜ«jf+¼6îk«[I`«YŠ£-}ªŒ[°ûõ+Ì ‹ Y:žf¸uíÖ±:!ëdÙ³^°Ä½¢¼uÔøEÝJ¸Ñv£ÄÉVPÌÒ¹b«”ÙkV¨‰aˆbs 0ˆT®>²¯MÔõ áMÊ®Y±vAé í®â©auœVá`õ0H8¬®-[× I‰ƒ3* -§m16nÔ­§=…¯ó:ÕR–ËW#3¢ÆïA/.ºmƒ'>™kÕ,ÌÂ,,åyˆ[QJ³P³I­®ÄAØ¿N»8ßeK7Û¬ˆ‰sÖôʹX‹*â­f½‘’®ÐdZµ^´DØp/†fŠùlÛ[ÌQdº¨0˜¦yŸÙOìÆ PQŽEÿØ?Ì̉a™åäÉŒµk›ù‘ÈÄ•nA ÌtÛ>˜ZÚUl³4:ÁžÐ+209¹,ߘy‰ ¹•Tëñh€NT¨ËÜøÛR‹+;Ê+[iFbÝ3uôêe>€ ‹~<¡ˆŒÂ}ßs3u&\ËxFÜù`ÕÕS#P½¼õ;X”B¸G05 ÊÙéÔi2Q%šNùÖm¡¦ò:š¥_6¯¦ÎT°jSŸ@ÑhÐR§.Ì&@gNµ¾m‹‡Š2éhíÙÜŒ¶üÆ“ŽÎ©ÛãTçrí7B†ËØ‹Yd2Ý9ƒ%úàÁì½´Õ†Ù,–* ™T0=™„&3w‰7§ÆVÝsK 8®ÆÉ%~P²lÌ Úâ*9³§O/3û)õü¤cC-8ê+³5VºêËàl&ó:±­n¿»ÿ¾óNÉ¢nle=5‚šò/¿˜…jn|Z» ¬§rN*Xê ѳn-fÑ\߉˜eûi\=ô$30C:ÁÞiÙ4S­ÍÍWØnQ-§˜YD -ÑãMËä›aYUåÇé+1c¤*Ô*ùîz¬WãhævN¯V?Fs;?Vg¦³i%u•/hæ&ÅY¯ÄÕæVÛ[©N_ª¬Ý°ÛtšŠ²AfãA묚܎£lÜæWz8]ê1kdD0ñ131…*5Ña…!)׉+^µ³´X–)ñŠ‚¨Cf%©YÍúíp‡¸æ…6%çaìcR—iÊ f!*‚Ý ÛGví±ªë×_f…D´Ö"pÕ-£µ«Ž%qqq‡Ò¥„‚Ô!^¸A@!C;uÃT¦ÆÖ¬"0#1 ®†@‰¡eµ’øÈC‰ZiÆØÌí-V°´¬05« L uDp§Þý Æ”³-£º HÔ–²Ý¹bXR”¨ÑK†©M°dq¯ŒvyŸÙO¯åÑ߆0+g`Çh!}¡c0§]%nÿ«KmVlŠÙRBÞme«÷“—ŒºÚ¨2&G,ÞÛ©ªzàèÉ:YÖÛe®RìÞS @­XY»ïev¬åm!h(.Šå•9hmªÍ‘[/[ÌXnFqn¼å¦ Áa $3zà_åÿèãþ­kìòoÿ¬â"åIe†W@ž«dZ}–eßIF(˜‚2‚2‹ý#³­†hn\æÆdÊ“f-/í/ì§×`A‚$-RÚ±1Et#^ñÀŸú—‡Ö®ý9’¶a` €€ŠÖ&F 0Bµ‰‘ˆ V³‹sP³+Õ7Џ#R¨³”k*­]ús%lÀ,|b ª•T{×]@[&Øß°996ùZ䤤K`qñì›`ìbRÅñš€UС‘RV""0#Uë’áD…H5 p@5@b”¥#µ*Ç©vãÕuU+׆œæ®ÕΰõŒÍ]œVk„¤#ÓCÙ—Y›uù¶mf7ìV+)¢~‘7š—APÒ<Ô•QäêûÔß‘hUî­~Â2j¬p2“챌]šðæØü×]PÂô¡‡ºúðÔÌæ] †±rãBÐT¬¡6ÎlýA1R&È^ÌNÓ*E4ò¯0{ë ëUÔæï9(˜äòÛ“£_á?²Ÿ\ˆDwÄGìËêcÅ4²seØÓôïå¯möÚ„­Ð¬º\V ©&¢§/Ì=îzB¢F½e >YK3Ë6&¨6NÖ\i*áÔ‡M~WfÌ­<ôi4n“V)%i½BUS”Õjm¹°Ž•uYÄÛBÊŠ„ÔÞuý©Ç“ÂÉ¥Õ>ungH0 ]*í…:/)|ÖJ`æÖŸ1úc—Ú¯ËV,®½ ƒb>I^V»•«Ô®J ¿Áe>¾ô‹‹öå@eó( ÀÅpý6ÚÙy5D7M—t™>ìæ6QaÔ$Py‹&áU­[˜—™YcŠ°Ñž¡Y”töaR£<ÂÚUCbsbTÆb"­ =%` ‹õž•<69bÁˆˆ#ÙÇe>¾ô‹NaSÑÐþPÚØ>O!‘;(ž©ïÌ4< <©»bgzn€œY­“^Nž:LbÖ³ Xq×njÅé®q ¿SÌ›a—ÈNs2‚…ØT«É~¯ÞÙO®b&2&0C4êK9&²¤ó¬“ÇPCZhÕVù`iÔr dÁ@œ A@Áq+ßý0ÂéÔ^»+(q«ÀÈÅumã_$3`ïûÃû)ÿKe?f&Γ®9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüã”8åÎ9GóŽQüà åæe?fžÛcccccccccccccccccccccccccccccccccc í ÌþÊ~Í=´ý}©yŸÙOœÝïì“ }Ÿéž<¨Í[^¿H+%;ÉÊ­©•‚ÜS&Ö—,am0¸bÊa«–’ ½üLÄ|æ# jÖ`ZW[©é¹‡—öÕ¡rÆœ¡«r¡ª-ÁûÓÛOØ×Ú—™ý”ùíÜèÓndz³ÚÍËYn}ÉËÌÅös[^Ø_f8ξ•ci\åÖdÌ×u€«˜Ýyü‰Ù¸#©%W˜ÍZû¦êü\Wðm %×'Õ}êÃnÎÚæ©EQ4m6b¥¬Îâ ª Á­æVêÍ”…uŒæFÊ•¦º¢_ÔÜ­eK¹ %ݰj›ÏäNÍÁI*¼Æp×XM&£‹…<œCͳ’¬ÎꥊËÌÞuÔ‘ëfýf€X„zD½ ÖíŽYÌKнnØå^탿Mß±=´ý}©yŸÙOkÜëƸ½ä͉»ðšt̪èJ—û1Æuô«mP¹•‚Oìõ«0ø†gf®¡3.°¹§“R†û1q€ëÙk;‡*`f 8÷r¡kn‚Ìd?KdE Æ2üºÃ€É{.W] '–r¦;/`ª56gf®¡3.r ¾[–¨ÿËÓcÔ¼Q—²åuÒyqŸ¦z ¿¥ 9Î: ?KöJbíœocxx£ÃÅÞ(ÆðñF7‡Š1¼¾nÖ#.sT[Nšn~²³˜:ÅzƒV ò»@–ÖYêfÃO4:½lT`Yu€s¢%f¦AÏËË)+“ u{ãsÍ“.ëª{¶zuË¡ZÀÉD¿1´qU=)~§Ê=¸®û7@¬F`‡Ò–£u™Ì«ÛEp¹ ÂÎÍlÍU›b^¹›„&ÛƜ׼÷\S1ò{é±÷öSëçÿH±€ÌaeFÇS,Ò¯IÀÒ¸Öf[*¦»…vÏKf»´¥èËȯ{-R+¶Ï¡ PƒÛXèòç¦Þ2›¤‰Ušv"2Õ1Œµj¤1“¥“~VÏhLkbªÑQS^æY,eT>I…Z‹ ešÐ1‘º¶–kLÀgJ0´£kr·6å>&‚γBhéåAð¬3ûƒû)õî¢-U4HÄ|¿eàF©d®hÕ ‰Ø$E?Ã2€ )ù|DûLqñêÇÄw«Þ¬|Gz±ñêÇÄw«Þ¬|Gz°£ßØÒ”þÊ~Ís°œkŒÒÕ¥Ú©^¯LX:•‰¹“‘ ½Šï*ÍÔë^²iÊÚüÚ‚]*eˆ‚‹uäÚ‘¨ßªIS…Ñ!®Û»ùoì§ì×ãÎ'çŒÝc1ËÀÀ‰ya¬ºf”™" ¬Ìl[BÙÃP‘ê…6*S»Eèq>Ý[HŠk),º³7š²±_¶wòßÙOÙœŠÆçG°«‘O#¬ÌooõYŽFÿY¸äoõ›ŽFÿY¸äoõ™ŽFÿY˜Þßêž+ LŸù)ý”ÿ¥¿²Ÿô·öSþ–þÊ~ÉÿÄB!1Q"2AaqBPR¡± #0‘ÁÑ3@`brSps²á$€‚ÂñÿÚ ?ÿ8ß`•O;Ù¢z£ªaƒ*˜ûÔ‘•3¨ÖàfÜÒ2„Ö_Ñ{v`ªð5ƒ©qµâDÀª[ºœÛ†ÌJ¥ÄÇ!;!Í;‡hØ•073쫺ÐÄwNÆÊbJa‡1ÂT¸ÍVà`Å36ÞZÂêº.˪èµ=<‡—_=Oç×äIù(œi¸ycïÐãØ˜óŸ âÓÜ}X˜éçOa‚h’ƒC½Ç/ºê»§`ÀœwLD·Ô:˜9ÖèšÝÇ2¥ØÏe]Û:˜ $f4UªX%·Y½È#EÒkR‹aT‘ÖöTö3Ì?‡â¼=&^æEÕU/M›Hâcµ[§Þ„üHˆk{&T,¤(ѹ¸s8b…1¢ ÆU'l Hk£Ð,§áY6áé`ái<ˆô¶Š@½Âc·Uôg¿þᑼ#/ÅÝ«\§–Š•M•6ÓŽ\Ê«â+ ® øª hº•9sÉæH ¥Í}JT¡îöI„!Z*T¤ß´ íªi*¨Î…l.·Ï.ȹÛ&6-zªŒÄ·‘^#ÄUÆ7CI˜êUoòÛøš@ù*Ôü50ãèÈ8¯4Íñ-t`B§s¼GQO‰RcZ®8ÏËë±öݦ_ª‰¹Pi>îCÞ¡Xƒn¦ïi©´ZOÅ‹fÓž×\Áƒ†‹x²˜åÌ-µ­w£Le973äÞ+[’hÞsY’©À1rp–íh’Wø¶aÝU{eÔòpÐW&¿1÷ôÁ}Ó„FÉ¡Q©x낺êF4ñ•³,nèhlæ{ ‡÷‘Çëª-µÛ²;'ÔÚšÞ•ú­›©ð€=<«{mFˆ±¬ƒÓÿÔû·£S*±¹ì ø<–Í´Ûº0×&¸=ˆVšnm€4°òL ´Z' ¤óU±{mFŠ‹žáw;“Ûk÷nÑ ½îm'P¶»]´ LFZB¨fØI­±Í‰¸*¦KA‰Î$Á2«ªÓ¨3i'þSéš`Ûƒ VÓ pÍ¥™LE1hh{¯ ·ÕI%Ç3õÝSÀ*ä[š°—L(V*-¦}Ù-=£t‡b¬÷BÛ3æ¯wÉ?ĮȻ&ÉÜŸŠØ6ç7'B‰"­m' íãû<ãÜšÑÍ‚ •·Ørjw‰`#U°ŠF£%³8ÇUô“sšËi –¦ìþ‘TbËnÈꇇ©ûŠ~¼Ìä¿ê˜)ÿ©‘øcîMðÁ”MVÈÏë’5³c-dÆ0ŸVµØfŸF™iyÍ–òø¯§ƒHœ­¸|3_³Á‰@xsTfJm‘³vLŽqÉm0§E¸4ZyÊoˆ7 >Ñmœjí9·—ºYUÔù üÔ\ÇÛ-Þâ[6—V£Ï¡êA»ü¹Ýj2Ò2.Âèû§q:îULE8DjJ¸9~Ðj§ƒÜ_hEáøé~iñh˜ÍVsCÄÏ•*…™æ©=­ÁÙÊæCåÍ‘ÉSÁï/´¢¦ëK3<¡Ü×ÝouQ—6âлʤËâé 3S«RýèÖVÜÖÌ@Ô¦°½»ÒULN°Œ–}¤_‚so"è Õfsûš¦¤Œ}pÑD\)쎗ˆ™$`ÈÍÔ õLh·toþ)“GÚ6> fÒÀ[Â¥8hÃÉ®pm¬’ìW„x/ ~ñ‹Ä9¢™‰÷ùöl€jº•L%¸s^"EϦ7#š¬ÓÐ HRl§ ÀuU\àø½ß?\G怶7IÖtT.Ú1¹Ã´EÀÕ}F[DtæÓºAö4ßžJ“ZÛj6'UvÙØßÊâXZÉ^"¦ïdj¼²™ïÿLá{hÝ´ h÷±œ0”Ûî1– ­©.Œ q.§7eQªûå˜#T‹c'?\;˜û£éH›œçfOðhWb»Ø®Åv+±]ŠìPÀä?*åÒj œ TÚIAåâ'k†x&ñ`a½Õ&ÜþƒUYÖÓ:Ÿ)/ä?)}Ñ:/^÷´oé¾ÔËœÒ/ri3†[ª£ßhÉ.Ëâ<8ðÕHä¼#RŸ[²üü¤|¿JÕ¤.áw ¸]Âîp»…Ü'?øAÿÄ+!1AQa±q‘¡ðñ 0@PÁ`ÑáÿÚ?!þŸÁóÿàùÿ‹ð|ÿMÑͱâü?ÓêVÖµÑ-ç°šõO†šKÜ0":q@üþ8Ä<«_ 3”4JOÓó½ó²þ6Ò˜]/F_耈†ŽS£kõø>~%Ø]¾Äù»yåè—^Jl)óö¯è6«µ0WEµà4D)R÷R‘1èNà_ë…*Œî×2Ã[q\ t©ä‹@gç,êÅ«ü•^Ó ·+X1´¬M™[/f¡•óB³`öŽH%x&Þ·-0Z2Ù;AT|¸XbëÒS„h(++YeUëZ±wµé­€X ôŒph ¹¦üFpLÜ%PÖè Ò”4m Û€ pÞ] ‚ ˆÕ¨9âVXŠ»@WBá³ô´--tjEt ~­õxÒo†Ó8K8eCt- ›}\¡m ªj¬ÅÙù@¾ãìyv±ù‘²;Õ˲¡ˆPB¯R¦íçs*½T%'‰ª¡¦øŽgp û|ÿGƒçã—K‚éZ=áIšZ(5¾%SJÆßQ¼@h6ÄCYñdwµËùŸzKPÔ\X~uhû®¡º°Ý®ý׈âº#gg7³(ÄÛ¹€`9îÍ‹@A°jº—›ŽŸ|KlS×.Rb— ÆveK”ˆzÖ+A±+έuÔ̸“~±Ä¤Ð»yí|·k²”¿¢ml¸Û°êW=H5¯¬0sZŒ¢“Zy†¶Õõ RkJè. —Éì×Fí2þŒiks˜£ X4¦”UTN¨”XÛ”p%m%j½UÔÄl-’‹æ÷XÝ&š¬¿ýE;F47TD “e8ïˆa“ÄWXÓ¬nÀ Û9¹B“¬=$%Vµ›UF+ØÁ{˜qÈ5¥ªÎfC ›v5Ò´ˆV!Œƒ§b£JÀÅÊ€z±ôæ„_u3O/¹n”ç“èˆ ø‹•¢h©Gi9hß¹e¶«0÷-VÖ&ëCXµÜ[ò^°×0¤ùG·èð|ür/@Üß;2•8Ï>S ?ë½¶'ÑüO¯F––÷iõA(L§A‚zO;©¤,ÜóÅ«é_ ô áÅ?8d¸ËËåÏÁÌ2÷ç?È ¼ár5Q“À®Y‚˜T†¹ÐsPð–ºO;©¤Gî~×O¥kàùø¦×½AÈÊ"¸Ü‰zq¡bWe%žÐ¾£©í¦¿·H"Ý4¶·º¥sÜ9%'¤Å·ónZïŸy{&ùuaí›vC:üTU,º¶ë23UeÕ·Y­šEùw•| :·™H˜H"Ý4¶º¥@ùÒQ£à]k/B+gn&Ô¤G$~r‡(zå·®dƒ1)Ž×)@! YhIïµÏ¤ÇT^•̯e´.²m˜kçË:æ·•›&S× Ölóëñ>Rév(˪­â(®¢°‡3Á»ëŸýk qÕ,Òu“p:“­¿G3=•´Vi! gŒÇ œéϤ :‚Òž@n :›ºÇ*ó/NdbîòÐÆ²‰:´yzw5{©eÊÌöd(‹ÇC—ˆVr(VœêD‚Šà{Ž¥ukwÄ·K¬gÑ=Ê|E¸ Ë©µü<?­@µ ™ŸÕwîÇ'põþcu`£XábÑ}YOŒ‡Ãm8!}MhB£W%;Bu=2LL¹wH¾¤\1ÖW/ZDsS5®-¦0bž‚Ó£¾+0—´ÒÕh/ê+ tpè¿uM°N3‘¹*áMÁ`àoM´„é²ÙœK‰ "©^Ñp?XQÕ¼ïÌSQVÚ>¯I˜w…òµj®æ(¨?ÎA¬v†R®EnsîM²-Öó«ÍÇ*^» gåú¯(í’qC1/KCmt +ZÎ;;ÖqÌãSÔn°±?8н ®/Š—³d¡Iv[kθ*`¡}žQÚ]m‚è¨ÛdÇÊ5ÄhÚhnô‚’‡‹oÛ×Me.´îQðð|þº¯ê¬R›ozKFeD¨uô„JÆ­KÙø6y?£‘Œ±EêöÎJd©ÙÆZ—¯¤óú‡¾B° õ¬hKÜ€­ÕmZKAœO ÒZ7&o¢‘Œ°]ÞÅG+ÿ"ö`¯¥*až…ïÕf㇭ê˜ùLÔy=Äj[{p ­–ØÍqoü“®”r›J»‹*ŒÕ5–>WVQ±Y¬¡ôÄæÌx®ø™˜zÛ›3˜¢,ñ¢?¤ÊQæ21Ú ^à€Eš9áé™Ý!U¾Pj´n8Žõü{MT¸|â๻EXvÊо[†¶*|àREPQD^ÅÚ3\NPL6M¨1ºy™°÷D}`[2±ãé¤Ô‰F´6ÉDÀS½ô8†Æ[>³H Z 0Þ°)užŽ&UPiéI†â¹ÿ¦à®7C ´Gܨí8@ hÌÏ:¼÷ÌÓ/œQ UFHx(†—ÌvôÚúCg €¬ãÙX~ƒçö6¨”h¶[K­WI»ßÁ‡û ëT OÆêÚçJL]ð°‹³-Óü ­; ª­!¿5P̺ Ø?ñ3!"’UT(„Н°uª´ÚQt¦ôr%72¸Á2ƒhö2¾ùÌ<9.ʺ†T¤ÈŠÉfhßÿ! ¢-öúAn}nô»ÊeÍU˜]5þ«Áóú÷£´èòÄ€8m»k· ÿ·qæ )4Ð`”úAN–ï*Côƒ^]þÏŠ¢³J’ao.&~µÔçà‚sP (SÒpßF$ÁÃQ°âøŸ/)è_Ò±ßðŸ/)èWåå= â ÓpQí4þ•«˜R‚€âgpì}‚iÁÃODt€Ú ¾_§ZDï\8ÌN„:…§(vÚVÔÈ­ˆÅÚK`÷T×ãûDñÃÝQ$ÀiÚGkmæÕ33…ЪoA¶j3çú×0­ÚÖsÒ´½ÍÛôìÑæ\As†ŒœGÖ:×K×s´®Qu YMkU…É•jŽé{Mb U»ªí— ebi”{ÊzÕ¶­§åÎMUÜ€ÎtæW õÍŒ6nÞ5)]GÕü/Ïëd7ªP~Ó%áw8wK2D-+Ídz ]A¢GÓœN`,1£%Õµ+6ft§±⇬é\áãX@ %©v7cÒnOH}ö‹[žàm#ôt)Ÿ[”ÄÅVçoˆO&ªúGj(C†é…\–òp÷>Ë)W§ÊÂ78ÐLÕ¤`ä¢ÇIGPÛdéýσçõï÷Æi™éw|À„ÝFõUgy  ·.ïÏàx-°‹el<©¥²¼ÇH(ÒÝâ™6œ==S€ÐŒ8ôƒr¨ƒFš÷>Ÿø¿ÏôÚÆtN¹uË®]rë—\ºå×.¹uË®]rë—\ºå×.¹uË®]rë—\ºå×.¹uË®]rë—\ºå×.¹uÉt¶9>Ÿéˆ«áû€t~Øt~à½'ÃÁóý7Ð?£úÃÁóñA˜– WªãáKP¢6=ã—OœP¶ß_nÖZl@W a4IÃ>ùÅêñë^P‚V¼nt¿ÙÕ­IN”ßoßúô@øx>~)|uê÷xÌÄØÞp73Âé ®°úLÛ¬úôc% _¿ïx)®ºÐ%DVŒqÙan·j뢃áo¬ChìÄfE‡£áÈ ê=Bè½wƒ ÇlàÚ^rÆj¼Q/•â{ÇD(KÜð„y†ºŽÚ¨ŠÑŽ;#+%Ü¢˜í Ú}\+,EÜvάëÞN³©jr*À]e\fÖÒµÖ Ú6¶•®³¦®+Þ¿gèÑýáàùøÓÀ*Ñbµ¾°îðGê+^“é¿¶ýVb}gצ•÷tŒ:É‘­í¿sççzýA-Ù×Y~W.°5"ô‚Ý!w¬ÓOà†µ~×^$……nT-)¶wUËËî„5ôˆó=~ …õPøUW×à*I˜,h 3XƒE¥6Îê¸FööÙ铹{ÛAéûGk?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1?1áðð|üU-”´oÔqð]š]vÐCèØ«ââ {LN:Ïóôèè|6jý:z¸ƒ¨N„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„èN„è@ ‡ƒç÷,¸ÉÀAz@7ŽzÀ)Nÿ?g:åAÁm΄ÁZ5ýƒçõÒвsc!£úûÍ~–@×ÿÉ5&˜¢ERÃPÞøu,+×Yد)¢ìšƵ˾ïªV‰ð|VÄe[Û54±¤Ï¶8•UU-=%çWFX•4 jïKRˆƒfåÖ@Y"ºÙ‰E4`^Ѧë6¬ëqFUóxöŸsçýƒçõýÂQÀÅÊ Á0ÎYÕ,5 n—«1”Nßäw…Fl8t¶£Wìѵ…ëˆøØ"“yVÓ1­‹Ñ6nê(õ1%¯Ì/_ sȨ‚u6c<Á¦@Jà߸ðªKãnÑËÊÈW ‰o nî¹tËT´GJ•ÃIp…ÃOì|?¬æ:†n ³¡·Œ_š rÖµj¿ÄÓ ¸#BÞE•÷ï2¾ýæWß¼Êû÷™_~ó+ïÞe}ûÌõQþË\Ÿ¤ÿ/Áóý7ÚøG8 †M “Jˆ+bœ¯¤KŠšjÔ*èwßlÄ\VGQµãå,ìQ å9¶ø]ýîËð|ÿMö>RmNP­¶šLËÀ',´ÇY2å©QEïkÄEkº”+ç,ŒJ8£oµ‘ìî£J”¾¸ñþ_ƒçúl…TÃÃ=XOÎ}ŸþϹÿÙößû=ÛïÖc¯»õŸgÿ³}ÿ¬³K{«Ì­í1¡×òü?ñ~Ÿø¿Ïü_ƒçúOÿÄ+!1AQaqñ‘ð 0@P`¡±ÁÑáÿÚ?þŸóˆ%´ù.Æü°ë¤\è¦+¤ N¿Ð@÷/^VvÔÍ¥Áa™("ïx?æ¡.uPƒÝqݺÀ­e‹Wmb+urH…1,NØr¤fvLÓ{R²ëŒ)Ï(ƒFèlã{¼ØÙ0±6¯‰…ì‘&@X:À–U&ÁÚ_¾0ìtÃdSn¤Ë®1 ”~Á:Z!®w„µOÄVº/ÿƒmñp“HUŒ¬¼\ãg‡€°h¼c©€"ÐiÓ­Ý`†±+^^¶»q…¡"7@‘ƒÆ$ÒGÌ<Üþg‡ø_æxM±޳äò ù|ƒ>AŸ ÏgÈ3äò ù|ƒ>AŸ ÏgÈ3äò ù|ƒ>AŸ ϘgÈ3äò ù|ƒ>AŸ ÏgÈ3äò ÙÌ £éùžÓ‹ÿÙÏž<x ðà3Àg€Ïž<xà3Àg€Ïž<x ðà3Àgž<x ðà3Àg€Ïž<x ?ô~Ÿ™áý7⻿Ñþ»ôüÏ©&@ ¼Pw*S&ÊÆ[E`A+¶+2 ÁƒxS.¯u…ý¯PÈ6úí¸ý8ü³Šp/+ÛÂÒT'c¾Q¼ƒ¡‚Îf0ÛL ÁåðeqnÜ…\ùÛ÷ÿÝþðß§æx}gü‚Â@°À¥c×2\ÈCÐí‘Àà´R|?»«xÔ¹Uûøov‡*¡ž‚uå:°É*cÕBôçÍ2TRΧ2èÇ’t#vÌ%IÔ%‹X,.Ø:Âr@nÄT$ÓdÝÊé¼ÕÈ´3gžÙ+Fv_yŽì÷…)Zn0"ÂZ5›ÊMpùCH¨xSÒ%&54U­" ïÛ,Ñ¢EPª§8Žl’¢”u9—FV+~Ý‘Àà£0ƒÂ‡rvž¹QÅ…I‘®Ævp²ìÙ²#-Û¶nä&¡Gœ,R€eÜr–θæÂ ¬4ٖÜIz´ÖhU–Í¿³ø®ïô€îý?3ÃëüœB‘ÓïÙRb`uè÷Vð‘åyžè¯u¡¤ìgá¼fŽo 1N½Å:áçvíÒ¤ôs£CZQåñªëéx3ÙË¥ëÇL°…`:˜–eÍÁõÿN/Ôéè;^ƒ×è\±áMõ0)‚³†f)&æˆ&ç¦èg*FX¼Ò×O%LqiuQC«¬YZÐ/WXÁ•RÜ+ÃßIŽý`¯^QVAVzmC9R0zÅé`:ºy(¡D¸Š:û9rT,"v4ý¤ÒYTêçÁ³àÙðlø6|> ŸσgÁ³àÙðlø6|> ŸσgÁ³àÙðlø6|> ŸσgÁ³àÙðlø6|> ŸσgÁ³àØ^A½_§æx}B1‡q½Ì„ò z4¥ø 9ÕØ¿|vGÇe­‚Ћ«×œ à zè׋?C½8zµ¿@çV´_¿é= Z€_ÜZ¡ògÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀgÀg‡ÓóS`Mêˆ_Ø`Áƒ C½?!ïS훪ª[=DØÿ/óÈb`g^¤ 逈òrd6‚L+"²qr­}g[ ÀÙA1ælÊ¡LààÈè^„þäOúÄ­Èö€òÿ3Ãü/óµÏæ’‡‡Xþ–ßÕ]V8ùB¹¡`&šAõ†y¨¦d¤õ·,‘ m]]T§Ë…mF¸š®•r6ƒWü Ú­»åE8[ÍÕ·Ιy£gÏ¿’ áBH´/çøz‚T%µ‰²]E8`}Ÿ'Ê!«ÉC0!ÝÁ§X„M¸G©†ß)#ö¾-Ó9¦rÛæ~åþ€/¡Ã:2Vh¹ôÈȲ½“­¾C+VÜ40Ô~$^!õh³@–ƒ4g#ô›¿6É ÒmüÓ±z½369¡&k²²»Ýúd„«äˆxH«ïN‰rõ{pupF ¢‹Z"jׯt6÷ꄊ¸É_ǶI쪭ªæ«<°Þ6žÎÕÕ a5÷A^È9Øþìýdƒ+ Æëж{e1 ß.aù¨€ö?Z)ä÷Ê\=æ˜k6þNÝ$C­‡x‡dG¨‡±=‘- ‹`Ï%cª6š­Šàt‰Ù¡óFU쫲¼ ª»§}¿á ¾›|ÂH‡ªÿÄ}D“~h’Usu³ î„’z㚿껎ÆèQ¢6Pæ[Ù9™Ý]“M·ò(Xîj¯îËôBKôD;(¼# :ÇÉ•›ó Ãá@p_Ï€CªÅC';¸1 ¬‚S7sêdˆ"ùU`¡› öiö≴áÝ2.—7øQ}®h8é4Ÿq] ´ÝÐÍŽC…¯L‡«ß“3÷à.$x‘À¨¢1[¦Åa?£›DÖɸ…-imžérg÷F~Ükz?Ô;Ç ¶Þ‡ÜwwBdáon%^] Cííš¶gÕ¸ãœ?¢ú‚Ï~áCh|?íB`6HìmRgÖí¿ÿÄ4 !ð1AQaq‘¡±ÁÑ "0@á2PñBR`bÿÚ?ü;]øgó¬ ‹»wšnœè›SßV2mˆ ž{ø†M"Œë2š¹½Ñ—¬ÓoXÊÉö êä…•˜ü+…fFÒÔö CŠ¿²†É£efïˆX*¨*âµTÏ®uzW"ï¿áo§«òS­—jtFjüx0˜C …}G”×C°×Ì!æ³üÚáù<ÔR$ëßuh@Hk茸ðBÖ«û dùÁ䇠ÇIv@¾;Û„í)•Vÿlq}>(²ˆšÁà Á†„6#ˆÏ—¤bpÚ¸?tf²¼Ï«‚ɪÄîõ™¡nÆçÝÕS¨KD"«GnY GnÊÛÝB2CUŒ‰pÕwerˆ¹}$ñtgZû¬êÞ>¬_1TQ”$WÛ°Îã\&‹;¥¶älÝÕ0Ê_>ˆ’ iµPW>Å» § î“èêO@žNsf¶«ÈÆC[‰ši=Xè ™WLf^ÈÎX´z$½¨ªý¡ »²e\gÒŒÑ(Ϋ23õLòF¾ŠçÏG„ö¦°#a:¸²i¶µv5ü;þÿ‰1Â$JAL? „‰ðÑÂe5ôCŠW£6ù…lS³à | Ÿêy¨¤I×¾êЀ×ÑYfž}Èl<¨+!ÛÑ>Žçô—g³¦ô$=ÉÁÁr0ˆCŽÕhñ{ÓüvôWl—6S¨~ñ¬!ö6µ<‘¯¢64öuغHèÍÔ«÷rQX*è¾?mØ~A¸õ öª³ýoÿÙplugins/jetpack/images/screenshots/shortlinks.jpg0000644000312500031250000005144612651056012022775 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý–GmæEÊ"år€¹@\¤X}ÐÐ×¥>£1€y:ÀÝÚóëçܾx÷ô<ýÉ !ïï¢~gלƒÇÂJ;{7Œß|áËé÷O>´<Ê€ÂX*[³0¶•iÛÕb n©%?h•üåcÒï{ÕéŽ5W¹g‰ê˜ºn‰ŽWŒÅfÛ­ÆtXúÞ¥òŸÑ¯1³ 沞¨¶H»EcÚ CJíLÚè¸å93ž«µ»µÉ¬4‰HÞÁ[Ѻݴ°Js(z÷BÜ­mêh[+¾uoèQó€ÇÀ¯pºÞ‡Ï–:ÿŸ ‰ØíO@ó#$óà}Èxòe<øO "p€“ó„æP*Ù€múϾ[›úó/)_­ö)UºYuqMXóï€V§×*;ZqP¿¬¤}TògÍF°GÞä7À«fúùõ÷Îß >üϾ+  1üõ“ìÆÌY´|Ð÷¸52g5þm €IJRµ¬*$—½Ì»_)–K®e~ç]s O Ós ²•=w'‹ËÕþl}Œº|׫Zé—ÿ<þ/ÅâSØ>ËÊó¯SHI_z^¶uùWN—Á­ÇºÇï{K´Ü%}ìÔ­1ãï¿oš¾óxû÷ßf/Z>³;+C{x¾b<|=zÆ2ýÃ*’FÉ#d¹Žôd×­˜ÍÍ(ž±É5erJÁÝùÔoCŒè\¥Ñ'u&5²ý±Ô¥äwiò‘ÓüÊÇ_ë[Ô=Ëß ²_š¯0]&™·ó›_¶:Ï'³Ôè=¯óë &·(¼wOÏ’¶ŠìǾWÕ¹—\ы˵£ŠktŒÕ‹kv#²€FÉVqã٣ܢ¤1a¸ÃAÙ¢°ÎaÖЂè|²zá£+3jôŒŸ´ûšjËB¹ÊFÉ#d­Ÿv¶ÍfÇì"¥A*óv®Ò&Z~.P6KŸ×¤uë9z·¸t¯Ïvê¿è>QçcÕwmžåæ³KºÎmëÔ7¬¹a´k“JÜæünü£Õ·4»HÙ.=?OòõØ¿:t>­ùBûúžÒ!m“5 Ø ü<ç(Üé<×ô?®ô-D¥&½b¶Qì›w_ü»Ój¹ûžP#d¿ÿÄÿÚ`¾€ËZéõ¥Í\·A-ΠÄ€jKPž8ºPÀ–Ë&¥€ÔͬîBo3Lµ Îîfò×>¸›ËYkŸ\gp?ÿÄÿÚ@YÞVo@¬Ü골Ö@ %—·@ò}Þ€Qaef€MIRѳk:Í g:kæ‹5ÏlÐÿÄ3 "!312 #045@BP`%A6pÿÚÿÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊË•—+.V\¬¹Yr²åeÊÊ2i6­þ(^ñÅ‹Þ/ø±{Åÿ/x¿âÅïËS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS­Nµ:ÔëS¡Eã«Ëö³0 úK©ê@º.¤ ¬þĬ/£õ ]HRÔu ]HRÔu ]HRi6­å3 ’ê@º.¤ ©ê@º.¤ ©ê@º.¤ ©ê@º(ú?bï§ÏÏs-Vå½–«UªÕjµM&–æ×E¯®Šzšn8Àpƒi”ÑÙâÿ/DÚ?ÉÙŸç(ðwŸVÕ½l>¯Æ-¤[Gùk±è·ìz)‡GÞM‰“äBqB„HÉãÖQ”&ÚÇÉôfÕá(Oèmåç¬|½<ˆMrÕÆOÆà ¥h%@«VÊ3 5©F`xaã”k¥…Œ“Àõ`Í1W{¹`u¥”~„€®|Õ¬ÓöðÉïÞœ f¸­‚r„k2—Ä>ú ß»ÂáInÓä^­zVž¶?AW•™g`Ö±{bÝÅSòñ,ƒQX뫟F¥›”Î\/ãšõ£á÷Þ ®s!¾”$†ÛGe‰›Q»¥:¬ÑÇŠáìäí=³ˆrÎYÑ“8ó£pêÆç¢MÕþ ðhn Ûñ…\xe˜ hY%ˆ]ÉÌe„¼93ÏÐÆeWÚÝäq6KQóùsssss‰m‘þjP¤ò‡8—0W0W0W0W0W8W0W8W0W0W8Vé—ÐP‹B ”rßÊ>x.p®`®`®`®`®`®`®`®`®`®`®`®`®`®]Þ‚öjòþ‰ÙŸç¶+lVØ­±Z7ØvgùíŠÛ¶+lVØ­±[b¶ÅmŠÛ¶?aÙŸç¶+lVØ­±[b¶ÅmŠÛ¶+lVØ­±[b¶ÇÿÖ¦ní#Í5Í5Í5Í5Í5Í5Í5Í49´ã«Nz>¾K|–ù-ò[ä·Éo’ä’Œ·6¿ÜGç?Á«üÔ½×üÿ/î#óš¸RUÎÕ›å&Rä©cÁÕë>@Ä©’íµBV¸#×1á,½~ÓC&ÇÄ^ᇷWù©{®²R”+³Æåtäã0äõ¹Õq;Œø’ÎLð%sL™uŽ”¥YÞH?Ëûˆü法žÎ0‘‡‡ÞvÊ|©M·/ËŠ;üT¥^ðéUÈS01VÆ®í f6Û‚«üÔ½×Y_Ë2¼µR¼Iújä"»ÅR¹à1ñ\®5JÐB8m8‡ùqœÿ¯óR÷_ðCü¾Îò­å[Ê·•o*ÞU¼«yVò­å[Ê·•o*ÞU¼«yVò­å[Ê·•o*ÞU¼«yVò­å[Ê·•o*ÞU¼«yVò­å[Ê·•o*ÞU¼«yVò­å[Ê·•o*ÞU¼«yVò­å[Ê¢Ú~ oŽ»{õÕ}âûÅ÷‹ïÞ/¼_x¾ñ3‘¾[Ê·•[á»Ë†K†JqôPŒ¦ò\2\2\2\2P}cªõyF-Ã%Ã%Ã%Ã$úÂO€å(4— — — ‘!(GrfyÍâÜ2\2\2\2QÿÖëêû-äbJrÑ¡7Õ¦(Í ´Nk2ŸÃÆ›-}pÿ’‹!ý >èÕû-V³™ß)-Àhµ’’ã„0(ç)Æ÷T¤ð£½ºÉ±D={-S_”ØÜgü» û³WRµjQã/TA©ÀÌ Ê8ÖÙ;0fú§ý…_e¼¦Þž‚v²7Ñ”ÕΓ˜Š}¦Çèy#¦3§þ…v Тqì“ÑÉ.Kn:@À&î#þ$Õéʤ RMþ«Ú¯PT 0òî‡îM^hJÙ¥>0rÈIã^1„ŸÛ9†¿”ÿ°«ì·Ýö<]ù{‹ôE隯 n6Ý„Mj±­´LÊJ»l|à˜•iäEcÕ@µjñ uEúÕZfv Ì<²tÜop±¶~è}sVÞn{±Ieå~2³g«ÇŠ„™ìÛvþSþ¯²Þ\ \ S äÑŒ"AÇtfÅ |¹Ä¹Ä PEÐþ†[šŒ¥ÊÈÊÊóŒæû"`ñÅŸ” ” ” eÆ-8@¼‘¤InŸ=qcО ½ݺMý}_e¼¶-‰¢íòx»üö-‹bØ»–’[űlLÎß-«bض-®þ{űl]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rî]˹w.åÜ»—rîU}–ÿ[Úÿ[Úÿ[ÚòJ•Jyç—© hùšÏDäç[ÞRS¸ G!^Ù&(/PG X™J0¥ ˆyz’ägðîFWC8•Z•Œ†Jtf•º1k8ùŸãUoU«…‚ÔÉÖ±c§X+?õd=ª6…p pä2Í_. êŽR!5ÁY*D¡+­_1P¦¼°ô§v“X-p"”¹ ÕycËÇÍšŒÉƒÊu–,Šy‚1íܯU®˜±ÍÒyÁž‰I,ÖB©z½²üA‘zC`lµA 2•õîJpÛ`¤&-–ÎPÝ¡*e*Ø°ÕØ¹ºP‘4±‘¦ ‘µ<†R51öáT¹/ Þ 1”Ö‚+¯3”` ŠaféNcŒ­eè×,‚F}[_ÜÖö¼© .‰‘0>•ÊF5ðÜÂ~M ÄÞ.+Nößù…8þÌÑsÛ$ ÙV¬2>”a‰œæÎÎÚµ)ƶzåræotœ­=ä:˱¾æ½*mrœN0[–=í=S Åq˜ÿ_ƯÆ,\ŒÕ¶Ñ­é˜…רÝgþ,.­œs¹z`§‹Ò#p| Ï#~«ˆXs"³™Æ+­³?‰"Í…#5Ê·nd²`«°ã Áñ'äF«loÛåµµüQS‹Äqi×­x†-;X¸¾wwĨñømÁðÜxž.¿ïâ7W‹gçóJb›ø^…°ã' ùSd#â½¾&p|Ï._öVÊ_ÜÖö¼…B°å^P¿«wcž¦6¥V#F½¸ëyƒÊÍ}ZrœÃgD癤\eR9SÅÔª~xGF=CD#ˆ…Bý*·†Ð³WF¹Øñ•`½®¥å¥,|hÊž2¥C9ÇR°j‰ÄUN…{ô+]ãç­X5ù8º ›,AëᨀÃ+/€cu}*âéÖaà±Íèý 9BT,}Q^Áž¸!H“ÇTœ Z®+@p˜U‚+±ÔîÜ.V ºî ÄÒ()Ñ¡Z–÷šâ°ÐbجÌS)k¶y› )'7³B¥ŠT‚ÃPÚiªˆy«[¨ãâ Xj4U‘GŽC(0˜ñdaWŒSC÷5½¯ñu½¯·¾œiýWâH4áä9ÀÞ4KõFÖ7EÚQi7Ù…€ÊÌëGíX°í7àüçA§(’œ¡#XJ!åaƒžHvC”ýÍokË=pÔ©Ä ¶L½*ýa-]°kB©kw)Ýj×+]ÊY¢×«Ê7¥âAɲLyS#WÇÚ·S HC9ò8î3[²Æ$Õñ¶ìÑÁÂlkwèqšÕÿ§Ä*¿°5VÞNåÓˆB·züŠJ¢ÈÜ>>\=]º·ëífý뇅:'(2™#^…œ¹)õ¬\µ“NAjåÑ[­–:w¹J–¬˜Z¢päË<üê>ZáϺp9²t¦ØÅ\!^Ð-a¬ÝW²ZvÊù[TlO-cCÌVM”ÇŽ6¬c-’Å«° $=Û¢žfékØ­X[²ß}^X©äC€¯ÁÖ[«’­\à·“·vÈBvjär–Ï—•N±§’=¹U:×[ Ö8vì1\2`G¨‡†Þr»c+@c¶k7çZYBµ{7mC÷½¯/Ën4soMá¹6¡÷yá>",‡‘¥¶î>ŒCßXÂLÙ:F%ŸË‘ N:Þœ|TïðÈÁâ$c,7~n•4z€ä>ŸªþÀÖê¾¼;Ž£f‘dvˆÌN…²5*Ô¹Œo>–2bVß’îv/Cž6%ŠŸ-¼Av\Ë›kQΖ¥oöЉ™»0un4b̓ÆIx‹ò ^&“Ö¿2¸â*ãTÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TÊ€ùP*å@|¨•ò >TËø3‹~ òüåø/Ëð_—@h4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðh4šÍf€3@  Ðk¼[v6R2‘”Œ¤e#} HÊFR2‘”Œ¤e#)HÊFR2zô›2‘”Œ¤e#)HÊFR2‘”Œ¤e#)HÈ™ÿy}¿a·¡Ü@{ÎÛü³'N.¨¨™—sÞQ6ïeGN?D‡? Ë²|7?CÚÍÞ/ð…™Q›Í8—§C*"ôT~–NÝèkKÄÛW|wñûr=ââbå_ŠyºÄÏ©ÞWì6÷NäÍÛ*øAª¦“­j•Êí¾TQÏ(mlQyïu<’³U¼?ñQFfÀ¹½º¡m<Ïhƒ–¦}úÐDÇ¢rŒª.Ë~‹ aãwïh™¶ÑH"Ò Y‰è¡42ØÃ]¨[G ÓpXPl)>âí‹qP33›–ÆQé%“cüT@пqêÏ­{Ç`z ߯¢)$[h»þ‹ (ÛFvqvr}Í­a¢Š²Ü.]ÛBSI÷«ìÖ˜ZJv˜_WG»V[›£Péãþ—Ú¡iOŒÖT·^¥š FSIm_ƒ(™¡ÄÜ$îúÀÛr„n„é׿WÔš…¢z䀟£÷X«r„dÅèo”¥}@Þ~k LF˜Hû/]è°øbwÈ%ŠJ‡£ª>®ËÖ®íçÑÅ{ÄïÐîø|(3è먉ø¬SAZŒØô‘a , >Ç—ë¸ÑXð77iû¼}TRM‡kFö¸8éab’§27"ÖúõÑB,‘é]ä~È Ãˆâp½ð»²þ‹ 7ËØ #ëÕ°”-+Ô;®TÞË èÅŠó*2 ¸¯¬j÷iµBÑá6DNý£óôèóo·ˆ!G²,WUßzf¥¬kݽw=~›ÐFÐ3Ñæ»hú(‚aH­v¢³·>šjnàÊ–Ém¹!Œ¥†B-l&u†ƒÎ€·Í0ýEtšü”Ql•˺Ïä¢ 1ag&TÐ;TÛþIý§`Ÿ`nQÆ1µ¥bÚ-ä™´dOå u:†8ßBA_½{£¯Õm§FBHÄ{rSb† ;ê(ˆNîÓ>õ‡†€êT’·y¦ æÄi#×µµ `’¡g­å´™Ýpèv¦ŽZ¿¸éšÌ­ýÖX,60'{›Hôpôž>µÞÎ-kU8õpÓµv¸ì[H™3i(TQ„×Ç£–"+}<#‹œØ¬~ÐѽՃ‹7’·»¨Ä >ËZU¹¸ôlw¦KÝ'è`ˆl–#z]æÎ¢†á?dÇWÙ¶«ƒ>×g{›Í¸ Œ"Ñ»iæ¤úØKÙ“Ðde†‹ ïÔwy&$Ç#†¾;a16¡š'*làé£ëXºPµ 6ê   œ\©]HBé1šQí{µeM¢ :ø íż†×{µT,vâ׬{tn©?ÜZüCÅ=À”£š”sRŽjQÍHÏè™Æ/=¥Ð×ëqàŽžªQÍJ9©G5(æ¥Ô£š”sRŽjQÍJ9©3³o7[w··Ø~¥Ô£š”sRŽjQÍJ9©G5(æ¥Ô£š”sRŽjQÍJ9¦½þIî2Úÿq²BÈY &o ÈY !d,…²BÈY &o¢,…²BÈY !d,…²BÈ[ÿV†ê(þj?šæ£ù¨þj?šæ£ùô5]ÍÍÍÍÍÍÍÏïŸý‰pû?|xH][:'êܤ ¸´²¸¿¸Ê\A s[k¶Çà+ ˆÃLCp´­Þd&ý⡞SÄÑÄÚ¢ið؈®ÔB¼,¼K‚'ÛlS ÔÕGSÊÏ£g£>¥<®öVŽú‘;¿y«ÁèÝžÖôNî÷¾ÞŽ?|x{PúÈýY‹ÍHÁŸp²ÂɈ­5Â:›ÄË>3 ìï&”}ŸÅ½eå’À`wº«& ÕµÌ뻇’ëÅ8Ì÷Wjð²ñ. Æ* g·s/á/á¦zÚàëÝ…Õõ½ýÕ±×¾%Ãìxý‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ$c’1ÉäŒrF9#‘ŽHÇ%¿ìIšºö"jú"nTMʉ¹Q7*&åDܨ›•r¢l‘ŽH‡.™*—ò£º¯Mˆ­§’—ä¥ù)~J_—Fª©~J_Ê¥üª_’zꪒ•òRþU/åRþTu¦ê"¶Š_Ê¥üª_Ê¥ü«sÓï*ÛZSŠâÌíê¼KÄ™ÉÚgnû²ÿ•Ôoÿºéö~½SW] o}×kÚíá@6ÇM-ûuðFÎàô/%à[Z:¬N%åD»1µ5¬l¾–2Äb/ˆnv0feä¸2ˆ¦ ´.¢ýžZ6Šá=#ë. öq9vÛHý•[F]Zü—‹ï-¾KS6åâ^% ÒßÚ­ßáu}šë~Õ¡³~ªÛ*ô·£Š}LLY#-¤þµR”NÔÓ˜ü¾(h,¼ øOú"f•¢ |5#vÕ¬•.x³j® ¸2E£a©Â,%â»Tµ7xJwYk@á%ÝëÅ÷•m¥ýªìÛÅx—‰=+%Q:'^'ýzd ¹¶²ÔM¨e}̉ʛß{ôxݬE¶€1DO±ìþÑb4… Z"Ño^K‚Ž)N‘Ð$}N¿g`3ìJlM[3X !Ihí¨8§¯×…âûÈѧ«Õ=5©®¥t]*4k_e™4hªîž•dÀOÅÅG*Ž>UAo&[þò…ùT/Ê¢,”E’…ùT/Ê¡~U ò <”e’…ùT/Ê¡~U ò¨Ë%ò¨_•BüªåQJ2ÉBüªåP¿*…ùTe’Éä€ò@y <H$’Éä€ò@y <H$’Éä€ò@y <H$’Éä€ò@y <H$’Éä€ò@y <H$’Éä€ò@y <H/Áœ_ð_üÅú1nLpÜ2wÙ–™ÞogF÷¿Á<­$}›^7¸^šªÊí# ^î«Ór"y¨ÎÀ"îï^ ð”;ÑÈ6’i¦(ý¦Š7+T×Do@µªäü(šp0¬(žço&ÞœÞQ"×e•ÕÑ9áðð3iŒ;Äï¹–#;‹ö î½¼¼Ñ˜ÇÔݵbÎPv ÈMÚ?‚ib•ÚæBÚ·’›PË%Lßc\¯±ö9 *´º>Ö•š'zð¢)瓬 äâ*fhG¼ïªžI¦‰åöo$n,]´1ìDeÝšµc'0¥]æ’¶§ž0}…‹;ù:ÄÊÅÕÈ´lÕÒjmkHï¥}cv ÿ´d,X–b¦ö£¬\†= áö{57’ÒˆHV„¥°ú© À;[sjDç£z3vkê¯iÇdukk­<—MìãhÞ÷ø'!’>üf6“#°­ªyagk…äÅ‹Ñic•ÆáÆæòZi7¡œq¹üTÌñrÝwz#šzÀÜ..Cþ”óHãkhìwhÞš–'&&v¹ô¬ö×}©ßI5lfnØZ®ï¹i¢i^‘œ‘¸‰|T„ò‹³X"îïû×è&;–¾4e‹Ðc‚'ÔAQ0ª‚ÅuG-,[WðGôVÞøf²¾º×µhä¿úiþ×µc-7뮫ÕË®¹aM†£}½¥R&&†hõ;qÔ‰˜ZijïýNž¬éí|E%о÷ÌR»Ûx‰5 ¨=y—³Ñ•Ù~äNæú6¶Õ­0Í„ÃâLŸ ãkµ»ÿ¤LQ›T]xeý7iñEWVÿÔÆëÛ³³Åb°‚®1½×WU:4·9žÉ]½çWè^p)n7-UVÙgg×rþXÿF_ÎèËù¦ýl|sõLÔki›)†!p ¸–®ï¢‰ Ñv/6åüÄܽ«ÀøwÓâ½£BzZxwW⚬ø¨ëšm]m¿Eß²k}lVØÑöýwÕÛ<¸Ž¯]•®¯ò©¦ëMoo^þÇMY°€›ol“Ý`ÑDÿ2^Á±!¦þšªZáØþ­ÔCõÌ ¾þî¿Þ¸¿Dt|8Y½Œîé‹Ð›â£«Ëßr{œƒ½häî¡w‡DhìMÁÐ>ûÆEq?ÅŸFn7zÑaÇB=ÖmV¡2–”¸ÍÉÛ5°âÚA¹é’jµDÇMbûÛÑÔdrt¤7*zUÖèôuÿŠ…žî·$RÒ—™¹;7Å ¢äåñt Ô®ª wxÞ¢ìNÎÈi¤;ËÕBÄ8‚ºV}è Þ?g|ŽL>•èŽF«×T¤Ê2q•¨lfå\ÔFbÍA‘݇Ñn°5ìd2Ÿz„ô‚¼Gxy:TÒi^ÒCp>ÖCI%¥ïƈ-–V¡»>Ô¨Éô>̯{›âƒ´}â'©?Å l66õd5xŠðòt5’Øü*¢!Ò=LDÝ„¾ Ñu›U¾Š29˜˜ÌÝßRÔíI5íܰe=À}MëUK™»Tã½ QÙ÷¨È´}Æ3raø!¡ËKß?zâÿ‚ø¿Ó6¾•¶ºéÐLBûºIˆx·D´êÞ×Wul¤[3“p¯Ó;o6ówû2bØíÒbäæ®Î“¡ÊôãÑ0èܬ¹µë­:²EKÛ…v~õÅúˆÞQ>ú© ˜µ,"ìù:±ˆãÒœ¦Õ`Ú¸«'Dži­½×e>gï>G]8WŠ–!wÃÕ™ãØ7gÕSi u-²âh8q¥šÝÔ±b0äL2Z¸W¢1 795Yh¥ydÑÁ´í9>×Xœ6"&X× ïeáí^Zá‚w2jÕ¸2ÄA†€ Â;Æç:oPãm µ{"þ/E‹ÃâFb±ÄFÒ⤎ +È.s$ÂÅ #s†Âfޥ…ZñÃ;ná^*0.·—kÝü,N) Êb Oä,˜M†ŽQ•½^v!Ù®ä#ÕuÆÆFjº ‡p·ˆ›nµ4E$Œ"¶¼­6J=7ŽçTa3}SÜÜ­¨ÒH]·ƒ º~¯…ïwRÈ…½°ˆZãæÊÛa–Ч *[ °=‘A§wúÙ[SSwª8Llº®ãFÖú·¬F;^Æ~ûÏèÚØˆßæ¶èl<×àêŸVÊÞ¬*‹ Òé"ì»*ž¦_³êïñeáu¶ë>+d“Æéw@±7]£³ì~Ó¬ûÅ»C]®¼!ý«ÂËù²XXÌ› Üû_ZŒaþ<£1‹³{0WZÃÇqYµì]ÑŽ>+v›ä°P¹¼ [7ÑpÒvA¨Í­”KB&׺»«‡P4š;ªÌõÜ»ñJ>µ^×®¼•âîNËiâÄ‹ÍÜ3êµ<ø2ø?þSPDY™j—¶ j¶´Ñ¿3kýW½hæëtãýŒ¿˜§ÉE°.nÄ5×Utpχ78îìÕ·¢- ÕÒ =.£V‹U™êìÚû«ù§ýpìX(oÐß³}i°:ÄZŒÔ-Ëeæÿ.çýñû™0¹3ÀݦկR‹«â#vv(û;×Þ8¿GÿÄ,!1AQañq‘¡ð± 0P`Á@ÑápÿÚ?!ý/yMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyMå7”ÞSyGuÒì}é~_Ãô¿/áú_—ðý/Ëø~—Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Þ÷½ï{Ö˜4·ù“ äþžîâˆué0XãR7öû»»»»„4ăÄÃvOï÷wwwwwwx·?â2kÀ•~ä€A"èÅÊ$H2Vñr‹”\¢å(¹@Ž®FP½XD¸P©D/ $Vw(A“"Dñð\$Hž0QP¨2"ëø£10CY H9ΑZBhf%r*¯ŒC!ÈD2@Bz"†B!„b jň“¸8¡‘6Uù'?3L5Í(32!ˆdäÀÄ¢Ì .¤C!ÈD2JdÑ_†B)£ q „­PZˆBSä,9ýô+#@`1V0• ˜€Ý_0e“pæTÇà1å%sWªA•h@Ê8Šh PLt}T À±1Ò Rã(|A :ðg¼Ïë„A|`‹¯$Œ¥¢i!5³ˆZSz£€ú„fÅ„Y_TÛõʵHP%êt‹¹(ig*ú‡]/—9ƒ—2c–ƒEY«ƒ½«ð&F‰K^ÆRœ[ÍIAe G÷ ½ Œ9ƒºaG Ÿ©LŒR1¦¨@ú '=¯úgóR C5g}aÀÃÃŽvÖ#K‹QEIA|Ù,43„”‰n ´©AwÌÛåo JËñÀÔoKÌ£þL}›  ñ‚QQ:@€¢‘3L†\!$p)mä< 1&(Ãdqê h¾NšÁ_Yx"ÍT˜{þ¶%‘^–ÖªXWœ£n1”2 Ñh"ÔÆ •!('e&u˜C”‡rÞIýóö |ºl¥S”›’°  £V¿JüEy0œ„µª~5‚ÅùtI¤.¹Jâpgä°ˆÓšÒã„äo„1æA®¬˜º2Ìt((ÁAZ‡z-˜SØ„Š¦öÈõå ²ñƒ”r™Ã À•>ÕUT±8„ Óx, 锥#ÿªF€zdzàËe+–b @<©?nR”¤) RÜ¥Äv HAhhG°ÿØC8À_|R”¥)JR”¥%&{ãtÿÓðvó›LÚfÓ6˜atú,æ&Ó6™´Í¦m3i›LÚfÓ6™±}<æÓ6™´Í¦m3i›LÚfÓ6™´Í¦m3i€@ÿY <øZG:9ÑÎŽts£è泆’4‘¤$i#IN]¿AUœùâ¾ÍŸ™TJò‹¢\ÆDâ0z˜È&˜F BžtD P©7)DPë kJ°Ð…+!©$=¥œùâ¡ÎÉ*9ŒßzD–n BDGˆ”Wæ N©C¬º†Çl ?2« TÝxw Ïsæ„’s$ôªV.ð€ (tH6PºC067¢Ö_ˆS×ä%œùâ 1§¥¬HÕšx>'«¤©±ŠYÚ&Å‘:ºÄŒv†qŽ]l0Œ³ój™˜ „uxÃ[Ö3ÂÎ|ñ_[ágæ¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥(Y&OÙ2¤Õ„Ÿ3KŒã8Î3Œã8Î6zêxRzF  _dÕvG’Š "QF±9®íšîÙ®íᩊð°XÓÊzFzBzBzFáJZÙh[=!=!=! éî¡@ ¦æ»²k»&»²k»!A3gù üð!¤ .xôŠÂ‰ÝŒ†x¸~Ú@ý‰hÈÍ®±}®ì2"eâ–ºüÏ)ñ(èP&€3–îj–´Ìðp~5r@ŒQzE¼v1¦¥è*ºƒ˜ª†‚CPhÙr²<ªT†ù0P“M€îÚ„ì' ùÆÁ•Øí|  è YžOòaùàÍSÍ @ 1ŒœÌ7ÉÂôeûŽÐyWË- i}E }y«ë,s?3Ë|@…!©ÁeL#”ENXÉh1žf§€8ËŠÕ(Šœ“g ™Vj…{Â~…¸I–*¢Kò_}—žy@fá(­`ò!çž1A˜„QÁ¬ ºÂíaú2Œ¤fŽC‡Š$’³™/”·Öyâ hG×iHÕ‡½¥j”›Ä¹âMQéöíPt• ¯óB…ŠpjÆoø‡ØBj@ç a#.ˆ”þ´ÝÅœ 7¢'òqùáéÒ%ضһ2‘ýR‡FáÒ¡2g ¶ ö„Çþeww)éÒ!ðˆrÑ`BžÑ="{D:’H(@Îeì)HÖY ƒ¨2Gä<ãóôTå7Ïé‘)„¦DDÊI’Ïшˆ°7eÏé‘$Q)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb˜¦)Šb™çŸÒý-Kôµý/Ò×…`pP@:—h†T.i`j`'L™ÖÒ¹`M ÑÌ5aæÜ‚ð½ƒd@3FãY†ÃÎF:D’ †H ½!VïÌÿ;˜ë`šÂü 4U¨ØR/©vÖ«AÌ4fôÈ3‚dÒ7“LÄéŠÒÎkÂ>œBÇ([¬¯0ðÖÔ€1VUÕ@Ò$B­aœÀäŒ\«Òb ÇHl`{²ˆ :K?;Ðe-ùÝjŒÇ)S¸ 1%ˆþÆBª„ TÐkíH–t•/6åÖ®P!Ç€MÒj†êò‡¤#&JJ;5axn›èùã¬<ª¨jQÃXº¡D ØÜéÓPÜÆ¼Væ–,?‘Oeê™°ReV›Æ·CxMt¡ èX™r5ìÀÒ\£¦BÑ’r³<è©aþÆ0 X‡@/Lb€u¿éôµà€0Š0Ž3àäXzå ±”؃PA˜ïp…#UÚè%ŧ¤Œ5=Hé0` ¬Aéd–¨%˜‡ ‘!1€`‹!B°Q ñ&ñ@B4DP``èP—ªi©·4 ;ÐTEª#B”²3 lB £±0pʈ2¯íóáøKÚy_ ´èÄîmh׬r8s~ jóF+¢©YZ„d}Ó`X˜dE,d`½F,¯0+ÿ²$§ˆ¿ðADˆÊ,["€|µßTÐCGÎnx*…(ŽÕdte¸@)À \ÌÐKðF,0x"/““SF¥ë£«å5¸NGþßêôµàÎU\"5´"\vg• Ã[ "NƒÀ 9;Iب˜í)“a¤QGÝå`škÄ1TeˆÂ2dx‰®éééÇ%ƒ¨EÌ÷ꬤ.d®ó5Þ +¢’õƒpu‡£’@6F“@7Q˜ÝÎn WC¤fÖ#’¢*ú«gˆÃjTÁ¯ü–¡[Z@©Â¸Ì 1›Ð¨Ì"U&NÈM ù•ªÀ]÷ˆãÒóµ$?1·DÐUð%!΢±r‰fz€¡-‰zÊz; TXƒ„ÜܸøAÙÞt«ÛP¥hÊŠ|j‚r°@v0R¦/5¡•’,RшlD›i:€IJpBÍ «‘ØN¾Q]`ì&<ÙÛЊŒ I˜«Ò×ô¿K_®ž¶žà¡*I€½ì¦â+aIÊ©]›ÎÁNó2ù’J`°"rJŠêƒPAìf,<Ã#¤&:xdV°þœ-{Àˆ mMå ´î 7 Šo²o´ ¦%1Ô e-ÅLBkÞ[šê¨½aîŒ8µ–ªT6÷BùA6‹fvt€Ï) §C0 Ø ‡6f,`yçõß6«»‚ |À¶%Òf’÷á¼QeŽ¡‡ –ºTÚÄö„‡Þ‰ʧŒ_¨IkÕˆ‰µôㆿéôµàe„‡¤¯*ëHzòÝ/˜zÄxÓ½+ ûÅMsœö‰—®Ê\ {4àÂù$Òö Œƒ  9êrÏU”ô¹€Ž ïÊècÜÔV'o»p*8@÷\Ôa¨9s˜mäjF®rûÈ a `«` zC|Ô †mi˜LòGö( $f è {³<0?œù¡h¢±;È(´<æd‡¨li‰%]Ò…ê/ ƒ]‚”`:Æ;D>b˜Õ#B€Å‹;ÚJFá~dTypx1#€çi¸®ç Ë &–Eº‘Ãá8g!Vð`pŸýT@¡‰k?èôµáÿÄ-!1añAQÑðq‘¡ ±@0P`Ááp€ÿÚ?ÿâ’i$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I%’I$’I$’I$’I$’I%’I$šk®SÑ¢táx“•»Ÿÿ‹—]uù‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰ÈüNGâr?‘øœÄä~'#ñ9‰žv‚…Áþ2ýr'Ô'øœ âp/‰À¾!»—Kf#cðà¶ j?|Nñ8Äà_|Nñ8Äà_|Nñ“½Ÿõ¿è$ùî1r'Øœ âp/‰À¾'øœ âp/‰À¾'øœ âp/‰À¾'øœ âp/ˆ"Òjd>Úÿ€#¢? JµUË«.´vo4K í7‘QUƒ4öGáÞo&òo&òo&ò[ÚX%z,±uÞ ¨1-¶C½G²VUÞ7~Ð)×lŸ««+êæ‰üDÑP©ø—k:Øï(™mOgxÝûP# ßgS¶š¦Œ*‚DzÄ7W‡)¿Ö è!/ýÊ´OÔMRÅ¡õÚpÓ†œ4@*!•M $ÎEœ4á§ "G¢DgÊì²dŽ1®,+èÁŸcÞô^Šjô&ö5/q\³V >«´ü“†œ$T]ë©­üCÕ©CI©õœ4á§ ;¡”v}vœ4l_ZÞÄá¦ã,ÃÞÍ~Œ´  Ó²t×AO«)ÝRîÖ ®ÀuY+uÖ…ËIÞÈ$v­ªª¨/|œ5Íߤ{¤^S(uqª…©zà©]¯š%¥Ç»‰‘ç2 ™È=~Ä.Q.a4hu–_L†¾"§h0«uvÝŽÑgí'§©¢­ëÚjLÑÒÆEŒYÞ¸ö Ï`ìÜH7’Ú)Ð°ÕØðRÐ#øòë#e¸Žå_t_À„Z¬_bfYYq³ÂºÕ­M&…¾(¤DFËË’jÙ‡°„HeÒ±×D>¤ÁJ“f,­ØêÔSñ7—)ûÜR ½hH,NP€u• ŽðËÞ¼l5Áqçkš Xä.M¡ÙVêÅ”²ÚÔ{U½¥Ø=†Uš²Ë ÃLG¤o*´VÙ—aºãKËF?®2 ¦ºD6¦¾—8ÃnÂχB‰MóQZë/vçô|ÖmeUš„¼%$KK§¸–:p>[EPŒ*ò:Ú±¡¢-¤aL¢„BŠ5€ïtê.Íå—¬lÀ Ǫˤ©y˜zÔ¨Z&ÅÈ5·c©we„͉YaxU,¥dC“,‡ZÌ+XÎ)¸IŠÆ‹›[Æ뤲Á®W—à€ÙßÈ?×xü% ƒX#Ü–‘:˜Ík¢¨u(>‚h[ ØÀê(˜EY.«¥Ì,½[´`öXÙXtÌË6ß.˜l&ò¡…Y8QÒˆá6âqƒ»;Ü®Øi¬5^t͵/’æÛîÂgi¢ر”ÖÒáRòÑØÌ2¥–:jC“¹VjJûAó`$ee¶Í€ô º™ûÉfŽ…úˆ«ò#ðʺ˜Á-Þ°…`Îð“Îò­`tYû%†jt¤u›slE«~ñR›Ëÿ3=1ê–¥Ð~É ã°)>ÉðP¶ü^4ÆQo0£É8wk¤Ð6®`»Z)†‚íT!Aanµr[®’ŸÖB0LÕ BÞ…°ê jgë ‹ ª’ b¢2“E¨ÔSJ4ë 0­Z¡ªép‡ËR4n 4jÅ~´¿ _Íþ"鎶[>ãðªº;H@Ó1ż¥œÀ`ëù)ÏòØŠ­%P´ÔR¸Žš!vÒgÕ>S£1 „’ m¸5ij{‚9í“Ma1c&I¥Ý€©–µ2¶cĹ.å‘/ % Ö)ƒhB÷@böš•Þð-tÉà™BÌ»òùOƒÖÎØ'ìÏãüUÛOÜØýÍÜØýÍÜØýÍÜØýÍÜØýÍŸÜ É¿À£2Ú¢=îj,ÿ§í8”âS‰N%XŽÙ±*ÿÑ€„|ß~#ݾ¤y½/³8”âS‰N%8”àS‰N8”âQ_bì®ã&ì.Êï¡1 cþÝá y&‡¡}F!ZêûèÎ8”âS‰N%8”âS‰N%8”âS‰N%8”n>Ò‡t>“Ca:6ƒ§ûès„Î8Lá1ûc¸à•¯°Î8Lá3„Î8Lá3„Î8L °Ýð…Ùs„Î8Lá3„Î8Lá3„Î8Lá3„Π;ÿYEÉS{çñ8‰ÃüNâpÿ‡øœ?ÄÞ¾‡Äy© F1Ë¡ 7gœfq™Ægœfq™²üaaLÒµßïü¦®šïtSÛø´ g¦ìOSÝù§³)ìÇÊjëç÷ŸÑþñè;Äô/DCÖ;~3×ÐÅ]`ó]ÄaŽQ5¬Ç§Ã¦°Ä³¨ÀKWr‘ép¨/H9è;Ü].pÚZ9,bQ(ÇUJ³Óv'©îÊÓ†Ñl…íSoôt±‡YAçP3[õ‰sÕËkn“!ýÜàsØIW4ä`Ó[̨WÀ¾ß¼þ÷aÞY‘Ij5Cê ·*b& _Ì5HUˆµâçSY ‰ B>Ák‹u-é,Í?g¦ÚŠj£º¨€6‚°|Bô݉ê{±w$f¬›MéEÜ ‹^•gGHa3¯¤ÑÑ»¥^è„ä€F{·ƒÕ:•Y¨á»‹Ñu‘É?yýïÿ«lª…m®Z˜P¡¬Ÿx©@t–\Z­ºï g¦ìOS݃_nu¹mÜéRÝþ?yýÇÒùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìô¾g¥ó=/™é|ÏKæz_3Òùž—Ìä¾b&ý1BºÑ.\¹råË—.<ö5µÍÇŽÁKBbç¾ó=÷™ï¼Ï}æ{ï3ßyžûÌ÷Þ`H{dµ¿™é|À…'kç÷ F ‘§àm %¬† ‹ê$ 1Hªï?_à×]:#¾–b cZXÔ¢Tm.zMô·PÝC}# Mp«J¯´~š„ˆ–ÍÔ7PÝAZXl-j}`‡ åYqú‚iü!†Ë¢¨ÁNµ,–K%’Éd²Y,–K%’Éd²Y.Y,–K%’Éd¹d²Y,–K%’Éd²Y,–K%’Éd²Y,–A.{¾ïŒÌ<=OA­’Æ5Ù» \â³çÓú™P¶HÛYÐ P«ñ¡ãa¡Ìê‚ râ~ßöGìõÆ5 ™=„­£5qГ =Uм]Lï\.26©ºÌÿ_*Þ‘ŽßoöÅ0-¾å?¨ ¢Ö‰kKåCØ+XU!v³Ö_lµÉ(oKa£`¯P,v%¼Y6kØ“í:_íFšµ«ÉB«ªÅíö—.\¹råË—.\¹råË—.\¹råË—.\¹l¹råË—.\¹råË—.\¸9ž¯»áÖ‹Z.©x̺71´þÛÒ¥ÂøÙCßGô—#¯…*•ÐÏZÅMÚ_€ü/3bÆÏøõÒþð¼Ço®ûïqúQõyRüI騼V3à™ÑÚp|[¥”ÜÎXuc-²É|{•Dh6£wðX° WH-Lþ¢£ç€Vd*#š…ú;Ä¡1rÅfÊ[¥ Ä¥YíhU:ƒgRE–GAZZ ìé_JS5­*ýÑXŠÚáÖALëH*û¡rÝKò4cPjŒ-Rµ˜]»_ÐJ·EKÒ~´B‚PÑBm°eyîÔÅŒÌu@P»ªúBºÝþBê× UTe!kN\.b"Ì™azÀÖÒ‰©h°w…(Æ]¥–9Š4 U.‹CÑ™º1öª:[–fÆr½O-:Ù¨æ×c`ÀC±e\@EÆ¢²€ ÷dZ"µtBy4t4c] ¨¯6ÕS'MN(ŽÎÇ­¦§h›&-¦ºå]cÊ7«L®Áâ­P²jºZÅÆåÙq¥StÙ¡Y”Ìø8ct‘•‰"(±€¬¸´Œ”ÕÄê³!õô…é…ôŽ¢­2zÊ ‘ƒ¬À sÜÿ'ØßñA6xa®âÙ(ªõ¦k!Vv‡H2áf"½M%µ×8¦ ÁzHßUuÒ+QÔH=о²Ä–ž ÏF½*0n [XJ²Ý Îôó GZ`‚ùër®î/`äG©™Ôfµ@ÁbBVPC.¶Ö %;¼M¬[AWV?ò¦nÖ )ÂöJãHø©úãÒ¶Ý*34* «0WDÑ:%DÖzµr ! +ì[ù`4ƒEW­Þ¢ n®ù¸Á¥Ë^õÕáÑ5Œ0t 4ÏB¨Yd¶ƒèîXX¯¿uU-“\ÑIÕLyëðãÝì|’ŸˆwK0ªt®‘¦?¶ˆ&° æ»Å IeˆÇ×#Ôn4½K^b¨«X5[èÂ6çTXìoPNV&bu‡~hr³]‡ Ã{¨µ X…­¦ªàv=¨éôå†^ŽÏ~÷K©a éCK €3è&/²€×{o;Ž’]‰uÖ;Òfš R¥ik¢¨«ËR´"÷ý?Êö7ü&Ä=Ô@Ëqüš×º‰õ.˜ÖE_]«EÆ™™: †ª¯pt(„ÆGØjÑÁ.ªÆ¢{P ­;1Ê€ê[¹‹òlZ ã%Á¼±é_J=kYH]¼…[P3$¾u¥AnÄÊ%áßÀ]ÆNK-Õ°-ÌËS‚·Uôºî½` R –è.s~˜$Lhõ­e˜]ÖöÞªâ=£?!m5viDQm¾v°q¦‹4j †‰t€äã°l KŒ *ªæXv’tH#£©Ò ˆèÄFö+K@BÖ ’¨˜%t•ôÈ¢¬ PL*Gg ºq™í ¨Ø*KwÍM*þr€a®ÆkA¸Ë^;F1K]› 2gP(W6…h¡t•ëÜøàÓ ¨ ^­!,P–$'éÛházŠÜ«,¼ÓK*…ÑÜv‹Zzi+ÃöôÖƒœ. Ñq-¡6wÞ:“’õÆzÀÏ•Ù5Š,èˆÂ„þYY-¨ÃÖâ†5VXkŠIŠ4å«gÞå†&?2jY ‚/S SQgaŒ~E ÇHÒ­RÛ@pQÛü¯cü/ØßüÒh¦‚Á§­VÕÃÀêªÁÆ#kh‰„ùT~‚²(ÒcŸ£B5ÍQ›Ë*}ð–?ÈV8Ú½Õ7Nóq *lV1ÖµÓý#, K@w•ºGÜL'Èà!È’Ì—òqÚÂ`¼×Æm9A­;uøÁ±¢V)M‚ãü¯cÀôðpEÁ} ß_¨mÃGHù½í %›¡h¦jÔÁ,-ÍJíTgõ¥‘bó¥ ïô”Ťh›…‘07ŽÌ¦5 jVBÑþCCLä»ú/^ååJ8¾¤l¢2£³ Í‚® xÈI½H.³ô¹ô=° ,0[ÔÄÒ7ÝŒ ˜@3‹™T KI”²ºæ¥xý•’qJlë¬cd`Mh.«s!HÜÑö8„³’ºŽ*hPµèn†hÛ Z‰{&ÑÝŒN³xäm]´fšÉT•p~»@Z„_B‹Tô4«RPïÆÝϾtiLhɵY’°Ð]~•„åxÆV‡u-Pæ–¼Ðôk±ÕÃAÎFŠw%ÍXé:o‹ï8e—Ì«?DÙ:Ö·5ÕXN)h¯-°efåa¢Ãf-·rj4nd«ÇIlî*E”)KÁÑmÌ9Š.³If±ûy‚ð$¼•\Y‹óR÷߆òs‰®6dêœãêª@"&W%*—Üf°ÆúÙ-ih—X9”æJöFE0¼Y㉢\ÀèŠ(êÔ#íìAo-‹¡urÅ•YÔl _À5ÌPd4ÿ'Øßð\¡1b‚^ÓBRÌ-úXÄËfè§ÙÜÓ±ë/Ý’Ì_y›á L%çîbRî©Uí~ì÷ýò¤¨*YE÷㑹JìãXïØ`Õ=õ"Ë¿˜—î±èü"ô=²ºdÛâxm«ÖšÅhLΔ—ÔXT§È¹Fò=‰\ §Õ~zåÄLl~(¾¶Ç‰ â Ž…Þe';àÍHTÛ&˜S¼2{Á)MA©ÁÐdlŠÈF·ò„ª•} sª·*»ðKÙí<޾ÐgHBJ€¢7!Ò¤:Ñ’P[ªåóܪBL¥évô°-‰–×wñ ŠÁÙ›ð|KÞA:šµ`Ö²‡¿Å/ÄX9•2™‚`µ¶mй=öjU¢ÝjtfeW¼H¥èÄ,Â×xQeìgûeøÂGñ3*RK/$tL%™h-‰™ªÒ>©þG±¿ãÿÄ:!1a¡ÁÑðAQq‘±R"P02p²Âá@B`b’ÒÿÚ?ü?B?¹yºRó”¥ç(=KÎPzøºXEýsTöôÜr_yù –«ËzˆÑE4›v[PBì®Ñ~Ê”QF³o÷MA°ûÛöýÔÊ…Ë íÊLö¨ ±¨3"\þ½™gIâ¡«ØvøÁX&Áì }¢¡~X¾¬Qê©_ZŒ£ÃMz3YÇ*”S>púà¦Ã[Â-.x¢H8ãL¢ÞÖ÷•Ê¿cþ¨pBá½ç& öž^‹Ò—¢ôŽ‹ËÑzGEåè½#¢òô^‘ч¢Ù€VÜ'•êŽ`=ޏ(f•à¿lIùv>µbŽ[MªÑ¯V­]ôúƒ¦¦‡jeSÛ­oQÀ`aÿ¢Ò¦ø ²j"sá︡% RÖÝ,}üðú+?ø9 PBu'“øodøÜÙ6¶hOV²i·„E(†$p{‹ uÓ4ž·6k…¾á½­d'­pO'Möñ.8“Õ ]Žjò‡·õfŸ,2’vÔÝUŠ‘ëØ„ó÷t ›—`eí¼ƒ‚†@¹®l–õxL:«L‰x‰çyujõ8N2N¤È— òP–kæ„››öBN8愈°å’s 2®]C¨¤ÀnÍûà„‰•yQéç‘´Ÿ¢~Ø·`¬çØ£"dJbÖÿÙplugins/jetpack/images/screenshots/stats.jpg0000644000312500031250000004432112651056012021725 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý–95íÌ7w Ý7K¨Ôñ‘´øY©¼Ü¼3œßwÆpeƒ83ƒ83ƒ83€3ƒ83ƒ8œJÄøë¶ï®6n ¨^yAÏÍè[ç#Lz§˜±BxCTºsôî ?FóSÙù Û‡†bÝ­O›Û_õ¼x€ '‡NËtãá‡Ç¯LÆõN´ó³ëË]‘ç×_K7€±ÆkÒ<ü¶ sÆ6¼[€uqg§ÏP×ÅAšƒíúfçæ×°áп`œ"w‹làô÷€‰0'È .”H›âØ==Àãà¢L‰òK¤å&ø¶Op8øè“"|€’éyD‰¾zÄœgM¦¡”ÌÉÉÂDˆä@Î(X8xa=ùº,ÝúÇÂDä—@Ê(NðìøFÏ }ãà¢L‰òK¤å&øv |#eòw.­Àè“8â ®#ã½’éyD‰¾²5øFË­#eòÖD™QùYô>¶ªÖ~”×ì¾€Itšê …#!ÎêÉ7Âùlåw¿èÿ Ùr¥ì¼Zè*¿1-•2ÓVkr§±õíÀ‘èi···‡»ÇÙåáéáÕáÚX¸vÓ3ð—JFë嬯˜–š‘o¨º£[¥5¯Ù}§À=~©ðyþ¿´ü®7¦ïó¦ü—è\ßDì&øv ~ºéIÙ|µòâÙS-õ×Tkt¦µû7¡F­=þµ'¾ÈÞÜžšç%c°›áØ1ð}×JFë)7ÂuÐ eL·TK]Q­ÒšÖñ[céØ)õ§¿Ö©pý]¶*Ä…:kë ¬v|9àéäöêøNË­#eªªY붤[*e¾ Zên”Ö¶ê™g«3p¬½þ±+Œë³ËÑU=ñídà|û¢?ªýð½—fË=`±× MX´Õ‹eL´ÕšÜj mUrËZfÕ]{NVÝ]‘.ýãR¾< ˆžeƒì\3†>²éHÝjª–jÉm©Ê™o¨º£[¥5­º¦Z*í­µ—¼ÕUÝ!”ô‡NóÅ,PÜË×ø6 |'eÒ‘ºÕU,õ‚ÛR-•2ßP-uF·Jk[uM‹M]µ¶²÷šª»¤ RžéÞx¥Š™dú÷Á„ìºRvZª¥ž°[jE²¦[ꮨÖéMkn©±i«³n¬½æª®é§¤:wž)b†æY>½ÁµsÚ¢×ðÍ—fË=`²VËUT´Õ‹eL´ÕšÜj mubËZf×\{LÕݲI?H„ß²éIÙjª–zÁm©Ê™o¨º£[¥5­º¦Z*í­µ—¼ÕUÝ!”ô‡NóÅ,PÜË'׸6 |#uÒ“²ÕU,õ‚ÛR-•2ßP-uF·Jk[uL´UÛ[k/yª«ºB)éçŠX¡¹–O¯pdg_…lºR7Zª¥ž°[jE²¦[ꮨÖéMkn©±i«¶¶Ö^óUWt„ SÒ;ͱCs,_àÈù·Ñ©KDe%HG’q„œa)IÆ1-Ĥa#JG·ë{{ñ:6åviÌîåówÞ823€~[òç¼/|ÄLzÇéËå.»ƒ  _î–KKç³UîÀŞư€îØÿÄÿÚ7fîõó  d€ ï!Ô€ÞFrà‡ß>RS/Çâ€}×å?Þò6ãõG×1Ï•eXÛ…×WãÿM߀÷‘´8_-íeYVU¸°Œ¿ᾯé`½ämFÑ´«*ʱ´myÿ€zß©|ý|ý|ýe¸’7¼£hÚ6•eYV6£o?ðaõéVU£n¯ŒoyFÑ´m*ʲ¬mFÞàÃëÒ¬«FÝWÞò6£hÚU•eXÚ6¼ÿÀ=‡×¥YV6º¾1½ämFÑ´«*ʱ´myÿ€{¯J²¬mu\qlÜÜÜÜÜÜÜÜÜÞIÚv™¹¹¹³ùÿÄÿÚ#”1À Üî#Ìêï@ó:l¿³ ú«ïU9vmª‹óó:3ëï=s«¾‹è¾ŽËµ5÷}W\ætgÕØòGG}Ñ}Ñ»M÷÷~÷Éy`3£=ô_FŒ÷Ñ}Ñ}3èÏ뾟ã|g>øsá9÷ÞG™Ñžú/£F{辋è¾ôgõßOð¿<¾‹èÑŸF~óYgF}ï£F{辋èÑŸF}ýwÓü/Ï/¢ú4gÑŸ¼ÖG™Ñžú/£F{辋è¾ôgõßOð¿<¾‹èÑŸF~óYgF{è¾ï¢ú/¢ú/£F]ôÿ óËè¾ôgï5ŒóÇ”LLLLLLLLiìqᘘ˜˜»?ÿÄ8 !63450127$@ADP"#'Q`ÿÚÿã4é”NQZªªªÊªªªÊªÊªÊªªªÊªªªÊªªªÊªÊªÊªªªÊªªªªªªªªªªªªªªÊªªªªªÊªÊªÊªªªÊªªªÊªªªªªªªÊÊxè¹@¸5U,ÎuSÍ.‰¹Ñ‰‹ CXULÔ“i/‘ÖÚâfáÖF–üBJàûK$EO 5Œ'„#é5·ÂhKtn …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …ÂávJ#¢óÅNþÝLSëIR}Rѵó¾ %§PÖu²T˜…!8üóK6`m\]_‡hŸ Þ£HáSµ2­=ErÜ+vzÂg†Ãkjx¹iE h(wò)cи»,Xý…œà¾™sU . …Âáp¸\.Ì. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\.d²:8'„“ÃC"Q–Æ—,ñ2XL#À¹J/^ä¦>rçQ4$˜È4 OBðSiÊ\Oâ•§> …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp¸\. …Âáp»'(Æ&iÍ4åÈ>œ|=8øzqðôáÁ)iÈ¥ ¦šë$H,Y ²@f²ÏK$’ÆHF6H,Y ²Ad€éa,—JT.šk¬Y ²Ad‚É’ $Ë KŒÒÝtEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑD]tEÑG'?q0ç’1² x§(S\Xf¯êÊ%ê f«›1ÍB¬C%)ªÚ©ùÝý€Êq_ÕU#ËSr|H:C.0ÌZciO&ŸÄœàèØ¦ƒ«‰«HRiGù“g‰hL2Rq«2o4$®Óªy%<â4Î îOóóúx5­=F ¡‘ùY*a¤‘€#óœTuqÌuÄÍŠ)ÊìÙ鉺;bmë'&U8†Y _:œMI"x«Lã[žÐmJ¤÷|MBÖbrÕ›Lž3Kÿçî& <âEwK¶ÖTéÌN¦`Í&kK‚E5N ©­¦œj¨p¦š}«K¨#ª]BÊpæÀØäöÔô®}N–È•¥1˜yOLbiËOn ªJV’k¦Õ+XŒÿ2a%5,JšoLJDJ•-Æ™öWbÐQ,HJm(”Ô3)äJaûÃÒÎz¨Æi#4HüçgG„Ç௠iµ(¡Šº5•T§ÀÕ´³xÓ‡ÔñmjÛezÃÊ}ÙaªÔ/ Ù—*%Rƒü™´ÿRžS× „¸FCOýè4ÉÒBI ŠIc¬6H ¤Òi%Æ1Œ`ŽXCHm 6H ¤ÒdRMÒiP—,u†Òi´€Ú@m 6H ‘É44›`XØ6c`XØ–6 c`XØ6cbPØ6c`PØ6‰c`XØ6% C`XØ6c`XØ6c`XØ6c`XØ6c`XØ6y½Qô:å×>£¯ô:޼ýyúÿ_®}y?Þ¨Í$’M9‘whƒ|®™BiÅ\æ/@Y$dU$‚Ø!AÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐtAÐt2ÿz W2ÂzEÂXüX2¨Ç™ÒíH\–2.‘ÆK”•4‡N\æÆ0+h¤m¢‘´R6ŠFÑHÚ) JVL²Æ[— — — — × — —’¬4ë&Ú)E#h¤m¢‘´R6ŠFÑHÚ)E#h¤m¢‘´R6ŠFÑHÚ)E#h¤½é¤…Ë…Ë…Ë…Ë…Ë…ë…Ë‚BUšD'›h¤m¢‘´R6ŠFÑHÚ)E#h¤m¢‘´R6ŠFÑHÚ)E#h¤mƒÓª™ç„'] ¹p¹p¹vQõª:u…Ók¨Ö#Xõã@ŸòÐuü ú Þ«úŠýQŸA·ÒÃúk=)‚nXúÕÉÿ8ý_À¿ Ý꿨¯Õô},?¦³Ò˜!öå­QÌŸóÐuü ú Þ§úŠýQŸA·ÒÃúk=)‚nXúåÝYÈ[VBZÑj’ö¤¨©Èùa¹í õ¹²¤¹<µŒ“º!S"i 0Ùq%a¨ñ!ñ%¼S5R'Î=›Ä£x”o‡5I£$šnS Êa¹L7)†å0ܦ”Á½Rh)ÔoâQ¼J7‰Fñ(Þ%Ä£x”oâQ¼J7‰Fñ(Þ%Ä£x”oâQ¼J©M¹2#r˜nS Êa¹L7)†å0ܦ ÊÒÁ,!âQ¼J7‰Fñ(Þ%Ä£x”oâQ¼J7‰Fñ(Þ%Ä£x”oâQ¼J+KÆBR›A¹L7)Æå6QõÊFÛ;ö¹!G#z"QJK;i I”PÄ”²É–I#ÉJ‹QL‘Lf+ˆxA,³|JpJGæYp’M,Y ²Ad‚É’ $ ò:G‚Hà’8$Ž #‚Hà’8$Ž #‚Hà’8$Ž #‚Hà’8$Ž #‚Hà’8$…rI¹2²Ad‚É’ $H,7”\RËðIG‘Á$pIG‘Á$pIG‘Á$pIG‘Á$pIB¢Š‚c#I&‚É’ $Ê>¹G1Þ‘H+ˆx;÷räuü ú Þ«ú‹=QŸA·ÒÃúk=)‚nXúåÇzE ¯.á1Ò'!Øóe¯©©¥„Ðùöš>ÓA+Û{âinçnõ\hšQî×üïMé‘ó½4&rDZÄ|ïoM¬Ò;ÎôÈùÞš®)˜B1‰ÆHiœbùÛ},?¦³Ò˜!öå®Q–‘×A§]‘ûñ¨;Ò)ypÏ=¡üåIžû[‡Ðnõ\˜³Ú|ˆaæÅi¼Gt#ºÝMQ9™G´º¦ù¢¢4TBz¦¢sF„qª)Šxóò3ð˜%ôI~ƒo¥‡$æ—$tŸŽ@ã8ä9Ž@ã8ä ‚½ZÜø­>%8œE5],t|L€÷*ù© Š„Fx’Înÿ«Zy?[Sù™åÌ+®Ñ¦ó3ð˜%ôI~…rà½#¡¥øÓÀøÓÀBîë;ŠXNجã!6,o²ÔÕ;RJaEHÞØÐÞJ£+öÖ]›K;l¹ùKU<ÿ]©GI3-YU£’zujøê©^k–™M­ª·%æSOÊÜHGñ,Qd•N"aëÙ4<“´â‰O ±ÝŸå&7S´5¥`VÃÌO5ÝËý>–к£Xø‘7¾¼òÍë”s邼¸g‡Îþ ò¤Ï }­ÃèV¢ãÈ£õ)"9»þ­iä|ýmOæg—0®»F›ÌÏ.`—X£M¦‘Di\D÷„ù·{Š@ÕÜo#r›ƒ1࣠4¸VS1´Â¢G9r§N\ÓHyÄ‘%çÌy2)3Hy9KÒæ(Éa e„²æ›ß^yc딃 è:€ïH¤åÃ<8öwðW•&tJ£RÏ*Ê…pî>xw<;†j‘Jš}ÁÑWÏ>@|ùâëñœ?r[È£õ)<Žÿ«Zy?[Sù™åÌ+®Ñ¦ó3ð˜W. h•ÌÃæáûAiI(˜*ø‹`ø‹høƒnº D÷„ù·{Š@ÕÜo!ͰØUçR6¿ÔÆ®JTľՑs•Ô»âÓjT«kdD:á’ò¦¯å{=¥§LD_O®*IR©Œo-=4òVh䟙7¾¼òÍë”ÇHF1RöΙ®GCÕ¬H‘ ë•üÊBDŠÎ™ÑºWyYæ;Ñ©ypÏ=üåI1ü“PDCí›#òôyá â!—ù ?R“È﯅­<Ÿ­©üÌòæ×hÓy™åÌ1¤Œšå°Ä‰!Í—pË9eÉÆ,b<#¢5ɻܒÓ .£yânSœ’3BhîSŽM47)´ÐnS bß,'„"zHÏ ãÒBhÍ Êq¹L7)†å8ܧ”Ãâ>»ÁGÆYÇÆYÂG Îà¥zåÒIPTéÔ·°»´Óô´`c[ªjM‘’Cé÷ÂÓt©éÇr’·Ì°¹ J¢3øC<=*C_c1^T™ÓeI=údÐÍŒ©&¢ÌŽm¥I3q:9¨._ ‰7‘Ô¹!†MFÃ7²å†0™ Œòæ¹RÉJS“K‘Ÿ„ÃJ©YìÊ?aˆHRÆèI‘~ic —‚e“$ÕÁ,#‰6¦©ã!{™†æ!šyT<¡Nme!-õ2´i73 ÌE;Õ¿ J}U‘T‹Ò&ÜÌ71„„¯©£UQðÒT Ò‘¸˜nb(²ˆr¨‰F­ÒØ8(*M 4€Ã¤6¥„“‰½rŽc}"Wá ðãÙßÁ^T™Ó“P}³`ìGÞFÏÕ®yÿ£õ)#üæïúµ§‘óõµ?™ž\ºío3? †#~,™Çì1Ö¶f_œXÄoz#6ïqH1Sº¡=ÜMƒûÍvtu5Šã¼\óÃþð@*þêtÏ;½8u÷Uyá¿tÃ)½rŽc}"W— ðãÙßÁ>T™Ó“P}³`ìGÞFÏÕ®yÿ£õ)<Žß«Zy?[Sù›åN+®Ñ¦ó3ð˜b7àÉœ~ýkneù¥ŒF÷¢3o÷ƒ;ªÓ½ÄÚ1¼×gH÷SX®;ÅÏ´uŠHÊ’JÁI®‰Œ%\ü$ª!¿g‡†BF—ØD¯*HgM™ h×Ù# ØŒ„´CÜœ†BfâP†_ä<<*$¾GS!2k/‘êxG˜dÌÏ.a[ éJv\çü&‚l •›L£ö‚d XÝd_šXÄ kÁ3C$ÑÁ,F'Ï*ˆM ˜#m@Ý4kù¯¬M)5µ;d´šú¹ÊheBOêÔ3F¬šê¡ÎlðöxU‘<]#«¢¸ç‡“ÀºšDMë”dúÕ3¡dÀ³iS7ÖRš¨ä¤‘,)¸=ã!ºí‚¼¸g‡Îþ ò¤Î˜×䚀Cí›b>ò5Çÿ¹ò(ýJO#¿êÖžGÏÖÔþfysŠë´i¼Ìü&ø2g°ÄoZÙ™~ic½èŒÛ½É ÅNê†tïq6 Cï5ÙÒ=ÔÖ+ŽðsÏûÅ«û©Ó<8îôá×ÝVg†ÝÓ §õê3é—@g¤R òáž{;ø+Ê“:c²j¶lˆûÈ×úµÈC5©IäwýZÓÈùúÚŸÌÏ.a]v7™Ÿ„ÿLãöë[3/Í,b7½›w¸¤©ÝPΞî&ш}æ»:GºšÅqÞ.yÐà€UýÔéžwzpíî«3Ãné†Szå¨ê:Ž£¨7Ò)ypÏ=üåI1Ù5‡Û6Ä}äkýZçÈ£õ)<Žÿ«Zy?[Sù™åÌ+®Ñ¦ó3ð˜b7àÉœ~ýkfeù¥ŒF÷¢3n÷ƒ;®ÓÝÄØ1¼×gH÷SX®;ÅÏ:¼P ¿º3ÃŽïN½Õ^xmÝ0Ê\ h4 ±ÓPo¤R òáž{;ø'Ê“:c²ª¶lˆûÈÙúµÏ‘GêRyÿV´ò>~¶§ó3˘W]£Mæg—0ÄoÅ“8ý†#zÖÌËó‹ïDfÝî)*w\3§»…°by®Î‘î–±\w‹žtx7Š¿º3ÃŽïN½ÕfxmÝ0Ê^£•dÆMˆ_ô©³adK‡–`<=€a¦ŽgJ¹9Ráä%–`<=€n¥ Dе¶O`<=€ðö$bVerø{á쇰 ©cH§1ÃÃØ`<=€ž•6zbFá쇰À*¥ÍQN&c›ÃØ`<=€YJš¦ŸBÍ7‡°ÀM‡Œ±€y¦Msko@g‡°ÀM‡Œ#ýKñp7ÃØ`<=€~¤Ìx59‡x{áì¸}O,Áú—5á\ŠNù|„¡¢Qå ’•1ñË|w‡°À ¡b‘zur>ÑÓ»»âo‡°À5Ñ rL¸·Š*g7Ux{áì%;S©:Q89(\g‡°À0R³ºHàJš Ž¤ÓæðöÃØ DÆw.$OëÔrëýG–•!ÊŽ@àj2§L­©Œ•*g¦µ/k“°½6>¢kO×qtDÞ©ug,FAs|êSJŽ+c ­˜Æ4/)()RRUõàæ‹ã´ÄåíäðøÕÚBIa53ç4Oџרòk˯6¼šåW'~Tƒ€Æ’‘yF¼’ ¢é3)å(L-gYžø)†³š‰^YÙkɯ&¹kQNT„é•¥£Ý•,%SÍÔc ŠQ f§©ô“ÓÈÔ·0 @³Ÿ^]ržèÉ4$:›ªV.‘é|ôå æÈ²¬n~ZÖ…AlFË f% y5äŸ×¨ÿš‡ô?ÿÄF !1Q’“ ARST‘±Ñ"a£²Á02qÂ#@B$3C¡P`b³cr¢4ÿÚ ?ÿ³ØÄ`KnI*©œ%VΪg U3„ª™ÂUlá*¦p•S8J©œ%TΪg U3„ª™ÂULá*¶p•S8J©œ%TΫg U3„ª™ÂULá*¦p•S8J©œ%TΫg U3„ª™ÂUlá*¦p•S8J©œ%TΪg U3„ª™ÃULá*¦p•S8J©œ5TΫg U3„ª™ÂULá*¦p•S8J©œ%TΪg U³„ª™ÂULá*¦p•[8J©œ%TΪg U³„ª™ÂULá*¶p•[8J©œ%TΪg U3„ª™ÂULá*¦p•[8J©œ,V}rTºLOl.­ŽÚ%mÛšz}û ªl4µA ŽJ`‹ úlæUC §¨«†Ž2Ñrd‘Ù­þÝ$ôV»ÙaXÆ9÷3ªÃák¢…ís\G(öa·¶­zQ&öžŽJªAÒ†–òm,|D\ÒšEõ&¸¯Bi¶ÔÒßûªßªÒQÆdqs­žà=– ®'@ ÀÍ&5ÊÐâsÒJK§lî2¶g’lá͉”‰ÐGŠGŒÌØaå‰Ò–FààÒt´Ÿêÿ•ˆ`RÒá\±TýêW^:™…ŒŒÍ: Mm‹Ž€^«"“¡ŒÐâ9¯¶hîÁ!÷>ÁÀê7б ;ûUö~ª®Z˜±FÙ³‡Hé+FsKÛ 4'û&Pá³Ë‡âum¡Ãá0˜#| ,Œq'<Ø«8ê ‰”8¶RÙ¢š¼Í<îiiª~†š‹’¢ãU–4æbû[- ³?s¿Êò²ŽH‚ëffækѤ•öŠºƒí®öžs÷6¸òÕ æÓÓ¶;iÜÂÒKEµ’WÚšJo´,¯© lR¾º­î.†v—{,mšZâÐж¿ûªßªc/{=¡ÃÀªx Z,Ðbi{…´(£kÈ / Ö…õÛÜ „ ´»èÒ¢Š;ØÆÞß TÔóº?ôÝ,MygèHÐ£Ò Ospý  š¶qp´-qÖuk;U55†¡È·ÑE,š%Ìá»3µÛÜ¢ˆLñšù{†Âíd#ä<ãüéÈrqÈyǘréoÕ8Œç†’¥ßN—}:]ôéwÓ¤¾p\Qq¶  vúßAÛÈ;yo¢mké+8’/ùvúÞAÛè;yo,àAÛt\@²ßAÛÈ;yo íô¼ƒ·–p#ÿ+¢QD¢Q(”Q(”QD¢QD¢Q(¢‰D¢Š%‰E‰D¢‰D¢Š%‰E‰D¢‰ÉÔoÕv­UÓ׺¶š’K(Ö‰ek ÍéÐS©~Ó:Š‚ž¾Žj(›Jò%—’,8æ´iÎÙа*ê*y"¯Î”ÊÇ0MHÐçÄüÙÍ7ié_dñi«c¥tÂjˆÛ$&¡™íÍa·(Ö‚3œÓ ›[Bí½ÉÔ飯¥§—k¢¿¶^[3]Ö°û” ¬¢šJzL:Å7#ÊNçÈt‹m« ¯šBɪóœú`çæf†28“n*šlJª†Zš‰ÝKoݨ٦;o{µ4íXsèÄŽÎÙCõ ZáÒÒ4-~fBçÔ6êZ?ñ‡âïOägÜÈ86ú ½¯µ`•±aUU’PRbn{K%€ÜkkIk€vоÌ×S:§©«Ã¤šfÎ`6x ~P5éÖú¸&À‰ÖRS¹­s3]¦Pâ)n¦ëÒ°ª©›Uò®‘±œÙ€-,k¿>h>ÕŽ…Ðë-EU=°‘Qt´†Y6qζÛ*9*«!ÀÎ1Q$ 1²4=ÍäÚ:ìþ‹ìÖ%W _uågŠV×T4ÚÒMÍŠû=XÊ–ÖÍE=,µ `†H†s®ýFàè¶²¾Íâu4‘QÓ×TËÊ1¦¥6[‚ ¨Ä¨pªÆDCÈL tmpµÍä$¸5Ý`8„rXªëb{ÚÙ)Y!³[›­ïÈ‚7kšÓ´#þÔoÕvRÕÅM$±ËŸK/'#\Ç4‡tiWcµuµõ0TÍŠTÖ™*óàvtVqÍiþ›X©LØAÇÿÆ1:¬B¤¾¡¦Ã=±XXò– ƒ ]UâÒ5•PÖ}Ãï?åùh…£p»@°»Z@=!tÈÕîQÈêÌ)ÒR×Y¾Ø±;G½>¾™”•RUSTÇ0壑ÿ›I #U”ø¬™ ¼Nš¶5ÙÕ$^÷éÑ¡øgå§•ÒE9cž&|n#I`ÑaÑe=mU]\lŠYê¤w&ÏÊÝ u•°+æÉk­®ÄX£ˆ ÑÃD^'ö¹8¤Ïiÿí}ô \@µ•UÃBéïK ï:F³n“£P%׳ ¥¨¤€I5ó£œÞLí§aèU8œÍf&×Ë=Ü)žnEúÃP=Tbo†™°4S‹Ç!„Ž‹ƒ _4‹­e×[tâ²J¸8û•ó¯nµÎµSŒA= ¨ †¯5ÓÀ\]›!é³Óë%$¯Í–ÞÕ0+{´{[UF% ¦²¢¬ÉÀéÚ+EƆºB—0UÑCC!3ûB(œ\ÌÓÐntž•U‹C,•­& œÐ&kà-m {Õ~2j ¨˜TûuŒa»D¦ÚMúE‰XaÿN{ÛšÖdþªYnÓqr5¢Š(§¸6÷Ñ­M0?¨ôSÍâ=óxE<Þ#ÑO7ˆôSÍâ=Ó}ãÑO0¨ôSÍâ=óxE<Þ#ÑO7ˆôSÍâ=óî=ÓúE<Þ#ÑO7ˆôSÍâ=óxE<Þ#ÑO7ˆôSÍâ=óúE,Þ#ÑM7ˆôRÍâ=ÓxE4Þ#ÑK7ˆôSMâ=³xE4Þ#ÑM7ˆôRÍâ=³xE,Þ#ÑM7ˆôSMâ=³xE4Þ#ÑM7ˆôSMâ=³xE4Þ#ÑM7ˆôSMâ=ÓxE4Þ#ÑM7ˆôSMâ=ÓxE4Þ#ÑM7ˆôSMâ=ÓxE4Þ#ÑM7ˆôSMâ=ÓxE,Þ#ÑM7ˆôSMâ=ÓxE4Þ#ÑM7ˆôSMâ=ÓxL›äQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQɱžE<1¹Î6’V)D(Þs[?.ÞL×µôV!ð±€Ü›är8ßõÈNhèØ¶~[ð:§ùM¿´ùÿ'Õçlg‘çlü·àuOò›ióþO«ÎØÏ#ÎÙøoÀêŸå6þÓçüŸW±žEPÏ_4`rtП#‰}i¹=å`"\XUMNiÙXÓ¹&5ïse¶‘g5¶µó‰QT’Ô»t1ÑÓ¸†9ÒI©®:š’NK–z¨Q%t»[È6†Išë{d’3F‹vXl¯Â¦©ŠŒWr€<ŒhäõæÙÍ×ÐN¤àZM¯kÛM‚Ã+<[ê°ÊÏú¬2³Å¾ª)y_•pÓ}–*¦-ðªbß ¦-ðª"üÝpª"ß ¢-ðª"ß ¢-ðª"ß ¢-ðª"ß ¢/ʬ*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â©‹|*˜·Â¨‹_\*ˆ·Â¨‹|*ˆ·Â¨‹|*ˆ·Â¨‹|*ˆ·Â¨‹Yþ±µTžL[áTžL[áTžL[áTžL[áTžL[áTžL[áTžL[áTžL[áTžL[áTEùzáTE¾D[áTE¾D[ã&Æ}UuFjX÷Š{rŒÛõ¸•ŽIMS@é%E=qˆ¢‘ >>L{$}wÓ¥bÒÑвœáÙ­’žh‰<¡'óg\¿UÖ1[O;Ù)ãªnaɉã`c_ù¬³ÒEÐøN:G¸ó×if±}ª&n…7B‰›¡FÁíuBc7c7c7c7c7c7c7Ÿ”ÿHQ3t(™ºLÝ &n…7B‰›¡DÍТfèQ3t(™ºLÝ &n…7B‰›¡DÍТfèQ3t(™ºLÝ 6kêÆnÆnÆnÆnÆnÆnÆn“ý#j‰›¡DÍТfèQ3t(™ºLÝ &n…7B‰›¡DÍТfèQ3t(™ºLÝ &n…7B‰›¡DÍТgåê„ÆnÆnÆnÆn ›äyÝ“¼¹›Yõæu¿ª”ÛøOŸò}^vÆ}yÝ“¼¹†ÌŒ1Î6è’ªå±ÿEʪ^ •\¼)]#a5ùÌ-±"ã_àuO2nFàÌë¤êÔ±Ãw¢ÄG Þ‹7z)9H$¾k¬EìmÓú~@„LâÖ{$Ü= 7z,DpÝè±!aÿÆïDnÉsNÐEÇàm>ÉõyÛõÈÓÑ )§Á Wdï.gaû\º£/xgʪyæ?>dLçÌc-y X¹Æú?E†Ñï¹a´{îXmû”ÆŽz™?ˆ"7±Ñ§ôX½Güz,^£þ=1Q{ž‰æI3œã¬’Á§.ÅØGòÀÚ|ù’1§a6SG¼Ñï4{ÁMðSG¼Ñï4{ÁRQɯt†æà…ACÄr ¡â9RÑÅ¥ÙÏl†âÀž•CßËææØŸv•KUÿçÕRÕùõPÍδ7G÷D´óv3ê¦t=¤6VKÐ ŸÔöŠ(dLú‰««%§5EÖHìAéµÇ¸YO>ʧш4ÎyzZi ‰sÿ3A#7<Øé'BÇk©èàƒ“ ¨mAkªdŽV¶kýÒ]`oœ4é²ÄªÙœJššL;<†}ÑÐ5Ò»’ÕlâãŸmZúZáɺ÷u¬,yŒk‡#¦îµ½—.¨Ëo»/œüßé>åOú*x8ÇÑSÁÆ>Šž1ôTðq¢§ƒŒ}<cè©àü§ýãè©àâŸEOú*x8§ÑE[÷ˆôµ÷éý9ŒhgÞMˆv“¥ýÆ´3<ØßIÐz2ì)­ ÍÐC¯`eØ©á#ŽßÅÿÄ{•<cè©àãEOú*x8ÇÑSÁÆ>Šž1ôTðq¢§‡Yÿtíý<Šž1ôɱŸ\Æö\×0Üj6:,t’°G#œÛ—´^Í>í'G½DÂØÈ,€†‘¨–÷(ÛÊææçæŒël¾»{—dï.gaû\º£/xgÊÎkƒbÓb=¡Òªj8®õU5WzªšŽ+½SÜ÷}ôis‰?˜íæw£æþg\ù;/T®¯ìv.Â?”~mD 4áű¼{+­â•ŠVñJÄj_yšßi÷°$ˆwÝ\À×ô¸9·Óú,7eÛŒvªŽ¾fÄàÚvC%Ý1= ’œ¹€ô¹£j—ÃñšZL.?³ØTq9´²@Cy~U¶³­í‡çXH¶³Š}¨«Ä1*\TTE;sÄ,Žgr&8ËlÙ³Öé¾…_öž|#Äh!‡©–XL”Î9¯™±™]y°Í/öIb˜Ã+þÕSŲK'% ”r¸Ô¸´€X_`¹I%RVbïÁ¤–éiã<³ä‹ó±ÖÎ;-¯¡‰Cöz«í=ª*YJö™iYH#–œc´›kbÅ>×P² ;®¡Ž&˜žé[Wþ_8Üÿ 0ëiÒ Äkiq'b1r”9“:'ᦒîHGÉ´¾áÃ6Ý Š¦zš\Yñ¾V¹îd1: nKo˜.l3ˆ¾¡uI$F†«ªÄh~àñ6 ®þZJ‘¦¡®Í­:óô_5`§lÕÑK@Ù£ÒÄ÷FâÙêÖ“˜Ö’mšNvm…ìEF8ÜS–³õácE|•2¾h¡a§Έ´h³Y{èT…Kçû $XµD/’GM#ÀY½šòˆ µÎzU$4ã ‚’ –ŽHÛML×Ó<®hOscoÊ..í%vñÿëÝŒú¢Š(¢»'ys;ÚåÕ{Ã>SøFüÙßGÌyèù¿™×ú;/T®¯ìv Ðå‚Û݇Ìröìù‚ëCÿ¬*ˆ¹&üñšÒ ˆ'õOlŒv§4Üï–•§m7Ý…CÞã™ó‹Z ³nt’&ÂúŠ&=ÙÎ"À9Î:ýä•,q2öÎ{ƒEÿºš1+ÅÚÂáœá´•4n•–/`p.möŽŒŒc…œÒ.Ø€ :9¼úÇ7c>¼îÉÞ\ÎÃö¹uFVµÏ…í{CµuªZÒ©hwJ¥¡Ý*šêGØG²4tÿuƒž:ÁÏ`玩þïgó3³µ8i¿3¾˜ó;Ñó3¯ôv^©]_Ø2ìU²Ó )^Gµfkªñ ªñ ªñв^øÚëK ivr±:.0X,NŠçWñ‚îÍùŽ^ÝŸ0]hõ…O'øn+_0òLb&YÓ0@ºVÆmÒUc¨æ‡Ý!teŒ¨kÞîP˜Ã}£Ñ¬fÚý*ª»1õGl†—ýö<ÈjI·å1Y·Õr±šéãt2:x™ü:PÇ3£ss¢x†ë]TÖTGþùY,Os$˜ˆÉæØéé+ª©Ã©C4B @2Oʳó·]š5 WuÎ¥$Mª‰³ÁÕtïš’ Àn{dku¿4û?ÞÊ Ì^¢,8Ó¶¥²ÊPËëf–âIÑr…MOQ^ãY÷òÚwÇ5Ï$$¿ñýÕ ·G?·ÿXæìgÕ¤’meŠÑÇC!•Qɼ‡§QÕ°ª¨a¥™î™ï½þýÚ±z(éëO#¦²“°ùìéUôÃs9ALd¡nÛÊìäy‡írê,·Ö>SÌÖ>œÁ£–?0æwÑógz>oæuþŽËÕ+«û]‹º!Ì`?䆱ú&7Á1¾ ÿQ½ð囿röìù‚‘Œ»¡üÎý°ª"ß X ›¨ç …QøRÀ ¿1U<[áOøN¦ïÏv‘¥ÛO½Mp8\) v².UD[áTE¾D[áTE¾D[áTE¾u<%ÓF[žû\rcRÅhø‹£â*Úyåµó#}ͶäØÏª’Á#KdcÅÚæ`ް1Xì*˜&Ãâ{.ÞTYŽmÎiÖ:t,=õ•¨ª§k^ÜÊ€ÒìèØIÒæÚâöÁ`_y8”ðŠQ#?ɺ¢V½…÷6µ›ífÞÇjÃÃ㋦Ċç·4Ç-ae¿6y- ZνÖp´n"ÄŽƒ³™ìâÎ#ú\º£.vsµœ@ü§£™œ×‹{DŽŽžfvx˜í~aÑ«™|ᆲÛólægg’´m­ýËç9æúMµŒ½R³®æé»‰þ—bÎö©A7q=o3;Ú¤ÝÄìÛ—®ß0³¬iÁÒâzNܺŒìù‚„:¸—Œã}=%EâŠÅ.ŽZ†1ã3X'J¦†8c -nn«‹•;Š(w¾)gk^ÜÍaSÂÈbx nn¡š ŠÅ;ŠžÃ!vssuÙ¤ªxYS±¹š‚ŠÅ;Šš!to%¹¶Ò„Ƶ‘Êæ´4jC 6ät<²lg×Ù;Èó;ÚåÕv”ó:ãéÌíÏÌ9ô|Ǚޛù£²õJêþÁ—bîƒÈs;˜úeë·Ì.ìß3—·gÌwo™Ëޙ溱ü¹{ËWhß”eÚÿ”®ðï¦^ÊO%Û;Ï/w~MŒúó»'ygaû\º£.Ñòžg\}9±ù‡3¾˜ó;Ñó3®|—ªWWö »tC™ÜÇÓ/hß0»³|Î^ÝŸ0]ݾg/zÍucùr÷–®Ñ¿(˵ÿ)]áßL½”žK·ž^îü‡¡ŸTQEWdï#Ìì?k—TeÚ>SÌë§3¶?0æwÑógz>oæuÏ“²ì+«û]‹º!Ìîcé—®ß0»³|Î^ÝŸ0]ݾg/zgšêÇòåï-]£~Q—kþR»Ë¾™{)<—nï<½Ýù63ꮩâ’J™\Ó$ÑJøâkZ\I‚vÊe5u^#$0Ræ<ò’OêÎטÎÛ ,šJêHêeÄc|ä06᎞’üà[}B÷Xlgš®\Èy~ZXÚðìÝYƒ9­=7¹èM{‰ÃÙ¶ƒÌcÝô‹ÛÙrꌬ祭¸ÉÖyŒ—™{Fù…Ý›æröìù‚îíó9{Ô~k«Ë—¼µvùF]¯ùJïúeìdò]»üò÷wäê³êŠ(£“±w‘ævµËª2í)æuÇÓ™Û˜s;èù3½7ó:ÿGeê•Õýƒ.ÅÝæw1ôË×o˜]Ù¾g/nϘ.îß3—½G溱ü¹{Ë~«´oÊ2íÊWywÓ/e'’íŸç—»¿&Æ}yÝ“¼3°ý®]Q—hùO3®>œÎØüÙßGÌyèù¿™×ú;/T®¯ìv.è<‡3¹¦^Ѿawfùœ½»>`»»|Î^õšêÇòåï-]£~Q—kþR»Ã¾™{)<—nÿ<½Ýù:¬ú¢Š(­K±w‘ævµËª2í)æuÇÓ™Û˜s;èù3½7ó:çÉÙvÕýƒ.ÅÝæw1ôËÚ7Ì.ìß3—·gÌwo™ËÞ£ó]Xþ\½å«µoÊ2íÊWywÓ/e'’íßç—»¿'UŸ^i®ÿÜB 3ó?Ã91ÿ‡'ù¯Óor1ŒðZKï¨ì²Å¾Å~Å~­ŠaXÌ×´‚Ýh·ê±]Bßé¬Wá¬WáªèÞÊËg=Ì7n‹hX¯ÃX¯ÃX¯ÃUìtufîyaÎn­^ økøkøjº7E;ËŒ¥‡8i@Õб_†±_†±_†«£6nW•Ì9×½ímKøkøkøj¶6ÅO'(ÙCsɱºV+ðÖ+ðÖ+ðÕtmŽŒÝ²çkÖ?ºÅ~Å~ŵ‹¦«c‰”"Ì{XI~‹iX¯ÃX¯ÃX®¿þ5]_u‹“nc Îæÿ¢Å~Å~Å~¯Ž#\ a7t¬Wá¬Wá¬Wò¸ôöªØâs# Œ$Xoÿ+5‰ŽÄ1¼<Ív7Uì…ܘfkHÑú¬Wá¬Wá¬L9ÐHÙLz b ‰ò†‚Æ0,-Ò±_†±_†±&½ÐH$ tvŽ‚±ÆùÜXÖ\ ,Wá¬Wá¬E²¾ÙŽaÜYbMÓÈ^ZÖ\V+ðÖ+ðÖ É^ƹ¡aßôX i‘åäô ¬Wá¬WáªöLàÂÌ×°§ôÉÕgך}ÙCÌ?‚HŠÝ#È9­?ðC9)Ú×39À;ÚÀÐëi²¬¦¨tD Rµå„꽎‹ªÆÉ]Ee©Œhšâmsªú…V*©›3áåÒ{ këéÊr‡˜y…Jèß[#£„ÛÙ»Z\s@°Ö«i¡c/såkCn..IÑq¥TÅ÷Q*f™–¾uÇB–¢²›'îm§Î’{\’Ök°››hNs¢™‚FÒÒA.}Åy‡!E‡!EJ[U1ÌC…šZòC@=&í:#G(ìØóçksÝ{X\é7Ñú¯¼I,ï1ÁOO ’Y\ÈkFÁ¤¬I’K‹±ÒP±­7•­isÿˆtôèEr…V}~!¡pš)`©Ž¨–‚×·5¯k€6-:moht…=ðöWEZùœç ‹›La, µ†›:÷Õ¢Èѵ°àí¡œ@Ò9ID™Ùþñké:t§Å÷ypøéD`{yí¸“ÑkŸþñˆMTÎL5"Àûô~8UX{0ØywRLÐîWø‘f67²Ö³I$ºúG@M¬Êê9ÝntÌ‚G¬wn4Xèd1I)˜9ŽysZ/°h+çÂ]?)M,ŽŽÛ(p¾p·HÛîUŽ­¨§§drÔ:÷‘Ài:tøéçÀpcˆ!®µìz ºS°—btϤäâŽW6)Ä.ys˳}‚ìý ±µºT˜d•oÃ*)Xü×Ç4•PæÜ\4õÜ)é˜ZCk\ùÝ Œ2Ù±ÈÐK.u/mD*za/q’ž1­0¹±’:]{›täÕg×þÊÿÄ> 1Qq±23Á C‘Ñ!5ABParð0RST`p¢ÒÿÚ?ù8¶ºª˜£œ~eçþÈ1ùùùîì¬ öD¯üWvèS+H¤’ e¤îɲÒ-˜©·õ‡ôt!C´ÚB–b¦‹Ì;¢„«iŠ«—EY`€}ñS]ñU)P 6ÅM˜ÒK`QûM¶§ Š«—AaÀh¢*î] BhPí dþdžrÒ·G°”ë(©åFôjI§ß'mN>rrÔãÈÉÍ´cÊZm‰ìtÏJ£¢tC¤­%@({ñî>‰þx¦:õ=4ÚÖÒ uHš=ø~ð¶Oìxg-$RÝEQÏà ќH¤ÅYÛ¡,­ IP÷‰;ðâ$í©ÇÎNZœy9¶ŒyKIAp¥#ë%Þ!ÖÝúéSt~¼t2©þIÌË«}ΑŠr?¼-“ûÉíž#9=²1Éë"Nü8‰;jqó“–§FNm£R^ñ¿b°íñéܦšb°íñéܦšb°íñéܦšb°íñéܦš}qXvøZŠÍ*ù?ÿÄ:13q±2QRÁ !4ACPa¡ð0S‘"`ÑpÿÚ?ù9²CÔúµŸÏüÿH ùùùïò &$~ŒðêÛžfDC¥”Ÿ_’%|>Hl”!¡è8èÞ ÷èÐÑo< UgË(vT=Íâxq¥·` ^sÇìÕÇd=Íâ(àXÇ!EÔqżAïБ+|HW»ôž¾K¡Jš¼çÙ„S¢ª}´ç™ñ/)4ù’…½èe|3ò-[)*àÞ"9~쨿ë!I¢I9±xusº¼:‰:Ü^Yvvò²ò@Â*1ðt“E¿fþÙ{ûƒø-Ú=š¸$(ƒOÖ6Jðg¡`Ðd Ÿ®_sõþŽ–h5qÏ6¬¸‡o¤¤úÐdæÅ`zI͋è“ÕáÔIÖâðÊ èt£ôÕ¼Eß)û3ˆ¤¾¦E[m<[»äÑG¤»Ï¾ë¨ýcc…½èX46þGC(}ãÒPö«'6+ÒNl^Dœî¯¢N·€ÖNî—–²EÊòÖ]ÎöÓÒ]ízJ?]Cxƒ¾«®öv¨<Äð-]FÆÕÚÄð-]FÆÝÚÄð,¸Ðí¤{èo_(û´3ÒùGÓÈl”-àÏC(müކPûǤ¡íVNlV¤œØ¼:‰:Ý^Dn/¬Ý/-d‹•嬻í§¤»í¸ë=d.N#I|úHÜ zHÜ N‚]s™ò% x3аhmüކPûǤ¡íVNlV¤œØ¼:‰:Ý^D]¯¬Ý/-d‹•嬻í§¤»í¸ë=d.N#I| úHÜ zHÜ N‚]s™ò% x3аhmüކPûǤ¡íVNlV¤œØ¼:‰:Ý^Dn/¬Ý/-d‹•嬻í§¤»í¸ë=d.N#I|úHÜ zHÜ N‚]s™ò% x3ÐÊ#¡”>ñÀé({U“›é'6/¢N·W‡Q'[‹Àk'wKËY"åyk.ç{iÀé.ûn:ÏY “ˆÒ_>’7’7 —g\æ|µG<¬˜gI4„µQÏ+&ÒM!-TsÊɆt“HKUò²a&ĵQÏ+gI¦„µQÏ+gBškUò°†t)¡6µQÏ+g@kUò°†t6µQÏ+g@³èZ¨ç•¡`×¶ãüOç[Æ#¿pý¿ãFD<?;T~{¨j£žV«:£ggѪŽyZ¬êŸFª9åj³­ŸFª9åj³­ŸFª9åghK±BEäÿÿÙplugins/jetpack/images/screenshots/post-by-email.jpg0000644000312500031250000004525712651056012023262 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂìe"ÿÄÿÚý=ç=¦¶§MÆt–@U¥ÑQmYëRÚoëjÙÔg°QÞ“Á½ckAÉ[ô$ÄÂPLÇ7ÀYôuu–ûÖ{šMn²¶¿Ç¡Ê €˜˜J €˜ÓÔÃ3õað$"b@Áœ"LÂ$kêÉ¿Pn´†Ö]³±GÜ}rm*f&bH˜˜˜ ‰"bb`&$Ùéh¹Kâvú½jŸv_Mèúú}·Yè5z´=/Ïö–Øä” ‰%b@‰Aóoà× Ðå¹àðzóɶúK=­Ùü}ÕâbÉñ¼„D¡ D‘(H-O¬âbuãfa«ñµ?q­‹qµñ0 €˜0 €˜0 ê ]ª>/€OÓô_¹ø/®ÿ[ãöÇÆÎZ‹NFýŸ5¿=õ©Ü€i×òû>ÿÄzšÜuO˜í7­|Û¬¿æê­ñ:OYÓ®ç0Ƽ5î«qÙÝ :à«ÍýõVàOThü›ò }p°4::;­Šk­¦Æ¯Ö­Þ_°Ç¯OÒcѲrZ’ß ³à­¶óîïžÙñ l·u“Ø¿<æön_'œz߯]é\ªy^ZN“Ü·º†:é6vÕVL;u6Ä'æf³"kd`“[%m¸Ïå¿pò^§…ë§?yú43ó}>-ÍÊn‡0ù.Ä Úµvœ÷Bs–Ùë,v*ôïë-++í·ErÄsÛ¶€•ðWعgó>S£¯ôo'»Ð¹¹©Ý­õß0Í¡wõÄú.î-z{EñïVóú¬žãÕ€©µ {†«hÿÄÿÚòñç~˜j\êsébÔÔP3× M –& &  ¹¹Òæ˜éÿÄÿÚöøþ^gHçY²’€¬šÍš€4XÒk*Š,  š&¦³-–k@ÿÄ( 0P@`p€ÿÚï/º4péÊnû˧͗$’I$’I$’í¯K—I,ltñºÇp\ºr‚¤âä’I$’I$’I$’IqÛü”VÁ\Vé.0À’I$’I$’O§†›dÞ$ñ7­SIÚJµÍ/=Ȭ—­†i7hߦI’I$’I$’I$’I'ccc·8­"I$’I$’I$žº$’I ’I$œÔØØØØë¼³ØØØØë,²ØØØØÇ>ûØØØØÅBã,;íE=V/öI$’I$’I$’I$’I$’I$²îo°ô§×w5WóMN'É»‡©æºsß&ùâŽÚ¬ó²ã¹ú¨2qçdë2I$’I$’I$’I$’I$’I%¾S[¿5 õ’YOÒÏÌÎyeŽSu”|œ•Ë,¦éEœ³ÍÆg.ûËw— $’I$’I$’I$’I$’I$žHJXs¾HuŒ±æ\–X××:æ|–]W×|5UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~ÕT¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûïÉÇìuÏ=úo§ÓÞŸ8ôwþè·¨“Ô}½,½$=½\}ý=îsõ²}÷d=L}Ný_¸[î]úhúÿÁ_÷cç7CÇý=ËTü´­ä¦Åœ—–«O=»f©ù͘yÈåà8óÐ`Í”Õo'¿1ߟé5]|ï¶ðe)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)K/ðÃWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWUFß³ê3j߉ÿuÚªhy¨ùø÷9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9Îkçøvµ÷ß×çžwß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ß}÷ü¹ï·TQ]vÁ󥤞\MNºAfª©ÄýwÒݳwú_8A°‚ëãÔ!B„!B„!B„!B„!B„ ë—\:ùsÏgΰq›Tœ·Í6MðåH*²y÷=ž;Cµ•ÏêNúWÅÏÄvÑœ9Cùn¿ ºëx|9o×_6¸ÂÛm²Ël²×=c¶Ùe¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ú®_ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1ŒcYŽ]:ÿIï™wãçôûfïñõ\;ró~G£×ú%8a‡™Òx1Q¦m:GC èü»û—Ë·h/ø,¿3wò«ÕÏ.œ§Ÿ]þ5_—ªõE?Vl·à»´þf)!äeí´Q/ذ`® ˜ûè¨Ýè4M§QvǦž5z|É'XäÙT’óÛ¶ñ“vǦŸM¥ëõÛvMü˜0ú'íÒóAª^z×Y?ÕÒ_*à’ùoÿÄP S’Ñ!1RT‘"AQ“á#2aqBr¡±Á $0@P‚3Cb¢ð4`Ââcdp€”¤²ñòÿÚ?¢Uu"C†ŠlJ+'ÒW~I Ì°Ž·±~èѶ ®8[ ôÂÔÃ%/umZEŠ%Vq4ŒJ)µ¼¦ˆ«òH †‘ÀÙø~ìÒäû•²;i ¶ ªª>H!O¡0 ŽÖˆ X¶¨š'C«^°ýÞÒ+vºÈ•¤ »‚7\"EZ65Ùû"ókP$ªzÔJ¶V‹ðXB˜qš-[DZüý.ݲB*’ ¦º¬iBÒ¶ãJ/¥ÆBÁŠº*]d¥)M¼ÿÒK¸Ý}áT€´ãÊÙ·ô ˜–T-VŽÕ!i/vÍš÷@:ëz%µd•cHɆðªC@Õƒ[ŸF¶Š©KEjŸ»+²F*u¦¤ùÃée ºƒ 1ÛÕ·Zò‡=}eWû rÒ'Û±>ÍpnÍË(“€‰j¤ê“öQ좊-6®pØ0Ö•U•˜šÓ·ãñN”GŽZ„M ÍhZë®s¤P7DlªbŸ(m¢6Ê]Ç[F‘ ©Q{~Kñ‡Eùg µyäBn¨ê…ذ,ÎM{#´‡gjjíùÀœÔʹ,ó¶›Mˆª¥uýðøºõÿ{GV»}åûR¥@@\Z8+ìÒª‰Xõ‚–‡C+zQTìíÙª4k.â2HhùUuêµ>Íçõ€<²¤ÕTÐì´¿eK¶‘´–$*¦ÍŸÀJð'óCÍâ†o›Å ¯÷áŠ% ¸ ¿…ïýäEUPQ¶üd6íÙKT¥fïÍa‹æñCÍâ†/›Å _7Š+­ E*D‰ó†/›Å _7оo1|Þ(EJ¢¢¤ ¥UQ!‹æñCÍâ†/›Å _7Š’¢H¿(¦µ†/›Å _7оo1|Þ(÷ K侊0â¦êÀ€ Ž¤HDJªÑ"Y+£R}Sn+÷쇟uÄq”iéUuÂ,£¿UOáéiâíµO¹= ËZ©{€;Jz`Í ‹–©£¯VŸÏЈóÈ›ÿ$„õ“Uì§ßè›' h"•XY©]!" ZTTOB$ÙÓ´EE› ö ¯á蜷[ieÐEЪÕ+ôbpœFÑù+J´þÉØ9‰ yË6е³ó„õTí¯Ý¯2‹²ß侉 œÐ²rÀ(ݵ'«ßHé]?F­šêKUÕ¶Éfœ/xi i¢íµO¹}«¹õWЯ&›KM* (!~0€ífŽØÿve¨QS¹6BèIâÚé©ÇêÎýEü?‡Ðúÿ’z“Já êvÑlZû´ÛO‚m‡=;Š¢ªžïjüòMžj÷Öÿ•"“}Qüý0c&ÒŽñÚÙðHVfdÔ*«^®ÊöÓÑúÑ}AüV)2?P¿ô/®½eàd­‚Ú"Dú+œH ’I¦ÕÔq LœMzâÚ|ÿ¬ÃT¿(ö¬ýoùWÐÒ N+tÐÓ¯J{ß`šq-KÕD¶Y­U>qIF~¢~UkëþKè´*+±uC¿öküÊŸ”8º”TîR\ ‰(M0IØŠµü¡ÄÔ‚Ò7”8b¢Vm¿ÃÉ TlëïXw¹¼k”-»z&-§ÒíçHw¹¼k”;ÜÞ5Ê)UUÖ«U…·hiZS\;ÜÞ5ÊÕ½ ½½îÞtФbY m{øÃ½Íã\¡m)*½Ð¶’•Nøw¹¼k”ZZ“Ľëÿ憕åÿL¥îBò…µh©²š¢´¢ëEªC½Íã\¡IjLË—Ö×ùBpÒ¿ëùaÄJ ´ŸÌ¹A)"]Ëè™áç<1ââk†c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&p|$Ç$΄˜ä™Áð““8>c’gÂLrLàøIŽIœ 1É3ƒá&9&ph•YIŽIŸíf,'«h­vé+ˆÏN¬»L׫ZÖ%\hœZ Y$°¨H¿-°-’¸kAUX•W½8ÚV´ßÉߺwKÔlP‰hº‘u¤JK»£yª'öeJ¯Æ”‰O[õ]/µ­=Õ¥{«²¿}zO@>¯DB¬ëÒÓåþ«Iêô­ ×JH¿I>,K»0l6DF¯QlêÿÈ”wIeÕMÚ+`£Õï×Ùk*³:BÑiRl†¿$T× ,²ºÅ§ŠÞ¥’·ÝEÙiE)gAUÕ•_f«©>i]U‰˜õXö–ô~êÒ×uvV$ŠgÕÑ>êÙRîµ²¿•£ê$e ER£eM[h´¢ÃS’#6b •ë ¥"TÍ …IÖô¡ñøèð@UQ PQv*÷}±*3I*®ûe×eWWÊ{¤¥%åNØ;nÒ¨.´DÚ‹Û¼,µ1h‹Ýê­á^ÿ„HFè¿P "ª íîNõøDšK‹úEP"²ˆ€JUî³¶%›V„ˆ­:•FÉVû5CRì“Ï8-¶;IbOA¦S1+(„Ñ!*ü•X‘Ia˜WÑ"°‹E÷»©ßë€Ûs#[(–R÷/rüø±?ª¿¶xzZY ½;&›ª¨µ‰ÁzblÑ„yÛ€„¶QãMºÖ*íu(˜Ð úÀ[ÒXµÿv¥,Dó…6Ü¿«#S(:ÉV£D¥)"çK$Ê„«Ì5ý€¤6W´—ªµX6úDѶóK1§E)ƒúžêÄÇ®¡¨KÕ&tÞµit¶kîÒڶ쉃œ#³/U˜ÒŒÕ¥Ò‚nÒŸfØ›‘uö•¹fÎÝl8EmWaYT¢,O´éœÂ0í¹}Ú|ÎÒ÷ëM‹Ý¢Ç¾Ø«O‹¬2®‘ˆÑ)KJ•‰¡ÒNº®¶‰¶zÖF†­•]u‡q)2‚BB-¨ -Soݳl4ܲO¶ª¶õ9]”ûëh-J±ê­Li‘Ê­µëZ¥?:ÄÀO>~͆Et‰ WéQS«öDü¼œ¤¹¤µê8¶•j(›SVؘљ€GQË,–ãú¿æ_º&„æÂOÕôS`‚¶ÕSGªÎ¤¦½_(Vܘëõ`úZ‘SóŽä4þ¬ÉЇQV¥Õ¥vDãÒÒ(ð2Û 8®¥m®Ú%)«l8}/+ht¬‘(Jˆ«¯µ5¦Øsú¿D2l!éUÏ÷·*‹½n•¬O8̲ ¶³-¶‚³ZBEíÔ‰ÖO‚ÄÌã³i‘DP6W^ÔZõ£¤Yy•nX_`ÕQ½"¨’*Sm5/ÙÚm× ­"ÍúÈ›¨£Dû¡í ¦ê“þ³üµü{ú«û‡ZÒ- · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ˆTT—_î8àˆ<­êZÑkñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ÿxãOÃüià<ñ§€aþ4ð ?Æž‡øÓÀ0ø¶Eë§©7ö¦ßF‡«F¦ŸE‘$z*]Ùæ%‘ ¦—bûß8ébÓ‡+l¨¢‚+Dïí×Ù>ªþ_Ç}‰ýUý¨:Ù4è!%¶%÷EÂK6(n‘¥;¨«­6­€¹ai«JKJl¦½PˆòUiÕ_Êy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àw“œòsÞNp;ÉÎy9Àï'8ä缜àt'ÖOwôZE¢º üÐÍóx¡›æñC7ÍâŠìý0|Ä~k ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¡›æñC7Íâ†o›Å ß7оo3|Þ(fù¼PÍóx¿B’î*v À€ÙHÎìÇþœò€lÜ1Mª«H–}TY}§µÑ`[Wû ¿-H°“zÆZa°Q´&àÑ >’òξHª‚’¢|#ÙÛ¢ì­"Ûbt!´•¡%=å«…d¬¯ÎfB»¥ùD«Äè´BJÑY?ð¬KM0˸Ùl$†Û3¢¥Uc£Ü1u,VÊöÀî¤6‰U¢C,²n»AJ’÷$HÍ‘ » dòv¤êCh¨‹M{!–UÍV5v¬ê@î¤H>ö‰§Žªžêö@î¤êD³:[jžÉ½!¥6úHTM°;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º;©º>¬æ¯¢¿¡ú«¿Qabbïÿ|æQhTKZ.¥HjHZúKUXOÖm ’WZ"mê¤?êÓ’²^¶r¾ªVæÔT°EWZó~¸mÊÌ¬Š€ÛmRÑkì€ÍÉVa¤•$H$6‹³nÕÛ®x%HíèVL³IrzÁ÷¥Rì×,nOK=0ŠêÅ¢SAïú«X–igEɵ§®¦—¬ŠµJ/l~²?U(˜nvh¥AÅõ燻Zê.JPïDÈ2ô¸™°Ž=/¢Nûka/¶k œm×Ç\­’ö­"qž‚¶äÈÙn¶݊kOŠÁœßIºS¯4Œêo­ÔfšéÛÿB>&ë… }¥7‚hœÖ5T/˲ýššÑž=X¬•«UJwöÄÓ zûÓ(ŠHÛFLVµ¯o8U–žn‘¤ «z7Ýyi_¤:M¿oea—Ûè™—\y†…ã5˜Zl]vûvm„I”V“Ö©§Ñëm‡E™·ä¦Þ˜–•pW-[J{A¯n¯¾~X¦ÝRý`í¶+ôCèýÚþØ—uë-ZzËöˆ¶•{ÿ(y×$„úBuRbQ]wÚÒª–iòÛÙýU$$ë¨ùJ«ˆzunÒýžñ| ¦%'UÒ6½‡·UzõbU?…þ¬çÕ_ÐBذújG_˜ùÄÆûX8˜ßkçí`\âÊ-Vª«U_K-èßm´XDJ"QÒHâ¢.¥M°åØâò:´®4‹£;b–ûa˱Åå]Ž/(rìqyAÝŽ/(rìqyC—c‹ÊìqyAÝŽ/(rìqyG¬K›6– ,•š „PE DMo(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±Åå]Ž/(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±Åå]Ž/(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±Åå]Ž/(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±Åå]Ž/(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±Åå]Ž/(rìqyC—c‹Ê»^PåØâò‡.Ç”9v8¼¡Ë±ÅådZSÞòôÌݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.Q3v׈¹DÍÛ^"å7mx‹”Lݵâ.^†ìi-êê$¨ª*|"YVÊL4«Ým?à­Q=þËË!¶ƒØë´¶©i>nH–ȧ¶u:©O¦°ž¯&âôERÊ.–¾×çîíûbh¦}MV¯K«…1«h§¹Î©Éc¤ÒSÖWÚË©kGATJ¥š-U>q?&~ªãèóÓ>¬V)×­ ìJ¢ÄØúÜÈÍ ¤³ÈÚ1a:û6öÕkª‘>(g0†2ãZ ±©¯muDë¯ËœÊû)†•Å·£D«E­>qTªÀŒèQz4Øu@ÙJÖˆ‘Ñ hàt| š-P‘‘ª,6Žˆ†^ñSZÄ+ŠŒ—ûJ6oœi'Ú™7*,¢èÛ¦Å^Ø•9”™)f‰áØâ‚ZO¶DDF‚ˆV“«±{âMän]¦•áT2DU¬ €ì¢à…VŠ¿‰e”f`T”^$N²—u?A¹Q"p\²-“ŠH:¨ÛÄè…jÑY/?Ñe²­^+#ÉWòô6/“\#²5÷–‰ø~ƒ Ûªª¨8-a)ø¤X6ÆÉ­µ¥Q6jí„#]‚•†ÖKÖõèôzMšéJÂ8ظ; *ž€iÖ[*Õâ²<•(m‡4j.èÉÄ@ª¢S?@L5¤n´´C¯à´ô­z¶»v-ýÃvꪪ EDØEJ~) ±²kmiTMš»E·¥Æaµ´Ù ¤Zv@LK¶ûu°à¡ {—ô[`¨à¹´¶u*’Ñ WP+ìŽÁ|ÿÒÿé÷Þ°z46÷Pʶ•>:“œ™´gÓ¤}`•ç”VŠ_¥±R”¢C¤ÿG6¬L†‚TÕ6Õ×WžÈœzyY–Ò s†N'Ð ­9õyDëÒ®¾rï#“2¯‘ª«e~tH0~yHm>Š5M½A‡šm—mg©­kaT¿Ë²&£E¥iÅd‘òõr¿e¢Rë-{R:Fg£_›q§ZyÃlUº*ª6>ö®Ú­¯šA¼m6M¸²k3î#$ÐSF]еD­!³õ,»0TÄJ‰`»²öv™q$-9¢mÉsvÎÊTQS¶Ñ:"6Áò*JëQשů~ĉ—:AäsL¯–”½\µ·¯ûËVTiÙ&r“5GEéiu—av+‹¾ŸeŸ¾ &Ý BtiTõbe¿™V«ñ„'§Á%\öÓLDW¬5ëçKô’7,á.“‘:©ìJ´û~øVÍÀF²²ëlÕƒl«þ*ê2ø¤Gô"„¤’¶Q)¯Ýî‚èÃûD’U~iÕŠ.—£å&›—:*Ù"‘!¢Ö‹­V•¬$ÌΙù)³•YÄ+*É{ºV›iX™Ð¾¬ËÌ K/0Œ •¨¢¨Q>´H4éÍ*0ãŽ+Áï2UA¢lq5Yÿ Á6 ̲ÁŒÚÎ9R¢ÖÊ©ÿ—dt†…tðÌh £ Eñ5.²÷*C ÒΜ£ì1êâvˆJ«ßOO‚J¹í¦˜*ˆ¯Xj5×Ηé$nY‡B]&-"uSØ•iöýð­MPY;:.¹“&ÒÚ¯Ò®¢/ŠD¹ô¼Ð¿-0ùz¨ht`Edª]ÛãÑÁ˜aóéE о‚´D¢}-ˆ›j¿ÖÊ‹.áÛ'4ªl’"×iû¦Ñ¢è&YFI¢¡ :ݰ.ËKKËËLÊ»êê“&@C®š¶íZëøCÓBïHL “r€ƒÜƒÿU¨›>•}Uҫà4—"T[Ò¦Ú¤ œ¹»,â““oi•k¬:ôEÿ»z¼¼³’¤­‰<ƒmƒu¯ÕK(½ÛblåÛÒ50ªƒ(‹hWh¸¶¢Ã“kÖë¾¥­)ØŸÆ执FÐP“¿öm£Äò\‘WàŸýþ€ºÙ6iQ$¢À4дР¥³ÿ+ŸÿÄ,!1ñAQa‘Áðq¡ 0@P±`Ñp€ÿÚ?!'@ô‚HêU5Š»Êu\Fqkü殄 mq€@R¹ØðFkçbÿ,ùËR…í×9<%*¬ˆek‰(•¤Â8¯(Cùêiþ±@…d|7úE)Vaø‹T‹ºI°©)äà²ÒåLméwƒèöîJ)žŽ\³uyE}Õ|.:Àq| ÀKÖÓOðwéþÎý?À9Þ]=™:]ä~F³øUþzbú77L}ůӾåÔ:2•ž½¦”vþQöíôزlA‰)€¹×£¬2¿@µž5:5åžâÖhN¿£Fxã—pç˜ñ:CÛ2…ËüßYõt@¨UÕÈûZª¤2I©àd`1€Rޤª»×”7”7”7®«Ú1š®ÈúT·Ðn?—êåÈk§/•žIu§úýÿ´œµÍÒ.BqgVòú9*AÈìµzIÈŽÇÐÊ«F¹^ÿBŽ¥(´Û¯” jõÏØ¼ £·Ÿ£›Óù«~ge `cN›`Îj¹çÏþoË x±`Á^¬±ãË x±`Á^¬±ãË x±`Á^¬±ãË x±`Á^¬±ãË x±`Á^Œ;ø®#UZÚsþõóçÏŸ>|ùóçÏŸ>|ùóçÏŸ>|ùóçÏŸ>|ùóçÏŸ>|ùóçÏŸ>|ùóçÏŸ>|ùóçϑՅ¿»µFm WJ•UÂMuø#Ÿ™JIBÊjp€« « zâ$fÅ 4äÍy­nèF¼ç`žzzÊåå’ò*ø«š«O²r+q(¹ª–º8ÌFê•F¥Üéx³Ë†^LFµ˜^(nq;&U£æÉƒ2Þïn[Ö žÑP,øjô¦^fsÚ.©¥¾K™R_Ð,€qBËu)…º™ù0ÊéÏÊu°HC!ñ@ -¢£Z@ÀÏ$*|K!¶`!¨ESªåèâÓF CE²óäìº Êl¬TäsŸ&Aa“-@46Ú ‹‰\Îé4‰rû«µgK0pç„ÐøáÕÖ8Nƒý¬åû®D™¢]4qtó¬k/@b­ù Ð>a,I>ð3Óg™ÖµŸž1MÍ(+5­ã“ `Á3ƒæehL†\- ÓŽ²Ûe€iZü…É 5J…ÓBŽE:AáT‰®ˆ-T»pã ´¬lu€0mcH6ðÇX©Ì°Ô„ˆ¹Õ%“¯0!-|¥­¡oŒM,§ÁÂaªŒAÖ†ÚlÇ Ì±!AâUw•¬¨¨ …¦Z°â¸Í¤ê´të_tËðW~WHAäâã/1J—KÙÆ)2µûé¢ãóR…—`æ6ÂÑž‡Î¬5a5™£üý&|v ‹XµVi±)˜9XáÊ÷WŸ%êüÃÝŶª™êkŒ.׋[ÅkNú/YËøÑ«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾Äêû«ìN¯±:¾ÄêûЧOà>ÎDsžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£xžâz7‰èÞ'£x… Qö?vÃÆE)àÒæ9ÛÄ…åÅÆ­±¶°¨mà¼|OQÏû׬åûµðƒØ#A¦¯P¢ î®k,[BV¥µ>½9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9Îsœç9ÎwR.=?MØ\‘6DÙdD Bð%¦uJyñf-w¢Íû{ÍO Ћ›Inƒ™åeõÏ(Ц¤@-x™žd¯’_y»Ô³*óÉFfEæÅ΃&ßd{×çÀä¸-F¸ÂÁxìS ý,¡ ã«§ÂRVô…p°.ªb'¥®B¿¹ŠË® W_xÞmMÎu(ªÝñŒD:¬™gÎ?Örþ¯ÓrýdÀÀ†‹¯ãô8qÞêhuän«üXLÀ 8}\84Öºt›Ž²ëš­Òã5wó7n8ÜqŽ¿.7œn8ÇX~q¾ãqÃߎ•®B <¸ãqÆóçŽ7n8Üq¸ãqÆãÇŽ7n8Üq¸ãqÆãÇŽ7n8Üq¸ãqÆãÇŽ7n8Üq¸ãqÆãÇŽ7n8Üq¸ãqÆãÇŽ7n8¤Ö¿üˆH‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"Dà媨µé™–¯&°ºë@±âµ>%«ô¼axèÀŒ‡gœ_ͤ¸RjzlùÌìC‚qqq ðyi¤uc"©G#€Ëa—Ó×}È 0æWõ¬Š…ð=+‡’3*˜¾ò¦¼´Ò G"Âr…`V²cLKÓkZÚýÖå05¬$ò)4·\A0D º˜f6k ¾ºb¦¬ª‡ú ¨Jª:åÏX“6fu^3÷‡Í9ÿÐ_†SVHk ”ß*EÇØ¤SeóÎŒã¼1êôä…k8™¿eô7GdøÊù¡ 1‹7slÌÚàc½Kɰ«‘ œþ|K¬«w$úd…k8™¿e.9]H„.†K‰°8ªË¿Èý z2¨Å€¹¶fmp1Þ¿N½2Bþ ÒxÒš,ý.JðçëÊÉŸ¢ÜVã³úJƈ<%ñ|¹ÇÀ^ižMã*SˆžøêÜjdÄÉ!‹CCîG—¯ìÖª;/˜&‡R»9äO´­"€Á½)n\eú³ŠhY`³‡—œÁ4Q°¨F‰yi£ÂÊjhn…á™T~áB ‘µcŽ“^ˆåvâá0¥uâuå뺕µ`Š1‹ ½¢~aò <á“Ê®´êu8Ë ñ\ýTHÚÓYbC09KJï1Ås(ÏÅÖjWƸ¯¤ }¦O( UXs LØkf±‹’X#€ü/µp– УÖȵ*pRŠÒÕ¥®£|ç+îh«å©ËŒÕcÌ~Å·C±2ýàHW^p¯ÏÕAä­5–$3Cô´NRáR`§]ñ<æÌ…G :U£™˜>Žl¡ÂxK΄ ¿Ÿä¸0p”'€·×ó£ßžèª+AXÒ9 Ö°4÷³â¥€Êö¸€ζA]—WXL4~ðT›]¬W+Mª &´¶?9^Té0AÕ>ÌkýÁÜqºR(ý¢RqîÙGåßô_Y†ÒÇâ“@8ùsÿÄ-!1ðAQqÁña‘¡ P0±@`p€ÑáÿÚ?O„G9öŠ<€œ5©²âÚ'Eh‘ƒy;~pÕ—°p=Ò*œ“0¾¼‡jÂå–§’-.^s´b´HÁOƒÀ笼î–ë;¢ç|îÊ[¬î–ë/>ž²ð§ J u%|$ͦJ¥[òNé‹M‚)£$Q±¼š²cgtHžpÉ…¦Q?„±äÒ(+„’|ŽGSê[¬Ep>@|Ð~ãè%U&¡›Åîú“àÂw•@]©,:Ä Ð.3¯Ã30ëW_‚WU§,ˆlÁ†wEÎùÝ”·YÝ-Ö^ |=eçt·YÝ;çt~RÝgt·Yx)ðxõ§ÈªðöýÂoU¡¾}(ÄÄôP,ä¹W̸æ[ŠÍh<ß À7uÉmU|²ð³-¢…þâ\Étrv.c‚,ä¹}ÎìÎém.[¬~SYÝ-”Üî8;§tîàîÌî–ÒåºÇå¹K]È£R†þ.]–¦rl-Ën‡"R*N½Š±¨ _éÎJgö¬)Ø&LÖ"“C%‰À%c@k‚[ fØs1ú—ªœ!#ÍX4»|.…ÅåQwë€ïȳ{.IL(A¯Ä…[“á•8mÈ¥µ]Þ1y/-‹Éh§ÛƒÄ­¹õTàò¨²ôtÒ]næc \”ÑZ—’£|¬ +p5cWÆApa"­ùtE´É çIhü¦çqÁÝ;§wvgt¶—-Ö?)¬î–ÊaÎwÓºwpwfwKirÝcÝ)ZÆ”&¥'ÒÇwÿ¹H'ãÿ¬ý¥õ‚Ü4Iø@.ÎS¬î€ëÁJÃ5k;¹Æ)ZÃå)”Ñ;£ò•ë)Öw@uà¥ašµÜáêùØÏ}JV°ùJGå4Cå;ç|§_¨¸£`ÑCÑAú€ëÁJÃ5ë;¹Æ)ZÃå)”è¿3vùŽåÿsfùƒWãÿ÷ƒÂú%ið&Èü³wù˜±½ù™ö¿™ù½ù„Ü´¤~È”ÇQí†åÿswùŽçÿs÷ó*Eâˆü‘èYjPGI79»|Í“æ7ý•­Oá9Ër°9"`@T‚ØÀ:«¤£>±_ê¨]ÌTƾXÑz3‘j] >D'ÅŸ¼síÁ÷€ÌïD©ÁßúàÑ(õû•gÅŸ¼síÁ÷€ÌïD©ÁßúàÑ(õû•gÅŸ¼síÁ÷€ÌïD©ÁßúàÑ(õûƒ¨ \„ô¶ûá.N$Sòj€Õ‡ÛÀ¹©z³t1/X”¦Ä¬­AgûrÊGÓ:;¥þ©ÜœãÆÔ÷~"ç›\¹¯6ê§r”±BÔ÷¯ÅGpº"î¯Í6\µÒ4°cÛQZÍ/ ç¢k5\á)†0’¡nnY@øg_u¯Ý3®,h¯²> ªd )¥R°ZÔN¹ÐªÜ-,µ1V]DŒƒ ¨U y¬y…ÊÐ_Ko©ÞÍy÷㓘2må9!h[U|Ô)°ÍV„Éu ÀÐe{»Ã´ÊPÊË…‹jë:³õ1ç5Ï·¢Ùñ˜j_s(O.-«¬êÏÔÇœ×>Ü‹gÆa©|@}Ì¡<¸X¶®³«?Ss\ûp-Ÿ†¥ðS/RʽsX“€š!Úe’(£jiPÔ¢¶ ´g|ª9Ìg<ç÷ËûMrKhÐ712¢7A•SQÈ+ÒwÎ̽žT{ã•5ô–š´µH¨ ‰i‹¾zÆnÈ¥•¤ü‰¤Çç À,`¤š¦—Ê2R­ øÎz8T¯DËãOv×ì%AI­*Qùc´@€u¢'&P¯ðQbc¸ (Ì@§b˸箓ïGHÓ7ùõy›õ™ÎY£¬s¸¢±-Y©§\ò–\ÎáùŽQÃâ9ë¤ûÑÒ4Íþg}^fĽfs–Aèëî(¬KVji×<¥—3¸~c”pøŽzé>ôt3™ßW™±/Yœåz:Ç;Š+ÕššuÏ)eÌî™OæUÄ !‚¹F½"b¯ÔÊUùàAÖü‘dÀÆ ç!rb8 PƒUÐu:Q[³/>ZŸI®˜Ò`2Îz`äm¶í¶õcuÈ2‚²Í‚‚å.aÄ–(,°S)tÎýÊN *c).'£AÞ¬‡¹€ì\0U‚ï i¶pºP×Qè bPÀ:Zµ—ø'F@ˆŽŽ¯ŠVVŒ,S¬WGzÊ B2œëqtÙØ7’òWO“ƒSÕá˜àA–ñz½e¡Nu¸ºlìƒÉy+ƒ§ÎÉÁ©êðˆ?Ìp Ëx½^²ƒPŒ§:Ü]6v Á伕ÁÓçdàÔõxDæ8e¼^¯YA¨FSn.›;àò^Jàéó²pjz¼"ó2Þ/W¬ Ô#)ηMƒpy/%ptùÙ85=_óƽvYW~À¥k£ýë‡8páÇ8páÇ8páÇ8páÇ8páÇ8páÇ8páÇ›“@?Ê¥/qæÝkÊà?…èÊ2³ ¨(·”-¾ÂÁM阜•dÕ¸Å5ÏnnUjï"¢ mj¬¼ÔÃÇxЩ°Ó«93•iŒ&j¦S¼›ï‚½-o(Ío¡uÌ kT¡ª‹kÙÉëØc8ÃöóŽê,5Œ³˜/‡F¨h¶Ô×!³J—I.Ϩµy+MŒ ¡I‚m©‡,P¨9±¶¥¦Ãã Xo;&…("V ã‡(*_3±r  £"¥8i×iÃÕõ°2k…(.ƒa§¨Cš…åèN…}–äó‹úõ‰ÒV¢€º¨& pZŠî†«2Z#XØ8‘v— B£u‚êh· @´£1æ.ÝÑoU@5T Qx0ÕÙË>£I¤D 娱…¡.Q¬¦êD\Vþ‹bêÿ)¤æTLÅdÑÍ€¬ÈªR÷váVˆM,°x°Œ[Ó()Q—ñ¯Ý*ÖPÀÐsŽ„µ <­3¨+…ՔƣBaðŠFÊÑ­™ÄÌÈn¡Ì¦+“AK"'9iK{ÌgÁ!Šv7k>ÎE€²tÊŠM‘Hk1¶ (GÔ¹V@›¦”µ/´°È )f7ú T zº˜{¿%ƒÎ@–PpÉW#Ø­¸´2]™ÑCk…©1ö[)=Óxj<€ˆ„X¶Ü¡Àã\ ΖoNm.4`…ݬÒÒS·4¡rTP^ Ïmž*â9¬ê¯)y\á()/(çП´ÖŒP.ºÜÂ4 §¹—».¥EøükÞ(%W’â/ªÃ ´…ÛQ‚sª<–/Ô+NW_Ñl]_ð(Ó6]ÙðM‰âlObx›ÄØž&Äñ6'‰±#žˆ€`ÓGüØ ¨‡¢&1Šª¶•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©éSÒ§¥OJž•=*zTô©G¹D•_ŠΠ§ÕÍïæo0VŸÌV±,Ÿ3µnu&Óó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm?3iù›OÌÚ~fÓó6Ÿ™´üͧæm??Áq+:#H'H\+A°‡ujhœ +-DdÍN–cµ¤FÆ ›!E•F„jUܘ° º.ŽqD¹¨“*Wâè+)ÖBé9<lîý/Èë„ÅUœdD¶Ã§=#ÛÂ)E†ˆ}BÔ¸`eXè "Ý5ÄnÀÅë=DΗ AkAoUa¬œ¥t[ðqi £U=DP>ˆ… sÆaëY-Žmh*gBz‰ê!—ªkäk©=Dõ±›ò3zfaCÊÍ0–OQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DõÔOQ=DZ/á½uËŸ—O¦ •‰Ñ"è,rÜý]íç9Ô„f€5SÎ[P¥ä¥C*–1ÈÂZf+ Au¥8¸¸Ën ,4 ZÈFb!“U:”,ªj|Ñê­WÈ+  ªÅDؤmÌxµ·j åè%þÌ%]ž¸ë^±µs ¨lÚhäQÊk" »‚ËEXΚÑE¥° ¨ÙÛbÛ6ˆÉcLÈÌÕܵlSe»»…‰ô}gR¹ó qèjžáTDƒ€öwšîÃIYÄ@æ Ú!­De1¶(‰ªZ˜Ag‚”¡@bÍ«@(¦8Ë_ÂSt©›I/h'«‹änæ)£:A £Ør›GõfËe¿€¯k>¢S±Rdù@V­øÒµá`r(®5£È¯#ösç@ äqÈO…¬ìEÀÁGT­”:‡ðH‘ 4WÒ°p @høØ!Ršúp|`Á@²Yf:ÃÀ²€ ä)]\™(0äX$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$H‘"D‰$IÌÕAVU×ýA @ @ @ @ @ @ @ @ @eœ¬+ZKSj[ŒÏ" 9ˆ‰É ˜“²[åÿJýôvm}kŽUè3W6_ì» -’Õ*å`Ûhcˆms)èyÁ‚„¥L)‹C”M8@™PÊ\ õô<°ì‹‰s––±\ rig€UàÒ0ôû‚ÅÉvUg"£ 6¥uZ\ p¸…ˆèý ÉL]le+Ø%i`La ‰’ êF- æªë€E¡°—›3pX3uÍ@±e–Ö±ð‹G ªÝÁ0Ð˵›£µËT¨ê‘J¶³‹‚®B °ÖFU7– QzC’âµpEÔfhº×Bƒðá®h.‹æÇ‰´ ¬§/C: É%Á¤y&Q93 7-ƒÔÕõ¿ãÍ[&\-ÈÕu® "Ûi]äUhÿ â®ÂI͈¢Ðõ*,CqEcJ.,5I¥’µ´+_ˆ«Ó…Ô~GGY¤E4Î´ðæ­“.äjºÔ8´J FU¬eŠŠ%—N³*üdi¯L/Ž .1uìç­Ž%ñWa$æ„DQhz• ¡¸¢±¥§ðPЊ¬Kå‹Ç$'L°@,94˜þ%s𬡡Ió{‡_äVNÿÒQ‘>Ýaµl3eœñ¤• C9QZ†>8ZU12ˆ£EÍ9‰ÃaHcغ}BÞ·zLQª âkñðèÈÑÉ‚ …R+4ÔÚQ+ürbàì¥R©Ð¬(䔫Ö&ã8¤fÎg`*Z4pn›Nª>²B·)¥5&Ö5\¬¥ƒ+2˜¡š¹8MXc^6;b‚Ÿe„Y¬{’µ©`‹,„”1ÂfµP9ª»€ ÎÕæ}#›&‡¶÷,ц Ä£¡"‰Æx…ð|…“ùýÁ9{÷ñ(:Z–ÌZñiy³E¦mIT<åЩbw UéÐ(viFÕ«8[4Öi­·[U×5ƒQ`—øæ¥!%(Õo-¨ü¡Ž5ªÍUÜnv¨'3éÙ_Þ×µ,ÊÛÞ(Èp•I¥ w‰áN’¨ÑË Ê„žÎP&Çhx,.E*»´²Ö-̪‘¥¨5³‚.¿s¬d°Ö F^¤ê P!,¶ŽŒL7º¹€– *l¢.s¥ÿ5ãmFA¨PÃ(˜ nóC2¡f¦£ýžb*Jäøˆ>í|åðJ´–„î#+ë1•@:þ®ÿÄ3!ð1Aa¡Qq‘±Ñ"Pá@Áñ 0B`pÿÚ?ÖtºH`-wXÓhµS¥‚ŠRê¿KÖ´Ú΄Ǥ…§,V§­i´ºC p°þ2÷ ÄÕŠçâšhUpM6ã’·öBd¡?øX¿Û¬òQ;JÔ‘[¾Ç˜8(fÏUð¡þ¯ï—ÏÚä,öÍDÁÚ¿6aj m5Zß9b‹ìÊÖ<ÚY¸ÍDÛE¬®àðöFÂF?ytR°cÖY\®åöùäür®i«—ÉÁI†ÿò=½~lZ¤‹]讈bÞ6ËÂßÛëoupFðs~ö`QŒHºUXÍCåªàŒÑ/XÐàžÌ1l¡(ZªÞe?˜ÝÝð¶su¤&37÷=ÓÍêº!w!*Àvžõx;»º„²„ìµ^ÿœ$ˆòlàÈÄI$ß]$¡ò†P–/WvÿCÿÄ1!ð1AaÑQq‘¡Áá"P B±0@`pÿÚ?ý#Áø_#6ñ± ÃòQ°°.+1À c·bñ–vvqfpVV–‘DÑÛ Š.O‚y:Å<¸##Y#‚»ü,áXj…óEÀ5·GÜB8²‹î­½ºâ‹óÉCƒÕs¹?¤œ{Pæ¥æÉúé5 Ó¾´?$f¶=]߆jlõv¸£½¸¡†îuÁWç¶÷Xµ^{Ä=ÝÐ|}•/ôÝì¡,Ùtm9”!h@Èr3.¢._oši¿˜D½dɤɺóL Wê¡$3Þî ô€ó¡ùnhlÐiïæa·ó ŒálÑʪtêº|ÙÖz í?kË \?ÖÈþ)˜dfIªèŒÔ2@UqÞšôau÷=VÀ©æùº€y@;h€“&‘ÍÖõtdC¨ƒ½`ÕœÓúŸ7^Vj©ÍD’¢±MýƒÿÙplugins/jetpack/images/screenshots/mobile-theme.jpg0000644000312500031250000005345112651056012023142 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚúÓ” ‡/0®ö½ð<¬À{Û爂{ ÌÆ¡íÀ<¼€ uðпX5î „cßO÷x¾E˜B^7ƒ‡9<—ÞO2DÀ+_$o]έÑGcns j½YåçÊI’b0Æ™˜I qâÎÉ"` s€¡N³wg)˜'´0ëÉL"yò@”ïîÉçä§ DNXÄÄÒ=ob$L<Ÿœ»^äî|,„eŒ€”ó¦Ä£YßùA‰¦œs-—耧 ‰I1±2Ba>MRï BA0ìf¦ÖüQ $ä¬[ö H˜¶»ÙY°ÄÏ–99@¥DÏ.·6`¯ÁÃßñû=¾Ð1˧ÏIÚ6"`&.|ïõ¾ôÇCPqF1múgtè¬úžG¡—olv?3zž-îKúe…r³µÍÖ¥¸¬ ^hÿ¢­1ZðĽ«Œ€•.992àå‡C“»' 8¹qÊ‘´¬DÀLH3櫯î^° Kr°€—<À&&Zs÷ÀiëmŠ$"@æÎ&10êÐn~¯Âûz‘½ú›?á͵\éýÚ½€jác ’Ï•$$"z´ Ÿãê—«ëáö¯É{cCòðÛ>©5E†Èeؘ D¢z´ Ÿ¿Döã¥rð;ý/Õæ÷ ŸNÍÓòf&Âa0LLrH&íÐ.žÍsÜæãèúyõù;.ÖXòy^¤s€ —NÏ®n\G‡yžv@U|Ž­¢™Ú¾zÓé{5?Z»kó®4 Ÿ¿Jè{^¡ÖïyUÛ‹hñ,õK W½Ã²@O¥gÕœZÞÁáùÑ<»“ tto?ÃÅ¥}ï_ʳø¾­rÑXßÔ Ÿ¾V{6}gdì;<£„œ¢L' ä÷µýÓß«}{N·¾û —A¹úu—`¢7e§[ß}Ým²t^Àº <>>…ÈÐÛ&à)· æP.}ê]dŒòjËÔí°Ì5…ÖÓ­ï¾oÂ?¢¿5y´lmeó:œ´¯¶~9ãÆùQÚZçgoË ];ºëIô;]‹}³³Ê;¶šßS±ÅîzµÚµk{íg³êj u>³ô-W§Ùïtó«ï_ž-]ÏÕ;ó(>Þ³…¼ZìÚõ½÷Ý<º ÏÔ©€ϰ«Í¯[ß}¼ÏßRèZµ½÷D|²™”¦I"ba†$1ˆý+ \ýð~ÇkÖ÷Ýòôå2”Ì€!ˆŒQ鿺{2mëoÎßCóõh×ÞçW‹“³ÒöÀiû ·[ßt—Ì“332” ‰ADDF1è½çéügêöµ~Äðûvªž6jϱ5/Ú7>mÚVío}Òÿ5LÌÌÈ‘€„CDGèMçîø}úÏ{ÇWÒé×:Vîÿ 5G­oÖ÷Ý9ó„Ìä™’bD ˆDDF(}û@¹ûà*>}³[ßuÎÓ–S9%"D&ÇÆ1}å@¹ú¿2vmÔÛ=OhõºM¿óFäö|;='Ùë[n —Bխﺣç천¦r˜™ˆ†1Ž8ÇÜ” Ÿ©ó%v›³é–þmm³{›wN{þ¶ºqQ¶—›xß §BѭﺿCNye9d™&ˆˆcŒc‹í:ÏßUèYõ½÷[hܧ<³œ¦fRB QŒcáö5çyömq}×zRy2Ï9ÊfRDc‹ÇpÃúþƒr÷ÀUºmo}׺g<¹'“9Hˆ†XãŽÇÿÄÿÚ(­ëZ³U9¸8À—9Q @  ôz5m&kEß›ïÀ€@ßÔ¥!"n€×´¶„H™Î€¶í#8ËóÀìû=&q<õ…X„ˆÎ1〠û"DÎqÿÄÿÚç;Œ—›µî w$€(£Éöd…Ê1K³_ª@€áÔ€G¤<I"m¬ŸL>ŽHÛkê€ÏqÈU¹>¤x\¸ÉBÛW,¾„yñ ªÊårÿÄ&0@P ÿÚ§å§å5¿^ÑQVï´¦îÿ ©iãÿ|½šŒÜ£HÙhÿ}ßwýÿßѨB«à3Q!/ßÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈ8zj´«v}ŸgÙÖ¥)ûTÊu( {'Ñt]EÐô Ó/d⣇"˜øö,X±fÍ›VlرbÅ‹,Y³bÍŒ|kù¥ïn4ÒÍø /Ä®ª"Š~)|RùåíP¨ ~ƒÕ©Ô÷~@ÏéüCVš§Mô2A,è›…,¾:—¼ƒÈ<ƒÈ<ƒÈ<ƒÈ<ƒÈ<ƒÈ<ƒÈ;ÿ ò ò ò j!ò!ò!ò!ò!òUÄjý‚WJõ3Ùù?)UÏœª÷jÉ;¯Ã™¿¯ëúþ¿¯ëúþ¿¯ëúü1ËÉES¯ëúþ¿¯ëð:ñJVHÀe}ºìziÑÂÄáuOµí»nÛ¶í’iöÊ5 0Š)âp:|C‡™Àª¹råË—.èÅÂ#RiøÒõ\¹råÅ T5eŠž¬äŠûWCL'±¢=?OÓôý7JQ;ݨãE+%Y)”Å –66666666,ÓfŸ2²+I*JccccccRSà%>y|:Ž(‹víÛ·nÝ»víÛ·nÝ»víÛ·nÝ»víÛ·nݵ˜)ù’ü¸+ôKàÔp Rd’ŠÉe¤íDd=BLdÅ………Ue”…or¢ŸD¾ GÁšÁ­.µÕ"Ÿ¢?ÐãXÂÌj!ÎÆžã[ §äjHcHôÂ4¸6HÀ3'JIâ$Ê|jðOaDÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÈÉÊÊÊÊÊÊÉÊÊÊÊÊÊGÅs íÙWHƒ¸ ·ï!•s®äêÉåM~Åx'²¤ùÖ0'¦µÏyóçÏŸ>|ù€¤ ´exéúu|\Ï>|ùóÀ9öFLÈÈ=’Úe«&X Jž,`¤‹^AÒSéy•2tÈeS½ªðOe¹›zP\CAžd°Då]Ë—.\¸bdÉ›¨P•@2›Rjtî\¹râ…%dd4à UE©P5ø+§ ì±M bâØ±"ó/‰‰‰‰‰‰‰‰‹‹‹‹‹‹‰‰‰‰‰‰‹‹‰‹"²'‰"Ѩà?Á[¨žÊ°[ñu$Nõëׯ^½zõëׯ^½zõëפ/©jD¶U‚ÛZƒ¡-Søªd=RŽõj¤µ/àš·R@pgj“?Ë“û‚ÚæÓŸò±A-•`´,›pëÒ’ G Èö–SŽ–.‚Zt±#Ô½7RiЪŒ]dºy"š4ß³R@pkcezêÉ&F‘é§ÚÒ‰H:x‡/áN l«¡u0òRYZôÚbê`’Šª¤'¢"#®¥‘B0z~RMÓà!Vˆ[N—AOLCLöjH |¥ýjpGeX-øº’¨ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ ¥»víÛ·nÝ»j”ÙV DçË—.\¹råË—.\¹råË—.\¹råË—.\¹råË”£QÀ‚¯¶U‚Ñ®¿QÀ‚º9•`´k™™¡š™™™™™¶fffoçQÀp$È,¡ª5^£ÎDŽ ¶`Õb—3QɽY¿xÁ •`´khffffffhfffffÙ™™™š5F–*ºžX°°£*‚X$t Æ "X¦`bEÑ~ F •`´kM™™¶fffhhhhfffff†hÔNDI˜ŠTÒ&Ò˜a<êiä‘K<†šŒY(dYKÞºU?eX-Ê™™™™™™™™™™™™™™™™£R@‚±vU‚Ѭ!™™™™™™™™™™™™™™™™š5F”YÓJ4jNÐÚº’Á¥º5:U•úÀ’ÚzÝZ’µi)ù*‚ð«ÉJ>¥x%²¬[ ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÑ© 84jj]*ɉ(F•z†ZOêr•Š<)T  2«€iP=JÐSeX-®™™™™™™™™™™™™™™™™£R@‚«6U‚Ѫ!™™™™™™™™™™™™™™™›}Gþ ¬ÙV F¦†ffffffffffff†ôj8ðU`¦Ê°Z5/Õ?OÿÄP !"1Q’ARSTq‘¡#%2Pabrs“ÑÒ$0@BU²³á 3‚¢ÁC±ð&c'4tÂñÿÚ?ÃÅXWR¢Æiÿaô²lžM馀µ)@˜¡! èTú× ®_ÔªèÂι4ŠÝË—wùýÞ Ã铲]u¥£‹@ÕXÂù–•‡[YE^æâ.—·¸%ÐѼ£†W@kHŸäRÛKüŽ_ib‘Kí,Oò)m¥‰þG-´±?Èå¶–&DÓ/&ÖO}@–©‡ê#uqO*˜`ïóÃs{PÇÞÔ1Ç7µ qÍíD¿ÞÔKñííD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÖÒD¿ÞÔ3.¸$.¤4Fr—ZæG Kì·ø» ÁgÛ~М=·ík>Ûö„àµí¡ÆFëdŽ*&kº!B§k¤é%‰i{BêXžaÌ™J‘SB ÞH)g7KétéA]¶¦Úɺ‹JÕ4¤Kq¯ô¤Kq¯ô¤Kq¯ô¤Kq¯ô¤Kq¯ô¤Kqô¤J!¡ºtÞUÂ(ŸKLV/íÛÊyË€ôÄÓ¾ʉ©´¤øu/LÕb]?Óge!ž [Ͻˆk‚ÞÄ3Áobà·± p[؆¸-ìC\ö!® {×½ˆk‚ÞÄ5Á ˆkPlCZƒfÔ;0Ö¡Ù†µÌ5¨va­C³ j˜oPìÃ~M˜oɳ ê˜oPìÃz‡fÔ;0Þ¡Ù†µÌ5Á ˆg€ÞÌ"x5ODÕÉ"ØãÙöIÎO„¼ÖMÁ:ÑDh©}7x§=T\hMÔU‡»urbl‘`¸§…¿øB”ûD¤Y%ųœÝÎZ‹ÝÑÅÆöpÙ»"²“FšÎm+ WüE£¹g&’a±FMD'§G¾&äç‰[}ü‚g RíOG4ZX3x÷@·|Å+EEÒˆ°`؉¹”$LJ”¯Ð>½0üË ó€uB7©äH”¹,S…¢ú¡ hT×ʱ*ÄË,κËì ™\%Z…k!ÏúFŽÖ»˜ôêÆûÒÒ/ä%eÛdoåÃsž 0³Â·mEàãþÑv–Dó¿2ÿîU¸»øó@ŒÃ;ŸOÚ¢R°ò…&ĵœÚjìËÙrgïWz*Ø^ðÑOš& c(M-̨çÝ]Œ ÓúQ´¥Å*‚èx þ"ÐB¸M5ßJ@HËd‡\Iu¯n^eQ^i SBèXâ?½bC‰þõ‰'ûÖ$8ïXâ?½bCˆþõ‰Yc¾Ó(%®µú~ðÎz¨qSKqÿŽ_WƒûB¦a9“ö€pÅÇeåœpt&?íáßv^UÃáWüEQS%/u|!¦ Õ µ¼ÛT¢Õ4¦­  ±,"‹TJh]z!Þtü é‡xAÓðƒ¦áL;˜w„0ï:`ï^\’’a]øiQe¤ÕE[L: µbQ@t ̪T¢äÕ5A¢]’¤ÑnÝ t¹àÑ<l €n†HGPàï:aÞtü é‡xAÓðƒ¦ÖCà£#Íðƒ¦JÑCªão«k€Þwûz£ásFéø£¼3žª4@ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÅ×®¢áÜ¿:Æéø£¼3žª1÷oeùÖ0/OÅâœõQˆÂƒFH7•¨šãå·v~ÛrYûÙÞ¢E©-bO7kXš{,ªšU)£Ëå‡lË:mù«jmÆÔ*ˆµäÅ1‚“°¤Û‘™˜WLP‘ã #ŽŸ,ÊY.Ë»0Ý]¸çÙ¼¹±%fƒêdéhm´©D¦²ÄWƒÂJ}Sç>«ó¬`^ŸŠ;Å9ꣃn]Ãl2†"ª#­uGc¶Ën=:gÌÞΡҾ]PâY¶Ô³OÒ@ÒÜ%×_téü—®ÿ%1!eL0ð”¸-Ó$ÎA*&˜ÝSrhý¾ÔË·ûŽF]S£µŸgzeÿÖ?í¹¾aüÉö‡¤?æ˜K Øt\D;ª¨»ù°û=™¾«<DaÜÝp’”L1€.ɘM&ݹÝn3tWñÑõC½}¨Õºtgþñš¾ŸŠ;Å9ê£íY“Ne’ht®ŠÄ J, K¶,.DÁbSqî=ÎÞçâé„I5*R­Ë6Œ–$ÁbΓs)-(ÓgÂDǵ)7st°Üðo&ˆja’eöÅÆËH¬J¬¦äVV)“¦fˆ€$“4¼8h_ø‘):3ràê&‹É¢%¤ÛÉʰ šŸTùŠúaù’3WÓí t®’Z &•XsÌô‡Åržø¡ÎC3Ò9ÈfzCâ‡9 ÏH|Pç!™éŠä3=!ñCœ†g¤>(sÌô‡Åržø¡ÎC3Ò9ÈfzCâ‡9 ÏH|Pç!™éŠä3=!ñCœ†g¤>(sÌô‡Åržø¡ÎC3Ò9ÈfzCâ‡9 ÏH|Pç!™éŠä3=!ñCœ†g¤>(sÌô‡År žø¡ÎC3Ò9ÈfzCâ‡9 ÏH|Pç!™éŠä3=!ñCœ‚g¤>(sLô‡År žø¡ÎA3Ò9ÈfzCâíw†sÕF#EVê—‘ iÐK×*Hš`0¢Õ+{zBðªy ‰T¼©[µÆiI±½O$7uJøÝM+XÚWH³+Xn¨—Æ«£0Û`d¤‹q*¨š`1¼·h´Å`Po%WB@ÀÒøG¢R¨b©ÏƒyI)®°ß za¾Hk!–BªQ‰¦õËÉ{U` h$‹Ì¿KóôÃó$f¯§Ú¥£fzÓý5í ã$Ö« »0l ê‚V»Ë£#—ÆõÚÝ[µÕ^Ø®6*·›¥ì5ý»Ó¯J6J¦Êg®ôKI»’ yÒ»|²C[ƒ­bQ“¥×K¨dm…PtV”’)³¼MŠ"æD¶~R^m•ÕÄG¥äòDŸÉ?)wL•ë´¦u`_—m𪠂„•òÿ4Ü*$2òÐ J”í2SC,ÏuqWºñŒ¥Ñ¾d´×wÕÉwI4¶‚©Ð°/4.…†šs&¨á+š ½®ðÎz¨Ä{F­\$ùÆSð­`Öö`¨Ôð½M4÷C£.èš"^U¦Šèߤ<6·)vòÖ©¢œõƒuÃP[Í(V \"lQð­Ô¢Vˆ°_&¸Å3‰ ˆ«¢°ù<‡‘¡`©½ åÖSq“Jóê…Y’3QÏ¥|´÷Cõã€cy3iñ¢¹˜ÞÕX7 ªÀ69ˆ ‹¦‹Üc4nUSðX@`2—Q³C-U\ ÖU\q(ë¹Ë+ mA»«EðôCª·nˆç‘å“N5„)¡QDnª‡?ÒüÅ}0üÉ«éö©;f¯þSü‹îcÈ^ÊoQ+n+ÊL¼Wš³¿›ŒÓ—€Á±D*y—‘/äÒyÄZPÛ«e…XyË@yÆ‹tÕn뮄H]Ã/PšË“é•Z•D//D>¼, ¡)”o„Y·|˜ªV Õ•Òrõv¾æáDÓZsʼn£øÌØp;Ž(ª jXš–š˜˜Ü×K$‹Ý9¼°îd³6tÛ2ÄÒ#¦Û7SX}”m‰‚ ÆDZ øR…ª^ÇJQ±WFÀh8Ö”‚Ü.ºoÌMLnuÄ“Áªj‰¬édd÷.K.‰Oõ.RïLv|³fŠ$,‚*.öÄnˆ¨¥ë»ÐáL£Ê )NªCsuÒrî¡*V—WL•%æE…Cmí(½Ì»ð˜¼SÁv¼bﲄŠêVº"`]«[È®ðÎz¨Ä|B!rS&jN(­íäÎŒÕôûHSöbU2§ùt\y½qæõÁ]¥œðT¥¦‚½0©¡¦tŠôÇ™×g\yqæuÇ™×g\yqæuÇ™×o\y½qæuÇ™×o\yqæuÇ™×g\yqæuÇ™×o\yqæuÅ4\á—m Z V<θ§Ùëíw†sÕF#â»w õkóÆjú}®øÙž´ÿMc9|KÞ)ÏUŒ*4Jç aÎÜ5‡8kpÖá¬9ÃXs†°ç aÎÜ5‡8kpÖá¬9ÃXs†°ç aÎÜ5‡8k®q1ÆõDÇÕoTLq½Q1ÆõDÇÕoTLq½Q1ÆõDÇÕü²Â’Þ v–3WÓíwÆÌõ§úkËÚ’˜´ÎÏmK*5Ƙ-;V{/¸É“d¢´“´JUʨøB¸* "*®„‰yæ2Ò®e·kMø–“&†aËŠé] 4¬06°Ùª‡– ¾˜aüzJen­¶“*ä±ÖêБRŠŸÂÄÔìÌ«hwåÖ‡TúnñNz¨Äc¸i’´ G;*)]CO:ÛWªÖ•]”­R4­ä§?Ô;¢v‚õÛØöÑ«‚Ù@1Vª–º3¿xÍ_Oµß3ÖŸé¬g,$˜üÎøŽo>ôJÊ3!8Ë×§Õ'ÇÉãbà­D’©¶íz§úŸå`%û8y%ndUO‚˜CÉ&ìÓV¤ôÄÀ—†Ðª014Å­gM<ùni¶hh«š…H™œrr}×MZ7.´ ¸"$(½.ÊÚ%,áBªéóDËó³örÍN‹9+À®ÿ0aw Ìeœ¢™N¹¼ð«="ywS(åÛµÀ|©å‡W²ÉiVæÜÜÔW´•1뉻5ëZYɃšIfï¶®bµÿ‹ŽA¹Æf-'f•o(+K’TŒ£âŠŠ¢Ñw¢ÕGgþNnX“+Ÿ•^x+2FÖÌ»h çpqZaìä&eÞ´æUL°8ÒÜTòFVÖq£´fè)›/&+y9â}¾Æs*¤öèÈ–”‹FNbYæíbtKùÀù`¾Œ=9oZíµ8ä²_Å[Ò±13g83+„ÓªK§é0ŽñNz¨Äc¸7jovLÍ˲jè¸ Ö]¢ÄÓ`ûL¶T¸Ö÷ó)áC¤Ñ\eû†ókqZ¹£JÝÞ‡‘g‰bÉå[6ÄS¦šC¿(Î>l:Ð8rúR°FÑ .4ÑM0¨˜•ïŸKÝ´H¨‚…áx*˜sÖDZß­3´Á©¢-ôËä‚V•.¹~™ÑtÍ1»½ü?4þ°üÉ«éö»ãfzÓý5Œå•m‚}Z;Ĉ5½“2'-’m»ÃD!ªBÉH5*¯+¹4¢¥!ÍÖüëìe‰IPŸæ%dšy/Î>*.8Ziî[UÝͤC&»‚ZÇfY÷ß ·@Í„’³Ù–O°8óÂÍγ:ÄÑKL4”B»z75¢ìéÎäè];Ãe¸åÉÇ`´4£¡uÀÚ´™bdÚ+ÂH•…Q‹AɲuƚɭGÂÓŒ5òŒìÓŽel.tÑ ·ÊÓ;ŒV¨Ò%š±D¢C̸áKÛ³”+Ê€?¼I³+0ˤãå1üÇ q‡ÑZíY‡e™Z‹T»Ò°èÚ/ÍÊZ.KnæŠ/BÄ»vcò¼Nƒ§}”QX=Òóփ³i/ü Q¥!%-ɼ²žéZݧƒ e²ëhò»”rþŠSé{Ã9꣛Ÿ7Õ{ª}ÍÓÌ‘™ý}®øÙžµÏÓXÎ_÷†sÕF#FÔ+JÂñP¼gT/Õ ÆuBñP¼gT/Õ ÆuBñP¼gT/Õ ÆuBñP¼gT/Õ ÆuBñP¼gT/Õ ÆuB^ÊuAp“¢ „\$è‚á'D : ¸IÑÂNˆ.tAp“¢ „©&«TðÃó$f_k¾6g­sôÖ3–4ÀëHi­ u¤´Ö:ÒZ@ëHi­ u¤´Ö:ÒZ@ëHi­ u¤´Ö:ÒZ@ëHi­ u¤´Ö:ÒZ@ëHiÚï 窌GÄ?0/L?2Foõö»ãfzÓý5ŒåŽå+éø…ñxg=Tb>!™G€lrÍL·ë{öŒÏëíwÆÌõ§úkËÊWÒ/ñâNñNz¨ÄbèjH·§¥ÊbZÏ•ph¹Øÿ¼7iH,ÊŽIAn¸Šº"Zb»ža§i¦áV&ÒÍ™™È3y©œ’&:!–Xfm¤]ò*C ¾Y¼—öoLJ+ÈÊL²®.¾•†¶ÆÎ\Õ«¹D ®¨–—TGæiWEóD†¬©¸ß W—™EYwÚvšnbP^VJe”q4ô¬K-ÊL4¹O=3¹¡¬¶G*JVåìbPÈË"êý…4¯Ô@Ks¯†Y5M¥Žçý}®øÙžµÏÓXÎXîR¾‘x“¼3žª1î'è¬ZÓk›†Ð f²ŠŠ—*µ¢c eXRò­ðrb¯šà‹ûC¬Û²NٲŢ乪å;Ã?ÿÏOó?Ù24MË8ƒ.9 ™Zÿ`Ù±m€ËKuɲJ¨Ù^‰i[Ìša´ÔTÓJÕ+iÙ³BóL£fÕ⼘)cŒ=5lZyfd]pNŸ:5K£ä„s±ùygm9|&W"¸¨›¢ ZÛ&\a™Ò`®±f.ãøE˜ïbóSJÚÍg*™.zô7Øë†¨"ŽU}8CìÒô± ˜Ê’%1΢ÁLØï8igâJ¦óÎ.TVù&[*â:W=>×Ô ­†Ÿû ¢í,w?ëíwÆÌõ®~šÆrÇr–ç/w†sÕF#J,KI4­J´­hÔÃDÓÍ‹€ZEbÏ‘q\••Íwô¬YªÉ³¹G&g|’«‰DŒèˆÍK‹—|i$²I,Ái q&ü³rï0„Ót¸:©3¦'5,.èX³§]ÊÌÊŸ DI¹&’‡,Ú°š˜$HH’œ¬°¶K¿¥bÏp_u©6·I]/:×ÈlHÚLƒªÝWNŒuÅŸ,ð:Ĩ6`7ESTYNÌn‡$›Wj¾_Â(”MP#»4QA)§;÷Žçý}®øÙžµÏÓXÎXîrÜåâNðÎz¨Ä|Cóôƒó$f_k¾6g­?ÓXÎXîrÜëâNðÎz¨Äb40ÝžihÏ÷\¦RUZQ#>Ö˜™š3—lê*ETDÇDKÕ¢vRm–ZÆ«JöS<º_ ˆ²Þv8oD¤í…0ø;5/“TG.`àcó6cré6­(ŠA_J&,2Ë­Ë„´ËÓy áO,I•œôæMäÈ ¨ç"Äš¾È+ ÛË@t‚‚±4“î|ŒÒ°ƒLŠ7Н š »lÛ%FÖŠ‹ŠDÑX)ü»2]R¸Na†ô}1?>«|óh)‰¯’š›ÜŽ0ü«ê•xiz%³Ü Y·eÛ+¤ø†jD²OJÊ",È_l‘0¤0¶«–u l/©/ƒH“½{!5¹¯]Ý<È’’šFG U»â¢•E†¶)-2ãï ä`C=Ëö‹DlÞº`iBú?˜—¤™#7úû]ñ³=iþšÆrÇs—ç_wŠsÕF#Äý‰g¬Ã)É #Ê­2ãJ$MÊËÛ‹).HâdÒæõWDÌ”±‰ZS.¡¦W(+p<ˆ²–OM9*ù² ‰|´ÑÙ¶Í¡¹Ü™1É‚Ž+¦e»o é¶Â ¹tj©àÃçk÷s–’6šÈ7œXo¬=ò-°ñUt.‰ŠÞð¡Å°¬¡‰TIº¢ŒØ)>Ìœq‡‰’få@kŒ)X“‚(ªªÒà‘gLYlLMKYky•7õC€–|Ì´½ö¤Ü©4 ½‡º Ú·ä_•—x•©Ž ßÂŒ²ÊµhÙó×ð`*@q7-?dZsŒ\n\ ÿ´{ žpXy‘~MEµpi¼‰2'̰S š²À´mq‚o²»§H}Nú!õ:Cêt‡Ôé©ÒPˆá Ò€&€÷Ð/Ci7‡OÐh ÚŠúн£câ®Í„¿ƒF{:Cêt‡Ôé©ÒS¤>§H}@FНÚ!õ+mÓª9 TÀ×vJ\! YJ– ÈvÆT Í‚"3øû‰s!“T0Xáár %µà2cÒ]u„è.ºÈÃÑuØÃáKÄêZÂâæØ'æ!A ¦ƒ‹#\=ˆAæ´É®8åö@Àåœ2 ð(’„ÁR0 x¾¨ÕqÒ ¦•CŠ¡©¼0B¨°´DDuƒ¯Ía7MÓtÝ7MÐUx*g(à.s=µtjúgf!|Ç̪LTr ÒF”c¬ô)Èc†e ÷MÓtÝ7Jà ˆ°‹ · á€Î {th34gL ®ŽËUŽ@ûUÉöUùœÍMI(¥nZEHëÀ‚½OÐ<.%/ʸšŽf§§^ÈMHéϤ2Yíúô†B3N½RtXZT È—¼ ÍsU¨$‘Ê5™¸ÑSó | HÇÅ42 ¬£0~åÌ‹$™·n7[&‘ÿí5Åù;ƒòwäîÉÜ“¸?'p~Nâü„Â!u“PñdÈ3‰>`YŽhD™d”Á% Š¡KUò  µ#Ø Ü“¸?'p~NàüÁù5=Éü Ãrß“¸? ` ¼*Pd'!I ðƒHè3l,çôç_@,'æ µ8Íɹ7&äÜ›“rnMɹ7&äÜ›“rnMɹ7&äÜ›“rnMɹ7&äÜ›“rnG`rd8qã‹ §æ')ü¿Y8ÿ¨³Ïs”†,\@Z‹A$4€°B´)±y„‹È‡œ2" Q]Xøá0Ah€Ñ‹˜oi=¥ËžZ#!&Óaƒ?qÅuSóÄ=¾ðW ƒ¥¨»… µ$jWAqX9ªé6{@)–H1‰$áÅ}EÞx°œ{˜œ¤©}U(SÝ“gŠÀ@°6¦ÈЬ~F±£¤§é¡‘rt°¿øhõøHxY‰`ëö‰Â¢X,CÓX4Á×H TÒ+e VðN7êüña8·19OÚÄmÊð2e  (Ö,÷máPù©˜æ=„;=RÁ±6ð2Oä×U—À–ð`ÕÀ$È'´ ¡ÃǦGÃâjdÁ°ÜCò9d!sô¥ø¿€Jç H”=øôüùòçÏ—.|¹rçËŸ.\¹råËó½³f­Û7|Ù«V­[±oiƹ‰ÊC…(n™££@d¯U,EYARÙ·*¨¥þÖ7€AMA ¯š ëX£ # @hÑ`Â6}8NÆ*cF/@¨& $à3  B$&6€ ÚȽڀìį¡ñ ÅÜ߈ø9¿— î *TU‹ÖÞË?‘‚`b¶>ÞWüzœp:<â–¯q €ÚÇFÇ„·{$‚@ æ$“V1ÞúÂ0WØ®$šÖðN»€úùð#‡G(oξp …ɲ®Å6ø `L–Yjà¥\¡#+ÆãHB §½„œK˜œ§‚Q4/ƒB aÂÊèp¡ƒ™°nN¡@IQ0R’´G\I¢Ë@ ÂÄ|Gh„€A1 â €€ Œ2o¤n1uB¢ãœ$¬JæO4—0‡ƒÁÓ8ÔjÕÉÜÇà¤ÓJLQ€(SÜD` /e §* >ðjúPšÂUÁ˜°®ê½¥dö ”¾V45ó‹ñ˜R0¾\a º$o¡þ >è•©ïÛN ¶±}Âh$„ŠÚÊØ¡U놰!®ìÁO€0$j f™¨P ÍÓtÝ7MÓt eŽ(~bdýg} 7ÞeÏMFYX˜ ¤˜/lkSèÄL¾"ÀaV`ÇÊûÞ^  È Ý7MÓtÝ yìŽ".Ú¼(Vñ*ñ¬Ýœ¿VKþÅÂ-¤º á Ö©¡…—Äk´gœ&6±í„ã\Äå?‚EäáeSÝÆ|ДLÖ&7dëõÞpQ (D×&¡”I+Kfçrw'rw'rw'rR{ÒÙçw®ózw§~w'rw'rw'rw¤½ÌÎä—‹”c::iùD™l!"Âq®brŸÁtW!šoÉÆ|rpÄ‹s”†A=,DDDDDDDDDAA:M¸Û¸Û¸Û¸Û¸Û‚Í@þsŠøôà<ö‹U\ð/P Îa9ƒÝòF…Ê'P(½à¡ ü¼Â0k·øwÌÐÁYÃN „:ò<ÇåtøóE„âÜÄå'–áR€ÐûÊ‹Ô"*‘JéÀ V Ò ¬‘Y 1qqÇqÇqÇpüuikâftcþ›¼ á cŠxÔà#ʽðéÄ`ó¦‚É›;YüÁ2Aˆ0@€Œò¡B)gÞ2lÑGb‰Uy‘ˆg ÏuF`#qöa A¬ï)K<àŽøF¥fqg†µx‹tò8Û äøŠ]…'ª1¡mæ Læ”Ú%äÀ›Hš€xCçn×Ó‰|u(WP÷D†Îfzy ºw¼ÙUÀKÊô0×ÌN-ÌNSÁ cÎãâs053/x¢Óf¦fjÆ»‡Œ&÷QeH¢ çNg'qÇqÇqÂð€Þ^ÙÅB ,U½í& ^Î’ë–‰cªCƒ¸ —…ÍÈ\SÇ' - Ó ûX„ËÐ’‚0¤ …Å Zb¨KY\  ½‚$^&äi§Î,áý«‹à‚la wP '-´äL/ E`î×Ä%xI‰<5ƒ$X(ë ð‚“\wÎâ!€TXÕ]L1Ÿ®”:  +5HŒÈýkDC×Ç3p©n\M 1ãšH‘ìWPr H£U,%ÛH(VE“|ê"98–‰®8CZ”ð  Þ°&¬ÆóPK$, °¹—j'š¸ah6›1X"Ýã“€‚úz=| H¦'„XN-ÌNRTÐ eÌ^7°)lEP‡Ri5* ¿àëÉvkÚŠl,9N±…0L„’ΆƒÇ(ä %Þ˜(0Å9¾g8Ö?DÎõ˜ƒ¢È&P%bÈ„3au†Óš2ǵ{™îé\iŽêþÇèaE» À''‹,Â@Š;ÊmQTTJ& Ï™= b%Tð„qó)ñÏœÑÐx›`”ƒÑ½¿Ôòe6Áa8—19Oásã>98/¯ ñOÉøgøÀB(,'æ')ü*|oÇ':N“g©^‘E¤ x(,'æ')ü voøäà'YÒfpzS0Gà|WÿÄ*!1AQaqðÑñ ‘¡Á0±áP@ÿÚ?Ís é7úé:Ë_Uþ~•­ºñ~ÿ—™Æ}óû•íýŸ·þ¡è޳ՇI¯ áƒIXãS76†vŸµA ´S󢆨NïRtЪŸ¼ùÈÿ§¤zÿâêøeœS±fB¿àt½óômÁ—Ž=`°HjÊOPS­0ìè/Vr«¿8éú­öR°Gž9på‰o·FÊ,‰m–öÖOƒ×Ïëô¯w©øç‚Ê-tËûê}Îx¿OAoóÔïgwÚ.R—ÏØŽÇ˜ØŒ‹CK¢“ð‰Ûn;͸fœàõxíÿ*]9Ë—.\¹råË–Ë—.\6ʮǣe6 ueB娦>Ù°Ô8!‰§Ð Kð‚ ÚW!ý9—™êñ¸(Ùpl¹o9ë.gœ·œ¹žsÖ[/¬¹žB úMqúOÀ&ß^²¦ón_ÐÓèÞ\vå^F€Z®ÀD³Fùá.Vz¨!mW/3Ší<Ó‡oàÛ~:53ÁÝOü_„qôã| sÒo=¦ü}&fñyLC‚ÃÀÿ݉ÙGíÚn 嬿#Ù˜©ëÀÒ{𿦧¿ÐÆ =iÀV¡{E†.Q/í-–¸ùéU;ð}m—Š.õ%în?ÎþÑ=&œsYá´8úKâ͸ïô:/§Õ¿ÖÇ´cÔ£²¯VÞ®ý6áÎWÓkú qÞ<6á¥êMs·x¸›Œ_Kr”º¡ùÃÚ.ò0¿X³8l-©Ý_à~¿Ä8oôr¾Úor½8\ïÀxÔß¼©é‡øÆÄôTüÌ]¥w w`rõ˜å;ͦñ›ÜíÃy߇¯uåü?ª»ØX–ƒ’G¸ý+ƒ.ìÿ—>¹rçØƒÛ¿6<»ræ.Ž·ñê(P!BBÛÖÐ „õ!Ä()Ù0Y¿ÑËõÆãy‰^x®’ÐÖ óуªT` ‘b&ç ŒÍ<¹FÙÒΆ ئtRÍŸiRKËù;BføaM('¨§¬¨ÌµÖÏw„Ш».ójVË¥E¦´kþY±fÍ‹6lÙ³fÍd÷@Q‘rÔ ¥ä.U<2dYP0åßÂZ•³zẼ'­ Þiwªè˜ ¶â[¿±j£HDÆãõÍ›6lЯ‡•Q©äðÅmXVh¦ÁkóI€j³V„š3¾FÌj¹Uøþ›á¿2 2‚¤óÔÁm%csM.+»š»€ô»WW‚D%ú¤ÛNhË–ÚÆâ«ò|øj½nƵûhýžk@q…ÝköÑíL4ûkÏMÔÀŸ£ÏÙû<˜ƒYü|ÿf6dû¶¤ ÒÅ;GyU?—ðŽB´Ñb—Mi­B(­4Àum#©Y]RÊËU/Fzãã•ß¶·º }È æ¯h‚§A¤UtQm¶à€öØîX»M‹K|{Haò)…†™€MÁå*[ýuTˆ70žJä–™RÔÐöä&-ÔÍ`²ážá° ˜AAØb± ÙZ3_¥Ò£TV¤;¬ïÚ*Z §ðé®LN4¦vúj«ÅT4 &ìœÚ‹ð¨ênê ÔÔ³$Ò‘'™¨÷C¼E§´ H-  âc¡šƒö´®|4 ÈÙÅ4gšåÁÒêc”ۆܦY· pÛYoW<è`æÔdÑ s µd©½Ž•6ê™XV €÷›Dta`d,«¯g›ÍŠlùxèr)³ÊŠ»lÚ¹vWhÚ°¬Ui‡aä•¥*íXV+– ƒ0ôŠ»}ŸnB·/%c'Z‚š¾y°4?‡×èüc…M 9h&Dj,ô“*‹ a·6/÷_©U \Ø ¼+á¦\«kÓh•ÈrFÍ«2ýá§nêz¯ ¸<ŽQ}£NSfêì¼ËR–UEaÝ_Ãß¿~ýûFû*:–¡\Íâ4Ð[@â*¸Ý¸ˆˆê®«¨F¡»²¥T¬T§Â¿’¡Òh)QhЦz«Þ[j6h!j½×ê÷ïß¿zâdDXœ‘ÌŠà”!z^Þ†8khŒ)„+é‘*Pt8Ds$Kt‚éRÚgiâ9pÛ¯¸ôÓ…\rNð!ôzÃ&xo(D¹råË—.\¹råË—.~7 €ôÔág…žxYág…žxYág…žxYág…žxYág…žxYág…žxYág…žxYág…žxYlnŠKþd^ÜÖm¯Ñ¿œ=xiÃ3Óè߆ÌG¯ñ¿¬›ÿÅÂÓÇÉrá¤/ét¨KÌþ¸<§i·„ÍΑŸÜV/o¤ú6ú¹íŽ=^2à‚éR°·ñbÀ±¸¹Ž?WQdª¬"ñ†;!– HH ´7íç6+“ 1Ñ@H¶°5zâ\1½Š)³&šÃ]›]*¾s³Hôà­{-júaf>ž$Ë !æeþ])KztË3LË–„Ëšjé™F]-‘r/_ü‰}ËéçÁ›ý9®ý?ÜÚæ&×G3ùÿãÐ8Sc ”Õ€ÓxB5¦… (Cvj ëw˜ò¨ÖID¢){ÇF ©l›hù&ó9ux¯[L±KZðð¼ø-³X¡gÛ†!…Ú…–9 e±ìÊ:ƒî¦rɃ*^ÿ"Åë°qÕ°oÒ5¿è›q¨’¾ŸÄIÖuâú+‚ ÿ?ãC@K•ew4Ëun*‘'Z­s‰l @Qk£e¾r—Ý@T» †œˆ:–ô® ŽD7ÒÞKü6ÆÌΈ>®àX €´§$ÏÌï5¢þD¿y‰½Êc©ýRÕuWÿ+§âmÁÌ®ÑAmeJœwnÏù»6ýû³ïÏ»~ìû÷ïÏ¿:ñ…³üØñàży2dÁ‹iöq¨Ýl!閇݀™7HôFÝ1 \Æ‹»uÛ“^@NMÔš /!þ±,ŒÁn¦¬9ôˆPÝš‹tFãR¶4¼V·µkµëy:’‹Ä8kD=ØšVLé„1b¨A5£V/ÖÕà3bc!‹^Xe¥c0r(ëÒV߀Wc¥Va6  G;Ù\ãP­‰hUé/ºqÖ€áɬpN{ª:›@5Ò¬þ\ã^7”£”{Àg/¹^rªwIy¢×± %ÀÚ[æ¯z·öUÖWœ¯8Ñ@i0ó5£L¯9^r¼åyÊó•ç+ÎWœ¯8=H‘ª[!Ô¬L}ˆŠºÌÂØ¸¤ì ”GGþXèC®’¬hlûYGYԌǠüø/Á˜P/*@Pi,Wœ¯9^r¼åyÆä•hªòÕè 3¹ïB@dÉzÊó‹}CÌ+åBð[t5pn Ú´]õ'Ø,ÀRÄjis)"H4£˜ˆö† DÑjµiÄÓì}*A1I/›IˆsyG6µÒ®®ÅŒç„l‡!¥]·øÍÁÀt*ZÆ]R ™ÑäÅâÑ,é6I˜B—–SM0‹QRèÀRš(t€/Yu¢RV·»gMÚ«Š–™­Õ™Ò™Ö©7-ÿee 0µ¼¡rÕu•ÅCY½cF—Ö ÂÖ‰¶EƒT[­#î R°ö ƒûk"³ktB)U“•î%Ø· ½§8·±vú*h]V;&þ³ÂÚ‹d03aüί—_ÓÃ$UI?艻šŽ/i”’ˆThèFMÉÆPÚ2Qdßv懠¦Li º«MîË= ˜‹c¦ué/Üâè ‹}uz$uËÂÜÚ€aÌ j 2Ï ž<.x\ð¹ásGÊèˆý>‘â@×Ò¢µ½›Kr”gëL¡S%Dv²ÒÊuÎ÷ÍL*¾#@Êdö&¬“Q -«ÕÞZŠìr«)Ü•p0 À舉-<.x\ð¸¤å]¶ •œUbÐVa ‡ UeÇêÛÍûmŽ‹XÒ iéwÔ>×xo*’ä‚ú,¼;år]-¶¦ìê˜bÌÙEhËnhÐÒÔ'!ÒDë‹å?ÿ‡P(ɱeT@rž”ûFŠ‚±Ç¸‚u"°ne~eüÿ¹f¯.“«Å‡Ë:8³h)u§-g/"š3 -/æSÉû”ò~å<Ÿ¹O'îSÉû”ò~å<Ÿ¹Öxï4òöŸ{O„=§ÂÓáið‡´øCÚ|!í>öŸ{O„=§ÂÓáið‡´øCÚ|!í>öŸ{O„=§ÂÐþ5 (üKÿ*_ùRÿÊ—þT¿ò¥ÿ•/ü©åKÿ*_ùP³Ž% ë+‹ÄãÇëÃK‡ PºË®Û<Ð˱$vY.¨{Y³Ì³éµ°7 -…XÑ¢”rYUÛ °k]å¯x:QSmsÛèS•ˆY4a„Û ”,™¢aúM-,(¦w’×òþ1Å :98C;q#LYkVÐÑ–ì¢@b²ÖPÄlqB©ä7K6Ð6åw¯H)[Hrw6ÿÍÿû‡¯ ,Ør¤j—Ó^éPÐê†Ñ§éS ¨/TG rg›åÇ/Ö"Š!kfVøÃ¢q+ UM.eÅ-ÖÇìÍ‹.7²+Ë0&ªéVÍ¡ÈÌ1kc’âb2:@Ãd¶=LIEõInÖÅ÷ˆ‚i}hSkk<âA㥔X)2: «À¨XiwÑoI]óâÓf°¯Vô˜ýCÈ+’¬lc]¥²­k ­jZжÉ"¦b«píZîR‚}K¯HJÍáMÎ1WwëtF§ ì˜u·RSA9Ž4‰Ôúî;Ùw¬T)øsÛ d·žõBÇF—Jk&Œhg5ûÎ ¼2¡–â"`,`–Ý9¹þOÄ8´Mã'TÉÞF‹Ò1ÙP¸­‹ªÞTgCFDµ%²7~n¦C¨K²¨cÒbÍK.:À¥˜è-÷‡“ Ò­ûÿ(YëÿPÖ?KCÓ:µQVi át[1Œ@L#œ«©…öŒ'¤ŽK^TØCðç΂õüýO|Ÿ.5|~²ž\ª‹#CÍ©ÊÈD(!‹,²hæpŠÑ³¡F»MÌG( -ÌÆ®Îªu [m]V&èܪ±ž“z‚óXÑÀ.¡mZšnVbneõÉŒÝH^­,—˜ò€«†½,¥ sˆ¥ 8]aqEW}UYIÑ*¥fO8ÀI“”5•%‹Ñ FÏ Ö 1S„߃Ѓe0]Ð@ðzJPºÊ¬\ÆNj¦Æ«í¨.ô†Ã6Q·EA\´¨bœwQžhÒ—.×ÖH6ˆ­h»J„iT#U‘VQ®pZé 9Bš%~Á,Ùî¾ÿÉøÇ€é|düN¾;=ó¾wÎùß;ç|ïó¾wÎùß.õ?¯ä­üêmÂ×þ'ãJ ,ÁužSæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞóæÞó ¢çî|ãÞ|ãÞ|ãÞ|ãÞ|ãÞ|ãÞ|ãÞ|ãÞ|ãÞ|ãÞSbú³Éò›p£ãõ” ®–©ðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyðyøGü>€é]£+:ãWÇë-ŽïfOÞ¦œÏ½>BëL´ýé£ý“ì‡5÷‡3îŸ(ΩêËýÉVÿtÙ¿ºéOPë0Õ^³~þéaû&ÿä…²^á~óüŸ1ö&Ù>zè3sòÇýIGÞ™\£ÍM>Çü:€ïެÊHE»¾JŠÛƸÅñúð_m89Ê.‘èŽ:C-!Ï;a…UK&’µŸÄê‘ÃIÙ‰Õ-zpe´ÇS.¥NDÌEqôþ¥«´Væ{FÓ¨"küc@hè ²úÒ&"°­ ‚ºÒˆ*ÌFÚ¬Ž— :+wÙ¨¿¨‚¼÷!Ò(y­5j(·¤ÁÊЮ¯-Ø×XÓÀ`Å¢ÖØÙZ™”$¬\†Æ&µeƒ´Eb"ÂÖÚ¦õ¸ÐŽ—JÝšõˆAŒ-WbŒöÌÖ5lVL³j̲‡F¯†ÖÑÔP6BíÛ±YÿÂ(¡õåxÛøâjðÃãõ•‚O4ѤÙÄtBÛBÕS²¦h•ÚašÌ턺*vEk‚Z´”¼G#ƒf&s^œ¾’±®…Ç¥Žwô¹d?`ãP<‡4P¾»XAI¦Ñ»Á {©îX=h#]–D—WnˆÕ‚p¨)p½ƒz<”g¢Ö4‘ŠÃ¡zE.A"„³8•b^ãûDØ,r¡ ÒkÐO4ÈKË‚-"X«aFŠitË’XtáB°pÙ†nR1º¤X³°ÓP7µê*Õp3ZÈи–-àëilE´ tV‹4Z€˜Ð+²Ð¿ü î½Æs_ǧ>?YÚ2vÃd¹me9BLæIÍIo ID‰œškR¼¦%yG¢S”טsFv’ƒId®èƒ<ãÑ÷ˆÚf;q(q`wH¥pXEÐ}¥5Œ1vw5G$fÄdE¨•ªá;ž8PåÁŒÀ#ý„Céuû©AËÈ·‚&]CÓˆáVXY$¨FÂÐ¥æ›2ó‡­XÐLíÃÁN…ÓJr87—9fJaéÈU 0r%)4L«­tµçXŠeÇÍCÔeæP°£œ›eoY…Þ"„g{3½Âî @6?ð1.ÉbðÞ4n™ýÙÛÃöÏOÛ‚»LMbo0­hzM$A±0t1+y öéá<ºs‰äˆm.âíücþ%@=€xÔvï¯Öx.R1p@£ „W¸@ÔépÉ¡(+ v†Ý¥¾·y½B“HéqÓŽ±!MË–»ÇÚ;D—–:±€VüÏÿÄ5¡á!c 1@±$0S`aPq4Q‘ÁÑÿÚ?ûžŸll[²~ÛW-r]ï?CzlÁ2mÕµ\ÚÿEQrìÜ&]øb\¨bN()þGá¡2PÄ×›ÿ¤s#œN¿ÉR¬¹—2æ\Ë™s.e̹—2æ\Çý™þЪQ”eFQ”eFQ”Ø£(Ê2Œ£(Ê2ÂlòÜØá:UÓŸw2fç“#fŽdsQ%É&»ù~jûÙqp{ й±6ûѾdå1R~öÞ6ˆ¥ÉÙî…w>|ù~„©VU•eYVU•eYVU•eYVU•eYVUýñîi’¦ßJþ58{©–§u2ÔáÞ¦Zœ;ÔËS‡z™jpïS-Nêe©Ã½Lµ8u}Lµ8w©–§õ2Ôáî¦Zœ?ÔËS‡ú™j{}Lµ=À¾¦Zžà_S-|.ç_ Ÿ¯Ì¡OÒ§/ ¹¿£‡Ï×çT~t?„‡ÏÔQ———48˼.ë‰-š?Rô^^b†!ˆb†!ˆbˆÄÁÌ1_…Ø&[!/äSªb³¦+1YŠÌFb3˜ŒÅf+1Xæ±Íc˜Ç?ÿÄ/b¡!@13A`±#0apqÑáÿÚ?ý¿Ìç0òý+}Y‘ÌûU¸ˆqÂþËYk:N§RÖ4[úŽN§RL<5Rm¿AzöÏ ‡êŠpé§ÑA¨µ¢ÔZ‹Qj-E¨µ¢ÄZ…Jù:ID¢Q(”J%‰D¢Q(”J%‰D®Ó«©üNš)¡ª[êÚþÂÂÁÓ@”–¡%ñKЂ<)I¾¦54STSá™Ä¢·M4JúöB!ˆD"„B!ˆD"„B!|Üò«tÁ¨í5¼š–ÞMKo&¥·“RÛÉ©mäÔ¶òj[y5-¼š–ÞMGo&£´Ô6š†ÞMCiíû{\ëŒfI%ÅÅÅÅÅÄ—Iqqqqwkž÷ïéö$’&Ið’Iísþýý>ÄAAA ‚ Ž×:¿A¥¥¥¥¥¥¥¤–– ’Î×5Lâ±ÐXyg–yg–‹b,,Eˆ± Z,E§ÿÙplugins/jetpack/images/screenshots/vaultpress.jpg0000644000312500031250000005127512651056012023005 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚöX4ªK¢©µƒÎÞˆÅXaÛ´có÷¡@W66 à)~-é¼dô½u——±>‚B%ܼ“Úq Í©¹ùƒ~wç¹´ú×ÔÔãa²!ó=?Ž_×c‚5¿ºá|-…AtC,UK4…õ¼ãên.­È*ˆù ¨{×… ™÷¡ée+uQ–TW´ì/(YúR;*wP|ßDu¼ïfÖ¶l½ïXÒ š5‚܆Cl©6·=I‚ò½9çK~Ü4mé穆8òÊîÍf>z¿<çhs1ümZ^~ÜšÖ¶ý1hUóÞ—?¿7óí÷FögÔ®NüþU[Ç4­:nYÉ·ø5¦¿3“ŸÐ¾h·«ÿM€yÃÐ{„j3e€ù¡Xræs߯ÐÍzLJû©û±÷ù`Ëþ€Ä©~ðÖÕF´æÁæÙÚ¹:6ïØóDö¼›Î¾^ü{·Ì³íîâ³¥»‡ê\ŠºâØÝàÇVǼ©è«‚¡l™ ÷'ó'Äöâêúç;óàc¬açó¾w{€ª÷_í*±öψõ]æiw·ãžÝ×¼oβL·§D‰Òÿ?º_ÜÛ"áàp8v7PçÈÿ"2i\¸ …½`Ö{öŒÌüäÒ1:?Ð> ñv×¢g^RѳzÖ–Ñ£±üHbûZóû° ^,{§›³ÓSœž¼9¶€Qz—Fôª¾»ãJ§ÔòoOú VR^Æ­j~ “l÷²úrG\ô:¿\¹…æsÝÑ›pû  :6k箕Õ¾RG¨»þrz·hbàÔ”ÄÖ—E7tùÒdèÞ?ÒGò¬ªÏ½½™ß`T¼+?S¶üóͽZLgô S”̺!+Ž{?9´®×”,q#^{ÚÖ$«dB©]|ºŸyû‚™\À$–œ„¡ä¹ü÷>§öLo•a;~—´¯©êŠÛݳZz”·¸÷w[èE|û¤ ýôf5Ü–ýQcFeU­¥q‰FD/‰æè>yµG×”$öŸ3<–×’ìƒFÃó|ãô,Ÿ8")Ÿoï­”8tKË–ÇÍÁµgt¾‡[WîÎÖÇÐq:_îž ÚY°ö¶ŽžÖÞn>ÿ+³“d~iFiüG£xWk0ÖÇÌÜØÏ¯¡óÑæ}ôöŽSKçO§ñ¡õÕÛÅØ‘G~úx°î΄cÑËÈíqy’Þ ‹˜>9Ñ ÆS¸û»_¢'ÁÉÐâN9Ÿ˜`–-¹;íÃ¥ÑΦ>,¶`&ç/©ñÌìýò»£KC_>Þ¾þžãl |ÈÜ^uÛÝý zY0èt?>sþêìï>8{ÝLvw€Ç©‹kcè?ÿÄÿÚ ltä·]p^ÀÇͺžùÒ.ò¡eñ…*9=~O[»@Û**-”,Î*Zmźà“Œ`Ow¸é2ò»¸¼è "•b<ì÷ï´VZ@dÿÄÿÚ´ðBî²é§¬«­«kΛ¾«³æ4Û…À zpfI–ßJùŸÒ>mÓ×ò¨9+ºç‹OLäZI¡7Ñ!£­ëy¤TX–øCûÈiàǶc ú7Çºí¸¼#¥Ì— £pÓ û‹ª~B´ïì9Ú 4 ÿÄ:!" #012345A$6BST%P€@CQRD`ÿÚ ÿ˜Ïåâ. œ˜,­›×_ZÊ–²Òîd'7ØÊëñû¶JÒ¼SR±ÜsU>^s !1‚‚õÛ¸õw 汚:‹²´Sda³ È –H±ò ¬ŒÄOI vcÅmªëMpÔfn]ªHŠ”ûˆÐu‚‘✩Ð@)N¹„»Æ·TÈ?¸¯ ,\[Ùóréž(EØòQLÉôŒËÙU¬‹#!ØU­-ul£ã-ìÛ¨fw(ÜjàûN@“>ßx¯yárg}$pë%üçG^'²úøÆñ"Hp¶2ªWŒ¿E-b?I§ªƒËãGº¼uYç 2}£©’cµjãì{+‡~ëbqéj†W–ñcí'‚Óoµ—™J’AŒ¡vÛ/²ªÀ²ö-9ËÇ¥D8«²vb´$õWùâÖ­d¬†O±¯J,L³Ž¼¶ÆÕènä,#¹§I|X|’rH“>ýÖÄãÒ Õ ¯-âÇÚO«9¦§$ºeEƒ«™lH汊Û]w«ž?¾ƒø#w$ú½ÝzIâÆÙ›”UfWǬµ¦Ò©6_ž0÷}¡F,ññê/Ùö¼P*Qc%=ïcM<ïµ”· œ…@á»rSKºJ{€Ã\+ôFɽªïm+U8õ›É³®H¦LælìT×Ç6ÇÙ‘½Ú±(ZùlÜ{hUЉÍeß@„b”Ìe¬>­#jË>± PBqðà¿qtëÃ[ºæC!M=ÕŠ*à¨õÚ¬=BÛ×V³,7îUÉe.Ö;u*Wᣛí+d/-~ÕFÛ§EpŸeý¦,T-ž-k›“ŽdJuµ{¤mcûpŒ£­Úe|ZVÍb³SbñP¶Ž 3ÅU;¬IÌG¬n•üZÀ_b Åêê¹À¥KíÙ'‹èËÓ /þ’­'ðƒ^ýC-¬—óx¯ô :ÁþS^2ýµN·sˆ§÷,iT¯M\U•,þx^²K¡a÷¼,‹LÅD¦÷«˜º7Zç¹ù:9™Ébç~°yuä –jáµb®Om¶qñÏ[ “FIDk6jçyÿÊoö;y¼-j³©ìXì ƒ Ð~•*Û*ÊÿS(XãÓ‹§qõ¥„ß "Ó1Q)½Ä*Ä&.Ö¹î~KùÎŽ®€¶£–w‰î°k2fv2¸…XWqNƒÓj¢Ý_ðÌDÂ@£¨øh¦ŽJÞ)³åˆøäìkÁeÉß8ÿÄ '…µ¬dœø0÷ë¡+V¿ž*ëÆ_¢–±¾XêÝ>Ïc_nUf›6YÇf›Ý…­n'x×ð©ë/úMÍxCô%k?,?cÒ,…é¸çXY.ÖEÆ**•h®Ž»2µ{Ü{jîÛ¤XÊ`]ÆA02T߇›…¤¦ý‹t›Ú+U_~nμsú²µš2^&ÑÞð’íµ·F¼WÁ(/EçYsŸó&:ÇIú`1'K!eŒF«#%ŽÌÚhRî‚õlœeêdf¼X,ý;9<‹éXÌ9`’¤5µƒ¯z–BäöfI³_"ïªÿa0¬µv^Ä5;ˆnau—L±¢:ñ:o[­*ÔÞ8žp¨ªî¯+û82EâiN>`#Ö¿XtÒ©åp¶Yت-U¢Ü¥†‰Ø@TJÛ§nÄ6«l¢•F·4Ì›QÛäi„¢Ý7XÖ“WrÕç*Så1uY!Ï»$t&3Œ²7W’ÅKCrx¶"å~Øéw¸¨T¢ÒèÅÖ•øXéTò¸[,ìUªÑnRÃDì *'6d¿Ò0Q6n6ýäjÕ^#T¨–Ö»Œ¨Hn%Òì)¡]s˜“׈蓲”±‹ZÄ: R¹‹Ê6Õ5w²w(žÕu™U%P=šT—é 7¶(#±ölŸS$ ¯z6uâ5_»D+"”Ìãyâ°)Õå_fC¿NEVkª^‹ÈvZÍ_àÙ]^%­~óR¤T™Y‹-Ðrš©Iag1E³wë=ŒmúéjÈBÝ{¹þ–c™V(ŽàÄÛšCìãZšÅµ·Ù½šmÄŸ;0n Í%”ð¨Í…I¡)ZáÚy\}ÖGe ÆäòY`©°,°£ Ux¢qY|MÂn;â¯í»^㬫t³â8pIñ´Þ–³Å ´š¶¤œ±pD£Tý¹+SN¤¾nÖ,lÙ|ä.+†ボ¤Žæ°@_Ÿ­¿ŽªÙi‘–ɧ×sPªyŠ|…Ð%×ÿˆâ(µ¤©Ø¹'Ÿ.r÷á$)/Øõñò— ÒÌæ6˜ñÑFýTÌä®âqðÔr`r“Ñ*w²¯TõcoÎßkܩ咠còT­~ Ægýþå•UA9ÅÐbö^ÿäªBìX/•¾mÔå0ØèÛMPesÄ7䨱=í22Õ¨+7Z¨â‹n_V&®]Už¥Ú™  r—nÑåW)æ¹·°ËÒü•ÈxTËŸr5rг?ß'^+ü*Ä^jñ-Û4«(ªÈŒX{ìç´Ù>æ(¬öÛ+Û¬ZpÖ[:Ú§gßâÜ¿IUˤ&ª›ð_oç‹Ì7Ü ‹ëýª¤èd]¯ù⑾#=vï¯ûÌDu™é~&~ XÈMÐ3€`Šù0¬©ÉPÐ#êÕ9!—ÃvÔ¬Û ¼=z9F¯”d 2DP0ìƒÔ(†«6êzÌX‹ƒVÚl}ɘ?t¾šÏ«›áýíÿá1gÔõátQ¹XÖúË6û#þµâ¬rk¬VT,5Q}hA;6Tÿ£”Ò±T¶‰²¢a­¬†«ª ÞÁ7ÌW6±‡ûy*uÞêÖc5=Ær•_Ù~冊RM/¡Ø¸sט®[ŸæF¹n™å¹þdk–çù‘®[ŸæF¹n™¥eÜЗ”Ëäq™qBäÞ¸„¬¾VTºš‘ý2ðPu™%[D9­­›|ZÇk%˜v‚qAVä2˜U å­Ì ÚG~ƒWÈ·3C.{¦X{®Ÿ)±’Cêò¬Ç¯‘ ôæûɺäÇøéKˆ( ƒíŸ¦bbuá¯Gyf­¦kÚj'^µÚåS=Y:ÑnƒkþóÒc¤ãʸOyb›ñ‰}‹`v• ÖJÀU¤Æžþ•ÍÆ)dSt<.˜;ömöâˆÅÏw•¹{úWîeÿ z»2VÒ;Š"B">ó5+ý™ óÐy&W´§¦æj@|½LÕ¸Ù\ˆ ‘5gøÚß)¬&O5nªZ0;|«s¬û[-Mb’_Cûß'$†°ÔÄŽéÈTLT•?⺕$ÕT~ÚôþÊë¯Oõ+¦²ôÚTôúת¶V‰©ðO–, š;Oß±èÉ_ˆòÔF<öfÃáƒõ¾?óªÅÑÛ¢u„¸šñî²5b{,ý{?@ñ…n;¡f>šð}ɇ3/N¼OW·ÊDz1]ÙTãC*X`E^H©Ú°§hÉt™ÑZÛ7+#fŒ„"Y{–hÒ¼/Ö|›ƒ¯ÛÐP~áîf?O=ZüÒtÞŸXÓ ›~±¬NÚõ¦Ûç¤\QÖ¾b?u!bÃ6®"u|¥’Û&—çëü†0V=Jt{Ìw¸¸U åOðôª‘Xø‚g²Á}s‚Ìw ˜~Hܹ–íváÖJdñ¢È9¶é™5Ÿ Ų>ïÈÉúr­Õ 5†xí¡3 EpêJ†LDÆDÆoN> z«$ŒYÖHæu¸úñîž³Õ¹èœGÞú¿† ãÍÚªâ¯eoªŒZ¡`OQñ]^|g,G¯Tm-Jv8Ì F>ž!²”Õ…5®N£»jý'W.ª•Sg*šÉ¯b¸ç ¼ËV¡qQ¨÷3?§3RËÉž‚Э}r5¦ e¨« By¦Ä°j®>Ïwˆ†ÝÁºA6È謕¸·æ04??[ä:È!î{£¬X„’wÏfodÂ&7½ŒŸ–ù蓘ú¯Ê F³ ª"qå2ú.éåE,¶ùs ™ §`þ±«^•²:õù9¿,˜NˆüµL¢Š•?Xž¿Mf‚U’)Ÿ —ÁdéQµ@>ì鱬)v9wP/%çªvy&G£^µËD«úŒ`ÆD£¬xwÚ:Äîo]]¸V/3²É¨udÖþ5µ áÁAÙ;FDX7¯·ï®=Üßé¬Ó¼ìFzJ¢ÚC}‚±01b¿˜õ)óŶ~FgÑ— T*Š|„†!¬çªüŒ²þ €‘Õ¾¥˜X¬ÞŠ©ÞÈÖ"ÌÚ¤-)õUúº>`ŒŠ¥3õT…Ú] ën‹¶ÊØ©`â•a^›S2Sô–Ê—ûü ‹ÿÚ¼®-<ô]ìÃìuüղ꧹ Û¬õÞ¬CÆúÃ-žúûÌgÐ|cm>MÌ,rØ@¸ˆõëÃö»L¢Êg }™;Z™™º¦–/uš•òjB†Õ…Ѥëb¯žþß_ËUV+X€ÇHw9úc4_›ÓWMpþºZ‡oœjSçËF½îä?2pÄ&uüõO‘jDP[ÇtR­+’c‹©Û˜ºÞS/áñòåùT®R…±ÊNùV´$šÒÚ-ÊK2fÙ^Ô¡Æ’æAy/,¾ŸGܰôøJ.³qÐ '7М£U“SUë²r‹pûöRJdu•'TgÄóºë¥‰@ŒLÎÛÇ3¿Þ-8zÇMaÙìì™ãÙ?Ä4;+Ó¶>°–»Ìj›3ëÖe®câ½R¦í;¶II{xË`ìè7+x¦]…[Öd_ø‹G»–Y;Ð2vÙdÏ ¶÷“­£ýåkhÿy:Ú?ÝN¶÷“­£ýåk²;i!é#ïþ9rÿÚtÍ–öŠû¡D;’zÏÍñ(É­_Yuë9¿¤õÐúÕ±Ã$]?¥lЗ_ÙJÕpÇǪùŠízÉoÀ)4øddßX~f#ë§>´Œ‹f$oÓÆOYE©LÖ¦‰?tqþÌ­|Å«/¡|ƒf©Í„u&ªC;†•3Óa«54”ÁÚxü•º"C\†"®fÃÕÒrCî ÄÉc!šÄÖ,…­ÃÝË6rYǪ~"":@Ç¿"Þ¬²7X"-„¸Myþ°×k_ÿ+ÔׯÖ½ EðüÊ„Vt¤Ø0÷b=ü›$WR@ËäéªgR²¶‹:Ïy_ûš‹uçèz‚ú³Î˜:¹ Æ^ŒŠªóôC!Tr4½G¬hÙ:]­k©Jù­Eld[ªÌ‹ƒExú1üF&”U¯õ0‘"3õÔ¥3õRõ5*ÏÖ²uÙSÿìêŠEzñôBµ \}:éôÍ·YG±Ž%°ÖPB–­Ã¹G ·Yg°Ü12À‚Ýeê‚!“޲À…rÉFÇZ®™ˆcDt·¤×,ŒŠmWqm[`§Üa‚ÂM…*²†AH2'Cz¡ <:ºÕt–Ö6"y•´ |t#!ž’wjÈÆ&^˜žAéßÓÿ 4¶­¼&`ÀÞ¸}Ò=pC"QÖ*¸ð–øÙÔ¨ø‡Ö&ý(ÜÄl"½sï?‡ÀÐ’)峋ªÒi^¹ê°±Ô{¤À"é&Õm"ˆ’»T~óÆ4» bɀȑ¬•Ê%PC3ÖÕ¤w0àc»­ÅËÌ;Wr³$PÕËePq¼îÕ‘'ŒLÜ­Ì;TÀhoYAÚ»uœ`á’ë¶z謠UË,ˆÙ®âÚ¦‰O}S¯Nà4×)A¹‡ °–˜2$FõB-±`:Ú r$ñ‰S¡½e>ðóûJ×¹e4¬¯§Ç¢P›,BÀÀq°¿f^,yö=—–«íöm¥íèû3ÃÓ%£’5Á“Q2É u¹¡eik)÷2 $´Ï{‚C»íÑøxΛ3øàÙ_·û—?9OUJÌ®,¢ŸN´4«3Wqn£Ú"1Ò=ÙÑŽ­ ¹[¨Ô´ì3x,ne#¿ˆ  uN3m*¯±g¿¿æÕ††=ì¨ÏmÊ?xf,ËQæ/ýËŸÂt)ÕfD*å}¤1Gò(ÕÐßa­›È%ßħòN»,!ÃV¸ìÚ¾š5,ØCê:UŒ¤¤'R¥É,¶ù𫟛o®(Ö‚‰Ù=8Û—§­€, !UD(àÄfKÜr–àØÁÝ ¨€ÝÐfd(Ö ‰(Ój!§¼†wJ(àãŽ4ÕJxÄÉ-`½Û#¦‚²BFD<áaË-éë%01ê÷çF:rDÆDÆ ª–oZbCùDÈÏÑhRÑÂÑr…JE2>‰PK¡Ó³Bœ„>¥Ò®²‰(ÓЧÄr]! O^8óíÓÂJÛèj–ÄñõPÍÑ×O¬§LÄîJ–Ú±édÄLt˜ëJ¸éµÓ‘˜™B¤6zt•‚— \t¡Nˆä.²V":”®QÁ#ðÉK-cý¢cR:Ù¨ùÏÿÄE!1Q"Aaq 02R‘±Br¡²ÁÑ#3SbsðP¢@CD`€ÒáTc‚ÂÿÚ ?ÿXÞ­¼!ƒq™ä ¶^'«õç8[²nráÈp!Hé´žÀûëÓ1aèsTéȵÀlïþÒ÷C÷raqèjíì…öêÐh´ìÏMé?ÈüŠ•éO´70uTZqq²Ö„á,s ¢`>Ü Q6ATjLßôZ/÷'6RÐÕ›•€-éÆÄ+mZy*sj=˜óA¶&Ó×D&¶Cœ©}JކÎ[ÓvL‡pT„Ô}GC[¹1–íµò ¢ë.©Uð Ý ƒƒL:g“D<š B¬YãuÉ¢_|€±n’¤9ã‚eÏaØ©}JކÎ[ÓvL‡pN¿DÀ,ÅY!Yµ(‰k]S]ÃÁCw¹<Ãj9â=È4“¬êÑ×5ÃfôëšÆâçd½`ʲæû“Ä„Á%a¯y´åd¸µ·Ü& WÞèÈ*yPd4L‰7«3jÜÞ©uªÔt5EÆAŽ––¸ù¯I:î¬|<ÓDˆ½´Åào;û]¥§NP´£ÍËEþå«ñ¢ ÛWðì‘MÑ7/5¢ÿä¦Òq Ù–¶&x”Üâ>IÿyI0k5Tu§SÆ~ñ¼š§ÙnÓ~ø³i>¨áz°#EI¢îùN¤âKŽ&³-m Lñ)¸9Ä|–‹ýÉÌ §¼´à†?{Ó…×`ˆ‚6Ù?¼¡WtSý1‡Õ> .÷ ÉZ ±Âõ.óZ#äåm«Dß.J]êu_V•hä¥Þh kˆ'gpNÅ­c[òC2ž.;Ñ=Wu]Án[“EªŽæ´ÍËFPpµöVŠfà:f˜¡Àíòäôƒ!Áñµ”Ìãw¿×[°îžô:³Ý> Uª\óPLIúª-²>Ѳì~©í¸·LYÒ¾¤Hq}°;•*mlÚ`rÙ Ò¶p∽¥<Í™¼!êͧ;èªTµMÔÈ%»¡X°Ö¬w˜AÆÅZD*¹º˜8 ë$öÙ Ò¶voܧ]³½Ì~w&õp¤Ûã‰O3foz³iÎú!KªÜOY>çÕ¬@¸ªé‰)ͲD¶Áï•‹£>J³IÑÙÚ|%4@ ·^˜0æ§´©V&2-¦ß½1¶Ôߊ" ¼:Qá†D&ßa‚÷«`‡ÚÕ ËùUØqk6ߟ}WDû¹ƒÕj³f.Ëv÷ÿ§ÜVL 6be÷‘s+*avŸŠü(²ÿru›Ü¿6£—áÕÁ~%;Âì›ù¨áR¢&ËBÿ¶>kuåfã<“uf^Ò»LûÁó_ƒé"X¿ÑÍ ¿.£¼áÕNê‡ù𫮌 ólßèµ¶ð•ø”ooï‚ ÕÍv_{Wãú1Ö÷&ÿ†ô†ÉF£b6ª/þFkް)À›Cja¹Ë1‚ÌáÑ I_Šû›ÝšõšádŽbÇ\G< ^ Œïn<”Î$b ຯÝÉ'íip¿éý,{²Q¬Z"õ“¯M0×µºŽÞ‹­éi‹Èªhïßw4,€\ÑpEÀ}ô\ÑpDþ«‡FÓÛJ8d{ú7K¾G ïrºÃ¬Ä_½kZ1™;Bq†ºpEStd`8•²ˆê0nJÈpC £¬Êëw„ìç1ò8ÇŸ¨îþG ¸ìCÛXSu›éñžL5ëð=(_ïLû0ÆàÕjÃ8se¿FÔÁ…ú…~¡_¨Wêú…{eK¾ÑzÏìÿÊmÀ‚Õ~ИlžˆKHœÕQeë5¼­Åc!0Yu2nýïOvtÑùrÃäÚ¬Ï:·Ù¿÷ઈ6ø'U³«™É=’ÀöưDkϽkXµ²äÖ»K8“­_Ãà]Uk Eð¦Q‡îm¹d‹‰F‹¬½‡¬79„jºÚþ+ßz¶|–™ÝgBµRw¢kÒºýØ¡pè qÕwaU¾Í=¿Dz¬ØÎ‚‹ƒÂôlð½E?’ªëÃD›;PìqZ6ù&Ihp¸¨ŦçÚ%=çHK.‡oZ_’k ±ãb×Èž[&NI®m—¶â2+ø‡¯â®ß¬U9ÁÒJ6…§?yةПÍÒpج6\ ˜à´¿.€âCˆL28¦uNHâˆSêîQÛF<›3¹BZq1Îp²Iq&ÃíŽ6\D¬–nt§:ÑâšIçŠ"%3«Ñ…xô%d›'$¬Ù™Ø›†¹CâI’SÌ‘+$Ã-½  )M¼ãaÄJa£.@†úěʋ1¹0ËoÿЗÿÄ,!1AQaq‘ ¡±Áð0ÑáñP€@`ÿÚ?!ÿØÜê_Æ)èbd±/‚G!lÍù’ 8R€ZºR#WýFÀ½a(Þpƒ…í5)°Ÿ3aá·á( q«ŽT •p¶­?ú[Ô‘ ¢ÖÄÞí­àÈ9“5öü(‰)#0kÏûH#õDÇ*6 ˆ‚ ¿˜úCH}#¡MÈŒ¹°¯Ö M™*j°¯j#%6³Nj ˜,#:PM¥„%æÐ­©Ið‚`à+FVúT?B+ê·¯°ÛV¬«}ºm?« èd¬sW¥ãïrÍ¢TƒÜ•=¨Sd°¸›¹^‚PÌÅ‚­õI`9ö©ø’ÈÞ¬â`m&ÖÚ;ø›A.Ø ý—Ú‘Y¸ÍàžÕ: VÝ€AÕ¥‹ýgµ ÷%OjTÙ,.&îW¥~ë‹´\—Mèuã9¸ÇÛÖ¦Û…ÀÉÏJ:ä‹ñ@žu1&Ð_zwwÌ3Víf,ü$1²¯‹5M¢¦aÙ ýNÅd%D_ 3p4˜¶r¨Ú¨™Æh¼x`¬%ƒåI$âIEð²ö†Óàr YVÊhQŽò øÎÉzUäaÒò“Þ)μ ™Ny)¼Í¦ÉJÈ…ù("'êàô«²pø¥,ì¼(@D²- ŠsDÜNæ;Pb4†êæ¬Ð HSµ/Çã8+‰ø¨ pC9Žý¨t¹t»w^Ô .¬ËuîÞ~“ÚÅí­„ @ÅF¾á6X_WZÃSqÖ øô_o"³ï÷{WÕoCCD¹bjçXº·]h €Ä¨“g¸’ˆ+ŠNV®c€QŒŽá+ÓRÜé'Ü# èæË‡z‰8—FzjC—3£:–ôðA-E‰bïÁIæ{¹Ô¥»>˜£“Xnî£Pð«CDƒhª 0h‚¼!x¤á¥`úæ1Æ‘‘9Ty2N.´Ûw=9tVÌSfÈŽ"šF£W¾¥ÔdèÐeÚŽ–{¯ÕSufò÷Z.HS;—*á±K£_M¿ÀßÕoDO“ÂA¡dÀ?~•t,¢¬[Žå«îð¯°ß_M¾Ž©wqÔP: Ó¹õ«ÚU/7¬üšOR—ÎRsÆ_®´ÀŒòG†ÌçÖŠ½8È‹ø¡MX#M-šl™Xy-žT\ 4§~P@B4ê&ÌÎç4¿‚htDnI\f Û¡IêâœZ†À·ÓSBñFã—|·9Ú—QP Reµ P€ñÆmHV%‚KiJ°°b°—£M…ƒ1H†u_R°÷U¾öƒ-jbôLŽ3¤Þ¯f—¤ø=i¸;ÉlzÖ*å ô…­S„‡3yš%[ŒxÈ´¹¦¨0°Ö£c¢ÑM¸'޲éc–à–'Jµ…#àÚvæTA~uÜ^ÔÅè™gI½^Í/IðzÐä=ã$âh±½äY«OžàÉ$¬é7¥à[¢HäQaRØIÓÁûK¹XúEB  b³—'"fÓ˜f9ÇCM3 ÷¬Ò8ܤÛÌŽûûÓ¢c˜`¤ØΙ.'uÞ8¦¦‚E‰>ŠÑ`fb9qëREk6“š”›H±0,ÔAØ™9ÔŠK 3ÑŸz»Pt¹j£‹§jΠw®@)=*#*¥š±†Œ+¹z•h¡%üâ¡”¡»' ¨@û"u[5woÈdµh—¹Ü=Êr§X9MØ*ÅrZ\Â}5ÿ•Œ®‹áÕ¨ Üž¾F• ×¾¼©’,¦Zéâ·oüá4„›`P6h˜ûÒ®2h/2ïÅ@¯q?ªÿ°W)[u¹“×õZ¨ñ{…(”À—²ù<ä:Lª¬Ÿ€@øoÙ¼Âù<ª#iÊ÷;xbˆ‘.Þcæ–5ÖÄyŸdUŠiƒo¨1)ü¨IVBaz„†fÖ‡ñQ%Íø¾·­>BetM\A`Ú1Ü|ëׯ^½~Ftd¼=?¯0$ܹÛׄ¿#ö‡ñ¬ÿ`!wÒžš.´¬«ÉáïÊ’s¼À{±5 V&##°Ñ(â*VÜzVÁé—ªu™!Òçàª=’Š/ôZ‚­Š™›ÚiX^äЄ8g¹Ò†êNåŒD‰ 1^ ¶Ÿ¼k"|ô1é^ÍGÁï"IzuF_auÞN6jYzĦ/Xz½[ˆù<-‡š£6“–h§ç)«£Pé±ö;ÔÉ{—øw¡+ tò· ž}t~¯:Ñ<°hõ¤¼®hÉõÍGíˆxç˜vüP•¯>]ý•/JD¯ò@KÇ=ijîšõ!ëø¯”á Bý#Ö”|bÃ…Ë}hè°Õuk‰Š]aÝ›&–C‹A,4‰!¯ÔÕçÑ|À ùzþ ©ÈõÍXÄïD"$ü«µo}Ö;×QV^ªû•,ùUªÓ×?Ö•~öé¼k \ —éácàêhï~´î„IoÁ¥€EÎBÆ{ÇÆ0%j~Jšåàs(<ÎØà}*z¢ñþGµN„u›CÊÁ\Ûá[4DèÓ…“ËœýÚ¢hÌléÒŽ ¹À @HÃr”þ-m,U°kI9´Zr;ÕîÑ~˰õ«œ?£j‰B«ÊíS˜·˜°#°~1¸“éëVÁw,¾´¢ "å¢Õ9âð¡v1C°ÔêþÞïá¿™ —f˜úÖ¤a†9•—¤ m‰Ki­é0ú à¿°ò‹S÷ãù4vÙõÓu¿z+XñÜíQÌ7àÔ„¨_GíÒ’Ax°ì·` *Úê%¶ÓŒ|ÄÖ­H…Bâ5á}ë2ÿ‚v¥º6òàºÖK/Š·ýlˆ~¸Ó§&½©wèÿº†E´uÄ=)Òœ—”hw¤ìz9·)~.€ (’lÑ­îŰ}Ì×÷VI½“öýóŸoÆ¡µD; U´¤“68«˜^$µB„8J[r«‘|rö*ß’Ã)û„r;·ì ÔŠÞËEºzÐdÅ©ÆP£¦‰éëPì«ÃÄôò›U¶¥gEN§j[˼4èχõÃÖJ ‹¨Ñ,3CH{<&ç3BÙšÛß_µ6h{þ¨¿x6ýÚ¬Qå`cýZ¦]VJ fó· {*®´#¬©ÄéúëAXøG±óÚ¢>ôçðX³kz5y¬ó¦ÚÜ\ý)-°µòÚ…ì4»â+§zÀüþ45‘ÝèkÚõ>.,duù¤i g¬d¨·³ØðùšÂ-hrð‘ŽÑÜXOfžtF™‹Ç\Uà=¬÷:w©fN[óJZ8|«0öo@ÂDwó5bµÿ ~ó©æÄ¿odãà÷ƒ™\0W#]6ïJJw±Œ¼ÿÊ•© zOJ„2 6ó4¸ïµ`©§$*.¤Á†)µ[ÔFmïOð±fƒwC½J8 ÊšÀFTq*;v¿½A!íCyøÀ˜R­XðÖØ\h Óæ£oJ1ôO¿Ò¡<îH à?W]a#§Ÿ0ã$9ÓMÐ_>(IiwÜ|N´b]éj^WegÞ(~D"l·‡~ôqÆä¸±R±+„]žÑJ¡æ‡Ò“bø(=él:1¡µº nk•”$26cM;~eED„ô¥V?áòU¹'ö…” Îò÷Z+]º>v§*ãW 3µ>…ŒÌ8ätÊ’VÓu”]¥­ºÔ™ ²Þ,Hõ¢0D66ßZt_e {ò¡,B¢<äg® Rò(Æ8¸Ö„ð*›÷•—¥ X@TU¿ ¥5ˆ¼žpûæü~·¨ˆÙG= j]\ï6¯«õS+öÒŠ—'üs>–l-ý×CÕ¡ôÃùà\.]5¿Z^exÅß½/ÆÉÂr¸ýÓÂÁ$tyòÇ™YEÌV@sýUôOŠôÚ°‹•XCÈÐÿ™™UNÂIW q;©i.-©!x‡6«_|õ'!Š@HƒQXpyg5Z:Ά<¹ÐP÷ŒéG*Hd€œµho:¬ƒ & `îÒBø †*Î/¥¹L”Ȧ‰B‡€5òµ9C¤PJB–Ž_oí0rßM{Ó…¹¦.ÈÒ7¥’~Tÿ‘öí9wÑ· ŠŒyId°»*éç ´Ø$;$•‚x*à%"‹àÄ5*íÊ Õ«Ë »«xÓ>”Ïp¤ðkÜ^ÌÚ‚%a<‚°oËz·ùñh2W@8çj×Á½oìÅÚ5›EÏ-ë7ìü¨²©é#|F°`yýQ-ÑZ´¸[JQci óRY½Nê’”o@Õ{â¢b$Èe¨ÔÃ$>ÙJöѰ‘áVZum §{ԃĨ”kå[½ïÑ MêH ÖoØÒh¨8 Ó69EbLæ5"tšÄÖXë  ŽU0i‹™²ˆ°É_oº¯áÚŽe¨ÅCÌ*j7¹EÛåþxvÚ·î%|vTéé#K}ïáAæ€9é}&”Idáw«À«)!ð #¯ÊÂmϽ}¶ÊDÏ_"Ù¦o÷Ÿ@Óá ¯ nBÕöx«:[ˆ[#%oÙÐ#'©Bf¡†¼ú¬N¿% 3è‘“jÒ#©?›Í¥€õ#n9Á—Zyþ8¶ÞÂýj™!ß‚Ãÿq£“VÓ&û–®ï:s¬‰vhɧ,b”¦å¶¸j¼ÏžMÎ&$^ Õë8Ý1EXa5«@!ô¶òÆT³ÉÜ n¡²Z°&èëNp>0Þ§ (ÛV•°1†ÄÖ¹UÜ­j —}fÒå¡S£–S‰!ü¥¬É$kkX«S :< „&å>™É×7ÍL‡0[GµIî69Sù-¹ zRM70é4A!É/ ”Ó,s KeÄ­Õ–—@ÓŠçõ 1 ´•|i•å]×_f#­5¤¥à,WËÊñ†õ€ÒÒ1áu ‚g,Ñ$‹’^A)äÙ <×5rˆn¾ªÊ}af#þD•.”pÔTû›ÿÄ,!1AQaq‘¡ 0±ðÁñPÑ@€á`ÿÚ?ÿÜoçÄ;9'¬p»q M?ÉôÞ¬`N¦Î]„ýF(@¨ŒÅ. T@®E‡?q4ãÁ‚#½l M<ã–ø¤zguõpÄŠÑ €¹@—®çì+å„+MNvLy93Þˆ–Oü’š& w5ÊÑKÄ!G“öK= 4ÂGJXZit3T¡^HÃÔ$õ¸Õ³F:V½9éûÓa´pGÕò7BRÐ_F#N(?âà#W ºra\J³ƒ˜LMºÜMÜ{N=^—@×8ãTÕ°PP òô25ñ ¾/<ç㿜Ÿ%ŠUr¶HD-ºÃD”®'\šÞצuÝô^ŽÏx“…R‰vG»RË‘9â¥Ì‚ºYGœï9]<: v™/UŠÍp;¢ J±¡z;Ny„¬¦“ÐXÍ–ÖLK:>Y!܇ù݈B´Ca¶ƒ¨!c¼[•b£ R³Ñ„Ñ{b”qÎ×§&œ%Íz¸fú© 9h™Þrºxu@í2^«› >àwD Ã:îI]yaq!‹iTÒJ†Ùf¡×%¡ØŒw5qÁ\ä< !°¯œ)ÏËVƒhfV:¾ÏêjïÒàÛä<ÉÂaôè)¢^Sx²]5¸%Ù¡wßY%ŽÑnö=42¤Àüà±çl“zÆ)]¼³tô1Ö©¼H¡AhßÃ4vÊjBC©:]àL5Ò…- áÇt6N, ®üÄ7°EV X[ÆíAJ÷]áJ¾¦êÚX+&%d$ ©®UÜÎξãu½uþ2˜'¨Ü„I¾Cxø)¢&ÑGDDNãŒMXpªÀò˜ˆ„Ç­Ô/†o¾©¢VƒhÐòo A"¡u*DÜ] ëäÑWÊlŒ&ù7Úð]cÐ¥':`ÆmhKe˃B  eªC¡®‘ÃPc¸ÈÝŒÚ ï‹û›»ºùE½N¨Éÿ`´ª½é"Äè€1Ζ¤n„keÖb7Þ T…45ºÅ_Ñö}þ;ùúHþ—·?ºîȇ„IxÏF“*å¸J•^W7æ–<™ç8;T|†lZÔ ¬J잀À!#Ⱥo8ŠBJ„,RÛA ³N¼ÚXÐ#qÝ·Z Rª&iPUœ5¶Û¬ô" D5svk68ujâ¨ßˆ¯<»%HM;Œ{4!–¸âoýa‡‚êZÒè뛵(+R»ç 0Dò.›Î~;ùÌJTt ßÇ?åàðKéks{ö÷AÏŸºSx¥‡8TÆ… kTÎ'ba¢>ÇÈÖ@¾×Áˆlbt»zãY)<]EÿGq¡Éy¡÷Ä4‘^Púêp÷]ØsTéã ‰-š»Tu°=t¬b*Íu/¼ü§ðú¯88³7ì A³iœ}ÏcQt5¸Ø*·ßlAÂQ6ξ.7²ÞÒ zɵÚ50iÃ04AÊ ‡X¼Xû€±t¯<ýdT×Y„iô+ñ‡ÂOi,`çw$i,L•íùýÖþ (#šãdBâEÕ+·ÒP£,vKM8†Ó»¤‘i€…ÈŒ„ˆU“à> ×D í)+Â=ö’]MаyÆ<9Ðk£Ùâô;ë/ËvWl’ŒÞÔ*%Jês¬LI6+gu;ôLZ‹¨ ÉÅßÐÚa (ª vgÅrÌ®k4m©]´¦JCL›9 l€ Én=(‚x®¶…À÷Ψ XØUÓäa¥XjR «£¶Ùlp­€²h/HMUÖâJ¼ƒˆ,Þ÷§¢E°Ð,7ç ê\ ".ÔîÏ8&8]PÕbðÞCÍpØØK˜I;ŠS­Ç3;:êG@“¼ ‰†lënôC@:®JCL›9 l€ Én=(‚x®¶…ÅÌÈ@K`(+²cA{(P«Aã’sÛ Z‡-jšø`W£«#­WœH«mÍ%r/Yzý"§P¾Glâšpè «t¹¢‚ a hÄØ6ª! × ·òífÝÕêáÀê45`f«¤†Jd€ TJ¡9j…Z±Hê¹4Òð(àê¶Ik%“޽þŠ›’H€AÕ‘«p€@˜äÛr ¨í³|jt b¦Þ ¶¸ µ'g:ÂJá<ÕR®¸2k'È4‚*n OhKQhHUÝ­ô1æ‹f•gÌ]²»p¸Bb€ˆí½Îp¢Ø½ÂðO:8©^ª„DW€ 88séÚ"©V$æ0@ !a —EÙÄq:è[§S’ôì…Äù–âMn[”.†Ú,TŸK2@ 8ÝîîÅânœ9ÑhñÎÕÝ¿ñH¥j¤ÇM)uk0+£º¼·>ÛŽ¿@/|5Ô­0wL{àm\)ƒPlá¿ýpAœ¥€?yq’ζo¹~Èóˆ@ôøÿ&*™N«Ø»>— #±0GÿÁ(a*<®ŒFï§Šü»NM>¿ÒáðÍûl ž¾Ì>2‚oågÉ^ñPáV„l«Å°¹¼Ò ¼/¦$‹uHìùG¼.üƒ§ž_Áë xøH¿åÿXfûˆÂ£ÀuWû3a3ÙvßÀyÈ$~ ©CÖ ã"Œ_ÖŽ °ÀêýPøÁÚ¿|Ñ…ÐdwC àÓç#e1 §Œ(qlv8% á`MŸŒU°öž±ˤÿ$ ðûǰæ$v>ÎYX¶@•ÕÅL·üã—•®¶ºi/Àüàö½ºPä<Û¬=8|ô‹n¾ÌŒ"åÀ¤é®Dèð™cq ­ÐhùYyí­^È‘ä¦rˆ>óºœÁ1k@+PG­]ÅC <%Üœ’öÀJœÁ_¿üïààªðgR»'äp=$(àRW¡G¥Ä›Ð¡kÓä;Æ÷A[Zè×p\ÓÃ@ž ßpO8§ ?m}€yÃe?f0¬pwWFh¶OƒªÑG5‡³¤aÖK~´Ãé—åräö^Ëšª| ó–em ¶üŸsô¤¨µ\[½ÄôSÿx ‹,_ܱ>‚.&«Í(t€q)d¢ôJêSŽ$Š –‹fq0g†Ÿ›”ÛŠ"„¯]‰#€Úˆ Ç"Þ®Vá ÚŒü¿@ “¸ˆj8 ‰•Ëç^¿^ 0`Á"!;€!D:ßÛêV)M /Sf€Åøµ|íÞbo¢øiðË@4ìäht¤†øIÈ–)h€R(nösDìwõA4’zÍæžÐæ¸ó±ÔÒçÏ(ä*Ý:<ð°uDJQ’ Ð¯Ž¹ÓŠæÝ#º\–g¡:SœLåF8ö"cñ¹==ÙŽ Í*îfžað¹¸J?""tDýàp,ôÉ1ÓþƇ5ƒyz¾aùÀ¸º,-èü.@<#D›¬ÅÄP£y#éÍÔ¶´´Fá´Â@u·œ%^³Dzý )6 z­lëXœ,ÕÉyéêÔ•øhcíÕc²káþY/Ðq³ OøM)T:s¿ŒÎÍj.}›Í#¯ÄÀ‡¡Ÿ•Ÿ;òÊRtÇ ûx±Õ–”¤rttCŽOVˆ†ìG›·»ÎE¢i× äï;¡žh9÷_2?hVb– z-å{N p”w6ªÖ…•Ê’Î×±„zÒíøƒû(?›øÂÈåÈÍê1*tñíƒL9K] <…ãaS"Æ%4ÔÑÐ~Ã.r¦Ùö¸T/{a80ûOiˆºÞ‚¾€ùgûÜBtä²ð%æò—è7YµêQD|×Ë{lpü¿¹ôdÙlŸU§—§6œ ŸØã•Z@ÅW¡^­÷ÈÝ < à0IîDX×±€“‰(h°€BjÅÛà×zÜlšDôË)a]t?(fí.yãä!ñÐâæ(w|®sI kJº`«Ž_EߦäÆaF­ÃØOAß ÔÄñ_=¹ç¶(ðåG˜gR<ô@mx2O´ÇÂ|xÙ~S)ñäa>GîmÁµ’+% ¡×kÁšP…ÕðøLÀç@£¼©ëûnÍûð´‡oËÃó;'Ø'™ ˆƒåØ>900S‘ÿùpuIȱ]SÂ{Fjy"Ùò0<~Í@¡ÁË_7‡hEðë³ýû†¦8´ã!à i 7‘Ó„ÎÿCŠëKØ˼ÃUœ.çïú2ë«°9ڡ凹’T·²|=q'òÏÍŽ‘ü”|çó` øs¥q×§í1ZSžUG8„ {\‡»€ a¹%TAa¦µr›Ûã8¥ò±¸k !R‡DË Y³ðød²Cô(¹œQ„JÛÇ—L{ë&CÅ9[Ç!çÁâî ¾@¦õ×|‡.ƒTÌCÞê¬5¿"Ö8z€Ñ×Cå;ä?ါ* )·ŸØEø,Ê )êu’B*J¶uÐî· B’áL~aöÖ0 C{¸GrKØyýºæÙc齯ÖT ¸®|bõÀ©ÑïÔï½ÒüÕÏÄޝNHüºÿ>鉫áÆ6å×ìžN9ófw(ˆL±K[¹ÐPzÀ”Q*±4žñ”ë‹¡*öjtl.óŽï:é¶)£:àF>Âõ‰EÚÍ Ñð=NÿM¡Bj?gáppøpFž nhUá³é\Y´ Û¯gáË}ñA-¼FÂܘ–­±ÇPÇž“¡âèäF~…>æÈ¾P„êúu¨õqé±²¤Jë@§&ûÔT{F”ÕqL+mïÎß¹›•4µ*¬TÂΆ{ßìAè úD–ƒ­ˆA#iä㦄$1Ð÷ø+€2àØCx§SwÃþí“t"w2ÅîŽz>FtÍ;lq=cÍM¥ƒ‘âNJ™`øà’¥ðW|®3±oØ âðROr~öŸ²vôÜ8UXl:ˆsAòéœøåÅø-±Û2ýâô¾yìå&ið높è9q£7×gÐUð~¡LªÖlhá6”G¢£»-Cö'¸‹å=ðD£ÆÅUt!OEz¿W#"§0Ç!rºÇç¿kÄΠѽ¹É$Ô¸s/GcßXÐÈÒâåÅ z>á¼ßÙ˜Ú6ãttféñ’âÒÌ™áé”ó~Ä æV–éÎW 8„”m¥ùyÆL "Ũ)äuwMT·°¼rCv- yq×öÿ‹ªè ® ÕPY¡%æhܨ‹âûÌy+ÝÁ‡X[~U~0‰<Ò-Þ$ú×¼è°ê޽w¼¬\¼´¤=(£#܆òGª:#¤xýIŒPÐz" ë&SÞðt|Êoš9ï—šà'°r›Ä Îú¾©Á£¯ëºÃÖdBˆôݺû|×=œQÖHl¿œÓÈìâQ*y3¼t[äzú~n±Å‰5Ø?fXìè  ÙF 0nŠü/#¦lÜXà=rF°CôÆ(ïiþÝ1]ÎÞ+cŠóý/9ýÛüà<KÎm¿Ú÷ŸÔ¿Îfÿ8§€šŽDåÙñ=~µ¨ÕÂm =$˜غ˜Ô‰À­{õûw0³ƒDmRÖΓ†v ûŠ@à Í5_¿ ÓØoÜX¼ð}{E„ö–&p£Ê´û¸„v€ó â "DÑk]Y×0(§µ¿a+Ñî«U1¤ÚF?°×ó¼\˜ ;%'2µù ã*¢ˆ)áÛ~²{€ZxÈßò~³L±¬«jθzXO âèá ‰ÑÌí;#“9 =Áϳ¨õɪ‘è%6JKèÈÝ’‚„æ3NμSsK¬q‚Ý·¾ŠÞ“¡‰U4:‡ìö\ ÒÈÙ:Ü`Õÿ?è  ‹Jº øã´ûF;J?Ó®x3ÿ¾.ÜønOé6Efæá Ö^¸n­íÇë$_ÂéèÖÖð6šâá%êøÞ,;râTu½œ§SÿGÓÀv0{_¢?ðó9qÖ)kExù»ž "2!ìNÞÒrÇ"S‡¢J !9áŽðÞ$\È-·"Ù§šlóãîµO<¡Áòò¹1¬0ýItçásóúÿÆ~oÏÑÙ*·sãåŒüyñšŸXOüaâ–‚Sñ–z0ôsó‹IÛjG'äÇBáEÑ^Ó6€âo1å­á3,-Hº8×|dêì9cçÙ€ò”Í|5ßéTî)äý&×,€È9O¸¨×3̪08ÁhôÛ¸ 0òã Vb´ë§í‰&¯äЇÁŽ¢­(r:ɲ'0.»Ö>Ž;\¼'œ«òÜÆ|Ÿ¤S,k†Ê¢P6d¥ëë¹Ô#b<^fDK§‘6N¸ÿ¢$Á`Ðt'OJ$ySìµ)Ïž» <æÕ5:ï‘È¿JDþL…CÌÂÉCnã}ídì‰ÇQ¼kQÂVüo,좰µøÛ8‘4HQ=ŽU÷ØkàÁt…4Ú9u1d5ª^ÝŒ= .ÊE>O¹º­49e ”€VuÖ]ôìr{ú¨  W¡,g"Ið\ ÞaÉ„—]Jµ¶* +†ï¸>ƒ‰ûu¾…¼ßÃÌ(1Xvhy0«Á¼}Õi¡Èë[§F?Ÿ×ýw/ä[ãI¦'H°,Ù§œpóitþHøÆ™'–¶ï­¶ô2M"†Ó*ÛJA¼±—x)ñêŸkÀ Ò¢~rì׫àÚÝN¾2ÞÓ·e\ÀðN»Á§Ÿº'Dý"1r*d\¢ÌE]†ã»Ÿd'k| ÒôèD8Æ\ ±Ž…ÀSS[Ön¨œÂ¢âjLôÂN§8F™3ËFÐÐßý}DƒkíÝwp´-õPÀ²{Xÿ„윎!„”¶Cîùub¨¹x9oÚkkq^‡Xœ.'C£¶ð„Ö5Ò¿t=}WÙ„KÀy~aŸßwÀ ¾ÙQvCÒãsEdHØú!vx¬á5³|áwˆ á²"l‰sÄ>1*ýŒWKVìDbÌü."!úäA°m5z_56Ý ¼“PúêÃЪ'k–Úˆ-âòrÍ_ ‰Ô¡?Ç(ÙÐÑ‚êï&–ìû6¯|ÕBñ9 ¥uw0yð±AB<4ò5DŸP7å°.OU‘‘­‘œ3œ¶‡”çý„PÍÓE-AÜ]i2y(˜„à”C†™ì8|!‰øß[…@a¤@œ6k¦-›‘Ûî £¶=fÀh¡¿B6äYÈ6\Ž‚ AaJD»†µ¿Ò‰àQØÆå…ÒdrQCÔņ4)Ði™®8¿¤€t›îÞT€H¤›»ÍÞ-ö†Xš§s2³® ŪѼñÍ‹®“!²¢m”%œ®æZVuÄ i­ßع„`Ñ(@=9;ÛjÎá'Ã'5‚ `‡ê,o»„"}°ë-KäyW®I3"9ÚÈåß\­”Få¨T¯yr!á6`ƒËäÇ›BtŽ6bxIŠz€Çª>ûËâ" P¬Ä’‡p[JôбM"!""HqÛJ‰Ú;Òóp½Á`Šxq]ØK”*¼¯ÕTjˆLž ÎÛZé†8Aš BFšÇ+±Pº´–vyëô¦®…ÕyWUƒu ÷ÆŽ"E^ ×XjTÚð·6žehH<ïKÍÿ‡r3ýfAçöÎÃ!ÿ¼ßÿÄ2!1AQað "@‘¡±2PqÁÑbp€áñÿÚ?ÿɵ‘ÛJêÂêoô'•TÛm<®5²Ž9Ÿ*~‘£óžó%ÏYAùC~³Ùæ§m±Ù¸ÞxýmAȘJóDí¤H'dƒ»Ôìć-”Mm•¼H77ôÓOjyË55R `SÒLù”«ì7=:Ž£°ùGÒú.RBÔ¨Ír=Gô>q†âÆN2Q<å7]wå¸yÜqÆNgTm3¯faZÙñeœOžiišd½NKkfÇ/ºJfn6Ê1VÝ)WIbÇæ9±ï˳Ó<…”Ä‹äa š›3dGˆýb]@™5•´9~Ó¹7Iˆ¿ÖÎM¥Ê6’`çd`LDñ)6W?Q×imÙ9°&µ¶bB\ýL:¥ÌSÞI;KÒ¿y{5ê&“ˆÒeš¸óÿ|DO’Ò&´§ÕIÑ‚RìIsgÒí ¸ãuÚ^ˆ­«Q5§ê²rö¦÷°¾Ï/`/¬XÜëé›/”–ÉÄZ Gõñ´‘wµ‰`¹^ÅZÖ¹¶‘ˆT£•‘'ݦC¤ïcÖ{…‡àt5‚EåÍRÛÚDp#wqÈÄŒBªL‘%TÍݰ½Cõo¨åcõœiHÛNÞÛqøWáí­¬2‚¥DÙjQ€u›ì7ÿÙplugins/jetpack/images/screenshots/likes.jpg0000644000312500031250000003611512651056012021700 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿЇ"ÿÄ ÿÚì òó™OŸ/-w§Ÿ–÷"£®¥±9¶¾}dÃö;è¦Ûî1aaâêvïÃl«,z†ÏÝ¿+œ¬ÍöÌ&[ 4-ç…©â¬Ë¬“͇/ó5³‡ßéï~­7´WäÆÁˆGú9©ÄÖ`Ný$îCê"ûœÃ{/ˆ?7r{®Ó¤&jÖ·}K˜£~·cÇYñÝB<¤–Ê䎀’ëjŸ;ã ”gWWÛ}N-³^ÃëjÖW¿ùÞu Ž¥1?MöÓ¤xêȪ§‘;®Øe;Zõ'vR\ëhên-5ç˜ÅŽÇ« ®N^ÚÉÚP‘;6˜ÛÄ4·GEÖ¹U-?º¿dƇ£0­Ÿ8OovÐaæiòþ¢ÑiÿÌÛK5Ùæ ÜS1ºþ6¸Þ–†Ûžó¶4U½Nê.®‹¬5Oóf×Ý?Có¶V—q´£¬èpa€–ÅWð¯ ÷ºÈ4ö÷ÜñŸÏJq×ß×­åÐqXå‰YóeKÔ™}'ZÖz¬/OÌlÞ± ÿ‹bk“.ûì™ÿ,Äú‹ž ÿx7J×ó=m/Ç{›vWÕUgç±4[ý/M€aöGBbòŸ°l>\€ô¼V^Æ/þ“WðšÖ¯¶õdUÕß´ZÔ´réë¤a™ç ÜþgÅ6ø¿°¹ÍA`GãÒ+R5ð¿}¿`“¬†IÝë½½¼|vÔì–i¯’TøVv›>D玭f²Mpq×Õ—‡éÒÔ=ïDÀ¤»d7:¾ˆvUM“›MÙ?¿1(…×êîM–Ç#}Ôì"þ]|ØÕ2Ý·Gí&Ñ?k† ;‚Cä›Ú¦mûÓß•>®e\úP÷éÓØp{ª§–h"Vô;qÃNçI²ÆÚÿÄÿÚblÕ²›7&¼fÜ¢had%rvùt_…½Ý]nwK£â¶vòõ5iYvÖxmr¡“ àÑùzöªw5µ8=ŽÏ•êE=Ýhºîïâ{îô†[”×åû]nö…Õ×n~‡CË{>0a¯µ|joÔ®Üsè_Ⱦ²«Œs„±Ï ²Ã,2@eŽxˆ‘0˜˜LÿÄÿÚlSz¹°ùëË ˜Ë†ÖŠÈñý\ô˜¦oGsÊÒèúòøMÝ(Õ›húɈ½@/Êôù)e3t>Ï)åõ‹ÏìWʯ-ô‹æ~˜ ®O¥ä¼þƒ—mí\/WÙ|{»5òàù¹ågÁ“ÓÄßÞÐÛ1¢I„¥•µo ÖA5”ÖQ"$ÿÄ? !1"23AQSb#$045@DP 67Cad%&BR`p€ÿÚ ÿË\ºf¯ûy©>ÞjO·š“íæ¤ûy©>ÞjO·š“íæ¤ûy©>ÞjO·š“íæåOyºc\Ýþ˜¤ÓXäÒʧü9Þw¯Áƒvæ#»'?w!ò)yãÛŸÀ»â3´di7m_Õá¯júvJ*9 ïIÒ¬í_æ×ñx\Õô µ¯²±­" K^@£‘ÍG'¦Gø)ØÁýpmRKAéŠ-ZORG¿`ä‹sÐщ£“n#¹»™Ñ_Íö95²>3hµ+—F¹ónÊ»]°)Ófsµq©UUyÕˆV½„I;UUÍÐþMòn¹FÒø‹•^›rc•›S\ 9<¶ä¡«Þ×D5œ1«““{‡oʈ­#qŽcØc‘Íùbh©ªzvWˆR²z«`ÍUElƒÉèiorÕÓæZšLiN„.¬²4YQªA,‘…YløW€- aÊ;åB !ñÝÒQJANÙdc(`ØÊ£9ÁdHÂñ9äè·e {a=ªc¤É j"H$ÒŽ ÚKNÇ´Ž¥¤Žgþ¹ß˜Glb»E\}¬]«¢»Z©­ÉÌ«¤i¡ý¢Þ¹r÷'RÓµ¨Üˆà,Ëdä))¬¤ãK˜UÉWQ£D Ì }mÔY’FxÇü¦„®zŽ4Òƒ£ÍÏIw«Úo†½¯÷s\¹MõÅFcD$cDjåÔfHŠäÓÚ«ýÛ3瑾 {>x×?Ä7 ªå z?r‘c‡ƒþ‡·¹Ãsß«lO1¿OBçEúËìÓþ$mrïØ«>žyÓR\Éh4EÑÏF³sÜK ÐãS¦tYbÖ)ZL/¹§Î™¼ÏÏ.e*¨ÄŽPyq~s,-{¼¥È9]½}í~zäI¬ŽŸžö­üvµXA=C…Û\©Û>ºø=I"ƺ2*E^ª1Sc–ͽ%" Æý"NJl ù5áAι«³–øvÁ6¼Òl†Y`6SÕÞWTdŒ7Æéºé‘:vDIØaÑÚ'JÆý"LKèñà¬=…d{7Ü­ŠÁztÒ\$røÇÄýs¾#;:nÇ#t/ìæcšÐ°c4MF²ñQ:š•UtNQýÆegï[ì‡\H׆T“ÙÎ7TB[Ý].:?ø×|Fv:0#鹯ÌÍ…j9Î14hª©eWÉX³A˃éªV=¯l/hp㌧+£ƒ 0 ÷& ;»©«°]µÕÎWÄŒÖ8½=NY wÂnø0ãBŠ(L7Ã^Ûé}ƤҶoÉO9ÿ <é‰ò%ë$î~Cvãå7Eب÷4ÍpÓnnLbùäOÙÛÙÞ…vˆIÃîÈP9Û¡a¿)-û÷d·5íª5%ˆªžjŽr=»›ë/²Å]ÞSj¦D“ÀW5ÃÇC¥¹6ëÎuS5U÷2$µw´¯au2Ž;âé‹,&+Ê¿æXÉòέï£p#W ií÷BÝ`¾YÕÉ.T«Ù+]yä5V{Iäa¶I!6£kÊHC—W¹÷#_FÿTvr3뜌úç#>¹ÈÏ®r3뜌úç#>¹ÈÏ®r3뜌úç#>¹ÈÏ®9ÛÓk{z¨|´2ª¦:Yæ¤Ü•I~›[£^¾º`Øši¿4`QWÏ@ÌT+ލºE˜®ˆº,/Ù™ØôékZª–ÎÚŽÄF0CG×â7Lö—ç›pLó_–t¿3²kXžÚûÑCÈ_ôrhÝ‹–»DtkT–Vn–5EÚ•¬!%5£vÕG0cF7Ò¯kíc½}ì»ÿ'úb ¨MtÉ.#^ö·Td%{•Y§”ð³ómrù´ ÿµ3¹Gr{Coôî¢ýÎ|Úœj˜`móL¥šMvûÉßUSF‰w Oz9ÅÇ/²Áæ«Èï§O;u8² hš—çj=…Ý]ú3S&CDå{uÆ&.8›5\è…WwÅ^ɺ–J ¾ {S&ÊdqnwžM—$ÌQÃÆùŽ#^¢w’Ò£ûÚ9¾œ»—L¥~· NËÏò{=ªã%°AªæóGO‚&µ]\['5<Ø9ñÔFè4þÔ+¥9—=Ç95ò²]U‰ò¡†×âùGŠ'¼ìºØ*“ kµXW#”÷½®tßîXý•®Û2ÁÛœ­ÊÇïŠÇdð«É±FÌ€à³{s‡ú|ú#ù¾Æª-™üüîlÎÓ$pû(Ã)=§9\ëYè„hXç5Df:N㢨àlkˆÄÓ»N©<ýnã§e÷ù84ݪüŸ¯—–#Œ^Fh™Wmç3˜£c½H¸F0ŒØöê“ ¼ØõpÿøC©>,÷k±ÖñR“Åuü×O–që’U‚µ® „ˆ3c‘êa4Í •ˆGM+ⱤÂYWŒª"NŒÇ’Dq®„8˜±fD”ª‘¤„Ë*dHª‰&HC‘§¼Ý@ø¬#dÄŒéݲ–ñöwr#°j8öÖ`­c\f•ëÒö&´¯|“#QM>Ö]¼˜5­Œ6týŒ‰æ<Á±²=06 ^ ÍŽGÚ\èѹA’¬Ü;Ø`iEÝ"̉)U#J –T¸±tï2Bï1øZnð.1HŽR¼B0Þùóßîu{4Ør•R4 ™k&ö–QÈ©°¶^"ÍŽÂjšn×É–UÏݲ|UÃ!1L1Œ3¡o°?%K‹Nó$!Îó…¦ïãï‘5*wäiФ¿dy`+ŒªÐ½ÉëtÉ4 ˆx‘.a‡}U8&;d$wHbXA¸I2; ‘®ãà°¹ãqÀ¶ý:Å“Ž ‡ã©cdmqÝác<Éܱ§B’ý‘倮þ€¾i¢àªùLµ\«Ü:ÑÎðøñÑülêjàQ€@•çê CÍö¿Þꌘö!žB(ÙÃhIÜh^aÆŒ)ÓhC%7²DXðúº·º€Ê(‘ìlí%Î$š$x]a41´FdOï¼ÎΉýÛ##Æ™g}a. ¯oH´çXVŸG›­ÿ¬gPÓWŒ„M%–ŠAÀ'â iSYƒN cÃêêÞè#sI·±’JoYÑæG¯–7Et8õU‘+E²0ô^¢Š½IUG˜úŽZùó¡ ‘Ê"¼êC t}-i¨„óÇaˆ†*ôë`,…áêêŠØý>ò0ÂóˆsúŠ9^Ð- D‰Õ$Š&csI·±’JoYÑæG¯–7Et8öý<6S¶=k…jÄ”%NZ£Iýœ˜Oðþ6u9eö½ÐÍ"…ìm=•Ž®uµtW’½9ÞÒí–:PŠkt$“ªåµ"…ž¾$¾¡·4°ËF6G±½ŒØB<þ‰‚(êÍíX‚²„³©ËToè-¯ÒñÖ|¹kPÝB.×PLÆGŸrYmª[ã,•†x´Fe°,äÙ>Iå’b–95ÚΟ›Ý;‰nÊèu”D‰&!Ë;›%WóÛDŸË·%R›Ä :¶ÁЉOH°,K5ó_$˜*ý—f²åײ–¿Ãc<¼¸zC²yfVY>©ª›^¥+Îùm`Ê¢ÈEÚê ’ÈóîK"-½ZÍdnï%böPçV÷ʯ綉?—nJ¥7ˆmmƒ¡Ý6†A¾kß#.©¼J\y -ñÜC’peYÙ>nE®h¥N3ßÈÖÐLß ÉAÚmMwR„ïtŒ5pÅãϲQ2äÀCФǪá9¶N²4ªSx&ÖØ:Óhødæ½ò.«YgâeGZ<Þ¹ÙëÎ ­&ôÊ–Xì æª°:™@K¤B¾Ø*èµ›UFZvª5ÖŸÛ±·-ÌnÀ‡%ÝvÑÑ>mÈï]Òa~G>§Žl=É¢J±1†gï~}ãÙ˜®©®’›µ­ ˜G~cžÓîStÑyH÷OuR¦œ×ßþ+«\’çþª± v;z§l¨Í¡Qiº˜ÙSUÛUâÚm‘q‰3 žR)ŠÐèŽ)ù;R­>ÓŽüS©˜ew;H `DŽ(»TÝ8}@p ¢~>Õ÷QÒH¸f¤ì_UAæç8_Ñзé±4]£®ËL&uvR–r§ÚO9Ð?43n(0y·œ·0» à®Ã6§Žcåjp\J™lo[ùy†p¶e8m`M;]Šã˜ï‚»ÆpC†íÎîË‹›ˆŽe9‚ÎéüSò€ö²öìÚ¢ÖŠiO©´ ´A?$Ì\Æ5¦ÿ~jà‡T¸p1§—ÃnhG*¼6öìÍS ÆVÉ] *l6SaºÒÚŸíú‹¶Ž<$.Ké}˪–ü*‹£C³·ñðUro ¬æ\ Ç z¡B¦Š“2x$Zx*lмŽùG)}£€ÃΕ¿Žþ 1¼<×8Çͧ`üÚž9â1O‘D)Âî uÁ;ØŸ¬s?–aw‚êˆõW5Ô-£[ôEØk+ü½þÿ°;fˆÅ2mÖ"?Ó#éú¬£Ò™:ÊÒÛ8&™kKŽÔ}i$þh™0âà‹®ÇÌdaít”€QÞ€Ø<æ +µ<‘jÜÎ šÜc6§ŽiðGjõpÆS}XÄ­ô‹‚Ø \Ї|'6´Ï±q}èv×rÁ<Õ†#ªûß^P6ìûÁmÃz8›[S†ÅÏ8¸–«<<ÝOÛ—¬W$ÜaæIQ¶1\x&„.øNl|3JäsféövAª1MÙúf .w Žmoˆæv%:DtPƒ±ó5?íænS¿äPí;Yµ¾› Û—áŠé:KÑìýŸ«ñF¢ÕÍTÕž©š¤(P}ç8”ZŸÚ^ìúž9›å½Ë‰)®Îbyל¶-o„æÖðM&cŽÅÓ·°füÇú¤f«ÚÕdÆùîþ*¦³ZZÕÝm@Jp–²ìJe¥Ø»¦aµ¦¨•mظ 8¦í±àÂ;/x¼˜Uioâ›¶ªt¥· bgjtÚÚl™ZR‚É¢÷Ö“$¬–¥³²sw[Pª>*ÝSb6ª´QÎÝÖSvØða—¼ NÁ¯¼ATûmk¤·ª©Mî¨]ËšC ÉÞÐÌ8…Ýu@ âš%ÑT`y΀œmmµ'‚;/xƒ_x‚©zMq©×‚àÊ€ ÒSÎ/«ªÞҬǗaÁ;Nñqö.á¨'0kto»ŽåB¨e2ão!D¾­7j~+ƒ*ö?­èwp…”e ¥PŽêÉÛu:ÁÒ9ïOÈ‹ÖÕm_rk /¯5c•eµß{ŠòY#ŒJ«N x`€`&å“CĆ´r^NovHÃ7’·Ã7•?ÁS~…Å¢í!“*Ó‹çŠÊ2†Ò¨GudíºFàé÷¬¦ cooSzm¨6a8*´ê† ]Q 0 ÐSòŠn¤Í u…¬ýîê‹^HãÊ[N)ˆ07­…e ½õ‹¤óÜ¿¤|šÿîÕmsF'ÇŠ¥‘Š¢žç9Ts®k ¬iê€n‚Ÿ”Su&i¬(=®uîôѸ”Ú€2¥±ÜŠ´«Ûñ­@Ʀ5úgTí4îö*͸å»ntïä™-Û8nTéSs½“Ä&U†‡‰¦–³pS]uŽ0‰Á6  ©B,w#ö¡¢ÑÛÎfQÄ´)‡Ñèí.êVM…7ÈŽ©ÈtÓ€DFF˜æ¢4m¤Ž²f9(ÀûVN,·µ!Uô£F×s…U–¾æïãòÍR§e»=¹ŸTÔ›cj­VèÃÚJ®f¥WoGFÐx¦G£´»©Y3¦›šÙbÉéhݩۗ q—:½eÿÞ}®}n}n[Ö=¢ª uï<®&¡tD¬3Þ«ÙŽâËþŒ­ÊÂÑñ ©WEÀ?¼Àp•ï.g¿¬ºèþG®ÿ]ä?å¢Á\ƒšðÍÛ?™óæì1Í´÷~ÑÛ³³/Sò>‹±ÍNÃ1ÂÌSQU'f‹ú^n «ÙÓÐßÒýOŒAtOЇ¯l :«^——743WFÎ =eÑ22eº‡rôͪÇn%¤{‹E2Òí/ÉÕd’Î?:&´Еæ1°…ô7Y "‘´TÏaÂØ‰ú´ô÷=°a "¦öÕãw¯¹V S7 Ÿ™ÑÅ'J—¸Ë¹ƒ—ó¥”Ê$qG0hŠÔÒ2î*»á²u²Õ5|ó)íxà¦FªB’ÇOüÿ™,ð¹ø‚¶‘£›:ëh\P¥6èybošØaߣ™‚ÛV®·ԬΊ³làuÝöÏŽyë‰j…­}D|É/í»ºö•CJoúÈãúÑ +RžŽ5;„hÇ"øƒ‰?+óéóŸõv¥æªå]+«'4¿1Á‚­ÂS+VZZ”Ð1ü!¢†êt¼Ä"­];Åâ¼”AYäm§I² ·~¤(Äá™_Š;Nèÿ˜¼"°Ä&YQ(qLêjy‹JRûÇ¡M £­Ìq +ª;‡<§ZCÕ$íQÐ,â$½«ð-ÂRû`.{Ç™T?›9ÎìŸh•ì4'#v2óªæQ€ÐTùo¹f:™²Z>~µ6Ndp…!‘­Ê’‹v­w‡a^¡7Trá<òì¸ì? *oF¤vH°¹i@Ì:D¸*Tˆ”œÏÖ8ü¯Ï ©¶!´Ù-(ÅüA+[r»n%ÝTvC òaõ¨PÚ‹ö&gK©e0\…)Å·‡¼ä¤ÿF>#L‹^Å~ðaìãâ5ˆM5éM¥ª–¼æb]ﶯWâ`­ìsï¡k\^koôégqa«©ßë;þ÷æz¡ƒòC¬f××êª_!Þõ^ÇBQØ u$]¡ –ã c²-vg<±@9…knJ|À4ôª.–š#ÕäE|ý"*e-½ëÇô Î]]þòY†ö³õ‰Ùãc9Hl!Êš%Zñ<Ç2ØPœLèR››3ó>‡†^Þ Â­µõÒV>&Ø[l~™B¤^R¡ŸG ÆÎç­x¸ª>3µE{ïÔ(¦ã0±;B(YNÛrå–.÷]˜¹)±HÉ1•ßÐÙ§Æß{Àšýô Uö{€dXÔÜvx™Öî[\X‰äZÀwƒŠ”è:¢—óÿÞ\|‰ö“í'ÚO´Ÿi>Ò}¤ûIö“í'ÚO´…omkÖþTZ¸™ãE)@ŠZƒ†¡bæ6AWS´\Ñcy7ZæuŽ%¤Õx×ë·ŸËéq‘j+íG'¥!+-jE—e2×eï™~U—æz“3¢®Î}#5[ WÐZoÄ0;ã3Rr=Ž"ÎÊõ c%öùf*{B KOÁèyI¥¢:@¼Ç@J6-¸zK_5)çÜ&À{?·X¯rXƒ tÜL­L–èÝýbðÄãwùžw¸+1b°.¢2ß ©ŒŠu– ÚµÑËõâÿ(K¢°˜oõ”5)„q›W ¥pöóuz±>{§k´ Úæý‹ë ç ô˜ÙC“ÈXNÛ|}#jÌŸB±,ÿ+@!äC«ÁLj¾ÅeGó(göéÕ„(‹\TNíÚ«ÊR§–däziÞc‰3'ÖR’M™?2§ˆTæù|CBîúË5]å1ú1¥Œ[K­=áÁøœdÀq¼f<˜ƒ ¿BS_E‡!”·V‹ÄΉ•3Í3Gx÷¸ï/JÓ:8"Š ·YŠÂ*Ú½Nðχ¿BQ˜öB=\T?Ë Þµú óF_¨æ(ðÁ¢ýÏþêv§×N•ø¾’ˆ¾-û>í"¼}ÇŸˆy7Kž È›Cl»´Ön›} PPôK™\ ¹]øwšd…Ÿ*ˆ&Öï…Ì#&ªÝ6Mr·–´y”%]F] ê°:W±¾ee׺AûÜ.KžeÜ{Fn8>­%ø~â(h6Ãɺ\ð ke+ €Ž/¼¸*:` pÖ ¦D]ò©þš®s£2 Ð:f,€5*Î[‰˜ä¦Ÿ°jz!c}cÓæ’Ï%Ä®ÞX©ÕO¸çSEG.²À9~ Lé¡Êç:3 ݦFsût@>ZƺÐÍi£â tX6Šò’®QܬY˜ZÐSn‰›ñT÷éWè Ì‚äÒö S~VÆíÄÀviÜ•KØåÉ¥T@>ZƺÐÿaŽ–2b£l{üK÷ÁÁµßâ¾Ð/kwˆuê’Ϣ뛋&‚²;‘ØÝjô´å\I”ËN²í‚Uá@ÕS ÔWÚ…/¸óÅÐéØýÞþŸI×Õ¶åV©¯§v ¦M"q—Ï».r¦×ˆVø_@½­Þ%öDð>S™•Rã몦 LÕG´¥güÆö¥ÝÆ“=iEf —9_0H¶±_áy\®ÃÅ{Ëè(• CõJÚ¢«mž[ˆ°‹ðy™OÆz õ×éæ‘ŒÀ)£[fjŽ£ÚÒ³þc{RîãIž´År&j|‹n°x–”Ñ.ò†rçsëºO¬ë–¾›¸´ {â=¶†haò'q(Y×—áó&Øn^Gl{Aöf5ú#˜ŠŽVÓ‹Á+J¶ÕE.àùýü´¦‰w”4ë—;þÅ·þ)†ÇmTìX ´!ˆ£PE¶ûܸüƒ$TT”@­¯7Ú2AÍf…b*‚WÐ6U®ÞÓ]œìlÑoYçz-Þ>!ˆÎÐwæYíKqCx1á×Ðþ&ˆ™Ë·OC#´G méBù!®zî„ M4ìX ´!ˆ£PE¶ûÜÆ 2pªÈ‚XþÅ;õjyÞ£KwˆPû´=Ìóæ_iª¹è[^}3 Ûj­|V¹‹òI¾> øaPÃy»Š§VäËDö¨Ç ×Gû©h¤ä³W’­c•²©-=æÿV€Ä`eÍ<¡÷h{˜ç̾ÓUsж ¼ÀºÝ*Ó½Ä$éC™˜*ût¹ú—Æ¿„ÜòÃÎ:Ýâ¼Eܹ7Bºã1›{Lƒ²Û=ª˜aÙm^ëcBJµw‹ƒì²Åâï;í>Ÿ0Ýç}¦ýõ)“òÞât¡Ìˆ¸¸ØÓކÿ¿Gc`‚áîR~Êf9pZ5}¿õ·ÿÄ,!1AQaq‘±Ñð¡0PÁá @`p€ÿÚ?ÿËM¨¢rõXB„!BhŽ@/™Ç­‡¶3þÙöÀ¬WŒZ´bl•ã?SôÿŒ=LýÌîÇåfç¥ä‘Q \×¶8’FꥺÐó‹6бNS_ç†|`Ùïe`ýÈqOu¾‡øöÏŠ“Nzb›ç3âb* pØõ„5ô®i›[þ¿êøÁF˜àÔ ´y&ùÓã†ÀôJ¤íפŽW•{»ÊçÈ@y\’° Ï×Ð|Bø°¨1Z’«ƒìòÅPÀÂéÙØeû ÕÑÔ”g.0)Â]bºªíÈs.›U[x!Ÿg÷=|>æw8\!Ø¿ŒDšŠ8ã›×Û`d㯜lg‰ž"Óã02o;¿çøËûêþ¶ô¡•}±†*N‹F·[g^¸Ýõ5šÉR0J j¸ÊÎ’tÛ:`ª§}Ëõp‹šúIÄLzØù³ÞZ/k¬½ô€JÄÉ8£XXFïØð12ª:/uvÍ ¦! ëªû¸TB9&` ú^0tÙÏúfä!äã•…Æ Hæ6Ž ¤›£ÈSˆ ïaõ 9ÑWƒd% w‚/"À (#nœZï4|Í”&ûÿ½ú¾=|£°WÜ[5&oöPmw\“ t§ÐÑ`k!$…¬óê^0y¶DPŒXìá&=äêQ 40±zNtËPõ¸£.[ÄWUh®tL»åC app (;RîòhîsO“z:ƈ M}ŸÜõ4Á•%Îxßã-Žá›ó‡*PGCøhE¯¿8>kòÑÇ|m+CÚ`‹¥EâøÄZÅ[÷¿¤UÂZ5N¡ÍÀ¨*4ÕwÍvWm1ªr6ŸL˜DëÙw1â5ïüâyOZc©yí‰U_$ÂfíéÔ†HF<\N„–½Žæ2<–;`WË*¥(tQÂá3°†ƒ¸ã::F”4gœ½U_Ãuñ/.u>ÞL´SØCƒÎ‡ƒøUtºÖè³¢t7u¡:â±Yº€•XÙX^ ~gÔÜ©×ã{'-$/Nƒ Cøý'll¯…¸gxƒu8 J¿B‚{¹¹d‚`‚ÅP éép-*„N-DØefºƒÒÓA42ØA(D…Ñ®+›¨ U•…àÄR‘ ìùȵ|ÆÕL] ˇÛ_µµPt³†‘CìQN×yëV3 F7PÚ/%¦SÂBg³yiÃa¥v¸Šà'i.û@8ÁJ#[©Q©io9¦Ü׆è˜Ñ p‚/Qµ0Ü1†dAC{>r-_1µFÓE²àêb¨¨:pœ?:kµö  \ýÿ¤!¹ X¡UÚd0¾D|¾—P세¡¤:sÃ’«3ÞG’ˆ#–i¹¨I@i¼Ø¯+²ZBšÜç Ò hrè0'@†>êéw¦Ô ¡®M9Ãó¦»_` €¨þÅÒJð]àèþLbÆX£§‘GN'–\Æ nÈ<‚.=¨Øñt'l§ìx"CK§ Ðyâ|2 ¸@ñl¨òžq¼?‘nÕCB£ÐV§Ð©QÌ ˆã$û-Zu:‚éßÀŸE8è ðuRÎö<°c;×Rùˆùózc *íiÏ`XúWÍ> cINé ¡’èÚŽ¯‚èë ³Ó"¡“*­1‚°õÇÍŠÉPS|“±[kß7AŮЮfÀ©¹á¢JceÊ• ¸Á@<þ“ôŽÐvž¨€gxÀÞù¹IçÖ×T¼FDÇ1óŽüAN¬Ç3«9pã³LuÏŠ5K@srÃ=ÀO¥f9ÇY… "eWÅÃEdq,l¦äº.ËÕS¼vªM’íÊ­'¼@+€Ì #´Ž-–ªv‚p ¨Å+zL¢/fºb¸«h¾g,8&ÖhªÆÙ‰òTŸXÓ $ñù ÖVV2åöúz•öúz•öúz•öúz•öúz”Ë 68;>•j]ÁU--¿¢¬ê·uT›tÓ +-¶¢¡izïë& •V„WÌ ¨H( n*“Ÿ*´—*d–â¬Mƒ~m]5ÑÍ}![(ùÉYÑinÔË5'´þb­æe:ÎK.‚©ôkXëÀãÁæ€ ­ÒªØïâ ›ÜÖñOi}@òrOeáÑ©¬ W©MwTÀ˪·Ju´Ë 9¨%F»é2þò&æ»tŒùb7ñNx¾0y{Ž8«àÓ´¸Ô¸z"èß;oh´‘á>Ê’/mò‘ïÅ3ýÈ;C¹ Tóp:Oþ€T‡d^Ú'œÏ†Ä]¸ä>z  ^™¼á»qû!ŒFþF9¦â ÙëËÙ3Ðv’9ÀöáŠý ÿŧ¼Ï²q†ÞÙ‡0¨E°ðÓ´‘àHô@’mŽdð<%6  ±þG¶j¼â¬æø(ÕÞÒôïí@ô“±]ÏwÎ8*fnïk§¸þ>?¤¸hÓâO”w¨?‘ùŽ  H27óÏÅ@Å^2“Ï4Ós.Å ñæ ¡'\9Ïš;@ÁóÞDy”FÉçšœ#æQä›ÙË~ª2áÊ$›Ûc—.üǂ޼u'ÇË|f‡f#dr ù€†GôÒZdnädsZ 'ž~*Jod@ß϶GRG„ HË<ÿ¶ÿÄ9!1QAa¡ð"q‘±ÁÑ2@Bá0Pñ#$4RbÿÚ?ý0i9+Ž_-Ú/–ï…]›i¥ÛÄ#³í †ÝÄ£²-ƒ6s ®Ï´Qa{Ûq ¥VÓmç:̨%¥¬¾´Sa‡õtuõ_YG_Uõ”uø?8z Ññ>’šuÜ1MÅ×J-3þÄ}‡Ì¨ÈÂ'Ö9Lÿ@ÐIU¶å••éÓkÁdé†Õ;E:ÔÍJn‘Á$ Hi޼ÐuR¤c"G·ÂžJÉfù¦J6ANa;2­¶Ç:¥7ròO·½ÐúBïÙ}a¬Ñó?7ªÚßñáê­…ôà-g l‹~c\!S£ªS¦ç™ÍQ°Ó«‘ÉWÙÍco5rŒoi×\ ñæI÷ø1À V̧y—EÀ€­m ªà2”ìÑ¢ÐAÞ=WÆÁùªUiQ‹î’Ú˜ØÜá‘T&pU¬uln ¬0v §Y[È â¶‹^ëQÀ 7ð_‡(}E˜Ó¦à`âc‚©³šÚE•*ˆŒ{>åZªÿôšHãúa^*ñWмU⯅*aÂVÏ´nùgz­jheàªÎ$§~b­•\Údƒ‰$ëkQpgíÇ•è Ïi´V¦âK @ã!0IWŸQÀg ϹJJ¦0OVØïáèà‹eKG±Í–»åmGºÕe¨×²ÙR…BÇnýE:·BˆuèU-Ïxƒ’ø"dʯl5[v!QÚ›ˋ$ª®öÔt´@L´1–gQ ÄïŸeM÷ £_AÔ%|Ì2N2­ W´ÎvtpïVk1³¼9¥Tªê†\­V:v–ó×ûÉ€/i»]9àxw&‚Hoî8ðëÑL‚tù€}ÐlÇj¦DóOÈÝÜ@çÂw䑨õ„üšF¾Äª‡ˆ¾øNª$†Œúû"AÿäcütQÂg‡4NCóx§`]€<§ÙH’8žQ÷Më‡`t`Âyöï„쎻þù'˜¹Ü›*;Q¬zuÞ¯DdzîO{¼zuÔ/Üuw :ౘ?¡Ý’D-Ñà¥S»Y£ˆŽ°ÅDu¢whÉD’!„p ÔõÜ£ë9Gâ§Ö|P7@ Ý<úÄoDvnòëÁ;µŸXG¡G9ñæ òZñŽYy#‰”{Yðå’ß=üð>ˆ´´þÙÿÙplugins/jetpack/images/screenshots/hovercards.jpg0000644000312500031250000006142712651056012022735 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚô¨8¶§À —=ÇZu;÷©Ko–´òW€9«íÌ€ã]êúy/2Êáû3Ø7ˆÛž~‰fEeå¡c®#9¯mH|!§Àü€ÖSú™T[Yù%·¡>Q—`ý»‰ñM·?M5T~®M°¢ºÎç;iBÞm[Κ©1Ék™ìŽòüŽ¿Úòò}°$Ë×WVÐØ–-‰òžs í=sæþ*}6ð‹!#•ÚiH4¢GˆææÙ¼ªn¤æKÊC¨f5(ùïEË®u§¢ohÇa›X^¡Îf=[<ðtV§Ó/ `:mêo^Ûee´c›« 3Âj¤ÿ¶.i”ayÈÀpÀwÈ_n«¨='{N!Ôµ¡µ½¥ùO D*}ÁÊá$/OKsø®Ý¶ÕIMõ~:d0Q@óÛè–dqò(Vºïm®|1©ô:«©æY=W#…é<þKRi{ª€íÔ>‰fG4éÒ§ÒŸÞˆTú! æ”f[Š»§åx~K'ŒÆìl¦ªO¢Yc¼!©ô;^õ§ ÉÃ*SЗ7—•£+%ª—×X›«Nµ{Û¯Žqüö«@½²s3í¶°Éãxä©ôK2 w„">ƒkþ”"0“Óp›«ü…ŒÆcÕM¡0ŒÍ5nÙ‚æ{\kMǺ§‡•@6]œK#ž°Ð{ëšeq6²6ð©ôK2 w„"=õ­®ki]ë-i¦(^Üní‰}wçmT¯q6Žaó,F[Œ$—^¬Ã ÍqÎ /am"ŽsÌ—Ìb,Ýþ‰æ@Žð„B§¾5ïw˜õfÓݺv#”Êz2WCŸ>ꤧ= éGbküìc#K¦S!§K'”ŽÉ,±•y§ÖMв´â˜©ôK2 w„"=÷­¹Èx‡´=Iæ¸Ý¼“Õè\ùûU6NÍ¡Áe6\~)'”iJÒ™®%Éê}­Öç`퇓ËhÈ(©ôK2 w„"=ñ­»VðýhÏ|½ ÇJ÷<Öß5çíTã‡n9éÛž:ö8çž8íÓµü‹¤CžxáØ*}Ì€á…Ozk+_æŸ@zß æZï®í¯,к©'–G$8®˜þÒ,FkVÈ*}Ì€á…O :Û=åÜoº²4c/øï%ز8ê¤Ûfjjû3 #ó®Ü¯eŸŽë*}Ì€áƒnpºÄ€§Ñ,È1Þˆ8>‰f@Žð„@6äì 5 *}Ì€á€lùŒ%oˆ«{s¸·Ìâoqyš¸|õô3 ΩŠ>‰f@Žð„@64¶ïhçìºÂ¯d|äìêc.ãUìe«Ý ÖQ§Ñ,È1ÞˆòP­Dã^Ç€ ŸD³ ÇxB 7#Žx9qϸç‡%0§Ñ,È1ÞˆTú%™;½£ÞŸ9+J=;TéÅÍ0©ôK2 w„"{yW’¥k’éÞz㬀¿Ñ<Èqð„@¿Ñ<ÈqiâX€_d€ÒÚˆ[š€ÿÄÿÚ"@¬==N€4y}ílµóñ½š±“g,Á2ûW…aæw4­±]-,;ÝŠù®ÎÐ'°§Ž`ÅßÔçì`çjá·¡ö6èo&²BÐW¿=_¦ùöæØW/?¯õ;üç©¿5”Z-KBb/I)ƒ6Ÿ7é¾[Ît·æ$À¦ ®|{ÎênLL ˆ²²1lð}G¡Øù¾ÎÜÁ5H{¬‘j«jLnø]  æÒÏJE³ÓSçúV5jÿÄÿÚ-PÏCCs—PD¶=#ÏîLîæ­#.Ά”$ ^~†ÍÛâkå¥ëÐêjp£¿¡§ˆ¿¹eÚáÏKLý“Íxo¢èaD€ š‹dÛô÷ñ/Üéd eÉìr|—Ÿì5í[Á«(”H¶l]¿Ë}CV$$Ù±tmàú~¯CZ$‰D«iˆ¶\}ÿ3åõ~ƒMzÞ³Ï1Ílµoçý|æXwõï’ÔÖÉŸ‹ôÞˆ¦0vÀ?ÿÄ4!10235 "46@#P$A%BpQÿÚÿäO%ÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË‘—#.F\Œ¹r2äeÈË{~}]i5°«ˆË„ÉÇ·æœëê9è47¼¶¶Ç„ßÑe²Ùdì]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&»ÎMwœšï95Þrk¼ä×yÉ®ó“]ç&£šÊnd7ü±úÐY¬µº6v7wÊ™äfô'<¦X`(™É«LíËü§'1ýlÑn*»JN_e›ûÅ¿÷Qù™ò¿ÍâÊG¶ ÕÈ)µ¢UŒb7OZî­aKY·=oy µÙëÝÕŒi¼µ|<·`èº'²Íýâß“¾‹UªÕjµZ­V«UªÕjµZ­V¿é™IGædŠÝ«yÍ_²1žC•šã&`α±…l³<ì]¯ÿ&M‡b£²fxX#<--îI¿Ê°SäÁV’ÎåÖ,äBH“Qõ$[3­ ì_W›ø—êâi¹‹â¢Ž;¥„ñ²$x»_–ýÍô•ŠUø¸›™“ø²m-¯gÄñtoÌÖ8˜þ+aÆ.Óñgü†{üÞ ã— ëÅþž"°Íå¡ÖÄóycê4]ÛU_ç³\NìÞëBVàSJÆ6=$íÒþÌVžÈLîÌÍOrÝjƽƒ°¹v<ŸX7‘>Uš‹a·Â°!ìJ°.KYÙ¥^,¨ÓAÍÔ§Èy•CÙL»]µð¬·`x›-ez¿”>°ÖF 1º;GIBUž¼4Œƒdqý2≠/J¼hËXܾ äÞÙ<³ÙyF\€}âËüg—ÑB6XA‘£+sÞM(~¢LÏX­«âl4ó”ÆÞ0þIcÏÃÌ'£•c˜X†œ%5zx 4#†SÅ© F>zc´Ô@øïÖ\«ÀXÛuÇLÔ¯tQz–MˆþÃ('öeá1D—7JµÎ_’D¡tôÕÖLQfP€~›yOÙeG­Ú¬‰"(±çeš%Þ²%˜«hH6¢hîÖrZÜëÃ@%|9B|«/Ã+f0PúÃV·u+Ńzù'ÚmýÏj¨Ï;{¢ˆR„a•ȼc†Ð­ÎÉ8Ê/ú§ x¦öA±Zßú¥86æô 1Œ3Ê{=³µ˜>0þIcÏn­q[·ì:z\µãéW|¨sg¥lq¤z7-[Åß`–æzå[Çëã®Uj$Çß…¬u Çj&éz`0?®Ê)ý™`­µ;Qœ²8†¶N¦ž:€ñšÙ³`¯bóÃôÛÊ^Ë,ú»¯W÷ñI6Ò„-ÎPYF4Í"~Ë-^VšGFÆËZöYOåY¿¼Zò‡Ö±û†W*€Ä6e¶x‚ÃF¾Æ‹ìƒÁ€=ž¨" ©5ºƒ/¹1Õ•¬mXú¬…xE·úÔ´(Ta°œH¬ÌÏ&4žN¼?«æ¨Éüaü’ÇúX§“6šÂÐ4f@Hm §S$_­ud&Ò ÎŸÙe?hN¼`ú¸W†ÄWÉ@Ðñ$Ô†í/HhØ0_ˆ’’ľ¡°§ò,×Þ-ùCë ],afro&YÈC«™âõ]¢>žüJi*béêJOª›+Qgƒ²¼Û (J§¦çBúIá¾Qu8jí²;e'ððݲ˜ò/$±æŠUæb‘ájÖ\«¥°ÐbHµ¥Ê(µK< ÒÙãäþã)(üÌ‚Íù²°‚ r^#³Õe&ðÞ3¥ Ñ?ŠæÝ!¢Í˪ØyûcšÑ‚ñ&&‰/‘fþñkÊXkÄ~—éîLr“C!'µÆ,Þ,Ís×)N%†Nn^2X»À…‘9gúd_OÕ˜‹<'4§ª ªÒxt'9™·;ËôhØL½(¯$±çTÍ Ä·ddªâM`Dn.p1Ëm­Û‰´¤SÁ!TN6µ&öþì~fAüÍ\v«ÈD. ßV‡‡°ñžõÄ5*à—Í >Ú7‘>I)|‹5÷‹^PúÃY¯­¦¾í·²ÉvR¦¶±ö‡5“¯¾lѳŽg¯*u mžyØudÈ~š2þ¥ýIÛpÞQ;FV?^ï´×Œ?’Xø¿÷ãó2æ8µ]L¿ë¨*æ2ä2ÜUúÖ‹k"û,×Þ-ùCë f~´<ÞIçÈ‚S Öåv™¬À‘y68jˆHh³§æ³´}оe}ZO®øîÖ>”»å$±þž?3 ürû,ßÞ-yCë f¾´å«§Y&Þ9;Àzñ2ãÇr<”ŒfŒBAŸt¥¼Ó"od/toA:ž’!WÛ&×Ãqxæ)/$±æÂ#‚GaU°XBc—é}$ã#¬?ÙÉ8ÂŒ†I~F·”â Æbˆ‚ÙÈîñ­çÊo¶n"5v°þqÅd$f+"AÀ‘k;ׄRÄ’ˆ&woË™~9}–kAõ†³Ÿ\~Zÿùî²…à¢i¯žNCQ{"4؛ޱ)nLÚ37”³ÊÌÒ±ì‡ 3†Õ„¦@åªN^0þIcÏ:ðÁ]{4Ú¡êc )T$†±É\ßzÊz¿þÉ—³,Uw¢b„M¢­ûà/$±ç¾|RDÆ„cc2MP'¿p×,¤$æBò’Íë¶cœ÷®Ÿg?!?Ê‹zák5bu·:N‘NSž›ûþ ›, 2Ü´S9ˆ;×[¦†7+ •à%,†êöÙÅ¢`Ç!z!b …à€ä/Dq9ããpÞ¸#Èã%ƒ‘Êó™'8Â3†Jü+ôñœæM»ÄIŠ[†2qœa¦F0Œ«µÓµtä#…‚ä½p•ºb„.ÞO(ü̃ñËì³_x·å¬5âÜ 7¢Õ3¯Ê}ÒCšð·Þ²·ËÒø˜ÐCò¢Î[â„DÎÒõNªN=ÀQ^0þIcÎ>¢1cŒ¤©çœÉ„7Ðf€‘1Cæ=p8O±¥RÏÈ虜ÆO0él˜N2q¢0tæÇU{·GY‡4®© #Lx잺-Ftà} ã¯BÁ^Ä\° ¦ð-Š1«(W¨V(Šñ˜ °¬@Xwa0á’b(Ù¤Ln<·ãc†žxòÜRˆFžÙhîŸI~Hü̃ñËì³_x·å¬5ŸýÀüÇ8Ö -ÊôÊKd!׆!'ËŽHMÉú–f[®ÍA‘¤ÿ+c Åf$Bm‘Ñ;­U-:Á:ñ‡òKxøõX£ÐQÄ=4íÑžú|ÇèMÓå%x’Sl®J}ÆØÁn/Óä`£n=Üœ¹T!ápõ$)ÏÅqO7 g “ sƒbáìˆôËÏP±ã¢qc.V ÝžD´n5 Lߪ‡NiôÐ>™"rã1» Öç,IkÄày¦¥7©Ð‡#š”žY:ð´ ùäräv«~S͹nf,mÆ’vê)Õ¾LÓ/91æ~™ìÜ©d–É™~9}–kïü¡õ†¼Aûùj²sˆ1‘ÞrHÆ‘e¼¤Ñjµ#V£F<|4äë?Xul1ÿ¥µç="1펉±¨ø%ª“ªMÿ( ÆÉ,~Mhß“Füš7äÑ¿&å£yV)+š& 2V¦ÐhÙÈX8dhß“F^Ÿš?3 ürû,ßÞ-yCë x‡÷ò§€›ÆV·OŠ+˜·1šá`6ÚÎù9°ë´ÄÒbø‚Ê.¾ƒ€˜aŽÆäP,á6œ@v8šlV“ÇF¢ïÕ×eãä–<ëÖ‘ªJP­‰—\žæ<µÇ"ªá[ÄÌ‘j<´hÊ¿k±)„<}¹Š±#yÜzÖ§‹˜†:Ä–2Æ¢ãíRj¥‹Ggrn†.Óõÿ¯™~9}–kïü¡õ†³À9N7GqT­lC9–K–±iåžÊÌ@ÔqWˆ"0õ½TåÉ㙬c2fÈØ;¶++¹Ób²LÚ7jɮՒXº žM)Qµ'eN­ˆZ ¥ãä–<éÙ¨Ì$–F”lä‰ÇÛíFËCC½Uæ¢v·‘aŒ1sUvX~ò |ì­ªvicØ";)ÐÕ²ÂÚp¯*•òÅ`6âß×ÌÈ?¾Ë7÷‹^^ÎÎ߉óKñ>m~'ͯÄùµøŸ6¿æ×â|ÚüO›_‰ókñ>m~'ͯÄùµøŸ6¿æ×â|ÚüO›Wmí©Y±þš?3 ürû,×Þ-ÿ_Õz¯Uê½Wªõ^«Õz¯Uê½Wªõ^«Õz¯Uê½Wªõø±ù™ã—ÙfþñkúØI°ÕjµZ­V«UªÕjµZ¬î[âGædŽ_e›ûÅ¿ë@¥¼}M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÚ]M¥ÔÙ]M•)JrÝ?‡™~9}–kïÿÝGædŽ_ešûůë m4ñýXdiFQù¶Onå*òf“¼E9Ct—˶^Œ¶OM_ˆºèšf„ݵg ,ž/¤¿«™~9}–o↓)4]õ¡¶¢X³ÅJLâW$uy©’.ÓM&áÚ¤HMÙs3ÂH…‹îv”ã=ìã ™ÙÓ,ñPœ#ÁàòýÕÌÈ?¾Ë5÷‹î£ó2·Ç'²ÌÕµ,µ©G¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶ºKk¤¶£NææCoŽéâ¶-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض-‹bض&Šfÿì¿ÿÄA!1AQ’"2@Raq‘ BS±#0“¡3Pr‚ÁÑá$Cbp4DcÿÚ ?ÿ© (¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(£÷ >Š7z(Êoê°ú©£oâ« oó^ÂÝ·;\.Š’ØØû4a ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…VyB«<¡UžPªÏ(Ug”*³ÊYå ¬ò…Vv÷GµÅE‰ ª¨G‹fC%^÷ÀÓÓ±UR™W Un7óŠ’ä1®Æ7§XŠŽC„X6ýaä¶ê‡ËGÄýõÄ{\P¼ì~CˆYMÒðMk]7ìïš©ÄïyÇŠ¨o†K¢w‹M®Jù•ݶ‰¦þŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŠþŸº8§Tæú§_b÷Éö€Ê ;Ô£"ÄM·œ”–à®8d¶‡!{ Œ×T›\-ÎpýJ³ê:-áâQÄç“£¼ -ÂI*Œm¯™T19˜­rÿð¨aÿ¥ŸÉ} ¿ü*£±ï…IÏŽî*Ž7`3­µ}ý?Âú:¶'øTq=‡c¯·ô_GÂ2&úÏð¨"7ÿ–ÏÑPÁ%ýìy|•4Äô›`Tq`•ÖÅ‹bî·å¦¦:v@ÜNsÂúnŒøavЍK§ˆÉ—¹mÇÇADÑÓÓÃûI_»ÁVÅY´³p¹ž6í|P¹*ðœ8³OÖ´mâ¯ÖÃ/v ê!ø¢ÐÏ«|3NÉ‚ÁÇšu÷õ²^ó‰\_‚÷f*î¾r7‡Žžø[pä‰UÚ-Ñ›dÛ‡°ßÍ O¾Íª,-6¸¿ˆ)›ŸºFÅ…Ø[„d¯­9Y»šÍ­GwG+¦@gâ†zÁ³fÅÝoËKÜÈõ#š.Fj¾¥ò[¢×SØENú™âv)ËØ_æ£k]%‹­ïsÔÔ\:cÒlñoŠú2 o,õa¿h|/¹1±µÑµø[°¶Ê_M+ƒ±ÇÖc‚úDÌÀÏ·…ÍÂü?×µñYànH€ ŸŽ'œ–Ì`ûÍÀÒüAQ’66\Š6‘ÍêÞú*–b{Å6Ç]ÐhhkCòG|'`زl£óC&´7ôN ,~x…Å‘ÆØ¯cÞL»ŽÄסmvÔo#6¼+ìú*Xèðû½d:6Îé·Ìbs¶Ýw[òÒÙðTFx¶ŒÓ¾”ôjkƒ©ØZëì9¦KjZc¼O‚|tš[¶7ñN¬d‘Ä#t1…Öàw&ÊÇjÃÇlm¸qLÓ½úƾ>³QSQ&ŽøDf݉Âé¹½Ûx¨Û°cóBÅÛºÁìl:xæ‰Âs(™[Šø¶ýu¿-&n‹ƒmAÒ7JÍ-*#‚ضçn6à¢!™oÌ6W16]^4Âçmoˆâ¡èÛÑ{q·nâ=½Ò-åuAÂÔ>Ön™o†à†xã{Jð(Ü|š ›2êžQ¹£W¿GÄÑß 7‡XÎYe½$•v^I¡ÄŸǺæï@Ÿ¢ ò( ­ËyÑÖ¶ë­¿ÇAË]Öü´Îè^çu#ä~ƒ#›ly§»cêþÖÛÁHâém^Ÿ–ªKÇfíg÷M!îs£…Ç{e_ƒW³}»wí—Žù òmlܨÚ]{Ü’S†3¿6¨Ø?4pÑñ4wÂ›p_dÀÑMÏr܃Úàë—rå+œÝض­®ËØvÂrE¶¶Æ#þ÷ô]Öü¾àöþ#Ûmî£ýSZ°Á?ôR÷z¢}tüMð»¾ÇU·ýS²hOi¶Ñ§`öb7.‰_ú.ë~_¹øŽÃñ4wÂîû…ý3Q¹ì™¹‘¼øOŠ™·<ö6îQ¹®¿L—m@øäû«ºß––}“HkÀ•Úù5m7Úî " “~È»w ='8áÅ =†Î–áÆÌmñoܰu¼ nmÆÜö„Üd4¸ù ¨éiqÛaì7ì‹°bñáìSä[ˆ7ÆG;U8Âñ‰·‘¢áDd”_¢< „MÄÿŠˆØ3Yž]>ר~&Žø]ßb×Áaø£‘n6&ã…1¢Ûì·û1»ÑDò‚ˆÛX»­ùi‰ò³_Lv°ªg2}!g2Gã¿EQÃ3çšF¿xö˜8*Zp>·“^ÌA½|•=ã37웾öÈ(àÔ¶¤1Ö‹U${zŠú6(µ5Q#ƒWÒêž*žÄŒk,æÞK÷ª¢§¦‰Îá–s-±Ø·ÝQB)7Ö`éu/¬Ä‡þ‹?ª¢‰ÐÍxžcé[‚§ŽY!¡cÚÒÛ‚q[Ô Ši©*1†7u†N²¢†Jyâa‘æ>“®3v/E CjIÖ9ñâ2t­kîPÇTU!¹}žÑý”QYðÊpá¸oD›Èœ*!s).y;÷Y2žõ%¦ cåmößÝTqNéå{^dÇX3ÁQÂ×}yÃW(ǫ茊,5ŒÅµ±‚ÛìT‘8ˆ"{[$]¹ÇhiØÞT3Ó}%fµ•;NY*yæ”R·¥¡£z%¤SÊ[á’Â5´¥³³»%Æ~EGN)y’æ» ñô>‹Ö4†l8”Q¶žx˜Ø›¹²;'zX”ÆZ‰c[LCÙox¿ziÌiâ;ÄÑß ºŽŸxܬÚ2w’{^<=¨öíð[Nz6c]Öü´½ÁŽ –ß"B•í ~6ØìwÊœX±Ã.~Ü"C^üz»ä7'IÞ;UT²›‹êªY0¶çaâ¤wÛ~Ó>·š©•Ñt•S.£f îàžçan}¬›VE­‹ržF½ÂÒÁÃÉTHd-Êû¸*™[pHÀoöSaküÿˆ¶zÇÞgâË ï`Ë$nÇU(׸¿ªªVF6v*©d8Ÿc´ñOqf,V¾þ*¦A#úξÕ3Ý­ý¥Ï[Í<¸0Y î ®Q­kîO.ÂÜ-¾áÁ<°Ú×ÜÖÈ0¼Ö ²`ÖìÍNýPßr{Œ`Ü6ùªet;0’žçánßpᧈì?G|.ï°Ü:°íwËFÝúvƒŠè K:9i9㠺ߖ™Å=<]y¾g`yU¢he”D\æatnñ eÕ“ˆ±—²‚i„®‰sÃsܾ‘dµ0â¼F"ÛÛmŠ‚fÄí,è”×ÄÖFé19†Î¶äÇî©#j.‘ÒŽ¨aËÃÅSÌÉ;¥†êb¾cmu ¼FÄDo†7<ソº‚SÚðÞˆüTo½¯ÕÝÅc°ÛjÅ+åF°Üu‘Éxõe‡³µ”oãÝx±QÉ3”¹‘›2û‘Çõ–’Ö4g¶Ê#uͱTóEül!SMm{¹„¬cú®s, †Hö6×Nзïø'ØE Œ´Ž*žfµýBXz^I®°È›lM-<öxŽÃñ4wÂîé‹2£{!î77ѱ¡ÄŸÃFì´Úã%Ÿ-µ ºß–—´O®lÌk±åky¨h)j[UF21ñvj=cãžC&­V‹'"ÊpÜuîu¢u¯–ß$æ–™˜q–äÊXšùÃ4qô‹oÅt±ÓÚ9T¶ÝÖnR iãú>Á…ýÑ(ä©‚hƪ6KƒQm­R–a¥— ƒéu.v‚¸8aeÛ•Ê›¦³-cø·äœÁ€¸8ß-‡z2¦ Y#a?î0Œ‡˜Q³Q8k¤5XX̺AÌNi•¿é0áuïè¢}Tшã1ˇ=¤£þ4­ÕÉ%¶»«‹qñUŽ_©"|¡Î‹§³Ú¤Ç áÙÜõ²ULðÄÍoۃǒ•‘½ðNÚrM°ü¼²R·ëg¹˜T l/ø©C™õ¸c&³ù¼”âH ØïÚcÄ1õ¼”m ›¨ãU¬Ög–îS5íŒ]·“+6)0?e™ç|[“šÓ-\N¨‡cäv¦5¢CxÞjõšÃ|‹[¹KŽ¿ýL¦ýG eúI3ç•äµâ[Ù{F‘~ïÉIM8y-ŠK·¯o5F¥ú¸óÞŽwc$ÉÜ|BŒŸ¤gwBà\…=$lcðk/@»€;Ö¦Nm!‘ö}£ˆì?G|(œà¸*i}ÖaŒ[y_FÔa⨦„ôœ[°(œkdš|/Õ²]cÝl…• ý9zª† e|; žß¨gåT3òª)ƒ;» †\³ê¨°Wu¿-:Ëšˆäèdl6çÅOõ©0{da{[¼;¼UñÉ3^Ü· ÿtç6vÕk²Q9Žn³ë£{ö‘óUf¥ì²Ý°ˆš-ó*7jÚÁõ@GUùßç£Xè$‹Tîõ°Ø•;ê¨d²?W†Á»€â³|µ!øHÉÌÞI¦²™#séõ™wÌ#!2Kf1¹¢Ý£ˆì?FÐn§‹ò‚ž/Ê x¿()âü §‹ò‚ž/Ê x¿()âü §‹ò‚ž/Ê x¿()âü §‹ò‚ž/Ê x¿()âü ˆ2:×°·î~#°üN΢Ñèô@ú }>ˆD¢Ñèô@ú }>ˆD¢Ñèô@ú }>Ÿ{Äv‰Ù²é§âœSŠqN)Å8§âœSŠqN)Å8§âœSÊqN)ÅmÀ>óˆì?³w·½˜¶ñN{u/À}â¡•Ø@'X@·â©ÜÑí3êªWáÅlC«ÅK«†!ŠGoU/vgG/[ðT®k?ˆ\yª's‹ªS¬"à Çš‰ð²Oy®S¹ìkˆò⃺ÖÁáÇü*g1œn ¼ø)ecaî#%C&Ø×dåJu–ÄF!ñ)’BØÅ͈¹<5,´FN‘ªgjí}¹Û´÷Þq‡âvnùÑµŽº9ã“%$v~×I&Ÿ0žNbÀ]†×(ÿ¨uØ2÷n®"¶Ä=Ôï®N °…TeúÃlذìóS§ÀÃcµ<—E±ølUzëÈ^_‡ª¥Š'BãÖŠçùT˜*uÁ¸zÁKŒâÁŠÎþbŸ†g[WSt[-…T])Ä$"êRàÚmS^G\©s¸^ò–6¸E„³UÓ¿ ðÓÜyÄv‰Ù»ÿvâÓà~÷¹÷œGaø™ÖÁH9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9Tƒ•H9TåR7•Ÿ¼â;ÄýõÄv‰Ù¤Âvõn®á¸ÛjÅ4·Í1Øx¬]}ˆgk¶¦œöx¦qQ>ün)Ž!4Üî@ƒãÙ¸ŽÃñ;7t„â0ºû6«å‹õ^íÑ7,ÆËx n;§–áyvͨt³Ãø¢:[°gêœ[w⽑9>ý!ˆ¢mÒýT—Ûîåè¶[³q‡â~úãØi¦sKò!›U,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RÏÈU,ü…RO·¸{ D¢Q(”J%‰D¢Q(”J%‰D¢Q(”J%‰D¢Q(”J%‰D¢Q(”J%‰D¢Q(”J%‰D¢Q(”J%‰D¢îoÿÄ+!1AðQaq‘Á 0¡ñ@±PÑápÿÚ?!ÿÈV ›Îçù7ƒJÔØ"H…Ò6íõ޵|á¿*ƒ´¶ð~f¦ Ǥ;çöì•Fm%N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ8§Ä⟊|N)ñ*º€õ¼¥ŸJ¥`Á<Ÿ6 ѴDzÃ/¡´¾ÑQ\"eÛ¬9\#¶Ù"ÙMhݚ㛘մ€©¾™Ô† ÐodלÇù–qÝfŸ§è¸aÕ‹õ>b4 Sh~`èYÕ}埴bß.Ì-”6ìë«o±S{Øký%Ý?k_Ç3±à¥z{’½=É^žä¯OrW§¹+ÓÜ•éîJô÷%z{’½=É^žä¯OrW§¹+ÓÜ•éîJô÷ ßøQ è];w•¢ý_¢ø´r"ÈÄ®‰Eªÿä²³ 餳ýÒÏØ]¨ßXÀà¤^û S2ébµÔ,$j»çFNM"ÿY[¾ÓD¿0¿JÖÕ#Pè—«ŒDÂûé5Ö¡Ìò ½=![3³Õ˜eÁÿ>ˆê°Ã ‹½1C‹@¸A3µ›+Ô!^¦ªi+y6¡ª¿RAiýŽ–‡AfÙ]b»JˆÂxØ –¶Š nÑ!j®\¹œKí¥›µ? …kfe`Ô™V¢ZŸÉ …K€²Ä¯Q‰­‚ƒBnwˆ§_ H‹¯w‚zK]Ka{ÀãÖXm\§Q–2­#ÈeiS#n´•lºì¼Gà fokù˜+m½ŽÝ¶ñäzVµ­ÈÀÍ Í÷ìÄ­"Û¾ó? ×µM`ÀŸ81šGhðF§wœ.‘UsE(eÈV븕êéY3NðöÁB"£eùo)ôe9_F[Âó±Ko¢µÎñŒè7„jàè·ˆh0²q3Ú`pJ…½ûÀ+¡ŠnºÁZ^`›9HòÞÌö.;¾i‡Ê÷DÑü°F´Ì õŠBÐãF#8”» mÊüÇÕÃ1Bô;ÅàR]Oûôèg±GÞ=nŒ ½30 ±&kGö+2³ÝfZ³À¬<9¤(‡±®õ‹«þR¦°!:¬yV¸Þ-ÖmrˆÓ8÷ˆ.D¯Ä¢'š*мX⎖=‘’JŒãHµ%R>‹’èöXÝ="·meýMƯw=?iD·h¡iŸ)EDáÚµ¯h:¯vP´Dîùí5ç ±áÈõ&³œÌŒ«I@ ÝbÉ•jÆ jüÄDDjÛf’2ÜŽ¤)¥‰¤æ§ â#pQ¿ÉðÒ/4¿Ó‚,%.7‹G}©¯ðµ‘A]¢Ô»Ií 4ÅÔá3“@û¢kßM"ÂëÃO{»8èÁe½©S-ªÁp\¾zÜbi¿ž÷œ§Ò&E‰3Ýð9G©.smYÄÅï-¸mÊŸÅY×|Ùå“yraçY”5‰r„^#sW…+¦ä©ËJPÍmOQ®»û‘h1ZžlýÔ¬@»Î|¡Á«[‹½Æ’›ÞT·¼óEZXpµÔ-¢Ûü¾Q;¥å1ß“i¿¼ôéZÓùŠ+ Çu•4>—I›uÏÄmœïËyr¯Ñ/`ÁqBTZu`ŽÀÒÚ¾¬^uÍ(h¥Ðn.žýEß …Øðäz‘døõU%„zÚ·Ũ.»CaiI ÓaZGÛŒêžQÕ¸X ²Õçl» ²¥ ɱõšÐP×hZ«: ˜>^™‹ïí… è\¡ÖÂÆôýÝnr° ˜‚4ì‰ϖ Ë>«Õ)Õ5òg[ 7¡D¹B´'º÷€WLg–ž±àùÙ”ö¹€?˜Î;¬ÓôºB(54Åû°Ñ#qž¬³Ù‰***šOÂa€hO ˆÕSRr»R,4îõ•V.iäJé/n=æhAÜx.• ŠV®;¼¬ Ñ Í‚»ZÊ g»ÍàuŸê™ZL•Òžï³Z”)¬éüþ;¬ÓõTÍuë“ÖТûÀ¾ÃÊ/Öjµx»«Á!Nr;R æÖK:@;BÜ=p ê[ýÝ£3GXzæH$ŒÞÛl±ƒÃÇ]ÐÖ¦Z±³³u6–Ê¢U;¿ÄWÇuš~þ¼áv<9¤UŬI´VwD¾ÙX…ù¨”T#’Ǥ6ÌzÆa–FsDÆÓ Ūʊu–]p{c´Æ~-¸ÛGè­ô6ð"(Å`Sp-©.䤃R”’ߎˆù0K¥ªÀKOe܆¤²êËérË«/¥Ìß©væ‘™0.‹hJ¨8t{Jh’j Xg$PiA{øaï´m£+äK,,·LÅLÅ PóeUKa@µ¼P-Ov¬péÖ±)¨êhÒÜD—/ªt@ÏW,º¥ô¸'6ïSU½O/ .¬¾—ôqÝfŸ¿¯9]G©-Ø·÷(5bÝR§êª£ôZk-ón5ã(T |àA˜(ÞK†AUà¼Íx˲ ­%»aú+ ÷~˜¨Ü#¶戂Ö4”ùzÃúHïÆt¸‘‰T é]±>ÍØ®¥Ò®îB­¥\’” Öi=A¼Ë©b¬Õæks0ÁþåuôÚ3X·ÁÉr{Zõ™§C—@3åÚå›üË2½ øê<šT9…àKÓÐ ¡”}¨w®ŒÒLÔP ¼¡ 'ŽÚ?@4©`b‰|¤Ñ¶šÃ]_ T;Œõ„•.2ž—-2ñ€Ým·ùLeýª ˜µ-Á¼'i o EuµkL ‹Vö#p€åÀ EºåŽ|î_UGãiž¥i,=;we&eöoÌEØv@0ÝýnQLXÁgS·Öiûúó…Øðäz“µÿ~ ‡-Ä@µŒêÇ6(ÖÅO3àŠâ×H± 3 ù ÄOÆòÈ™åMö¿ê ižÝ)H²¿ßÑ] ݤ®^*ûðyS¹­µÇ>C14Qg¯Êƒ1ór+]3DoçÞi¤¶óûw‹ä¶¼ÛïÍ™R6Öh=I­52cþŽÓMÈnéÐv|-û*» Áöz{> !êß_'h•èM :ŽÒõ {ÇjaÚédq5“´·›;Èò‘jŠÔ¸ Véý'“}ætÂû×ÍGbM.õˆ ­­ÇNê—t¾YÒ%]:NŽÔ&œºåÓ í*¶´« 0ŸHƒÖñ¢mª®þ±gíå[SË´wæ~CV¡ò ÑhÐz‘ÅY]ºt¼xî³OßלŽÇ‡#Ô„z·þæ(½ªèËŸt«Úþ|R]ëÚµfmqçbJQWg-æúM4< ïKL7çôV¥Þ½†ÔŽš,©¦\RT… 5mi8j2 µ-d‡ ‹¥?Bñ5Ç·¤ ~‡Qº÷H‘f´Êï÷<®©þ³‚ÃÔ7 +WRãf.9×d¡7ŽÃFjÀý|È…ÐÚÿÑÞ"“Ô0ò;ÌÒÉÉT~v@G–¬×ωF< ` dúFÌÙVó§FZyΙÃz¦r%Ç[š×²¼ŠËíPÞ-jã°Ô§c³*»;"…»Úª1¡ÂþÑÚtú=ÓËÂ'ÛéãºÍ?^r;R_Õÿsl¾W-}òʰúןž´Æ5ÈèÌSºúʃqSKŠ&–¯S¬êFÚË3‡&æ¿Ex<âI,+ލ=xâgÝÌ è¶ë~DšŠÍ@V†ùfWÜ0î·*£%_¢úu­c´†ÐÀ¢)±¡©˜÷\uƒôRÁJÐÛ¬µÆ¿QUºº„‰a·W¤¦ão FÝ-¼¯öçWbKªðêó#»§f_ÕD]U_|L·¦Ù<ëC©C-¥Ï+7kø‚RÚ׺Zæ‘j"ùja¸-­Hª²£WißHÛ¶sÎìÞØs-• ½µyÊ‘RеYtbþa."2Þ “O¤hÊŠ¶ÙE˜òªºCÛHok ѶûÂ]A}Dq*üjé7ùNÊÙ^† ªÁ¨òï6|Ü8æŠúxî³OßלŽÇ‡#ÔÝÿpe6˜¹¯ÏÑø?1Å»ŒlBU 9ÖWIPô!O˜ôÂiSñ¨V¬X·.µÝz#‡dêëýŸ'ÑZ¥ÎÃÚ)¨2·©EUbÒvžÒŽ„¢î³(èfvžÒ‡RQUEtˆ:—2](»¬Ã”guƒÃ°ö”gu–¾vG.T E•ÑV¬):FºÀQUExQwY€6 ]{}\wY§ïëÎcÑêOÎÿrÝ5–égèÞé§ð3n0}ï"Q4›-/µëú¹Ž,%°¿!ˆ™0[reYL.iÓ ÍpO$ºNË×è­V Szëß]¡À=ZÛò4Ô››öÙký¤½ø¾åÓ¨º—R‚¡H­vl0Ž3FKX¡Ž°©Ñ)ëÐ×Ú{»Å‰ÜÄEm¢š§¦}%;ÏF¦¬Dp/æÁ6²²í,v§e²ë±´ÅÆ**ìa³.Äÿ}û§X£i}(f+9׎Ğ7¡VûM*(m6´òéä©>eŽœÑ¶6•ý§÷5<Þ|¬¿sŽë4ýýyÊì×4<‡Òmݵ3+;xÊ ž„ÆÂ³& ±µ{_ˆØß#•ÖtéB*ô.þQµóÔârH7'6ô4yÍRbÌ^²ÄiïUc²Ì€ìŽjÍsT¬5ŠVÄ6UH^ÌȈI_£q_ij†êémøò5ûœwY§ïëÎGcøÔy·ÿà·UÔ×Ý÷~SçîqÝfŸ¿¯8ã§êSõ)ú”ýJ~¥?RŸ©OÔ§êSõ)ú”ýJ~¥?RŸ©OÔ§êSõ)ú”ýJ~¥?XŸ¬F·ýëîqÝfŸ¿¯9ó\wY§ïëÎWcøÖ:¦Ñë-CXÙúXoÒ/NB>Ýâ*+½Û_ÌgTÄ~eçc ¨:lVˆ%èŒNËo ¥î)¦žp#ãB½#K~˜çÞ•+…mügÖiûúó…Øþ3=³î ƒa÷¦&pì|Õ·bÞ¬s»Ìª­z@¢ñLt†ÕÁ逫Qþ˜¹Q$Õ(Ø€E6kº…[*;Q°Ü¶aE :ˆTÍsÝaÜLT¯·CøÜwY§ïêÎGcü×àÿ¿àBâòáQšë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë°_½*>ø¸Ž-ï-ÿIÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9ÈÎFr3‘œŒäg#9‡û%û/ÿÄ+!1AQaðqÁ@¡±á‘ñ 0PÑpÿÚ?ÿãöu—EÛÌGŒí§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´í§m;iÛNÚvÓ¶´ÖæÿJW¡/l^Êl‡Õ? ÷‡ôf CÜÿÈuñº¿) ãr*uoIÆEŒÚ¯lG("€6DL"S.’-inWö³fÍ›6lÙ³fÍ›6lÙ³fÍ›6lÙ³fÍ›6lÙ³fÍ›6lÙ³fÍ›6lÙ³fÍ›6lÙ³­Ñ@Å~ßâ÷¡üâ`ç‚X1VúÇ1]€iPêç×çhhÀ7ôe^óW€J„XÄŒbo*Õï1 ÂØ)v 5MÊж²ˆ´0rAØ·«=]rÁ„°Vn*I÷OûCDðYÿÜ\ ­¶*y\bÏ¢)6X/bµ˜ûŠƒ€H ¼âª»Ë-ј¶  .PáìÔ­ GV0â–Šz7²\úA[ ±\ Q‰tlj©Ä8­Ìeð墋ÌðiàÓÀ=§€{Oöží<Úx´ðiàÓÀ=§€{Oöží<Úx´¤õûÿÄ%ÜKÖ^òŽ«¢Øýûüà €}þ8„û’Ù•Ê mÅbZ‚«pàrÄkÚ÷ŽÕ§/X|Ú×Ò°fKÖåÿê­‡}±ÈÊsÓšæS”.ÁV;“i*µ¢‰dŽZútåéWk9\||WÔÄ¡Z`Íæ¼í°ËÚ=Ç_l­Ž˜[ësDÉ{—¼¨c5ÍÈPûÁ**°nô­*¦%°`÷Ê:WÖÌK G™3vaÒ´LèÌ(à:/"Õv@Š¥)yZfSE©µÞ"ËQD&­Ë©«ˆœT..}7-j 6½ Qd0éñ±ÁóLðŸxÿ^°Àkn¥•P»éë:©ÁJ 4[¶.:üÍäÉ*Ø‹¯Z3èu9H œÅqÈ^O^ù¥¼KèûE^¢Ø§‚^‚‚löS˜@A•¨sŽa:#7hÏÀkÝCµ~i©¬S@xí¹§6à ^ÚÆ,oXlÐï#aNåpp¹°Ôjà£*#L¡YÆ×Ì¡!¨ K]ësI%¿l+»¹z¾†"#Nþ0¨œQ#V¥”D¦ú·qè¡…›ù?˜Z¨ŠÊ«R}±–Ü®Y«k©NLà¸Q÷¡± šâ^æ´~†˜htÌ`-ØpÒáNû€s jÓÝúD\†Å1]._z¬tœ£×,vh4¢º×]·,ÿ‹¤Ã›’„Š$ÉüŒúÏÑñ çC›K}båƒÅ,8¼BPkE†”»d"ÇàŽí¾V L%Û yi)­PˆhÛ€- ÷nýP”¢ëV31ØD£A®YìÜÉ–fåVÍÚ®}FÇOÌm¤©ûQ«-‹úFd²e²»µqÉef™ƒbÎ O°ø ô˜iì˜æ¿¸ÒÇy™‰ã‘@©ÃºãIŠ‘*¨³í+&\N‰ÿ™‹a«ºÄäP4”-á³QÚª^Œ{)ã1÷| =Uúüaƒ~—ïV"Ð8-ƒüçë‚;7¯ëq‚†`¶´;ÄIAéÀiÔIu`¾ÆZé±/ \ã@îÄ,z@Ž]jpåÞBrÕû;ÔœìlvAø;þ¥¤Ý·ËùƒÖ¢ªå·½s A àðæ-ĹÞõ“«Ìð=îùúàqטîºìY|_5pÃnEŒ¬m+wQUÀkNÍŒ´Ëe©º¨Æ†óõ`GTn(Q,_ñ(œY¢[Ùµ¬ Ó*5–oÌóŒÙ®hˆLsŸMjSÆÆ¯z/oæ6•$°û_´VÅ—‹iv";c ·P„Y!{ò°¢Kº’Ýê}‡À_¥)!e^Œ Ó/]¥”Ýaè?k„m Ê{ …dÁa£Œ_Ÿó™Q)Šºx£U½´ µ¬;TŒÒ}ÛãB輋!¹æË„ *k½Ç1õRh{,¼®ç¹³ˆ‚´FèÂ& –ðUý%´Ì0©¶­dj%¬ŠtM,óQÄÉêúvUQ¯GzTnlÖ¾ÒâKW]kéÚn´þŠž£þ"̦84-‚ø„ IKmj]Æz¦=Nôb<²LŠ/؃'ÃtÅöœýý¢ä,€3Â3°(<· ¥Õâ»®ª7éAëÅ­½)‰ç§y‘©à—ܾ‰µY.à‚,búþH¾Ù÷‰­C’ÆË(㬬5o±ÑUÛ« -Ø·Ò[††Ë\w†Q œÑoæâÖ7"™Œ!;Š&ƒÑË âL§¤ð=T£?U¨àü¡wmÚ ,›+¬°ãB™6oqÙßPzÎx¹xS¤Z7ˆ ¶ˆs(Ï1ã;¡IsŠ`Ô.:7+yCì±³æè•-æOô%↿Ã|¿ú ¨)®Ú{Í)¸kGÝŒŠƒ8H2u-Gzâ R]EDQ ä}N·@ç2˜§°‚ Ä6 ðý@^R¥Š­ç?Â8û—Æ„uÔ‹oÆ–Ë×dÎw¢® Õ]z T Ø‚´ëBTÞé¦<´ªÊêµoÔÄ4¶œ)›oø#qÔhZx£é%pö×üñ+}(®k…ôléE1tõÞ¥ïˆFÒŒM{p2²ÏÜð=Ý2ĸ–§ñ.|}tØ2Z‚ÎW ÑíÎȲ¸YæÐ L¸%Œ.1Ú E›#ÄrÛmÐçFÜ\—%´Ú˜Pîo\À¡°›¬ž¢kÿ’Сec(âZR°j•T×0<ø¾KvØ9†¬Í-ª;p‹¥“a‚ Göß‚GvÔ«á/³ YægÞ¾4*вâ3ûÔâ&Ñv ÓWx½œQkìb4Tp€c–&Ò¸k![ƒ Ú(ƒˆÞêòÑaýÑþ¶ýˆÂ-Ïå*`*?pb¦±–°ë™Õ¨Ühï,”0^žóÀô ’£J èŸ?á:&¿ñu# V*=Áðé>éJÍG OåƒgÐ1üCG´ü—c÷Œ¿ö ºW­Â>ññ¡“Œ¶ fÝ™UbPp·ëòêõU q2ÂÿrBJ{ÅÚwq …0€¡Ì¥e#‘Z ã3Ž ‰åÔH¥e¼Ö<)b ».xøþ¢kù ÷/Æ»XŒHŠ 9˜g4åŠèÀ;?ÌddvK§¡M¿a²'uÇ6 +ÓP PyÑýiþµ kˆ5P´m‡Ú -ÇN¬õ‘îK—fHæ `×<D>Yj(JÆóN£Âõt¬º”ÖmÇx‚!¹¾GR¶vˆ¦ÅØ#ð»Æ´ÐÓ s[ý¨f_ÖL*RWDH+,6ŸH›Ç—‚ëÒ òµMÃNâ c!N”0[7Ô-˜]©ÃN5Ñ©¶jƒ1Zh¼§ZÜ¢ô†uŸIÓ¯Bx]W‚wÆ [èM0`}%>y¢‚؉Id‰±vÆC\ % »Z*YWenáoÃÒ7Zq)vEb0=Èôà -Ó]œñYÄV1ΨÌíîð]zEzP›,nÆÎçÔþ`Œ±-¢Ï§øxN‰¯ä'Þ¾4,^•КÕKM¬ZÞû°иϲ\_Pæ¶¥5ÚsÒiú®¡í€©ÒoEp–aU1•‹ƒ`µ|w†ö•£z õe[.hÌ ›B•ï<GÄAXæÝ…ƒ8¨õˆ[A(ªãpOKÛ ¦ózRãQŒÑ9ã0¥[UÖæNL>ŽS *ê¨×¾ Ak¡Ï8W³øÐ¥ÞÚ‹w=täÍ’Ë9* JüfER$Ñâ~ÖÖ;ÃHöXj³é/¤TSE®W:|ó L±¥…22R„0ìŠLOW²’“]€ƒl{`uÝÃ:6ÛÌ,AD)ýO2ʔ؎Ä褱Ì{r¹Î )¤£/† F¿ÐœÒ1ð¦u–ݲ’ß"+Ó±DE°Y¸´j'˜;É@ Ì¿airh…ƒôÔ]WÌ­¼[YŒˆ»* R7‚¨¦ù‡™ˆ0•Ø·|“+§©•RŒÆÜ‡‚ î­Q-‹+¨ÑyRáëuUQÀ¾‹NgÖ5›`AO7¨)* }@X1f× ‡ãá:&¿ŸrøÐ¬ð».{c«ÜTˆÀ†µ¼œ†¥±sÑ´)'¥ßÒX;ÖE;›#é­ï,E \ÎÝPܤc™È/@-\ÊÀ¼ g¡–ú;Ƕ(5‘ÙÐ@0^&½£ë­xˆ|ÄœB–ƒÝ„¥¯uÚ®/pý®K«¬€È`1Œ*žwHìÔQ2 @+¯B`²µ1«<+{Ï´ïF4Þ·¼Öà³4§næyÌÁ&ÍÃaÀ¨E¹ÙyoëWh…%yr4-Çxf(T‡¹  ÄÔ£Ë*»=£ÀŠH5@ÅŽÑA‘YÆyKÈAæYÒR„´qYtjŠ„.Ê 8# VÅZRz#I+sƒ†Êa*‚ Ë$ñã+¥±y¡§¤}ñM¾éXíS,û5JUKÌÛ¶aü”b€U˜¨• ´­¼Ü€*,‹9I´ø-Z‚\\¥·WÐGV)‘¡mnË6Ó„Âs ±ØfÞa§zÐA; X&¼"·×R ±!äI Ð^Yo‘‘{–ÃP H½Vh^„èšþB}ããBn”TÖŠ Ì[ŠÌeTVƒjÇ•1q¤Yè¼%à |ŸiWžÑˆê]x¬ÌR³u.k¬Î­Àq0Ðq…eƒZÎîâƒBb„@µªñRÉå<GÄiLp ¡u``Ò©ÝõK"W @Ò“Ø ªëu­¦·ä'&òG%¼OÌÎ&ñ+Dd)TU'Z•] ¾j™Yã¯A¶¢­Z,rbô°r0¬Q)•NŦM]Ü4ærôÜ&Æ—U-*õ]±’ ÎY²YŒu‹6Ì››@è¦ðÌÏ W=9–Ú*.«t*Úç…s-f÷Xx(á­1”UîʪÁÁ4æ`yóÈlÛDA(ÆÍgOA먩X`X!,ÉOâ6òoXZÔ¼*˜#RСvpUæ`´C[-+4µ*^³QW¬…¦úgÛŠÉòžÝxÀ§¢‚êËõ™õߦ!z–±wjá!Aõ v„™<x”OŠ9ê°9SˆØÔ%вY“ü|'D×òïæ0C”é Ðâ œ+¯jrô.ññ¡1Yy¤.ïפn2ÆÚ„õQÎôÒÝ®Ø(úF9Vˆ hÁ•K}¢ŠºÕ‹õĪ;¾•q½ô˜Ê-U ™Ö´e¾„pÔeYW«˜ò¢ŠÔê ƒM¤ôЫ—àz> Päë>ú¥¢Î ‚ꮳ]  1h8™o?¢c CaZzÀÛYbö-³Àuüh¡AR•8éµ;þ%l²éŠZÝI™À0«¬×H‚.ކàM˜ç¯¬TvÖâí·¹Zf+’v7ë•}¥"8¢;tÖhv£48-ÄwhQe£**Ö ÍJ=Bca ÁQAM)©U ÍJ=B5#Z· ½_òð_ÈO¹|hK¥õ0úEÑ$t'и®â„zú4„rŬ1ÉÕô¼ — úK-˯¦Æ;Ö¨RƒÖà´—I£«èC”Uäg»¯IÛøÔ¦K1ë|FëŒN(ürK˜©g{ó Jñ1¤ð=ýÈÙÌÃMÅ´#Èp…Z2$f#¨¬ÓQ”!bD‹!X­¨v¯ë@˜]‹ey´¤¤à¢"«ƒëbRâË8QVZ®*‹_Æé¸®ÑÚl‚à7rÀÈ ´ÈÒ&I\[]tZº`^f }Ú °w%(‹6« Ð…ÙO—ð_ÈO¼|hT>éŽ*ÁÞyŒ±QWÈS=æT\E6ú›`¹À¿(·š×xLÞ iPv_ýŠÂÕz "mf•ÅÒ¢Ö9•)áô¨ö©µãÚwemìïkªòÅßuZoËÒ½ öžµ85 ÕGÑè…—¶Iàz>('Äev§ª Á¯E`af¢¹Á|YÃÁë0Ìj«¾„ÇH6 ïL¯d6•”œöŠ ’&Ût.ãQÖ%¹îæ‘*¶™o-nƒ%M²o ^sÖ>R°p…µ•¬[àröàÏyŸÜ_ÎÛ@áaŽŒx5TB`Ç1á:&¿ŸrøKð(¥ä³îKm½(¢Š(¢Š(¢Š( ”¶¼†¡ƒñü'D×òï-Øfħñ+Ç~'‡{Jð߉^;ñ+Ç~%xïį ø•ã¿ý¥xïįø•ã¿¼wâWŽüOöží+Ç~'‡{Oö•㿼7âWŽüJñ߈7fDi“éþÏ Ñ5ü„û—ËMµlÅP½ ýœþÎg?³ŸÙÏìçösû¹ýœþÎg?³ŸÙÏìçösû9ýœþÎg?±'ösû9ýœB”Vض¶ÕÛýž¢kù ÷–©wýDõÊ ¾Ä*% Êè’6^¹Ì aßhrTn°f8÷{e Ü*Ãøel-Þj½ª¯¸ì*DìKDѪÖ`iÆé  ³Þt•ºÕ6V’¬/ñÌM‘Qt—SÇÒ6kФÈZ¬³y"PRö`•0é:֥ğ²Ã`QM¦.ê ƒÉÀÙ†F L!ë@Í–o\Å=TKuª€@°Y¶Í*õV3 uk,SÉÄyósJLã\c0ƒ=Àš¿—†}jë§ký7\@ –3×.ì Ñ5ü„û×ËU¿ > (nmiõ,‚©+.4«³.×ІS¡°‹Aj•ëÚ%àë¶ÀÛKBâab UèÏÖàí°"8§¾Bñf‰JV‚skx©cÇÎh8® 3˜ ÆÌ÷—.>!4]¸uÒYcàÙ Ûf®¹WQ~ÎÜõH•*îöâY1cXX¡× £˜!+E ÙMû6pb³Šç˜Þ´â{k}£fQ€"ÖÝcïû€ËаÖ^½¡ëµª ŽÎu)3ˆ_|G\Ü´A% ÝO\±ù_û¢kù ÷–¨^4OTõOTõOTõOTõOTõEËªÒæË8aÒÏTõOTõOTõOTõOTõOT°xßû¢kù ÷–ªÎƒê^¾bi¦ši¦ši¦ši¦ši¦šfš¯*€@?Ùá:&¿ŸxÿµxN‰¯ä'Þ¾ZªÝ²à…­Ó=¥ø5ø-ÎL_$Ï}E±S’u,΢a‚íwT=jñu]à`sOàsöD@ƒÌÉy(W7ÜW-Ó<ö3)°E—Pí‡øe?h½w/‹ ƒÕ°""À¶âø6ÁÙº—ê+è32ñeË*[âR–j¨rroŠwØ©>[ÂtM!>åòÓ×B(¼Š#ãU–SC8qÏXȘ-M*Ãù.%Œq‘*Uµ¥`S•éçUw{Ûyïø–ÛbŽ(Wós;¬„ÆM5m™™-iø¾Þ¬EA‘vb‹Ô>fx–Rqu5u¥Y·m^ºKÿa™µ¢]Ó±Uè1U¬é¼Àj Ê ÑW ^>[ÂtMîuQÒ}ãþÕãz&¯O÷:ŠÁWöªH)'†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{O öží<3Úxg´ðÏiážÓÃ=§†{E¸À¯J£ÕþúŠh"Ϻ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚ–ý©oÚšðú¡ö_ÿÄ:!1AðQaqÑ"S‘Á2@¡±á03ñ P$`pÿÚ?ÿUQþŽa³ćÐa}y(Qb7»Þª^Y“gR»ØWìlú©¡^'RE¢ôÓVƒñÔTé‹$RZêQEcá8µ— íÎÕìøêÉÀ§š×M¥¿Òƒümà: !¥çÚßK@ú®ÓŒ"ê†ëÆäÉÂ긚[`]l]…EtËëÔÈñ )ó\T— ô:Ï.h[Å AÎqXþìäo3=ºÐáuµ®ü(¥&£h1í:ºÀî#—Tô¯w®> ÙX êë·ö´ìÃf&(Â{¢•­-ÍŠTÖ z+EXÓ@-Nœ*ì=fv›`ý$>ÔYˆpŸ¨ám˜_SK>w¦MK¾”p©¥˜Ú10¼³}Þi³PM5»¦´¡°Õ ¹g\ð¿Y-_xSnÑ6n]ÎÕÖ­>iÓ°YÃu”Æ–]_¶åvY.Ö‚©“²î¼Ó—ÿKP-")7oåñZ1µ“‡Ãš‹%,VEuí¹7BÀ´Ú)ùãbfŒ‚ÈN„+GyáJp¥QÑlw¼âN6ßq¥Û…ÔQ4D7C-i5§¡¥?BÁ}Kœjq³—ɼ:¦Ì<¹ýåî"×cˆ²–(š.G—mà Ø+vÀ7'èX5$æ¼Ö¢ÒvNDãËâ¡ÎÌÃhk"õÚ3~+¼×hÍø®ó]£7â»ÍvŒßŠï5Ú3~+¼×hÍø®ó]£7â»ÍvŒßŠï5Ú3~+¼×hÍø®ó]£7â»Í9Î{‹œjOÆüÿÄ;!1AQ‘Ñðaq2@S±á"0¡Á Pb#3B`pÿÚ?þÔçd?±ÓsA‚ÙB€{e£ îáÖ@>«.Ð>¿n Òí¯gzÜC“ý£ïÒŽÖ8 +@+09Ùž·/IÖÚœÉZ±e³šì?Nha=€Je*f“hÐ#zü(Ê% ÖÆE¸±™4ê˜Ã#oiIíÖpÏöWÔéÓ© v7óä§.·"ˆÅlýZÿí;ÉYèêN «XûO€<rUí¥ê×·5õH™Ä—k Dß÷o4]‘ËÅz[pîù´ÎÁ<~Áh« Kõ3qžIìÜZ2”óPZðU:?)]ÛcP柣¶µËI—Ðoxßi¸Ž^EXiVÞ¸µÂÙÉ6©fJñúï°[½Â°&›€Ü­é\ n·¸·s™2 AÁV¡^£YF53ˆÄ™žÖd¬)5õÁvC½ ¸/ ÎÏãªÐZEõ&\óÃw%_Û=”±riaqb¶¸2) ‚\ìPkÄ/I)†27«*æÞì;Çö(Æ UÝ.ì›}ÒJpÈ¢'èa‚³ÍYÞ„ÖTcðluµz¤X%zGXÝÞà‹5«5­ÎGÕ>³Y'j¦íi>üÜЛS»üËG]6½)&ÕV¶«I'¯® z®¨v•nÃVñ€oUiÕv&Ò}1ì.Â|ÔuÇ’8#ùfzÏ’Ûlæ˜Ü¹¡³­ÜÔá??ÚQTá+.¼ùvL,c‚zòR£õŸeSZ:ï»x¦á ž N=´lææDq0®†Ñâ˜üCó9x)W^ÐìÁe‚•1Û‰Þ³R;ýɹö<Éh»Nþ®±0 ÒZÚôšÆå3òuJ ÍGä†ÒõM\¾{+¯hvBëëÍåG\9(ë‡$0ëÀå   G]mEuô䀈ð^dy¢g èu×ïú¬Í!{n*.§Aš#ŽkMÖs˵qÊ­‚˜f©;|Ï^(PªÃ¬Aò*ÆäÖ ×?ÚÛ±\]‡`“)Ùáãü¡1×^å‡]sD˜Ã¬9áÿHÒ?Œ«ŽÞJµZÌ×iù@œ~Y*–w,&Z`N;0ĦÛ\‚™¿Ã> öuÁ:Ÿ˜DËLˆè'Y]·:g¯šüÜ{&f#nSÁ:Êé­×-1òL°¯RªÌgdãœeçâ©Ø]ÔphaÆ9*º:êžBsË£Ëzïõ¢ÌÙÒ>ýëK¾/ªòä¨é ”i>“rvo¢w¤7.Ÿ¶y*šb½J̬b[Ùó˜ò„Ý7QžÃÁDãž9œåSÓµP÷8yƒ¿À&úC]˜5  ØóßÙ ?p[¼|ȪzV½1M­83fÃŒã½RÓ5i°4†Üf$˜Ïy>*Ÿ¤7À <ü#o‚5ehƒ64‡?z©£íj¸½ôÚIÚ@^«²ø-àªì¾ xê»/‚Þz®Ëà·€^«²ø-àªì¾ xê»/‚Þz®Ëà·€^«²ø-àªì¾ xê»/‚Þ1cCZ |ø/ÿÙplugins/jetpack/images/screenshots/beautifulmath.jpg0000644000312500031250000004140712651056012023423 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚû,Û«t˰¢}zó$™Ÿ¦}4å»çŸ–>ÇÝõYˆ¼~úµæoé–·ùsXþœþh~”þ^Ì}¡ò¥“îp~^ïʯ†¾ý8üÐý*üÓÙÛSBÖ¾ó½€#jZáO¸@ÁÊJbùØtî9?@8ä8äœ8v8åÇ 4´œç´›½´)9¹ðØÌ¸ÌŸ\L+­ºo¹jë­.¯°"åüf½é09½ð®u;W„NÍ‘[K×ñºzÃÌ_¨²Rô´U¥S½áÆ÷€½ß)P9[¥Ÿ%E±dW¼¶n²öµTY• ¾T¥¤…Žbå9áÏð<ûv9ãÖÌ®Xê€9á1&ÀN¸€/ZôeÐuyëh½Æ6¿`’ÇÓ°+XV¸ž²¾ÚKmK€*VX¼*þÉæÝ g§Þ€iÛ¢`S`6.hÕ³¸ÙpsÒR´«ß …r§ÝjÜÛh¶JÕίrZíµx‹ß½[›n«Ù¾´Kïb‹xì©ÍCÚZƒ¸€kIû`7"fDAÍóL¹€ zìö`Æ¥‡°<ýAÞôÐ;ï¹Fó``ÏE…Ú@®5¿ºC/ˆ;0a½l/Ÿþ€<8…è*R1'‡×dæ€5Þ6fÂAu OÈWîynqºåàSíw6ŒÞc ʽ•¼/Ms±ý0=g©Óî@ÊEžo¤,vEÆsVí-wã°é}/Uø›¾´ÙÑÔM™Ö±iÖû ¹7\±ôÔ["^—`Â×[“¹ÆžÜZËae€¯¸X:h½¹á× Zn“;®­—,.¹õú­» Ó©6t4¥;aêÍ¥G²÷×Ö»>¦ºQ6lZVJ»51¨6ö±Ùà ý€@Íz…~±mš#%*2¾’}°s˜y” þ>4ˆ ¤é·À‹”#ó{€¾°Ï¢åP’|dAåÀÛáøšpEúH9¯OEL8çŽxçŽxÖÖW•QN]EuS/ï¹§óƒ=ÞÒU+™K†°åÁì¾^– Û ¼ì„×þ*®U`Xö{ù¹82ÚSäk_Ï ÖnÆpûC9 ‚Ï)ä{pîäJ6ÌÉû~ʇœD">Ûþœ²˜Ûp~Õýû=gµ[¦¸ÿûlã?Î9ÈL—\’>ÌÝöv¦_­ÔÁZÊ/ö±…Ž=þnN †F|”!‘{@A˜T‡'4ÏrQŒ·*®ã³™–QìØ5•“Zß±¹LæwÊí¸Þh(»"Ρ•æD2,Éy¦\Cä_ß]”eŽi5´Pgà™Gûul#.¢…±i¨Ȳ-Ñ—£YÊòé±ÔM$ráY^\§Ã×I"Ü\§Vàmµ]nй>YYÄRH¼¾•²‚µUNšÈMeB«¨T»u*ÛH[¢*”÷tµÖŸø'Xÿ_½‰‰ò˜ŸÖëëcû$Rb̬oËì zö LsdØ«*YÝd½ŠE~\\´Ö&¹©F0Ûf2µ $Ÿâ0ÎeÙ˜Xy$Õ¥XiŠ–L9Ð|A°¸yT(C¯LX„©2Ù§f\lY¯™Öí©Ý¿+¦nQåî›mŸ9&º%ÄYœB„¸ |]h´TúÜe—=Ü–%¡0 Î>~¸:æH­,‘ÌZi–®¡H5åâIb•,•]úØ» á?d<ª"/‘Ø$ª¼œ»“Žx¤`ò¾^®Ô8÷©Gˆ6/0àri2£s3î³ÕFa[™ƒ#j²Ÿ¤²N1–$JÁYd%l¬|±ÔN,$žÖ“žž°Šs^ æR¼ëåFgsa>¬­UìÃeÂC²i¿¨G.ͱU2î®q•LÖ‡-“Ž1é*K¼®ZügMŸmk3°›ÆG`Ü}ŠVáºLdç"’C'çU’Y§TzíñÂáåRa(u‰Í%S·/°å¥°ªòȬØz£åú|¶¢M'/®2Yy*[+„bÓÊꆺØ+p®©œõÜ$]O‡¤Ú 9ºVWhÔâL×–Aº½vD^³6V°]wbú¥ÔÚ¡óe“e.–+7šºy˜DÄéTJ3;S#:_; 5µc&«r»rZ³!¶ ¼Ò°§Hʸ\ŒpÖÛ5Åj`Š ¤îÖ8˜ðqÍ[3c,Y.Ř‘Šbq•NÕn;Ëpquz˜«J„ áÑ «û«lznc»‰»rÑ!¤è!˜œ¦$rõADÄÿc}xiîæpc¢ŽæÖ:(îm`òà)›1ÑGskw6±ÑGskw6±ÑGskw6±ÑGskw6±ÑGsk w6±ÑGskw6°T£i>ÌÄQ"ŬtQÜÚÇEͬt1ÜÚÇEͬtQÜÚÀÓˆ(ž¢Ìûâ¯í}A°ÝÑGskw6±ÑGsk w6±ÑGskw6±ÑGskw6±ÑGskw6±ÑGskÓÃŒ?þ ¶îožEl‘#§ö"6Fn äž?Ö AF±î¶ÒZÇå5,2nº«f ~ ùyã_–¸ƒÃåž¹!§òm^c– ùFlïû‡½IýáiŒÌÙÒïK""¯å—÷Q8™ˆùÌéñØiõ…ÎÙˬ›MêgÌ€„ãQÃll²´@ë5¬Ã˜ñÛ¶9ÿ˜â&&5‰× ÌjÎ`6y›RÂí&­ÛU™6F‘ùH iI·YÄb§ M먪ŽC`Æ2s¬Ãi¥Ðöüð—DG 8Å/ɧ žÆSþFÁÈh¹ˆ”K¢÷ò`ý‡Ä3›¦`-¦S—Åt,ÙŠ[º`ÜñÑ.¡­±8ö„J)ÉÃN0Ü/áÍ/ =SöÎc}–;œ!94Ö•×g6¸3 ü ‡76{—#²•BP´„££«Û¯ X,v¬`bß:öÏ,ÉŽ»c_?Õ]þ![_' ÊY?NÊä0∀‘󈜈ùDFA0%¶zk_k_Ïž#Ë÷ðãÅ/ɧ¿ˆVÓÍ£&¹-“J›Z²á:>; AœãÙaŸç/?¸oîLe•œ{Gü:q_÷ Ã"H&¶ÏMkýÀñ­kùóÄy`4nxæÌ|´±8ˆòˆŒf¿½¯§âø“ÊÌ·®8ùFŸ«Ì—$+tyȃÂ7|àh lsjÏŽí%[­&iY]p%0¸æÌ%ßåûŸi[Å”³Iú²uðåˆ_ÝQ5‹Ôpv´™¢) £%1ðtªæ6ư^é|ÄJ?Þ0¤BJ#\Q¹)Í’ T%€å W:‡Þ4ÁK&0 CÆr¾ù8ñœ¯¾N’ñŸIxáO¤¼p§Ò^8Sé/)ô—ƒÌ²ña‡HâljÐì¬b»)¹0Þ!\~Çÿ£¤Lk \Á)2R¥éNñ-â\/…>’ñŸIxáO¤¼p§Ò^8Sé/)ô—‡¬D@…”å»^‰6)zÚØƒá_)30¥ûíêÿk¿0ø8Sé8Sé/)ô—ŽúKÇ }%ã…>’ñŸIxáO¤¼p§Ò^8Sé/)ô—ŽúKij.‰ÒYV'›-õjc›-õjc›-õjc›-õjc›-õjc›-õjc›-õjc›-õjasE¥µs\ç…>’ðÞ•lXƒUt¬kV* Ü)ô—‡ u(˜j ¤tá"ÙXíÎÐNËÉkŒf’mé |vA§j™0g2R3%÷Õæ/%æd[t¦“å󬕧jó;y}כ‰ŸëXFº Nb ™_ùÆ=¤ÓÃdãñTBN’÷,u¢©B¸~sóIT~ĕД+/{KbÈð“äPŸ—ºÁ@¤¤¼²F W(‰ùÝ_-F¯3¹¨Ç¿%û|êí‰øXPG>TÜAOËîsÊÓ´>f¼¶”. ë)„Y}ž‰zë…i´5*Ɔ^Q¬SF<:‡fŒxuÍðêš1áÔ;4`ªebÁ\Õ¯¹´Ò–ÔBÖÊ®¦0Â2ξ•Ë/KÄ™-¸èÇ×±‹ÕÏÜ”ïa*¹2VNô6fD%(ÞÚ\yaSV¦]é7͆ôèݰlº«xy~g0ÿñ™Õ®q«‚Ú´(2Ã㦠{Ge3åCòI÷{Cøþ˜­öù»™®(—.iaúý'»dìÓu™¿Àz…}*Mþ™Z}]>¯;³v6ô`‚Åy͹‡táeåf¿"Ïu£ã¬Ãdz‹ÛFY>xŸ”b¥©{Ø$cÐÅ1ó€ò}ÐSá|l,)¢ß˜|ãÌ€¶t÷Léùâ.Ïuân–l¦¸êã÷#ö›²ÿûvŸ^é9Eµ´GH(+·(Úo-¨U_éðÚX{W`éîÊgŽíº±øA`D#¤þ— Ì!¦a™ÄbŠ…”9ÜljcIÅwN[bÍM1I\5à««Km©Ò*õxm9ÐzÆiLÇÔĤVmä÷gH—јÄ—‰ÔC‘¡Ó\ìKvÍ*1[ÉšÆ2i1:ã € óÅÑi ÇX­2˹™UöqÓi\©<4†=ÆWlÖ阽¬JáI—-ÎÔp’lÄò®Š>!cêw´…ý1Ô¥†Ps Å­DvÃÒ§»LЧ&Š·G&¸ÉŽxÛd£S̪ºŒTâ•Ò<«dΖ*ª‘Œ[°+(ë\Ó.Ú­×^ûŸM.=ç¿_ ­ÿ·«.¾¼{½×Œê<öüÿOÕ>šav ~¿Š~xM~=áò•ˆŽÑ#á¾Ç*¼’N,ª[¼ ©1zyX§èø‚º÷‚€K½~¢”õ¨Îz ÉÃkWlD5 qG–¡lD¼T°D' ËD33¹»å‰uœ! @íJ…qñ:¤{ʺäŠEK™òeµ8ú¿º©0¶ ü¿FõrŽÙŸ”DDi_ý¬²&UJHiY‹"_L{¬¼Qº&}÷Ó«~ÝØdȬˆGt¨¤–$C¶qzÇM^[·v+6€hâ¥è±m‰ù`, ›†"u¤þ¢°·nߊ3h«é;f{÷®Cà¾ÓJÂCLLé8¦î¢°»nßÑ©âÇ5Q­öšT$k?(× ½i¡º3#\ÌÕ¹«ã&XÛh® ×Qs”A?¤Ë¦ï ôâ™­õi4É‘Ëvªé l"dYi%6ÚÆ ¬-‹K*V(#f.ÇíVlQËÓ¡B³i®¥’µ^ü›pÀåðåÌÌB5ó~%j!~GÝZD`+5¡'+à 5WjñNº†Í¹ÅzŠ,¢^[¤ì±Šj‘6 ˆb–í‰bUn¨)uˆàåK«˜*ebЩʴ¸¦µuNi3·Ã]; l•#‹w J¸ÖSa-Ü™‚PÌìf¿¹^ð2oáÊÆg$w–Ž3`}I‡Ãk'ŒBÕ}•˜†Pe-~ÑíΠA½yL4%« 1]˜[o3Pm™Èæzc× H\·d¬jX•ëa4z™4ñLÅ`™˜×Ye`·K€]ZÖFK–½eرs—tÂëåd¤¥­’u¸K,Ä dX°$.¶cZ¨Æ_]C˜XÚ8Í¿.?Ã8ËBìÓ KÔ à7]E[,Ý_5\ÎÖ( 'C >¤¬T¸XFƒú:ˆë™ÃÔT©‘¨Ž_ƒ–ÃZ,£«‰ª°ÔÌåêéagu(gs0Z9z¶2FÒœ·~ÞKN<8!Š%Î:0Ý^w%ÕÅÓ®gi…ÊÜQccž§Kz¿c˜Ã*×pJ“ƒŒÄ°?M‚t&öPºX­sk` *šè”¨HYÊ«ì7œ4T3ZäaÆ-t0ªÜħUqæ2±ù9mã¿»ìøZ¢©p„õµwÜ<_L¬G1%&§Œµqšë)^‘‡Õí"À,€v„æB'e’TÈ›æÉ\‘ œf$eÇ7bßIsuŸµl8yL¨q^ J× ™¼Ú°ÌŠSwÀW»"ØÜâj•}%+W¬jÝF‹l¸ÓyÌ £DªEk»XPuÖžšæˆd(ÚQVäà6©Ó]ÚØ‚ 0Må2F¨½$ÖçM[‘)üÿ0ªàc5‰”‘®[TE´‹²Ú™ îÕy‡"‡cùÉWØs4¢¯MwJS3^5å×þlÿÄ>!1r"2AQasBq 0@R‘¡±#PbÁ3Spct€á’²ÑÿÚ ?ÿLSX™õGúu8¼¤á[¢PºZéG ]-3ú÷âÇß@Ä•ûJ–àSÜ]Ÿý§<¶¨V}Ú#r8 åÅ2…önàäãE°=ÓÅM#—Ä›‰ø׿>ú1{Ý„)ŬtG$mõAƳ¿”§M#äÚAˆóL›2NøMl[8a)ÃPŸ‡xý}ž‘T.·ý++fׯ3qRf«:§Á?Ò$7†ŽÙßÊ"‘³#ˆGic[lXÙ¶ Û¡q Mú„[| Jµ³ìŸrg£¸×xº`+[6†š~ê·b?Ñ#¸ø]UÕM3{×UuWUuWUuWUuWUuWUuQÜmUuWUuWUuP;í4–œ£ªº«ªº«ªº«ªº«ªº«ªÆéÿ2aß¡:ȺŸyÆ%YÁ¨>Àº©cIÃÁ¯³w³¤{ìúeY>™ã¡ØòVO¦gã¡­-§ðî\Û÷lê'‚ ›\‘Ù”ïê8}=^®Ì}“Û_šæ©Öœ=‹c#ç ƒì‹ð\&åHõktpOÙ%~cø¹Z‚OˆAšÜQÇšð\‘x†·|•aþ©îP=òÅÕÇŠøjÕùzÿµÐ€c*Í´yû'@4Öû"âð|W'BægÕy—_Ž›œûQ¹d8' Ú´I'r̳,Ë2̼Ve™fY–e™fY–d9¬Ë2̳,Ë2<ô¹÷ú¢ãz̳,Ë2̆¬Ë2̳,Ë2̳,ËÅfY–e™fY–e™fY–eR{uFôú|oÅ4@§ÛeYVU•eYSI-ôy ý©Gu£)+Éx!ûQØÕÄqYVU•eYVT9*¾‰ƒ«‚˦Ͳ~GÕʲ¬«*ʲ¬«*ʲ¬«*ñjÌÕ™«3Vf¬ÍYš³5fjàØ+*´05U™‡j¬©¸ê§Šë‚m¨/¹6ª |‘7{`â5L —£¼²x«KAUÝÙÒíVø”owŽŠ›š,Âf§9£êš z€JpªNi „³å¤j"}P%?`röO¸½Îeåô‚ÞÊüWL.˜]0ºatÂv³ ¿ by,ŠeŸ «M¢³§‹¥É‚æs÷'}©üÇÜçÇAÅ~Ñëñ¥4+G–ïÕyo?t›ù¡ÿ#"kM0æÚ\ênÓP ‡Eㆹ8&w§X§nõƒjAÐ9óõ £[ î÷;<¿† †—޾16ô󸿾ý燦Îê9;Ej–XpÙ}î¥æ`¶|º~ûˆ-l—”9 «”öH|‹&<²Ö5ÇM‡Ò¦¾tl/ÓHo‰Urn4ßHúj)]·š²Ø­áÐ*•Ë+Æax5ã/ûªâ}æUcFnáôÁ»XÎᨵ .Ãá€å†~­P~ti±zÊ13ÛYy,ƒ–-¯Mk7€# ýçÅå0Ù‚Læ­Szí3Ô)™ã³ü´¹ÀšØsíÔÓxò Þt´,®;miôƒgºeê"„è×µªˆÅxv 7Véöir¹4±+øª½b¦uZº}n ¢xÚÚùÌΊO?uÇÓ`M•µÉ9x»^0õ«€ÿò"*¶v¢«Öh¢Àà-Ô,‹ùtÎ÷:„µ—&ÑÞYÁgù~Q׎`0,»f.89†×ÞBw&áœ+hK®›ˆ+—¤Âmæ{©ûÞÝ‹îF»@êp2O/°ÀвÜ*û¾+üû7æ^½%{¾º~·f~«ˆ±[B]tÜA\½& o2¹ï¬q"ÀY¨ÎÅOÑK€ô \p+‹†›]Ëoà8÷‰cB›\blæ«ø}iÈ{, NÏÇ{]ý­"{}DûI¥¹ÒÚO)Ä0XQôà!F+0ÁGFÕG¸¥~>íÎbò«‚¬ÜÉ~Ò³•Z¬~ꔜ _©ÎsHGÙ¹Îsœç,SKX¨ ?[œç9ÍÒ”Þ­¶Z{Â=èX&ƒ¥úœç9Ê(ëmûNsœç9Î섹sœç9Îs%&ØGIBߺ±g(ÞLÿSFÍ™T}Ô&Þ|R|R|R|R|R|Rˆl5ÈOÓ?ÈJBÐ0vepåÍÀ p–nXVŠOŠOŠOŠOŽOŠAGV ÈÈ0ýØÕå>)4¤\.{Ë6 rçÅ%YEа^ljv´L@ ‹RÉs¬ÙºÎÑÐîäVšg&Aàû«EÌD#R²‡C±Y÷˜ìÀѹí]iMoh&o1Þ¯V׿À ޱ®á(½&Cj™jkÙ0Þ>П© .¬¾%—V_K`»©(sž=ê¶&j7Dâv;b3] êö;{ØúuÙJZv®É·Ïë²êËvëL-xMß(k!B+ÊÆÎþ„ÁôRlkçÕ¿¦ŸKŽ8á"½kÐÕ‰!ßø I…#Ðk´A/q—b¼§ÌaYje'¬0å¹ç?ÂRK¼-» ¶¨Ü½"h®´PZ ¸œeÈíÒm˜>U0p¯3OIG,bÞ˜D¨y'î8é«]×C&ÀžL°ö໬i—NÅÎ_qNÝU0ðåZNjXO ¨ ´äÚö¹A®•?Q˦Áû!®ªäVtV4´hNÉk­]œo•nTRk«ï´)JvèôHt…p½.hÓb9œâoé]ô¶°ÉqnÖ¿¢lÖ`6ü\ȉú䨢Ó'OR;-=ЖSC1­ñÑr°ºV %ZnÿTD¥¨ØÖXDŸøzè%3›ï0Àxwv­rÜÈ*in•,ǴГ5x]†R€!èin/_Ä|>…%Þ©uEscIâg¦°d&›©zt»T{k‚¿VJóþJ§‰æ˜& § ¾]a 9sŸáyDlÇ¢ÿ‘Ò³JÉB½»ºf‹ ´[Ýp+d¨99„ðçü%ŒÈ3Íã­·ûѶ{©-é²ñn3póÞVêPA«ñµ÷•­Üå§3,;3Oµ—ÝÝz^Ï =§{÷÷êï˧áÄ–"EJh?–°ÓßÖ‰c¬¹C=hHe }Nà`|s3ï—#ƒjWwѤ1ô ˆ–1ûN´^”[A<ßñ ¦EàxŒ¢l›P(– Fk“¯zôt·NÍ5ìèh0Õc%VÒƒêrT K£µxö «ÞuwðþÙÀîþ ÌÀÙÄ&TýZÄ¡³¹ÙT³™qƒ=ÏZMe­XðGÙ™Šîâé7·U¬>¨²¸x”Lº»Š–]\¸}«o‹œ¶µ^t3,º¾–]^a„©‚䵎˜³™y®™J1fË™ÚBç=WYëg=kÑC^н é,—šŠ½kÒÈ@ Ѳe4[/ ìàM‰D “6íS“8Ú  ´¶¿ŠÕƒßiKvéÊí3;É|¹”[ÑlšCu±är–‹íó«z h g5ã/º®»«~óôœBU1J”¤Ë“]%ŒÔý0ŠÕÃG:hó˜y—Z,ªd» í¼[Çà+Uƒ”ªcré]&`ˉ®`í¥K@2K.]Ô ÇãvJwD§©¯ó­\H+-nX¦‰öMB4ö¶ùŽŒ·H÷©IÀ§æéǾOlþX¸³y­ïÚ5N•EÆ‚÷Žá¦œ\°oòzEZ”¥¦¨ÅлaÀóòUë0d4.œEHsà`£‚ ±£bE;`Ö+Àµ}m¥¬~îìÌ^ªAsã–ÎûA†¸êsóÛ51 ZŸf•P­›VSöÜ'»L˜’™æà`Xl”„­åŒá­oeÜØôK¿â ŽÃ¹›ö ¾'ÚŠØZ4Rç3AîŸ3ÄŠ»í]+›4®!à¶!öŠ¢’—l;+1Yâ«€v4ZóqqËp¼ÁƒiŒÝëK¿&qBf«Ö6EXë<å@y¸ˆéeÑšî©f®s4Ÿˆ)5o0É2UÿPTñöNs Þ;ŒÀ3 §=ó1ry5xM'2»œÀ <io4mxCúH£!ÜËûuÌ·6£JÌ0}’–v ª<ë ìÂ;Û0cbÙë„Û/t‘÷¥±ž¦aâ]Í«¬¹1FÚ™t©~qºb…Ϫ*â‰8ðÌ¢NsÎqeÌÃÖ±\.s¤g ©²³™MR…¡Š¶¢Û#B9¥kÂ%ÒŒ‡s1Çomt‡h-²/Î1ììr.ù€'0°v¿ößÿÄ-!1AQað q‘¡Á0@P±Ññp€á`ÿÚ?ÿÃÐ!“”›oO…T| Dàú¢¡Ò Xè_W†÷ÐévSÕH©ŒLU4°¨Quš¥•hRXšóýø„ôB"UÐ\TjèÎüÊgš‡@‰Šy,Ö1äsÎÜ^Ë•kŒR4[À×9þeÞQgW0–r­!ÔLt²yÂY[ZàÞ-^0Ö#d4¼×g¸e#€ r@æ¨ÎQÜ0ë*"W«ÓE³@tòÝù‹ö h?üU¸keÙY ×!EIO5_!²fåÛú(7]£Ï××m?Ð…Æ&Ÿgi§C¥§|–¨T@ÃNïIºËH•z¶Ú‹×+Ðæ8ZÏy™Û™ÃÒÁw‘¿ßº’ýƒÅéfÊb•~¤FÉw,ë1z‹v5;ŠB3v³œI"¢ †µé²æ™q#[9Ü Ï†ž´^Ñ!)ƒÎwÜJ¤µoÏ (G\8í:¹y —Ý{P¼Ì¶ŠAÐz‰ýùáyOW=£úÀáà,%"¼÷Àñã@y坯J ‚ßKôéáP†–¿F] }×'ӫѯÝT~Y&†Rµ…ีä$UVW&ÐÏ%)xÖAÑFÓ™_¿þ CŸ¶Á> åøPr¹gYÌü¥— 8¼b‡(|ýiߟ„D¢'Œ€w_€ „ðàq"¢YÏ\f9ᾈ €:¸ á3¥¼.ý@¨Oõ s2À\Ô`Éò{sÏû\óΫơÀœRĘ^ –3ÃÆK£ŠpR]ÞqŒ“|/¬1ßùÀ’}Fƒ¬*tñ•ˆ€br3TK§:ëלé߬(Ðnù˜Bê@…@ðâ~›©ÐÍõbWûè{c\ñØ” ÔtÄLJ’–5ʱ‹è€"ˆ<}qìÙbÌl—f¼`ž¶Ç“±~ï®7´I±CSKÓæÁÊ­à8AÕ×Ë4&&T¶qÈ$`~@åÿÜxØ*u8uÈ2©äÍ>Î2ª)Ùlß'ÑzÎ1 AY 9ÍÅóãK ‰e<Þyß ™¼P7Ëóì@:2Ú/qÝ%"š¹Çcb6€¨vÊøåñq¦q§iz'ƒÿBP…¶y‰ùÊn -¨~Bb®º‹#/ ׯõŠP®r„K=¸…¤{|× @%!Mwð­*åP3‡0Ý2^m5©Ó¦B4 ¡Nqú+!`Þ÷„áßð  áÓÎ4ƒ,W£uŠÙ*±ËüTiÔq˜¯)Dv'_ˆªB©Y_#Žø‹¼h}‹œªˆê"3¦-wÇ2H‰º“;«£Z8}3Û¼R{Êãñ›tQäBÿ¡ˆZ:Ú¨éêÁYÿ¬%¶¨kËûÅ©qmvo]Ì%>ï´e›šq¯ã5%AÑCåðÅG’gzZÜ Už ùh\Ñ¥‹Cí×L»®˜Ðú¸!£a»Û‚&«¨­ñ3Ú´ ìühDÀ*ç")ø¸Ÿ!¹0AÙ1Ô}ƒá H1ßÂ;1ˆ¥8MðÜB÷~›Š ¬Ç`3쵇ŠˆÕvbãpv6n³Yÿ1Ž®.½ñ$.¸zY×®4À2“£7ý[Gä+ãýÓ'Qš”N.>.à!¢›Â'œ‡ß*wôëíhà ÷Žœmì¾Ø^AÛŒ`dmçã?ÃéÐhžåø\Yv šJœƒÛqÕËvooà/+ÞkóˆÛż‘_¸WNïSú…ôØ{p­<yÇN6ö_l * vã D¸ÐþÙÖ}"0OpPAút¶ 6âŒ# Ù<üF~ÿ‰GmäÑÑ/Ýþ%0‘W;ª”ü¦ µûp|ð[*’†ß„ò Ê!tMàONºÂìGÊ»ÿ*tò+£ pAŠ Ús³*1Ùüª!$T{~/{ÞöÓzðj×ø}ï{Þ÷Ÿ¶:Œà¦Žß½ï{Á Ý_ŸÌ€øp¦àÜö"ƒò'Åï{ÞB¼©ºHÏâ÷½ï{Þñ ÕMµü¿Çï{Þ÷½ïÏe;€¸UfŸ|™dt@ÁéuÓœÞô­J¯Œ!§¦=”›ŠÑ3߬÷ßë=÷úÏ}þ³ß¬÷ßë*Z•nÓÐ7£nѦ&ËÏ#X8ýC[Œ ôÁ䀗‰(µ'Œ÷ßë=÷úÏ}þ³ß¬÷_ë=÷úǧPûó øè‘†©·<á¦a•F›4Þ˜Ñq"3ÕÙÂOò „ÅUUûg¾ÿYï¿Ö{ïõžûýg¾ÿYï¿Ö{ïõžûýg¾ÿYï¿Ö *Êÿ§SDz.³ÚŸ¼ö'ï=©ûÏj~óÚŸ¼ö§ï=©ûÏj~ñéªR,¦g¾ÿX»fE…ºhÓ¼DAT’3zÏ}þ°xRÎâesŸÙÆ'|Z+.hiÓDüÕ”k²<äà~U`ñ” VA;ÿ):à. ¿ð¡ ÷Á‡ºŽùp.‰.“’Პ†© ‡MÏÝ0LµûÎ ¼k†xKTˆ óÖ†ú£vs—}‰rå~lÁa (¿›NM³‡`ã,JÚgo.ýD ap@)©zGL.Ñí‰(€u'q€Î”RŠbÞ5'Zÿ_YŠçtð~ãªf+¤bãGÕ_2Ë;}AÅ"åHÈÜwêŒ ª÷q:DAÐÁf5º#TMmÆæ-‰ÑÁîÏÖ{³õžìýg»Y²Ô¨½; ëj@Ò‡:Â<µÀúM3kp²4?s§|a\¢l !Ô­ö_,IÕVIÑk@zÐgEz_è†P ¸ò–Æ*y1ÎJ5H0qÀã®kó麔uãêƒLÊtÇ,Vë£ç&ÝxÔ»b š 8¬Ó=|ã>ì+A@Ïwìô@4>‡¢[žÐ¤ÔÄqh®€cÎËŒ¸-”ÜÍ ì)•ƲQûŽç\ãNLèÖ¼\Ó!èïõ·Æ)—¯Hx¶s‹ƒJü³–TùzûûUýg3͉ô7éÎäaWÁçeu°hidôe†»×WöpÌœn?“ëdÙÐÞ81e2¨>=¶OPDúúJ¦XÕùc!¬ƒ½´rÀ’°"+±q8JaXÕ~¨Iù!”%#yŠ’³x0Å¶Ž¿'"DÉ‚Ñ äÎh‡O€(‘1ɵ·7¢¾xþÇë¾I¹_·ô®G!ƒ;˜A!éùô9…Aá#›/^·*Þ”üeÌëRYŒ\ sjVöq© }À·¶…-A9NØiÀaÀÐiØ]¿,Š€TØN¦ `Šº…È•î©_A E–m ð5P¡ •—!Qç‹„Ë[nàxe!¡SvCÊàìÍa|û¾ˆ8f¨pÙ®p¿"œPü`££‘=Q ê L}k€ßЩböTŒ@W9–“ ›Hlع.\¤ƒMãä P²r‡-v½$yÅnZNû0úPJ«'Èæq’䶃G§ æS“4í&$ó±ýiËþlÈî:eºšçÞêQM/LXƒ¢­æÙÏ¢aY;"pƒ§£D!ŠþLŬ2Ãì»ÛÃn#G4hˆœ(ú°rdFÅ/WãÀ@ð™S.ÙS4pIÆq ·éñ*Ž ‘b7ôÄíÑy1 [×xŒ£@ÙUÚs€4 6G„Î$p‰õ=Ü­8úé†Liu ¬›ÕvÒñ€}@@ è¼n"l§®ðÄ;çÑI¡ã@„”"ùô’ˆÏg¾F¤ŠÏx|@DQÒcýÚ€¿9ç/ž$@6ë“ázýßÝž¦ä7;/5œH0eáñ†(týŽ’íƒV&=ßBsöÁœÇŒA*ŠàO§F©ôÖ(``‰F˜cp¯V«|có"ƒAóqê«OŽ0 „ðä®]Tæ9:®¼Jù4È s]’húàˆ9.PA°˜ ÒÕN]xô@¢'s(¡NK¼±¦g@x]áa¬BÒC­Æ‡G“a¯ÛP s29 Úú*ãtÄçÕ3VÛGxgL:ìçéŠX`‰DG©‚(s=*»è@y} tÛèPÌAà¼är¶@<¸ ‚‚ðwÄ €:¾‚(#9<û”&:CMI¾¤sKZ3¼Ë"éÆ<Ìz¬ÈtÓ[7ŒŠ†:cÏ|-7dZŠëÃõþ•P)ŠÖè$ÂJ¸$ÑÝÞ°%@¢* XßsC‘`Û×󖔘‰ §~qvÁRèPæå=Ò uìã5@P¼%ûæŽ3ý¬QþWBKæO® ‚UöçXAáËBÛ£ñ üç<ÔZ:ªÃéœ~¦¨Ñ"½ œÜTq·[š$p,š¯ÍÀÕÀ)àå0âŒQ b¡ÓëƒûLìÞz|»â²^”‚Kj[s{GCc¢ç»vç¹v}2® T)DàË‘ý-˜*~ðu‘ÜÃúsšŸ“ô‰%¨«ã)á$‘»:˜y%É^!\ÿ¾‹ßY'>±¦4„è_÷Œ1Ûâ=;~8Ç~@º©ÇùÇ5·Ø "•ùãIJtÈkÆÿî%BiÃ.nF‚€°5ƒ‰­ –¨ª¼d ?( ×4ÿ¸Hk^nrñ@CG;ç­ô%í±ÈWš¶Ø]Ü8Cê2[?=ñc€HŽÜ ¿;……õ98lÅ€$e¼»ëý#”y6MŒ½ÄìDÃ%88°ó‘Yê‚@ÆvÇŠD’é­IwÛ>k@q«Ï¤Œ¦|GŒ ÎaešÉ]ç!?¤Rávì¸ô<]LWMmñn»ãÚ‘°ý8kIÑU§zïš+¾Á€;[ßXêJÏP±q¶ã ¿0›^ºyÍHjöuí€x{ƒfɶŽØtÅ %c0+†ú`DÐ,pKµÖ£‚`ttØìëØ”ºôœeˆ;“‘¤‚c[­¤œ, yÄ£qÓk°­®Te@K»KßGHŽ]gHÃ-ÚÑJîçè‡ÈÞI£Ãhµà'‰†/ªE´øÍ_0 t*o¿8»1d •¿C6öTƒw²}’lЕ߀—iÛ ‡Õ•Õ^ÆßsD“åò êØkÁ…w{ƒò Nƒ[¬á«Û+)ô ðÜÜı +I#‡ÏhŠ€uœ:öÍ|°¢ ÛWØ8S€Ûƒ9B6¯¶l§Í¡jβ‚#d×Y〻µ¢•ÞWÀQ¬Þ šµÁð™«8Ip & ” ‡£—¶ª, ði;|¿óoÿÄ2!1Aðaq¡ÑPQ±Á 0‘á"23B€ÿÚ?î«!öBߌcX8RYV€µ‘‚¸KÚ6NµÒYÇ´xw‹CÜYÀK#÷ þ+<}'fþÂðô#ÙÙZß®rØ÷©ÙŽõ®%AkÛ°- µ¯ÏpææJl‚˜AH)Ü˭⤠Åf7æµ…Ù8h¡Ìʪ Üèö8W.±°Ä4*2W%ªE5É@R‹›ßÎ (¦K5Ò9›Ö â\è®!…-~¦óޤÁ׌€\¨GŒ5Öþ°­Š~9¢ }¾ô»¯£€27ˆ*Vï^àÕT&¯(EqP¸¨B¦±W%h £Î L‹_n°V ˆ*¶ÇG¬T!=”!¬ÃúðóƒŽþ@Â1Ö_M0¯. | ¨¡­Î£Y¿R ]’„·¶ÖáE³¼?ÿÄ+!Að1 PQq¡0a‘±ÁÑ€ÿÚ?áD´F×AˆÖª'‹„iªˆ4;AEH¶Gˆ²TF¢ÛeFÞºgÂ#b" øªõFºÈ׃nZWdÚ š­+:4“|§åšþ- \< yùÝä÷Vn‘Ef{Ë;¼ÉyWBŒšŒŠº»¦OPPg/ÄÙÝÿèœù–weèš×éhk”Vd+ÙiÝJÏšœÒ:…íC?]±;¶ëùÒ¼óuص‰\Kðópwæë×êÑ:^v¿Ôuë–ïC|׿6HÚrk‡é|ÚSü>ÙÆååºØà;>•5òÿËzܾ½·Þå^‹ÍÖ­´Þ^'ZÅÛõ*³õM¯6Ö§3~ZWVµ\œE®çç[ÛÊ‹ºVù§ÌáÉBÑÙ9þ©µæÚÕ6o”õ‘9¯×YòBÞgÚ(ȽóP«zÇÉÕv¼(LË1“¿0ïÕ…w2Ä=r¬†NV¹ƒ‹¼×s"g€™Œùv_c!xæ‡bG¤õÜ ¿;y³£ô™g”CúÛ«}ß“¹¿±·pã~Iõgl¨>p8û¾`uâotnÀƒùûëž®å­kØ·@¥cgíW~r&~…ýEB+ÛMOÁ_¡ò@ *BVCOÜ‘¼2<Ó忽?ɱÒ9íP‘ݰ~o{§xpýƒ@¹?¯Ìò^·§ô>qz[#AÛpz·KãØ‹ÝšÉuû(çÙẰüæöÞüãÚÕË»f›r{  è»Þ¿cgØjßñ´íAÚmù;ûä×5;y‡üíýÙ€±³€0ã¬lŸ5?{»tó÷ǫ̈#~¾`‚öõÀ |éÑ’ HœkXòvóë¼ÐÕüW¶zFf lØFxF\ÏË™árÜ514O4Âwþ‘1­r~Ù=?y€Ç— sab.l,a³/’ðÑì¹óh›„È’·Î·©L‰!öŠò8W³%VµÎ8/Û9»[êصæábZÙ4Ly ÂÖ»µXÑó7 ZîÕcG·1±Á§/Q¤ôXXÖVgŸ¤v.24úe~®o°mÒW—¥ËÙÎÄÀå[N<ìŽ\ÿ)ßù×^ÃÆµ=Å03÷½® {DÒ2÷½® {DÒ-í&1DOP…‹d^à[æƒè+·¡8ç~« î¡ÇIõ9º+»¤ï_>Ûµ…É»WÊè£7ÎÒü¿ÕXöæ8ÖnïµÃLèÚnNïµÃLèÚm½§£E¥4Û9:%yªÑ±gX¹öf®ÅÏ¿ ìSUžAѬHM[‡äJÔÞ}»ô~Y·%ư³7MÂ.KCÔ2wMÂ.KCÔ(Ú:DzCNŽÙ÷øHrÿ¬Z¯ü*Ūÿ¬Z©Ê·SíŠrh©öÅ9TŸl,IZékA-h1YOŸvØHV-°È·l2-Û ‹ÖqÂåÌp¹s.eQˆr±îV }Ìaü:E`‘r€ÿÄÿÚ-KÓJZ3Þ„^ ‰®™Þ·®{çjÆ•E¡"SY˜D“ZšVšÒÙ舲²"5¥m*Ú²‡“_hˆ÷aàïj2zE8?B‹@"Ð|ÿй` ë”é†Õ‹ÔàwÃ…Û°9>q=ô@>×ïÇ‘Ûôx|šô¬ÿÄÿÚkhµ$ɆÄÖ@1lyqږɃ%f$šÚ&¶€J$&À +zZqÞ¹1¦k$Jg¦"Q W`øu˜ê WÓÛù7ÀíQõuŽ:DuÞDc–áµ/ÍŠgιÈës è>6®dì_ã€mÃ¥`?ÿÄ734 !#$P"16D`%0257@p&ÿÚÿâïvÌ»1ù“³ã°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».Á‹°bì».ÁŸ>’dÒCþgÒLƒúH~6ÕU‘bP™Úú„|Ïi/° /"£¦[Yå&»x±œgù|w{Biµ‚ì„ÑmIºÖ²3îõ?h²Öøþ=™õf3•ÖÃMJ̆&™¹$$7ì6ꂎHC‚)}qëéû‰ŸI2é!øuÀ‡G¬Œ;zz$aé•‘Æ›®Ó6ó›ÅÕ…¾ñ¶MAYsÓóh}½“±Í°iåLN”>Í´C-T;5¦‡8¶u½P[]b-‘£ž0G¼ÎÕDzdÑ&Öꥹ§Õv7ËÓöÞÚRÕ]u©ìm,ŶéÅГ ÕʉB²„÷itsÑ$$.¼}R®ê}õãŽú~£RZZ_SöK¬Ö¨ñÒ§ø½åÓŠÑÖÄë7—glê5•m>¥ª•­WÛNN’&É´C=k/·éíÜ9­—§wg›;]eTXg~ÒgÒLƒúH~kIõ6NΚYEc§ÛAnVAu=s1gs–rÇi3ÍѶ;[‹¡XÇ~W\1²ƒemŸøq‹¤ßÐ`#v-§fÙɨÖöÝNømp» p}ßèYÎ:<éa—÷Õm‹6½wÎÚgb/”߇^>Ž©SÐѾ¤7: Jh&lÐæ³®ä…Ræ“×eƒ]n3Ö«LæÓþØRèV1ÁåÖ|a×:û\ïúrºóî¿j3é&Aý$?F€Ð噵=·S²yzÁfõ6æ „ÞŸjkC>Y¶MZú›e~ǪÚÏÔM˜N1úö¼Ê-UõCô¢’ÎŽ ¸-:©Ocw¯Â-e!'ôõ´™éÛmf[Uh]׫mEZPXÕo›x¯ŽÏ§U—‘T¯ßOºé–²MkgÚvlö®¬k‡Þ€µºTÛÕ¯ûFºµCmz5{*ªâ|5¢Ã"êN¢MÌÛTâó©ÂÇMu)¨Y5…% °ýN°¹˜ö:Pg(¤³£¨. N¥Ð[\ZÓM]Ÿå•ÒmzÞŽ[7Z~ÒgÒLƒúH¦o¾±@\pÄØˆä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ä\€k r®@5È¹× ÿfÝ!É[€¢«êò5‚FœK JçG×öî裓x¸¥®ÔqÎh·pýúîÄ-ËßfnÄKâÆÐ{m<â…“Åv›_æXlàÕÎÀæ¥Ú„±?;J°ˆ[]=ÔvBJ[(®E¸ŽG‹¾Á&§&P¶±g>'+b&Íñ-{h‘‘ÚL~w@pÖέn®ªÅœ›¬Î$ k µ.íqºhw{ä˜2Û20Úç;ìfÕQs‚RW‘an8VA׸½¼HÈš1gÙê⥊Ñ´1ñ„e¶Ìu‹«ß蟕{($ÓdÌîÕøÄræ-Ä“ ]w° XLb*+á-¥–;r Î’1ì¶8§Ô沯+f;‡ªÃOÙÄƨ’X6à.+ÇÚö7bÙ+X_º·Í_iû;Í¢¶ ¥×7;ÕÅÆ(¯„µ–QÛÜ 4!ÉÛÁŒ©âƒN³„=zÒÎ\î€á­[ßX0¤ÌݤSºÌ€6‘g: ‰¶Ø ÿvJâk9Ðîw!É(½¼HÈš1gÙê⥊Ñ´1ñ„e¶Ìu‹«ßè˜íÇAr-ȯ˜~彉s“]n9ZÁ -ŽM¼Û%©‹în°y[ˆ£!t‘XCe(ÜKòO·]‚'m¸têd°°–B[‡u:,867ýLPe±oÎ@‘9AŸ35ÿè+dwô]r•“¯k챌u$_FI0šD:½€¦ëÌv(¦"9sO»±²DÇï8ýu“óŒu)ž­Î>Ìí S:u굉aQæÄö»ÎVD`„jöÖÖ¶X¶¦¨†i@w¿¨=WEìJìGÉ¢U޾ØNº§D¯'¿$ÔºÖ€±º„øäÍP‘ŽÆ»©»4 oÛ›×(¿í{zؘÖtηyn¯U5®ŒçuÅ‚Óï¶Îy==cpƒñIŒcMØ›‹'7즵”èÍPl%Lnç$¥V\U³™­œk ÖhˆÃŠ´G0|æ×쓨›)6õúü”oŠ=úå„5ñÏÔ¿Q´V¶Ü:>œ5‡c5ùÚ ë¡œ1Ó¯TT_ì¤Subâ‘ø¾Ì—_©Áù[Q’Ò4Ȧì Û,[STC4³™ã7§D¯'¿$TºÖ€Áº„øäÍP‘ŽÆ»©»4 oÛ›×!ÍðÚçig;X׫k†¨¨Ç²Òî¢F Ô Qæû„Ô×’|gÌ­i«¬ò×SQ_W‡xuµ@W>Wê g‹<²¨YºÉ£Õ9òŸÙz?#3¡¨êÇqa’‚¡áF¸ 9ì•@Id˃O\'ÀÕôÕ b\ WX cÐLS$‚BNC_ʰ¥­<ÈL+i×ÂÅe‰€ÕjTÙB±¯ÀO¸*kà¨"Åxx®ÅrP¡€†Í†‚+l]aˆéëc€Ù±ÍšÚ\£Wšš8FyÚµ…¸©‹¨®*¹µóTëu„ù#4[bë 9±bš· ¬šÜWL}hGA\ÑÖ[{rm==}Ln`5àŠoŒAªÀb…ºÍ&p87[¦,h šžž¾¦70u ÈtÎ*š°šØë¥‚–¶F&>0S”CÖŒÖ1\QV[=6ž¢¾¦'F xW²Ff«FYŽ*m‚¢uKjªµ*\ˆ!\™$Y%ˆ¹Ú­jž´œ5¾»Ui>'(*: À”GÔ(`!³bJळŽÉçjÔfâ¦.¢¸ªæ×ÍS­ÔVäŒÐEm‹¬08@læÄê—9î͵-e«£qìÔuÖ?mÍ%m¿³'–ÚÚ×ÖAÞ>Ó©Õ»-n§Ýeùìÿ©×è>¨Ù5ß«¨ê-žŒ(r!"&Ëø†ã×;—P™^$`_vz}a°n$^–CL”þ—Ó{?€Þ–K†ç!^jW´øÌ„ÑÝÙR‘ÝMܽÆ“ÿs½Q·$•5z®¸~Âod]gWª¡‹7ÝÛô*ûV¼šóE:¦Ç0Ó½¿`ñŸß³•Õ]‰Õàb°]^”›ëxÁš´JšøÁ ïï:Ì v}¬qu–8su ¨îé¡5¿¾•+b‰Ï~Ådûk¢OL)1S¯0‰?áë%!"+È:OmïrãÏ®?w´Ø`l (›@yî0ül´ùÏ¢ŠFËdbÊêE›ÖÌÀ<žÀ9Æ1ŒcøY؇[ f7í5"ûMH£Ù)¤š(YñÜÅž´xм—†|Æ’6¹¿±K~Ænk«h¶m¬+W nw~Ý&¿÷vKÆÓO[v«˜èiß`ý{aŽ­¥Þ±.œÒ+ †Â¾‡UÙÆ·ÊîÎAW‹<„CõåV\0•°ÌŠ“$Îê&{Õþ[úEwrÿsz“1 ˜ÉJ«œŒÅ+Ýró]î6³îØÃãØÔ—kµ¹ÏìEæqWU ìVÇ5£iôÁjï°ÓL­³ ¯Ä]\2Wku6;€2ßYê¶—3kW`‘hux8$]¶ÆÔÞŽ¿h¡*šï^v6÷MÞŽ—Ë,õh ¥¸fÝ’]ÖâÅÚÖºS´×ÀËæÉFÐWòa}K~y½:½î?_°'Ežö˦¡xšoø4Ñm˜å8ª·vç‹Ö¶Ý—U Ô…1^zð§{wy1šXº;6#Û²Ìüw™3@Ë º‚B×ÙÌ4s+€ŒŠ·‘÷.¥ÁÏ;úv·ö=Þ–á÷ lzýì{ŽÙ u2õ>2#W†¬áv}®Æ¼{,S˜î¢g%+6íPiéÆOµÎ‰h$ƵØj¹¡Ú£a&¶ŠèKaöí†Þ ©õÊÃY³]ÜØýœ¹ÿöjưÙzwš˜Ëh®£¡}]u5¦â¼µlÚ« «µº%¶«-ý=Å>t&ZA¯Bª|?þ­°†4Yˆ,)vjIj ü4ÖZ\´ Ká˜HŸwb¾®¢¾vÙ±±ß#F×Ý,¬³0Xý0±û·Ê‹âñ‰7‚ðC^kÁ x©clvã xˆÄ›Á x!¯5à†¼Ô±¶;q†L«ÕH÷679¤íÃŽg‰($JD–OTg×áV|™Wªõ^«Õz£>¿þ¿*×3q…xõOÎl…À“‡péžè¼µ^5Œ3eÅÛÇë IƒþµËhÖ*å†R•%3ã Z;ˆíwl†×®ˆÏ£ÒLÆóuÊ0«Êô=«b/p"›ïÀç0L÷‘ ­–&JË?“Áÿ6œþ(›kØÈ‘‘s; Îâb0½ØDgô³&j•$™lnË$·¿lŽÃ³¸˜Œ0¯vý,ÉŸÚ§eI&[²É-ïÛ#°ÎgaU6¤‘–FK2‡å1Mòž‡Ïéa^©òaŒËòI9"OÌVÿ&/~&Uî]Lv1j.ssvšàÀA¡U>¼,Ë.3ø¢þ» ¿?“*÷'? n]q›-ñîϹc?Š/ë°«óù2¢HlI+ªv9ó¢Ä;Y¬‹½+6,,Z—}vQS°qåžAv&¼ˆ±,×õPÊø¤ûIN·és¶?Œ!›êk•ÌpRö©¼˜î<9糬ŠWDþ^¥ñÍ2 Xß“,`ܯä¶sœM¼M‡Æ¯¬s ×µ¬Ö%ã*Ã?“Áß6üþ*«¸|ò.B<Óᄃ®Sƒ>'\þšTÏí”ølto#T¤w¾U%+Z÷a Ð4øa ë”àωƗ?¦•3ûe>#]ÈÕ)ï•IJÖ½Øo µpdÍÎø¢¾µ¨‘*÷+ÒZ=9rg¦q÷lI=Þå‡~(¯­jäJ¶šéMš@v¸xö ” kvn Ñæpºó+µ˜(cŠúÖüú×"ãiK‚ëùŒ˜Ý6}3•èÕL#¾DH_­r¼ük§ÂÔÄÃ,øûl]¸ÖÜ#¾DH_­rË¿¿pËÃ#b“¼Ê±›9ß"/ƒ¾l*\ÿ>«¸lò.CÓá„®U>'ùý4©ŸÛ"q‰0èÝ>©Lï|©ô¸kó†…CÓá„®U>'ùý4©ŸÛ"q‰0èÝ>©Lï|©ô¸kó†ðËZÄ9Ò'çôÒ¨¾ST¿)É™ý4H©{ò9ï† ç¾pcerr•¿É‹âÈ‘g>¿‚3_¦2nñ?g)=„$ hv»ñE}cP"EîV5•öY_EP½Ñ=É®üQ_XÔ"Eî^åî^ä×~(¯¬oÀ_¬r²t¾ =Šçúž6œ{wLüÅã] "±Žl¸³>Dh_¬r¿š(Á—½©áŸhœèfÝÒ»1ø×h•Yif|ˆÐ¿Xäç~+ܽË× ÜŒúxþù©³üHúö¼Ùž¸Æ é†šl2p¨*CŸœþšTÏíÑXkðæ:}f›>ùSê£kó†‡L4Óa“…ARø˜|çôÒ¦nŠÃ_‡1Óë4Ù÷ÊŸU_œ7ŒjÖÄÀƹøÎM*‹åµKòܱŸÓDˆn!sÛ.&‰Îü°Ý1a¸W"?ˆ„@ÖIáWxUÞw…Xœ_U,ÑÊ_åˆD d‘ÉÞw…]áWxU‰ÅõRÍ¥þX„@ÖIáWxUÞw…Xœ\eK4r—ùj)£ˆ¿ÌÌÂç+¸¯ªï »Â®ð¨² s#Ž8¦Ž"ÿ1Ó •‰Çòï »Â®ð¨² {"Ž8¦Ž"ÿ33 ê»Â®ð«¼*ï ‹"28ãR¿ ÌosÈÙõ]áWxUÞw…R6“ ÷áŒùy»>«¼*ï »Â®ðªBFÀòa¾ü1?/ WgÕw…]áWxUÞHHØL6/–Õ/ËrŒ‘²ÞÎ jK´ ¯Æ#HÃˉäô’|š¨ö‘tQ5†Ñ²×õ•.Ðl³¿KØÌ7íç'¹•u6Þ=†Îç5 ôzýKn?ð‡•‹wÌÅë½ý½ÊGIQO}Ûß›¹¦Îi==`úÕ\ûê—˜X7†ÌHêÈq[@UMUÜZÂàÒxñ[b¢žŽÇQ+œ\I"Á¼sáÂöî[IÒE; ™vØ; ‡7[qîÚe»Áu›Šù{JgÎúG·Þë» ¯—wè¯0ü—˜>\‚⚥¯` ·æB#;7¨·/•$T²lö=Ít¸]ŽÍnf÷·•؈ßÂãkºÿDmq9Ïõ‡4°{C]÷¡Ÿ¤/åÿ#×ò:o›\ŸüŽR²Šžœ¸:C–@Û‰ãÀáLõmˆn s˜ãp:OoRãˆû·Á[–@ÿ^/ºÊ¬@&'wÌs¯n<ë\ôÿ‘urzI>M[g9ÆM3.y£±lŠ¥a»^ÊvÓØlˆ .hn.³ ‡'9Œt˜ª<'½%#ÜÕè_òC?ÿHBà½Àí1u/ê¿×ú+Ì?%æ—#ÌÂÇ´ô‚§uU;ølVêsOXî[;Äšüžö0DHõ¸ü“Û5|ÂÒ=¾KšÕö»ÇIâ/å ~sO½l†PÁ%·® ÝÜv—ìÎcÌáŽB?Ø*o’Iñ´ck®04•O¿™µ-yn6·,.$u Øê¼N&YÇ ö†åqÚÏd;6&¼µä´¸8›Û#ëTÞ=MRç6Å‘7ÂæÞù‘ûiöe+^È[×ô™>ÿrÙm‡gÜëŒN.9ŒÑ@Ý¥C1¸0{Knwrcii!"Бæ†çkô“šŒK5+ÝxñX–ºÜ/—B¥Žžv¿ xmÎm¸›ÓÉKã‰ï/ûF¶×Î! =±® r<3hÓ‹aŇâÇ¡Ál6‰­ƒÆ76>¾8oÜž´jEž-ÛxÚý$ž*— Ìpd»Æç|=¿Bsãs@í²¦ñy$ŸF6ºãóIT»èéœã)Þ5¸soYì<”ž.'ÝîþÑ®½±_É'¬~ŠóÉyƒåüÊüæ¯Ø0æºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*m%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒTºJ—IRé*]%K¤©t•.’¥ÒõšG0JÈÙqÑw´¤s¤¾\8[XQ>z—48ÆÏÍ¿jcá‚å銒 ¼mš§¨sšÐnÐ-˜¿Z¥¨lƒÉ`±Ä£|30bÂî©f¨d~Tƒ ±€ZàábIó¿’Û¶ƒó*‡]ˆÕëTòÓÊëáŘ=ŠGnÙƒ´“wd;U-DPÇùÏ×lÓehŒ€w‚ÉÄG`{­Ô m¨ü‹§ŽÁê—i>–x»"¹s¯åÕÚ¡¯–8åsÚpeolr9ðTCÄÉ·Œî¹—Xå§v& 7áÅ9Í~Ñ™­í âOÉHYG²)·’~»²ä¶u}%<ÆÑÏ,vaN©ñ¿¶ë Ç›§ªd¶~¤É±ÕÓ3™a½¸qýIê40hë?¿B¡­­e?奅—kSÞèå6¼òî‘eEY³å›ò^0˪j¹ª0‡1±3;ô ÕÐ}Xqi¦lWx·JŽ`ÚoÊÄ@Æx¥q ñƒ0¯b¤­Š Ÿ‚*‡Çf9E=U\™¶‰ÖLšž¦. ›…Álý¡Q$N"F²+á§Ê¢]Š1œè]n.꽪-¤ÉDŒÞÌc³gM=7T•’ÕÔ7i[Ú4v„É©êaòᙸ\;Vίª¦…Ö}DqóµxÞêY!’6s^ÜÁgëeÁSÎß³ÞnœÛIÃ…ºÓ&Ü_ wÅn´ÉŸA ÏGÅOQWXñ}Ì ¹µG5=T>\6Î ’²IŒ»·ÁÌÎØŽ|%m\tÿ–šîÆ­ãámcfùV8zýjƒhx™8|gu̺/|5'˜øÅÅ­{¨*iãÇ‚6=œér¾J޲‚Y¿%ãáTuuÕA¸žÊvbÀ;Q’M”ñÈÞsRÙÕô”óG<±Ù‡’†¶µ”ÿ––]­O{£˜Ú6ó˺E•fÏ–oÉxÃ,©ªæ¨ÂÆÄÌXïÐ3TAõaŦ™±]âÝ(IØdd‚ÎiN¨›F³s¿cOÙÄË ß¢÷Ò¶­]Cf”G,3É‹Y ¶¢’ŠŽ0éL.Âç¸öû{¿å›ÖÆÌC¢î*¶Z–ÍÃkúÕltb8%”\oܶÄu•ã&î"¹¶ãÁF×>;’8\›üøi£+‘—NÜšÉM‡ë]E²éðó¡€9ùÒ}ëÏ?&¯å&‚7,9ö0”8†ÿ”¡xéÈt‚ýd¦1…˜%Œ …‡WRlMh#y‚,û»Msn=ˈ®n~Ј ËÞˆ¿Ž¿´‘nìë0ðõÝK ÝŽt®°Ï‡ài¶]>ëåÜOºþäéc‹hÔ_ÜÖ‡Y궃ll¡„29㎋ºųšmíjþS'úWåèbŠfžË ý±»‚œCOqÁŹý}êHãt2<Ô_+vŸb¥u.ÍÞÉa °Ç–}=6÷"V궺08Ûýì…ËhE»3 †ÇŸ±(wÌ¡a¹€ü ˜€õJÚÐÎøÛ€É~6Ù¹ þù-°ÊÊØà"FÇO„[´Œ¯Á7œêé>åMaýœ,*"¹¿ ŠÚÑNøÛ»t‘ãm›¿ï’Úì¬¬Šœ‰[>‡´Žž mDú Nséê£uƒû…M (ü dC ‰Ìu*ˆ„ïmÛxÄáêLvçð–ûñxx{v ›U,=—Í*$kw7ém³·w¹YÛšBÙËzÿr~ÕÕrG|ÓÙâ{ÍF#kvŸgÉ Fj‰`ì»,¤‹th·`Y‡‡®é—¨eÚîOܧm;DŽ´Ïn&±×nexA’Ú`dt£ïÙж¹£Úl`G#.×ä8wtq]×’¦Ç<6ÀìDp7èT/utÍÏwˆ—]Àžj ;ýÓ ŒslV¸Pï!¸8n[ÃÔ©ðÇTI˜c<ëñÎꦔ3ìæ,© 𛵯–b‹øKãݹø“Õn šÐT¸ºVãw8ž=+fTU !t1¶6†ea‰ Lî|¿¬~îÅEö7v–‡b¤ŒÓ7È`Ë«©S}°È=î.ÃêQ |{·?òz­ÁE†z‹o]ˆó­ÁSs+Š cw<ûòö(1R€Ö†b#!Ã>*äq8=ƒ#‡Nöd׃…Þð©Äxü§\’}¥E»l’1w'5NCœéZ\N"xñT`é7…»Çy\/{ªNl Á!Àu_¥SˆñùN½Éö•Hæ—¹¬†Ÿb¤o‹G› }ÊšÒÓGº‰ØÝÍnyqí*œxÞ;Ëž® œ6ªaisŸ³‡B§Å#2k‹]ob€G‹Êuîç{T[±,†Gó‰»Njínü/-> ¨Ü ¤?wÜI¸à=Š€ï÷L21Îu±X^áBâï‹20‘êP¶hŽv=¬u*_¶÷[Ô©Îø cc‹IõªFneü veþ²© ËMÚ×ÈKG±Cz¨™Ärôpé*‹ínì/->ÅI¦oÁ–R¦ûa{Ü]‡Ô¢þø÷n~#äõ[‚‹ õÞ»ç[‚¤¾9ÅC¹îÎLóãÚrTÛã!¼÷6×õ³ói¸ûgýꟙä¼÷;ªâ§gF#™õ•I=Yœã»iùžåEBÆô8ÿ˜*]þÿû-K+ªs™óº2ÐÈ} »}ãëe+%ÙµÌuÁöÿ10Ë ÉÕ'6·õzý|=jYjgyâ㈕(£=5Çû£5µÞî±6ï%WW‡u’Óô[YŽw›,X{Á?%DçÂ?‹žßÙíU.>slw¬ )«€Î"r꟧ó [RŽlÒ´þW°GçêâÜ7ò³8sX>§±B$¨·:¢AwŸ»ñƒ(«xä>Íþ±Ñë ’SUBëõz?TàÚøÆGÓ¿__ïoÓòa©ªò8²?ÛÃÞ¹ ó¤}²czJL׳Ûÿ5•Ѱ“ý'±c§ª§“Ú×`ÿ&Vù¯~ßÓÎ kEÉ= ÿhþ`êo@÷&Ú¦° ØßÍ¿_ü&Ù³Üöóº»äöUbñã‡×»ôÄ~5Reݘï†ÞÛ&9˜òÒÌßÞª?á»îFíp¸<¯iY»hëÅ‘îºl³ÿÕâ{®…€å—tÇ¿Nsöz•aÿÿr¬?à¿îU„¾W†0nŸ™<:?¸œb.gë Çx^\26Aì7Fí"àþƒ¦qt”ûýö,‡­ìP™Ä8yÖ½ÜÕ0°Od =ä§!Ì¥ñî,Ž`ZÞßŦ3xõSiîléíPºrÖ2&›¸ž ‘Ð?g¼1Ä¿+ßîükî a‘ö6 æv²âÆÇ“Ìž"~è<É„¸' ^(ß “p[7 2˜ál»áÓÓnN iqö/-õ6oêYÅ ß݇ý_ˆÌeµ¬8zòr§ò4#Êèâ¶Ö˜ñ^ ixÏðè¹»Œ?‹ü\®g¸®&–/òÐþ´ÿ©WÿÈÕ_5µLdEÌq¶l`ÌtÚëmí Ø&©l0ÕË.‘î+ƒ6F#ýæ­·´iwïp¥Š–\,‰ Û‡N%]á ™#àedæÍ˃œ{,s=‹Ã]©U·Y…Îk%{¡s¯˜ÌpöûS©'ÚŒÇ=C2-hh&Ýþåµë«¨äÚ Rc,“ÌÑrÎ*k×ÔÕÉÿ5+⑎¯c¬A»úW„»PíÓ²pÑ1†åÍ·]ºUE]5cXí¡=(³ÛpÞž‹ÝË—mšèœj)k%&p@9´;…µÛ.Bò)©i‹šØ›ÐM†³Š¯|Õ™[ kžßÍuøßŠð‹iÍ4”;Ñ &´xpÜ5ç.*ª¦²ZWâåä·¨rLb‘Õ²ÈÑ€›…µL hÜe´ÍU\Ð:1ö%·ºŒ‰ŸU#ˆòqñwÛû¥ۋׄ¯ãižÁïéøŒÆYZǯ'*{°‹âèⶨÚmÀUÛöøüCè7§ñxI;Ýïq_É"ÿ(ý-u#wo…æÂFg×ë+c3cйàÔJùÃÉ«÷êÍ5»øªpÓµÜ.0áºØíÙ;:–a<ÄÎdpèöªàìíÆóÍ×[ŠØÚÔÍ{I;g °>pÿn•,nÚÛF_”bæß8/ì>Ò¼¦ÙŒl@K&ý¿m†ÆÍ$tûÕ Úû,au#¤xqáÀpþ’Øm £¢«ŽGFjçœÅßêpíéè‡vꇈi† ï±oN\/–JÿÉ[Å>Ñ¿i›»rãÓe ë EC¨¨u¢¡ÔUà 1Zý©¥Ä<´gÁC¨¨u¢¡ÔT:Џaf+_·’嘭~Õ¢£ß*EC¨¨u1Èì.i+ùMâ×z {]Ó%9¸?Ù?zÚmŒž‰æÛ¹mšvJ ÷*¹*]æÅúØ*VÒ·ÒÉλ€ïRKSQ!âN'ÎÖÓÿöû”:ЇQPê*E4´—†œøòÞT:ЇQPê*EC¨¦¹­$EÏsAPê*EC¨¨u¢˜Zæ´qO=ÍC¨¨u¢¡ÔT:ŠakšÒAÄWH]0¹Îh$â*EC¨¨µOJ>¼¾”òA…LJ;r§Áø;þŠLc§.“Ñ}W¥<ƒ!Ö¡´×¶þÅêüï—'¢ú¯JÑ}y=Õ~[tì»d‹¼{zßõ_Ç.=KlîØO5»€lÝÿ§jÚ^2ËX7tšô¡z?ªÅ¤h./Œd}aa™Í'/$‘ךٕDÿF2ï’Ùu¿à;î[:vÿýš¨Ž6¹Àaœå;w›Ý›Ž|†ÍåI±ÉI€Ë£v¼\/J9=+y<l±µÄ5þ6шuÙx4ßùÖ-ˆÚhüÿk“‡½y‡ä¼öòas€É¸¸¯惑ñÆæ¶#i£óüi®Nõæ’óÛÉ…Î&ââ¼kšGÇšði¿ó¬[ QÆpÿkîz¬˜~KÍ Í+Ì.N]³½˜Ï;“Ò¯/¥<žk~e}¤Ï‰¬àEŽ).é?7«‡'¢ú¯Jy8 ×g. þ_Eõ^”® iræÉ7Çú£‚n?á;ŒÛÁ3 „{Éq–v#4Û>9‹¸Ìu¯Eõäô_UäFÒçz‚£C3ƒb—ñ“Ã+*’Ãg Û¸ª³þ¾å9{À½°’ô¡z/ªi„áõ LXÉË,ø*‚Ób0TÃwÜŸ Úö²ôz/¯#ðÃpé}ö*Û¸™‹Ü±5,‰¼-Ç'¥ž•¼ž ïñHNóðŽyñµò^ÿÜÿjð[Å£óÿbúª|2ñ?Uæ’óÚ‡5ÂÅQãÜÛÆ.}ëÀüM#øKzð[Å£óÿbúª|2ñ?Uæ’óÚ‡5ÂÅQãÜÛÆ.}ëÀüM#øKzð7þçûVÀüxí¼ñÍíóáeæ’ê ¨¯0|‘°OÅ#Æ,yíÍìäô£ëËéO!üÖüÊ-ÿÂÞ?ÖÃ’¿‹îÉþÖ\ž‹ê½)äuˆ…Ø}v\\;Áåô_UéJ¢ß:á¯~òÖgNJ‡F,/Ð:{VËÃ3ªq‰7ÚßR£ñØßž7˜,î•KâØ¤ÄKÑ}y=Õy4µÞ¢«„ÐBàèaÁlpÍîMä^”/EõRnù‡kÛ%´w¤›¸n­|Âh÷&r^”/Eõäi1¸qw*û©b{~²c±‡ó}èóÄm¿¹zQÉé'‚{üO'yøG<øÚù/îµx/âÌóÿbú¨0¼tïIú¯0ü—žÕä»"¨ñ¼çmù>õà~ Gð—õà¿‹3Ïü!‹ê ÂñÓ½'ê¼Ãò^{W’슣Æó·ä\û×ø€9Â\{׿÷?Ú¶àë²ÛÏÞß²ËÌ?%Ôº—˜>K61øÞ·¦ZsäÄÜD<€/ÉéG×—ÒJ›b@EIëæaÖè¶cÙheÕ2¨˜Exj~/ê”îre.•jèÁPI0ùnhÐFhÁJ0%øp]h‹µBñYÉ ZçC{ÏUu.Àduš7í©CdÔbï3wËXV,ß0·uš /b¯GçH¨š–ÐMµË-DÀ•3B 5F¹ÞGW*U* ¯2¶ü[‘…cZÔHÀ¥ºJÉÃK¢±ÓᲑa8vÓÃP† ätåããéY8pŽ£GI“Ÿ ÐD³O ëxÈÖ´´7©DB‚­ÉªÍ÷®¾™ ÃeâŠÉ‚—+•ÎSqLiÕ©´Ë;H- 3îxª«©v#¬ÒO&‹˜%Æ…é ‘ªO“Ø=â¹Zÿªèü§GáÿJ¦ZÈø²¥a bÄ'o íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3³†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xýšã”fÀ]o¬OL°¹|¢^‰»¨+vðöÅã rR£ZÅèæb¹L›lZªñ¼g„]T°îíÜ ­j¯^þפ²ìÎ%´¢xRîµ5‰g&”2×¶¦³ÚšSDlwûF†_Y[u¢ ŒŠˆÜ23´¤7/­Æ‡mµÒ²Ð[*AÕw Ñ­aQEÕ|06ÍŠ´²©|G‘‚ \o‹ŽÒ¨ËÚo»@–[¬¹?™™¹{Z#k‰hP >Æ/Z—y§øhf™˜Ö,÷–’ `)öWoWƒê´iöÚYîâ'rÿ—yºÍ­òkÖ±ht)XÄèL^%–×u³¢=m KµÕÅêˆy“õoÁNZ™—l[yT%eZÓ-—MÒÖÇ:ÚàÅ^.ñ((sÙ£QunM`Î A ªt2V¢iYˆ“P²ž®³ó³)À -µåÊÃ8hw¬?Ž««Òþæá*_|”e>Î q¥feŽUKK«lÌY’¦EkKEK5ðÝBÆjÉÄÐa¥è——•P ÜÏÃ*P76^ö8-ÇŒÌÿZ¹hÒôÌY’*ª_êÕ-U^j2꜖]m— °Ý)7MU\ÿà˜aï]"hgv†–Xs´¦¢ûÞ¿°Z-¢Ú)™Ð¥FÁa¹h:&æKSYrl Sü7Xµˆ]U³9hkfµ¼¡Íá°…„»Í8wÃC ·IP²5^-˜ä8† MÒ#­Öʹñ`õvÅ:]ÔvE]IUå¸é¹æ-ÃÀ.QCUp{ÃQ “ŒŽ‰¹Œýó&êß‚œ´5…3.˜¶ò¨Jʵ¦[.›¥­ŽuµÁм]âPPç³F¢êÜ›:Ř¥2©ÐÉZ‰¥f$R”öT¥pźp®Q£-Ùv/,ýë¡¥mub™Ì¤B‡à«³&³þ;6P¶¢ë\zR7»+ZôWÌ»¤Â‰d¢Ö4E©–É©¦t_™ZL©ÚW¥ÒKÈ‘û ă^ŒÅ9ùËŸpÒ1º®š¥›ˆ?p,Yi{—EôïœDY`?d„… ]FÍ|” ë*ì\e˜ó”ù ïªe¸FN·j5b/t,KÂ,Ü Ÿ¢á 5mðM¯–kZ¦}xoO¾Ë—¦ ’å†D¨lƒ”¡ø„Òâ…˜+p¹ì—Ç‹JjÁº4m^*”…ámS³ñÕË@_„»3R³Obþ9œ(¼mÚ~«iUEÈ ÛÝ¥G„i㘾…~ LÓRwøSï4š‚™)~èü} ž°![«_•_Ì/…Vv„kÅ}•ãËà 2-i@VÔ^„ ʵ¿– Ð!áu…RËñQ49¨öW/ ÁŒ6Š)EÁ/B$®,2Ôb®N!UØåüÍû2€äµ¦úf·ÁèlµÎ1‰¶\'÷Ÿ]“–)„ybõíâpSc4¥5J~Þ¢£Šš_¥WË(ß6+¶]µß#iéáàè~*eІðñþbÆp! A<(û0€4°¯>=KçÉ– s4^—^"ÎP`SvQ}œCÔê/ç©‘MkT¡—ÆËJjÁº4m^*Q .hš“kfg/v _ªÚWAeEòv÷iQ±:xæ/¡_‡¨“4ÑNÿ }æ“PS …/݈îÇZ2{-~л®Ô(©Lc-5Öˆ¢´Ln`ÜG%mÒæuª¬BžN'øíšñÉx,¥Üú±âÑf¸oX%‰Ô7‹d=—%b´ë­Mjé,¦5û1èÒP%ýØÜØx•ñc[C‘E¡¡¹¥muùÕzÓÔD§ õtÊ“íS ôWpÞOÝ‹³¢D FÉ*Ož¨CØ]¥Xägš2ÓÌøsy+W'™HÎ ñƒS+‘˜Ó¿†ÉN|L…é£d,X…æØsŸ2¤ƒ±J`RÚ¼aúÓ›v.·v8òDcÂ$BTÏ©Y¬–0º%^!r”]èÛ›Þîï:Ç\ »Ôçá¹_âk@‰“pf®g.aZÛ$¾XÃc-S¾´üÂwb¿¼{ @ud{ÐQ»¥^° C9¢ŠV\šÛz²Ø¨´‚©É¡­õÚWøšÐ"dÜ«”ëBÓ`´cÀJ+P ¯È»&‘ëMh˜Q¼Ðfw²+BкÄO ,,× êË5¡j>–‹^´›:0ˆÔ5¡ƒè̵k5fÅ ÜÅhPd1Œ0Z£=2Ø× êË5¡e_KE¯ZKŸ*w¡ÇÚ£¢¹fEäPÞ[o6Þ³5/M„`Ñò"æò{û Ý•bêêSÉU«Í4hJòŠ`µÒ¬Ÿ:[ZËÙ‘eSKY£Æ™|ÊåâЋÈÖ† M,¦Þ¢ [½Uë*Ø#g~E1 ÁZCu§6ì]nìqä\­–µ4ÐÃdQ dˆh†V¹<²ŒBŽ—ðZuq»Š…~\ÊÁºcâXÞ6ñµKÁJYw©§á¹hÔ¢Û‘•¼‰yƒ«#Þ‚ˆ-Ý*õJÍR9rkmêËb¢Ò §&†·×i_âj@‰“pf®Rí L‚ÑR½Ö3ÀÎ’æDq½+ÐÖV$‰m#f¦PmâÖOMÿÛT&¢‚ÕÓ¶¢ô >Uyü‚#%pså,ü}ÙüiÊýcÕkë±ä]&ˆ ÃÿèNµbÚ“T­1ÑûlÁkŒ©z¶è ˜›çÀ‡ä!ÈÛ5~úЧ…ñ_ÜÛ*” 5­Òyk#à@¦¨«àè¿:›$»rlêÕm|Û&u€ŸôÓ¥§[E¼4X2@ÅÎQ°×Ñi§ðëÇÑ÷½ÅD±”3‰|¯þƒNÅ(͉ö@øIpZ胨4Ϲ‹ “ýõDCHªðÒ¬z457Ãrþh7Pƒïç· ºÝþ¨ÿ‚þV©W½þß"ýnbÈŸ%&òÞY]õЃgûÖ˜(jÆÆfÞ>Ð>÷-†2Çð¾×ø‚Ø1SùÂ?1½•ÅÀU}Ê{b“ýºéÎYV‹tjWÞXÕ¶·¢kgÚ¸’­ßZ¬K>˜ c®à¿aý¥è™ô ›€Ð>¬üLÎÅ ¢Î˜úË–Õ …j…µ-uqþ Z=5¯Ø>ð—E* ”–?èÕ,¢šcù^ó+ï”kv›D4|ZN‹½_Ò¹í‡C ±í⢰u6¸^˜ù”Ê)-iÍ[£¤ªµÚ8 ª¿ÉÒ-•m´EÅ!b ,ÛèÄÖLÂú½¨ÚØuó¬&üë:4ó¬)–T.!Azf¾ŸÃ§ßÔ®º®}äþ~ó ÿgþ‚ÇÚ¬5\7*ØdXÑïH5Lk¶ÜºÌP#3iç׿ñeÊZ>Súˆ¤®ïú8u7ŸãÀe¡3KÆ™XÉ:È芣YK%òi?¨ÆKmˆ-6e,ªâ—‰¼¤¡ÆW•ÄN‚¤D—J®¼¨8•ˆRj¨GÁcëéI4V‚Šò¼k³ Ð5jWˆ|£^‘øˆ†N„El.Ô·ck*äO¨B´h3¢ ê<Á}’V.×½¸fÂk¬RêÊ<)ŽƒC&š«Í«{»ŠeEæ –®­¯»òöJk iþ™ö˜Ì¡¢ã»Nfª©ÌSJ¹áƒJ3û†)ÆMQpµ©ô,…º^ðB}™2f£0?Áêe=ªãUŽ1G"ÆzMÅTueÖ°˜8…}ŸãItúðîXèÉÊÀ*ƒm,i°‰Ž]` u.ƒ)`\Rš¨McÍ+C§Ü$±(µV‚§[v_Ÿ`å+Ü6…mÒgVÓC‚”„pà¥!Ø·SLEÅ¥û½,’*G6.â;a¼ë™Y‘„]…¯‰—3f€ò€ÕvMÍ­H‘±S/“¿„|“c±Ü9º÷QÂð^–šQ ²ƒt>@2nM/.)åvÝ1›¤%h?GF ©ÊÖjÚ´÷ñ Ô@§…ŠBýJ©eO ·Kú>®:°C‰¶Ã¡Ö«HQVÀáC‡ÜN,Âa–Œ}›PyŠ0‘Uw©€ÁJ,¥øÏíþ:žª…/´£Dˆ¸8w•쾃ò¥Ûåê¾Oð=O!SîÑ÷ˆ#jŠËzøÐø?ÒçaUÒ˜hŸ?ÿCênBµÞQ l^Q؉êè²®õ ÉãèmÔ”&´#_˜F5¯Ê«=nJ.ÖB ùÇÃþ ¢C©Áøoï‰Õ[}¬~s| ©ÇúfÕh"Ä,ðßÔíá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÛÃ;xgo íá¼3·†vðÎÞÙÃ;xgo íá¼1£·øêýËM y¨Ùê?kpüëâ¶Pp‰ùDÝZmòZ2ÚÚ«ñ‚¿Äjº¿“ü‘|‹>cQó ¢Òv þcôj¿ ?O¾ä1lšÃ?™ÙÏ;9aNHº|üK÷/r ÒæQÓûœ³³–vrÎÎXPØ–^ì!™†e?¹ÙË;9gg,ìå… ‰`…îÀ˜iÖQÓûœ³³–vrÎÎXPØ–^ìvÙüGm•OÄhlK/fvrÎÎX޵ïçéßø‹—uð@$[X<̹mæ–ƒ…â:Ð Ë fJ‹ƒs¦CÉq~?ïuðKË€£e[Äf®ÖÛ­Jk7ˆ5l;‹ñÿx“¯‚^^^^âüÞ\_ŸúÏãÞÝbÃ`¬_Ä~’æ®êëºÔêæ–Nž ±›>ÿ˜Xßø²Êÿ¤½êÀ¨Âý©÷jQ´l³q©&æ~B}7,¦nù‘‹!»&¶´mr³Kü85Ûà¢o ]M#°EKžRUê{†ÆŠ2Kð|JÙ+ÕX–D½|2çEæ1\qfKñ:Wõ*דcÕ¿iâ_íå4F£¬¸$4 x½£„AOMšÚ.U®?&Ç«~ÓÄ¿3ÛÊhGYpHhñ{G‚ž›5´é_ÔGøhy®}F{yEØÚ.ÆÑŽÞñ…¥'Ñ95»¶lÉNÄ[-•vp}šck-#pZ’µ÷&U+Z‹âaG—×ö•vp}Ó|@Zÿb/I…__ÚUÙÁ2Ð^ \|!²è6¯Ì¯B[òŸÂòQê€.¬É Jê°ÒóˆòúþÒØòûþ‘Â¥­h-€Õï˜lX³9]7 %‡ÑeÔZ°]¡æ.‡F¢òý!)ª†3Fµ•ttטºß{¤iÈ}"?KÚyaªOp„¯üÙi›¿HÒ^¬Rµ,tvaµH­înèAÂÍ:1W«© ڥݜ2ØÞ¦²·?=E ä5­¾kC[é“b¦“ÉŽŠñ.ïå÷@]XÏæ¼B¯ ah0éæ´KZßL›4žLtW‰w(§¼‚êÆ5âxK A‡O5£èÛÁž°ÜkK¿RîþQ½-#zZJ»øDµ‚Ö7Æî ¥nL~—ÏX1‡'Ó¹ñËŽº8%¼Àµ¾-Ð!£\û?¹o]Öï¿HÕÌy=?h룂[Ì6Ô›PŽüÅow«ÞcW1äôý£®Ž…ãK9׿$²‹Ùʽ*[.÷2¦œùˆ Ë­«»Ûã1DV¸)¿·ñOOÚ\y=¿I’¡¯!L¨KÓq´ÛF3×ÒोCÑôpÇ“Ûô—#'Ë,Öõ/‡ ÈÉ—InTwi?òQ˜üÒTó¼9””Ñ%y‚‘(FÑïHX•áÐzÚ ¤PÆ0Æ#¾Žqu÷”¼ÏÏ“Bùko£ZŸÖúdØû¦Æ}åïEx—gúalº±›ßÞíW„ºötóZ%©ýo¦MºlgÞ^ôW‰v¦¦Á «½ýîÕxK¯a‡O5£èÛ…>ðo5¥ß©vy—áþ¢ü¿Ô«<׊ÛOF™éE¼·KBÌjB2‚v¯?NçÄ\¸«¿‚VG H‡Ö†÷ û‹µN•i¼¯ë¯%Úµ~&,VžŸ´UßÁ  „Å{^Ë,OùÐt_GÑ‹§§í(ïàŽ_à1b´ôý¥ÅIíúLÇñ;]ØÖ^PÕF±úK®cª¬ë_KZ…®c6}â¾þ©=¿Hd¨-Û‰œÌÕŠŽ¸ÞY{]U`·ZúZÐ-éS Q÷Šûøb¤öý&lC¨?%ÀðTÿÈC(¯¯†\]½ån/ÑMY{Vµ;÷÷¶×Ÿ4“òÜ^‹[K>ŽRN’V3[îUxF›Bšžjñ¶×Ÿ4“òÜ^‹[K>ŽRN’V3[îUxF›Bšžjñ;÷÷ä»V±¬ãÍú–G/ÇýEùÿ©Dr¸5enhˆ5“û 1ú/-‹¦_§Kâ.\EtL›ÛoˆßÑüN¾ ÕÁ:ø!CÙö„ÖÕWÓ]&öÛâ7ô«‚upN¾Pö}¡5‚µUçÿ±Ñ2om¾#Gñ:¸'Wêà…Ï´&°vª¾™qšÉÚ®º#Ç£í 'êà\¿£øˆ®É‘[oó¬ªë¢2ÙO|KëŠupN®_ÑüFdÈ­·ùŒÖNÕuÑž´êà\«‚çõ]“"¶ßæ\³ËezÌóC¦“«‚uðN® ÕÁ*ÉÀ¥o3ŽÁö.y¡ÓIÕÁ:¸'Wêà•dà R·™Ç`û<Ðé¤êà\«‚upJ²p©[ÅoëúŠŸßõ.ÉÀ¶…mÔ=<@tézž¯O_N÷Ä[-”ä¿ÄïæüÓ¿šwóNþhÈ"ëºÊò _âwóNþißÍ;ù§4duÝey/ñ;ù§4ïæüÓ¿š2ºî²ØH"i²NþißÍ;ù§4ïæ”äU¯Ì$4Ù'4ïæüÓ¿šwóJò*׿šl“¿šwóNþißÍ;ù¥ykó-Ž€šŒëæüÓ¿šwóNþh`<§û€º‰:ù§4ïæüÓ¿šÏ)þãà.¢N¾ißÍ;ù§4ïæ†³Ê¹l¶8Fßþç4ïæüßBŠœ^£w;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;ygo,íå¼³·–vòÎÞYÛË;y~ÿŸúWÿÄ=  !1AQa‘¡±Ñ"qÁð 2@PáR`r03BCp‚’ñ¢ÿÚ?üœÀyÇELàƒ»!çËZ ß-Ù)Þåá®ýðщR ™ÁPIóTʰο!Z`;Âpä7]âé~‰ÿ°Ž ȱuѪT‹·´'6éøv›¤ƒæƒdÉÁ:_f1ˆðDÍ¡ý qGøNG$ò  ';é®’5Š}:©¾àF‰žéIV‚@ï Ћäg™M=€Ý"SE×1ºâ™G»»ÅD§’v¸~c@'J…:P‰ìÞÓÎÉ]ú”hM®çh$®ý|„žŠ ïàšopâ%JŠÂpZcÐh´ÇwŠÕôâ¢Ó:!(¬)¤¨Z'ÒÚÆßú¨ŸK{ kªeÙ(P·gD57¢%¤l@ö§o„ oç(™q>g¢Žù䈆ýÞe>Av²yOÈŠ@Õã'ÁY;xˆUkigx  TqŸ(FÃ<ºnM¤lŠ"[§‚&¤íû¡~ÖɵÊÏ8äö†£¾‹‘eyÁï©Éñ×Óª°Íö­ŒŸ:PÍÙ0qZæ›ŽÍ Ê3s Õ¼>ÅXÛ2Ùì4ùtÊM•ÖâîZVmÉóïbÒͶ­,p¡Y#‘åFÅØ ø|0ÛÚ>ñÍ8’ ÄO£HW>gÒLT¢#ØËÇ­ËYfp§_k<¶ë™h1òSy ëø(½f1¯9”òá¥çt)´hF?Øñˆ„é©Ó•N¬qÖ©ë)øŽé§)Àݦ§©-ðŠ´€÷…áúá„ïXã¨óé„§Ì8é†ò3÷O«½Œ´ú¼½;:{YéÓqýÖ³àôGï3¶Nm,Å£qo%eC(²ˆÇØsƒA'e9vYùG†þ@DÑe9%®Iië¬0åöY>v²´iÙ<Ê,ˆá¼+\á“ÙŠº{ª­-íóƒ®Yˆoœz,›&fNËù¶n°¶2D”G2Ùþ3ÁYæ‹ÕÒ|ìLcX.´@þÂÿÄ@ !1AQaq‘¡±Á"2Ñð #@BPRrá03`bp‚’²ÿÚ?ÿQ`Ë%|ÞÅÀ#+KBŽžŒÛÚ©˜Tݲ‹ãióŒúHáÌ0Òm Åà—'gÐ —}MÎãH<$ Üú`ìdm\Þ$¥hžã`Ÿ£AÜüáS}œ!æúøÀÐ4 ÷ôh_x8Ü`Ïkzá ã_sŠÞ´Á¿}L<ßH;ƒE”—çç ð ñ©Íý0$AÍç §$àÍösxv$é~C%„ÉÏôV}‰hZ3«Q ÷ 凳ûh‡ÅOýÇ”W0:Ùª eP•ô®Sá–7þEƒ¸#W«Uþñµä‘0“ ug'"w¹”Z¢)'ÝY´a)ŽI ׺)0ÆÛZ±¾ÐF H¨öƒjÕÔ=óR'Hc¼yU†TT}Êp?ä5þ¤é¼hº-+6±fÖUV¬PÜFB3ƒê`-Š›F¿ï©C¢‰Žµ~×`Œ4ÂÚU³W£?*Œ°ÒD‰è4O/ÁR®ST©ÓX S)7zÌrˆ·èhp’ÂM¥B>bîñ§eãùú0â‹à È·´†íà˜ø0MB£ƒUŠÚ|Gí$sø»6§÷´5šªæ™Ö Nø¬Q{šUÑþ’FâGO¢eFérf…ýZܤóÇ&ø(hi)éGFD°)Šþ& àïÙAù´Ž6¨wޤ‰ ™ÿ JŠH ±ca Gj¿wZ­™c„‹ç’ò"×À B¨¢ª§ÍF‰(kv‘IdZjÅUÁýªòŠŽÚõÕš‘]ÑÆ{„Tì»/(>Õ[^=1Ï©šŽñq¶íª{b´kÒÈ@3yœ§gäVfZ¶zBIŒ‘‘SÜoá=¦Wwª+¡Ú”ঈ&Ps½^QX¬ÓV© -2Ê”r’çý„ÿÙplugins/jetpack/images/screenshots/publicize.jpg0000644000312500031250000003575712651056012022572 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂö"ÿÄÿÚý• ,XTX,XTó@  ø‚À°),°Ye‚ Töx‡…¥²ÂÁ`õÑ–5|`æÙßÍ¿™Ñe@¤Yî® u% @ ©eRYBQó´äüÛùêÝ¥ Øt³Ñüê=Ïõºp`OŸ¹_7ãîü|rߎŠEŠŠ”©²æüÛù›iûó‡ÏzIî›.Ïáݯ­çeûï糦÷?Öòãà|ys_¿Ã¹zí¦Ã©iûF^“?ç3çа·dT¡ %J†Ë—ówælÏÚ¾ ïúßõß©é>Ö7<˜ÛìÄßéúØàÀÓõü®§¿]ŽN§°ëf¯y¡ìׯóbvž\¿´©@ e6\¿›¿3?]uÏBé;αٺßyèç®m28uþ)æÞéúÝ80*, ŠK,YQQDTl¹7~f–X‡Ô¯sýlp`,6<¿›¿3T²€Štýlp`BË+åô”–T¨T K6\º](Úvƒ_Ã⛽Ž×Cñ•±Ñó}d`qlr:פõl~n\9ÁͲÁô©`,l¹¥@±`±R§ŸU§Ìßjðs23°´œùW"î4<;é¨åùråo3ÂP %eÍ*`à×P‰D…€Q)ó´ä¨) • ‹5¼0¡,,…€¨,ÈØ€` ÈX*,X,,,Š€X KÁ`²ÁÇŒ2y±`)*OÐ% D¢RPkXü×KÓ»~òË)EÇÀKP–R,²ˆYR¢Å–Y²æ<ë©úÏunçúȺDZvnƒÛp{%(ÇÀC;|ÁåÊÖì_Wç‡U·æ­~läK,²Ê–*T²¥›.[óÓÿ9߯Ÿbõ®ì]G}æÏQ½ÚôÏÑÖ^ ~ì6}eŸ5“A—¶Þt Ž/'´ê{J”Š…‹•6\§æM“ôÖÿÉ:†ÿ/£{G’fm7¸GY…—÷õË8r~máÇ™¸Y|ZîÃT% @ÙrÙ«òÿ&ÉöïG|ip¶8\Z>Ñ—»–80[€a±å®.±‹Ù¶eœ %³eÍ80 /rº¾nëS——dUÙ E"’ˆ¤Ùs"ÅAA,XàÀÔøæVË´ônm¿hÒõ<­NËÒ:Fw^åçûÏÆõ¾P€›.QQBP‹3U˱áÃØ_¯ž­®£ç>âÞ~,¾LŠl¹¡(±QgÆ«è©*RYD ”B€EJùÛ}a‹Œ+$€°,XYaeBÅ–QQe€e–¥ŠŠ ¨YQ`¨€©bÂÂÀ/ÿÄÿÚ{NœÒðÀ÷˜]±Ž–ûC¥­óãbbp¶»1Š ¼×åçNXE}žÏ“fxâ&&¸ï:€>¹E)ß§ajý;¦²ãs·Ô;zLæß5o®àVbȉ!iÿÄ3!2 @1P#034A"56`$aqpÿÚÿmºUÒ®•t«¥]*éWJºUÒ®•t«¥]*éWJºUÒ®•t«¥]*éWJºUÒ®•t«¥]*éWJºUÒ®•t«¥]*éWJºUÒ®•t«¥]*éWJºUÒ®•töz¦t¨`ÊÆëº¥uÝRºî©]wT®»ªW]Õ+®ê•×uJ뺥uÝRºî©]wT®»ªW]Õ+®ê•×uJ뺥uÝRºî©]wT¯Mj3eÊ ‘ìUËãëoÓñ}ûÓöÝÇLJ­¿N?/D~k;Õ¬@]=ÐöÀ†ì×vÚÔ").{aèòdÆæ{§G~ôý‡ãÆé{{W·TO¯ ¥d8åÅVßUpl¿ùö0ñáëoÓÂ+"@²ã:Æ–‘Ñý&{òöžwÓ³Dn,Äìž\Ós-C¦J)¥KÓ“nž—iÆ5Gw[ѤMœ¯£¦È‚BŽGôü×[C]GK“2r.[{ƒ3C™¥r´Oñá­?K‘<œ&çGX²U‚¯G~ôý‡ãÁUë%þZkÏS3]'6ê#ÒhyÇ…§€™Ô å)1#þ.•$ä–!©)öÞT~SdÙ=Ùš‘Ê5‹"UPG-9y™;È,·ŠA <=múqø2é²â8Ü9/‰Ì–Z¼çö´ Ô‹ÓÀS[šµ«êÓ›Ôœý*ñÈGßu†žnqºàáײ cQ–ζ ·ª¢ÆËÕdDe‡šÐPÝÔ^8šãŸ’ì½4•ý)´é{u2ÚVjÁ)•z;÷§ì?æVètû£œÃÉ×!>ܦ¢Ó®ÚÜtå¹+¼ƒ…úÍÃFß[‘_4"n ™Š½†ñ©p‚Cí:G pË¢ÓÏ»bD\t¨t÷?¥ †§\rc9-=G÷ Zz‘~O1 ŽÊ3M¡ÆÔ“ç[~œ~0^i==ŠúNkãœ5I©7¨³Ô¡ÉÓô‰/ó¥Í… Qz0¿§é?¼°V]eE©´×¦¤·5ÍY„}‘e° 浨D•dGNFWôí*6Ö•%¾‹rÑgµ.‘¥šß4øWó^ŽýéûÇîáãÃÖß§~øwá߇w~øz;÷§ì?»[~œ‹èïÞŸ°ü/·óÛøûPxð“‰6ÞéP+¥@®•ºT éP+¥@®•ºT éPk¥@®•ºTéPk¥A®•ºT éP+¥A®•ºT 4rÉž'ãÀÉ–‹NŠl‰Gq[æ+²ÆŽ«ÓT'IÛIþ¤Hñ#g¨¨Dš² ´Y§0Ž „V”£7¨®Ã¥NK‘’rCsˆËdâÈÄp'd…ÚËyçcHœ;‘ew £ï:Ô©F(ýsÏí$¥v\ÇvŠ[æb,–¤Iº Ivœ¼ÇfŒbÈ$ìs¡)öÞßfd•Ûpþ@xü³ñá1•‘ZIq„m²ÓßÅZ„èš“ØåâlW%ÿ#QÀwp•™âej4Šã†Ž1œ¦ß©ñVBiƨîá@uæÈd5ëÝÖà<ˆ-¸P²´ ÁqN2iÁøW‹YaY& ¼6mSOwaR-·i˜›g•ž»a"DÉ‹‹ ç!{§©¨mÃu\G$r‚Ûtи$J<~YøýÜ~Ÿ0†Õ~7«ð¿ û¯Wö_êþËñ¿åÞ¯ùà#·váÛò»U¿7µv«{­þ⤉õγ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:γ¬ë:EEú|µ¯û_º};ûLÄåÂT–£ŽN®Â•e1ÛáÝÃÇÙ¯!rwM?TVÑ}© ¸— YÅrq^´†œrEÃè4ûÚÊ8XCÔu‰HJqI&o*UU{­ée*X>…~´Éc6"HÈ?%:åø-Ë%D[¥*¥8ó`b ÑæÞktúÔ‡Á–·);]*éÁèf!ä#»B'ãÇy¬Ô)VÉuUDKüðñöjÊàÅRÔ—O§þ×§‡³…ÀüV´ ¹yXèrÜz oèú„—5D™Ož°,1$¦Nôâ¾LÂÒ+Ó;‘4~eèÃ:hs'§K2ƒ'KwTÔ™µb‹ìsÇ„„RdQаlW”xé·¹On"nCpFcäÓhóp[7%GE·.û4LŒwñiƶ㰂ÛDMHÞuÇã?( ZÛÔ;ê !™h)´y æAÉ’R82^˜71 °VNß…:®›öTSùÁãì$ºYg†HxŠ) @gb0‡ñZô׋õ9ÂӥʚÇ%+ᤦðÊŸQ¿Ä¨ê‹£ö‚÷¤‰°Òôèr!ƒˆlê.ƒ>“þÕî?'“,ŠT}ØÛ-¬vˆG2a’Ùk FÁ1±4ÙepaE@Un¤ÛdÞ Û`ØâØà2ÓWÁö×r†,qsq6ÂÖ¥‹K%&š P]†vviÈm[Cü"}€<}¾Û)w5 ñx6áb^Ÿ³ø®ðT½DˆÌT-©š|io4ëÒ£·&:°ìhÍGŠ‘šb vb,Qƒ˜hbÔM6B1ä Gi­¥Œè¡!}>Pxü³ñààƒ‰¸à`g)ždôXîÛq°ÃÙkon‰ÓC2m²QRÀT1ÄͰ6öÉo<裲A‚¬Xë•fµl‹PEŽnÄŒîŽÓ}élVèQ˜&¶”c²,ì EŽ «b‘Ù@PFb°Ê*7´Ý’€.£òƒÇå—tûº}>a þ˜•bUb¬J±*±V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•bU‰V%X•Ûÿ“ÿÿÄ8 !1"AQ#2PRa‘’ 3B`0pq¡±CDbrÿÚ ?ý€}ÉS-r+¯i]{JëÚW^Òºö•×´®½¥uí+¯Bºö•×´®½¥uèW^Òºö•×´®½¥uí+¯i]{J¸£ü|:w®œü~Õ–= ãÅñj;¿‹(¿Iüo[Á5ëÜüyµ‘.±-J¸åÄÚ!Öp&ˆÞQÔ’~DpÉ´Eu-±q^E†F,ijxY”Tµ%‰¯Ðv3¶âNXÓÝÙ%wQ¼ø6žñô˜4fpžü™S§¯˜öc¢3„÷p2§¸7(’x–Ñò£–'Ë‚ÌìIéÀ¥*ŽÙf+Jwü{­¨Ý5üj>øÎæMšñî7i- u˜u*oíTøÏ"¶ÇD;Ôz³–ÆTßÑ} f³±RÐà+“ËQ]³e¥‘,O1äÛ#{íþ„°¾%^’SßÀ¬§ehäVË<øºç¬ÊØñk‘Êqáìù·‰x‡—”t‘‡e¸íÑîâ<ÒµŽQj ßò¨­c”Þœ^Qñ’ù{¸•”!-UŠÊ ê¬W·ÝößÜ\yê+áyP•ÎYŽSÝ} lTúŠ‹=s%j2ì³”kªÆUØóeX¹/1ãÀöŠ«gÌ’”·"i;mD¨´É“¾òKË=åt”sŸØMó7ëÍ'ëÍ)z’—¯3|ÌmúýÇ$¿–4ÿŽí‚•´("‚("‚("‚("‚("„J Š Š Š Š Šj/â܉¾ºø—Rz¾í3\Ê}UìEá¿$2ú|ÈëÚò#)G‚eZݼ¡ý”®·{k&Cª»)õ+û!ØW“.µXE‡}Š]WŸS{X§³NÅ=Uß‘²l§yÃû!lÕ¤Bõ¿$~b¼Jv§7nöž ï6$¾£”á¤÷ðbV‘,ZæTß{•”c/"Vèõó%|Ñ.Æâx ÷u<´9F?‘YK+,ŽQŽ’ÜrŒ4_ÒVèñ+H•Õ;þJ˜ã¸å¢¾’½è'|$þgôNùzÈ<™Vó–ûhrŒMéäV¼ª[>ln*Ðò*vʘ£ô®°Úw®Ÿ¸HB„!B„!B„!B„!B„!B„!BÛÜò—w¾Ÿfî3\Jˆy-9­«æäÉÁi™ÉVÎZÁ>ewbG$û"Ë ÅdÿRž5Ä[QÖ<ÒD•ç¡hþF†š$½IGÔkÔhiŽÅM¡ßà–Ò×™÷¿ÌÚøxÎîįV â'z5~A;B”ªr¬6›º¶¹ŸêG”⤯hX劊—b Šu!§ˆ¯ÑFw»C»øõ)âá¬,9¬‰4œ2%'œ¶|D%“ÞbÂÜ®NP‚µŠn9­÷1%(癉ªô™ŽK š\ IFÊ%âšÚW½Î͘ÿÜR»·Uvð’¼RêZ.L ÅÀ©8ížlîî<ÊX9õf¼ÜÿfÊ”Eò3?æŽLñ¿ò4ú½Ær»ËòV—žÑyÕ„å}¿F9ùÀˆÝĆÊІHgB=­Hd";"²"°ð#kŽÒ§¡OhŽE<Ù –C`Ùƒí.=ÊìSÆù¢Û;ãàVũʗdWƒ#jvµˆuOq|2ÜØšÅ¸r§‹T™Ö¯ˆ­ßìr™ }Òö 5ÒV¹ ×¨Ðù“Ëx¬2XI§mF†4I^£CCDÖpÓõïŸà¡+â—}n%—V8lú%.— ¸ÚÎö±'޾ƒw£¨·£%ga¼ó¹¹‰Ú}¥q`ŽY^ö.儬ÕwÉQ¾PßIKm‡=í‰Î2o¾¥áNëðToKÇ+Cg2O ã·ÉO“äù>züŸ'Éò|ôù=“äù>|pîsÇ1ÈsÇ!ÌsÇ1Ès‡1Ìs!ÌrÇ1Ìr‡1ÌsÇ1ÈsÇ!ÈsÇ!Ìs‡1ÌrÇ1ÌsÀ¥ϹOÆŒ?~0üaøÃñ‡ãÆŸŒ?~0üiøÃñ‡ãÆŒ?~0Z…,,Ay-ŸuÑÉM"nH"j›²˜§°öì8ö [CØïå]‹ÀO(E¨-KW]É# “x$Wï!ÜÇ‚ÑØoh2™YwÈ…:¶º}¿H {–dÑT ofMÀÇÜí°€UR{è÷IS,¤œãѠѼRæl™¶‹caû„‚m)¦f®å÷ñÓ’üLU±vÜŒRiA)9ÃA~M£Ì ¥JJhÏ1ÈÕ wAOé.Äò 4‰º÷óÚ]>ëéÜ8ÂTb چµÞÂ*» 4¤ ¡Ðï.¡ÞC(Ç,®Mg ø1T{b_è1ö’˜L!¾ãÛjÓwÜc¦ëo§ÑðkôË7:—°ìf- ”—!LC¤l§¼bìm»£+(¸¨³A,“Fh1­é!Ž˜)˜%(—,m2=(0šózÚ=2Ô§ ×jDAʼn¡¡,8ú5´Z £ªmÞQÊÐ=Gq`¶óÚ]>ëªr™²ÉbG/q\Ã`.J&ƒ<÷D €ØZѨÑÑÖ†ˆsB6úùU’Ñ "D;h¡Ž ÊÖ7/-EáÖÏ´)«ú{–ÎGÁ¯ü¾‡Oºúû=©èÚô}][|¾…9)ÿÒôÈ*´W£'vÛõ4Ñ—£2õõ ൰Ïdz2ÿ×Óêø5ÿ–ìitû¬ög³=™ìÏf{3ÙžÌög³=™ìÏf{3ÙžÌög³=™ìÎNž ~¸ìÓ{SÞzô÷OÓÂÚD ·Û¯ƒÞõ÷_?áÆëÒù½Š—}»yS3337#ws3swV­x5ú8¸˜Ç8IèÒH/U$z’ïNàÈxnèÄÎVy%Ù.óLbR1Xy®ÉF’÷v†ÞgRW цîæzr¼V£ºRÔÄS˜ -NDÜeMšh›î­ °™éZdaTS]éÞL —”Úìi%qºÍeÖ¤®¾ã v·ÿ ¡ŒlvO1¡æõÎÆiÂa”bOìi6^¿Òu‡¿ö—±H©Ô†&ë„3±Ò‡Ò‡S±õã ]¢GT`fš;ž3apí¼u¦C’xhGÒL´NTµ&µ2’«è¢\ªÑ­í45*œQ%è­#“N{“¤ÒÆ=cOaÙ*#°í0¢ÛÑ[•¥v<¹šm+!iü«ÐX¾qVDrUÉ‘ÉQ•rG%\•rTUÉW$ÉW%\•rG%\•rG$rUÉW%\UÉQ•rUÉW%\•rUÉW%\•rUÉUÉW%\•rUÉW%\‘ÉW#¼yä["-ˆ¶"Ø‹b-ˆ¶"Ø‹b-ˆ¶"Ø‹b-ˆ¶D[aÄØE²"ÙlE±Ä[lˆ¶"Ø›Ùlˆ¶"ÙlE²"Ø‹dE±Ä[lE±6"lDlE±Ä[lE±"-¿ÜeÄÙ³fÍ›6lÙ³fÍôölÙ³fÍ›6lÙ³fÍ›6lÙ³fÍ›éìÙ³fÍ›6lÙ³ÏÎôÑ6jûŸÊÚ:¯‚ W¦¶[—L‰b¤…•äuÎßËhxɘc%Óh–ÁzˆÚiˆ¶0ÆÔf `YiסÜ$Úª÷ïa>43Kv9+tøÜ=„®žÔôá×èܯ²($¯¹Ãê-Â’êô¢*´­éy¼õœ“Ñ„ÕÞàatM,1y³UÀ×ìk°LU=n*îsèÒëC Ö>D^S«Øl#@EC?¡à‰ŠìjeZS‚‹ïƒmºÕïÑéÝ>üh5‘³™¨,É´“mI¦A8Á‹dmxÕåÚ}ªhW¿íõüKa@ï‚Qt ^þ^š†ç‹õ&g¨¿Ð•¥-Ï‘•Wg¸À´qÁüÃtä îÛ:»PæÀºñGBäÿ¦Äjš É…¤Ÿ%#íª€Ì‰^'AÐ;¢…Á€Ô7Í4ãGˆn¦?¡[cÏš5Ö‚”6=Vd‚vÕ}>üÏÖÿdím·ÅÂá·QÚ’o°Y´;À:¯b ч˜äôL#3ÛKÓÿ·‹_¯Ï‰äÓNŠ™ÉN4ñ¦£Ò E¿´hÌkL°²#=‡>'#*fØ]]©³v¤1%ôø;{€ý¸‚zˆKÁáÜœlO€E„ Ò‘¯?¡à¢ ÂÓfô;½†eµu!}ÔF¡“߯t' ÆˆÀ=FzÃm¹7è´ Ð꼕l¦AìG:Æ¡ú9~-åô<‰9Cº„ø(«äI=£Êkÿ/¡×>c_­)ëŽ]—#|Ð1GZÚ;ö £ofÌlù=×Émƒ&#~åYqŽI"U¥=ä…l§-ÓÁ‡¢?F'Rïk’Ô˵ÈÞdžMWêÊ¥‚ÞàªTŽÀÆ¥©Ñ´,S¢m§¦el]ì¼ãCÍëô_i(õfdm^ý£ÐV‹°äx…Œ(ÂÀ‚2¹¼Ÿkúoq}a}ûZ0‰¾=#²{­jÙË,ùvIØ_yËx6Õ!ª]G%£1M·{Ëm~Úà¦Â“<° U»bs0mt 2Z$·æ@žÞµ{‡d’F`ãëAÁNMz—³5¯›Ðózý7ÖáèÞ™Hõàjôzc‚LˆÀѺ¹ (Óg´ WÝCqžÇUÑÉ!…/¶]Ø$G·™´R7h’[AþwßC¾¼|—GÈ<ÆÊ3™¢KT2dõOS–Ju³›Eî3B]çLnˆmëÿó½ 6•BþUíÜH‹ÎUZ?å@ @@\òÿù?ÿÄ)!1AaQq‘ð¡á ñ±ÁÑ0@ÿÚ?<èŠ*Ž¥ŠÑ%.¥AØ­+¦›iä„ðWR4ŠÒ…fúPáA<A ˆè,•¤ -`£ÁH#GiˆPQâˆPVÅ -7ÑF•£?#q³ô7Ç¡Èr.fwgìWì|Äy:Óì>Îà—«öwŽñ}Â<‘ä|‚^HõeY~ÎñÞ&ݬ³™ã½ì}ìî{:û;žÎgìä~ÎñÞ;ƒ^Eç39™Ìý‘äî{9™}ã™ã­>ÅÖK~ ßQG ±ÿǾ‹ÿtsY ^‘¼››5Yƒs}<Ln?È­hŽ¥íü6Ñh´ßHŒ P´Š<è†, DD3üä †$†2÷Iöú Ãön(VKÒŠÚM´Lñ£y á H%k‘‹KÃP(í¥ÀÖVÚþi¾ªð.tëÜNujæV^鯻Tëd^!ö-T?(¨kz!^@VŒï|vû :m5à¹Ãú²ÄŸäMè£ò,’4÷Øj°ýÓDñ„!²‚b“ ¥2ÖïE¶~}…üåèè—¥™<tðHŸ’m¥õ0¬Os±eÄ’€BþD”T&iÖðBÕ[E™ÉkX$Ü" ’ÊK¹;Ío*ÅÊ1’èrXË*ôƒ¡6“ *y<¡¡Úú]¹Öw,µ¦S] D<¶X)jˆ1p$åh³À¿™À‘kPu(Vi(ãdð9oPÉtZ)ááGb&‰}ïf2RÕ8”b\Á"V#>Hv±œ ~Áì¹—c';xQ#f¶™s)Œ*KdK™RŽ @ ®µ9Èìš’hWB–Ló à›99m¼ŠM›9½j稟4ÖåÈó2n^—£Ñ÷Ò_RØÑz6Ï$òYz¸eI>A |o ¶Ž‚"7»%ÝÉ.¿î©µ¬J4DƒÂ‘.d–R{Ù?þ˜ÿƒf¢¦:²àÅ`K;,ƒ$4f‹C*ÊEȈZ™U’ZgÎD¬Q#m´N€l¡¤Ôô™š 4ŽàÆT²ëI‹É‘ΙIe²Ç¤ßXÁ–ÆžpF¶l$X•izFŠLM÷ Š03mcZÒ,†Y¼é¡¡ †„™8!ô jˆO ±’ Á+ ñè´å¿X2›úÊFžAÔ—ì˜ÂZé1ÒÙ¾³gB.ò%6rO²Y²$MÜÎ[r"ªú5nKÕ¥‰6—}X†™Œë2Rº Éz¹êÅ#fXú·EäÛ&M¸§®ÆÙ/©©eÉÉ}Kdry †X§©Žt“Éä¹ÉäEõÆt½`¾¦Åë}Kœ—Ô½ô¾¥žKê"Ëê_QÌäyi|’ÀßMp$ãý%þ¢è!þ‚ÿAÒ_é!þ‘Oè/ôÿIôú‡? ¿Ð_褿Ð9ýŸÐVÕÌo§ŠLò&Ò“2’kºØ„”´N­Úœò°&š”V”Gr;#ðâKØ—˜a莲5Ý— š)ªDꜢ;Á»)8jo ÙöDÈêC}HîC!ïC¬¸ïB“i9¬¤šî¶#º!ò>äo::ÜŽHäŽO%äŽM¢HäŽO'#“Èé= n³iÔÿà‘333p_?­ÿSu}¨ÜDº‘yÒ¬"ø >©Qw+QÜnxáŠkö–±o f—)âEkïP’D¢É »@Á:pêm¹òð)âölÈ#„î“´ch#ŒZ“ðànrË> çÖ&©õ©Hœ[·àL†£r˜í·ÙMiO‘² )I-_(½'6Á+žEü.«EÞ6qÎËÉ%¡™”ivD‘Ýn–Óð%Ô ²–ªçitPÒØBŽñ CDì)lq#X4w,|7Ó¹qd½9þ·s‘ãEq’8Ò7<‹#;é¹’ ô²'’“Èðy)îDîG$s§X Ïl²¼‹à²%ZöšG_+ä]dòΪ$’‘Æ%ïœï ¦æ CÆ^u{e`—Gk$ÿâ§oBST•¦Ò¹-ìÚ,ž¨iTCaFÁdQ[]Ć޴2ÄdŸ›•݉àJíµrÔò+J&qIšÀ3­ðǶ‡v­vxž•bûœH©]QÚR‘À–ŒÁaˆÊ‰SQóJS;ø‘†¬;:‚Ú­ÇÑ —LMVˆU‰äMÙ¶‘Üæ9E*Uÿ% JJ$ŽHäß$%M‘ΊÈäq$!¥™<•ÔŠÉä¬KE‹¡Äés"ÑDD½i3¹–†´òNppy:¡É”IVMi°£®‘ÈÖ‹':í‘.O:B"²yþ1ɹ9Óq"$òG%u#’ŽdÌà£D$Š;†$òy:d#È–tŽHZ@—"JFl$2½6 |ŒiÿAÝô}‘öBþ‘òGô|‘öCþ‘öGÙ)ô}¿¬p¿EŸð}ôGÑ$=¯Àú#à‚÷à}‘Íèp¿GÙÿCþ‘öGÙd}çv>Èû#ì².ÿƒàŽç¡ÿPû#ì¢>ˆú!Pù#¥ø éƒòq±¸¹2b‰6#—Fìï¢Í²toLnYäfÙÑŠN Øžß ãú8þŽ?£èãú/ÃÐúoExú/ˆúOèãú8þ‡Óú+Éàãú8ž‡Óú8¾Ž3Áýa×àQãèãú8þëŽ7¢ü}_Gô‡õÅøÇaþ¸o£úâü}ÿ¨{kèkÙèãú8þŽ7£úƒúƒ…èãúxú8ÞŽ7£®žé¶žé"¢V4’x$’x%¶&ðOðOðOðm‚x'‚x'ª%ÁQ‚Q46Mx'‚x'‚hOq¿$”MØÜ!5}Q(L‘ADíj EH¢J%, ®J$q$©%IDÖ à¨À㡬ú³êÏ«>¬ú³êÏ«>¬ú½/Å’Çù›_æ}YõgÕŸV|YõgÅŸV}YõcþÉõgÕŸV}YõgÕŸV|YñgÕŸV}Y/î}YõgÕŸVo™õgÕŸV}YõgÕŠØYKI7‚x'‚J'‚J‚Q(o³ÆŠöCˆÀš‚Q<((ÜK̈́۬fLÁ< “X$˜FÄ’NðM`ðx&¨Lô“Á0Hɶ'‚gbx'‚x'²kx7Á< ­''‚Dø'‚x%lwBeÒÓö) º%cK¯q-À„#M5)­Ç|O¾žn¤AÏRØéf¤ðýÃô.MǙҼ“ƒm$ômE€ÞÐ"ƒzOS's},²ÎÚOS<ÀÆø$ð<`ؽ$‘Ìñ¦v6ȉў4îNÐx×Á<O<@… '‘‰ñŽùàAd·PfMv‰•ÉNRAèxmÙ¢N‰1êëV$¦Õ”^DfŸ¥ 3;Êaö†ºì Š„±,Ÿ¢"I°ú‰Ô“Á<÷²x.FM`ž $¾‡ƒ–v<"kIÓÄè‰ÑvÒwÑN$hÔ^-€7<òåä;ºü¶G†Ä„Ón¦ã<ÿÐ:ã/Þ!û Vר¤Ü8ì`£d‰±’³z\™[¦CQ ì‰ü¡<ÐM–Yåÿ‘› ›N ÂmÍ龯 ¤N6{uM"$[PêªÓwu±Žá •ÎUÑdœ´Ìˆ?i¡Z–驽ŌZ›pßH†Pv yØ[R£9$à915šMIJ%µ¼O"<ò’òEmZ{5«$ú:±:ßW°°ŒÍyŽ7HؘG›Š¨º³‹#µ™ØE…liÜo愤í¹Ow ¥µœxN¢飥OŠê¾I€Œçq*ÍÛÃ’À€Û‚×Zâ|„Ö"‰Q¥ì-ðg"½'ƒqoZ.Ç& SÅølô]Çä‡"¶´M°ÄvS8ÊòѵÔ"rF¥ <½>ïAm¦šœ>BbDZ~EíÛÉf^dqR@ê&Ixº¼¶Ê>xa~ƒßqúfë°ò"YvS†šš²ÃRÙ¸Oà„!¶f·¾›nN›eÔOØè̲àzC"îHKiÈ…1š‹ÏeGØÆöv¾ëÉ Y:­âi=+  žšÙ·ÜVM*†§Ëî]žÃ*íM#¶œ½É ´Ár6’Ä¿5&')§•*ÍËnfòö ò9ܸTˆࣅX„$°¤¬û–¿a‹­T|,USYW B€key#Efú,RED£ÆˆsZ"ÉÖÆñ§"³°´xd,±î.¹pä­  ‰M‰¢nRO1¤$¨D”¼C‘S³s9–Ç1“ÿ#¯¦IĤ7ÐMeeŠ•¦[KÛI ‰<¥$Êå¹ÚÎa`|–)Ü%æ%[’¹lXzÀsd±õ!Á ² ßQav/¹ ±Ée›—%–9,‡±gbËhÄË‘ ´¹¼ŽO9,ZwÓ±¶ƒÎË'N—×G0J½,Šªap;mò2:Žñž^Ë/©}K/©b™àr\d²Ë,ØR9<—é”Ñ‚\Ç;2õ±I}M‹ÐÈ<—,i˜é½YG:XäWc\—ü0ny R‹<#Éb\žK$hxÑÙz,±LŽHe–\=ÅR$Ë.(±¦C,±¡É ²ÇåŠa@•9îU¬G¯aÖé&Ë—{0dJJFÝ+”áŠX? “èHea4ß‚Qµ YèîJm+Þ:»I¥,RÈU5}ƒJd(Üà%a;SDÁL,ÐŽá!À…û ¢|Ü5I«ô£gM7 §°OÑøiÐÓ'YÃØMáN^Ây‘•ƒx ôq:iâÄ®!e­Çq=ôAÉ †C!˜EØh³sÉ™HÓbL‹,‡&ø;#qãC}KênnYe–9,²Ë–\YeȤr\dó¥ÎJHÅëQÁl“ÍçšæŒs©)ÊD3ƒ¯mþdcL‘Ò`ªñ&x°!õ:»ÇPw\ªxx?-åS•q–{Éò(hUA(”Á|Ó‡jȰ¥D ”*)ØåáƒS[¤\€Š3nR1(U530VÓrm2â2’™ÄÐúáGä”t8¢“5-…z8¯vºäo6X¸â_p×Y‡I\J’ É –&v²x+K5C´Jª+fYe–^¶3md²ô–\hæ‹,½^5|賓rl‘>Núy<’`’aI¶Š:é[±Àñ¯XCd±®êÁ•Cñ!äÆ#LJ…H|Nc" ¨Òàò%Åv“) ¥0ã8Ä¥‘jò10HJߦÝÚ" en0',‰Uk'2Žç#/4‰™4±â•9#,[‘(ÀÝ H‰m)9…°òÍ®\•¾˜ ­¤‰¯ 4uB%Cl!0ö:´Ñ-ä½/+ìdEÒü޵¥GÙ¼ØòÈïY–æLȺ=umÆÉ†Q¾JscÉ0Kx;“£,4j0v²ôYÉYÒ˜ùg’êy+©š fGc=‡‚9Ñ•šxÓcbº´gf!!÷#EÉø<Ž xu+FJêHì{LRAä­õÞG®úEäzPßC¹±±,³À® ©1¤t*J6)J1z`HŠ6„.J(Üäî8Lpô­…‹d³ÈÔ÷s'Åß±ñbþÉõgÅŸIûŸ6|YoýŸpýŸSÿgÙðcèýŸ|YñgØ¿¶|YÃö|YñgÍŸ6|YÃö|YñgÍŸ|ÙñgÍŸQÿgÍŸ6|YñgÍŸ|ñgÙóbc¸r%çéðx#|h¿$‹M¤ßO"ä©78PôoHß_:m¤³É.Id¾§“Éä–K'¸›•’Y%õ7’_RGÖh›à’I¼“y$òYä–y/©$¾¤’×$’âIêo’yõ%œ±6>ä±»­ÏñVA¶ÎÆð@Œhè{ is¤Qeé±&Ûi‘z\ «6þ.…¬ ÛF´‚¤AÆŒ‚Ò gHdi‚‰"4‰; ܤÿÄ9 !1AQa‘@RSq¡±Ñð"4á 0PÁñ#`pÿÚ?ý§DÊÀ‰(×9€œuoWn¬p ã-ÕŽ\¥º±À+”·V8q–êÇ®RÝXàÊ[«¸Ëuc€W)n¬p IJ@d«ÜÖi³Ÿè_¢gšÒÓî–hl2’ƒ?ŒkbÄÛTiØHxOŸ–†@sÆ)úHC›äÞàJ§N˵åâ…È)lYÚ§´dùwSDɈn&Ì3 J}#û?%ÙŶ†IÒÎi 5þéæ®Î‡w"'&âÍÔQ6Vл>üÝɲÛOïUuq4i¯º!+ÑCCÌt/Ñ3¿ÍiÈA͆iSQÁi'8½ðì_.'½B,>; ¢˜WR™‡Hî.­pùk†ÍÈrpbƒ¥Í³A‚… Ð9(‘˜Kq•ðB ÚÆÅ,6-V”ÕØ£CsÃâCi .õh· gDdaóVµÚ”úGö|ZKMB1Þp%˜†›¿µx‰µ¯&µÅ:+Ý(Ex•|sF3È¡)ÑžìÊlW7$#¼ U8—žc¡~‰þ¥¥>’'g?lx¬kˆªõ¦x•zÓÇÝ6+lµ„ᯉDË×U5ç».ú«pqjÛ¿-ù*ÁÝ»?ðœÊ31åR«º©ß—ª· ™eéê­KÓ¯~ßEnšwWr.‚6xïËÁOøL<·- \BÑÚ8ÌDZ  JœÐ²°Øb@þ‘„ð+O…“J  4çðôÀ²èTÇ:­ëOLKòzÝúwì2Be Ô }*?”é FóõMšb6xQ6hŠWÞ~ªô+ZW/¿ ŠàPÌz–Ï{¿$y”ŒiXNŠQ°¨ßˆaþ6’w©™˜“1 H‡ÜÀ$Ð'J´8PáÇc ׇŠ “óeöõFT†×Î Øö I¢º†ºŽ<•‚›:¸å†JìÅÞž¨KW ãýú!,-NhËGÝ*¢Â°p5ç€Óš÷7"‹œE Á¸‚­R¨§mVÝJU‘Eî9•iÛU·mVݵZ;ØÿÄ9!1AR‘Qa¡Ñð"4@q±á02Áñ P#`pÿÚ?ÿS¥.«SºsZâûÝqÆy­¶ãŒó[mÇæ¶ëŽ3Ím×gšÛ®8Ï5·\qžkm¸ã<ÖÝqÆy­u]÷,kžHž¿Óöîï¢ÑV-¸q}A-U^«ÞãJ™R²¯TÆ”Ë ‡Ì0à™£uí5ÚÓ¯)¶Wy`i…sS£Õ2¬tnµbÊí# U-ª1!ÊÑžôÏŸømŒÕ9Êeã$‚?©ú!vÇ h%m`ÒéZ$zú&ÜµÄ ”ûÝRDe?nh]0î)טû#ŸÈŸám¬\?iFöžÄ×GÀé{wwÑhZŽ£gV-hcjk“9ã‡%P>µÊ/‡Æ7«wž… \ÓŽ1ò޽ZgP€u±ÅTªÚÝ%:NØoF«MGSÚ±Þ©=­sXó. 3ŠÒluË)ºíêêZ7Þ™óüÜÐàAȦÛSn xŸ´-) ‘Ÿ”!kHnñ(Q`±‚e3„hSq$ŒàòÉ6…6™2Þ› €ŸEÌzÉzdÌx”Ö†€Ñø1ïnîú HÉBÖ!’#zŒ”™•'9RVŒ÷¦|ÿB~Ô)¸Ëš ù-šäÍG€r[5ÉlÔx%³Qà–ÍG€r[5ÉlÔx%³Qà“hRiÑËóq nÒÜÁDz;{qTYTTàÀª7B{.@NéÊwý“[sÒ >Ï¢|“è<9õ1Ý”ä7 .£|ÁŒ³“Ÿt-KŒ3Wf}™¢.;{rððT]µ%ù¬«uª3žì÷w"ÊÒq8žÎ¼#¹ÝNwgVþÙ]}ma9a1ž?Ê ®FdgÕÙ⑈ÿÂn4Ý+[Ýš¿²ÝëLégj*ч_5£¿^Õª(¹¡ÅÇ«$2ý!Y„À*Pp&%$©øÅÖŽmƶBì_…­Vó¥ÜÁâH¡hæã3ëÑNµ{„#úòL²-™#·’u‘'#óO²0êìËËÅlF#Z3Ÿã”«jF‹Hõè­Ñëä |”¶¾®ÂÊl±ýoøFáÎÿ™àÌU•+:B•!ëóÿfHJeëËLŒyaöT®QàF|!Â"[‰ËÇÉ6ô‘ŸÛR«ÙPÉö@•¶—3Y£šeé8úÅ:¹n¬ŒN9úÅ ·8`Üã~â ç‚uÞ¨\?¯4ëÇj’Þ~|òBèÌè˜Ã­P¬jhGÆ:›û„ Æƒ¬(Óc„µDÌ"ÐV£r…Ѳf,i‰ ÆŒ‚Ôi £f FÉ2Z nÿ°ÿÿÙplugins/jetpack/images/screenshots/notes.jpg0000644000312500031250000005027112651056012021720 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚÔ@ “è4½òž‘6&G«í¨«¶€'}rþ!׼äv%ê–eµÎ®“pü‚Ž×ŽC8¨À “¿µ­—krΑ¬¾PÔN´WÌ…›-¶1¸e¸õ&8!ÐYxºô0äNo0-"@·#ò¬@ [ƒ­¡·ÞfÛîp›z’Û]Yë¾Þ9•b}ÜÆr®¥·Ì]G´À†Ù©íù¾+šd\ʱ>nGåX€ý·€9+–"}Üʱ>nІnS@9•b}ÜŸGóÆï驨¾C:(#5Mh¦¡·d3èüÖ­±¹€ä~Uˆ!ô p.[ÕÑ“µm–‡7´c÷i´³¨%gØÒm¦§%ÖZ·‚âô—œBý2ý±jr?*Äú¸ cp-ë¼ç’ëÀ ä$Ïʱ>nH÷ì‘ùV ‡Ð ¾É¯Cèàä~Uˆ!ô pª YylÐGåX€@·¯¹ÍWד±+ÝW/Rüy÷ •ÆžãK2î\«ƾLÊ;=»,#ò¬@ [€×\ñ”ZzÒv¢Çöª×'+Ç!p¦ÆòË5nAŒeX÷Šú*:Ü®–Ùɯz«Ï.`ä~Uˆ!ô pˆ²çý8*iãØ‘ùV ‡Ð-ÀJ3Ð#ò¬@ |’9^ ‡Ð-ÀÈü«Cèà-ôScq«riT•¤¸Yï'Z¦ú©ºX%×S'TÓÉÿ—7Õó½Û²Ûù¼Óʱ>n4Õ££²ÉØ\ºË<«ÏšÉÖ>ª¬©ž/Ö+nUŽÞ%Þá`©°\òlSÄÚõ£*æ.Uˆ!ô p[q¬›Žp\϶'ZáA_c¿ãÙ7›ÊÏ[6¶ªÝ ÕõöÉõ€r?*Äú¸ wKÚó͹;MN¨ÚxM$1ìêŠãEƒß)r½{z“Y>í‘ÔUDGåX€@·*ØøöCÐʱ>€mðHåx€@· £¼úr?*Äú¸ +]OŸ¸ê@9•b}ÜûnŠŸ‹Óô{®/Ut^®J Äjñ³½ÆëbºØ­W飯®YÈü«Cèàñl烴ï…g°Âãf™lºÓ^¤ÓßqŸ2uîÙ+¬¸ú¥¥®Î#ò¬@ [€×º¾å'~Ur?*Äú¸ªÝ‘ûr?*Äú·À9#•â}ÜʱÿÄÿÚ3€œe¬=¨éçù…îÈP)½¯W>¯¾ÿÄÿÚ$Œe€±ï¤ÀàÎ} žš’¬êì#âWSERÿÄ&@ P0ÿÚúR®•/ËeÌeúK¥oÈk²óNUÓÝb%oÖ2ìãgüÏá:–Á€%¶+þI*í-é¸}9WKAƒ,8ϲÜè)³\%÷]1g(Õ8ÄPÉ‘ì9N9Ö¶¶¶¶´žCµ6¦ÔÚ›SjmM©µ6¦ÔÚ›SjmM©µ6¦ÔÚ›SjmM©µ6¦ÔÚ›SjmM©µ6¦ÔÚ›SjmM©µ6¦ÔÚá¯LwÖ¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶·®úY…ÉÁÝŽ6%?1.c5ÓÖc†¨¾r_`Ä¢ u'÷Y…ÉÁ݉a ƃL:ÂÅpwE|~tÍ¢ÀlF˜²ðRöúÌ.NúY…ÉÁñºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®ºë®»0cÈÁßK0¹8;ÑJò<”<Ÿ•˜\œèúJja.ê;8rø_Òüá$:ské—wª¼øïþ…ÉÁÞ…FrÕ˜K¤v‚”.Œ¦ 4¶ ñA<•¡ K…˜¶C0êVà <Ëm8ÜSd¤—‰óË%J[èwÈt…?X&'²_“å,¤<¦MöÌ.NôŸô„ˆD¤4v2O.•LG0Ç2‘àŠütF‡) r[e–eb•׈(òÔÌG0†©iÍE–FG¶arpw¤í‡¥¯Ë%L#†¤÷§ 0¹8;ÒÛm¶ù9…ÉÁßK0y8;éf'z.:±ZŽÍž³“0þƒ§*`É‚œlÃ]3š1ÿÓQÍžI™”|ÑöŠó¥Ä<_…éç¾îù{kΧç^põ?:ó‡©ùל=Oμáê~uçSó¯8zŸyÃÔüëΧç^põ?:ó‡©ùל=Oμáê~uçSó¯8zŸyÃÔüëΧç^põ?:ó‡©ùל=Oμáê~uçSó¯8zŸyÃÔüëΧç^põ?:ó‡©ùל=Oμáê~uçSó¯8zŸyÃÔüëΧç^põ?:ó‡©ùל=Oμáê~uçSó¯8zŸyÃÔüëΧç^põ?:ó‡©ùל=Oμ þ›MÃ[KëötñxyxçL¶ì?þ«ªº«ªº«ªº«ªº«ªº«ªº«ªº«ªº«ªº««í~ƒµ½£ù–þ ±ýÞSøzÖöÔ0“@®—I/™º<>4‹4Ë%‘"UlÄóßáXtÃ4êáÀ`¶­!eÓ,d ·'šûj%‹4ïÅvð¬"-:Y†aÙÏQ¬Ïå%aÔ¹;+ ’Þd³eac—IçPàØŽjìÚ&UÏ{[Ëÿ¾¾–ÖPÊyÅjHnc»Ø–â–°®¥–e²ñ¨WRò§ãõPƒó7¢pzÆ+8Fé~ö­xËåµ—¸ý[ø.Ç÷yOáè;[Ú?Q— )š Ž¯éµbÐÊ,$ThÌW>:©&Õ‰œbfÐ(X T,.rµêvœÉ§`q+'Ã%«â}&ÙFPÂâípkn42†ŽÀ@U@;|nZÄée“›¥ã X‘+¸|þvI˜Xl¶ÞÊ”ÁŽP—2‘“oÑXŸ f†7\Ò¾pc#¬^Ï/²M…™.8òvŠ8!ñVKõì©&fÕŽT%/$€ñæµbÌ‘I*‹ÊoˆÛÌn?¥IˆÒ„\G›4Œ9-Ãõ¬BLÂ<óG##±b.o…"%¿ ¸¥[f`.l/P bò¢…ñ®Ü*7¶I³ ‹"°ù•uãÌÞ(ÍÆ°ñ6Y'™šÕÊ"i£ ›ma˲kÅ™|a›…G6Â#Ú¶½}Ò²ÀIi¿:Þƒ4«2h4@ÌÂÖ=u‡ÑÖ×O¥›eDdU ¥Y ç¾Ë |k ™sâ"\þ-Û@gxZDGWÊm­² 3h‰£2åͶ°äI§*Hc!Z„’Fšdgßµoîû{ø.Ç÷yOáè;[Ú?cöF'{/‹·Ò*6‚ãnanªð˜Æ<©"ÿJúF?í$MŒ„ë†!s[)Ù³–§Y£GYI‹ç̹~5 ŤëºˆÊelï©ÐIýÍV–R,[y*Q ˆÈ™¢7ç-ýõ'†gÓ<'Sѧk÷Ô¡"<ŒHä5½Õ‰8m=)3$ ‚î¶&Ü–÷Ô™Ù¡„Èì…ò½íX†ša§)ÈáÔÃ.ÊZŽøS2Üm}<µ"ã°k®™L ‹Žú•a^5%°Ù·{gê(ÃvUAò0áSiañZZœË"_nÑ×ÍX˜'†¾mO» 7okJ’'Í4`[õí¿º±ø”L6±|:­î6xÕˆXeÂèç22kœ=<•ˆLbýÓ,a˜œÅYvôyiÓRÇ‘e"ôg*®è˜3XÛe(ÆS›:»o\µºÍbKŒFYÿ‹˜ŒÉœìµùªyxÉãµ™¹¸°6ì¬dú–×R )N;v1øV!’x¼Úά°ÝØ8Ö!¡L.ŽB’Ö¸±ãé½LÚ°ºB™Nѽ²Û+$©[P>Þþ ±ýÞSøzÖöØ—ôV*ä~ý•ô´F¤8l%ä°¹Ô]Ÿ­}8¥$Âa4åH‘>5ôßüV±°dn{2ÛÅê5³Ò|XY€#¯ì ÞÛ|Øþï)ü=k{Gì¾ú}ô:ûèu÷Õ¿*ßÁv?»ÊÁ³•½£]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]UÕ]U¿ƒìw”þƒµ½£ù–þ ±ýÞSøzÖöØ3ñä4š…,÷tƒ‘ûé\Øï­ŸT“Íà‘2‰µìFÅPSHŽÃNVDl¯%¶Q—¶ŒÁ3”ÎFËö¬ø9gŠ 7cΤÚÇõ­(ó>m‰™ønþµ‘†”ÅU‚³ØX^ßw);ÌÉÀmµúú©1 ƒFT.d,Úð\[DlIEÓ^²O/7 xE"¶"r3ú€ÄòoÙ77ÿúÔ­‰0¬R›6Vam‡úÕöM€et[wa? ‡!vŽU\…Ô›oWÝÉ,-™ï³75 Œ½À•¤áÆ÷ÙúÕ¢1êF™E+o)<µ«.}Kxœ½eH×SĘËÞû?Zð‰’Lɺ-•ãÌ;{kJVù¡_/nßÖ¤³"b2Ä̆M·øSÌ#ÓFѾpJß’±> sɪÊÊɧŠþ»jiflDÌÀêæK_s/N5àÿÏ›î’>ühÉ3ɪ›Îæ+°·%Ä^àJÒpã{ìýjX剟bBˆ2[¾³âb˜·ðÁÙÛZñ‘•ƒ+sR—Ö8­¨ù6lZ×ë¡¢±—¸´œ8Þû?Z´F=HÀÓ(¥aíå'–Ž%ÿˆ€X ±Ý—ÿÉZÈ«šÖunãzG¶w½µ-³f½ýÒ>¡–"ì\´7ôŽj{4qâ2ÂÌ®M·øSÉ…ÓXÈXd#ùO=2› (£OjæS¬lâr‡Mî—¿¿©­&ölí~@{«Øþï)ü=k{Gê sJ1Ê Š[¸Õ•ûh'ö±ARɺ­ÕWwTŽä0¼‚Œ_I6K®°Ý¸âEëg¤ýXv—IgŒ¿D6Úñ`³ÄrxÖn…H5µ£dÌá…‘^Ùƒ6RA„‹ÈÇRÇ(â¯PD–hÒü35« t›:ªH…³3 œ6~µ‰ÔKÌvòsÔ-&šÊ…ú í©5ž,>ͧãœÖ•‚xKfD˘æEKt2á4Þýã’°ú1I$©ª†š¡‚gV|Ár†Û´@ªÎÓFM˜æài3£«/8;+ ù²â"9EÍœl…o‰‹{†øÛPA±¤MM›™¶Ô+y¤Ž!˜®×†°þÐê.eLço%C2æ†T„ßêÑPÙs]€­XRK[2ƒo ßÁv?»ÊAÚÞÑûˆ•!*$$[7JÆ™L†Xnzϱ™ðˆ¬9øTø\Lr3DUxØõVÏIú¥ÄE¤äí­qÎ}5<°ÅÂш©ßû9-X­ ¯¶ôeåÎlvíp.=&'K;EG‘rÛmøûªa.^;èÆé›g8±î©Ca °åÒ…ÜŽ;+ãbæL6žÆ§{ãMÎ΀acÕ”|ë…ž|˜s2JÙ×+cnõ4ÿF´2êºm#…ë.DðmúŒXè¬oƒhé7ÿcÜ+ÆßÌ~,‘M÷f6’hÍÁ‚Œ¿:Ĥ Fþï!þ[¸··–š,™Ã)bÍf ŸÒ§Äý¦&L1ÜoÝjmy4ã‘’H‚…@Fü•ˆHdÃŒ6¦i„™‡W±J%ðmoâ  —{Þ¥³§ƒ­†T²µ€"û?Z^S*¸Sl¦L¹ý6©F{@MˆË¼7¨³°hìÏä;ø.Ç÷yOáè;[Ú?aO ¥èŽê^ˆî¥èŽê·Ôo X (ßÁv?»ÊOü¿k{F4hÑ£F4hÑ£F4hÑ£F4hÑ£F4hÑ£F4hÑ£FoàûÝå?‡ íohý˜£ñÜ ÃŸþÊ\þW¿‚ìw”þƒµ½£ö4þê?”óS=5<³‡(¥‘¯ùVþ ±ýÞSøzÖöÕ¤™ˆ&–Y2jEvw;NÐ)_t§ }08šÇa#‹Óq*ÓÅ6V1|yÌfVl‹&ËB)1’¹²sTl™ã†gsµ€Ý%¦d™VDU;6ƒn¾º‰$*c“*®û,¦‘å £0Ræ0ä \µL6¤© J¤»‘zÆM:äŒÇr øÇow a†ŠTÙÓ¸‘Y$Lít:›2í$=€‘6S¤ªæ{[pwÔrO§r8½‹ŽäÝÍ•W‰¤%U ä9·ã}´Òàu°ÜYn·4§„[!Y‰ÙúV%â†92ŒA›+ìþ[fþ•h¤Ë‡•\FdLöÛoM*q‚RÁ3È·}E™ÂÅ+ \›Xú·ƒÍª_ eùû)Z˼»oµÖÜô™Ýö˜²!E¶õÉ"ߥ ÝЛS>M=—½¯ÏX’[¶lï?/Þoà»Ýå?‡ íohýFÛ óz-D“(j“ †˜Á’Fa÷f±ydYðÀ¼ «Ìd¹Š> †WüÁ¯›šŽ“¿9ú¿¾®#7ÊZÝtìdQ=¡•³:åÛßR SûÀÒILrmÛ~_M)úAqy¸¯Ÿõ¡áƒG‘_8û¡›³5J¸„š%ò%S7éS¦ŸIž0²‚¹»¨ä•#˜*¶B»—ÊVß ¼Ìùâ³°f¼ µúeH×SĘËÞû?Z—$egUTÛ‘“0'¾¦|ÄbB™$¿wdznÎ4ˆ¡HôG¶w½µ-³f½ýÒ>¡–"ì\´7ôŽj¾!$Ô[#w¿³’üÔÒ´o™$ŒÝI¥8™¥ÎûÙ·x“o…haÒ,Ù²‹^†2%BÙrµþ"ÇœVr/\½|ôÊ-­MË ¯~S·>xK²rÐæáÊ9«qÂI”™D9|Rêœå“ÂFº±`rnðµ­RÆúÑb±¾rÉpoÕz]2š—ÝKf[íŸ}iºHZ0VLöHò‹~¿½ßÁv?»ÊAÚÞÑû_¾ˆoòŽz–ºmÎ LE·W°T¸™6påjX£¯ùVþ ±ýÞSøzÖöÙ‚oâF§®°€ßDzI ¢Ê•ïà»Ýå'þ_ƒµ½£F4hÑ£F4hÑ£F4hÑ£F4hÑ£F4hÑ£F4hÑ£F·ð}îòŸÃÐv·´2ßÁv?»É?ÿÄ+!1AQq‘a¡P`±ðñÁÑ @á0ÿÚ?!ùžÁÀ™øâx?Ž ”"ÿ®£Pꬊê0‚8ŒÂáyóðÓíñ Å»(…šíî¿hºgˆP–DA£?Àøêц@óv„³Dx²ÌbT~\ãç²\àD]_†ÑrBôc°ÜZx-RGAD(Ñ)Q¨…&,cƒípHÌ Qj5‰Ñ݉TxÁ|´ûAÍÚ›˜{E”p:Ëhþk±†dpl¦Ê0íXÌÅSJ|ÊòR n†4¾-@L$1Pl ¥ì H⾤C1m& a‘fX„BA0JÌ<+ H¢$²wŽna–bN’*1Ϭ"˜H™ m8":«úøaö…CKì0¨$†Ÿýãþñÿxÿ¼Þ8ƒBˆe6 Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼/ Âð¼%ð<Ô8ãÛ~²?ï÷ûÇýãþñÿxÿ¼Þ?ï÷ûÇýãþñÿxÿ¼'[@ûÇýãþÿIÔÆ¡êgŒøañ‰Sð÷BrPI×mà…M",‚³Ž  `f$AÑé{@µ2ßÿ"U<”Ö¸DJ͇‡·¬$ŠOlÄ^Ušœ|¾bu¼G£÷žH#ðd  øP©ƒ¸ÊÄÂËm%ázyŒÍz84oÌÁb†‰n“—ÞÉ*÷3qi&o hÛýð‚AJQè£é ò­WÊ0bpÈZPh &Q åÑë-or ,ºu ºó=¿HÒp¡º)ßScSÐ[§æFµ­kZÖµ­kZÖµ­kZÖµ­kZÖµ­kZÖµ­kZÖˆ;TjcQcúºusõ?î”]ÇûÜI÷†lM‘ïô>5h!‡Äx\; ²šxY# œGnAL¿…üŠ4PŸõŒ@Zƒø1¿Á„Üp R BHc}­Öóÿƒ,Q?`e`@²`ÌfzºíèÃN[½Wr¸…îPFf ð¬ Jß² y0a˜dèÚBÊ®|€gyàÜšN˜ß¡æQ@^@ü :9…öäØÔ$’kŽ7lìc.^‡’"ŠßU2þþû¡Bse©Üÿéüøëo‰ #t@Zó,jf O‰ùcúŸ–?©ùcú• Ÿ ñÏÃóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔO=DóÔ7ŸƒêLj&hVéi¹”©~D̵ªWI á[Ã&åÙÿCãQ èõàðôN‰6oHNl™¨ ÁuþfÞË(½f_ÂþÆ]úô€!'\0Á÷€E ádNOÁÙ%a†þƒOÆ!0" é̄۸X écÓ¼ð”cv%+2–gÉ#xX Q¯¥êdIoëÀ0`júúÀ0’ÈôƒfBmÜ8$8›°à™Ú¾€@ pÓ'!iFHñqÂåQ|wÄ :$ \ÊQPé#”ØŒ½ ÜhcÁó NòEÙpÁØ!a†.Q]¶p¦à7ßâ¦.ˆ]ÄVBXP,XoœB é.ÍC KSaŸÕòLjNÍ""áËÖáŒ-¤zº:G|/Iz‰—ð¿‚ËpE`@m ÊÀz¡VëON„2’º‰°^HÄ íE ño£©—œš k¤£Œ4¤’ñrÒ÷†üBH]€E#¡ pì:Ž#P«‰{V4›áÀAÏ‚ˆ—¼—¬ìD¦Žp…„D0ÇHp +È &ŽQb™É–mGÄ5 „‚ì)Aõ" 1¯y?vãÜ#IÑ  °`‡¤46^y­­à8àV0÷ÁàÎON6…9ÖAbòQ†p†°²'‹9~aô ZÔ(̣ ‚ØŒ?¸VX·ÑÔFCJ½Âj2XŠpÁ"ÄSD2ÈE ê“*Ć鰊RÓ‘óŒ…Øö…ŽYæ„8ÖÔ 3±L ¾IEgÀ(# áP<ê™7Â…^b³‹m˜™eL¿…ÿ§â}áeMD«ù†5 :¶!<óÉß<ð‡Ðx‘Î1ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß ÖGÕ¦5³DªŒœ>óñÞ.?õ9r~ÿÅ©t±CaW¬6@BƒË6õ DƒÜÆ^­!Ì4‡Èì 1Q¡É±ðEúÊ­^&—r…vyoâàŽY àõ—¹< Q'E ë…€&´ÜÀèP&ÂÀ7`òˆŠÀ;žR‡*ð€2ñ’‚¢‹)WUº‚°}'~!¸Úl¹1—ªÔAi@’PrÛË9£Q0J¦^ÚÃHÑ•Hf=׼ʘ Ü@YÖ Ü:a~˜C44PP²Y΂ “Êg«Õj
(B5T1uSåá3é ËaiäÆ5Fž“ –½Œ9W€4—Œ”ÙHʺ­Ô¨à±!G!ôp÷†Q{bŠ(ð‡y#ÎjÑæ7ÔhÐp§Ì „©—ƒ¶°_ӣшƒ*— 'à1ð(áÍâ,•À¤‚eàÿ¹C@”`Ë>`'ùTjŽËÀŠ)ê@Ô¸8]¢D0Òeü/à‚E¡(q®W˜L\ÀÒ2[ !ZÞ5ýüB±€œ§Ÿì@+£1]¶GæÇaV&hQ,÷”ÜÆÀ<Ô>†€K?Š‹Læ¬ Màuv·ß~aio²9¼£Þïâlžñ%jËeâ€Wì뉔ZØõwñ.ÿZˆ aS78ŸÑ/7äDŽN_`.HG Py˜ÞAÞ‚”KÑSZ[Rž¬GAÅ y=av”ñ0£šÈØ=îþ Å8\вvhL,*¹(ðqà$fìPU˜ã@ð¸æò6{¿‰²{Ä•«-”j&tÕ¡»›ªÊmií  ¢‘Hw#xÛ±7O°)¤¡9"Ûa<ÇF.¥‘mvÄ–“Î+I/÷#„Ujù…¡¨DQ(/ñ l›_xef‚`z¹(ÙÌ¿…ü3¥èšf¡µ Ä%|í7Aƒ%oëÄVßX™$€>‚  „A¦ o?Š` ¨8Q¸“0h”­=Gp£™"$4y*°# ˆÉm&CPˆ<ê àØŒÂœ" ×¢1€ -ƒæ˜Cæo1ä> bl *10P6V"óU Ϧ4€ÔpELüí|€%? ÙIxä.Z0þ[G‚ZÔ›­È˜S¡ˆBÃÈUy™ øZô1ãVœKL®"ˆ¬µµ ¼ 5òƒBœ—«i3‚ñÈ*€CPItúÀfv „ʑԸB˜ɇ æÂHî ¿‘`Ud8çh¡cÐFú ”»ò”J""˜%§ˆ¢ÖQ—¸P…‰$€S+~`t§At©l17”½rZƒdÚ YÆêU L‚Ç„8H5í ±HŒÌX™J©9ð0o@bm³Nó1‰”¦|+ÎÑÓy­ å¸Ô$2cÇøkZð€ ÐÿÜØF €|ǰà;œs€îpιÀw8çÜà;œs€îpιÀw8çÜà;œs€îpιÀw8çÜà;œs€îpιÀw8çÜà;œs€îpιÀw8çÜà;œs€îpιÀw8çÜà;xï•¶Ö@}AH :ƒôF5lF 0Hgr`#CÄt"ZÜcXú‚]Z­ BuÚg_î_†”UC èj‹}€vœiñ\4$¾rÓ°.;« ÿº<Ãat#3ú–æâÃÈ£µè1(m •ÀUiX‹q@2:ÒÝ7räz£ai²›Î©¬‘à;!Iã]nؾ7Ñ}’вr‚ZÓ"R$#£t½?@t ´ú"X“jŽ4uASåšM—b +sÖgÓåøi3GvÑ­òÜhhÀQ ¶Ó)ÿöŸ5ÃD÷aDYÑ"–ðÅzj鲯¿1UZ+aÀCz}MËvb$HKk¼é™ºb­€Ú4ÐH €†HÎí2[Ίw¢M$õ P@<–ÌXi_ƒð‹JPÿó}ÐÔvšÃ0‡Iu1Ü0,Θ"¥2Ìîâ5I*‘À%•›™Qä¦ÃüÓÍÕî&á(Tâ„•×ôùþ‘˜ÒD9‘ßÌÍu¦’¿O‹üëâÿ:ø¿Î¾/ó¯›üëÿ¶rÙSmºÿZ”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥*NÓ4î"cx‹…ÐDo‰ëÁršø¿Î¾/ó¯‹üëâÿ:ø¿Î¾/ó¯‹üëâÿ:ø¿Î¾/ó¯‹üëâÿ:ø¿Î¾/ó¯‹üét‰è8ƾ/ó¯‹üëâÿ?ÅþÎ÷Åó÷ëx[ \ÉÞ£/_PÄ/Ÿ¸¿[ÓÀ‘´"e“cCñJÅXeÕ©Ñ¥FGqEƥÉ–…¼I%è04á]¤ D·5uYW(ÝzÉ`^¨ è(ó\P ',^¦ªI ¡[¤Á*ÛF’T 7ªÖžº3…á*ÁM}úñ£µìûÐhn+Šg¯A‹œÇ¥øÍ¸ ‚@ÈA¦`XXNà(˜Ñ5ÂÇ)dl†í0—PE4,æjL‰7Òî†7çéñ|ýÅþÎ÷Åó÷O’Õú¦¿T×êšýS_ªkõM~©¯Õ5ú¦¿T×êšýS_ªkõM~©¯Õ5ú¦¿T×êšýS_ªkõM~©¯Õ5ú¦¿T×êšýS_ªkõM~©¯Õ5ú¦¿T×êšýS_ªkõM~©¯Õ5ú¦¿T×êšýS_ªkõM~©¯Õ5ú¦‰ƒ ©ë÷û;ßÏÜ_ãxGÀ‚Mȱ«"ý8ðgÖ[·D„°h]Kj")ùýWÅó÷øÞpP©,ÈjcŒ@ bm³N‘;š£=/æÚ»8u‹ÔG_%ÏéĨn…¤“®–¼D‘;š(ˆhD‘“RLI ó «ƒqÓáwÔ”;‘Y÷2” å«3ì<·>ÿÄ0 !1Pa¡AQ‘Ñ"@`q€±ÁðÿÚ?Ü M)¢‘;”2(’uøµ(&'¶’ûj4\HΔ‡Ð²:ç¸Ýl8’“Fɲ©åH³BQžzÿqíúšnÕ ¯i?vV–®]:o_ÇOG­’!nð¬K rÅ@“):]ÉÑ`’·{àygO-b ä+Ij‹â<ý7%ã–n‡[Ôsá^ÐX9ïºÉÚð<òæ+Åœ¿P²‘ ýŸ‘¿ÿÙplugins/jetpack/images/screenshots/manage.jpg0000644000312500031250000005647112651056012022030 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂôX"ÿÄÿÚòMÛtžZ€ýë œò}œšFöÞkì9ø©žCÇ}ÔpÀôòœè$~Ðò}­ÿ—bºÚDv?@ü™w›õWgQ_G–ÉEj ¦8þÃñ΃“eÚЯÒ@6@ê@ºH[ó€Ü¸ŒÄùˆ JDf¾ü–IdÉ:äÏÉOïW»b]¥¥ŽùLàhŒ¦po@ÛÑEa|Ç(”ŒÚË«³?º<ƾ›\›äÖÂ-òíHÛ©/”ÈŇsõ‘‘X@_1ÌÒcKKfò 9]Hc~Xg©‚ÐË€!*v©¯&-¬€t É‰PÀ+µŽ/[d6€Ò¯á2þÓë "1€TGáþ™ç^¹ë¼¤¯5!¯êüF0 cËE@â¼z:oÒ½v+ct¶èŒ`úú°[Z½Þ@¹ ˆ_ÇÑú÷f.Àã¼C?Ðq#–_-Ô¨µ«Ÿù®ö~‹°ó½}½y.ôw¢ˆÆ©«‚/k{ªŒ½ÉøV_bÃë`"1€o“â›ô~ˆm€ kl_@ |æ—zw!­»kWs › +Œ–·3ÓÍÇø^„_ÑÞ©Êoió7måÁ-7&sýF0á|6Ï´zå)pDc¾Cb'Ð:€vÅM½úôGÄCýÑÁÉjëìá²—kåÏ›æØ5v¢1€)P)ÀANûKÎmBjæ’ƒšÔËŸCs^n\ñÀ­ËhÐó>#²õNU€uùØößZMLRÕónÐ}?pU€ÕÀ½e~t—•öŠó”ÒÝ‘Ÿ'Œ­ Þ²ŒÜ'1ìî~ìëf@hïDcÕ׌åf{` š˜¤1±àò¯MœÞ`¹m_íjû®ˆÆ_†Ù³zoHéoeÇŠý_FÌAÎDcn­Ø®nP\ã¼2Ëý›ÖqÒ´·&®Î=€‹,F0ê,Ífí\ÿšì`ôÜ 3G<6Y à–Î@ Xv5®·pƒ8iêc‹ÓÛ¿­ÜÈÆÇ[ì΋(iêGÁÈtrÍü€hÜî¡xbŒ¥Øî‘Ê/´Á‚ÝíзFÈÍ­NœS†ypS>@ :]‰0Wh*#53ÄgÝšŠŒ¹tì¬ÐTòÀ {@!ü:KÕ"4 }'˜EHŸö0ÉbÖÂSé<À *aç=À *4£ëŸGª–©!\—€Š€S@)ÿÄÿÚû &ÎÌpèÈå7ûœ^Ÿ/gϲn™žcÒ׺>q `Œƒ šÑ-õy&ÌônËD¹ëe(Âćv` t|ÏWЀ ÀãøžÏ£ëïÓ¤ í f¿/“Þ(©`²jäôöÍ:€ÎÐN{6„ €kóöݾ†3žYQPŸîïݰ¸°.tÿìz»º¤&,¨Ry]}yã¤YPXvÊÖç@³Öçóöco 2Ê‹XŸ¥£Í¢æ€ , XUÄ@°*Jìé€rò€c“è½]}9ƒóàäÛ±¯X90'ÿÄÿÚøü®¿+-œ¸?±Ñ󾇓ÙÁõI9€¾³ÊÛ¤ú¥ $ ± õm¥{.5¯ úfêײc”Ì¥¦þl QB2]ŽŽnýa J nßWÉàŠ nÞïS§hH y6÷à•@a®\9^œ€ P –ýzÉ“`0€š¶õiæ¹&[À q€¿aãxÚòèŽ0k‡—Ðã«Âëôõå'e $ kò:}h–€cPPJ€ J@ŸÆ»¸|‡…·“úŸ¬5P6îÿÄ4#013 !2@P"4`p56A$QÿÚQžF"E—,ÕÓK*"Énbæ.bæ Gc 3Á#!‘‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹‹˜¹†·Ÿm”§AÃIJN‰¦©õ0LèšcÙíj(Õ*–s£ÜÄf_îÓ,´‰*4AÈÅÌ\Ñf·2œ¹‚3¹}F‹ Í;O4ÖX‹ “X£ 3 Ÿ:5A™º†BèåÔi­Rè®-®¡9DWFA_ô#èH¢½µGnõcDºK®¹¦Û§­÷½à͘áÅ R)FÉ4ºÌhvÛ‹øê_ùH}•~•‡º ) ]_]Úú´žÍP™ Ò;*Ñ)tí$̄֒Iª¾D4Š)UPж®™BeO™}F)U· Ã“ Uz䊄HÐÇÈ)÷•ŒRÈÂ~„ˆóä°É2‡êS_ŠqV,BÅù®ìJeðeA4‘›ó´“õå¸ZÃO‘²Ô´Ê…P¡²J´ÚÉHÔ´™™™™†Ýq´¸”K™*ZYLŸ2SM)¦‡ÓCŠi¡Å4ÐâšhqM48¦šr‚8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊã”!Ç(CŽP‡¡9Br„8åqÊñüÖ’M–ÆËce±²ØÙll¶6[-–ÆËce±²ØÙll¶6[-–ûQõ ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ± ±¥8Å#ŒRõÁG¨žÇj CÊl—=Ô}pÞßgpH­Sã¾l<í^žÓ­6ãõH |Ü“R…$‰JDø‹;U*{·ÛiÄ:Ú\oà™64KÐæÆ—}žÔ}]Ž×XLù‘O‘ÕCnGk5ˆŽ*I*Ñ”öØn§É)ŒŽÉrQ›Sžõƒ²N›ÕXÈZP“ªÁK(qqÞjC}Ÿ³kêjŒ17¤YW {š¼7d¥„;ÿ;ô«ºâ\‹4§TRåÃì{ÕW‚Q=ˆY52C€‹¼ÛÔÙ‰´Št‰Î>÷§‘(›n‹qN5O‹öš=7ÖF—hަU3pâ¢3_Ç•VQ»&ÔøFŽÔ}]žå§~•Ì·„²Ð? tx ›U."ܘ§EbBk²Tv¤ ôªL)+ÉÃ¥Å?]& · 2‚i¤¶Ÿ³AâaDÊ%mDÃ,8ê54â‰V°OÒAæ›y³mÔÒã51©QƒÞª¼z‰ìv“·äI®—¥³¿Mi×ÖꎓÖ"¦2HRRt¨êQšÚA6Ò[OÅP¦11[‡O¦1{…Û-ç˜`Üï:¨÷T{Ϊ!NšóŠLÕ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ Õ’¢!ÕêŒuF¬Ï/¢…—™vŠ×[ì!x,åE%M·Øu$¦úÈx¥Aµ¡ÄÛð˲l¨ð£›òyr*0äTaN¢•ªÛƒmÁ¶àÛpm¸6Ün ·ÛƒmÁ¶àÛpm¸6Ün ·ÛƒmÁ¶àÛpm¸6Ün ·ÛƒmÁ¶àÛpm¸6Ün ·ÛƒmÁ¶àÛpm¸6Ün ·ý±øæ]ŠAÒ±2žÌ§Mn·JІöÉ4ö·ÛãÖZ+l&4d0Ÿ »5·úúû…!Ø/Í@öiûy߉wÕW…u ¨]BêPº…Ô.¡u ¨]BêPº…Ô.¡u «·[¯¬`„­08Õ&©®9arYÙ§íçvAhÞ\™*¦8âÙZ«Ôf3WBYf³S(­k¬ÕTD¶¯T•Õ`Gr#ûùÝj´ÄT}UxFdDfm¸Û„fØ+\ŒÈŠçãëoõõŠT†"MD—¿FöE\£0å·ìÓöó»‚ÒÍó(QÊ,re?ƒ±e—c¾ª¼*ƒLchá6öé>íZåÈŽ¦ÑP#,_§Ô¤lÉ~Y»ªŽÑ(šA/Á˜ÓŽ*ÄÚ ¶ÒÚ{+TõU $Ô“K…!L< M˜ˆÈE&˜µKKQܤ2ùðwƒ¼àïx;ÁÞðwƒ¼àïx;ÁÞðwƒ¼àïx;ÁÞðwƒ¼àïx;ÁÞðwƒ¼àïx;ÁÞ/¸«ýî´”ô=7)Ö)z~<Èd+NÄmpÔ3ORħ@ÈqÊkÌ/ñúªð–¤¡7RBÖh%- ù(ždÝÙ,“ú‚R iM”‚Z|%9(ŒŒ®]šQBšs­å}N£Š–*Q5!@uS´ˆhy@¨¡Ç)ò[j•´Ó[hµy×|5M«Îé:ÓF¢.™A–µ nÇmÆê}t7¤ýüŽ¯ßŒtáßU^E•½»m¾¥ª·J÷“Œ¥ÑºiH•)t)¸ÈÅš,–Ò“Êl˜²[yÏ[ qwKhKhJÙ« »QÓÒc1KÕ©ð#Db?Z7T•Q×44Aqqý—À‘Žô™ˆwÕWßT¤¹6ûU& Nr‡ŸJ_e§!²²[t9²'¡ÓwŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅcŒV1XÅa~¢¯áÌ®OIŽË¶õË Áü¼üz÷øÓ +ƒ3/Ò”™‹HzR{:øû޶m­ –ÛÒâ²ól¼¤ªøš’FDmÊŒä…Çl<ël´§^Žû2ZÝ÷w+Û±ßU^©R›RQ/J•$Ta.Sì8ßsô©P•¤øúÆZ`ÐW%SµK-¢Ñ(š¶d(ï¢\}E\ßmO{<¨&{M"+Äêê%Ž*ÜD¨ލì˜íi¹=14óº~i«£PŸn Ä¥É¡¾¶åbÞY¥=M&–ý:3Én—0`5¾îDG]­1)ßU_}¯#ušiÈápïtqÓ_ÈýÀçÈ{6€¨1瑚RIù'ð®úªûꢸ˜¬Úi.%)é™IØÜ‘HÓí6–Þ$àCÀ†0! `CÀ†0! `CÀ†0! `CÀ†0! `CÀ†0! 9òq^ ÊÁ¥¬.kˆGêëÌØÍ1¤ï9€31s1s1s1s1s1s1sí¬8Û0T㪭%ǬO\:vœvz=œÓ…ù“¨x÷ø„T re1_nC$ëoT"0ë¾uzandíB [ÛŒÔâ=ºH‰V§IŽO¶õZRJ;ŒU©î£!"·Ndì«ÓÝMÏÞtë…Ά†[yjªS’…­QeF”ƒ\o¶êêº^Ç}Uxv/³Õ‰5QTEH¤9+92*¦íNBe½¤¡Ç‹H(Ìо—»)1Òi)^ÂÜr}ê2ä;*^ž5¼Ù1Ç'–ú#Q™*L”/NþfÊ©D‹PãîÈÓÑ^[—•Ae÷¤-Rhp^Cˆ.:ÅŠÈ£š:SK:z3fFtØ AÏkퟅ¿QbS¡ßU_p_1‰ŒL[¶tfæ0L½©*ŠIƒ Ê}§Ð•:ª‘!ëä‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$d‘’FI$9ê+Â|ÔL¬Ñ ß4¿¨WPDˆ½ ªuhpÌÝRêSãSWÞ5|þt©UÊi‰>¡-rÒâzx‹˜§RO¹çÚ•% Íu­k›b¯—:j4ýQ{%ØO5.2$#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ#ŒR1HÅ!ÏQ^*’•¤Ò´¥)I%> †F20g~Ö~n‘aÓÓš²=ER¨IçØÇ¯ÊLêóqØ€ÇM ˜âsË çÐUø™ŽMy„6ÓŒ§R#©$¨õ¬Û\¬yrŠ;€vclÎn+¡ßU_pEqŒ [µY#_QÊ|%(´¾¦ŒÎé&hºjÖÿTÿg¹i˜0‚jMmJR¦Âf3‘кl%¾§Î-.WPë€TVU52ÖõUáK#8Ë"„ŒòQV‹2Lè½3ÕjÃO´Ü˜N×÷£õž >¡/¬ÜIƈSw“¾çŸk’‹gä»Y¢­Ó²)ô…ÕJSpª”(¬&;1'ÖJ8¹¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi¤f‘šFi|ÜW‹ÿÏ ¾C#3¿nµ,´úÈ_Áx™•ÉJ+âß³Dãwâ]õU÷ÚÖü}v¹9ú´~CäÈöm~žvU}0_Tfµ$•™º9›N8–ªõGd·´Z…ýت¨T¨Œ¨«rÉå2•jcBÒJN ãfL¨p’aƒtÙI½÷r&­Š´xŠúªðT¢JMJ\–P£J›ËŠ4£¬ŽD¹L!)Rš”ËÁd^y$d‘’FI$d‘’FI$d‘’FIíÖfe@Y‘¥'ôÝË¥-–ë¾Î ÕmƵ6Ù'J’²TÛjÆée¤pHDV%rR†Ð‚"A2ÉZßy´Þñ½Øïª¯i%¤Ò£ŠÉüÌ¢°Y[¢‹ÿ;&œL£4Jȼ}AÊ•1Qâ5,®\Z£æjÒU5+#ÒtçhÍHKÝA ‡PC¨!Ôêu:‚A ‡PC¨!Ôêu:‚A ‡PC¨!Ôêu:‚A ‡PC¨!Ôêu:‚A ‡PC¨!Ôêu:‚ <”güV©/¢„¹—Q9¯©Q“)‡£¥†u cj>ùêimN»¨Ì·ÒÊ<)©»¥ ”ÒT¿Ì¼Ûo6¦‹ˆ¨Â:…XÔqbž#¦Ž!¨±šY-¿ ÆZpîçô,åºÜGÅ*BŸ‹Ó¤¼‰Ñ¢2UøÊ&”‚Ô¥”­ÿ}þ¼\§W2cQ‹Á”ú›3JÌÛI¹ù¬¸n‡mÂ"sa‹Ü,ܶÏÍ,²ƒI£Á[m¬î¿èY¦òb8qén)Ö–±Y¨?TsD:ü³i Ðꕚ¨ ˜)âÞ·‘v]¬ä]“Cë9dÐúÎEÙ4>³‘vM¬ä]“Cë9dÐúÎEÙ4>³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ³’èjÞ¿ÊqADADADADAû‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚?pAiiiiîºý”of¶ù³ï1pçiQ– Ç–ö1ò"m(¦£”½Å•€½Q›Ba …šù)Ë#¬®žÌ/WH¯ä%tͰ­ÏÄl.¼ŒÛ¶wÂ¥Ž€Ø1Õѳ G÷jYŽå˜÷a½NG÷©©²„7Ä,÷ 0ÿ—ë;å~¢G·æ*ŠbëÂh#òÐs¦‘.¤f-ë6€j1°ãž^GÚ:.Äøl¤ßÊTuLa:TȵóìÎ-WÄÌ¡…3‚ê 9õe¾V Ì[/1=7V~«M±ÝsÊÖ;Ïåþbsm¼¯®ø*–g*>,¿r±ÙÒ½B¯Xo\®¿6“´¥ 6v °'zŸ÷ÇÝõû)6žf°b~ùøŒgªóDŒÃkoc×+T¥vrJ•½šá”›nÌ÷M¢ª°bÉ„‹Sݸ[ú8Ä-f›‹ïÄÿ3*í+O5E0ýI¾C€œæoêEQä¢oÓ÷U]Æ,*ÛW”j5±ÜGþ?z…œ;9¨¦ÅÎ#Çý"ûiµ¦¸Ué¶ï¿ê`¨yÜX®ÿˆO~B+#*¶,šÂÂý¾ÐHÜm¼úµ/¸Ùíq— †¸\e•EL–à‚a¹ÊSkÔ ŘÁð‘/eßõZJOYY³ÓÃÕ€ZR±-Šç;~å5¨½X\?fdYi -Eêaîúý…EÚã8èG|µîwJv=™Bã¯vqê K„ž6…šæöÊÓr‹ß%*~%ã zŸ‰¸~æÈÛ]KÍ+ª“ÛvÊföŸúº?÷OìÞÓÿWGþéý›ÚêèÿÝ9¶Ê \3W¦×=](·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(·ˆJ-â‹x„¢Þ!(6¢PmD Ú‰AµZü=Ï_ò__²Âù Zš°±<&ÓD1È Rª0&ÂÆm4¬ÆÀâß:ž#ßTæé‚+_|ÛG¦Ú< 6ÑàiSžlÖ¶± CÄ1 CÄ1 CÄ1 CÄ1 CÄ1 CÄ1 CÄ1 CÄ1 CÄ1 CÄ>ë¯Ù‘_Ò3f²å{ç×þ¦˜s¾{îý~‘Ú¥jv³ëúÊŽzX¸7äœ7TÖ÷ßÅOר—¡@€íßìþ"þŸtõû¦1ŒcÆ1ŒcÆ1ŒcÆ1ŒcÆ1›ÛüTýe@ÕKáæ€7ì?å+lß² ³×úÜ»æÆÝx¬?)T%Z ‡õ í—ë?ˆ¿§²³%7,˜C[{ãcjU <ŠÑ*þÇA@ÚYRù¾îܲ9uÊxkR¤×Z·è­™mÍ¥ Ëœ¤àÜRç ·”¡GgZE ÜÊ¥–äŽ"Çî 5RªÈJ•¾Ùþ“»Ù×î€Þc«€lmÃØn!u“õâ§ë(Ô­Í›¢«Òë=ӜÊ÷¸Çÿ™³Ô¡Q­Î]Á n;·Ïâ/éìgN}là»ûã‰û ž>οt -Á+{bì‰Íh!¦7^ûã*§÷{UÏÅJø¬;n4&mÀ«Í¨`)ðZوߎR¢í›RWÇL³ 6ÊXc–du“i´àj–¹¥[¶&6QÀæ3ì´lNn³îºµ±XoŸ ‹mQH³†ÄE÷NSm¥ÔÙ{ïœÚêÓ-s‰¨ä,/×?´.zè0›E= V`Àn.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.°.³¯ëÄ«µ©âd1±3–¶=Ö|•_ˆgl³•Si¤µž5Üã ›-:'N¿fKF¥ötõû£ œ á;í×W¼ÊÔ]ø1ŒZF‹=Ýó5"àÄCu;ˆÜ}Ñu˜n= ¶ÏÍÀo'…»omÙ¾5za àp™·ƒ³ªÞ¨¤¸˜Žà3ŪSœø±uéi~q©0[ghjìÔÉfµ×2-v°Å}Ûâí4ÊÝU Kbæ†mý8ï+T¦P9j‡&LЋXïÈçÕ*Vfv,áel{›ú0õgyR¶wÆÕ0¶#‹+ÿNvü<Û­`ì˜EL¸³¾ßpsœ×7ÿ¨Çýݸ[úïåù{:ýТIßÂS «|v9‘Ü åEDPEQlÜ|I£€eaZªªˆ°50ìxçˆÍ¶OÚØÔÚPݪXë¬G„M´óŠ:$;€,W[²‡üÓkç,\bk…p‹nÈ‚?tªÃ ³kqŸ ‹h-TZ¢(ûEs´ÙöF§A˃Q.Ç;þS¦/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äf/˜¼Fbñ‹Äg_¹¤ÚQ Wðç)®<ú%·eyL¨Ãˆ7²ŠLSÅ1LSÅ1LSÅ1LSû[ Ên¹ËÊf«8¥Bùãn6îfÏ}£jµA´bVÅLýAüÌ.!`}›9cH ·Ån^ÇÞT¬)sj¬Å²+Ûô›uæß›lMl÷Í®Šs —o†?Jž. ¼ŽÌæ×K fî.¢×7Cš«HeÅ—ü²›U4ú>t«µŠ¯Yê›@ªy³Tó}+(›BÒ{°4êœ, ïÊm´3LøzæÓIiÕ6¦Å¾#Ù6íœ*><àɺ¥zu•NQ¯cõzƒžÁôõû:ýØSßÎ$½=Žˆ-Q—{[‚ÃN… `®É³5ÜÅ2:·c˜V“ÛàÃÎTÌe–J¿™‹YUVàšý#ù„ha§SÿÈ9³¨èþ‘ Á†cF‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F‘F“¯Þ¨e;Á(U€ê²ˆ«@ƒ³WVÂî>‡ò1ô›}1\ÝkôÿßõJKÌìföQñ•µ¿ý°‰žž³ÄÊ|ëSBÁ/lVṇ¬)S¨¹â6=×kJOP5˜‹Xá8÷vô ÙisB«›ÝÐÅr¶ÝÃ|M¥Rç šYŒ¯nûg)ÖÍ ½%ÊÇýðû…Y9áôn~oÃßÇÙ×õü+ŽÀ±Ü®>=™•?ñvK¯*ìôU]MÀïáÂýЈ¨×ëû ßž#Þ½^Ý‘п6=¶/×9²¯Hâ9“×ÿqÖPµ:ˆ)¸,MÖÖ¶’‰03+²Ü~Fláš`LÏDv} TD—9/]‡_o³¯Ý{|çy¢ØT¯¼ÉU¨ÓEbî‹­²Í®3Ê)ÙEJ¸†* —\»s$eŸÒžF±U(…âê›ýÞ *:AÄÒ€SÕŸoîUJTÁ±f6oÙY\T¶ñ6ý‘²œj£07c_´G¼±nÏ”hXgK–,ŽýÚM¢J´ÅÝTîþF$\ZàØË½MØß}º£T‡6þºC´ …\ˆ[a¾‘j}ezfÄ~ŒfÒµ)ÔÜ¡{|²ÊÃ.?à’sw'£ˆi˜Š-[.¥á6¥QÎsyƒñq”­Ø˜Ä÷_Þ)fµðŽ0ˆ^LJßWÀâÆÆ+*±¹»^+œ ¯EÊÝNõ6ÞT¤Æ®‹1#9T©&öL€î•ì,.w{ü5ý>øGa~g˜fÎÿ0Íþa›;üÃ6wù†lïó Ùßæ³¿Ì3g˜fÎÿ0Íþa›;üÃ6wù†lïó Ùßæ³¿Ì3g˜fÎÿ4ÍÀX}ó~qE×·²Q§IWáÃÄÆ¤ ìõ*)sk²ÚÃÎlŒY[µUÌâßàÏu÷Í‘ÓcJÜà-‘» lŒêì‚’Ó¨¬Ö+rOoôÊf“R¨i²Žû"‹ƒ¼A™Þb#á7–ö=r…ƒT5©±,osÌÊ4ÂÒþìaø{¥ 6Å‹û±¿¯¾" ½ì¢ßâ·ÿÄ,!1aAQÑðñq‘0á@P¡±Á `pÿÚ?2q… 1kK@û³öG2BË<ôóÓÏO=6µÎ<-ˆ±¥|Á4oÞyÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç'œžryÉç%Ï‚&„üÁ…$°ئ¾X’ÚÐ!ºßîLKEX'Pì-H¦³ÎNT­DÊ!ÌiGQ…'{H!cGyç"E¯æRäòá¥"³<äÖMN3ù¬5²M‚¡eyT#™ÿV´xÎÅÈ„‡û•Ñ`€qÔÄ×]]68JÖѰ¸ ©2Õ†#ÓÂ4/9Ö”<[!A ¿AAÎB«+RE(î‰c [ûg÷Ö°AELR½q5`TÌdšášSzî\938àV¸»QÀJÇè ɵ-yÊÜé@Žp¯D n´É€äµK‹Ã¬¯R¨è¶á^Ð ÐÌþQ?˜ÌÄÙ•p‡m#X*ÙV+&‘KU°Á­ ûÅž ä0æâÌ ‰×M~)üiܹÈVñ —E„¬e`Ö®GÁÊ êO6™Úhíä£ šþ#d€·âr‘1i¯¿ã›…`r…“2¤T¥QéZõ¦úa°"”Ó7]Q{ÃR dPµ]UâúY^)‹ÆÛX?i{ðY[º]_w>ŸÊ"Š·ýJ•*T©R£þ @ @ @ @ @ @ @ @ ÿ  X?Gˆˆˆˆˆˆˆˆˆz¢^°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›‰°ø›ÄØ>&Áñ6añŽŒxÔñ©ãP€¡íô‹ôŽvÓÊ ‚¢€ÿMj é®äÀqÍô!$’ŠÀ{Ðàñļ …(Q±°G=Îkv7´*, „· “fÐÁZ§BÌîsØ2 æ?ó„`PçD¤R,éô?×ÓúßK $ÝVG"õ¬GÑÚ¸§ÚýZ5” ä0°6è·ºK'³¥B´R+UÆ;'^8š[qÌ=^Fkà"Ž8x")ÒØ%ˆñ¸¸²ò’1¤XEÓ|¢#l].ƶF—eN§àý!eâWÒ‘`‰ÊºT¿ôŒ([QRsšf¹DÌGk:›à-Ñs`¾ŸÆ%q¬‚†¡JzÊD‚J᪲…(F®€ééüÃúú?Åúg:U >Æ>×li;7“c¥qš7¯úD®&PágBˆ½& .Žól0cp×–¢ÔȶØCÞàià-- ¼,- CP¢ Ö“:RQŃ‚ýöÄK`Bª­-Wÿåè?!T·î7–ù- _»¨ÛÐÿ_Oë`Ò<¢è%€9¡JÖà%«Žˆ²–]×ÐZ-,KOmàÅÄ8–Ûq‰€¬K’²ù–T¤T¥‚à:ƒ—ÇÕ|ÚÉ]7 Œh³Ë8Þ„,Jbð+>a,½ÐÑÁo.-ÌÈín¼ÿHj·IX˜ºuAk°˜¸öÌcí.RÚ‚q‹Ó^8çéübê¢ýÀË©©†.¨SKc©œÒú0þ¾ñ~–Ǹ—ö™@˜[½‚µÛ+2ÊrcÅL “b¯MJŠkZµ*q»3÷ãbãVà¬(ZУ¯œº``[Ò½ë‘#h§»Z ÿ¼jhÃ…Ž³ZŠ0ãA§¡þ¾’h¹°a­^xÇnݪ„”·p"c6ãöZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ƒ‰Ý™Úßìíoöv·û[|DSãèÿ,æK9’Îd³™,æK9’Îd³™,æK9’Îd³™,æK9’Îd³™,æK9ÿ_Þ?†”rŠ¢±“‹È‰nq(¶òÀ¾Ã°Ø6µuñŸhPüƒ•º?‡â ƒÄJWTsÑšyéìe¥¥¥¥¥¥¥¥¥ ¤Ñè!•R£€Q™ÛŸäíÏòvçù*ζ%†Ž³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìγ³:ÎÌë;3¬ìα#Hýá½,{h8ŠÔüë¼X̶£ N…Åj¥XÝ—5ÉW´7 (+Gp¦@ VNîUìcéšÍñõŸÊš§ãV/+ý­þËcè¾õ¼òsÉÏ'<œòsÉÏ'<œòsÉÏ'<œòsÉÏ'<œòsÉC¯Ë!ÅhÉ¢+C[Œ#ˆjwJ&µ Hz,±‚Ž-GÕûðp¿yzž©T¥>ù§rV‡o'æ¨EïLX¡·U¢ÝÕ˜üIÀ‹`rLå2èáÚáਭ•AÇP„DK³ëðÜò³)4³KMÕ^Bv[H›Ñ 9²öàÛ“ÉŸsæ 4FÆ">Ô}Ø"X‰ucyåôÔ P9­óò¯*ÊQ«íHs ŠnqwwuYfô¸Iìa@¡J‹áWí„‘y´}† Ûy­}ÿd  i”4þßNËcé °%ˆs|?hýY‚ÔÕÓŠ¯Ú.BÔƒ[“#eˆú)@X0•‡¹7Î+t=BaÖ; R> 9ý µ¬e½1ô›ˆ8vZìy•“' w´®äië*/uVkª”"Ô½W´Øú%«è0„Ÿº´K[Ä ow/òý%þ_¤¿Ëô—ù~’ÿ/Ò_åúKü¿I—é/òý%þ_¤¿Ëô—ù~’ÿ/Ò_åúKü¿I—é/òý%þ_¤¿Ëô—ù~’ÿ/Ò_åúKü¿I—é/òý%þ_¤¿Ëô—ù~’ÿ/Ò_åúKü¿I—é/òý%þ_¤¿Ëô—ù~’ÿ/Ò_åúKü¿I—é4<ð?]Ï$y@95eï0(x‹Z oïg3\^tçQ—›%H ×]#c Ð]6ùý§²ØúXD,jèØÐt5ö^. ¢AZð\{â7PK•ãÚ!K`4–ìÆsÂ!Øviˆò®1n°æ<~’À½Rƒï ±=^¸r¦PW±R¦Ì/á9ý Ìj%ûÇh¦ ÀhO²àÐåél2¬Sa\1Á„J°¶ðÍfU ´¬‚mĵò ¤€1nŽ+,@†Ó0íT‰dM%¨HZp1h¿Á45|ªÜݙƛ,бutY’‹¢ÿ`Ü;Ü߯c‹ÑÙl} Ö±Êù>WI­®/Sž&|ª*4óªš` ‹RKZ‚꜊AÜ·BBÂå©Är=%K‰p§UCç`h°Ó€åô“¢°2Q+"UñĨÈ4õ(Aª‡t¸Á–‹¾ÐÓв Õ‡Ôã gõƒ²„-²Ÿ×§e±ô‹¤PòïR)ïÄkZ7¸5ÕX‰xŠBÖ¥$¤“ÌO‚=ժЎՇ,ŒŠ69Ά ~Ó¹ž»Ã::9‰~Ê^p¸²õ¨Vƒ¦—Uk¨4;exÖqKº—8½–ô¸&¢Öq¢4$Îé3mo<6ɵ9½«!¸à ³i²æÆÜ-Ìh¤ÃD.Ï2š0–¾çä ]ƒÓ‰Z¿r,…ÕKº1 å÷8÷ó-hUZ[JØÍ9ó®–[÷K÷ýf[¾0Z´km½++;-×g²=¢Ð· Â'zû.¢4Kq ›æVgMÛH †«ÂšVµoД‰¢ÝЯٻ-×7_jl¸®ˆÓn!¦+häbësõÜ3WRhÊÜ@ä18ÛY¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcy¿ØÞoö7›ýæÿcx—\Íð>Š›`<Ôi×*ø±r mjtŸ–¹Ö#½1 ªF¦xñ¨ƒFà©æÎ³Íg›:Ï6užlë<ÙÖy³¬ógYæÎ³Íg›:Ï6užlë<Ù×ÔJÝôo6ŽÂ^«Íf…V 2²À,dX5oZ ¤HN®…qxúÍ€eg1´ˆP0£‚F90éêÛÄâáAJ®Ä@0DʸÝCï.[á@S¼àyký(^(/•À@ܺX·Ì,ó*.¨t%Ã#žg9LRcA²Ä®w ÐÌ/•W*×I €»Øaø`ýmfY ZŒÙg\?(Ê¢ ‡=ÏÓëኬ[U9Ó­ieêzv[J‡PqZpŠj—†Ïцâ›-q!²®µ»ØËÃÞ0å€6ÛWiL`&\ Ø 6k M4ôFdFEÍL¾ðŽëe ë€Ì`Y°@¦è£€f#s`( fôáS6=¡éÑF…PX¯˜Ô£- ÆWx¡ZˆX"˜8â(–*€´ `è<š†€ +ƒª[`²šâB«Ùu KFc¬ÕÑJ1®§ƒY€ )E¶«€m±]%”ÂÑÔ ÁÈ Ëš’ƒ FaeVÚÝ3!«Ž ÅúsaJ‘@Ž¡Ê­â§e±ú€ª }vEIO«Ä®íqRø_8´Òù Cެ»7ïx62¹kÚV*VAÌk„ñ©ãSƧOž5¶LÒè Z˜¨†¨@lR4®rp—R5ºÑûÑÚ^ %V¸Èåeà³wQQ¸‰ŒOž5“?Pæ%,>×¥Bölf˜ÄÔÖ»D^‹’ž· ÁµãF3€Z¦®ºr•3ô­œWZ Lü³WdÜç2ã àÀOéõà €½áx:hÅ%q*{&… Rë‚°®KB ‚QµqJ«Å`)Á3i`Ö“»ÒÞ”îô§w¥;½)ÝéNïJwzS»ÒÞ”îô§w¥;½)ÝéNïJwzS»ÒÞ”îô§w¥;½)ÝéNïJwzS»ÒÞ”îô§w¥;½)ÝéNïJwzS»ÒÞ”îô§w¥;½)ÝéNïJwzQ .¹Šà}Z ªÒhó9}4«fÿñ7ÿˆŠÖýkqlkWFïj×á±í C2"ýÐÂÄ&ÓK/ô{E3“‹ïý§²Øýw3xê Æ‘ÛsFÐK ¯"Ó±›¦6àºXØíœß°MÒ¾ðÜɱ|¤j²ªh]Ki ÙF5#cª¶†)õ “˜Ñœ%jLHB R½–k 6Y[lCPj\¢Ë.ÀÖDA\bë1µäâ³»#\"03c+¼E"_Œ¬ j–ÝË4ß+ˆ¯vr_½¬ÎÅm—e£’ƒ©S²Øú-õ²r%80“wŒLí!?Ó‰ž#¡VËôÀb-|j$€,Ô³ø€Zvxð)àSÀ§Ož< xð)àSÀ½x†£-Á©¿ú TpSî8{G*ÃTä?´s€=!h4û=¶”›ÑÍ{¶‚”ËÚ,š(…̬rĺT0AÈÚe¼÷wNwý枺š,.’È¡Aõ¯x²Ì ,¡¶ß­Z+•KkV­oéÙl}ºÜV1JmX¡0Ç–&v–&æ—[qç÷c’ŒÂ뽆ÚA4´m¼ÊÜÛÎR  l*þ1êŽGÄ£‘ñ(ä|J9ŽGÄ£‘ñ(ä|J9ŽGÄ£‘ñ(ä|J9·’˜ +ÔÍÄ,NײÖIoÝX°«Æ­vV±gª7J7†}§‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘'‘&'L”ÿåC9ÃZ0‹yAàV²¶ž¹@º5ŒúíÁJJfx°æñ «ön§åf ¼s](6hÆ1upþdÃl–ee°Yœý6( UY¨ dÑ·Hyî'ïBK¨ö1+BKš¹c-Í]–Dk•Š{,Q7´‚,`M(Á´Ø9 P[ {,ûÑ‚xL¹!“z]Öçÿ_ØÑ¬óÞµ­¦[B‡‚ZY˜å,y9À`bÐ!R$YFëUÁ¤Ö`ŸP“J#½ W.Û.y¡*!— ko`º‹h.ëèÑ9šÂÑ¢ ðjÜÀŠ †]7”sJíö›ObŸ1‰1cÁ/ W<ÞÛË3HÖO)O)O)O)O)O)O)O)O)O)O)O/ÞY@Þ¡|e{5² áH뼫}jöÞX6´bé–ØŠÍRÚЮ#/驯›àÞ(ä†åÞ%Ëu½isyòë7Ÿ.³yòë7Ÿ.³yòë7Ÿ.³yòë7Ÿ.³yòë7Ÿ.³yòë7Ÿ.¿üÒ°p5Xè¨@‡¹$N$©[Š£b”Åž5D927H„Q5ÃÁ` :[–¸S-YZª5Ã@0D­$¼YÇÿ -‰•#qàï‹Ì¡<Š6 ë¦ðp¤%q±±”x•Á"ŠÍW%:ó¨²<ecô×QíÊj¢<º*ð. Þ§ÿˆ´  ªËm )4kUYÖ$騿‹÷7ˆ¾ú”…MJ§,ºåy{„JÂV½kê_àáƒ&‚ôµÐã"nÿ½ 'B޹á @2 Ç)’Eƒ”sk”Rî(N1\½ˆ|ãÒÚâå¯=¨É³¦ï?,rÿðEÈÿœóT©0°‘r]Xf6V¢(»µ[v‰‘ÈTÓB…ATÞ ¶|h¯¦‚m­8‚P«]Ý¡™‚¸k¢×>* +–Ö–o“ÿ™m4=¿åȈl²¬½áɶÕÁ€¡sXºç–ØT6%ÛPHªN<1iZJ„ÔË €:àó¨\e‡ÿmÛr@hø Oi¡íÿHXÝŽgÜúÎçÖw>³¹õϬî}gsë;ŸYÜúÎçÖw>³¹õϬî}gsë;ŸYÜúÀ'Dï¬z5ž¹¡¿Üõ=¦‡·üvý¦.1ª ,7©i¦*æ ê4~ðcÈÀ«-é‰OaÑ X¶#iŸ–UH])Ë€É «9)Nœ>§ñ§`åýÏSÚh{ÇoÚ|ý¡éÐÕ ü’¶t×2ߘeò­"Õë–“#’T‚´_U`Ó rób î™Ø9SøÓ°rþç©í4=¿á¦¾J*߇è·ß}÷ß}÷ß}÷ß}÷P¦( B ‚Üõ=¦‡·üª88â[2½ðªkÇ@ˆ86¶Ç9¾<¥òx„ ‡ªv4Ìh2S.ÝHãX!‘¬*°pæ9P‚ÆG@Q·¿¿ê{Moù<¤Ñóš(šêš 0ï £ÊeCSuSt8¨j踔YÈÐgY™”´Âý¿–±›jC*êÑÅçûþ§´ÐöÿÅj{AQ‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚l`›Ø&Á6 °M‚lTàŸÿÄ:!1AQR‘¡ 0@a"2PqÁÑáð3B±ñ#4`ÿÚ?«Rà©•å…Ähý>ˆÚZ0S*µò­S«h1)µæ™y¶SØx&<=·‡—y†’¨[-5\EóËše®»mM§ÖH‘³‚¶Wìô]P …“2ƒíEÍxÄc‚ªþ­…ñ1±X-nµ0¼¶1E;)Qp‚ÓÉ7)Q`€ÓÉgJCûO%)l<“²Å,<“rÅàGžèîžK=QÝ<–z£ºy,õGtòYêŽéä³ÕÓÉgª;§’ÏTwO%ž¨îžK=QÝ<–z£ºy,õGtòYêŽéä³ÕÓÉgª;§’ÏTwO%ž¨îžK=QÝ<–z£ºy,õGtòYêŽéä³ÕÓÉgª;§’ÏTwO$rÍ ´òTêÙ)’Y|O¨TªX©¼<5Ò=BvX ðZæÉQÊVJŠtÈŸ—åµDÿiä†Y Ñ‡’9j‘þÓˤ˜W‚¼à¯x+Á^ ð@ÏD©R¥J•*T©R¥J•*T©R¥^W»ÎWFÄ@½ €Œjér¹¯î‹—¢1ŸzìÎÝqQCN=ú¼o£ÔꞆuP/Êÿ‡Õœ<&À>Е4 àx ˜à×IUK\éj×.°«Æe_vÔ\Nžæo³uÝ}Á{oßçê›Ñ‚ÃÉÀP;Ç£‡x+USF‹ê7H›—­NÀ0sü«X­h®)¹¢ íÙóW•åy^W•åy^W•åy^W•åy^W•åy^ïǃ”?êÔùB«h€í&vê•“[n†F8ý²ƒª9ŽnΰüG¬êVê4›Ö‰1·ï®õFÓL™ê«QëcÈ9ÀÄ; Á”L™R§º tU¦ÚŒ,v‚ŽH²F Çæ*Éf[SZö ÁêÓ Ÿ*;£ˆô@¡" :/¾$»i2©Z 6–€ í]±ÃÝhEÚÎèàªÕë Äy:ôa¡ÚèÒSI•R³)Åòÿ´ßoÝÇ u!'ŒƒÊ“&J“àU0ÂWjimÇ4ë?b›jëª|¿ÙV‹9¨æ½¦ gTéäaÌkV6ºÍH2f}ÿÊíÕ¦g’í•fgù¥>×Uâ Á9ÅÄ“¯ÆsË€RРЮŸÐb“¢m¥®$4ÉVGP*¶ŠtH:tp•Hõ 9˜ƒ±uU6Ò¨5ÕT‰‚ºš±7Jêß°ðEH>!iCǵ±Õ(=­ÒAU^ÚMê©c´íôƒž•“I%¥ÃZ‡XC ‰Äzô~ŠÈe`k#_>kµÖˆ”ÛUPfšm5ZлE\=­Új%>½Gˆqñ ‹ Hw§R§»«GAМú®v!Rs‰ ™2‹Þ%¢P²Ö"a:ÏU¢KO‘-"'ZЈÅGz0žˆ•RÏT>ûÏÊ.¦ÜBkÞßtÂ5j$®²¤D• (P¡B… (P¡B„I:PñèÿQ¿4§úER³>¨%º±UÆpú£c¬ÇóÁ]ޱÐ9¡b¬usDGŒæ€N´;¢5¯e{>"Á(W§µZ*±ÔÈb½¤/í(* ‚ ¨* ‚ ¨* ‚ ¨* ‚{ÀI€œ L¼ùóŽŸ‚„L™ ‡tyà%ŽÐ'ÿ#Zµ@ÚÀÀ”pңओDüÄà°ï×瀓A‚ ü˜é³XkZu8ÃÕ‘j&Lqý,ÏiôãúY¢Òvqý,ÏiôãúYžÓéÇô³=§Óéf{O§ÒÌöŸN?¥i±U³A©ù£Ó‘4^ß²k*ua¥ÞÖÔh˜¼!08kO{.hg×íæM:ÕiàÇõFÕh/ž+µÚ7ÏÚíçŠívóÅv»Fùâ»]£|ñ]®Ñ¾x®×hß|ÿ+£:bB©IÔà•F–UÄL#güÀÀuö¡aª{FõQ†›®Ÿg`—U¦Ãd¢Ðì˜×ãÁ>Ågu‘õ2` kß­XlÝ&»i¹[“iÙ×Ó81Tiš¯ ˜žõÊ6&Øê5Ó†äy6» µÃÏÑ;“k¼ËœäºÇÞVj«Þ8¦ò¡¦CÇîC´;<ë0WÚV`¯´8¬Á_hqY‚¾Ðâ³}¡Åf ûCŠÌö‡˜+í+0WÚV`¯´8¬Á_hqY‚¾Ðâ³}¡Åf ûCŠÌö‡˜+í+0WÚV`¯´8¬Á_hqY‚¾Ðâ³}¡Åf ûCŠÌö‡˜+í(r pd8qU)[j€pÇÿUjvú´Í2æÁÃQLä;K×€GÍWä«e ƒV 1óÿäãSÇîB´8Éx;ÐäÃÞyÀ•t«¥]*éWJºUÒ®”DsB… (P¡B… (P¡B… ÕwIªñï@õecÍ>o§“ÖoDøjŸ%9z™Oq ´ösTÊû¿;HLcꌑ…dbU^ÂTZæ¶ë¼çÃtZ²a] ã{h´:M[™;Ø'sb±X¬V+ŠÅb±X¬V+ŠÅb±X¬T•'Hsb±Ò(+ªêº®«ªêº®«ªêº®«ªêº®«ªêº®«ªï° |ô*bcÇ·ÎïlfUÇ&èçÙ %P#*UO¦I{ïO°1¤'YÜŽ‰!L‰æÓbDêU¬–j–gW³uH:;uG²©6HÇLó i¦*ÓÊ5­ ÉÝpÐžó µ•µ^IܺIë8Ÿ¯Ëü]m»z£K$"gçì eÒqÖQõï0ÒBjTj9Ï”ÚnéœCVÄ(ÀP ‰¼é½MÛØ&Ù×^lƒôM²}c'æ©Ô ¤`aZCk¸“ß+7Pˆƒ½t1v<ÄyÖ™b¢Ãy£Ö†´4j¹Œ $ŽÜQÑ$xzK({Ó\N²™IÏ›£R©Ì?–§´7õ Ô¼Z”ÅàºEbðÞ²´Ï¼7„*Sq€DüÂ… (P¡B…  êGב!STêÜ ÿJÒÆZO\aܺ ›¾w§Xè¸Dy™N²Ñy$´bº-z£?ÚJ-ÔßçýL³R¦e­XÖµ¤‘ÚŽÕ}¼ÃZ¥BÉI’Y­¤ƒòÖ7câ­Ô©5plتW§LÃŒ#m  &Ú¨¸ÀpŸa˜ìGD¡ˆÓœy¦1*Éo³>†BÐì#»ë¨ýªØÛMRà~IÌcÿP”(Òš7,9›¢T©R¥J•*T©R¥J•*P úûGþNù#©XÏç·ëü*ÖªtHíG”(ˆ‰?D-Ô ‰à|?к}¬ð(ò…¬ð(ëšðâ@ìGDÏbÅcê+ên¹5Sî«5Œª † Bꮪ!§Zê© B¤) B¤) B¤) B "`IM!Ø…:DÇ·Œ5~ÊP1Ó>ÜpM2%N‘1ÿg±IîR{¿d&ÇWìÀ«öfÌc¦g³Û‰%4‡ ²ÛyN…Á•gá(~ ± îû¯Hl~;¾ëÒ Žïºô†Çã»î½!±øîû¯Hl~;¾ëÒŽïºô†Çã»î¬|£FØH¥8wˆößÄd E2DˆþÓªRË5½^À~^J/²Á7LΩO-.êŒ4¿ þªŸOäûmk5½jŒ;ĦØ,Ž)7pY¾ËðÛ¸.dømÜo²ü&î 7Ù~w›ì¿ »‚Íö_„ÝÁfû/Ânà©YéQœ›@žáôÿÿÙplugins/jetpack/images/screenshots/widgets.jpg0000644000312500031250000005660312651056012022243 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚý–8}äðdçX²{çŸ>²yù“ @hè™-tÎN‚—JñÑ6€+tÿ{J­Ö¡)—WÙ~€, _f“Q¦®ì'ËËÄjÅÂo!à÷‚?I±í@ž½‹³¼óMü[èiuû M2‰ËGúó¾õ‹¶ËγxÐcöîÒÔhñG—tú½¤ÚW?:NºqK[^±î7»™¯ââ‹Ûu©?Œ¿&úW¹í².ÂãMŸ÷×È–¿µ­vʱõ¶ªߎt~…fØç›°û÷×ÌŸ}}õ°œ9ô,Ð¥ý‹ÖóˆTÍr}²£ã$L˜ú?ºf»qXàvO´=^Öûl—ò±>n½Ê¢zØÉ™:õu0ašSõR#þl¹Aåðú.ÿ[7¤Õay÷Ù¸o;åtÝvߥwÖ€*uíæ»ó]‡è ¹vÝžyùç¶ñžgÉák{þ§£~·x¥åzØý×I‹šËYµÖládµ€ÈSá~]¸OäVÍOl²o+Ðð@…Òªãò‹ÆÒ%ç±!Ä‹“>oQóEõ—Ô Yçcû³*”ÌØæaì›Ý¾Š,xqzžiçn¥LêÝ5è’!Êõ¦gSô»=Gæ:¾îÑ`ý Í÷:Ç|<Š]RÛž=i÷£È潎ç@ƒŽÓvCÕcØÄÙé¥{Ü›ùz¥Òv}"ýê—ë͆»æ—&GNÛqïÓêÕ©+hQ~ÕO¬wœÀ Oãž Ùmz½ÓsÎkÖëEBM"|Þ‰´üËצè¶޳р o8þ0÷ýU?žúæ?¨íÓ¿ ö{žÖ·:7ßD¶~mí:d]/K螯@9gã]ÞZŸŸÒ–¾#^è]#“sDÏ·µÛ¿<÷-žíNç¿Aä’wš½œµùåbÝÛÀqOÈýyÑs­Õ‹¦ëô–j6Ó=¢ÓÁ,ÛLÛ m󡵜’Ù]k¯û7¯6Û¨϶[?ÿÄÿÚ+J€$Î[uÚ°OÑÇ4‘E—wK–Òyi³¿R m…$Ž°Û‘ Ô–¶[I­m§}eô®=°_eÓåËu)F$` œšÓ]F&ÖÙjÁcÙY¯‡œ¿¥Öm!œZc[‘;‡Îg÷^yÒs~‹š[ôØœþšWçð°ºí€.z×Y@ ¢·Y./²·¹Öckº\Žœž§¬ãº wo¢³_Õe€2îS€cÛÏq¾—çý6§¶ÂÖCÐæ€$­nÇ[f²Mvïétþ.ž#u¥˜¼wk¥Þh²µ{+ï¿>@r³ô·ÌeäáQë “q·Äåù¾zlýU•öˆ4’èíŠ:ݹ’ÿÄÿÚ9Ã×}1f[yýø÷ìÖMµ4©ºÖM®Ð+U¼í€&¿:oÙ¬«jë Þ•é[t‹Ç8ÆÀ´¤ÛLâF’§uãW–¬’ú#FÆlr—U·,'i&÷JŽ;úyûZi@®À {_S§íêtñÞ¾¾ïçÑ€kÒÞ¾Ò¾W­‘ó›îï=†1g fTø¶´íáíºÏó‘@kÓ­Ÿjëͧø«7~v &¬ËÈ)[ÛYùŸKÂÓÅÈíÒ«ˆž1¬€zÝDŸGì*­üL«jxy¿H½o¨mèîàu«^íê$ù9øô’âséœy*𞪿ÎÈô$p#m|…p4çÓ;gÛ:€ÿÄA !"1#2@$34ABPQRT %5CDEa0SeUd€‘ÿÚ ÿéqL rSôö»½ÕôwÜ…õ_1ÏÇ=aüã®°þqÐ0žƒÿ¡3ó˜A„ÄLê&'ž&5L«» _lL`€ ‡ñ`ɘŒ V_u:—*#™hqêãí—®òy˜î¯‘1!ê‰bâ9– DµQRÀˆæ9ã˜æ‰ç‡/]ôü3Þ_á³Õ›sfªb%ÀÚZH¼káò”¦òªžX»ŠÜaUa¨±ÊM@”vÆÂ±7Uœý åmleªœM® _öò•Û`éÊâ'XÜN³©uôJS…Ë;Ëa¤‰ø›í¡icAIJ‰8ô¨•ÚŸÄnZñÃX¬*[À\;¢ìWmõ}ÑFíiJ™ Á*laÌiVéŒFkdÑ5B„ź•+õ£‚Âe¬Ò•6ºRY ¼Ô¢škÕ^DšUú¡Šf²}“S2* Nö û«ÖìãÀLyâ9ùþ¸¿—pêÚ³Ùh/·%#‘_s¢FbbÊçå1¬ž_Ñ0F ¬Ÿü=_Þ^”À}ÝÕ¨ö‹÷©cYQ«vOÚ ´NÂV‹ Fõ ),µõ¶öéÔÿ×Ößþ§wñþߢޜ¶ë!í*j¶WN½UÝðÚÐæQAï~,š£È}tÿÆëë·þ3_]ÿñšÿ×ýÕ¥{Bîôâ>̽ ñþÓ©ö‰Ä„h½¤ñû—XýÁèªÔUéÕ ~«¯ìú?qîƒbðv%g WhV]2r*}¬óhÑÅø®ecu´I£@U¸{‚q¥U`䓉"Жc·p5ÑêÒ•(·.,dD¥âÚû¦‰ÇÛ*ÂOû7?NN–#Þ#ãDùÖçLÆ¿ýÖ훚½=Ürx|ëïe±e ËgjÞ»bµŠ•;yûr¾kdŠFîjþ.–ìãßjOlT³S1g WO‰èƒ(ž1ë?¸JËj+fRV½G_C/Ô²Ëy|¥ÌKè‚)’¨gdNÙV¬˜Àçnå.ÈzŠ“3ÇÏF\Ì@‡U†2K‘OêÓgEçLŸ:Ùç×·kN¶ÿùßNãsQ“_Ww_:§Z•çÖÎÞ<“2ÆÓZ1û‡/w õ•>¼n亄PP¹nŒ«»{©gŒîEÔÛÂŒ#L»’“™Wuå ›NkÊØO¦¨`³!o¶– pÚ÷ È*Ð0ã ÒÄ¥Âk†RÌAñj¤êoäå]îíq‹Ù+R†Ì=\{ÒûÑZ5ŽÈÙ~FÈÛ2¯nÀ bDò60ÎêÙ#w¸Ùz{rÕ>Ó³ÐvÖÅÿÒ°•ØI%£Ôµè‘õ‹¥¦ãj²ÍWÈq£Úô¦°V7A#·©ÕØîÙ ÕÁå`¡rð”xΉ”·kQjä[bÛ ûZƒD‚_oµÄqýœ› .#˜Òæd¢D¸Õn®™êžuº¾ILùñ¬»;,C¸çTvµL¶éEêì–câ…P¶6%#6-Àµd,=apg‘¯’®9Z°T÷ j.­;tò9 W)Õô\ÄLO=ZݘÜU…“×é“uƒQ«Yܺ/u4á=R˜éÈ=m]X´sN«W[näTª©h}`ÇÌ|]áÍãpO³Æ½íŽ—ÅÅñïLyO‹‰×©®'¦u3÷HgMwËŸ+ØmˆÛý,(lûãvÎAjí}1ÄÇ0)HŒ©q„ñÇiz]zëã¶…½-n¨/N®V•-"…±*dı@st˜¥0 °1”¦YÜ•.L ç¡@:•¬—+Úû]®Øöû ø>Åzè—@éUk®H…CÕØGÇö+ЩBÂ`¬ Í2ê4¬¦¨"8PAtŸ†4µ)qµ€Gâ7 V+” V·ZF~ÝZUºÑ¡zÝ6êöTSaZ·¸é-¢¿,É–±˜ÉÎ6…‘E\"ŽÞÛuÒ†,ÉÄÉTLº~ ó°«XoÈÕQŒ®oaÓfÅåDæ·X[赯 {CIÂoÇcº¥#ÙÔó×2µÅ}—¶“¿!qÓ_mìåÙÒ°ÉNÔ0%3î¨s=XS3oìæŸšoT–ÕÙgOªÊÙädK»uq>϶Ó|FfÜj}˜áçó9¦j}–VóÛΛì¾×O)ÍUê?fy™²Ê×êö_¶ïíèÈzÛ0ï§+aÕЀ5fdêK¸LϽnŠØÆH‰Ê^ƒYvÕ×K2Û=µúxžc˜ýÓ“e¥ €ž«%#Ìvÿ-ZÜâf½oJæGCГcØö:µªVrT£ÖTë]ºLš¨Ìca[ª–=Y r'·ÊóG:Ϯނe—R÷mݤ6neÞÀF1ôé&ka¨-*½j#ºâéN!~ %(¤€ùxÒk§Ÿ0E¨«[þÈëÒÖÿ²:ô•ú§à(ÑPª_19Ñâh”Ç*Ôà±ÓþLh¶ö>~PC¯«µfÅ×Õáý‹öÇ^å´?s(ímú–*÷»ö¥ÿKÒ§¯¶å‹ÑSëƒô©êô&Ϩ$iÕhÀ²ºŽ=Nä³Ó+¨b`F8Ån7¶¶íAt²ÒM5=]{Vz™œšõqÝU[i纪þK)©eÚF}/Ë•ÕyF¨ç×nÀÀÒ´5}û‡ìwýã_·ÌA(Ûò ÍâZ 5ä+–o £,‚ U¸±Üæà/Qæ9£.ðEºò|ê¹D–£n‚Æu”ñ_Éq™«ÿ=³ÍØý»S1#¯ùÐO©ö–E?vëÓZ«,>zUŽ6ermÍä'Åd2óDÝ §]kˆñÌ«Q>4_<üµ¯?Lü£\럣ÏEOÚü6E®E¶µy°ìvO&pœ}L¸9¬³;`ñTj¾áÈŠ…¶Õ^·N8·© $Ü…$¹ÅyÉz¦VÅjõÔÐ=ÍÄQé'UÌ›]l0•—ö/V]º§]¿u›rË{™—ÈÜÁS´ê]ÑE¨M¢Šs’™TmÏïdÜ;Ä`º5Wq·sÞNÜ0_¤,¥‰ÇÖÛ=•i÷Éͯ¶V“¬Ql§G´’uA3põX=+U6ø+ÛZlf2±èX3?FãæWUŸ:멞#:2ê=æxþɸh‰ø0—-Còý¯3ãlϨÝûÿ«wÚœ…Ф§£\ Á_ˆ€¥F“ÇE1»+ÿ,Iš¿:5 ÕŽÝté¯ûuÚúÈlŽCdà³ö¼Ç¹B5S1q¤#‘ˆ*ŠgÈxì­š1¼È-á+—Q˪}R˜æg'úëHbÝ‘\öÆOÏ èÐo\Çœ¢£C¼ðð¹#Ìã¢6¶jŽdtm׳‹z”ôš\±5Ó©^š{5”+Áîê±[JŽ™Òù|õ”}–wÎ1šÝcêsX ?ªáÇ«0àfgX€âö…¬±Ç-Ã×4u“×g¸[Süm8kYhü=E‘–2C-hãf{¹e¼¡±Iª1äL«ª|t °ëÄLõG=ÚñC¤9PÑ8é?º­ã;ŽÀ‘ñ­Ã`{XÉîÓƒœ4wƒ†Z§| ídB;áò–ޱ•ïÛ¸ºÀÇ„ÝRñ¸ž‡%Þ³ÿOJÉgˆŽg÷ŽwͪÚ·d ~du˜ÿ vŠ}O´Õnx²½Z®LÂä­Ï"¼P²ú1é%@W¤gÝãჅ±|ëpc\¢“®Éíâ*Ê–R=g]…Ì6t˜uj‹`»Zšâ?'zùŽÇ¨È8û×Þª¹Öþ¨M̓Eqz©†=Íjuõ-˜IO¦K¹ì9ÏíУnýB’©Rqëé®Ñ&î7Ý<3ÖÉêý;.Ìÿ?IDÄLÄM|ÑÀ¨®éÖÊ]”G]@6tJg¦¿PÚʶ­•…„À–RéÓ$L,ŽG EŽ ‘3÷ÃDz›K¹yʼn³f Œó3Ðhê×½Ê{¦º½I÷­¶Y­Ñ^1yH¼ÞŽÌ„\ÌX }ñ¯ dæ….¿S—°v¥!S–YÊ ªÕh¯’œè %‡Y‚HË5­>Yø½ÇOª13@ÄqÉGUƶäË÷&~ïÎ ,³rºW´;JÅíÂW›ªŠUòHü<|µnÌE•ó¹­!œ‰ûÕgQ¸z£´½ËCö‘f5²2”²ˆ²Êm‚ŸÂæžÊ¸›6! £š´F=‘ê­ä¶Þ:£^jîvX¦µAn‹>§Ó¦kRÝ&ûÕ«PåwO¡È>´T‡J}%yevÃë­Ñ1ø-ÁùúÚ‰ùj5œ£S'‰};ˆ[•‚Ââ}ÝØµM]ýÉJ˜X¯J’ÉA ˆáqÄTëŒ+öÅCÎßÄWÃÒšéŽJ´|—­²QãNâyˆ?ôϻ-§XÉç߱αëkàðÙ,g¨¹ŽSž;KnLÿ…„kê†ÞãÅ#ÎÂÌü>°t[3Ï‹9Ó6UOšò™׳½¹[ü›Pö: B$2%0ë‚a … ý5û ÑTªA U“#é*ñé“ÀÔª$5“gNÌ3»]rTñ4+Vì q`þssÝ«Äñ ’Ž&gPéþ]Z¿LØ;)eªW£*È¯Ž—ݴ쵘ûd'·SŽ®g°6“™Ä#ccZÃ<ËâFuZ8½ezÛ\u°KWÆ;Æ©:\ž¢Ž'-sÓ”Gk¯^ó)Ÿ5Ž4«½ØžGSz ¦$­®ÿS’øµ½‡«nÌëb¸W‡xIq#dyûÚ›"1ä¢5êǘN‚Ä™|#¦Â5µÝÞ±s‚êÞ±«IÕ& ”Cáƒ:ÜÆálÝäzªºY^ Š),‘zûÃAqÒÇ+eÙ¨>5‚'ÊçèçÆxS#žužX¢Õ®ˆã™Ì޶wŠL n‘’Ûw"c[#™­xtÞXÈ™JŠkÁi¡ãT>=Zˆ)èý{J:[r#åôd^Õ=ßWj»&»ÕêZüâáa)d¢ŽAW!@Xܨ\d*}LË8,¶;‰˜<ÊC¤Y]Ë`f„Œ¦*¸•Rú¬ Á~åß4ÆðÓQq£ÅB—Âø&nÊo­·R6žÖe2•HÕð@`êÊ‘ÉùpᥡvØ>ÏêÆ/ÞÚ ,Œ….xõiæ.ÕŸ•”Π¢w$f&0óÓoV‹ìÏÌk>ÍüÃΆ9×G?ó¨ çå­´= Öx:°Ù׳¸ƒµ}Zôãë$?bV³O ÓóãQ ùÔC;ó3Ó¶@Vd¾›•—i]¶uF½Òž©d>Ä>p”¤{kÙ¥EuDàM‡ªØšÕÞ¶‰4´ºÊhqÈûš·‰–¼xÊë0!&ê…?ObÕ‚éëý˺zûµ >oµK±+O…k~nÊnjõÐ\¢ úìŸ_eŽO',æukŽ‘Oí홉±VzxŒaq™¹Î²XÏY‘û#Jc3A”'¨ØÁÁ…• `ìDöŸêQ tÇí1=QbäLøÜ‚R¤H—?ª"KÏeÝSöœèwÇK[~, `‡ôêðuÕ´ëÙ¡ÿ{Ù_:J!üu㧈ùe˜š¡#&ÿw±êí6;½àà`£o8]ßà` ›ÍZÇ\rý J‘šzhY;¨†¼w47¤B›U7*ÓÍ;*ÑnK&“=-MÏ^źõ⥕ÎKsÔ¡uµœ‡Nsõc­wÐrAËžCð[ û}¦tëwî2ºkdih&>ì¾fzñ}5XŽJ¨Ç›Ž)óË§í°³ÅÄi3Ó—9ÑË%¬j£Îw00±qóζE÷d*.í‚å¶ø»¥ÿ‡/Ÿž>:nXfCªªÊ`ºc«ªgžt?9-‘¬AuU\é±Ì°uÉ3×Àƒ5ü§Áca[Õ2MÆøÇî´ªÛnߨËr›Æ¥ºd¨£`J¶á¤´ö¬Sy†Ê¿½½ßTÑøgÓªóër„œeÔ‹ª±Oºñþ?$^Œ5vŠš¤=Í‹èô*é^¶©¡IPw0xÛDæqTÛ˜´ÓôÍDXˆˆˆâ#ˆüvJˆ‰ùSÓdÛMRz'Ü(ä+t´¡]Ï´°À„b;G‘'îJ@=8߆ê£EõÅk=¹+c ¸.ŒÙbw^2Rn°‚@+umæ°€l Þ8^·w–ÔîÜ"áój^um☶S»6ü¯º}ÌMz5rÐhÜÖ¦ bûœÊ°•ØæÇóÖ°W÷V1fÐõL„î:ŒNcÓ±’QNˆ¡ OJëø¸¿ß9ÓÄÖ˜ªÈ‹›wiPøûw.{ñưÓò¬›E¬?#—Í1ŸAqã'ã™ ø\×­-(]GJúC‘Òc¦Œiž@g[Ò;;’ÏNóű SZß_Öü'í^îÃÿ zᆑ˜ê± dž‰æ,25³/Ó½6ý+»ŸNC« bugnE«çeïéRªÐ¦¹K-áèÚÉzö…ž¸ÛxÁXнzNÎÕÁX(“¤ØÖ{ ÍŽò]ܵ¶±V bBØB¶Þ%u¢·fÉ©›_ÚìC›“n¬í¬]‚"8»k âìTl;¶±xû©¸ˆ»-ÛôUR©ÖïÊ?p{oG¨Åã™é¤ˆÕ¶ ħž#~_¼¨¦'Ç´4Â÷øÕlP…$¸â&=zgç’³¿øÖÁâc¦9ÓTÎç€aùŒ¦D Æ­y”–±¼ŠŠ'Æ…<\OÈþ éˆÐWO‚ø¢hJ‘<‚;…n°Ù.¢ON½$ÈtüC¢‚ÌN·.Ö[%êÐÕNÈÉܳWG³²üxeM}QÍGù6‹jf¿T#Gµ3|~l9öcŠ¿Œ÷„]\ïk#ÕJ‡:“í/¯õçïEZݾyg³¦o«« ò®¯j1šãÊ2Jn2¤„ò1úqÏËV‡§x[=Ds¦ñÇùÜÖÇç«WÛ«peg$šÃnÊjïîéЯxøÜuËP{ÐÞqç¡vóõøÉÔÛÞÃ3Ãq­‰c6ÿYï§¼}©þ‹CFà+Këò½ÛƒífR0Lííd ÊçNÌ$ƒÚâeY•ÇëÇfÈ0ôÀF9T‘;¨§_ž7 Ò‡ª'YKh£\¬Ø™ÚfNîW$ÕVKr÷nòœ ÅtRÂRÅ‹}wìWà#¥c>t:LüZ”jt=yÿsÜ‘ê6´F½ÑGÕb˜‰{Yø=ÛÆ±9*C€¦|µOÓ(N¶­…{ÆÍRƒ¦%Èï€mÍ)¯,ñ‰¯èiðËÈL$&:¤Î´ôÙLêß‹Ò4½£AòÐxâ8Ñ}Ý}3:§f«ýã–ÅÑÊ×ô÷ë׊ÃcqH$ЯÙ^[k`r½¿_G½¥mÌ2«`¥¬®ÏÛ™BY^Çwej¥P¥â¢k„ŠUK¥eµp%l­•—ÆÌÛPfÏvüS¶ßþݨٻn&&1ÞOhmÓ92Çó#µ0ò¡¨Û8ÿE¨Ûx_èõõwý£oâ#ý&£Ž•}{£ý>§ŽŸôú÷/úm{ý.½Ç‹þ—^ãÅÿM¯rbÿ¦×¹1ŸÓj*Ôú½2º?û1ÿÄH !1"AQaq2#Rbrs‘¡±ÁÑ @BPá0Ââ3St‚¢ÒCd€’$Tc²ðÿÚ ?ÿ²á¼¯ì8Âà¢sSïM0`ä€QÀcš¯ìÞây˜\Šãr9mÜö²\AQ9îNÈÝš;Ïh`œa»YŸÃTe¢JûVµ…¥ŒÃWÒ-Í0RÖ<<ÖÁ€vèaU¢Ên~° !ÎÝ¿5KE«M²ý—?ºyû Öªs¿³¶`ò¤GDi†÷ƒœLã6ùØÿ–’ÚŽ“ºÕhµf³Y“Ÿ7ü£Î+N§¬©"*Ý‹zá<“ôšUYA®fC?%4w6pÿÇÄ–ø+÷;Šeæ´æN¯Õ‰OÐiÓ¥qÿš.“˚ѧ]€ñp뵊ÒâÊ—²5C¸]— ­Wn Gå&hÚ>ŒßeI.é•=y{*¸0Kò¸ Ó§DKÌÔlxCïßâ­)ìÔÄ h¶G,ATÚŸNK—"9¶áúÿÍ.Ï„}{:¢3¾>KÒþÉÛõñü©¦Ós°ø&åHi6“îL t™œ<Õé¥zoÙzoÙzoÙzéCþª?‘D™¯€õÂlCµø“ÒÕéÿ¥zé^ŸúSê?¥Ïöœúl¯ñÒ¿ÄÿJÿý*£f5™{“c|þ‡€‘Ì…M·lˆ˜dŽõ¥P.5+ÖÕ´@8æ´Š"©×U°bÖ˜‰ßŒ-e‚ú¶Ô8Mà zÞó±¤X÷—S«{©Úcm±„îEŦ‘¢ëÛG¬#YôÚÝY2b~ö¦§ÅˆöÁ•ËK¥}7—Œ8-$ iR™w%$¹õöX§lӊβîUfµòN à ŽGŠÍ>¡sÄ!:!1â™±æãÃÐÚ$Ð\X3@k€ì•¹™uCî gçÛvݼ>XÂv“M"æbröýЪYIómì´8<¢Q{ª[ùCC²ãëSI•EA/7¸ãq?Q©NÓå„ÊzÇ ñŒçá)Úâß0–ýêµæð›g5 cšFÓ‰eÙÌÏ©׊Z>ÉÄ“Ëè«5ŒàÌ÷¿ª©WTê…°ÖãþÅPeÓiŠûD@ösÅ5+Û«8ZFÎ|ѪêB“0{cóJu•&ÆØŸÆÍAnËLq“ì ž‘´×p.$Ÿ„§>FK ‚*ñ”Ù–Á™˜ƒÓz¤âK©ˆ6gŽï§ðݘS$Ø£1̦Ñ݇ËÔ…=SØÚ¸TdÌj¥W[N©4Øþ#蟃ª Ržs§lã9õOuÕ^ê’juÖäꆦ¯Y€œLpûÎ¥P{؆r§ÖºU@ên²Eý>J“Ë…XÚ£¢" Í ž’CiÛs ãU6í¶†Ãã—4Æí4ˆ,<fwl¿‘5h¹Àwü£T×»XÊR%±€r U@]ëꉸÞêæÄÓ³NÓ™âS¸¯9yárr"Y†GxLª{ÆÆÞw»j~]¥p»ø¬GwŽhek@Cl&äÔ2.lÂè†AͼkqDɆïâŽmŒE±‚§ÜÙîôYdœI$Œq2ŸßÙïuNï8 JâZ»ÆÜÑÏ ÐÈ5±‰µùÿ•yËÎ@øÊ%ú¬mê©4•Úy;‚.Ö\‰'q[Ô*çY¤Òêg{‡%¤°Ue¸¹àåUï‹¥Þ5£$ì|+ìÄ2™õ^’Ñî[ü3Ìûfu…u¨ñk8)ÿÜ£¸Vä¿È~Kˤ¹ÐUÆ×šôÏUõvÃË¢Û¾½®xl}ƒE®ðvxJ£M•ÐLíÁU¤ u­ÇòïÜáÂSD`À,"Gv2„0Ü‘m¤Ø2à†~,@„˜LmöšÅÁÑ™8-.àS-Ngš¯G] €æ¶c"v ›PÒ5D@tN#09öT¸RÒ‹|­Ï æUÖÍÛóL 8Ý‘9*m½æì‚«Ü7gŒ|U:¦‘¿ #N}®§Q£ÚÞÖ¹}™Áƒû¶ÆAU¢*Ô=wvhš¼ªm—ÿ(;&3p[©œ½|PÊw~ŠÖìS¼PÓ5Wd jDÀÜ'ÜQ°h‡4ìÖ°ÌñÍ;QP¹­vÃâ ôz~†^Ê6õ¶Ý<†*³­%—ìNÐå‡5NàZC¤6g˜L©QºÝ[í©kZCÌ9ÓîNh%‡6òû®N;@Sá¢Ss6àé{¡S¥ª7ÐkŒN§ò»tª55Œ˜Öe—æ[ÉU÷\q2Môv€Øœ ¿0‚§ T, -=s*ƒh7¸6µDüe2™kMƒ=n²~J­Òqm8ç‡O¹>«ª.eÑ0fw "NþË_ü½ƒ4×l0îæV“Y”G¬¦Ò ö)Á^Ú-õ*d?I#Žæ¦àz PÞW‡´¦EÎÅäz—ÐÕåÖ#à‡ÎEÀ+»Ç4wÞUƱºL\‹I¬1Ä7ìr.ÑÚeyZÑyZ3Âo%NÙ4‰Âg9éøÇˆs\0!LÀãÇð–¿ù{-7>Çi«º5”1Z^–ýK|wdcq'Æ*àšã2poT{·ƒP2’{qð£™â¦'5®°ƒ-c[»U4lI²à`¯Z©‘ÅSóQ§›”ÐÃûOÔmò vŒxtì…¡h3ër‚´}Ξ.Œ—ü> xÕ.rɽ³qÄïG¼èÅrj³"¥s]P*Ôê ÆS[9aÑ0M&R¢LÏ5ÅÎq4ú8•§ÈrFzÑû>wö½§.jÖš„aÞ;„!MÕ_`@ta†iÍšv¿<@îóO­¦×Hs¤A»pÇztËêõáÉ9á©„—FhƒmII®-¦âp8ÅÉ£iÍ|àIÂ7Î Ž/~²6f$ ùJª{®ådzÁ9šÆœ9ð)ÕÊn¾I´ïÀ*»æøÎ~ÅXê€5–—N1ŒÂÒbÐãa8Ä¡“°I>âœøÂ¦È31øÂ6P˲µ´[ê Åiþ r™È·hòãëì€a÷-o½*®ôáâˆ`G‹sNÎ]‡uËIÕßs§+¾½ Ü Áª¦ §Š´‹Žó'ÕÉA&9€7'‚×ÜI.9ö*}Ã&[ëA÷ÿšfQº×DÁvf ‹\ȸŮÌtTÚÖ€ ˆÆ"Ürƒ(ˆï€àsŽX™8)™vÈáê@|FdŸš¥»I½ e#Hy‡0‡æs‹ŽQ¿ñ–¿ù{C/t¥i5*¬sM—‚&ͤ÷X8uN2yr[Õ º¯ëR±\Óîûð®sq\d§fVìr^räBóB¦àÚŒüÌ8çøfS%…æ;¥SÒ›£œZÖ—8´`æá§TlT˜««pËŠy¢ZuÒ,¨â$ðˆGEÖ5‚¦Ñv¶Ïbªí[œjƒµ$aìÞ©H–ÔÆàÛ±LuKˆÒv XM®ŒNÖJ£C€9‰ü¯þ^×4Àx˜t`VŠK*¾â æªí;Â8Ã9…LcÌîì4ì^þ%jœ?ÔU¬?ÀÏÁÄ™˜*Žú®Ußõ\´—/Oû.niù-+W}àíÜ<ïÃÁM2 zòø¢H,r -s ˜†Á³ÑT¹àC½¹«õž\K¸ãøHòö´áx"«ZxdUs°} ‡5Í0ZFð‰ÆµûgŽŠC+öIâS€ó¸*@ŠaÎÙU\\ðyæ™›Üù,pM ¿;L‚V‘Rvreõõþ·ê™ÛÕZΟº¥ï( c’~Ñû­PN°û‘§s®dÜe8Ã[öc$ðZü˜0Ôì&7§²H™„KKGd¢;1É:“‡¹?Gn>µÏ²¦Í*c7ü"v[Éo3…¹:xþš#«1Åý÷ц+FÒFŽF“ɶ"|ä^Ñá@ eŽÈî)î¤tm „€ìù/³ë¤]v²À#ª¬m¹ât‘òTÁÛltL*eúÚRÙkXs¦cóö‡4ò?ƒm:„5QaÙBº}hâîj–уÞz¢îCpè­?êa2ÍSÒ"8’2NÒñŒ†x ^µA„Çc {e‚ ív>+•T2ЉòZíšlÜÖ£‘¸#˜S,¾áœÝømY§´?)Ì&¼<7Êe4ÈÃʻ㊵¬ŽM2=‰”Í6ˆÉ¤Ì{U.ጹª ÝQ¹â"xdµ†¤¼o=7a’ƒ4ê rÔ+»?Ì™—2®ÈrTq'ÇznÉö©xÿR,B‘.s² û€Ü9õ*•Zp8b±>äi#J}ê{!(£¦Zö;".@Çv!n„LìÖpù ?.åËI*µ·kj]?_¹Õu]WUÕu]WUÕu]W_М\ 0V $Ì&·ÍVw‚Ìq(aÔ¦ºÚwfã½Êç¬BÞó¼^ƒz8½ÄfPs½9 ™Èà­"ÖäIØör¸¼!›éT˜õ,ä¥7J÷„íå{–åjM‚}sÛ'ÑM¶½²Á̤i†SVÑžÑ$ÉVkM¬Êm.îPÆ0DS,cY­s˘^`4NbŒÇƒ8€ÍdåâªÔµÑÚÎ9Ç¢câ,½à¸;ÝiÅ5Žyy¢àÈkn;Qn0›Q´é—ÐuÕ%—÷bDKHuu·á†@D€);aœ8¯°0h®.q3#Šª\-{`á#åú ßÅǽT8OªÒÊq›Z°Å1¢ÑÁ^~ 䀻ißׂ¬ Ç6¯f¬êM)¥ÁZA=o@CD|PjÍ=¹@i€ X1^‚^ˆ¦ÙvÌDÏh;“Ý.m*$O´­¨«E­˜1ãš¹Ž}6¸Šos;Žsx„Ël«N©l6Ì0qB* 4‘ ¦e¿¿©úrÓiÌtMc,¨rkKG\P/6½äÍì°û•R G¾±.t6Ð2àM`Їd–†º'ˆz!]µÆ&.km®\qTL²ú„îpáxªns†µÅÖÌá<1ýí$»žÊrÔú+ˆ>ÄXÕ«l&½Þ¬"ºåˆìû88££µ_½ŠBâåÁ« a ™ã‚Ô†ð}«~kÒÇ[û.UW*TÕÙµ9]õýGZï‚Ès(™w2˜ÿý(í]Äòܵ`ÂÔ4û—Ú'ÚÙ(èŸU¨‡¸¯)Ї÷4Ì{Jvý&¾>À·†R/w½N6€À¿4\C”rC i¼ª ÊÑ—=z¼ÂlÕ}ŸüÓ>ïÔuŽø+ÃωU1ê´zm¦)³¸Þª Bˆ YLb€‚nᛪ6À÷k<†Òë üÑó[êW7{àÑÅÙùþ¢j8ÀBmfz„«+KR¥ýçz‘¡šÕ‰ÇM7LKÜw*gÀ¸­”:2æPÂ?±óýG\G¹h®¢ÍÏvÿb4ÝñT¨5”ÚÑd!MŸý‘¤›´IÈùG䈚•7²wžeûPyûÓüŸê-%ß­3ì^{УFõöšçÕj°#ÎO¦¼eWiî#»å\q—½Ù¸ñAá ‡ïGðv>¨ð¸‚s®#X㬪Sg…x‰èS4kcÞ©6Öxj‚¨¡»_Pÿ2h kþ©í /Ö¿!ëO2çõ$ÿ©zjŸîCÿš§û‘2|3þ«Ó?ê½+þ«Ò¿ê½#¾«Ò;ꇖïªóÝõ^{¾«Ò;ê½#¾«Ò;ê½#¾«ÏwÕyîú§g‰?÷1ÿÄ+!1AQaq‘¡@±ÁPðñ0Ñá €ÿÚ?ÿñrÒµRˆÐ®jߎxÄzC^AÌË=IZÜóƒ”Bª89~19BƒFÑCç(Ã'ÐÎø"l¬¯ŒYÔx<ñ›b©¼¨*’=yã8z@‘úŸ©4¤Á ¿\APmãï‰IP›ãösÿV[šßg_Šb~0»öÂ'ß5ý®ŒçbP‡œL²%+lç6658®õ‚€…à|Föúý3º˜ÈªsŽE–em±Ê 4n-TŠÂˆv`ev5±U±2`§mZûÇ=iÀ“J_YPü'a.Ý9FÁÒ9íÿ€ÅZÉ ©å£XâM54G„ü ´ (ÖªÄÖðyü¢N])Ö©°.ñº)NÏ¿:RÎnD@^wƒ¡8’pE¾ "´Ò‰½‡M0GÁMô'õoÈ…`>4“ _€Áà”Hs/x„’<š4¶ðâJ°žeA`qÖFïK4è¼6Xâã*îñM™)Òíç tV4C´ îàqL:]@ÿË¥D‹ûq ì¼ßã‰ÇŒÜê£WåœòÒ'Ù£òÁÜ,M¥ºãï#í/S|aâ2Þßœƒd bœãÆËã«¡žŸ!fN-»¯ªÇZ¹(ûŽ.²•]»‚JÎ pœºk$F•×ÎúÍ(¯Ng¼…ç3:o‹óÆ:…Îø^XÿÏU¾ØÔñ ¢ c‡‰ `0ŒL-Ü å6á/8\/³"e覠Wæ  %åär`/Ô¥;U0WÌuÓHyaÁåo-jqRœÇÿLkLÖ ³ŸqäÉ¢:ÇŽ+͸¦±ªI³°*Ëï= ¨«W5è ©‚>íakfnx1\Áª»78§¡†m`£ãFÊÞ¢¢;|ä ¤§æ9#-êbÚ¡ÒT[WjGP4o—ã.ý”À+*¬‡ýàˆäTù^®ò„à5¸ú:áãç ʼßN*k5ýGLDIXSa‚›‹&kz(Ž-5T²n[„ëç¿4V†·°#“Z4€Ü“—¾0jH ªAå0ß“btŠ`“Q;à¯^`¬’Î\šß޳hù$¡ÒúbðÁ1ÙÊ&Hí¼V›;ÉÅŽš»ÛXRè–jêÉÎ6àMtÚUΧ2ÌæÁ‡aÒhÎO$ÂySg¤ÖXÒcg:Þ¤L` +ÒµƒR1B¢MèbÈÕ*waI‡ãGH°s0‚må-ÌÝš6ëXk½Ûï÷jÅ!ˆñu¡ÈµÆÈ®ã;A‰‘ùhžëdׯ-%)iöЙÙñqhš HÍ\Ýo/”×”õ€d"ƒ­^|`ÅÀ"Œ²Z*x†2»œ\h÷ƒØš 0(´–Û¼?ù³‰¡ëgñ‚°­G& «á‡K[LÔï(¸îeE´ŠZJмùÜ"F“CÔu„ºz-?&0F8t¸ö1ti `æ´©Çxóp:ÐKÍĘPµàÆéŸ@b¦4±$!ÓßF«Çp^Ìݣŭ“ÖÆò†5¼àbþë ˜„R7;ô~øÍ½ñÿf[< ç!‚TiÁÝÄѵ<93!µÑ>ïêÌÀˆ”L-ðóï<$Ž Ïœu1¢‰©¨bªžmh Ö÷„ÆSäÈU̼`À CÉŠ”„@N4æ´ÀP`ã|ëIi¢ù'~òàæ…U­8çx½<#×Äâb¡aàþƾ™«ŽL‹µ[æWŒÐ97NßFþ¸ P!ååÁ¶$ïÎñ¹Hˆp¯s#R ½ùʵ\Éú˜‹Ýpç$ž9´‰Ëc*.ž2ÔÚ×­ðã UâBªz²d~NÏg öÊBkNï¼[—ØÙÔ?ä’íß×~tŠ)þó«—x¯ňYféœÂî`ã—ïŸ(å8šøÖ€ ú¸ÎÜ)=ÅÇÉZEÝU`rÓ›R1<,DÅêåapÏÍŒtÛâY.±@«1,ø=j˜ÝLf „ã×O¶Ï=aJ” ¬gÃ`1Ø?}|ëœ<Z{ŸFñÞ,Yùtý1‚%¿éÐڿÊ·ñ×øZ…_óŠ9—®™¹Z¸D™ w¸€×Gìb¡Çû2«ÉÝ\õ.­ uóç 0ÞéŽÞ>øÆP'Àà1Éš˜•šÍiÁ›QAŸ1Ø—ÓoöÄ?&É…SX:„ :ó†Ê™üÏé—d‘ ®; ´·4Ÿ—8Èl4{( 1óÝ鿌 4µð#±2Ó.{Æ?‰ÌVŸ'·Ö¤4õ'¬«}a^n!ε!ŠºŽ°_È0ƒ =æìƒˆó‰•87>Ì[ÐçyB¢Œ~54í2|7!ã—A=æÂ æ.'˜°A©‡¤p݃ÒkîÍ¡:þ#5âu+ùÆý&B-O‡õ!ã!ã!àÖ(Ø#‘3d(ÕÊ]¯·ô“?çr}ºÖIÚý©Û׌ËÈKC½âësMB¯¡Œ${)aÎ!rûÏ#ô8˪»JÊ®Ü)©%ª^Wñšä­®ü‡.iœ:1 †Œ FÐÓ7¼¸dk69\P~™ÿ™ÅfÍÆNê7ô0+àü\—,ñ££Î@5áàÅõ¬Á­"â¤Ý?ÏxÄmcýAóp¢¨õŸÜBßçÊý¢‹§¦ ã¬7G’­¹zúËD1龆X×4}§£XÅhú#¿®$­°ùq¢PI¦Í»w«Æ Z<\ ¦ó`( z5‹'Tø¹¿ŠÉ2HÆr òjc)6'Û)gµ)Æ>¾iöï낌/85[‰èö¤o#æ1íÚ¨o•x0â½pu€ì’­o”«Nš_ê™M íE‡ ôÍ…«hA jz®Q^ÍÄlz5Î<#EØ%ºc½àGc2TƒR©BÝDa²Æ)t°áÀL´±×FîÁõpbÉBôŽ ³a‚¬M¢i%³›=â9– ¢!:¼cÙë‚StP¦¤«„D¥Ìñ¡m,žÝRêäÔÐŒ8 ‹th†ÖMÌ”lH·"Œ:Ñ•Â: ) ëÇÎA¥¡n ´x jÔGЗÛÎI¢7°Ô ›s&›úǸ{ËnY‚A® Ž3ÜÿÏ-zÜeQ4½œÚúÃæ{/k ÏŒ8‚ý ¯»‚!ÅìI¨¥ ÊbFPñÿx°EXEUV¾=⢕{ñ‰Y$+åÀ鈿Œ°¿”n ?JøÎ$‰õïOÁ?L9¡„@xr-ý ‚7&ß9dQ†ðåùÿVÞZ¬¤ DbŸ ’6ð´ì·:(Èw%ôÀSdwÍ´ ]Âlà$ðGb׆ý!‘Á&¶Žóƒ´4ª¯"»[ºàÑf¾ûÜKopœ|g4œH82Á;†8ˆ é²Ù• Ibo•û¸¯&h/`²„1˜-ÚáP] s1еœT+(—,ëþ@€EZüã_©¢¤ ÓZç 쎖 íäfî?SÁ%KAúÆgýù½´b¦>U&d( ÝÈP?ªra«øÇŒH©|+ôþú1àRÈ»ß×2’QÎä2£ö‡ÊGöÊLH>¸Y…AûdIµÎ;„3Mg+–-YÓóŠÁÇzÐõŠIM"—㱫-\Üß_‘¬WX:6ý±x kGó“=!ûãiŽ$«×é†Oâ Ù: 9Ã@Ia oœ¸®fÎoYë§u=`‘[6Ûø3zlÔõ…¹ 隀ÓÎ ž„ÍñŽã}åOŒø¥˜¸÷…ŽïÄDy¦Ý\<èõ1|?ÆrãñåýÖo¥ºÃ©[iaÒé»_¦$xL5la¢ ßÎmÊÁòùÞ NŠIDNaKWÖ‡³¼‡Ü$Ÿ hßYhB Äœ`Ö¹Á×ZIo[€kÇé;ù‹lÔÂiâÁöN'œ:r¬V;n'n{ÀæXp7ÉJ኉§K·"CÒòäœàóVoýaq6öøS”yJØ àÄuB‘ŸLB41QáÀ/ÜÇCšˆ`*ÀßÜCG/MÖ‘‡Úoé)N‚u±šw²`–´òÃ"H¤H<“ñýŇ<3PýH6hEŽ>-Ít Ö×»Œö3=½d¤I>îµdn”ï(ˆàü°«4gL>dúT‹H1Ö¼Ö-,žñ@6Ó+¡¨Ž-È{:õˆ ÑÈFù½"|…›=¬Ròbœ´ŒÑçYšåg.Pý'ÆMwwäìPþ¤G¤¼áY¡JÌ +f ò'yÍ"‹rRíÉà ÜbÐT4´›ÎkÛŒäEÒ‘òæòŸTc ‰ н$"‹ @6!)­ã>*dÏÆDç-“ Fºv5mfxÀM²þqÆÅ寃I‘ ¿ ´Pƒìa󆂞|>†)‡³ˆÒ4÷³Ó‰ywtªõŠP ‰÷ħû0 0*f¨ªàä}á=Šþ0oc„ûf“MÙVÆ£ŽoÂåTÙo†EôßñŽ–Ú=TÅÑuÙàÀáL™f}ã3dÛÖZeˆ;¼c¸)©äÿßõ´@Ú„8L %“y2h %çxḞ$9VW{wÎñ!LÒ€€@;wËÞ1ë@áÜô°¬ ·£E0|zÍGTÈP‘hÞø3ˆù¯ÑÇÓñ— öí{_Ù¨ `¯LNSBÊÎ_FL¾ÁŠ¿+-¡®Ï‘}`MÇ/¿¼™¹¾¯øÖBHN"Ìs‘¿Ê15ìZմǹ´ºGœ/fhç&«•!¯3#(MK~ $ ðDÂ- n®P P}09 !²g4'ƒ5<ÿv¨ú³~ÕÈ*O¾A Ï/®F˜é w†ýˆz;zËóË<ÁßΊk{\p¹º}>?LbÛúQÀî¼õžAõۡ뀋ӀñЦp4+ó¼P¹¼¼+(WG|dqQSuÂ9÷–ëùá]¯N“Ž 0v‹Cs~·ƒP8/* ®hpI(Qû?£t~Ì%ÖS 软yFÅ˃ÆÍ[R†4™…oDw]`BV™ƒèaI ÀòE?g,A‰ëi¹³»øÀSÔhA¬€:X˜Ù‰ÂÎt«“ÞR@]z¼[.ÛëH`âøÔæf£ÇÏYÆšYã’}ðµ±ÙÉÕðã|”"{“Œ2èmÆôºã¬ pñy^Wéÿ0£Ž8c#¤+G#÷ý37E´³WÓ¶"(ÈíDøÀÖU<«þ[Ä- ‡˜>©SçoHEG×§ŒŒ…MT*-ík]áSLµ‹k…MàŠ½¨ŒÝÂf€~ÃFD]ßYL6Ýü¸=‰³ï{ͯ¡C¶ýÜy*:?cá =a2øïô O1ˆf6¿Gâø éŸ x2AʺiüäFè÷e|Ìu,|a‡‘Rli“*||â!¦·½˜Žq»çy] ÇÎI>þÑÒcÁ@Ê q€ôƒ[^ƒIÅ·‚÷s\¦ìOïŽ×dÝ\ñÊý?¬kŸéþ‘Ÿéþ‘Ÿéþ‘Ÿéþ‘Ÿéþ‘Ÿé™þ‘Œ£G1¿ØX”ä󵱄撚Žn;ƒkò_Y4Šíz .<~U.mkÐx8œåB<›1™V)o³õÓ;` ;ߎƒÖ WŽ&»ÃŠp"N<Ä1·‹–[ËObóœH—6C¦6â¡Xí8Î Ü\vÆ ¡|ùÍiÐ|R–±âTÃTFÚøÃ`ØÄGc·„Ã¥H;ç8ãëÀð~?«  !EÈöäæ’/ïøÄpq_žL°ïÔD j¥Ä.V¡!Ê"¤›ÖNŒ h%¨öèÞ±C ßEh,‚I ªhh_3D-ƒ Qá„Qµ½JÖýÎdl|¸Sw^‘È{qàs°šyŸLQc£¯÷›.Ÿ‘€U$T“O.0õbUدkWÆ(C þãßôÉ€òR~p$—òÌž ³íƒ‚‚Ç£>IPãç Hâ«ÎÍ=ë!-IWáÆIÔ¿Ó#æhyó„Cµø9XÝ^_ýâ¥ü`ЖïG¬AjªKƒÏ°×a?ÃŒRDðÚÈ4pòñÇî"QAŸ·  xà3ÀÞ¿ñ—Œ?Œ4îéçyÏ#þ°½³–¸Úðïgiø2‘è¯Æ¬LL4¼ë Ã5è¾2eFÓiç{üc&× '…àÅ@ŸÁ‡LÜ}ZsÄ1ëÛM¿ËkÀý°()£î¨ô©nhí…ßß-:ÉC÷È¡ï9~ÎSõiõÅ &Eój·{õþâT‰{þ)*”³øLY?¼½²£R>‡Vä±xSXù;Ûà寄ŽëõÆ„rþ ödžDø@yqÑŸæ#ã[íq>Ê;çÞü± i¿Êhõ´ O¦3Jß7øë\fý”Êqî‘ß.+Æ ó—8¨é0÷'¬4mÇkæ÷`}•ë®åOòãŠXàÛÎN#Ÿ%ä?–)Ks\·¼X¼ 5¬p$­ïøS†—´]âJ¯™‚7/r¾&6&´üáò Š¿ãéFÚ§•{_9Îhüã¼ã5ç¬+G8ö˜‡i <®¹0üœ»sAŠZgv\ÔËq¢½¤O"œºS3§…úaŽÁs°UœIÙ%˜o›Cë:(-žØfa¦aË žUð;Êt¤ƒ¡õ0©xŠþSþL °_ç8gÿF1/tÎùÌ;Í\V2&ƺ0‚‹øÇ¸‡Í_£\wÕrk8'`ÒGu4@’âY?%½¸BH–âY@àÿ7u ØÔàüÒ¿4ãÝcòc,4}=S^”ÒBÈwM½÷®DW6÷ïò¢Ñø-&ž5‘%†HˆÖ“©ÑôÓ “‘±R~¯´ÔlïÌ’IBOÊOeŒa@®"¸ŠâµÁkˆ/ä}¸mTæ§8Ž&àiq7 ¡:>ØÁpáä†öxUU$ºšMúÇzú•Î÷C%rÁ;¦ü(üQøÅ®ÔgHWme–†øÈ°·S]¶ÂÅ›½‘€9k¹-!Gk•¸–>n—º—"c`•È·sîón<}¶üMoµßUÇ€™Â×TÊÐAÌtEû\\Mú”ë+­A{+ùùŠc<ÑgÔî%ò–ë¨ãµˆš=n$K¼ŽöÝg‹þÇè·âh|×ntÍý‘p×s˜ãêeÅò®‚%22 ¼^’­DH¨’;¬r …›„ö8·<¤l>þqVð[Ú¬vþÔ3D‘ñsshF¨ÜÙE$ö!ηÛÙÐ#T"Š…¬¬Î°”K4µBy9aÚº#C$E^[Cê¤,¶ðî±àz%Õ |˜Ÿ`Ï+•k³ÄáÔׯ—RLÊ7x¢|=tzªe@(Ç«sN¬Aåf\´†v xòi] ¡˜‘bXÀ¼½¡c1@á±×*6N:ä ÐÇÜAÑö[´`Ñ£Yø¼ÁªÄa£¼—“NˆÖS¥ÁLªŠÌF}cšxyV [q«ò‘H@~02‰dµÆÜîGǬKn¢/hK |µê&¡w8^#Ú$üxd®¼¨ÂŒ„&Rª8­ãFª ž« ‚<’µg´·FŒ¥ŸˆÆh'~’sÚ˜%ÕZÛÊ¥ƒÚÇå«álxVÖÔjžá ^ruqeŠ2¼A«ˆÝF ·Ð¶ÀùrùÓdopr?;˜rý<çŠ'Sâ`Ùªq2Iˆ43ø–:Oè$‡ö{¬£‰%‰¤ËB¯‰;EA •Í_ä;á‹'<³±2KXÆû˜Ußuî¿Ä Þë¥ÿŠ‹öswRÃ2îè±È™| V/ºÝjâe¶N q³6ÍçÉ©‡zÇlHM]l®ˆ~ÔϳA»WJìËo¿ú=´.fh€Ð0DNɵ€–ÇÚ7ÉÄØ•ÅX¡Úœm™ùúE…}"¾‘aQC(?óŸÿÄ4!1AQÑ0aq‘¡±Á ð2@R’á"`b‚ñ²ÿÚ ?ýÄX\­n¼MZ6Öú›&­‰ê-þnV¢úê§xºµnŽ2ÜtyˆVÆ’8¨eq1ƒ¡Pû”týûß z *žÒQôD/–Æn/È¢mÓÕ«O$(˜7(ÌËïQ;z«…| >âQÓÀb 9bµ=hT.")š óP½…TÉ@x½Ð4¤T ãÙ7Ò×·$Ókñ÷îmã ‘¬Ž„(˜CA‚пܢ®¡¾ëïÅGÓ%! .`á~JÌ9&½ ²ˆ{TÉ»Ne¦¯…sA¿H<Èî… âu®ù«¼¥Yy‰8°APÌÐ?à Iw _ ÇQoøa©Ãóþ࿉æðDõEÔø%`-þ«ûNjÎ!¼æŸÈžf¹èàràîÃeÍYOnÖì¬Ë†¾¸šòËMS.2âh¦K>¶SrúrWÂ{(gæ8 °îP¼øP|ì˜y¸ù@OYF°õÄ"Óìaª÷ †¢CU» û§_ÎŒU¯ÅCÓ5LÔ;3Ó}%|0üY £‚ CS‰V®žº(Æ;”/xh¸ßÇR‚'•ølOå×Zèâ-µDx•âsQ–Û†”Î.^ã’ ®³ŠÃ5õwFáÝEøXDKj„¾ÅaEüê%Éœ†<õoùƒ)$è‘3KÌ»,;xÚ@/À¼É’´‰Tô Ì/òœÝõ?•àrV¼ŽJבÉ„ÐüÐq E†%å>{”Øž‹ÑQÔ¾Õ;O¯_ý™ n©ärç›,{,E_sWÃßAü¿èüÌ í [RŽ À+(xcÚ2V0ê2VPý¡XAöŒ•„hÉXAöŒ”".·ÿÄ/!0#1@A23B"%4`$aÿÚÿb•™P²ø«ŠãÚ°˜ö¦T ÉÔèÉrÂoԣƥ”önÁZW‰á³ÛèœgØŠa¸ý›;òªå òS…T:€@e*BTžдý7òàJìXÑ€bR…†ðу/׎$²Ç$Mî›ã5ô¯ÛÁIZ)I/G¾­J» U−žÏå•Î\žÜ 2çÊI f5r¬ë` ‹wVUé"}V=ÓvSÊÉù^Y€Ï‹œ–êʤ;ΠçEׯKŒñIØÏj$hÞ)£—eÜ 6˜NP£ƒõåbÊrÔ%¤=TTˈ‘¨ Ç_Rç Þlà';ìs±È¿@ôæ´¸Vø¤‘ËW$ nZº±R#cÙ^ôõ”¬sS†vfxêÅ%~_`áãk¬’<YÄÓHÒ5 hÛBÎÞõ¤b-ï//jrŒàöÕµ†3õÎLýN¿Ô“D>ˆÁw«,ZRNq)˵§{¿lšÖ-ä)<Ê EîõÃ# ÖLìo'æ=äf8©§' ô…«òjÞñŸŒ¹7“|"â#ÆÞÏtc££u“îôäWÁ1‡nÅŠëVËPr?Í’£ˆi[C‘?f·šÖrŸå7ÜÒ„3¿Õ“YÀ¾ŸY9ëiò —îñy.‚S–´@Èÿ𮾠ygç9oòßîDÒ*ô ntòTžXÎбc²' faôñsŒñ–0ÛœýE™†xËâìg‹ŸÙÏfÿ\ÿÄ3 !1AQa‘±0q¡ÁÑð@á 2R"BP`ñbÿÚ ?þÄBÑQ]FKFûŸñ{-’Ñ’H2¼?œVˆÕEôáuŒ´o­e“â6‘ú\°“ÙLŪ)ÃL¬¸¨ÇyçŸèP åïM‰|”,÷¨y¡Õ'ujÔ9 Ó× ªuMßæ·W+ïÛÆ@6(\•¨ƒpP³ý%ÊÞp)N`2“‚²Y|¦À£[ÖŽ †Þ?K–&})Q1„±§².ÒQ ³i_BŒb;¨Æ#}ºíR$r¡ ÇÊ þÐ ¢Î©Çó»wtî«<ÿ+× Àæ …ÌT›T4—â¡¢óÞª¬PKЇ™×j¸*Ÿ1Ôîøî£<–jÂp(š P‘æå +*°žÒШ$çð¨Õ ƒ1éð¬ÕÿCÌޣŠʯvÌÚ¾øª»UDuV †¢ÄDVÏË|‚!S³¤GlZ^KKËsõZAé/U 9÷Ú†¯¶¯*¨‡Tj«FA‡ðMMÕZÝØŒÐõB®U…7Õä¶f‡ªÅ}”yö½G1¿¶ÎÍvô@z¥é¶‚ü&‹—꼚¿=^MR#‡Ê!·*vp‡Ü¡ÀvPÝm;Z!ªòJ¦\. ÞËñ*ҨϚ´¢ˆGž¸šõûˆ›Júj÷¡K> Þºà%Ãb‚‰¿áDüSb€ä¡Aº”e§ÁØpX3VœÕ(ÈÔ¡o®ì‡¹¢Ü¶ ür*Ó™T+zl.È{˜‹YRŒŽ%DGf¢8¨Î*3‰ZC‰QœJŒâTg£8•Ä¢çúïÿÙplugins/jetpack/images/screenshots/shortcodes.jpg0000644000312500031250000007022212651056012022743 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄÿÚý–"ã@,Õߥ[Ë{_„OÝ­±˜ù5–éž"R'c·O7¸È¿I¼þèú6“Ï¿\¾×Rê˜ <‰5t˜ñ†“XšºLxÃI¬: —ÆÔÝKž·ƒæ±%„lEÉa½DGYqû¬ø²²ãöø{Å÷çšbnuã,uZnuã,uYc•ó‡z½âRçZÁãCèû“Ñ÷&£î}˜àdÆ ˜Á“wK2cL`‘ÖÁð¾Öµþ=€1e1üÊ6ËÏy­³ ÌWl|j-néUÛGŽ ú+'ºß½ú5_=gô„>Ç!÷óp‡ØŠ…é1všÆ®9®æŸ|†Ç!W¸s…µ³›ô+î:Ÿâ¿Úvm Úo+è—|ðSœ†1jéV(ÎIÉÿ[íT¿þØ’÷¹@žæFÇŸ™e¯lÚíÙâ>LqnÛ©l¬iø•¡Þ9ÅC¢T¾ñk—\ç‘6»®Ãׯ0sxô¥ô8õ£d‡–äÑË?E‡–çÚ±–[âÃëožTop6»n?%i•´æ¡ø©u™Ku_O¦ §>µöÞL~>üӔީ-»ñ2´Íd¥¦'o‹›Ý™‡b+Ö×ÈúîÆü¾_•­ù¬®UOŸëÞíõ}/ž€}2ã9<‡œžCãïÜ™ô¾‡ß?C÷ Vu€-ñr€¹@\ .Q¯°`xöóQ(á}_$Üž· í!Õ·"¯<.çCÕêmÎUƒ¦éEÙ±×e$rGúƒÛ“Öä¡Ä:¶äUæ½9¿‚ï̺k<ê1Ô‹r³Û½M"å‹SÞ?Ãí~R³÷ôo ßÌ‚½z÷#V§Çúɳ+ƒôW÷Æðû^•¬ýýÅo”9ŠD´î—ªÎ rå¥|çR“…nä”êrŽE%ê±¹¡“v;$‹n?·sŸ±Ú”‹=êJïÃì–þW÷®óÈ^‰ê±¹¡“v?Ü‹n>õW‰–ˆ³çÙ‹ºóÈ]ø^¦¥¯×B¥àóÔbåïçDú«j<è_@\ .Q¯°yùìçÐkìEÊ8_VÉK÷·;Tè+½j§læ2vËnjmЇÔ(ù¾oø”ŽÛµR·4öá¾oÆÕe´bwô%!g ú'$¶Çn÷0¹G"ÔÉLë”zMâ‡ú\TÝÚwO«ôºÝ}}¨ÌrT; ·ŽÕÆ.ôqÊçËRš´óÞ…½Ç{o.ëÔxºU·¶€EÊ9ÿšwVªÀ`ÝÒ±ISâ)3Výøë×µüûò©-¹p¡ÉFîO}ްUc¥b&!ä4#mr}—BÎuP¹G;è>Às|9çC‹”EÊ"år€¹@\ .PÿÄÿÚ”]ewˆ5,XMf€ÎÒÅÍ–SXÔg¦s²MÔ¹¶&{ñÞ7ž¼æ¤¥ˆ¶ç=25ÿÄÿÚq­gŸ@ @5BË\è.n±njÅ€sf³@\ê, yï=1yîãh,©X 4?ÿÄ9$134!#5E"7@C`%0&6ADP 'ÿÚÿ 2w5ø†>f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f{ ýGÌçËyf {pöp1p1p1p1p-1øË2ì³½¸{8¸¸¸¸™&2Ì»,Á/nÎ....¨ßÏÆæY2ìCÀÅÀÅÀÅÀÅÀŇ;©˜äne“.Ä< \ \ \ \ Xsº™ŽFæYìCÀÅÀÅÀÅÀÅÀŇ;©˜äYsº˜Ž>....'fXòÜM—;©ˆãàbàbàbàbàbveÍÄÙs¹â8ø¸¸¸¸™cËq2‘ü0¸¸¸¸ì7õ{&ú/Bçáa\—<.x\–2ò) Ÿ……r\—<.KNù…Ϲ.K’䱕ÔŸÙWŸÊ•]YÇZ3eufÀÒ$–"ýæ¦^óS*óÆ>,Ê)¨aUçò¥[´µAd˜«-]Kl$÷š™{ÍL ™“DÉc/õ *¼þT«’ä¹.KÍú†=‚~¡•ÉsjæÕËøä­3ùQ!?PÊó\°¹µrÇþ9+LþTHOÔ2¼×,.m\Ú¹cÿ™ü¨½’}Hr¹,»Çžd²Î_–ŒýGɾ‹ÔøX”ìlÑf7uÉ÷¯ÓÖáÞQËëgLuLSÎÜþ)ß"”øX—%u†:²w?Nq6·sE4xllÃÜþ)ß"”øX”²¶8Ý#å±([3ưŸ¢E˜pIÓ–#ZöÇõ'öW})UÐ ²±:–Ÿ!âˆòjòjo–>E}þwÒ•oêVô³¥3£YÒ^M^MXÊ+ï𫾔«’¸¸™Æb¶¶)$»¨miÖÆfh<Ñ_`¿•eŽ F½z2ªõ ¿>ʨÛ|ûÛ¥ïò¬'"2ñ2äáó>Œª½B¯Ï²ª6ÀŸ>öÇéD…ûü« Ȇ ¼c̹8|ÀO£/FZ¨ý Xý(½’}H³ø®Jö|Ä+|›ž8k‰G~£dßIê<ü4KüQ‘ûÎ[Ü)5¥Åb~µg ['†<ÿwÈ•~%æ·Rûj ×…Ãñ¬”œù¨óüIß"Tyøh–Öm-}ct¹× ®šiŠp¦v½™¦¬=Î¥ÆZ+1Ô›ØÑ•mîŸÓcèêùt†ÏŠÞÎévwJ¹…EZY?}„Ñ•nEŒ(l”"LJ1]ÎévwH~mŸ¾Âèʉ~Z<ŽhWΫ¹.lìöù;SaCëSbÈÕîc±Ÿ,àŸ¾Ç°o¾Ê±oP)ã^Œ½Vwõ~}Y§“çÞôbC}öQóÏ 9xÇlt€ŸFUý_ŸgViäù÷‡}ß}”|óÃ^1Æ[`'Ñ—£-`~ÐÆŽú1{$ú©så”Yò;ž ²>>ìòû³¥kØŽýCÉ~“ÓsðÑ)^ö³.Ô÷þòz›vao¯XÁ¬Ö6¢³b,ÿwÈ”Üü4KÍnâ]ÛÀÑÔ`0*ÖŠ_š‹?Äò%7? ÍX7&fmj’i_,ƒÐÔÁ3&Š]~­ä:lˆÆDÆERo`BUj{¼ ¦Lù"+Þ*eï2ÑgTR>÷?¡*Ü&š °øu ÌÓ‘ï2÷Š™A+%c%Œ½ÂèJ³•i§Ži®!˜§œ«táÄ=¤¹¹üpˆûÜ{ûÜ«õž5èËÑ•o}WçÚVšq>}ÙŸB$?Þå<ðÅ—Ži–‡C˜ôe[ßUùö•¦œOŸvgЉ÷¹GÏ<1eãše¡Ðæ=z2ÖÇíCthÏ¡²O© ³Î{i¼¤áч3LÙd‹‹„Æc&eú†=’ý'¬c=´K‹—..\\¡Æy'|‰XÆ{h—..\\¸¹CŒòNù±ŒöÑ..\\¸¹qr‡ä™õ&ö ç˜%VÀwãb,ÔÔÈ$î$žšé¦38ÏàGÞ5 ç˜%W…ô()óWÏMtÓŸ4GÞ5 ç˜%\\¸¹qrâäÖ»Í÷ö÷ŽEA‰â’}Ò¥^éRªÊ€ë¼ûN.Eùâÿxäæ»ÍFA˜H÷J•VT]çÚqr/ÏD‡ûÇ'5ÞhТ2 ÂGºT«Ý*UYZ=t9„Büñ^ÇýHTíÎs”ðfk²á¡¯™²udÄS{ýCÇã“2ÔÙcpÆõ¬WZÅu¬WZÅuìTQ¿¢æ½²ÆáëX®µŠëX®µŠëب˜þ‹šöÈ{†7­bºÖ+­bºÖ+¯b‡kÚÌó^eÂ÷ôzÖ+­bºÖ+­bºö*»¥Ì³ù— ßÑëX®µŠëX®µŠëبzî—2Ïæ\/G­bºÖ+­bºÖ+¯b¡ëº\Ë:›®Ùq,{Ö±]kÖ±]kæ\ÏgZn»eİuìWZÅu¬WZÅu¬W™s=iºí—Á×±]kÖ±]kÖ±^eÌöu‘ {™Ž{Ö±]kÖ±öX~¡fsŒcÍ1„½¸{:&.‰‹¢b蘺&.‰‹¢b蘺&.‰‹¢b蘺&.‰‹¢b蘺&.‰‹‰=^’蘺&.‰‰ø–<ã¬÷qÂè–º&.‰‹¢b蘞ÂXܽî~0Üg×DÅÑ1tL]ØK—¿/Çg"×HµÒ-t‹]"ÓØS—9Œ)íÛÒ-t‹Mw,{‰dÎz=DÅÑ1tL]›šüÇ#1,™ÏG¢b蘺&.‰‹¢bós_˜äf%“9èôL]DÅÑ1tL^nkóŠÃõ {%únBçáa\—%Ér\—%Ér\—%Ér\—%Ér\—šýÑy®K’µÏäijõ YÊËñŸQ«›VŒüŠÏÂÌ£ùŒ³•Í«›W6®xEgáfQüÆYÊä8pGqVØ‹b?p$N~d6~Éc+ZeV&U—ã;Kaf9‹²áÓa…²hÞÜe¾hÿ¿ÂªÏäʲöãçi}²t`«¾ˆ©:3áíÏËÍ÷øUYü™W%ÉT0cÎXålÙæûü{,>ÿÉ~›”øX—‰÷VÕÖz5–~U~%曟ÅcêÍì¬ú¯ŸMЦ¶ÄH_À0lë&‰=}À’N×ã?#~û ³èJ·8žfÆÁ€,›]Ù¹ÀØæ·³Æ˜Ì‡±–¤ÆBÛc3ïZ«þ„ŠÝßõÐÊØqÎÚdÁ"»\"‰›PÉÙ¸}!¸†áiŸzÕ_ô$W–l®™ÍGçz‰·6q…Í׸³d,˜ŠâÁŸzßeßãÙ'Órn~%¶Ðúûk°¼Ö嬺ö` Ìë0-­!¤éî3ì*×R°ÎÊMíµ¦ËM³Mzð¤£Ælä¯ð΋'xeb´×²Ó›­’f‹wgUévþ S»:… i§On†É 'OqŸaQÐðÝ¥ÙWšóMÏâ¿÷Ó³ø¯LÕýYy£¾Þ5ýØT¹þ$K8òC+uB+Ïyu Ó!‘™oËÍ;? *gÌt_â×aXUõHË—£/FT`vòy¬çÌiT1Ñr¶&¾WÚ­Ù³ 6µÚ­o.È´¢fÌÓS“¯…ÄZçgá¥MÏÃD½0Xõe‰vo`?o"ßÿOè½7ÖÊ3I—Õ£x{'N· γŸÎ´EýãP?o"Ú `{\EM©Ÿ ¦á$‘·].{kxeðö¢h&”¢5\þu²/ïûyê,“‡ ÑUÛËÙrŠ9f¸±’(kFñ -Ïâ‹ûÆû,¾ÿÉ>›–1žÚ%ÅË‹—..\\¸¹qr.’¨²pIxfq,qrâå(ÑÌæ:^.\\¸¹qrâäÖ»Íï'5Þk‹—#|ûx×÷aSc<‘#0ˆúr»S¥s²ì·S¥k°ì 3§qžÚUÌtK9ù·$ë5DIÔ—Ý*Uî•*мr8Ïm*æ:¶ŠIC"8ýÙz²ô e_GiãÊüã=´«Ïmâå3Évo`^}¼‹,Î~g‡Ý0ÈjÛáÆŒxðÕtÀ2lL_ݵçÛȳŸÌꓟm‹þÏe]žÊ¨+&®ŽlL_ݵçÛȲÜå\i½Ù2L<4•¯ä†Ñd‡É‡(Qvße—ßãØürnp›9ìnÞæÁw6 ¹°]Í‚îls`»›ÜØ.æÁw6 ¹°]Í‚îls`»›ÜØ.æÁw6 ®S¨»›ÜØ.æÁeåÌæâiðü·>æÅw6 ¹°]Í‚îl§=íË#ÒnÜØ®æÁw6 ¹°]Í‚tç½¹cž×ô›†wV+¹°]Í‚îls`œE†[–çXa¸n;›ÝX¨pü7øÖ\.v!îls`»›ÜØ.æÁG™ß.eŸ.;÷6 ¹°]Í‚îls`£Ìï—2χ— ˆ{›ÜØ.æÁw6 ¹°QæwË™gV ‘çãvæ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ.ÜÅÛ˜»snbíÌ]¹‹·1væ{?vÿ ýÛü/÷oð¿Ý½²O yò“únMå†'9¬Ç›¿¯kšìç ÿ‡9òÇžc’91çÿݽ·µ€Zø¤0Ö–uÆÌPXÚ_0°—u´ÒÔÐË Øj/1'¦ÕÙg²}Õ`ö¥ë›¥tû}¤SUÙg²-QÚÅVý3aª¤ª?Ô¨¶jk©Ÿ7וtp6k:]²ŽØÎÈT]˜U>&ØcW¹PXÀbØ÷:ñ·:Ø™o½Ô»h§”I¶Ízr–¿u×M21bh•Â8£b{%‰²Ç­¼mÖ—îÚæŽÇiªJ³Ä³3¨º¬¶˜ëí¶š*£²Ç–8Jiu‡ f G_µPŸeŠá.®«)cŠK;¯ SK˜LÇ®µÀ’ÆÆÐù…„»­¦– ¶†]ÃQy‡úm]VqË 'ÝV_j^¹ºWO·ÚE5]VqË 2Ù¬UoÓ6ªJ£ýJ‹f¦ºšH¾¼«£³YÒí”vÆvB«ÛºÊA°ENßEdsA†öî²lgU·ÐØœÐaµÙhêÉ”cÀÝ5Ó&’ ¼ëS“¶6*ÚÂOŸD `a€{ «ªÊXâ’ÎÀÁ«Â”Òìvš:ðE0š}²ŽÔîÄms¯s­‰–%(pY•S·ÑYÐa.Ì*Ÿl ±«Ü¨,`1lu¥ì;ŒUFnT j¹ھÀ’ÆÆÔ ùÅ€¿gîÞÙÿ›ƒ« z‰"ˆÿÞóÃm·Õ[͉ƒ×A±k¶P‹QU±Ï¼±[kµûv¶YÅÄÐ/¶M„#®/ªîköy(,bÙ¶‚F „5a¬ñ«gxXm­HйƒoëÔ×U;0·ÓYP_„{o'ñ¾®»vÛ²é ¼Ì [kDei³Ô8íèk vU× cðï:µ¦Ì) øOceX,Ôºµn*5à«–»ªØ…½ÎTûŽ­cg· @— 2ΔºçxgIgVd]jº­ˆ™tëü^Uâ³ÄÁc#P*gxp¢k1P ì™åCXeÝæÌ5Ýõt±keµ[ûÈû´ßUo6&]ŬZÙB-EVÇ>óÃm®×íÚÙg@¾Ù6ޏ¾«¹¯Ùýä ±‹fÚ 2.s|ÛʬVl56ál­Ùuû1ö=²q7`©·dn˯\óíŒe\õôå ¾Î{6ªÃM½×ÊÄ òí5#AP­7öW—À6Ò˜º÷øgIgVd]jº­ˆ™X·Ô›‘×סîW&q¬;·ÛÑ^WÚVßr>ÕOf>ǶN0&Xkòkº”Í›Ä †Uâ.pÝ&×9ð×ø6[(äñØn“kœê„-bC¶Ó\TH6Æm•Õ]mSmMŒkmØáа¼>:ºr¬$ðÚ¾H(óheÈ—›d»_ˆv×7ÑŒœ?ú6%þ‡÷olÿÍÁÖùREµZ‡TU]+³b= «5]œ'PÁ(´@ ?‡Õ†ÔÑH)äk$XÞìØ.°ýʪ½µ¤Tjå“EkÁTfåL jÈÓ),,Û»½ÀBÖ,† E£iõz£„±Øe+Ãño«+}Æ!ïj¼>³£²ÕŠÚi¨„º•E§­±ßf}ž[—»I«’§^‚5  vÁoybx± áÏáæ»o_c1w¬7ýEuºÐk «øŽ®¬6öÒÒMްÓ6xØ+DØu3  0o¬¶\_^Á©žT5€V]ÞlÃ]ßW:ÿ;5‹MƒS<¨jè뮬ö†ìW ƒ°jg• `—w›0×wÚ aµ`ÕՆþÙÚI»k%Í=f“W%N½]V]Öm/بmÇÙvÞi[=¨wãìzõÄ&Û˜k Øéí¿c×® Ù6ÜÃXM¥UÕ>Í%ö¿tͧj‡N¼ª¿÷Æ3bõÕx‰_amªÊtâ(Yv ïÂÙ#¿¥²bÛJ3öoÃzÕ1èvöÞkSzËŒµ˜n彯m­9Uέ¡W ø¾íÎý”{’¿¡ýÛü/÷oð¿Ý¿Âÿvÿ ýÛü/÷oð¿Ý¿Â¿ÿÄU !1"AQRS¢£²2aq‘¡±Á#B¥ÂÑáð $3U`“%@CTr¤³04Pbs‚ñcƒD’”•ÒÿÚ ?þ 8·ȺªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìªìÆçEñÜâTÄ´ì8ÀT½ T½ T½ T½ T½ BÖÚ91-;0/h/h/h/h/hµ¶ŽELKNÃŒKÚKÚKÚKÚKÚ,A±›—†›ŠÊ—´ —´ —´ —´ —´ …öº„¼4ØœVT½ T½ T½ T½ T½ L,xµÔ%á¦Äâ²¥í¥í¥í¥í¥íacÀ½¯¸Â÷‘{]RöRöRöRöRöBXl+¦¼‹Úê—´ —´ —´ —´ —´ Àã`otÂ÷‘{]RöRöRöRöRöBXl ï¸.I°ª—´ —´ —´ —´ÇsšW0{‘D#»ÏzæváDnóÞ¹ƒÝú]+·:R†'=ØÞs¸‚ƒzËfRÜX¸Uå»îUGùnû”˜Ø ¯b3]Åt¥Rï‹xÃÝS0cpÛl®ªòÝ÷*£ü·}ÈÝȺ/ŠéOét_΋âŠs}iÍõ¢7:Pº/ŽáNo­¹Ò…Ñ|w s}iÍõ¢ éFçJÝÒ¡×[#¶çEñÜæ•Ìå°‹)Χ]†ÖâÅeY`Hàáó¡Ã \òå¹ÏzævæZ¶ßЧ&š0HËnc$,Ö‹ Î{×0{‘³Z.J–ÌvÃe.%-æFíp¸]+·:RŸ«sŽ7ó]ÄUX«¨,Á"hMYt_Ò•U½Úóbpb¾G%U¾2 “BhÜè¾+¥;™ÔÜÞ.5671—{­n$íEo¶ÀqýÙnt_΋â¡×âŒ^,8òÙ~%àoÖŠð7ë?Åx%‚û_Z/y[gÏÝt¡t_K¾dæc¼Åâß /~³üW‚X/·õðå¢÷•¶|ð}×JEñT»æNf<+Á\Qž-úð7ë?ÅxõŸâ´gÉ÷’ú½~¶ù îºQ¹Ò·wc„ù“pSÛƒžÝ΋ã¹Í+˜=Û’êžgÉÖ½¸j_”#İg™âLÕµ¼Ûì6Üç¹s»pþÐý`­¦Bß`Ýç¹s¹Q`$›;X8LÙuß Ýž-€6Ê,Ò0E½ù ÑûéòHñ#ÌØpÜg’n14Z÷¶K¥vçJQù½h×ÿÓ±º”²ŒÀlâ6Kéò-9þ]«N—j«ß/¾NÁ‡%Ñ|WJTZÛ?€.G 5)ŽYžçŽ ðe§?˵iÏòíRk ÖµÊè¾+¥+hi!A­{¤p<+q¡‡¸?íTÖiÂÌX¸ö_b9Ñ|w:/Ї_‰„jñaÇä¿ð7ë?ÅxõŸâ¼Á}¿¯‡-¼­³çƒîºPº/Цß/æc¼ÄÃÅ¿€^ýgø¯°_oëáËFo+lùàû®”.‹â©·Ëù˜ð¯q0ñoà¿Yþ+À߬ÿ£>N¼—Õëõ·Ëm×J7:Vî,f×ùT¸˜ÜØ-íQ|È<ÆçEñÜæ•Ìå±ÜM½®´eٮLJ\ÜÆ+­½ kƒï­k³N»œq»ÏmÎ{—0{·4}âkñbÖ·=ªP[ÇŒ:ù Þ{—0{”?EÑ|WJw*u8ÜÜ¿µ¶ùmkª­hc±5¸-lüûÇs¢ø¨uø˜F¯~Kñ/~³üW¿Yþ+Á,ÛúørÑ{ÊÛ>x>ë¥ ¢øª]òþf<+Á\L<[øàoÖŠðKöþ¾´^ò¶ÏžºéBè¾*—|¿™ ðWþxõŸâ¼ úÏñZ3äû¾ú½~¶þ[®”nt­[pû ÿãR|Ù6‰¶õ-¡ nt_ÎB¹ƒÝú\÷.`÷~—=˘=ߥÒΔ£…Ìv8ÝÍwUæ ·<8x<–M¤ÑêBË¢ø®”ªÍïËóx®¥Ö™\ã†É£Ôš=[Åt§ôº/ŽçEñBìx-pò*G5ßz¤wó]÷¨‹/·†O¿s¥ ¢øî3ì©ü×}ê"Ëíá“ïÜéBè¾;ŒÄÃÅ{*G5ßz¤wó]÷¨Ë]ˆŒDçé](ÜéFäúœYž Ôøäå¤önt_Î1e˜6!ÝCº‡uêÔxO½Ö`l؇uêÔ;¨wQá>÷Y³bÔ;¨wPî¡ÝG„MÎæmq¿Ô;¨wPî¡Ý[me›\oćuêÔ;¨wVÛYf×ñ!ÝCº‡uêÕ¶ÖÜÛk!ÝCº‡uêÕ“ZoĶÚÈwPî¡ÝCº‡udÖ›ñ-¶²Ô;¨wPî¡ÝY5¦ü[‡„ ÂÔ;¨wPîît_ÚrZv@*n¸TÝp©ºáSu¦ë…M× ›®7\*n¸TÝp©ºáSu¦ë…M× ›®7\*n¸TÝp©øxq[Ø©ºáSu¦ë…`v@Þè\“`7\*n¸TÝp©ºáSu§!£iÄ Îû*¦ë…M× ›®7\*n¸Tä4m8Yßg•Su¦ë…M× ›®7\*{.xaSÜqà ›®7\,ˆÈŽMÈ‹Ãr&öTÝp©ºáSu¦ë…M× …ÛexnDÞÊ›®7\*n¸TÝp©ºá0±ûl¢/ È›ÙSu¦ë…M× ›®7\&?m·:/Žç"æwõ>ƒãú(]+wN´àŠærç·qÃÖœßZs}iÃÖ¹‡Ü¹íÝ“mÚl¥ÖGËkns¹s»w¥vçJQ²v'»Åo)TÛÝ®6k±âºx7Ù¹Ñ|WJS€L×Í·ííLÔM·ïíNs¢ø®”î¿ uÁÜè¾;Çs‘s¹M U•ì¦Å+16Îãe¤´%h¥î‡PApŸùF*(ÞÓ­ÖHXA±Ìñ\-/CU5¯«Šv¹Öó¤èéâYÚÒÐv_δµ Tóg¯¡²„ñªêjÆ4ÙΆPð–ËKPÓÔZ)'k]žÌ–¤tî-žA3pÆFÐãÄ´ÕMŒL¥ày–žÑ†lXpo¦^ü›vª¸)õ®Ã¶@ÜG_jÒ´Ur4\²Úón\•m=6‹ƒG2|RÐ_oªêjÈÚlçC(xËoÐè>?¡Ò…Ò·râHÚKMùD½Ñß~dãå¨loó®>ö›.a÷.{Sqe²ûW‚ºÿùþPÃì^ýgø¯~³üWƒûË=»óX¹‡Ü¹íÝw (÷üÂáeµþœ†ç0û—0{·zWnt¥ŸRÖ»Íb´N½’±Æp8+Ck\OûÈÊê=L’Õ·ƒ•šè¾+¥(Kv6öáb+C á±vø‹CÁ°vù‹ƒj[¼b¿ Fë¢ø®”îp¥vLo)â\'ÅàoÖŠð7ë?Åh åžÝù¬\Ãî\öîšÒV‘úǹº°ë°æ¥Ä îu¶Œ_‚7l•Ì>åY½«&p±ð|\öglÕyßšÝN¯S{m·*®ßU³Ýómn¯!ÁËmó]#·:B¿¾3ÜW÷SÝZ!Õ/–•’¹ú÷72´†¶@Ì[åÆ×+&GZö´r —Eñ]!_ÝÛßTæ¡‘hó f2ÜÖ‰1 ræÛ|<ÝÉhS&ù ÿê\-tÜ ekÚ{áÙ’è¾+¤+Ç•â6yÊ~ºwø¼XFÛ,å#!Ȇ2Ùäw ¾hø­t_΋ã¹È¹ƒÜª÷¾ò­eWìñcÃ~Ño>æ’“Gi —A;YŒgkݾ…áTõUÔU ’?ÕZ؃A¾Ðr',ÕUõ´‚›S«Ùg^ø¯ð^?EÏVÀÚ–º³5Ö_fŦê+樧1Ô £{® AÈd2·¥x]Yà½3¦p¬Ñr1¥÷6¯<¹2¹N––-'4¦ÈÜD0€Ðm•ö)ß«Gµ‚Æìµo8ؼ2¨¨¤c-qÒ5œ!â—›ÝÀr{Ul„¶²:}óp»&ÛÏ"¼"—L ŠšîØ˜Îu¶þ ªúÚAM©Õ쳯|Wø*»ã£Þº^Î8±_ɲߡÐ|w óU©ÖË{ìÜééæl‘¥®ó-&".Ø0a}™•¤ESã ±¸lG[œÃî\ö¦âËg*ðW|Ïò†e׿Yþ+À߬ÿ 7–{wæ±s¹sÚ˜À\ãäRkZ<äLx…í Ý™7‘?7X6Ï9œ¸×0û—0{”~jµ:ËýßgŸs¤;!^+*šçyŠ$“`Èòy•VèÁóZ«ßƒÊªu$Õxº«âÈq¯ïò.‹âºB®#À^Üx–mÞE§ÿ¸!jGkfŒrºù-‘Þ7ÍeûÂO‚è¾+¤)¸µ æSY€f-°§ Uþr[ñß1d[å7Úw:/ŽçEñÜä\Áîÿa¢¨j'$–Žw¬„,ì1Ècv&4'”~ŸAñý.n7|ê‘×?û®ûÕ#®?÷]÷¦áos¹sÚ¶LâïúŽûÕ#¿šï½R;ù®ûÔ‡üd®a÷.{SnçÆæ´yl©;Fýê“´oÞ©;Fýê–Íd­sŽ6ì¿s¹s»w¤;!BêÌÖ°·¶]iÐ#¡Ù»ÓÃÿÅj¨×É4¦W?Êè¾+¤) ­!¼äÔêÍ\^ëÂ/ò­^•j©ßM1•ÏÇ2º/ŠéånôÜÈÜ®NÓµi“üŸÅi2ïþ?Å;­¡·å]Çs¢øî¡ ³0›ÝMî¦÷S{©½ÔÞêou7º›ÝMî¦÷S{©½ÔÞêou7º›ÝMî¦ð°á½ÆÄÞêou7º²kMø‘áp‡u7º›ÝMî¦÷P°;s Ü&Ùêou7º›ÝMî¡`væá6ÈwS{©½ÔÞêou7",|TÜ€°ñS{¨wQás¹›\oÄ›ÝMî¦÷S{©½Ôsµ–mq¿ou7º›ÝMî¦÷QÎÖYµÆüI½ÔÞêou7º›ÝG;[q˜Î«eíÆ©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úáSõ§ë…O× Ÿ®?\*~¸Týp©úãs û_Á}Úþ è>×ð_Aö·f‡‘ηõw G;]84lÌÿÀ ŸìäkÿÂoú=ÚݦmDCEâÂâvã?z˜:J'ê¦fÜÓæSêä«“Up—»Ðª‰ªvÈba‘þ¡±U‰šZöú ›ZÈ¥t/8H³†Ñš©ÕͨuF$üÛvœ‚Ò²>–¦HY£Úc}¯k e¶©µ¬ŠWBó„‹8m©­W4fFG„æÑÇ}Š«“iYõqµ¥ï~Î ª¯]» ®ÕNÖ‡9º§»;.@°Rà‰¸žû^ÁJ&§”]±âãUÚÊ’ç47Tð nÛ,ª…;f~Òn} Q7ßkØ'c†f±Ö"àìÚ§ÖMG&®va °ú|Ê}\•rj nâ÷zQ5NÙ L2?Ô6*±#ãñãsK^ßASkY®…ç pÚ3U"9µ¨Ã„Ÿ›nÓZVGÒÔÉ 4{Loµícl²ÎÛTÚÖE+¡yÂEœ6ŒÔÖ«š3##Âshã¾ÅU‚I´¬ú¸ÚÒ÷¿gUWž<Ý Œ,xôVØ͘Ûçy€UEµV¸†XË|×Û¹VØãf®w˜ ÕSã©x»#š'F]溫l q³F×;Ìj©ÑÔ¿6G4NŒ»Íu^ÈfŠ1+˜Zo„› e™òZ`’6 gŒÇÁß5Zök£|½Œw¤…û8#/>[q)°é2]^æ;…|í{[ 6*¡NÙŸ„´›ŸB”EMÄ÷Úö · um€Ü_ k­*öRS:fiµÂk6ùgŸ"®ltÕ „á8¤‘»USã©x»#š'F]溩l7E°]ܸÆ@qª§ÇQ'ìÙ4Nf?5ÓjY¡)éõÒa¬žKø¥ßž4ET*Y …%³´ý2ŸY5õs³ ‡Óæ*}\•rj nâ÷z7zµ»û ÿ¨W“Lǽåä·Å>œ‡­ TÚŸ<³?o³/BJúú‰,„f/Ì€Š¢¦§zÔ[ûV»,ÿ<œ‹÷¤ße~ï“ÞPã§îûÒo²¿wÉï*0êý$-q+Fyyïì@GVÚøéÜáµìuî·ÖV‡­Ò††ã§lƒª¸~seà®—ƒHRNÙa™Ñ ¬sq!edÞÔ •ÜëØjhä"ÕÉÆÛí÷RU=Ä8ª{Š! § 1¤eˆzcK …ÓDî6¹¢ù{“ C'¦Òðˆ."ÙÜyB\ZÚjFƒsŒð[o6ßB{ZÊXqLþ+ís½wLùí-1}FLo©#¤§¿5ãí÷¢àÝ1£q¿LÞ±¥7«ä1Ò†/Ö@õ'>”ž:i¹lÃÃ>ÁëN³´TÏÞàódýŸ·ÞšDú>vÍSˆSÂà‰|z?F>q„ÿlÿ{“ÉŸKKS¶ÌñϬ›…Œ­pi4Ì{Þ^A3|SéÈz× ›AÓàg–gíöeè@I__<Ž–B3‹æ@EQSU½j-ý«]–žNEûÒo²¿wÉï(qÓ÷ ýé7Ù_»ä÷•uNþ’¸£<¼÷ö #«m|tîpÚö:÷Ûë+CÖéCCqÓ¶ÁÕ\‹?9²ðWKÁ¤i'l°Ìè†V9Œ¸²n°hÈ"m32ip¾/­>H&¦”K ñ[O§‹î ºÁ£ ‰”ÌpÉ¥Âø½þ´jh†º GŒÂ/•FÙÍH¾Ía?iQ1ÚʲÇßé3‚HQ·æŒf<¼^z¸ªÃQYÿE™çç>äÜôeSqÛ¢vNïZ%ñèýùÆý³üQîO&}-,qJFÛ3Ç>° §¯Ò:V:Q t”± ,â>O_Ð2èèÛ^Ö²idi{®GÃ`CЧ¸›¬.™LÇ š\/‹ßëO’ ©¥Ã4VÆÓéâû‚²omÙXνö¦<:B-\œm¾ßpõn?5<ÎfŽ¥ú,±ñÏ)ø2àÒ騵2rk›³à=%p©´$¶òkŸ·Ùî^FÖß!òlyntkw÷AÿP©D2ÒZ¢9¯iË׳҉u]{Í\î;Iáe£F–Ðõ™c’†>œž,ö»‰R²‚š†ûÒŒHâãôœGç!éп*h꺇TÄè¦kÂî"¡SÅ nñêY v÷E¤ñ“rrZ%µ´:IÐâ˜T5†Ñblvñ­ ò¦Ž«¨uLNŠf±Ì.â úG§šÂ¦¢Z†¾Íã oçb`5p28àk°ø¢ÀøÙlTå´to‡ºã êNV·“jç~Lا”óQ_„SC#¡Œhâbe誚ȴ £‚׃|ó>ŽDßé I±Egœ$YÙœ¹=HèbíÏ9»ÛtÏèšwK- ¶’×ËnËú“?£j„cHð€¾_1´åmŠÖž"Áä=K$Þãè´ž2nNKD¶¶‡I:S †°Â,MŽgh_•4u]CªbtS5ŽawЩâ†7@øõ,;{¢Òxɹ9-ÚÚjº——ÒëÚ×·<¤öÎû6䨌Ѻ=úة̡ï–N"m³óÊ©ã¬×D"¬¤sðÛc9rz¸î´aÐÚ29D•u@t’ÛèŒ;?>e]£ñ;‡!•¶ç˱ELŒEWHçàÖ·”Ç³ÕÆ´OÉ*9[-A|Áï–ßD[óîQGS#ãUÒ9ø5­åñìõq­ò.sƒª¤|Í{ÞxZ§Á£þNesˆ "Ã<ö¨µÕ`ÀÌA·³ÁÚrâPf“ 53Aà ܹNjÖž'0CÄ}i˜kªÖæö»æØÐ³Ò™ýJevá Œ‡; £+íZ)ºRH1‚F²F²HËE¸ÖІÐTµðèýðÜoã..ÙÄ=¾ʹhÄšêmxaá´åʨ£5SS¶:ýùG Ìí—¾E¢~HÑqÊÙj æ|¶ú"ߟr†Ôo l-“ÍØµ¶¨u²2²)1f‹Üæ¼kd©â‚¯Xîa€aâñ2CõêiQK¸m?uÐHUÌúЬÁá¸ù<‹F¸Üþ±'ÿÖçAö·tÄú>vSê>n0ì®OizÃBÜô°l…¼§Ê…€Ø?¨Îâùi…>ªÙ ïöúV¬PÒê&X1är”,Áÿè>×ð_Aö·f‡‘ηõB;NŒŽÏêdvþÚhËù¸³þ¥Ð}­ÚfÔB4^,.'n3÷©ƒ¤¢~ªf`-À}>e>®J¹5p7 q{½ H¾ZvWK-S§å‰»3ô*çJCœè¡sƒÙsl•~¸Ô3m†7=ØyH/J©1¦Ï±iò‚«Ÿ(ŒÙòE žÆú@S²x$kÚr*µój¿høasØßHU žìs9ýÝÊ­ï–8µ¢(œñm#%¤[½dv­’5®'¶X ‚´Ä‡H€üeñ½ÇÆ8s’ËI¾Jêh¤š¤½$0?mížD*×ÎìC©…ÏÂÓžydª™QìHȃÈAÌ*˜ßU¼±›QýsIÈ)!ÿ»Æ>«¬©¨)ý'÷•>3¦1W¹…‡„{ ÚÙ±J"§ˆ]ï"öõ*éY.‹°ˆë‡Üb¯Ö¿XèµqÄç?våojÒM±áŽic±â«ªÚº:Xà‘ó>ž\ÀÖ€ üëÂ%ÀëÛ‚=9*Ù¨èi`×V¾a{ÉØËúGµVUêéÞÝõK,Åì‘„ÛWMK£¢¦5r@ë>L^+oæ#ÖUe^®íßT²Ì^ÉM¸øÕ]UˆŠ‘µ3>„Î]±¸¹3÷­!WDìŽZYf/Ž`|‡VÏEC .ù©0; å¹¶òlöù}\m†V ée˜¾9ZM¸øÿ9-5¦éq´|Ý5V ¹,¼!Ó²U~Ö²Yk12ž?@"´…E&ŒÑ±0Ô˜_i'{†@žO»Õ[XØ©änù¥–bøäa6ããÍS²7Vº¦Y^Ûüåã½ý§ú—Aö·tõ àÒ騵2rk›³à=%p©´$¶òkŸ·Ùî_¼*>Ê…˜e§l’åã¹Âæü»TmKVöâãÂÛX{ÐÕ㊘#Ÿ`ãí>µàv™Õ6 ó-ùÃlÉÏhêÍG,Œu+&m‹ŽÂð= 6†Áq·ŽëfJ:9é›T"ë—¬¯îåDÖë`d²äÏžÑ5 yŽ"@p÷{SñG¤¥ÊZ°o ÛðBÀhkÿÈ£n¾M!$XøÃFvõ• 3JÉ–Ǹ4bóíLÂéÁp2öŸZðwJWÕÖT=òÕE çâƒuàö‘ÑðÍã­2Æ~Dƒ—À@I__Q#¥ŒÀÅâùTTÔïZ‹j×eŸç“‘g`€’¾¾¢GK!‹Åó'ÉSa1ÈÆ[ Ãþo.ÏP@I__Q#¥”ŒÀÅâùTTTïYì?jÓ–žNEuòi "ÇÆ3·¬¨cùšVHܶ=Á£Ÿjh9󴻌Œ#/i\*M ¢.C;¼sè*Íl1@"4làñß„A½³ÙæW ©£sLŒkÎ ˜H ­³AM#?À}á87æmŸœ/ÐQÅ–¨'ó6ÏÎDf¢ 8D¬ \q-&tõ=s骀7;b_ÑëS¶^À[qÂuÅÀŒªghíšØéßûJ’6rÎ{P»iâ/·)â …_¥¾fyÛcâ5½ê‰ÚF–²6²²‡çnAÍåÿÊÐõ:3GE…óÉ[À|‡³ß=üŠØÄâóêGõ.ƒínþè?ê?^¦‘µ¹Û†Ó÷]4…\ϨªÌ“È©X®¬šJvkÃk­c{ØzSpË4lx½ìC@*-T¦¦Gˆ;"r9(õtzFY·„Öíµï‘ ÁÏ”eº¸ªbªhl€l½óS‡VéWb“»aææ+Áñ¥ 1U5¡íâ½óüúSã:N¼ŒLÅ…ƒcG³ÔzÉæ„µ¸>”Ü2ÅM/{Ð ‹VÊÚ²ø q6Ç<–‰l0BÙ0V6¡®%×¶¼gÔ´Cb§§¦”²­µ p—ÞØvñŸRп,RºÉM4U ÍÀày/µâ­©`Š*v;†>Kòä?%R‰¨Y ô{AeÞû ¶ßo*ÿ{–óT“´ÈìÍýÞ…¡–gïzV8ƒ†ñÿÜsBñOãÈEéàtG?4 7ËÑ·5ê_&ê5˜‡Žö¶ÝŠS寖f @݆Ö9(€¤žš6FüC2-qmªtô”Îì@a»E²ãô-ò¶ˆšS,"9ƒþŽ{%@Ú`ˆÇKDÙqN×:ÙrþBÑ£Khz‰L±ÆÉCNO{GÝÄ©Y£é¨o½(Äî.?IÄ~r˜ÛòNïGpnNWÙŸ.Õ£F–Ðõ™c’†>x³Ú>î%LÊSÄb¤¤cp¾×8Oäg£F–Ðõ™c’†>œž,ö»‰R³GÓPßzQ‰Ü\~“ˆüä=0êŸ-|³0bí6±ÉEjIé£doÄ3"×Ú¨Vñ¹À=£2Á„fyWûÜ·š¤¦Gfoîô*vW6¦1]#¤À]mŽi9q~n´_ÈÚ+uKŸ;_$ }ÏÏ™Bʉ™÷©¤sðëcâ±<pZ$è}Œ>©ï¯|€}çÜ¡ŽyY÷©¤sƒu±ñXòýÁh“¡ô^0ú§¾v½òô@Ÿr¦Š¶*˜ÛU¤ <`ZN\KD A#†ùšYÚ÷¹ ÞÀàût®Ž¢±ÑFú¦1­6+·o'"ð2?ÿe‡Y4¯f&ã ns'È…ƒB¾3¦¢‰Ó`¾wÄÛåùò­òN‡ŠQ$áóÉ=¾Ž_ž5ËSþ˜þ¥Ð}­Ý1>”ú›Œ;+“ÇçN. m<í¤1 †`/öN/l60ãÇaoø6™¨¨Ï‘ÐÀèÚÀñkeèõRè>×ð_Aö¿‚úµüÐ}¯à¾ƒíôkø/ û_Á_ÿÄ-!1AQaÑðq±‘¡ ñ@Áá0`PpÿÚ?ÿã› ºÓóøÿâÊR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)JR”¥)Kú¿¡;P-€ÈíœÓü£Ç*¡´mQ©‘Ú!9§ùF1ŽQEèÚ£R#´BsOòŒc‚¶a£SÓ$¾3ü£Æ%ÈÐÎD˜) ñŸåÆ1.F€6r$Á /Œÿ(Æ1‰r4³‘= «ü£Æ8) ñˆÜ (å_åÆ1Á /ŒFâhG*ÿ(Æ1Ž H|cбÕ:Ë1ŒS÷—<‡ŒßÖˆ5¤þÚt™î–ºúZŒßÖžè“POí 宾–£7õ§º{§º{¥®±y[Ë”yø% îúX-”ÕÖ¬jÖFÒ ƒ›Æ¸õ8qj\Ö5Hs§OÞQçà•u»§@UÈñ/«tZ×S‡)+5’Ñfí:~ò?÷Js)̧0ëŽÓ§ï.:N¿¬A¨'õYýVªön{¥ž~é:þ±ë‰e»Sú¬UìÜ÷K<ü1Óuýc×Êv§õYýV úFåž~qy[Ê]gº( ³%ÅM×SÓõ?yqxJ¼| ÚÕÉS/liÆ‹#XÆç+¶ø#,ÍU•Áeþ…Uãáèt5œ"ÌÔ0-˜u”» —úW„·pX†7›²Í£û%Õt'è•¶äbò·—yø!æ…Ð%]^Œe Ñ#€¦¦½gôóúx°é~Ÿ¼uçàžÒ'„F²)?§ŸÓÁ( #ÏÓ÷޼ü€*¥cjhSMo6T©Ñ–fkõF†ŽàÙC=#ÏÓ÷—~¿¬üñ/‘¥íêÍÕotºæø#{ãØÿˆïÏÃ~¿¬§ñuU°îõ™ËáÓR¹ôn«{¥×7ÁßÀà÷üG~~óõýe;‹ª­‡w¬Èž_š•Ï«6ó'í€Ö•]#¿? ¸¼­å~€¶†=CrÄP‡+lã:_§è~þž#‰Vy†™Þ_¬Jvhiš°+z5l;o šK€ÕÑzÀF}Vy«Ìa9UZ9Ô¶W˜Ï£jÏ5¦8 eàÚø»”äñY¤+zˆþ½Vè4ºÑ•€q r­qÌ­$  b÷žŸG^.CD«üã0R«˜¦³j=\ëX7§L1GÏæeìþÑ׋‚7Iàh}Å»•',4ú¹ØSÝ&¶¸¯Ùý¢¯E¿ß‹†*÷IVÞê«aÝü|Ì‘uði©\ú³n€tCy®+¤wâáôðœÁEh"YºcpÔ¤ù„ÁŸu“œL¥‰ÝS‡O×ýåÇäm(ާ^ âáBþ¥ã`Ð6ttS+Éj©Ýâ\}DrüJf9©`(蓺@¼itún>‰¢9­{+½.µEËAjÛ‚)ã,¤ …,L‚)-»ÊEë Àf/yq׃‚ƒ_‹-M]jÂ0aè(n9Û\Oÿ^‚®Æ¨àÕ'R?ÃûG^Ï0¥°Ê·‹[üOÿSÁ?Ô­TKYcü?´uàà€ˆäpÊ£žâåW:5—ݵsÎÑ«”f k™Õ¤ ‘þÚYåý'äð~F—·«0M÷º]s|ô€qóøŽü1þ_ÒP³ºªÚîþ&Jºø:Ô®}&ûÝ.¹¾úÀ8ùüG~ÿ/é(YÝUmw%]|jW>¬Û¼½n5ÅtŽü2âñ7ž×Ÿza¡]&^Üé> ¸+×ó1†³Ü=0öÿyqø[EÓ7CÔ:æù˜WOðÀt!Íó0ª™º¡èt!Íóx9— ˆC¢ö­Ð%š½w5Ñ£­K¹_ù¥æ„@±,]Ãí ˆJ®‹åë7Z⊋x•ÿšWþh±w´4!4 Ð S,]Ãí.Y«—Ò?SÁ«E%™õ\»uï-Mrx!fØxŒ³W/¤¹Œ“\ÊÔzú.Ý{ËS\žY¤6#,ÕËé.c$ײµ¾«—]ÝÂÊí<ØxŒ¸ïÁÌ:KœÐ‚.»åš,Ռƺ]k­þ>Ÿ«ûË™ ¬·AëG“ÇÎg•ìžW²y^Éå{ Sç²;’»¥+æZ<ž>s<¯dò½“ÊöO+ÙÒŸ=YÜ•Ý)_0zÑäñó™å{'•ìžW²y^È”ù왚^kËÖ\L;MzžŒò½“ÊöO+Ù<¯dþû UβÇ"aÚkÔôg•ìžW²y^Éå{ ÷Ù®t–8øÁÓ^§£<¯dò½“ÊöO+Ùÿ¾Ès¤±ÇÆ p:ãiaœ1OûìžW²y^Éå{'•ì‡I¯QÐ×K |áŠßdò½“ÊöO+Ù<¯d :MzŽ„¸ÚXcç Sþû'•ìžW²y^Éå{ aÒkÔt%ÌM5dëÖß=“ÊöO+Ù<¯g§èþòâÐÂf6—iÿ ç9Îsœç9Îsœçÿ¦Wzküs†ª`EñˆH€j®‡òyÎs“1°¨sDÀµN‡òyÎs“1°¨sD K`MS¡ü½½ïvdÒ e'Y5‡O_ì‘¥ 5F¤¸©Æ‘Îsž”Ñ‘9ª`EñŸäsœç¥4dFÎDª˜|gùç9éM³‘=?U÷—çýJ3Z{§º{§º{§º{§º{§º{§º{§º{§º{¡×/\^¹îžég“†/yK¬Ð—»hw¤$ÒV bfoïzGYÈ~âUŸÕ`º'°e™¿½zYî•ñËiªC:½¬ÙP胢Ot¿ËÊWåá-̵‹ÀÞ\£ÉÁ±XŒ(¢¼—EƒZL@çe.0ÞÈŽZÜ:âµèûÊ<œÚ÷†¢Ú¹kMdÔV¤w)i¬ Վװ7¸­z>ò'÷Ot´a`T5‰¸­z>þ˜ûo¼¸¿?êUãᙨŽÊj‚³0î¥GʘÑ¥=â¥i£üõöK‹A–-5lº9j:Œ-‚æ˜Vž’\£_˜{’Rº±¦¶gçwc!²öæ<áj¯ÌS,±ª¹Üܺ7TŸ’q¤2½aÉŠÖâc‹'ï µ Dª/²t`–ºédnÎF‚õ˜[†RºI¦¶}L²õG/¨¯ÁÃÄÞW @>­Ñx»¹%‹4÷€Vì.X]­D&Ð.V´Ò]ãå7ºìÒö^Ó}ûäååêÍCÍüLÕùRï(¡×,”’² l ûó|+¿…§ûôÙãå(ñðôÞbó7—x8%hƒ¡ÕXF”R¨ ¬/Hx/=ûf±$Öé†Å5&E£^´Uààƒ@ÌÀÏÌ¢½5pº¹|Y®£…뻢hÄsñ´È€èÜyz>ÑWƒƒÐGQ¯yÆ—MZjÀM׊¾k5iu[GKµÙkE*dЉÑ/GÛÓõßygš{þ¥Yæ³*'u6ƒ±xÒRÒ§ZŽÉÖSâÀ[)eæ¨óù8œÀ\·b/RY.0YJ›½;@ÍÄCh”nè·›Q_EâµR¶´[LÂaó_¨ùQ½X)!ȦÖ1¼Jlëâ±J8…$±lÔ€ ¾šrŒnFR‚õµ¥ëmÊÿ‘4:©Km@u€tÐ7@P Ýuw‡•ªÅª®W™^aÓ2áöráèÛÀè©ý^‡Ð«ÅÝOnÍ¼Ž«Šüü1|ýà 2Â3¿Wi°À!îe+þ‰vy”Zê*4½—´Ýrù9yz³Qsÿ5~T»<Ê-+0ÚmàX9Í: eq¯)“$ sÁu; —yùBjó[Å[vö?­ðú¢î¡×[‚³oäÎÞYÄUçàƒ«¬ ÆÒù>0Þ 6¿™P®Íн6¸)*b´P-ð>ÑWŸ‚÷¢~Ð(î²²'5î<#½{“t*{s­E²Õº€Þ£ü´Uçà™çΓ[ÞŸ®ûú~ïêQyêŸûÀ_*áô—oRDAÑ¿6#š50ö _B‘ÂlÓìNrê«ò•Gö£Â€ÙÍÒ Cn#K ‚.£P ‹TZ­.ÜŠ…V€@€ak–ÎàêbQ ÂSfÑ[ieï(x¸†à³š%Î6gÆÉTPêæ =Ö @MÄlZ˜…›4ûœºªü¡åÑaÉ?g¯‡/\rçæôz\ªï7W â¿ |¾eN @‰Å¢˜„9Õ•¹DÌÂ0–Yß`2ö–z:¼­Fu콦ûÞç/¨ÍWÏ|LÕùSôEÁÎAh ´gB/$Xþ,yØøì½G‚$¥(Vö†: V(Œm,Ž¢;ó::\ªõ]\Ň—Ï¢¯I]U‚豊λZBŠöƒ«qPÜÏ/ipa‹æa¼ì™û´Uãà•,&ìkļq)ó1;7–šÓ™o…€Šó¸ÏØ}¢¯·l½Ö4ËÑæ!¤Y’ñ+d1Ôè݈4x€.\i/Ù3öoOÑ}åÅù?QTÍРРРДuªGZS{Âf¡:¥{ŽRt'Bt'Bt%L§ãs‰Ð…š@-óçÃÌ{®b·. ¨Ì‰k»È–;°-à§îÙ´Z[$N‘+Þ¨]võ.]évçc•âßLœï6ÒÜkü2Ë,€²*Z-¤¤È¤›¡l†<¼ËSæ¨Cì:àK¨‚†AAk4c¾#„ÖÔ^¤±w´ Ÿ0—o܇G3Fæ¸ÛiÓL=í&>?h…G:‹4ÑzSR nd ‰¬[Z ν7Ò íHް<Ë"ÑèÜ!!”[riNShRu44jÉÃN¤¬‰ÀbMZT®G@WB.ŠNÆX·PÏ誥k¡MÞ¨XYxL¹ cÚÃÂc’ ¼¥à»ÏòUD<Ó€BŽ¢ cV²Å›n¬«‘êÁí(½ «‡è‹Ål;7€ËÞ¼M¸Š,[£ ÁÎJ°¶! Ôº Mö`6dZ ÍêMï^&ÜE -ц€ç%X[„ê] ¨bÍÒÃYQŒÅÚ¬@ƒ2d.€ 70ɲÀ >Øvz ºãFñ`‚lIrÔd¦)SRt§y³zD¨ƒ0˜k^[¬%Ò‹½“ x,¼Ö)j¸ ‘OV4è°âRªSÛ.’ÚµßFĦ jl(µ]fkoH€y‡K¹T©mžÜàª5hû8 öa´(B UeôõE VX­@.±È|¸©*}Ô0•F@µ‡¬*Xä £“0Õ É†?EˆÓÔÄum§ n‚à/h8hfª˜‘}p±ùb臚QÔ(ê ¦5k,Y·+*ä$z°{J/CjÄ¡ú"ñZƒ³x ±½ŠÄÛˆ¡ bź0Ðä« bK Äßff T¢I½ëÄÛˆ¡ bź0Üä« bK Au YºP!àXk*1˜»Uˆs¦Bì…С¦æ94aöóÐm×7‹ii‡‰X3.œ‚aÎrOjrÔèͬé˜ìà!z^µfœÖj¡,R“·T„iªi§ë`²ÅÈÈ4¦IûÚDƶ²ËÅú øK,.FA¥2EÇZ÷!­¬²ñw¾ðK,\ŒƒJdŸ±¤Lkk,¼\XZ˜é¡­¨ø9¥¦,!`̺r ‡8eÉ=©ËPK£4f³¦f:×ñ¥k kl¤CÔTJ--Øå`4AXѺ¦žNÃMTÁIZ6‘¢P['ÜHZ‚…ì6Ug ÿË"; £b4Jdû‰ P½†Ê¬«0)X« ,ųTÁÖzm…އâÒ“9Ó™ª€Ù–fÃT¼Í›Å²Pz6XÊ}CP`1m.®u€“=†Æ6_†Ê?] t£“•‹F"‹t[PÖõ²“.u²¢­ëcŸñ•MU.jÝêu…—„˶=¬<'Ñ#Í¢½L3°·ueá-àU]e¯£ê6Á¢—¼¦'»4ÂÕkfúm6Ç  SŒAP»êWý>ÅÝ_Ð(¬Q O?Òj.ÒCWZ/@ Vqu]€lPÁíšÕ0´ Õ‰Yö…1+zº8‡`!¥Mð½ÚZù¢€“MÌ2 ¨8rMšcB;Ÿ°®‡˜{Î~(AѽàÙé¸y“ðp 4Dz\™L£UæŽêNÊèÕ׬,Æ:¸`:¹Ãfïp ÙÊñ„À ØogA·Z>p¦ÑâÂ×S‚øÑ @kª [ôJ¼l4fÀ XZêpCY š "­¯ðL)€@8°µÔà€žx``kª [ôDz\™L£U­hà¤ò‚èÕ׬ pr‚ÂwØó3 ƒjœ“f£wOªr.TS@Ó,f½ÅaÝ0a/HàzM“iYäƒJjEŠ€{«GV ¢¥‚i[Ò™KjEŠ€{«GVY>²Ý[Rõ¨Ù@’¡FôP´*(Ç}¬&hØÒ• XYáªæ&éúhÊ¢»!j£ö4|ÄŠäÌ•O€¬6YŸWv‚îÃV"ÐÅMº¶Ë H5xzÿŒª E²¼%¨†Zº¹HRªš I€hÕ­C¨~G8BoS^uYcHä„]"FÄ™áÏ!6¥Ðõ£E&šºƒÌ '¤p!Yiw brѹL•k{À[Vƒ”õâC‚Ö›®<̰2·Ð9MÇ+¯ÒÕE >YŒ§:Œ,Ã‘É Ë‹| šèÓ-ä]Šp­¬d (à…@ÂÆ¶°,u)±r¥0®Ï¦£FÁE:-äuçšùT] 1ÔÙV\)åSfµ¨9'[B—Îb\‹/¤¢jôaEÀDjëÕu.«¬ëS²æ$.œ9é‰í°ÉjU9Jë4‰Ýé2#dt=`w_ŽÖ- c “A¡ò4/L5r=X=¥¡µbPí‘x­AÙØÕ‚95N&–Ûö=¥%Ö>%¡µb=SubMˆÙlÁ ¹ ¬Ò‹ÐÚ±(v€H¼V ìÞ XëS²î$.œ9éÈöØdµ*œ¥u—¨/ÊlV.·†Ê²áO(˜´ÏÜ¢ÊgŠJ»£r£~ñbUDœ°F¯AÈÛ+f0M79´«ʰ{`TF^ÈÛ+f0M79´«ʳ—jŽŒ4 kiœ7†®HÈ5xÙyÃE¡vcúïj»HA‹d.ÍQÛ“õ•(¤@ &KNÐ"£¦ÖV«xwKç”ø¢©Å-ÕïÉá´1d¿û2rØÜ7‚œx˜Pŵÿã ²|‹’“ŸÿÁâI$¿ÿÄ:!1AQ¡±aq‘ÁÑð"á02Âñ @R`b#3BPpr²ÿÚ?ÿ =[U„ÜŒ«öXê´&€pu‘ËñäLo§b7‡Ã¢…¤öRÌÍCTå(†$ç4|ÐDß”K†åã4QGF§–éã„‘"(ÌBªdá#銡£º'Æ—§ö=Ÿ«¡œ/¿"ÉÓ(fX.ùè„À"àx€y¡:gc· êÐ/V>ü‘r›ÌÝöòBaû»Wà®Ûìf·ÙvÔ'R«¼tM P›÷k#*ӄ䜂ÔFˆ¤jF¾wq’uhªË!0Þ§¢†lö–͵Êjí¿p0ÃÏÀ’{ sbîxÕƒ( ÆÐu²V{ήçB¦¼òÊ®j ¡uwç’b`‰‘w~y"AŠ*wÝæˆèʈ½àð[‚Üä6³Tœˆªw;¤Í¯¨HBöDs (a¸ówÛ~ÚðöÿsË%ÄMÞ¿UßévÆ®H8Ñ&ÙîD‹û ß…†p¾ü‹'¯»ºû ‹#"ÅFhM‹Ä)4Û×VD1"äÈ»JÚ“ÎôîBe»©Ð]öèÉH¦d'R© Õßn‹Š­©'cèYÐ2È£î~ª¯Š_VàýPÀ2rÙ¶ª±5­ªH Ò&£Õ1iíËÝÂhà [øAïbŽ 0þÜÉ÷±Fßk7ÍÑA(Ü9ËÓjØd Ÿfx/²£ksä`¼yÇ]ѽŒA‘h¨¿šMÏѸèê ÂX¸È9Ä)ˆA׃„±(0ˆ5®x†6*6CòoŠ‚Nûu5•¸êíˆè˜Ð£lÎꛪøšŒ¥ÂM¯U (¨6 &;®µ Œ!ù7Åxu=ÏŸ£œT.ÂŒ®c裄G +33ášñŠIßR_QÄcŽœ5½¶LäØâƒR¤/–ÉËv(eHáÌòà„4¡ö'˜´pQEKÍy‹_v$ïb‰1?ƒ úïÿÄ9!1Q¡±ðAaq‘ÁÑ"Âá0@ 3Bp²ñ#2R`b¢ÿÚ?üÀÔJ³o޶ð¢ÖFh_¯?Òw׸ދ͵èÜK¨Ëšk6dш<üÆ|óe‹á“ 0?òኡšèˆ÷à¢ói>ÆàÞÿ’&E·_4ÉÑ"^Ò/#¢2ªi>ìV¢lFEœ—á|妌‹g,ÜÓWg àêñ2ªÏDódFx:¢teTe2¨„ËïVòše¨›¨¼¤¾iÝE'mAî|>ÉQE  sg1¤-¹˜wâ¢óLlÀŽ¡F]Èÿ[‚Œ°iõ£¬{^÷lìQV#oflï_€Ø¨ÃÓû}]”S†-¢UHmN¡iXNÌ7¨Im#P_¸ÀpAá#] á+ÌÐòíѦÚ÷ò€uÐó{æhËT!·æ\”_«¥yÉÁÖü\ÈæŒ£,#Ú}@¨µï{™Ft­BQó;X8±|9²&o`ꢑˆÛÙ›6ºCˆÓÙ›;Ðp"z³Ì>ê*°Ždt~h–b7r/„“00Õ˜nørQL–³b6öfÍ®ŒÌ{éïz&Molà£Ù­®¯6£_?“©¾A™¥2-ºù¦Ï>ÞaÂH€ ó6Õ¨mNgšžˆ'9puD'D'àeTeUE 4\ ¬ˆ.¹-ÉVPÏö|¤¬{ŸF¡™> LâŠtöv[©#ÏåÄ(†ÁÍœgj„¼B-·Fw¨~ꢜN-8C4fA›Úyê #øšZŸ¢ør‚¶®¾cÂz¨~í­l]ùb´öÆCR1iN÷Ï€EÈ/©…ó¾å#Ú}G¢Žw`pQy©hÁ®÷DùŸpÅi<Ü󛿯dd#[ñs#š2Š‘í>£ÑG]à\þÈçJcÚãû¨ ‚-#¾áÕ|?å—;0¹…ã§tÄ dùMÇ ê´´b1dÊãªõ£¢ÂÀ:ü³2ÿl „Ff_üïÿÙplugins/jetpack/images/screenshots/custom-content-types.jpg0000644000312500031250000005304412651056012024715 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚóH÷×h€\®2ý-rùy²ë< É@÷×hŕ¼ˆü9Êë\mäq:û¯÷§.¿À¾»O¡3ÒqÙì^Û”ë~vyv&t€|µúí–µL¥äÙÇ9 >aöo^í Ľ×Ï}vŒn|«Jð¹ÊÝ9Ù‘ÅZ€Îðùi±k¹è·9Ç…÷×hô¯`Må{ »Ë5Æo=jÎÍ.`f€”ñ©P}vˆn—}åÓ›ŒÕõ §¾ûG_½Âí/ÒìK9ê^·Ç†•Î\îÛ…7!}ª€ùkvÈ=÷Ú:æ#z ¹{®'³i|gì¶0±¢BçØVµÌœÍzÖÝÄË@žûí €¥-Šór Vß —@|¬ìÍ3j¯a‚žûìùö¤ÝîÓ'p`¤Ö݉¶ò ðÖ.S05oš"d&c1O}ö~JÝþa‹Ä`²[Эãqû\Wè :Þ ~s ¯ö°ÓþiMÆ«J…=÷Ùù€˜ý…£vq=IQO}ö|ž7<á¡·—Š–“‰ÌàeOÈŽå*pÃ"6n ÖþeÏ€¢¡O}ö|ŽO$ö?9½¯c jì[Ù}zvÉ$ 7 t-£$[ÖcÛÜù€òûnÁß‘‰Š÷ßgΫÉ>еon¾.sØ<¾oQÃ…=÷Ùóªò£¢6{ÀòŸ ¾»>uXl§ê€ËžúéMÖF·¢ƒß]Ÿ•±#MÅüå¾G{`ÀF¾;>mÚx÷«T÷Õ4ɸÇåÇ;¬_Ìãö½—Q…ËcpØ@ú÷œ>ϸ /ÆS1·,Êh=¶å¬Hñ¾ _^ûëc,¯µt8Ó˜z{Ë‹‘zç°{&f`ñ¶‰Ãï­Œ>mfö`èB”ôžP>\ì·pÕ½²å유|ÂììNCbÄèx ÷/dÈ¥ÍsnüL˜ü¦Ã‹nBÅ3Ò 5Žxésò€0çjŸ;dÓœZî^É’å©áW·¾8Hr¢O¹ß<ŒYæ6Ï.­Š`–o€c¾jîøù÷´> ÷/dΫOÕñ»6÷$>aH³Æ\5Cܽ“:­?¦÷$>aíùKÎßB ÷/dΪ‚ ù…Ï.Ù¨=ËÙ9Hò±ñ­qÏ\µtµÊ¼€)[Wxò®ñä'æ†é®îúF=ËÙ3W5 9}—…ÔyÞãgŒü~ïœRƒsØ@ô+q;Bà5Oœ`ÜÝ“—W­ñ0«Û³@å6Õ§L€USß]Ÿ˜:ë]§Ýœ+;G¯6Ü­®|ºç{ë³ó¹ Ãl¼'€¾»?%UEó²ºÓ?JE…¬}v}úòñQ)ôk#‚³~ôxó-Fßj ~< Ù|ÐÕÓ>wmš„Œ›ž' =õÙò¸Üð¯LnºÒl¶+%b\TÈö3àDáLnnð­"ü±úìùÕxK¥-ÌúO´€ÿÄÿÚuO,k¦ym\À±1Bmâ LyûwZb¹–» m\ÀJ‚×=,L)ž—稞ŠbýU6ÚŸžºçˆêͬÚ*rñoì^&ÙÓé~z€`'Þ7­@ ·Ó–ÓÀ¾—稞ŠbÀ =NP1­¢gœ¶‘'LïæLªÿÄÿÚpG|€aŽÛóÛ`”Á©ZN€ÎnHÂñHµõ+“psi¨ ƒ–„JûáN»ˆã× ùǼ¼÷úÖÐHB@†fèÅÎêÊb›iÓž9õÜ 8i®DE¤•Í7ê3Ç>»ˆã× ü^½@…&#¬¦6Ü ôÆe‘XÐÿÄ4 !05"123P@A#`$%46BCÿÚõ;)ì¿pßVîãvw\Øó…͉K0Fø'šÎ`å•£o‡–p†#9ù!42ÂzJ¤Œã-OÅÙO`­Ü2FE¨§vfË·›e»Ü™nËv[²Ý“;þ©¾­ÝÓ?3˜ÏL~T„G H³¨Ô<ðù+€ruUò8«8ÃĆÃ×â±!âU†¢â±8L-Ä,=«%'‹²žÁY7ÕS¬v# ű«rãÚ;JHK$—“^2·jÓÄQ Ïû‰Wá²n Ìì;Çrvýµ¬Ë$°uv#›â‹d rv?ÞvSØ+wEDFÐÄÑœjj#Y‚‘Ñ­(ÇÍš•Y\\Εc̫׆¸¸ÂC—Z:ÑÖŽ´t!‡ýxù³ j^_Qˆg¹'MÖ‹†ý¯+pÖxð‡†ÈøÁp¹NY^†8 &¿²žÁ[¸Œm˜…þ› Ëc)Ý™²ùlel>N¿¼we±•°§òú‘€}ëûÂË~„[+E¢Ñh´Z-‹E¢Ñh¢2ŠA>!kæu‡ƒ$mÄ.1ìÏrΚ »hÄFý±{v^V•çšIÏy{û)ì»§á·N[S*ðœBìO³|„/ÒHÊÄo$ Á(® «a€Y5YŸ.ý=‰Þ(‚02Œ™¼¥gÖ&SÇÌÑ={&£Vo«˜lR(›þ‚?«ú±Ær‘¿“áý.Ê{oÙ6[é±-‰lKb[ؖĶ%±-‰lKbPyO«W#hååQ7ŽäR3"-e2áâÑ1ñ^Ÿ¨nŸÅÙO`­Üò0ÆòI„ƒ° €E«9‹JÑ9Õy,"&38ei9rF,Ïœ·-ÍÁj(t!b¡#òtR póeæ3–ˆ„LAö³,²Â,êêI¢Žhâ8Ýô,Ÿ,Șà|-Y37—èv,»ú}”ö ÝÒÀóÓ(ÇáóèL'@Þq•¦¤gaç]ò€T¼4ä"G@¹¬Qê¬BRÁ,cZ†(@þÕŠ’>ò T“œ©ÀQÊù¹Øêz½DqƒÁN@0#’Œ¯`¤á²0á1å¸êˆ~WVjÉ%È%ûMX› F§¦ò®‹3ý¿­ì§°Vî`ëRZ’Ô–¤µ%©-IjKG\·\²\²\²M­hKRZ’Ô–¤µ%©-Ir×,—,—,—-ÖŽ´u£­hëGZ:ÑÖŽ´u£­hëGZ:ÑÖŽ´u£­hëGZ:ÑÖŽ´u£­hëGZ:Ñûš„qS'·F±r(^YQpÓ ÷¹\êÏÊ?e=‚²u#â7vq, óòŒ1îQÛ®c•ÔC‘Ú® ’b!õ$µsr‰¬W}p3ÄZ² 5ÌÄ-Lñ.|<ÎZêkë·¤O¨¹<7`‘4ñà:Šú±'µ!çìDlê«c>¯¿Z„m%˜Ý„ØŠ{NÌÒÃ!Å(Ë{SWºëê¬O$î/'‹²žÁY:&Øp°h[Íâµ O,ŠŒzÈÁÐÉ&ÃGP0έ·©%8äœæ)i|­¬|;,%$PHÈ ããŽ4¸CÃ4‡AôM¶ ¢åiÐbðQx\#ƱÂóÓ20&«F~F‡êqš…zÕ"Ôg‚h ú]”ö ÉÖVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVW œkZæ˜ùÃZ!¤AŒ‹<1ãh•v¡ž`G#ŠC—ÅÙO`¬à]×ûù³:ãüfõ>$PAþGÄ×ù_ä|MQ¦¥§<¡ o!µÈy£…j°ç'j°¦3DG£5ÚûÈ.ÒÆòò~íµ—æt¯¡óFneIfº!²Þùȩػ% iK›Ôºáå(Á> Õ¦tæñ¹ü@ÝÙTžÁÞ8ÉîÚËämÜy#¹$ádô+I5¤S»È3)ùÍ;¸‰\"—˜QÀó ñgcyç„JŸ?ÿÛÒ“nYhàû$šà±Û&Þ1έŸZð8 E’–±KZxþà2a @â-dfwúòjœ…µ,qf-$ú\/Ûkz„"XÛQÝÏÑqvwõ]²ØvffÄL0Úùþ#”6x›Y(/GËÄ£Ä[yWàlÁr¸ë—ú¾;ø}†«l&(% ábj}äÔ%‰£çÈÙÂá~Û[öÝ@® WP+¨Ô êuº]@® WP+¨ÙÂÛƒ@éüc‚OvñXñ›+üfÊÿ²ªFðÕŠý³Ñ´ÎÌAÃíI4±"&O¬ÌéªÙxùˆÄ€µ?f=Žºu••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••”8Ùœ¦ã%6ÜωÊ[’(¸± ¹3ã-ÿ­øÃ9™«óµ›E0ø{1ìuÓ£|»8žù‹:°f2á¹².l‹›"±•¹ºxT7ƒÊ>¶¾]”7á1gâ²¥²’ˆÝ ùRÃÄ#3Ô‡‰FPG"ëáÙ¨˜"‘žívar+Õ…Ï1“17yØ•Áú¸‘NîÑò[ˆVv]dlZ¼„ßg¥ôM,NøoàÜ’F”#àlìÏ¡|È£s·¡Ùc®d]“¹¡òekó:"Õg˺?Æ*PÜ5AJD8töÁÛáðf(êÐjH‚F‘…Øxt",,ü>¾¸GV#Œ#2£3lõ"Uâ!ƒ¼áŒËgЉlÅ^'Õ¢lêTG˜q€}¾žü)a q³c>}s;ä§´Ò@@Íy³’kãÿÓù¾_ÅÙc®ŸÁkó:°Å†ÔNceGøÇöæßõg~áŽB‡ÇÙc®ŸÁkó?‚?Æ?·;™)06 ó‘Úäm “E&¼Æn}p#ÔmÃòx»1ìuÓþýÙÛëÜÂNÙof=ŽºtîÌÙ~`¦ól£˜@µ~¤WêÁ äYû˜…þû Ëg ËÔ"û½f!|áygÀžp…Ù‰Kl äC%o˜Ý¬@Ò RꃋÖ1'ŽÙÆd/‡³Ç]:—ñ:s :ñжÿïtë(]EøÅqÎZÚ„µåyyµåŠæ™\‹‡&d¦ú {œ÷9ªÖš+;Éž¤4|C2¤2d2øçŠW™ÌF NX#†^\ [bÎ.}@N tâ–?¿Ò‘œ£!f‚Ãaš`¸‘8Åf@Þ1έŸZäR¡ z˜ö:éüßþ¡ÔF[|±=Ž•ú”„?m’ c7 µE!7›á¦†X †nÿë>Ê{dþ ¿ù.œYÓ2%_ðí«ÉÊœ%Wøœg[”&÷b˜©MV±!âP3°¨øŒ# 9q ­\ âa•ÒŒíÈqwöSØ+'ðOU¥“uвèYt€uøe=‚²u•••ŸVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWNwç…^`ÆÕë´Ü@k#ávH„ÙŒñ-¾ñ ”rpÙãó’íB¬Ñ“ø;)ì“©>ÇNH~Ö]¯’Aã²0ó¦\é—:eÂ|ø]W{R¼110ñßåÄGWvë]¤ÑT·Î±,üB>aÈ7*Õ²ŠàVâ ˆ8ÉèK;JË)G±ßÜr-w&ÂÕ§çzŽøl¡±3ó¿8V•¢‘Ýȃ Œ,óÂ;2…~C|BÇ1Í|FÖ0ˆÙ7}æ³4шIàì§°VN‰²8_:o&Âí—¿HV–'‡‘:áÕQX‹«<´a(¤Œ ´[;Ô¬ãª!ÜF¥a-…êVwgy!ŠGw7­]ÇWzu]…ŸÆQÆFÆED,$PÂO—’¤&lI„[éüã?¿Ôì§°VOàí—¿H¤ú!ÆqÝÂ=ª§í¿ÿÄ>!1"AQ 02ab‘PRq±²Ñ#B¡á@S’¢Á3`‚ðñrÿÚ ?ë<_QõцŒIÀU¬jª³†ªt“@ª³å'yU™ä~É·<ºÐôÂÓðäløŸ‹ê<•]À;À¶x™ìá'v¹”ïÊ[¢©m͵ØOŒ›qß?áh™ò^ÁžÏì-mK•>mÖ4l²Z"q0e6°·óofÌc<}È>^¹Í›ö-Î~èºßÊáÒñ}G“ÑË})Ïÿé‘8yÓr¯þ•G²›-¬I^} ?Ñj?m£¿ã+ߣ±Ãšk2ãÆw{•cèÆ•&9Í`\íuÜ«½õhk]£XU+¹ìt9µš›ä´J¼ºAx€ì"<\NÌÊmùyn5p¨´e§vÿð„8ŒU“æ‰óDù¢|Ñ>hŸ>·ÅõFÚ$Ÿ5LXòK‡ÕQ¦*Ug6KÞp?îäËœÆYp$ø*Yh´HÇOj§jD¦[&Ndžõ›­OH¨Ö‚v´D€÷A„÷5µ$~ ˜"7z¬Û\×é;$©øh«³œ/šÃå·U„ãœd‰ ½ ëÜÐ3¸I)üà}&¾ïCÅõG´[—gDàs„pˆ½' èµä!8yò=­÷žMQõ EQEQEQFÝÚ µ6§Zö™W3 ðUvs Uˆ»º>J±€" diž*³¯i¸ôëŒF›º/¨ò>‘>’×±Ìà?&~©BgÒS B ˜Îˆj`Ë~kýôßÉ:ád‡¶P׃”4¸ßßöFÉ¿:PÞ(D»­mÎáÖx¾£ë2Š(¢Š(¢Š(¯h&Ó5Ásr?ˆpªÓª9Æ—޹Ý.Þ%2sžÞ|Ó˜hßjk-ÍŽz~/¨ò8€ä'™ÏÎöÜ$SõNýSõïD§Ã[’e>êo$\5‚È:rÔµ£RSÓ¤§í;@ªdéSÿTJ%U‡Ôì Õ7§ ¡ê7­s¯Wâú$I;ýéôöÙٓ?Pl¸ºÓ¡—J¬Cä[ÂßúJmZÇ2@â5÷£N &chãOræÛ.Ç!ÄbD„Z^Õ­+ŠuÏyÚnè‘öVƒ>ÎÑ0ÚÁ ÷ï?¢à¸'–°tjU@ëOžÌ'RsƒˆÚËb©É¿þ2Ç’æÃšé&g†èîåu0Æv借ܸ£½8¸?(‚ çá:z»ÅõBœœœœœœœŠ)О|ÓÏšyóEB)ÉÉÉÉȧ(O>içÍ<ù§zŠ£)ÔqØ3(èª7kFÔ0뽜ܪôšZÀíù“ ¸pžŸ‹ê<µ¸t9¨Öë!Ø"FÛtáV¦6n×wd¶íÒèÀzfîÎÖ©ípÒr«1ÎvS^Ò7¸@U©Þw]•^œLv·õZîlâñ3¢¨×f0tUéÚLvôMF lÊ6öZì½"”Lvº×8¤6S/r|§r0æ™8LöfÁv[m¼ØŽ:(Ù´Ÿ‹ê<®o—Lâà|Œ¨eÁ Ctƒ)Ñ$:ýÅÓ:*k*SµÂß–QïÖåÅ ¿tì5¥¶ënqÁ&˜o…U¦Æ–á‘#e.}H·ÂF…< BÍÙq ¨-7øõ[ÂÃ5Ä'^ÐÛ$†ÚGžUFÞÝMšŒw÷'ÈuÐcIU¤Sw6á¿óiz×5·‘´F™@“Ü©–u~/¨òAAAAAAAAAAAAAAAtZF •šú“øÜ¡«ù´Oe•+6«¸‰gáþSh´´í_W²-Õ¹ãïU)Âmdoßǧâú(o!§`h9juèN£ý Ô¡vŸL8­;”Òs„SáW¦ ÁÚÞ«Óià\ª°¸‰‰O ÝmÎ" U^5lå „ZↃÅSªû Hnõ0xŽ¢vb~)w9 Un’ža<:8u˜Snâíê«p'UP@ßçöþ$òUx·³:¿ÔyX|×£ËWç”*H×h¦Ô?ó+²ÖÀN-2ÜB­.,²C{åUµÁÏ3löµN8pvœj}ÑÄoˆUmqsfpáº?AázA s*lë%ZÒöZ-déBѨ{€1sx¨ösz° |½çÝç¢'²åÖhpUgÞ@O:a§M#ä´4Œñû­Ý{‹Hä/:ÑhÓÞ¢ç:Âû§pÿÕIÅ×–ÆDGÝ4µÜOÅõ޳MýiÑÿ$ÿîZÇ­„´UÎÆÓâ%6ë ÇFƸeóÚ²¥²_ÎaÐC±~ª¦)ãAóéø¾£Ñö©òWö‹ê=G¦ê£ó–åšG­ôq‚˜ßô¸!,sà„m aË2ËÀ$ëž ½NÁ{±¨Æžj«êÚûI¶Î:~/¨ò¹¾|•­xÝi^“ý…zOöé?ØVZá#Ö¦i¦Fál) ÏêFØuÛÏ÷‘¬‚ ‚ ÅõP¸/e½å7ä¯í ¬í[9„jóm¥£šMÛZe9À¼b”ÄLy§@¸69¹‰ù¡km->ξkÿ£Ÿçñ­¼ßËDQÍ/uÛgÜtF«ÜrâiG hœt.·šñDy-™¨Øìeó@Ów‚¯¦Âö€M<Œ™Su¬6ó}©q™áŒ«šÍ‰xeÑÚý•ÆèÞëp|÷#tØÝÉÎXm’Ñ<exÎÖÈÆw|*»[­×»Dâ!¾ÌðEÔä‚d{¿tIØiÈß¿«íF:Ìl ÝéÏ-!¾ÎΟ9NqÜç[§köZïëØ\ÞäÇ<÷Lã22.qÐÂÇp(JoâLZ„NzMµÑ§Ç•£“Ùjl¼D/Jw¤ ÛkÆþOå7åÖ`È@\pORÐHÓ¯?u¬¨Ûx^‡’<åØ@2ßÊÖHsc²ª9¬¹…€7pÔ+ŽÔ–Ù©ºnŸr–Å·lMÀLµèSweŽÓ£ìµÖB´|9?”ß—­šSJiM)¥4¦”ÒšSJiM+¿çÑ­M € …é4|Šôš>EzM"Œ–07Öôíš\ð“ùS}'Zí¡ª¡W:lÂe—ìç ÑêÙŒØS\×p":]ÿ3ëñ"r8¯GeÛMin!¦1ú&óoô‡‡Î¶dýÓæótÙ¤oÝ îceÍÄ:]Äi´©Wi{šüVÑÆ4Tù¹Ý=.ÿ™åéÈâÊyO+‚mÙ ¶Èl´3Þ‹î-°Ê–¹í"btÊ«Ãw(_Í›c½1Ì«u¶ö¶C`ê2˜ëœ[-ƒ¿‡Ø´w’IáÍÔüß W¶s–>äâ,™Ù;µSˆè5Äâ#~¿evλ°™91&:pAÓ1§»î®ÐˆÁë*°Ÿÿ_Á:Ùäi— vuL""~=OÌòÛÒàžæwµ];ý“)ÕAIJ5û«öc`Æ’™¶¢ã¤LFHÖx¢òù&âu”jCmÅØ1¢}\E¦ìˆÑ_»3ÞLþ¥I ûB}Wb »´8\;[ý­TÚÞ€7qwκ à¤8„ÉÜ×Bw6„`7à:Æ·Ëø-ËMé…‡q§ÂfxÓ•JaÂ=Ü+ûû¿÷¨ïùž“ITÈäáëv9¾ð·kÈÇàuÿ3Ôðõ»`Î;ò…Àட\Øvmgisˆ‚}ë k›nÖSmA†ä{Œô»þgý€åi#ÝÔwüÏ,ùrJ&¹oä# B9ëHy95þI<9ü“ùÕ4 oÀV6µøs)î‡GgÞ¹¹$·ßû(Ó0 t»þg•Íó\:<oÚ¶{Br'Њ{-3ruwKß!¯Îû~ ­Q´±ð"Ìÿrsí´OÏ¿Šôn~Õ!˜ßU+œG:ÜuB§4jÏá¸ÙðÕ MÃÛü¿\aæÛŒ˜ÝÔZmêœè¯Äígô¦+L‡V¡†ÀµØÜ¯ÌOwîœNÃutíoêÌ5Tƒ–±Ñ?çoh;»‡½9ãqÚÉíiݲzñtu½ÿ3Ñà¢è6Ï\]8»“Ù¶í8ÀA–·&ÉMôÉÜáO‹ê=dzØM¦a2MFg=” vcUéòæ›ù™–ïnx¦Å0ê{<ØìÆÐC`b9±Ù·kõL`,¦@ÞZë#æž¶×êR±Nô\XN µèx¾£Ñy ¡òU ¨VáþÂñ}G×àša¤˜TªZwßû£huKe1ö7uL8ñF6ïqvbVºÛå¤íC]I¬¶ëɬ#³Q ¶u8ùt|_Qå{¼×QàXÝÜ«Uþ²«Uþ²«Uþ²¿’ß’íµ¾f7µ¦'Ù&%Qú\à¸*“‹Í¶°q2uø&íSqžá¹Ssˆ #2aQtâéü»VýÓD¼'A•F§ƒM­«~j‹¬ q¨7¶ ulY¬i¨ 20½£±˜â™uÇ}ßuL³d;]Ç­.“à?Á8†¦—ÒÜT\@âáöXxuÁ[dÈ–å§¹ Rî×áˆvù=éÍ™&ëäÉýW4àDób5ŸšuÁ½œiˆèø¾£ÊÿÓ“ØoË2ÒÓkã-<ŸÉoÉ8€×@ß ¢Ÿ9‡ÀÝÁSðT†íü0œûÕƒ3þUÈÓÎS¤B¤ØˆýeQnÎC\40©° !Ra'!ln  nþ= õ¾/¨ô}†ü¹'ò[òõ·ÿÄ+!1QAaq¡ 0‘±ðPÁÑáñ@`ÿÚ?!úžÛùî¾3˜v:ÂÁ@µ ®ø‰–}ñ2Ú™KÜa¨iŵ g Qp]Ö{؇ÎjE¦ï›%8Ãw—!Šv,~̤ØüÞÛà‘lŠz|˜«@D–'_’°Œí3´ÎÓ;L¤SüWºøfàˆ;Å¥åÎâWžáÂÝÍÜI›Ú’³°rÌë‡,N\šÙË&á«ê#hŠáÓŠüâLe ¥²Æ-NaÈ™ë{”Êèl«mù/†µNè(i×>Qjø ékæöÐhO¸Šª@lòĽI…HT»jûj’-³®‡‰Õ¾eEê]Ñîfø d8Ub=©®u¬c:s7ÆÄ¹a…'[–®½0DA•B"šî{!ÍÝS<óµþ"¯î/„=AA^ÑW,^xBh×ñy›3flÍ™³õw¶ø òÂNU¾ìe8k_ºŒàé¨ G©hêŸ3²MBÛW“äöß2¡dyx†©BHé0žb+kq Æw‰_㪢 Xiv8‰ˆ&Iw,ÞXºëðÆ÷i·pŠX-¢åFCU—ð³y…×Zˆl°GOðÝ*yçžyçžyçžyçžyçžyçž[JZäˆ[µèÊ”P @ÙT£9ÄFq°B7Fp¦y‡NLU5Œ:Y6]i°a‡F3qÿƒ…C÷¢¢ƒ€@>Omð] Zü•Ù‰Œ^R~H0fP³ÇX±åº!d,-éAþ¢öÚ[B²°®·4ˆ,Ê(÷âY2<˜(ðÌ’Âhx«>Ð>÷aäÃ{¡U6çûs){ Â×)•ßúé7beܬ¾ZbâmuÚ¿ßÞ% ŽßÀ~'Õ$„Й¤øvú>Ûù ‘¶ûNÃí;´ì>Ó°ûNÃí;´ì>Ó°ûNÃí;´ì>Ó°ûD!¡½ç–Àä¨ýpCÖôóYŸ±L §K2»øozž£ÖÖç¶+?¶ø~YsÍ%èŽÄMˆê;¬e¾–{Ê$¶îPÛï0t´Ykx–rººá.ƒ¦œå¿Ù1Ô`ÝPÂTÀže¡€uøŸ¡‡+VäˆPj¢FØLM ¬Ý3¿ðE%YÙ4vZñn¦ÑÁÎ[ý4s#Ñr©l^aH2Í›‰q¦%™KŸ¹–MDi']{'Óöß“%Àzg¤Lý$˜z;æh¹ãº<ï£U4#Ýü0ÎÚQžî»ñdý‰€ââÝ– ö|(bB2k;&F’:ƒDý^&©e ñpy]‚Poü#_I¯ëqV®Ø}Ù®=ú%tK‰ƒßñÓ`G×QJk5 Òˆå+ ‹Å[ÍÃö;6¥LøW?Û£ê®z–”0À__ Üh+Œ+ipo2Üä±]4OÈ~öÐ:èxgêgêgêgêgêgêgêgíb­¡{ÆÛ¸~A@o7»;EO3õ3õ3õ3õ3õ1bŸ|ýLµ'VþI\é쳺Né;¤î“ºNé;¤î“ºNé;¤î“ºNé;¤î“ºNé;¤î“ºNé;¤î“ºNé;¤î“ºNé;¤îËS Ä|ZÆî Õ°´˜R¨†½bèšC‰Z5  w¨èùmiîãçöÐhÆAMn>Áþ"RÚ>j€¨ ª´{³ JJÈScªF°zün·æUùÃÏõA€+¯Õ¬¥ó2¬ôºŠ -PgÛ˜ö(ñcݦû­Å»ÐrGYï0[ÓÑ™X+Ú×gÒ¶ZLø»‡Pç­µ.~̺LÓÃÌK¥J,Vç\GÑA¡c]ñõ]‚ÕË€po©ÃÒåÅIàßh)íþ‡gÐÀb²{‹Wt!¾‹¤\ kS‡vÕ:éóûh4cZ¨¾ët.Ñ,îIûŸó?[þcûßîTV%(´¸Œ´B…ª´Ì‹¡~†à}C=˜È4´Ö$›Ncíx…Á3 Ø`?XR³ÐYW¯#´!¤3‚Èbp×ÐðnTCP2•x/«í ;Ï÷“šZQ}uþHz?k}Fn…¯ÍX&]†â ¶Ïe_âàž¶+ÒÐD±±úã7%óðÖâ”x¼G9~—¶ƒF&À‘Hö«l¾&¦z$èuiω’gX³(æì A½ km!âQ5رVz¢x®”6JõÜa Áð?ÜÇÑ1–™Ìã¥ÈÙH½73°5“%'Ì:rŠEXõ&:ÊC<ÁAÒçFTÀ‹±ô<&U]gr ¬ IrWRf:T­Ú_I‹» òÇ@®ó`+?‹Wçê6(v€‘”€&qœ=eM®Vêïò‚Œ–€+2çl#t(úý9 > ¦!·.¶é·r]¢õѺ[ã ˜H%ß’ÏL~u½Ÿ?¶ƒGäÔÊYO0×8øpèпå²åD«õ®±ú‚ o·åþ£ )ÞÔmú¹£þâNõì§E@ëÈ9Ú€·Áóûh4~MI7c;¼î>ÿÌœý?mÈ~¤ ZÌQk>'üÉÿ2(þXƒRÐÀœî·©Iš´–zL°]b:÷0¼“ËåË NŽCIc9®ž>mŒif‚ÃB’Ê•ÐÂØß‚v߯iÛ~½§múöŠå;ÖÇRŽ%J8”q(âQÄ£‰GŽ%J8”q(âQÄ£‰GŽ%J8”q(âQÄ£‰GŽ%J8”q(âQÄ£‰GŽ%J8”q(âQÄ£‰GŽ%J8”q(âQÄ£‰GŽ%J8”q(ë¶¡Y³ —ì”–F’o΀“¬µ[b…ܧþ12ò)|Îãí;´î>Ó¸ûNãí;´öhÏk5&§°Oßqñu?oÂUýZ®1W±·êêY{¬Å]tÌ«, –¶ú!GtR¼5¼Œ¾‘m`aÕ{2ïpóQb|®k—…ä5áoc›Ðz²‹ttP¡éIU›fcÃ@ Õd·l*»vˆªËAÌbãÐ%ÚŒBëþPäZUÕ-Uý*0ü§”Jžüxa` ½|¢FÚEƒóÏT ÇrÝPé2®¾:ƒ{çÄmLRëœuÃ6—ö§tǧÓ,Ø_wšÄU 2 nàæ²s7eB”Æ©ôb‹Íf¸Uf¶Äé\4:ýv˜º_YÚôÝp°’!Q Z³«t¦˜Ý6Aƒ«©r89-é3"ª_Så-hˆR­–™£ ±é?ãÀOßq ÇNÝG`T©ªlíÓàý?©ÏÖ<À€@PÊü¿Gc@&O¬;hÁ +ÿ n’¯ñ)(£õÄHÙØ:\Y)œm–Ì«}ûN†n?Ò\ah*.…Þ0ô›“Óî,ÏhŨ.>F»ü‡y^[jhüŸ¾âN€·°8—Sôü?ø <«þù£ò\Íâ¼&`n’“Mü½¬XÃ<ÿÔ®nº³P r´ê‚!A7GÕat¶µ¨”¸á3¨üëjG£óý£üð¬á²©Ä-Û 9SªfpeÅDÅ›å0ÏbÙVÆ´Œ’šwEÇJ.½—P__ªËR¿Šõ´Uúöùþщ° SYJAŠQ‘UZºÚˆh ]µkÐï*T—¶´ Ó}n$ºà·TuÓö‰xB1Ò4Ûê.Óà{‘ßf†.ÁWëÁðL°6'Ja6Ú¢T.±®°XåéZUÓïpÂÝØ‰ªoh UÑd«cno“SjÖ”‚™ 0?o FÔÛ^©Æ<ÕW_äŠv¬´xܼVÑN‡÷;G*‚Ûêõ‚Ô ê6‡Ûé¨@6°ò¦€+ÿŠ‚*dîüè›1®v·S¾¬èûÌñô~ÑŒfÒ$JûØ;SØ©}cPã-UçáíÈem¦Vù`÷X~¡ÐèÇ +$<çw$˜¨‚ZýWø‹~HªV·î„ ‘m`3èJUº'ÄêPæ+Pc–(î elØu¿¹ ÁÍ]¥uÙ`­u¬¶ÞEiVì侉†1E¹ù+ aºŠº×–Xà¶™^8ÌWØrŒï$àRÐ×€¨€ÔÕÖz€fçÝtð~~›’˜a<ƒÿH·¢51j¶Óu ûZu%C/²щ7幟 òü› Ü™R¨P}ƒ‰jÛô>Ñù=ÌŽˆÕ:òµðöåÜ]b¸›8†Z2Çûø„%’ÏŸí“Ø'´,n_ÅMNEµõB±êè¬%Ö“ `©¶ìÌr†Ëæ!Pˆf|[Wâš©Ñ ôGoÍöËé='§ó ÓÊ€¢ƒFû|;€C£öŒg€'ïq4Æ¡b'?Å?ç (ðB”Õáéò [PÖúÌ -Ò PF·ÛéYu×áA”ÕµðºF°ýVC›¯…ìÍà8:†ÈèØ¸o’ö0zFÚitqN´Mßez²ÌuÆ!—€z±âú ÷­Ž¤ª·J‘íþþ´gµ¥G°J<Î9nsOgŒx…©¨L¸žªˆ5¨<áÇ€¼?eÊÐOuAèµ / Ytõ–ËÚ°´'$zÀ VlºpÂÝØ„+fÄ'F)ižs%D¬/Õãè=âÃèuùF › ñö*hžIÍàË m0ËÙÿ0Rë ¸ã9Õ®ñ,Kû,ëuú};ÝÈpkp¢Ì°L ÕÓ˜+îK§¸u_²'…C±tÁž‚H^¿\Yá²ûßÍ¡öŒé(ãáW,CbÔž10™¿é_Ë7ê Na°jWu… ¬ZOYg$³’YÌûü¾Ú ü>Р'é8þ[¡O›qR²Ó¼¸q¿ înd‚\zdf‰Œª,õšóPÀ/V°Aõ§˜•°ÙÂ9{Åè—1Qx4¿yz’—Éí Ñù¶ POøéÿŠŒ•[uÿÁ{h4~An%¼Kx–ñ2 05ŸõׇEU÷õtĮްݕ¯Ph-šƒ‚ÇúÿÄ»ÄOxÉ„3ÞT^Jæ÷œã.™•;+U«¦ˆ³Ô1n/­³qW–Ð0ðôLø"lÞJçk‡žžBê(v ÇËí Ñ–W«ˆŠ¤šxð9ÖÚ7,®¡Vµ™ê1ë?WÆ¥¬Rg2Åê­À+ íh¥kZÄ´î^Õ›¾¯Þ 3ѽ/ðLh³„iï™{Ã{~—˜èÀKÀÙï™h ©Ù³ß1Ћumóž~†Ñ.äM{ÜPŠLS’^u!HoŒhÔâ`À¬>­¿ø0º¿«í ÑùNÀS¤ý_å¿ÿÄ+!1AQaÑá0q‘¡ð Pñ±@Á`ÿÚ?ÿð„>ßú9×Ybbؘr ?ÝÏŒÚdÓ(ç—>1ZX$Ù.4ýÎ!…€»ÖÐÀõ X"X/Æ…p0hoGÿLjÄKb¤/˪”@œ0šŠk?ø!ú;áÅ1€tâƒýãŠKðP è+šOÑ÷pðUt×  v#Ôýˆ˜NÙùæ~yŸžgç˜`‚÷þ+ìÿ¤¡pÑq¹$d'?€“»@ç,pÔ©ZÒãgÑO@.Íñ¬¥•¸È ¿)®]ñ E@  +´ÊOrÚ TBro{Ó6ÀŽºœã泋 ¾Ä1'0$F(À5‰jBä¸&«•%`¦Ps•áz`h(ºêÞy¸0ÃZ*R4„BòL.“^3)}ÐDÚÕÀœžæC b¢ä,ÈL†@ì@ÎQš¡ä ÁÉ»ãòÎb¥²Þ!ÛŽg4R)“† çXõ NÁ_±Œ·0Pç\P±V»d΢¤oHƒp¦êÊæ4 (Þ_^«YÁPÅ<¸ÆzÚ5"öuüR^©#¾ñ—Þ2ûÆ_xËï}ããÓ'Ù)kïº?Þ(íoePm¥§üÌ#…:ÒEéR KJaöYb6!5:†<ØÉ¹€Dè'x 4|˜WR·A1ñBpçç¹øî~+’ãïâEƒ·ò!­ ("ÿ@9fB ""ï&ðï²Ùiu×u¨¹+STˆA´(Y8ÝÖ #¡ÁÑ×"Í|'ÀnÃAC቉€Z©,Þ0_€ë2@IŽÍå„¢Ú £IMþâ†4¸ÙWF1{8_Ú*žÁÒsrO)+Øóã(ÄïlD&©CæºÂJ°"Ž÷‰„ìà@ËG®±0‰»¬ìSêd{d•™%£Ô˜„@ŠþYâUàùãÁþB®ðÙMœÜN–òú’Î×® ‰Ðs£ë€PN(ßàôAÀyËöÏL¿lôËöÏL¿lôËöÏL¿lôËöÏL¿lôËöÏL¿lôËöÏL¿lôÇŠ,¶?.¸©Îs5ýa@—éõÀƒž\™©wrˆ–ЧL¶J L\„Š»bh´ Î¸J’€R(¤h5Lw9¢‚™#Ž“+èÙÁD.€ý¤wÆ*P"EÏP:‡;¦®K_%¤ñ…Fú ¡p÷,e1Ь;ÄÖ$(0ó-&Ø rLLjBt2ÇТa¡GœQ¬µ Žø€â•ÉÒ'(WÁá'pÁA\± ÛÈÎ|eHd£jn™D^9ù<ä]0áÝcÏŒÜÚ·,-4À|r±X™h§·Å\0[‡ÙÀvIþ˜’gÈ_íûþìúø¥òV Ïžõär#ôtÑÏ?ÍTKkŒüÏ®~g×?3럙õÏÌúçæ}só>¹ùŸ\üÏ®~g×?3럙õÎs]  ôÁµÊr¬äIzÍóŽI1GcÅ¿†=1¥æødÀ9¾\殺bo7Kå‰ÒC¡„#ÐøWkðH@ë@R€Z¡®1¾)T€D1¤ Ök_9Kn¸’4©Q²6¥(of ÃPÔ"áNC8Ú‘Ä}ïúÏõÙ)(b¯ßxf¥Ð±Vˆ“bí,®¶”—CSäæ«ÃçõÈ\`…pÉ¢´«»ç9Y)ó˜‘,”@û¡•-gœ@¼q\yªª&ö(¯l ( ˆênRÎùµ¬EØÞÜÿ]†‰Æ«„Ô|Lºˆ‡2dƒZXoxhÛVAóÏ¢ç\µ²º¡ßølˆ÷Κd²•¨º×{ø¤‹# jèºSeÍêb{©ÈÎû ˆ¡‰$è×B1Á̯?K&£+Êa†+:_Ö*Óz\—•â67ÐB\¢âØY­7aDy^¹0ú|*RQ3ô‚BÆ ,Öùvçäù1AúÑ„P9]2oi1éñЬ×fZ€æÞ›7ßî?„ÅMH‚ˆ% Ztà h4ÞªŸï!eG@¦Œ»„Ý¥òôU‘à5ÆAò@<Ê"mUëÕçÿ1ÿÚ;°œšÙ¼V;¿áš½HÁÑ6:Ó›‡Q¦ÍµåçžÄšÐ"º$*a ÉüqÛ‚VÄ ó>¬ó>¬ó>¬ó>¬ó>¬ó>¬ó>¬ Q•®ÛÁ&\)f)õpsý‡¦°ôÏö˜™¦%f¸ŠÏ Dp Yæ}Yæ}Yæ}Yæ}Yæ}X±(‘+<Ï«9,W'w?ÐzgûLÿaé”Dñ´¥ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?ÏÁsð\ü?À€•fØa£Jà…Q ðã[¤õKóÕUà’=X³‡‚£Uó•|©7(‚„Eø>Ë!¡Ò8Ö¡q8µî§îW­‰þAä0Ù\é§ u®pDÇ|Ñõ¹„ùëœÜùÈ €k³¶/@ðÅ6Y Õ`>¢;qeÇT5œ›uk]rC8ª[vÞ‡ŽÏl. Òl!4Êa²J‰Û qµ7BЫO°öq$t¥\¶¼ÍÏ„ÐÅ´° 刽K `Éxn?Lõß$:×Òùâ€A<"ÝõLC Ô 5×¹¤LãkyŨ&2œ¹A~[ø¨áÚ›.ÁéRï³z6Ãô#mJu㤾†ŠЀ ÈŽœå¿HŽÀµ&†|Œ˜Jº? ŦA¼CÑA€Qó~²É5e¥˜ì’NxØ:uÞ÷v¥ºp„K¥8¸—´ –KDeÞ÷rÃVƇ$4&£×+úKQ39¼Ù\­ë–+ñwÄ4–/ÉI§xÌ»ú·*n›8K‚Ü à%ó3œp‚dT‚àŠìE!¬7Å£ijqS¯@ñf’ò­ÖŠî%q—¢k4\¨±˜ ¨rõø>åe%ÃÒ“äÒ•5Ì–ø½oÄNÀØÂínHM,*@­0’ Z ;h^õu£Pf¬ X%‰¼°Òì“K€4Dyß?†¹‚à1ÎyÄR±DþŒôCDð”éÅŬ2–]þƒxø>Ëúž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—îž¹~éë—ÒÉ”A*c9[žæ²€(_8Ы`ÔuÀ0ŸžÁäè’T£œV£@åb“CCr;Ñsȼ-èc Ïï!öXm(Á‚!#+¤œv¥À{¨6»»ß?ÂàoC€ü8XZ¥ƒ¨t+‚Be'6¥óš†'mUâtLp¨¹¶Þž‡‡%þÁ —²?'óUP²#òÞ 6Ì"¼uP4ör7KiÈiõ19ÔHD4/@+¬.–0$^³B—ß§$-v£¾¿C¾-vï|å"¡É¡@8éW ‰ /ö5¼Þ|m£6 [›r02©/ÉŒxcñ ªîà ¿L^þ…„)X‚+•^†s눺QЕ­ØÖ§‡F‰ßãˬݰ£éi1Ôƒ‰J*µ^¿¤ø$>Ë Ë¨Yp°OÅÎPó tƒ³ŒKASPÙP×]y3nN@vtyùâyµ ê4®æL¥ºSÕ†kc¬FÌé)±ä¸+$‚iIÀsç‰ð’ ºlE0i–¥'®¹wÖGþu@j$ Õ<–eCÀDžaOš‰‰c¨Œ¾{®Tæ2“±¯’Gx+ÈaÙ©Bó‡3²Cþ|˜uJŽÎbS lÄiE¡gYŠ@°nù®°Ê•ØB×%°”Þ"à ìïš9nüO/ýDú9ÐÓÊPáu-:1U@I„´È+:abÈΦ,T ǽ @€CG ”Õ§Ñý Wo…ÄäÃp]¬A2¶Ýí¬#É…¶¤r]uš«5ÄÄN–ª'wúÀ—â(£ýŸ‡ÙaÇêäÁZFí¿l¥„áN=ïÕŽ%!ÛY¿å¸ÏRΙN†3¬˜è¹@×AosfÞ4š"Dt§I Ç´7VDú;?DÜEfèDé Xÿ`UÖH(Ù6n®Œê¦i²çT"‹-Ð/L* ÃŸ%¼å~bOE¨t»QàEx˜È‘«<Ž £Ròü6ˆZŸîbÕèù”E£ “³a¨«K6ªLTßãÎ!‹ Ü’ür]Z@ÓpxßÇ6Ú‚‘<Žg*Ä+8*mÖ ¶Wä6Ð8pþâ\râ’@§'†=<á¤iFzæô0ù,!)£.ÌD<1Ê('?OÚ ¬ªçFs¬€öbk¦}–=¢Š&„À€t?KNTº4D±íoÏ&„*2Qw«Ž¿§ÅEƱÛOÙ+¼,çBö|ß‚ð®Šü—§Æ,mDì˜\ò áfp¬Fô°†BÀHëÃPmx“]øÖ0s”F Þ“È0ˆ #P9U»¨Þp´À–çy@Ï7M4,.òàËtV¶.ëöjŒU²ÿXy/¾qÍ›È;™öXp~Ëg¤æ0'_ž^(Q†¯3¶r|¿—Eþ‰Ÿè™þ‰Ÿè™þ‰Ÿè™þ‰Ÿè™þ‰Ÿè™þ‰Ÿè˜‘ç²Ãƒõ”™ —ZýZiq2ŽŸNˆi/M,è®kœ‰7ïØWç? a`,Çg@ ”kaJœS¾V.änk™‚xÓÄ´c61ÙLŒ…ß‘Jk÷}¶o²ÀÃNOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìäör{9=œžÎOg'³“ÙÉìãr0è)j2”¾p #Ji-p©ÐA¢ð$¦8%GÂT¥ly¥Äì„"‚pZ4Ó”XÆj² ŸðnèÏ&‚HE€ ÷}¶o²Æð7 Kœ Eáë“2²wL9¥ëŒÿk?ÚÏö±× W«1]‰á–‰¬0Æ;ÂtD~†Yêá.!(N‹¤J(¨Aƒû1ÈÓ¡ Ë‹/†æ¢©ª€‰WfžÙ¼ ])AŒ dã%vZÚ Á¥í†G´W£¤Ð#iœehnPOŸ,Aè ñ:Œë×X(I í >ŽxF䣿@ê†3ÊÙû$’û¢«Žú)%o»¸àº”xn  ÊÈíËS¿\¹Z”Û)¹{·§!!#@ðš ^ù8Œ€§yú|3¬Õë‹×bñØø•‘k’Ã~Ò±Æ<=ðÛ«úqvMc%b´ Wý6b'"|¶ÍöXå„ñåDüŒVÑM'XLü×lÐ\¦ i{yævΙùîÆ3,„(Λ=DÁ¡€r:¡ïã ³ˆÀ-8jŠÝ·xíî ’ÑÍ,-˜ ì"è$*‰À¦jS÷E±wÝʼnêÜUÍÀ8É´ éŠm«ÉYlËPÆ¢€ðv7®‰‰ DhEUDt˜HíQx ð¦÷ˆœ4B„é»Û”úeÖ¡)¡Sx†m¶Uû®ˆý™ª! &î-Íuâ¤JÁU .7râ‚urÏ'@0`½C €ÑFÒ@†¶µ;æcÈö­ü0 ‘Ž>Ø}¿ñqåÕ“¶tZ¡Å[3 EØOpÈGE®¬´Ôsž§Éס‚“¦ ]Ñ¥NÓ¦r ìe­ ×+±“ºµÛfû,8ý5Û6xJ‚k¦K* &çLü÷cùr¬´#ËÎŽ@V ¸™ /Í!ýÿâ`1ÂÿFByM) O–mÏB—S¼ën>d´W‡O8ÑÆå¶ô:ƒÎÿBD t7¢˜Î©qQ¦ÃçÇBÜ=Ö§vG!^šÇGB°é~/‘úÿâì#gÆ!öXqû2§G„zb‚TË¿é/—òõ?ÿÄ4 !1 0QR‘"2@AP¡ðq±3BapÑÿÚ?ú‰ÏŒƒì3§Äyãñ?BDVMpãñÇÆª,5ú°÷¨Ìˆ«ÈßúN¥EÆì, Ñ¿qò0bsȸ¹ØÙE‘Ô O)Ñ?t(ÀY~û£#/1ØWbMa×eúûM>¥ó_Ö&WA@Íã%UéÊ[hž0gÈ 7Î>FqDõŠ›fÈ9ùÅ׌€ÝÇÊÏïþ6Œ£(Ê2Œ£éÆ¡Ьt ÊcÁÒ º›©«Úu!Š’&êÅŠ‚8Ë›£x‡œ]#“V>_xt¬d‘NÈ»Dˆ‰¶jçAG‰u'“vM_T 3v$Ð"eÂqó=€W­Íƒ ›Cü\|¹Š[|Ãû&<ŒÄ†Zô9*¤¨³Ý33>FfI>Œ>ô#Ÿs/X—ð¾¸Õø‡ž¸Õø‡ž¸Õø‡ž¸Õø‡ž¸Õø‡ž¸Õø‡Žåسs>€ÅyN‘¡byýXHÇþ*feÛ‡ë4LÅ™ŒáØöùûW Œ4âŠß?´½7p-ð¿ÏÏÎzþr™:-ŸbïЛ7íKÃ|ƒw'æ#ì߳˷Ž·ú¼MK¢lSCï¢O(0¹ä#!^bWÐð.Óšã‹2b+ïþ~Ü?Žù®^M1ê ? Þš¹)½6ÕÐý¸꘶ÑdÎ\UÔG(lC¨kä Õ5ñ;6z Ñ¹¼µñeÌr|» ®Ç«ãS«   xþ“S9öM¢×¡p».Ò‰»eKÙ©»dº®ÿ´\§åÔT,hA§r,FÂê,€û1ä(n¹]jŒ\|Ìé¼Î‘ûÌ\rcçÔŽSm‡Î3³ 'àÿÄ; !1A‘ð 0QRaÑ"2@BPq¡á±Áñ#3CpÿÚ?ùî¤ÙK¤ç5¢>2tìš|‰ÇV…`™-/õšiÕ­PRGޏ…VGu2â×7“ñU¼Ú Õ* ›Ú<éO¶˜• ´·ÛF*P¤¼ÚÌ$ó œI®]¾Ð ê`<ì¨<Ùø…%įÙ3ÐOBpË+°i· Î)"œ³¶á• ÷&´6fnб0p' U•¥Ë÷Λe ™Hß>bЕˆP£fh™)¦ìͶIHç8Q²2Ai¦ײ>_xuÕá×W‡]^uxuÕáׯjxžµrJ‹³—ÞrúF8Öœ™‹§fûøÖœ’¤¤çáÕç‡iÈ P8ùÆÿÅPDÅÕl¥[ÛJBˆ9‘—U z’ )»Z\]ÐÊuÎLLMiR >4mÉJH¦×}7¢9¤ÀšÓ@RwÙLZÓŽ€×pežÖÉRÝ =ñM0ÂÁ \;&Ëf8r”ó(@*™âi)RÂT`}UgB[e)AƒÝF¦‡8€p4sŸqôsƒû'i¯G8?²všôsƒû'i¯G8?²všôsƒû'i¯G8?²vši´´€„äqÇÉmê)jA×LØ-¯0möq×Õžºàå©JT™§E£”–ÈŠÚL7>[Í$Û …‘˯V{í¨¶aˆüwþ"’-ñŒjß:^—ðƯÎÿŠk—½ýÈŽî'BãÔ΢ÐA’<(é`j4Ýû¾¾}9ž‡„ÅãV^µY¬¦Êˆºg1­ž3\í«éòB@Δ¤¤^9RV•{&¤qLT󉎀ËÜž‹¸Ðæ”’¨PqñË^G=UgHHOYê¯Õöyë­7ŽÚÐt$¨˜3Ž=]JM… MÐNsöö¦l¡¥^ 'êyŽ´hYhØ•÷¦ÐMÑÍ"DQ±& (ï¾óLYÃ9ž‚'¡´¡KD':M™ýt y0˜Çäë´´Ú®¨Á­5Jý|«LfèUì i¬ÄÎ}ò£n` ½úùn1˘·*£kh'íãßH´´³ >àLtN6#‰l6²J„ÏñE†Îi+‘o²6W"Ø]÷Qa£šFÁÌ 趃˜)-!$”ŒýÇÿÙplugins/jetpack/images/screenshots/google-plus.jpg0000644000312500031250000001567712651056012023040 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂB¼"ÿÄÿÚöX†¥S©T?DîpÆý û­MÔ7*6Åß`Ú³î'0uL£)ý˜¶Zž·‡›¼âöhª¹©/Õƒ¾µÁ„ĪÚã6&¦ëí·ÇætXáfl(}ks·w«}¶ÌwË‘ÑÖ(º_e²µ}†™UyêÁV³càÎë/HjÏcÌ€Ízþ3ceÚozúf¥'fˆ—ËáF—•Å«õJ`ZöÒ—•Ê<Á%¬9lM_ê]‚GFØðëØÓ”}¥ 2‡><¸êªÎýãÈË^t…ØÕVn ˆ)¨¹ Þï½Ë7ß‘2Ý1òÒª¦ æ`|úùô8ýêæ8òÄŸU °x-¶ÀÿÄÿÚ:Ø­á@vM;§’Üï6é9´€šÌÀói¤/Ó?l×Ù|›$DÌÿÄÿÚfÝ% ³€³²«çÇDcÑΆ˜ÙV(±,F@[wVnèÕ¯Wo7dj´ÜR`KÿÄ>  T!1S 4"#025@‚$APUƒ367Q`cpqtÿÚÿ­,¥ž7D¹©¿ÅÚ»µ³HÛÏìÝÕžCpÛccÔêŒy deyS_?QsÈß‚G£³¼Ö)^æÚ9°óÙ«áu͵°Ó­¬òÎöÃÑßãgøxE(Óݲ'ÏUæ‡b# ˜‰ÿ»'Ý꨻IªÇ:) e‡ù+÷ÈŃXþnV*Y1Îx£»‹•ŒÚˆÙ`Í-Ðv2WHôM€RåœÔHøñÛ6¯ ˆbXß*J©ÍÞÈå’ÒbÆØÛ+C;[2FÕ_‚uîõÔW»×Q^ï]E{½uîõÔW»×Q^ï]E{½uîõÔW»×Q^ï]E{½uîõÔW»×Q^ï]E{½ ÷«äŠEEs>&ÍåÅ|ÛoÅ4ÈŽV¢¼´k—æ{ítïµÐg¾×Ažû]{ít﵄Bk é+eEàï¿ãu¡¸S£ÊÇ2çcx†Yk‘DÇù¸Y$¤x\””[ YTV!ô©„lç8½avݮʚ Äà¥Âg¼œN%Á*@¢Ëœç¡UAéª.²¯Õ1cb4³­#l‘¶Ã;Í©í«ë.i«‡‰»ñb¡Åü¨Ò]ÆžI¹Þmf —t”@¥HÊÁ”PGe }Oä±ÍNK9¹í®6áclABÙ/íóûà=Íݨ¯“DÙT‚Ì÷¸i³UõN‘ µ?vÉ"Ì»-fE0u±™-tÜî(·¥O~Å8ó —Œ1 B8O?BêêØz˜àtì–Ežd†6Úäá„zÆKyCpЊ@nw诳ìÏe_(ÛÉè×+[!Ûá“–_ kds夒:üp'®F5[÷½Ì-®î©e!®%aÞkèhêÇ~Vp'-Ó8ÉŸ2 ¦>|ndæ².Ìo%“ÎäϺ:6\jÅ‚Êñã$á¬ã’“”ËÅd…+ bÌd]öªÌQÜ@¤ñ2E]öÁøÒ§EH§òŒ{þ²]YI0£5ὺ¾¯Õ¾¸”¡OíÊlmV°84i!è{„áZ¬lÏz7aC~µ«`¶0ôv=Ú/ø˜_ê~ÃÅ]GWBªÔ(1ÍëdŽqå ¤±;_ÍÉwÿ¨—þÔºÂá‰r|Žubv¡<(tŽòÚOUaÓ*µ_±…B 2–C¶Ž4U]YÖeÑd a‰3“5ª,9-lF¬N„”‘­‘¢£¶QR6ü¾æ5y•åN.bãXTn®PLoÄ Ó­;}%•ÞZ ˆVᲘ¾‹È›(Œ´‚i ¿%!|â‹¶b£ ‚e9ÙåT"­[êœ)×-ªT¦T¨ä–ð„Æør§aUªl÷ÅÜÿ¹ãIþ1_Z¼úbªü£§A‚œ•ùEŸ¬@u†† ñ˜Ÿí»4þßþ˜upr× Ò|»¦$D•Bpd⾃R±êrè¿âa©û1ŽTUkUSäºVµWuj.ßgòåÅ7ÿžyˆI‘L!¡ZÍ\pŸ¸ð°;2ò.rŒ…Ön Qa‹J֪§ò^=HØä¤s¾?ˆødi `G*¿ûÕ¤º)[$NÙí]ÑBÉ‚Eí3»tgéF·R¼­ÅWBÄ_Ÿ‚Ö^t{YÑú¶Kª«…c${f¾žžº¢'ÆÍ‰ûꘆ8…yMg-÷ãè•~’•>Qª|£®Åh@)¤ŒRVüZâèªK²ŽÊpÚâ£TVÈÊÀXãØ>&þ#B(€4âà;Z­FW5pl8º fü[kV¬ ã2v'Ë@âød6x€E{WvêJð䲊ÉðîTLV2IëÚÂ凑#¢¤O ¸0ç&q¡á!/ç2Ûã´Ö³$ç×ʉ·:ºà«òàŽØcßuJºšú¾ï 3`îw)5oŽÓZÌ“œ_*&Üê났Ë‚;a}Õ>ɘo®7’5Û£´4M.Ññ56j… Ø!zñMyá~®¼ð¿W^x_«¯¿7gù>±ìr›ïô€ü·ÏüÏÿÄ@ !1"AQaq2 #B‚‘¡Á03@R’±ÑÒðCP`bñpƒ¢ÂáÿÚ?þ´#;·óF¾›lßî ˜luV™‰Ì½É7²1Ô˜ÖÉ»,¾K…úS°ØÑ.8“°7?ç8l~#GV‚ªÊY±cøýLºÇàœe²×‡^oèçÅ:Ô “~n„ÍX7üÑØØ¸[Mp}‘õj%hÂÑ…£ FŒ-Z0´ahÂÑ…£ FŒ-Z0´a ½Ã Yh‚Ñ¢ Dˆ-QGÌ é‚O¶#ªÄ.Ô¯Âgš. ¬ô÷doÑbÝæ/!&/5ö~!Ø?föÓd:“á>"Dï#à±}M  Ý ŒíTàæ¬>$_Ý×pa+ËÈh“é ¶à¦hxÿ  ãS¤3g­õâ‘ÿb‹Cƒ„äv漉Îz(dZc’Â|åwp;ƒM‚pÖ·øEºît›Dð;WiÁ¤?’vЛKœ&Á>)Òu?õ3W3Ü×SQÜN콨cË1°ä—8Ôzí8t—  â3"ù.Í…QÃæ©iÿßÂrX@IæWe®ŽiâÃÇ¿yºw¯€ÊɬgËÉí-Ũ‰1á<g-uýâÊZ Ht‹å’sChlºÖÏ ƒ],鉅Î2&Pk óò:-ƒ—sX#uÓ°˜yÉ‚ÌÊqÕªÑ×4ïA»]Q «Ó‘-ß»»§ÌLVDŠ}„õ„ö€O„<:í‹oNa`Ãsi‰ônƒD:v6¾Ñ³ßL=ømkÁ!¾¿»’rÙdM7$Ìd°Û]­Ï¤ÄìyÃ’ÇaÅ%í«àŽU2q(k·ö}颬K6MM´îäšöéHff?¸ìX†\GŸáæÔÅDœåMch H)Ï+ 2ºÂ·¬Ç½OŽ~Ä2ª‘e96æš&‡Ôèž Ø@c0ý¦þwDç`¿Ûrßw/\¬\«¸Žçjn4é/ÆüTdèrõJÜ%˳µî{däì¿îVg i[$FÉÌuQüco„¬NÎ׹퓓²ÿ¹LÀ¡µßuŽÞþ©Æ]‹´WoŠ8¯Ría{Ï‘ŽY™vp±q(xœøÇâœ#RqÃòMæÁÄ“ûÞ†k^÷l¾Ü¾êÞÁPxÿ›Wë||Ž‹k9÷r·¹÷^¸Mþ6»Œ,dF¬ìª{º|ÉKD´‰œ§9Ú™ƒCd¸¿Õ7ýÈU‘ç‘îfDþJn#TMy{%®Ò’]ÔªOݘD“œóN{Òªp¸Ë#uQ×´t褛Q1&v£b9Â{Üà:ª6²Úª:³²UQAŤóŒÐÚx¨dõAŤóŒÐÚx½ñÆd'v]p9Ì{‘IÚJ¤ªJ¤ªJ¤ªJ¤ªJ¤ªJ¤ªJ¤ªJ+ª-6T•IT•IT•IQkäzG6™‰ð‘¸#‰Y´]ÕI_*ÅýKåXß©|«õ-#ÝTLx‰ÞÖÿÄ,!1AQaqðÑ 0‘¡@ÁP`p±áñÿÚ?ÿ­*Ï@‚ñ¥¿\ ©!*¼¯„ò¶ÖxIŠˆ‰ÂmxiV0Ðmzª®’w”Ñ RX ÕyŽó¨:ìëmlÞßü»­¸åVFóÉu—PâbS±Òr?©m`(¢„éßü1C,;šŒjGUÔË˰ÙEá„-éÔ­$Ä=m“D ?ÓŒ#AK·x”e HEmÒ˜:%æO »zë«Æ1¹i­‚[w§´Jô„¶Aé°Å#ˆ²½ª6îlÞqÂØ#DôÍqÚáPñ–Þmh«ßÕcÖ¬K7‰¥x•t¦o½÷®özsÒï5oŽ1á<7£NA‘ÌDäbqgs˜%¢JÞÇŒ´ûJTÐk^{3gÚÐt÷:N,îdK|­X7üŠ×Ú>ÀP}ÜZeÏQS˜@!3ˆI@ Ò©}úý2kbUAcº=±Ñ€”Î*(6©*úcLßv¨ºuˆ‚¨Ål UÈ¢ÚVÊ_t"e~œ'P&÷|a ! ²›5ú>_«:žN¾sôpEA4)*7Ó504k4SH—Z2¤ òW)|”á *ÞSFu- àÇ 8%1lž>Ÿ ÓûÉ«iO "dFAdE ™}/å(ÄGÆÚJBE…‚;À"ø^B[kB 9mPHÐRE7][Em° Aõ%Ø$(!…ò»‚’s‹/¦†\¤9÷,£e¡—X‹¥¸ éÀ®æ=DFbxù˜оÁûä4€¥N½µÏ~¹~aU¦x*nòîá/°- #¶»z™M„ŠÓOcà'e{ɽF Eaè®2øŠ`ÔS—¯<àÇ£xl×»Üÿ£U££ØÕ¢o±ñˆà…5c>T‡-'8ÒÍ7G\d*ìâÒeZ‹RNSNÛA”rhðŽù?œþÿc€‡&‹ç?³–š/$Ô4Ú¡Þ3 ‹¨^I›Í›REÝ×Q_lS¸°]|Ú²*Ìߣåú°0:Lؾž¿üú"´|7úb,‘w;Õû!öú;}ªq©¨‚(u튺b tü™ß7éð½?³À]Oo¡%³èùÜW ´ÕƒÔGP 9Â21 AB ¬#€ZàSgøD´Ac6súŸ|…Ö0TÒ/{lj*tÿ¾ýð²ë1DÙ¼ j’ê´ƒÏγåUUæô«°)·M ã×Q¡Ž**‡|ã€éÙ­õhô“Óeû^)"a«±¥Ö"SÚŸ`N™L2LÆÖ¤äx0hœ‹òytS† J)Uw^óלI i]¯.5p»“䃧yH¾:h/¹†Êq´†¹rwšPCT^G§ž£ÜT9tCy­ƒ¼&{-˜ŸÂ¾dªõ\i)梜˜ñšØ0ûÂg²Ù‡ùü+æJ¯Uú¹£ˆCЀðÄöÊÔô’h9ˆv¬«ª…*‰µU}óàüð~ ø?|ƒ>Á‰GðgÁø3àüàüð~ ø?|ƒ>ÁŸàÂ&±,%ÈByŸÖ;(rÙ£>_ß/áÏ—ðçËøp˜c˜úÏ—ðâØÑP™{ÿƒQæ}Ú ÝdÖÛÅ#G ¡Ñž¯ßnt+FÕµyT¹éZŠuN}¿ï?ÿÄ3!1AQa"q‘¡ÁÑð0@±2R`b’áñÿÚ?úʘcP’Z*x¥R¤”«#Ë1±'ÛÁ…ݹ¼ÒfW€Î${ÞÀñ¿¾ï¡>cL Âæ¨L F–`ZÛƒÄÉ¢YH;¿c|¡SP›¨ìý‘ó’ ¨·ý·¾«ÁÕÊ@¨âGQ¨ž$ +.@¼øAÕ|0óE76¸%Áìl;ÁÕI * |³·”|̪Šj=[ómáså¡ê8ôÅá* I. D½EdZÄ;ý‚“PhÉ$ä‚;Æzà’\œsz*5U¹ Ÿ»`$5ÿ·ˆÊ2/Ê¢³Ÿ_¡:Msjt‹ ©Þ4ºS+¤¬ÂäN˜iY *¾ý @·'íh:yÓ¬Òûy6,ØÒ¢[žûs`GÄ-D[I 7v ©ïŽ{r¬& X‹Ý†raÌ1©=ÔŽ›ÊËay¡E™‹¥ ‡Ýà»kÈÐáØ¢³l[.ø¬ÝîÔ8~(¤, ±ûÏp 8³Õ¬û¬P’]ý î7‰j¹mv”P°Äj(-XŽФ²‰PVR¹ÜK‘áõø«)z¼¨2`hïõûÖQ—&À=>³>÷­ SI?í½ÆîKk Š´»ynj4¬v%K#AV±xkÊ­ƒœ¤6p Iwya Jâd¨ªÙS•ç0РÃP[6ðDE]Æá– @2’'0Pê‚ÀCm]¹ßÇ¢â2€{H?Å'ÔE{M•b×y`åQQ 9puÔryš¹Å-”å%K9V3ëÔ– L’f"Ž9Îmr„§ÉeGÁ\ã)üËnrÆTÕoÕÚ" C>±_‰Ø Z¶@™‰TƒÉ>B±·Æ"ñ¸4XhÚ6þ¦¬äéÒv\;jÛµ]â&Ú@¶ é=R]Á}vŽí¥¥'ãBÔçöOÿÙplugins/jetpack/images/screenshots/tiled-gallery.jpg0000644000312500031250000007511212651056012023327 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚꬫï8á¤/5„q»/M±R™p*·¸—u×\ZÝ}×VâÖ¥˜’”! ¶Ó-0à ´ÓL²Ë>¡”å.›F*†FãX¯4ÍúÕ‹t= >D8ºË/cò r¤Ê‘!ùeÊ‘!ç]qf£‰)Bi˜ìF‰ãE‹$H].®cè­ “èþ攟Qã]©<.E‘{_—K“*L‡äM—.Sï¼êÜRŒ"$% ¶Ë F‹(5ð¢Å‹.’¾æÏVåìbN_¿û§™æýs9ä=Ä:ïb&ÿ=혩R¤ÉzDé’åH}÷\qJ`ˆ‰(JÓ,G$8+áʼn.ŒÐòÏ´òG˜ÖK¹é¿uóÌu}zº)ˆUÔ9Q6»Üp’¥H}ù“¦J“!÷œqfa&‰)JR–›eˆñbþºhpát>‹“=ç‘p~‡éžÅç·Ðl¶ªºÜnkG”éº R~Té²åÉ}ç\Y˜$’”§Æ.}¦#E‰ }t±!Âè |Ô<‰£Ñ{ýn²Ö49”¦(óÆñ·Ìt®bKï¿:tÉ’d>ó‹3È%)G6qw~úÃQãE‡¾º¶H°}íþì.EÂPh÷ºö~§_¿[Q+9ÃѼž–×­Ýû²§Î™*L‡ZÌDDDII"7>î½ ¶cF‰ utáû¦Ÿ–=o“¼ú‹M«Óm½s'§Íi˜Õ¼×*Vß®lŸyÜw¦Í—*C‚DDD’$Æàÿ÷ŽÉˢÃ__]$?lÑq÷´ò· ²úÛ,ý妽Á»Â¬3Ùãì«§”»*t¹2qj32 DDDDI(ß=|ŠwÑ/@m–#D…ºº H^È×ô_7cs·{±ªµçlQ\ôM‘#çÑ¢yr¹C³&L’û®-F" "DD’gš½§R†Úb4Xpkë«bDõáÈмκ·Ô5!Pî¼ÂÉýnj±®óä½ç¦uٜ۲åIuÕ­FˆˆI<çÑ(Cm34(P+«aÄõšô¯)¿×o…nÿEjÖ‹7_¼±…W„îK¯NâÞï•%çœZÍ@@ I"O1ôÊPÛQø‡Æ}û§à×V‡êùž*õLòó[]_‰è^Ì“§sUE½²mèýCvëóøŸ¼åHy×¥""$—*uBRÛLpׄûÇ_A®­ƒÔâpžáªæ=ã˽o áLØê¨Zw³ó)©’×Z^;"w„§ÞuŨÚçN‘ ’"ä¼JÛLx¯«Ä_[/¨f¼Fƒ Mêú œ\¡búÉÚ®~™;Úr¸¼>ÃÊû·X왼oܲ_yÇ£¡åþ¿@DA%Æ]–”¡¦Øð?j‡m|oMG "Þy’¨)*Ýú6 +ã"²K—}W­rT®=î¼êÖ¥y§•uD\YÚ$”6Ó\åïPáWÖÀ‹éšœ½ïÁˆSd1‹–iu ¿Ûj“#Ž{šCï:µ©^3IÐ s÷ºËGv‰% ´×.tŒ8UõÐczFÂÓ°Ñå˜nzeÑØ©kºfÕÙ.qïrI}çZ•Ï–~à!uÚÛâîÑ$¥¶£òŸNDƒº oG×Á +gä}¯Ý7tXü…hë|ÛÒy×£æLõ@¸Ç³Ž»»,’–Û‹ÉýC èQ½]n£Î<*µ˜0²®õÝ#ìk€@qgi'(öBI ·OÍ=)uthþ‡­‚ Óó^8ÆÖ¶T¯'Ô`²lõ%o‘væ­Çå>Ô’ûî¸âÕÃý¡dCä¾À\¡ÙDHmªrép««ãÇôMeRÌ#+ÏþIEè6œï’õ¯93öÞÑG婱qqùKµ¤È}×\ZxŸ´gÏéÔÒrogE¯´mªqép+àÇèºÎmÃ͵gË)`Û%ZOG¸ùvd©£ôÍ?“öö¢NCIʽ¬ô×ÜDå×ñ—mɪ°tñìOCQÍä¾ÌÒÛ”\ÝÑÙ¦….@½‹Ð¹ÇÉn3e+[O °ž»ä9þðì¶›.}3–ó~×·¹f*v•v¦Ôª´ofù¹aÕ¯½ C”\ï³õ‹ _/õ­qÑYè|ûÄýØTehrú3Öy¹BÌy¯‰=$žóÿ`óŒ?Só­F#+£³Þ}ÙÖPkü_°°’§Ÿµ®äŽÞ… Û¥4Õ}nÎ7${…íÜ.Dëü¼G$LÈxŸ£Ç}ìV~Hzß6ç.%øm›Tåç~Åçx¦çÊÍ.w¾Öa{ *E_Žôí…„É/¾õ_)ö’I.8Ò£\×ò§HJ9K«f;Cäþ¯]$PºSÖüB^£#ãîgŸÊžke‰Åtot™OH ç°5šZG.tt¤SsX2ÒX‡‡óŸP ,8‘ºSשE*¤ÓQe3VYo:ôïì>MIîõ{Ùzç­©Ø:óŽºj«¡Úˆ S‡Ù(£ã7“mªª«–[CMµ¹½© ¤É–#ê‰H¨þGgkãU“žÞûæš=„ZêRŽ•ËgYëÕT"$¥0£MA%)F‚uB›„졦Ùó¿.õZzìÅŽѽÆïÉ-n±:&žÒäÊužrÅ™‘cZé0zÝ &)ïA3œÓ¥)ƒq%)J/åÕ%ÙŽ„1›ÊÝ1 ­>E¦èmCG_ý¸LžcUXüé¬=R‹'ßX*È÷ £gt¦”¥¬X!)B~0ai ¡Mi ”LÝ–®a†ŠL½ª8í‡bX™1Âa QŸraG¬’r”m$4 ÕàøAF@Ì R•À(ÌÌÁ…_õ ƒÃ-Y´G—zD„g³~‹»OŸüïÖÝ\ã=Z©ŒF¯Xã-I¼Â ¤¥q˜ë0 À³R¢Ø()@ÌŒ*ï&¾Œ…n±ï6ÜY•WÐ} SCbë4¤½ðN5ÒÒ8rt5( )!©*bi­KR€ íy’G’·éÃÉöúTã7™ÊüÛozÎ÷Îv`gme“*ŒãÉfJ^Š:wÿÄÿÚ8ÞÞIÓ\8úýˆ…sñwâõy¹ú}^7¿¾âRœþ?ÐÖ‡ÑÞ>kèô‚UgãýwÏÕô§/ŸêôX€€%”¯ŸèÏ‹×éõpðø'èuæøH€MJ¦} Ï‡ó¼>ëKóÿË6@“Lê˜íצܷÅìú“óœã%jʳG=ëURey[œ—4SYÝckÊ k24,­Öuo7¬æ4®›‹Ç z¼ jµm­yò:o:Í–²ÕÎâðÈïÓ—If-’³×-1«2:tÆÑ–Ëqjr€W-fÊJ”%$ 4”B¬ŒÈ%„·×:íÂz5çô ‰Ãƒ0%€ö:kíÃ}ùrõHDqÿÄ' 0@ÿÚزíA±¶ÂÙïùÏùßœÎnÉ­ÈÒò=~FùÏœ“k‹r}ÎMÈvÙ÷x¹†}·¶ÞvmÍ·Û›kûOÚem…³íœù¦Ì|³e~SäþKä¾Gä~Gä¾Kä¾Oå>Uòß0ù§Î>yöÙg-¬¶÷ÜŸu}Ý÷§ß_ß‘Ÿ’´Üÿ3¶•xZyî옇1ŽÌõÖìµ±_/uaÈnaýU¬«ÓTM„DDDDXXX@XXXXX}>ŸO§Óéôú}>—bn \ظꭙo]í3Ç&»“[ÂÓ¾M±ÌHÙdáʪDVª¢·®8ˆˆˆˆˆ‹ˆ€ˆ‹ §Ó×]u×];uÓ³³³‰ ‰‰ ‰±±·®Klie[;}ö´¶ÓË©ºÞVšclðž Íå,ý[QQÅ–3#OGaafan™ºë¯u×K®ºvvv&q!1111dbbbc'\ŠK ÙÕt!Z-\¦—dŒ1³+j†îJE"ÊG4í•–Ó˪!afanºéu×]u×]u×];;;8¸˜˜˜˜H$Ä&&$LÌÌÀÜ€………™›ôë®—K®ºëÇ]u×]HôüFµÓ³³³±1±±´#hK’ ³YÍ‚ºQÃÀA4îâå–,d%Cnú‚–R­:§©VÌ8ðâfdÌ ¸Ì,,,ɓς.ºéÙÙØ˜ØØÚF‘´UÌ…œô†?Z=±0[­ž¿mZ¿5ªž|öÁdD{6:÷)ðâdÈP6a )“&ÿŸ^]:‘÷®KeãÞB66‘¤bcms@ãñXªzä¶®HÚ¾KšÎ_¯‰¦åsÝEOñ_­ äꎱ›‹ sWâÀdÈiСB™7ýùxtéÔƒ»qŒX®>ãóFÒ4ŒH›I\™JžC_Ÿ1W0D-‡×±ðÓÜëÅ’³s‹±‡·U¥¼Úu{ɵŸ~yFËq\Œ™PB™2dߤ¥Ä›'ü:™ùtéÑ-zrcciF&6Ò×2O«ã7,Œù,½=g?€ŸzÊS³.Õ¤#¿—1T±KÜß­.&½K±ÙnL™ŒP )“&ý6?æø¿áÑK˧N‰jÑ©ŠF&&ÓVÿTçxŽ|V*3¨U.Ú¬{ÌIj6{2b,^ÉL7Jh&£fîÏÃŒÉ#X')“&MúrŒŸçh¿àuÇÿ£øtë¥4hÑ´ˆ‘¶œ¯V½¦}~–˜zèßùëñïþwÿžž™²52Y¤­í½ŠÞƒÃMB×`dÈ‹TB… dÉ¿Nh›"þ¼ÛŸ¥"% þŽ?Ž$sF4è– ¥þ IÞÄÙ+yìì¥>ZKg䙞I"´Ò¦L£V_GaL™2dß§<ŸõçiA‘­õtêEÃHÑ©ˆ‘-EKüd+v'|ýëuíSö…^Äzæ™—¹ˆ ù93¥“á÷dȵnj)“&L›ôÿAYâX?®Þþ2E§èéÔ˃Ñ#FHÔ”¿ÀžõÓÌ˳Ë`‡dlFGYŒv%a«— &LY\h… dÉ“~Ÿè‰tˆ?­8üfŸYý]:´üÄ5"tKSRþÝe/ä¯L®×šKe#`_ XýsÝ‘ÙgY|w|<›À«ňS&L™2o?èE…oëůã:µïÕÓ¬©p’4jE"tKSRþÄY yÌ–A1„Òb ÔÇ™ÉT±{l¹t™U|¡ "fL™Y~#qB™2dß§+I‹oéz^Å‚ÑÓ¬ãðr$hÔˆÑ"Zš™ëÖG1²l“ó`·k<ä“âª[”#š´6%£äÞàpÚdÉ•‡á´(P¦L›Ì…º…ë¼[à—«6øWVO3§N³kœÜÞG‘É:'ÔÔËq³ØûTÛžC$áø¶šsÙHÊ:k.^üÙh£{®X\µ4“ekº±_¥È<ûLß›ÝDv¥¢¶wvÁ ³¢Ê¸Ññ2C;Íj× +ktçQ/Íç#Ö>&¼[’„¾ÂE’ŸœòZ-jfêu‹| Ák!7䯯ïµZà‚|…О½›y™ÉHüJ®?-«g²dxö®õ[Õ:Ü3UhI;lÊq×Fe;Vy •~6xîU¼ç9ðÔ£~¹Å7bbìô§ÊÏÆ2{€·f×®½Àµ]®X­o!=Y@¬·úz6éÚ²±ïvÄsØš˜-¶C;o†å3µtr^ã*q"¶<¦e&ÁoS[‰k8Û¸ÉàØŠÔµoe™m puQ™X|j°Ô§ã¤Î./r^&x¤Œ€„½blá%²âõz»ríÜ\‰¤» „–¹JÔ2ú˜ç½NB7rwQžÉcŠNC‘ÌŒŒÉq¸[PmŽ}V}¿‰ ™k¸Ý\|ÅI¤ÎÓŒ`[ Ú}N½‘PiãÇÇ !qq|ââ·Œ£ 0!vLàù9¸b.Ù »ï¾ü;äÊ¢wNÕS»¹ šE²®/FæDæä‰â%i;z=29A>4¨RÃÏ€Ø1ßPØuMžÕva»ŒÌãôœN׈٣¢× K‰¢øFÃ6Ö­üPã[Ô=—´öžÖþ?^Áû_lÕý·¶ö¾×Úû_mí}«Ô«Ž²öM {ØûöOAñ×°ø}}ðï…|àŸúóëšå_£»®Ýu$e†G#§–ÅQ†lmysÆPQëêqìrH7—ÇxŽFóÚ³gåÞ)¼”ñÉúcPùÏûXT†-YðË¿.è…ÓN  ø:ÓT:—qrVÊÇ¥6Œ¤Š¥l†K&.ä·gÊ>FB,¾W7c ŠE¬m¼]è²^Éä0'fäòkK®ºñLÍ×BÂÌÝu×^›-E½>ŸO]uÖ1ZLÝ“uᇢ^“^‚©5€¨C4Û! öէП¦„àüª4RÓÈcfˆ©+ZéSÉGB£ãÂ)û|Î/ŠŽˆV]u“|`õ×LÀ…ºOáÕµAvïßný÷ŒY{¯¹ýÉ÷O¹ýËî_r}Çî?qûÛ¾ÞÛcímµ¾Ð+l-Ÿ›*pS›³}»íßn-®§íÕv‡¶6??çžü9)‰¬6i®{¿{.Mó5nz½~¹·_¼O¸ÔÛdÝkíMµØûWݾì;cí/´}¬ö8v&Ù>Ãö/²}‹ì/°`îòóú¤W«Õêõz½^¯W«Õß}÷L»ï¾ûï¾ûï¾õÂ1¬ºužZóĬ²2eœbZƒøßópIRƒgl nö>£T« ïÔn0‘3Š]ñæܿѿJ‰¿¦6IF«xÙ%ÂÃJ`ÆÈ™f˜–ã®oÎEON´µ‡qÆCeR·^’L¦xл¼ŽI”hÓ.$\Ä»/Ó¿þöÏÜ;gñßí5[í¥TÊG——-›Ïk’ôÍšZªvÙ2=È7– Íõ×Y©uÑø?7ƒB…9ƒqst?É‘ /&]ÿ)Šº¬;r4:­…œ q@³(Öãýw¶I¸ý Þ¿/VX*D ЩݜSø&tJD ‰WÿÄ^ !"1AQaq #02RS‘“¡±Áá$%'BTbrst’¢²Ñ3@DEUVcd‚³4CP£&(Fƒ”ÂâuÒðÃÿÚ?nƲ\´Eô6R®õç„L1ž—a'}áÉÿWÑ ÷ ðžˆW½GÓôB½ëõá^õNïQôý¿z§è…{Ø}8]›™¥žÎWüjRÈž3*f_%™º*Ks#î‹hêȹžìÒ~è·P…,ä[”H©¬èÿë;™­ŒœRG÷UþX>öNOîÃéÁBTx¨Ùô@qÅ#tWñ¾ˆNh(I£Z cÁ½ûïD&¢Dx_D!ªÖI$îú!n,e¦ƒøD¬œšµø-ÒÅþ—~·®ô…ŸÑCÃú!gôXðþˆYý<7¢F è…þ¯Ñ ý^œ+Þÿ^ï­ íZÚ>´+´}h=§ëB»OÖƒÚ~´Óõ¡]§ëB»OÖƒÚ~´Óõ ö­ íZÚ>´+ÞÿZï¯ ÷°úp¯z§ š§è…Í„ôB‡æcÂz!cóá=±ù€ð¾ˆXýXCnSe zšâ«Z¶¼7é² väyaz’¢9"nþ.’q;bjªSs¥Ò{!O$=+0ð˜Al–ÈÆ4e»¥Š—É®3¯•¨Õ5«pæie«Ë V€Ó¹äâ1;7CivðH|{_Zõ¼Ÿæ^ÀÍüðý„¿³‹Fåo_f”ùTÁ˜šáOÞÎK¿Dì¨)ôÇ”qâ+q5‡¦œ¾â»ØS&MʨJNî.w÷NU@/ÍüQH®¸ö6jºî+Éí9÷¾ ÒNE 73.¦Ö€wqC’Î)³T©IÍÇùÕh¤û¨K*éëKi»Öm­WoöPÑuA*@åT^æhâ/jäÿ2ö oçgì¦+‘Ó¿ê&´ØPU4ÄfLݘ™“Í{¦þ»Ñh'ü6òţرô"ÑìXúh8êu‘y@u°}[d]y¹ßÜùUššø¢*ÕðEß{úC”(9"¶ýšm¯ˆô3öS„».ùÐ=‚·FjÍ3I½q¢›©;bfÔp;2¢ÓzõuÑ*JT´gExijÉRh/Ž´£!Äó7ŸC¢Š üËØ9¯²˜Zò>vâJ®„¨Ó` ˜»:ÁøhòǬ¦>M^HRÚdíÆèÁNÄs¯ LËZêŸ,RÜ–ã¨ñBZh¸¾µ:àÚˆgƒ, ·^¼o‹I¡u •l®1k´¢’¦iÅXµ.ãÔmàiBI&(eoÊ<ÕÒMTÑ¡iéE¶ñ$kÝǹ„¥õh^¼t™ðÚ.:•R“ª¤UÍ["T¬%±Ç b¹h|g¼ŸæT±&¾t~ÊaÆrFx·J­!³Q±Dâ08[8E øÄVUÞ4$U¦M)BbÓp§;=4Ë}’©¥Ä¸ÜÍÄ¥@Ü»ÇÏÉ|¡û&DªÙ¼/« BÛ|˶¦†q„7+*\¡u÷RZ…1îÖ ²6£¡37”B¢›Øx©æ}µ°AJ«äÏÍŠÝ*„9Ö¶áÙTŠÄ³µBŽ®º£S‰umápáM£Š.p…¡´8àIX¸.Þ<ç eÂ÷¹UD-\:44Ãt/û9ž ­s¯ëÿ!FO·rREÙ·¯]RÊ–Pw^¦'ŠÊ;3NfX™¾¤)”¹][G䱦¾t~Êc5‘S‹ømQ1WÚt^»xC´¼ÈãLQ ~ô,zá_þÛ }/ Š´ ªm1-1/KƒT{=gc­ÓöL71: KQÍ9uÍÑgÏzñÜöt›ŠºvCêZfÛ2ë lß&Ìî“kÃÝê5…gXRЄ+J©F¡ÐgÕ¦³›ìD%¦ChHJFÁs3 ”}dšèÖÄ —Mh…4(@‰vgs·î¥Xˆ• ^u:»ÐÓĽJ)iÂàåíw¯xÍ?aJN3RÌ»§:‘¨^t<ÃÆÔ´-'$ÐŽì ~ÃC3 öBT¼µ‹îõzXó?9?e1L‰øÍõ ¼M(IŽ’Š<‘¤Fé9\ª›Ï–1‹¤hšˆ ¢›¿‡º¢–õ›·§°¨uûm )!±îÅݱjæCr­©¬é5¿Jƒ”™q­Ð ¾ V¾(baS†m©…±P[àÇHÓdI²øàS.8h[u4[gqèta"Úx¹RŒî•7aX³Ü²_TÊP(”¥ŽË¹)wY®5Ó(y¥H¡·ž‘SC s™”â–¢£Ÿ˜ÄŸòŸeL¼Ú\mbŠJ…A“!šJS98å뎑£U`#'d'7#(¹gЛ¡M:¡ujY?9?dCS–¬ _HRŠ+[J$'¸0êÔ²æ>\ý‘ g"æÜE*Ö±ûÄÄäÒKl…$ˆ_¨²aÚßÍ&õwÒ(üð¯ø§Ë=<ƒÈ#dB®Öú©p+ ^0¦åÀ¯^éXâ¡TëŒVeëæ¢à×ËL:ýÚ¼°»åÕ'ŽïÇ~…0¦•ž[µUÒ)²qÅ)/M£U‡S*¥:J}Ù‡v¥Åœ†”Â&n(áEj‡qÙB°A¸˜>¥¬4•éiaKJuÈ®áb±íi3ó‡úÜÔìôþöT}sùbV‚…¤)'X#É©Îi6´«ö|º˜D«N¥”,€I¼h9"²~β¥X_f¥ßêþÆ?òç숒FHMªÐR“/y»Å:úñOJJŒÍ›(UU—W²¦-©ÆPúZË®§II0²âÔµ•ç ‰×j "óï%–RÖ­IHÄÇh&aâfN7Ä'”į©Î°áuD«d%+ÐR”ub0…¼¦Á˜4•TÄÖ—²%œH—ÝIª7Bä®Ï)Ëé™”MÜ…»h)œÛ$gT*S«–õEå¬UVŠQ<°òË„4ɺªQUÀl‡žu´:”4¬ aœÐK0¦3,Þܪ8›{4ú*jõoawŸ—Äk„ªiÇ_™BZ+«@B±fg®Â0Ó‰TYý#JðÅUç{ZÌ|áþ„=ÍvUü9Éd}jùãË=»íѾUdu.¡ìkÿ.|‚O3ÛAN¥JEöj¯ñ©…p†ê”6Ù:†Ìvï†Ù¶eæC/<Ñ–{—d-²ì»¸-³Jðí¦Òf³3)_Æ^\"NÍiH“W¯}]zù7CS„Óî4škDuÀ´-e†}l–Mâ:꓇$ YÖЕ—ñ?t ZmÙ-¸5Vaw¨"Ök6Í˲îÕJŽªÂŸ M†tS\p9µ­µ¨­`(×eåj‡š´f|QAXÒS ÓEbéå]ȧáÀ©±Ý´GÇ…°è–Yén# ¿JaáŠ6ˆ ­5n€êTÙÔE!ÆjF’FØöµ˜ùËýs›"ù6¼A1åžÞöÒ‡e=JJ”h©1?7:©kåJJ Ó8¾ï‹y·óɶ'ïV¸¾Hïj‰Ù«I‹*Ú!àò®71J(+`;ëÑûÿËy„_æw>ŽÉÆúÈ…O“GC%ÖÓÙ¬CE’*EóÂ[kجj‹^YsSígí@²…!ÔÕ-‘»ï†:öÂGZ„  uÚ¸âR‚²ßyZ*JÑw¯¤&Ï´ø][RE@HPÆ»3h4Îyç Í%½+µ÷Póèrjy A­IVج%† U{–Í.ðh iu¸ÄóK˜.ëäÝ7h’ë…yä¸ÂÖ»¤ ÷beõI¾["渙Sn©u5r‡¢Ca‚• Öµ‰ÆæTšé n‰Z‚ЭJ…QxÔk€£¤.˜Lòe)!þ‡9Í•??ÅèŒ,öÿµÓ¾\ý”tAi)P¨8¤”Û“+&rMF¡ =1TÛ‹“ª’DŒÊ¦‚› ù±µ¥­+U“'/.àp!gMÂ5a°t~ǽòÞa¨d\ô 4RîÊ xÄ ÖJ yU,¤Tšàã}übjÉ·é;'ÀØ´t’‹Õ»º¼pì›ÆÖ•¼w ‡²„±ezª»q¾ Q|šø¡§-´·l¥ÖÜ[YÉFÝqòñE½rLŸå‰ œ¬¶¤æeÐë ”–’}ÌHJ2¦å˜C(V»¸BÙ‘aé95Í4Ù%À“Špׯ"YÃT2ö«ÊЯw—y•6‹ÂÿML4¸ Û˜ÖšÄN!(X r›)Jžë+Cg!…¯ûÏ"T­œ…5\âIN8p'KíçsX¼C‰J”ŠîŒÝPÒµkmzÄ84iTÙ¶mË´]ýÔÆ¹U!ÑMz1-@~‡UD%Îgó*F®ÿ—¡½Í¥øÕ}ž¥q Y÷"±1måR¡m´fèÓ½rº4ú•ü‹9Íö×_Àu=àŽ ‡y¦e2t-3.‚k¯YóõcÞùo0‡¥¹žÚK¸¦ÝJ™º¤ëüjbÌ•”Dô¹á<›ÆaÌTkä‰9”¦Q´—^B«}:“Ý‹MISJŸyM¬QMš¨R%ØC‹é,¹V[®ÉÙMäúW74‘h1Óš|`uÓ’jÙMLF‹ lP€œ±¶Õ^¹(…LXì.—Åç}ÎÁŒ„̺š óHJ»© ŽMJNã¯M…7œnYJª´zÄ×)²Ì4%î–’MÑa™™G%ßëš*3l9d¥h-OJjµŽÅ0ܽ°Ê-v–}2j+¹Qê6UbzSÕ <¸ˆJ[¦‹6pó/²I¡€’L¬ò…1º±Xuì§uƒ0´#Ó“ï‰k.Qk^y*Øu¯Š'a»ÈR%ÖIi*ÙÖÏâ®_òôA;„{v´?ŠYÿJ½I–ôÊÍܺÉ=ÈéVÓý‘e5î|¿‘^æãjëšÿǨWš†WŸû=CÖ|·˜CS¹+9*òo6åÐ~‹FÌK–:Öà@sÜë ýðâEÊÍ î-ÃL¥Z(ª”Çt1hYNLL(8ëÉ»Aþ‰Ù“êDÒÉÆc‹ƒ`„I"¦ëwnˆC9E=0¢«®$Rƒ\zýÙ‹¥EÅkÛ $¬¥P=›â4 0å˜CîË¡lL¦â°ë"q (hð+Æâv£\i]qÒ„«k9՟Ťb¡æ‚eŠÖ»³C®u¨¦ÈõJË2ói(˜lëR†Ø\ìƒ*B’ûŠ4×ki+8+²»baÀFuaGTLËÌ¥Ò·8à³lMM¸E'Mm þ:/6ßâšóÄ¼Û eá¢|QNg ×I—ü½I_Å1›t¿Îý¤È f¾êUIØ É«MêuÓå#!?ä^ÝSªìÒúûá=@LsDËGdÚ{Õn¡ë~WÌ!‰¹e12‹í*•¤d¬ó©vjËCŽ#­QZª8Éu=ž6[YÚRýUzœ±’+UåYHQãq|dMkê#?M|dI×b3ô×÷ÆDRž¡µô×÷ÆC§KÔ6pøkûã#Þfêì¤) Â…Kûã%,Ù`ÛrHa¡/®žXÉ%¢òZªkJéÇ3+*x*m¶ZšUKªYŽf«%G‘èæGÂà smÆ9–fˆÌ4J‡iHæAx K°yÆ9Ë„©év{­ª^Æ9šœÃ[ÏK~9•!W"È4S»c™"󒬤r=ƦͲÃn«à¶ù‹_%ßo'#yf€«¯Û×cÐQ…üX¿Í¡£Ø¾ïôéÔ³\Ï­¬¬øâîA¥ÞÝ2âütóui›“jR¡Ù™”°²ͺwiNì)ù6^Zn)ÆÒ¢Õì S›3œr«?U=1{,r´ïÿêçPõ‹¿+æ¡ÔœRJ(‘Jüâµ$ƒ£²—FqåÑ(òÖ³š®2“Ö“®Œ™D…Ǧ+ròzÖÌçY‰vž&ª G¹H†oÛtãT<êÕUÔ„^æu0G¾¦<½­•Ê<±^kÓGs³'랥™°¥Úí®'Äk c™å”ŒÍÿ¤kçêÂo›½šÊôÒÓŒ$ Ø(ž}Ë>accJ>(¹ÍÒm‹KOúhèúZþ)ŠÛyH­ëOÛ_Põ‹¿+æ¡Ô6m‰y lôÊèˆL'‚LOOѶÓRÚ5‘ÜÚbzÙ¶ø3~µ³î•*ðÄÓjš%f¦]Cé-uî¨PHeãu™k̓¤ëŠ(Or,ªÑ¶Ö°:åߢ|pÌÌ¡™i`&õÜ!ΦðU8¡ Rož*Ò&ÞfÏT”¹X ‚­>!mȪjje–ÖTÔ¦÷Ž–ª3„a}ߺU¦êà @$ÐPï…(nŠŠkwþrÿ— «hN÷–<áýÊü‘No³ÜŽMÙw¹&)ke ÜèY]CÖNü¯˜F‡E§ZZ¢ƒ q/fÉ.naZ†¡­Püóê™}`.45$yÌ‘®‹¡Û¶ õ®‡q‡Mû©©©‚ås‹Z¹Uè’¥Ëbõn<{˜C‰ŸRxã©;bÖœaK™R%)"éër$ìû9•M̶ÚRÒuœuE‘Á—' •L*½pÕ“iPh(·ï1/*iZ¶œ{ß\]ž ÓZ¢œÎ¦GñOùz ùTÅy¨Ï1ý^¤·'lÖÒI*ÎᾊHS²åøÐVTÿ5‹jÐZp¾àù¿õçû27¢ïöÿžåsì#£»gL+sf´2ÿOê²wå|Â4:+¼»¡¹FâñU0HÖaËJeo<íT¢ÐÔJ^t-`‘J×WÝl7›mÕ¤V¤í‹I׆Öó¤`1‹RfÁo;$®àY4´|Qh–Òfædm^'»T±ìÑ ÅO«ôH5e¿-$´ºqHM!Æí7sf4‡³Y¹fT8θŸ´ŠÕ70ú®KVºš¥]îulù%WÐp'x‡•j&`] ®']"œÏf¾w1åè4™ ½á¹¥ÏŸÜ¾ÕK…sA°$N7”Ù?Îèÿëlö¹u\Ä“ïö¶Ô®ðŒû¶¬ñN““@÷ÒOœsë!w²y¡þ¢bŸí>>Ÿa=,‰³û•EWo¯|ßPõ“¿+æ bª"ñw·ø¡\QMe1/,âÚJƒ cbyaEÂÜ»¹Ûæ:“âLKçÕÁÜuÕ€$ˆ~^h²ó®%c^”%Ì–ne&® ·âc98âß™qD´:ÔÒìOÙ’ï"Iô¥ 9sŒZo.ª›Z‘tj8Vâ¯)[áÖ:œP›SÜóæš–¿·F±8ñ€-<¦¶%œqÛ©(Më ÔÃO.à±Òo( 6Ǭ%"”j޵öAºüêyä’µ©f¤ã¹b»*ÖC¥SK‚š4ÃiËkeœØ¾j"bNqƘCfñ­LZ  /! žmj[åKë¶Kj^t¥Àh^­G”Å, ;Ýp—Ma{À ò…´*áX°æw<³©3s'Ç u°´ƒÎ™õL‹äª¸Ž(é©›YñErÒmGY•s툠©Õ XÐUyô0—@祉VNÊwã;þÐ$Õ ¸RžDË“çŠK¶>ç:‹¹º p¢€Vxº—æ{hÐT½uŸ¤aRù)f(T‡?Ì¿D)Ùz¢ð0ïß®»Ñyr(ß4Ÿ'Íñ9ò‹û „ UFâa€BÚ΄4õn*´ç)üâ)aÚ'ø„ýÎq„ ÒoÄ&ø¸³îLL«{vº…g“yUÂÕí&T,pÛ2aÀš]˜)ú¢:QƒÁÚF….›bEy:Ø96êV¤%±=±JßÝ‹2/’m/6hàQ¢ 5Ä‚äZáöcÓIm‘›q²@MuÖ²ŽQíL(«§‹‡DaÄiÉj  ¤ÝŒ(Úò(^ÍÞ<ª¤&VÚ}º ÀFs&ˆ¥:mat'Y‚yšÌ:öcç¯.‘Ü…Ódì6À¾5ÁõD}Ìuª*€xM¤ÕŽØÑ»;ðaÊÜ5„ÅA;¢¹HØøcÉÖ6‘þ"kËÕ€‡Sy¡¤:T¢­PÎ}c8?»*r¡âšÔË(‡‹'ù¡ÄîF…8Mê@­/4@^­Ð3·”«°€šÞÅae´‚¢C®%½[Ì ÎmƒúóY_`CŠIUÄu‡ZHlQI‹ÉMÕjãÕ =,,©$ê¬éq+"†Šœâe iF]w$)6Dþî|cü‚TÎkÇu»‹ÔH„’åUQl ÞÆó‚íAÇ?Ø)¯Ÿ²˜».Lg$Y¸5!iÀ²nVMÄ—$†fâé‚T -üŸ´´²‹\w^”Ù«”S5œºvº¶ì‰)[TsîÐÔ©€m'8\§z.X‰£åŠZ3@Õ’{«Uo;¢÷y\xøÌQ—Tª…³yÝÄS'%ÉÖ·Õ#Å, E'Vh*+jŠ"’ŒàÅe畹 ò˜éËå1IfôŸ,äì‚»)dƼ+Xuܨ@B ®ÕF›€jÛOåæ¼°âX ‚.Ái$ ¾(R”T£Sqóº\Æg(fJúÛÏh)Ri]Ѐ}È )Ùa<‡.Z•3,ŒR—òãóK·V¢ÌÖ—„6¸EªµBÖª ¶“ß…7‚´„4´MÚÃM¦€Š˜-P&•‚âî(kŠ›¢±qÌkH¼ŠÂ\eI¨€™{"Ïi8¨­Ïü|𖪩¤!±Ü˜ZˆHî@tiP*­y6{€<Ä ÿ.¯°!¼Ò›RÀ'Š3k¨òB–q5„4í\H>hKs+Ü*«Úì†RäÜ]qø.däòs5™ÓL«}6ÃÎkY…€¦ÚL0µ‡ÕD)DÁ(8yþÁMüìý”Åæ `¡2—JMÃxcÇXR-¨¥L—›QÐ*Ó\7êLËbRa7›)¼f”B{‘gðB™Çݼ”6Pµ&¸Ñ(õº¤Kºîi*:ÔN–üc¦ ×Î0wÁÚ`ƒ¤)ÌU².ª¢”q0὎ ×{š… ¡x ´“ȧÝ:bƒüJ}QÈ)$…ÒõJU±±—qÛ­0¯í¥ÅTÞ3 Çù!G]z ¢²ª¯¹iÃ_å‹¶,ßÎØ^y¥+„§Xö oçgì¦.˨֙‹çÍ%¢*”×(R2~A“yE¹æÔt5$+ÉzÄš é§Z¸L›Ó×KhͶR²šF¼¨á2êçújÒ[ˆ¶E°ZC©ZQF‰A44¦ø´¤e áz‰wBö4ÙÍekÁk!æÝ«ØÁ¯Œœ•Êg¥®ÞmÇ+|"¢åƒ"䯆’ТËÑ#',·$­g[xSE#–œ„m;D£j<”‡¤ì+·“uY’¢¬3C›˜)QM(Run‚œŒ²õÁÀÆ µSMrr…Œ‚›6ÑyNÙ hŽ:üðRòßi±¶§l9*eS£Üø¢¹ZÀ8S{XZÿ8›òó°ç)Ë6Ñ@Öà Žô]´¦ªh‡;wD´ÔÆi¹çަ¥¼µû ‰KYìh¬Â;ƾxÇœkè>‚ÿ6yV©ƒJH'(R¼ñT8£¬º¯/:¦«__ʯD/ûc*»ùÑS TmŠÅ$&¸¥0E4 G®?ñCØ)¿Ÿ²˜é'¯»PƒÙx¢ â¼“×+`†ÊÊÂR â„­AYÇ~ „áRMé‰Ié™ÖÜZܘÅ`êSÍæÞ˜*ëÒ) pY{5Jl"‰!>ëi‰I‰@‹ªaN„ß Ç_,K7g:Ü“‹Z)Zª’‘²¶ZaÆØ(º€.Ã…hAζnï†$lYyÕƒG6ŽAmÕ>nœ#:P%‘u(H0…䞘Åٕ׸i”¶ø+d”Þ& ^®£„6lk0µø¼ÇŠ.…' 1=”Í5ƒr­ßq[¸¡/d$ÛO¤-NL$íÅ‘ú½ŽôY>ðc½XüÅžôXÊmw¬ÙuUWS³Ê[D£J¦´¢‘fûͨ³Æ©FâGÞÍÄ—½‘ž÷DJö„Ä·iLKö”Ä‹²sIvUµ¥Ä]X#®¢È’–q–t» [€„Ò¦%ûJb_µ&íI†;Rb_µ&%ûJb_´¦%»Jb_´¦%ûJb_´¦%»Jb[´&,S”+´™-ÂjU»¥»\Já.RLJv„D§hDIp…/ƒ7x  ñTņ-þ,©^~örî•bOÞè‰/{¢$½ìˆ”í‰{7õn,§Zp; ÊÁl¤‚5ƒ²,If™{.Y URšE•ï{ÑdŸÑìw¢Çý\Çz,oÕ²ÿF,OÕ’ÿF,?ÕRßF,Õ2¿F$ä%jJY¹t)ËÅ(© Æ:IŠìƒ ×ê=èÔyÚX냨ªµ…‚©¾&R0-¨ñÄñt”³-t|3_$?0èJÒœâ)ŒN°ÊZZrî²ãÁ¼Òq:÷E›œ½1,ÚÃj ¢þ®8mv„ÔªJ[BÊ›J¤í†*<‘À¬±&Ûd¬,©dMÍZ¼%ù%ÐaTŠÆr‡6¤r¦lY!J±‡%`%ç+N³Í ~ M¸¤¹—t„3“lPp‡<ÐÛH¾âÒ„ª4(zÙ¦O"Ç;¥(ì¡0—Z• ÛÏBëqaT7M£Ñ2©b”<…)ʵ€hcÖã|ðIÀC.Ó6êTÞÀìßÐ0•]SÍ…^ ¥í§P„8‹í¬-;ÁèjûªÏÓ\RÒþn¥¹ñc¥^¡ÒUñ£¥©§;¤ÔÇz+ŒW Û¯Š4µs€$S»U ƒSNR`kî@K¡z€5ŽÒåÚ냄Å2 ®™y*ŽJŠP” j! 87udë¬v¼8¡ˆjŠQV0„XÌëQi°‹ÉÊCÊJB•ëâÙ…wÄë–dß ¡(* ªòJŠ~Ü+ p7h"M2’(u¥'8q×]˜SµnvefPKJ6ðg6‘ªì‹]ÛMôK¶S7P¥ !iPEUÒÚ@¦è]“~uÅŽÂßmáMK4¸kË£Ýj§'[Yu´Ï¨$¨’*qHÙZ`"yÕKJËLÌig³‹Xi._E4*tN½‘h1gßSù‰ÙyD½0–Ëe«Ä኱#ÖŤý´¹9yÂÊÒó4BB.fˆU'ÚáY‰4ªm¬û¶ŠåîáR¥aNA„Ùà ðyŸëDó6ŽméÕ·.ã×%ó ÝÔ°t«]º¡é|ž³eÅ¥2äÃé*¼œÕR4…U‡ž-;Y«8¢Ò %Ù¼â›m$­A@+Q³ò­çm&ä}ŽÏ•„¦Žª¤{6o‰–,@©GYmÑgJÜ̓B¥‘ÝQhY©´\ñx2%×(Mô%j¢©°êÂ'\™zbl»W˜.ÜÑH^»ïYSÓv“íÎ7ÁÜt¤6[ .kB€ëpÛŒ)Sëin¥ÜÕ¡,—@*КkbNÚïõÐ]ejÜ#¥8¨ÃŸŠÏzþœpiX0`óúSœ‘V{½:J¾4t“„×\ Ð TFr0„„ë¤^â„PÐqÀP y"ˆ®² ”¬kÙ -ÊéúQ*&DÃO:ÙN!U‡RSÓ/ +®±wÜ’N´…^Kª@£²„»Eâ…E5Be–Ñ…V˜Ç’W `ê‡ÿ™mº„‹ÚÓÇ+&ŸÎ$¥Yõù¹Ì„\ ¢íkvî†V}¦Õ|QuO]Ë 1&´0Óm#±Bh"U߯K2¼ßYyÝä†ê¡øÒîå‰GV•»,ÊÔŽ´©‘ œ-!NÜ–K×JLP5<°ËÍ–Þm ëJ…DI)€Â¥-'R bèîD’ÊJäåÔP(š¶0ÔÃÏ>œÓ·T3 . S½`ayÂø”c<}Þl^ïÃIB BH$ 'P‰Zµ1Á™ÏPôË‚÷~$ n™b ¯Ó4:íðÒ)q”&‚‚‰¥è“u(K’Œ-(ë›'’¥ÜÃt ¸5 PÝ¢ÚàÒÐâ\­À ªlP÷CEŸÂUx8©•Þr„#U("M¦–ÓrL!µõéK`rÃHJ%šH 5@Bn¡#pwAƒ2ŠãÂ'yƒ ®5µ?š0ת8ãŽ8ãŽø— fû° t]%_$léÍÚ3––E/8³@*h2,ÿÌ2>2.µü"‘ð±‘U¯á …ŒŠý¡‘ð±‘_´2>2'ö‚GÂÆEV¿„2>2'ö†GÂÆDþÐÈøhÈšŸ÷ŠKßFD~ÐHøhÈ{ÄþÉcûèÈbjr‚GÃFCGá–?¾Œ…ý ’î?„ÝM¿$ËÆ@VôŸýÄd$[²bºèüs=y$.Ü•¡Ý2c™c•&ØktŸpy㙬¤ªe˜¶X §P3j'¾c"$%U-/oJÔ¢£yâ¬O,doëé/ úöKÂFG~¾’ð‘‘ŠAA·déò±‘Vå»'ïc#ÿ^ÉxHÉi©”KËÛ2޼ᢕâLYã[é‰% ‡A'ÛDJvÑs¾ìÂPæ,ÇÓy©¤,qEœønÖœf$HàDYÌØžnþìbHê}1'Û„IvñsTÎM!5ÕO¿[ñÄœÒT©wÒàI¡¤7ÙC]”5ÙFH²òÙvß’CˆQJ’\ÔDdw퇄ŒŠ}4^PÉP~ö2<¶[bÝ”PN&ŽV2Aµ]^PI$î.FLÌ4§X¶eœBzå%U2`Š‹fX&Ú/.Û”Jk¬®2%§³†Þ“ ­qv23ö†GÂFF~ÐÈøHÉ5$)6Ü¡Q¿*5Û2¿N2Z•õbZŸ2JýÏVå/n¿&¤šÛÔøñ’a4E±-OŽc%UªØ–?Ï-úÙ¦c%?[Ëý3%úæ[ÂFIÒ¾¬KÓã˜ÉOÖòÿLÆIþ·—úf,Éée»eÍ"e¤®ê”…VŠÝÈ)ïŽÏõSyƒxœDæóyƒ¼ÁÞ`ï0w˜;Ìæóyƒ¼ÁÞ`ï0w˜9šTàHñÁß|æóyƒ¼Áßyƒ¼Áßyƒ¾Ê8×TÀòÇŽ:J`íç¸õ±åçUÈ»i_;KT~'»Î«Sázl ˜™Ï+¥2+Šâ¯)ÕtìŸvhÛk¯!‚EÂN:à6•]¬)3¬T]5ñE,çÇÁ¯Š:VŠK.»#;q¼áM ãC V5UÑÇ  ½\c+JE{`‡Aä°‚³Ec_8Ý" Ûk`¦þv~ÊcýÀžùFªžwJB¿  XܳÕsVŒ«ƒX}¾ <ðB•Ë(cþ.vnRí +ÀB‘-\ç]޽F×^ü&ãxÁzYŽØÆ6ƃ|§ýäq$óøuºÝŠÂfOÓ¶xyc;+ŠŠݺÃxTòÁvÑ(kÛIñÅ*“ª.½.FÇ‚,V‡ž*(ŒÌ“Êë¡sÞ$š˜Ei®éi‘Dùbéçê‹ÅP¢`“1EH×ÅWš(+Ö‘ìßÎÏÙL{_Ï|£ÕLc”Gòš÷ÇóuZL0®ÅæÕÞX0¥Ùc/„ ÚHKK¡/M´…n½ŒJT]|F|ÐÀ2³ôù¹‹,ž˜ë²ào´¦ü°‡¬Æ–ÚÒ´D íÕÆ:CgeîtÍ÷ľf·S\å|Ñjo‘ÅÄý‹bMÚ“aí•]5R¶$Të&žŸveÓyÇÜR”yMLh”…1gº´à@Âí<áYôÉA§¸†ÕJé¦++ÿE>xÂèîÅù'ÑOsX¸ºkH„¥a)ÀF\TSyŒN1H«èå‹´ßåŠÅ«H¢…#N¤õÑEp5@¥DRœùáû kùï”cú©ŒcÖjåêx7`Þ×Ïéî÷9øõ"†\PÖ”’;ÑëfÏîÓäŒËÎÀÁ~Ém¼ó­Œè®mT$n‰9T),K¶æ˜žS†<äºê’à I Ã2²-0Ãim´§¤jŒ##ÖÈ ë©“O”󦑑Bî°ê”µ§²"”òÂn©[FVIÚ<°=OâEl‰äìΧìˆÑW-#Ö‰øÉòÂà lÍÓTU|_4t™o„œb¸wbèl¦aŒAã(£ˆP×XûƇ,Qxa¢øÂ»b‹5ǰs;?a1ÿÄ(!1AQaq‘¡±ÁÑð áñ0ÿÚ?u íK~`êýcG˜½ÚО(/e!4?¾'òQ¡?¯Ú"-'<'}î8hj T.ÏHý{uÆÄ0Ze,ÁåS?õúF㨿íKÉ ªœ‡ÜüK¤Ñm‚ Š©ÚšßT ¬lpó9€ˆ©9¯é ¿cU>õ#‹ë‡bücן—ˆ½¾@ußøEÉû*>Àn¦$A€?ù@&)”ª…×á%!d…ã(O \pj™8·?,i¶B½°Íº¦YJf*Ø:•–, øàû‘?Ó]~#‹¢-4mÛ)>˜8:¾a®Öë¡„lÄáGs݈qBš¢b«Žvæ¼Gé‰Ùœµ;S·3‰¯ªÄɩعÛô{>f°ìôxzÉáaì‰ØLN Íø…Òq;3tíÎÔâô­ô±z™©®OhÍñ˶©nDw•&ªõŽUÐ Ì”s^kŒ3è¨Ã0éÿŒ6×ÙòÃ{ºâÔû+Ta÷»ÚßĢ޹ï.FëÆ!‡%LaÜ”µÔeq–h·áÑ’ôÄ!‹]ÝËÜâ%Á‚œÎ&T¡ÅX Cx-Y¬Õd:—iÛrŽ%üL†=.Ììúßnvgf섇§§Â0úˆöÇÖ½™Ú‰Ô'bvæ_Gf%Ü«jÍè%3³2»˜*^j‡ÉÑ&RN>ÌÓ–½¥<0Ô­Pkæ'E‚öýÅ?{÷.厑Yë©  ýâPËëPh–)Ãø`q™¾ìbÏE®#MíÀ<³: ]ý÷޵*Žˆˆo¬&±ÂXfÞb£cÙr¾Ð©`cfÎÁëÞsVëƉ˜p€<ŠÅJõ¢¨1Ek·¯U;>¯tÊNÌÓ꙽lô§ø•èa†Ðúü_ñhçSé“ )âv}=¸›ñÐ43V ö8¯ˆöՋ䙦·÷ U~’PªŽ âmë)¡!C|?PÛ½oÄM-'^œ:x–æò€1õ&D ’–°fãiíƒãª2¢rf¬)ï/|ó5»‚€)~âÀh!`Ö:EÖ*Ô¹ §ÅÇX JyfeF+„ ×§€Ç£ŽXÌs³;_îI$¤¯óŒ0à 0ÃþâõŠÿËöÉ•”ÎÔIØN%BuËË.½”ÙOs A·¦)W §^èÁèw¤ž0ü.'H¦vƒ)ñÕ¨LñH\,°@~EúEå,‚Ü{¥w¡Î´·ÎÌÉ]zàópß#²?p-s,ÜÁì  Õ’6¡–KkvÌ:®!sè¦÷ÃXÝ-"‡ƒ™™œ”X5]KH% ¡A)á¨Aé<+zÉÎÔ×é`?Èñ¡ Gt¨ž£ 0Â#QŠˆÝþáz/½@¥„«ÓIN§ì˸¯K& ۆ͸™W•×;>…JšZ y/ÌÈà9éPrû“ݳnÝ§Õ ‹Á€ãêq9?ÐZÍi•J•×=}"ïÏ5Ù,•1%Só™ ®1”ŽÅ‡ÉDäÝàÌr…”¶PX¥]Â뛃)Wæ_$¨*e9Bk )ÖùDá®÷‘|Ûi\ãæ'PÈhD!-Dî{Mv§Xv Â¹{©ˆÄÑþ¸£/EzTch‘‡(àp;u€Ggêåî°³ª°2Fãe&¬rÆ=L?ÇzÙCèñ;ˆ§*ÝWdÅå CJ±›¿¤WƒPKí²êÅǵª2Žø—¼Ó-C¨AW[ë-¡™Mãa¬Þ¡v@[jQ½€üÆàÑ›ãm«í.£|ÅOº˜jŠsX´ò÷˜# Ê:rL3æé;Õ¼çeoOÑ,Ú˜*ÛÒ3L¡ÄºJ«zÄ'Ë)Ùêoéæš&G\¿ü°zŠ•*0ÂF*1Q%Dƒ•Tâ[+‚"P5TèY'mS«N^·†b Z*×/¥Ùôvжâbq;Su“u… ¬§ i>¤*Ïn\ ¨ÀæÉðB1±ËGîÂØBê"¿45æªX(#‡Z>ãüÁ€¨#%mNöBÚaŒugÆeŒ,y(Ãˉނ…µJë¡m÷¸u¹xìšJ^ãÓµÁ*Â|rb•ÇÖ4ü >e>’ƒ=™‘zý<³=]~$I–îkÔìzïgÕI g¨ú ÂF0öG²1ØÀ `L‚øM$°û“u¨·lµ›h-[mõ¹]a/R€(^«ˆ‰žKÄf9Û‡Ò|ãÑÃ0zU³ÇèT`š ¢Ð¤}Rh¶Ë„õLý °#Ìõ¾¢p¶{çó<’ó[ÞsâZ‚‹ï ë}®V-e{Acób ÊÒ¶ñpW$u‹ÇÅO˜$}‚ª-/¯§Ó‘ ¡Æ LÌýÔy›¶RÉc˜iqˆÅÁªé‰ðŽf>U&èÀÖÊnÈ¡¶êQ¡±ûçøÎÌ°Ý ttÜë*Ð}¥—Rvý,0“üôa†A‡Ðašù*êÅU{¡t «K.à*6»åˆ‚ѶY Uâ:Vuˆ#Õ h¬z†/ñÿnvàçiÇ¥Øô*Rp/“!I8ðÊŽ®8ó †ÆË‹»êò†­ ¡’:5âT°¶ÑD±-ˆîŠÇ˜3U›e@q1u{Ê/’£ ·ªS€8…ZêTarÊP­Œ4ó˜ÚÛŠb@(õ¨4BÞÊ'õ!Â&™mem$Ò~ûBpÔ6…²Ú°±®´)’¦AýÙþ × MN:Ÿ!zŠŒTaô©Q‡ü¯ÒÙR 鸯dR­dy@Û 1ÿ÷z=ŸG·6Ìs,Ç芈Šk–Q¯ORòÎÊ>g¿b”"¸ -GÛ¥¡Cwõ½¯~#`z¸Oîu6rBÜæãÆŠÓ¤f»Qå Pk0ý P¸:Ú ¼ÃЗk—q²ÍÎ÷¨J2…ŒÆí"ì¥=Å /Rß¹EùÄ;ükx·Ú_4¡¶óq5W9éoâ…dµŠìRÊóÊ6úÂi wø™~O@ÌÞ˜w~ÂGyUzF!zT¯ð‘%D‰*TIR¥D‰äý Xaÿ(…êøÿöæig6CR0Ä,´—æ¥Ì*Ò)Ø¥¸‰#WÞ×›ŠàîF¾¦}âñ¤6‚¶Ç™LwTü<b˜ì›^ôT&/ȵ«¶n¡n)RØ;0(U(S§Ö0†ÌÜ!w°©UBôJ~Ë%&¡Žs*CiY“JÛÚëCLè]«ÂJP#/"R¿Å—¸X~òÆÊ¶¼3PDÚded Û%ϧO›.ªšòOìõ!‚úU¤rÐeå‡PAê„?Ãþ:õH‘"D‰_ÕÄ“"Aˆ%¿~6ÌÆÈöJ¼qÕy åD¡°oDÀÐ@Íc™Úô°úX¦ÌA^lÜýšÜ.“ƒ¦'b±~HñÅ Ém§Sïê ¬*¾æ#lKa–Ú'C˜:%ì½ìewò e t`ÖæLÞF••ö;ÄQ‘%å°rÇ£Ç%p¨j£l:µçĹ%+Á¡CBÀ©›]_R …“¹Ñ;‘|â W¢¿uô–¿Ê°Mb¥p<ÁÂ#&C¼j´wó4¸w3C¢é™+‹ÅþáØ²£[!‚2y–+ÏÆ02óøð"×ù¯òž•ÄŒ©O\¾?tIPAÃQ¤p‘‹dîVòUKÂ7•Y­ß‡¼ÉŒ]šse\µA›‚óStÁ©»J¸‚¼ù%Uº€ß`c…óÚ ^‡{Øœ…™k—Í's‚YøßFzÁ"JØÀ­®¨„}DDÝá°kÉ©™"ó¥ÌBvrëu˜Î⬢êÕâ'ÔŽG™°U ܽ”w`#(Æžú•êÀö”ê3`[\Á+1rìVÇÌÓí X¼¬f[>%¸ÈY”.ÏyßN¼æ.×`È·£·H"um Ÿbu¦RñúŠ¥þ¨›+ªü!ô@Yæro†Í™§¤ú†ág,Wà.B‹ï„b×Ü×ùÚF1%dóïàïÄHÄ‚ £<¶°]ÛR»O›Ô“3w¡‚ ò¥mh… ½”Ž`¹†žî“/‰ÊáO)]@•¦ÆÃêÖª8»åÀ_ͬàZáC×uq=è{;÷”2c_–&ê†ÐçÜL1Ìé ‰æ…­b?8@ÛØ]œßHTŠñ‘4…×1.7$¦¸¨X¶à•è²Ç]î#f@e+jïtf\æ÷•ÇXZ«¬É“}²>Ó/Vnx Fª¾çª¡í4ãJ¢’eÖðþÄÝž“KÁ{1Ä5ᇨu½Á<‹ýÊ¥Ô™À oº“ë’kü¿í•ëÉæfÝ/‡Ð‘ ‚ Aˆƒú@n ô²3túä€Gõ<›‰$èÐSî­£™“Õ”~£3OÔ wb¦@ÂÓÕæë%ìÔÇÆÀÕº,ÜÌaûll‰o‚(Žm{KºÂ€E˜Se[4Þ<ͽ‡ìeàn¾"X·7pxqËZ8â;µÈ‡x¬é­ ëp@|™ŽÁüÊä!GÈ?0©MÚx…±­ãdÆPÐmÇ%Bº°Û/ü—‚ºK¡ê#O epNh1ëCÖã?Ñ–¿Cþ&¤ÛüáÌ5þëÜB¡Âžh÷Cü³¬Óè“zf+ÿ² õôHD‚k¼Òó¯õ3 gb òåu ¯Z‘2ga îP»ÙÕ¯ êkÌT©vlçfÜÇÕ‚ODï+Hv(ÜîF!‚HݽkØN’Á¶ÈA…[ÓzR8NW0‡ˆ7¶`*% >BT4)>ÈStæÓ 8‚•Ä©Í#]2Ý @ø‰­À° :ê6¶ –…ŒÆÚ»eÙÞ×{„<ÂÔ‚®jqŠí÷}£þÔ8Ô›”!¨J¤ƒt‹}ˆôh·üº‚ÁÀž‘FlÑng¸)òÄŸDÃHå|·J‰ ‚8y‘VÆßn!‡p!Ëðϩ˷ÿÖ¿gx–¥(•ØëÖ=9²¼þÑ8*ò†-æ Ž`Æ6‘ß8`éסUËñóÄo8‰Ÿ+‚/gÄmîù…¿[¼Mÿ („@®ƒ=¥áÍ“»¶?7æÊø”‰\[ÇŠ!“®ÇCâ6ää; ,ò0Á³-`>A íüCCÓÆiê„)A Ü\‡Åø†¿Ý¥=•4¯ñÚvF$Ð'é0w‰XŒ`ôx~’üç|§¤C¸0Ì=‚¼©oöÿàk¬ajºß|£¡g¤w™Šâv…q)É ¡Šµ]âȲ«¢X³fh_˜ôÉ2;'>nT. øWCù„ús "ÊsÏåukÕ*7€æ>t E‹ybšÕy5ª¶TòÜeQdýÀCMb—óƒÕXžGéŸÌ¸¶B ¼€zŸØ2¥Ö~QýWÿü:Ž-·¶æ¾'>Žò’ P¥Ùê‘ôµüS?¶³~f¬ÛÑÎ C úÔ·ûðà ³í-Ôr®ï¿(/47Úa6[¥§ô”FE[Åp}á—ÜkvæYaÒ{;-†(¶ÕáQTHåádVñ( -i•LÛ¯—¨ nÔ–öeØY­×5úTç93*Ô¤ªe·V&͇©´þ‡â^¿Ï¡Gê(CÑA[;h>ð (2xkÿ—à :}\= Ÿ{(W}1õWÑÿ7hÏ÷ë}z[ý¿ÑŸˆ2Ç™Dd´2”cb¶è%œmå×иT¯l”Ó,&Ø“¼¦b€ÂûÁ»˜LÁ(ƒàö‰Ú, PÆžÆ̉|hË1Ís‡ë… ;Ñ(—•s#¾«ÞûE‚¦9ý"Fí²ÍÕ4ÜP"¨¾sd¢(7c{÷Þ_ž¿èŽ?J‹Ð¡w‹—Ðÿ4c|—ÿÏ·¸º:ØS®»ùÊ 5à‘¨ÇQõ˜ý¬ø„]»¾WЫoÕŸV†ÿoôK%£H£¦œÄ8®âŠdÉé· íÝeŽP»r¯vm'Oo?÷ΗAEáÖPf»c÷`ÁèøâQ\ÛÀß{o1Ò¶Hö¸Î;Š’å2çi©ÀÕ™Hæôìí¡ga¼ŒÄ¥s †ƒ`ÁÄ©u„>åÇæ²Á˜zŠ8ýBˆ¥ËúTÿâØWÿ63ÿHQüJŽ ¼‚G¬(àŸ„¼ÙzlzGÕæ*yîߺþ}*£Ü[Ѥú¤>Ê,pT:¿‰I²^KÚ*(f…bJ°¶¬À® b:d•ÇHábU@ h#¼:³G¤¹/el¿,À¡–¯jßÒ(dúU™ësmpŠgU™Qr²ÊûÊì#V•]Õ’·à™a¶Ý{èqÄÊŽô™ ÀÌélg¤ <ÍÕÉQ¾hsËç·t¸½殡 Ñþ¨º"¿3qEQA„møÏbâ¶·[¬ç3z_ÿÑ‚J ëhüÄh-;•?>›Œ[Ë3¼H{/â!éqçNв±Âz½J¯Èa^èoÞüúÈ;‘f8qß/´‰dHiFÁli“K\ñ¨§¸xŽ¥@^jâHäsu<ˆ xo˜¥ŠÆöçéj(»—žóbÇè¢P Êo”ù¸m” Pweëæ UgÞ.8¶$Ýj¹4Ô\/_@½·]\3%ç„ÒŠP!/ …hâåȤ:ܰ(Ƭa•}ܸu*rÜZx–F8¬´MyÄÍ5¹P ehð™Çþ~_oÉ$@±2i¦(âY0˳³ë¤æ¬¥ªþ³’úú¨qö Å‹<‰úCp®mg¥Ëÿq‰A#¸„Å´åSéÝÑ…€EÎþÇ Ï%%ãÙzˆ‡2hþÌÑÜÊâ8Q,Ù8ÈFÓ—ë.D´vµ|ÕP·d¶—-é³0­\n¬ï/¥_)d…LD/e¿˜©;Ÿy{­å²*›:fXüµWÉÈ®ó² ‡|••ÙÇFŽ´c´éÊ·P·8Œæ‹»í8‰ôżû}`ÙÖiVôª¸`½Ä8<]îÅ"Ùb[Ž&L Ö‹sÊd:@$+J4¾#¶KiÎa:ï¾ñ« æÝBU€WÝŒºþðŠÂÕ|¡„c½F’hßÒTÛàòŒsî¢1·©,}èß|o!¸ŒÇ8ÜAøo-¹Çs.M‹'l4¼7-x:¸jÆÍ·vk†4Š ¨ýûGrØ4 6µr‹?“Kø¢ "¾%9@Õz^ µ«¢dˆU›´¿BmÝ€-Né‹ÔmûRÒëaŠOÂ614€ùŽÍwDÙ2˜ÇI*®ŽÌ¥ï)Í’ø”ƒœYé ôªì€ª²¡Kí*ã`¾“…P#M࿉a_·€Æ‘ÓêúM…°Ís„8è8…Sv©”ÅZU]1V @ÖúÜV¬ley>òÔÅŠ²ØQóRÔžl¼&Ÿ79$tÖØv¿H,Õ~Gx/y”Ç íJÌ–ÂôÿuŒ.ÑAÂÒ…ªÐ4¶ûb;3v¼fP¹´î_‰Gx8Uýî`œtΦ7:ž†´Î‹¼¿ŒáX7d]®®—l.Oî&ts¡¡ý\:ú¨ÕŠ÷! ­)RâyVWÁdÌ^³FvÒKjÕrêEb«¸ƒ8'Í¿‰TÜR½‘£ÑV£ ïÀ_Ì ˜1¸lx‹Fû1,tîwÓ± d/·ªše:ÊøŠ¥Ÿ;wâ8X÷AëxíɶB˜.üU¼° '»éŒtH¯4ô”ªIë RqV^„¾XP6Q÷Œô5X‚À ÆÒÈÓŠ4ŠXL–d'f…Z¼Á²Í£±æ9«¾ªá)ºùA-Z°p |ã®ÛðBÖX1jËç†$ Àô†|m\(Îv± #KŒ#3dWªš´ûÁN9ÐÊpb££iJI²óXŒÙþ˜VSIÚ2b`êØÓÝõ‹)f*«YÒŒ¬RUj“[шAìwv§ØÒ x6öЧ-Oº%œH4"T-­ÛÂ¥E(i¼°@m×£%y³N¸â=?2qApÅÆ£Œ3WäDW`Këp(¹ÉÛ,6ÒøRÞq—ä……x¯z (Ã÷C±Ô­3·0=UÜ*~êÄLיІ“d04ˆ2¾þ˜êcLTß½~ gÙ¢öcö—µÇI¦ÁXÊ+]j+JβºAd_1YK®X=Di"ÆPj2#¸1qÒS@Ž— v§ç€øâÅÓ¼±‘èÀ3—%Êÿ\E›`ÍÒ[»·|Ìq’ñ0Ä…0*ï1Ÿ“hÞÇæ +Gds«б¨"ùŽTn†áBg’ÚèzüØ"Ù†}X((æ¯æ]]·Cr`/N¾tÒWÙ®"fÚÌÎ`$*A(Zè÷‰ú`PçÔ¿¹Ctxsª"¤ްvlñšpWZe‘PÀ»j˜î@ö¬F\îÿ ¸ì¸-ƒ«XÉ_Ø&G2ÍUæ]1bF$‚‡0³ ›³¢*Œœx¼¹è{¦ 2‹äb9nØ@îÀê¯Üròã‚ þð(ÃS^Q¹Ã;ÑQÌIQ:Õ8­Ä%TŠé‚~È™,ÁU±ÌJK©r¸[~%ã#q-A†"°¹¹}P>%ÛXç1hw6„&¦‚`ü! ­Ê¾ø‚mXµqæg.Àú‘Pj£Êþ>crâ8a‰šßˆ®j£k–m¸ÜvÌ"(Œ$œ0j#eFªF -3ß3Šœ]tÔóyÆLžbš,o1Ñ—t7ZoÉÒxü½ Éª]«¢ÊQ^÷1FçEù4%”Ã1 5%RÓõ‰ZòéfÓÍnÛRÐ3 ‚D¹F(§[aÍtŒ‰M:ƒh´µy閥ЛhÎy…Ha@ºtD´Ž Ì1o à‰^µ01Dlš#”c)æÅ5ó j[— h«X'?,¢-j^É›û‚Ñ{ÿp¦‹Ýû•– #hUïrŽÄ7‰}˜húOîiOýÎÄþá4>Ïîú¸hû³ùÙ‡öůçÉMXé–St¦Âçx…·÷!Wîƒp¼Uµ¾gõ1ÿÐ…¶?û3ûYý¬õcÍõbðýX*®õ—³8E(;[]Çÿjsû‡=Ó£h@ßwæ?úw »ëÿ¿î?ðßÜWô¿¸¹M^ÿ¸¢Ÿ‰ýÅíýŸÜ_·í)ZΚ˜jXeª¼3þ…û‹gæþâ·òÿq{Owî+ö¿qûþ~bSÏýÇÕJÑBÝèh«äûÎÄ1lj’PªÔ¶ˆ_1JŽ1Ì ´àÔ¨lÎ dÃ*ÅÊ3Ò°Kïÿ"R¡N¯%hûË?3­˜FVWÆÓ¬¾ÛPùuëŽ`³RÐwy•8ˆƒcnŸyI‹TpÑ·öŠ)E v{L…•€%a®— ÕÍœÝà{ 5Ki0í3ëð–^2­œ}nRQ¬„|@÷bô…)µ£O+PsCA :Ù]`y°0a,§K(Ø÷"ƒÞxwA‡ÓŠÀ:ƒ†n¬¾þŒ«Á4Žj½x4ç´¹rûÅ$ B´:¦ˆYLâÅÙ\¹qh^™ž:}Ùôž‹2nˆ} +Æã,X±zDX±cÆbS7Sï,mnPºm=& ËQ@ÌvF{³dJŠ*«i¨b˜ËÕ¨m§ï›„Ù·¿,ÅšQ€38áHpv‹7 °µŒ¡o¼n;€]ŽOiH) ´ÍJåVvàa­-Rƒõrv™ ®n­T1Ç~cµ'P…·7ϜΛºXÒų¡¹ ¯Õ›åyo·\¢¶ëO¡†Ò³\µqB…ÝC¦£*¼pKf8¦Tø5Þfâ”s½MŒFª ^E;ÌÎ|DÀ.Öß,‘âꃷ.VCNY Tµ R˜‰WWÅBÒÀ"ÊÙCÌ„¤*,–ª¬»ÝM×t€¶h±¸0ç)>úA7¾fO¾¬—Tº*H6¡(4¡æè‚ÙÞÞÉÿpe­@FðXQçæÛ…E2Ç=Z¯Âɪa£VëY‚–ìÈÆV6ææ1ÁÊ) »[ÍtŒSKÙ AVÆ /y žDZX7ú„½Çþ!Ð…bõwWíq@Wý%úDþÍEnÂ¥øˆ2\{QíGµÔŠêJz%ÆyǺ#¬GXž¬{ÑîF)þQ>¼ûÊð©w"0ÉÃUõ•[0J£ŸÔ¦èaædŠþ"2·»¬Bª¶Ê-"ÛıRläÊ»À‚Ы‚Er¡¿1emÜžƒ/[Zþ. ì¼£îͺ~’„¸të[ÄôôÛ×ͱ>­ý¹6Ày €ÜÏ!¾±¡¢SU”V,Ò-wZ»Íõ CE¶y˜ÍA—x1qC­=F=¢-ÃZUWQæÞDÕ)‰_Û P›B‚•šÜҽͼŽ"½ëvJPË'{Ò,ÁÚZHA WöQg a“pðáwÞ&ˆ€ÊËÞ$ð~ÕzŒœT”Vé[ï7cêì6ŠâøŸL¸¬Óà¹XªÐä8”q±½?XtÒd˜yb!DàŒÝ¬:ÓB×`Sï €ŠF6:@ê‚ [pw• 8‰aâĆÿÔ(âx"º‘œ§ä*;óÌ¿¤r$`„j(…Hr¿©C·j>€Gh‹ƒüDÿþÔwü´Efå…tð$id* r 8ã#"z£+•\¶õ•U½jzÅU UIÚqà;™BñnCŒX A¤Öq:¸ ¯iH€ Y Lw][ó(Ö²Äg.Í,lª¬¼G;¬>!²zäsnE~aº«Sç*Æ¡ê»îê5])‡>V˜I˜paIh<Ä­¥zßê|Ò,Ñù!XìÖâÍÙú™y;NÏh&B²‚ªÂ×Rï6ª¶¿ˆ% ÷ŸÖÂÊËïú…9¯?H7?7é/€øjëÓ –QÏÌ©ˆYH÷^BeÔ¼W1u K|Jn» ý£âôMm¡Ñõ ÿSo¥d-ïS«½ *ï›çÖ…OÒcMšÊý@Þ}WýFŽD²û}ª\åÌü@Ê LÛöƒ|ýK¿³é“9³GÒ86²ýAQ‹Åö‚àkÏôNOõvЦ.¥æ“æ2…ä[_½lG=¡¿êCoÖŸû‘ÿ­úÓÿZëOýiÿ­?õ¡ÿZîCþô?ïCþÔͬÛtPë¾g}óû¯?$ÿÚŸûß0¯òKÿdï¾gþÄï¾cµ%’÷‡ó8ƒ•7̵tS[€5¢n2Ü©§Çh•Ëe>×ßýæM]â\ÃyIg'˜(vtÜ£BQÒå”XÇÚP%ùWIkÂéæ2o/Ò$H¨  Ä|ZÚÈýîGÚ^SÕ^`–0ÁdÈÃÖG›ÝBò[E¹Î÷ÿˆˆ[Ó¢:Yñ”ÎÒêª {"ÖË @À¸¹lÀÜíP©-NèÒ µUže–rbؘlˆ´Ï?Bضæ^%¸‹eÏ+Ú4;¨†]Žs¸¨Š  ½Åhµ«nns¨;“P}X6AĘK—.XK—  _Æ.ÿ1\ĺƒ/Òù—ˆA¸3˜™`,ÔAN Ce\º.Ó£(˜¶íé-õÐ`Æs ª*ÀÕÇP_¿êK m/ ÃœŽy‚Èf¯´ZÚÞØ¸î‘ÝÌÝÛºª`¾ñÛìyQ„!Á–¾Jg¼‚® ]>ÑM°ìÛ, BÒëôǰÉju¾n+u]‡H]Ð=#YetB̤WŸù§«³ |•BºA*áËR¢q_‰P,s™Jyæ\M™ÄÆ_Hm´­¸»JÅåòòýÓAÕ.¶íÄ…n˜ûF³¹Ö\wKæd¹O¿ý‚Áƒ-Ö\¸EËé%¡N=èû¢ d=.[.^ Æ-“øk¤¢W†}ó)k/;ë­*uâ`…£¬±È¦"×¥\+°¬ÄOœ&h &~¸ÜÖÓ/¥a÷¶Eõˆº¥Â…té†üŒ%{T\ª¼öª¿XB"C©”X»-FÕº‡¨K‡i t²T°;t’šèõd°+(æ- Ÿ;—ýÃÎ aÅÓ± [VvšÍ˜ù8‹Æ„½·0¶ÕÖ¸‰rXµòZ£P@gX¨EWàϘ¿',¢« †T/j ½ àÐLVTÝñS0HÒ뤦ZÚÇ šEæew¾nbú0qés+bD6{Ÿ4p–â QU\‹Þ%¸()ÜàáeàŒ8õbëÉH–U~0{?„Z bë.G]a5`ö§¼¹xˆ•ëi•îË)Z¸°oO1®Œ Þ`¬H†Ùà eŽʼnQíä“Âc¹; ¼„ -±S3¥xbV+“lðÔ  °QÀ(K–UÃË5Ö3£êÛLù7¡ˆ#•˜])²]D6/œÎ@ªÔÓã-Q}æÃ€Áé—ÿÄ0!1 2AQ"0Bq±ÁÑða#@¡áÿÚ?÷HxÐ\Å„¶)“q!âJÌ9'd¤×²]JÓfU*m«0\çõ:HQ[šQ¥QH¤iE"‘H¤R)ŠE"‘H¤R)ŠF”iD¹1º—‡‹W?ÉÔ]¤v¤v¤ŒÜ71½l¦t¼<ºì5§Z0 ãQ«dœð×)rÔ¬²Ëû•øÞV^VXù:Ö—QõúO©rØ•·É M2—Å’P›{»DœuhMÞßúÌ<5CtJP”jʼn‰‡Ýé¬YýS0v‚L²Ë,²Ë,²Ë,¼¬±²Ë,²Ë'[-8×^Ë÷:¯Â@m¯cÿÂ×Íþ†œ¤Û{7+OÝ~|äÕòc=1ØrÙ'ù‘Äœ“oØL²Ëò¼ì²ó¼ì²Ë/.®6÷:§´Y„­Ñ%[•á8þ¡ƒ×a*Õ·úÁ\5§–׳5ÇäÕ“ªÅ‚IY²Ääÿc § QÁc{2Ë,²Ë,²ü,”’äÖþ«‰-ÌÉæ?*µ+Ch¸;H<ÇæVê§ú•»©ÐüΤün$rNÌªàŠ¬$d%ÍÇ MСB… (¾*z¢ÙæˆÍB… (ºÅjm+<qIúÍYÿöû™û¬$€;ÚÐY¯˜Ÿ‚~Í´Îmù…a#ÚX:ŸÊ®í@ýÍ9î%R|¼Uš•GOgä©Ùªb%ÍUÙÍMÄKO{ PФNV+-J•&jVÏÙ´,M$9ýzz~Uª¡Áh.s[ã9Gü[BÙQ¶qHøÈÏÈߢÙÏ¡Hµï9‚­%¥¦ '/DöI©²ÒÇ·4ªiÈýƒ‘V»*ó‹^ªµ#F«©žFêƒúfãÞBg„~ó7’AòL2sÑEçUHd‹£D*Ô‰?ùBÑXD<üOå8Ôq.q2}è´%<ãhiä·p[ •L¡¶N›[ª~ÞxȵVªkTuC©3sü„ *dž1stàlaÀuLxhXÚ…`q”mê½ P®Ø„k4ê·Í#5½[Ô*Žˆ\èÝŸQÂ5CŒ\Í1 øG^ô]Tö#ÓëÂÝPâhŠh€¾›aƒÓÚ÷­º ì#À  qßÄNð”bÒøN×½nмðrJS»:®p‰Qׄ^À±«걎«z¬m<Ô›£ŸÁì'¢‚2(tXOE„ôXOEa=ŸâO׸<æœÑ¸ ÜͼE( ª¦=Ê9,‘¸ð»TÿwpBóá •Àe(¨és4O¢©4(ÍR=“ê«ø‡½Ú¯ÿÙplugins/jetpack/images/screenshots/sharing.jpg0000644000312500031250000003664512651056012022234 0ustar eacbforgeacbforgÿØÿàJFIFHHÿÛ„  !"$"$ÿÂ,X"ÿÄ ÿÚý–HÓ7ãPKŠfÌ5þ€=L¦ 6Ü?öÕl>ºNÚlÅ–õQú—EØyÎõ¤ä;¯R6z­fÛÇ×í9ÝOW3î_Á[>úúûµÏš/=×ÄÅy'_¬¬nJÎWAçïWpüÕªç låów· ŠÛmïîËòY¨¸1j¹ùqúŽú²ókihøM÷MÎë8ŽšÍuåïùÕxj¯É5ßyÉm²ó]$žßéµ¼ýQyÖ;g¦äïL[Æ`›¨óÐhºí7Ø>>t»¯Î3}^3 sócÍÝj²ÄÁÒë5­æ?2é2MÝüü÷Òcµ¥qóòãºÁ¯è<ìõ?3l@+ˆ@}öm» U–˜UZ «-0ªµ@VZp1|£™%€i5†Šm¾Uª ²Óã9{!Õl6UÏyŠxAC`×ݹ¸?=»=øUV¨*ËO‚å,~wûq´¬¬À ïͺ>†÷ÖÉÁƒÒvÄ*«Te§Îò{ßO].ÔЃ:.?rÀªµ@VZ`gUV¨*ËN£›•†Îƒ:¨¢oN¦<=l ”Uj€¦¶hêZêx²¾l´²þdÓlgî Îä¹ýþóY·ÑûéÀUV¨*kd à ªÕMlá—ôAœUZ ©­žV–êíŽwîOH à ªÕMlóœÆ~ËAæ×¥pUj€¦¶cDl½3€*«T5²pUj€¡·€>}ª­PTÖÈUZ ¤: [o€?€=dçÃ.PÿÄÿÚIÙ~jc«ó×ouÝG>ÿ›EVÕe]ëÀunׇg~v¾¼C7¡×~'ÒàLºò£oš3ßÅ€£óüÀ1j‹Ö ° @ï‰æÎ#¨‘À§»"`©‚©€ß^@Úà •P.ã”ÿÄÿÚ ÿ6…³_gžl¦î³ý=Y]œYWƒT.rü>N4<¼kciø9çc6Úbés›·»Åœñ{¨ |é óZºB@=ó×2\ö>;ßôSdè]0ž9€ mõu”Ïnã˜Ö}XØ_\l/ˆ66Ä â …ñÆÂø‚ãa|Aq°¾ ¸Ø_\\„xœí\8*/ö3~i·˜Á—2ì sÙ­ïÊù®õÙÙs2V •Šñ$ç>‘‡<÷‡ bc€,>dFCç$-ÃVì j¹ïQ°!éõ«IsR6‘ϲˆÔö߉ÖÕ^ÖM°ÎúÚƒ{6nkØäâŽÌÙÊ=6`¯ªÛRCøµÙ¹ÄÎVµ³ 5±Ò ÷–ÄêÜ‹#@’V§ìÝÙ‚¢‰6îL(¥(Ñ^±¬«äÅt¨óc” þ"G0d °£_s±fÞgX'K{5–ƒ,¸ÒkEº³#‹qÍË"ÛÍ =‚,Ž3Épâ…alïì,éY’¶3¦Èet  팰„æ ÜÈ“qQ­BÙWŠO,I±ØoòL›QÒäˆïv9Ø|§7Í—ùåŘÅ|Y3Qx*ÚôãJâA$Çk8ð¦bZšU­ÙÙRíÄ´„W .?2梨ãI73;š|f€.Mµ‡aj¹"K Õ¾ôÄŸë‹îàï¨öQÃdØd[©š·@¼Y¶öû¸ÃÜX ¶©¯íiÄ©Yš<Ø‘\J¥t§9­Z¢Ký lòZ¼tˆÁ.½²±úK°kM••%ƈèc ^%ëD>Z´ºÁÆSš…l«(ts-iŸqÀÔb¸ÃDð¬c†HPÑÊÂ}Îð;ÿX)ÜçqWªýX˵’sÏFÇ’Ðéf៖áÄ«úC¯…_kÒ!pŠç“1MA—Ý”m¾1˜’Pù£V¨8ý´ms¤òÍMdž‰“bCj,¹";ÝÈŽHüË 7‡È–¦kå%êÄúÒžú1«#žÆLXç.¯°RˆASŒ`Ñ8«¡Î‡7W)(GÓïÂÙ×$®UfÇßãÃDIæ6`^æ±csT'žF¬{†¼˜óþäÅ­¬:ôFI6ÛÞÕVc.æ"6QÖ{ÔZ~ÊF8䇸Œ‰Åª{‹y3ƒEh]ŠÆE\ΑlH+18 HÃ6ÜÌÃWo‰žmÁo"1U0Ñćy% ‘™Š©óyFÜw6œp?êÉþÆÿg:ÇË—™Ï£dJ™Sn!¦‰YvÂö‹=E˧¼mÌ9 Ã/ÔÚÑfi“â¡Ì¢t)ëôeEÆ™ï,²lY0~”êzÚ겫“’²Ý]öqÌŽ³ðãK]‰u¾d¾#ëjlNÓ8oO¢òâeãE<Ø’Ä9 wÒe}jgÚ$XèÉ„ýñj¨ê-~”­¢ËŠ3Ä®£q²>y†$Td£FÛ§XÀÊ\œÊÇMí×eQÔf`©·¨èR¾*ó©’áÔÁ˱ãQÈæ ·ŽÛñL– ªõsY!LG…ÇœU}vhFpÇÊ èãÎP€­rˆ©­s“HèpÚ"mf‹KäÒÙÎ/avçÅrþÐyzº"ÙÜÍXìyÅ-Ì*"Ê“—]WZqÈG<ÆQTY,f X@ )©}€g)Vš<ÄQË­HËŽ&Hoö.ø`¾…q}_ .Nlx¶^ÇÍŽ)F¿Œù#Œ¥˜c¢k¤êB£†âÁtÉ ÿðì^b%Œùôisj_!ªÆŠøÌ×üŸÑ·ÿk‹¿ˆ(ÿå&/ŠÚŒÀ eàÑ;ÀU ¤SWÊI‘XV#a1ìáí1à `š‰ÊE輯û¨x‚׊ÑÍ5¥¹G[[’J‰TvÕÀ’à ±2 ÀH ƒ}Í'òÝÿ¬8ÉÞ¸ú›¥eÀäõJѹÍe9ðl>’á’¾±+FÍöF·KÄ[6$ <Æ\ÖœÑk`9¬LdšúÓå×<±Âg„C­jTZ8Rˆ¤€²ÎÖc6 pgC•\ÆŠkšVp[Lì–š† £n¸À}ä‡HX ûÁ+£¾A2ÇF­0V4`œxaŸÏ?û“•lô”êýBbéÆ[¦dù%Áœmk~¥†EŠ(Ãâ¬t¦-¢Ø™dÇŸ—Ån®s¹YTµv %%¦ó–¼aB²¶ìQ¢Gt9nB`‘™^ºtIÝ*>Ê2µ±Ü±(ì†ÁV¼ähäkßUúðê‰þÔþÎbË—êÇÙCB‰Á¤ËùJ†ˆÎ=|-'rpݩ˕pæD…à Ç9ÇG䬺ê@Ó¬å@õx’»$åÈcÍ í“u0•U•3&Ë‚¦¿YÖï%åÛ‰«6d/Þüoª®…U«ã²`h’Ö&ò‹Ž‡UeÊš»XBŽæH š;ª4<ŒNQÛ6O×),2~_$)xŽ4Ðrv_…\0Âû¶wRU¦­up¶£Ž–âvB·m™Ï_>* ïW·ÊÙ­Ñ/?[´ŸÝËÙ"Î-è,,fÇs@íÄÄÈ€–ƒC³VÙöD‡+Žà3JœŠR`Ùr¬¤"« ÖÚŠ)´°%EQ¸% t _ªX\ªtîn뮩‡Ï83ÓƒŠö£Ø¬w¹S‚á+!¥OE ×•ÛÛÑ.iPy#P>¯²jŠó6[K’ÕlB¤ƒKd¦ñJÄÒÇbtgK˜äG7 Z{ˆ4ÂÖ¾òE²<@H$œIUF¶•ñ,âòÓE¸-Hîë¡Ë‘ç 8‘]¨*°£,ƒHQñyƃ&:½YÑ탠Û,&àñ.Šƒï®øÊ¬F=á©€Åh££UB˜rqj§~’,Øí}kÆß©ŽËrڢȲœ•«¬z1—2œØWlŸ-ðÚÑ9îbJ‡I€S3Sã¿XÔ£aDá¨ö=89©•ê6öž#Hœ94p¡z¡†P³m¥e-cjÝ[ʵc9x¹°© Å’’Z†)ZÝ,wV*QŠÁ°âc¿˜Ù5P$W¶#3—g O …’Ä!N­Ñ¸¹j¥\©´M•~µaF ÒÌô˜Ík^°àE†iŒ=µýdL?ˆÎN-wpT]Ôî~7S¹øÝNçãu;ŸÔî~7S¹øÝNçãu;ŸÔî~"¢©^N ˆ¨ˆŸùíõ”KÆU××[ÜÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-31›|´ÌtÆmòÓ1Ó·ËLÇLfß-3 q›?ï–™Ž—Í^[Lt¾jòÚc¥óW–ÓZêM©ç\FÆ$W5ªÞÍ#ñ27¢_ñL™ñdõ)Ùä~&FôKþ)“>!Ìž¥;<ÄÈÞ‰}‡+Ш!ðÕÃWÞ¾xñû×Ï?zùâÇï_!Ìž¥;<ÄÈÞ‰}–qI’À¡•­Ó¦â°ó‚š+”Gbñ“‘ˆ‹м=ÿ¾xc÷ÏL4ŽF4€P±ŽUÍÁ+SßïÆñ¼#ñ¼oLoÂkÔ®3Û£R"iûßÏþ—±ñ£‘Úž9ÝüœO 24f;S#‰®ïì¹3âÉêS³ÈüLè—µ~ô»VLø‡2z”ìò?#z%ö ǣxã‹ó“ì_œ˜EEN)î쿟ý/e†a¥%cL±L‰Å[Öì·þ¯3$ù-Ä&3½Íì¹3âÉêS³™xý';¡ª{,¤4—”¥h†Ðqså_#à‘õ\͉81bL0­£ù¿V Ä~б¿‡ð‹·µKmI*ÆÛB¹«mZ’›ÓÓ»‚h³º 7Ê06+¶Í{1š¦ÈpP›]eŒ!Çt½¡)ÈÖ¢}ÿçÿKÙ_—Åmss"A•ƒdÒ§ Z(Qç,U„õ Ý6™ H†ldœµ.fq8aS4MAXÌ ðŲˆ1!ÕP%eÌ1ÄfÉŒ™Q oXŒÄœaxèXÇ ¡£•…ûØ2gÄ9“Ô§g'âx½"û3œ^tOõñQµÉ\WG+ NÛÙÚX“ÇÌ0¢°ò$Èi·HX¼]NÍ)õ¨~¤} *ŒÎp`iD‰1A* b¯<•zJ÷ï«“ ÒHGc´Ñ*¬`ž®LƒIMLÄhÒãÅŽBD»s‚G'ßþô½Ì™–؜픘W¹LÆ|)¼ê#Þ"büÜoi˜Ï¨n”%Ó™Pœ¬b0%6Ô¡½ÍyOmcn ˜ñãx„§RÖ•Ž5yÎâDc8e’¬6Ç“Èí$eb7&ÐYû4íö;Lø‡2z”ìäüO¤_e””ô{Hr&œtAýé i„¨7Ï# Š18v_Ïþ—²Ë'L}¤™uÖÉ’¤sY’nY«Mð“WÖ¸­É’ÇgU…²H„k}“ªàÍ"H5§Y©ëLÑ5ÑZÝ–h#1€Àm˜œÞÁ“>!Ìž¥;9?Åéµ~ô»VLø‡2z”ìäüO¤_fzºŸ[$ „]¤QëWuŸ1üóâ‚îêÆaDk"ƒ‹ÆŠ[çSD˜TDy„×¹> $,aÌŽã'÷=­{®F¹ª­^Ã^Ç9Íkšªß©È籊ÔsšÝKÁ¸sØ×µŽ{QÎþûÏÏþ—±\ªŽ{¤m5­ÆàÿÔ„z¢5푺Õr70€=Âgù6ß ÀW{ø{`t¬jðãðdψs'©NÎOÄñzEöf¢Æš¡È˜=À7ÚKKxÁŒ+ÁK¯4¤BÇ |×h€f„XJîeZ™& ˆM¶òI©ïÁ§ŒÉÕÑÍ DzlL‰c'÷× jÑ=-¬,dx‘d0´ŒÆ©p„µmÝ ãZÖØL‘fx³Ò"kcѱ­¤‘7€„'œjõl©F<6LÝT “d·ÿ¯S÷ê66ØTQ®Í= ©X¤%Ú2´/œÇ°„jº0e[6{2Ø#ÑòÐJ¹üÿé{3äžZ]§SV^—&Ð?ªéòŸåÈryšr7K[/KS5¢¬8¨Ñ°®çÁ’_2lé]#ÅÎÑ.:R<'[®“GSó°Ð6ëXô~%L4È$†p„÷¯`ÉŸæORœŸ‰âô‹ìúE›m]eE{[¡áÐçZÙÞZ0cš®sº˜Ò^æ3DäÈWí¹¨Åv\Žáe¸1¤ J¤v±ìf^¯j0|dº;©±äRÂ1÷o"™í"àBGÏ#Ƚîƒ]-ÊÕã-¨Òà™~½Ï#š²EºÔiP´µïbµáý¶½ª”•ü™cçóÿ¥ì±‰`s53wZ'Wr÷…LWD‡ MzY¸VØÂ ð O¸ˆG¢²–20¬yæ•…ÍåCÍŽV•ÝÔmWPÀÕ©‹ J¨¨üЏ`hZ7èk45;Lø‡2z”ìäüO¤^ÕùÿÒíY3âÉêS³“ñ<^‘}„"1xps—»}>Qq¾Ÿ(¸j£“Š/^ËùÿÒíY3âÉêS³“ñ<^‘}™‚ââšvÞæØÓìÊ’é¦YD ³WëÆ[·åN÷WIˆ‡&–ànVW£ÓÞÑñìmH+wÌ„F«÷—‘‰8pãÛ‰#h¸˜+ä(¶ÒNƒqA“/Ùô¤W™@A+ ævÏþ—jÉŸæORœŸ‰âô‹ì·†èè§ã¶ö'E°| ^Ž”wÖ#<{ ”çëX¥Ô%+«´·Þ£à˜¥£ƒ E5td”1·S™])?Ù'´|…Ã+¥¥5ÏŠ’4Ñs#CÜ«UsìÓ°¬Ö{'ITÆcE>ÉDêÑ9|Ö3¦™ý&d*UœÂð>(Õ¡"Ž×‡\G~Z¦\ÑP\]ÎTèbâJÎsYý"rT깯·‘ϹwùŽËqêýä‰Xk÷ݺìu;Ç3œŒ–ÏþäÊv›†c9ÚZmå#‚a,-o,¸&èãÕÿ˜õÞº¿y´sˆÍ ?Ò™I’b2Ñ 3Ty~t(:”NgÖõÙ”|Ôµe$÷@L¨ Ú]i¸õ~ómÑÚÖôF´ŒôÌ 2“ áê½ ðöæ!ðGœêm 0gè:"Àëo.»èK‰mÐîïB˜t¼ÒaíOJ–#š“hUia¹ÀÓv£Ç.õÿ-a44µÎ¶³B˜´1Έ[„¬&†ØjY®³ÇÕuÙ:ŒÕݹä¦rÉ<äìÕ'\gþ…KH#&÷v¸Î‹Ñ}=îpyhs§²Ñ’ 8ìÿØÜz¿yuüæaS£`žKáÞíS¼4N®ãHrìòîMªE¯9¼Š}Râç2`üÕÚˆ¢§]Í@¢¦òÒÇ5¶‹ye’{Éyw]¬Ž ½RòÑÈN‹Æ–'Åj5N_Ì5\u»ëêºþ<´‚4Ì*¾’÷>%Oºcì:ÎmฺRV!É·ßcqêÿÌzï]_¼´Jµ[»uÞº¿yç.„Çú*Ú•ÑE³<»Th¸´û3 (ÐpkÜ=Ðy§0¶@q_Ÿ#¸õÞº¿yΔOf9&œ¸®ŠÀHtk*áì³ù…pÈ7Up!áÏ.»]Ç®õÕûÈNh(4 Û®õÕû¿Më®õÕû¿3l}üÓ«ÿ¹}_»µ²sX+`¬‚°V ÁX+`¬‚°V ÁX+`¬‚°V ÁX+`¬‚°V ÁX+`¬‚°V ÁX+`¬‚°V ÁX+`¢3‚_»–«°+°+°+°+°+°+°+°+°+°+°+°+°+°+°+°+°+°+°+´(P¡B… +UXþù?ÿÄ-!1AðQÁñaÑq‘@P`¡ 0±áp€ÿÚ?ÿñí<Ã6Å–-žŽ—‘6{¢é-gýÔÙ7(ž<‚":'ú©¢‡¢^–¼yF©6: éþê)1J Kµžñ<#âxWÄð¿‰á_¾'…|O øžñµh™¦ðþ?Äéꦑ@Ym-Wp„ â£À­”ƒHêRA&Q”“{åúCI$ÖŽUPÙíh`"†Í3cÙ DÑs¨.ЀP5!ÒØÅ ±œÔxu5¡ìl6ªö€+@”ªf¢)e‹Eh{‹?¦LP yji¤jè˜ô;RÕ|u­ˆ-ô,tÞl†­£Rà¹B•‚·T;‡G[©°¡šu‹zù`„­ìLAï(]ЫÕà©Þ׬@°E™ƒî©Im®i6 €Ð®UTr¨Ò€µÕÁÖ¯j‚w¾’¡–7¯rj½=¡iPÛјVõ´²ªl,¨>ÌP·­B_K"Ѭ;"ÎUšÒV½‚SµÎnª,N•ÆH»QÌÕÓµj=a1ÆfÀPíÄn+ §êaºÖÒ}ä[§¼‚¬…‘ßúKd½mšIýçü—Ànr뻼!ˆ„;¢õЉ€£¥²®ž°_ L™r²¼E‚øAÓrÕßY³eÿb^¾ÑöÅW»Úõ‚Vkîl¨¾>…­¢z"hTìJEšâu·X&:¶—ZJ jb^¾Òó!õÁ[jÆ% ÷ì>ÞŠ¹˜Gƒ—V6÷—¼Ê”»ö\£ÔÕ«å!øõ!Ô¦ƒï)[zê¥Àf r'H´"ÙÕé/šoF,­é¢ÛD:š^ثׇ|Æ@øjºÒÒS„¸·–šÙ© VDc³\ èî?hwÇ“eCF]&mvh­]éUH NË!`j”Þ÷V  v£¬k~­ lS·¼¡“À¥Ü c3hí§µAcóÕc÷ Ï´sT\Ú>âé«¥F¡‹ÞXäçQ‰vÇפû™¿FU çkª…ð²Õ¶á¦mo­¯Ìà½Sé+‘k*‹zŽÓ¥V®uuÁÅncÉú&@¿:æT¥LÔ×ß•y¡]T ;CW €QZÉtë8>¨ÑŒ8 RJg{ÖÛ}n[M­TÕ IõF=e…k§Ó™JC ƒíb©Õ´výSûNg®9¯¯9=Ô¬È[XhÏp{@‡q:…ÔiÞó}eŠ©Í°¨èÕ®eh«Ù î)ÉZÛ3¦æh” oJ<žÁ‰ý‡üƒAÁîë¢6¼7ÁNƒ˜¨ mVîŸhb£í·h°:~òèmeÊ,Uj»rêÂ{¨5OµK^ÕmE‚” ¼o‹ó@@…pT ÅØW]˜÷½áűËgF´:Ò(‡¡BÊ€‡ešf½-œê­›»@€¡²­§Ö;lâ=‚œ¥±\ߣ¨ C7^éÙW~©[¤"ý‰YšN²î¡§[¼LÑan°ë ¥‹*” Ä×24ŠÚ©¹zج¥‚áF°×7MÅmÏ?ãºN•f@¥ìâDXÚÔ£½TEcZ!¥°íP432;BÔÜºŠŒ)I‹¾Î3u>Þq¼‚MN ˆdK\bÜ›.(·UÝ]×,(˜‰ý Fœb˜¦$4f®}O‹Ú°å’ì”rsØÊÇ¿uB:a#éÍi-W)\¾ˆZr…h ªhõº³0zÖ³¹+AP(ºgH‡…]ØÚÆ¿OFh¸]€.40NºßT6½úï>¶¨‰V_±ÄnoWéúº»ÓŸ…94^Ä)-Áz‰L`SZŶÊþ÷( F9 ìCìøê È’´—;õ*a.C½}¸zØŒþ¼˜|»õ`Iêv<ãy—Ð 8w‡(G¾‰jÄu7…haú0m¨‘1Ówæ/m”hÅ EÄ9C¨-[¹÷û ç$]o[ôÉ5D‹1.M²JD'ù‹‘é|²âQ‚€Î7ˆ13:Ôk…Ö6š“b‰|2õ2&M¡1.ZÇÝ-N¨·vÚùÊãè{Lê\åÔÌLÕKHU¡“:¹¬J. lÚŒ¥Lϯfɉ´úkGJ’½Þx^j«ÚV(URM[¤`$R‘jNõWèÜk Œ˜œ;´[ýNÚpîÓ‡vœ»´áݧ.í8wh›¯–®Úûÿ"$n&î(£}çï8wyûÎÞpîó‡wœ;¼áÝçï8wyûÎÞpîó‡wœ;¼áÝçï8wyûÎÞpîó‡wœ;¼áÝçï8wyûÎÞpîó‡wœ;¼áÝçï8wyûÎÞpîó‡wœ;¼áÝçï8wyûÎÞpîó‡wœ;¼³„{/ðõëÕ¸,Ö°íý??×ø_?×ø_?×ÓXupØZo/ÿJ/ÿB/ÿB/ÿB.(*í-·™‚.u£þ˳™µš!!‡6RºÆkGýÝ?Ùæðô]&kŠ”ƒ_¤HiPqư¨»V—ÓöÝüÿ_IPþæ"màM;kÔbZ݉E,Ð¬ï£ P$ 4ÛlN¶PZÑ49üiéLbˆ m†p7PæpA·Ý‚e÷ØÃ$èQ¢>ea¦ Ú4¡N‹/S½t©2mv{G‚½jA4eKJ§XYÖ^TPƹvÈjâVJ®ŽñÕ¢îi¼,5 !‚€»p6¶ "P-ZÒûíI5ʲ(©T±1noö]üÿ_J³;h)½ª'«1[.Z¾Þñ(މL@äæÕ«ÊìÃÒWš¯·ôœ4iìÕš±é{zc…¸È 2銀¦À¿êpA¬_uÖÝÇM!‘1®Ú ©š tÒd’Ç>Çü’•†Š!ÌÎŽ`¢ÛîU^ DÍÙ#*ñI$VJܹAž€‡Ç_¶!´YL‚FKUÞÊByµ€^1}XhÉ„hì(Ó²ïçúú[­fï(?x¢fÀ³‘ÔÅÁ]êÞ±Rê—^†xV,ôŽê¬¨i^wJT‰a ‘@·5ÿAZ½j¡û¤ã= ²mO¸~Û¿Ÿëü/wóý}"-¡{ÏüAšþ×Ä$‚‹ÓÑû%ÛK¢y„"°¯lê~Û½ê+|×W@ªêalìˆ-©¡oÚ?džp#%/¤l³q²4.zZ¦bÚÜ@3V^—¬p å ù±êbòÌcåZZWÓÂB©è­ÿENÛ‘É|RÀÍ.¯ý#ãÂnÜŸô‰šE¨.>‘¢Éu(H(äiÒYü.¥ ±»TL2 *j—B.AP(ÒaÈŸ´oåº>šÙ)Æ0¾ÃMð•Ømâ*«ØXÔ´•"Ö†VÑå·IF¶ˆ씃nÄK˜í+ðA=¬à Iª®Û(G\˜LæÐ° J¼DI{RéÆÚ•E\=f ”1kJz~нšu­hx„b4[¿»QN•øÑÔ€³Î*Zƒ-E¬™-­»J«.ﯣL‹6àˆ”K)Vqyí5Å”°N¨ccý£-Ñô±öWŠ»Å&nÙ’”Býsšh"þ°û+«_§«Õ'ظ‡cÞj aÎêÂÀب¦BÅ™+>Þ¥á#jµj/±Ä;²3‡R±ú4€}gP6?hßËt…Ýü·GÐìUdÐ%}3sáë@ŠDb׎¹ÞhmøME`ȺRâÝ#X}jn¨¡§£Hýâp´°M°Þ02ˆ KGV‡ÑD*R[Fôgý÷Uu”Á­Dà}¥‰  dÖ¢$AÎ…¸˜œº&ëC§ªðĬÎÖ‡Õ¯Ú7òÝEx¢Z„jQûA¹«­  zÂP¨ÐXSlÅ¢nê~Í`NEn[…%‹¬}£”5ýV 䯤©púK2>²)X,¹ÁN&ÈŠ ´¢s¤YM‡P— ¥ t+šðƒ•àxeFF" …ë«0‚$e€ £wKeT¢ñ¼ØœÄ ­(•PS2˜xÀÃe®±UþËlÒí‹s¤ÓIsAÔÛöº_¼=qÖ@ÞºëXÇ µi£ìÃ&¬KÐÅë1Öp thTЫVXРÌ@¤½Yjè¶F¡Ts”7£WûFþ[£èm ·ÑwXÌû.] _yvÀ=WM¾² ¯cŠ"ÔIL‹4†©`­ íOd0¤é€¦¡LÏ`±T•ÚÅiUŒMV°X®™m)X $rR±N\æckü0¨vJK½eF-ëQJ «Ütã9lPPºËY”Ä™j.í1Wš¹f÷Iµy”"¨h9{ÌAmÝ»ëíþÊSî6õ¶œ{,ÉÞüAHÅ/[-ϱ´×=hA"EŬ©¡è™#¾š%hç4Vµ˜RäÀÜÒ }êµÐ è§íùn𻿖èú H—®µÒyœó8$À±7þ wòÝJí:å«t¤Ý$¢ˆB·UE ýÊÉÁ^–Z9¹*ÝÖìa·hSjÁ5e®89†Up@ݸõÆ#2ÐS¨mü ïåº>Œ=ÆúpìÜ =Bv~"G£j±ôƒŠÞ»„IJPˆ±Õw’Aêú벆gúÜtuÛX©‘iIÞD3ü ïåº>€C 34a¿$t„ÚþQPt?ƒ]ì@E §L¿…ÝïÕ€Ú~Ãíú¯l5†k§î;ùnð½ïx°Ö‚žIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌòO™äŸ3É>g’|Ï$ùžIó<“æy'ÌÛfýa,ÙÏéÓ!ê%ü³’vœ“´ä§$í9'iÉ;NIÚrNÓ’vœ“´ä§$í9'iÉ;NIÚrNÓ’vœ“´ä§$í9'iÉ;NIÚrNÓ’vœ“´ä§$í9'iÉ;NIÚrNÓ’vœ“´ä§$í9'iÉ;NIÚbŠU„ÿÉá3Âg„Ï ž<&xLð˜pViaœc´ã§ÑvüöOÿÄ:!1AQaq‘¡Á@±ð "02P`ÑñBRp’¢áÿÚ?üš ü𭧬óò©êÂa’þlÆ"“‚ihR’£a7ôÖN$@›Låë^ÅÉŒ§Àþ”YÁƒÊÉRò(å<íéO`jt0H1x#Yµ)¥‰1 x_»©l8ÚB”,DŠc_$ÚcŸKl ‘¬pÓáIÁ>»¥3ûð”[XÁ¿* ƒ—ÐÍ6‚µ,ÀåNàǵJ?xMíÇ_ [ svIñµdTf‹PÃ:A9M¢Ðfó´NÔ¢ €° Ã„okXzÑXÓM-Õ IåXþŽ{¼® q¼P¿ÒMµçß@|•æA¤Ù1Ê’#^~tF¼¼ £³Ö°6œÁj#¸×´a)'8Ðñá4Œb›m)F¢oëÒzE%JÌOôƧî,¡½ÅõÖ‡I5bIžÍ.£Æ¾ Íô¬SÈqÀ¤iË„’@å&“J]Ì&3æî¯ãš-”™Ò?ä y\m¤u;.á’ÁFæ-ËIçXwkÌx0G­aúA¤6”¬NǘOž¼©"›6ŸõP;ñ3ο™ ]2 ¶ÒF²wà¦y’I“XÌ^ì:’&-®´ö%¤b¶Ì€#ŽÇm`ñèAÌî ƒa°ä Dó3joÓkJäÚmi¾½àXÌÞ—im–ó¥ÀàIþéÞ×ו+¤Rý¥í›êìg­Ž–¤ô‹mç"TI'ë -¯ŽÖ¬BÒ· ’L:üó¦q…‡0EtI»Ž\ªÉá6í¨´Tüøþµ·å§q½¦àxÑ SO%ÐJv1Õ·Ø¥œ*JÓ²td‰®“m”)­;7Š/Bþëˆee^Ñãíµ)´® †”Ûa™ê}ŠzM¤¬¶dFüp¬^!eLˆÖwššÒ…½Ö Gà«Z‘f‰Qk1ò†±GîšXÛì =Ý.­"¥8¥ëø+xw1%qûS !‚£s˜@IŠ˜j6ê­§éa:8bö…QÝ5ˆh²áoޤŒÇݰøÔ06 ïXœJ^HJP½ºúçé¡÷P!* vÒ”VeW=BÚ{¶§Æmw©‰aXuB¾~5ËðFÝ IJ„ãN¯Ú[jšŸñ‡ÿÄ9!1AQaq¡"0@±ÁÑ BPñ`ð2Rp‘²ÂÿÚ?þ6­ã´ˆíÇã†Ê™*;Ú—Ä^mÄ¥I1byÁ§qImDL\ÀÓ×¥wÍÄæò(¸bDÒ9’3x_ëMcr6‘"m3çAÔ›Oö;ŲêÔ„(“o#§Ÿ…<ødIø.bàPOiXÆPaJä™®ñÄŠ"“ZŒ×•kr¿/½%ô‘*|mõ¬éœ³z8†мò‹FóÖŠÒÜÑy:˜ó¿ÚJ}öðè.: ÜÚ¸WÃñ6ó´`ò$HÚ`mQù•z73ãëGB<>´«™¥ôô©úúÇÚ·®&Ó«È[Nh™ð"+¹Ä©i È$˜é;ï—…KŽ)KЀ5#œÌxÒ° @ýS ™:èv¶šiG‡¹ dè# Ë.!Àb‹+q•$êOÔ}«‚RÆVô w=HQŽ‚)x7…"™3½âÚyqRpn%aÌ ëby€?ÓrÓ­'âS’Ærßq¼6¸ëGâòƒ €ƒs­ôû››óa Ca*‹rÒ±8V±MžL¤ìkƒð68[p‹«uD&c]ªo=‘é¬6¿0‚F·tð ’f6¬FÌ1 pA"|ñî׊Ǻ š:̨ 1ʸ#ø—êqæIgiÖˆ4DðØ[Aˤ‰[Ùzwô¦ßq¤¡P Zyõ<ú@B~þí|R¶Òè VoÓhɼÖæ:œVb£6´vü4ŠŸÙ[B¥fTG‰ž–ùéj)J]Ê•Hç§¡¸ó­¦†¢‡¼6øbÚI“IBS§ì¼A©÷\üB’E“x/-'i®CŠiå•FkžŠzve5´ŠŠ6¢ ÇæÆq3‡w» Ÿ8¬;¡æƒœÄÔoQðØÞ¼RÔ{âv´V‡¯ ²µºVH‹í¿dŸt¼;NRA>”„Hñ¬jX9bOŸÐÃ>œBe?ßÊ…ÿdq¢¥¤ÁùŽTÊ;»ïBßíÿÙplugins/jetpack/images/the-cloud.svg0000755000312500031250000000246112651056012020134 0ustar eacbforgeacbforg plugins/jetpack/_inc/0000755000312500031250000000000012654411246015173 5ustar eacbforgeacbforgplugins/jetpack/_inc/img/0000755000312500031250000000000012651056012015740 5ustar eacbforgeacbforgplugins/jetpack/_inc/jp.js0000644000312500031250000003064612654411246016153 0ustar eacbforgeacbforg/* global wp, jetpackL10n, jQuery */ (function( $, modules, currentVersion, jetpackL10n ) { /////////////////////////////////////// // INIT /////////////////////////////////////// var originPoint, data; $( document ).ready(function () { data = { 'jumpstartModules' : jetpackL10n.jumpstart_modules, 'jumpstartModSlug' : jetpackL10n.jumpstart_modules, 'jumpstartNonce' : jetpackL10n.activate_nonce, 'jumpstartStatsURLS' : jetpackL10n.jumpstart_stats_urls, 'nuxAdminStatsURLS' : jetpackL10n.admin_stats_urls, 'showJumpstart' : jetpackL10n.show_jumpstart, 'adminNonce' : jetpackL10n.admin_nonce }; initEvents(); loadModules( 'Performance-Security', 'mod-nux', '#nux-performance-security' ); loadModules( 'Traffic', 'mod-nux', '#nux-traffic' ); if('1' === data.showJumpstart) { loadModules( 'Jumpstart', 'mod-jumpstart', '#jp-config-list' ); } /* We are listening to see if we need to refresh the data. We'd need to refresh the data only if the page is navigated to via the back or forward browser buttons. We do this so the browser cache isn't out of sync with the real data generated by the AJAX event. */ onload = function() { if ( window.location.hash.substr( '#refresh' ) ) { refreshData(); } }; jumpStartAJAX(); adminAJAX(); }); /////////////////////////////////////// // FUNCTIONS /////////////////////////////////////// function closeShadeToggle() { // Clicking outside modal, or close X closes modal $( '.shade, .modal .close' ).on( 'click', function () { $( '.shade, .modal' ).hide(); $( '.manage-right' ).removeClass( 'show' ); originPoint.focus(); $( '.modal' )[0].removeAttribute( 'tabindex' ); $( 'body' ).css( 'overflow', 'auto' ); return false; }); $( window ).on( 'keydown', function( e ) { // If pressing ESC close the modal if ( 27 === e.keyCode ) { $( '.shade, .modal' ).hide(); $( '.manage-right' ).removeClass( 'show' ); originPoint.focus(); $( '.modal' )[0].removeAttribute( 'tabindex' ); $( 'body' ).css( 'overflow', 'auto' ); } }); } function initEvents () { // Only show module table if Jumpstart isn't there if ( ! data.showJumpstart ) { $( '.nux-intro' ).show(); } // Show preconfigured list of features to enable via "Jump-start" $( '.jp-config-list-btn' ).click(function(){ $( '#jp-config-list' ).toggle(); recalculateModuleHeights(); //Log Jump Start event "learn more" in MC Stats new Image().src = data.jumpstartStatsURLS.learnmore; }); // Hide the successful connection message after a little bit setTimeout( function(){ jQuery( '.jetpack-message:not( .stay-visible, .jetpack-err )' ).hide( 600 ); }, 6000); // Modal events $( document ).ready(function () { initModalEvents(); }); // Debounce the resize event var pauseResize = false; window.onresize = function() { if ( !pauseResize ) { pauseResize = true; recalculateModuleHeights(); setTimeout(function () { pauseResize = false; }, 100 ); } }; // This function will track the number of clicks on the "See the other X Jetpack features" $( '.full-features-btn' ).click( function() { new Image().src = data.nuxAdminStatsURLS.learnmore+'-full-features-btn'; }); } function initModalEvents() { var $modal = $( '.modal' ); $( '.module h3, .feature a, .configs a, .more-info, .feat h4' ).on( 'click keypress', function (e) { // Only show modal on enter when keypress recorded (accessibility) if ( e.keyCode && 13 !== e.keyCode ) { return; } e.preventDefault(); $( '.shade' ).show(); // Show loading message on init $modal.html( wp.template( 'modalLoading' )( {} ) ).fadeIn(); // Load & populate with content var $this = $( this ).parent(), index = $this.data( 'index' ), name = $this.data( 'name' ); $modal.empty().html( wp.template( 'modal' )( $.extend( modules[index], { name: name } ) ) ); // Save the focused element, then shift focus to the modal window. originPoint = this; $modal[0].setAttribute( 'tabindex', '0' ); $modal.focus(); // Disallow scroll $( 'body' ).css( 'overflow', 'hidden' ); closeShadeToggle(); // Modal header links $( '.modal header li a.title' ).on( 'click', function () { $( '.modal header li a.title' ).removeClass( 'active' ); $( this ).addClass( 'active' ); return false; }); }); } /* Load Modules for a template @param string: The module tag you'd like to filter by @param string: The template name @param string: The target element to display the template */ function loadModules( prop, template, location ) { // Mapping prior to sorting improves performance by over 50% var html = '', result = [], val = '', i, length, renderingmodules = []; // create the map for ( i = 0, length = modules.length; i < length; i++ ) { if( modules[i].feature.indexOf(prop) !== -1 ) { val = modules[i].name.toLowerCase(); result.push( { index: i, value: val, order: modules[i].recommendation_order }); } } // Sort modules by recommendation order result.sort(function( a, b ) { if (a.order === b.order ) { return 0; } return ( a.order < b.order ) ? -1 : 1; }); // copy values in right order for ( i = 0, length = result.length; i < length; i++ ) { renderingmodules.push( modules[result[i].index] ); renderingmodules[i].index = result[i].index; // make sure we set the index to the right order*/ } // Render modules. Don't show active in Jumpstart. for ( i = 0; i < renderingmodules.length; i++ ) { if ( 'Jumpstart' === prop && ! renderingmodules[i].activated ) { html += wp.template( template )( renderingmodules[i] ); } else if ( 'Jumpstart' !== prop ) { html += wp.template( template )( renderingmodules[i] ); } } $( location ).append( html ); // track Jump Start views if('Jumpstart' === prop) { new Image().src = data.jumpstartStatsURLS.viewed; } recalculateModuleHeights(); initModalEvents(); } function recalculateModuleHeights () { // Resize module heights based on screen resolution var module = $( '.jp-jumpstart, .module, .jp-support-column-left .widget-text' ), tallest = 0, thisHeight; // Remove heights module.css( 'height', 'auto' ); // Determine new height module.each(function() { thisHeight = $( this ).outerHeight(); if ( thisHeight > tallest ) { tallest = thisHeight; } }); // Apply new height plus 20 pixels module.css( 'height', ( parseInt( tallest, 10 ) + 5 ) + 'px' ); } /* Handles the jump start ajax requests. Dismissing the Jump Start area will set an option, so it will never be seen again Initiating Jump Start will activate all modules that are recommended and set a sharing options while doing so. For either request, if update_option has failed, look for an error in the console. @todo delete the "reset everything" call - meant for testing only. */ function jumpStartAJAX() { // Will dismiss the Jump Start area, and set wp option in callback $( '.dismiss-jumpstart' ).click(function(){ $( '#jump-start-area' ).hide( 600 ); data.disableJumpStart = true; data.action = 'jetpack_jumpstart_ajax'; $.post( jetpackL10n.ajaxurl, data, function (response) { // If there's no response, something bad happened if ( ! response ) { //console.log( 'Option "jetpack_dismiss_jumpstart" not updated.' ); } window.location.hash = 'refresh'; }); $( '.nux-intro' ).show(); // Log Jump Start event in MC Stats new Image().src = data.jumpstartStatsURLS.dismiss; return false; }); // Activate all Jump-start modules $( '#jump-start' ).click(function () { var module, dataName, configURL, checkBox; $( '.jumpstart-spinner' ).show().css( 'display', 'block' ); $( '#jump-start' ).hide(); $( '.dismiss-jumpstart' ).hide(); data.jumpStartActivate = 'jump-start-activate'; data.action = 'jetpack_jumpstart_ajax'; $( '#jp-config-list' ).hide(); $.post( jetpackL10n.ajaxurl, data, function (response) { // If there's no response, option 'sharing-services' was not updated. if ( ! response ) { //console.log( 'Option "sharing-services" not updated. Either you already had sharing buttons enabled, or something is broken.' ); } module = data.jumpstartModules; // Only target Jump Start modules _.each( module, function( mod ) { dataName = $( 'label[for="active-' + mod.module_slug + '"]' + '.plugin-action__label' ); configURL = mod.configure_url; checkBox = $( 'input[id="active-' + mod.module_slug + '"]' ); $( '#toggle-' + mod.module_slug ).addClass( 'activated' ); dataName.html( 'ACTIVE' ); $( checkBox ).prop( 'checked', true ); }); $( '.jumpstart-spinner, .jstart, #jumpstart-cta, .manage-cta-inactive' ).hide(); $( '.jumpstart-message, .manage-cta-active' ).toggle(); $( '#jump-start-area' ).delay( 5000 ).hide( 600 ); // Log Jump Start event in MC Stats new Image().src = data.jumpstartStatsURLS.jumpstarted; $( '.nux-intro' ).show(); window.location.hash = 'refresh'; }); return false; }); /* RESET EVERYTHING (for testing only) @todo remove */ $( '#jump-start-deactivate' ).click(function () { $( '.jumpstart-spinner' ).show(); data.jumpStartDeactivate = 'jump-start-deactivate'; data.action = 'jetpack_jumpstart_ajax'; $.post( jetpackL10n.ajaxurl, data, function ( response ) { //$('#jumpstart-cta').html(response); $( '#deactivate-success' ).html( response ); $( '.jumpstart-spinner' ).hide(); window.location.hash = ''; }); return false; }); } /* Handles the module activation ajax actions */ function adminAJAX() { $( '.nux-in' ).on( 'keypress click', '.form-toggle', function( e ){ if ( e.which !== 13 && e.type !== 'click' ) { return; } var thisElementId = e.target.id, thisLabel = $( 'label[for="' + thisElementId + '"]' + '.plugin-action__label'), index; data.action = 'jetpack_admin_ajax'; data.thisModuleSlug = thisElementId.replace( 'active-', '' ); data.toggleModule = 'nux-toggle-module'; index = $( '#toggle-' + data.thisModuleSlug ).data( 'index' ); thisLabel.hide(); $( '.module-spinner-' + data.thisModuleSlug ).show(); $.post( jetpackL10n.ajaxurl, data, function ( response ) { if ( 0 !== response ) { // Log NUX Admin event in MC Stats if( true === response.activated ){ new Image().src = data.nuxAdminStatsURLS.enabled+','+'enabled-'+data.thisModuleSlug; }else{ new Image().src = data.nuxAdminStatsURLS.deactivated+','+'deactivated-'+data.thisModuleSlug; } $( '.module-spinner-' + response.module ).hide(); // This is a hacky way around not showing the config link when activated. response.noConfig = _.indexOf( [ 'photon', 'enhanced-distribution' ], response.module ); // Preserves the modal index so it can be rendered properly after the data has changed response.index = index; $( '#toggle-' + response.module ).replaceWith( wp.template( 'mod-nux' )( response ) ); // Refreshes the modal element data _.extend( _.findWhere( modules, { module: response.module } ), response ); // Manual element alteration for Manage, since it's not part of the template if ( 'manage' === data.thisModuleSlug ) { if ( response.activated ) { thisLabel.show().html( 'ACTIVE' ); $( '#manage-row' ).addClass( 'activated' ); } else { thisLabel.show().html( 'INACTIVE' ); $( '#manage-row' ).removeClass( 'activated' ); } $( '.manage-cta-inactive' ).toggle(); $( '.manage-cta-active' ).toggle(); return; } initModalEvents(); window.location.hash = 'refresh'; } }, 'json' ); }); } /* This function will refresh any data elements that we've changed via AJAX. Necessary when page is visited via back/forward browsing. */ function refreshData() { // Clean up $( '#nux-performance-security, #nux-traffic' ).empty(); $( '#jump-start-area' ).hide(); $( '.nux-intro' ).show(); data.action = 'jetpack_admin_ajax_refresh'; data.refreshData = 'refresh'; $.post( jetpackL10n.ajaxurl, data, function ( response ) { modules = _.values( response ); loadModules( 'Performance-Security', 'mod-nux', '#nux-performance-security' ); loadModules( 'Traffic', 'mod-nux', '#nux-traffic' ); }, 'json' ); } })( jQuery, jetpackL10n.modules, jetpackL10n.currentVersion, jetpackL10n ); plugins/jetpack/_inc/jetpack-admin.js0000644000312500031250000000246312654411246020245 0ustar eacbforgeacbforg(function($) { /////////////////////////////////////// // INIT /////////////////////////////////////// $(document).ready(function () { initEvents(); configFixedElements(); }); /////////////////////////////////////// // FUNCTIONS /////////////////////////////////////// function configFixedElements() { var jpTopFrame = $('.frame.top'), jpBottomFrame = $('.frame.bottom'), $body = $('body'); $body.scroll(function(){ if ( 33 > jpTopFrame.offset().top ) { jpTopFrame.addClass('fixed'); $body.addClass('jp-frame-top-fixed'); } if ( 120 <= jpBottomFrame.offset().top ) { jpTopFrame.removeClass('fixed'); $body.removeClass('jp-frame-top-fixed'); } }); } function initEvents() { // toggle search and filters at mobile resolution $('.filter-search').on('click', function () { $(this).toggleClass('active'); $('.manage-right').toggleClass('show'); $('.shade').toggle(); }); // Toggle all checkboxes $('.checkall').on('click', function () { $('.table-bordered').find(':checkbox').prop('checked', this.checked); }); // Clicking outside modal, or close X closes modal $('.shade, .modal .close').on('click', function ( event ) { $('.shade, .modal').hide(); $('.manage-right').removeClass('show'); event.preventDefault(); }); } })(jQuery); plugins/jetpack/_inc/jquery.inview.js0000644000312500031250000001272612654411246020360 0ustar eacbforgeacbforg/** * author Christopher Blum * - based on the idea of Remy Sharp, http://remysharp.com/2009/01/26/element-in-view-event-plugin/ * - forked from http://github.com/zuk/jquery.inview/ */ (function ($) { var inviewObjects = {}, viewportSize, viewportOffset, d = document, w = window, documentElement = d.documentElement, expando = $.expando; $.event.special.inview = { add: function(data) { inviewObjects[data.guid + "-" + this[expando]] = { data: data, $element: $(this) }; }, remove: function(data) { try { delete inviewObjects[data.guid + "-" + this[expando]]; } catch(e) {} } }; function getViewportSize() { var mode, domObject, size = { height: w.innerHeight, width: w.innerWidth }; // if this is correct then return it. iPad has compat Mode, so will // go into check clientHeight/clientWidth (which has the wrong value). if (!size.height) { mode = d.compatMode; if (mode || !$.support.boxModel) { // IE, Gecko domObject = mode === 'CSS1Compat' ? documentElement : // Standards d.body; // Quirks size = { height: domObject.clientHeight, width: domObject.clientWidth }; } } return size; } function getViewportOffset() { return { top: w.pageYOffset || documentElement.scrollTop || d.body.scrollTop, left: w.pageXOffset || documentElement.scrollLeft || d.body.scrollLeft }; } function checkInView() { var $elements = $(), elementsLength, i = 0; $.each(inviewObjects, function(i, inviewObject) { var selector = inviewObject.data.selector, $element = inviewObject.$element; $elements = $elements.add(selector ? $element.find(selector) : $element); }); elementsLength = $elements.length; if (elementsLength) { viewportSize = viewportSize || getViewportSize(); viewportOffset = viewportOffset || getViewportOffset(); for (; i= 0 && element.offsetHeight >= 0 && element.style.display != "none" && elementOffset.top + elementSize.height > viewportOffset.top && elementOffset.top < viewportOffset.top + viewportSize.height && elementOffset.left + elementSize.width > viewportOffset.left && elementOffset.left < viewportOffset.left + viewportSize.width) { visiblePartX = (viewportOffset.left > elementOffset.left ? 'right' : (viewportOffset.left + viewportSize.width) < (elementOffset.left + elementSize.width) ? 'left' : 'both'); visiblePartY = (viewportOffset.top > elementOffset.top ? 'bottom' : (viewportOffset.top + viewportSize.height) < (elementOffset.top + elementSize.height) ? 'top' : 'both'); visiblePartsMerged = visiblePartX + "-" + visiblePartY; if (!inView || inView !== visiblePartsMerged) { $element.data('inview', visiblePartsMerged).trigger('inview', [true, visiblePartX, visiblePartY]); } } else if (inView) { $element.data('inview', false).trigger('inview', [false]); } } } } $(w).bind("scroll resize", function() { viewportSize = viewportOffset = null; }); // IE < 9 scrolls to focused elements without firing the "scroll" event if (!documentElement.addEventListener && documentElement.attachEvent) { documentElement.attachEvent("onfocusin", function() { viewportOffset = null; }); } // Use setInterval in order to also make sure this captures elements within // "overflow:scroll" elements or elements that appeared in the dom tree due to // dom manipulation and reflow // old: $(window).scroll(checkInView); // // By the way, iOS (iPad, iPhone, ...) seems to not execute, or at least delays // intervals while the user scrolls. Therefore the inview event might fire a bit late there setInterval(checkInView, 250); })(jQuery);plugins/jetpack/_inc/footer.php0000644000312500031250000000436512651056012017203 0ustar eacbforgeacbforg
        Automattic' ); ?>
        Jetpack
        ×
        plugins/jetpack/_inc/fonts/0000755000312500031250000000000012651056012016315 5ustar eacbforgeacbforgplugins/jetpack/_inc/fonts/automatticons/0000755000312500031250000000000012651056012021207 5ustar eacbforgeacbforgplugins/jetpack/_inc/fonts/automatticons/automatticons.svg0000755000312500031250000005001112651056012024622 0ustar eacbforgeacbforg plugins/jetpack/_inc/fonts/automatticons/automatticons.woff0000755000312500031250000002136012651056012024771 0ustar eacbforgeacbforgwOFF"ð.ÔFFTM€h*„ZGDEFœ NOS/2¼I`vÇUBcmap²Ší€cvt ¼22 Hfpgmð±eS´/§gasp¤glyf¬ì"¸tŒ>ohead˜06*"¦hheaÈ$4¸.jhmtxèX„Î loca @,D¾†ÅBmaxp l eoname ŒŒ8ˆ^›post!¬‰ëÚºprep"8¯8÷¾çLwebf"è»ÚRPÌ=¢ÏÍvu1ÎvlYxÚc`d``àb `b`B fóªSxÚc`fófœÀÀÊÀÂjÄr†a„f:ÃÂ䥰ƒPïp?Þ liÿÒØÜw…Ar,ŸØ€”#5[ ËxÚc```f€`FØä1‚ù, €´ ƒÅdñYz Ž Î î Þ  á Å e ¸ôâ0üÿÖQåTåÆà TUÅWÅøÿëÿÇÿ¯ý?úÿÈÿCÿþßûÇÿ¹ÿgÿ/z |ÿýý P—Œl p¥ŒL@‚ ]ÄkÀ‚a+;'7Äù ÀÇÇZAê!²tp=*ôLVæ?hpv|ЍhD &^|b(xÚ]Q»N[AÝ ÄØ 9Ú³™Æ{¡ ÄÕbd;…åi7r‘‹q@D Ú¯ ¡¤H›!H|B>!3kˆ¢4;;³sΙ3KÊ‘ªwékÏSç$ÂÝÍ6ýNHµ³÷¤ë댴ƒZlfôÊuûþ ›Ñ”;jå=o)M;Z´§þÑü †ûüó;´4ÓôÔ: é!æ›qKƒïͺËú‚Õáb00¤˜¦â.?¦Rþ·4çj˰µ‘Ѽƒ3ùÉ4@SkmšþÔ!ÕóqK˦±6˜˜²þ$Á…ÉtUSµÌøÚÁ]²³è`ƒ*ÍØÃVy &Ò·$Ê, öb«Ä“ 9åÜÉþ¤@ùHƼIJ;ㆵÆ‘×À 6O³ÿ<›MmoÂøYÁw¿K:øÈ†Úb;b)€ DBFUù†Ͻ,äRûÏ@”€åñ´îØD<—µu1Vz~ÛÜòËŠ»V¹Î‹Bwoªj¨Ò)Íû^ξÇž ÃAcÁ›ÏûþJú<,®4hCz7zÿ¢µêˆ«¼>²'Ó¿±ZÿÿxÚ}ykxÕµèì=[3£Ñh4ÍC–eY/K¶åȲFË‘‡8/'„œà„$˜Bš„@S`’^¹!ä#'Ò@ÛJ©ä8¡¤/Í9pZZ ¯žöäœË¡Ü6áBi¡—8Îp×–l ?ÎÕ7ÞµöZ{Í^k¯Ç˜ÁÌÃൎ¥ ËðLºŠ˜ÎòO”÷²UÎq®<Æb2U–‚<Æsþ‰ò¢pËñ¶D¼‘¶ãè°½Þ±ô“oW†AŒŸYËŸ' Ì0>'ò³çY˜M@OqŸöó燙<“eÆ< “ªðÖ˜ú±mr†6͈IU¸e¡J¡³ZD)&ÓeV¸˜FIÃÊB׋ 3ò¹¢AÌD>ׇ¬¬aŠOÿ ]“ ‰…ý™jøÃ¿nM&Ë™}?X¶vhM÷ãè{ÒæÞ|õ“¥}[Ó»ïúÊ’m¸ë†ý/ýÉþŸGìãWAGïâ䦷r]léĆÍ#?|Û=­ëæn(7Îì 9»mXßöÞÿzý»÷Ìc™Ù‰¦o!¿‡S™“`ÊÌBf%sss³“ÙÍìg¾ƒ\̘“¾àµko·,k¬ŸŽà+OZUÙy¡ÚñX6;†)à«Öéä¸UéºPy:[ÙÐYèƒ*ÏwV\oŒu&HR• R5Pjܧ3˜ù”jf½:Ó³^¥:f]õ•]Jõa˜=¤0ÌRª`ö”Î4Tõ»Î:èU+r©šôyÕjs¼TªÎíõª'Š—/‹›¥êÃ]^µßµjÝæ¯l½ãÎ÷ìz€LuCýC©*`¯:vù’Ã¥R©âôž^¾ò€¯ÌTûÝÍáXüÎÑí;î¹÷]ß`¦Ëg#¦…bl#jÑ@—}8ïy5.MÀÀñ‚uå#H aŠëE¹4ŽEe¬›ù\Áʆpª­-h¦a…¨H&8G–×D*y ñICŸïƒ&™~ÆÖ“úŤ $`#`oµÍvV6£wWVìÂÖ=§_Æëþó?o­|É:v÷#¿uˆ¼6B£÷“gçÜõÂú/Þ9{ößÛô¥SwÍ9pò‰%÷-jûǧŒýLt|»óGôù;žaíÃi4¸-K?óöÙtÚ>sÎñòé•èâú£vÿãã§ÑhóatÇĽdÚô ºwb³C>º8ÑŽƒ»^ßþÞÏÖ¯ØÓ⥗N<ûä–×Þ¹õÕ‡£µçαC—&Ð2ûYÿó¿*oÜ}%z×Öîypÿ]èÝ×ðÛ —Ù¶páö¯-ñ/=ºG—JÒörÛÊÒÁïÿ(òéŠdøßô¥}¢Ë|Ã~?>çÒsxhÎ¥uÀyü²Ëð‰ç>ßmªq­óžxŽJ%í#ÃGFç=³"Ù™}ñAi×éÃëOÓ]Àt0̧?®Ÿéd–À]¸y„ùóÕ5¸-€Œñ\>éÓ€+ˆKÄàî¦#SÆÀ6³Àx$ó1_ÑÌ‚Üiä³ùòÅœ¥Þ3W˜ÚØØd²á)X80q‹ÙÔØ8±¹!òn&OK‚ßòÁã×ÒñpF‹wG®Q7‚¦Þ(’hw¼bÅZººZb––6¶´4Jcº1Ø”Aá(ÁXQ„¨ý¯¤Îgb„ žv©ÌI=bÈ̸€á„2+±eŽó~ÞÝ#LY,§’ÉTY” \ŽƒÑ²˜mÔõƬReY½Õ㤡„Q’„§GNýþ`‚#d&C=¤0Dð ÒCˆa¿_å¸[èIš?‰õ1! æZýN`§ ´K}¸?ø§Ë#²… ¢Ðœ(Š~NЂ˜‹ú q"ŽS± ‘íHæý~NócºmÁ=Ó‰&Jð9ØÎí ECƒýN·Jp_¡ÐÍq’"JwGG·5 9$DæD•ã(g™L &ö¹œ§¦ ¹L˜z8£$¡Öds0.‡48ì×Bš×íÑuÛû¸$¬Ö†Zµò¶ZB†àLÊ=“!²¯"äda‹a`¼žd‰€E!Áçà‚nwPÕP0˜áШ(Ú{œ]Aûm§Ïá MµßjÌ8í=¢ˆ¶:»^nï.¦Vðî;è–èmoÕ†RÅîv{í£’ #þhÔooihnn!d¸¹­=ž*Sh'mëËZCö–P{{ˆ®AûèúK#ÄÏ!I%Wgno€?t9¢QN ‰:\A‘Ph"$ €(DY6ÊI"'…Tž§+È¥vA*t£áž‚$\úN‘´§í£I"D[ÑH[Ä¡_AûP“$IžÓ‚¯éè(›ÓÈÁ`V„p曎pe ƒj¢~C ’° „'n ‹˜Ã`OÔª$‡Síq좃™X_(Ö^da2²c°Ya” «jX„UA‘›%g ±ìËÂÀA,0¥¶Êî òNÕ)‚eÃizX˜˜#I AH$I·郎ì¾aúÂè¸xZ(ôô½Â£…w>´™Ú`–ôÔøÃõóûzú ‰€ÒTÉT]SZ¥ê5~A]öæ/ègš iõóÓj[ÿý¹¡lY`Þ­‰ ^º(@‰€¿} òÓYÃX+Mÿ]ýŽûÝŒFsÜ쉦V—ª·¨ÒÞYMÕêêX#“Þ3ޱæûú £3 `R‡Ú„",T)^ÿ@š{7=0þXK°ãgÓËɬ2 ²dxÖ4–ìwíóö[tA}Ù„‚„·îéÿx—zÏÚ/…ñ›P¿ìút¿ díbV0cÓ@Òª×}a,F¥ †'©1ŒQ%ÛYaÞ¨JÆ…1‰S'Ip¦*’Rm†L»Á¸PiPª: [ U‹‚š!öƦAþLß+§ YÓÐx¢h- †|'§rd$ˆ¡êq,Oà]»G ‡rÙìàÐÐþ—o:ø¼|dã‚ÁõëO¡Þ»÷ÏöÉS'íÞß‹ÿù4{4—Ë=Z˜ÿÒ¦›^Þ?´ï£G¿ƒôn{dÁ7.À· ®ßûûÔÉSöÉ÷÷í{-¨Õs Ôl'áße˜¼·ûÐ "¼ì„ئéƒ[ ‹}, ˆEr„ÚªbÁÌš!Ü ¹WRt>Ê˘—yž£tµe5ª>\Œ×y"ÓÐEW±õ5“Ìê8 (eÄG!võ¹IV!Œ jÃ`r³h2ZÇÒäæÅ(KåA”fkŒ"ÑÄ£{# \a–ׂȉ¼D<rÒáUt-žöú„T[s²©Q]®`¨ý+±¬Õo*žäŒ.·ÌùšBAêñ¶Ì(û|‘@ØH4XjÙëÐH°EtMŸmvwÍÞ¶3†2‹£ ÎÇAÞzE÷ê‹â½W쎴`Ì ¼n¶{aãÂТ’¦4«Á@Úïvʱ¾Ty¨gt¤¡Û£8›Óí.1-—̤#G»‡Ú%Ñራ+ã’ˆñtvÎ eçqöðÕ÷Øo†:#Ú€ßÏJ-QË'yeYp9ÜÄ˶Z,)6»Ž^3óŠfpº¨³fuè4À¥Ñ‰b{;SýaUæ$‡’Wä&Ó¯:¸–+K3ýaÓÁµ=[ ÁÏŒ†B„\³hq°« jzÏpª«C]MW75ñ ñÄeɶP9ƒ ÊŸSŒvSóÊ ºˆ˜ÝJÚãq(n#EM- 7#ìJjB rœÐßuK¬Ët#·vMþ^°I'êú4Èý lòmfé õVT+Y†®¬¢RK´j •›E°€å§`Í`À`lÚ”•™ f’ÏÁ’\2“| jÞ&æF¦Œ<¸ÈÓŠŒ ̬@Ó@GTätjq…ü¤aÂvPšæé5rj„” Œ{Êhkh‰N”«/ Û§lÚ¨a“°¼]]Nº$áËQ1êÃ4ê6N‰‹¹¢eÒZ2ÖL½¶c J_­*¡E‰¯P a*cÍ^/bzg1]x$Næ&/ðg¬£¨hè tuµ·†0v®ì-¯ñÂ>„QK·fÂDZ^,­p’Ù)Á¡t´$˜ŒÃ+“ö‚"‹¹\½)úxÂu¡ßÑÔŠqëN‹tQ<‡Å@c8rõFÍoHøIEüãý×õµåý‚’´Öx“«Cƒ„ÈÇ"ÌÊ!ŒD=Ä;5ŸDVu¦•}z²Ô ±Hp5èHÌÍâi/«‹ú5~³£ŒÉá9«®Z':‰óÚ‡dwãC׺föã±4†ƒ¢ÖÛ+`Y./ݺôªÑ«Öøœ¤±Y’—¡„"–-”úÎøøw®Ürå•[æ+Áfkrz`$ÈçÊûÛ ìP¸æA@ (ƒ®Ù÷ãW‰W7râß0¤ÊÑu{,kº‡üã~x²¥™Æ Kò¨áÔ@Ï4g@6šÛZfBM zK·=xÃî«?LÌÿ‹%ÌÒYGÿ€,c«åp¦t•Û]†˜-é`cN‚õ¥ƒ¢X/j²¦d¯Ê‹Z€‹ÊÓ/úƒÉÑf·ˆÍ~ñÛù`Â×ßš²Šªšh//UÊ6îr‰®™Å·6ú¯*dó×—úeUœ—ëɉ"i¼1‘08,]2­C KÆ Ûæ—CL8?GŒÏã~º|ŲE eUL";<ö·9~+kšìñùþëòA¢‹¤Cø¸KFâGö³¹‚€¢Hœ¨¸3àó|ïo3$çX >6œqOÀ¯°’“(p©³ãÓþ~¸ó,d —1W1«˜{˜±ùÌäêJ.TÒÙ±(ýx†è×Ã%Q%|¦³2Ëš¡ÊêÎÊÜ7Æx˜ƒ@½`.æþ‹©±¹ èp®áLU¯…Ì¢U½jµÐ[*U–x«ü2èç«'‰èZ¾’~ÖBÞ±b© ±:ÓeBvê5\­„óiµŒ$\Ô>v:-Eá&×jç”§P']É#A‡òp-sVV§nIƒ4¦E›b¶ƒç>#hhj0¡Å’ ¿Z-÷þ¸¡MH—‰ýªŠÒŠÜURìw ŽjsÙgÔÎiNêÙÖÌC*—žC¶-âM~îež»ø »U „¾†½AuñZFÓöxu‹Ãß®©ªÆ¶Nÿ EÌKóÒíæ2=ÉqÖ g¹`4M ÂDí{ù7A3‡ù2ò&) CSÑœ„ÁEM5ˆf¨û:éîê^x|ÒßâÅ,x=ÂaêÔÔIÏKÒðà])cêú€ 6ÔuïYK ùBݹ֑Ÿ% …º+G4˜FÉ|mS‹:P­.MlÒóæhÈÈBaLº^H¸z¦1%i-Á0µ©W0jiY=·z›B£Gˆnyå§h3r>¹öÔ‡ö¯¾þŠ}ÀþèÈê½A‹^OóÜ-×}óß·Ý}¶-®´î=¹ýîRÏ÷í×.¿ñ×­FWü ëãž³_ÿýÝ#Öjמ£^eï¶¡e£o9¦lF¹g+hÆ—B™[í§±ñ±‡¿qëÝÓPsÏæ¬Ùó¶õMGXZ|§O]3o8ÀÇzoˆ†g¯w9¦™KÚ†e0Ep޵Ðçiî¼~¤½Õâ›uc\ó UƒÉ6‡Ã ‹E…“{†K¥Ûf9,·ß»úº–Ä׸LÇšC³”fl¼zÿ_÷ˆ·¯ºé [vßõ¥m‹ xõOÐ-ÈõÔSöÿ±ùé1û—œºþ $ ›_9eŸøðRßzè‰{Î?w«Ïúí®µçž¾W_Êødì©Så'Ç¿s>Â#ÏWÿlÿxw,~ÌþÓ•‹4Ý?rìÛÿô]AÙ~ðèîlùácî¾lç–c;wÆÝ¿‹ËŽ5+nôª£CK%\œñ•`hÖüÕ~!<¸¸Á?»éäú2³5ïìòôN!J¥æx®ˆ¦\kËŠ×ïJ$\ÒÜÛ² –{5G2Ù…7É­í”æªÞ\ç®EÝ‚çý×µûþŸ«uÿ{oÿõÀ°„z§ß½Šú"ÂsË«l[PÒYìò/eeš Çµ¿†_#rÏìч~zóÍ?Ù{û`ÎufÄ4Bì_|Bä€1b¿}þëRmA°Õ®XÂã ÍýÝ+ö[í!®ÝˆÜQè•ßÍ yÁ齿ìoì/Ú—ÖjÚ ˆ½ˆÜ¿>»Bu ºm`*|úÄ„:óå—ì¿þõSfÍšKŸ æ÷ßîjùÀë.íÄè—NáA§üöV¨gç0>¦YÌ 3k˜C̘B­ã*ñÂX5Œ@gβ¬j›p¡ÚÒ“ÍÖŠÆê"ñª\ßYAoT5ýBESªý` ²ã#:­ƒÇúGh”ꟕäˆR] VãÒ/T×B߯yÕ‡XtåÒå5Ͷ]åUû~3Ñ;{xùʵº¼•Õ¥Ê"õD8]˜WÓ·ªÔýv©Ê”ßf5ÆDœbd¯!ˆQ<ò±÷ÕnH= òÕ5OÝt¡˜ˆÇ¢Q¿›‹9QA5 ÿSHB[~ö4êúèÅnxñ#ûõ§fï³ÿAÂ9{í¼Ç_6`œmênGá³ë†&⌘¹}³¿lÔÀÁ@; Ⱥ7ÒZÒw›ý›oœ³ïC×ßu×á=Øþ ?ûÇ2‰Cè+à~j;اí×a·§ ÷MØ«n&Ž¡Ôñ(:­UÀßÄ—!MDñ¸‰ÄI0äQÏ£ø‰›²¹BÐJ-Šö­Bo{í“`"‡ñ;—VoEûÞùÅ™ã±oÁÝwá•Ìi’ ¯130ÿÀ|9Æ|‹yžg¾Ïœ?p”{t]¹ÛÛEûû­ñÌn’ª<ØÙï½ËŒ¶NË•æ_yõª5n¾Í7-@ ÊK•Gßè÷þ˜(þÛ·í|`ïá#OÿîÉ0q3;þ˜vLU÷{.Œ?©2«€Õîìø×æç|Ô¿ÿQ¯Zy¨TyÌ[9Xª<©Vü*¤,_÷V襁°ëA@?\ª<à­Ü Zo)¨Å"™#„AG-zý²·è ´ ŸäCH‡Öäx(sj(§×z:ŵŽÖ&uí§Ú ›ÁH>cmL§­nÒ?:0Lüƒ—fJyj¤äT[ø¬çò´>®­$^ùøÇE» .3C±‡Ö-üg xj’•ˆ°+m[-­a#v ä”w°îˆcw8;˲۰°SÜáxâñ(ø«Qaf[Å­Â߀ X ë…µðJ" ]¶KàîX/¯˜GÄȶ‰BDQ’@šŽ!åËœì¢eÀ­^ ÍwÐáÎݬãÀ“ƒ<ýúßÇý|ȹ‹æ¤Çƒ±¦¥" ­‡Í¢XÂá€#ÀªQÔÍÇÞ(q³í IcwÈBCIÕA´ŒÒA(Pµ^é`½\»Úîo—¸VVeãD"‰@\"QEˆ)Ìe$Òl•ÃÁ'!S`/´Ùãć½¼`HÀE14QÑ ¿$0D5⬇k5ÚAR’Ö2œ–5º‡ȺŸ`6qóæ0›P‘ €}g8f 8§¹ôßÕƒVu£ëÂO?‡Í¬Á+«:áA•›hÌ«D²ãñº×#_‰F¼ì¸[e–ƒ)o®Ç¿ʼ+Õã_â_óRMšË•ö3§{ÿøþé:¦˜Ü™ªj~\Ñ΀§<áÓT_êôÙß¾—„®JDùb¸l÷¥N´Ñötoô=¹¶ §œ¿U £íŸ‡ÑJÛT$ìÂ+°§áµß­ú´zˆmÏå é/þP¿XCÖPŸƒk··:wÁäǽZµ¦‚,„YG=Ó¬…X¨ÝC¯}d*¶F§‚«Õˆ,úq âA˜¯å®ÈÒèŸÝôsÉÝ€~p‹ ZnÁ ,ÑBAmÝóë.o ¨aw|ÚåËwÌ‘£Òu߸vÐ$È!(ö+²²= Üñã‡?Îiªˆëà¬ù7i; ‚&h!"ºœD”p‰éª_z†g$¿þ‹ÕŸÿü³/ýhPÓ®A̹?¬7xâ îüöû¾ýä33Dñ꿽þï+8Þ)*ÜQŒrŠ«×E»<¥4Dl±¼‹óà²ý¾u¿?ãÏ :C~€{™ú÷ÇÏ]Ìÿ‡ µxÚc`d```dp”j¨úÏoó•AžƒΕåD"èzln@.H3, …xÚc`d``sûçÁÀ`Àz Œ ¨@@g„xÚczÃàÂÁÀÀÂ,À´004@ÅAü6›ÑH×±Ïɱl`Šaa˜ ÒˬÌÀÀ憠™Ä'173œÒŽ@:Bƒå¾00=¤ çxÚc``ÐB+†%Ll.l³ØE8â¸"¸exæñ®á›# !‚Æwó B!4,7xÚ¥ÍJBA†ŸI iÑ"Z -¥ž4úÑ…m *’t­Qiù§£Ô ´èºŽ]CÔ]õÎ9ƒ‘ä"b˜™ç{¿Ÿù¾ò¼ÁdsÀºvʆUY)ϱHÕs†‡ž³xö<Ïož(˜ Ï9–MÃsž5sãyI1Ož?X1¯ž?)šw.rÇ#]®écé‹ïµº ¤0’:”ÚÒKu9ùϸ”DOžˆ€¢VH…sŽhr,š½9•?;ÒNE6dEIÎo¼|J]Jj}«EƾÞx’°£³’¼x«š.æJjO•Ûl‰¶“½KIÖÞ?giý¢I…þfoÊj«Kç'“Ô“<ˉòÜmÕµUÏ!û:Ë:Ëb§¸ÿ(}¶‰aZxÚmÍËÁP„á™–Öz!‚œž¶¨]<‚Ä^â OOµ³ôo¾d6EŸNø× C. 1ÂL1à DH±ÁGVX¥GŸ5ÖÙ`“-¶Ùa—=ì{çûûy ý×ãjŒÙ–fæ§ÍJ+#ËD.åJ®e*³R»/M wùϼñ)¬xÚEÎ9 ÂP…á¼Ì£™ %Aá¹Á¤I#V ¸kkK]Ë•»ÓƒÜ$ÝùNõÄ÷Aâ©4dŸÚ^ˆW×צlKŠº†²3ƽ[’)/­BZQ‘&¤Õ[sTù‡èLÀ80,ÀÜ2lÀÚ0À^3\À)à®>à-àûŒ0…Üá ÷ªìµúÆ`41ãëÈL&f`º™ƒY9ræþÀŽ2ùYÏUªRP»Ùplugins/jetpack/_inc/fonts/automatticons/automatticons.ttf0000755000312500031250000002735412651056012024636 0ustar eacbforgeacbforgFFTMg*ÅGDEFN8 OS/2vÇURX`cmapŠí€¸Âcvt a‡|4fpgmS´/§°egaspglyf ìUÅ "Ðhead(¥ (ð6hhea4¸.j)($hmtxÐ )L„loca¿TÆ$)ÐDmaxpet* name8‘^¤*4ŒpostÚº,Àëprep÷¾ðU-¬8webfý QP.äÌ=¢ÏÍvu1Ív­Œ [2̘2ÌÌdXUKWN@ àfþfF¸ò@ ¼ $  .ACGKPWsv  / _àÿÿ .@CFIPVsv  / _àÿÿÿõÿãÿÖÿÅÿÄÿÂÿÁÿ½ÿ¸ÿÿ›ÿràßïßÀ  LVæ?hpv|ЍÊD &^|b(*°,°K°LPX°JvY°#?°+X=YK°LPX}Y Ô°.-°, Ú° +-°,KRXE#Y!-°,i °@PX!°@Y-°,°+X!#!zXÝÍYKRXXýíY#!°+X°FvYXÝÍYYY-°, \Z-°,±"ˆPX° ˆ\\°Y-°,±$ˆPX°@ˆ\\°Y-°, 9/-° , }°+XÄÍY °%I# °&J°PXŠeŠa °PX8!!YŠŠa °RX8!!YY-° ,°+X!!Y-° , Ò° +-° , /°+\X G#Faj X db8!!Y!Y-° , 9/ Š GŠFa#Š Š#J°PX#°RX°@8!Y#°PX°@e8!YY-°,°+X=Ö!! ÖŠKRX Š#I °UX8!!Y!!YY-°,# Ö /°+\X# XKS!°YXа&I#Š# ŠIŠ#a8!!!!Y!!!!!Y-°, Ú°+-°, Ò°+-°, /°+\X G#FajŠ G#F#aj` X db8!!Y!!Y-°, РЇ °%Jd#а PX<ÀY-°,³@@BBK¸cK¸c Š ŠUX Š ŠRX#b °#Bb °#BY °@RX² CcB² CcB° c°e!Y!!Y-°,°Cc#°Cc#-ÿÿDdU.±/<²í2±Ü<²í2±/<²í2²ü<²í23!%!!D þ$˜þhUú«DÍdèL èèLüèÿ@è˜52²+°3²+²&+²4+²+²+±$33°6/±7+013 7.'327.=.547&54>326767# 04ã…Ó(''<0޼VdTb8š¸ü n½oWœ9Žv.ˆ{sR|1eÅçþßžþ¨° {â“19³jn`½ä -1o½nD<I•O2|X$uíåϯH€L.pÚ &<L\mux€ˆ­<²p+´ _dw$3²@+²+°œ3± é±,•22²p+²7+°¨3±A é°£2³7+°j3³7+°®/° Ö´+°±+´+°±'+´=+°=±G+´1+°1±Œ+´‹3+°‹±+´Ÿ+±¯+±°9±'±$99±G=³7,MV$9±Œ1@ ]fnsvxy~†‰$9±@!"]^abefnors{|ƒ„‰Š$9°p°—9°²MR˜999°A@ #$XY\yz}~‚…†¥¦$9°7@%&ghlmtu€‡ˆ‹$90137!3#%32>5##"&5#!3!5!32>=4.#"54632#"&66?6&'&3373#'#37!3#!3!5!!3!5!3##327'#"&=46327&#"€°nì\°þ6vŠºÆfáát°i3¢‘“§–äl–zü„ªF{·hk¹yEEy¸li¶{Fµ›RƒN)©£ž²Ë * – ,¤þ˜.J\V.¤ÞþÂ..þÀÜƺ\øh þ@Œz´ºÖn˜xü‚|l¤‚ün P&*J†Ï}íËh7OŠ@³ÅųªœrÎêtÍ‹PdÜÜTýüVþª®Ò36=4+"54;2#"533254+'?22#"/5?;2=4+"5732#"7;5326=4+"?32+#"735#32=4+532#35#57676=4+"5732#"7!73=!'32654&#"4632#"&732654&#"4632#"&;2=#532=#5354+"?3#3+3##'3;354&+"5434;3##"5 !’  üpün!ì0 $. .$ 0$8" "8$°3#%11%#3&%%&.,  ""þØl: : * < :ü: < < :ü, <+''+< <""< 22t ` T&>   *  "    (:::    ",J@ >668 8,,8""  J&þÜ&40 %11% 0&('$   š ^T(32&#"!!!D.ì.DD.ù.D´Â.Y•`0]RXC- þìþèþâ.DD.ì.DD.üäDx`8ø9=Âþøý à†ÿF|@1]²-+´ +²#+´+²+°2/°Ö± é² +³  +° ±+±é°±+±(é±3+±²#-99901476232>54'#"&54632#"$&†ˆz6–422JTTÆm“÷ÆžkKJhhJ¶Kîîþµ¶µþ·ïÄ·Ez444’6IÅlmÆTŽö’­8þ`KggKpJhðþ¶µ¶þµïŽŽïKÿ@µ@ì5>7>? 36767>767672327>7>762.'&'&"32767>7>7$7>?327>?"#"'&'&#67>32.'&'"'"#&#&'&'22.!"&’!     0,$.+)' *e3&V('?1 %?<! &3<!% ;E81E|€#0P"&(O8^DP&k$=78!% 8L66TN9. #>+1W$&B')<0* !8. +R " &@2    [5‚ 1ÿô@äü(7?V_76763>327'&'6765>32&'&547654'.'654'4&5?7#"''"'657673765#676?65>7654'&'&'&547#&/454'&'&54767'&'&5&4?327#'&'&7&5473'&'&'#'2654&"67'?7767264&"676'472327#'"7'1*)6T \=<^ L>.(0  Y79Z E+,%&D*6  =+ $8@((€  Ü  !Wk œ æ„ j)52($ , $  ]/.&'9   4C <N@n6'# F]Sf  _‹ ‹_ O@². == UvUSzSb  V& <3.>ÀêQrQQrI,.D` \„ ? D0[ŽÁÍ³Û  fŠN©29Z0  +D:- )%AK=9u7jˆWó&Ið3C@D< 09S < F&. h 0JS5 ";M'z #AX¹«“&@(+37&*;2#"3!254#.'&#"#"567432#!"%32654&#"~ú:P  ^:$ü B @.19þê) þÀ/- :|.Fþþ €,4Æøúvþj 0Š °*(-Ò!ýH.* X;'3eÂ"."þ‚à@Fq4$32#"$73 7654.'#"'&$'&547676$7267327#".547576$32&'&$'&#"32767656'&'&'&#"32767654'.'"3"&'5&54763#'&'&54746762#"'&'&'&54767632#"'32>5.'&'&""ž pÊÉn œd¶óþÒ¡Êþþöž^ðN¹¬pDa¦Ý|Â)$(~zµ}9:»þÎMMa^OǬþÏÚž¶†Š |TVzà¢`¢n4ª°?i0tþÁ­•Œ¥tx8-#¬z43EH|>; TPybHX#=e" A7c -R)TN1OF3L/c`*$n$]J*+ L77ŠT99uE*‚^a%&Î0,b–CK9?kWñŠ w]m“{i|N6^Èp ŸŸþõþ‘É¢þÑò¶c›oʶþ³óâ‹›è¬t3׆dkGJº„†>+ ú²Ÿ¶Ȩ­è!™îþÁÏ¢þçQP;`¢ã}ç¯}“ ˆ2<Œ¢8B€r¢€…#Ù$,bZgzTU 7?sCI^ JPE1GE?;/++FO".(%Z>$1&& Gw<:N!02Lm)‡9G4/†N8ï˜M™8„, (òwÓDX =;]s›þØe@#GYkIJ+±.é²R+²I+² +±>é³j +³j +°l/°Ö±Fé°%2°F±9+±é±m+°6ºÂÑí9+ °%.°'À±#ù°!À³"#!+°%³&%'+²&%' Š Š#9²"#!9µ!"#%&'......´!"#&'.....°@±9F¶ HJZh$9±I´9FZah$901&56767%62"'&&.72766>7654'&'%&#7%..'32376;7! ž4Î:Î4?K‚“Ôv)r)vÔ“‚K?>:K|Ír>rÍ‘|K9 ý2ý2 RÎÎ:Ez‹ÉooÈwJ4 À` þÐú`þäèèþþ1#&GÙÊþâøþóg&&g øÊÙG,[ÂÔþóøþýdeø ÓÂZ  þþ üüAÆÅþññÿbbýúÚ«1%ò ýŽj"òý¶JþvèFPXb–²+±S é²1+²/4333±)é±%:22²+±N é°c/°Ö±é°±@+°K2´`+²@` +³@@H +°`±\+± é±d+±@·NQUY$9±)S@ &=EXY\`$9°1°^9°N³ .6H$901$32#"$326?6'.>326?6654'&'.5467&$#"3274# 654'Ÿ rË£1ö¹ee¹öþÏ£ËþŽþô!ÜþdHšDq$8* ÂfX !4ŽEq$*XD!R>uþÔ¥Üþƒc{{˜Šþð´Âæ`F“–s Ÿe¹öþÏþºþÏö¹eŸ >üþ]oj¢4"-(ü¦B $$ "-(ü®$³m2463+N">]kuÎú&4êý^vŽêÐÀ,•§ \º&ÎŒ‘—¢§®´»ÀÄ ²‰+°3²†+°„3´…ˆ+°‰/@{"(-47'5>7'567'567'5>7'5>7'5>7'567'53'\šù7þ6VþTfLôþ`$\\J^ b`bx €~€|€ ~|zzzv vrpjhd`\TB†xhZH :  $,4Sñr+ °5.°3À±ù°À°³+ºÂ×í'+ °#³"#!+°%³&%(+³'%(+°3³435+²&%( Š Š#9°'9²"#!9² Š Š#9@ 5!"#%&'(34.............·!"&'(3........°@±7E³7656'&'%"&#33#'&'&/.'."'&œ Ì Ì 4Ke‘Rf®fM( $-MY~F" a¥_JþD þD©¨˜š¨  l~6   ¤¤ $I®ªÅ¾J[Üãh 5}ƒ«œ¤? WôÏÝ\    ,þz†9. <þï3„00J  =1Au©+_<õÍv­ŒÍv­Œþp.pFFþH0.p!ìD°0€†1~"›°\\›°#F#F‘  ÈAYA‘è,,,,:¤H\².x p 0 ° ¾®*```````````````h!4,< – " " < @J *Š x´ *, V j *† Ȱ É0Æcopyright missingAutomatticonsRegular1.001;UKWN;Automatticons-RegularAutomatticons RegularVersion 1.001;PS 001.001;hotconv 1.0.70;makeotf.lib2.5.58329Automatticons-RegularAutomatticautomattic.comAutomatticons RegularWebfont 1.0Mon Mar 25 21:42:36 2013ÿjd!#$&)*,-.39:VY     glyph1uni000Duni00A0uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni202Funi205FuniE000¸ÿ…°K°PX±ŽY±F+X!°YK°RX!°€Y°+\X° E°+D° E² +°+D° E² +°+D° E²A+°+D° E²(+°+D° E²%+°+D° E²#+°+D° E² !+°+D° E² +°+D° E² +°+D° E² +°+D° E² +°+D° E°+D° E²<+±Fv+D° E²<+±Fv+D° E²l+±Fv+D° E²l+±Fv+D° E²,+±Fv+D° E²!+±Fv+D° E² +±Fv+DY°+QPý plugins/jetpack/_inc/fonts/automatticons/automatticons.eot0000755000312500031250000002014412651056012024616 0ustar eacbforgeacbforgd "LPóz€AutomatticonsRegularxVersion 1.001;PS 001.001;hotconv 1.0.70;makeotf.lib2.5.58329*Automatticons RegularBSGP?ÄóùâÍéŠÈ`ØWÉhKqJx"U:r,/–4\›Ü liÒÛÓñˆÊšEÇLFM´ÆÕÚ±C>¢¸À©Nا‘[’Y|NZ § ̵<ú ÚÞŒ}#+ªÍÒ m0n“1‘¦ÞƃÕ›L“¦°¢ì„N÷2õ:ª „úeNíV.ãz2〪h]Ɖj­@0S]¶­Y3 ZÄf´C‡9@¨¦RâÔ[ìÔ Š±L Á'Ž˜|ìI ˜fd+èzí FšF«C‰¬kжn\ -Weoô¢Ž ü—áUµ^;lÈ̶nÞU´ì}œ|t·áR€zjC¬a·~4¼x˜ ïqD9†½V’ÏÇærðÞï~ÞHÝ$´v•¯5M•“” ³àå[@èÌš=ßâí?C”©ºRt< UæÈ»"­áJÈó™=øý³UŒï8‚!T…Œ&°¦¤%ˆã±A‡Œ?ªµ=¯…‹JVÙ#.fµ2#RË þ²†éèµË„Úvü¢áä(½½Åù!×k­ÁxçhZ/g•à ¶Î¦•^TFÏÖL„º€|jN=Lñ}-Ç0D³Q[ð€ 1æ(ÒÈ.,Ô¾«2Þ(l+¡¥xØSqŒÝÔ^QðÎ, öÐDËmPè«'j=©c†ùÛ'0ø†ФÁ~h»ôsaf‹¢r&oN¨¢uCe<«^äÒܶœãɘí’àš7)Âf;ÇÔö«Â" ò–TD¯8«ô‹\Ïeð¯ŒÒGF¬,*Èäi‰ÈP9…Ûg q:È™¹›W›¸åÖÿìX¿v^¡Åo~M:Õn«ð 4^̦øì!tÊ®Y§°‘…Ëåi@¢§ê¸xm® –ÈT¼Lßst.—w_ù‹cÆB˜‘a¢= ” A¤*{!Ç9oƈP—ð֨䲕>øBª[Ýàz d°$0°ݹ D6 ¤í ø`Jð R ”ê—“è›f‰hkHÖf¬þu0‹˜j`WÏ;Šb=þôø!QQÂ>A{lEó õ°/ÅbOíÞiÇ$Ie á  S*¡Ó¥ Rp‰£¹¿åb©CàQÔt{)€Ñ } æM¥„c=•sxj-Y²é*.±{‘sSkm”lTüp»FŒ ñ ˶GY«ŒDÐzFâM¢8gtHî#©,L:œ7uü°Ö–FmÔÖ5òtEíÀb;5¡:ëW—Î8¥Ä¡B=2¹`_­@`B×JÕàáZ:žâ»‡%Æ¡uq¦ÏPI¤~X¹°Þ¯âÄMdžõ}“R¨ÊËJlFsà‹Ñ:˜}‡x>nîd9#ÙR7þ^év>îNë|ɽ`Kø°ðA¥f¶‰øˆEäôRŠcÄKòi=™[‰Y±%UáÄó*ö¬û O0åVUuOö]í½<£Ð]i@«l­ Óâ›vXÆILªú~³£.æF'¾¦»S)9|öyÆ^!h•3&é†h#ò ŸŽÎ¿";ŠÊjnÆ=FÌÓÜ#™?öºA…U anE¢L®†Cdd|šìº®AÜ…O?¿†@îìxb½÷åÔ£x’è·¢H§Âü¤ ñlAkãp™X _H¸7ð÷BÔ©Y,5 ÷è˜s :‚˜§0-Ι–Yä~^è GôíC[„à˜5L ¶õ1ÊëÊô„É•Ë"ȉ¸È:äÀ°>—ArÕ¸h6±dÇdTÌ5¥lIA3ZÕ8¶æœëF—u€"Ì #ôuú×Ñå Y€£—á¦Íz@ƺ ™çžExýŠLa\ßöØ+@Û\§64¬ßì6&Ôéëü€+R8–•ץƒ5 pÍ‘,BþìnªWèég~ ´¾-GU½L\z€=UZ› #Å™52”Ȃ”æN‰ò~£ .RûÊ$KTC ßz=Ï'kâ)lw™aëÕÈ?ˆ1R%€ÐØ ÿ´ eÑÚx­H7@(ç¥Ä½¿ ì;Vnµ‘"?E”…÷FÞm}H“™I !ç|á"‹35)¾C.Uµi0¦ñ÷wÀBÛˆ¤ÄCHó£(è>–¸QÚ×VÒ°Ì„òäÛB <ÍŒ¥ƒX&üÁK¡…vcˆÎa \ÓìÏ΄-]µ”Ü¥¬“‰0£nˆúi/šaÚ!TÊàU$*P…€sñŸNúÐëÉïÏ: h“Qnwj‡µ7†B(ãuz³YƒMáæFÁÕÓ.âõèÑ4:»‹®ÚDãÚ2d`›«X™€3doØï{ð®þY€,ÉmÄc±‡`ÕÄð\ÃÇí¢”w•ýˆjÿøDIÂr0B2® !:±©Y¤žš­±éÁÖò‰Ø`R˜YÝfµ$·ŒÇ*äFÕs¶Êž«‰œKP ~Û1]GB/ 7¹ ´Î$u9` KvH¹¾\ûjJÙµ ÍÛ„Á¯ò+&é‹f‚hõ§B¿Àx`X&F'0{!-ÿÛèÑ\ÞéòOúb‚J¥Z=ßžóã.qüNX ³‡Ü¼„+NÑKÚ4 Ì+óE4B‡áaþz’+tcjRÓìðÀìR” äÈê—ñz¶Ü6Û9®¶;ô‘—-ð#²c¾—ã‘?&ÍáþŠrÓ‰8@Ë‚Žã°1!´»“g¶2è£áÍUŒž¸¤ƒ°J©mF( %VÞó'’·W¬;wà&ƒ½£¯ û-áü¡Î jÛ$°U­`•‡x@•6«9¨X)"z\9á"¼ƒè¶¢7‡iˆçV/¶®ï¿”Ö¡QÔÝBô‚ˆƒnRéF\ˆ)OÅOrq\‹ùŸ›OÁœ))zg›ÕÒä%@x·ƒíà†M­DŒq<…5¡GžàŠbkND ü…L­Ù ¢cÄ…‡ùÜ+¦~/ü „tcºŒ ‚„äÃÿn¨éÔ‘žoÖI½Î¡ª5J`Ä™CDíÅtª%Q¬‰@€iuTu߀öU ˆ:φgèû Úó ÆÙÇ#Ö´gÃÒáv‚´—ª´Àt·Íy̱œ¦-"ˆÊhI¥&y~`7„‚îÅ‘&Œ,æ·+”]N³‡²¶K²!µ üü,ÈhÁïâ‹F²B°ˆô lÏÆ`ˆÿéÚ(xÀõÏñØÀ`”Ñþn(¸Q†©¿H­Û5Á¯É&Š˜ÚµÉi²Šµ;ïœ2Ä"ż0±fl "ÊgÇÖ'’0Ê( ™ ô¶ì²D:-[ ØÇŸ%-FQ¯jE–¥nX‚”­W„65¡íb†f0©o¹ÀµRc’2R 9p,™¤QÒ™§=E-! kS©éšÏuôªiDvG>¦…uQ°¾Žc ëï (ßpm@p"Üå&–ÉQá3´z‰”!+ï1I „ GÙl¿zœÊt¬4,_^¤Nqý†cØ_²ÉŸ¬Âô¦º|HªSÖ»…"׋©´’8µ¿€±ƒýÄ,þÏýÝ… ëGrÒ zg©pJª‰¶Á À¥¦0åÝèÐOþrḛ̀uÃÏ#¶4úLˆZIð焌9%<(М '¡­e4Öž5¯HÆ ±š¸ƒd¡ï×âÞ_¾¯Ñ2ˆ„˜P~i(u¹Ô.-ߦíÏ ýÞA¯¼–0º±¡Ñ“È$ 8“\sìJT ôÒM‰ÝÝ@Ñœ¥ŸC"GážžÀ.=…ɾVk!ÀÙé#Ø-tliœò"h¹NuÆÔ‘96çØ÷hŒ.W.ÔE£¶KB2ªQão˜– l{:o\Wñ8¤l–Ô€ö Ä\[©‹iP… ІwѰ q8B mÛi>» ÇUåp¨íù?ŠõZÔk¬(U¤)ÀÂL È ¨×~ž•ÞŽõðÇZQÏp¤ RT¡ÓM§HÊEó4Bi× TÞPˆáª3ãòüwÀ˜ÔUdÀ#@ fA ò·„*8º¡)¼T-@Ç5ç6ñÑ‚Ò^DÒÄt3º¯Fw=¨WòñTP½ÚCä+!ÓjŠvvmVÔR#^Þu€ 4L:˜Ê†8·–’§SQúYÎïÌRTþbðX–¿ƒõµ ²…a†AË“ZY-›¾ò*ó¹ˆÌ;ëc}´  Ì?&¢ÊX×2ص ½€žìc p±.œT .A€·×W3+üE¬÷ùƼŸÌÞ‡êvËgÄ|‹£ìDÛ£ðÖîï¡$õÑ N\]¶:ñK„I%;Ì k@mhõhá!h@DœTOµÙ¡PÿCÚ‘ái:‘KðpòM»¦ÙÀÒTú*Ñ6ÃaÇð˜º=®;Üë×Ä)Ÿ>µt€nèc‚á ß¹$–äËKÓð‡¬’Ãõ„hÝ—p#»“°\ü íüC éœ‹ªÕ’=e‰Ä6ÒB°€lZ—÷ÅSàsÿ~¥H6!#Ç—: c"tj &,‹²Ñ¯¨,€ÚÊŽ‹&—,¶ÒaW‹žæÖs%ˆ=ÅM¯X±Hu¥$g}‘³R‚77¹1è ,:žO ^yAÃ6ß„˜#.,%p†y;4òOp/DÉcmn/ÆO̧ñig¾å9ºãQ…Ca¨y¶ “Ý©kðäÛ,‰1‡ ÒÓJU)©‡ìhPüOµ¡%3à°F“ÛÒM„^35*©âáô21‰EÇÒÎàv 2¿çd†Á‚¨sXqãîßêz µ.D7jƒ»‘^%Á—giUèD"°hn±|8Ò|7‹„@Ààgœ"°Ž âö¸¨;-ÏjÚ`TL"Iù”=kmP§åR ìåc3üÞ¡¥«t`yÇõíÈŽZKe˜G¨óKÒ ñ¿'æ<á–‘‰]Åì“05s—wõ|ÁLd§ÔT1eŽF7”ý:ÓÜ:nJÜEÒg|ÍcIs6ÍjXò6=«°AXÑ<îÔG“¥R¿±ŒÅBYˆ° mÅ$?9)±Y0‰>˜.·<Ì8‰Â N;RLáųE2baÆ e±‹;µD#1;I±8)`¶¯K!(óÆÁ¤e7Ù'[ÃÁí7 d¼W:¿6èò&ŠU×I§@½³A7˘v¤EÄË.‡Zü n»[Â?©Ÿh7£­n{I°Ã Ff®Ðª%{aå£ýÈY[|¯ïFT^ZDÃí ¡ªÊÌJ 0Ô´Zí)e~Ñ_¶jjrNDÞw˜ì@7…Îñdu%1ž@À›éß´I,Ý‚´I ÝNàmøÉãSD.m¯Ù“d3ð?©Y¾Œ‡‘úOSQµ]EÑ£y`“ xš)K†Kø DÎX°æ³cLGÒ ,ÀÿØ?cÇDû¦ËZM€BEPÏC¢…™KN¢ajF ƒÕ)?P–ìèð¾b'™-+vwÖ/‘nbfŽª$1·†öà.O yçù´Ñ3ë¼­M.7*j ©·Ü”ˆÏ‚ “"µø,;Ê~ô¯_ï"ngî-bÃkçƒ%—ýôèÐN¢ÙNä“&Cù[š@Ô`Ï'a-R D(R‡ZÆscyZ 0í²'åð Fî"«/Ð\ì]êÔõPªÚ­ÂÙ¡_ÜžrAv`©•Úêé-ò Þ½Uù²Më"/? õÖ — %”ÂlÃD'^q^¢ÏiÌÝ|îÇ›´uõ¥Må…ÄàÄâòâsºrP›m%ìí’ÐLÊ©d¢ò]¹—bdÙ j:®Õ'Äq˜…3½ï<þÌp¸Å£¨Îp‹ÈÌ\£®Bõ('¡ÒÎi.&”Mè¬Ò&±-C¸Ò %ŒÊø7‰ˆ2g¨‰ü”IÐJ¦Ï«Â-¾®è¨¶†äÅdöª4j±Î]n n‡òÃ}ÔRV킺Ғì_ÿ ÁkcLAG͇v€¼ð4딬X~¢Øá Š  uv¼áN7Õ^,H±U/˜¥L Œ$­g|ËI§4ÅHå°\s‘}°9½®ZÙd%y²§§K5$>}&顚áœäƒq<¸GN&)H§Šä· Ž'øî 3¬Î+»>ȹÃrqež¿2Q+X©Ø —­rÐhÿ¾xèOØFË1 `Ð)/ê—‹a]MUÿñYB°¹áùò‡"Õâ8.‡Ö$"cþ¹#v™“3J°î%Ïç­BeLJŠFX‰ jO]' Ë֩ОLÆ+@rÈ·4„ ¢9È„]¸Wë§=³]\Q‚;[!ꘫ¬ºfE.=ÜI¢Ç®¯Ý_´ò—I‹f¤3Þ½P·ÖñfSÿoʤYê3¥Ùº(þ•%ˆe9yèô¢šKDk*”+½ÆÞ BÖÙó{¹¯‚¢Ø -0°=OÖÚêD@…IðuµHmŸYˆ3ìRs˜cÔ² /á]ÅÔSâèÌãéÞGä>ó-SƒT¿þ`ŠgFÇuèÛ˜ò F?@Þ©ÿLH2Õ@M8ŒcE~G¾Ë3ËÔ}¤›L!Iô1"h¢Œ‚h„ˆú3t)PIuJ%"â8q–¬ª„È•Äð[IàX«2ôÑ¢ØU¶€ R8MZ ÊaQŒèi ÅFpqíE´‡]Ÿž!Õ¹,v˜ˆXJýˆá8NlËá$GÝŸiT¡s;µ”ûKê+ëH»Çy æKÒ^O\TXÄ,QíîÚ½Êdψ­þž&\ļΙÊݪS)Ÿ‘2Ø;‡^á†Db¡û,- îS°BALå4yò /­ºDt¼?º)áéç+Gd­.HdZj UÚ¥[S~6Œ®°ÎI-ŠÉxÇÕ_Q\7Ó:Kÿ·…yT>X´€Š±@p£èùŸÃ‚RÜ/>…I{-'·qçAYÓ´Ê §ºÓU9¢uÂËvmIâÆæ·¡ ‡ŸŠ·ã©‹Ž¼aj“¬ì,.Ïd­ÇF]Åy3F”Hj ‘4ãót¥%Õøm i°°+c>Ã{@1$ߢ7D¼Èkºò(ç[¿ühPÄJìÂb-9¤6SD€i£Â¤ŒeH+Á%‡o¢u{cû £Pĩާ¢¦èÀV [ÛD5wœpEÔË]|c°É(-4p%OÆ Œýœ"ÄO8'ÏKˆZ©Ú(§‡z¯/äSìÊ|BI1Gɨ¤’YPwaÑ !õfòﻟõ—T€1WË$xãNŠ“[Xa;BrlL ‚Ê5`–&§×¯ƒ\¿•á¢Âúº°~|OS/2A^5X`cmapô­ÈBcvt D gaspÿÿtglyfÌ}Ú head«Ü+Ü6hheaŠø$hmtxD¸locazT maxpIE8 name­]i9¼‚postŸdMÂ@2O?öP_<õ Ï×M×Ï×M×ÿóÍÿó.Í@.ôLfGLfõ„ PfEdÀññÀÿÀ.  3< ñÿÿñÿÿD***P™U.±/<²í2±Ü<²í2±/<²í2²ü<²í233'3#ˆwffUþ«33ÿóÍ 2"&4576&/«ªxxªx³P Ä @xªxxªˆ³}  ³®Gèþ#M«Ì Ž Ø  ð F q  ‰ ¼Created by Michael Arestad with FontForge 2.0 (http://fontforge.sf.net)Created by Michael Arestad with FontForge 2.0 (http://fontforge.sf.net)jetpackjetpackMediumMediumFontForge 2.0 : jetpack : 30-6-2014FontForge 2.0 : jetpack : 30-6-2014jetpackjetpackVersion 001.000 Version 001.000 jetpackjetpackÿÀuniF102ÿÿÌ=¢ÏÏ×M×Ï×M×plugins/jetpack/_inc/fonts/jetpack/jetpack.woff0000755000312500031250000000222412651056012022245 0ustar eacbforgeacbforgwOFF” ˜FFTMxkì>~OS/2 J`A^5cmapü>Bô­cvt <DgasppÿÿglyfL› Ì}Úhead0/6«Ü+hhea`$ŠøhmtxìDloca@ zTmaxp€ IEnameèb‚­]i9postL$2ŸdMÂxÚc`d``bûoñü6_¸™@àüußëpZðÿgƳŒ½@.XMu €xÚc`d``ìýÿ™A‰Ï202 _Q…xÚc`d```aa`f& fd‰90èÄxÚc`ab`üÂÀÊÀÀèØÆÀÀॿ2H2´0001°q2À‚ÉæšÂpà#ÓG&Æÿ0è1ö2ð…‘”(00-ÿ Ó3xÚc```f€`F°òÁ| Í„@þG¦ÿÿ!$?#T%#ŒÉÀÈ$˜P#ð>Š®D***PxÚc`bd``˜ÉÊÀÌÀΠ·‘‘Aßf; Ã[£l¬wl613™ ™A¬ áMìlŒl61‚ÄÕ•;ÊÓÒCÿ­d4šÆÌ`üÿ3ãYÆ^ ‰¼  BFb"lJj&â¦ìlbâæfjúŒ¢«WUT¬ªØÀÆÅsˆ{+@"›k¹%˜€X`3Ð(\|%©xÚ}?NÃ0Æ?÷¯PÅ,±ÀÐÔM«ݪJaÊÚ=Mœ&P’ºª:2² îÄ 8àŒœñ%µ:”Xöû½ç/ŸŸ  ‡7¾¼XèâËrüXnâRø–[èŠGËm\ˆWËÖ?¨­3fÏõ_ žõi¹s|[nÂmË-ôăå6¤x²Üaýs”Ð`¸FXbÏÕGŠ ëkæ³Zµ¡*¨U;îîKxÈ‘‘«XbE•„ ŠñŠ ÃQ`ŠGlµñŸÖ¡gÌ5#\óRFGr¹—~&^ËY©7&ˆä.5‰ôòÌxy¹ÒÒu”¼JŒ)¦ƒAÌj\UMìdÚÐè¶v,Øoˆ;¦ÚAHðë{¦Øâž‰ŽÒ-ã—˜r›j#îö1átICŒisÔÜTÚCI#ÕŸô]5ŸnlÁzÉçHë^$=+W§ŽUXèr“æ™Tjè(¥äI«_·oTxÚc`bƒÿ$#:`‹212±—æeºWèÿÿxÚc```d‚3¶‹Îƒèó×}¯ÃhRƒplugins/jetpack/_inc/fonts/jetpack/jetpack.ttf0000755000312500031250000000323012651056012022077 0ustar eacbforgeacbforg €PFFTMkì>~|OS/2A^5X`cmapô­ÈBcvt D gaspÿÿtglyfÌ}Ú head«Ü+Ü6hheaŠø$hmtxD¸locazT maxpIE8 name­]i9¼‚postŸdMÂ@2O?öP_<õ Ï×M×Ï×M×ÿóÍÿó.Í@.ôLfGLfõ„ PfEdÀññÀÿÀ.  3< ñÿÿñÿÿD***P™U.±/<²í2±Ü<²í2±/<²í2²ü<²í233'3#ˆwffUþ«33ÿóÍ 2"&4576&/«ªxxªx³P Ä @xªxxªˆ³}  ³®Gèþ#M«Ì Ž Ø  ð F q  ‰ ¼Created by Michael Arestad with FontForge 2.0 (http://fontforge.sf.net)Created by Michael Arestad with FontForge 2.0 (http://fontforge.sf.net)jetpackjetpackMediumMediumFontForge 2.0 : jetpack : 30-6-2014FontForge 2.0 : jetpack : 30-6-2014jetpackjetpackVersion 001.000 Version 001.000 jetpackjetpackÿÀuniF102ÿÿÌ=¢ÏÏ×M×Ï×M×plugins/jetpack/_inc/fonts/jetpack/jetpack.svg0000755000312500031250000000222012651056012022077 0ustar eacbforgeacbforg Created by FontForge 20120731 at Mon Jun 30 11:24:39 2014 By Michael Arestad Created by Michael Arestad with FontForge 2.0 (http://fontforge.sf.net) plugins/jetpack/_inc/jetpack-modules.views.js0000644000312500031250000000326712654411246021764 0ustar eacbforgeacbforg this.jetpackModules = this.jetpackModules || {}; window.jetpackModules.views = (function( window, $, _, Backbone, wp ) { 'use strict'; var views = {}; views.List_Table = Backbone.View.extend({ template : wp.template( 'Jetpack_Modules_List_Table_Template' ), /** * If we can, use replaceState to change the URL and indicate the new filtering. * This will be handy with redirecting back to the same state after activating/deactivating. */ updateUrl : function() { if ( ! window.history.replaceState ) { return; } var url = window.location.href.split('?')[0] + '?page=jetpack_modules', m_tag = $('.subsubsub .current'), m_filter = $('.button-group.filter-active .active'), m_sort = $('.button-group.sort .active'), m_search = $('#srch-term-search-input').val(); if ( m_search.length ) { url += '&s=' + encodeURIComponent( m_search ); } if ( ! m_tag.hasClass('all') ) { url += '&module_tag=' + encodeURIComponent( m_tag.data('title') ); } if ( m_filter.data('filter-by') ) { url += '&' + encodeURIComponent( m_filter.data('filter-by') ) + '=' + encodeURIComponent( m_filter.data('filter-value') ); } if ( 'name' !== m_sort.data('sort-by') ) { url += '&sort_by=' + encodeURIComponent( m_sort.data('sort-by') ); } window.history.replaceState( {}, '', url ); }, render : function() { this.model.filter_and_sort(); this.$el.html( this.template( this.model.attributes ) ); this.updateUrl(); return this; }, initialize : function() { this.listenTo( this.model, 'change', this.render ); } }); return views; })( this, jQuery, _, Backbone, wp ); plugins/jetpack/_inc/jp-my-jetpack.js0000644000312500031250000000542012654411246020205 0ustar eacbforgeacbforg/* global jpConnection, jQuery */ (function( $, jpConnection ) { /////////////////////////////////////// // INIT /////////////////////////////////////// var data = { 'jetpackIsActive' : jpConnection.jetpackIsActive, 'isAdmin' : jpConnection.isAdmin, 'otherAdminsLinked' : jpConnection.otherAdminsLinked, 'stats_urls' : jpConnection.my_jetpack_stats_urls, 'masterUser' : jpConnection.masterUser, 'masterUserLink' : jpConnection.masterUser.masterUserLink, 'currentUser' : jpConnection.currentUser }; $( document ).ready(function () { renderPageTemplate( data ); // Set someone as master. $( '#change-primary-btn' ).click( function() { $( '#change-primary-btn' ).hide(); $( '#user-list' ).show(); $( '#save-primary-btn' ).show(); //Log My Jetpack event "change primary" in MC Stats new Image().src = data.stats_urls.change_primary; }); // Hide the success message after a little bit setTimeout( function(){ jQuery( '.jetpack-message:not( .stay-visible, .jetpack-err )' ).hide( 600 ); }, 6000); }); function renderPageTemplate( data ) { $( '#my-jetpack-page-template' ).html( wp.template( 'connection-page' )( data ) ); // Save the focused element, then shift focus to the modal window. confirmJetpackDisconnect(); } /* The function used to display the disconnect confirmation and support buttons */ function confirmJetpackDisconnect() { if ( window.location.hash.substr( '#disconnect' ) ) { $( '#jetpack-disconnect-content' ).show(); $( '#my-jetpack-content, .my-jetpack-actions' ).hide(); //Log My Jetpack event "wants to disconnect Jetpack" in MC Stats new Image().src = data.stats_urls.disconnect_site; } $( '#jetpack-disconnect' ).click( function() { $( '#jetpack-disconnect-content' ).show(); $( '#my-jetpack-content, .my-jetpack-actions' ).hide(); //Log My Jetpack event "wants to disconnect Jetpack" in MC Stats new Image().src = data.stats_urls.disconnect_site; }); $( '#cancel-disconnect' ).click( function() { event.preventDefault(); $( '#jetpack-disconnect-content' ).hide(); $( '#my-jetpack-content, .my-jetpack-actions' ).show(); //Log My Jetpack event "decided not to disconnect Jetpack" in MC Stats new Image().src = data.stats_urls.cancel_disconnect; }); $( '#jetpack-disconnect-content #support-no-disconnect' ).click( function() { //Log My Jetpack event "get support instead of disconnecting site" in MC Stats new Image().src = data.stats_urls.support_no_disconnect; }); $( '#jetpack-disconnect-content #confirm-disconnect' ).click( function() { //Log My Jetpack event "confirm the disconnecting of a the site" in MC Stats new Image().src = data.stats_urls.confirm_disconnect; }); } })( jQuery, jpConnection );plugins/jetpack/_inc/images/0000755000312500031250000000000012651056012016431 5ustar eacbforgeacbforgplugins/jetpack/_inc/images/rss/0000755000312500031250000000000012651056012017240 5ustar eacbforgeacbforgplugins/jetpack/_inc/images/screenshots/0000755000312500031250000000000012651056012020771 5ustar eacbforgeacbforgplugins/jetpack/_inc/jquery.jetpack-resize.js0000644000312500031250000001765012654411246022000 0ustar eacbforgeacbforg/* global Jetpack */ /** * Resizeable Iframes. * * Start listening to resize postMessage events for selected iframes: * $( selector ).Jetpack( 'resizeable' ); * - OR - * Jetpack.resizeable( 'on', context ); * * Resize selected iframes: * $( selector ).Jetpack( 'resizeable', 'resize', { width: 100, height: 200 } ); * - OR - * Jetpack.resizeable( 'resize', { width: 100, height: 200 }, context ); * * Stop listening to resize postMessage events for selected iframes: * $( selector ).Jetpack( 'resizeable', 'off' ); * - OR - * Jetpack.resizeable( 'off', context ); * * Stop listening to all resize postMessage events: * Jetpack.resizeable( 'off' ); */ (function($) { var listening = false, // Are we listening for resize postMessage events sourceOrigins = [], // What origins are allowed to send resize postMessage events $sources = false, // What iframe elements are we tracking resize postMessage events from URLtoOrigin, // Utility to convert URLs into origins setupListener, // Binds global resize postMessage event handler destroyListener, // Unbinds global resize postMessage event handler methods; // Jetpack.resizeable methods // Setup the Jetpack global if ( 'undefined' === typeof window.Jetpack ) { window.Jetpack = { /** * Handles the two different calling methods: * $( selector ).Jetpack( 'namespace', 'method', context ) // here, context is optional and is used to filter the collection * - vs. - * Jetpack.namespace( 'method', context ) // here context defines the collection * * @internal * * Call as: Jetpack.getTarget.call( this, context ) * * @param string context: jQuery selector * @return jQuery|undefined object on which to perform operations or undefined when context cannot be determined */ getTarget: function( context ) { if ( this instanceof jQuery ) { return context ? this.filter( context ) : this; } return context ? $( context ) : context; } }; } // Setup the Jetpack jQuery method if ( 'undefined' === typeof $.fn.Jetpack ) { /** * Dispatches calls to the correct namespace * * @param string namespace * @param ... * @return mixed|jQuery (chainable) */ $.fn.Jetpack = function( namespace ) { if ( 'function' === typeof Jetpack[namespace] ) { // Send the call to the correct Jetpack.namespace return Jetpack[namespace].apply( this, Array.prototype.slice.call( arguments, 1 ) ); } else { $.error( 'Namespace "' + namespace + '" does not exist on jQuery.Jetpack' ); } }; } // Define Jetpack.resizeable() namespace to just always bail if no postMessage if ( 'function' !== typeof window.postMessage ) { $.extend( window.Jetpack, { /** * Defines the Jetpack.resizeable() namespace. * See below for non-trivial definition for browsers with postMessage. */ resizeable: function() { $.error( 'Browser does not support window.postMessage' ); } } ); return; } /** * Utility to convert URLs into origins * * http://example.com:port/path?query#fragment -> http://example.com:port * * @param string URL * @return string origin */ URLtoOrigin = function( URL ) { if ( ! URL.match( /^https?:\/\// ) ) { URL = document.location.href; } return URL.split( '/' ).slice( 0, 3 ).join( '/' ); }; /** * Binds global resize postMessage event handler */ setupListener = function() { listening = true; $( window ).on( 'message.JetpackResizeableIframe', function( e ) { var event = e.originalEvent, data; // Ensure origin is allowed if ( -1 === $.inArray( event.origin, sourceOrigins ) ) { return; } // Some browsers send structured data, some send JSON strings if ( 'object' === typeof event.data ) { data = event.data.data; } else { try { data = JSON.parse( event.data ); } catch ( err ) { data = false; } } if ( !data.data ) { return; } // Un-nest data = data.data; // Is it a resize event? if ( 'undefined' === typeof data.action || 'resize' !== data.action ) { return; } // Find the correct iframe and resize it $sources.filter( function() { if ( 'undefined' !== typeof data.name ) { return this.name === data.name; } else { return event.source === this.contentWindow; } } ).first().Jetpack( 'resizeable', 'resize', data ); } ); }; /** * Unbinds global resize postMessage event handler */ destroyListener = function() { listening = false; $( window ).off( 'message.JetpackResizeableIframe' ); sourceOrigins = []; $( '.jetpack-resizeable' ).removeClass( 'jetpack-resizeable' ); $sources = false; }; // Methods for Jetpack.resizeable() namespace methods = { /** * Start listening for resize postMessage events on the given iframes * * Call statically as: Jetpack.resizeable( 'on', context ) * Call as: $( selector ).Jetpack( 'resizeable', 'on', context ) // context optional: used to filter the collectino * * @param string context jQuery selector. * @return jQuery (chainable) */ on: function( context ) { var target = Jetpack.getTarget.call( this, context ); if ( ! listening ) { setupListener(); } target.each( function() { sourceOrigins.push( URLtoOrigin( $( this ).attr( 'src' ) ) ); } ).addClass( 'jetpack-resizeable' ); $sources = $( '.jetpack-resizeable' ); return target; }, /** * Stop listening for resize postMessage events on the given iframes * * Call statically as: Jetpack.resizeable( 'off', context ) * Call as: $( selector ).Jetpack( 'resizeable', 'off', context ) // context optional: used to filter the collectino * * @param string context jQuery selector * @return jQuery (chainable) */ off: function( context ) { var target = Jetpack.getTarget.call( this, context ); if ( 'undefined' === typeof target ) { destroyListener(); return target; } target.each( function() { var origin = URLtoOrigin( $( this ).attr( 'src' ) ), pos = $.inArray( origin, sourceOrigins ); if ( -1 !== pos ) { sourceOrigins.splice( pos, 1 ); } } ).removeClass( 'jetpack-resizeable' ); $sources = $( '.jetpack-resizeable' ); return target; }, /** * Resize the given iframes * * Call statically as: Jetpack.resizeable( 'resize', dimensions, context ) * Call as: $( selector ).Jetpack( 'resizeable', 'resize', dimensions, context ) // context optional: used to filter the collectino * * @param object dimensions in pixels: { width: (int), height: (int) } * @param string context jQuery selector * @return jQuery (chainable) */ resize: function( dimensions, context ) { var target = Jetpack.getTarget.call( this, context ); $.each( [ 'width', 'height' ], function( i, variable ) { var value = 0, container; if ( 'undefined' !== typeof dimensions[variable] ) { value = parseInt( dimensions[variable], 10 ); } if ( 0 !== value ) { target[variable]( value ); container = target.parent(); if ( container.hasClass( 'slim-likes-widget' ) ) { container[variable]( value ); } } } ); return target; } }; // Define Jetpack.resizeable() namespace $.extend( window.Jetpack, { /** * Defines the Jetpack.resizeable() namespace. * See above for trivial definition for browsers with no postMessage. * * @param string method * @param ... * @return mixed|jQuery (chainable) */ resizeable: function( method ) { if ( methods[method] ) { // Send the call to the correct Jetpack.resizeable() method return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ) ); } else if ( ! method ) { // By default, send to Jetpack.resizeable( 'on' ), which isn't useful in that form but is when called as // jQuery( selector ).Jetpack( 'resizeable' ) return methods.on.apply( this ); } else { $.error( 'Method ' + method + ' does not exist on Jetpack.resizeable' ); } } } ); })(jQuery); plugins/jetpack/_inc/spin.js0000644000312500031250000002372512654411246016513 0ustar eacbforgeacbforg//fgnass.github.com/spin.js#v1.3 /** * Copyright (c) 2011-2013 Felix Gnass * Licensed under the MIT license */ (function(root, factory) { /* CommonJS */ if (typeof exports == 'object') module.exports = factory() /* AMD module */ else if (typeof define == 'function' && define.amd) define(factory) /* Browser global */ else root.Spinner = factory() } (this, function() { "use strict"; var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */ , animations = {} /* Animation rules keyed by their name */ , useCssAnimations /* Whether to use CSS animations or setTimeout */ /** * Utility function to create elements. If no tag name is given, * a DIV is created. Optionally properties can be passed. */ function createEl(tag, prop) { var el = document.createElement(tag || 'div') , n for(n in prop) el[n] = prop[n] return el } /** * Appends children and returns the parent. */ function ins(parent /* child1, child2, ...*/) { for (var i=1, n=arguments.length; i> 1) : parseInt(o.left, 10) + mid) + 'px', top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + 'px' }) } el.setAttribute('role', 'progressbar') self.lines(el, self.opts) if (!useCssAnimations) { // No CSS animation support, use setTimeout() instead var i = 0 , start = (o.lines - 1) * (1 - o.direction) / 2 , alpha , fps = o.fps , f = fps/o.speed , ostep = (1-o.opacity) / (f*o.trail / 100) , astep = f/o.lines ;(function anim() { i++; for (var j = 0; j < o.lines; j++) { alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity) self.opacity(el, j * o.direction + start, alpha, o) } self.timeout = self.el && setTimeout(anim, ~~(1000/fps)) })() } return self }, /** * Stops and removes the Spinner. */ stop: function() { var el = this.el if (el) { clearTimeout(this.timeout) if (el.parentNode) el.parentNode.removeChild(el) this.el = undefined } return this }, /** * Internal method that draws the individual lines. Will be overwritten * in VML fallback mode below. */ lines: function(el, o) { var i = 0 , start = (o.lines - 1) * (1 - o.direction) / 2 , seg function fill(color, shadow) { return css(createEl(), { position: 'absolute', width: (o.length+o.width) + 'px', height: o.width + 'px', background: color, boxShadow: shadow, transformOrigin: 'left', transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)', borderRadius: (o.corners * o.width>>1) + 'px' }) } for (; i < o.lines; i++) { seg = css(createEl(), { position: 'absolute', top: 1+~(o.width/2) + 'px', transform: o.hwaccel ? 'translate3d(0,0,0)' : '', opacity: o.opacity, animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1/o.speed + 's linear infinite' }) if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'})) ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)'))) } return el }, /** * Internal method that adjusts the opacity of a single line. * Will be overwritten in VML fallback mode below. */ opacity: function(el, i, val) { if (i < el.childNodes.length) el.childNodes[i].style.opacity = val } }) function initVML() { /* Utility function to create a VML tag */ function vml(tag, attr) { return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr) } // No CSS transforms but VML support, add a CSS rule for VML elements: sheet.addRule('.spin-vml', 'behavior:url(#default#VML)') Spinner.prototype.lines = function(el, o) { var r = o.length+o.width , s = 2*r function grp() { return css( vml('group', { coordsize: s + ' ' + s, coordorigin: -r + ' ' + -r }), { width: s, height: s } ) } var margin = -(o.width+o.length)*2 + 'px' , g = css(grp(), {position: 'absolute', top: margin, left: margin}) , i function seg(i, dx, filter) { ins(g, ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}), ins(css(vml('roundrect', {arcsize: o.corners}), { width: r, height: o.width, left: o.radius, top: -o.width>>1, filter: filter }), vml('fill', {color: o.color, opacity: o.opacity}), vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change ) ) ) } if (o.shadow) for (i = 1; i <= o.lines; i++) seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)') for (i = 1; i <= o.lines; i++) seg(i) return ins(el, g) } Spinner.prototype.opacity = function(el, i, val, o) { var c = el.firstChild o = o.shadow && o.lines || 0 if (c && i+o < c.childNodes.length) { c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild if (c) c.opacity = val } } } var probe = css(createEl('group'), {behavior: 'url(#default#VML)'}) if (!vendor(probe, 'transform') && probe.adj) initVML() else useCssAnimations = vendor(probe, 'animation') return Spinner })); plugins/jetpack/_inc/jetpack-jitm.js0000644000312500031250000000743612654411246020125 0ustar eacbforgeacbforg/* global jitmL10n, jQuery */ (function($, jitmL10n) { /////////////////////////////////////// // INIT /////////////////////////////////////// var data; $(document).ready(function () { data = { 'action' : 'jitm_ajax', 'jitmNonce' : jitmL10n.jitm_nonce, 'photon' : jitmL10n.photon_msgs, 'manage' : jitmL10n.manage_msgs, 'stats' : jitmL10n.stats_msgs, 'jitm_stats_url' : jitmL10n.jitm_stats_url, 'enabledModules' : [] }; initEvents(); }); /////////////////////////////////////// // FUNCTIONS /////////////////////////////////////// function initEvents() { var module_slug, success_msg, fail_msg, hide_msg, $body = $( 'body' ); // On dismiss of JITM admin notice $body.on( 'click', '.jp-jitm .dismiss', function() { var $self = $( this ); // hide the notice $self.closest( '.jp-jitm' ).hide(); // ajax request to save dismiss and never show again data.jitmActionToTake = 'dismiss'; module_slug = $self.data( 'module' ); data.jitmModule = module_slug; $.post( jitmL10n.ajaxurl, data, function ( response ) { if ( true === response.success ) { //console.log('successfully dismissed for ever') } }); }); $body.on( 'click', '.jp-jitm .activate', function() { var $self = $( this ), $jitm = $self.closest( '.jp-jitm' ); $jitm.find( '.button' ).addClass( 'hide' ); $jitm.find( '.j-spinner' ).toggleClass( 'hide' ); data.jitmActionToTake = 'activate'; // get the module we're working with using the data-module attribute module_slug = $self.data( 'module' ); // Check if there's a custom success message, otherwise use default. success_msg = $self.data( 'module-success' ) ? $self.data( 'module-success' ) : data[module_slug].success; fail_msg = data[module_slug].fail; data.jitmModule = module_slug; // since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php $.post( jitmL10n.ajaxurl, data, function ( response ) { // If there's no response, something bad happened if ( true === response.success ) { var $msg = $jitm.find( '.msg' ); $msg.html( success_msg ); $jitm.find( '.j-spinner' ).add( '#jetpack-wordpressdotcom' ).toggleClass( 'hide' ); if ( 'manage' !== data.jitmModule ) { hide_msg = setTimeout( function () { $jitm.hide( 'slow' ); }, 5000 ); } $jitm.find( '.show-after-enable.hide' ).removeClass( 'hide' ); data.enabledModules.push( module_slug ); } else { $jitm.html( '

        ' + fail_msg + '

        ' ); } }); }); $body.on( 'click', '.jp-jitm .launch', function() { data.jitmActionToTake = 'launch'; module_slug = $(this).data( 'module' ); data.jitmModule = module_slug; // ajax request to save click in stat $.post( jitmL10n.ajaxurl, data ); } ); $body.on( 'click', '#jetpack-wordpressdotcom', function() { //Log user heads to wordpress.com/plugins new Image().src = data.jitm_stats_url; }); // Display Photon JITM after user started uploading an image. if ( $( '#tmpl-jitm-photon' ).length > 0 ) { wp.Uploader.queue.on( 'add', function ( e ) { if ( -1 === $.inArray( 'photon', data.enabledModules ) ) { if ( 'image' === e.attributes.type ) { var jitmTemplate = wp.template( 'jitm-photon' ), $menu = wp.media.frame.$el.find( '.media-menu' ), $jitm; if ( $menu.length > 0 ) { $jitm = $menu.append( jitmTemplate() ).find( '.jp-jitm' ); // JITM is visible to user, track it. data.jitmActionToTake = 'viewed'; data.jitmModule = $jitm.data( 'track' ); $.post( jitmL10n.ajaxurl, data ); } } else { $( '.media-menu' ).find( '.jp-jitm' ).remove(); } } } ); } } })(jQuery, jitmL10n);plugins/jetpack/_inc/postmessage.js0000644000312500031250000004623712654411246020077 0ustar eacbforgeacbforg/** The MIT License Copyright (c) 2010 Daniel Park (http://metaweb.com, http://postmessage.freebaseapps.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **/ var NO_JQUERY = {}; (function(window, $, undefined) { if (!("console" in window)) { var c = window.console = {}; c.log = c.warn = c.error = c.debug = function(){}; } if ($ === NO_JQUERY) { // jQuery is optional $ = { fn: {}, extend: function() { var a = arguments[0]; for (var i=1,len=arguments.length; i $event_name, // required '_ui' => $user_id, // required unless _ul is provided '_ul' => $user_login, // required unless _ui is provided // Optional, but recommended '_via_ip' => $client_ip, // for geo, etc. // Possibly useful to set some context for the event '_via_ua' => $client_user_agent, '_via_url' => $client_url, '_via_ref' => $client_referrer, // For user-targeted tests 'abtest_name' => $abtest_name, 'abtest_variation' => $abtest_variation, // Your application-specific properties 'custom_property' => $some_value, ) ); if ( is_wp_error( $event->error ) ) { // Handle the error in your app } $bump_and_redirect_pixel = $event->build_signed_pixel_url(); ``` */ require_once( dirname(__FILE__) . '/class.tracks-client.php' ); class Jetpack_Tracks_Event { const EVENT_NAME_REGEX = '/^(([a-z0-9]+)_){2}([a-z0-9_]+)$/'; const PROP_NAME_REGEX = '/^[a-z_][a-z0-9_]*$/'; public $error; function __construct( $event ) { $_event = self::validate_and_sanitize( $event ); if ( is_wp_error( $_event ) ) { $this->error = $_event; return; } foreach( $_event as $key => $value ) { $this->{$key} = $value; } } function record() { return Jetpack_Tracks_Client::record_event( $this ); } /** * Annotate the event with all relevant info. * @param mixed $event Object or (flat) array * @return mixed The transformed event array or WP_Error on failure. */ static function validate_and_sanitize( $event ) { $event = (object) $event; // Required if ( ! $event->_en ) { return new WP_Error( 'invalid_event', 'A valid event must be specified via `_en`', 400 ); } // delete non-routable addresses otherwise geoip will discard the record entirely if ( property_exists( $event, '_via_ip' ) && preg_match( '/^192\.168|^10\./', $event->_via_ip ) ) { unset($event->_via_ip); } $validated = array( 'browser_type' => Jetpack_Tracks_Client::BROWSER_TYPE, '_aua' => Jetpack_Tracks_Client::get_user_agent(), ); $_event = (object) array_merge( (array) $event, $validated ); // If you want to blacklist property names, do it here. // Make sure we have an event timestamp. if ( ! isset( $_event->_ts ) ) { $_event->_ts = Jetpack_Tracks_Client::build_timestamp(); } return $_event; } /** * Build a pixel URL that will send a Tracks event when fired. * On error, returns an empty string (''). * * @return string A pixel URL or empty string ('') if there were invalid args. */ function build_pixel_url() { if ( $this->error ) { return ''; } $args = get_object_vars( $this ); // Request Timestamp and URL Terminator must be added just before the HTTP request or not at all. unset( $args['_rt'] ); unset( $args['_'] ); $validated = self::validate_and_sanitize( $args ); if ( is_wp_error( $validated ) ) return ''; return Jetpack_Tracks_Client::PIXEL . '?' . http_build_query( $validated ); } static function event_name_is_valid( $name ) { return preg_match( Jetpack_Tracks_Event::EVENT_NAME_REGEX, $name ); } static function prop_name_is_valid( $name ) { return preg_match( Jetpack_Tracks_Event::PROP_NAME_REGEX, $name ); } static function scrutinize_event_names( $event ) { if ( ! Jetpack_Tracks_Event::event_name_is_valid( $event->_en ) ) { return; } $whitelisted_key_names = array( 'anonId', 'Browser_Type', ); foreach ( array_keys( (array) $event ) as $key ) { if ( in_array( $key, $whitelisted_key_names ) ) { continue; } if ( ! Jetpack_Tracks_Event::prop_name_is_valid( $key ) ) { return; } } } } plugins/jetpack/_inc/lib/tracks/class.tracks-client.php0000644000312500031250000001116012654411246023607 0ustar eacbforgeacbforg $event_name, // required '_ui' => $user_id, // required unless _ul is provided '_ul' => $user_login, // required unless _ui is provided // Optional, but recommended '_ts' => $ts_in_ms, // Default: now '_via_ip' => $client_ip, // we use it for geo, etc. // Possibly useful to set some context for the event '_via_ua' => $client_user_agent, '_via_url' => $client_url, '_via_ref' => $client_referrer, // For user-targeted tests 'abtest_name' => $abtest_name, 'abtest_variation' => $abtest_variation, // Your application-specific properties 'custom_property' => $some_value, ) ); if ( is_wp_error( $result ) ) { // Handle the error in your app } ``` */ require_once( dirname(__FILE__).'/class.tracks-client.php' ); class Jetpack_Tracks_Client { const PIXEL = 'http://pixel.wp.com/t.gif'; const BROWSER_TYPE = 'php-agent'; const USER_AGENT_SLUG = 'tracks-client'; const VERSION = '0.3'; /** * record_event * @param mixed $event Event object to send to Tracks. An array will be cast to object. Required. * Properties are included directly in the pixel query string after light validation. * @return mixed True on success, WP_Error on failure */ static function record_event( $event ) { if ( ! $event instanceof Jetpack_Tracks_Event ) { $event = new Jetpack_Tracks_Event( $event ); } if ( is_wp_error( $event ) ) { return $event; } $pixel = $event->build_pixel_url( $event ); if ( ! $pixel ) { return new WP_Error( 'invalid_pixel', 'cannot generate tracks pixel for given input', 400 ); } return self::record_pixel( $pixel ); } /** * Synchronously request the pixel */ static function record_pixel( $pixel ) { // Add the Request Timestamp and URL terminator just before the HTTP request. $pixel .= '&_rt=' . self::build_timestamp() . '&_=_'; $response = wp_remote_get( $pixel, array( 'blocking' => true, // The default, but being explicit here :) 'timeout' => 1, 'redirection' => 2, 'httpversion' => '1.1', 'user-agent' => self::get_user_agent(), ) ); if ( is_wp_error( $response ) ) { return $response; } $code = isset( $response['response']['code'] ) ? $response['response']['code'] : 0; if ( $code !== 200 ) { return new WP_Error( 'request_failed', 'Tracks pixel request failed', $code ); } return true; } static function get_user_agent() { return Jetpack_Tracks_Client::USER_AGENT_SLUG . '-v' . Jetpack_Tracks_Client::VERSION; } /** * Build an event and return its tracking URL * @deprecated Call the `build_pixel_url` method on a Jetpack_Tracks_Event object instead. * @param array $event Event keys and values * @return string URL of a tracking pixel */ static function build_pixel_url( $event ) { $_event = new Jetpack_Tracks_Event( $event ); return $_event->build_pixel_url(); } /** * Validate input for a tracks event. * @deprecated Instantiate a Jetpack_Tracks_Event object instead * @param array $event Event keys and values * @return mixed Validated keys and values or WP_Error on failure */ private static function validate_and_sanitize( $event ) { $_event = new Jetpack_Tracks_Event( $event ); if ( is_wp_error( $_event ) ) { return $_event; } return get_object_vars( $_event ); } // Milliseconds since 1970-01-01 static function build_timestamp() { $ts = round( microtime( true ) * 1000 ); return number_format( $ts, 0, '', '' ); } /** * Grabs the user's anon id from cookies, or generates and sets a new one * * @return string An anon id for the user */ static function get_anon_id() { static $anon_id = null; if ( ! isset( $anon_id ) ) { // Did the browser send us a cookie? if ( isset( $_COOKIE[ 'tk_ai' ] ) && preg_match( '#^[A-Za-z0-9+/=]{24}$#', $_COOKIE[ 'tk_ai' ] ) ) { $anon_id = $_COOKIE[ 'tk_ai' ]; } else { $binary = ''; // Generate a new anonId and try to save it in the browser's cookies // Note that base64-encoding an 18 character string generates a 24-character anon id for ( $i = 0; $i < 18; ++$i ) { $binary .= chr( mt_rand( 0, 255 ) ); } $anon_id = 'jetpack:' . base64_encode( $binary ); if ( ! headers_sent() ) { setcookie( 'tk_ai', $anon_id ); } } } return $anon_id; } } plugins/jetpack/_inc/lib/tracks/client.php0000644000312500031250000001012312654410420021205 0ustar eacbforgeacbforgID ); $properties['user_lang'] = $user->get( 'WPLANG' ); $blog_details = array( 'blog_lang' => isset( $properties['blog_lang'] ) ? $properties['blog_lang'] : get_bloginfo( 'language' ) ); $timestamp = ( $event_timestamp_millis !== false ) ? $event_timestamp_millis : round( microtime( true ) * 1000 ); $timestamp_string = is_string( $timestamp ) ? $timestamp : number_format( $timestamp, 0, '', '' ); return new Jetpack_Tracks_Event( array_merge( $blog_details, (array) $properties, $identity, array( '_en' => $event_name, '_ts' => $timestamp_string ) ) ); } /* * Get the identity to send to tracks. * * @param int $user_id The user id of the local user * @return array $identity */ function jetpack_tracks_get_identity( $user_id ) { // Meta is set, and user is still connected. Use WPCOM ID $wpcom_id = get_user_meta( $user_id, 'jetpack_tracks_wpcom_id', true ); if ( $wpcom_id && Jetpack::is_user_connected( $user_id ) ) { return array( '_ut' => 'wpcom:user_id', '_ui' => $wpcom_id ); } // User is connected, but no meta is set yet. Use WPCOM ID and set meta. if ( Jetpack::is_user_connected( $user_id ) ) { $wpcom_user_data = Jetpack::get_connected_user_data( $user_id ); add_user_meta( $user_id, 'jetpack_tracks_wpcom_id', $wpcom_user_data['ID'], true ); return array( '_ut' => 'wpcom:user_id', '_ui' => $wpcom_user_data['ID'] ); } // User isn't linked at all. Fall back to anonymous ID. $anon_id = get_user_meta( $user_id, 'jetpack_tracks_anon_id', true ); if ( ! $anon_id ) { $anon_id = Jetpack_Tracks_Client::get_anon_id(); add_user_meta( $user_id, 'jetpack_tracks_anon_id', $anon_id, false ); } if ( ! isset( $_COOKIE[ 'tk_ai' ] ) && ! headers_sent() ) { setcookie( 'tk_ai', $anon_id ); } return array( '_ut' => 'anon', '_ui' => $anon_id ); } /** * Record an event in Tracks - this is the preferred way to record events from PHP. * * @param mixed $identity username, user_id, or WP_user object * @param string $event_name The name of the event * @param array $properties Custom properties to send with the event * @param int $event_timestamp_millis The time in millis since 1970-01-01 00:00:00 when the event occurred * @return bool true for success | \WP_Error if the event pixel could not be fired */ function jetpack_tracks_record_event( $user, $event_name, $properties = array(), $event_timestamp_millis = false ) { $event_obj = jetpack_tracks_build_event_obj( $user, $event_name, $properties, $event_timestamp_millis ); if ( is_wp_error( $event_obj->error ) ) { return $event_obj->error; } return $event_obj->record(); } plugins/jetpack/_inc/lib/tonesque.php0000644000312500031250000001114012654407444020317 0ustar eacbforgeacbforgimage_url = esc_url_raw( $image_url ); $this->image_url = trim( $this->image_url ); /** * Allows any image URL to be passed in for $this->image_url. * * @module theme-tools * * @since 2.5.0 * * @param string $image_url The URL to any image */ $this->image_url = apply_filters( 'tonesque_image_url', $this->image_url ); $this->image_obj = self::imagecreatefromurl( $this->image_url ); } public static function imagecreatefromurl( $image_url ) { // Grab the extension $file = strtolower( pathinfo( $image_url, PATHINFO_EXTENSION ) ); $file = explode( '?', $file ); $file = $file[ 0 ]; switch ( $file ) { case 'gif' : $image_obj = imagecreatefromgif( $image_url ); break; case 'png' : $image_obj = imagecreatefrompng( $image_url ); break; case 'jpg' : case 'jpeg' : $image_obj = imagecreatefromjpeg( $image_url ); break; default: return false; } return $image_obj; } /** * * Construct object from image. * * @param optional $type (hex, rgb, hsl) * @return color as a string formatted as $type * */ function color( $type = 'hex' ) { // Bail if there is no image to work with if ( ! $this->image_obj ) return false; // Finds dominant color $color = self::grab_color(); // Passes value to Color class $color = self::get_color( $color, $type ); return $color; } /** * * Grabs the color index for each of five sample points of the image * * @param $image * @param $type can be 'index' or 'hex' * @return array() with color indices * */ function grab_points( $type = 'index' ) { $img = $this->image_obj; if ( ! $img ) return false; $height = imagesy( $img ); $width = imagesx( $img ); // Sample five points in the image // Based on rule of thirds and center $topy = round( $height / 3 ); $bottomy = round( ( $height / 3 ) * 2 ); $leftx = round( $width / 3 ); $rightx = round( ( $width / 3 ) * 2 ); $centery = round( $height / 2 ); $centerx = round( $width / 2 ); // Cast those colors into an array $points = array( imagecolorat( $img, $leftx, $topy ), imagecolorat( $img, $rightx, $topy ), imagecolorat( $img, $leftx, $bottomy ), imagecolorat( $img, $rightx, $bottomy ), imagecolorat( $img, $centerx, $centery ), ); if ( 'hex' == $type ) { foreach ( $points as $i => $p ) { $c = imagecolorsforindex( $img, $p ); $points[ $i ] = self::get_color( array( 'r' => $c['red'], 'g' => $c['green'], 'b' => $c['blue'], ), 'hex' ); } } return $points; } /** * * Finds the average color of the image based on five sample points * * @param $image * @return array() with rgb color * */ function grab_color() { $img = $this->image_obj; if ( ! $img ) return false; $rgb = self::grab_points(); // Process the color points // Find the average representation foreach ( $rgb as $color ) { $index = imagecolorsforindex( $img, $color ); $r[] = $index['red']; $g[] = $index['green']; $b[] = $index['blue']; $red = round( array_sum( $r ) / 5 ); $green = round( array_sum( $g ) / 5 ); $blue = round( array_sum( $b ) / 5 ); } // The average color of the image as rgb array $color = array( 'r' => $red, 'g' => $green, 'b' => $blue, ); return $color; } /** * * Get a Color object using /lib class.color * Convert to appropriate type * * @return string * */ function get_color( $color, $type ) { $c = new Jetpack_Color( $color, 'rgb' ); $this->color = $c; switch ( $type ) { case 'rgb' : $color = implode( $c->toRgbInt(), ',' ); break; case 'hex' : $color = $c->toHex(); break; case 'hsv' : $color = implode( $c->toHsvInt(), ',' ); break; default: return $color = $c->toHex(); } return $color; } /** * * Checks contrast against main color * Gives either black or white for using with opacity * * @return string * */ function contrast() { if ( ! $this->color ) return false; $c = $this->color->getMaxContrastColor(); return implode( $c->toRgbInt(), ',' ); } }; plugins/jetpack/_inc/lib/class.color.php0000644000312500031250000004143212654411246020700 0ustar eacbforgeacbforg * @author Matt Wiebe * @license http://www.opensource.org/licenses/MIT */ class Jetpack_Color { /** * @var int */ protected $color = 0; /** * Initialize object * * @param string|array $color A color of the type $type * @param string $type The type of color we will construct from. * One of hex (default), rgb, hsl, int */ public function __construct( $color = null, $type = 'hex' ) { if ( $color ) { switch ( $type ) { case 'hex': $this->fromHex( $color ); break; case 'rgb': if ( is_array( $color ) && count( $color ) == 3 ) { list( $r, $g, $b ) = array_values( $color ); $this->fromRgbInt( $r, $g, $b ); } break; case 'hsl': if ( is_array( $color ) && count( $color ) == 3 ) { list( $h, $s, $l ) = array_values( $color ); $this->fromHsl( $h, $s, $l ); } break; case 'int': $this->fromInt( $color ); break; default: // there is no default. break; } } } /** * Init color from hex value * * @param string $hexValue * * @return Jetpack_Color */ public function fromHex($hexValue) { $hexValue = str_replace( '#', '', $hexValue ); // handle short hex codes like #fff if ( 3 === strlen( $hexValue ) ) { $short = $hexValue; $i = 0; $hexValue = ''; while ( $i < 3 ) { $chunk = substr($short, $i, 1 ); $hexValue .= $chunk . $chunk; $i++; } } $intValue = hexdec( $hexValue ); if ( $intValue < 0 || $intValue > 16777215 ) { throw new RangeException( $hexValue . " out of valid color code range" ); } $this->color = $intValue; return $this; } /** * Init color from integer RGB values * * @param int $red * @param int $green * @param int $blue * * @return Jetpack_Color */ public function fromRgbInt($red, $green, $blue) { if ( $red < 0 || $red > 255 ) throw new RangeException( "Red value " . $red . " out of valid color code range" ); if ( $green < 0 || $green > 255 ) throw new RangeException( "Green value " . $green . " out of valid color code range" ); if ( $blue < 0 || $blue > 255 ) throw new RangeException( "Blue value " . $blue . " out of valid color code range" ); $this->color = (int)(($red << 16) + ($green << 8) + $blue); return $this; } /** * Init color from hex RGB values * * @param string $red * @param string $green * @param string $blue * * @return Jetpack_Color */ public function fromRgbHex($red, $green, $blue) { return $this->fromRgbInt(hexdec($red), hexdec($green), hexdec($blue)); } /** * Converts an HSL color value to RGB. Conversion formula * adapted from http://en.wikipedia.org/wiki/HSL_color_space. * @param int $h Hue. [0-360] * @param in $s Saturation [0, 100] * @param int $l Lightness [0, 100] */ public function fromHsl( $h, $s, $l ) { $h /= 360; $s /= 100; $l /= 100; if ( $s == 0 ) { $r = $g = $b = $l; // achromatic } else { $q = $l < 0.5 ? $l * ( 1 + $s ) : $l + $s - $l * $s; $p = 2 * $l - $q; $r = $this->hue2rgb( $p, $q, $h + 1/3 ); $g = $this->hue2rgb( $p, $q, $h ); $b = $this->hue2rgb( $p, $q, $h - 1/3 ); } return $this->fromRgbInt( $r * 255, $g * 255, $b * 255 ); } /** * Helper function for Jetpack_Color::fromHsl() */ private function hue2rgb( $p, $q, $t ) { if ( $t < 0 ) $t += 1; if ( $t > 1 ) $t -= 1; if ( $t < 1/6 ) return $p + ( $q - $p ) * 6 * $t; if ( $t < 1/2 ) return $q; if ( $t < 2/3 ) return $p + ( $q - $p ) * ( 2/3 - $t ) * 6; return $p; } /** * Init color from integer value * * @param int $intValue * * @return Jetpack_Color */ public function fromInt($intValue) { if ( $intValue < 0 || $intValue > 16777215 ) throw new RangeException( $intValue . " out of valid color code range" ); $this->color = $intValue; return $this; } /** * Convert color to hex * * @return string */ public function toHex() { return str_pad(dechex($this->color), 6, '0', STR_PAD_LEFT); } /** * Convert color to RGB array (integer values) * * @return array */ public function toRgbInt() { return array( 'red' => (int)(255 & ($this->color >> 16)), 'green' => (int)(255 & ($this->color >> 8)), 'blue' => (int)(255 & ($this->color)) ); } /** * Convert color to RGB array (hex values) * * @return array */ public function toRgbHex() { $r = array(); foreach ($this->toRgbInt() as $item) { $r[] = dechex($item); } return $r; } /** * Get Hue/Saturation/Value for the current color * (float values, slow but accurate) * * @return array */ public function toHsvFloat() { $rgb = $this->toRgbInt(); $rgbMin = min($rgb); $rgbMax = max($rgb); $hsv = array( 'hue' => 0, 'sat' => 0, 'val' => $rgbMax ); // If v is 0, color is black if ($hsv['val'] == 0) { return $hsv; } // Normalize RGB values to 1 $rgb['red'] /= $hsv['val']; $rgb['green'] /= $hsv['val']; $rgb['blue'] /= $hsv['val']; $rgbMin = min($rgb); $rgbMax = max($rgb); // Calculate saturation $hsv['sat'] = $rgbMax - $rgbMin; if ($hsv['sat'] == 0) { $hsv['hue'] = 0; return $hsv; } // Normalize saturation to 1 $rgb['red'] = ($rgb['red'] - $rgbMin) / ($rgbMax - $rgbMin); $rgb['green'] = ($rgb['green'] - $rgbMin) / ($rgbMax - $rgbMin); $rgb['blue'] = ($rgb['blue'] - $rgbMin) / ($rgbMax - $rgbMin); $rgbMin = min($rgb); $rgbMax = max($rgb); // Calculate hue if ($rgbMax == $rgb['red']) { $hsv['hue'] = 0.0 + 60 * ($rgb['green'] - $rgb['blue']); if ($hsv['hue'] < 0) { $hsv['hue'] += 360; } } else if ($rgbMax == $rgb['green']) { $hsv['hue'] = 120 + (60 * ($rgb['blue'] - $rgb['red'])); } else { $hsv['hue'] = 240 + (60 * ($rgb['red'] - $rgb['green'])); } return $hsv; } /** * Get HSV values for color * (integer values from 0-255, fast but less accurate) * * @return int */ public function toHsvInt() { $rgb = $this->toRgbInt(); $rgbMin = min($rgb); $rgbMax = max($rgb); $hsv = array( 'hue' => 0, 'sat' => 0, 'val' => $rgbMax ); // If value is 0, color is black if ($hsv['val'] == 0) { return $hsv; } // Calculate saturation $hsv['sat'] = round(255 * ($rgbMax - $rgbMin) / $hsv['val']); if ($hsv['sat'] == 0) { $hsv['hue'] = 0; return $hsv; } // Calculate hue if ($rgbMax == $rgb['red']) { $hsv['hue'] = round(0 + 43 * ($rgb['green'] - $rgb['blue']) / ($rgbMax - $rgbMin)); } else if ($rgbMax == $rgb['green']) { $hsv['hue'] = round(85 + 43 * ($rgb['blue'] - $rgb['red']) / ($rgbMax - $rgbMin)); } else { $hsv['hue'] = round(171 + 43 * ($rgb['red'] - $rgb['green']) / ($rgbMax - $rgbMin)); } if ($hsv['hue'] < 0) { $hsv['hue'] += 255; } return $hsv; } /** * Converts an RGB color value to HSL. Conversion formula * adapted from http://en.wikipedia.org/wiki/HSL_color_space. * Assumes r, g, and b are contained in the set [0, 255] and * returns h in [0, 360], s in [0, 100], l in [0, 100] * * @return Array The HSL representation */ public function toHsl() { list( $r, $g, $b ) = array_values( $this->toRgbInt() ); $r /= 255; $g /= 255; $b /= 255; $max = max( $r, $g, $b ); $min = min( $r, $g, $b ); $h = $s = $l = ( $max + $min ) / 2; #var_dump( array( compact('max', 'min', 'r', 'g', 'b')) ); if ( $max == $min ) { $h = $s = 0; // achromatic } else { $d = $max - $min; $s = $l > 0.5 ? $d / ( 2 - $max - $min ) : $d / ( $max + $min ); switch ( $max ) { case $r: $h = ( $g - $b ) / $d + ( $g < $b ? 6 : 0 ); break; case $g: $h = ( $b - $r ) / $d + 2; break; case $b: $h = ( $r - $g ) / $d + 4; break; } $h /= 6; } $h = (int) round( $h * 360 ); $s = (int) round( $s * 100 ); $l = (int) round( $l * 100 ); return compact( 'h', 's', 'l' ); } public function toCSS( $type = 'hex', $alpha = 1 ) { switch ( $type ) { case 'hex': return $this->toString(); break; case 'rgb': case 'rgba': list( $r, $g, $b ) = array_values( $this->toRgbInt() ); if ( is_numeric( $alpha ) && $alpha < 1 ) { return "rgba( {$r}, {$g}, {$b}, $alpha )"; } else { return "rgb( {$r}, {$g}, {$b} )"; } break; case 'hsl': case 'hsla': list( $h, $s, $l ) = array_values( $this->toHsl() ); if ( is_numeric( $alpha ) && $alpha < 1 ) { return "hsla( {$h}, {$s}, {$l}, $alpha )"; } else { return "hsl( {$h}, {$s}, {$l} )"; } break; default: return $this->toString(); break; } } /** * Get current color in XYZ format * * @return array */ public function toXyz() { $rgb = $this->toRgbInt(); // Normalize RGB values to 1 $rgb_new = array(); foreach ($rgb as $item) { $rgb_new[] = $item / 255; } $rgb = $rgb_new; $rgb_new = array(); foreach ($rgb as $item) { if ($item > 0.04045) { $item = pow((($item + 0.055) / 1.055), 2.4); } else { $item = $item / 12.92; } $rgb_new[] = $item * 100; } $rgb = $rgb_new; //Observer. = 2°, Illuminant = D65 $xyz = array( 'x' => ($rgb['red'] * 0.4124) + ($rgb['green'] * 0.3576) + ($rgb['blue'] * 0.1805), 'y' => ($rgb['red'] * 0.2126) + ($rgb['green'] * 0.7152) + ($rgb['blue'] * 0.0722), 'z' => ($rgb['red'] * 0.0193) + ($rgb['green'] * 0.1192) + ($rgb['blue'] * 0.9505) ); return $xyz; } /** * Get color CIE-Lab values * * @return array */ public function toLabCie() { $xyz = $this->toXyz(); //Ovserver = 2*, Iluminant=D65 $xyz['x'] /= 95.047; $xyz['y'] /= 100; $xyz['z'] /= 108.883; $xyz_new = array(); foreach ($xyz as $item) { if ($item > 0.008856) { $xyz_new[] = pow($item, 1/3); } else { $xyz_new[] = (7.787 * $item) + (16 / 116); } } $xyz = $xyz_new; $lab = array( 'l' => (116 * $xyz['y']) - 16, 'a' => 500 * ($xyz['x'] - $xyz['y']), 'b' => 200 * ($xyz['y'] - $xyz['z']) ); return $lab; } /** * Convert color to integer * * @return int */ public function toInt() { return $this->color; } /** * Alias of toString() * * @return string */ public function __toString() { return $this->toString(); } /** * Get color as string * * @return string */ public function toString() { $str = $this->toHex(); return strtoupper("#{$str}"); } /** * Get the distance between this color and the given color * * @param Jetpack_Color $color * * @return int */ public function getDistanceRgbFrom(Jetpack_Color $color) { $rgb1 = $this->toRgbInt(); $rgb2 = $color->toRgbInt(); $rDiff = abs($rgb1['red'] - $rgb2['red']); $gDiff = abs($rgb1['green'] - $rgb2['green']); $bDiff = abs($rgb1['blue'] - $rgb2['blue']); // Sum of RGB differences $diff = $rDiff + $gDiff + $bDiff; return $diff; } /** * Get distance from the given color using the Delta E method * * @param Jetpack_Color $color * * @return float */ public function getDistanceLabFrom(Jetpack_Color $color) { $lab1 = $this->toLabCie(); $lab2 = $color->toLabCie(); $lDiff = abs($lab2['l'] - $lab1['l']); $aDiff = abs($lab2['a'] - $lab1['a']); $bDiff = abs($lab2['b'] - $lab1['b']); $delta = sqrt($lDiff + $aDiff + $bDiff); return $delta; } public function toLuminosity() { extract( $this->toRgbInt() ); return 0.2126 * pow( $red / 255, 2.2 ) + 0.7152 * pow( $green / 255, 2.2 ) + 0.0722 * pow( $blue / 255, 2.2); } /** * Get distance between colors using luminance. * Should be more than 5 for readable contrast * * @param Jetpack_Color $color Another color * @return float */ public function getDistanceLuminosityFrom(Jetpack_Color $color) { $L1 = $this->toLuminosity(); $L2 = $color->toLuminosity(); if ( $L1 > $L2 ) { return ( $L1 + 0.05 ) / ( $L2 + 0.05 ); } else{ return ( $L2 + 0.05 ) / ( $L1 + 0.05 ); } } public function getMaxContrastColor() { $lum = $this->toLuminosity(); $color = new Jetpack_Color; $hex = ( $lum >= 0.5 ) ? '000000' : 'ffffff'; return $color->fromHex( $hex ); } public function getGrayscaleContrastingColor( $contrast = false ) { if ( ! $contrast ) { return $this->getMaxContrastColor(); } // don't allow less than 5 $target_contrast = ( $contrast < 5 ) ? 5 : $contrast; $color = $this->getMaxContrastColor(); $contrast = $color->getDistanceLuminosityFrom( $this ); // if current max contrast is less than the target contrast, we had wishful thinking. if ( $contrast <= $target_contrast ) { return $color; } $incr = ( '#000000' === $color->toString() ) ? 1 : -1; while ( $contrast > $target_contrast ) { $color = $color->incrementLightness( $incr ); $contrast = $color->getDistanceLuminosityFrom( $this ); } return $color; } /** * Gets a readable contrasting color. $this is assumed to be the text and $color the background color. * @param object $bg_color A Color object that will be compared against $this * @param integer $min_contrast The minimum contrast to achieve, if possible. * @return object A Color object, an increased contrast $this compared against $bg_color */ public function getReadableContrastingColor( $bg_color = false, $min_contrast = 5 ) { if ( ! $bg_color || ! is_a( $bg_color, 'Jetpack_Color' ) ) { return $this; } // you shouldn't use less than 5, but you might want to. $target_contrast = $min_contrast; // working things $contrast = $bg_color->getDistanceLuminosityFrom( $this ); $max_contrast_color = $bg_color->getMaxContrastColor(); $max_contrast = $max_contrast_color->getDistanceLuminosityFrom( $bg_color ); // if current max contrast is less than the target contrast, we had wishful thinking. // still, go max if ( $max_contrast <= $target_contrast ) { return $max_contrast_color; } // or, we might already have sufficient contrast if ( $contrast >= $target_contrast ) { return $this; } $incr = ( 0 === $max_contrast_color->toInt() ) ? -1 : 1; while ( $contrast < $target_contrast ) { $this->incrementLightness( $incr ); $contrast = $bg_color->getDistanceLuminosityFrom( $this ); // infininite loop prevention: you never know. if ( $this->color === 0 || $this->color === 16777215 ) { break; } } return $this; } /** * Detect if color is grayscale * * @param int @threshold * * @return bool */ public function isGrayscale($threshold = 16) { $rgb = $this->toRgbInt(); // Get min and max rgb values, then difference between them $rgbMin = min($rgb); $rgbMax = max($rgb); $diff = $rgbMax - $rgbMin; return $diff < $threshold; } /** * Get the closest matching color from the given array of colors * * @param array $colors array of integers or Jetpack_Color objects * * @return mixed the array key of the matched color */ public function getClosestMatch(array $colors) { $matchDist = 10000; $matchKey = null; foreach($colors as $key => $color) { if (false === ($color instanceof Jetpack_Color)) { $c = new Jetpack_Color($color); } $dist = $this->getDistanceLabFrom($c); if ($dist < $matchDist) { $matchDist = $dist; $matchKey = $key; } } return $matchKey; } /* TRANSFORMS */ public function darken( $amount = 5 ) { return $this->incrementLightness( - $amount ); } public function lighten( $amount = 5 ) { return $this->incrementLightness( $amount ); } public function incrementLightness( $amount ) { $hsl = $this->toHsl(); extract( $hsl ); $l += $amount; if ( $l < 0 ) $l = 0; if ( $l > 100 ) $l = 100; return $this->fromHsl( $h, $s, $l ); } public function saturate( $amount = 15 ) { return $this->incrementSaturation( $amount ); } public function desaturate( $amount = 15 ) { return $this->incrementSaturation( - $amount ); } public function incrementSaturation( $amount ) { $hsl = $this->toHsl(); extract( $hsl ); $s += $amount; if ( $s < 0 ) $s = 0; if ( $s > 100 ) $s = 100; return $this->fromHsl( $h, $s, $l ); } public function toGrayscale() { $hsl = $this->toHsl(); extract( $hsl ); $s = 0; return $this->fromHsl( $h, $s, $l ); } public function getComplement() { return $this->incrementHue( 180 ); } public function getSplitComplement( $step = 1 ) { $incr = 180 + ( $step * 30 ); return $this->incrementHue( $incr ); } public function getAnalog( $step = 1 ) { $incr = $step * 30; return $this->incrementHue( $incr ); } public function getTetrad( $step = 1 ) { $incr = $step * 60; return $this->incrementHue( $incr ); } public function getTriad( $step = 1 ) { $incr = $step * 120; return $this->incrementHue( $incr ); } public function incrementHue( $amount ) { $hsl = $this->toHsl(); extract( $hsl ); $h = ( $h + $amount ) % 360; if ( $h < 0 ) $h = 360 - $h; return $this->fromHsl( $h, $s, $l ); } } // class Jetpack_Color plugins/jetpack/_inc/lib/markdown/0000755000312500031250000000000012654411246017563 5ustar eacbforgeacbforgplugins/jetpack/_inc/lib/markdown/gfm.php0000644000312500031250000002666112654411246021060 0ustar eacbforgeacbforg * @link https://github.com/evansolomon/wp-github-flavored-markdown-comments * * Add a few extras from GitHub's Markdown implementation. Must be used in a WordPress environment. */ class WPCom_GHF_Markdown_Parser extends MarkdownExtra_Parser { /** * Hooray somewhat arbitrary numbers that are fearful of 1.0.x. */ const WPCOM_GHF_MARDOWN_VERSION = '0.9.0'; /** * Use a [code] shortcode when encountering a fenced code block * @var boolean */ public $use_code_shortcode = true; /** * Preserve shortcodes, untouched by Markdown. * This requires use within a WordPress installation. * @var boolean */ public $preserve_shortcodes = true; /** * Preserve the legacy $latex your-latex-code-here$ style * LaTeX markup */ public $preserve_latex = true; /** * Preserve single-line blocks. * @var boolean */ public $preserve_inline_code_blocks = true; /** * Strip paragraphs from the output. This is the right default for WordPress, * which generally wants to create its own paragraphs with `wpautop` * @var boolean */ public $strip_paras = true; // Will run through sprintf - you can supply your own syntax if you want public $shortcode_start = '[code lang=%s]'; public $shortcode_end = '[/code]'; // Stores shortcodes we remove and then replace protected $preserve_text_hash = array(); /** * Set environment defaults based on presence of key functions/classes. */ public function __construct() { $this->use_code_shortcode = class_exists( 'SyntaxHighlighter' ); $this->preserve_shortcodes = function_exists( 'get_shortcode_regex' ); $this->preserve_latex = function_exists( 'latex_markup' ); $this->strip_paras = function_exists( 'wpautop' ); parent::__construct(); } /** * Overload to specify heading styles only if the hash has space(s) after it. This is actually in keeping with * the documentation and eases the semantic overload of the hash character. * #Will Not Produce a Heading 1 * # This Will Produce a Heading 1 * * @param string $text Markdown text * @return string HTML-transformed text */ public function transform( $text ) { // Preserve anything inside a single-line element if ( $this->preserve_inline_code_blocks ) { $text = $this->single_line_code_preserve( $text ); } // Remove all shortcodes so their interiors are left intact if ( $this->preserve_shortcodes ) { $text = $this->shortcode_preserve( $text ); } // Remove legacy LaTeX so it's left intact if ( $this->preserve_latex ) { $text = $this->latex_preserve( $text ); } // escape line-beginning # chars that do not have a space after them. $text = preg_replace_callback( '|^#{1,6}( )?|um', array( $this, '_doEscapeForHashWithoutSpacing' ), $text ); // run through core Markdown $text = parent::transform( $text ); // Occasionally Markdown Extra chokes on a para structure, producing odd paragraphs. $text = str_replace( "

        <

        \n\n

        p>", '

        ', $text ); // put start-of-line # chars back in place $text = $this->restore_leading_hash( $text ); // Strip paras if set if ( $this->strip_paras ) { $text = $this->unp( $text ); } // Restore preserved things like shortcodes/LaTeX $text = $this->do_restore( $text ); return $text; } /** * Prevents blocks like __this__ from turning into this * @param string $text Text that may need preserving * @return string Text that was preserved if needed */ public function single_line_code_preserve( $text ) { return preg_replace_callback( '|]*>(.*?)|', array( $this, 'do_single_line_code_preserve' ), $text ); } /** * Regex callback for inline code presevation * @param array $matches Regex matches * @return string Hashed content for later restoration */ public function do_single_line_code_preserve( $matches ) { return '' . $this->hash_block( $matches[1] ) . ''; } /** * Preserve code block contents by HTML encoding them. Useful before getting to KSES stripping. * @param string $text Markdown/HTML content * @return string Markdown/HTML content with escaped code blocks */ public function codeblock_preserve( $text ) { return preg_replace_callback( "/^([`~]{3})([^`\n]+)?\n([^`~]+)(\\1)/m", array( $this, 'do_codeblock_preserve' ), $text ); } /** * Regex callback for code block preservation. * @param array $matches Regex matches * @return string Codeblock with escaped interior */ public function do_codeblock_preserve( $matches ) { $block = stripslashes( $matches[3] ); $block = esc_html( $block ); $block = str_replace( '\\', '\\\\', $block ); $open = $matches[1] . $matches[2] . "\n"; return $open . $block . $matches[4]; } /** * Restore previously preserved (i.e. escaped) code block contents. * @param string $text Markdown/HTML content with escaped code blocks * @return string Markdown/HTML content */ public function codeblock_restore( $text ) { return preg_replace_callback( "/^([`~]{3})([^`\n]+)?\n([^`~]+)(\\1)/m", array( $this, 'do_codeblock_restore' ), $text ); } /** * Regex callback for code block restoration (unescaping). * @param array $matches Regex matches * @return string Codeblock with unescaped interior */ public function do_codeblock_restore( $matches ) { $block = html_entity_decode( $matches[3], ENT_QUOTES ); $open = $matches[1] . $matches[2] . "\n"; return $open . $block . $matches[4]; } /** * Called to preserve legacy LaTeX like $latex some-latex-text $ * @param string $text Text in which to preserve LaTeX * @return string Text with LaTeX replaced by a hash that will be restored later */ protected function latex_preserve( $text ) { // regex from latex_remove() $regex = '% \$latex(?:=\s*|\s+) ((?: [^$]+ # Not a dollar | (?<=(?get_shortcode_regex(), array( $this, '_doRemoveText' ), $text ); return $text; } /** * Restores any text preserved by $this->hash_block() * @param string $text Text that may have hashed preservation placeholders * @return string Text with hashed preseravtion placeholders replaced by original text */ protected function do_restore( $text ) { foreach( $this->preserve_text_hash as $hash => $value ) { $placeholder = $this->hash_maker( $hash ); $text = str_replace( $placeholder, $value, $text ); } // reset the hash $this->preserve_text_hash = array(); return $text; } /** * Regex callback for text preservation * @param array $m Regex $matches array * @return string A placeholder that will later be replaced by the original text */ protected function _doRemoveText( $m ) { return $this->hash_block( $m[0] ); } /** * Call this to store a text block for later restoration. * @param string $text Text to preserve for later * @return string Placeholder that will be swapped out later for the original text */ protected function hash_block( $text ) { $hash = md5( $text ); $this->preserve_text_hash[ $hash ] = $text; $placeholder = $this->hash_maker( $hash ); return $placeholder; } /** * Less glamorous than the Keymaker * @param string $hash An md5 hash * @return string A placeholder hash */ protected function hash_maker( $hash ) { return 'MARKDOWN_HASH' . $hash . 'MARKDOWN_HASH'; } /** * Remove bare

        elements.

        s with attributes will be preserved. * @param string $text HTML content * @return string

        -less content */ public function unp( $text ) { return preg_replace( "#

        (.*?)

        (\n|$)#ums", '$1$2', $text ); } /** * A regex of all shortcodes currently registered by the current * WordPress installation * @uses get_shortcode_regex() * @return string A regex for grabbing shortcodes. */ protected function get_shortcode_regex() { $pattern = get_shortcode_regex(); // don't match markdown link anchors that could be mistaken for shortcodes. $pattern .= '(?!\()'; return "/$pattern/s"; } /** * Since we escape unspaced #Headings, put things back later. * @param string $text text with a leading escaped hash * @return string text with leading hashes unescaped */ protected function restore_leading_hash( $text ) { return preg_replace( "/^(

        )?(#|\\\\#)/um", "$1#", $text ); } /** * Overload to support ```-fenced code blocks for pre-Markdown Extra 1.2.8 * https://help.github.com/articles/github-flavored-markdown#fenced-code-blocks */ public function doFencedCodeBlocks( $text ) { // If we're at least at 1.2.8, native fenced code blocks are in. // Below is just copied from it in case we somehow got loaded on // top of someone else's Markdown Extra if ( version_compare( MARKDOWNEXTRA_VERSION, '1.2.8', '>=' ) ) return parent::doFencedCodeBlocks( $text ); # # Adding the fenced code block syntax to regular Markdown: # # ~~~ # Code block # ~~~ # $less_than_tab = $this->tab_width; $text = preg_replace_callback('{ (?:\n|\A) # 1: Opening marker ( (?:~{3,}|`{3,}) # 3 or more tildes/backticks. ) [ ]* (?: \.?([-_:a-zA-Z0-9]+) # 2: standalone class name | '.$this->id_class_attr_catch_re.' # 3: Extra attributes )? [ ]* \n # Whitespace and newline following marker. # 4: Content ( (?> (?!\1 [ ]* \n) # Not a closing marker. .*\n+ )+ ) # Closing marker. \1 [ ]* (?= \n ) }xm', array($this, '_doFencedCodeBlocks_callback'), $text); return $text; } /** * Callback for pre-processing start of line hashes to slyly escape headings that don't * have a leading space * @param array $m preg_match matches * @return string possibly escaped start of line hash */ public function _doEscapeForHashWithoutSpacing( $m ) { if ( ! isset( $m[1] ) ) $m[0] = '\\' . $m[0]; return $m[0]; } /** * Overload to support Viper's [code] shortcode. Because awesome. */ public function _doFencedCodeBlocks_callback( $matches ) { // in case we have some escaped leading hashes right at the start of the block $matches[4] = $this->restore_leading_hash( $matches[4] ); // just MarkdownExtra_Parser if we're not going ultra-deluxe if ( ! $this->use_code_shortcode ) { return parent::_doFencedCodeBlocks_callback( $matches ); } // default to a "text" class if one wasn't passed. Helps with encoding issues later. if ( empty( $matches[2] ) ) { $matches[2] = 'text'; } $classname =& $matches[2]; $codeblock = preg_replace_callback('/^\n+/', array( $this, '_doFencedCodeBlocks_newlines' ), $matches[4] ); if ( $classname{0} == '.' ) $classname = substr( $classname, 1 ); $codeblock = esc_html( $codeblock ); $codeblock = sprintf( $this->shortcode_start, $classname ) . "\n{$codeblock}" . $this->shortcode_end; return "\n\n" . $this->hashBlock( $codeblock ). "\n\n"; } } plugins/jetpack/_inc/lib/markdown/extra.php0000644000312500031250000025734012654411246021432 0ustar eacbforgeacbforg # # Original Markdown # Copyright (c) 2004-2006 John Gruber # # # Tweaked to remove WordPress interface define( 'MARKDOWN_VERSION', "1.0.2" ); # 29 Nov 2013 define( 'MARKDOWNEXTRA_VERSION', "1.2.8" ); # 29 Nov 2013 # # Global default settings: # # Change to ">" for HTML output @define( 'MARKDOWN_EMPTY_ELEMENT_SUFFIX', " />"); # Define the width of a tab for code blocks. @define( 'MARKDOWN_TAB_WIDTH', 4 ); # Optional title attribute for footnote links and backlinks. @define( 'MARKDOWN_FN_LINK_TITLE', "" ); @define( 'MARKDOWN_FN_BACKLINK_TITLE', "" ); # Optional class attribute for footnote links and backlinks. @define( 'MARKDOWN_FN_LINK_CLASS', "" ); @define( 'MARKDOWN_FN_BACKLINK_CLASS', "" ); # Optional class prefix for fenced code block. @define( 'MARKDOWN_CODE_CLASS_PREFIX', "" ); # Class attribute for code blocks goes on the `code` tag; # setting this to true will put attributes on the `pre` tag instead. @define( 'MARKDOWN_CODE_ATTR_ON_PRE', false ); ### Standard Function Interface ### @define( 'MARKDOWN_PARSER_CLASS', 'MarkdownExtra_Parser' ); function Markdown($text) { # # Initialize the parser and return the result of its transform method. # # Setup static parser variable. static $parser; if (!isset($parser)) { $parser_class = MARKDOWN_PARSER_CLASS; $parser = new $parser_class; } # Transform text using parser. return $parser->transform($text); } # # Markdown Parser Class # class Markdown_Parser { ### Configuration Variables ### # Change to ">" for HTML output. public $empty_element_suffix = MARKDOWN_EMPTY_ELEMENT_SUFFIX; public $tab_width = MARKDOWN_TAB_WIDTH; # Change to `true` to disallow markup or entities. public $no_markup = false; public $no_entities = false; # Predefined urls and titles for reference links and images. public $predef_urls = array(); public $predef_titles = array(); ### Parser Implementation ### # Regex to match balanced [brackets]. # Needed to insert a maximum bracked depth while converting to PHP. public $nested_brackets_depth = 6; public $nested_brackets_re; public $nested_url_parenthesis_depth = 4; public $nested_url_parenthesis_re; # Table of hash values for escaped characters: public $escape_chars = '\`*_{}[]()>#+-.!'; public $escape_chars_re; function __construct() { # # Constructor function. Initialize appropriate member variables. # $this->_initDetab(); $this->prepareItalicsAndBold(); $this->nested_brackets_re = str_repeat('(?>[^\[\]]+|\[', $this->nested_brackets_depth). str_repeat('\])*', $this->nested_brackets_depth); $this->nested_url_parenthesis_re = str_repeat('(?>[^()\s]+|\(', $this->nested_url_parenthesis_depth). str_repeat('(?>\)))*', $this->nested_url_parenthesis_depth); $this->escape_chars_re = '['.preg_quote($this->escape_chars).']'; # Sort document, block, and span gamut in ascendent priority order. asort($this->document_gamut); asort($this->block_gamut); asort($this->span_gamut); } # Internal hashes used during transformation. public $urls = array(); public $titles = array(); public $html_hashes = array(); # Status flag to avoid invalid nesting. public $in_anchor = false; function setup() { # # Called before the transformation process starts to setup parser # states. # # Clear global hashes. $this->urls = $this->predef_urls; $this->titles = $this->predef_titles; $this->html_hashes = array(); $this->in_anchor = false; } function teardown() { # # Called after the transformation process to clear any variable # which may be taking up memory unnecessarly. # $this->urls = array(); $this->titles = array(); $this->html_hashes = array(); } function transform($text) { # # Main function. Performs some preprocessing on the input text # and pass it through the document gamut. # $this->setup(); # Remove UTF-8 BOM and marker character in input, if present. $text = preg_replace('{^\xEF\xBB\xBF|\x1A}', '', $text); # Standardize line endings: # DOS to Unix and Mac to Unix $text = preg_replace('{\r\n?}', "\n", $text); # Make sure $text ends with a couple of newlines: $text .= "\n\n"; # Convert all tabs to spaces. $text = $this->detab($text); # Turn block-level HTML blocks into hash entries $text = $this->hashHTMLBlocks($text); # Strip any lines consisting only of spaces and tabs. # This makes subsequent regexen easier to write, because we can # match consecutive blank lines with /\n+/ instead of something # contorted like /[ ]*\n+/ . $text = preg_replace('/^[ ]+$/m', '', $text); # Run document gamut methods. foreach ($this->document_gamut as $method => $priority) { $text = $this->$method($text); } $this->teardown(); return $text . "\n"; } public $document_gamut = array( # Strip link definitions, store in hashes. "stripLinkDefinitions" => 20, "runBasicBlockGamut" => 30, ); function stripLinkDefinitions($text) { # # Strips link definitions from text, stores the URLs and titles in # hash references. # $less_than_tab = $this->tab_width - 1; # Link defs are in the form: ^[id]: url "optional title" $text = preg_replace_callback('{ ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1 [ ]* \n? # maybe *one* newline [ ]* (?: <(.+?)> # url = $2 | (\S+?) # url = $3 ) [ ]* \n? # maybe one newline [ ]* (?: (?<=\s) # lookbehind for whitespace ["(] (.*?) # title = $4 [")] [ ]* )? # title is optional (?:\n+|\Z) }xm', array(&$this, '_stripLinkDefinitions_callback'), $text); return $text; } function _stripLinkDefinitions_callback($matches) { $link_id = strtolower($matches[1]); $url = $matches[2] == '' ? $matches[3] : $matches[2]; $this->urls[$link_id] = $url; $this->titles[$link_id] =& $matches[4]; return ''; # String that will replace the block } function hashHTMLBlocks($text) { if ($this->no_markup) return $text; $less_than_tab = $this->tab_width - 1; # Hashify HTML blocks: # We only want to do this for block-level HTML tags, such as headers, # lists, and tables. That's because we still want to wrap

        s around # "paragraphs" that are wrapped in non-block-level tags, such as anchors, # phrase emphasis, and spans. The list of tags we're looking for is # hard-coded: # # * List "a" is made of tags which can be both inline or block-level. # These will be treated block-level when the start tag is alone on # its line, otherwise they're not matched here and will be taken as # inline later. # * List "b" is made of tags which are always block-level; # $block_tags_a_re = 'ins|del'; $block_tags_b_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|'. 'script|noscript|form|fieldset|iframe|math|svg|'. 'article|section|nav|aside|hgroup|header|footer|'. 'figure'; # Regular expression for the content of a block tag. $nested_tags_level = 4; $attr = ' (?> # optional tag attributes \s # starts with whitespace (?> [^>"/]+ # text outside quotes | /+(?!>) # slash not followed by ">" | "[^"]*" # text inside double quotes (tolerate ">") | \'[^\']*\' # text inside single quotes (tolerate ">") )* )? '; $content = str_repeat(' (?> [^<]+ # content without tag | <\2 # nested opening tag '.$attr.' # attributes (?> /> | >', $nested_tags_level). # end of opening tag '.*?'. # last level nested tag content str_repeat(' # closing nested tag ) | <(?!/\2\s*> # other tags with a different name ) )*', $nested_tags_level); $content2 = str_replace('\2', '\3', $content); # First, look for nested blocks, e.g.: #

        #
        # tags for inner block must be indented. #
        #
        # # The outermost tags must start at the left margin for this to match, and # the inner nested divs must be indented. # We need to do this before the next, more liberal match, because the next # match will start at the first `
        ` and stop at the first `
        `. $text = preg_replace_callback('{(?> (?> (?<=\n\n) # Starting after a blank line | # or \A\n? # the beginning of the doc ) ( # save in $1 # Match from `\n` to `\n`, handling nested tags # in between. [ ]{0,'.$less_than_tab.'} <('.$block_tags_b_re.')# start tag = $2 '.$attr.'> # attributes followed by > and \n '.$content.' # content, support nesting # the matching end tag [ ]* # trailing spaces/tabs (?=\n+|\Z) # followed by a newline or end of document | # Special version for tags of group a. [ ]{0,'.$less_than_tab.'} <('.$block_tags_a_re.')# start tag = $3 '.$attr.'>[ ]*\n # attributes followed by > '.$content2.' # content, support nesting # the matching end tag [ ]* # trailing spaces/tabs (?=\n+|\Z) # followed by a newline or end of document | # Special case just for
        . It was easier to make a special # case than to make the other regex more complicated. [ ]{0,'.$less_than_tab.'} <(hr) # start tag = $2 '.$attr.' # attributes /?> # the matching end tag [ ]* (?=\n{2,}|\Z) # followed by a blank line or end of document | # Special case for standalone HTML comments: [ ]{0,'.$less_than_tab.'} (?s: ) [ ]* (?=\n{2,}|\Z) # followed by a blank line or end of document | # PHP and ASP-style processor instructions ( ) [ ]* (?=\n{2,}|\Z) # followed by a blank line or end of document ) )}Sxmi', array(&$this, '_hashHTMLBlocks_callback'), $text); return $text; } function _hashHTMLBlocks_callback($matches) { $text = $matches[1]; $key = $this->hashBlock($text); return "\n\n$key\n\n"; } function hashPart($text, $boundary = 'X') { # # Called whenever a tag must be hashed when a function insert an atomic # element in the text stream. Passing $text to through this function gives # a unique text-token which will be reverted back when calling unhash. # # The $boundary argument specify what character should be used to surround # the token. By convension, "B" is used for block elements that needs not # to be wrapped into paragraph tags at the end, ":" is used for elements # that are word separators and "X" is used in the general case. # # Swap back any tag hash found in $text so we do not have to `unhash` # multiple times at the end. $text = $this->unhash($text); # Then hash the block. static $i = 0; $key = "$boundary\x1A" . ++$i . $boundary; $this->html_hashes[$key] = $text; return $key; # String that will replace the tag. } function hashBlock($text) { # # Shortcut function for hashPart with block-level boundaries. # return $this->hashPart($text, 'B'); } public $block_gamut = array( # # These are all the transformations that form block-level # tags like paragraphs, headers, and list items. # "doHeaders" => 10, "doHorizontalRules" => 20, "doLists" => 40, "doCodeBlocks" => 50, "doBlockQuotes" => 60, ); function runBlockGamut($text) { # # Run block gamut tranformations. # # We need to escape raw HTML in Markdown source before doing anything # else. This need to be done for each block, and not only at the # beginning in the Markdown function since hashed blocks can be part of # list items and could have been indented. Indented blocks would have # been seen as a code block in a previous pass of hashHTMLBlocks. $text = $this->hashHTMLBlocks($text); return $this->runBasicBlockGamut($text); } function runBasicBlockGamut($text) { # # Run block gamut tranformations, without hashing HTML blocks. This is # useful when HTML blocks are known to be already hashed, like in the first # whole-document pass. # foreach ($this->block_gamut as $method => $priority) { $text = $this->$method($text); } # Finally form paragraph and restore hashed blocks. $text = $this->formParagraphs($text); return $text; } function doHorizontalRules($text) { # Do Horizontal Rules: return preg_replace( '{ ^[ ]{0,3} # Leading space ([-*_]) # $1: First marker (?> # Repeated marker group [ ]{0,2} # Zero, one, or two spaces. \1 # Marker character ){2,} # Group repeated at least twice [ ]* # Tailing spaces $ # End of line. }mx', "\n".$this->hashBlock("empty_element_suffix")."\n", $text); } public $span_gamut = array( # # These are all the transformations that occur *within* block-level # tags like paragraphs, headers, and list items. # # Process character escapes, code spans, and inline HTML # in one shot. "parseSpan" => -30, # Process anchor and image tags. Images must come first, # because ![foo][f] looks like an anchor. "doImages" => 10, "doAnchors" => 20, # Make links out of things like `` # Must come after doAnchors, because you can use < and > # delimiters in inline links like [this](). "doAutoLinks" => 30, "encodeAmpsAndAngles" => 40, "doItalicsAndBold" => 50, "doHardBreaks" => 60, ); function runSpanGamut($text) { # # Run span gamut tranformations. # foreach ($this->span_gamut as $method => $priority) { $text = $this->$method($text); } return $text; } function doHardBreaks($text) { # Do hard breaks: return preg_replace_callback('/ {2,}\n/', array(&$this, '_doHardBreaks_callback'), $text); } function _doHardBreaks_callback($matches) { return $this->hashPart("empty_element_suffix\n"); } function doAnchors($text) { # # Turn Markdown link shortcuts into XHTML tags. # if ($this->in_anchor) return $text; $this->in_anchor = true; # # First, handle reference-style links: [link text] [id] # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ('.$this->nested_brackets_re.') # link text = $2 \] [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[ (.*?) # id = $3 \] ) }xs', array(&$this, '_doAnchors_reference_callback'), $text); # # Next, inline-style links: [link text](url "optional title") # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ('.$this->nested_brackets_re.') # link text = $2 \] \( # literal paren [ \n]* (?: <(.+?)> # href = $3 | ('.$this->nested_url_parenthesis_re.') # href = $4 ) [ \n]* ( # $5 ([\'"]) # quote char = $6 (.*?) # Title = $7 \6 # matching quote [ \n]* # ignore any spaces/tabs between closing quote and ) )? # title is optional \) ) }xs', array(&$this, '_doAnchors_inline_callback'), $text); # # Last, handle reference-style shortcuts: [link text] # These must come last in case you've also got [link text][1] # or [link text](/foo) # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ([^\[\]]+) # link text = $2; can\'t contain [ or ] \] ) }xs', array(&$this, '_doAnchors_reference_callback'), $text); $this->in_anchor = false; return $text; } function _doAnchors_reference_callback($matches) { $whole_match = $matches[1]; $link_text = $matches[2]; $link_id =& $matches[3]; if ($link_id == "") { # for shortcut links like [this][] or [this]. $link_id = $link_text; } # lower-case and turn embedded newlines into spaces $link_id = strtolower($link_id); $link_id = preg_replace('{[ ]?\n}', ' ', $link_id); if (isset($this->urls[$link_id])) { $url = $this->urls[$link_id]; $url = $this->encodeAttribute($url); $result = "titles[$link_id] ) ) { $title = $this->titles[$link_id]; $title = $this->encodeAttribute($title); $result .= " title=\"$title\""; } $link_text = $this->runSpanGamut($link_text); $result .= ">$link_text"; $result = $this->hashPart($result); } else { $result = $whole_match; } return $result; } function _doAnchors_inline_callback($matches) { $whole_match = $matches[1]; $link_text = $this->runSpanGamut($matches[2]); $url = $matches[3] == '' ? $matches[4] : $matches[3]; $title =& $matches[7]; $url = $this->encodeAttribute($url); $result = "encodeAttribute($title); $result .= " title=\"$title\""; } $link_text = $this->runSpanGamut($link_text); $result .= ">$link_text"; return $this->hashPart($result); } function doImages($text) { # # Turn Markdown image shortcuts into tags. # # # First, handle reference-style labeled images: ![alt text][id] # $text = preg_replace_callback('{ ( # wrap whole match in $1 !\[ ('.$this->nested_brackets_re.') # alt text = $2 \] [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[ (.*?) # id = $3 \] ) }xs', array(&$this, '_doImages_reference_callback'), $text); # # Next, handle inline images: ![alt text](url "optional title") # Don't forget: encode * and _ # $text = preg_replace_callback('{ ( # wrap whole match in $1 !\[ ('.$this->nested_brackets_re.') # alt text = $2 \] \s? # One optional whitespace character \( # literal paren [ \n]* (?: <(\S*)> # src url = $3 | ('.$this->nested_url_parenthesis_re.') # src url = $4 ) [ \n]* ( # $5 ([\'"]) # quote char = $6 (.*?) # title = $7 \6 # matching quote [ \n]* )? # title is optional \) ) }xs', array(&$this, '_doImages_inline_callback'), $text); return $text; } function _doImages_reference_callback($matches) { $whole_match = $matches[1]; $alt_text = $matches[2]; $link_id = strtolower($matches[3]); if ($link_id == "") { $link_id = strtolower($alt_text); # for shortcut links like ![this][]. } $alt_text = $this->encodeAttribute($alt_text); if (isset($this->urls[$link_id])) { $url = $this->encodeAttribute($this->urls[$link_id]); $result = "\"$alt_text\"";titles[$link_id])) { $title = $this->titles[$link_id]; $title = $this->encodeAttribute($title); $result .= " title=\"$title\""; } $result .= $this->empty_element_suffix; $result = $this->hashPart($result); } else { # If there's no such link ID, leave intact: $result = $whole_match; } return $result; } function _doImages_inline_callback($matches) { $whole_match = $matches[1]; $alt_text = $matches[2]; $url = $matches[3] == '' ? $matches[4] : $matches[3]; $title =& $matches[7]; $alt_text = $this->encodeAttribute($alt_text); $url = $this->encodeAttribute($url); $result = "\"$alt_text\"";encodeAttribute($title); $result .= " title=\"$title\""; # $title already quoted } $result .= $this->empty_element_suffix; return $this->hashPart($result); } function doHeaders($text) { # Setext-style headers: # Header 1 # ======== # # Header 2 # -------- # $text = preg_replace_callback('{ ^(.+?)[ ]*\n(=+|-+)[ ]*\n+ }mx', array(&$this, '_doHeaders_callback_setext'), $text); # atx-style headers: # # Header 1 # ## Header 2 # ## Header 2 with closing hashes ## # ... # ###### Header 6 # $text = preg_replace_callback('{ ^(\#{1,6}) # $1 = string of #\'s [ ]* (.+?) # $2 = Header text [ ]* \#* # optional closing #\'s (not counted) \n+ }xm', array(&$this, '_doHeaders_callback_atx'), $text); return $text; } function _doHeaders_callback_setext($matches) { # Terrible hack to check we haven't found an empty list item. if ($matches[2] == '-' && preg_match('{^-(?: |$)}', $matches[1])) return $matches[0]; $level = $matches[2]{0} == '=' ? 1 : 2; $block = "".$this->runSpanGamut($matches[1]).""; return "\n" . $this->hashBlock($block) . "\n\n"; } function _doHeaders_callback_atx($matches) { $level = strlen($matches[1]); $block = "".$this->runSpanGamut($matches[2]).""; return "\n" . $this->hashBlock($block) . "\n\n"; } function doLists($text) { # # Form HTML ordered (numbered) and unordered (bulleted) lists. # $less_than_tab = $this->tab_width - 1; # Re-usable patterns to match list item bullets and number markers: $marker_ul_re = '[*+-]'; $marker_ol_re = '\d+[\.]'; $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)"; $markers_relist = array( $marker_ul_re => $marker_ol_re, $marker_ol_re => $marker_ul_re, ); foreach ($markers_relist as $marker_re => $other_marker_re) { # Re-usable pattern to match any entirel ul or ol list: $whole_list_re = ' ( # $1 = whole list ( # $2 ([ ]{0,'.$less_than_tab.'}) # $3 = number of spaces ('.$marker_re.') # $4 = first list item marker [ ]+ ) (?s:.+?) ( # $5 \z | \n{2,} (?=\S) (?! # Negative lookahead for another list item marker [ ]* '.$marker_re.'[ ]+ ) | (?= # Lookahead for another kind of list \n \3 # Must have the same indentation '.$other_marker_re.'[ ]+ ) ) ) '; // mx # We use a different prefix before nested lists than top-level lists. # See extended comment in _ProcessListItems(). if ($this->list_level) { $text = preg_replace_callback('{ ^ '.$whole_list_re.' }mx', array(&$this, '_doLists_callback'), $text); } else { $text = preg_replace_callback('{ (?:(?<=\n)\n|\A\n?) # Must eat the newline '.$whole_list_re.' }mx', array(&$this, '_doLists_callback'), $text); } } return $text; } function _doLists_callback($matches) { # Re-usable patterns to match list item bullets and number markers: $marker_ul_re = '[*+-]'; $marker_ol_re = '\d+[\.]'; $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)"; $list = $matches[1]; $list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol"; $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re ); $list .= "\n"; $result = $this->processListItems($list, $marker_any_re); $result = $this->hashBlock("<$list_type>\n" . $result . ""); return "\n". $result ."\n\n"; } public $list_level = 0; function processListItems($list_str, $marker_any_re) { # # Process the contents of a single ordered or unordered list, splitting it # into individual list items. # # The $this->list_level global keeps track of when we're inside a list. # Each time we enter a list, we increment it; when we leave a list, # we decrement. If it's zero, we're not in a list anymore. # # We do this because when we're not inside a list, we want to treat # something like this: # # I recommend upgrading to version # 8. Oops, now this line is treated # as a sub-list. # # As a single paragraph, despite the fact that the second line starts # with a digit-period-space sequence. # # Whereas when we're inside a list (or sub-list), that line will be # treated as the start of a sub-list. What a kludge, huh? This is # an aspect of Markdown's syntax that's hard to parse perfectly # without resorting to mind-reading. Perhaps the solution is to # change the syntax rules such that sub-lists must start with a # starting cardinal number; e.g. "1." or "a.". $this->list_level++; # trim trailing blank lines: $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str); $list_str = preg_replace_callback('{ (\n)? # leading line = $1 (^[ ]*) # leading whitespace = $2 ('.$marker_any_re.' # list marker and space = $3 (?:[ ]+|(?=\n)) # space only required if item is not empty ) ((?s:.*?)) # list item text = $4 (?:(\n+(?=\n))|\n) # tailing blank line = $5 (?= \n* (\z | \2 ('.$marker_any_re.') (?:[ ]+|(?=\n)))) }xm', array(&$this, '_processListItems_callback'), $list_str); $this->list_level--; return $list_str; } function _processListItems_callback($matches) { $item = $matches[4]; $leading_line =& $matches[1]; $leading_space =& $matches[2]; $marker_space = $matches[3]; $tailing_blank_line =& $matches[5]; if ($leading_line || $tailing_blank_line || preg_match('/\n{2,}/', $item)) { # Replace marker with the appropriate whitespace indentation $item = $leading_space . str_repeat(' ', strlen($marker_space)) . $item; $item = $this->runBlockGamut($this->outdent($item)."\n"); } else { # Recursion for sub-lists: $item = $this->doLists($this->outdent($item)); $item = preg_replace('/\n+$/', '', $item); $item = $this->runSpanGamut($item); } return "
      • " . $item . "
      • \n"; } function doCodeBlocks($text) { # # Process Markdown `
        ` blocks.
        	#
        		$text = preg_replace_callback('{
        				(?:\n\n|\A\n?)
        				(	            # $1 = the code block -- one or more lines, starting with a space/tab
        				  (?>
        					[ ]{'.$this->tab_width.'}  # Lines must start with a tab or a tab-width of spaces
        					.*\n+
        				  )+
        				)
        				((?=^[ ]{0,'.$this->tab_width.'}\S)|\Z)	# Lookahead for non-space at line-start, or end of doc
        			}xm',
        			array(&$this, '_doCodeBlocks_callback'), $text);
        
        		return $text;
        	}
        	function _doCodeBlocks_callback($matches) {
        		$codeblock = $matches[1];
        
        		$codeblock = $this->outdent($codeblock);
        		$codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES);
        
        		# trim leading newlines and trailing newlines
        		$codeblock = preg_replace('/\A\n+|\n+\z/', '', $codeblock);
        
        		$codeblock = "
        $codeblock\n
        "; return "\n\n".$this->hashBlock($codeblock)."\n\n"; } function makeCodeSpan($code) { # # Create a code span markup for $code. Called from handleSpanToken. # $code = htmlspecialchars(trim($code), ENT_NOQUOTES); return $this->hashPart("$code"); } public $em_relist = array( '' => '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(?em_relist as $em => $em_re) { foreach ($this->strong_relist as $strong => $strong_re) { # Construct list of allowed token expressions. $token_relist = array(); if (isset($this->em_strong_relist["$em$strong"])) { $token_relist[] = $this->em_strong_relist["$em$strong"]; } $token_relist[] = $em_re; $token_relist[] = $strong_re; # Construct master expression from list. $token_re = '{('. implode('|', $token_relist) .')}'; $this->em_strong_prepared_relist["$em$strong"] = $token_re; } } } function doItalicsAndBold($text) { $token_stack = array(''); $text_stack = array(''); $em = ''; $strong = ''; $tree_char_em = false; while (1) { # # Get prepared regular expression for seraching emphasis tokens # in current context. # $token_re = $this->em_strong_prepared_relist["$em$strong"]; # # Each loop iteration search for the next emphasis token. # Each token is then passed to handleSpanToken. # $parts = preg_split($token_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); $text_stack[0] .= $parts[0]; $token =& $parts[1]; $text =& $parts[2]; if (empty($token)) { # Reached end of text span: empty stack without emitting. # any more emphasis. while ($token_stack[0]) { $text_stack[1] .= array_shift($token_stack); $text_stack[0] .= array_shift($text_stack); } break; } $token_len = strlen($token); if ($tree_char_em) { # Reached closing marker while inside a three-char emphasis. if ($token_len == 3) { # Three-char closing marker, close em and strong. array_shift($token_stack); $span = array_shift($text_stack); $span = $this->runSpanGamut($span); $span = "$span"; $text_stack[0] .= $this->hashPart($span); $em = ''; $strong = ''; } else { # Other closing marker: close one em or strong and # change current token state to match the other $token_stack[0] = str_repeat($token{0}, 3-$token_len); $tag = $token_len == 2 ? "strong" : "em"; $span = $text_stack[0]; $span = $this->runSpanGamut($span); $span = "<$tag>$span"; $text_stack[0] = $this->hashPart($span); $$tag = ''; # $$tag stands for $em or $strong } $tree_char_em = false; } else if ($token_len == 3) { if ($em) { # Reached closing marker for both em and strong. # Closing strong marker: for ($i = 0; $i < 2; ++$i) { $shifted_token = array_shift($token_stack); $tag = strlen($shifted_token) == 2 ? "strong" : "em"; $span = array_shift($text_stack); $span = $this->runSpanGamut($span); $span = "<$tag>$span"; $text_stack[0] .= $this->hashPart($span); $$tag = ''; # $$tag stands for $em or $strong } } else { # Reached opening three-char emphasis marker. Push on token # stack; will be handled by the special condition above. $em = $token{0}; $strong = "$em$em"; array_unshift($token_stack, $token); array_unshift($text_stack, ''); $tree_char_em = true; } } else if ($token_len == 2) { if ($strong) { # Unwind any dangling emphasis marker: if (strlen($token_stack[0]) == 1) { $text_stack[1] .= array_shift($token_stack); $text_stack[0] .= array_shift($text_stack); } # Closing strong marker: array_shift($token_stack); $span = array_shift($text_stack); $span = $this->runSpanGamut($span); $span = "$span"; $text_stack[0] .= $this->hashPart($span); $strong = ''; } else { array_unshift($token_stack, $token); array_unshift($text_stack, ''); $strong = $token; } } else { # Here $token_len == 1 if ($em) { if (strlen($token_stack[0]) == 1) { # Closing emphasis marker: array_shift($token_stack); $span = array_shift($text_stack); $span = $this->runSpanGamut($span); $span = "$span"; $text_stack[0] .= $this->hashPart($span); $em = ''; } else { $text_stack[0] .= $token; } } else { array_unshift($token_stack, $token); array_unshift($text_stack, ''); $em = $token; } } } return $text_stack[0]; } function doBlockQuotes($text) { $text = preg_replace_callback('/ ( # Wrap whole match in $1 (?> ^[ ]*>[ ]? # ">" at the start of a line .+\n # rest of the first line (.+\n)* # subsequent consecutive lines \n* # blanks )+ ) /xm', array(&$this, '_doBlockQuotes_callback'), $text); return $text; } function _doBlockQuotes_callback($matches) { $bq = $matches[1]; # trim one level of quoting - trim whitespace-only lines $bq = preg_replace('/^[ ]*>[ ]?|^[ ]+$/m', '', $bq); $bq = $this->runBlockGamut($bq); # recurse $bq = preg_replace('/^/m', " ", $bq); # These leading spaces cause problem with
         content,
        		# so we need to fix that:
        		$bq = preg_replace_callback('{(\s*
        .+?
        )}sx', array(&$this, '_doBlockQuotes_callback2'), $bq); return "\n". $this->hashBlock("
        \n$bq\n
        ")."\n\n"; } function _doBlockQuotes_callback2($matches) { $pre = $matches[1]; $pre = preg_replace('/^ /m', '', $pre); return $pre; } function formParagraphs($text) { # # Params: # $text - string to process with html

        tags # # Strip leading and trailing lines: $text = preg_replace('/\A\n+|\n+\z/', '', $text); $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY); # # Wrap

        tags and unhashify HTML blocks # foreach ($grafs as $key => $value) { if (!preg_match('/^B\x1A[0-9]+B$/', $value)) { # Is a paragraph. $value = $this->runSpanGamut($value); $value = preg_replace('/^([ ]*)/', "

        ", $value); $value .= "

        "; $grafs[$key] = $this->unhash($value); } else { # Is a block. # Modify elements of @grafs in-place... $graf = $value; $block = $this->html_hashes[$graf]; $graf = $block; // if (preg_match('{ // \A // ( # $1 =
        tag //
        ]* // \b // markdown\s*=\s* ([\'"]) # $2 = attr quote char // 1 // \2 // [^>]* // > // ) // ( # $3 = contents // .* // ) // (
        ) # $4 = closing tag // \z // }xs', $block, $matches)) // { // list(, $div_open, , $div_content, $div_close) = $matches; // // # We can't call Markdown(), because that resets the hash; // # that initialization code should be pulled into its own sub, though. // $div_content = $this->hashHTMLBlocks($div_content); // // # Run document gamut methods on the content. // foreach ($this->document_gamut as $method => $priority) { // $div_content = $this->$method($div_content); // } // // $div_open = preg_replace( // '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open); // // $graf = $div_open . "\n" . $div_content . "\n" . $div_close; // } $grafs[$key] = $graf; } } return implode("\n\n", $grafs); } function encodeAttribute($text) { # # Encode text for a double-quoted HTML attribute. This function # is *not* suitable for attributes enclosed in single quotes. # $text = $this->encodeAmpsAndAngles($text); $text = str_replace('"', '"', $text); return $text; } function encodeAmpsAndAngles($text) { # # Smart processing for ampersands and angle brackets that need to # be encoded. Valid character entities are left alone unless the # no-entities mode is set. # if ($this->no_entities) { $text = str_replace('&', '&', $text); } else { # Ampersand-encoding based entirely on Nat Irons's Amputator # MT plugin: $text = preg_replace('/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/', '&', $text);; } # Encode remaining <'s $text = str_replace('<', '<', $text); return $text; } function doAutoLinks($text) { $text = preg_replace_callback('{<((https?|ftp|dict):[^\'">\s]+)>}i', array(&$this, '_doAutoLinks_url_callback'), $text); # Email addresses: $text = preg_replace_callback('{ < (?:mailto:)? ( (?: [-!#$%&\'*+/=?^_`.{|}~\w\x80-\xFF]+ | ".*?" ) \@ (?: [-a-z0-9\x80-\xFF]+(\.[-a-z0-9\x80-\xFF]+)*\.[a-z]+ | \[[\d.a-fA-F:]+\] # IPv4 & IPv6 ) ) > }xi', array(&$this, '_doAutoLinks_email_callback'), $text); $text = preg_replace_callback('{<(tel:([^\'">\s]+))>}i',array(&$this, '_doAutoLinks_tel_callback'), $text); return $text; } function _doAutoLinks_tel_callback($matches) { $url = $this->encodeAttribute($matches[1]); $tel = $this->encodeAttribute($matches[2]); $link = "$tel"; return $this->hashPart($link); } function _doAutoLinks_url_callback($matches) { $url = $this->encodeAttribute($matches[1]); $link = "$url"; return $this->hashPart($link); } function _doAutoLinks_email_callback($matches) { $address = $matches[1]; $link = $this->encodeEmailAddress($address); return $this->hashPart($link); } function encodeEmailAddress($addr) { # # Input: an email address, e.g. "foo@example.com" # # Output: the email address as a mailto link, with each character # of the address encoded as either a decimal or hex entity, in # the hopes of foiling most address harvesting spam bots. E.g.: # #

        foo@exampl # e.com

        # # Based by a filter by Matthew Wickline, posted to BBEdit-Talk. # With some optimizations by Milian Wolff. # $addr = "mailto:" . $addr; $chars = preg_split('/(? $char) { $ord = ord($char); # Ignore non-ascii chars. if ($ord < 128) { $r = ($seed * (1 + $key)) % 100; # Pseudo-random function. # roughly 10% raw, 45% hex, 45% dec # '@' *must* be encoded. I insist. if ($r > 90 && $char != '@') /* do nothing */; else if ($r < 45) $chars[$key] = '&#x'.dechex($ord).';'; else $chars[$key] = '&#'.$ord.';'; } } $addr = implode('', $chars); $text = implode('', array_slice($chars, 7)); # text without `mailto:` $addr = "$text"; return $addr; } function parseSpan($str) { # # Take the string $str and parse it into tokens, hashing embedded HTML, # escaped characters and handling code spans. # $output = ''; $span_re = '{ ( \\\\'.$this->escape_chars_re.' | (?no_markup ? '' : ' | # comment | <\?.*?\?> | <%.*?%> # processing instruction | <[!$]?[-a-zA-Z0-9:_]+ # regular tags (?> \s (?>[^"\'>]+|"[^"]*"|\'[^\']*\')* )? > | <[-a-zA-Z0-9:_]+\s*/> # xml-style empty tag | # closing tag ').' ) }xs'; while (1) { # # Each loop iteration search for either the next tag, the next # openning code span marker, or the next escaped character. # Each token is then passed to handleSpanToken. # $parts = preg_split($span_re, $str, 2, PREG_SPLIT_DELIM_CAPTURE); # Create token from text preceding tag. if ($parts[0] != "") { $output .= $parts[0]; } # Check if we reach the end. if (isset($parts[1])) { $output .= $this->handleSpanToken($parts[1], $parts[2]); $str = $parts[2]; } else { break; } } return $output; } function handleSpanToken($token, &$str) { # # Handle $token provided by parseSpan by determining its nature and # returning the corresponding value that should replace it. # switch ($token{0}) { case "\\": return $this->hashPart("&#". ord($token{1}). ";"); case "`": # Search for end marker in remaining text. if (preg_match('/^(.*?[^`])'.preg_quote($token).'(?!`)(.*)$/sm', $str, $matches)) { $str = $matches[2]; $codespan = $this->makeCodeSpan($matches[1]); return $this->hashPart($codespan); } return $token; // return as text since no ending marker found. default: return $this->hashPart($token); } } function outdent($text) { # # Remove one level of line-leading tabs or spaces # return preg_replace('/^(\t|[ ]{1,'.$this->tab_width.'})/m', '', $text); } # String length function for detab. `_initDetab` will create a function to # hanlde UTF-8 if the default function does not exist. public $utf8_strlen = 'mb_strlen'; function detab($text) { # # Replace tabs with the appropriate amount of space. # # For each line we separate the line in blocks delemited by # tab characters. Then we reconstruct every line by adding the # appropriate number of space between each blocks. $text = preg_replace_callback('/^.*\t.*$/m', array(&$this, '_detab_callback'), $text); return $text; } function _detab_callback($matches) { $line = $matches[0]; $strlen = $this->utf8_strlen; # strlen function for UTF-8. # Split in blocks. $blocks = explode("\t", $line); # Add each blocks to the line. $line = $blocks[0]; unset($blocks[0]); # Do not add first block twice. foreach ($blocks as $block) { # Calculate amount of space, insert spaces, insert block. $amount = $this->tab_width - $strlen($line, 'UTF-8') % $this->tab_width; $line .= str_repeat(" ", $amount) . $block; } return $line; } function _initDetab() { # # Check for the availability of the function in the `utf8_strlen` property # (initially `mb_strlen`). If the function is not available, create a # function that will loosely count the number of UTF-8 characters with a # regular expression. # if (function_exists($this->utf8_strlen)) return; $this->utf8_strlen = create_function('$text', 'return preg_match_all( "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/", $text, $m);'); } function unhash($text) { # # Swap back in all the tags hashed by _HashHTMLBlocks. # return preg_replace_callback('/(.)\x1A[0-9]+\1/', array(&$this, '_unhash_callback'), $text); } function _unhash_callback($matches) { return $this->html_hashes[$matches[0]]; } } # # Markdown Extra Parser Class # class MarkdownExtra_Parser extends Markdown_Parser { ### Configuration Variables ### # Prefix for footnote ids. public $fn_id_prefix = ""; # Optional title attribute for footnote links and backlinks. public $fn_link_title = MARKDOWN_FN_LINK_TITLE; public $fn_backlink_title = MARKDOWN_FN_BACKLINK_TITLE; # Optional class attribute for footnote links and backlinks. public $fn_link_class = MARKDOWN_FN_LINK_CLASS; public $fn_backlink_class = MARKDOWN_FN_BACKLINK_CLASS; # Optional class prefix for fenced code block. public $code_class_prefix = MARKDOWN_CODE_CLASS_PREFIX; # Class attribute for code blocks goes on the `code` tag; # setting this to true will put attributes on the `pre` tag instead. public $code_attr_on_pre = MARKDOWN_CODE_ATTR_ON_PRE; # Predefined abbreviations. public $predef_abbr = array(); ### Parser Implementation ### function __construct() { # # Constructor function. Initialize the parser object. # # Add extra escapable characters before parent constructor # initialize the table. $this->escape_chars .= ':|'; # Insert extra document, block, and span transformations. # Parent constructor will do the sorting. $this->document_gamut += array( "doFencedCodeBlocks" => 5, "stripFootnotes" => 15, "stripAbbreviations" => 25, "appendFootnotes" => 50, ); $this->block_gamut += array( "doFencedCodeBlocks" => 5, "doTables" => 15, "doDefLists" => 45, ); $this->span_gamut += array( "doFootnotes" => 5, "doAbbreviations" => 70, ); parent::__construct(); } # Extra variables used during extra transformations. public $footnotes = array(); public $footnotes_ordered = array(); public $footnotes_ref_count = array(); public $footnotes_numbers = array(); public $abbr_desciptions = array(); public $abbr_word_re = ''; # Give the current footnote number. public $footnote_counter = 1; function setup() { # # Setting up Extra-specific variables. # parent::setup(); $this->footnotes = array(); $this->footnotes_ordered = array(); $this->footnotes_ref_count = array(); $this->footnotes_numbers = array(); $this->abbr_desciptions = array(); $this->abbr_word_re = ''; $this->footnote_counter = 1; foreach ($this->predef_abbr as $abbr_word => $abbr_desc) { if ($this->abbr_word_re) $this->abbr_word_re .= '|'; $this->abbr_word_re .= preg_quote($abbr_word); $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); } } function teardown() { # # Clearing Extra-specific variables. # $this->footnotes = array(); $this->footnotes_ordered = array(); $this->footnotes_ref_count = array(); $this->footnotes_numbers = array(); $this->abbr_desciptions = array(); $this->abbr_word_re = ''; parent::teardown(); } ### Extra Attribute Parser ### # Expression to use to catch attributes (includes the braces) public $id_class_attr_catch_re = '\{((?:[ ]*[#.][-_:a-zA-Z0-9]+){1,})[ ]*\}'; # Expression to use when parsing in a context when no capture is desired public $id_class_attr_nocatch_re = '\{(?:[ ]*[#.][-_:a-zA-Z0-9]+){1,}[ ]*\}'; function doExtraAttributes($tag_name, $attr) { # # Parse attributes caught by the $this->id_class_attr_catch_re expression # and return the HTML-formatted list of attributes. # # Currently supported attributes are .class and #id. # if (empty($attr)) return ""; # Split on components preg_match_all('/[#.][-_:a-zA-Z0-9]+/', $attr, $matches); $elements = $matches[0]; # handle classes and ids (only first id taken into account) $classes = array(); $id = false; foreach ($elements as $element) { if ($element{0} == '.') { $classes[] = substr($element, 1); } else if ($element{0} == '#') { if ($id === false) $id = substr($element, 1); } } # compose attributes as string $attr_str = ""; if (!empty($id)) { $attr_str .= ' id="'.$id.'"'; } if (!empty($classes)) { $attr_str .= ' class="'.implode(" ", $classes).'"'; } return $attr_str; } function stripLinkDefinitions($text) { # # Strips link definitions from text, stores the URLs and titles in # hash references. # $less_than_tab = $this->tab_width - 1; # Link defs are in the form: ^[id]: url "optional title" $text = preg_replace_callback('{ ^[ ]{0,'.$less_than_tab.'}\[(.+)\][ ]?: # id = $1 [ ]* \n? # maybe *one* newline [ ]* (?: <(.+?)> # url = $2 | (\S+?) # url = $3 ) [ ]* \n? # maybe one newline [ ]* (?: (?<=\s) # lookbehind for whitespace ["(] (.*?) # title = $4 [")] [ ]* )? # title is optional (?:[ ]* '.$this->id_class_attr_catch_re.' )? # $5 = extra id & class attr (?:\n+|\Z) }xm', array(&$this, '_stripLinkDefinitions_callback'), $text); return $text; } function _stripLinkDefinitions_callback($matches) { $link_id = strtolower($matches[1]); $url = $matches[2] == '' ? $matches[3] : $matches[2]; $this->urls[$link_id] = $url; $this->titles[$link_id] =& $matches[4]; $this->ref_attr[$link_id] = $this->doExtraAttributes("", $dummy =& $matches[5]); return ''; # String that will replace the block } ### HTML Block Parser ### # Tags that are always treated as block tags: public $block_tags_re = 'p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|address|form|fieldset|iframe|hr|legend|article|section|nav|aside|hgroup|header|footer|figcaption'; # Tags treated as block tags only if the opening tag is alone on its line: public $context_block_tags_re = 'script|noscript|ins|del|iframe|object|source|track|param|math|svg|canvas|audio|video'; # Tags where markdown="1" default to span mode: public $contain_span_tags_re = 'p|h[1-6]|li|dd|dt|td|th|legend|address'; # Tags which must not have their contents modified, no matter where # they appear: public $clean_tags_re = 'script|math|svg'; # Tags that do not need to be closed. public $auto_close_tags_re = 'hr|img|param|source|track'; function hashHTMLBlocks($text) { # # Hashify HTML Blocks and "clean tags". # # We only want to do this for block-level HTML tags, such as headers, # lists, and tables. That's because we still want to wrap

        s around # "paragraphs" that are wrapped in non-block-level tags, such as anchors, # phrase emphasis, and spans. The list of tags we're looking for is # hard-coded. # # This works by calling _HashHTMLBlocks_InMarkdown, which then calls # _HashHTMLBlocks_InHTML when it encounter block tags. When the markdown="1" # attribute is found within a tag, _HashHTMLBlocks_InHTML calls back # _HashHTMLBlocks_InMarkdown to handle the Markdown syntax within the tag. # These two functions are calling each other. It's recursive! # if ($this->no_markup) return $text; # # Call the HTML-in-Markdown hasher. # list($text, ) = $this->_hashHTMLBlocks_inMarkdown($text); return $text; } function _hashHTMLBlocks_inMarkdown($text, $indent = 0, $enclosing_tag_re = '', $span = false) { # # Parse markdown text, calling _HashHTMLBlocks_InHTML for block tags. # # * $indent is the number of space to be ignored when checking for code # blocks. This is important because if we don't take the indent into # account, something like this (which looks right) won't work as expected: # #

        #
        # Hello World. <-- Is this a Markdown code block or text? #
        <-- Is this a Markdown code block or a real tag? #
        # # If you don't like this, just don't indent the tag on which # you apply the markdown="1" attribute. # # * If $enclosing_tag_re is not empty, stops at the first unmatched closing # tag with that name. Nested tags supported. # # * If $span is true, text inside must treated as span. So any double # newline will be replaced by a single newline so that it does not create # paragraphs. # # Returns an array of that form: ( processed text , remaining text ) # if ($text === '') return array('', ''); # Regex to check for the presence of newlines around a block tag. $newline_before_re = '/(?:^\n?|\n\n)*$/'; $newline_after_re = '{ ^ # Start of text following the tag. (?>[ ]*)? # Optional comment. [ ]*\n # Must be followed by newline. }xs'; # Regex to match any tag. $block_tag_re = '{ ( # $2: Capture whole tag. # Tag name. '.$this->block_tags_re.' | '.$this->context_block_tags_re.' | '.$this->clean_tags_re.' | (?!\s)'.$enclosing_tag_re.' ) (?: (?=[\s"\'/a-zA-Z0-9]) # Allowed characters after tag name. (?> ".*?" | # Double quotes (can contain `>`) \'.*?\' | # Single quotes (can contain `>`) .+? # Anything but quotes and `>`. )*? )? > # End of tag. | # HTML Comment | <\?.*?\?> | <%.*?%> # Processing instruction | # CData Block '. ( !$span ? ' # If not in span. | # Indented code block (?: ^[ ]*\n | ^ | \n[ ]*\n ) [ ]{'.($indent+4).'}[^\n]* \n (?> (?: [ ]{'.($indent+4).'}[^\n]* | [ ]* ) \n )* | # Fenced code block marker (?<= ^ | \n ) [ ]{0,'.($indent+3).'}(?:~{3,}|`{3,}) [ ]* (?: \.?[-_:a-zA-Z0-9]+ # standalone class name | '.$this->id_class_attr_nocatch_re.' # extra attributes )? [ ]* (?= \n ) ' : '' ). ' # End (if not is span). | # Code span marker # Note, this regex needs to go after backtick fenced # code blocks but it should also be kept outside of the # "if not in span" condition adding backticks to the parser `+ ) }xs'; $depth = 0; # Current depth inside the tag tree. $parsed = ""; # Parsed text that will be returned. # # Loop through every tag until we find the closing tag of the parent # or loop until reaching the end of text if no parent tag specified. # do { # # Split the text using the first $tag_match pattern found. # Text before pattern will be first in the array, text after # pattern will be at the end, and between will be any catches made # by the pattern. # $parts = preg_split($block_tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); # If in Markdown span mode, add a empty-string span-level hash # after each newline to prevent triggering any block element. if ($span) { $void = $this->hashPart("", ':'); $newline = "$void\n"; $parts[0] = $void . str_replace("\n", $newline, $parts[0]) . $void; } $parsed .= $parts[0]; # Text before current tag. # If end of $text has been reached. Stop loop. if (count($parts) < 3) { $text = ""; break; } $tag = $parts[1]; # Tag to handle. $text = $parts[2]; # Remaining text after current tag. $tag_re = preg_quote($tag); # For use in a regular expression. # # Check for: Fenced code block marker. # Note: need to recheck the whole tag to disambiguate backtick # fences from code spans # if (preg_match('{^\n?([ ]{0,'.($indent+3).'})(~{3,}|`{3,})[ ]*(?:\.?[-_:a-zA-Z0-9]+|'.$this->id_class_attr_nocatch_re.')?[ ]*\n?$}', $tag, $capture)) { # Fenced code block marker: find matching end marker. $fence_indent = strlen($capture[1]); # use captured indent in re $fence_re = $capture[2]; # use captured fence in re if (preg_match('{^(?>.*\n)*?[ ]{'.($fence_indent).'}'.$fence_re.'[ ]*(?:\n|$)}', $text, $matches)) { # End marker found: pass text unchanged until marker. $parsed .= $tag . $matches[0]; $text = substr($text, strlen($matches[0])); } else { # No end marker: just skip it. $parsed .= $tag; } } # # Check for: Indented code block. # else if ($tag{0} == "\n" || $tag{0} == " ") { # Indented code block: pass it unchanged, will be handled # later. $parsed .= $tag; } # # Check for: Code span marker # Note: need to check this after backtick fenced code blocks # else if ($tag{0} == "`") { # Find corresponding end marker. $tag_re = preg_quote($tag); if (preg_match('{^(?>.+?|\n(?!\n))*?(?block_tags_re.')\b}', $tag) || ( preg_match('{^<(?:'.$this->context_block_tags_re.')\b}', $tag) && preg_match($newline_before_re, $parsed) && preg_match($newline_after_re, $text) ) ) { # Need to parse tag and following text using the HTML parser. list($block_text, $text) = $this->_hashHTMLBlocks_inHTML($tag . $text, "hashBlock", true); # Make sure it stays outside of any paragraph by adding newlines. $parsed .= "\n\n$block_text\n\n"; } # # Check for: Clean tag (like script, math) # HTML Comments, processing instructions. # else if (preg_match('{^<(?:'.$this->clean_tags_re.')\b}', $tag) || $tag{1} == '!' || $tag{1} == '?') { # Need to parse tag and following text using the HTML parser. # (don't check for markdown attribute) list($block_text, $text) = $this->_hashHTMLBlocks_inHTML($tag . $text, "hashClean", false); $parsed .= $block_text; } # # Check for: Tag with same name as enclosing tag. # else if ($enclosing_tag_re !== '' && # Same name as enclosing tag. preg_match('{^= 0); return array($parsed, $text); } function _hashHTMLBlocks_inHTML($text, $hash_method, $md_attr) { # # Parse HTML, calling _HashHTMLBlocks_InMarkdown for block tags. # # * Calls $hash_method to convert any blocks. # * Stops when the first opening tag closes. # * $md_attr indicate if the use of the `markdown="1"` attribute is allowed. # (it is not inside clean tags) # # Returns an array of that form: ( processed text , remaining text ) # if ($text === '') return array('', ''); # Regex to match `markdown` attribute inside of a tag. $markdown_attr_re = ' { \s* # Eat whitespace before the `markdown` attribute markdown \s*=\s* (?> (["\']) # $1: quote delimiter (.*?) # $2: attribute value \1 # matching delimiter | ([^\s>]*) # $3: unquoted attribute value ) () # $4: make $3 always defined (avoid warnings) }xs'; # Regex to match any tag. $tag_re = '{ ( # $2: Capture whole tag. ".*?" | # Double quotes (can contain `>`) \'.*?\' | # Single quotes (can contain `>`) .+? # Anything but quotes and `>`. )*? )? > # End of tag. | # HTML Comment | <\?.*?\?> | <%.*?%> # Processing instruction | # CData Block ) }xs'; $original_text = $text; # Save original text in case of faliure. $depth = 0; # Current depth inside the tag tree. $block_text = ""; # Temporary text holder for current text. $parsed = ""; # Parsed text that will be returned. # # Get the name of the starting tag. # (This pattern makes $base_tag_name_re safe without quoting.) # if (preg_match('/^<([\w:$]*)\b/', $text, $matches)) $base_tag_name_re = $matches[1]; # # Loop through every tag until we find the corresponding closing tag. # do { # # Split the text using the first $tag_match pattern found. # Text before pattern will be first in the array, text after # pattern will be at the end, and between will be any catches made # by the pattern. # $parts = preg_split($tag_re, $text, 2, PREG_SPLIT_DELIM_CAPTURE); if (count($parts) < 3) { # # End of $text reached with unbalenced tag(s). # In that case, we return original text unchanged and pass the # first character as filtered to prevent an infinite loop in the # parent function. # return array($original_text{0}, substr($original_text, 1)); } $block_text .= $parts[0]; # Text before current tag. $tag = $parts[1]; # Tag to handle. $text = $parts[2]; # Remaining text after current tag. # # Check for: Auto-close tag (like
        ) # Comments and Processing Instructions. # if (preg_match('{^auto_close_tags_re.')\b}', $tag) || $tag{1} == '!' || $tag{1} == '?') { # Just add the tag to the block as if it was text. $block_text .= $tag; } else { # # Increase/decrease nested tag count. Only do so if # the tag's name match base tag's. # if (preg_match('{^mode = $attr_m[2] . $attr_m[3]; $span_mode = $this->mode == 'span' || $this->mode != 'block' && preg_match('{^<(?:'.$this->contain_span_tags_re.')\b}', $tag); # Calculate indent before tag. if (preg_match('/(?:^|\n)( *?)(?! ).*?$/', $block_text, $matches)) { $strlen = $this->utf8_strlen; $indent = $strlen($matches[1], 'UTF-8'); } else { $indent = 0; } # End preceding block with this tag. $block_text .= $tag; $parsed .= $this->$hash_method($block_text); # Get enclosing tag name for the ParseMarkdown function. # (This pattern makes $tag_name_re safe without quoting.) preg_match('/^<([\w:$]*)\b/', $tag, $matches); $tag_name_re = $matches[1]; # Parse the content using the HTML-in-Markdown parser. list ($block_text, $text) = $this->_hashHTMLBlocks_inMarkdown($text, $indent, $tag_name_re, $span_mode); # Outdent markdown text. if ($indent > 0) { $block_text = preg_replace("/^[ ]{1,$indent}/m", "", $block_text); } # Append tag content to parsed text. if (!$span_mode) $parsed .= "\n\n$block_text\n\n"; else $parsed .= "$block_text"; # Start over with a new block. $block_text = ""; } else $block_text .= $tag; } } while ($depth > 0); # # Hash last block text that wasn't processed inside the loop. # $parsed .= $this->$hash_method($block_text); return array($parsed, $text); } function hashClean($text) { # # Called whenever a tag must be hashed when a function inserts a "clean" tag # in $text, it passes through this function and is automaticaly escaped, # blocking invalid nested overlap. # return $this->hashPart($text, 'C'); } function doAnchors($text) { # # Turn Markdown link shortcuts into XHTML tags. # if ($this->in_anchor) return $text; $this->in_anchor = true; # # First, handle reference-style links: [link text] [id] # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ('.$this->nested_brackets_re.') # link text = $2 \] [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[ (.*?) # id = $3 \] ) }xs', array(&$this, '_doAnchors_reference_callback'), $text); # # Next, inline-style links: [link text](url "optional title") # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ('.$this->nested_brackets_re.') # link text = $2 \] \( # literal paren [ \n]* (?: <(.+?)> # href = $3 | ('.$this->nested_url_parenthesis_re.') # href = $4 ) [ \n]* ( # $5 ([\'"]) # quote char = $6 (.*?) # Title = $7 \6 # matching quote [ \n]* # ignore any spaces/tabs between closing quote and ) )? # title is optional \) (?:[ ]? '.$this->id_class_attr_catch_re.' )? # $8 = id/class attributes ) }xs', array(&$this, '_doAnchors_inline_callback'), $text); # # Last, handle reference-style shortcuts: [link text] # These must come last in case you've also got [link text][1] # or [link text](/foo) # $text = preg_replace_callback('{ ( # wrap whole match in $1 \[ ([^\[\]]+) # link text = $2; can\'t contain [ or ] \] ) }xs', array(&$this, '_doAnchors_reference_callback'), $text); $this->in_anchor = false; return $text; } function _doAnchors_reference_callback($matches) { $whole_match = $matches[1]; $link_text = $matches[2]; $link_id =& $matches[3]; if ($link_id == "") { # for shortcut links like [this][] or [this]. $link_id = $link_text; } # lower-case and turn embedded newlines into spaces $link_id = strtolower($link_id); $link_id = preg_replace('{[ ]?\n}', ' ', $link_id); if (isset($this->urls[$link_id])) { $url = $this->urls[$link_id]; $url = $this->encodeAttribute($url); $result = "titles[$link_id] ) ) { $title = $this->titles[$link_id]; $title = $this->encodeAttribute($title); $result .= " title=\"$title\""; } if (isset($this->ref_attr[$link_id])) $result .= $this->ref_attr[$link_id]; $link_text = $this->runSpanGamut($link_text); $result .= ">$link_text"; $result = $this->hashPart($result); } else { $result = $whole_match; } return $result; } function _doAnchors_inline_callback($matches) { $whole_match = $matches[1]; $link_text = $this->runSpanGamut($matches[2]); $url = $matches[3] == '' ? $matches[4] : $matches[3]; $title =& $matches[7]; $attr = $this->doExtraAttributes("a", $dummy =& $matches[8]); $url = $this->encodeAttribute($url); $result = "encodeAttribute($title); $result .= " title=\"$title\""; } $result .= $attr; $link_text = $this->runSpanGamut($link_text); $result .= ">$link_text"; return $this->hashPart($result); } function doImages($text) { # # Turn Markdown image shortcuts into tags. # # # First, handle reference-style labeled images: ![alt text][id] # $text = preg_replace_callback('{ ( # wrap whole match in $1 !\[ ('.$this->nested_brackets_re.') # alt text = $2 \] [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[ (.*?) # id = $3 \] ) }xs', array(&$this, '_doImages_reference_callback'), $text); # # Next, handle inline images: ![alt text](url "optional title") # Don't forget: encode * and _ # $text = preg_replace_callback('{ ( # wrap whole match in $1 !\[ ('.$this->nested_brackets_re.') # alt text = $2 \] \s? # One optional whitespace character \( # literal paren [ \n]* (?: <(\S*)> # src url = $3 | ('.$this->nested_url_parenthesis_re.') # src url = $4 ) [ \n]* ( # $5 ([\'"]) # quote char = $6 (.*?) # title = $7 \6 # matching quote [ \n]* )? # title is optional \) (?:[ ]? '.$this->id_class_attr_catch_re.' )? # $8 = id/class attributes ) }xs', array(&$this, '_doImages_inline_callback'), $text); return $text; } function _doImages_reference_callback($matches) { $whole_match = $matches[1]; $alt_text = $matches[2]; $link_id = strtolower($matches[3]); if ($link_id == "") { $link_id = strtolower($alt_text); # for shortcut links like ![this][]. } $alt_text = $this->encodeAttribute($alt_text); if (isset($this->urls[$link_id])) { $url = $this->encodeAttribute($this->urls[$link_id]); $result = "\"$alt_text\"";titles[$link_id])) { $title = $this->titles[$link_id]; $title = $this->encodeAttribute($title); $result .= " title=\"$title\""; } if (isset($this->ref_attr[$link_id])) $result .= $this->ref_attr[$link_id]; $result .= $this->empty_element_suffix; $result = $this->hashPart($result); } else { # If there's no such link ID, leave intact: $result = $whole_match; } return $result; } function _doImages_inline_callback($matches) { $whole_match = $matches[1]; $alt_text = $matches[2]; $url = $matches[3] == '' ? $matches[4] : $matches[3]; $title =& $matches[7]; $attr = $this->doExtraAttributes("img", $dummy =& $matches[8]); $alt_text = $this->encodeAttribute($alt_text); $url = $this->encodeAttribute($url); $result = "\"$alt_text\"";encodeAttribute($title); $result .= " title=\"$title\""; # $title already quoted } $result .= $attr; $result .= $this->empty_element_suffix; return $this->hashPart($result); } function doHeaders($text) { # # Redefined to add id and class attribute support. # # Setext-style headers: # Header 1 {#header1} # ======== # # Header 2 {#header2 .class1 .class2} # -------- # $text = preg_replace_callback( '{ (^.+?) # $1: Header text (?:[ ]+ '.$this->id_class_attr_catch_re.' )? # $3 = id/class attributes [ ]*\n(=+|-+)[ ]*\n+ # $3: Header footer }mx', array(&$this, '_doHeaders_callback_setext'), $text); # atx-style headers: # # Header 1 {#header1} # ## Header 2 {#header2} # ## Header 2 with closing hashes ## {#header3.class1.class2} # ... # ###### Header 6 {.class2} # $text = preg_replace_callback('{ ^(\#{1,6}) # $1 = string of #\'s [ ]* (.+?) # $2 = Header text [ ]* \#* # optional closing #\'s (not counted) (?:[ ]+ '.$this->id_class_attr_catch_re.' )? # $3 = id/class attributes [ ]* \n+ }xm', array(&$this, '_doHeaders_callback_atx'), $text); return $text; } function _doHeaders_callback_setext($matches) { if ($matches[3] == '-' && preg_match('{^- }', $matches[1])) return $matches[0]; $level = $matches[3]{0} == '=' ? 1 : 2; $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[2]); $block = "".$this->runSpanGamut($matches[1]).""; return "\n" . $this->hashBlock($block) . "\n\n"; } function _doHeaders_callback_atx($matches) { $level = strlen($matches[1]); $attr = $this->doExtraAttributes("h$level", $dummy =& $matches[3]); $block = "".$this->runSpanGamut($matches[2]).""; return "\n" . $this->hashBlock($block) . "\n\n"; } function doTables($text) { # # Form HTML tables. # $less_than_tab = $this->tab_width - 1; # # Find tables with leading pipe. # # | Header 1 | Header 2 # | -------- | -------- # | Cell 1 | Cell 2 # | Cell 3 | Cell 4 # $text = preg_replace_callback(' { ^ # Start of a line [ ]{0,'.$less_than_tab.'} # Allowed whitespace. [|] # Optional leading pipe (present) (.+) \n # $1: Header row (at least one pipe) [ ]{0,'.$less_than_tab.'} # Allowed whitespace. [|] ([ ]*[-:]+[-| :]*) \n # $2: Header underline ( # $3: Cells (?> [ ]* # Allowed whitespace. [|] .* \n # Row content. )* ) (?=\n|\Z) # Stop at final double newline. }xm', array(&$this, '_doTable_leadingPipe_callback'), $text); # # Find tables without leading pipe. # # Header 1 | Header 2 # -------- | -------- # Cell 1 | Cell 2 # Cell 3 | Cell 4 # $text = preg_replace_callback(' { ^ # Start of a line [ ]{0,'.$less_than_tab.'} # Allowed whitespace. (\S.*[|].*) \n # $1: Header row (at least one pipe) [ ]{0,'.$less_than_tab.'} # Allowed whitespace. ([-:]+[ ]*[|][-| :]*) \n # $2: Header underline ( # $3: Cells (?> .* [|] .* \n # Row content )* ) (?=\n|\Z) # Stop at final double newline. }xm', array(&$this, '_DoTable_callback'), $text); return $text; } function _doTable_leadingPipe_callback($matches) { $head = $matches[1]; $underline = $matches[2]; $content = $matches[3]; # Remove leading pipe for each row. $content = preg_replace('/^ *[|]/m', '', $content); return $this->_doTable_callback(array($matches[0], $head, $underline, $content)); } function _doTable_callback($matches) { $head = $matches[1]; $underline = $matches[2]; $content = $matches[3]; # Remove any tailing pipes for each line. $head = preg_replace('/[|] *$/m', '', $head); $underline = preg_replace('/[|] *$/m', '', $underline); $content = preg_replace('/[|] *$/m', '', $content); # Reading alignement from header underline. $separators = preg_split('/ *[|] */', $underline); foreach ($separators as $n => $s) { if (preg_match('/^ *-+: *$/', $s)) $attr[$n] = ' align="right"'; else if (preg_match('/^ *:-+: *$/', $s))$attr[$n] = ' align="center"'; else if (preg_match('/^ *:-+ *$/', $s)) $attr[$n] = ' align="left"'; else $attr[$n] = ''; } # Parsing span elements, including code spans, character escapes, # and inline HTML tags, so that pipes inside those gets ignored. $head = $this->parseSpan($head); $headers = preg_split('/ *[|] */', $head); $col_count = count($headers); $attr = array_pad($attr, $col_count, ''); # Write column headers. $text = "

        '; AtD_print_option( 'onupdate', __('a post or page is updated', 'jetpack'), $options_check_when ); ?>

        '; AtD_print_option( 'Cliches', __('Clichés', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Complex Expression', __('Complex Phrases', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Diacritical Marks', __('Diacritical Marks', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Double Negative', __('Double Negatives', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Hidden Verbs', __('Hidden Verbs', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Jargon Language', __('Jargon', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Passive voice', __('Passive Voice', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Phrases to Avoid', __('Phrases to Avoid', 'jetpack'), $options_show_types ); echo '
        '; AtD_print_option( 'Redundant Expression', __('Redundant Phrases', 'jetpack'), $options_show_types ); ?>

        Learn more about these options.', 'jetpack' ), 'http://support.wordpress.com/proofreading/' ); ?>

        /gi, '\n'); } // Remove emoji replacement images if ( typeof window.twemoji !== 'undefined' ) { content = content.replace( /]+>/g, function( img ) { // The images should have class containing 'emoji' if ( img.indexOf( 'emoji' ) !== -1 ) { var alt = img.match( /alt="([^"]+)"/ ); if ( alt && alt[1] && window.twemoji.test( alt[1] ) ) { return alt[1]; } } return img; }); } // jQuery('#content').replaceWith( AtD.content_canvas ); jQuery('#content').val( content.replace(/\<\;/g, '<').replace(/\>\;/g, '>').replace(/\&/g, '&') ) .height(AtD.height) .show(); jQuery('#atd-content').remove(); if ( AtD_qtbutton ) { /* change the link text back to its original label */ jQuery(AtD_qtbutton).val( AtD.getLang('button_proofread', 'proofread') ); jQuery(AtD_qtbutton).css({ 'color' : '#464646' }); /* enable the toolbar buttons */ jQuery( AtD_qtbutton ).siblings('input').andSelf().attr( 'disabled', false ); } /* restore autosave */ if ( AtD.autosave !== undefined ) { if ( window.wp && window.wp.autosave && window.wp.autosave.server ) { window.wp.autosave.local.resume && window.wp.autosave.local.resume(); window.wp.autosave.server.resume && window.wp.autosave.server.resume(); } else { autosave = AtD.autosave; } } } // add the AtD button properly to quicktags if ( typeof(QTags) !== 'undefined' && QTags.addButton ) { jQuery(document).ready(function(){ QTags.addButton( 'AtD', AtD_l10n_r0ar.button_proofread, AtD_check ); }); } else { edButtons[edButtons.length] = new edButton('ed_AtD', 'AtD', '', '', ''); jQuery(document).ready(function($){ $('#ed_AtD').replaceWith(''); }); } function AtD_restore_if_proofreading() { if ( AtD_qtbutton && jQuery(AtD_qtbutton).val() === AtD.getLang('button_edit_text', 'edit text') ) { AtD_restore_text_area(); } } function AtD_unbind_proofreader_listeners() { jQuery('#save-post, #post-preview, #publish, #edButtonPreview').unbind('focus', AtD_restore_if_proofreading ); jQuery('#add_poll, #add_image, #add_video, #add_audio, #add_media').unbind('click', AtD_restore_if_proofreading ); jQuery('#post').unbind('submit', AtD_restore_if_proofreading ); } function AtD_bind_proofreader_listeners() { jQuery('#save-post, #post-preview, #publish, #edButtonPreview').focus( AtD_restore_if_proofreading ); jQuery('#add_poll, #add_image, #add_video, #add_audio, #add_media').click( AtD_restore_if_proofreading ); jQuery('#post').submit( AtD_restore_if_proofreading ); } /* where the magic happens, checks the spelling or restores the form */ function AtD_check(button) { var callback, divHeight; if ( jQuery.isFunction( button ) ) { callback = button; if ( !AtD_qtbutton ) { AtD_qtbutton = jQuery( '#qt_content_AtD, #ed_AtD' ).get( 0 ); } } else { if ( !button.id ) { button = button[0]; } AtD_qtbutton = button; } if ( !jQuery('#content').size() ) { if ( 'undefined' !== typeof callback ) { callback( 0 ); } AtD_restore_if_proofreading(); return; } /* If the text of the link says edit comment, then restore the textarea so the user can edit the text */ if ( jQuery(AtD_qtbutton).val() === AtD.getLang('button_edit_text', 'edit text') ) { AtD_restore_text_area(); } else { // Disable editor expand/scroll if ( window.editorExpand && jQuery( '#postdivrich' ).hasClass( 'wp-editor-expand' ) ) { AtD.wpEditorExpand = true; // window.editorExpand.off && window.editorExpand.off(); } else { AtD.wpEditorExpand = false; } /* initialize some of the stuff related to this plugin */ if ( ! AtD.height ) { AtD.height = jQuery('#content').height(); AtD_bind_proofreader_listeners(); /* make it so clicking the Visual button works when AtD is active */ jQuery('#edButtonPreview').attr( 'onclick', null ).click( function() { AtD_restore_if_proofreading(); switchEditors.go( 'content', 'tinymce' ); }); /* saved the textarea as we need to restore the original one for the toolbar to continue to function properly */ AtD.content_canvas = jQuery('#content'); /* store the autosave, we're going to make it empty during spellcheck to prevent auto saved text from being over written with empty text */ AtD.autosave = autosave; } else { // Update the height AtD.height = jQuery('#content').height(); } /* set the spell check link to a link that lets the user edit the text */ /* disable the button to prevent a race condition where content is deleted if proofread is clicked with a check in progress. */ jQuery(AtD_qtbutton).css({ 'color' : 'red' }).val( AtD.getLang('button_edit_text', 'edit text') ).attr('disabled', true); /* replace the div */ var $replacement, $textarea = jQuery('#content'), text = $textarea.val().replace( /\&/g, '&' ).replace( //g, '>' ), fontFamily = $textarea.css('font-family'), fontSize = $textarea.css('font-size'), lineHeight = $textarea.css('line-height'); if ( navigator.appName === 'Microsoft Internet Explorer' ) { text = text.replace( /[\n\r\f]/gm, '
        ' ); } $replacement = jQuery( '
        ' + text + '
        ' ); $textarea.after( $replacement ).hide(); divHeight = AtD.height; // AtD disables resizing of the Text editor, normalize the size of the replacement div. if ( divHeight < 200 ) { divHeight = 200; } else if ( divHeight > 1000 ) { divHeight = 1000; } var toolBarHeight = jQuery('#ed_toolbar').height(); $replacement.css( { overflow: 'auto', 'background-color': 'white', color: 'black', 'white-space': 'pre-wrap', padding: '10px', 'font-family': fontFamily || 'Consolas, Monaco, monospace', 'font-size': fontSize || '13px', 'line-height': lineHeight || '1.5', height: divHeight, 'margin-top': toolBarHeight+7+'px' } ); /* kill autosave... :) */ if ( window.wp && window.wp.autosave && window.wp.autosave.server ) { window.wp.autosave.local.suspend && window.wp.autosave.local.suspend(); window.wp.autosave.server.suspend && window.wp.autosave.server.suspend(); } else { autosave = function() { }; } /* disable the toolbar buttons */ jQuery( AtD_qtbutton ).siblings('input').andSelf().attr( 'disabled', true ); // using .arrt instead of .prop so it's compat with older WP and jQuery /* check the writing in the textarea */ AtD.check('atd-content', { success: function(errorCount) { if ( Number( errorCount ) === 0 && typeof callback !== 'function' ) { alert( AtD.getLang('message_no_errors_found', 'No writing errors were found') ); } AtD_restore_if_proofreading(); }, ready: function(errorCount) { jQuery(AtD_qtbutton).attr('disabled', false); if ( typeof callback === 'function' ) { callback( errorCount ); } }, error: function() { jQuery(AtD_qtbutton).attr('disabled', false); if ( typeof callback === 'function' ) { callback( -1 ); } else { alert( AtD.getLang('message_server_error', 'There was a problem communicating with the Proofreading service. Try again in one minute.') ); } AtD_restore_if_proofreading(); }, editSelection: function(element) { var text = prompt( AtD.getLang('dialog_replace_selection', 'Replace selection with:'), element.text() ); if ( text != null ) { element.replaceWith( text ); } }, explain: function(url) { var left = (screen.width / 2) - (480 / 2); var top = (screen.height / 2) - (380 / 2); window.open( url, '', 'width=480,height=380,toolbar=0,status=0,resizable=0,location=0,menuBar=0,left=' + left + ',top=' + top).focus(); }, ignore: function(word) { jQuery.ajax({ type : 'GET', url : AtD.rpc_ignore + encodeURI( word ).replace( /&/g, '%26'), format : 'raw', error : function(XHR, status, error) { if ( AtD.callback_f !== undefined && AtD.callback_f.error !== undefined ) { AtD.callback_f.error(status + ': ' + error); } } }); } }); } } plugins/jetpack/modules/after-the-deadline/atd.min.css0000644000312500031250000000264412651056012023420 0ustar eacbforgeacbforg.hiddenSpellError{border-bottom:2px solid red;cursor:default}.hiddenGrammarError{border-bottom:2px solid green;cursor:default}.hiddenSuggestion{border-bottom:2px solid #00f;cursor:default}#suggestmenu{min-width:122px;background:#ebeaeb;position:absolute;display:none;z-index:9999;overflow:none;margin-top:1px;text-align:left;font-size:11px;font-family:Tahoma,Verdana,Arial,Helvetica}#suggestmenu strong{background:#ccc;font-weight:700;padding:3px 6px;display:block;border:1px solid #ddd;border-bottom:1px solid #aaa;color:#000}#suggestmenu em{text-align:center;padding:3px 6px;display:block;border-top:1px solid #ccc;border-left:1px solid #ccc}#suggestmenu a,#suggestmenu a:visited{background:#ebeaeb;border-left:1px solid #ddd;border-right:1px solid #ddd;padding:3px 6px;display:block;margin:0;text-decoration:none;color:#000;outline:0}#suggestmenu a.first,#suggestmenu a.first:visited{border-top:1px solid #ddd}.spell_sep_bottom{border-bottom:1px solid #ddd}.spell_sep_top{border-top:1px solid #aaa}#suggestmenu a:hover{color:#000;background:#f5f5f5}#suggestmenu .foot{border-top:1px solid #aaa;background:#fff}#suggestmenu .foot a,#suggestmenu .foot a:visited{outline:0}div.mce-atd-menu-title.mce-disabled{padding:3px 12px 0}div.mce-atd-menu-title.mce-disabled:hover,div.mce-atd-menu-title.mce-disabled:hover span.mce-text{background:0 0;color:#888;cursor:default}div.mce-atd-menu-title.mce-disabled span.mce-text{font-weight:700;color:#888}plugins/jetpack/modules/after-the-deadline/atd-rtl.css0000644000312500031250000000410412651056012023426 0ustar eacbforgeacbforg/* AtD error styles */ .hiddenSpellError { border-bottom: 2px solid red; cursor: default; } .hiddenGrammarError { border-bottom: 2px solid green; cursor: default; } .hiddenSuggestion { border-bottom: 2px solid blue; cursor: default; } /* Menu styles derived from: * jquery.spellchecker.js - a simple jQuery Spell Checker * Copyright (c) 2008 Richard Willis * MIT license : http://www.opensource.org/licenses/mit-license.php * Project : http://jquery-spellchecker.googlecode.com */ #suggestmenu { min-width: 122px; background: #ebeaeb; position: absolute; display: none; z-index: 9999; overflow: none; margin-top: 1px; text-align: right; font-size: 11px; font-family: Tahoma, Verdana, Arial, Helvetica; } #suggestmenu strong { background: #cccccc; font-weight: bold; padding:3px 6px 3px 6px; display:block; border:1px solid #dddddd; border-bottom: 1px solid #aaaaaa; color: black; } #suggestmenu em { text-align:center; padding:3px 6px 3px 6px; display:block; border-top:1px solid #ccc; border-right:1px solid #ccc; } #suggestmenu a, #suggestmenu a:visited { background: #ebeaeb; border-right:1px solid #dddddd; border-left:1px solid #dddddd; padding:3px 6px 3px 6px; display:block; margin:0px; text-decoration:none; color: black; outline:none } #suggestmenu a.first, #suggestmenu a.first:visited { border-top:1px solid #dddddd; } .spell_sep_bottom { border-bottom: 1px solid #dddddd; } .spell_sep_top { border-top: 1px solid #aaaaaa; } #suggestmenu a:hover { color:#000; background: #f5f5f5; } #suggestmenu .foot { border-top:1px solid #aaaaaa; background:#fff } #suggestmenu .foot a, #suggestmenu .foot a:visited { outline:none } /* TinyMCE 4.0 */ div.mce-atd-menu-title.mce-disabled { padding: 3px 12px 0; } div.mce-atd-menu-title.mce-disabled:hover, div.mce-atd-menu-title.mce-disabled:hover span.mce-text { background: none; color: #888; cursor: default; } div.mce-atd-menu-title.mce-disabled span.mce-text { font-weight: bold; color: #888; } plugins/jetpack/modules/comments/0000755000312500031250000000000012654411246017560 5ustar eacbforgeacbforgplugins/jetpack/modules/comments/admin.php0000644000312500031250000001170312654411246021363 0ustar eacbforgeacbforgjetpack_comments = $jetpack_comments; // Setup settings add_action( 'admin_init', array( $this, 'add_settings' ) ); $this->setup_globals(); } /** Private Methods *******************************************************/ /** * Set any global variables or class variables * @since JetpackComments (1.4) */ protected function setup_globals() { // Default option values $this->default_greeting = __( 'Leave a Reply', 'jetpack' ); // Possible color schemes $this->color_schemes = array( 'light' => __( 'Light', 'jetpack' ), 'dark' => __( 'Dark', 'jetpack' ), 'transparent' => __( 'Transparent', 'jetpack' ), ); } /** Settings **************************************************************/ /** * Add the Jetpack settings to WordPress's discussions page * * @since JetpackComments (1.4) */ public function add_settings() { // Create the section add_settings_section( 'jetpack_comment_form', __( 'Comments', 'jetpack' ), array( $this, 'comment_form_settings_section' ), 'discussion' ); /** Clever Greeting ***************************************************/ add_settings_field( 'highlander_comment_form_prompt', __( 'Greeting Text', 'jetpack' ), array( $this, 'comment_form_greeting_setting' ), 'discussion', 'jetpack_comment_form' ); register_setting( 'discussion', 'highlander_comment_form_prompt', array( $this, 'comment_form_greeting_sanitize' ) ); /** Color Scheme ******************************************************/ add_settings_field( 'jetpack_comment_form_color_scheme', __( 'Color Scheme', 'jetpack' ), array( $this, 'comment_form_color_scheme_setting' ), 'discussion', 'jetpack_comment_form' ); register_setting( 'discussion', 'jetpack_comment_form_color_scheme', array( $this, 'comment_form_color_scheme_sanitize' ) ); } /** * Discussions setting section blurb * * @since JetpackComments (1.4) */ public function comment_form_settings_section() { ?>

        default_greeting ); ?>

        default_greeting == $val ) ) { delete_option( 'highlander_comment_form_prompt' ); return false; } return wp_kses( $val, array() ); } /** * Color Scheme Setting * * @since JetpackComments (1.4) */ public function comment_form_color_scheme_setting() { // The color scheme $scheme = get_option( 'jetpack_comment_form_color_scheme', $this->jetpack_comments->default_color_scheme ); ?>
        color_schemes as $key => $label ) : ?>
        color_schemes ) ) // ... unknown || $val == $this->jetpack_comments->default_color_scheme // ... or the default ) { delete_option( 'jetpack_comment_form_color_scheme' ); return false; } return $val; } } Jetpack_Comments_Settings::init(); plugins/jetpack/modules/comments/base.php0000644000312500031250000002176712654411246021220 0ustar eacbforgeacbforgsetup_globals(); $this->setup_actions(); $this->setup_filters(); } /** * Set any global variables or class variables * @since JetpackComments (1.4) */ protected function setup_globals() {} /** * Setup actions for methods in this class * @since JetpackComments (1.4) */ protected function setup_actions() { // Before a comment is posted add_action( 'pre_comment_on_post', array( $this, 'allow_logged_out_user_to_comment_as_external' ) ); // After a comment is posted add_action( 'comment_post', array( $this, 'set_comment_cookies' ) ); } /** * Setup filters for methods in this class * @since JetpackComments (1.4) */ protected function setup_filters() { add_filter( 'comments_array', array( $this, 'comments_array' ) ); add_filter( 'preprocess_comment', array( $this, 'allow_logged_in_user_to_comment_as_guest' ), 0 ); } /** * Is this a Highlander POST request? * Optionally restrict to one or more credentials slug (facebook, twitter, ...) * * @param string Comment credentials slug * @param ... * @return false|string false if it's not a Highlander POST request. The matching credentials slug if it is. */ function is_highlander_comment_post() { if ( empty( $_POST['hc_post_as'] ) ) { return false; } if ( func_num_args() ) { foreach ( func_get_args() as $id_source ) { if ( $id_source === $_POST['hc_post_as'] ) { return $id_source; } } return false; } return is_string( $_POST['hc_post_as'] ) && in_array( $_POST['hc_post_as'], $this->id_sources ) ? $_POST['hc_post_as'] : false; } /** * Signs an array of scalars with the self-hosted blog's Jetpack Token * * @param array $parameters * @param string $key * @return string HMAC */ static function sign_remote_comment_parameters( $parameters, $key ) { unset( $parameters['sig'], // Don't sign the signature $parameters['replytocom'] // This parameter is unsigned - it changes dynamically as the comment form moves from parent comment to parent comment ); ksort( $parameters ); $signing = array(); foreach ( $parameters as $k => $v ) { if ( !is_scalar( $v ) ) { return new WP_Error( 'invalid_input', __( 'Invalid request', 'jetpack' ) ); } $signing[] = "{$k}={$v}"; } return hash_hmac( 'sha1', implode( ':', $signing ), $key ); } /* * After commenting as a guest while logged in, the user needs to see both: * * ( user_id = blah AND comment_approved = 0 ) * and * ( comment_author_email = blah AND comment_approved = 0 ) * * Core only does the first since the user is logged in. * * Add the second to the comments array. */ function comments_array( $comments ) { global $wpdb, $post; $commenter = $this->get_current_commenter(); if ( !$commenter['user_id'] ) return $comments; if ( !$commenter['comment_author'] ) return $comments; $in_moderation_comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM `$wpdb->comments` WHERE `comment_post_ID` = %d AND `user_id` = 0 AND `comment_author` = %s AND `comment_author_email` = %s AND `comment_approved` = '0' ORDER BY `comment_date_gmt` /* Highlander_Comments_Base::comments_array() */", $post->ID, wp_specialchars_decode( $commenter['comment_author'], ENT_QUOTES ), $commenter['comment_author_email'] ) ); if ( !$in_moderation_comments ) return $comments; // @todo ZOMG this is a bad idea $comments = array_merge( $comments, $in_moderation_comments ); usort( $comments, array( $this, 'sort_comments_by_comment_date_gmt' ) ); return $comments; } /** * Comment sort comparator: comment_date_gmt * * @since JetpackComments (1.4) * @param object $a * @param object $b * @return int */ public function sort_comments_by_comment_date_gmt( $a, $b ) { if ( $a->comment_date_gmt == $b->comment_date_gmt ) { return 0; } return $a->comment_date_gmt < $b->comment_date_gmt ? -1 : 1; } /** * Get the current commenter's information from their cookie * * @since JetpackComments (1.4) * @return array Commenters information from cookie */ protected function get_current_commenter() { // Defaults $user_id = 0; $comment_author = ''; $comment_author_email = ''; $comment_author_url = ''; if ( isset( $_COOKIE['comment_author_' . COOKIEHASH] ) ) { $comment_author = $_COOKIE['comment_author_' . COOKIEHASH]; } if ( isset( $_COOKIE['comment_author_email_' . COOKIEHASH] ) ) { $comment_author_email = $_COOKIE['comment_author_email_' . COOKIEHASH]; } if ( isset( $_COOKIE['comment_author_url_' . COOKIEHASH] ) ) { $comment_author_url = $_COOKIE['comment_author_url_' . COOKIEHASH]; } if ( is_user_logged_in() ) { $user = wp_get_current_user(); $user_id = $user->ID; } return compact( 'comment_author', 'comment_author_email', 'comment_author_url', 'user_id' ); } /** * Allows a logged out user to leave a comment as a facebook or twitter credentialed user. * Overrides WordPress' core comment_registration option to treat these commenters as "registered" (verified) users. * * @since JetpackComments (1.4) * @return If no */ function allow_logged_out_user_to_comment_as_external() { if ( !$this->is_highlander_comment_post( 'facebook', 'twitter', 'googleplus' ) ) { return; } add_filter( 'pre_option_comment_registration', '__return_zero' ); } /** * Allow a logged in user to post as a guest, FB, or twitter credentialed request. * Bypasses WordPress' core overrides that force a logged in user to comment as that user. * Respects comment_registration option. * * @since JetpackComments (1.4) * @param array $comment_data * @return int */ function allow_logged_in_user_to_comment_as_guest( $comment_data ) { // Bail if user registration is allowed if ( get_option( 'comment_registration' ) ) { return $comment_data; } // Bail if user is not logged in or not a post request if ( 'POST' != strtoupper( $_SERVER['REQUEST_METHOD'] ) || !is_user_logged_in() ) { return $comment_data; } // Bail if this is not a guest or external service credentialed request if ( !$this->is_highlander_comment_post( 'guest', 'facebook', 'twitter', 'googleplus' ) ) { return $comment_data; } $user = wp_get_current_user(); foreach ( array( 'comment_author' => 'display_name', 'comment_author_email' => 'user_email', 'comment_author_url' => 'user_url' ) as $comment_field => $user_field ) { if ( $comment_data[$comment_field] != addslashes( $user->$user_field ) ) { return $comment_data; // some other plugin already did something funky } } if ( get_option( 'require_name_email' ) ) { if ( 6 > strlen( $_POST['email'] ) || empty( $_POST['author'] ) ) { wp_die( __( 'Error: please fill the required fields (name, email).', 'jetpack' ) ); } elseif ( ! is_email( $_POST['email'] ) ) { wp_die( __( 'Error: please enter a valid email address.', 'jetpack' ) ); } } $author_change = false; foreach ( array( 'comment_author' => 'author', 'comment_author_email' => 'email', 'comment_author_url' => 'url' ) as $comment_field => $post_field ) { if ( $comment_data[$comment_field] != $_POST[$post_field] && 'url' != $post_field ) { $author_change = true; } $comment_data[$comment_field] = $_POST[$post_field]; } // Mark as guest comment if name or email were changed if ( $author_change ) { $comment_data['user_id'] = $comment_data['user_ID'] = 0; } return $comment_data; } /** * Set the comment cookies or bail if comment is invalid * * @since JetpackComments (1.4) * @param type $comment_id * @return If comment is invalid */ public function set_comment_cookies( $comment_id ) { // Get comment and bail if it's invalid somehow $comment = get_comment( $comment_id ); if ( empty( $comment ) || is_wp_error( $comment ) ) { return; } $id_source = $this->is_highlander_comment_post(); if ( empty( $id_source ) ) { return; } // Set comment author cookies if ( ( 'wordpress' != $id_source ) && is_user_logged_in() ) { /** This filter is already documented in core/wp-includes/comment-functions.php */ $comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 ); setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN ); setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN ); setcookie( 'comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN ); } } /** * Get an avatar from Photon * * @since JetpackComments (1.4) * @param string $url * @param int $size * @return string */ protected function photon_avatar( $url, $size ) { $size = (int) $size; return jetpack_photon_url( $url, array( 'resize' => "$size,$size" ) ); } } plugins/jetpack/modules/comments/comments.php0000644000312500031250000004274512654411246022132 0ustar eacbforgeacbforgdefault_color_scheme = 'light'; } elseif ( false !== stripos( $theme_color_scheme, 'dark' ) ) { $this->default_color_scheme = 'dark'; } } /** Private Methods *******************************************************/ /** * Set any global variables or class variables * @since JetpackComments (1.4) */ protected function setup_globals() { parent::setup_globals(); // Sources $this->id_sources = array( 'guest', 'jetpack', 'wordpress', 'twitter', 'facebook' ); } /** * Setup actions for methods in this class * @since JetpackComments (1.4) */ protected function setup_actions() { parent::setup_actions(); // Selfishly remove everything from the existing comment form remove_all_actions( 'comment_form_before' ); remove_all_actions( 'comment_form_after' ); // Selfishly add only our actions back to the comment form add_action( 'comment_form_before', array( $this, 'comment_form_before' ) ); add_action( 'comment_form_after', array( $this, 'comment_form_after' ) ); // Before a comment is posted add_action( 'pre_comment_on_post', array( $this, 'pre_comment_on_post' ), 1 ); // After a comment is posted add_action( 'comment_post', array( $this, 'add_comment_meta' ) ); } /** * Setup filters for methods in this class * @since 1.6.2 */ protected function setup_filters() { parent::setup_filters(); add_filter( 'comment_post_redirect', array( $this, 'capture_comment_post_redirect_to_reload_parent_frame' ), 100 ); add_filter( 'get_avatar', array( $this, 'get_avatar' ), 10, 4 ); } /** * Get the comment avatar from Gravatar, Twitter, or Facebook * * @since JetpackComments (1.4) * @param string $avatar Current avatar URL * @param string $comment Comment for the avatar * @param int $size Size of the avatar * @param string $default Not used * @return string New avatar */ public function get_avatar( $avatar, $comment, $size, $default ) { if ( ! isset( $comment->comment_post_ID ) || ! isset( $comment->comment_ID ) ) { // it's not a comment - bail return $avatar; } if ( false === strpos( $comment->comment_author_url, '/www.facebook.com/' ) && false === strpos( $comment->comment_author_url, '/twitter.com/' ) ) { // It's neither FB nor Twitter - bail return $avatar; } // It's a FB or Twitter avatar $foreign_avatar = get_comment_meta( $comment->comment_ID, 'hc_avatar', true ); if ( empty( $foreign_avatar ) ) { // Can't find the avatar details - bail return $avatar; } // Return the FB or Twitter avatar return preg_replace( '#src=([\'"])[^\'"]+\\1#', 'src=\\1' . esc_url( $this->photon_avatar( $foreign_avatar, $size ) ) . '\\1', $avatar ); } /** Output Methods ********************************************************/ /** * Start capturing the core comment_form() output * @since JetpackComments (1.4) */ public function comment_form_before() { /** * Filters the setting that determines if Jetpagk comments should be enabled for * the current post type. * * @module comments * * @since 3.8.1 * * @param boolean $return Should comments be enabled? */ if ( ! apply_filters( 'jetpack_comment_form_enabled_for_' . get_post_type(), true ) ) { return; } // Add some JS to the footer add_action( 'wp_footer', array( $this, 'watch_comment_parent' ), 100 ); ob_start(); } /** * Noop the default comment form output, get some options, and output our * tricked out totally radical comment form. * * @since JetpackComments (1.4) */ public function comment_form_after() { /** This filter is documented in modules/comments/comments.php */ if ( ! apply_filters( 'jetpack_comment_form_enabled_for_' . get_post_type(), true ) ) { return; } // Throw it all out and drop in our replacement ob_end_clean(); // If users are required to be logged in, and they're not, then we don't need to do anything else if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) { /** * Changes the log in to comment prompt. * * @module comments * * @since 1.4.0 * * @param string $var Default is "You must log in to post a comment." */ echo '

        ' . sprintf( apply_filters( 'jetpack_must_log_in_to_comment', __( 'You must log in to post a comment.', 'jetpack' ) ), wp_login_url( get_permalink() . '#respond' ) ) . '

        '; return; } if ( in_array( 'subscriptions', Jetpack::get_active_modules() ) ) { $stb_enabled = get_option( 'stb_enabled', 1 ); $stb_enabled = empty( $stb_enabled ) ? 0 : 1; $stc_enabled = get_option( 'stc_enabled', 1 ); $stc_enabled = empty( $stc_enabled ) ? 0 : 1; } else { $stb_enabled = 0; $stc_enabled = 0; } $params = array( 'blogid' => Jetpack_Options::get_option( 'id' ), 'postid' => get_the_ID(), 'comment_registration' => ( get_option( 'comment_registration' ) ? '1' : '0' ), // Need to explicitly send a '1' or a '0' for these 'require_name_email' => ( get_option( 'require_name_email' ) ? '1' : '0' ), 'stc_enabled' => $stc_enabled, 'stb_enabled' => $stb_enabled, 'show_avatars' => ( get_option( 'show_avatars' ) ? '1' : '0' ), 'avatar_default' => get_option( 'avatar_default' ), 'greeting' => get_option( 'highlander_comment_form_prompt', __( 'Leave a Reply', 'jetpack' ) ), /** * Changes the comment form prompt. * * @module comments * * @since 2.3.0 * * @param string $var Default is "Leave a Reply to %s." */ 'greeting_reply' => apply_filters( 'jetpack_comment_form_prompt_reply', __( 'Leave a Reply to %s' , 'jetpack' ) ), 'color_scheme' => get_option( 'jetpack_comment_form_color_scheme', $this->default_color_scheme ), 'lang' => get_bloginfo( 'language' ), 'jetpack_version' => JETPACK__VERSION, ); // Extra parameters for logged in user if ( is_user_logged_in() ) { $current_user = wp_get_current_user(); $params['hc_post_as'] = 'jetpack'; $params['hc_userid'] = $current_user->ID; $params['hc_username'] = $current_user->display_name; $params['hc_userurl'] = $current_user->user_url; $params['hc_useremail'] = md5( strtolower( trim( $current_user->user_email ) ) ); if ( current_user_can( 'unfiltered_html' ) ) $params['_wp_unfiltered_html_comment'] = wp_create_nonce( 'unfiltered-html-comment_' . get_the_ID() ); } $signature = Jetpack_Comments::sign_remote_comment_parameters( $params, Jetpack_Options::get_option( 'blog_token' ) ); if ( is_wp_error( $signature ) ) { $signature = 'error'; } $params['sig'] = $signature; $url_origin = set_url_scheme( 'http://jetpack.wordpress.com' ); $url = "{$url_origin}/jetpack-comment/?" . http_build_query( $params ); $url = "{$url}#parent=" . urlencode( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ) ); $this->signed_url = $url; $height = $params['comment_registration'] || is_user_logged_in() ? '315' : '430'; // Iframe can be shorter if we're not allowing guest commenting $transparent = ( $params['color_scheme'] == 'transparent' ) ? 'true' : 'false'; if ( isset( $_GET['replytocom'] ) ) { $url .= '&replytocom=' . (int) $_GET['replytocom']; } // The actual iframe (loads comment form from Jetpack server) ?>

        is_highlander_comment_post() ) { case 'facebook' : $comment_meta['hc_post_as'] = 'facebook'; $comment_meta['hc_avatar'] = stripslashes( $_POST['hc_avatar'] ); $comment_meta['hc_foreign_user_id'] = stripslashes( $_POST['hc_userid'] ); break; case 'twitter' : $comment_meta['hc_post_as'] = 'twitter'; $comment_meta['hc_avatar'] = stripslashes( $_POST['hc_avatar'] ); $comment_meta['hc_foreign_user_id'] = stripslashes( $_POST['hc_userid'] ); break; case 'wordpress' : $comment_meta['hc_post_as'] = 'wordpress'; $comment_meta['hc_avatar'] = stripslashes( $_POST['hc_avatar'] ); $comment_meta['hc_foreign_user_id'] = stripslashes( $_POST['hc_userid'] ); $comment_meta['hc_wpcom_id_sig'] = stripslashes( $_POST['hc_wpcom_id_sig'] ); //since 1.9 break; case 'jetpack' : $comment_meta['hc_post_as'] = 'jetpack'; $comment_meta['hc_avatar'] = stripslashes( $_POST['hc_avatar'] ); $comment_meta['hc_foreign_user_id'] = stripslashes( $_POST['hc_userid'] ); break; } // Bail if no extra comment meta if ( empty( $comment_meta ) ) return; // Loop through extra meta and add values foreach ( $comment_meta as $key => $value ) add_comment_meta( $comment_id, $key, $value, true ); } function capture_comment_post_redirect_to_reload_parent_frame( $url ) { if ( !isset( $_GET['for'] ) || 'jetpack' != $_GET['for'] ) { return $url; } ?> > <?php printf( __( 'Submitting Comment%s', 'jetpack' ), '…' ); ?>

        …' ); ?>

        in_jetpack = ( class_exists( 'Jetpack' ) && method_exists( 'Jetpack', 'enable_module_configurable' ) ) ? true : false; if ( $this->in_jetpack && method_exists( 'Jetpack', 'module_configuration_load' ) ) { Jetpack::enable_module_configurable( __FILE__ ); Jetpack::module_configuration_load( __FILE__, array( $this, 'jetpack_configuration_load' ) ); add_action( 'init', array( $this, 'sync_posts_init' ), 999 ); } require_once dirname( __FILE__ ) . '/publicize/publicize.php'; if ( $this->in_jetpack ) require_once dirname( __FILE__ ) . '/publicize/publicize-jetpack.php'; else { require_once dirname( dirname( __FILE__ ) ) . '/mu-plugins/keyring/keyring.php'; require_once dirname( __FILE__ ) . '/publicize/publicize-wpcom.php'; } require_once dirname( __FILE__ ) . '/publicize/ui.php'; $publicize_ui = new Publicize_UI(); $publicize_ui->in_jetpack = $this->in_jetpack; // Jetpack specific checks / hooks if ( $this->in_jetpack) { add_action( 'jetpack_activate_module_publicize', array( $this, 'module_state_toggle' ) ); add_action( 'jetpack_deactivate_module_publicize', array( $this, 'module_state_toggle' ) ); add_filter( 'jetpack_sync_post_module_custom_data', array( $this, 'sync_post_module_custom_data' ), 10, 2 ); // if sharedaddy isn't active, the sharing menu hasn't been added yet $active = Jetpack::get_active_modules(); if ( in_array( 'publicize', $active ) && !in_array( 'sharedaddy', $active ) ) add_action( 'admin_menu', array( &$publicize_ui, 'sharing_menu' ) ); } } function sync_posts_init() { $post_types = array( 'post', 'page' ); $all_post_types = get_post_types(); foreach ( $all_post_types as $post_type ) { // sync Custom Post Types that support publicize if ( post_type_supports( $post_type, 'publicize' ) ) { $post_types[] = $post_type; } } Jetpack_Sync::sync_posts( __FILE__, array( 'post_types' => $post_types, ) ); } function sync_post_module_custom_data( $custom_data, $post ) { if ( post_type_supports( get_post_type( $post ), 'publicize' ) ) { $custom_data['cpt_publicizeable'] = true; } return $custom_data; } function module_state_toggle() { // extra check that we are on the JP blog, just incase if ( class_exists( 'Jetpack' ) && $this->in_jetpack ) { $jetpack = Jetpack::init(); $jetpack->sync->register( 'noop' ); } } function jetpack_configuration_load() { wp_safe_redirect( menu_page_url( 'sharing', false ) ); exit; } } global $publicize_ui; new Jetpack_Publicize; /** * Helper functions for shared use in the services files */ class Publicize_Util { /** * Truncates a string to be shorter than or equal to the length specified * Attempts to truncate on word boundaries * * @param string $string * @param int $length * @return string */ public static function crop_str( $string, $length = 256 ) { $string = Publicize_Util::sanitize_message( $string ); $length = absint( $length ); if ( mb_strlen( $string, 'UTF-8' ) <= $length ) { return $string; } // @see wp_trim_words() if ( 'characters' == _x( 'words', 'word count: words or characters?', 'jetpack' ) ) { return trim( mb_substr( $string, 0, $length - 1, 'UTF-8' ) ) . "\xE2\x80\xA6"; // ellipsis } $words = explode( ' ', $string ); $return = ''; while ( strlen( $word = array_shift( $words ) ) ) { $new_return = $return ? "$return $word" : $word; $new_return_length = mb_strlen( $new_return, 'UTF-8' ); if ( $new_return_length < $length - 1 ) { $return = $new_return; continue; } elseif ( $new_return_length == $length - 1 ) { $return = $new_return; break; } if ( !$return ) { $return = mb_substr( $new_return, 0, $length - 1, 'UTF-8' ); } break; } return "$return\xE2\x80\xA6"; // ellipsis } /** * Returns an array of DOMNodes that are comments (including recursing child nodes) * * @param DOMNode $node * @return array */ function get_comment_nodes( $node ) { $comment_nodes = array(); foreach ( $node->childNodes as $child ) { if ( XML_COMMENT_NODE === $child->nodeType ) { $comment_nodes[] = $child; } if ( $child->hasChildNodes() ) { $child_comment_nodes = self::get_comment_nodes( $child ); $comment_nodes = array_merge( $comment_nodes, $child_comment_nodes ); } } return $comment_nodes; } /** * Truncates HTML so that its textContent (text without markup) is shorter than or equal to the length specified. * The length of the returned string may be larger than the specified length due to the markup. * Attempts to truncate on word boundaries. * * @param string $string * @param int $length * @param array $allowed_tags KSES input * @return string */ function crop_html( $string, $length = 256, $allowed_tags = array() ) { $tags = $GLOBALS['allowedtags']; // Markup allowed in comments... $tags['img'] = array( // ... plus images ... 'alt' => true, 'height' => true, 'src' => true, 'width' => true, ); // ... and some other basics $tags['p'] = array(); $tags['ul'] = array(); $tags['ol'] = array(); $tags['li'] = array(); $tags['br'] = array(); $tags = array_merge( $tags, $allowed_tags ); // Clean up, then KSES to really lock it down $string = trim( (string) $string ); $string = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $string ); $string = wp_kses( $string, $tags ); $string = mb_convert_encoding( $string, 'HTML-ENTITIES', 'UTF-8' ); $dom = new DOMDocument( '1.0', 'UTF-8' ); @$dom->loadHTML( "$string" ); // suppress parser warning // Strip comment nodes, if any $comment_nodes = self::get_comment_nodes( $dom->documentElement ); foreach ( $comment_nodes as &$comment_node ) { $comment_node->parentNode->removeChild( $comment_node ); } if ( $comment_nodes ) { // Update the $string (some return paths work from just $string) $string = $dom->saveHTML(); $string = preg_replace( '/^/', '', $string ); $string = str_replace( array('', '', '', '' ), array( '', '', '', '' ), $string ); $string = trim( $string ); } // Find the body $body = false; foreach ( $dom->childNodes as $child ) { if ( XML_ELEMENT_NODE === $child->nodeType && 'html' === strtolower( $child->tagName ) ) { $body = $child->firstChild; break; } } if ( !$body ) { return self::crop_str( $string, $length ); } // If the text (without the markup) is shorter than $length, just return if ( mb_strlen( $body->textContent, 'UTF-8' ) <= $length ) { return $string; } $node = false; do { $node = self::remove_innermost_last_child( $body, $node_removed_from ); $new_string_length = mb_strlen( $body->textContent, 'UTF-8' ); } while ( $new_string_length > $length ); $new_string = $dom->saveHTML( $body ); $new_string = mb_substr( $new_string, 6, -7, 'UTF-8' ); // 6: , 7: if ( !$node ) { return $new_string ? $new_string : self::crop_str( $string, $length ); } $append_string_length = $length - $new_string_length; if ( !$append_string_length ) { return $new_string; } if ( $append_string_length > 1 && XML_TEXT_NODE === $node->nodeType ) { // 1: ellipsis $append_string = self::crop_str( $node->textContent, $append_string_length ); // includes ellipsis $append_node = $dom->createTextNode( $append_string ); $node_removed_from->appendChild( $append_node ); $new_string = $dom->saveHTML( $body ); $new_string = mb_substr( $new_string, 6, -7, 'UTF-8' ); } elseif ( $append_string_length > 9 && XML_ELEMENT_NODE === $node->nodeType && 'p' == strtolower( $node->nodeName ) ) { // 9: '

        X{\xE2\x80\xA6}

        ' $new_string .= '

        ' . self::crop_str( $node->textContent, $append_string_length - 8 ) . '

        '; } // Clean up any empty Paragraphs that might have occurred after removing their children return trim( preg_replace( '#

        \s*

        #i', '', $new_string ) ); } function remove_innermost_last_child( $node, &$node_removed_from ) { $node_removed_from = $node; if ( !$node->lastChild ) { return false; } if ( $node->lastChild->hasChildNodes() ) { return self::remove_innermost_last_child( $node->lastChild, $node_removed_from ); } $innermost_last_child = $node->lastChild; $node->removeChild( $innermost_last_child ); return $innermost_last_child; } function bump_stats_extras_publicize_url( $bin, $post_id ) { static $done = array(); if ( isset( $done[$post_id] ) ) { return; } $done[$post_id] = true; /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'publicize_url', $bin ); } public static function build_sprintf( $args ) { $search = array(); $replace = array(); foreach ( $args as $k => $arg ) { if ( 0 == $k ) { $string = $arg; continue; } $search[] = "%$arg%"; $replace[] = "%$k\$s"; } return str_replace( $search, $replace, $string ); } public static function sanitize_message( $message ) { $message = preg_replace( '@<(script|style)[^>]*?>.*?@si', '', $message ); $message = wp_kses( $message, array() ); $message = preg_replace('/[\r\n\t ]+/', ' ', $message); $message = trim( $message ); $message = htmlspecialchars_decode( $message, ENT_QUOTES ); return $message; } } if( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) && ! function_exists( 'publicize_init' ) ) { /** * Helper for grabbing a Publicize object from the "front-end" (non-admin) of * a site. Normally Publicize is only loaded in wp-admin, so there's a little * set up that you might need to do if you want to use it on the front end. * Just call this function and it returns a Publicize object. * * @return Publicize Object */ function publicize_init() { global $publicize; if ( ! class_exists( 'Publicize' ) ) { require_once dirname( __FILE__ ) . '/publicize/publicize.php'; } return $publicize; } } plugins/jetpack/modules/photon/0000755000312500031250000000000012654411246017242 5ustar eacbforgeacbforgplugins/jetpack/modules/photon/photon.js0000644000312500031250000000254212654411246021112 0ustar eacbforgeacbforg/* jshint onevar: false */ (function($){ /** * For images lacking explicit dimensions and needing them, try to add them. */ var restore_dims = function() { $( 'img[data-recalc-dims]' ).each( function recalc() { var $this = $( this ); if ( this.complete ) { // Support for lazy loading: if there is a lazy-src // attribute and it's value is not the same as the current src we // should wait until the image load event if ( $this.data( 'lazy-src' ) && $this.attr( 'src' ) !== $this.data( 'lazy-src' ) ) { $this.load( recalc ); return; } var width = this.width, height = this.height; if ( width && width > 0 && height && height > 0 ) { $this.attr( { width: width, height: height } ); reset_for_retina( this ); } } else { $this.load( recalc ); } } ); }, /** * Modify given image's markup so that devicepx-jetpack.js will act on the image and it won't be reprocessed by this script. */ reset_for_retina = function( img ) { $( img ).removeAttr( 'data-recalc-dims' ).removeAttr( 'scale' ); }; /** * Check both when page loads, and when IS is triggered. */ $( document ).ready( restore_dims ); if ( 'on' in $.fn ) { $( document.body ).on( 'post-load', restore_dims ); } else { $( document ).delegate( 'body', 'post-load', restore_dims ); } })(jQuery); plugins/jetpack/modules/custom-css.php0000644000312500031250000000153712651056012020543 0ustar eacbforgeacbforgYou failed to correctly answer the math problem. This is used to combat spam when the Protect API is unavailable. Please use your browser\'s back button to return to the login form, press the "refresh" button to generate a new math problem, and try to log in again.', 'jetpack' ), '', 401 ); } else { return true; } } /** * Creates an interim page to collect answers to a math captcha * * @return none, execution stopped */ static function generate_math_page( $error = false ) { $salt = get_site_option( 'jetpack_protect_key' ) . get_site_option( 'admin_email' ); $num1 = rand( 0, 10 ); $num2 = rand( 1, 10 ); $sum = $num1 + $num2; $ans = sha1( $salt . $sum ); ob_start(); ?>

          +     =  
        array (), ); foreach ( $local_whitelist as $item ) { if ( $item->range ) { $formatted['local'][] = $item->range_low . ' - ' . $item->range_high; } else { $formatted['local'][] = $item->ip_address; } } if ( is_multisite() && current_user_can( 'manage_network' ) ) { $formatted['global'] = array (); $global_whitelist = jetpack_protect_get_global_whitelist(); if ( false === $global_whitelist ) { // if the global whitelist has never been set, check for a legacy option set prior to 3.6 $global_whitelist = get_site_option( 'jetpack_protect_whitelist', array () ); } foreach ( $global_whitelist as $item ) { if ( $item->range ) { $formatted['global'][] = $item->range_low . ' - ' . $item->range_high; } else { $formatted['global'][] = $item->ip_address; } } } return $formatted; } /** * Gets the local Protect whitelist * * The 'local' part of the whitelist only really applies to multisite installs, * which can have a network wide whitelist, as well as a local list that applies * only to the current site. On single site installs, there will only be a local * whitelist. * * @return array A list of IP Address objects or an empty array */ function jetpack_protect_get_local_whitelist() { $whitelist = Jetpack_Options::get_option( 'protect_whitelist' ); if ( false === $whitelist ) { // The local whitelist has never been set if ( is_multisite() ) { // On a multisite, we can check for a legacy site_option that existed prior to v 3.6, or default to an empty array $whitelist = get_site_option( 'jetpack_protect_whitelist', array () ); } else { // On a single site, we can just use an empty array $whitelist = array (); } } return $whitelist; } /** * Get the global, network-wide whitelist * * It will revert to the legacy site_option if jetpack_protect_global_whitelist has never been set * * @return array */ function jetpack_protect_get_global_whitelist() { $whitelist = get_site_option( 'jetpack_protect_global_whitelist' ); if ( false === $whitelist ) { // The global whitelist has never been set. Check for legacy site_option, or default to an empty array $whitelist = get_site_option( 'jetpack_protect_whitelist', array () ); } return $whitelist; } function jetpack_protect_save_whitelist( $whitelist, $global = false ) { $whitelist_error = false; $new_items = array (); if ( ! is_array( $whitelist ) ) { return new WP_Error( 'invalid_parameters', __( 'Expecting an array', 'jetpack' ) ); } if ( $global && ! is_multisite() ) { return new WP_Error( 'invalid_parameters', __( 'Cannot use global flag on non-multisites', 'jetpack' ) ); } if ( $global && ! current_user_can( 'manage_network' ) ) { return new WP_Error( 'permission_denied', __( 'Only super admins can edit the global whitelist', 'jetpack' ) ); } // validate each item foreach ( $whitelist as $item ) { $item = trim( $item ); if ( empty( $item ) ) { continue; } $range = false; if ( strpos( $item, '-' ) ) { $item = explode( '-', $item ); $range = true; } $new_item = new stdClass(); $new_item->range = $range; if ( ! empty( $range ) ) { $low = trim( $item[0] ); $high = trim( $item[1] ); if ( ! filter_var( $low, FILTER_VALIDATE_IP ) || ! filter_var( $high, FILTER_VALIDATE_IP ) ) { $whitelist_error = true; break; } if ( ! jetpack_convert_ip_address( $low ) || ! jetpack_convert_ip_address( $high ) ) { $whitelist_error = true; break; } $new_item->range_low = $low; $new_item->range_high = $high; } else { if ( ! filter_var( $item, FILTER_VALIDATE_IP ) ) { $whitelist_error = true; break; } if ( ! jetpack_convert_ip_address( $item ) ) { $whitelist_error = true; break; } $new_item->ip_address = $item; } $new_items[] = $new_item; } // end item loop if ( ! empty( $whitelist_error ) ) { return new WP_Error( 'invalid_ip', __( 'One of your IP addresses was not valid.', 'jetpack' ) ); } if ( $global ) { update_site_option( 'jetpack_protect_global_whitelist', $new_items ); // once a user has saved their global whitelist, we can permanently remove the legacy option delete_site_option( 'jetpack_protect_whitelist' ); } else { Jetpack_Options::update_option( 'protect_whitelist', $new_items ); } return true; } function jetpack_protect_get_ip() { $trusted_header_data = get_site_option( 'trusted_ip_header' ); if ( isset( $trusted_header_data->trusted_header ) && isset( $_SERVER[ $trusted_header_data->trusted_header ] ) ) { $ip = $_SERVER[ $trusted_header_data->trusted_header ]; $segments = $trusted_header_data->segments; $reverse_order = $trusted_header_data->reverse; } else { $ip = $_SERVER['REMOTE_ADDR']; } $ips = explode( ',', $ip ); if ( ! isset( $segments ) || ! $segments ) { $segments = 1; } if ( isset( $reverse_order ) && $reverse_order ) { $ips = array_reverse( $ips ); } $ip_count = count( $ips ); if ( 1 == $ip_count ) { return jetpack_clean_ip( $ips[0] ); } elseif ( $ip_count >= $segments ) { $the_one = $ip_count - $segments; return jetpack_clean_ip( $ips[ $the_one ] ); } else { return jetpack_clean_ip( $_SERVER['REMOTE_ADDR'] ); } } function jetpack_clean_ip( $ip ) { $ip = trim( $ip ); // Check for IPv4 IP cast as IPv6 if ( preg_match( '/^::ffff:(\d+\.\d+\.\d+\.\d+)$/', $ip, $matches ) ) { $ip = $matches[1]; } return $ip; } /** * Checks an IP to see if it is within a private range * * @param int $ip * * @return bool */ function jetpack_protect_ip_is_private( $ip ) { // we are dealing with ipv6, so we can simply rely on filter_var if ( false === strpos( $ip, '.' ) ) { return ! filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ); } // we are dealing with ipv4 $private_ip4_addresses = array ( '10.0.0.0|10.255.255.255', // single class A network '172.16.0.0|172.31.255.255', // 16 contiguous class B network '192.168.0.0|192.168.255.255', // 256 contiguous class C network '169.254.0.0|169.254.255.255', // Link-local address also referred to as Automatic Private IP Addressing '127.0.0.0|127.255.255.255' // localhost ); $long_ip = ip2long( $ip ); if ( -1 != $long_ip ) { foreach ( $private_ip4_addresses as $pri_addr ) { list ( $start, $end ) = explode( '|', $pri_addr ); if ( $long_ip >= ip2long( $start ) && $long_ip <= ip2long( $end ) ) { return true; } } } return false; } /** * Uses inet_pton if available to convert an IP address to a binary string. * If inet_pton is not available, ip2long will convert the address to an integer. * Returns false if an invalid IP address is given. * * NOTE: ip2long will return false for any ipv6 address. servers that do not support * inet_pton will not support ipv6 * * @param $ip * * @return int|string|bool */ function jetpack_convert_ip_address( $ip ) { if ( function_exists( 'inet_pton' ) ) { return inet_pton( $ip ); } return ip2long( $ip ); } /** * Checks that a given IP address is within a given low - high range. * Servers that support inet_pton will use that function to convert the ip to number, * while other servers will use ip2long. * * NOTE: servers that do not support inet_pton cannot support ipv6. * * @param $ip * @param $range_low * @param $range_high * * @return bool */ function jetpack_protect_ip_address_is_in_range( $ip, $range_low, $range_high ) { // inet_pton will give us binary string of an ipv4 or ipv6 // we can then use strcmp to see if the address is in range if ( function_exists( 'inet_pton' ) ) { $ip_num = inet_pton( $ip ); $ip_low = inet_pton( $range_low ); $ip_high = inet_pton( $range_high ); if ( $ip_num && $ip_low && $ip_high && strcmp( $ip_num, $ip_low ) >= 0 && strcmp( $ip_num, $ip_high ) <= 0 ) { return true; } // ip2long will give us an integer of an ipv4 address only. it will produce FALSE for ipv6 } else { $ip_num = ip2long( $ip ); $ip_low = ip2long( $range_low ); $ip_high = ip2long( $range_high ); if ( $ip_num && $ip_low && $ip_high && $ip_num >= $ip_low && $ip_num <= $ip_high ) { return true; } } return false; }plugins/jetpack/modules/protect/protect-dashboard-widget.min.css0000644000312500031250000000277412651056012025600 0ustar eacbforgeacbforg#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7BAC48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:right;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7BAC48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#fafafa;border-bottom:1px #eee solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;right:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7BAC48;font-family:proxima-nova,"Open Sans",Helvetica,Arial,sans-serif;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px}plugins/jetpack/modules/protect/transient-cleanup.php0000644000312500031250000000310412654407444023563 0ustar eacbforgeacbforg time() || $older_than_time < 1 ) { return false; } $sql = $wpdb->prepare( " SELECT REPLACE(option_name, '_transient_timeout_jpp_', '') AS transient_name FROM {$wpdb->options} WHERE option_name LIKE '\_transient\_timeout\_jpp\__%%' AND option_value < %d ", $older_than_time ); $transients = $wpdb->get_col( $sql ); $options_names = array(); foreach( $transients as $transient ) { $options_names[] = '_transient_jpp_' . $transient; $options_names[] = '_transient_timeout_jpp_' . $transient; } if ($options_names) { $option_names_string = implode( ', ', array_fill( 0, count( $options_names ), '%s') ); $delete_sql = "DELETE FROM {$wpdb->options} WHERE option_name IN ($option_names_string)"; $delete_sql = call_user_func_array( array($wpdb, 'prepare'), array_merge( array( $delete_sql ), $options_names ) ); $result = $wpdb->query( $delete_sql ); if ( !$result ) { return false; } } return; } } function jp_purge_transients_activation() { if ( !wp_next_scheduled( 'jp_purge_transients_cron' ) ) { wp_schedule_event( time(), 'daily', 'jp_purge_transients_cron' ); } } add_action( 'admin_init', 'jp_purge_transients_activation' ); add_action( 'jp_purge_transients_cron', 'jp_purge_transients' ); plugins/jetpack/modules/protect/config-ui.php0000644000312500031250000000526612651056012022006 0ustar eacbforgeacbforgapi_key ) : // no api key, provide a button to get one ?>
        api_key_error ) ) : ?>

        api_key_error; ?>



        ' />

        whitelist_error ) ) : ?>

        whitelist_saved === true ) : ?>



        user_ip ); ?>

        To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100', 'jetpack' ); ?>

        ' />

        plugins/jetpack/modules/protect/protect-dashboard-widget.css0000644000312500031250000000353612651056012025013 0ustar eacbforgeacbforg/* loads inline on wp-admin in order to reduce http requests */ #protect_dashboard_widget .inside { margin: 0; padding: 0; text-align: center; } .jetpack-security * { box-sizing: border-box; } /* alert msgs */ #protect_dashboard_widget .msg { color: #fff; text-align: center; padding: 10px; } #protect_dashboard_widget .msg.working { background: #7BAC48; } #protect_dashboard_widget .msg.attn { background: #d94f4f; } #protect_dashboard_widget .msg a { color: #fff; text-decoration: underline; } #protect_dashboard_widget .msg a:hover { text-decoration: none; } #protect_dashboard_widget .msg .dashicons { float: right; text-decoration: none; border-radius: 2px; } #protect_dashboard_widget .msg.working .dashicons { color: #609643; } #protect_dashboard_widget .msg.working .dashicons:hover { background: #609643; color: #7BAC48; } #protect_dashboard_widget .msg.attn .dashicons { color: #a93838; } #protect_dashboard_widget .msg.attn .dashicons:hover { background: #a93838; color: #d94f4f; } .blocked-attacks, .file-scanning { position: relative; } .blocked-attacks { background: #fafafa; border-bottom: 1px #eee solid; padding-bottom: 35px; } .jetpack-security-sharing { width: 60px; display: inline-block; position: absolute; right: 0; top: 10px; } .jetpack-security-sharing a { color: #dcdcdc; } .jetpack-security-sharing a:hover { color: #cdcbcb; } .blocked-attacks h2, .blocked-attacks h3 { color: #7BAC48; font-family: "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; font-weight: 300; } .blocked-attacks h2 { font-size: 4em; line-height: 110%; margin: 0; padding: 10px 12px 10px 12px; } .blocked-attacks h3 { font-size: 1.1em; line-height: 110%; padding: 0 12px 10px 12px; margin: 0; } .jetpack-protect-logo { width: 50px; position: relative; } .file-scanning { margin-top: -30px; padding: 0 12px; }plugins/jetpack/modules/protect/protect-dashboard-widget-rtl.min.css0000644000312500031250000000277212651056012026375 0ustar eacbforgeacbforg#protect_dashboard_widget .inside{margin:0;padding:0;text-align:center}.jetpack-security *{box-sizing:border-box}#protect_dashboard_widget .msg{color:#fff;text-align:center;padding:10px}#protect_dashboard_widget .msg.working{background:#7BAC48}#protect_dashboard_widget .msg.attn{background:#d94f4f}#protect_dashboard_widget .msg a{color:#fff;text-decoration:underline}#protect_dashboard_widget .msg a:hover{text-decoration:none}#protect_dashboard_widget .msg .dashicons{float:left;text-decoration:none;border-radius:2px}#protect_dashboard_widget .msg.working .dashicons{color:#609643}#protect_dashboard_widget .msg.working .dashicons:hover{background:#609643;color:#7BAC48}#protect_dashboard_widget .msg.attn .dashicons{color:#a93838}#protect_dashboard_widget .msg.attn .dashicons:hover{background:#a93838;color:#d94f4f}.blocked-attacks,.file-scanning{position:relative}.blocked-attacks{background:#fafafa;border-bottom:1px #eee solid;padding-bottom:35px}.jetpack-security-sharing{width:60px;display:inline-block;position:absolute;left:0;top:10px}.jetpack-security-sharing a{color:#dcdcdc}.jetpack-security-sharing a:hover{color:#cdcbcb}.blocked-attacks h2,.blocked-attacks h3{color:#7BAC48;font-family:proxima-nova,"Open Sans",Helvetica,Arial,sans-serif;font-weight:300}.blocked-attacks h2{font-size:4em;line-height:110%;margin:0;padding:10px 12px}.blocked-attacks h3{font-size:1.1em;line-height:110%;padding:0 12px 10px;margin:0}.jetpack-protect-logo{width:50px;position:relative}.file-scanning{margin-top:-30px;padding:0 12px}plugins/jetpack/modules/videopress.php0000644000312500031250000000076012651056012020623 0ustar eacbforgeacbforg '', 'user_id' => 0, 'blog_id' => 0, 'auth_location' => JETPACK_CLIENT__AUTH_LOCATION, 'method' => 'POST', 'timeout' => 10, 'redirection' => 0, ); $args = wp_parse_args( $args, $defaults ); $args['blog_id'] = (int) $args['blog_id']; if ( 'header' != $args['auth_location'] ) { $args['auth_location'] = 'query_string'; } $token = Jetpack_Data::get_access_token( $args['user_id'] ); if ( !$token ) { return new Jetpack_Error( 'missing_token' ); } $method = strtoupper( $args['method'] ); $timeout = intval( $args['timeout'] ); $redirection = $args['redirection']; $request = compact( 'method', 'body', 'timeout', 'redirection' ); @list( $token_key, $secret ) = explode( '.', $token->secret ); if ( empty( $token ) || empty( $secret ) ) { return new Jetpack_Error( 'malformed_token' ); } $token_key = sprintf( '%s:%d:%d', $token_key, JETPACK__API_VERSION, $token->external_user_id ); require_once JETPACK__PLUGIN_DIR . 'class.jetpack-signature.php'; $time_diff = (int) Jetpack_Options::get_option( 'time_diff' ); $jetpack_signature = new Jetpack_Signature( $token->secret, $time_diff ); $timestamp = time() + $time_diff; if( function_exists( 'wp_generate_password' ) ) { $nonce = wp_generate_password( 10, false ); } else { $nonce = substr( sha1( rand( 0, 1000000 ) ), 0, 10); } // Kind of annoying. Maybe refactor Jetpack_Signature to handle body-hashing if ( is_null( $body ) ) { $body_hash = ''; } else { if ( !is_string( $body ) ) { return new Jetpack_Error( 'invalid_body', 'Body is malformed.' ); } $body_hash = jetpack_sha1_base64( $body ); } $auth = array( 'token' => $token_key, 'timestamp' => $timestamp, 'nonce' => $nonce, 'body-hash' => $body_hash, ); if ( false !== strpos( $args['url'], 'xmlrpc.php' ) ) { $url_args = array( 'for' => 'jetpack', 'wpcom_blog_id' => Jetpack_Options::get_option( 'id' ), ); } else { $url_args = array(); } if ( 'header' != $args['auth_location'] ) { $url_args += $auth; } $url = add_query_arg( urlencode_deep( $url_args ), $args['url'] ); $url = Jetpack::fix_url_for_bad_hosts( $url ); $signature = $jetpack_signature->sign_request( $token_key, $timestamp, $nonce, $body_hash, $method, $url, $body, false ); if ( !$signature || is_wp_error( $signature ) ) { return $signature; } // Send an Authorization header so various caches/proxies do the right thing $auth['signature'] = $signature; $auth['version'] = JETPACK__VERSION; $header_pieces = array(); foreach ( $auth as $key => $value ) { $header_pieces[] = sprintf( '%s="%s"', $key, $value ); } $request['headers'] = array( 'Authorization' => "X_JETPACK " . join( ' ', $header_pieces ), ); if ( 'header' != $args['auth_location'] ) { $url = add_query_arg( 'signature', urlencode( $signature ), $url ); } return Jetpack_Client::_wp_remote_request( $url, $request ); } /** * Wrapper for wp_remote_request(). Turns off SSL verification for certain SSL errors. * This is lame, but many, many, many hosts have misconfigured SSL. * * When Jetpack is registered, the jetpack_fallback_no_verify_ssl_certs option is set to the current time if: * 1. a certificate error is found AND * 2. not verifying the certificate works around the problem. * * The option is checked on each request. * * @internal * @see Jetpack::fix_url_for_bad_hosts() * * @return array|WP_Error WP HTTP response on success */ public static function _wp_remote_request( $url, $args, $set_fallback = false ) { /** * SSL verification (`sslverify`) for the JetpackClient remote request * defaults to off, use this filter to force it on. * * Return `true` to ENABLE SSL verification, return `false` * to DISABLE SSL verification. * * @since 3.6.0 * * @param bool Whether to force `sslverify` or not. */ if ( apply_filters( 'jetpack_client_verify_ssl_certs', false ) ) { return wp_remote_request( $url, $args ); } $fallback = Jetpack_Options::get_option( 'fallback_no_verify_ssl_certs' ); if ( false === $fallback ) { Jetpack_Options::update_option( 'fallback_no_verify_ssl_certs', 0 ); } if ( (int) $fallback ) { // We're flagged to fallback $args['sslverify'] = false; } $response = wp_remote_request( $url, $args ); if ( !$set_fallback // We're not allowed to set the flag on this request, so whatever happens happens || isset( $args['sslverify'] ) && !$args['sslverify'] // No verification - no point in doing it again || !is_wp_error( $response ) // Let it ride ) { Jetpack_Client::set_time_diff( $response, $set_fallback ); return $response; } // At this point, we're not flagged to fallback and we are allowed to set the flag on this request. $message = $response->get_error_message(); // Is it an SSL Certificate verification error? if ( false === strpos( $message, '14090086' ) // OpenSSL SSL3 certificate error && false === strpos( $message, '1407E086' ) // OpenSSL SSL2 certificate error && false === strpos( $message, 'error setting certificate verify locations' ) // cURL CA bundle not found && false === strpos( $message, 'Peer certificate cannot be authenticated with' ) // cURL CURLE_SSL_CACERT: CA bundle found, but not helpful // different versions of curl have different error messages // this string should catch them all && false === strpos( $message, 'Problem with the SSL CA cert' ) // cURL CURLE_SSL_CACERT_BADFILE: probably access rights ) { // No, it is not. return $response; } // Redo the request without SSL certificate verification. $args['sslverify'] = false; $response = wp_remote_request( $url, $args ); if ( !is_wp_error( $response ) ) { // The request went through this time, flag for future fallbacks Jetpack_Options::update_option( 'fallback_no_verify_ssl_certs', time() ); Jetpack_Client::set_time_diff( $response, $set_fallback ); } return $response; } public static function set_time_diff( &$response, $force_set = false ) { $code = wp_remote_retrieve_response_code( $response ); // Only trust the Date header on some responses if ( 200 != $code && 304 != $code && 400 != $code && 401 != $code ) { return; } if ( !$date = wp_remote_retrieve_header( $response, 'date' ) ) { return; } if ( 0 >= $time = (int) strtotime( $date ) ) { return; } $time_diff = $time - time(); if ( $force_set ) { // during register Jetpack_Options::update_option( 'time_diff', $time_diff ); } else { // otherwise $old_diff = Jetpack_Options::get_option( 'time_diff' ); if ( false === $old_diff || abs( $time_diff - (int) $old_diff ) > 10 ) { Jetpack_Options::update_option( 'time_diff', $time_diff ); } } } /** * Query the WordPress.com REST API using the blog token * * @param string $path * @param string $version * @param array $args * @param string $body * @return array|WP_Error $response Data. */ static function wpcom_json_api_request_as_blog( $path, $version = self::WPCOM_JSON_API_VERSION, $args = array(), $body = null ) { $filtered_args = array_intersect_key( $args, array( 'method' => 'string', 'timeout' => 'int', 'redirection' => 'int', ) ); /** * Determines whether Jetpack can send outbound https requests to the WPCOM api. * * @since 3.6.0 * * @param bool $proto Defaults to true. */ $proto = apply_filters( 'jetpack_can_make_outbound_https', true ) ? 'https' : 'http'; // unprecedingslashit $_path = preg_replace( '/^\//', '', $path ); // Use GET by default whereas `remote_request` uses POST if ( isset( $filtered_args['method'] ) && strtoupper( $filtered_args['method'] === 'POST' ) ) { $request_method = 'POST'; } else { $request_method = 'GET'; } $validated_args = array_merge( $filtered_args, array( 'url' => sprintf( '%s://%s/rest/v%s/%s', $proto, self::WPCOM_JSON_API_HOST, $version, $_path ), 'blog_id' => (int) Jetpack_Options::get_option( 'id' ), 'method' => $request_method, ) ); return Jetpack_Client::remote_request( $validated_args, $body ); } } plugins/jetpack/languages/0000755000312500031250000000000012651056012016222 5ustar eacbforgeacbforgplugins/jetpack/languages/jetpack-gl_ES.mo0000755000312500031250000011441412651056012021177 0ustar eacbforgeacbforgÞ•åD‡lˆ(‰( ™( ¦(F³(Gú(B)’I)Ü)ë)ü)* )* 4*C?*0ƒ*´*Å*‹Ô*©`+ ,,$,+,/,@,H,Z,5m, £,­,³, ·,Á,"Ñ,Bô,Z7-p’-. .%. @.K.^.|.S. á.ï. õ. / /Ú/ í/ú/ 000 0'060%I0o0Ž00²0Ò0á0û0121K1d1}1—1 1ª1½1Å1Ø1á1 ñ1 û12 22i42ž2 ¹25Æ2;ü283 L3W3^3n3„3 š3¤3·3¼3 Á3Ì3Ò3Ú3á3ô3 44/4B4`4h4 |4D4nâ4Q5¥b5C6L6S6X6a6p6‚6 ˆ6$–6 »6[Æ6"737vC7Aº7ü78(8G8*N85y8¯8 ¸8Ã8Ì8Õ8æ8ö8 9 99/9D9Z9b9 g9-t9 ¢9­9µ9È9Ü9â9é9 ñ9þ9:¾:†Ç:_N; ®;º; ¿;Ë; Ô;MÞ; ,< 7<E<W<g<m<~< Ž< ™<¦< ¯<ã¼<k = >>v,>/£>cÓ>7?=?C?L? R? `? k? v?„? ˜?¦?«?%±?×? ö?@@ $@ /@ 9@ F@S@q@‹@ ‘@œ@£@ ¨@²@ º@Ç@Ð@Ù@–é@€A•A¦A«A°AÆA ÍA ÚAèAëABB'B6BTB YB gB uB ƒB‘B”B ¥B ²B,¾BFëB2COCmCuC|C‚CŠC ‘CŸC¤C´C ÅCÏCQÔC&D .D ;D GDUD/eD •D  D ­DºDÀD ÑD ÜDçD3ïD #E0E6E>EME _ElE ‚E ŒE—E ŸE©E7°E<èE%F ,F9F=FDFVFgF oF }F‹F šF ¦F´FÌFÒFäFG6 GWG _G€GHH H(H ;HEHLH\H nH{HŠH¡H9°H%êH II1I KI/XI;ˆIÄIÍIæIìI þI J K,K4K EK QK_K²pK#L8(LaL qL{L‘L¥LÀL.ÆLõL üL MMM /M9M?M-YM‡MM™MŸM§M ®M ¼MÆMÎM×MÜMíM òM8üM‘5N©ÇN§qO PÊ&P?ñP>1Q\pQ¡ÍQoR ŠRI«R õRÿRS SúS TT ,T9T?TUT\TdTvT{T T T ™T ¥T@²THóTHâb!c:cAcFc[c%ncK”ccàc‚DdÇdÏd(àd ee(*e SeQ`e ²eÀeÆe ÖeäeñéeÛfìfõf g gg"g@g>Wg,–gÃgÌgìghh%h;hRhfhzhŽh£hªh»h ËhÖh ñhýh ii (i 3i>isWiËiåi1þiN0jjœj «j¹j Ðj ñj kk5k}I}N}g} z}„}K‰}Õ}Ý}ñ}$~%~L<~ ‰~—~¨~¸~À~Ö~ ê~ ø~<BQ Z fr ‡‘® ·Á ÊÔMÝ;+€ g€s€„€€”€¨€ ÀÏ€ä€ù€  1OXprt v€ >‚F‚M‚_‚ w‚‚‚Š‚ ‚©‚łԂñ‚?ƒ.Eƒtƒ{ƒ’ƒ°ƒ7ÀƒGøƒ @„M„ i„s„ ‰„*”„¿… Ñ…Û…ñ…††Î †ï†L÷†D‡ Z‡h‡ˆ‡%£‡ɇÒ‡Õ‡ ۇ釈ˆ#ˆAˆ%IˆJoˆ ºˆ Lj Óˆáˆèˆïˆ þˆ ‰‰ "‰,‰>‰ D‰DN‰€“‰¥Š¥ºŠ `‹ßl‹7LŒU„ŒZÚŒ±5ç,ú\'Ž „ŽŽŽ“Ž›Ž¤Žª ½ËÛàøÿ#(, ;I _Fl³»ÃÓÙâHûED‘ Š‘O—‘ç‘'’ *’4’F’M’P’c’l’€’t ’“)“”C“Ø“ Þ“ì“”/”14”1f”>˜”F×”9•BX•›•j»•0&–JW–¢–½–.–0ñ–G"—2j—&—Ä—Æ— Ï— Û—æ—ë—ò—˜˜,˜4˜E˜ I˜T˜[˜c˜l˜u˜Ž˜—˜Ÿ˜ ¯˜¼˜И â˜ï˜ö˜ü˜ý„ÃÞRLÇÛÿJOj¹h¬'ÅY~V{É´’÷Ý¡õUÓÙŸü<ºtXÃ~(fêÑ…Q¿,9&8A„ ДiW|¥‰¡bΪ¤x†)ìÒ1]£œ)uÔ;Ø8Ào-û;J?ž«=@#²ÊX©,@.™Q%s ÊŒ ×(§%ø? $d½Ü›azˆuªE¨ÜMg2µj¢Zv#aÚËYÌ DãS³áâqÌ ZÄ•±Âͬä& T!°Sàš5ƽnÁ§¥}µ$‚\rŠÅú‡l7ícïp ²6ÙîÑ×° ô_F4 —F‡®PyÞåk»-­Œ£Ï}3>qÓhà‚p 1—\›Ršóƒ©玻.O¤{ñð"I4œrz:3ÔEÐÚTWÀ+‰g¯9ÕÛ™ßiž“'€æBÉ7Èk^N‘¿·*]U6³t•L2å"`è>BÈeKƒ”_Ò Ï¾ŠC¢D–0¹¸=[Õ¸–`ØGoI® äM¶ÖPºl!Ç^† ˜m‘w¾/ߎþÂÄVc¦ˆ5+ë[öÍKHéÎGCNw·¨y¼d:e±‹<Ö’˜¦«Ý*âò/­|Ëv€s¯¶fùáÆ‹…mbãAÁHŸnx“0¼´%1$s %2$s Views%1$s at %2$s%1$s on %2$s%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s is required« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 ReplyYour Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).ActivateActivate AkismetActiveAddAdd Contact FormAdd NewAdd a new serviceAdd or remove tagsAdditionally you can define your own custom services.Admin barAlbumAllAll postsAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog URL:BlueBring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Button styleCancelCancel replyCaption:CategoryCenterChart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsClichésClick to Press This!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterCloseColor SchemeComing soon…CommentComment navigationCommentsComplex PhrasesConfigureConfigure %sConnectConnect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.Connected to WordPress.comContact InfoContinue reading →Count the page views of registered users who are logged in.Create Share ButtonCrop ImageCustomCustom Message:Custom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay an image in your sidebarDisplay share menu and allow viewers to embed or download this videoDon’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Double NegativesDrag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEdit Selection...EmailEmail AddressEmail check failed, please try againEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Explain...FacebookFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFollow BlogFollow CommentsFollow me on TwitterFor more information:Format:FreeFree formatsFront Page, Archive Pages, and Search ResultsFront pageGalleryGravatar HovercardGravatar HovercardsGreenHeightHeight:Hidden VerbsHideHomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Settings:Image URL:Image title:InactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.JargonJetpack by WordPress.comJetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.LaTeXLabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLink URL (when the image is clicked):Links to your blog's RSS feedsLive PreviewLoading video...Loading…Loading...Logged InM j, Y @ G:iMain SidebarMark this message as NOT spamMark this message as spamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMetadataMissed scheduleModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreNameNewer Comments →NewestNext »Next » NoNo Projects found in TrashNo plugins found.No suggestionsNo tags found.No writing errors were found.NoneNot ConnectedNot connectedNothing FoundNotificationsOKOfficial buttonsOgg File URLOlder postsOnly display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhrases to AvoidPingback:PinkPlease note that your services have been restricted because your site is private.PluginsPost CommentPost by %s.Post by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProofread WritingProofreadingProudly powered by %sPublicizePublicize:PublishPublishedPurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RatingRecent PostsRedRedditRedundant PhrasesRegistered usersRelatedRelated PostsRelated postsRemove ServiceRemove logoRepeated WordReplace selection with:ReplyReport visibilityResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave configurationScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch PluginsSearch Results for: %sSearch resultsSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSeparate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing SettingsSharing URLSharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow a 'follow blog' option in the comment formShow buttons onShow moreShow sharing buttons.Show top posts overShow top search terms overShow:Shown between widget visibility conditions.orSilverSite NameSite StatsSitesSkip to primary contentSlideshowSmallSorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpellingStatsSubjectSubmitSubmit »SubscribeSupportTag nameTagsTerms of ServiceTextText onlyThe default content width for the %s theme is %d pixels.The old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There was an error communicating with the proofreading service.These settings change emails sent from your blog to followers.This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.ThumbnailTimeTitleTitle:To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.Top PostsTop Posts & PagesTop SearchesTrashTry connecting again.TumblrTwitterTwitter username:TypeURLUncategorizedUnpublishedUnsubscribeUpload ImageUse automatically detected language to proofread posts and pagesUsed in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueView AllView Mobile SiteView people's profiles when you mouse over their GravatarsViews over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.WP.me ShortlinksWarning! Multibyte support missing!WebsiteWhat’s a Hovercard?WhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width:WordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can add the following variables to your service sharing URL:You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Email AddressYour NameYour blog does not currently have any published posts.Your comment is awaiting moderation.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedandcancelclick hereconfiguredayeditedit texthttp://jetpack.mehttp://wordpress.org/in {category/tag name}In "%s"loading…monthnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadshare toEmailshare toFacebookshare toPress Thisshare toPrintshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 Vistas %1$s %2$s%1$s ás %2$s %1$s en %2$sQuere recibir actualizacións sobre Jetpack por correo electrónico? %sEstá subscrito para recibir actualizacións por correo electrónico. %shai %sNon se puido activar %s porque xerou un erro grave. Talvez houbera un conflito con outro engadido instalado?%s é obrigatorio« Anteriores← Comentarios máis antigos— Escoller —(sen título)(obrigatorio)%1$s en %2$sMáis detalles sobre estas opcións.% respostas1 respostaO seu Jetpack ten un fallo. Algo foi mal e non debería ter acontecido. Creo que é só sorte: %sO seu Jetpack ten un fallo. A conexión desta web con WordPress.com non é posible. Isto xeralmente significa que o sitio non está accesible publicamente (localhost).ActivarActivar AkismetActivoEngadirEngadir formulario de contactoEngadirEngadir un servizo novoEngadir ou eliminar etiquetasAdemais, pode definir os seus propios servizos personalizados.Barra de administraciónÃlbumTodoTodas as anotaciónsTexto alternativo:Unha liña de AutomatticUn/ha administrador/a deste blogue debe configurar a conexión con Jetpack.Houbo un erro ao crear o novo servizo de compartir. Comproba se os datos introducidos son válidos.Sentímolo, pero non houbo resultado ningún para o ficheiro requirido. Quizais unha procura axude a atopar un artigo relacionado.ArtistaPáxina do anexoRevisar automaticamente o contido cando:AutomatticServizos dispoñiblesOs códigos curtos dispoñibles son: %l.Cor do fondoNon esquezas premer "Actualizar perfil" ao pé da páxina para gardar os cambios.Linguaxe BiasNegroArquivo do blogURL do blogueAzulTraia o poder da nube de WordPress.com para o seu propio WordPress. Jetpack permite conectar o seu blogue a unha conta do WordPress.com para usar as súas poderosas funcionalidades normalmente dispoñibles só para usuarios de WordPress.com.Estilo do botónCancelarCancelar a respostaLenda:CategoríaCentroGráfica de estatísticas porFacendo trampas... ou?Comprobar actualizacións de estado por correo electrónico...Escoller entre as etiquetas máis utilizadasClichésPreme aquí para publicar isto!Enviar isto a unha amizadeImprimirCompartir en Google+Compartir en LinkedinCompartir en PinterestCompartir en PocketCompartir en RedditCompartir en TumblrCompartir en TwitterPecharEsquema de coresProximamente...ComentarioNavegación de comentariosComentariosFrases complexasConfigurarConfigurar %sConéctateConectar aConectar a WordPress.comConecta o teu blogue coas redes sociais para compartir os artigos novos coas túas amizades de maneira automática.Conectado a WordPress.comInformación de contactoSeguir lendo →Contar as páxinas vistas de usuarios/as rexistrados/as que iniciaron sesión.Crear un botón de compartirRecortar imaxePersonalizadoMensaxe personalizada:Eliminado o campo personalizado.Campo personalizado actualizado.PersonalizarArquivo por días: %sEscuroDataDesactivarDepurarPredeterminadoEliminarEliminar definitivamenteEliminar este elemento definitivamenteDescriciónSinais diacríticosDesactivar CSS e JSDesconectar de WordPress.comDescartarMostrar o texto da cabeceiraMostra unha imaxe na barra lateralMostrar o menú compartir e permitir incrustar ou descargar este vídeoNon cruce os fluxos! Debe permanecer conectado ao seu blogue cando autorice Jetpack.Dobles negaciónsArrastre e solte os servizos de compartir na sección de activación para que aparezan na súa páxina web, e arrastreos para a sección agochada para telos ocultos detrás dun botón.Arrastra e solta na caixa de embaixo os servizos que queiras activar.Correo-eEditarEditar CSSEditar elemento do menuEditar a selección ...Correo-eEnderezo de correo electrónicoFallou a verificación do correo-e, téntao outra vez.Baleirar SpamActivar a revisión para a seguinte gramática e regras de estilo ao escribir artigos e páxinas:Servizos activadosOpcións de InglésIntroduza un código curto directamente no editor do Artigo/Páxina para incorporar os medios embebidos. Para obter instruccións específicas siga as ligazóns inferiores.Introduce o URL dunha icona de 16x16px que queiras usar para este servizo.Detalles do erro: %sHoubo un erro ao botar ao lixo.Houbo un erro ao recuperar do lixo.Erro!Erro: escribe un enderezo de correo electrónico válido.Erro: hai que cubrir os campos obrigatorios (nome, correo electrónico).Exemplo:Explicar...FacebookDestacadoContido destacadoImaxes destacadasFeed(s) a mostrar:FeedbackSeguir este blogSeguir os comentariosSeguirme no TwiterPara máis información:Formato:GratisFormatos libresPáxina de inicio, páxinas de arquivos e resultados de procurasPáxina de inicioGaleríaGravatar HovercardTarxetas flotantes de GravatarVerdeAlturaAltura:Verbos ocultosOcultarInicioHovercards mellora as imaxes simples de Gravatar con información sobre a persoa: nome, biografía, fotos, información de contacto e outros servizos que empregan a rede, como Twitter, Facebook ou LinkedIn.Hovercards mellorara as imaxes simples de Gravatar con información sobre a persoa: nome, biografía, fotos, información de contacto e outros servizos.Hovercards ofrece unha boa forma de mostrar a súa presenza en Internet e axuda á xente a atopar o seu propio blogue.Enderezo IP:IconaIcona + textoURL da iconaSó iconaIdentificar palabras e frases a ignorar mentras se revisan os seus artigos e páxinas:Ignorar todosIgnorar sempreIgnorar suxestiónFrases ignoradasImaxeAliñamento da imaxe:Opcións de imaxeURL da imaxe:Título da imaxe:InactivoInserir videoEn vez de escribir ou copiar e pegar URLs longos, agora pode obter unha ligazón curta e sinxela para os seus artigos e páxinas. Iso usa o nome de dominio super compacto wp.me, e dálle un URL exclusivo que pode usar e que vai ser seguro e de confianza.É perfecto para usar en Twitter, Facebook e mensaxes de texto por teléfono móbil onde cada caracter conta.XergaJetpack por WordPress.comJetpack non puido contactar con WordPress.com: %s. Isto xeralmente significa que algo está configurado incorrectamente no seu servidor.Jetpack esixe unha versión %s ou posterior de WordPress.Jetpack recarga o seu sitio con WordPress co incrible poder da nube de WordPress.com.LaTeXRótuloIdiomaEnormeÚltima modificaciónAprender máisAprender máisDeixar unha respostaDeixa unha resposta a %sDeixar unha respostaEsquerdaClaroURL da ligazón (cando se preme na imaxe):Ligazóns aos feeds RSS do blogVista previaCargando vídeoCargando…Cargando...rexistradoj M Y @ G:iBarra lateral principalMarcar esta mensaxe como NON spamMarcar esta mensaxe como spamMultimediaFicheiroMedioMenúElemento do menúMensaxeMensaxe enviadaMensaxesMetadatosPasou a dataO módulo non pode ser activado porque xerou un erro grave. Quizais houbese un conflito con outro engadido que instalou?Arquivo por meses: %sArquivos mensuaisMáisNomeComentarios máis recentes →Máis recentesSeguintes »Seguintes »NonNon se atoparon proxectos no lixoNon se atoparon plugins.Non hai suxestiónsNon se atoparon etiquetas.Non se atoparon erros na escrita.NingúnSen conexiónsSen conexiónsNon se atopou nadaNotificaciónsAceptarBotóns oficiaisURL do ficheiro OGGArtigos máis antigosMostrar só vídeos en formatos de software libreningún subconxuntoactivadaAbrir a ligazón nunha nova xanela/separadorOpciónsLaranxaOrdenarPáxina %sPáxinas:Voz pasivaRutaLigazón permanente a %sFrases para evitarPingback:RosaTen en conta que estes servizos están reducidos por ser este blog privado.PluginsEnviar o comentarioArtigos de %s.Publicación por correo electrónicoNavegación de artigosA entrada non se enviou - comproba os teus enderezos de correo electrónico!Publicado porPublicado por %sPublicado en %sArtigosArtigos e comentariosPáxina dos artigosPublicar istoVista previaVista previa: débense gardar os cambios, senón perderanse.Menú primarioImprimirPrivacidadePrivacidadeRevisión da escritaRevisandoFornecido con orgullo por %sDivulgarDivulgar:PublicarPublicadoPúrpuraEngada un gráfico que mostre 48 horas de vistas na barra de administración.Sitúa o cursor sobre o teu Gravatar para ver o teu perfil.ValoraciónArtigos recentesVermelloRedditFrases redundantes Usuarios/as rexistrados/asRelacionadoArtigos relacionadosArtigos relacionadosEliminar o servizoEliminar o logotipoPalabra repetidaSubstituír a selección con:RespostaInforme de visibilidade RecuperarRecuperar do lixo este elementoDevolver ao remitente. Ups! Parece que escolleu o Jetpack incorrecto no correo, desactíveo e a continuación reactive o engadido Jetpack para obter un novo.DereitaGardarGardar os cambiosGardar a configuraciónProgramadoProcuraBuscar comentariosBuscar todoBuscar ficheiros multimediaBuscar pluginsResultados da procura de: %sResultados da buscaSeleccione os roles que poderán ver os informes estatísticos.Plataforma de publicación semántica persoal.EnviarEnviar a este enderezoSepara as etiquetas con comasNome do servizoOs servizos situados aquí aparecerán individualmente.Os servizos situados aquí quedarán ocultos baixo un botón Compartir.PreferenciasAs opcións están gardadasCompartirCompartir en FacebookCompartir:Comparta os seus artigos en Twitter, Facebook e noutros servizos. Vostede pode configurar os servizos para aparecer como iconas, texto ou ambos. Algúns servizos teñen opcións adicionais para amosar botóns intelixentes, como Twitter, que actualizará o número de veces que se comparta o artigo.Artigo compartidoCompartirOpcións de CompartirURL do servizoLendaCódigos curtos embebidosOs códugos curtos permítenlle incoprar medios de outros lugares no seu sitio de forma fácil e segura. Con só un código simple, pode dicirlle a WordPress que incorpore YouTube, Flickr e outros soportes.MostrarMostrar a opción 'Seguir este blogue' no formulario de comentariosMostrar os botóns enMostrar máisMostrar os botóns de compartirAmosar enriba os Top PostsAmosa enriba os termos máis buscadosMostrar:ouPrataNome do sitioEstatísticas do sitioSitiosSaltar ao contido principalPresentación de diapositivasPequenoSentímolo, non hai nada que sinalar.Sentímolo, o teu blog non pode compartir artigos por correo electrónico.Ordenar por:OrtografíaEstatísticasAsuntoEnviarEnviar » SubscriciónAxudaNome da etiquetaEtiquetasTermos de servizoTextoSó textoA largura predeterminada dos contidos para o tema %s é %d píxeles.Desactivouse a versión vella e pode eliminala do seu sitio.Desactiváronse as versións vellas e pode eliminalas do seu sitio.O revisor ten suxestións para este artigo. Seguro que quere publicar-lo? Prema Aceptar para publicar o seu artigo, ou Cancelar para ler as suxestións e editalo.O revisor ten suxerencias para este artigo. Seguro de querer actualiza-lo? Prema Aceptar para actualizar o seu artigo, ou Cancelar para ler as suxestións e editalo.Tema: %1$s.Existen moitos plugins e servizos que proporcionan estatísticas, pero os datos poden ser abrumadores. WordPress.com Stats fai as métricas máis populares de fácil comprensión a través dunha interface clara e atractiva.Houbo un erro de comunicación co servizo de revisión.Estas opcións cambian as mensaxes enviadas por correo desde o blogue aos seguidores.Esta galería contén %2$s foto.Esta galería contén %2$s fotos.Este plugin funcionará sen el, pero úsase o soporte multibyte se está dispoñible. Pode ver pequenos problemas con Tweets e outros servizos de compartición.Artigo compartido.Este artigo está protexido con contrasinal.Ese artigo está protexido con contrasinal. Introduce o contrasinal para ver os comentarios.MiniaturaHoraTítuloTítulo:Para ver hovercards, busque calquera artigo no seu blogue que teña comentarios. Se o ou a comentarista ten un hovercard asociado ao seu gravatar, faga clic sobre a imaxe e o hovercard aparecerá. Para desactivar hovercards, prema no botón Desactivar superior.Artigos destacadosO máis vistoO máis buscadoLixoTente conectar de novo.TumblrTwitterNome de usuario de Twitter:TipoURLSen clasificarNon publicadoAnular a subscriciónCargar imaxeUse a deteción automática do idioma para revisar artigos e páxinas.OcultarMostrarNome de usuarioValorVer todoVer sitio para móbiles Mostrar os perfiles de usuario cando se sitúe o cursor sobre o GravatarVistas sobre 48 horas. Prema para obter máis Estatísticas do sitio.VisibilidadeVisite Estatísticas do sitio para ver as súas estatísticas.Ligazóns curtas con WP.meAtención! Falta o soporte a Multibyte!Sitio webQue é Hovercard?BrancoéTítulo do widget:Largura:WordPress.com StatsNome de usuario de WordPres.comWordPress.com está a ter problemas e é incapaz de alimentar o seu Jetpack. Por favor, ténteo de novo máis tarde.Guau, iso soa nerd.Escribe un comentario ...Tamaño incorrecto. Parece que o seu Jetpack non encaixa. Perdeu tamaño? Prema en "Conectarse a WordPress.com" para axustar de novo o seu Jetpack.d/m/Yd/m/Y g:i:s AArquivo por anos: %sSiNon tes permiso para administrar este elemento.Non tes permiso para botar este elemento ao lixo,Non tes permiso para botar ao lixo este elemento.Pode ver o seu panel de estatísticas aquí.Podes engadir as variables seguintes ao URL do servizo para compartir:Non ten permisos suficientes para acceder a esta páxina.Subscribiuse para recibir actualizacións por correo electrónico.Compartiches este artigo con %sDebe permitir a conexión entre o seu sitio Jetpack e WordPress.com para activar estos incribles recursos.Debe rexistrar o seu Jetpack antes de conectalo.Non recibirá máis actualizacións por correo electrónico sobre jetpack.O teu enderezo de correo-eNomeO teu blogue non ten artigo ningún publicado.O teu comentario está á espera de moderación.O seu sitio web ten que ser accesible ao público para usar Jetpack: %sun artigo ou páxina é publicado por primeira vezactualizouse un artigo ou unha páxinaeCancelarpreme aquíConfigurardíaeditareditar o textohttp://jetpack.mehttp://gl.wordpress.org/En "%s"Cargando…mesComentario%s se:revisarCorreo-eFacebookCompartir con Press ThisImprimirTwitterno último díao mes pasadoo trimestre pasadona última semanao ano pasadosemanawords%1$s \á\s %2$splugins/jetpack/languages/jetpack-nn_NO.mo0000755000312500031250000006134112651056012021215 0ustar eacbforgeacbforgÞ•ÆL_|ø% ù% & & &'&!6&X&i&& –& ¡&¬&0»&ì&ý& ''' '1'9'K'^'q'z'€'„'•' §' ´' ¾'Ë' Û'è'%ø'(1(SB(–( œ( ª(´( ¹(Æ(Í(ä( ë(ø() )) )&) 9)G)f)n)‡)¡) §)´)¼)Î) ×)á) é)iô) ^* h*5u* «*¶*È* Ï*Ú*ê*+ + $+.+3+F+K+ P+[+c+j+ }+ ‰+”+/¨+ Ø+!ù+%,A,R,[,q,x,},†, •,¢,´,Æ, Ì,Ú, é,ô,--*%-5P-†- -š-£-¬-½-Í-á- ê-ö- . .(.>. F.S. X.c.k.r.ƒ.‰..ƒ˜./!/&/ -/9/ >/J/ S/ ]/ h/v/ˆ/Ž/ Ÿ/ ¬/·/ Ç/ Ó/ Þ/ë/ó/ ü/ 00*030<0 B0 P0 [0f0 00 £0±0¶0 »0Æ0n×0F1%O1<u1²1»1 Ú1ç1ø1 22 -2 82B2G2e22ˆ2™2 Ÿ2ª2±2 ¶2À2Ð2á2ç2 ï2ü23 3 !3.3A3V3g3l3$}3 ¢3¬3±3Ç3 Î3 Û3é3ì3þ344.4?4 D4 R4 `4 n40|4­4É4Ì4 Ý4ê4 ó4ÿ4,5!@5b5€5”5œ5£5©5±5¸5½5Í5 Ô5Þ5ã5666 %6 26 >6 L6 W6 d6q6w6ˆ663™6Í6 Ó6à6æ6î6 ý6 7 7#727C7 L7Y7o7 Œ7 –7¡7 ©7³7 º7 Ä7Ò7 Ù7æ7ê7 ò7 88 8)8/8M86k8¢8ª8³8¹8 ¾8 Ë8Õ8Ü8 ì8ù8 9$9 39>9+T9€9(š9Ã9Ì9å9 ÷9: ::#:(: 7:B: W:c::s: ®:º: Ã:"Í: ð:;';G;.M;|; ƒ; ; š; ¤;¯;´;¼;Á;Ê;Ï;Ø;Þ;å;÷; þ;<< <)<.<G<X<]< p< z< „<‘<B˜<fÛ<B= ]=I~=,È= õ=ÿ=> >> >!> 7>D>J>R>d>j> n> |> ˆ>–> ©> ¶>Ã>!Þ>H?HI?’?›? ¡? ¬?·?À?Ù?è? ù?@ @@ %@3@:@Z@v@@ @¦@º@(¾@3ç@;A!WAQyAËA ÞA6èA$BDB^BbBzBB…B ŠB”B¤B ªB ËB'ØBCC!C5CDCTC eCrCC ’C  C®C&³C1ÚCì DùDE E$E-E®‚{ 5n”(ǹ>›`tléïÝmŸBd |X‹„bD‰çp-‘Ylȧ¥À;WëI¶<¢CƒwUNA8aJþÿ—`s¾O‡ v.’ô”až³¶φ±Ÿo, ²†%¸N9üèÞ¥‹;¨ËXS⿦J9ŽF’·Zù»g¬?ÓŽšTõ%1$s at %2$s%1$s on %2$s%s (Jetpack)%s ago%s is required%s requires a valid email address« Previous← Older Comments— Select —(no title)(required)404 error pageLearn more about these options.% Replies1 ReplyActivateActiveAddAdd Contact FormAdd NewAdd a new serviceAdd another optionAdd or remove tagsAddress:AlbumAllAll Project TagsAll Project TypesAll ProjectsAll postsAlphabeticalAlternate text:Archive pageAttachment PageAutomatically proofread content when:Available ServicesBackground colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.BlackBlog ArchivesBlog URL:BlueButton styleCameraCan I add more fields?CancelCancel replyCaption:CarouselCategoryCenterChange logoCheatin’ uh?Choose ImagesChoose from the most used tagsCirclesClick to share on TumblrClick to share on TwitterCloseColor SchemeCommentComment Likes areCommentsConfigureConnectConnect toConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedContact InfoContinue reading →Crop ImageCurrently ReadingCustomCustom CSSCustom Message:Custom field deleted.Custom field updated.Customer NameCustomizeDOWNDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDescriptionDisconnectDisplay Header TextDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay your books from GoodreadsDon't show the Reblog button on postsDouble NegativesDownloadDrop images to uploadE-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Selection...Edit Your ProfileEmailEmail AddressEmail settingsEmpty SpamEnabled ServicesEnter your email addressError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Explain...FacebookFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFollow BlogFollow me on TwitterFollower SettingsFood MenusFor more information:Format:Free formatsFromFront pageGalleryGoogleGravatar ProfileGreenHeightHeight:Hi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHideHomeHours:IP Address:IconIcon + textIcon URLIcon onlyIgnore allIgnore alwaysIgnore suggestionImageImage Alignment:Image Color:Image LinkImage Settings:Image Size:Image URL:Image title:Images:InactiveInsert VideoInvalid requestInvalid usernameJump to:LanguageLargeLast ModifiedLearn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLikeLike this:Likes and SharesLimit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link To:Link URL (when the image is clicked):Link to edit an HTML form field in contact form buildereditLinkedInLinks to your blog's RSS feedsLive PreviewLoading …Loading Comments...Loading video...Loading…Loading...Logged InLogoMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMediaMedia FileMediumMenuMenu ItemMenu ManagementMenu item saved.MenusMessageMessage SentMessagesMissed scheduleMobile AppsMobile ThemeMobile-compatible:Monthly Archives: %sMonthly archivesMoreMore informationMore information on using Publicize.My TweetsNameNewer Comments →NewestNext »Next » NoNo feedback foundNo plugins found.No suggestionsNo tags found.No themes found.NoneNot ConnectedNot connectedNothing FoundNotificationsNoun, as in: "This page is a date archive."DateNumber of Posts to Display:OKOfficial buttonsOgg File URLOlder %sOlder postsOn for all commentsOnly display videos in free software formatsOnly images can be uploaded here.Open link in a new window/tabOpens in new windowOptionsOrangeOrderPage %sPages:PathPermalink to %sPhone:Pingback:PinkPlease verify your birthday.PluginsPopularPopular Project TagsPost CommentPost by %s.Post by EmailPosted by Posted by %sPosted in %sPostsPosts & CommentsPreviewPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProject TagProject TagsProject TypeProject saved.Project updated.ProjectsProofreadingProudly powered by %sProudly powered by WordPressPublicizePublicize:PublishPublishedPurpleRSS LinksRandom Order:RatingRecent PostsRedRelatedRelated PostsRelated postsRemove ServiceRemove logoReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreResults:RightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch Project TagsSearch Results for: %sSearch resultsSend EmailSend to Email AddressSent by an unverified visitor to your site.Separate tags with commasService: Account connected as%1$s: %2$sSettingsSettings have been savedShare on FacebookShare this:SharedSharingSharing SettingsShowShow Excerpts:Show FacesShow Featured Image:Show StreamShow buttons onShow falling snow on my blog until January 4th.Show likes.Show mapShow moreShow profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow:Shown between widget visibility conditions.orSilverSimilar postSite LogoSite NameSite StatsSkipSnippetSnowSort by:SpamSpellingStatsStyle:Stylesheet saved.SubmitSubscribeSubscribe to %sSupportTag nameTagsTake WordPress with you.Terms of ServiceTextText & Image LinksText LinkText onlyTheme: %1$s.ThemesThere are no posts to display. Want more traffic?There was a problem connecting to %s to create an authorized connection. Please try again in a moment.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This video is intended for mature audiences.ThumbnailTimeTime:TitleTitle:Top PostsTop Posts & PagesTop SearchesTrashTwitterTwitter username:TypesURLUncategorizedUnpublishedUntitled PostUpdate Project TagUpload ImageUploading...Use Markdown for comments.Use Markdown for posts and pages.Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVaultPressVideoPressView AllView Full Profile →View Full SiteView Mobile SiteVisibilityWebsiteWhat's a Gravatar?WhiteWidget title:Width:With 1 commentWith %s commentsWordPress.com Reblog ButtonWordPress.com UsernameWrite a Comment...Y/m/dYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.You have shared this post with %sYou need to select what to show in this Gravatar Profile widget.Your Email AddressYour NameYour blog does not currently have any published posts.Your comment is awaiting moderation.[%s] Joining confirmationandas sharing sourceEmailcanceldayeditedit textloading…monthmy list of books to readTo ReadnounCommentpast participle: books I have readReadshare toEmailshare toFacebookshare toPress Thisshare toPrintshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-08-21 12:56:31+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s ved %2$s %1$s den %2$s %s (Jetpack)%s sidan%s er pÃ¥kravd%s krev ei gyldig e-postadresse« FøregÃ¥ande← Eldre kommentarar— Vel —(ingen tittel)(pÃ¥kravd)404 feilsideLær meir om desse innstillingane.% svar1 SvarSlÃ¥ pÃ¥AktivLegg tilLegg til kontaktskjemaLegg til nyLegg til ny tenesteLegg til eit nytt valLegg til eller fjern stikkordAddreses:AlbumAlleAlle prosjektstikkordAlle prosjekttyparAlle prosjektAlle innleggAlfabetiskAlternativ tekst:ArkivsideVedleggsideAutomatisk korrekturles innhald nÃ¥r:Tilgjengelege tenesterBakgrunnsfargeHugs Ã¥ klikke pÃ¥ "Oppdater profil" nederst pÃ¥ skjermen for Ã¥ lagre endringane.SvartBloggarkivBlogg-URL:BlÃ¥KnappestilKameraKan eg leggje til fleire felt?AvbrytAvbryt svarBilettekst:KarusellKategoriMidt pÃ¥Endre logoJuksar du’? Vel bileteVel frÃ¥ mest brukte stikkordSirklarKLikk for Ã¥ dele pÃ¥ TumblrKlikk for Ã¥ dele pÃ¥ TwitterLat attFargeskjemaKommentarKommentar- «Likes» erkommentararKonfigurerKople tilKople tilKople saman bloggen din med sosiale nettverkssider og automatisk del nye innlegg med vennane dine.TilkoplaKontaktopplysningarLes meir →Skjer til bildetLes noTilpassaTilpassa CSSTilpassa melding:Tilpassa felt er sletta.Tilpassa felt oppdatert.KundenamnTilpassNEDDagarkiv: %s MørkDatoSkru avStandardSlettSlett permanentskildringKople frÃ¥Vis overskriftstekstVis ei miniutgÃ¥ve av Gravatar-profilen dinVis eit bilde i sidestolpenVis bøkene dine frÃ¥ GoodreadsIkkje vis ‹‹reblogg››-knappen pÃ¥ innleggDoble negativarLast nedSlepp bilde her for Ã¥ laste dei oppE-postRedigerRediger CSSEndra menyoppføringaRediger prosjektRediger utval …Rediger profilen dinE-postE-postadresseE-postinnstillingarTøm søppelPÃ¥slÃ¥tte tenesterSkriv inn e-postadressa diFeil!Feil: skriv inn ei gyldig e-post-adresse.Feil: Gjer vel og fyll ut dei obligatoriske felta (namn, e-post).Døme:Forklar …FacebookFramhevaFaamheva innhaldFramheva innleggKjelde(r) Ã¥ vise:TilbakemeldingFølg bloggenFølg meg pÃ¥ TwitterFølgar-innstillingarMatmenyarFor meir informasjon:Format: Frie formatFrÃ¥FramsideGalleriGoogleGravatarprofilGrønHøgdeHøgde:Hei, '%1$s' har invitert deg til Ã¥ vera med pÃ¥ %2$s som %3$s. Klikk pÃ¥ denne lenkja om du vil stadfesta invitasjonen: %4$sSkjulHeimTimar:IP-adresse:IkonIkon + tekstIkon-URLBerre ikonIgnorer alleOversjÃ¥ alltidOversjÃ¥ forslagBildeBildeplassering:Bildefarge:BildelenkjeBildeinnstillingar:Bildestorleik:Bilde-URL:Bildetittel:Bilete:Ikkje aktivSet inn video.Ugyldig førespurnadUgyldig brukarnamnHopp til:SprÃ¥kStorSist modifisertLes meirLes meirLær meir om Markdown.Legg att eit svarLegg att svar til %sLegg att eit svarVenstreLikLik dette:Like og delingAvgrens breidde til %1$s pikslar for videoar, fullstørrelsebilde og andre kortkodar. (Meir info.)Lenke til:Link-URL:redigerLinkedInLenkjer til RSS-kjeldene dine pÃ¥ bloggen dinDirekte førehandsvisingLastar …Lastar kommentarar …Lastar video …Lastar…Lastar …innloggaLogoMerk denne meldinga som IKKJE søppelMerk denne meldinga som «spam»MarkdownMarkdown-innhaldMediaMediafilMediumMenyMenyoppføringMenyhandteringMenyelement lagra.MenyarMeldingMelding sendtMeldingarTapt publiseringMobil-apparMobiltemaMobil-kompatibelMÃ¥nadleg arkiv: %s MÃ¥nadleg arkivMeirMeir informasjonMeir informasjon om Ã¥ bruka Publicize.Mine twitringarNamnNyare kommentarar →NyasteNeste » Neste » NeiFann ingen tilbakemeldingarFann ingen innstikk.Ingen forslagFann ingen merkelappar.Fann ingen bunader.IngenIkkje tilkoplaIkkje tilkoplaFann ingentingVarselDatoTal pÃ¥ innlegg Ã¥ vise:OKOffisielle knapparOggfil-URLEldre %s Eldre innleggPÃ¥ for alle kommentararVis berre videoar i frie programvareformatBerre bilde kan lastast opp herOpne lenkje i nytt vindauge/ny faneVert opna i nytt vindaugeInnstillingarOransjeRekkjefølgjeSide %sSider:BaneDirektelenkje til %sTelefon:Tilbakeping:RosaStadfest fødselsdagen din.ProgramtilleggPopulærePopulære prosjektstikkordSend kommentarenInnlegg av av %s.Post med e-postPosta avPosta av %sPosta under %s InnleggInnlegg og kommentararFørehandsvisingFørehandsvising:Førehandsvising: endringar mÃ¥ lagrast om ikkje du vil miste dei PrisPrimærmenySkriv utPersonvernPersonvernpraksisProsjektmerkelappProsjekt-stikkordProsjekt-typeProsjekt lagra.Prosjekt oppdatert.ProsjektKorrekturlesingStolt driven av %sStolt driven av WordPress PubliserPublisering:PubliserPublisertPurpurRSS-lenkjerTilfeldig rekkjefølgje:VurderingSiste innleggRaudLIknande innhaldLiknande innleggLiknande innleggFjern tenesteFjern logoSvar Bygg oppattResultat:HøgreLagreLagre endringarPlanlagd publisertSøkSøk i kommentararSøk i mediaSøk i prosjekt-stikkordSøkjeresultat for: %sSøkeresultatSend e-post:Send til e-postadresseSendt av ein ikkje stadfesta besøkjande pÃ¥ sida di.Skil stikkord med komma%1$s: %2$sInnstillingarInnstillingane er lagraDel pÃ¥ FacebookDel dette:DeltDeleDeleinnstillingarVisVis utdrag:Vis fjesVis framheva bilde:Vis straumVis knappar i/pÃ¥Vis fallande snø pÃ¥ bloggen min til 4. januarth.Vis «Likes»Vis kartVis meirVis profilfoto i innstikket.Vis liknande innhald etter innleggVis deleknapp.Vis ‹‹reblogg››-knappen pÃ¥ innleggVis:ellerSølvLiknande innleggSidelogoNamn pÃ¥ nettsidaSidestatistikkHopp overSnuttSnøSorter etter:SøppelStavingStatistikkStil:Stilsett lagra.Send innAbonnerAbonner pÃ¥ %sBrukarstøtteNamn pÃ¥ merkelappStikkordTa med deg WordPress.TenestevilkÃ¥rTekstTekst og bildelenkjerTekstlenkjeBerre tekstTema: %1$s.TemaHer er ingen innlegg Ã¥ vise. Vil du ha meir trafikk?Problem med Ã¥ kople til %s for Ã¥ lage eit godkjend samband. Prøv igjen snart.Dette innlegget er no delt.Dette innlegget er verna med passord.Denne posta er passord-beskytta. Skriv inn passordet for Ã¥ sjÃ¥ alle kommentarane.Denne videoen er meint for eit vakse publikum.MiniatyrbildeTidTid:TittelTittel:Mest populære innleggMest populære innlegg og siderToppsøkSøppelTwitter Twitter-brukarnamn:TyparURLUkategorisertIkkje publisertNamnlaust innleggOppdater prosjektmerkelappLast opp bildeLastar opp …Bruk Markdown for kommentarar.Bruk Markdown for innlegg og sider.SkjulVisBrukarnamnVerdiVaultPressVideoPressVis alleVis heile profilen →Vis heile sidaVis mobilsideSynlegheitNettsideKva er ein Gravatar?KvitSmÃ¥programtittel:Breidde:Med 1 kommentarMed %s kommentararWordPress.com ‹‹reblogg››-knappWordPress.com brukarnamnSkriv ein Kommentar …d.m.YÃ…rlege arkiv: %sJaDu har ikkje løyve til Ã¥ handsame dette elementet.Du har ikkje løyve til Ã¥ kaste dette elementet til søppelkassa.Du har ikkje dei nødvendige løyva for Ã¥ fÃ¥ tilgang til denne sida.Du har delt dette innlegget med %sDu mÃ¥ velja kva du vil visa i dette Gravatarprofil-innstikket.Di e-postadresseDitt namnBloggen din har for tida ingen publiserte innlegg.Kommentaren din ventar pÃ¥ Ã¥ verte moderert.Stadfest innmeldinga [%s]ogEpostAvbrytdagRedigerrediger tekstLastar…mÃ¥nadÃ… leseKommentarLeste-postFacebookTrykk detteSkriv utTumblrTwitterden siste dagenden siste mÃ¥nadendet siste kvartaletden siste vekadet siste Ã¥retvekeord%1$s %2$splugins/jetpack/languages/jetpack-si_LK.mo0000755000312500031250000015545212651056012021216 0ustar eacbforgeacbforgÞ• d½¬  +¡+¸+yË+|E,Â,-à,;- J- W-d-7y. ±.F¾.G/M/V/H]/¦/½/&Ö/ý/020H0`0 q0 |0C‡0Ë00Ú0 1,1>1G1N1 R1`1h1}11¡1 ¶1Ä1×1ç1í1ñ12 2Œ!2(®2 ×2ä2 ô23.373 G3R3e3 k3u3z3Ž3•3ž3§3®3 Á3Ï3 î3 ú34 44 4 %424 K4U4 p4 }4ˆ44¤4º4Ð4Õ4ä4é4 î4ù4G5qI5»5 Â5 Î5Ù5÷5+ÿ5+6@6T6El6/²6 â6/7S37C‡7Ë7Ò7×7é7ú7 8 84)8^8p8†8*™85Ä8ú889<9N9`9i9}9 †9“9¨9¾9Æ9 Ë9Ö9Þ9ï9ö9 ::!:;: B:O:W:\:6a: ˜:£:©: º: Ç: Ò: Ý:è: ø: ; ;;$; -;:;P;_;g; x;!„;¦; ·;Å;Õ;+î;/<%J<3p<c¤<?==H=G†=\Î=f+>X’>ë> ñ>ÿ> ? ? %?3? G?U?Z?q?w? |?‡?%™?<¿?"ü?.@N@Qm@ ¿@ Ê@ Ô@ ß@ì@ò@ ù@ A/ADAUAhAUxAbÎAA1BXsBkÌBd8CQCLïCOMXMoM†M£MÁMáM÷M NN0NMN_N~N‘N(¢N ËNÕNÚNëNïNOO$O +O 8OFO IO TO ^OhO yO†O˜O§O¶O »O ÜO3æOFP0aP)’P3¼PðPQ$Q'QŠ0Q-»QéQR$R,R3R9R@RTRiR}R’R—R¦RC«R+ïRS:SWSiS}S…S S ™S¤SªS »S ÆSÑSÙSßSåSíSüS T TT&T .T8TATHT\T cTpTItT ¾TÊTÐTîT6 UCUKUQU VU cUmUtU „U‘U¦U¸UÇUÜU@ëU,V(FVoV xV„V‰VœV «V¶VËV ßV ëV ÷VW.WMW TW aWkWqWwWf’WùW XXX(X0X 7XEXUX]XfX kX.wX¦X¬X2½XðXõX YY,Y<HYO…YÕY åYBòYS5Z+‰Z'µZ&ÝZ/[Y4[bŽ[ñ[J \NW\ ¦\°\µ\Å\Ë\Ò\é\ ï\û\ ]]] ] &]2]B]V]i]}]…]: ]HÛ]H$^m^v^|^Ž^  ^¬^Å^×^è^-ú^(_ ._&9_&`_‡__¢_ ¨_ ³_¿_Æ_ Ì_Ú_ê_%î_6`;K`‡`7§`sß`$Saxa8—aÐaèa ïaúawÿawb‰bŸb³bÒb äbQñbCcRcdctc†c™c©c½cÌcÜcìcýc&d1BdîtdAce(¥eÎeÙêfÄg âg ìg÷gh%,h:Rjj™«jƒEkÉkßk©ðk'šl'Âl=êlC(m=lm9ªm9ämn-6n&dn‹nœn^ºnBo#\o%€o¦o¼o8Øop?pDXpNpQìp8>qUwq)Íq÷q r/r5Mr+ƒrC¯róst—t(µtÞtñt%u +u'6u ^u#hu Œu#™u"½uàuöu v+vyw!¸w1Úw( x>5xtx?‡xLÇx_y ty1~y°y Ày7Íyzz"5zXzhz%~zC¤zèzu{9|{R¶{/ |Ù9|€}]”}xò}k~¿q1€A€2Z€A€DÏ€5.JŒy ‚B'‚:j‚¥‚™%ƒ¿ƒÓƒ8ãƒ5„R„+b„&Ž„µ„LÌ„9…S…g…z…—…Cª…"î…:†1L† ~†[ˆ†ä† ë†ø†‡ ‡– ‡+·‡ã‡)ü‡&ˆAˆ[ˆ%uˆ,›ˆ#Ȉ&ìˆ#‰ 7‰B‰2X‰=‹‰*ɉô‰4 ŠEBŠhˆŠ.ñŠ% ‹"F‹9i‹S£‹g÷‹f_ŒbÆŒ¿)éŽ Ž&Ž<Ž&OŽvŽ<†Ž#ÃŽ%çŽ% =3Qq=Ã.7>*T#S£÷X‘bi‘SÌ‘¿ ’%à’“ “ 4“@“V“i“ƒ“mš“9”IB”1Œ”ˆ¾”ÍG•r–¨ˆ–é1—혨 ™“²™ØFšà›œÙžœ‰xžÚ‚žù]ŸÓW Ñ+¡Ñý¡šÏ¢j£·ê£·¢¤ŽZ¥é¥æ‡¦Šn§ù§(¨"B¨e¨>|¨5»¨8ñ¨@*©+k©—©4 ©Õ©ñ© ª*ª=ªYª6lª+£ªϪéª2«8«(X«+«­«'Ì«'ô«¬4<¬/q¬¡¬±¬ Ьݬ/í¬ ­/*­Z­(j­o“­® ®%'®M®*T®<®¼® Ó®à®ò® ¯¯".¯%Q¯&w¯/ž¯-ί ü¯-°K°k°í°±± )± 6±C±_±:b± ±§±Mº±i³r³qˆ³ú³ ´ ´ 6´#D´$h´5´6ô ú´%µ -µX7µ`µYñµkK¶2·¶2ê¶·0·I·d· ‚·/·¿·#Ü·!¸ "¸,¸$E¸Fj¸±¸(и%ù¸¹5;¹q¹¹ ª¹+´¹à¹ð¹ ºUº.jº+™ºźǺɺ(˺ ôº»1»!L»n».~»%­»/Ó»¼%#¼;I¼+…¼Ü±¼B޽ ѽܽ#ò½¾8/¾Bh¾+«¾H×¾> ¿1_¿5‘¿yÇ¿AÀ[À bÀoÀŒÀ ¦À ³ÀYÀÀÁÂ#<Â`ÂKtÂÀÂÐÂ/àÂà 0Ã:à QÃ1[Ã~à Ä%%ÄyKÄ ÅÄ'ÏÄ÷Ä9ÅKÅdÅŽ€Å!Æ1Æ„HÆ¢ÍÆkpÇxÜÇqUÈgÇÈ#/É®SÉ7Êô:ʸ/ËèËÌ&Ì;ÌQÌ.hÌ —Ì8¤Ì.ÝÌ Í Í&Í(6Í_Í ~ÍHŸÍQèÍT:ÎÎf¯ÎÏ5ÏHÏ"aÏ „Ï(ŽÏ2·Ï#êÏKÐ2ZÐAÐDÏÐÑ1ÑKÑweÑsÝÑQÒInÒ ¸Ò+ÅÒñÒ Ó Ó Ó. Ó OÓhYÓdÂÓ|'Ô\¤ÔÕå‘ÕƒwÖkûÖƒg×ë×"Ø%ØBØÙ[Ø5ÙGÙ']Ù…Ù ”ÙžÙ½ÙØÙòÙ Ú!Ú!=Ú_Ú/oÚŸÚ¸ÚËÚäÚúÚ ÛÛaZÄG“5£­Y?ð‡Muýx´ËËŒõ<Â!x«ÿ”°²o2+â®0$¹¨‡ûmœ{|P™r1Î1±¢«^!ãÓÃYJ<›@5„ÆNäG€$õegà-ëz·øcfñC„B}¿ª¢L9ïbhf µ0¦rR: ¤¨Ä{ÜpÝÅ?½tÂäëɶ_4MíuìhÙ’#…Éžó†CP.\¼F \êæø¡AO)òlœ/Š %§©©URkL(  ƒßjWˆ–i–jÍqO޾ >µ/ö6)ÑçÌ‹a%yü¬|óc¤ÁdJ·d4Xn.“¶ÚÞé÷÷*˜á]¯=Q’ZÞÿÏûD—Ÿe"(¯¡Ö”y[•€‘†9ÐØŠ ÔmêwôN¿  Ç»ÊS8è®'»ÇEF¾;ân-ˆ¦‹›¸E 7Ko£…ŸÓÕIv³^HST@¥qþ3Ê~š±pÝAÁàÕ°Ò"t#Èîù³7Í+;þQ˜ýBI,ð´Û_ª¼Vg 8žX>Tú&òV¹¸å‰Uã,‘bílüvŒs‚:å}ȧHÔšÐ׬Ûö‚ÖáKèíñÙ‰wØ~ÑÎ]—çù ²6 ÀÌ*ú&•ìi½ï=ŽÏk'×Å2ßÀéôW3z Ò¥ÆÚæs[D`Ü`™º (Opens in new window)# of Tweets Shown:%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%s (Jetpack)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is not a valid command.%s is not a valid module.%s was not activated.%s was not deactivated.« Previous(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s404 error pageLearn more about these options.A problem with your XMLRPC file.A theme conflict.ActivateActiveAddAdd Menu ItemAdd NewAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd Site IconAdd or remove tagsAdd to section:AlbumAllAll Menu SectionsAll Project TagsAll ProjectsAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to access and edit my videosAlphabeticalAlternate text:Archive pageArtistAs in Premium. Premium module descriptionPaidAttachment PageAutomatticAvailable Modules:BlackBlog URL:BlueBorder Color (hex):CancelCaption:CategoryCenterCheatin’ uh?Choose ImagesChoose from the most used tagsChoose logoClick hereCloseCommentsConfigConfigureConfigure %sConnect to WordPress.comConnectedConnected to WordPress.comContact InfoCrop ImageCustomCustom Email AddressCustom field deleted.Custom field updated.DOWNDaily archivesDarkDateDeactivateDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDescriptionDisconnectDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay upcoming events from an iCalendar feed.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit Menu SectionEdit Project TagEdit Project TypeEdit Your ProfileEmpty SpamEnter a WordPress.com or Jetpack WordPress site URL.Error Details: %sError loading profileError, bad module.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageFacebook Like BoxFacebook Page URLFeaturedFeed(s) to Display:FeedbackFocal LengthFollow me on TwitterFor more information:Format:FreeFront pageGalleryGive Us FeedbackGlobalGravatar HovercardsGravatar ProfileGreenHave feedback on Jetpack?HeightHeight (px):Height:HideHomeIf empty, we will attempt to determine the image size.Ignore allImageImage Alignment:Image Color:Image GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Images:InactiveInsert VideoIs this site private?Items to show:JetpackJetpack CommentsJetpack FAQJetpack Network Settings Updated!Jetpack SettingsJetpack SitesJetpack SupportJetpack by WordPress.comJetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is not currently connected to WordPress.comJetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Label for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLargeLast ModifiedLayout Options:Learn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:Link Color (hex):Link URL (when the image is clicked):Link to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Loading...Logged InLogged OutM j, Y @ G:iMediaMediumMenu SectionMenu SectionsMenu item published. View itemMenu item saved.Menu item updated.Missed scheduleModule DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameJetpack CommentsModule NameLikesModule NameMarkdownModule NameMobile ThemeModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule NameWordPress.com StatsModule TagAppearanceModule TagDevelopersModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagSocialModule TagWordPress.com StatsModule TagWritingMonthly archivesMore information on using Related Posts.My TweetsNameNetwork SettingsNewNew Menu Sections NameNew Project Type NameNew RowNewestNext »Next » NoNo BordersNo FooterNo HeaderNo Modules FoundNo ScrollbarNo plugins found.No suggestionsNo tags found.NoneNotify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:OKOlder %sOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.One New Jetpack Module%s New Jetpack ModulesOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:PathPersonal LinksPinkPlay as in playback or view a movieJavaScript required to play %s.Please describe the problem you are having.Please specify a valid module.Please specify a valid user.Plugin activated.Plugin deactivated.PluginsPopularPost by %s.Post type:PostsPosts & CommentsPosts pagePress ThisPreviewPricePrintPrivacyPrivacy PolicyProjectProject TagProject TagsProjectsPublishPublishedPurchasePurpleRSS Links (Jetpack)RatingRecent PostsRedRefresh connection with {social media service}Refresh connection with %sRemove logoReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch Menu SectionsSearch Modules…Search PluginsSearch Project TypesSearch resultsSelect a user or pick "custom" and enter a custom email address.Separate tags with commasService: Account connected as%1$s: %2$sSettingsShare this:ShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow StreamShow likes.Show related content after postsShow:Shown between widget visibility conditions.orSilverSimilar postSite NameSitesSmallSomething is being cranky!Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sort by:Static page:Style:Sub-site overrideSubjectSubmitSubmit »Subscribe to %sSupportTag nameTagsTake SurveyTake a survey. Tell us how we’re doing.TermsTerms of ServiceTest your site’s compatibility with Jetpack.TextText & Image LinksText LinkThe Jetpack Version is %sThe menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe primary connection is owned by %s's WordPress.com account.Theme is empty.Theme: %1$s.There are no posts to display. Want more traffic?There seems to be a problem with your site’s ability to communicate with Jetpack!There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThese settings affect all sites on the network.This HTML form field is marked as required by the user in contact form builder(required)This module can only be altered by %s, the user who initiated the Jetpack connection on this site.This post has been shared!This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?ThumbnailTimeTimeline Theme:TitleTitle:Transparent BackgroundTrashTumblr blogTwitter TimelineTypeUPURLUncategorizedUnpublishedUpcoming EventsUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdatedUse a valid email address.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVerified ServicesVideo post by %s.Video post.View Full Profile →View Menu SectionView Project TagView Project TypeView _Plans_&_Pricing_. (VaultPress)View %s.View:VisibilityWe cannot display posts for this blog.We cannot load blog data at this time.WebsiteWhat's a Gravatar?WhiteWidget ID:Width (px):Width:Y/m/dY/m/d g:i:s AYearly archivesYesYou are required to specify a plugin.You cannot disconnect, without having first connected.You do not have sufficient permissions to access this page.You must specify a valid actionYou need to register your Jetpack before connecting it.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your comment is awaiting moderation.Your comment is in moderation.Your site isn’t securely reaching the Jetpack servers.as sharing sourceEmailcancelclick hereediterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.http://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in {category/tag name}In "%s"locales%1$s/%2$snounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:share toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterwatch a video titleWatch: %sword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-22 06:07:04+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (නව වින්ඩà·à·€à¶šà·’න් විවෘත වේ)පෙන්වන ට්වීට් #:අනිවà·à¶»à·Šà¶ºà¶ºà·™à¶±à·Š. නව පෙළ කොටුවක්, පෙළ à¶´à·Šâ€à¶»à¶¯à·šà·à¶ºà¶šà·Š, රේඩියà·, පිරික්සුම් කොටුවක්, à¶šà¶©à·à·„à·à¶½à·™à¶± à¶´à·Šâ€à¶»à¶¯à·šà·à¶ºà¶šà·Š එක්කිරීමට %1$s.ඔව්, පරිපà·à¶½à¶š පුවරුවේ "%1$s" යොමුව හරහ෠ඔබට à¶½à·à¶¶à·”à¶«à·” යà·à¶¢à¶±à· හ෠අදහස් ඕනෑම විටෙක කියවිය à·„à·à¶š.%1$s à¶´à·à¶­à·’දà·à¶»à¶º%1$s %2$s%1$s: %2$s%1$s දින %2$s à¶§%1$s %2$s à¶´à·’à·…à·’à¶¶à¶³%l à¶…à¶šà·Šâ€à¶»à·’යකළà·! සෑම ඒකකයකටම යà·à¶¶à¶¯à·€ ඇති සක්â€à¶»à·’ය යොමුව à¶·à·à·€à·’තයෙන් ඔබට à¶±à·à·€à¶­ ඕනෑම විටෙක එය සක්â€à¶»à·’ය à¶šà·… à·„à·à¶š.%l à¶…à¶šà·Šâ€à¶»à·’යකළà·! සෑම ඒකකයකටම යà·à¶¶à¶¯à·€ ඇති සක්â€à¶»à·’ය යොමු à¶·à·à·€à·’තයෙන් ඔබට à¶±à·à·€à¶­ ඕනෑම විටෙක ඒව෠සක්â€à¶»à·’ය à¶šà·… à·„à·à¶š.%l à¶šà·Šâ€à¶»à·’යà·à·€à·’රහිත කරන්න%s (ජෙට්පà·à¶šà·Š)ජෙට්පà·à¶šà·Š à¶´à·’à·…à·’à¶¶à¶³ යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± වීම් වි-à¶­à·à¶´à·à¶½à·Š හරහ෠අවà·à·Šâ€à¶º ද? %sඔබ වි-à¶­à·à¶´à·à¶½à·Š යà·à·€à¶­à·Šà¶šà·à¶½à·“නවීම් වලට දà·à¶ºà¶šà¶­à·Šà·€à¶º ගෙන ඇත. %s%s දà·à·‚යක්%s à¶§ පෙර%s විසන්ධි à¶šà·… නොහà·à¶šà·’ විය. ඒව෠දà·à¶±à¶§à¶¸à¶­à·Š සම්බන්ධ වී ඇති බවට විà·à·Šà·€à·à·ƒ ද?%s සක්â€à¶»à·’ය වී ඇත.%s à¶…à¶šà·Šâ€à¶»à·“ය වී ඇත.%s à·ƒà·à¶»à·Šà¶®à¶šà·€ විසන්ධි වී ඇත.%s යනු වලංගු විධà·à¶±à¶ºà¶šà·Š නොවේ.%s යනු වලංගු ඒකකයක් නොවේ.%s සක්â€à¶»à·’ය à¶šà¶» නොතිබුණි.%s à¶…à¶šà·Šâ€à¶»à·’ය à¶šà¶» නොතිබුණි.« කලින්(මà·à¶­à·˜à¶šà·à·€à¶šà·Š නොමà·à¶­)(à¶…à¶­à·Šâ€à¶ºà·€à·à·Šâ€à¶ºà¶ºà·’)%2$s à·„à·’ %1$s404 දà·à·‚ පිටුවමෙම විකල්ප à¶œà·à¶± තවත් ඉගෙනගන්න.ඔබේ XMLRPC ගොනුවෙහි à¶œà·à¶§à¶½à·”වක්තේම෠ගà·à¶§à·”මක්.සක්â€à¶»à·’ය කරන්නසක්â€à¶»à·’යඑකතුකරන්නමෙනු අයිතමය එක්කරන්නනවනව මෙනු කොටසක් එක්කරන්නනව ව්â€à¶ºà·à¶´à·˜à¶­à·’යක් එක්කරන්නනව ව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà¶ºà¶šà·Š එක්කරන්නනව ව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගයක් එක්කරන්නඅඩවි à¶½à·à¶‚ඡනය එක්කරන්නටà·à¶œ එක්කිරීම හ෠ඉවත්කිරීම කරන්නඅංà·à¶ºà¶§ එක්කරන්න:ඇල්බමයසියල්ලමෙනු කොටස් සියල්ලසියලු ව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà·ƒà·’යලු ව්â€à¶ºà·à¶´à·˜à¶­à·’තනි තනි අඩවි පරිපà·à¶½à¶šà¶ºà·’න් à·„à¶§ WordPress.com වෙත ඇති ඔවුන්ගේ සබඳත෠කළමනà·à¶šà¶»à¶«à¶º කරගà·à¶±à·“මට (සම්බන්ධ හ෠විසන්ධි කිරීමට) ඉඩදෙන්න.පරිà·à·“ලකයන්ට මගේ වීඩිය෠භà·à·€à·’තයට සහ සංස්කරණයට ඉඩදෙන්නඅකà·à¶»à·à¶¯à·“අතිරේක පෙළ:ලිපිගොනු පිටුවකලà·à¶šà¶»à·”ගෙවන ලදඇමිණුම් පිටුවAutomatticලබà·à¶œà¶­ à·„à·à¶šà·’ à¶’à¶šà¶š:කළුබ්ලොග් යොමුව:නිල්සීම෠වර්ණය (hex):අවලංගු කරන්නමà·à¶­à·˜à¶šà·à·€à·€à¶»à·Šà¶œà¶ºà¶¸à·à¶¯à·„ොර කරනව෠නේද à·„à·?රූප à¶­à·à¶»à¶±à·Šà¶±à·€à·à¶©à·’පුර à¶·à·à·€à·’à¶­à· à¶šà¶½ à¶§à·à¶œ වලින් à¶­à·à¶»à¶±à·Šà¶±à¶½à¶šà·”à¶«à¶šà·Š à¶­à·à¶»à¶±à·Šà¶±à¶¸à·™à¶­à¶± ඔබන්නවසන්නප්â€à¶»à¶­à·’à¶ à·à¶»à·„à·à¶©à¶œà·ƒà·Šà·€à¶±à·Šà¶±à·ƒà·à¶šà·ƒà·”ම%s à·„à·à¶©à¶œà·ƒà·Šà·€à¶±à·Šà¶±WordPress.com වෙත සම්බන්ධ කරන්න.සම්බන්ධිතයිWordPress.comà¶§ සම්බන්ධ විය.ඇමතුම් තොරතුරුපින්තූරය à¶šà¶´à·Šà¶´à·à¶¯à·” කරන්නස්වකීයස්වකීය වි-à¶­à·à¶´à·à¶½à·Š ලිපිනයවිකල්ප à¶šà·Šà·‚à·šà¶­à·Šâ€à¶»à¶º මකà·à¶¯à¶¸à¶± ලදී.විකල්ප à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කරන ලදී.පහළලිපිගොනු පෙන්වන්නඅඳුරුදිනයක්â€à¶»à·’යà·à·€à·’රහිත කරන්නපෙරනිමිනව කොටසක්පළමු විකල්පයමකන්නවිස්තරයවිසන්ධි කරන්නWordPress.com වෙතින් විසන්ධි වන්නඅස්කරන ලදී.මෙම දà·à¶±à·”ම්දීම මඟහà·à¶» ජෙට්පà·à¶šà·Š à¶…à¶šà·Šâ€à¶»à·’ය කරන්න.මෙම දà·à¶±à·Šà·€à·“ම මඟහරින්න.à·à·Šâ€à¶»à·“ර්ෂක(හෙඩර්) පෙල දිස්කරන්නWordPress ලිපි පෙන්වන්නඅමුත්තන්ව ඔබේ ෆේස්බුක් පිටුවට සම්බන්ධ කරගà·à¶±à·“මට ෆේස්බුක් ලයික් කොටුවක් පෙන්වන්න.ඔබේ ග්â€à¶»à·à·€à¶§à·à¶»à·Š à¶´à·à¶­à·’à¶šà¶©à·š සුළු විස්තරයක් පෙන්වන්නඔබේ à¶´à·à¶­à·’දà·à¶»à¶ºà·š පින්තූරයක් පෙන්වන්නඉදිරියේ ඇති සිදුවීම් iCalendar à¶´à·à·‚කයකින් පෙන්වන්න.වෙනත් WordPress.com එකකින් හ෠ජෙට්පà·à¶šà·Š-සක්â€à¶»à·’ය බ්ලොග් අඩවියකින් à¶½à·à¶¶à·”à¶«à·” මෑත පළවූ ලිපි à¶½à·à¶ºà·’ස්තුවක් පෙන්වයි.ඔබට බලගà·à¶±à·Šà·€à·“මට à¶…à·€à·à·Šâ€à¶º සේවà·à·€à¶±à·Š ඇදගෙන විත් à¶´à·„à¶­ ඇති පෙට්ටිය තුළට අතහරින්න.ඊමේල්සංස්කරණයමෙනු කොටස සංස්කරණයව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà¶º සංස්කරණයව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගය සංස්කරණයඔබේ à¶´à·à¶­à·’à¶šà¶© සංස්කරණයස්පෑම් හිස්කරන්නWordPress.com à¶‘à¶šà¶šà·Š හ෠ජෙට්පà·à¶šà·Š WordPress අඩවියක යොමුවක් ඇතුල්කරන්නදà·à·‚ විස්තර: %sà¶´à·à¶­à·’à¶šà¶© පූරණය වීමේ දà·à·‚යක්දà·à·‚යක්, අවලංගු ඒකකයක්.දà·à·‚ය: කරුණà·à¶šà¶» වලංගු ඊමේල් ලිපිනයක් ඇතුළත් කරන්නදà·à·‚යක්: කරුණà·à¶šà¶» à¶…à·€à·à·Šâ€à¶º à¶šà·Šà·‚à·šà¶­à·Šâ€à¶» පුරවන්න (නම, ඊමේල් ලිපිනය).උදà·à·„රණ:පිටුවෆේස්බුක් ලයික් කොටුවෆේස්බුක් à¶´à·’à¶§à·” යොමුවවිà·à·šà·‚පෙන්වීමට à¶´à·à·‚à¶«(ය):යà·à¶¢à¶±à· හ෠අදහස්නà·à¶·à·’ දුරට්විටර් à·„à·’ මà·à·€ අනුගමනය කරන්නවà·à¶©à·’දුර තොරතුරු සඳහà·:ආකෘතිය:නොමිලේමුල් පිටුවගà·à¶½à¶»à·’යයà·à¶¢à¶±à· හ෠අදහස් à¶…à¶´à¶§ කියන්නලà·à¶š ව්â€à¶ºà·à¶´à·Šà¶­à¶œà·Šâ€à¶»à·à·€à¶§à·à¶»à·Š හොවර්කà·à¶©à·Šà¶œà·Šâ€à¶»à·à·€à¶§à·à¶»à·Š à¶´à·à¶­à·’කඩකොළජෙට්පà·à¶šà·Š à¶œà·à¶± යà·à¶¢à¶±à· හ෠අදහස් à¶­à·’à¶¶à·š ද?උසඋස (px):à¶‹à·ƒ:සඟවන්නනිවසහිස් නම්, පින්තූරයේ à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º තීරණයට à¶…à¶´à·’ à¶‹à¶­à·Šà·ƒà·à·„ කරන්නෙමු.සියල්ල මඟහරින්නපින්තූරයරූප පෙළගà·à¶±à·Šà¶±à·”ම:රූප වර්ණය:රූප à¶¢à·à¶½à¶šà¶ºà¶»à·–à¶´ යොමුවරූප à¶½à·à¶ºà·’ස්තුවපින්තූර à·ƒà·à¶šà·ƒà·”ම්:රූප à¶´à·Šâ€à¶»à¶¸à·à¶«à¶º:පින්තූර යොමුව:පින්තූරයේ නම:රූප:à¶…à¶šà·Šâ€à¶»à·’යවීඩිය෠ඇතුළු කරන්නමෙම අඩවිය පෞද්ගලිකයි ද?පෙන්වීමට ඇති දෑ:ජෙට්පà·à¶šà·Šà¶¢à·™à¶§à·Šà¶´à·à¶šà·Š à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶¢à·™à¶§à·Šà¶´à·à¶šà·Š නිතර ඇසූ à¶´à·Šâ€à¶»à·à·Šà¶±à¶¢à·™à¶§à·Šà¶´à·à¶šà·Š à¶¢à·à¶½à¶œà¶­ à·ƒà·à¶šà·ƒà·”ම් යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± විය!ජෙට්පà·à¶šà·Š à·ƒà·à¶šà·ƒà·”ම්ජෙට්පà·à¶šà·Š අඩවිජෙට්පà·à¶šà·Š සහයWordPress.com වෙතින් ජෙට්පà·à¶šà·Šà¶¢à·™à¶§à·Šà¶´à·à¶šà·Š à·ƒà·à¶»à·Šà¶®à¶šà·€ විසන්ධි වී ඇත.ජෙට්පà·à¶šà·Š දà·à¶±à¶§à¶­à·Š WordPress.com සමඟ සම්බන්ධ වී ඇතජෙට්පà·à¶šà·Š, දේà·à·“ය සංවර්ධන තත්ත්වයේ පවතී.ජෙට්පà·à¶šà·Š තවම WordPress.com සමඟ සම්බන්ධ වී à¶±à·à¶­.WordPress.comà·„à·’ අගන෠ගබඩ෠සහය සමඟ, ඔබේ ස්වයං-à¶°à·à¶»à¶š WordPress අඩවිය ජෙට්පà·à¶šà·Š අධිබලගන්වයි.වි-à¶­à·à¶´à·à¶½à·Šà¶±à¶¸à·€à·™à¶¶à·Šà¶…ඩවියවිකල්පයවිකල්පඑහ෠මෙහ෠කරන්නවිà·à·à¶½à¶…වසන් වරට සංස්කරණය කළේආකෘති විකල්ප:තවත් ඉගෙනගන්නතවත් ඉගෙනගන්නප්â€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶šà·Š ලබà·à¶¯à·™à¶±à·Šà¶±%s වෙත à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶šà·Š සටහන් කරන්නප්â€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶šà·Š ලබà·à¶¯à·™à¶±à·Šà¶±à·€à¶¸à¶…à¶´à¶§ ඔබේ නම කියන්න.à·…à·à¶šà·à¶¸à¶­à·’යිමෙයට à¶šà·à¶¸à¶­à·’ වන්න:යොමු වර්ණය (hex):සබà·à¶³à·’ යොමුව (රූපය ක්ලික් à¶šà·… විට):සංස්කරණයඔබේ ගිණුම WordPress.com සමඟ සම්බන්ධ කරන්න.à¶¢à·à¶½à¶º පුර෠ඔබ à¶·à·à·€à·’à¶­ කරන සේව෠වලට සබà·à¶³à·’.ඔබේ බ්ලොග් අඩවියේ RSS à¶´à·à·‚කයට යොමුඔබේ වෙබ්අඩවි, බ්ලොග් අඩවි හ෠ඔබව විස්තර කිරීමට උදව් වන ඕනෑම අඩවියකට යොමු.පුරණය වෙමින්...ඇතුල් වියපිට වියY F j a g:iමà·à¶°à·Šâ€à¶ºà¶ºà¶¸à¶°à·Šâ€à¶ºà¶¸à¶¸à·™à¶±à·” කොටසලේඛන à¶…à¶‚à·à¶¸à·™à¶±à·” අයිතමය à¶´à·…à¶šà¶»à·. අයිතමය පෙන්වන්නමෙනු අයිතමය සුරà·à¶šà·”à¶«à·’.මෙනු අයිතමය යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± විය.à¶…à¶­à·„à·à¶»à·”à¶«à·” à·ƒà·à¶½à·ƒà·”මක්WordPress.com CDN මඟින් පින්තූර ලබà·à¶œà·™à¶± ඔබේ අඩවිය වේගවත් කරන්න.පින්තූර, ට්විටර් à¶´à·Šâ€à¶»à·€à·à·„, ඔබේ අඩවියේ RSS යොමු සහ තවත් දෑ ඔබේ à¶´à·à¶­à·’ දà·à¶»à¶ºà¶§ එක්කරන්න.ඔබේ තේමà·à·€à¶§ අපරිමිත අනුචලන පහසුකම එක්කරන්න.වළà·à·€ හරහ෠ඔබේ අන්තර්ගතයට ආරක්ෂිතව පිවිසීමට යෙදුම් වලට ඉඩදෙන්න.ඔබේ ලිපි සහ අදහස් අනුගමනය කිරීමට සහ වි-à¶­à·à¶´à·‘ලෙන් දà·à¶±à·”ම්දීම් à¶½à·à¶¶à·“මට පරිà·à·“ලකයන්ට ඉඩ දෙන්න.අමුත්තන්ට ඔබේ අන්තර්ගතය ෆේස්බුක්, ට්විටර් සහ අනෙක් à¶’à·€à·à¶ºà·™à·„à·’ à·ƒà·à¶«à·™à¶šà·’න් බෙදà·à¶œà·à¶±à·“මට ඉඩදෙන්න.ඔබගේ පරිà·à·“ලකයන්ට ඔවුන්ගේ WordPress.com ගිණුම් වලින් ඇතුල්වීමට ඉඩදෙන්න.ඔබේ තේමà·à·€ විකරණය නොකර ඔබේ අඩවියේ සී.එස්.එස්. වෙනස් කරන්න.ලිපි සහ à¶´à·’à¶§à·” වලට පහළින්, à¶’à·€à·à¶§ à¶œà·à¶½à¶´à·™à¶± අන්තර්ගතයන් සහිත ඔබගේ ලිපි වලට යොමු පෙන්වන්න.යූටුයුබ්, විමියà·, ස්ලයිඩ්ෂෙය෠සහ තවත් à¶‘à·€à·à¶ºà·’න් එල්ලන ලද අන්තර්ගතයන්. කේතනය අනවà·à·Šâ€à¶ºà¶ºà·’.සියළු ලිපි සහ à¶´à·’à¶§à·” සඳහ෠WP.me-බලගà·à¶±à·Šà·€à·– කෙටියොමු සක්â€à¶»à·’ය කරන්න.අදහස් දක්වන්නන්ගේ ග්â€à¶»à·à·€à¶§à·à¶»à·Š වලට ඉහළින් මතුවන ව්â€à¶ºà·à¶´à·à¶»à·’à¶š à¶šà·à¶©à·Šà¶´à¶­à·Š සක්â€à¶»à·’ය කරන්න.අමුත්තන් à·„à¶§ ඔබගේ අන්තර්ගතය ඇගයීමට පහසු මගක් සපයන්න.ඔබේ අඩවියේ ඕනෑම à¶­à·à¶±à¶š ආකෘති à¶´à¶­à·Šâ€à¶»à¶ºà¶šà·Š ඇතුල්කරන්න.කියවන්නන් à·„à¶§ WordPress.com, ට්විටර්, ෆේස්බුක්, හ෠ගූගල්+ ගිණුම් හරහ෠අදහස් දà·à¶šà·Šà·€à·“මට ඉඩදෙන්න.සර්වරය මත අමතර à¶¶à¶» à¶´à·à¶§à·€à·“මකින් තොරව සහ à¶´à·à·„à·à¶¯à·’ලි, සංක්ෂිප්ත à·€à·à¶»à·Šà¶­à· ලෙස ඔබේ සංඛ්â€à¶ºà·à¶½à·šà¶›à¶± පෙන්වන්න.වි-à¶­à·à¶´à·à¶½à·Š සේවà·à¶¯à·à¶ºà¶šà¶ºà·™à¶šà·Š සහ ඕනෑම උපකරණයක් à¶·à·à·€à·’තයෙන්, වි-à¶­à·à¶´à·à¶½à·Š හරහ෠ලිපි පළකරන්න.අඩවියේ කියà·à¶šà¶»à·“ත්වය පිලිබඳ දà·à¶±à·”ම්දීම් පරිපà·à¶½à¶š දà·à¶»à¶º හ෠ජංගම උපකරණ හරහ෠ලබà·à¶œà¶±à·Šà¶±.ඔබේ අඩවිය අජීවී විට — සහ එය à¶±à·à·€à¶­ à¶´à·à¶¸à·’à¶«à·’ විට ජෙට්පà·à¶šà·Š වෙතින් දà·à¶±à·”ම්දීම් ලබà·à¶œà¶±à·Šà¶±.ඔබේ මුළු දත්ත ගබඩà·à·€à¶¸ à¶´à·à¶½à¶š පුවරුවේ à¶‘à¶šà·Š කොටසක් මඟින් සොයන්න.නව ලිපි ස්වයංක්â€à¶»à·“යව සමà·à¶¢ මà·à¶°à·Šâ€à¶ºà¶¢à·à¶½ වල පළකරන්න.සෙවුම් යන්ත්â€à¶» හ෠අනෙකුත් සේව෠වලට ඔබේ පොදු ලිපි සහ අදහස් බෙදà·à·„රින්න.ඔබේ අඩවියේ කුමන පිටුවල, කුමන විජට්ටු ඇතුළත් වියයුතු දà·à¶ºà·’ සඳහන් කරන්න.සම්මත රූප à¶šà¶½à·à¶œà·à¶», පූර්ණ-à¶­à·’à¶» දර්à·à¶± බවට පරිවර්තනය කරන්න.සංකීර්ණ සමීකරණ සහ අනෙකුත් පොතේ-à¶´à¶­à·š à·€à·à¶© වලදී LaTeX à¶·à·à·‚à·à·€ යොදන්න.ඔබේ අඩවිය හ෠වසම ගූගල් වෙබ්මà·à·ƒà·Šà¶§à¶»à·Š ටූල්ස්, පින්ටරෙස්ට් සහ අනෙක්ව෠සමඟ සත්â€à¶ºà·à¶´à¶±à¶º කරන්න.මà·à¶šà·Šà¶©à·€à·”න් සරල පද-à¶œà·à¶½à¶´à·”ම ඇසුරින් ලිපි à·„à· à¶´à·’à¶§à·” ලියන්න.à¶’à¶šà¶š තොරතුරුවිසිතුරු ගණිතයආකෘති à¶´à¶­à·Šâ€à¶»à¶ºà·ƒà·Šà·€à¶šà·“ය CSSස්වකීය අන්තර්ගත මà·à¶¯à·’ලිවර්ධනය à¶šà·… බෙදà·à·„à·à¶»à·“මඅමතර à¶´à·à¶­à·’දà·à¶» විජට්ටුග්â€à¶»à·à·€à¶§à·à¶»à·Š හොවර්කà·à¶©à·Šà·ƒà·Šà¶…පරිමිත අනුචලනයJSON APIජෙට්පà·à¶šà·Š à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶šà·à¶¸à¶­à·’වීම්මà·à¶šà·Šà¶©à·€à·”න්ජංගම තේමà·à·€à¶±à·’වේදනසර්වසෙවුමෆà·à¶§à·à¶±à·Šà·€à·’-à¶­à·à¶´à·‘ලෙන් à¶´à·… කරන්නප්â€à¶»à·ƒà·’ද්ධ කරන්නඅදà·à·… ලිපිබෙදà·à¶œà·à¶±à·“මකෙටි-à¶šà·šà¶­à¶± එබ්බවීම්අඩවි සංකේතයඅඩවි සනà·à¶®à¶šà·’රීමඅක්ෂර වින්â€à¶ºà·à·ƒà¶ºà¶¯à·à¶ºà¶šà¶­à·Šà·€à¶ºà¶±à·Šà·€à·à¶½à·Šà¶§à·Šà¶´à·Šâ€à¶»à·™à·ƒà·Šà·€à·“ඩියà·à¶´à·Šâ€à¶»à·™à·ƒà·ŠWP.me කෙටි-යොමුවිජට්ටුවේ දෘà·à·Šâ€à¶ºà¶¶à·€WordPress.com සංඛ්â€à¶ºà·à¶½à·šà¶›à¶±à¶´à·™à¶±à·”මගොඩනගන්නන්ජංගමවෙනත්ඡà·à¶ºà·à¶»à·–à¶´ සහ වීඩියà·à·ƒà¶¸à·à¶¢WordPress.com සංඛ්â€à¶ºà·à¶½à·šà¶›à¶±à¶½à·’වීමමà·à·ƒà·’à¶š ලිපිගොනුගà·à¶½à¶´à·™à¶± ලිපි à¶·à·à·€à·’තය à¶´à·’à·…à·’à¶¶à¶³ à·€à·à¶©à·’දුර විස්තර.මගේ ට්වීට්නමජà·à¶½à¶œà¶­ à·ƒà·à¶šà·ƒà·”ම්නවනව මෙනු කොටසේ නමනව ව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගයේ නමනව පේළියනවතමඊළඟ »à¶Šà·…à¶Ÿ »à¶±à·à·„à·à¶¸à·à¶ºà·’ම් à¶±à·à¶­à¶´à·à¶¯à·’කයක් à¶±à·à¶­à·à·“ර්ෂකයක් à¶±à·à¶­à¶’à¶šà¶š හමු නොවුණිඅනුචලන දà·à¶»à¶ºà¶šà·Š à¶±à·à¶­à¶´à·Šà¶½à¶œà·’à¶± හමු නොවිණ.යà·à¶¢à¶±à· නොමà·à¶­.à¶§à·à¶œ සොයà·à¶œà¶­ නොහà·à¶š.කිසිවක් à¶±à·à¶­à¶±à·€à¶­à¶¸ පළවීම් à¶œà·à¶± වි-à¶­à·à¶´à·à¶½à·Š මඟින් ම෠දà·à¶±à·”වත් කරන්න.පරිà·à·“ලකකර්තෘභූමිකà·à·€à¶¯à·’නයටà·à¶œà¶ºà·€à¶»à·Šà¶œà·“කරණය, පෙන්වීමට ඇති ලිපි ගණන:හරිපà·à¶»à¶«à·’ %sමෙම පිටුවේදී, ඔබට ජෙට්පà·à¶šà·Š තුළ තිබෙන à¶’à¶šà¶š දà·à¶šà¶œà·à¶±à·“මට, ඒව෠ගà·à¶± à¶­à·€ ඉගෙනගà·à¶±à·“මට, සහ ඒව෠අවà·à·Šâ€à¶º පරිදි සක්â€à¶»à·“ය à·„à· à¶…à¶šà·Šâ€à¶»à·“ය කිරීමට à·„à·à¶šà·’ය.à¶‘à¶šà·Š නව ජෙට්පà·à¶šà·Š ඒකකයක්නව ජෙට්පà·à¶šà·Š à¶’à¶šà¶š %sà¶…à¶šà·Šâ€à¶»à·’යසබà·à¶³à·’ය නව වින්ඩà·à·€à¶šà·’න්/à¶§à·à¶¶à¶ºà¶šà·’න් විවර කරන්නවිකල්පතà·à¶¹à·’ලිපිළිවෙලපිටු:මව් මෙනු කොටසමව් මෙනු කොටස:මව් ව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගයමව් ව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගය:මà·à·€à¶­à¶´à·”ද්ගලික යොමුරà·à·ƒ%s à¶°à·à·€à¶±à¶ºà¶§ à¶¢à·à·€à·-à¶´à·’à¶§à¶´à¶­ à¶…à¶­à·Šâ€à¶ºà·€à·à·Šâ€à¶ºà¶ºà·’.කරුණà·à¶šà¶» ඔබට ඇති à¶œà·à¶§à¶½à·”à·€ විස්තර කරන්න.කරුණà·à¶šà¶» වලංගු ඒකකයක් සඳහන් කරන්න.කරුණà·à¶šà¶» වලංගු පරිà·à·“ලකයෙක්ව සඳහන් කරන්න.ප්ලගිනය සක්â€à¶»à·’යයි.ප්ලගිනය à¶…à¶šà·Šâ€à¶»à·’යයි.ප්ලගිනජනප්â€à¶»à·’ය%s ලියන ලදී.ලිපි වර්ගය:ලිපිලිපි සහ à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶½à·’à¶´à·’ පිටුවමේ à¶œà·à¶± ලියන්නපූර්වදර්à·à¶±à¶ºà¶¸à·’ලමුද්â€à¶»à¶«à¶ºà¶´à·žà¶¯à·Šà¶œà¶½à·’කත්වයපෞද්ගලිකත්ව à¶´à·Šâ€à¶»à¶­à·’පත්තියව්â€à¶ºà·à¶´à·˜à¶­à·’යව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà¶ºà·€à·Šâ€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà·€à·Šâ€à¶ºà·à¶´à·˜à¶­à·’à¶´à·Šâ€à¶»à¶šà·à·à¶ºà¶§ à¶´à¶­à·Š කරන්නප්â€à¶»à¶šà·à·à·’තමිලදී ගන්නදම්RSS යොමු (ජෙට්පà·à¶šà·Š)ඇගයුමනවතම ලිපිරතු%s සමඟ සම්බන්ධතà·à·€ à¶±à·à·€à¶­ පණගන්වන්න.à¶½à·à¶‚ඡනය ඉවත්කරන්නපිළිතුරු à·ƒà·à¶´à¶ºà·“ම යළි පිහිටුවන්නදකුණසුරකින්නවෙනස්කම් සුරකින්නසà·à¶½à·ƒà·”ම්ගතයිසෙවීමප්â€à¶»à¶­à·’à¶ à·à¶» සොයන්නමà·à¶°à·Šâ€à¶º සොයන්නමෙනු කොටස් සොයන්නඒකක සොයන්න...ප්ලගින සොයන්නව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ග සොයන්නසෙවුම් à¶´à·Šâ€à¶»à¶­à·’ඵලපරිà·à·“ලකයෙක් à¶­à·à¶»à¶±à·Šà¶±. à¶±à·à¶­à·„ොත් ස්වකීය වි-à¶­à·à¶´à·à¶½à·Š ලිපිනයක් ඇතුල්කිරීමට "ස්වකීය" à¶­à·à¶»à¶±à·Šà¶±.à¶§à·à¶œ කොම෠මගින් වෙන්කරන්න%1$s: %2$sà·ƒà·à¶šà·ƒà·”ම්මෙය බෙදà·à¶œà¶±à·Šà¶±:පෙන්වන්නගිණුම් යොමු පෙන්වන්නඋපුට෠දà·à¶šà·Šà·€à·“ම් පෙන්වන්න:මුහුණු පෙන්වන්නවිà·à·šà·‚à·’à¶­ පින්තූරය පෙන්වන්න:පුද්ගලික යොමු පෙන්වන්නප්â€à¶»à·€à·à·„ය පෙන්වන්නකà·à¶¸à¶­à·’වීම් පෙන්වන්න.ලිපි වලට පසුව à¶’à·€à·à¶§ අදà·à·… අන්තර්ගතයන් පෙන්වන්න.පෙන්වන්න:à·„à·à¶»à·’දීසමà·à¶± ලිපියඅඩවි à¶±à·à¶¸à¶ºà¶…ඩවිකුඩà·à¶šà·”මක් හ෠විකà·à¶»à¶ºà¶šà·Š වෙමින් තියෙනවà·!කිසිද෠සිදු නොවියයුතු දෙයක් සිදුවිය. à¶’ à¶œà·à¶± à¶šà¶«à¶œà·à¶§à·”යි. ඔබ à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කළොත්, ඇතà·à¶¸à·Šà·€à·’à¶§ à·ƒà·à¶»à·Šà¶®à¶š විය à·„à·à¶š.වර්ග කරන්න:නිà·à·Šà¶ à¶½ පිටුව:ආකෘතිය:අනු-අඩවි à¶´à·Šâ€à¶»à¶­à·’à¶šà·Šâ€à·‚à·šà¶´ වීමක්විෂයයයවන්න» ඉදිරිපත් කරන්න%sà¶§ දà·à¶ºà¶š වන්නසහයටà·à¶œ à¶±à·à¶¸à¶ºà¶§à·à¶œà·ƒà¶¸à·“ක්ෂණයට එක්වන්නසමීක්ෂණයකට සහභà·à¶œà·’ වන්න. à¶…à¶´à·š à·€à·à¶© à¶œà·à¶± à¶…à¶´à·’à¶§ කියන්න.කොන්දේසිසේව෠කොන්දේසිජෙට්පà·à¶šà·Š සමඟ ඔබේ අඩවියේ à¶œà·à¶½à¶´à·“ම පරීක්ෂ෠කරන්න.පෙළපෙළ හ෠රූප යොමුපෙළ යොමුවජෙට්පà·à¶šà·Š අනුවà·à¶¯à¶º %s වේ.ජෙට්පà·à¶šà·Šà¶¢à·™à¶§à·Šà¶´à·à¶šà·Š %sමූලික සම්බන්ධතà·à·€à·š හිමිකම %sගේ WordPress.com ගිණුම සතු වේ.තේමà·à·€ හිස් ය.තේමà·à·€: %1$s.පෙන්වීමට ලිපි à¶±à·à¶­. à¶­à·€ à¶´à·Šâ€à¶»à·šà¶šà·Šà·‚කයන් වුවමනà·à¶¯?ජෙට්පà·à¶šà·Š සමඟ සන්නිවේදනයට ඔබේ අඩවියට නොහà·à¶šà·’ බවක් පෙනුම් කරයි!ප්ලගිනය à¶…à¶šà·Šâ€à¶»à·’ය කිරීමේදී දà·à·‚යක් මතුවිය.ඔබේ ප්ලගිනය යà·à·€à¶­à·Šà¶šà·à¶½ කිරීමේදී දà·à·‚යක් මතුවිය.ඔබේ තේමà·à·€ යà·à·€à¶­à·Šà¶šà·à¶½ කිරීමේදී දà·à·‚යක් මතුවියමෙම à·ƒà·à¶šà·ƒà·”ම් à¶¢à·à¶½à¶ºà·š සියලු අඩවි මත බලපà·à¶ºà·’.(à¶…à¶­à·Šâ€à¶ºà·€à·à·Šâ€à¶ºà¶º)මෙම අඩවිය තුළ ජෙට්පà·à¶šà·Š සබඳතà·à·€ ඇරඹූ %s à·„à¶§ පමණක් මෙම ඒකකය වෙනස්කළ à·„à·à¶š.මෙම ලිපිය බෙදà·à·„à·à¶» ඇත!මෙය ජෙට්පà·à¶šà·Š à¶šà·Šâ€à¶»à·’යà·à·€à·’රහිත කරයි. ඔබට ජෙට්පà·à¶šà·Š à¶šà·Šâ€à¶»à·’යà·à·€à·’රහිත කිරීම à¶…à¶­à·Šâ€à¶ºà·€à·à·Šâ€à¶º à¶¶à·€ විà·à·Šà·€à·à·ƒ ද?මෙය සියලු ජෙට්පà·à¶šà·Š à¶’à¶šà¶š à¶…à¶šà·Šâ€à¶»à·’ය කරයි. ඔබට විසන්ධි කළයුතු බවට විà·à·Šà·€à·à·ƒ ද?සිඟිතිරුවවේලà·à·€à¶šà·à¶½à¶»à·šà¶›à· තේමà·à·€:මà·à¶­à·˜à¶šà·à·€à¶¸à·à¶­à·˜à¶šà·à·€:à¶´à·à¶»à¶¯à·˜à·à·Šâ€à¶º පසුබිමකුණුටම්බ්ලර් බ්ලොග් සටහනට්විටර් à¶šà·à¶½à¶»à·šà¶›à·à·€à·€à¶»à·Šà¶œà¶ºà¶‰à·„ළයොමුවවර්ගීකරණය නොකළඅප්â€à¶»à¶šà·à·à·’à¶­à·…à¶Ÿ à¶‘à¶± සිද්ධිමෙනු කොටස යà·à·€à¶­à·Šà¶šà·à¶½à·“à¶± කරන්නව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà¶º යà·à·€à¶­à·Šà¶šà·à¶½ කරන්නව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගය යà·à·€à¶­à·Šà¶šà·à¶½ කරන්නයà·à·€à¶­à·Šà¶šà·à¶½ වූවලංගු වි-à¶­à·à¶´à·à¶½à·Š ලිපිනයක් à¶·à·à·€à·’ත෠කරන්න.-- à¶­à·à¶»à·à¶œà¶±à·Šà¶± --සඟවන්නපෙන්වන්නපරිà·à·“ලක à¶±à·à¶¸à¶ºà¶…ගයසත්â€à¶ºà·à¶´à·’à¶­ සේවà·%sගේ වීඩිය෠පළකිරීම.වීඩිය෠ලිපිය.සම්පූර්ණ à¶´à·à¶­à·’à¶šà¶© පෙන්වන්න →මෙනු කොටස පෙන්වන්නව්â€à¶ºà·à¶´à·˜à¶­à·’ à¶§à·à¶œà¶º පෙන්වන්නව්â€à¶ºà·à¶´à·˜à¶­à·’ වර්ගය පෙන්වන්න%s පෙන්වන්න.පෙන්වන්න:දෘà·à·Šâ€à¶º බවඅපට මෙම බ්ලොග් පිටුව සඳහ෠ලිපි පෙන්විය නොහà·à¶š.à¶…à¶´à¶§ මෙම අවස්ථà·à·€à·šà¶¯à·“ බ්ලොග් දත්ත ලබà·à¶œà¶­ නොහà·à¶š.වෙබ් අඩවියග්â€à¶»à·à·€à¶§à·à¶»à·Š à¶‘à¶šà¶šà·Š යනු කුමක්ද?සුදුවිජට්ටු à·„à·à¶³à·”නුමපළල (px):à¶´à·…à¶½:Y/m/dY/m/d A g:i:sà·€à·à¶»à·Šà·‚à·’à¶š ලිපිගොනුඔව්ඔබ ප්ලගිනයක් සඳහන් කිරීම à¶…à¶­à·Šâ€à¶ºà·€à·à·Šâ€à¶ºà¶ºà·’.පළමුව සම්බන්ධ නොවී, විසන්ධි විය නොහà·à¶š.ඔබට මෙම පිටුවට පිවිසීමට à¶´à·Šâ€à¶»à¶¸à·à¶«à·€à¶­à·Š අවසර නොමà·à¶­.ඔබ වලංගු à¶šà·Šâ€à¶»à·’යà·à·€à¶šà·Š සඳහන් à¶šà·… යුතුයජෙට්පà·à¶šà·Š සම්බන්ධ කිරීමට පෙර ඔබ එය ලියà·à¶´à¶¯à·’à¶‚à¶ à·’ කළයුතුය.ඔබේ WordPress ස්ථà·à¶´à¶±à¶º දà·à¶±à¶§ à¶½à·à¶šà¶ºà·š ඇති හොඳම සුරක්ෂිතභà·à·€à¶ºà·™à¶±à·Š, දත්ත උපස්ථ, සහ සේව෠සහයෙන් යුක්තය.ඔබේ à¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶º අනුමත කිරීම à¶¶à¶½à·à¶´à·œà¶»à·œà¶­à·Šà¶­à·”වෙන් සිටීඔබේ අදහස් දà·à¶šà·Šà·€à·“ම අනුමත වූ පසු මෙහි පළවේ.ඔබේ අඩවිය ජෙට්පà·à¶šà·Š සර්වර් වෙත ආරක්â€à·‚à·’à¶­à·€ ළඟ෠නොවේ.වි-à¶­à·à¶´à·‘ලඅවලංගු කරන්නමෙතන ඔබන්නසංස්කරණයඅපොයි, ඔබේ ආකෘති à¶´à¶­à·Šâ€à¶»à¶º සෑදීමේදී à¶œà·à¶§à¶½à·”වක් මතුවී ඇත. ඔබට à¶±à·à·€à¶­ à¶‹à¶­à·Šà·ƒà·à·„ කරන්න වෙයි වගේ.http://jetpack.mehttp://wordpress.org/iCalendar à¶´à·à·‚à¶š යොමුව:"%s" තුළ%1$s/%2$sà¶´à·Šâ€à¶»à¶­à·’à¶ à·à¶»à¶ºà¶¸à·™à·ƒà·š නම් %s:වි-à¶­à·à¶´à·à¶½à·Šà·†à·šà·ƒà·Šà¶¶à·”ක්ගූගල්ලින්ක්ඩ්ඉන්පින්ටරෙස්ට්පොකට්මෙය à¶´à·Šâ€à¶»à¶šà·à· කරන්නමුද්â€à¶»à¶«à¶ºà¶»à·™à¶©à·’ට්ටම්බ්ලර්ට්විටර්නරඹන්න: %sවචන%1$s \a\t %2$splugins/jetpack/languages/jetpack-lt_LT.mo0000755000312500031250000004564112651056012021231 0ustar eacbforgeacbforgÞ•> ¯ü¸¹ ËØß!î! 8 C0Nˆ™¯ÂÈ ÌÖ%æ * ;I O ]g ly €–°ÏÞí "5> NXi` Ê Ô5á ")? U_rw |‡–© ÆÒ äïCW^cl{  [šö  1 P *W 5‚ ¸ Á Ê Ó ã ï ÿ !"!-'!U!]!c!ƒj! î!û! "!" &" 2" >"MH" –"¡"±"·" À"Í"Ü"ã"é"ò" ø" # # #*# >#L#Q#W# \#g#m# ~# ‹# –# £#°#¶#½# Â#Ì#Ü#â# ê#÷#$ $ $)$>$C$H$ O$ \$j$m$ $‹$$¬$½$Ð$ Õ$ ã$ ñ$)ÿ$ )%FJ%‘%”%,¥%Ò%ð%ø%ÿ%& & &"&'&7&H&M&U&]& m& z&ˆ& ˜& £&°& ¶&Á&É& Ò&ß&å& í& ú& '' '!'<(' e'o' v'ƒ'‡'™' ¡' ¯'½'Ã'á'6ÿ'6( >(_(e( j( w((ˆ( ˜(¥(¼(/Ö(;) B)N)W) p)|)ƒ)‹) ›)©)O®)8þ)7* G* S*t*Š** —* ¡*¬*²*Ð*Ù*Þ*ä*ì*ó* +++#+(+8+Q+b+ g+q+Fx+>¿+\þ+ [,I|, Æ,Ð,Ö, Ý, ç,ô,ú,-- - - %- 2-(?-@h-©-²- ¸-Ã-:Ì-...,. 2.@.T.7X.3.;Ä./ /$/B/!\/~/˜/œ/£/§/¬/¾/ Ä/Ñ/ à/í/ü/ 0 0)0-.0\1 n1 x1‚1/š1Ê1Ý1ù1 2:2N2W2k2t2Ž2¬2´2 ¹2Ç2(×2 3 3 3,3<3B3Z3n3v3 ‡3‘3 ¥3 °3¼3.Í3ü3"4 (4 I4S4 b4m4 4Œ4 ¢4 °4€º4 ;5G54_5”5¬5´5Ñ5ï5÷5 66 6 6+626&J6 q6 |6 ˆ6“6¥6O·6 7 7 7)7C7V7j7K7Ë7ß7*÷7-"8P8?X8K˜8 ä8î8÷899/9@9V9f91j9œ9¥9¬9£µ9Y: t:(~: §: ´:À:Õ:7ä:;,; ?; M;W;f; x;‚;‰;; —;¢;¶;Ê;á;÷;<<<$<-<5< K< V< c<m<†< <—<<­<¼<Ì<Õ< ê<ö<= !=.=D=L= S= ^= l=z= }=‹=š=­=¿=Î=æ=ì= û= >5>3K>>‡>>)¡>+Ë> ÷> ? ? ? ,?7?F?M?f?x? ? Œ?˜?¬?Á?Ô? æ?ñ? @ @ @ ,@8@ J@ U@`@ s@ @ Š@ ”@ Ÿ@Eª@ ð@ ý@AA"A8ALAaAvAAAƒA…A+A ¹A ÄAÏA åAñAúABB>B/[B@‹BÌB åBïB C C C'C>CRCQYCG«CóCD'D=DYD aDlD‚D–D(¦DÏD ßD êDõDþDE E ,E 7EEELE^E~E™E ±E½EFÃEV FˆaF(êFcG wG ƒG GœG³GÍG âGìGòGöG HH (H-5HScH·H ÈH ÒHÝH=âH I3I9IXI ^IhI{IC€I>ÄI-J1J KJ1WJ‰J-©J!×JùJ üJK KK(K /K :KEKKK_KtK‰K˜K.ì4Œ™ ÙŨlø?± „<íÆ&  ñ‚‹¡^n-¦Ðˆ> ´!-7h=‘÷w˜{C½“”[ŠFð+žP¬Ûú·¼œßÒµî+á`/Uƒx»¤ÊóvsrÚâ#çYH|Ž'$ 7:ä$Ï×aA%åÇË’D5cd;Ý@ÕIö}j(gfüõ¸_°=‰škSàò:;3iK éÿW ²þùŸ©/ZE‡( ­Q•eRÁ'm]ÂL1BÈ0"JG0Ĺô¢À€Þ2.t5͆O8¯Ü8¿6Ã%–èæÓØ *&Ì£o92\ã*q"!¥ Î~up ý>3®,#N< ï¶¾Ö§Ñ)6ëMV)Ô9—y,zbêªû«Éº³4TX›1…%1$s – %2$s%1$s at %2$s%s ago%s is required%s requires a valid email address« Previous— Select —(no title)(required)Learn more about these options.ActivateActivate ProtectAddAdd a new serviceAdd or remove tagsAlbumAllAll postsAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesBackground colorBias LanguageBlackBlog ArchivesBlog URL:BlueButton styleCancelCancel replyCategoryCenterCheatin’ uh?Choose from the most used tagsClichésClick to printClick to share on Google+CloseColor SchemeCommentComment navigationCommentsComplex PhrasesConfigureConnectConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedContact InfoContinue reading →Crop ImageCustomCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisconnectDisconnect JetpackDouble NegativesDrag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEmailEmail AddressEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:FacebookFeaturedFeatured ImagesFollow BlogFollow CommentsFor more information:Free formatsFromFront Page, Archive Pages, and Search ResultsGalleryGreenHeightHi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHidden VerbsHideHide related content after postsHomeIP Address:Icon + textIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnored PhrasesImageInactiveInsert VideoItems to show:JargonLabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLikes and SharesLive PreviewLoading...M j, Y @ G:iMark as SpamMediaMediumMenuMenu ItemMenu ManagementMenusMessageMessage SentMessagesMissed scheduleMobile AppsMobile ThemeMonthly Archives: %sMoreNameNewestNext »Next » NoNo feedback foundNo logo setNo plugins found.No suggestionsNo themes found.No upcoming eventsNoneNot connectedNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.Noun, as in: "The user role of that can access this widget is..."RoleOKOfficial buttonsOnly display videos in free software formatsOpen link in a new window/tabOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhrases to AvoidPinkPluginsPopularPortfolio ItemsPost CommentPost by EmailPost navigationPosted by Posted in %sPostsPress ThisPreviewPreview:Primary MenuPrintPrivacyProofreadingPublicizePublicize:PublishPublishedPurplePut your mouse over your Gravatar to check out your profile.RSS LinksRatingRecent PostsRedRedundant PhrasesRelatedRelated PostsRelated postsReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch Results for: %sSeparate tags with commasServices dragged here will appear individually.Services dragged here will be hidden behind a share button.Set as logoSettingsSettings have been savedShare this:SharedSharingSharing ButtonsSharing labelShowShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow buttons onShow likes.Show related content after postsShow sharing buttons.Show:SilverSite IconSite StatsSitesSomeone likes one of my postsSort by:SpamStatsSubjectSubmitSubmitting Comment%sSubscribeSupportTag nameTagsTake Our SurveyTake WordPress with you.Terms of ServiceTextText onlyThemesThere was a problem connecting to %s. Please disconnect and try again.These settings change emails sent from your blog to followers.This gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected.This post is password protected. Enter the password to view any comments.ThumbnailTitleTitle:Top PostsTop SearchesTrashTwitterTypeURLUncategorizedUnpublishedUpload ImageUploading...Use a large and visually striking layoutUse automatically detected language to proofread posts and pagesUsernameValueVideoPressView AllView people's profiles when you mouse over their GravatarsWebsiteWhiteWordPress.com UsernameY/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.Your Email AddressYour NameYour comment is awaiting moderation.[%s] Joining confirmationa post or page is first publisheda post or page is updatedandcanceldayedithttp://jetpack.memonthnounCommentshare toPrintthe past daythe past monththe past quarterthe past weekthe past yearweekPO-Revision-Date: 2015-08-31 09:36:25+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s – %2$s%1$s %2$sprieÅ¡ %s%s turi bÅ«ti nurodytas%s turi bÅ«ti veikiantis ir nurodytas teisingai« Ankstesnis— Pasirinkite —(be pavadinimo)(bÅ«tina)Sužinokite daugiau apie Å¡ias parinktis.Ä®jungtiAktyvinti apsaugotiPridÄ—tiPridÄ—ti naujÄ… paslaugÄ…PridÄ—ti ar panaikinti žymasAlbumasVisiVisi įraÅ¡aiFailų puslapisAutomatiÅ¡kai tikrinti raÅ¡ybos klaidas:AutomatticPrieinamos paslaugosFono spalvaÅ aliÅ¡ka kalbaJuodaTinklaraÅ¡Äio archyvasTinklaraÅ¡Äio URL:MÄ—lynaMygtukų stiliusAtÅ¡auktiAtÅ¡aukti atsakymÄ…KategorijaPer vidurįSukÄiaujate? :)Pasirinkite iÅ¡ dažniausiai naudojamų žymųKlišėsPaspauskite norÄ—dami atspausdintiPaspauskite dalintis ant Google+UždarytiSpalvų schemaKomentarasKomentaro narÅ¡ymasKomentaraiSudÄ—tingoms frazÄ—msKonfigÅ«ruotiJunkitÄ—sPrijunkite savo tinklaraÅ¡tį prie populiarių tinklo puslapių ir automatiÅ¡kai dalinkitÄ—s naujais įraÅ¡ais su savo draugais.PrisijungtaKontaktinÄ— informacijaSkaityti toliau →IÅ¡kirpti paveikslÄ—lįNuorodaNaudotojo laukas iÅ¡trintas.Naudotojo laukas atnaujintas.DerintiDienos archyvai: %sTamsiDataIÅ¡jungtiNumatytojiTrintiIÅ¡trinti negrįžtamaiNegrįžtamai iÅ¡trinti šį elementÄ…ApraÅ¡ymasDiakritikaiAtsijungtiAtjunkite JetpackDvigubi neiginiaiAtitempkite ir numeskite į langelį žemiau, paslaugas kurias norite įjungti.El. paÅ¡tasRedaguotiTaisyti CSSRedaguoti meniu elementÄ…El. paÅ¡to adresasEl. pasÌŒto adresasIÅ¡trinti Å¡lamÅ¡tÄ…RaÅ¡ant įraÅ¡us ir puslapius, įjungti klaidų tikrinimÄ… Å¡iems stiliams:Ä®jungtos paslaugosAnglų kalbos parinktysPerkeliant į Å¡iukÅ¡linÄ™, įvyko klaida.Grąžinant iÅ¡ Å¡iukÅ¡linÄ—s, įvyko klaida.Klaida!Klaida: praÅ¡ome įvesti teisingÄ… elektroninio paÅ¡to adresÄ….Klaida: praÅ¡ome užpildyti reikalingus laukus (vardÄ…, el.paÅ¡to adresÄ…).Pavyzdys:FacebookSiÅ«lomaSpecialieji paveikslÄ—liaiSekti tinklaraÅ¡tįSekti komentarusDaugiau informacijos:Laisvi formataiNuoPirmas puslapis, archyvas ir paieÅ¡kos rezultataiGalerijaŽaliaAukÅ¡tisSveiki, JÅ«s esate pakviestas prisijungti prie tinklalapio '%1$s' (nuoroda %2$s) kaip %3$s. Paspauskite ant Å¡ios nuorodos jei norite priimti pakvietimÄ…: %4$sPaslÄ—pti veiksmažodžiaiPaslÄ—ptiSlÄ—pti susijusio turinio po praneÅ¡imųĮ pradžiÄ…IP adresas:Piktograma + tekstasTik piktogramaNurodykite žodžius ir frazes kurios nebus tikrinamos:Ignoruoti visusNepaisomos frazÄ—sPaveikslÄ—lisNeaktyvusÄ®terpti videoRodomi elementai:ŽargonasPavad.KalbaDidelisRedaguotasSužinokite daugiauSužinokite daugiauParaÅ¡ykite komentarÄ…Palikti atsakymÄ…: %sParaÅ¡ykite komentarÄ…KairÄ—jeÅ viesiKaipPatinka:MÄ—gstaPatinka ir dalinamasiPeržiÅ«raÄ®keliama...Y-m-d G:iPažymÄ—ti kaip brukalÄ…FailaiVidutinisMeniuMeniu elementasMeniu valdymasNaudotojo meniuŽinutėŽinutÄ— iÅ¡siųsta.PraneÅ¡imaiPradelstas suplanavimasMobilios programosMobiili temaMÄ—nesio archyvas: %sDaugiauVardasNaujausiosKitas »Kitas »NeNieko nerastaNÄ—ra logotipoÄ®skiepių nerastaPasiÅ«lymų nÄ—raTemų nerasta.NÄ—ra bÅ«simų įvykiųNiekoNeprisijungÄ™sNieko nerastaPraneÅ¡imaiPraneÅ¡ti apie naujus komentarus elektroniniu paÅ¡tu.PraneÅ¡ti apie naujus įraÅ¡us elektroniniu paÅ¡tu.VaidmuoGeraiOficialÅ«s mygtukaiRodo tik video kuris yra nemokamo formatoAtverti nuorodÄ… naujame lange / kortelÄ—jeNustatymaiOranžinÄ—IÅ¡dÄ—stymo tvarkaPuslapis %sPuslapiai:Pasyvus balsasKeliasNuolatinÄ— nuoroda į %sVengtinos frazÄ—sRožinÄ—Ä®skiepiaiPopuliariosPortfelio elementusÄ®raÅ¡yti komentarÄ…Skelbti el. paÅ¡tuÄ®raÅ¡o narÅ¡ymasPublikavo Ä®raÅ¡yta kategorijoj %sÄ®raÅ¡aiPress ThisPeržiÅ«rÄ—tiPeržiÅ«ra:Pagrindinis meniuSpausdintiPrivatumasKlaidų tikrinimasVieÅ¡inimasVieÅ¡inti:PaskelbtiPaskelbtasVioletinÄ—Užveskite pelÄ™ ant Gravatar, norÄ—dami peržiÅ«rÄ—ti savo profilį.RSS nuorodosVertinimasNaujausi įraÅ¡aiRaudonaNereikalingos frazÄ—sSusijÄ™ straipsniaiSusijusios ŽinutÄ—sSusijusios ŽinutÄ—sAtsakyti AtkurtiGrąžinti šį elementÄ… iÅ¡ Å¡iukÅ¡linÄ—sDeÅ¡inÄ—jeIÅ¡saugotiIÅ¡saugoti pakeitimusSuplanuotasPaieÅ¡kaIeÅ¡koti komentarųIeÅ¡koti failųPaieÅ¡kos rezultatai skirti: %sAtskirkite žymas kableliaisPaslaugos atitemptos Äia bus rodomos atskirai.Paslaugos atitemptos Äia bus paslÄ—ptos už dalinimosi mygtuko.Nustatyti kaip logotipÄ…NuostatosNustatymai iÅ¡saugotiDalintis:PasidalintaDalinimasisMygtukus pasidalijimasDalinimosi etiketÄ—RodytiRodyti a "Related" antraÅ¡tÄ—s aiÅ¡kiau atskirti susijÄ™s ruožas nuo praneÅ¡imųRodyti „sekti tinklaraÅ¡tį“ pasirinkty komentavimo formojRodyti mygtukusRodyti patikimus.Rodyti susijusio turinio po praneÅ¡imųRodyti dalinimosi mygtukus.Rodyti:SidabrinÄ—SvetainÄ—s piktogramaPuslapio statistikaTinklaraÅ¡ÄiaiKažkas mÄ—gsta vienas iÅ¡ mano žinutesRikiuoti pagal:Å lamÅ¡tasStatistikaYpatybÄ—PateiktiÄ®dedami %s komentarai PrenumeruotiPalaikymasŽymos vardasŽymosAtlikti apklausÄ…Pasiimkite WordPress su savimi.Paslaugos teikimo sÄ…lygosTekstas arba HTML kodasTik tekstasTemosJungiantis prie %s įvyko klaida. Atsijunkite ir bandykite dar kartÄ….Å ie nustatymai keiÄia el. laiÅ¡kus siunÄiamus iÅ¡ jÅ«sų tinklaraÅ¡Äio, sekÄ—jams.Galerijoje yra %2$s fotografija.Galerijoje yra %2$s fotografijos.Galerijoje yra %2$s fotografijų.Å is įraÅ¡as apsaugotas slaptažodžiu.Å is įraÅ¡as apsaugotas slaptažodžiu. NorÄ—dami peržiÅ«rÄ—ti komentarus įveskite slaptažodį.MiniatiÅ«raPavadinimasPavadinimas:Populiariausi įraÅ¡aiPopuliariausios paieÅ¡kosÄ® Å¡iukÅ¡linÄ™TwitterisTipasURLBe kategorijosNepaskelbtasÄ®kelti paveikslÄ—lįUploading...Naudoti didelÄ—s ir vizualiai stebina maketÄ…Klaidų įraÅ¡uose ir puslapiuose tikrinimui naudoti automatiÅ¡kai aptiktÄ… kalbÄ….Naudotojo vardasReikÅ¡mÄ—VideoPressVisaPeržiÅ«rÄ—ti naudotojo profilį, užvedus pelÄ™ ant GravatarInterneto puslapisBaltaWordPress.com naudotojo vardasY-m-dY-m-d G:iMetų archyvai: %sTaipJÅ«s neturite teisÄ—s sugrąžinti šį įrašą iÅ¡ Å¡iukÅ¡linÄ—s.JÅ«s neturite teisÄ—s perkelti šį elementÄ… į Å¡iukÅ¡linÄ™.JÅ«s neturite teisÄ—s pasiekti šį puslapį.JÅ«sų el. paÅ¡to adresastavo vardasKomentaras laukia administratoriaus patvirtinimo.[%s] Prisijungimo patvirtinimasįraÅ¡as ar puslapis skelbiamas pirmÄ… kartąįraÅ¡as ar puslapis atnaujinamasirAtÅ¡auktidienaRedaguotihttp://jetpack.memÄ—nuoKomentarasSpausdintivakarpraÄ—jusį mÄ—nesįpraÄ—jusį ketvirtįpraÄ—jusiÄ… savaitÄ™praeitus metussavaitÄ—plugins/jetpack/languages/jetpack-sl_SI.mo0000755000312500031250000002304612651056012021217 0ustar eacbforgeacbforgÞ•­ À Á Ó à í Hô = T &m ” ¯ É 6Ô   , 5 < JM B˜ Û ó     & 3 ; L V c v  ˆ ” œ £ ¨ ·  *Ô 5ÿ 5úE@ HV [gp€B˜IÛ%-+>/j3šÎÔèÿ  ',/A R)` Š«³¹À5Å+û+'$Sx—>´ ó   & .8V6t«° · Ä9ÎKT]dy† SÀ!7R[daÆ6Ù;3L7€ ¸Ùø/8C|ƒˆ$޳ Å ÒßOè8M!d†› °Bºý  $,?BC‚ÆÛì òü #,?G] o{„‰’¥«ÂÝ:ôC/s"ƒ¦¯¿ Å ÐÚî@ HL•%°+Ö+. 5C[ q|‘”"±ÔCä=( f q | „ 5ˆ &¾ )å !)!&I!Dp!µ!Ç! Î! Ù!ã!ë! ò!ý!ÿ!"" " " "53"Ci" ­"º"Â"Ö"Þ"æ"ù"A#W#^#f#.|#«#¼#mÅ#3$@I$2Š$;½$/ù$+)%U%u%:“%AÎ% && &N\u} 9OAYRs-/zblIU^?k;Ft7D|Swm=6Bh_K:PjvZ4o q{]y3i8>1.MV+)dWr0 $pc#E~G%[ !"*(a<'C@nf ,`TJ2H5ge&L XQx%1$s – %2$s%1$s at %2$s%1$s on %2$s%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is not a valid command.%s is not a valid module.(required)A few catchy words to motivate your readers to commentA known issue.A theme conflict.ActivateActiveAdd Contact FormAdjust your Jetpack Comments form with a clever greeting and color-scheme.An administrator for this blog must set up the Jetpack connection.An incompatible plugin.Available Modules:BlueCancelCancel replyCenterColor SchemeCommentCommenting as %sConnectedContact InfoDaily Archives: %sDeactivateDeleteDescriptionDismissE-mailEditEdit Menu ItemEmpty SpamError Details: %sError: please enter a valid email address.Error: please fill the required fields (name, email).Featured ImagesFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.GalleryGreeting TextHomeIP Address:InactiveInvalid requestInvalid security token.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:JetpackJetpack CommentsJetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is not currently connected to WordPress.comLargeLeave a Reply to %sLet us know your name.Loading Comments...Logged InMenu ItemNameNoNo plugins found.No themes found.Nothing FoundNotify me of follow-up comments by email.Notify me of new posts by email.OptionsOrderPages:PathPlease be sure to submit some text with your comment.Please describe the problem you are having.Please provide an email address to comment.Please provide your name to comment.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Post CommentPosted by Posted by %sPreviewPrintPublishPublishedResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... SaveSearchSearch MediaSite NameSomething has gotten mixed up in your Jetpack Connection!Sorry, but there was an error posting your comment. Please try again later.Sort by:SubmitSubmitting Comment%sSupportTagsThe Jetpack Version is %sThe WordPress.com blog_id is %dThere seems to be a problem with your site’s ability to communicate with Jetpack!TitleTitle:Trouble with Jetpack?Use a valid email address.UsernameValueView full size %1$s×%2$sWrite a Comment...You cannot disconnect, without having first connected.You do not have sufficient permissions to access this page.You must log in to post a comment.You need to register your Jetpack before connecting it.Your Jetpack setup looks a-okay!Your comment is in moderation.Your comment was approved.Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.canceleditmonthPO-Revision-Date: 2015-07-22 06:09:49+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3); X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s – %2$s%1$s na %2$s%1$s na %2$s%s nazaj%s ni mogoÄe prekiniti povezave. Ali ste prepriÄani, da so trenutno povezani?%s je bil aktiviran.%s je bil deaktiviran.%s je uspeÅ¡no prekinil povezavo.%s ni dovoljen ukaz.%s ni ustrezen modul(obvezno)Nekaj privlaÄnih besed da motivirate vaÅ¡e bralce za komentiranjeZnana težava.Konflikt tem.AktivirajAktivenDodaj kontaktno formoUredite vaÅ¡e komentarje z zanimivim pozdravom in barvno shemo.Administrator tega bloga se mora vzpostaviti povezavo z Jetpack-om.Nezdružljiv plugin.Moduli na voljo:ModraPrekliÄiPrekinite odgovorSredinaBarvna shemaKomentarKomentirate kot %sPovezanKontaktne informacijeDnevni Arhivi: %sDeaktivirajIzbriÅ¡iOpisRazreÅ¡iElektronska poÅ¡taUrediUredi menijski elementIzprazni neželeno vsebinoNapaka Podrobnosti: %sNapaka: prosim vnesite pravilni naslov elektronske poÅ¡te.Napaka: prosim vnesite zahtevane podatke (ime, elektronska poÅ¡ta).Prikazane slikePoskusite z deaktiviranjem vseh plugin-ov razen Jetpack-a. ÄŒe bodo težave ostale niso zaradi Jetpacka. ÄŒe je težava odpravljena poskusite z aktiviranjem ostalih plugin-ov enega za drugim dokler se težava ponovne ne pojavi. SporoÄite nam kje je bila težava in poskusili bomo pomagati.GalerijaPozdravni tekstDomovIP naslov:NeaktivenNedovoljena zahtevaNepravilen varnostni žeton.Kaže, da vaÅ¡a spletna stran ne more komunicirati z Jetpack-om.Verjetno je vzrok ena od naslednjih težav, ki jih lahko preverite sami:JetpackJetpack komentarjiPovezava je bila uspeÅ¡no prekinjena.Jetpack je trenutno povezan z WordPress.comJetpack trenutno ni povezan z WordPress.comVelikoOdgovorite %sZaupajte nam vaÅ¡e ime.Nalagam komentarje...PrijavljenMenijski elementImeNeVtiÄnikov ni mogoÄe najti.Najti ni bilo mogoÄe nobene teme.NIÄ ni najdenoV primeru odziva na moj komentar, me obvesti po elektronski poÅ¡ti.V primeru novega komentarja me obvesti po elektronski poÅ¡ti.NastavitveVrstni redStrani:PotProsim zagotovite, da bo komentar vseboval nek tekst.Prosim opiÅ¡ite težave, ki jih imate.Prosim vnesite naslov elektronske poÅ¡te.Prosim vnesite vaÅ¡e ime.Prosim navedite ustrezen modul.Prosim izberite ustreznega uporabnika.Prosim navedite ali želite prekiniti povezavo bloga ali uporabnika.Objavite komentarVneselObjavil %sPredogledNatisniObjaviObjavljeno ShraniIskanjeIÅ¡Äi medijeIme spletne straniNekaj je Å¡lo narobe pri vaÅ¡i povezavi z Jetpack-om.Oprostite ampak pri objavi vaÅ¡ega komentarja je priÅ¡lo do napake.Razvrsti po:PoÅ¡ljiDodajam komentar %sPodporaZnaÄkeJetpack verzija %sWordPress.com blog_id je %dNekaj je narobe s komunikacijo vaÅ¡e spletne strani z Jetpack-om!NaslovNaslov:Težave z Jetpack-om?Uporabite veljavnen naslov elektronske poÅ¡te.UporabniÅ¡ko imeVrednostOgled v polni velikosti %1$s×%2$sNapiÅ¡ite komentar...Najprej morate biti povezani preden se lahko povezavo prekinete.Nimate primernih dovoljenj za dostop do te strani.Morate se log in za dodajanje komentarjev.Pred povezavo morate registrirati vaÅ¡ Jetpack.VaÅ¡e nastavitve Jetpack-a zgledajo v redu!VaÅ¡ komentar je v preverjanju.VaÅ¡ komentar je bil odobren.VaÅ¡a spletna stran nima dostopa do strežnikov Jetpack-a.VaÅ¡a spletna tran nima varnega dostopa do strežnikov Jetpack-a.PrekliÄiUredimesecplugins/jetpack/languages/jetpack-mk_MK.mo0000755000312500031250000006116512651056012021210 0ustar eacbforgeacbforgÞ•1¤ ™,‘ ¡F®Gõ=D U `0kœ­¼ÅÉÑã ö "B1t „¢SÀÚúþ$7Vv… ¹ÓÙìôý  $= X;e¡¶ÆÜò÷ ü  /;Nl/t ¤°CÁ    2 8 $F k v A‡ É *ß 5 ! @!K!T! d!p!…!›!- !Î!Ö!ê!û!" """†"¦" «"·" À" Ê" Õ"ã"õ"# # #ã!#$/$cN$²$¸$Á$ Ç$ Õ$ à$ ë$ù$ %% %&%+%1% :% G% R%_%e% l%v%~%Ž%Ÿ% ¤% ±%¿%Â%Ô%ã%ô%&& &&&.&5&;&B&G& V&`&e&‚& Š&/”&Ä& Ê&Õ&Ý&ã&ë& ú& '' '!'<('e' l'y'}'„'•' ¤'²'Ê'Ð'â'(6(U(](c( h(u(…( ˜(¢(©( ¹(Æ(9Õ( ))0) J);W)“)œ)µ)») Í) Ù)å)í) þ) **²)*Ü*á*õ* +$+ ++6+-P+~+‡+Œ+’+š+ ¡+«+³+¼+Á+Ò+ ×+‘á+ s,€,,›, È,Ò,Ø, ß,é, ÿ, --(-0-B-G- K- Y- e-q-z-€- ’--¦-/¿-4ï-$.,.2.jF.­±._/ e/s/8w/@°/;ñ/!-0pO07À0ø0 161$L1?q1!±1Ó1í1 ô1þ12 22#2 )262E2W2i2}2Œ2 2ª2¹2 Ê2 Ø2æ2ÿë2ë34]4hw4 à4ì455B85{5•5­5 À5Ë5á5/606F6O6e6n…6$ô6 7$7-D7•r788v8‘9 •9¢9·9Æ9ä97ý9C5:"y:5œ:3Ò:4;;;J;`;q;„;¤;½;'Ï;)÷; !<v.<2¥< Ø<<ù<56= l= w=‚=™=¬=Á=Ð=ì=õ=-> B>NO>ž>·>dÑ> 6? D?+O?){? ¥?³?FÓ?@#4@ŒX@<å@^"AzAüABB/BLB'iB‘Bt¤BC*C>C TC aCnC ŒC™CɨC rDD"™D¼DÒD!êD# E0E PE[EnEV†EÝFAøF„:G¿G ÅG ÐGÝGýG H!H#?H!cH…H ŽH›H²HÃH+ÌHøH II 0I=I ZI!gI!‰I«I²IÇIÜI/áIJ'+J0SJ„J J™J ±J¼JÓJêJ üJ KK 3KH@K‰KšKc­K LL8L GLTL&iLL ¥L ³LÀLÑLxäL]MpM ŽM›M+¢MÎMêM2N7N.HNwNyN{N }N ˆN“N&¢N"ÉNìNûN O#$O!HO!jO^ŒOëO!P6*PaP„~PQ2QMQ\QyQ‰Q¥Q2¼Q(ïQ R*$RROR¢S$±S+ÖS[T^ToT<„TdÁT&U;UDU YUfUuUUžU ·U$ÄU éUôU×VàV.ðVKWkW |W ‰W—W3µWéWXFX^X$fX‹X’X –X·XÌXìXY'Y AYLY.cYr’YZ–Z®Z"·Z”ÚZo[\ ‡\•\`š\‰û\e…]5ë]¹!^`Û^,<_i_B}_<À_oý_?m`8­` æ`ó` a aa=a OaZa kaya‚a‹a ¥a²aºa!Øa%úa# b#Db hbk‘ïA©wb[eÅ(ª»VfþòÜU£«r.p³´q-Hë  Þ™ *˜ •15 (YËÑ8¤sìæå@ØÓÛñ êj{®“‰!m ¾ÇÉî½2&’­ŒóN¡ý_é$ûÌIãça 0¿#¦öžÆ~:Ô—zn±ŸÍGS,úÁÙ÷‡ô;ÈÂ…/"в,Ê+ÐÏÕœ`„À!¬›\¨‚ )âüyޏ=<.Q9 øèùFg·Ý?¶O4 ˆ¹C°¥hTäÒo+¼l€}§Wt0Rxß"×õÖ/1ðí3#X67uÎ'*)&–K%” i%MPºà$vc]B>LáD¢µd|Úÿ-^ÄE' ‹ƒJZ%1$s %2$s Views%1$s at %2$s%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago« Previous(no title)(required)Learn more about these options.% Replies1 ReplyActivateAddAdd NewAdd a new serviceAdd or remove tagsAdmin barAllAll postsAn Automattic AirlineAn administrator for this blog must set up the Jetpack connection.Attachment PageAutomatticAvailable ServicesAvailable shortcodes are: %l.Be sure to click "Update Profile" at the bottom of the screen to save your changes.BlackBlueBring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.CSSCancelCategoryCenterChart stats byCheatin’ uh?Choose from the most used tagsClick to email this to a friendClick to printClick to share on LinkedInClick to share on RedditClick to share on TwitterCloseComing soon…CommentCommentsComplex PhrasesConfigureConfigure %sConnect to WordPress.comConnected to WordPress.comContact InfoCount the page views of registered users who are logged in.Custom Email AddressCustom Message:Custom field deleted.Custom field updated.DarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDescriptionDisable CSS and JSDisconnect from WordPress.comDismissDisplay a mini version of your Gravatar ProfileDisplay as:Double NegativesDrag and drop the services you'd like to enable into the box below.E-mailEditEdit Menu ItemEdit Selection...EmailEmail AddressEmail check failed, please try againEmpty SpamEnabled ServicesEnter the URL of a 16x16px icon you want to use for this service.Error loading profileError: please enter a valid email address.Error: please fill the required fields (name, email).Explain...FacebookFeatured ImagesFollow BlogFollow me on TwitterFor more information:FreeFront Page, Archive Pages, and Search ResultsGalleryGravatar HovercardsGravatar ProfileGreenHeightHidden VerbsHideHomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.IconIcon + textIcon URLIcon onlyIgnore allIgnore alwaysIgnore suggestionIgnored PhrasesImageInactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Jetpack by WordPress.comJetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.LaTeXLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLikesLinkedInLive PreviewLoading...M j, Y @ G:iMediaMediumMenu ItemMessageMissed scheduleMore informationNameNext »Next » NoNo plugins found.No suggestionsNo themes found.No writing errors were found.NoneOKOlder postsOptionsOrangeOrderPages:PathPersonal LinksPingback:PinkPlease verify your birthday.PluginsPortfolioPost was not sent - check your email addresses!PostsPress ThisPreviewPrintPrivacyPrivacy PolicyPublicizePublicize:PublishPublishedPurplePut your mouse over your Gravatar to check out your profile.RatingRecent PostsRedRedditRegistered usersRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRightSaveSave ChangesSave StylesheetSave configurationScheduledSearchSearch CommentsSearch MediaSearch PluginsSelect the roles that will be able to view stats reports.Send EmailSend to Email AddressSeparate tags with commasService nameServices dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Shared PostSharingSharing SettingsSharing URLSharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Personal LinksShow top posts overShow top search terms overSilverSite StatsSorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamStatsSubjectSubmitSubscribeSupportTag nameTagsTerms of ServiceTextText onlyThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.Theme: %1$s.This post has been shared!This video is intended for mature audiences.ThumbnailTitleTitle:Top PostsTop Posts & PagesTop SearchesTrashTry connecting again.TwitterTwitter username:TypeURLUncategorizedUnpublishedUnsubscribeUsernameValueVerified ServicesVideoPressView AllView Full Profile →Views over 48 hours. Click for more Site Stats.Visit Site Stats to see your stats.WebsiteWhiteWordPress.com StatsWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYesYou can view your stats dashboard here.You can add the following variables to your service sharing URL:You do not have sufficient permissions to access this page.You have shared this post with %sYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.Your Email AddressYour NameYour blog does not currently have any published posts.Your comment is awaiting moderation.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedcancelconfiguredayeditedit texthttp://jetpack.memonthnounCommentshare toEmailshare toFacebookshare toLinkedInshare toPress Thisshare toPrintshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n==1 || n%10==1 ? 0 : 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s %2$s прегледи%1$s во %2$s ч.Сакате да добивате извеÑтувања за Jetpack по е-пошта? %sВие моментално Ñте пријавени за извеÑтувања по е-пошта. %sпред %s« Претходна(без наÑлов)(задолжително)Ðаучи повеќе за овие опции.% одговори1 одговорÐктивирајДодајДодаде новаДодај нов ÑервиÑДодај или отÑтрани ознакиÐдмин лентаСитеСите напиÑиAutomattic AirlineÐдминиÑтраторот на овој блог мора да поÑтави Jetpack конекција.Страница Ñо прилозиAutomatticДоÑтапни ÑервиÑиДозволени кратенки Ñе: %l.Ðе заборавајте да кликнете на „Ðжурирај го профилот“ за да ги зачувате проените.ЦрнаСинаПонеÑете ја моќта од WordPress.com на Вашиот лично хоÑтиран WordPress. Jetpack Ви овозможува да го поврзите Вашиот блог Ñо Вашата WordPress.com Ñметка и да ги кориÑтите моќните функциите кои Ñе доÑтапни за WordPress.com кориÑниците.CSSОткажиКатегоријаСрединаГрафикон ÑпоредФинти правиш?Одберете од најчеÑтите ознакиКликнете за да иÑпратете на пријателКликни за печатењеКликни за да Ñподелиш на LinkedInКликни за да Ñподелиш на RedditКликни за да Ñподелиш на TwitterЗатвориÐаÑкоро…КоментарКоментариКомплекÑни фразиКонфигурирајПоÑтави %sКонектирај Ñо WordPress.comКонектирано Ñо WordPress.comKoнтактБрој ги прегледите на Ñтраниците на кориÑниците кои Ñе најавени.СопÑтвена адреÑа за е-поштаСопÑтвена порака:СопÑтвените полиња Ñе избришани.СопÑтвеното поле е ажурираноТемнаДатумДеактивирајДебагирајСтандардноИзбришиТрајно избришиОпиÑОневозможи CSS и JSДиÑконектирај од WordPress.comОтфрлиПрикажи мини верзија од Вашиот Gravatar профилПрикажи како:Двоен негативВлечи и оÑтави ги ÑервиÑите кои Ñакате да ги кориÑтите.Е-поштаУредиУреди елемент од менитоУреди ја Ñелекцијата...Е-поштаÐдреÑа за е-поштаПроверката не уÑпеа, обиди Ñе повторноИÑпразни ÑпамОвозможени ÑервиÑиВнеÑете URL адреÑа од икона Ñо димензии 16Ñ…16px која ќе Ñе кориÑти за овој ÑервиÑ.Грешка при вчитување на профилотГрешка: Ве молиме внеÑете валидна адреÑа за е-пошта.Грешка: Ве молиме пополнете ги задолжителните полиња (име, е-пошта).ОбјаÑни...FacebookГлавни ÑликиСледи го блоготСледи ме на TwitterЗа повеќе информации:БеÑплатноПочетна Ñтраница, архивÑки Ñтраници и резултати од пребарувањеГалеријаGravatar HovercardsGravatar профилЗеленаВиÑинаСкриени глаголиСокријПочетнаЛебдечките карти ја прикажуваат вашата Ñлика Ñо информации како: име, биографија, Ñлики, контакт и др. ÑервиÑи.ИконкаИконка + текÑÑ‚ÐдреÑа за иконкатаСамо иконкаИгнорорај ÑÑСекогаш игнорирајИгнорирај предлозиИгнорирани фразиСликаÐеактивенВметни видеоÐамеÑто да кориÑтите долги URL aдреÑи, Вие можете да ги Ñкратите адреÑите и кориÑтите поедноÑтавни адреÑи за Вашите напиÑи и Ñтраници. Ова го кориÑти Ñупер доменот - wp.me и Ви дава уникатно URL.Jetpack од WordPress.comJetpack бара WordPress верзија %s или понова.Jetpack на Вашиот лично хоÑтиран WordPress ги додава Ñите моќи кои ги има WordPress.comLaTeXЈазикГолемаПоÑледна променаПовеќе...Повеќе...Ðапишете коментарÐапиши одговор на %sÐапишете коментарЛевоСветлаМи Ñе допаѓаДопаѓањаLinkedInПреглед во реално времеВчитувам...M j, Y @ G:iМултимедијаСредноЕлемент на мениПоракаПромашен раÑпоредПовеќе информацииИмеСледна »Ð¡Ð»ÐµÐ´Ð½Ð° »ÐеÐема пронајдено додатоци.Ðема предлозиÐема пронајдено теми.Ðема грешки во пишувањето.ÐемаВО РЕДСтари напиÑиОпцииПортокаловаПодредувањеСтраници:ПатекаЛични врÑкиПингување:РозеваВе молиме потврдете го вашиот роденден.ДодатоциПортфолиоÐапиÑот не беше иÑпратен - проверете ја Вашата е-пошта!ÐапиÑиПритиÑни тукаПрегледПечатиПриватноÑтПолиÑа на приватноÑтСоопшувањеОбјави:ОбјавиОбјавеноВиолетоваСтавете го курÑурот врз Вашиот Gravatar за да го видите Вашиот профил.РангирањеСкорешни напиÑиЦрвенаRedditРегиÑтрирани кориÑнициИзбриши ÑервиÑПовторан зборЗамени го Ñелектираното Ñо:ОдговориВидливоÑÑ‚ на извеÑтувања ВратиДеÑноЗачувајЗачувај ги променитеЗачувај го нацртотЗачувајЗакажани напиÑиБарајПребарај коментариБарај мултимедијаПребарај додатоциИзберете улоги за кои ќе биде видлива ÑтатиÑтиката.ИÑпрати е-поштаИÑпрати по е-поштаОддели ги ознаките Ñо запиркиИме на ÑервиÑотСервиÑите додадени овде ќе бидат Ñкриени позади копчето за Ñподелување.ПоÑтавувањаПоÑтавувањата беа зачуваниСподелиСподели на FacebookСподели:Споделен напиÑСподелувањеПоÑтавувања за ÑподелувањеÐдреÑа за ÑподелувањеТекÑÑ‚:Кратенки за вметнувањеКратките кодови Ви овозожуваат полеÑно да додадете мултиедијални датотеки на Вашиот Ñајт. Со Ñамо еден едноÑтавен код Вие можете да му кажете на WordPress да вметне материјал од YouTube, Flickr, ...ПрикажиПрикачи лични врÑкиПрикажи ги топ напиÑитеПрикажи ги најкориÑтените термини за пребарувањеСребренаСтатиÑтикаЖалам, нема ништо за извеÑтување.Жалам, Вашиот блог не поддржува Ñподелување по е-пошта.Подреди по:СпамСтатиÑтикаÐаÑловИÑпратиПретплати ÑеПоддршкаИме на ознакаОзнакиУÑлови за кориÑтењеТекÑтСамо текÑтСтарата верзија беше деактивирана и можете да ја избришете.Старите верзии беа деактивирани и можете да ги избришете.Тема: %1$s.Овој Ð½Ð°Ð¿Ð¸Ñ Ð±ÐµÑˆÐµ Ñподелен!Ова видео е наменето за возраÑна публика.СликичкаÐаÑловÐаÑлов:Ðајдобри напиÑиÐајчитани напиÑи и ÑтранициТоп пребарувањаВо ѓубреОбидете Ñе да Ñе конектирате повторно.TwitterTwitter кориÑничко име:ТипURLÐекатегоризираноÐеобјавеноОткажи претплатаКориÑничко имеВредноÑтВерифицирани ÑервиÑиVideoPressВиди ги ÑитеВиди го целиот профил →Прегледи во претходните 48 чаÑа. Кликнете за повеќе ÑтатиÑтика.ПоÑетете ја СтатиÑтиката на Ñајтот за да ја видите Вашата ÑтатиÑтика.Веб ÑтраницаБелаWordPress.com СтатиÑтикаМоментално WordPress.com има проблеми и Jetpack е оневозможен. Ве молам обидете Ñе подоцна.Погрешна големина. Хм... изгледа дека Вашиот Jetpack не го Ñобира. Дали изгубивте тежина? Кликнете „Конектирај Ñе на WordPress.com“ за Вашиот Jetpack да Ñе намеÑти.Y/m/dY/m/d g:i:s AДаВашата ÑтатиÑтика можете да ја видите овде.Можете да ги додадете Ñледните променливи во вашиот ÑÐµÑ€Ð²Ð¸Ñ Ð·Ð° Ñподелување:Ðемате доволно дозволи за да приÑтапите на оваа Ñтрана.Го Ñподеливте овој Ð½Ð°Ð¿Ð¸Ñ Ñо %sПотребно е да ја авторизирате врÑката помеѓу Jetpack и Вашиот WordPress.com Ñајт за да ги овозможите функциите.Вие мора да региÑтрирате Jetpack пред да го конектирате.Вашата адреÑа за е-поштаВашето имеÐема објавени напиÑи на Вашиот блог.Вашиот коментар чека модерирање.Вашиот Ñајт треба да биде јавно доÑтапен за да кориÑти Jetpack: %sÐ½Ð°Ð¿Ð¸Ñ Ð¸Ð»Ð¸ Ñтраница е прво Ð¾Ð±Ñ˜Ð°Ð²ÐµÐ½Ð°Ð½Ð°Ð¿Ð¸Ñ Ð¸Ð»Ð¸ Ñтраница е ажуриранаОткажиКонфигурирајденУредиуреди го текÑтотhttp://jetpack.meмеÑецКоментарЕ-поштаFacebookLinkedInПретиÑни овдеПечатиTwitterпретходниот денпретходниот меÑецпретходниот кварталпретходната неделапретходната годинанеделаplugins/jetpack/languages/jetpack-hr.mo0000755000312500031250000011363612651056012020624 0ustar eacbforgeacbforgÞ•á$,0(1( A(FN(G•(Ý(’ä(w)†)—)­) Ä) Ï)0Ú) **‹+*©·*a+j+{+‚+†+Ž+ +[³+5, E,O,U, Y, f,p,"€,B£,Zæ,pA-²-¹-%É- ï-ú- .+.S<. .ž. ¤.².Ú·. ’/Ÿ/µ/ ¼/É/Ò/Û/â/ñ/%0*0I0X0m00œ0·0Ð0é01 11)111D1M1 ]1 g1t1|1i•1 ÿ1 2 $2512;g2 £2®2 µ2À2Ö2 ì2ö2 33 33$3,333F3 c3o33”3²3º3/Î3 þ3!4nA4°4¥Á4Cg5«5²5·5À5Ï5á5ó5 ù5$6 ,6[76“6¤6v´6A+7m77™7¸7*¿75ê7 8 )848=8F8V8 _8k8{8‘8™8 ž8«8-°8 Þ8é8ñ8ø8 99%9,9 49A9F9¾K9† :_‘:ñ: ö:; ;M; c; n;|;Ž;ž; ¤; ±;¼; Ì; Ø; ã;ð; ù;ã<ê<kû<g=n=v‡=/þ=c.>’>˜>ž>§> ­> »> Æ> Ñ>ß> ó>?? ? ??%-?S? r???  ? «?µ? º? Ç?Ô? Ú?å?ì? ñ?û? @@@ )@ 5@–B@Ù@î@ÿ@AAAA4A ;A HAVAYAkA}AŒA›A¹A ¾A ÌAÚAÝA îAúA, BF8BBœBºBÂBÉBÏB×B ÞBìBñBC CC!C>CFC NC [CiC/yC ©C ´C ÁCÎCÔC åC ðCûC DDDD-D ?DLD bD lDwD D‰D’D7™D<ÑDE E"E&E-E?E PE ^ElE {E‰E¡E§E¹E×E6õE,F 4FUFåFëF ðFýF GG!G 1G>GMGdG9sG%­G ÓGÞGôGH *H/7H;gH£H¬HÅH ×HãH ùIJ JJ .J :JHJ²YJ K8KJK:ZK •KŸK³KÎKÔK ÛK åKðKöKLL--L[LdLIiL³L¼LÂLÊL ÑL ßLéLùLMMM0M5M HM RM‘\M©îM§˜N @OÊMO?P>XP\—P¡ôP–QI±Q,ûQ (R2R8R>RúER @SJS `SmSsS‰SS£S«S½SÂSÈS ÌS ÚS æSòS úS@TžHTçTðT öTU U:U/VU4†U»U#ÌUðUøUV V&V-VEVYVjpVÛV­óV¡W §WµWÉW7ÍW3X89X@rX;³X2ïX!"YpDY7µY7íY%Z 8Z6BZ$yZ?žZ!ÞZ[[ ![+[/[ 4[>[P[f[v[ |[ ‰[“[¢[´[È[×[ è[õ[\ \ #\1\&6\:]\˜] «]4·]/ì]^—%^½^Ì^Þ^÷^ _ _.(_W_i_„z_§ÿ_ §`±`Ã`Ë` Ñ`Ü`î`m a-xa ¦a²a¸a ¼a ÉaÕaéa; bEbwÓbKcTc$fc ‹c–c§c ÄcWÒc*d:d ?dKdæQd 8eCe]efeve {e†ee¤e*µe'àeff%'fMf]fsfˆfœf²f ºfÅfÚfãf øfg g g 0g;gqXgÊgÒgêg4ùgC.hrh hh h¿h ßhéhûhi iii i(i9iTiYimii›i£i.¼i'ëi"jO6j†jÅ™j>_kžk§k ­k·kÎkákók ük> l HleUl»lÌlÝl@mm®m%Æm"ìmn.n6Gn~n ‡n’n ›n¥nµn ÊnÕnånûn o oo7"oZolouo|o˜o´o»oÂoÊoÛoâoÖëo«Âp~nqíq óq r r_r vrƒr”r¨r¹r ¿rËrÞrîr ÿr s s !sê-stj3tžt¦ty¿t29u\luÉuÏu×uÝuäu óu v vv%v.v5v >v KvYv/pv$ vÅvÔvévýv ww w*w>wDwSw\wewvw}wŒw“w £w¯wšÀw[xpx€x†x˜xœx¡x ¹xÃxÕxçx,êxy7yIy#iyy•y ¬y·yºyÊyÚy:ôy/z?z(Eznz uzz ‰z •z Ÿz¬z´zÆz Üz æzòz{ {#{3{F{2V{‰{ ‘{ œ{©{±{Å{ Ö{ á{í{ÿ{ ||%|9|A|U| ^|i| p|{| ‚|HŽ|F×|} %}2}9}@}O}f}u} „}’}¥}½}Æ}Ý}ß}á}ã}é}œ~¡~§~­~¼~ Ð~ Ú~ä~ø~&@ES'™ÁÑ%ì€ -€59€Co€³€¼€Ò€ é€ö€‚ #‚/‚C‚W‚j‚{‚ݘ‚vƒ7~ƒ¶ƒFʃ„ „:„Y„b„ j„v„ Ž„›„¹„À„BÝ„ …-…n2…¡… µ…À…Ç…Ð… à…í…† ††-†@†F†f† {†¾††¼E‡¼ˆ ¿ˆóˈB¿‰MŠ˜PŠÏ銹‹QÓ‹-%Œ SŒ^ŒgŒnŒIvŒÀÐ ëùŽŽ"Ž>ŽFŽ_ŽcŽjŽnŽ ŽŒŽ žŽ©ŽI¸Žž¡ ± ¼ ÇÔSó<GB„Ç)Ý ‘‘0‘ 7‘E‘N‘i‘}‘n›‘ ’©'’Ñ’ ×’ã’ø’9û’85“Jn“G¹“5”97”"q”–””0+•2\•• £•0­•#Þ•J–)M–w–—–  –­–±– ·–ÖÕ–ë–ÿ–— ——$— -—8—>— F—R—a—q—€——–—‚¯(õˆá¢’¬5B»À{狌aUÑ%HVI¨I|Û ¡†4ÑsöÚv½ÔJŒ)‡S<ÃÉ=.ÎÅLÖeº"^O`¸ÿ+qicýPêZª#Ð0©GÂŽ°_·†zd*}Íc]dK‘ {;.&¹[í\UCb®D¤xÚ¡^+r°Ù>3Õž ¾bÐwN—?„_Š…²WÏRhÇà|Ò‹ Á/k¶¢‡åyÛ(»v3ßm/Ø8רð¯kÊMÓÊnQu£>ìË;=àJ¬û<¾Çî› 'üëD]g–&É2G£8¤­“@®’ƧY½h“šÝ0”ñ¦é›MÜQ:f÷ž²ƒ¹F67œ±@Í" u'7 ÏßpO%Ây¸µE€F±9e–·Wƒfó  À‰º? Ÿ³„KмjSŸ!ÕÔløB µÈ­ ¶}‰l-á~C-sÅÜÄ9Ë…Ì,ÓZÄ*RE”Ý!~X«mn\Á™Þù6r˜zÒŽšt‚$ú‘§¥ PH¿T¼ ©³×èjT[4•˜oAVˆï`,¦È•q✀¥«ä™Lxο´XØ:ÌÖò—iA2ÙYa1Þp1wã)tª#Æþg´5æôN$Ão%1$s %2$s Views%1$s at %2$s%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s is required« Previous← Older Comments— Select —(no title)(required)Learn more about these options.% Replies1 ReplyYour Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).ActivateActivate AkismetActiveAddAdd NewAdd a new serviceAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Additionally you can define your own custom services.Admin barAlbumAllAll ProjectsAll postsAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlueBring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Button styleCSS Stylesheet EditorCancelCancel replyCaption:CategoryCenterChart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsClichésClick to Press This!Click to email this to a friendClick to printClick to share on LinkedInClick to share on RedditClick to share on TumblrClick to share on TwitterCloseColor SchemeComing soon…CommentComment navigationCommentsComplex PhrasesConfigureConfigure %sConnectConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected to WordPress.comContact InfoContinue reading →Count the page views of registered users who are logged in.Crop ImageCustomCustom CSSCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay your books from GoodreadsDon’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Double NegativesDrag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEdit Selection...Edit Your ProfileEmailEmail AddressEmail check failed, please try againEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Explain...FacebookFeaturedFeatured ImagesFeedbackFollow BlogFollow CommentsFor more information:Format:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageGalleryGoogleGravatar HovercardGravatar HovercardsGreenHeightHeight:Hidden VerbsHideHomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Color:Image LinkImage Settings:Image Size:Image URL:Image title:InactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Invalid usernameIt’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.JargonJetpack by WordPress.comJetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.LaTeXLabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:Likes and SharesLink URL (when the image is clicked):Links to your blog's RSS feedsLive PreviewLoading video...Loading…Loading...Logged InLogoM j, Y @ G:iMain SidebarMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMissed scheduleMobile AppsMobile ThemeModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationNameNewNewer Comments →NewestNext »Next » NoNo feedback foundNo plugins found.No suggestionsNo tags found.No writing errors were found.NoneNothing FoundNotificationsOKOfficial buttonsOlder postsOn for all postsOnly display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhrases to AvoidPingback:PinkPlease verify your birthday.PluginsPopularPost CommentPost by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPrimary MenuPrintPrivacyPrivacy PolicyProofread WritingProofreadingProudly powered by %sPublicizePublicize:PublishPublishedPurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RatingRecent PostsRedRedditRedundant PhrasesRegistered usersRelated PostsRelated postsRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave configurationScheduledSearchSearch CommentsSearch MediaSearch PluginsSearch Results for: %sSearch resultsSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Separate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing ButtonsSharing SettingsSharing URLSharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow a 'follow blog' option in the comment formShow buttons onShow falling snow on my blog until January 4th.Show moreShow top posts overShow top search terms overShow:SilverSite NameSite StatsSitesSkip to primary contentSnowSorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)SpellingStatsSubjectSubmitSubmit »SubscribeSubscribe to %sSupportTagsTake WordPress with you.Terms of ServiceTextText & Image LinksText LinkText onlyThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There was an error communicating with the proofreading service.These settings change emails sent from your blog to followers.This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected. Enter the password to view any comments.This video is intended for mature audiences.ThumbnailTime:TitleTitle:To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.Top PostsTop Posts & PagesTop SearchesTrashTry connecting again.TumblrTurned on per postTwitterTwitter username:TypeTypesURLUncategorizedUnpublishedUnsubscribeUpdatedUpload ImageUse automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.UsernameValueVideoPressView AllView Mobile SiteView people's profiles when you mouse over their GravatarsViews over 48 hours. Click for more Site Stats.Visit Site Stats to see your stats.WP.me ShortlinksWarning! Multibyte support missing!WebsiteWhat’s a Hovercard?WhiteWidget title:Width:WordPress.com Likes areWordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can add the following variables to your service sharing URL:You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Email AddressYour NameYour blog does not currently have any published posts.Your comment is awaiting moderation.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedcancelconfiguredayeditedit texthttp://jetpack.mehttp://wordpress.org/loading…monthnounCommentproofreadshare toEmailshare toFacebookshare toPress Thisshare toPrintshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s %2$s pregleda%1$s u %2$sŽelite primati novosti o Jetpacku putem e-maila? %sTrenutno ste pretplaćeni na email novosti. %s Prije %s%s nije mogao biti aktiviran zbog toga Å¡to je prouzrokovao fatalnu greÅ¡ku. Možda postoji konflikt sa drugim instaliranim dodacima? %s je potrebno« Prethodno← Stariji Komentari— Odaberi —(bez naslova)(obavezno)Saznaj viÅ¡e o ovim opcijama.% Odgovora1 OdgovorVaÅ¡ Jetpack ima problem. Dogodilo se neÅ¡to Å¡to se ne bi trebalo dogaÄ‘ati. Izgleda da se jednostavno sretni: %s VaÅ¡ Jetpack ima problem. Povezivanje ovog sajta sa WordPress.com nije moguće. Ovo obiÄno znaÄi da vaÅ¡a stranica nije javno dostupna (localhost). AktivirajAktiviraj AkismetAktivnoDodajDodaj NovuDodaj novi servisDodajte ili uklonite oznakeDodajte gumbe za dijeljenje na svoj blog i dopustite posjetiteljima da dijele postove sa svojim prijateljima.Možete definirati i vaÅ¡e vlastite servise. Admin trakaAlbumSviSvi projektiSvi postoviAlternativni tekst:Automattic AirlineAdministrator za ovaj blog mora postaviti Jetpack spajanje.Dogodila se greÅ¡ka prilikom kreiranja vaÅ¡eg novog servisa za dijeljenje - molimo vas da provjerite da li ste unijeli ispravne informacije. Žalim, ali nije pronaÄ‘en ni jedan rezultat za traženu arhivu. Možda će pretraživanje pomoći naći traženi post.UmjetnikStranica PrivitkaAutomatski lekturiraj sadržaj kada:AutomatticDostupni ServisiDostupni kratki kodovi: %l. Boja pozadineNe zaboravite kliknuti na "Ažuriraj profil" u dnu stranice da biste snimili promjene. Pristrani JezikCrnaBlog ArhivaPlavaIskoristite WordPress.com mogućnosti na vaÅ¡em vlastito hostanom blogu. Jetpack vam omogućava povezivanje vaÅ¡eg bloga sa WordPress.com raÄunom radi koriÅ¡tenja vrhunskih mogućnosti koje su dostupne WordPress.com korisnicima. Stil GumbaCSS Stylesheet UreÄ‘ivaÄOdustaniOtkaži odgovorOpisKategorijaCentarGrafikon statistike odMalo varamo, ha?Provjeravam status e-mail novosti… Odaberi izmeÄ‘u najkoriÅ¡tenijih oznakaKliÅ¡ejiKlikni za Press This!Kliknite za slanje e-maila prijateljuKlikni za ispisPodijeli na LinkedInuPodijeli na Redditu Podijeli na TumblruPodijeli na Twitteru ZatvoriShema BojaDolazi uskoro…KomentarNavigacija komentaraKomentariKompleksne FrazeKonfigurirajKonfiguriraj %sSpojite sePoveži se na WordPress.com Povežite vaÅ¡ blog sa popularnim druÅ¡tvenim mrežama i automatski dijelite nove postove sa vaÅ¡im prijateljima.SpojenoSpojen na WordPress.comKontakt podaciNastavi Äitati →Broji posjete stranici registriranih korisnika koji su prijavljeni.Izrezati slikuPrilagodljivoPrilagoÄ‘eni CSSPrilagodljivo polje izbrisano.Prilagodljivo polje ažurirano.PrilagodiDnevni Arhivi: %sTamnaDatumDeaktivirajDebugZadanoObriÅ¡iTrajno IzbrisatiTrajno izbriÅ¡i ovu stavkuOpisDiakritiÄke OznakeOnemogući CSS i JSOdspojen sa WordPress.comZatvoriPrikaži Tekst ZaglavljaPrikaži mini inaÄicu vaÅ¡eg Gravatar ProfilaPrikažite sliku u vaÅ¡em rubnom stupcuPrikaži svoje knjige sa GoodreadsMorate biti prijavljeni na vaÅ¡ WordPress blog prilikom autorizacije Jetpacka. Dvostruki NegativiDovucite i ispustite servise za dijeljenje u sekciju za omgućavanje da biste ih prikazali na vaÅ¡em sajtu, a možete ih odvući i u sekciju za sakrivene servise kako biste ih maskirali iza gumba. Povuci i spusti servise koje želite omogućiti u okvir ispod.E-poÅ¡taUrediUredi CSSUredi stavku IzbornikaUredi Selekciju...Uredi svoj ProfilE-poÅ¡taEmail adresaProvjera e-maila nije uspjela, molimo vas da pokuÅ¡ate ponovo ObriÅ¡i SpamOmogući lekturiranje za sljedeća gramatiÄka i stilska pravila prilikom pisanja postova i stranica:Omogući ServiseOpcije EngleskogUnesite kratki kod direktno u ureÄ‘ivaÄ postova/stranice kako biste ugradili multimediju. Za detaljne instrukcije pogledajte poveznice ispod. Unesite URL 16x16px ikone koju želite koristiti za ovaj servis.Detalji o pogreÅ¡ci: %sPogreÅ¡ka pri premjeÅ¡tanju u Smeće.PogreÅ¡ka pri vraćanju iz Smeća.GreÅ¡ka!GreÅ¡ka: molimo unesite valjanu e-mail adresu.GreÅ¡ka: molimo ispunite tražena polja (ime, e-mail).Primjer:Objasni...FacebookIstaknutoIstaknute SlikePovratne informacijePrati BlogPrati KomentareZa viÅ¡e informacija:Format:BesplatnoBesplatni formatiOdPoÄetna Stranica, Arhiv Stranice, i rezultati PretragePoÄetna stranicaGalerijaGoogleGravatar lebdjeća kartica Gravatar lebdjeće kartice ZelenaVisinaVisina:Skriveni GlagoliSakrijPoÄetnaLebdjeće kartice poboljÅ¡avaju obiÄne slike Gravatara sa informacijama o osobi: ime, biografija, slika, kontakt informacije i drugi servisi koje dotiÄna osoba koristi kao Å¡to su Twitter, Facebook ili Linkedln. Lebdjeće kartice poboljÅ¡avaju obiÄne slike Gravatara sa informacijama o osobi: ime, biografija, slika, kontakt informacije i drugi servisi koje dotiÄna osoba koristi. Lebdjeće kartice su odliÄan naÄin za prikazivanje vaÅ¡eg internet prisustva i pomoć drugim osobama da pronaÄ‘u vaÅ¡ blog. IkonaIkona + tekstURL IkoneSamo ikonaIdentificiraj rijeÄi i fraze koje treba ignorirati tijekom lekture vaÅ¡ih postova i stranica: Zanemari sveUvijek ignorirajIgnoriraj prijedlogIgnorirane FrazeSlikaBoja Slike:slikovna poveznicaPostavke Slike:VeliÄina Slike:URL slike:Naziv slike:NeaktivanUnesi VideoUmjesto da unosite ili ubacujete duge URL-ove sada možete dobiti kratki i jednostavni link ka vaÅ¡em postu ili stranici. Ova mogućnost koristi kompaktnu wp.me domenu i daje vam na koriÅ¡tenje unikatni URL koji je siguran i pouzdan. Neispravno korisniÄko imeOvo je savrÅ¡eno za upotrebu na Twitteru, Facebooku i u mobilnim tekst porukama gdje se broji svaki znak. ŽargonJetpack od WordPress.comJetpack ne može kontaktirati WordPress.com: %s. Ovo obiÄno znaÄi da je neÅ¡to krivo konfigurirano na vaÅ¡em web hostu.Jetpack zahtjeva WordPress inaÄicu %s ili noviju.Jetpack daje vaÅ¡em samostalno hostanom WordPress sajtu vrhunske WordPress.com mogućnosti. LaTeXEtiketaJezikVelikaZadnja izmjenaSaznaj ViÅ¡eSaznaj ViÅ¡eOdgovoriOdgovori na %sOdgovoriLijevoSvijetlaSviÄ‘a mi seSviÄ‘a ti se?SviÄ‘anja i dijeljenjaURL putanja poveznice (kada se klikne na sliku)Poveznice do RSS kanala vaÅ¡eg blogaPregled UživoUÄitavanje videa...UÄitavanje…UÄitavanje...prijavljenLogoj. F Y. @ H:iGlavna BoÄna trakaMediaMedia DatotekaOsrednjeIzbornikStavka IzbornikaPorukaPoruka PoslanaPorukePropuÅ¡teni rokMobilne AppTema za MobiteleModul nije mogao biti aktiviran zbog toga Å¡to je prouzrokovao fatalnu greÅ¡ku. Možda postoji konflikt sa drugim instaliranim dodacima? MjeceÄni arhivi: %sMjeseÄni arhivViÅ¡eViÅ¡e informacijaImeNovoNoviji Komentari →NajnovijeSljedeće »Sljedeće »NeNije pronaÄ‘ena nijedna povratna informacijaNije pronaÄ‘en nijedan dodatak.Nemamo prijedlogaNije pronaÄ‘ena nijedna oznaka.Nisu pronaÄ‘ene greÅ¡ke u pisanju. NijednoNiÅ¡ta nije pronaÄ‘enoObavijestiOKSlužbeni gumbiStariji postoviUkljuÄena za sve postovePrikaži samo video koji je u besplatnim softver formatimabez-podpostavkiuklj.Otvori poveznicu u novom prozoru/karticiOpcijeNaranÄastaPoredakStranica %sStranice:Pasivni GlasPutanjaStalna veza na %sFraze za IzbjegavanjePingback:RužiÄastaMolim potvrdite vaÅ¡ roÄ‘endan.DodaciPopularnoObjavi KomentarPost putem E-mailaPost NavigacijaPost nije poslan - provjerite vaÅ¡u email adresu! ObjavioObjavio %sPostano u %sPostoviPostovi i KomentariStranica postovaPress ThisPredpregledPrimarni IzbornikIspiÅ¡iPrivatnostPolica PrivatnostiLektoriraj NapisanoLekturaPonosno pokreće %sObjavitiObznaniti:ObjaviObjavljenoKupnjaLjubiÄastaPrikaži grafikon koji prikazuje preglede tijekom 48 sati u admin traku.Postavite kursor miÅ¡a na Gravatara kako biste pogledali vaÅ¡ profil. OcjenaNovi PostoviCrvenaRedditSuviÅ¡ne FrazeRegistrirani korisniciSrodni postoviSrodni postoviUkloni ServisPonovljena rijeÄ Zamijeni selekciju sa: OdgovoriDostupnost izvjeÅ¡taja VratiVrati ovu stavku iz SmećaVrati poÅ¡iljaocu. Izgleda da se dobili pogreÅ¡an Jetpack u emailu; izvrÅ¡ite deaktivaciju i ponovnu aktivaciju Jetpack dodatka da biste dobili novi email. DesnoSnimiSnimi PromjeneSnimi konfiguracijuTempiranoPretražiPretraži KomentarePretraži medijske datotekePretraži DodatkeRezultati Pretrage za: %sRezultati pretrageOdaberite uloge koje će moći pregledavati statistiÄke izvjeÅ¡taje.Osobna SemantiÄka IzdavaÄka PlatformaPoÅ¡alji E-mailPoÅ¡alji na e-mail adresu Poslano od provjerenoga %s korisnika.Razdvojite oznake zarezimaIme servisaServisi dovuÄeni ovdje pojaviti će se individualno.Servisi dovuÄeni ovdje biti će sakriveni iza gumba za dijeljenje.PostavkePostavke su snimljenePodijeli na Facebooku Podjeli ovo:Podijelite vaÅ¡e Älanke na Twitteru, Facebooku i mnogo drugih servisa. Možete konfigurirati servise da se prikazuju kao ikone, tekst ili oboje. Neki servisi imaju dodatne opcije za prikaz pametnih gumbova, npr. Twitter, koji će vrÅ¡iti ažuriranja broja dijeljenja nekog Älanka. Podijeljeni postDijeljenje Gumbi za DijeljenjePostavke DijeljenjaURL za dijeljenje Oznaka DjeljenjaUgraÄ‘ivanje kratkih kodova Kratki kodovi omogućavaju vam jednostavko i sigurno ugraÄ‘ivanje mutimedije sa drugih lokacija na vaÅ¡u stranicu. Pomoću jednog jednostavnog koda, možete reći WordPressu da ugradi Youtube, Flickr i drugu multimediju. PokažiPrikaži 'prati blog' opciju u komentar formi.Prikaži gumbe na/uPrikaži padajući snijeg na mojem blogu do 4. sijeÄnjath.Prikaži viÅ¡ePrikaži najbolje postovePrikaži najtraženije pojmovePokaži:SrebrnaNaziv SiteaStatistike web straniceWeb straniceSkoÄi do primarnog sadržajaSnijegŽalim, niÅ¡ta za prijaviti.Žao nam je, vaÅ¡ blog ne može dijeliti Älanke pomoću e-maila. Sortiraj po:SpamSpam (%s)Spam (%s)Spam (%s)Provjera pravopisa StatistikaNaslovPoÅ¡aljiPoÅ¡alji »Pretplati sePretplati se na %sPodrÅ¡kaOznakePonesite WordPress sa sobom.Uvjeti koriÅ¡tenjaTekstTekstualne & slikovne poveznicetekstualna poveznicaSamo tekstStara inaÄica je deaktivirana i može biti uklonjena sa sajta.Stare inaÄice su deaktivirane i mogu biti uklonjene sa sajta.Starih inaÄica je deaktivirano i mogu biti uklonjene sa sajta.Postoje prijedlozi za lektorisanje ovog posta. Jeste li sigurni da ga želite objaviti? Pritisnite OK za ažuriranje Älanka, ili Cancel za pregled prijedloga i ureÄ‘ivanje vaÅ¡eg posta. Postoje prijedlozi za lektoriranje ovog posta. Jeste li sugurni da ga želite ažurirati? Pritisnite OK za ažuriranje posta, ili Cancel za pregled prijedloga i ureÄ‘ivanje vaÅ¡eg posta. Tema: %1$s.Postoji mnogo dodataka i servisa koji pružaju statistiÄke podatke ali koliÄina tih podataka Äesto može biti problem. WordPress.com statistika daje vam najpopularnije podatke na vrlo jednostavan naÄin u preglednom i atraktivnom suÄelju. Dogodila se greÅ¡ka pri komunikaciji sa servisom za lektoriranje. Ove postavke mijenjaju poruke e-poÅ¡te poslane sa vaÅ¡eg bloga sljedbenicima.Ova galerija sadrži %2$s fotografiju.Ova galerija sadrži %2$s fotografije.Ova galerija sadrži %2$s fotografija.Ovaj dodatak će raditi i bez nje, ali multibyte podrÅ¡ka se koristi uvijek kada je dostupna. Moguće je da ćete imati sitne probleme sa vaÅ¡im tweetovima i drugim servisima za dijeljenje. Ovaj post je podijeljen! Post je zaÅ¡tićen lozinkom. UpiÅ¡ite lozinku kako bi vidjeli bilo koji komentar.Ovaj video je namijenjen punoljetnoj publici.MinijaturaVrijeme:NaslovNaslov:Da biste vidjeli lebdjeće kartice, otvorite bilo koji Älanak na vaÅ¡em blogu koji ima komentare. Ako osoba koja je napisala komentar ima lebdjeće kartica pridružene sa gravatarom, prelaskom miÅ¡a preko slike te osobe aktivirat ćete lebdjeće karticu. Za iskljuÄivanje lebdjećih kartica, kliknite na gumb za deaktiviranje. Najbolje objaveTop Postovi & StraniceNajtraženijeSmećePokuÅ¡aj ponovno spajanje.TumblrZasebno ukljuÄena po postuTwitterTwitter korisniÄko ime:TipTipoviURLNekategoriziranoNeobjavljenoOtkaži pretplatuAžuriranoPrijenos SlikeUpotrijebi automatski detektiran jezik za lekturiranje postova i stranicaKoristite tipku TAB na tipkovnici za kretanje po stupcima i tipku ENTER ili NATRAG za spremanje redka i prijelaz u sljedeći.KorisniÄko imeVrijednostVideoPressPrikaži svePregledaj Mobilnu Web stranicuPregledajte informacije o osobama kada postavike kursor miÅ¡a na njihove Gravatare Pregledi tijekom 48 sati. Kliknite za viÅ¡e Sajt Statistike.Za pregled statistike posjetite Sajt statistiku. WP.me kratki linkovi Upozorenje! Multibyte podrÅ¡ka nedostaje!Web stranicaÅ ta je lebdjeća kartica? BijelaWidget naslovÅ irina:WordPress.com SviÄ‘anja suWordPress.com StatsWordPress.com korisniÄko imeWordPress.com trenutno ima neke probleme i nem ože aktivirati vaÅ¡ Jetpack. Molimo vas da pokuÅ¡ate kasnije. Vau, To zvuÄi Å¡treberski. Neispravna veliÄina. Izgleda da se Jetpack se može ispravno uklopiti. Kliknite ponovo na “Poveži se na WordPress.com” za prilagoÄ‘avanje vaÅ¡eg Jetpacka. d.m.Yd/m/Y H:i:sGodiÅ¡nji arhivi: %sDaNemate dopuÅ¡tenje za premjeÅ¡tanje ove stavke iz Smeća.Nemate dopuÅ¡tenje za premjeÅ¡tanje ove stavke u Smeće.Ovdje možete pogledati nadzornu ploÄu vaÅ¡ih statiska. Možete dodati sljedeće varijable u URL vaÅ¡eg servisa za dijeljenje: Nemate dopuÅ¡tenje potrebno za pristup ovoj stranici.UspjeÅ¡no ste se pretplatili na primanje e-mail novosti. Podijelili ste ovaj Älanak sa %s Morate izvrÅ¡iti autorizaciju Jetpack spajanje izmeÄ‘u vaÅ¡eg sajta i WordPress.com da biste omogućili vrhunske mogućnosti koje vam Jetpack pruža. Morate registrirati vaÅ¡ Jetpack prije spajanja.ViÅ¡e nećete dobivati e-mail novosti o Jetpacku. VaÅ¡a e-mail adresaVaÅ¡e imeVaÅ¡ blog trenutno nema nijedan objavljeni post.VaÅ¡ komentar Äeka na moderiranje.VaÅ¡a web sajt mora biti javno dostupan da bi mogao koristiti Jetpack: %s su post ili stranica prvi put objavljeni su post ili stranica ažuriraniOdustaniKonfigurirajdanUrediuredi teksthttp://jetpack.mehttp://wordpress.org/UÄitavanje…mjesecKomentarlektoriranje E-mailFacebookPress ThisIspisTwitterproÅ¡li danproÅ¡li mjesecproÅ¡la ÄetvrtproÅ¡li tjedanproÅ¡la godinatjedanrijeÄiplugins/jetpack/languages/jetpack-ka_GE.mo0000755000312500031250000000335612651056012021156 0ustar eacbforgeacbforgÞ•¼\ÐÑØ àí ü -7IOWu6“ÊÓÙóúçÿçû=PU4¦+Û>+FGrº3Ó  7 !EKg³!Ì    %s agoCommentContact InfoEdit Menu ItemEmpty SpamFeatured ImagesFor more information:Menu ItemNo plugins found.OrderPrivacyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... UsernameValue[%s] Joining confirmationcanceleditPO-Revision-Date: 2015-08-24 07:07:04+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %s-ის წინკáƒáƒ›áƒ”ნტáƒáƒ áƒ˜áƒ¡áƒáƒ™áƒáƒœáƒ¢áƒáƒ¥áƒ¢áƒ ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒáƒ›áƒ”ნიუს ელემენტის რედáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒáƒ¡áƒžáƒáƒ›áƒ˜áƒ¡ გáƒáƒ¡áƒ£áƒ¤áƒ—áƒáƒ•ებáƒáƒ áƒ©áƒ”ული სურáƒáƒ—ებიდáƒáƒ›áƒáƒ¢áƒ”ბითი ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ:მენიუს ელემენტიáƒáƒ áƒªáƒ”რთი დáƒáƒœáƒáƒ›áƒáƒ¢áƒ˜áƒ ნáƒáƒžáƒáƒ•ნიდáƒáƒšáƒáƒ’ებáƒáƒ™áƒáƒœáƒ¤áƒ˜áƒ“ენციáƒáƒšáƒ£áƒ áƒáƒ‘რმáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლიმნიშვნელáƒáƒ‘áƒ[%s] გáƒáƒ¬áƒ”ვრიáƒáƒœáƒ”ბის დáƒáƒ“სტურებáƒáƒ’áƒáƒ£áƒ¥áƒ›áƒ”ბáƒáƒ áƒ”დáƒáƒ¥áƒ¢áƒ˜áƒ áƒ”ბáƒplugins/jetpack/languages/jetpack-hu_HU.mo0000755000312500031250000052524012651056012021221 0ustar eacbforgeacbforgÞ•ò¬/í<_ð~ñ~8ÏA€$€4€?F€†€-¤€.Ò€;‚ =‚ J‚W‚7lƒ ¤ƒ ±ƒF¿ƒG„N„W„’^„Hñ„:…Q…&j…[‘…í…†"†1†!7†LY†¦†¼†Ô†Û†ì†‡‡ 7‡ B‡CM‡‘‡1 ‡0Ò‡ˆˆ#ˆx7‰p°‰+!Š#MŠrqŠ1äŠy‹-‹}¾‹H<Œ9…Œ‹¿Œ©K4õ€*Ž6«Ž⎠ñŽ$-> Wdko€  ¥³Ëàð - :HXhCz¾ÑÚï[‘^‘w‘‡‘Ž‘5®‘ä‘Jí‘ 8’xB’s»’/“5“ 9“D“M“b“t“…“ —“¤“µ“Ɠٓ ë“ õ“”(”?”1_”‘” ®”»” Ë”"Ù”Bü”Z?•*š•Å•6Ý•-–YB–œ–p¥– —7#—f[—C—˜ ˜.˜M˜¤]˜™%™ 8™C™V™i™‡™ ™³™SÄ™kš „š’š ˜š¦š ÚÍšäšéšÚýšØ›÷› œ²œÆœ ʜ؜îœõœ2 (?h o|…Ž— žMªøžž)ž%2ž Xž fž‡ž ¦ž²žºž ÉžÔž#éž Ÿ-Ÿ<ŸVŸqŸŸ¦Ÿ¿ŸØŸòŸ     C$ ,h "•  ¸ \Å ?"¡b¡*q¡œ¡£¡¶¡¾¡Сç¡¢¢%¢!.¢P¢`¢ g¢ q¢~¢"†¢E©¢ ï¢ú¢i£ }£‡£ ¤£²£WÍ£ %¤2¤ D¤$Q¤5v¤B¬¤ï¤¥C¥;T¥¥n¤¥ ¦¦0¦ 7¦B¦X¦l¦¦‘¦§¦ ½¦˦ á¦ë¦ §§"§1§6§ ;§F§ L§W§G_§q§§¨)¨0¨C¨ `¨õl¨b© t©©’© ¨©³©Æ©ä©+쩪5ªJª^ªEvª/¼ª$ìª3« E«5f« œ«¨«(À«/é«D¬/^¬!ެ6°¬xç¬S`­´­8Э* ®n4®%£®É®Ú®#ã®&¯¥.¯CÔ¯° 6°@°V°R]°R°±<²Ó@²Ÿ³´³¹³ ³ ͳÚ³é³þ³ ´´.´@´R´c´u´‰´ ´´$¬´Ñ´ã´÷´1µ 8µ(Cµlµ"µ¤µ2´µ[çµC¶T¶4d¶v™¶A·R·q·‘·cª·¸\ ¸O}¸V͸$¹3¹M¹l¹‚¹‰¹œ¹)º¹Iä¹*.º5Yº(º¸º8Áºúº »»%».» @»N» `»n»w»ˆ»˜»¬»µ»É» ä»úï» ê¼ ÷¼ ½½ ½5½ G½àR½E3¾y¾ ¾œ¾¤¾ ©¾¶¾-»¾ é¾±ô¾¦¿®¿EÊ¿"À#3ÀWÀähÀMÁ TÁ^ÁeÁxÁŒÁÁ £Á±ÁËÁ ÒÁßÁ*çÁ ÂÂ$ =Â5^Â!”¶»¾†Ã_ÄhÄë|ÄÞhÅ GÆSÆ XÆdÆ mÆMwÆ6ÅÆ[üÆõXÇmNÈ^¼ÈQÉÖmÉ DÊ OÊ]ÊoÊÊ…Ê –Ê£ÊºÊ ÒÊ ÝÊ èÊóÊ Ë Ë Ë'Ë;ËHCËdŒË=ñË/Ì$8Ì]Ì+lÌ ˜Ìã¥Ì…‰Í{Î ‹Î–ΰÎÀÎØÎéÎtÿÎBtÏI·ÏkÐOmнÐÝÐìÐóÐûÐ Ñ~(Ñ§Ñ ÀÑ!ÌÑîÑÒ"Ò3Ò JÒXÒwÒ‡Òu ÒÓN–ÓvåÓ+\Ô/ˆÔ%¸ÔÞÔ>ôÔ33ÕÍgÕ/5ÖceÖ¢ÉÖ®l×üØ2ÙKÙkTÙÀÙÆÙ?ÌÙ= ÚGJÚ\’ÚfïÚXVÛ¯ÛQ¶ÛÜÜÜ (Ü6Ü FÜ QÜ\Ü wÜ…Ü ™Ü§Ü¬ÜÃÜÉÜ ÎÜÙÜßÜÑóÜÅÝ)ÖÝnÞoÞÞ%ŠÞ°Þ<ÐÞ" ß0ß.9ßhßQ‡ß Ùß{æßbàsà‡à˜à ¨à³àÓà íà ÷àáá á -á9:áJtá0¿áNðá ?âLâjâ„ââOžâîã2ýã0ä 6ä AäNäUä Zädätä …ää §ä ´äFÂä/ å&9å`å_qåBÑåæ-'æUæ ]æjæsæ|æŒæ£æ»æÓæ åæ ñæþæçUç0mçbžçAèXCèkœèdéQmél¿éL,êOyê\Éê`&ëK‡ëMÓëY!ì?{ìb»ì_íh~íSçío;îh«îMïgbïkÊïU6ðJŒð]×ðL5ñR‚ñWÕñh-òa–òFøò ?óKófó{ó”ó «ó!Ìó!îóô0ôLôaô"~ô¡ô³ôÆôÛôôôõ"õ9õLõfõzõõªõ¾õÛõñõ ö0öJöfö}ö”ö±öÏöïö!÷'÷=÷O÷`÷}÷÷®÷–Á÷Xøpø…ø–ø›øL¬ø ùø$ù(?ùhùù ”ùžù£ù´ù ¸ù ÂùÐùéù ú ú!ú7ú?ú Oú+Yú+…ú±úÇú Îú Ûúéú ìú ÷úûû +û 5û ?ûIûYûmûŠû›û­û ÈûÕûëû¯ üºü=Ùüý )ý5ýGýVýeývý‰ýÌšýgþ*…þ°ÿËÿ Ðÿ Þÿ4ìÿ˜! º È)Ö  !3+F_0¦)×35Mil*} ¨¦µ\ e q|Š¡^,-‹'¹,á!†0K·FJg…)™ÃËÒ\Ø5=DXm –¤©¹ÈÏ àê ïùC 5M+ƒC¯ÅóQ¹ % +1  ] $~ £ %½ ã  > ^ t ‘ £ · ¿ Æ Î Ý  ò ü  -  M  Z  f ¾t "3 V  f /q  ¡  ¬  ¹ Æ Ì Ý í  ü    (8J3S‡ š ¨ ·Å Í Ù æ óL0N$¤`³CX+i•ž °½ ÓÍÝ\« ' /*9dm7t<¬éý $ =JNUgIvÀÓ äò ú  " 1 =6K‚ 𦬾 Þè6$[ c„#( ?L[ kŒŸ¯ ÂÌÞñ ø( 8E]o„–¥¹ÎÞõr |@‹Ì9è%" HSi+…± Ë(Ø/;1m v‚‹¤ª¼ ÌØî õ  *-6 dr yƒ²”GL_ nyŽ ¢O®8þ<7MtÂ:Ò2  @L U‘_"ñ  5 K k  dš ÿ .!'4! \!j! q! ~!ˆ!3™! Í! ×! á!ì! "" ("2"8" ?"K"S"X"_"|#žš#99$s$’$f­$K%2`%5“%É%-ã%@&R&[&I`&ª&³& È& Õ&â&è&ø&ÿ&'#'+' 2'@' U'_'q'ˆ'˜'´'Ì'Ô'Ý'ì' ñ'ý'.($E(j(p(2( ´(À(Ù(ù(O)8`)™)h¬)K*a*6v* ­*1º*ì*ñ* + + +"+!++®M+)ü+&,D,(V,*,ª,Ä,"â,--8/-¡h-( .+3.)_.‰.A©.8ë.J$/,o/2œ/yÏ/„I0sÎ0B1;a1:1Ø1<ô1012‘b2ô2?3©T3§þ3™¦4]@5"ž5žÁ5`66 6Êœ6Bg7§ª7SR8Y¦8F9LG9?”9+Ô9):(*:'S:&{:6¢:/Ù:1 ;?;;ª{;/&<>V<Y•<%ï<\=br=¡Õ=w> ’>I³>@ý>5>??t?^´?#@/7@;g@,£@MÐ@JANiA‰¸A BBLB [BiB yB†BŒB‘B—B§B­B\´BCŽ¡CV0Dp‡EøEúFQ GU\Gi²G*HJGIÄ’I~WJ ÖJàJeöJ \K iKuKŒK’K¨K¾K ÅKÑK äKòKúK LL.L3L9LUMUbUtU …U’U£U"µUØU-éUVd1V–V:¨V%ãV W/W ?W4JWW„˜WöXY#%Y&IY&pY¸—YPPZÈ¡Zj[r['[¿¸[Jx]kÃ] /^P^j^Ô}^tR`NÇ`aa1a BaJMa ˜a¦a ¹aÅaÌa¸ìa·¥bÅ]c#d;dWdtdjˆdód e­eÌe Òeàeôe¤f©fh­f(g(?g7hg3 g+Ôg2h13h%eh1‹h.½h8ìhM%i@si¶´iwkj€ãjUdk6ºk€ñk;rl2®lsál!Um+wm3£mZ×mJ2n}npn7oQFo7˜oÐoèopp 3p Tp4^ps“p6q$>qcq‚q%q!Ãq/åq8r'Nr[vr]Òr;0s?ls!¬sÎs¿ès¨t(u,uDu Ku Vu`uousu xuw‚uúuvv*v>vXvwv‡v™v ŸvÀv ßv'ìvQw fwpw>‚w<Áw þw xx-x=xOxbxrx†x•x¥xµx{Æx¤By çyôyz z "z 0z;zYz&^z1…zî·z¦{FÁ{ |}3}J}E\}¢} ±}ý»} ¹~ Ä~Ð~Õê~À ÐÝ6í3$€X€`€¢}€O pŠ¥ŒÂO‚j‚‚—‚‚^·‚ƒ/ƒHƒOƒ_ƒ~ƒ1šƒ ̃ Ùƒ æƒòƒ:„A?„„™„1±„xã…t\†.ц$‡m%‡<“‡‰Ð‡0Zˆr‹ˆEþˆ.D‰—s‰Æ Š2ÒŠ¬‹L²‹ÿ‹Œ-Œ @ŒJŒ`Œ ~Œ ŠŒ —Œ£ŒÃŒ ÔŒÞŒïŒ "5NnŽªÅÝ ùŽ„#ލŽÁŽ*ÓŽ)þŽx(%¡Ç Ý#ê?N\U²kÈ•4‘Ê‘БØ‘ ì‘ù‘’+’A’W’f’x’’¥’½’Ð’ä’@ý’0>“Oo“)¿“ é“ö“ ””A6”wx”)ð”•47•.l•†›•"–ò+–—y1—«—B+˜n˜w˜’˜š˜е˜†™$˜™ ½™È™Ü™+ø™'$š Lš mšr{šŒîš{›—›ž›´› ћۛù›þ›œ)@ Sñ`RžVžež€ž‡ž?¥ž5åž Ÿ)ŸAŸQŸ dŸoŸwŸxŽŸ  0 B 9K … -› 9É ¡¡¡0¡(?¡*h¡!“¡µ¡Ò¡ï¡0¢7¢,J¢-w¢-¥¢Ó¢ ó¢ ý¢ £Y£:n£.©£Ø£gð£QX¤ª¤8¤ û¤ ¥¥)¥(D¥'m¥•¥°¥È¥.Ù¥¦ ¦ *¦7¦ H¦+V¦‹‚¦ § §v<§ ³§À§ ܧê§“ ¨ž¨¹¨Ù¨0ë¨1©pN©¿©Ô©Sí©[Aªª¼ª>«N«`« h«s«…« «²««Ú« ó«¬ ¬.%¬T¬W¬l¬}¬ …¬ ’¬ œ¬©¬Ĭ Õ¬ ߬쬭­#­C­L­Q® c®n®3ƒ®·®Ç®2â® ¯F¯f¯"…¯ ¨¯ ɯ]ê¯'H°+p°Lœ°$é°3±B±Y±4x±K­±€ù±Bz²"½²;à²z³c—³û³Y´&k´Š’´6µTµ gµ%rµ/˜µ ȵRÒ¶)%·O·'_· ‡·’·‚™¹Fº(cº¶Œ» C¼P¼a¼{¼”¼®¼ͼé¼ÿ¼½9½V½o½€½˜½ ž½ ©½/¶½æ½¾¾]/¾¾7¦¾6Þ¾B¿"X¿B{¿‚¾¿AÀ`ÀEuÀ¬»ÀwhÁàÁÿÁÂm4¢ÂZ¶ÂMÃY_à ¹Ã&ÆÃ8íÃ&Ä>ÄDÄWÄ@lÄ@­Ä4îÄ:#Å^ÅmÅuÅ {Å †Å+żÅÅÅÜÅëÅ þÅ ÆÆ$Æ3Æ SÆaÆ*xÆ £ÆÑ°Æ‚ȗȩȹÈÓÈçÈ ÿÈ) ÉN6Ê…ÊÊ ®Ê¹ÊÂÊÕÊ1ÛÊ Ë÷ËÌÌQ9Ì'‹Ì'³ÌÛÌFóÌ :ÎDÎ`ÎgÎyΒΣΩμΠ×ÎáÎ ñÎüÎ Ï Ï$Ï5CÏHyÏ2ÂÏ õÏÿÏÐÆÑŽàÑoÒïÒíqÓ_ÔhÔmÔ|Ô ŽÔH˜Ô*áÔˆ Õw•Õ© ×l·×©$ØçÎØ¶ÙÅÙ*ÔÙÿÙÚÚ .Ú:ÚRÚmÚ}ÚÚ Ú µÚ ÃÚ ÍÚÙÚìÚaôÚzVÛEÑÛÜ0 ÜQÜ3jÜžÜs±Ü³%ÞžÙÞx߉ߩ߿ßÙßùß{àJ‘à\Üà}9á8·áðáâ!â*â2â%KâÃqâ5ãSã,cãã ­ãÎãããõã&ä,ä@ä’]ä„ðäYuå„Ïå#Tæ6xæ ¯æÐægäæ6Lçüƒç7€è¸èHéçKêR3ëR†ì Ùì‡åìmísí zí†í‹í ’íŸí ®í ¸íPÂíîîî 5î Aî Nî Xî'bîŠî$¦îËîÚîÞîôîýîïï$ï=;ïyðA’ð•Ôðjñ ƒñ-ñ7¾ñ öñHòLòGUò)ò=Çòó¤ó»óÏóïóô ô%ô =ô^ô mô*{ô¦ô«ô ½ôTËôO õ2põj£õö)ö$Fökötöè†öoø>‚ø Áø ÌøÙøìøõø ûøùù.ù=ùZùiùIyù8Ãù3üù0úYEúDŸúäúEýúCûKû ]û gûqû$„û©ûÁûßûýû üü5ü`;ü+œüÈü-JýdxýzÝýfXþ|¿þm<ÿLªÿs÷ÿXkkÄi0LšnçMVŒ¤U1r‡GúŠBwÍREq˜u I€KÊqEˆHÎZ‚r}õcs ×  ê õ    $ ? ] v  ¤ ­ Æ  Ø ä í  ö     % , K T f  € ‹ ¥ ´  È é ù     ! B W  q }  — £ © °  à Ð ê Ÿñ *‘ ¼ Ñ  à í g7j-¢OÐ  @ akp‰®É áí% 40>,oœ ¹Ã×ëïÿ%.T cq… ²Ñé &:IØe*>Bi!¬Îå %@YîwfC…7É  A+Ïm=WOfD¶ û  # *5'8`c<t ±Ú¿ š§½Ïé’ÿ’* K5g)zÇVB ™£0¦×;ð , :HŠPÛäí:Y h%vœ µÀÕ ä ðú0 7> %v Qœ Ùî WÈ!. "6O""†"0©"Ú"2ô"'#-E#Ns#Â#*Ù#$$8$G$ N$Y$m$ ‰$•$ ¨$K´$%%!7%BY%6œ&Ó&ê&Iý& G' Q'^' m'x'˜'±'É'Ý' î' ù'(( 5(LA(Ž(’( ¤( ¯( ¼(É(Ù(á(ð(ÿ()^ )<)6¼)ó)b*Tf*»*9Ï* ++ %+2+C+öU+…L,%Ò,ø, - -A%- g-s-ox-Eè-..J.P. c.-p.ž.¶.¼.Ã.Ø.í.//:/X/r/Œ/¢/·/Ö/ì/;û/70R0X0`0{0 —0£0¥0§0©0+º0 æ0Œñ0~1ƒ1‹1¥1½1Ô10è1212@2 P2Z2n2ˆ2‘2©2Ä2Í2å2ý2303H3]3v3‘3¬3.À3ï3˜4Ÿ4R¹4' 5\45.‘5À5Ð5.ì536>O6Ž6 ¢6H­6Oö6F7K7]7l7 …77¦7 ½7ŽÉ7 X9b9 x9ƒ9”9¯9b¿9":5: ;:F:`:w;,};ª;¿;Õ;(ó;<i7<V¡<bø<a[=(½=dæ=LK>˜>³>Ê>¿Ù>2™?4Ì?!@.#@$R@#w@Y›@õ@ü@>A @ANAUAmA|AA—A ÙA äA ñAýAB!&B HBUB [BgBxBB ŠBi—BDr D/“DÃDÜDo÷DpgE0ØEA FKF<iF\¦FG GIG[G tG•GžG ®GºGÏGØGíGHHH'H 9HGHcH€H(’H»H ÙH åH ðHüHIIG:I-‚I°IÌI?èI (J3JMJkJJJBÌJKX"KL{KÈK@ßK LM-L{LƒLŸL µL ÃL ÐLÝLâýLàM ýMN$-N&RNyN%N%³NÙNõN;OÜCO: P5[P;‘PÍPNçPF6QZ}Q$ØQ)ýQ‘'R›¹RŽUSäS1õS3'T[T cT8nT•§T"=UN`Uõ¯Uõ¥V«›WGX"×XÅúX#ÀY äY òYùZUúZ¾P[h\ox\fè\ZO]3ª]$Þ]4^"8^2[^,Ž^8»^/ô^/$_BT_ï—_L‡`bÔ` 7a#Da]ha_ÆaÝ&bc#c[>ccšc3þcJ2dt}d/òd9"eK\e6¨eWßeF7f^~fÎÝf ¬g¸gÊgÚgìgügh hh"h'hk-h“™hœ-ioÊi›:kÖk<òk{/m›«m¤GnxìnqepÞ×pˆ¶q?r*Tr…rs s'sy;uy$±y3ÖyÄ zÆÏz³–{\J|ó§|›}¯}¶}/¼}ì}þ} ~~*~I~h~ z~$„~©~ ¼~Ç~Ý~å~"ÿ~"=Wv’¬Âß5ü2€K€"\€c€ã€Gû€.C rY€ Ú3è$‚£A‚å‚ ùƒ*„7E„0}„Ë®„ez…à…‡#‡;+‡ûg‡ƒc‰˜ç‰€Š$ŠŠÔŠr`òSŽZŽpŽ …ŽŽ ’ŽŸŽ¸Ž ÊŽ"׎þúŽùå‘û‘’1’I’Pc’$´’Ù’Ôë’À“ Ɠѓ擡ø“š”‚Ÿ”'"•,J•Pw•KÈ•-–9B–:|–%·–4Ý–3—@F—`‡—Gè—0˜‰?™›É™TešFºš™›9››AÕ›‹œ:£œ%ÞœGXL_¥žƒ"ž:¦žrážFTŸ›Ÿ³Ÿ ΟÜŸ"óŸ I ~e 0ä 3¡*I¡(t¡$¡'¡0ê¡?¢)[¢j…¢_ð¢6P£V‡£&Þ£/¤ 5¤¶C¥ú¥þ¥ ¦¦ !¦.¦>¦ B¦O¦oe¦Õ¦ܦ§8§=§ P§Z§a§i§|§‹§”§§®§7·§?ï§/¨D¨K¨T¨[¨ d¨n¨u¨ |¨‡¨ލ•¨’¨á0©ª!ª3ªIªYª hªtª‡ªŒª‘ª˜¾Æ9 ?½ÁÇ3%M,•š+Ñø*§IßaÆJ†)îQoجȱ,zêD·ëƒ´×ÌdKÛÔa—©º¿=•&¿Yú5>àhWd3t­û˜~ü¶¨ÌZ|d6XZ‰Flçª="Ü’¦&WŽïe¦n–GýÇ…zSËÎdÕåjùu>ì`Fµ{ Ýqô7?Þb£(<ú'âÀmA½ðÐòuuª/t<K£õ†{µÎÁŸÙËGŠC=1Ë ^7¹²¡W£‰I™$ÌëE”žÒų¦Î[®± 2¯ö ÐH\î‹Y#K/J’ðÁVᦰw•†ó ùÃGê)—:Êo0Cù8ãxòÇÃâ‡4 9^{I‘´Â…Iô[äT¹,Ä^à5y ºMãi1š%íäÉ “»>‚#Qb…œHõ÷S¸}½ÁLðR; gNQØ]T9åpgkjßÈPÜ0~Õ¸È6k©VwêÏ"–SÐ&4k·0×^Ù-vÆ«SœgñÓúû¹G1'Ê%‘'÷ðÿgn¼¶öòÏXåò•]Rl®²”ßOöÍ[<½Ý®«Ù,w‡´‡Ôúý<DbŽé G oЛΤfžs_¾à;$ŠhzOáHrÅæ4»ØÑß¿kÊÝ"?V‡%!¢! Ý7 rB¾ôüRef‹ÞßCsuè¨c;QëÔ3i˜°.ì_ÈLw•„þF*%íœ}]U‘À{H Dp5Y™«‡¡¾AÚŸˆOOf8ŠÛÿ}ZÄ\çcA\ ô†pá8™Ø Ô…ã'Ím×zLXv¥AÛ(nq†¶¦J+©p!øä!Ò„:™í D£¬›A„Åu,~c˜xfƒó‡‹eˆòP4»äEÉ'¹E Ÿés/MqÁîÐÈ¥s7¾ïãOÒïÊ©|󜎉€â$¶é*›¬o˜`ÀˆL·—Œ—.ÝNÕÐÃï+«&½¼§ù&]3~Î;@üůàË}ó[VÖ„žƒFý§±ÿ_+9’ [bt Þaïí0¡:K¸ÝÛ²õvÑøwëSâܯ7“»ÿè(ªnÑäÞD‚ü_£Úêþ¸É€ˆ”}„;á.!ÏBZ'çJ“Ŭ\·v-¥®_aQ#3ÍGƺÛ&âÄ2‚¯L¢aæ2ãCiñ‘ï¨Ôsm"1³ŠæNyaqH5±Wé/û³ChÉ98‚ýMâëmàçÜy^¤¬‰­þ¦1#ŒŸ÷Ü×™Âö[P">ÇU`yÓÇ ŸP ƒ#¹TRhè²³T‚Ž ­6d86Ø¿Y Írç.ÖªÜ÷\”§ ¡U’PˆÚƒæqÙ?e“›”2°ÂÓªLÏ¢?Ç>æÌýÊ*tHW|øµ/.íF’ŽYÓgŠáèJ‰| pj0BÉ ¼äiñ«`<‹­§û˜šÁÏ@€p0%ÿîo¼k¢òÕšBxI2Ê¡ gÛ=åÆvmº6jWûÎãFÂlo¸rb²á,õåþ¯eÀt‘ð’®µÒÃN5>žö˵ŒtZ׌­Ójõ:Ï•2{²~U‹ü° m¬:uif—-ÅÄhª¡(©=~×3ˆ žkÙ®Æ|¼EÕ줃O °¨ › K$»M‘©?¾ëÑ!{æ§7cÙ4P5j lØV™"fleͤš_†:·E÷±ßô¿+ðúœÀYx¨ìcb¶ê;…$ÈS-U*·¢VîÒsÌè@ER(Ö—¥R|ÑÍÀ€.T-X9z¶q)ó´Ä€“´ÞºICU³i€}D ¸cŽŒñ¥xÚv<n¢J»X¨Ö@ÄyQžhAÌ––ʤùñ “]réíþÒ$àÚìºÔ4#Nœ¼ñé¹zÓrŒÉ¿«)¯£Ã³6](ê@-–`\”îç´…°x=èT8‰‹`+¤µÞÕ)wË* –1@Z)Ÿ½lìny ­øBÖ‚›MÚ „ dåN/KÖ^X¥B±š (Opens in new window) or Cancel and go back to the settings."Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on).# of Tweets Shown:%1$s %2$s Views%1$s – %2$s%1$s (%2$s) thinks you may be interested in the following post:%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = deactivation URL, %2$s = "Deactivate {list of Jetpack module/feature names}If your site is not publicly accessible, consider deactivating this feature.If your site is not publicly accessible, consider deactivating these features.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%s (Jetpack)%s (Required)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is not a valid command.%s is not a valid module.%s is required%s px%s requires a valid email address%s wants to access your site’s data. Log in to authorize that access.%s was not activated.%s was not deactivated.%s: %s« Previous← Older Comments— Select —(Shows %s posts on each load)(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s404 error pageClick here to refresh this list.Learn more about these options.% Replies1 Reply

        Activate Site Management to manage multiple sites from our centralized dashboard at wordpress.com/sites. Learn more.

        Activate Now%4$s« Back to Gallery« Older%d bloggers like this:%s Activated! You can deactivate at any time by clicking the Deactivate link next to each module.%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. The Gravatar Widget allows you to pull in your Gravatar image along with some of your Gravatar profile data.You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentA known issue.A problem with your XMLRPC file.A theme conflict.ActivateActivate AkismetActivate Jetpack ProtectActivate nowActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New ComicAdd New Menu Item LabelAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd One ItemAdd Site IconAdd a Site IconAdd a new fieldAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Add-onAdd-on CSS (Recommended)Additionally you can define your own custom services.Address:Adjust your Jetpack Comments form with a clever greeting and color-scheme.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.AlbumAllAll ComicsAll DoneAll Menu Item LabelsAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAll taxonomy pagesAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlphabeticalAlternate text:An %s AirlineAn Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.An incompatible plugin.An unknown error has occurred. Please try again later.An unknown error occurred during installationAnswer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to disconnect from WordPress.com?Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.Are you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to General SettingsBack to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:Blog follow email textBlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryBrowser ChromeButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I send a notification to more than one person?Can I view my feedback within WordPress?CancelCancel replyCaption:CarouselCategoryCenterChange logoChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Check for SpamCheckboxChecking email updates status…Choose ImagesChoose from the most used LabelsChoose from the most used tagsChoose logoCirclesClichésClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseColor SchemeComicComic draft updated. Preview comicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsComing soon…CommentComment Likes areComment cache problem?Comment follow email textComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnectConnect and share your posts on %sConnect now to enable features like Stats, Likes, and Social Sharing.Connect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnected as:Connected to WordPress.comConnecting with WordPress.com SSO enables you to log in via your WordPress.com account.Contact FormContact Form URL:Contact InfoContact the Jetpack Happiness Squad.Continue reading →Control which pages your widgets appear on with Widget Visibility.Convert to ComicConvert to PostCould not obtain a VideoPress upload token. Please try again later.Count the page views of registered users who are logged in.Create Share ButtonCreate elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCurrently ReadingCustomCustom CSSCustom CSS StylesheetCustom Content TypeCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDebugDebug InfoDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDescriptionDevelopers can use WordPress.com's OAuth2 authentication system and WordPress.com REST API to manage and access your site's content.Diacritical MarksDifficultyDisable CSS and JSDisable Post By EmailDisconnectDisconnect JetpackDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display featured imagesDisplay higher quality video by default.Display images in full-size carousel slideshow.Display share menu and allow viewers to embed or download this videoDisplay upcoming events from an iCalendar feed.Display your books from GoodreadsDisplay your location, hours, and contact information.Displayed below your posts will be how many people have liked your posts and the Gravatars of those who have liked them.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do I need to fill this out?Do not allow other users to access my VideoPress libraryDo you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Don't show the Reblog button on postsDouble NegativesDownloadDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downDrop images to uploadE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each module has an Activate or Deactivate link so you can toggle one individually.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.Easily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit DetailsEdit Menu ItemEdit Menu Item LabelEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail Address:Email check failed, please try againEmail me wheneverEmail notificationsEmail settingsEmails will be sent to %s (Edit)Empty SpamEnable Portfolio Projects for this site.Enable Post By EmailEnable Testimonials for this site.Enable carouselEnable excerpts on front page and on archive pagesEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %sError Details: Jetpack ID is empty. Do not publicly post this error message! %sError Details: Jetpack ID is not a scalar. Do not publicly post this error message! %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example of a phone number1-202-555-1212Example:Example: The user is looking at a page, not a post.PageExcerptsExplain...Export feedback as CSVFacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Feedback(s) marked as spamField typeFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.First optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFood MenusFor example, if you wanted the Archives widget to only appear on category archives and error pages, choose "Show" from the first dropdown and then add two rules: "Page is 404 Error Page" and "Category is All Category Pages."For example, spicy, favorite, etc.
        Separate Labels with commasFor more information:Form builderFormat:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!GalleryGallery Carousel ScreenshotGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGet the most out of Jetpack with...Give Us FeedbackGive your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGoodreadsGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:Here’s what your form will look likeHidden VerbsHideHide all featured imagesHide related content after postsHide tag from displaying in post meta and tag clouds.Hide the stats smiley face image.HomeHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.If none of these help you find a solution, click here to contact Jetpack support. Tell us as much as you can about the issue and what steps you've tried to resolve it, and one of our Happiness Engineers will be in touch to help.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.If you get a 404 message, contact your web host. Their security may block XMLRPC.If your problem isn't known or caused by a plugin, try activating Twenty Twelve (the default WordPress theme). If this solves the problem, something in your theme is probably broken – let the theme's author know.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedImages:In Development Mode, via site URL lacking a dot (e.g. http://localhost).In Development Mode, via the JETPACK_DEV_DEBUG constant being defined in wp-config.php or elsewhere.In Development Mode, via the jetpack_development_mode filter.InactiveInclude this CSS in the Mobile ThemeIndexing postsIndexing request queued and waiting…Insert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid idInvalid or expired nonce.Invalid requestInvalid security token.Invalid usernameIs this site private?It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.It's ready to bring awesome, WordPress.com cloud-powered features to your site.Items on your restaurant's menuItems to show:JargonJetpackJetpack CommentsJetpack Comments ScreenshotJetpack Comments enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site.Jetpack Debugging CenterJetpack FAQJetpack Network Settings Updated!Jetpack Plugin VersionJetpack Protect is inactive.Jetpack SettingsJetpack Single Sign OnJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is installed!Jetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will allow you to authorize applications and services to securely connect to your blog and allow them to use your content in new ways and offer you new functionality.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJump to:Keep up with the latest happenings on all your WordPress sites and interact with other WordPress.com users.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLabels: spicy, favorite, etc. Separate Labels with commasLanguageLargeLarge Blog ImageLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes allow your readers to show their appreciation for your posts and other published content using their WordPress.com accounts. Your readers will then be able to review their liked posts from WordPress.com.Likes and SharesLimit must be greater than or equal to 0.Limit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link Color (hex):Link To:Link URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoad your XMLRPC file. It should say “XML-RPC server accepts POST requests only.†on a line by itself.Loading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Log in with WordPress.comLogged InLogged OutLogin method not allowedLogoM j, Y @ G:iMain SidebarMake this connection available to all users of this blog?Manage all of your WordPress sites, self-hosted or not, from WordPress.comManage your Publicize settings.Manage your Post By Email address from your profile settings.Mark as SpamMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMarkdown lets you compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text, without having to take their hands off the keyboard, and without learning a lot of complicated codes and shortcuts.Match by EmailMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu Item LabelMenu Item LabelsMenu ItemsMenu Items re-ordered.Menu SectionMenu SectionsMenu item draft updated. Preview itemMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item scheduled for: %1$s. Preview itemMenu item submitted. Preview itemMenu item updated.Menu item updated. View itemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile App PromosMobile AppsMobile ThemeMobile-compatible:Mode:Module DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd a site icon to your site.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionCheck your spelling, style, and grammar with the After the Deadline proofreading service.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionProtect your site with automatic backups and security scans. (Subscription required.)Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUpload and embed videos right on your site. (Subscription required.)Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameJetpack CommentsModule NameJetpack Single Sign OnModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NameProtectModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule NameWordPress.com StatsModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagSocialModule TagWordPress.com StatsModule TagWritingModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Module not found: `%s`.Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Publicize.More information on using Related Posts.Move menu section downMove menu section upMy TweetsNameNetwork SettingsNewNew ComicNew Menu ItemNew Menu Item Label NameNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNew in Jetpack: Centralized Site ManagementNewer »Newer Comments →NewestNext »Next » NoNo API keyNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo LabelsNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Modules FoundNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo blog_id was included in your request. Please try disconnecting Jetpack from WordPress.com and then reconnecting it. Once you have done that, try connecting Publicize again.No comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No themes found.No upcoming eventsNo update neededNo user information was included in your request. Please make sure that your user account has connected to Jetpack. Connect your user account by going to the Jetpack page within wp-admin.No writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!Nonce verification failed.NoneNot ConnectedNot connectedNote: Custom CSS will be reset when changing themes.Note: Images in tiled galleries require extra-special processing, so they will be served from WordPress.com's CDN even if the Photon module is disabled.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:OKOfficial buttonsOffset must be greater than or equal to 0.Ogg File URLOgg file container with Theora video and Vorbis audio. Note that some browsers are unable to play free software video formats, including Internet Explorer and Safari.Older %sOlder postsOmnisearchOn for all commentsOn for all postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Once enabled, a "Log in with WordPress.com" option will be added to your existing log in form.One New Jetpack Module%s New Jetpack ModulesOne of your IP addresses was not valid.Only display videos in free software formatsOnly images can be uploaded here.Only the user who initiated the Jetpack connection on this site can toggle %s, but that user no longer exists. This should not happen.Only videos from the selected blog will be available in your media library.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Page %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please describe the problem you are having.Please enable JavaScript support in your browser to use VideoPress.Please note that the VideoPress module requires a WordPress.com account with an active VideoPress subscription.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please select a video file to upload.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please upload a file.Please verify your birthday.Plugin activated.Plugin deactivated.PluginsPocketPopularPopular LabelsPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post converted.%s posts convertedPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts indexed.Posts pagePreprocessor:Press ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize allows you to connect your blog to popular social networking sites and automatically share new posts with your friends. You can make a connection for just yourself or for all users on your blog.Publicize allows you to share your posts on Facebook, Twitter, Tumblr, Yahoo!, and Linkedin.Publicize to my %s:Publicize:PublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RadioRandom Order:RatingReceive Monitor Email Notifications.Recent PostsRedRedditRedundant PhrasesRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove ServiceRemove logoRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyReport visibilityRequire Two-Step AuthenticationRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:Return to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave New OrderSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll InfinitelyScroll back to topSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu Item LabelsSearch Menu ItemsSearch Menu SectionsSearch Modules…Search PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch once, get results from everything! Currently supports searching posts, pages, comments, media, and plugins.Search resultsSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.ServingsSet as logoSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShelf:ShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow StreamShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow a promo for the WordPress mobile apps in the footer of the mobile theme.Show buttons onShow falling snow on my blog until January 4th.Show full posts on front page and on archive pagesShow likes.Show mapShow moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSite IconSite Icon UploadSite Icon creates a favicon for your site and more.Site LogoSite NameSite StatsSite Title, Tagline, and LogoSitesSkip to primary contentSlideshowSmallSmileySmiley faceSnippetSnowSocialSome themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Someone likes one of my postsSomeone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.Something has gotten mixed up in your Jetpack Connection!Something has gotten mixed up!Something is being cranky!Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStatus unknown.Style:Stylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe Placeholder:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSupportTag nameTagged with %sTagsTake SurveyTake WordPress with you.Take a survey. Tell us how we’re doing.Temporary Large Image for Blog ImageTermsTerms of ServiceTest your site’s compatibility with Jetpack.TestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial published. View testimonialTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTesting your site's compatibility with Jetpack...TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.The After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Client ID/WP.com Blog ID of this siteThe Facebook Like Box Widget The Image Widget The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe Plugin is already active.The Plugin is already deactivated.The RSS Links Widget The Twitter Widget The Twitter username of the owner of this site's domain.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WP.com user ID of the connected userThe WP.com user email of the connected userThe WP.com username of the connected userThe WordPress.com blog_id is %dThe authorization process expired. Please go back and try again.The default content width for the %s theme is %d pixels.The file that you uploaded is not an accepted file type. Please try again.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The image helps collect stats and makes the world a better place but should still work when hiddenThe image needs to be at leastThe image that you uploaded is smaller than %upx in height.The image that you uploaded is smaller than %upx in width.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe number of sites of the connected WP.com userThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The plugin is already installedThe preview is unavailable while this video is being processed.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The proofreader supports English, French, German, Portuguese, and Spanish. Your user interface language (see above) is the default proofreading language.The settings for Featured Content have moved to Appearance → Customize.The specified theme was not found.The test results and some other useful debug information will be sent to the support team. Please feel free to review/modify this information.The theme is already installedTheme is empty.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There seems to be a problem with your site’s ability to communicate with Jetpack!There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem connecting to %s. Please disconnect and try again.There was a problem connecting with Publicize. Please try again in a moment.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error installing your pluginThere was an error installing your themeThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There was an error while activating the module.There was an error while deactivating the module.There was an error while getting the update data for this site.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This gallery contains %2$s photo.This gallery contains %2$s photos.This module can only be altered by %s, the user who initiated the Jetpack connection on this site.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This setting may be overridden for individual videos.This site is too large, please contact Jetpack support to sync.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This video is intended for mature audiences.This video requires Adobe Flash for playback.This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?This will prevent user-specific modules such as Publicize, Notifications and Post By Email from working. Are you sure you want to unlink?ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:To configure your sharing settings, go to the Settings → Sharing menu.To control visibility, expand the widget and click the Visibility button next to the Save button, and then, choose a set of visibility options.To customize the emails sent from your blog to your followers, check the settings at the bottom of the Reading Settings page.To enable a custom content type, head over to Settings → Writing → Your Custom Content Types to activate either "Portfolio Projects†or “Testimonials†by checking the corresponding checkbox. You can now add projects and testimonials under the new "Portfolio†or “Testimonials†menu item in your sidebar.To enable all of the Jetpack features you’ll need to link your account here to your WordPress.com account.To infinity and beyondTo see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use Jetpack please contact your WordPress administrator to connect it for you.To use Post By Email, you need to link your %s account to your WordPress.com account.To use Publicize, you'll need to link your %s account to your WordPress.com account using the link below.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the CSS editor, go to Appearance → Edit CSS.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparentTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter Site TagTwitter TimelineTwitter username:TypeTypesUPURLUnable to create your Post By Email address. Please try again later.Unable to disable your Post By Email address. Please try again later.Unable to regenerate your Post By Email address. Please try again later.UncategorizedUnlink This AccountUnlink user from WordPress.comUnpublishedUnsubscribeUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu Item LabelUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdate Site IconUpdatedUpload ImageUpload VideoUpload a VideoUpload a image that you want to use as your site icon. You will be asked to crop it in the next step.Uploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use Google Analytics with Infinite ScrollUse Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUse a valid email address.Use automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.Use the button below to browse your VideoPress Library. Note that you can also browse your VideoPress Library while editing a post or page by using the Add Media button in the post editor.Use the form below to upload a video to your VideoPress Library. The following video formats are supported: %s. Maximum upload file size is %d%s.Use these settings to display different types of content on your site.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUser linked to WordPress.comUsernameValueVaultPressVaultPress dashboardVerified ServicesVideo Library AccessVideo Preview:Video on %sVideo post by %s.Video post.VideoPressVideoPress LibraryView AllView ComicView Full Profile →View Full SiteView Menu ItemView Menu Item LabelView Menu SectionView Mobile SiteView ProjectView Project TagView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.Visit the post for more.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.We could not verify that your server is making an authorized request. Please try again, and make sure there is nothing interfering with requests from your server to the Jetpack Server.We were unable to get your stats just now. Please reload this page to try again.We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact support. In your report please include the information below.WebsiteWebsite Verification ServicesWelcome to Jetpack %s!Welcome to Custom CSS! CSS (Cascading Style Sheets) is a kind of code that tells the browser how to render a web page. You may delete these comments and get started with your customizations. By default, your stylesheet will be loaded after the theme stylesheets, which means that your rules can take precedence and override the theme CSS rules. Just write here what you want to change, you don't need to copy all your theme's stylesheet content.Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWe’ll also let you know as soon as your site is up and running, so you can keep an eye on total downtime.What should the subject line be?What’s a Hovercard?What's a Gravatar?When adding a gallery to your post, you now have the option to select a layout style for your images. We've added support for Rectangular, Square, and Circular galleries. By default, galleries will continue to display using the standard thumbnail grid layout. To make the rectangular layout the default for all of your site's galleries, head over to Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.When you write great content, all you really want is people to find it, right?WhiteWhitelist ManagementWhitelist saved.Widget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Widgets ScreenshotWidth (px):Width:With 1 commentWith %s commentsWith Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With WordPress.com Single Sign On, your users will be able to log in to or register for your WordPress site with the same credentials they use on WordPress.com. It's safe and secure.With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com Single Sign OnWordPress.com StatsWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are all set! Your site can now be managed from wordpress.com/sites.You are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou are required to specify a capability to check.You are required to specify a plugin to activate.You are required to specify a plugin.You are required to specify a theme to switch to.You are required to specify a theme to update.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can also hide widgets based on the current page. For example, if you don't want the Archives widget to appear on search results pages, choose "Hide" and "Page is Search results."You can also make changes to your Subscription settings at the bottom of the Discussion Settings page.You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You can view your notifications in the Toolbar and on WordPress.com.You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have chosen not to connect your blog. Please click 'accept' when prompted if you wish to connect your accounts.You have shared this post with %sYou have successfully disconnected Jetpack.You must log in to post a comment.You must be logged in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You must specify a valid actionYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.You will no longer receive email updates about Jetpack.Your API key is invalidYour Custom Content TypesYour Email AddressYour Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour Site Stats work better with Javascript enabled.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour site icon has been uploaded!Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your theme supports %sYour upload didn't complete; try again later or cross your fingers and try again right now.Your video has successfully been uploaded. It will appear in your VideoPress Library shortly.Your video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andas sharing sourceEmailcancelclick hereconfigurecrop the imagedayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in both width and height.in {category/tag name}In "%s"loading…locales%1$s/%2$smonthmy list of books to readTo Readnext-saturdayImage navigationnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Új ablakban nyílik meg) vagy Mégse és menjünk vissza a beállításokhoz.További fontos hivatkozások "Kapcsolódó bejegyzések" megjelenítése a bejegyzések alatt. Ha a funkció be van kapcsolva, hivatkozások jelennek meg a megosztás gombok és WordPress.com-nak tetszik a... alatti részén a blognak (,ha ezek be vannak kapcsolva).Megjelenített Tweetek száma:%1$s %2$s Megtekintés%1$s – %2$s%1$s (%2$s) úgy gondolja, hogy érdekelhet a következÅ‘ bejegyzés:%1$s Oldalsáv%1$s %2$sHa a webhely nyilvánosan nem hozzáférhetÅ‘, fontolja meg a szolgáltatás kikapcsolását.Ha a webhely nyilvánosan nem hozzáférhetÅ‘, fontolja meg a szolgáltatások kikapcsolását.%1$s: %2$s%1$s - %2$s%1$s a %2$s bejegyzéshez%l Kikapcsolva! Bekapcsolható bármikor a modul melletti bekapcsolás hivatkozással.%l Kikapcsolva! Bekapcsolhatóak bármikor a modulok melletti bekapcsolás hivatkozásokkal.Kikapcsolás %l%s (Jetpack)%s (KötelezÅ‘)Értesítés a Jetpack frissítéseirÅ‘l e-mailben? %sFeliratkozott az emailben való frissítésekre. %s%s Hiba%s telt el a bejegyzés óta%s modult nem lehet aktiválni, mert végzetes hibát váltott ki. Lehet, hogy egy másik bÅ‘vítménnyel van konfliktusa, amely telepítve van?%s nem tud kapcsolatot bontani. Biztos, hogy a kapcsolat jelenleg is fenn áll?%s aktiválásra került.%s kikapcsolásra került.%s sikeresen lecsatlakozott.%s egy erÅ‘teljes jelölÅ‘nyelv írására készített megjelenítÅ‘, bonyolult matematikai egyenletek, formulák, stb. megjelenítéséhez.%s nem érvényes parancs.%s nem valós modul.%s megadása kötelezÅ‘%s px%s érvényes e-mail cím%s hozzá szeretne férni a honlap adataihoz. A hozzáférés megadásához jelentkezzünk be.%s nem lett bekapcsolva.%s nem lett kikapcsolva.%s: %s« ElÅ‘zÅ‘← Korábbi hozzászólás— Választás —(%s bejegyzés megjelenítése betöltésenként)(nincs cím)(kötelezÅ‘)%1$s - %2$s404-es hiba oldalA lista frissítéséhez kattintsunk ide.Tudjon meg többet ezekrÅ‘l a lehetÅ‘ségekrÅ‘l.% hozzászólás1 hozzászólás

        Honlap kezelő aktiválás után kezelhetőek a honlapok vezérlőpultjai egy központban a wordpress.com/plugins oldalon. További információ.

        Aktiválás%4$s« Vissza a Galériába« Régebbi%d blogger ezt szereti:%s Bekapcsolva! Kikapcsolhatóak bármikor a modulok melletti kikapcsolás hivatkozásokkal.%snem megengedett a beágyazás az oldalon.A Jetpack aktiválva van! Minden oldalon a hálózatban be kell csatlakoztatni egyedileg az adminisztrátort az oldalon.Modul beállítások elmentve. Gravatar Widget segítségével behúzhatja a Gravatar képeket néhány Gravatar profil adattal.Lekapcsoltuk a fiókunkat (%s) a WordPress.com-ról.Feltankoltunk, indulhatunk.. A Jetpackednek valami gondja van. Valami rosszul sült el, aminek nem szabadna megtörténnie. Lehet, hogy csak nincs szerencséd: %sHiba lépett fel a Jetpack használata közben. Nem lehet a WordPress.com honlaphoz kapcsolódni. Valószínű, hogy a honlap nem érhetÅ‘ el nyilvánosan, vagy saját géprÅ‘l fut.Jetpack már csatlakoztatva van. A kapcsolatfelvételi űrlap egy nagyszerű módja annak, hogy az olvasók kapcsolatba léphessenek Önnel anélkül, hogy kiadná bárkinek is a személyes e-mail címét.Néhány kedves szó, amellyel a látogatóinkat hozzászólásra bíztatjukEgy ismert probléma.XMLRPC fájl probléma.Sablon ütközés.BekapcsolAkismet bekapcsolásaJetpack védelem bekapcsolásAktiválásBekapcsolásHozzáadásÚj kapcsolat felvételi űrlapÚj menü tételÚj menüÚj hozzáadásaÚj képregény hozzáadásaÚj menütétel mezőÚj menü szekcióÚj feladat hozzáadásaÚj feladat címke hozzáadásaÚj feladat típus hozzáadásaÚj vélemény hozzáadásaEgy új tétel hozzáadásOldal ikon hozzáadásaEgy oldal ikon hozzáadásaÚj mezőÚj szolgáltatás hozzáadásaHozzáadhatunk egy e-mail feliratkozási űrlapot és a felhasználók a kitöltés után értesülhetnek a honlap bejegyzéseirÅ‘l.Új további lehetÅ‘ségLogó hozzáadásCímkék hozzáadása vagy eltávolításaCímke hozzáadása, vagy eltávolításaMegosztási gombok hozzáadásával engedélyezzük a látogatóknak hogy megosszák bejegyzéseinket az ismerÅ‘seikkel.Űrlap hozzáadása a bejegyzésemhezSzekció hozzáadás:BÅ‘vítményCSS BÅ‘vítmény (Ajánlott)Ezeken kívül megadhatunk saját egyedi szolgáltatásokat is.Címe:Hangoljuk a Jetpack hozzászólási űrlapot, egy okos köszönéssel, és egyedi szinekkel.Adminisztrátori sávHaladó: Ha ez a lehetÅ‘ség bejelölésre kerül, akkor a megosztás hivatkozásokat kézzel kell megadni.A begépelés utáni ellenÅ‘rzés számos testreszabási lehetÅ‘ségeket nyújt, amelyek segítségével szerkesztheti a profilját.AlbumÖsszesÖsszes képregényMinden KészÖsszes menütétel mezÅ‘kÖsszes menü szekcióMinden feladat címkeMinden feladat típusMinden feladatMinden véleményMinden szerzÅ‘ oldalMinden kategória oldalMinden dátum archívumÖszzes bejegyzésMinden címke oldalÖsszes taxonómia oldalMinden felhasználó hozzáférhet és szerkesztheti a videoimatMinden felhasználó hozzáférhet a videóimhozMinden felhasználó hozzáférhet, szerkesztheti, és törölheti a videóimatMinden felhasználó tölthet fel videótBetűrendbenAlternatív szöveg:Az %s csapatátólAutomatticEgy adminisztrátornak be kell állítania a Jetpack kapcsolatot.Hiba történt a megosztási szolgáltatás beállításánál - ellenÅ‘rizzük, hogy érvényes adatokat adtunk-e meg.Hiba történt. Próbálkozzunk késÅ‘bb.Inkompatibilis bÅ‘vítmény.Ismeretlen hiba történt. Próbáljuk meg késöbb.Ismeretlen hiba történt a telepítés soránÉrdemes kitölteni a rövid felhasználói felmérésünket, hogy tisztában legyünk vele, miként fejlesszük tovább a jetpack-et.NyílásElnézést, de a keresés az archívumban nem vezetett eredményre! Lehetséges, hogy törölték, átnevezték vagy áthelyezték, de az is lehetséges, hogy rossz volt a megadott hivatkozás.Talán egy újabb keresés segíthet megtalálni.Összes bejegyzésBiztos, hogy szeretné megszakítani a WordPress.com? Biztos, hogy megszakítjuk a WordPress.com honlappal a kapcsolatot?Biztos benne, hogy kilép az űrlap szerkesztÅ‘jébÅ‘l mentés nélkül? Minden Ön által végzett módosítás el fog veszni.Biztos ki kapcsoljuk a népszerűsítést ennél a bejegyzésnél?ElÅ‘adóAhogy a mobilon láthatjukPremiumAhogy a favicon megjelenikA jelenlegi sablon, %s, nem támogatja a végtelen görgetést. A többi Jetpack modultól eltérÅ‘en a végtelen görgetésnek szüksége van, bizonyos információkra a sablonunktól a helyes működéshez.Csatolmány oldalAutomatikus lektorált tartalom, ha:AutomatticElérhetÅ‘ modulok:ElérhetÅ‘ szolgáltatásokElérhetÅ‘ rövidkódok a következÅ‘k: %l.Vissza az általános beállításokhozUgrás az oldal tetejére ↑HáttérszínÜgyeljen arra, hogy kattintson az "Profil frissítése" gombra a képernyÅ‘ alján, hogy mentse a változásokat.MielÅ‘tt közzétennénk a bejegyzést, frissítsük a következÅ‘ kapcsolatokat, ahhoz, hogy a Népszerűsító megoszthassa a bejegyzést:FélreértelmezhetÅ‘ szavakFeketeValamennyi bejegyzésBlog feliratkozás (Jetpack)Blog URL:Blog követés email szövegeKékSzegély szín (hex):Adjuk át a WordPress.com felhÅ‘ erejét a saját üzemeltetésű WordPress oldalunknak. A Jetpackkel összeköthetjük a blogot a WordPress.com fiókunkkal, és használhatjuk azokat a funkciókat, melyeket csak a WordPress.com felhasználói érhetnek el.Saját VideoPress könyvtár böngészésChrome böngészÅ‘Gomb stílusHozzáadva egy kapcsolatfelvételi adatlapot, az olvasóknak lehetÅ‘ségük lesz visszajelzést küldeni számunkra. Minden visszajelzés spam szűrésen megy keresztül és csak a szűrÅ‘n átjutott e-mailek postázódnak a megadott címre.CSSCSS állapotokCSS Stíluslap szerkesztÅ‘KameraHozzáadsz további mezÅ‘ket?Tudunk küldeni értesítést egynél több személy számára?Megtekinthetem a WordPressen belül a visszajelzést?MegszakításKilépés a válaszbólKépaláírás:Körhinta galériaKategóriaKözépLogo megváltoztatásaVálasszuk ki, hogy a látogatók fel iratkozhatnak-e iratkozni a bejegyzésekre, hozzászólásokra, vagy mindkettÅ‘re!Statisztikai táblázatCsalunk-csalunk?Spam-ellenÅ‘rzésCheckBoxE-mail értesítések állapotának értesítése…Képek kiválasztásaLeggyakrabban használt mezÅ‘k kiválasztásaVálasztás a leggyakrabban elÅ‘forduló címkék közülLogó kiválasztásKörökKlisékésKattintás ideKattintsunk a -Kattintson ide- mondatra!Kattintson a prezentáció indításához!Ajánlás egy barátnak e-mailbenKattints ide a nyomtatáshozMegosztás a Google plusszonMegosztom a LinkedInenKattintson ide, hogy megoszthassa a Pinterest-enMegosztás: PocketKattints ide a Reddit-en való megosztáshozKattintson ide, hogy megoszthassa a Tumblr-enKattints ide a Twitter-en való megosztáshozKattints ide a diavetítéshez.BezárásSzínmintaKépregényKépregény tervezet frissítve. Képregény elÅ‘nézeteTréfa közzétéve. Tréfa megtekintése%s képregény visszaálítása lektorálásraKépregények elmentve.Képregény tervezet: %1$s. Képregény elÅ‘nézeteKépregény elküldve. Képregény megtekintéseKépregény frissítve.Tréfa frissítve. Tréfa megtekintéseKépregényekHamarosan…hozzászólásA hozzászólást kedvelteHozzászólás gyorsítótár probléma?Hozzászólás követés email szövegeHozzászólás navigációHozzászólás, mint %sHozzászólásokEhhez a bejegyzéshez nem lehet hozzászólni.Komplex kifejezésekBeállításBeállítás%s beállításaKapcsolódásRegisztrálj és oszd meg bejegyzéseid: %sCsatlakozzon most, hogy a modulok funkciói elérhetÅ‘ek legyenek, mint például a statisztika, a tetszik és a közösségi megosztások.KapcsolódvaCsatlakozás a WordPress.com-hozKösd össze blogodat népszerű közösségi oldalakkal és automatikusan ossz meg új bejegyzéseket a barátaiddal.KapcsolódvaKapcsolódva: WordPress.comKapcsolódva:Csatlakozva a WordPress.com-hozCsatlakoztatva a WordPress.com egyszeri bejelentkezÅ‘ felülete, ami lehetÅ‘vé teszi, hogy bejelentkezzen a WordPress.com fiókja segítségével.Kapcsolatfelvételi űrlapKapcsolatfelvételi űrlap URL:Kapcsolati adatokKapcsolatfelvétel a Jetpack boldog csapatával.BÅ‘vebben... →A Widget láthatóság segítségével meghatározható, hogy az egyes widgetek melyik oldalakon jelenjenek meg.Tréfa konvertálásBejegyzéssé alakításNem sikerült beszerezni a VideoPress feltöltési jelet. Próbáljuk meg késÅ‘bb.Számolja az oldal megtekintéseket a regisztrált felhasználóktól, akik bejelentkeztek.Megosztási gomb létrehozásaHozzon létre elegáns magazin stílusú mozaik elrendezést a fényképeihez, külsÅ‘ grafikus szerkesztÅ‘ használata nélkül.Kép kivágásaJelenleg olvasottegyéniEgyedi CSSEgyedi StíluslapEgyedi bejegyzés típusokEgyedi Email CímEgyedi üzenet:Egyedi mezÅ‘ törölve.Egyedi mezÅ‘ frissítve.Ügyfél neveÜgyfél véleményekTestreszabásÖsszes vélemény oldalának a testreszabásaLe%s napi bejegyzésekNapi archívumokSötétKözzétéveKikapcsolHibakeresésHibakeresés információkAlapértelmezettÚj mezÅ‘ElsÅ‘ opcióAlapértelmezett minÅ‘ségTörlésVégleges törlésEzen tétel végleges törléseLeírásA fejlesztÅ‘k használhatják a WordPress.com OAuth2 hitelesítési rendszerét és a WordPress.com REST API szolgáltatásait a blog tartalmában.Diakritikus jelekNehézségCSS és JS letiltásKikapcsoljuk az e-mailen keresztüli bejegyzéseketSzétkapcsolásJetpack lecsatlakoztatásaLekapcsolódás a WordPress.com szolgáltatásrólBezárásUtasítsa el ezt az értesítést, és kapcsolja ki a Jetpack plugint.Értesítés elhallgattatása.Utasítsa el ezt az értesítést.Fejrész szöveg megjelenítéseWordPress bejegyzések mutatásaFacebook kedvelés doboz megjelenítése a honlap és a facebook oldal összekapcsolásához.Gravatar profil mutatása kis méretbenGaléria, vagy diavetítés megjelenítéseJelenítse meg az összes galéria képeit Csempe Galéria stílusa szerint.Kép megjelenítése az oldalsávbanHivatalos Twitter IdÅ‘vonal widget megjelenítése.Megjelenítés módja:Kiemelt képek megjelenítéseJó minÅ‘ségű videó mutatása alapértelmezetten.Teljes méretű körhinta galéria bemutató képeinek megjelenítéséhez.Jelenítsük meg a megosztás menüt, és engedélyezzük a felhasználóknak, hoyg beillesszék, vagy letöltsék ezt a videótJelenítsünk meg közelgÅ‘ eseményeket iCalendar hírfolyamból.Megjeleníti a Goodreads könyveitMegjeleníti a helyet, az órát, és az elérhetÅ‘ségét.A bejegyzések és oldalak alatt lesz látható, hogy hány embernek tetszett és azok Gravatarjai is láthatóak lesznek.Jelenítsünk meg friss bejegyzéseket másik WordPress.com, vagy Jetpackkel rendelkezÅ‘ blogokban.Ki kell tölteni ezt?Nem engedélyezem más felhasználóknak, hogy hozzáférjenek a VideoPress könyvtárhozTelepítve van még a %s bÅ‘vítmény?Ne keresztezzük a sávokat! Bejelentkezve kell maradnunk a WordPress blogunkba, amíg a Jetpack felhasználói fiók azonosítás zajlik.Ne jelenítsük meg a reblog gombot a bejegyzéseknélDupla negatívumokLetöltésLetÅ‘ltés: %s
        Húzzuk ide a használandó szolgáltatásokat.Fogd és vidd megosztó szolgáltatás engedélyezve van ebben a bővítményben. Az aktív szakaszok fel vannak tüntetve. Azok jelennek meg az oldalon, amelyeket az aktív területekre húztunk. Valamint a rejtett területen gomb formában fognak megjelenni azok.Húzd a lenti dobozba azokat a szolgáltatásokat, melyeket használni szeretnél.Húzzuk fel vagy le az újrarendezéshezLenyíló listaEjtsünk ide képeket a feltöltéshez.Email címMinden kapcsolatfelvételi űrlap könnyen testreszabható, hogy megfeleljen az Ön igényeinek. Amikor a felhasználó elküldi a kitöltött űrlapot, az egy szűrőn keresztül jut el Önhöz. Ennek a neve Akismet (ha be van kapcsolva a honlapján), ami arra szolgál, hogy megbizonyosodjon arról, hogy ez nem spam üzenet, amit Önnek küldenek. Minden jogos visszajelzés ez után kerül csak elküldésre e-mailben, valamint jelenik meg a visszajelzés-menedzsment területén.Minden modul rendelkezik egy Bekapcsolás vagy Kikapcsolás hivatkozással, így a funkciókat külön-külön lehet beállítani.Minden ilyen widget számos testreszabási lehetőséggel rendelkezik.Könnyen lehetővé teszi minden látogató számára a feliratkozást az összes hozzászólásra. E-mailben értesít egy widget a blog oldalsávjából. Minden alkalommal, amikor közzétesznek egy hozzászólást a blogban, a WordPress.com küld egy értesítést minden arra feliratkozónak.Emeljük ki bármelyik bejegyzést a "featured" címkével vagy a egy kiválasztott címkével. Az aktuális sablon maximálisan %2$s kiemelt bejegyzést támogat.SzerkesztésCSS szerkesztésKépregény szerkesztéseRészletek szerkesztéseMenütétel szerkesztéseMenütétel mező szerkesztésMenü szekció szerkesztésFeladat szerkesztéseFeladat címke szerkesztéseFeladat típus szerkesztéseKijelölés Szerkesztése...Vélemény szerkesztéseAdatmódosításÚj mező szerkesztéseEmailEmail címE-mail cím:E-mail ellenőrzés sikertelen, próbáld újraEmail küldése nekem, amikorEmail értesítésekE-mail beállításokAz értesítés a következő e-mail címre fog érkezni: %s. (Szerkesztés)Spam-tároló ürítésePortfólió tartalom típus engedélyezése a honlapon.Engedélyezzük az e-mailen keresztüli bejegyzéseketVélemények tartalom típus engedélyezése, ehhez a weboldalhoz.Körhinta Galéria EngedélyezéseKivonat megjelenítése a kezdőoldalon és az archívum oldalakonEngedélyezzük a lektorálást a következő nyelvtani és stilisztikai szabályok írásakor a bejegyzéseknél és oldalaknál:Engedélyezett szolgaltatásokAngol beállításokAdjuk meg a WordPress.com vagy Jetpack WordPress honlap hivatkozást.Adja meg a rövidkódot közvetlenül a Bejegyzés/Oldal szerkesztőjében a média beágyazásához. A konkrét utasításokat kövesse az alábbi hivatkozásra kattintva.Adjuk meg annak a 16x16px méretű ikonnak a hívatkozását, amelyet használni szeretnénk ehhez a szolgáltatáshoz.Add meg itt az ügyfél nevétAdjuk meg a menüpont nevétAdd meg az email címedAdja meg e-mail címét, hogy feliratkozzon a blogra és értesítést kapjon az új üzenetekről e-mailben.Hiba részletei: %sHiba részletek: Jetpack ID számmal kezdődik. Ne tegyük közzé ezt a hibaüzenetet! %sHiba részletek: Jetpack ID üres. Ne tegyük közzé ezt a hibaüzenetet! %sHiba részletek: Jetpack ID nem lépcsőzetes. Ne tegyük közzé ezt a hibaüzenetet! %sHibakód: %sHiba a lomtárba helyezés közben....Hiba a lomtárból történő visszahelyezés közben...Profil betöltési hibaHiba!Hiba, rossz modul.Hibás válasz adat.Hiba: Nem sikerült létrehozni a megfelelő felhasználónevet.Hiba: Ennek az oldalnak a Jetpack kapcsolataiban hiba történt.HIBA: Szabványos, valódi email címet kell megadniHIBA: A kötelező mezőket (név, email) ki kell tölteni1-202-555-1212Példa:OldalBevezetőkMondja...Visszajelzés exportálása CSV formátumbaFacebookFacebook Tetszik dobozFacebook oldalFacebook Oldal URLFacebook falKiemeltKiemelt tartalomKiemelt képekHírcsatornák megjelenítése:VisszajelzésVisszajelzés eldobva.Visszajelzés(ek) megjelölése spamként!Mező típusKeresse meg a hibásan működő bővítményt azok egyenkénti leállításukkal, kivéve Jetpack bővítményét. Ha a probléma továbbra is fennáll, a hibát nem egy bővítmény okozza. Ha a probléma megoldódott, akkor a bővítményeket egyesével kapcsoljuk be, folyamatosan ellenőrizve, mindegyiknél, hogy a hiba nem jelentkezik újra. Ha a hiba újra jelentkezik akkor - ott a bűnös! Tudassa velünk észrevételét, és mi megpróbálunk segíteni.Első beállításokFókusztávolságBlog követéseHozzászólás követéseKövetés TwitterenKövető beállításokÉtel menükHa például az Archívum widgetet csak a kategória oldalakon és a 404-es hiba oldalon akarod megjeleníteni, akkor válaszd a "Mutat" opciót az első lenyíló menüből, aztán add hozzá a következő két szabályt: "Oldal → 404-es hiba oldal" és "Kategória → Minden kategória oldal"Például, fűszeres, kedvenc, stb.
        VesszÅ‘vel válasszuk el a szavakatTovábbi információk:Űrlap építésFormátum:IngyenesSzabad formátumokInnenFÅ‘oldal, Archívum oldal, és Keresési EedményKezdÅ‘oldalRészletesebb információ megtekinthetÅ‘ a Megosztás SzerzÅ‘jének Oldalán. Ez a videó ad egy kis segítséget ahhoz, hogy hogyan kell használni a Megosztás funkcióit. Nézd meg HD-ben a jobb áttekinthetÅ‘ség érdekében!GalériaKörhinta Galéria BélyegképKezdjük el a Jetpack Multisite beállítását és csatlakoztassuk a fiókunkat.Ismerkedjünk meg a Multisite JetpackelHozzuk ki a legtöbbet a JetpackbÅ‘l...Visszajelzés küldéseAdjon webhelyének egy lökést, a bejegyzések képeinek betöltését a WordPress.com tartalomszolgáltató hálózat végezze. Mi gyorsítótárazzuk az ön képeit és szupergyors hálózatunk segítségével csökkentjük az ön webtárhely szolgáltatójára nehezedÅ‘ terheket. Ehhez csak kattintson a Bekapcsol gombra.GlobálisGoodreads -Olvasási lista-GoogleGravatar NévjegyGravatar névjegykártyaGravatar adatlapZöldÜdvözlÅ‘ SzövegVélemény a Jetpack-rÅ‘l?MagasságMagasság (px):Magasság:Kinézet’Rejtett igékElrejtésMinden kiemelt kép elrejtéseKapcsolódó tartalom elrejtése a bejegyzések utánCímke elrejtése a bejegyzés címkéi közül és a címke felhÅ‘bÅ‘l.Elrejti a statisztikában a hangullatjel képeket.KezdÅ‘lapÓrája:A névjegy segítségével az egyszerű Gravatar képeken kívül, információt ad egy bizonyos személyrÅ‘l: név, életrajzi elemek, képei, kapcsolattartási adatai, és egyéb szolgáltatásai. Úgy használható, mint a Twitter, a Facebook vagy a LinkedIn oldalakon.A névjegy segítségével az egyszerű Gravatar képeken kívül, információt ad egy bizonyos személyrÅ‘l: név, életrajzi elemek, képei, kapcsolattartási adatai, és egyéb szolgáltatásai.A lebegÅ‘névjegy egy nagyszerű módja az internetes jelenlétünk bemutatásnak, és hogy segítsünk az embereknek megtalálni a blogunkat.Hogyan működik?Üdvözlet. A feliratkozás az új bejegyzésekre e-mail levélben sikeresen megtörtént. Az aktiváláshoz kattintsunk a megerÅ‘sítésre. Ha nem történt meg a feliratkozás, akkor célszerű ezt a levelet figyelmen kívül hagyni.Üdvözlet. A feliratkozás az új bejegyzésekre e-mail levélben sikeresen megtörtént. Az aktiváláshoz kattintsunk a megerÅ‘sítésre. Ha nem történt meg a feliratkozás, akkor célszerű ezt a levelet figyelmen kívül hagyni.IP cím:IkonIkon + szövegIkon hívatkozásCsak ikonHiba történt a lektorálás közben. Érdemes meg próbálni késÅ‘bb.Próbálja meghatározni a kép méretét:Ha nem pontos a válasz, akkor egy bÅ‘vítmény vagy a sablon további karakterejét jelenít meg. Próbáljuk meg a 2. és 3. lépést.Ha ezek egyike sem segített megoldást találni, akkor kattintsunk ide , hogy kapcsolatba léphessen velünk a Jetpack támogatás csapata. Mondjunk el a problémáról annyit, amennyit csak lehet, valamint, hogy milyen lépésekkel próbáltuk megoldani a problémát, és ezek után az egyik boldog mérnök felveszi a kapcsolatot velünk, hogy segítsen.Ha Ön egy sablon szerzÅ‘je , akkor a következÅ‘ hivatkozáson keresztül megtanulhatja a sablonba beépíteni a végtelen görgetés funkciót. %1$sHa még nincs WordPress.com regisztrációd, akkor regisztrálj ingyen mindössze néhány másodperc alatt.Ha 404-es hibaüzenetet kapunk, lépjünk kapcsolatba az internetszolgáltatónkkal. Lehetséges, hogy a biztonsági megfontolások miatt XMLRPC tiltás van érvényben.Ha a problémát nem egy bÅ‘vítmény okozta, próbáljuk meg aktiválni a Twenty Twelve (alapértelmezett) sablont. Ha ez megoldja a problémát, akkor a sablonnal van probléma, lehetséges, hogy ezt a szerzÅ‘vel tudatni kellene.Mindet mellÅ‘zMindig mellÅ‘zFigyelmen kívül hagyás a ajavasoltaknakMellÅ‘zött kifejezésekKépKép igazítás:Kép szín:Körhinta Kép GalériaKép galéria diavetítésKépek rácsbanKép hivatkozásaKépek listábanKép beállítások:Kép mérete:Kép URL:Kép címe:A kép kivágandóKépek:Fejlesztési mód bekapcsolva, a honlap URL hiányzó végzÅ‘dése miatt (pl.: http://localhost).Fejlesztési mód bekapcsolva, a JETPACK_DEV_DEBUG konstans meghatározásával a wp-config.php fájlban vagy más helyen.Fejlesztési mód bekapcsolva, a jetpack_development_mode szűrÅ‘vel.InaktívEnnek a CSS-nek az alkalmazása Mobil SablonnálBejegyzések indexeléseAz indexelés kérés sorban áll. Várjunk…Videó beszúrásaAhelyett, hogy hosszú webcímeket gépel be, vagy hosszú URL-et illeszt be, most kap egy rövid és egyszerű hivatkozást a bejegyzések és az oldalak hosszú hivatkozása helyett. Ez a kompakt rövid hivatkozás a wp.me domain nevet adja át a valódi hivatkozásunknak és egy egyedi URL-t generál, ami biztonságos, megbízható és tényleg rövid, kezelhetÅ‘bb.A bemutatkozó szöveg akkor kerül elküldésre, amikor valaki követi egy bejegyzésünket, vagy a blogunkat. (Honlap és megerÅ‘sítÅ‘ részletek kerülnek még hozzáadásra.)A bemutatkozó szöveget akkor küldjük el, amikor valaki feliratkozik a blogra. (Honlap és jóváhagyási részletek automatikusan bekerülnek a levélbe.)Érvénytelen IDHibás, vagy lejárt munkamenetÉrvénytelen kérésHibás biztonsági kulcs.Érvénytelen felhasználónévEz az oldal magánjellegű?Úgy tűnik, hogy a Facebook URL nem megfelelÅ‘en lett beállítva. EllenÅ‘rizd a widget beállításokat.Úgy tűnik, hogy a webhely nem képes helyesen kommunikálni a Jetpackel.Lehetséges, hogy az alábbiak közül valamelyik okozza, amelyet, magunk is feltárhatunk: Ez tökéletesen használható a Twitter, Facebook, és a mobiltelefon szöveges üzeneteihez, ahol minden karakter számít.WordPress.com felhÅ‘-alapú szolgáltatások a honlapra.Étterem menü mezÅ‘kMegjelenítendÅ‘ tételek:SzakszóJetpackJetpack hozzászólásokJetpack hozzászólás képernyÅ‘képJetpack hozzászólások lehetÅ‘vé teszik, hogy a látogatók, a WordPress.com-on, a Twitter-en vagy akár a Facebook-on keresztül csatlakozva az oldalhoz a hozzászólásaikat megjelenítsék.Jetpack Hibakeresés KözpontJetpack GY.I.K.Jetpack hálózat beállítások frissítve!Jetpack bÅ‘vítmény verzióJetpack védelem nem elérhetÅ‘.Jetpack beállításJetpack belépésJetpack oldalakJetpack feliratkozások beállításaiJetpack TámogatásJetpack a WordPress.com-tólJetpack egyesíti a %s bonyolultságát és a WordPress egyszerűségének erejét, hogy megadja a végsÅ‘ matematikai blog platformot számunkra.Jetpack tartalmazza a legújabb verzióját a régi %l pluginnak.Jetpack tartalmazza a legújabb verzióitt a régi %l pluginoknak.A Jetpack tartalmazza a legújabb verzióját a régi “%1$s” bÅ‘vítménynek.Jetpack nem tud kapcsolódni a WordPress.com-hoz: %s. Ez gyakran azt jelenti, hogy a kiszolgálódon valami rosszul van beállítva.A Jetpack sikeresen lecsatlakozott.Jetpack kapcsolódik a WordPress.com szolgáltatáshozJetpack helyi fejlesztési mód.Jetpack telepítve!A Jetpack a teljes hálózaton aktiválásra került, ezért a figyelmeztetéseket nem lehet elrejteni.A Jetpack jelenleg nincs csatlakoztatva: WordPress.comJetpack mostantól tartalmazza a Jetpack Hozzászólásokat, ami lehetÅ‘séget ad a látogatóknak, hogy WordPress.com, Twitter vagy Facebook fiókokkal szóljanak hozzá az oldalunkhoz. A Jetpack Hozzászólások bekapcsolásához %s.A Jetpack WordPress %s verziót vagy újabbat igényel.Jetpack a WordPress.com számítási felhÅ‘jének hihetetlen energiájával tölti fel a saját tárhelyen üzemelÅ‘ WordPress telepítéseket.Jetpack megpróbálja egyeztetni webhelye színvilágához automatikusan, de lehet, hogy kézi beállítás szükséges az oldal aljának helyes megjelenitése céljából a Bejegyzések/hozzászólások kezelésének beállításai oldalon.Jetpack lehetÅ‘vé teszi, hogy engedélyezze az alkalmazások és szolgáltatások biztonságos csatlakozását a bloghoz, és lehetÅ‘vé teszik számukra, hogy használják annak tartalmát új módszerekkel, és új funkciókkal.A Jetpack mobil témája kis képernyÅ‘re optimalizált. Használja a fejléc és háttér képeket, a widgeteket az aktuális témához a legjobb egyedi megjelenés érdekében. A bejegyzések támogatása is megtalálható benne, így a fotók és galériák fantasztikus élményt nyújtanak majd az okostelefont használók számára.Csatlakozás a többi %s feliratkozóhozCsatlakozás a többi %s feliratkozókhozUgrás ide:Tartsunk lépést a legújabb hírekkel az összes WordPress oldallal és kapcsolatba léphetünk más WordPress.com felhasználókkal.LaTeXCímkeE-mail címNévHonlapBeállításBeállításokmozgatásFeliratokMezÅ‘k: fűszeres, kedvenc, stb. VesszÅ‘vel elválasztvaNyelvNagyNagyméretű blog képMódosítvaElrendezés:BÅ‘vebbenBÅ‘vebbenTovábbi információk a Markdown-ról.Minden vélemény számít!Hozzászólás a(z) %s bejegyzéshezHozzászólásBalAdjunk meg egy nevet.VilágosTetszikTetszett a bejegyzés?TetszikTetszik értesítésekA funkció lehetÅ‘vé teszi az olvasók számára, hogy megmutassák elismerésüket, tetszésüket a bejegyzéseknél és egyéb közzétett tartalmaknál a WordPress.com fiókjuk segítségével. Az olvasóknak lehetÅ‘ségük nyílik arra, hogy felülvizsgálhassák kedvelt bejegyzéseiket a WordPress.com oldalon.Kedvelés és MegosztásHatárértéknek nagyobbnak vagy egyenlÅ‘nek kell lennie, mint 0.A videók, teljes méretű képek és más rövid kódok szélességének maximalizálása %1$s pixelben. (További információ.)Hivatkozás szín (hex):Hivatkozás:Hivatkozás URL (amikor a képre kattintunk):Felhasználói fiók összekapcsolása WordPress.com-alszerkesztésFelhasználói fiók hozzákapcsolása a WordPress.com szolgáltatáshozLinkedInA világhálón általunk használt szolgáltatások összekapcsolása.Hivatkozás a blog RSS hírcsatornájáraHivatkozások a honlapra, blogra vagy bármely más honlapra.ÉlÅ‘ elÅ‘nézetTöltsük be az XMLRPC fájlt. Annak kellene lennie a válasznak, hogy “XML-RPC kiszolgáló csak POST kéréseket fogad.†alapértelmezetten.BetÅ‘ltés …Hozzászólások betöltése...Video betöltése...Betöltés…Betöltés...Ogg videó fájl helye.Belépés WordPress.com fiókkalbejelentkezettKijelenkezettBejelentkezés módszer nem engedélyezettLogoY. F j. l - H:iFÅ‘ oldalsávTegyük elérhetÅ‘vé ezt a kapcsolatot a blog valamennyi felhasználója számára?Kezeljük egy központi helyen a honlapjainkat a WordPress.com segítségével.Népszerűsítési beállításokKezelje bejegyzéseit saját e-mail címérÅ‘l a személyes beállítások menüpontból.Levélszemétnek jelölésMegjelölés NEM spam-ként.Hozzászólás spamnak minÅ‘sítéseMarkdownMarkdown tartalomA Markdown segítségével formázni lehet a bejegyzéseket és hozzászólásokat hivatkozásokkal, listákkal, és egyéb stílust meghatározó rendszeresen használ karakterekkel és írásjelekkel. Ãrók és bloggerek használják legtöbbet, akiknek ez egy gyors és egyszerű módja, hogy írni tudjanak formázott szöveget, anélkül, hogy a kezüket a billentyűzetrÅ‘l felemelnék. További elÅ‘nye, hogy nem kell megtanulniuk sok bonyolult kódot és PHP, HTML parancsot sem.Egyezés e-mailbenBejegyzések megjelenítésének maximális száma (max:10) :MédiatárMédia fájlMedia szélesség:KözepesMenüMenü tételMenü elem címkeMenü elem címkékMenü tételekMenü tételek újrarendezveMenü szekcióMenü szekciókMenüpont vázlat frissítve. ElÅ‘nézetMenü tétel közzétéve. MegtekintésFórum visszaállítása %s idÅ‘pontú állapotbólMenü tétel mentve.Tervezett menüpont: %1$s. ElÅ‘nézetMenü tétel hozzáadva. ElÅ‘nézetMenü tétel frissítve.A fórum frissítésre került. Fórum megtekintéseÜzenetÜzenet elküldveÜzenetekMeta adatHibás idÅ‘zítésHiányzik a csatolmány azonosító.Hiányzó cél blog ID.Hiányzó cél bejegyzés ID.Mobil alkalmazás promóciókMobil alkalmazásokMobil sablonMobil-kompatibilitás:Mód:Gyorsítsuk fel a honlap képeinek betöltési sebességét a WordPress.com CDN segítségével.Egy oldal ikon hozzáadása a honlapunkhoz.Képek, Twitter folyamok, saját webhely RSS hivatkozások, és még sok egyéb funkció adható hozzá a sablon oldalsávjához.Végtelen görgetés hozzáadása a sablonhozEngedélyezzük, hogy az alkalmazások biztonságosan elérjék a tartalmunkat a felhÅ‘n keresztül.A felhasználók feliratkozhatnak a bejegyzésekre és hozzászólásokra, és értesítést kaphatnak e-mailben azokról.A látogatók megoszthatnak tartalmat egy kattintással a Facebookon, Twitteren, és még pár helyen.LehetÅ‘vé teszi a felhasználók számára, hogy a WordPress.com felhasználói fiókjuk segítségével jelentkezzenek be.EllenÅ‘rizze a helyesírást, a stílust és a nyelvtant a begépelés utáni lektorálás szolgáltatással.Webhely testreszabása CSS segítségével, a sablon módosítása nélkül.Megjeleníti azokat a hivatkozásokat a bejegyzések és oldalak alatt, amelyek kapcsolódnak tartalmukban azokhoz.KülönbözÅ‘ karcsú, grafikus beállításokkal jelenítheti meg képeit, galériáit.YouTube, Vimeo, SlideShare, tartalmak beágyazásának engedélyezése, és még kódolás sem szükséges.Engedélyezze WP.me​​-támogatású rövidített hivatkozásokat az összes bejegyzésen és oldalon.Engedélyezze a felugró névjegykártyákat a hozzászóló Gravatarjával.A látogatók számára egy egyszerű mód arra, hogy megmutassák elismerésüket a tartalommal kapcsolatban.Kapcsolatfelvételi űrlap bárhol elhelyezhetÅ‘ segítségével a webhelyen.LehetÅ‘séget ad az olvasóknak hozzászólást beküldeni a WordPress.com, a Twitter, a Facebook, vagy a Google+ fiókjaik segítségével.Kezeljük egy központi helyen a honlapjainkat a https://wordpress.com/sites oldalon.Kísérjük figyelemmel az egyszerű, lényegre törÅ‘ honlap-statisztikát. Nincs további terhelés a szerveren.Honlap optimalizáció reszponzív sablonnal, okos telefonok számára.KülönbözÅ‘ típusú tartalmaknak rendezése és megjelenítése a honlapon, amelyek függetlenek a bejegyzésektÅ‘l és az oldalaktól.Védje webhelyét automatikus biztonsági mentésekkel és a biztonsági ellenÅ‘rzésekkel. (ElÅ‘fizetés szükséges.)Bejegyzések közzététele e-mailben, bármilyen eszközzel és e-mail klienssel.Értesítést kap a látogatottságáról az adminisztrátori rész eszköztárából, és a mobil eszközeirÅ‘l.A Jetpack értesítést küld, ha a webhelye nem elérhetÅ‘ állapotba kerül, és akkor is, amikor újra elérhetÅ‘.Keresés a teljes adatbázisban egy mezÅ‘ segítségével a műszerfalon.Az új bejegyzéseket ossza meg a közösségi hálózatokon automatikusan.Nyilvános bejegyzések és hozzászólások megosztása a keresÅ‘motorok, és egyéb szolgáltatások számára.Megadható, hogy mely oldalakon jelenjenek meg a widgetek a honlapon.Normál képgalériák átalakítása teljes képernyÅ‘s diavetítésre.Videók feltöltése és tárolása közvetlenül a honlapon. (Feliratkozás szükséges.)Használja a LaTeX jelölÅ‘nyelvet a bejegyzésekben, oldalakon komplex egyenletek és egyéb stréber dolgok megjelenítéséhez.A honlap ellenÅ‘rzésének a beállítása a Google Webmestereszközökkel, a Pinterest-tel és további szolgáltatásokkal.A bejegyzések és oldalak egyszerű szöveges Markdown szintaxis segítségével is megírhatóak.Modul információMatematikaKörhinta galériaKapcsolat űrlapEgyedi CSSEgyedi bejegyzés típusokTovábbfejlesztett megosztásExtra oldalsáv widgetekGravatar névjegykártyaVégtelen görgetésJSON APIJetpack hozzászólásokJetpack belépésKedvelésekKezelésMarkdownMobil sablonMonitorÉrtesítésekOmnisearchPhotonBejegyzés e-mailen keresztülVédelemNépszerűsítésKapcsolódó bejegyzésekMegosztásRövid kód beágyazásokHonlap favikonHonlap ellenÅ‘rzésHelyesírás és nyelvhelyességFeliratkozásokCsempe galériákVaultPressVideoPressWP.me rövidített hivatkozásokWidget láthatóságWordPress.com statisztikaMegjelenésKözpontosított kezelésFejlesztÅ‘kMobilEgyébKépek és videókKözösségiWordPress.com statisztikaÃrásModult nem lehet aktiválni, mert végzetes hibát váltott ki. Lehet, hogy egy másik bÅ‘vítménnyel van konfliktusa, amely telepítve van?A következÅ‘ modul nem található: `%s`.%s havi bejegyzésekHavi archívum(tovább...)BÅ‘vebb információTovábbi információk az e-mailek küldésérÅ‘l, mellékleteket és bejegyzések testreszabásáról.További információk a Tetszik gomb használatáról.BÅ‘vebb információ a népszerűsítésrÅ‘l.További információ a kapcsolódó bejegyzések használatával kapcsolatban.Menü szekció lefele mozgatásMenü szekció felfele mozgatásTwittjeimNévHálózat beállításaiÚjÚj képregényÚj menü tételÚj menütétel mezÅ‘ névÚj menü szekció névÚj feladatÚj feladat címke neveÚj feladat típus neveÚj sorÚj véleményÚj mezőÚj a Jetpackben: Központosított honlapkezelőÚjabb »Ãšjabb hozzászólás →LegújabbKövetkezÅ‘ »KövetkezÅ‘ »NemNincs API kulcsNincs szegélyNem találhatóak képregényekNincsenek képregények a Lomtárban.Nincs láblécNincs fejlécNincsenek feliratokNem találhatóak címkékNincs menütételNincs menütétel a lomtárbanA modul nem találhatóFeladatok nem találhatóakNincsenek feladatok a lomtárbanNincs görgetÅ‘sávNincs találatNincs találat a lomtárbanA kérésben nem található blog azonosító. Próbáljuk meg leválasztani a Jetpacket a WordPress.comról, majd kapcsoljuk össze újra. Ha ez megtörtént, próbáljuk meg újra csatlakoztatn a NépszerűsítÅ‘t.A hozzászólás szöveg nem lett megadva.Nincs adat a VideoPress azonosító mögött: %s.Nem találhatóak visszajelzésekLogo nincs beállítvaNem található bÅ‘vítmény!Nincsenek javaslatokNincs címkeNem találhatóak sablonokNincs közelgÅ‘ eseményNincs szükség frissítésreNem található felhasználói információ a kérésben. Bizonyosodjunk meg róla, hogy a felhasználói fiókunk össze van kapcsolva a Jetpackkel. Az összekapcsoláshoz használjuk az admin felület Jetpack oldalát. Nem írásban észlelt hibát.Senki sem szereti, ha a honlapja leáll, ezért dolgozik a Jetpack Monitor, miközben fülelve a helyszínt ellenÅ‘rzi minden öt percben. Amint leállást észlel, kapni fogunk egy e-mail értesítést amiben figyelmeztet a szóban forgó eseményrÅ‘l. Ãgy gyorsan cselekedhetünk, hogy a webhely újra elérhetÅ‘ legyen!Hiba történt a nonce paraméter ellenÅ‘rzése során.Egyik semNincs kapcsolatNincs kapcsolatMegjegyzés: Egyedi CSS visszaáll, amikor a sablon megváltozik.Megjegyzés: A csempe galériában lévÅ‘ képek extra-speciális feldolgozást igényelnek. Ãgy a képek a WordPress.com CDN rendszerébÅ‘l lesznek kiszolgálva akkor is, ha a Foton modul ki van kapcsolva.Nincs megfelelÅ‘ találatÉrtesítésekEmail értesítÅ‘t kérek, ha további hozzászólás érkezik a bejegyzéshez.Email értesítÅ‘t kérek, ha új bejegyzés jelenik meg az oldalon.FelhasználóSzerzÅ‘SzerepkörDátumCímkeTaxonómia, A megjelenítendÅ‘ bejegyzések száma:OKHivatalos gombokEltolásnak nagyobbnak vagy egyenlÅ‘nek kell lennie, mint 0.OGG Fájl URLOgg fájl konténer Theora videót és Vorbis audiót tartalmaz. Megjegyezzük, hogy néhány böngészÅ‘ nem képes ezeket a szabad szoftverformátumokat lejátszani, mint például az Internet Explorer vagy a Safari.Régebbi: %sRégebbi bejegyzésekGlobális keresÅ‘Az összes hozzászólásAz összes bejegyzésEzen az oldalon tudja megtekinteni a Jetpack moduljait, itt olvashat róluk többet és bekapcsolhatja vagy kikapcsolhatja ezeket, ha szükséges.Ha be van kapcsolva a Jetpack belépés "Belépés WordPress.com fiókkal" opció hozzáadódik a már meglévÅ‘ bejelentkezési felülethez.Egy új Jetpack modul%s Új Jetpack ModulEgy IP cím nem érvényes.Csak szabad szoftver formátumokban mutassunk videótItt csak képek feltöltése lehetséges.Csak az a felhasználó tudja bekapcsolni %s, de a falhasználó nem létezik. Ilyennek akkor nem szabadna megtörténnie.Csak a kiválasztott blogból származó videók lesznek elérhetÅ‘ek a Médiatárban.no-subsetbeHivatkozás megnyitása új ablakban/új fülönÚj ablakban nyílik megTetszÅ‘leges szöveg, amit az olvasóknak jelenítünk meg:LehetÅ‘ségekNarancssárgaSorrendKülönbözÅ‘ típusú tartalmaknak rendezése és megjelenítése a honlapon, amelyek függetlenek a bejegyzésektÅ‘l és az oldalaktól.Oldal %sOldalak:SzülÅ‘ menü szekcióSzülÅ‘ menü szekció:Származtatott feladat típusSzármaztatott feladat típus:SzenvedÅ‘ alakElérési út%s bejegyzés közvetlen hivatkozásaSzemélyes hivatkozásokTelefonja:KerülendÅ‘ mondatokVisszajelzés:RózsaszínPinterestCsomagok és ÃrakA(z) %s lejátszásához JavaScript szükséges.GyÅ‘zÅ‘djünk meg róla, hogy írunk-e hozzászólást.Ãrjuk le részletesen a problémát.A Javasripteket engedélyezni kell a böngészÅ‘ben a videopress használatához.Vegyük figyelembe, hogy a VideoPress modul működéséhez szükséges aktív WordPress.com fiók és egy VideoPress elÅ‘fizetés.Figyeljünk arra, hogy a szolgáltatások korlátozottak, mivel a honlapunk személyes.Kérem adjon meg egy érvényes e-mail címet.Kérjük, adja meg e-mail címét a hozzászóláshoz.Kérjük, add meg az email címed.Kérjük, adja meg a nevét a hozzászóláshoz.Kérjük add meg a neved.Válasszuk ki a feltölteni kívánt video fájlt.Adjunk meg egy valós modult.Adjunk meg egy érvényes felhasználónevet.Adjuk meg, hogy egy blogot, vagy egy felhasználót szeretnénk leválasztani.Töltsünk fel fájlt.Kérlek, erÅ‘sítsd meg a születésnapod.BÅ‘vítmény bekapcsolva.BÅ‘vítmény kikapcsolva.BÅ‘vítményekPocketNépszerűNépszerű tételekNépszerű feladat címkékPortfólióPortfólió elemekPortfólióPortfolió oldal megjelenítéséhez legfeljebb %1$s projektnek kell lennieHozzászólás küldéseBejegyzést készítette: %s.Bejegyzés e-mail használatávalBejegyzés E-mailen keresztül egy módja annak, ahogyan nyilvánosságra hozhatjuk bejegyzéseinket a honlapon. Minden e-mail klienssel lehet küldeni e-mailt, amely lehetÅ‘vé teszi, hogy közzé tegyük bejegyzéseinket könnyen és gyorsan bármilyen eszközünkrÅ‘l, mint például a mobiltelefonról, táblagéprÅ‘l.A bejegyzés átalakítva.%s bejegyzés átalakítva.Bejegyzés navigációBejegyzés típus:Nem sikerült elküldeni a bejegyzést - ellenÅ‘rizzük az e-mail címet!SzerzÅ‘: SzerzÅ‘:: %sKategória: %sBejegyzésBejegyzések & hozzászólásokBejegyzések és OldalakBejegyzések indexelve.Bejegyzések oldalaElÅ‘feldolgozó:Press ThisElÅ‘nézetFavicon elÅ‘nézeteKezdÅ‘oldal ikon elÅ‘nézeteElÅ‘nézet:ElÅ‘nézet: a változtatásokat el kell menteni, különben el fognak veszniÃrElsÅ‘dleges menüNyomtatásAdatvédelemAdatvédelemFeldolgozás...FeladatFeladat címkeFeladat címkeFeladat típusaFeladat típusokA feladat vázlata frissítésre került. Feladat elÅ‘nézeteFeladat közzétéve. Feladat megtekintéseA feladat visszaállításra került %s állapotábólFeladat mentve.Feladat idÅ‘zítés: %1$s. Feladat elÅ‘nézeteA feladat beküldésre került. Feladat elÅ‘nézeteFeladat frissítve.A feladat frissítve. Elem megtekintéseFeladatokLektorált írásLektorálásKöszönjük %s!NépszerűsítésA Népszerűsítés lehetÅ‘vé teszi, hogy csatlakoztassuk blogunkat közösségi oldalakhoz, és automatikusan ossza meg új bejegyzéseit barátaival. LehetÅ‘sége van csak saját maga, vagy az összes felhasználót a blogját csatlakoztatni.NépszerűsítÅ‘vel lehetÅ‘ség van a bejegyzések egyszerű megosztására Facebookon, Twitteren, Tumblren, Yahoo!-n és Linkedinen.Népszerűsítem az Én %s fiókomon:NépszerűsítÅ‘:KözzétételKözzétéveA közzétevÅ‘ korlátozza a beillesztett lejátszások számát.VásárlásLilaEgy ábrát tesz az admin sávba, amin megtekinthetÅ‘ az elmúlt 48 óra Adminisztrátori megtekitések adatai.Vigyük az egeredet a Gravatarunk fölé az adatok megtekintéséhez.RSS hivatkozások (Jetpack)RadioVéletlen sorrend:ÉrtékelésFelügyeleti E-mail értesítések küldése.Legutóbbi bejegyzésekPirosRedditRedudáns eszközökÃllapot frissítés%s kapcsolat frissítéseCím újragenerálásaRegisztrált felhasználókBejegyzések újraindexeléseKapcsolódó bejegyzésekKapcsolódó bejegyzésekHasonló bejegyzésekIkon eltávolításaSzolgáltatás eltávolításaLogó eltávolításaSzóismétlésSablonok CSS-nek cseréje (Haladó)Kiválasztás a cseréhez:CsereVálaszJelentések láthatóságaKétlépcsÅ‘s hitelesítésKötelezÅ‘? HelyreállításEzen tétel helyreállítása a lomtárbólEredmény:Vissza a feladónak. Hoppá! Úgy tűnik, hogy rossz Jetpack verziót kaptunk, kapcsoljuk ki, majd be és az új Jetpack használatra kész.JobbMentésMentés & VásárlásMódosítások mentéseÚj rendelés mentéseStíluslap mentéseMentés és visszalépés az űrlap készítÅ‘beBeállítások mentéseMezÅ‘ mentéseSikeres mentésÜtemezveKorlátlan lapozásVissza a tetejére scrollKeresésKépregények kereséseHozzászólások kereséseKeresésVisszajelzés kereséseMédiafájlok kereséseKeresés menütétel mezÅ‘kKeresés menütételekMenü szekció keresésModulok keresése...BÅ‘vítmények kereséseFeladat címkék kereséseFeladat típusok kereséseFeladatok keresése%s kifejezésre történÅ‘ keresés eredményeVélemények kereséseKeressünk egyszer, kapjunk eredményt mindenrÅ‘l! Jelenleg bejegyzésekben, oldalakban, hozzászólásokban, médiatárban és bÅ‘vítményekben keres.Keresési eredményeknélVálassz egy felhasználót vagy az "Egyedi" opciót és adj meg egy email címet.Kiválasztott visszajelzés letöltéseVálasszuk ki azokat a szerepeket, amiknek a jelentéseit figyelemmel szeretnénk kísérni.Szemantikus személyes közzétételi platformE-mail küldésKüldés a(z) e-mail címre%s által hitelesített felhasználó küldte.EllenÅ‘rizetlen felhasználó küldte az oldaladra.Több címke megadása esetén vesszÅ‘vel válasszuk el Å‘ket.Szolgáltatás neve%1$s: %2$sSzolgáltatás gombokat ide is húzhatjuk. Nem fognak rejtve megjelenni.Az ide húzott szolgáltatás gombok egy lenyíló menübÅ‘l választhatók ki.AdagLogó használataBeállításokBeállítások elmentve.MegosztásMegosztás FacebookonMegosztása a Tumblr-nMegosztás:Megoszthatjuk hozzászólásainkat a Twitter, Facebook, és számos egyéb közösségi média oldalán. Beállítható, hogy melyik szolgáltatások jelenjenek meg valamint, hogy ikonok, szöveg vagy mindkettÅ‘. Egyes szolgáltatások további lehetÅ‘ségek megjelenítéséhez praktikus programozható gombok, mint például a Twitter, amely frissíti, ahányszor bejegyzés került megosztásra.MegosztvaMegosztott bejegyzésMegosztásMegosztó gombokMegosztási beállításokURL megosztásaA megosztás kikapcsolva. Ennek engedélyezéséhez adjunk hozzá a fenti szolgátatások közül.Megosztási címkePolc:RövidkódRövid kód beágyazásokA rövidkód lehetÅ‘vé teszi, hogy könnyen és biztonságosan ágyazzon be médiákat más webhelyeken található forrásokból. Mindössze egy egyszerű kódot kell a WordPress-ben használni a beágyazáshoz a YouTube, Flickr és más média szolgáltatók is elérhetÅ‘ek.MutatHozzáférési hivatkozások megjelenítéseKivonatok mutatása:Arcok megjelenítéseKiemelt kép megjelenítése:Személyes hivatkozások megjelenítéseHírfolyam megjelenítéseMutassa a \"Kapcsolódó\" fejlécét világosabban, elkülönítve az adott szakasz hozzászólásátólJelenítsük meg a 'blog követése' lehetÅ‘séget a hozzászólási űrlaponJelenítsük meg a 'hozzászólások követése' lehetÅ‘séget a hozzászólási űrlaponA WordPress mobil alkalmazások promóciójának a megjelenítése a mobil sablon lábrészében.Gombok megjelenítésének bekapcsolásaHavazás megjelenítése a blogon. Ha bekapcsolod Január 4.-éig havazni fog a blogodon.Teljes tartalom a megjelenítése a kezdÅ‘oldalon és az archívum oldalakonKedvelés megjelenítése.Térkép megtekintéseMutass többetMetaadatok mutatása a fotón (Exif) a körhinta kép galériában, amikor a plugin be van kapcsolva.Adatlapi képek megjelenítése a bÅ‘vítményben.Kapcsolódó tartalom mutatása a bejegyzések utánMegosztás gombok megjelenítéseReblog gomb megjelenítése a bejegyzéseknélA legolvasottabb bejegyzések felülA legkeresettebb kulcsszavak felülFeliratkozások kijelzése (%s feliratkozó)Feliratkozások kijelzése (%s feliratkozó)Mutat:vagyMegjeleníti a legnépszerűbb bejegyzéseket & oldalakat.Shutter SpeedEzüstKapcsolódó bejegyzésHonlap favikonHonlap favikon feltöltésOldal ikon létrehoz egy favicon-t a webhelyén és így tovább.Oldal LogoWebhely neveStatisztikaOldal címe, alcíme és LogojaHonlapokTovább az elsÅ‘dleges tartalomraDiavetítésKicsiHangulatjelHangulatjel arcaRészletHavazásKözösségiEgyes sablonok és bÅ‘vítmények ismert konfliktusokat produkálnak a Jetpack-el – ellenÅ‘rizze a listát ezekrÅ‘l. (Megteheti, hogy böngészi a Jetpack támogatási oldalát vagy a Jetpack támogatás fórumát hátha mások is tapasztalták, és megoldotték már a problémát.)valaki kedveli a bejegyzéseimValaki hozzá szeretne férni a honlaphoz vagy lehet csak találkozott egy hibával. :) Zárjuk be ezt az ablakot.Valami összekeveredett a Jetpack kapcsolatban!Valami összekeveredett!Valami nagyon nyűglÅ‘dik!Sajnáljuk, valami olyan hiba történt, aminek nem lett volna szabad. Próbálja újra, talán sikerülni fog.Sajnáljuk, de hiba történt a hozzászólás küldésekor. Legyen szíves megpróbálni újra kicsit késÅ‘bb.Sajnos, nem lehetséges azonosítani a kérést.Sajnáljuk, a \"%s\" keresési feltételre modult nem találtunk.Sajnos nincsenek jelentések.Sajnáljuk, a blog nem oszthat meg bejegyzéseket e-mailben.Sajnáljuk, az ön böngészÅ‘jét nem támogatjuk. Javasoljuk, frissítsen: browsehappy.comSorrend:SpamSpam (%s)Spam (%s)HelyesírásellenÅ‘rzésHelyesírás és nyelvhelyességCsempékStatikus oldal:StatisztikaIsmeretlen állapot.Stílus:Stíluslap elmentve.Al-honlap felülbírálásTárgyKüldésElküld »Hozzászólás %sFeliratkozásFeliratkozás gomb szöveg:Feliratkozás helykitöltÅ‘:Feliratkozás: %sIratkozzon fel e-mail címével a BlograFeliratkozások PillanatképeTámogatásCimke névCímkék %sCímkeFelmérés kitöltéseLegyen mindig veled a WordPressFelmérés kitöltése. Segítségével elmondhatja, hogyan csináljuk.Ideiglenes nagyméretű kép a blog számáraFelhasználási feltételekFelhasználási FeltételekHonlap tesztelése a Jetpack kompatibilitás ellenÅ‘rzéséhez.VéleményVélemény oldal tartalomVélemény oldal kiemelt képVélemény oldal címVélemény vázlat frissítve. ElÅ‘nézetVélemény közzétéve. Vélemény megtekintéseVélemény mentve.Vélemény vázlat: %1$s. ElÅ‘nézetVélemény beküldésre került. ElÅ‘nézetVélemény frissítve.Vélemény frissítve. Vélemény megtekintéseVéleményekHonlap tesztelése a Jetpack kompatibilitás ellenörzése segítségével...SzövegSzöveg & Kép hivatkozásaSzöveges hivatkozásSzöveg listaCsak szövegSzövegmezÅ‘A kapcsolat el lett távolítvaA begépelés utáni lektorálás szolgáltatás javítja a helyesírást. Mesterséges intelligencia segítségével találja meg a hibákat és okos javaslatokat kínál nyelvhelyesség szempontjából.ID/WP.com Blog ID a honlaponA Facebook Tetszik doboz Widget A kép Widget A Jetpack modul már aktiválva van.A Jetpack modul már be van kapcsolva.Jetpack verzió: %sA bÅ‘vítmény már be van kapcsolva.A bÅ‘vítmény már ki van kapcsolva.Az RSS hiatkozások widget A Twitter Widget Twitter felhasználónév. A honlap domain név tulajdonos.A VideoPress bÅ‘vítmény nem tud kommunikálni a VideoPress szerverekkel. Ez a hiba legtöbbször a bÅ‘vítmény nem megfelelÅ‘ beállításai miatt történik. Telepítsük újra, vagy frissítsünk a beállításokon.A WP.com felhasználó ID-vel csatlakozott a felhasználóA WP.com email címével csatlakozott a felhasználóA WP.com felhasználónevével csatlakozott a felhasználóWordPress.com blog_id: %dA bejelentkezési munkamenet lejárt. Térjünk vissza, és próbáljuk újra.Az alapértelmezett tartalom szélessége a(z) %s témában, %d pixel.A fájl, amit feltöltöttünk nem elfogadott fájltípus. Kérjük, próbálkozzon újra.KövetkezÅ‘ modulok frissültek: %l.KövetkezÅ‘ új modulok kerültek be: %l.Az alábbi szolgáltatásokat tartalmazza: Twitter, Facebook, Reddit, StumbleUpon, Digg, a LinkedIn, a Google 1, Nyomtatás, és e-mail küldés.Az alábbi szolgáltatásokat tartalmazza: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, a LinkedIn, a Google 1,Nyomtatás, és e-mail küldés.A kép segít összegyűjteni a statisztikát és a világot egy jobb hellyé teszi, de még mindig működik, ha rejtve van.A kép legalábbA feltöltött kép magassága kisebb, mint %upx.A feltöltött kép szélessége kisebb, mint %upx.JetpackJetpack %sWP.com felhasználó csatlakoztatott honlapjainak számaA régi verzió ki van kapcsolva, és el lehet távolítani a webhelyen.A régi verziók ki vannak kapcsolva, és el lehet távolítani a webhelyen.A bÅ‘vítmény már telepítve vanAz elÅ‘nézet jelenleg nem érhetÅ‘ el mivel a videó feldolgozás alatt áll.A lektorállási vizsgálat javaslatokat ad ebben a bejegyzésben. Biztos, hogy szeretné közzétenni így? Kattintson az OK gombra, ha közzé szeretné tenni, vagy a Mégse gombra megtekintheti a javaslatokat és szerkesztheti a bejegyzést.A lektorállási vizsgálat javaslatokat ad ebben a bejegyzésben. Biztos, hogy szeretné közzétenni így? Kattintson az OK gombra, ha közzé szeretné tenni, vagy a Mégse gombra megtekintheti a javaslatokat és szerkesztheti a bejegyzést.A lektorálást támogatja az Angol, Francia, Német, Portugál, Spanyol nyelveket. A felhasználói felület nyelve (lásd fent), az alapértelmezett lektorálási nyelv.A tartalom kiemeléssel kapcsolatos beállítások áthelyezésre kerültek a Megjelenés → Testreszabás menüpont alá.A megadott sablon nem található.A próbák eredménye és néhány egyéb hasznos információ is elküldésre került a támogató csapat számára. Az elküldendÅ‘ információt itt lehet átnézni/módosítani.A sablon már telepítésre kerültSablon üres.Sablon: %1$s.Sok bÅ‘vtmény és szolgáltatás létezik, amelyek statisztikát szolgáltatnak, de nem mind tud egyéb adatokkal szolgálni. A WordPress.com stats a legnépszerűbb metriáit könnyű megérteni és egy világos és vonzó felülettel rendelkezik.Nincsenek megjeleníthetÅ‘ bejegyzések. Több forgalmat szeretnél?Van egy elérhetÅ‘ frissítés a sablonhoz. Érdemes ellenÅ‘rizni, hogy ez a frissítés a végtelen görgetés támogatását élvezi-e, a WordPress Frissítések oldalán.Úgy tűnik, hogy hiba van a webhely kommunikációs képességeivel a Jetpack kiszolgálók irányába.Volt egy kis probléma a kommunikációval a lektorálás szolgáltatásnál. Próbálja újra egy perc múlva.Probléma adódott a %s -hez történÅ‘ csatlakozáskor. Bontsd meg a kapcsolatot és próbáld újra.Próbléma adódott a NépszerűsítÅ‘höz való kapcsolódás közben. Próbáljuk újra.Hiba történt az automatikus lektorálás közben.Hiba a bÅ‘vítmény kikapcsolásakorHiba lépett fel a bÅ‘vítmény telepítése közbenHiba a sablon telepítése közbenHiba történt a bÅ‘vítmény frissítése közbenHiba történt a sablon frissítése közbenHiba a feliratkozás során. Kérjük, próbálja újra.Hiba lépett fel a modul bekapcsolása közben.Hiba lépett fel a modul kikapcsolása közben.Hiba történt, miközben az oldal adatai frissítésre kerültek.Egyre nagyobb esély van arra, hogy a látogatók az Ön webhelyére okostelefon segítségével látogat el. Fontos, hogy biztosítsák számukra is a lehetÅ‘ legjobb olvasási élményt, miközben kis képernyÅ‘n böngészik az oldalát.Ezek a beállítások hatással vannak minden honlapon a hálózaton belül.Ezek a beállítások azokra az e-mailekre vonatkoznak, amelyek a blogtól a követÅ‘khöz mennek.(kötelezÅ‘)A kapcsolat megfelelÅ‘en működik.A galéria tartalmaz %2$s fotót.A galéria tartalmaz %2$s fotót.%s modult csak az tudja módosítani, aki kezdeményezte a Jetpack kapcsolatot ezen az oldalon.A bÅ‘vítmény működni fog nélküle, de a többájtos támogatás lesz használatban ha elérhetÅ‘. Apró problémák léphetnek fel Tweetelések és egyéb megosztási szolgáltatások használatakor.Bejegyzés megosztva!Ez a bejegyzés jelszóval védett.A bejegyzést jelszó védi. Meg kell adni a jelszót a hozzászólások megtekintéséhez.Ez a felhasználói-fiók jelenleg egyetlen WordPress.com felhasználói-fiókhoz sem kapcsolódik.Ez a beállítás felülbírálhat egyes videókat.Ez a honlap túl nagy, forduljon Jetpack szinkronizálás támogatásért.A diavetítést nem lehet elindítani. Próbáljuk újratölteni az oldalt, vagy megtekinteni másik böngészÅ‘ben.Ehhez a diavetítéshez JavaScript szükséges.Ez a felhasználó nem jogosult tartózkodni a %s blogon.A felhasználó nem jogosult a bÅ‘vítményeket kezelni ezen a hálózaton.Ez a videó csak felnÅ‘tt nézÅ‘k számára ajánlott.A videó lejátszásához Adobe Flash-re van szükség.A jetpack kikapcsolására készül. Biztos kikapcsoljuk a jetpack-et?A jetpack modulok kikapcsolására készül. Biztos kikapcsoljuk a jetpack összes modulját? Ez megakadályozza, hogy a felhasználó-specifikus modulok, mint például a népszerűsítés, értesítések és a bejegyzés e-mailen keresztül működjenek. Biztosan meg szeretnénk szüntetni ezeket?BélyegképBélyegkép RácsCsempe oszlopokCsempe galériákMozaik GalériaCsempékIdÅ‘IdÅ‘:IdÅ‘vonal sablon:CímCím:Beállíthatja a megosztásait a Beállítások → Megosztás beállításai menüben.A beállításokhoz nyisd meg a widgetet és kattints a Láthatóság gombra a Mentés gomb mellett. Itt határozhatod meg a widget megjelenését.A küldött követéssel kapcsolatos e-mailek testreszabásához, ellenÅ‘rizze a beállításokat az Olvasási beállítások oldal alján.Az egyedi bejegyzés típusok segítségével új bejegyzés típusok hozhatók létre, mint például portfólió, vélemény, szolgáltatások. A Beállítások → Ãrás → Egyedi bejegyzés típusok oldalon bekapcsolható a Portfólió egyedi bejegyzés típus a jelölÅ‘négyzet segítéségével. Ez egy példa egyedi bejegyzés típus.A jetpack összes funkció eléréséhez be kell kapcsolni a felhasználói fiókot a Csatlakozás a WordPress.com-hoz gomb segítségével a jobb oldalon.A végtelenbe és azon túlHa látni szeretnénk a névjegyet, tekintsük meg bármelyik blogbejegyzést vagy hozzászólást a blogban. Ha a személynek van beállított névjegye társítva a gravatar oldalán, akkor az egeret a képe fölé húzva már a névjegy jelenik meg. A névjegy kikapcsolásához kattintsunk a Kikapcsolás gombra.Ahhoz, hogy használni tudja a Jetpackot forduljon a WordPress rendszergazdához, hogy csatlakoztassa azt az Ön számára.Ahhoz, hogy használni tudja az E-mail Bejegyzéseket az Ön %s felhasználói nevét hivatkozással kell ellátni a WordPress.com felhasználói nevéhez.Ahhoz, hogy használhassuk a népszerűsítés modult a %s fiókunkat be kell kapcsolni a WordPress.com fiókunk használatával az alábbi hivatkozást használva.Ahhoz, hogy használhassa, nyisson meg egy bejegyzést, vagy oldalt (vagy tegyen közzé valami újat!). A “Rövidített URL” gomb a bejegyzés címe mellett lesz. Ha kattint rá, egy párbeszédablak jelenik meg, amiben már benne is lesz a rövidített hivatkozás elérése. Ezután másolja be a Twitter, Facebook vagy bárhová ahová szíve vágya készteti.CSS szerkesztÅ‘ indításához kattintson a következÅ‘ hivatkozásra → CSS Szerkesztése.Használjuk a feliratkozás widget-et. Navigáljunk a Megjelenés → Widgetek menüpontba, majd húzzuk be az egyik oldalsávba a “Blog Feliratkozás (Jetpack)” widgetet és állítsuk be.Ahhoz, hogy a widget megjelenjen és működjön → Widgetek. Húzza Å‘ket az egyik oldalsávra és konfigurálja.Legjobb bejegyzésekLegnépszerűbb bejegyzések & oldalakA legnépszerűbb bejegyzések & oldalak kiszámítása az elmúlt 24-48 óra adataiból történik. A változásukhoz idÅ‘ kell.Legjobb keresÅ‘szavakÃtlátszóÃtlátszó háttérLomtárHiba lépett fel a Jetpack használata közben?Próbáljon újra kapcsolódni.TumblrTumblr blogBekapcsolva a bejegyzéseibenTwitt @%sTwitterTwitter honlap címkeTwitter idÅ‘vonalTwitter felhasználónév:TípusTípusokFelURLNem sikerült létrehozni a bejegyzést e-mail cím segítségével. Kérjük, próbálkozzon késÅ‘bb.Nem sikerült kikapcsolni a bejegyzést e-mail cím segítségével. Kérjük, próbálkozzon késÅ‘bb.Nem sikerült újra létrehozni a bejegyzést e-mail cím segítségével. Kérjük, próbálkozzon késÅ‘bb.EgyébFiók leválasztásaWordPress.com felhasználó leválasztásaNincs közzétéveLeiratkozásAmíg a sablonod támogatja a végtelen görgetést, nem fogod tudni aktiválni ezt a modult.Névtelen bejegyzésKözelgÅ‘ eseményekMenü elem címkéjének frissítéseMenü szekció frissítésFeladat címke frissítéseFeladat típus frissítéseHonlap favikon frissítésfrissítveKép feltöltéseVideo feltöltésVideo feltöltésTöltsünk fel egy képet, amit szeretnénk használni a webhely logójának. A következÅ‘ lépésben azt méretre fogja vágni.FeltÅ‘ltés...Használd a $latex your latex code here$ vagy [latex]your latex code here[/latex] kódokat. A %s beilleszthetÅ‘ bejegyzésbe és hozzászólásba is. Ennek megvalósításához az itt található beállítások adottak.Google Analytics használata a Végtelen görgetésselMarkdown használata hozzászólásoknál.Markdown használata bejegyzéseknél és oldalaknál.Használjunk nagy és vizuálisan lenyűgözÅ‘ elrendezéstÉrvényes e-mail címet adjunk meg.Automatikus bejegyzés és oldal nyelv felismerés.Használjuk a TAB billentyűt az oszlopok közötti mozgásához és az ENTER vagy a RETURN billentyűt arra, hogy az aktuális sort mentse a következÅ‘re lépve.A lenti gomb használatával böngészhetjük a VideoPress médiatárat. Bejegyzés vagy oldal szerkesztése közben is megtekinthetjük, a Média hozzáadása gombra kattintással.Használjuk a lenti űrlapot egy videó feltöltéshez a VideoPress médiatárba. A következÅ‘ videó formátumokat támogatjuk: %s. A maximális feltölthetÅ‘ fájlméret: %d%s.Ezekkel a beállításokkal megjeleníthetÅ‘ek különbözÅ‘ típusú tartalmak a webhelyen.Használjuk az alább felsorolt eszközöket, annak érdekében, hogy honlapunkat sajátjaként kontrollálhassuk/irányíthassuk más külsÅ‘ szolgáltatások segítségével, mint a Google, a Bing vagy például a Pinterest szolgáltatásai.-- Kiválasztás --ElrejtMutatFelhasználó kapcsolódása a WordPress.com-raFelhasználónévÉrtékVaultPressVaultPress VezérlÅ‘pultEllenÅ‘rzött szolgáltatásokVideo könyvtár hozzáférésVideo elÅ‘nézet:%s videóVideó bejegyzést készítette: %s.Videó bejegyzés.VideoPressVideoPress könyvtárÖsszesKépregény megtekintéseTeljes profil megtekintése →Teljes honlap megtekintésMenü tétel megtekintésMenütétel mezÅ‘ megtekintésMenü szekció megtekintésMobil oldal megtekintéseProjekt megtekintéseFeladat címke megtekintéseFeladat típus megtekintéseOldal statisztikák megtekintése JavaScript nélkülVélemény megtekintése%s megtekinése.Minden Jetpack modul megtekintéseTeljes méret %1$s×%2$sMegtekintés: InstagramTekintsük meg az emberek adatlapját, kattintsunk a Gravatar képükreWordPress.com statisztikák megtekintése mostMegtekintés:Nézettség az elmúlt 48 óra alatt. Kattintson ide több statisztikai információért.LáthatóságNézze meg az oldal statisztikát.Tekintsük meg a teljes bejegyzést.Ahhoz, hogy ellenÅ‘rizze a biztonsági mentéseket, lássa a biztonsági figyelmeztetéseket, vagy ellenÅ‘rizhesse a VaultPress ErÅ‘sségét, nézze meg az Ön %s.A látogatónak iPhone, Android, Windows Phone vagy más okostelefonon automatikusan jelenik meg a mobil téma és a lehetÅ‘ség, hogy a teljes oldalt láthassa. Lehet engedélyezni vagy tiltani a mobil témát, ezt a "Bekapcsol" vagy "Kikapcsol" gombra kattintva teheti meg.WP.me rövidített hivatkozásokFigyelem! Multibyte támogatás hiányzik!Nem lehetséges bejegyzéseket mutatni ehhez a bloghoz.Most nem lehetséges betölteni a blog adatokat.Nem siekrült ellenÅ‘rizni, hogy a kiszolgáló ellenÅ‘rzött kérést küldött. Próbáljuk újra, és bizonyosodojunk meg róla, hogy nincs semmi zavaró a kiszolgáló és a Jetpack szerver között.Sajnos pillanatnyilag nem tudjuk megjeleníteni a statisztikákat. Az oldal frissítése szükséges.Sajnos pillanatnyilag nem tudjuk megjeleníteni a statisztikákat. Az oldal frissítése szükséges. Ha a hiba továbbra is fennáll, szükség van arra, hogy a támogatási szolgáltatással kapcsolatba lépjünk. A jelentésben az alábbi adatokat kérjük megadni.HonlapHonlap ellenÅ‘rzÅ‘ szolgáltatásokÜdvözöljük a Jetpack %s verziójában!Üdvözlet az egyedi CSS szerkesztÅ‘ben! A CSS (angolul Cascading Style Sheets) a számítástechnikában egy stílusleíró nyelv, mely a HTML vagy XHTML típusú strukturált dokumentumok megjelenését írja le. Törölhetjük ezt a szöveget és elkezdhetÅ‘ a honlap stíluslapjának testreszabása. Alapértelmezésben a jelenleg használt sablon stíluslapja betöltésre kerül. Be másolhatjuk ezt a stíluslapot ide a szöveg helyére, vagy akár egyetlen osztályt, szabályt is megadhatunk.Üdvözöljük az Egyedi CSS világában! Ha szeretnénk megtudni, hogyan is működik, látogassunk el ide: http://wp.me/PEmnE-BtMajd azt is tudatja e-mailen keresztül, amint a webhely ismét elindul és fut, így szemmel tartható a teljes leállási és újraindulási folyamat.Mi legyen a tárgy mezÅ‘ben?Mi is az a Gravatar névjegykártya?Mi az a Gravatar?Amikor egy bejegyzést létrehoz, egy galéria hozzáadásával, most már lehetÅ‘sége van arra, hogy kiválasszon egy kép elrendezési stílust a képeknek. Ãltalunk hozzáadottak alapján támogatja a téglalap, négyzet és kör alakú galériák létrehozását. Alapértelmezésben a galériák továbbra is megjelenik a szabványos indexkép rács elrendezés szerint. Ahhoz, hogy a téglalap alakú elrendezés legyen az alapértelmezett az összes webhely galériáján, menjen a Beállítások → Kép / Videó beállítások és jelölje be a következÅ‘t "Jelenítse meg az összes galéria képeit Csempe Galéria stílusa szerint."Hozzászólásokra a látogatók is feliratkozhatnak, annak érdekében, hogy lépést tartsanak a beszélgetés folyamatával.Ha remek tartalmat írunk, már csak azt szeretnénk, hogy minél több ember megtalálja, igaz?FehérFehér-lista kezelésFehér-lista mentve.Widget ID:-Widget név:Widgets KépernyÅ‘képekSzélesség (px):Szélesség:1 hozzászólás%s hozzászólásA Körhinta galéria engedélyezésekor, bármilyen szabványos WordPress galériával már bejegyzésekbe vagy oldalakba beágyazott gyönyörű, teljes képernyÅ‘s képek böngészésére alkalmas felületet ad. Megjegyzésekkel és EXIF metaadatokkal.A WordPress.com egyszeri bejelentkezés segítségével, a felhasználók képesek lesznek, hogy bejelentkezzenek vagy regisztráljanak a WordPress-t használó oldalakon. Ugyanazokat a hitelesítÅ‘ adatokat használva, mint a WordPress.com fiókjukban. Ez rendkívül biztonságos. Havi elÅ‘fizetéssel a VaultPress bÅ‘vítmény a webhely tartalom, sablonok és bÅ‘vítmények valós idejű mentését, valamint a rendszeres biztonsági vizsgálatokat, a fenyegetések és támadások megelÅ‘zésére végzi el.WordPress.com-nak tetszik aWordPress.com reblog gombWordPress.com belépésWordPress.com statisztikaWordPress.com most nem tudja kiszolgálni a Jetpacket. Próbáld újra késÅ‘bb.Huha, ez egy kicsit kockán hangzik.Hozzászólás...Rossz méret. Hm… úgy tűnik, hogy a Jetpack nem elég fitt. ElÅ‘fordulhatott, hogy lefagyott? Kattintsunk a “Csatlakozás a WordPress.com-hoz” gombra ismét, hogy helyreállhasson a Jetpack.Y-m-dY-m-d H:i%s. év bejegyzéseiÉves archívumokAha. Megadható több e-mail cím az E-mail cím mezÅ‘be, és elválasztóak vesszÅ‘vel. Az értesítÅ‘ e-mailt ezután kell küldeni minden egyes e-mail címre.IgenMinden rendben van! A honlap mostantól kezelhetÅ‘ a wordpress.com/plugins oldalon keresztül is.Ez a változást nem hajthatjuk végre.Nincs jogosultság a tétel módosításhoz.Nincs jogosultság ennek a tételnek a lomtárból történÅ‘ áthelyezéséhez.Nincs megfelelÅ‘ jogosultság ennek a tételnek a lomtárba helyezéséhez.Nem engedélyezett a váltás erre a sablonraBe kell állítani a képességét, hogy ellenÅ‘rizhesse.Be kell állítani egy bÅ‘vítményt, hogy bekapcsolhassa.Be kell állítani egy bÅ‘vítményt.Be kell állítani egy sablont, hogy választhasson.Be kell állítani egy sablont, hogy frissíthesse.A Statisztikai Műszerfalat itt tekintheti meg.Bekapcsolhatja vagy kikapcsolhatja az egyes modulokat a Jetpackban, az igényeinek megfelelÅ‘en.Felvehetjük a következÅ‘ változókat is az URL címbe megosztásnak:LehetÅ‘ség van elrejteni Widgetet aktuális oldalon is. Például, ha nem szeretné, hogy az "Archívum" Widget megjelenjen a keresési eredmények oldalon, akkor válassza a Widgetnél a "Láthatóság" - "Elrejt" - "Oldal" - "Keresési eredményeknél" beállítást.Valamint módosíthatja a feliratkozásait a Bejegyzések/hozzászólások kezelésének beállításai oldal alján is.Létrehozhatod a kapcsolatot csak magadnak vagy az összes felhasználónak a blogodon. A megosztott kapcsolatok a (Megosztott) szöveggel vannak jelölve.Megtekintheti értesítéseit a WordPress.com-on az Eszköztárban.Nem lehet lecsatlakozni, anélkül, hogy elÅ‘ször csatlakozott volna.Nincs elegendÅ‘ szabadság szintünk a videó megtekintéséhez. Támogassuk a szabad szoftvereket az elÅ‘fizetésükkel.Nincs megfelelÅ‘ jogosultság az oldal megtekintéséhez.Ön már feliratkozott és megkapja E-mail-ben a frissítéseket.Azt választottuk, hogy ne csatlakoztassuk a blogunkat. Kattintsunk az "elfogadás" gombra, amikor szeretnénk csatlakoztatni a fiókunkat.A bejegyzést megosztottad a következÅ‘ email címmel: %sSikeres lecsatlakozás a JetpackrÅ‘l.Hozzászólás írásához bejelentkezés szükséges.Hozzászóláshoz be kell jelentkezni!Ennek a lehetÅ‘ségnek a használatához a Jetpackünket csatlakoztatni kell WordPress.com-hoz.Érvényes parancs megadásaEngedélyeznünk kell az oldalunk és a WordPress.com közötti kapcsolatot, hogy további remek funkciók váljanak elérhetÅ‘vé.Be kell regisztrálni a Jetpackot csatlakoztatása elÅ‘tt.Neked kell kiválasztanod, hogy melyiket szeretnéd megjeleníteni a Gravatar Adatlap widget-ben.Jetpack-al kapcsolatos email-t a frissítésekrÅ‘l már nem fog kapni.Érvénytelen API kulcsEgyedi bejegyzés típusokE-mail címedJetpack majdnem kész!A Jetpack telepítés rendben van!NévA weblap statisztika jobban működik, ha a JavaScript engedélyezve van.A WordPress telepítésed mostantól a világ legjobb biztonsági védelmével, mentésével és támogatásával rendelkezik.Jelenleg nincs közzétett bejegyzés a blogban.A hozzászólás rendszer-moderációra várakozik.A hozzászólás moderációra várakozik.A hozzászólás jóváhagyásra kerültAz új mezÅ‘t sikeresen elmentettükA honlap favikon feltöltésre került!A webhely nem éri el a Jetpack kiszolgálókat.A webhely nem éri el biztonságosan a Jetpack kiszolgálókat.A sablon támogatja a %sA feltöltés nem sikerült, próbáljuk meg késÅ‘bb, vagy próbáljuk újra most, és szorítsunk érte.A videó sikeresen feltöltött. A feltöltés hamarosan megjelenik a VideoPress könyvtárban.A video feltöltés alatt... Ne zárjuk be az ablakot.A webhelyünknek nyilvánosan elérhetÅ‘nek kell lennie, a Jetpack használatához: %sa bejegyzés vagy oldal elsÅ‘ kiadásaa bejegyzés, vagy oldal frissítésre került.lehetÅ‘vé teszi az RSS hivatkozások hozzáadását a blog bejegyzésekkel, és hozzászólásokkal kapcsolatban a sablon oldalsávján. Ez lehetÅ‘vé teszi, hogy az olvasók naprakészek legyenek, ha új bejegyzések, hozzászólások, válaszok érkeznek az oldalra.lehetÅ‘vé teszi, hogy könnyedén lehessen képeket hozzáadni a sablon widget területeihez. Egy egyszerű módja annak, hogy a webhelyünk vizuális szempontból gazdagabb legyen.ésEmailMegszakításKattintás ideBeállításkép kivágásanapSzerkesztésSzöveg szerkesztéseHiba történt az űrlap létrehozása során. Valószínűleg meg kell próbálni újra az utolsó műveletet.visszahttp://jetpack.mehttp://wordpress.org/iCalendar hírfolyam URL:széles és magas legyen."%s"Betöltés…%1$s/%2$shónapOlvasniKépes navigációHozzászólásOlvasás%s ha a:korrektúrázáskeresésbiztonság, biztonságos, védelem, botnet, brute forcestatisztikák, követések, analitika, megtekintések, forgalomfájl kiválasztásaE-mailFacebookGoogleLinkedinPinterestPocketwp.comNyomtatásRedditTumblrTwittermegmutatja a Facebook Tetszik dobozt a sablon oldalsávján. Ez egy nagyszerű lehetÅ‘ség arra, hogy az olvasók megmutathassák támogatásukat.megmutatja a csatolt Twitter legújabb bejegyzéseit a sablon oldalsávján. Ez egyszerű módja annak, hogy több aktív tevékenységi felületet adhassunk webhelyünkhöz. Számos testreszabási lehetÅ‘séggel rendelkezik.az elmúlt napaz elmúlt hónapaz elmúlt negyed évaz elmúlt hétaz elmúlt évez a videóMegtekintések: %shétszó%1$s \a\t %2$splugins/jetpack/languages/jetpack-ur.mo0000755000312500031250000001074012651056012020631 0ustar eacbforgeacbforgÞ•NŒkü¨ ©¶½ ÓÞïþ  $ 7D M5Z¦ «¶¾ ÅÑØ Ý*ë5LUksx ~ Œš µº¿ Õ âðó ø    - 5 ; Q [ c m t  ‡ Œ “ ª ¯ ´ » Á È Ì Ú â ë ñ ù  ; $M r y ì~ k } ‰   ­ à Õ ç ù # & "1 T q | !” .¶ å î þ   ( 8 C YV e° ## GR [fzŽ(—ÀÉÐéú $; L Ye w‚‘ ¯ºÌæø-'6^mt Š •¡ ²½Ïâé(û$Y+D… Ê Õ5J$)";@=>C/H4% :62L13<D#0(.E I +MB?!'9G,&K 8-N*7FA%1$s on %2$s%s ago← Older Comments(required)% Replies1 ReplyActivateAddAllBlog ArchivesCancelCheatin’ uh?Color SchemeCommentsContact InfoContinue reading →Custom field deleted.DarkDeactivateDefaultDeleteDescriptionE-mailEditEmail AddressError: please enter a valid email address.Error: please fill the required fields (name, email).FeaturedFor more information:GalleryHomeImageLeave a ReplyLeave a replyLightMonthly Archives: %sMoreNameNewer Comments →Next »Next » NoNoneNothing FoundOptionsPage %sPages:Permalink to %sPluginsPostsProudly powered by %sPublicizePublishPublishedRatingRecent PostsReplySaveSearchSearch Results for: %sShowSpamSubmitTitleTitle:URLUncategorizedUpdatedUsernameValueWebsiteYearly Archives: %sYesYou do not have sufficient permissions to access this page.Your comment is awaiting moderation.canceleditPO-Revision-Date: 2015-06-27 06:00:15+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: dev %1$sØŒ %2$s پر%s Ù¾ÛÙ„Û’â†Ù¾Ø±Ø§Ù†ÛŒ رائے(درکار)% جوابات1 Ø¬ÙˆØ§Ø¨ÙØ¹Ø§Ù„ کریںشامل کریںتمامبلاگ Ú©ÛŒ پرانی Ø®Ø¨Ø±ÛŒÚºÙ…Ø³ØªØ±Ø¯Ø¯Ú¾ÙˆÚ©Û Ø¯ÛÛŒ ÛØ§Úº’ ؟رنگوں کا Ø§Ù…ØªØ²Ø§Ø¬ØªØ¨ØµØ±Û’ØªÙØ§ØµÛŒÙ„ رابطÛپڑھنا جاری رکھیں→صوابدیدی Ù‚Ø·Ø¹Û Ù…Ù¹Ø§ دیا Ú¯ÛŒØ§Ú¯ÛØ±Ø§ØºÛŒØ± ÙØ¹Ø§Ù„Ø·Û’Ø´Ø¯ÛØ®ØªÙ… Ú©ÛŒØ¬Ø¦ÛŒÛ’ØªÙØµÛŒÙ„برقی Ù¾ØªÛØªØ¯ÙˆÛŒÙ†Ø§ÛŒ میل Ù¾ØªÛØºÙ„Ø·ÛŒ: Ø¨Ø±Ø§Û Ù…ÛØ±Ø¨Ø§Ù†ÛŒ ایک کارآمد برقی Ù¾ØªÛ Ø¯Ø§Ø®Ù„ کریں۔غلطی: Ø¨Ø±Ø§Û Ù…ÛØ±Ø¨Ø§Ù†ÛŒ Ù…Ø·Ù„ÙˆØ¨Û Ù…Ø¹Ù„ÙˆÙ…Ø§Øª لکھیں (نام، برقی پتÛ)۔نمایاںمزید معلومات Ú©Û’ لئےگیلریمسکنتصویرجواب دیجئےجواب دیجئےÛلکا%s :Ù…Ø§ÛØ§Ù†Û محÙوظ تحاریرمزیدنام→ نئے تبصرےاگلا »Ø§Ú¯Ù„ا »Ù†Ûیںکچھ Ù†Ûیںکچھ نھیں ملاانتخابات%s ØµÙØ­Û ØµÙØ­Ø§Øª:مستقل لنکدخیلےتحریریںکی ÙØ®Ø±ÛŒÛ پیشکش %sتشÛیرشائع کریںشائع کر دی Ú¯Ø¦ÛŒØ¯Ø±Ø¬Û Ø¨Ù†Ø¯ÛŒØ­Ø§Ù„ÛŒÛ ØªØ­Ø§Ø±ÛŒØ±Ø¬ÙˆØ§Ø¨Ù…Ø­Ùوظ کریںتلاشکے لئے تلاش Ú©Û’ نتائج %sدکھائیںردیارسال کریں۔عنوانعنوان:یو آر Ø§ÛŒÙ„Ù…ØªÙØ±Ù‚ØªØ§Ø²Û Ú©Ø±Ø¯ÛØ§Ø³Ù…‌ صارÙقدرویب‌سائٹ%s :Ø³Ø§Ù„Ø§Ù†Û Ù…Ø­Ùوظ ØªØ­Ø§Ø±ÛŒØ±ÛØ§ÚºØ§Ø³ ØµÙØ­Û’ پر جانے Ú©Û’ لیے آپ Ú©Û’ پاس مناسب اجازت Ù†Ûیں۔آپ Ú©ÛŒ رائے ماڈریشن کا انتظار کر رÛÛŒ Ûےمستردتدوینplugins/jetpack/languages/jetpack-my_MM.mo0000755000312500031250000004443112651056012021225 0ustar eacbforgeacbforgÞ•Í„ì @ ANUf| “ ž©ºÉÒãêîp |ƒ “ž¯ µÃÈ ÏÜåìÿ $19L U _5l ¢­´Ê àêý !4 Q]qx}Œ ’¬Æ*å5FO`py š¢¨ƒ¯38 =H N[a g uƒ —¥ª °½ Í Ø åò ø  )/8H]bgx Ž ›©¬¾ÍÜ áïFò9Vt{‰• ¥¯´ ¼ÉÙ ß êõ ý . 6@G N[_eƒ6¡Ø à  #* :GV%m“­¶»ÂÈàéñø \Io ¹ÃÉÐÖÝâè ì ú "+39 ?Ma7e3;Ñ$ 2LSXn ~&‹ì²Ÿ¾ ÔAõ"7)Z„7¢HÚ.# ,R ! ¡ €· 8!Q!kg!Ó"=ò" 0#(;# d#:q# ¬#¹#.Ï#þ# $+$©J$ô$-%5%FQ%$˜%7½%0õ%@&&<g&¤&VÄ&h'<„'<Á'þ'(H*(+s(Ÿ(+²(CÞ(")_A)¡)º)VÖ)-*RF* ™*•º*ªP+•û+˜‘,"*-:M-=ˆ-IÆ-R.'c.‹.ž.±.Ä.â0-õ0C#1g1:}1!¸1Ú19ê1-$2:R2-2 »2Å2NÕ2&$3$K3-p3+ž3Ê3!Ý3ÿ34.(4:W4-’4(À47é4@!5 b5 o5C|58À5$ù5$6C6B\6CŸ6Eã6()7"R7u7 x7‚7–†78%68\8*{8!¦8FÈ8Z9j9!†94¨94Ý9:4+:@`:$¡:Æ:ã:C;@F;$‡;0¬;Ý;0ü;1-< _<$i<Ž<<’<0”<[Å<!=(=>=:T==<Ÿ=OÜ=<,>\i>zÆ>wA?-¹?ç?÷?@L,@y@$•@º@(Ð@'ù@!A-1Aã_AìCB0CMC iC!ŠC¬C³C*ÒCýC"D'$D4LDD D6¹DðD EE "EH0EyE›E½+FÖéFwÀGN8H‡HH¹H&ÓHúHIQ¥chˆ±œ%SJ&d´I_w²‚U.£l—>x7kEP ¢»’¸8†¹®/o¼pÃWL ˜t3e|yYnb[³Z ÉH›¯g 2r§GXÀÁ<"ÌÊ-^(€„¶Ž!'V\)=A¿u0}zÈ$½ºž#Ç9ŠT¦,•*:v«C;@iŸ‘°¾{ÄqRF…Æ`–¤M ~4“D”¬1­µ5]aª©Os™šK¡ÍÅ ¨ ·‡m?‰ƒ+ŒÂ‹N6ËjBf%1$s at %2$s%s ago« Previous← Older Comments— Select —(no title)(required)% Replies1 ReplyActivateActivate AkismetActiveAddAdd or remove tagsAlbumAllApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatticBackground colorBlackBlog ArchivesBlueCancelCancel replyCategoryCenterCheatin’ uh?Choose from the most used tagsCloseColor SchemeCommentComment navigationCommentsConfigureContact InfoContinue reading →Crop ImageCustomCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisplay Header TextE-mailEditEdit Menu ItemEmailEmpty SpamError code: %sError in moving to Trash.Error in restoring from Trash.Error: please enter a valid email address.Error: please fill the required fields (name, email).FeaturedFeatured ContentFeatured ImagesFeedbackFor more information:Front pageGalleryGreenHeightHi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHideHomeIgnore allImageInsert VideoLabelLargeLast ModifiedLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLive PreviewLoading…Loading...M j, Y @ G:iMain SidebarMediaMedia FileMediumMenuMenu ItemMenu ManagementMenusMetadataMissed scheduleMonthly Archives: %sMoreNameNetwork SettingsNewer Comments →Next »Next » NoNo plugins found.No suggestionsNo tags found.NoneNothing FoundOKOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOrangeOrderPage %sPages:PathPermalink to %sPingback:PinkPluginsPost CommentPost navigationPostsPosts pagePress ThisPreviewPrimary MenuPrintPrivacyProudly powered by %sPublishPublishedPurpleRatingRecent PostsRedReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch PluginsSearch Results for: %sSemantic Personal Publishing PlatformSeparate tags with commasSettingsShowSilverSitesSkip to primary contentSort by:SubjectSubmitTag nameTagsTextThemesThis gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected. Enter the password to view any comments.ThumbnailTitleTitle:TrashTumblrTypeTypesURLUncategorizedUnpublishedUpload ImageUsernameValueView AllWebsiteWhiteY/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.Your comment is awaiting moderation.[%s] Joining confirmationcanceledithttp://wordpress.org/loading…nounCommentword count: words or characters?wordsPO-Revision-Date: 2015-08-21 12:56:32+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s ရက်နေ့ %2$s %s ကá€á€Šá€ºá€¸á€€« ရှေ့သို့← မှá€á€ºá€á€»á€€á€º အဟောင်းများ— ရွေးပါ —(á€á€±á€«á€„်းစဉ်မရှိ)(လိုအပ်သည်)á€á€¯á€¶á€·á€•ြန်မှုများ % á€á€¯á€¶á€·á€•ြန်ပြောဆိုမှု á á€á€¯á€…á€á€„် အလုပ်လုပ်ပါAkismet အသက်သွင်းရန်အသက်á€á€„်ပြီးထည့်ရန်စကားစုá€á€½á€²á€™á€»á€¬á€¸ ထပ်ပေါင်းထည့်ပါ (သို့) ဖယ်ရှားပါအယ်လ်ဘမ်အားလုံးá€á€±á€¬á€„်းပန်ပါသည်ዠသို့သော် á€á€±á€¬á€„်းဆိုသော မှá€á€ºá€á€™á€ºá€¸á€¡á€¬á€¸ ရှာမá€á€½á€±á€·á€•ါዠသက်ဆိုင်သော စာမူအား á€á€½á€±á€·á€”ိုင်ရန် ရှာဖွေá€á€¼á€„်းမှ အကူအညီရနိုင်ပါသည်á‹á€¡á€”ုပညာရှင်á€á€½á€²á€á€»á€­á€á€ºá€™á€¾á€¯ စာမျက်နှာAutomatticနောက်á€á€¶ အရောင်အနက်ဘလော့ဂ် မှá€á€ºá€á€™á€ºá€¸á€™á€»á€¬á€¸á€¡á€•ြာပယ်ဖျက်ပြန်စာ ပယ်ဖျက်ပါက​á€á€¹á€â€‹á€—ဟိုလူလည် မကျနဲ့လေ ! စာမူ စကားစုá€á€½á€²á€™á€»á€¬á€¸á€›á€¾á€­ အသုံးအများဆုံး စကားစုá€á€½á€²á€™á€»á€¬á€¸á€™á€¾ ရွေးပါပိá€á€ºá€•ါအရောင်á€á€½á€²á€…ပ်မှုမှá€á€ºâ€‹á€á€»á€€á€ºá€™á€¾á€á€ºá€á€»á€€á€º လမ်းကြောင်းများမှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€•ြင်ဆင် á€á€»á€­á€”်ညှိရန်ဆက်သွယ်ရန်လိပ်စာဆက်ဖá€á€ºá€™á€Šá€º →ရုပ်ပုံပိုင်းဖြá€á€ºá€›á€”်စိá€á€ºá€€á€¼á€­á€¯á€€á€º စိá€á€ºá€€á€¼á€­á€¯á€€á€º နယ်ပယ် ဖျက်ပြီးပြီá‹á€…ိá€á€ºá€€á€¼á€­á€¯á€€á€º နယ်ပယ် အသစ်ဖြည့်စွက်ပြီးá‹á€…ိá€á€ºá€€á€¼á€­á€¯á€€á€ºá€•ြုပြင်ရန်နေ့စဉ် မှá€á€ºá€á€™á€ºá€¸á€™á€»á€¬á€¸ - %sအ‌မှောင်နေ့စွဲအလုပ်လုပ်မှုရပ်ဆိုင်းပါá‹á€™á€°á€œ သá€á€ºá€™á€¾á€á€ºá€á€»á€€á€ºá€–ျက်ပါအပြီးá€á€­á€¯á€„် ဖျက်ဒါကို အပြီးá€á€­á€¯á€„်ဖျက်ပါá‹á€–ော်ပြá€á€»á€€á€ºá€á€±á€«á€„်းစီးပိုင်း စာသားကို ပြထားရန်အီးမေးလ်ပြုပြင်ပါမီနူး အမျိုးအမည်ကို ပြုပြင်ရန်အီးမေးလ်အနှောက်အယှက်များကို ရှင်းပါá‹á€¡á€™á€¾á€¬á€¸á€€á€¯á€’် - %sအမှိုက်ပုံးá€á€½á€„်းသို့ ရွှေ့စဉ် အမှားအယွင်းဖြစ်နေသည်á‹á€¡á€™á€¾á€­á€¯á€€á€ºá€•ုံးá€á€½á€„်းမှ နေရာá€á€€á€»á€•ြန်ထားစဉ် အမှားအယွင်းဖြစ်နေသည်á‹á€¡á€™á€¾á€¬á€¸á‹ á‹á€žá€„့်လျှော်မှန်ကန်သည့် E-mail လိပ်စာအား ဖြည့်ပါá‹á€¡á€™á€¾á€¬á€¸á‹ á‹á€œá€­á€¯á€¡á€•်á€á€»á€€á€º ကွက်လပ်များအား ဖြည့်ပါዠ(အမည်አE-mail)á‹á€¡á€‘ူး အစီအစဉ်ဦးစားပေး အကြောင်းအရာသရုပ်ဖော် ရုပ်ပုံများá€á€±á€–န်အကြံပြု ပြန်ကြားá€á€»á€€á€ºá€”ောက်ထပ် အá€á€»á€€á€ºá€¡á€œá€€á€ºá€™á€»á€¬á€¸á€¡á€á€½á€€á€º - ရှေ့စာမျက်နှာပြá€á€”်းအစိမ်းအမြင့်ဟိုင်းአ%2$s ရှိ '%1$s' á€á€½á€„် %3$s အဆင့်​ြ​ဖင့် á€á€„်ေ​ရာက် ေ​ဆာက်​ရွက်​ရန် သင့်​ကို ဖိá€á€ºá€€á€¼á€¬á€¸â€‹á€œá€­á€¯á€€á€ºâ€‹á€•ါ​သည်ዠသင့် သုံး​သူ​စာရင်း အေ​ကာင့်​ကို အသက်​သွင်း​ရန် ေ​အာက်​ပါ​á€á€»á€­á€á€ºá€†á€€á€ºâ€‹á€œá€­á€•်စာ​ကို က​လစ်​နှိပ်​ပါ : %4$sá€á€¾á€€á€ºá€•ါအဖွင့်စာမျက်နှာအားလုံးကို လှစ်လျူရှုပါရုပ်ပုံဗွီဒီယို ထည့်သွင်းပါနာမည်á€á€¶á€†á€­á€•်အကြီးနောက်ဆုံးပြုပြင်မှုပြန်စာထားá€á€²á€·á€•ါዠ%s ကိုပြန်စာထားá€á€²á€·á€•ါá‹á€•ြန်စာထားá€á€²á€·á€•ါá‹á€˜á€šá€ºá€¡á€œá€„်းá€á€­á€¯á€€á€ºá€›á€­á€¯á€€á€ºã€€á€¡á€…မ်းကြည့်á€á€¼á€„်းဖွင့်နေသည်…ဖွင့်​နေသည်...jአMአY နေ့ G:i အá€á€»á€­á€”်အဓိက ဘေးဘားá€á€”်းမီဒီယာမီဒီယာဖိုင်အလယ်အလá€á€ºá€™á€®á€”ူးမီနူး အမျိုးအမည်မီနူး စီမံá€á€”့်á€á€½á€²á€™á€¾á€¯á€™á€®á€”ူးစာရင်းများမီá€á€¬ အá€á€»á€€á€ºá€¡á€œá€€á€ºá€œá€½á€á€ºá€žá€½á€¬á€¸á€žá€±á€¬ အစီအစဉ်လ အလိုက် မှá€á€ºá€á€™á€ºá€¸á€™á€»á€¬á€¸ - %sဆက်áအမည်ကွန်ယက် သá€á€ºá€™á€¾á€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€™á€¾á€á€ºá€á€»á€€á€º အသစ်များ →နောက်သို့ »á€”ောက်သို့ »á€™á€œá€¯á€•်ပါá‹á€•လပ်အင်များကိုမá€á€½á€±á€·á€•ါá‹á€¡á€€á€¼á€¶á€•ြုá€á€»á€€á€ºá€™á€»á€¬á€¸ မရှိပါá‹á€…ကားစုá€á€½á€²á€™á€»á€¬á€¸á€›á€¾á€¬á€™á€á€½á€±á€·á€•ါá€á€…်á€á€¯á€™á€»á€¾ မရွေးဘာမှ မá€á€½á€±á€·á€•ါOKno-subsetoffလိပ်စာကို ဖန်သားပြင်ပြá€á€„်း/á€á€œá€¯á€•်ပြား အသစ်á€á€½á€„်ဖွင့်ပါလိမ္မော်အစီအစဉ် အမှá€á€ºá€…ာမျက်နှာ %sစာမျက်နှာများ - လမ်းကြောင်း%s သို့ အမြဲá€á€»á€­á€á€ºá€†á€€á€ºá€œá€­á€•်စာá€á€»á€­á€á€ºá€†á€€á€ºá€™á€¾á€¯á€•ြန်လှန်အသိပေးá€á€»á€€á€º - ပန်းရောင်ပလပ်အင်များမှá€á€ºá€á€»á€€á€º ပေးပို့ပါစာမူ လမ်းကြောင်းပြစာမူများစာမူများ စာမျက်နှာဒါကို ပုံနှိပ်ဖော်ပြပါကြိုကြည့်ရန်အဓိက မီနူးပုံနှိပ်ပါကိုယ်ပိုင် လွá€á€ºá€œá€•်á€á€½á€„့်%s မှ ကူညီပံ့ပိုးထားသည်á‹á€‘ုá€á€ºá€á€±á€–ော်ပြထုá€á€ºá€á€±á€–ော်ပြပြီးမရမ်းရောင်အဆင့်သá€á€ºá€™á€¾á€á€ºá€á€»á€€á€ºá€œá€á€ºá€â€Œá€œá€±á€¬ စာမူများအနီပြန်စာရေးပါዠပြန်လည်ထားသိုပါá‹á€¡á€™á€¾á€­á€¯á€€á€ºá€•ုံးထဲမှ ဒါကိုပြန်ထားပါá‹á€Šá€¬á€žá€­á€™á€ºá€¸á€•ါသိမ်းပါအစီအစဉ် á€á€»á€™á€¾á€á€ºá€‘ားသောရှာပါမှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€¡á€¬á€¸á€›á€¾á€¬á€•ါမီဒီယာဆိုင်ရာများကို ရှာပါá‹á€•လပ်အင်များကိုရှာပါá‹%s အá€á€½á€€á€º ရှာဖွေá€á€½á€±á€·á€›á€¾á€­á€™á€¾á€¯ ရလဒ်များSemantic ပုဂ္ဂလိက ပုံနှိပ်ဖြန့်á€á€»á€­á€›á€±á€¸ ပလက်ဖောင်းကော်မာဖြင့် စကားစုá€á€½á€²á€™á€»á€¬á€¸á€€á€­á€¯ á€á€½á€²á€á€¼á€¬á€¸á€•ေးပါသá€á€ºá€™á€¾á€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€•ြပါá‹á€„ွေရောင်ဆိုဒ်များအဓိက အကြောင်းအရာသို့သွားပါစီစဉ်ရန် - အ‌ကြောင်းအရာပို့ပါá‹á€…ကားစုá€á€½á€² အမည်စကားစုá€á€½á€²á€™á€»á€¬á€¸á€…ာသားအá€á€„်းအကျင်းများဒီပြá€á€”်းá€á€½á€„် ဓါá€á€ºá€•ုံ %2$s ပုံ ပါá€á€„်သည်á‹á€’ီပြá€á€”်းá€á€½á€„် ဓါá€á€ºá€•ုံ %2$s ပုံ ပါá€á€„်သည်á‹á€’ီစာမူကို စကားá€á€¾á€€á€ºá€–ြင့် ပိá€á€ºá€‘ားသည်ዠမှá€á€ºá€á€»á€€á€ºá€™á€»á€¬á€¸á€€á€­á€¯ ကြည့်ရန် စကားá€á€¾á€€á€ºá€–ြည့်သွင်းပါá‹á€œá€€á€ºá€™á€¡á€›á€½á€šá€º á€á€±á€«á€„်းစဉ်á€á€±á€«á€„်းစဉ်ዠ:အမှိုက်ပုံးTumblrအမျိုးအစားအမျိုးအစားများURLကá€á€¹á€ á€á€½á€²á€™á€‘ားမဖော်ပြရသေးပါရုပ်ပုံ​ ပို့á€á€„်ပါသုံးသူအမည်á€á€”်​ဖိုးအားလုံးကိုကြည့်မည်á€á€€á€ºá€˜á€ºá€†á€­á€¯á€’်အဖြူY/m/dY/m/d g:i:s Aနှစ်အလိုက် မှá€á€ºá€á€™á€ºá€¸á€™á€»á€¬á€¸ - %sလုပ်ပါá‹á€’ါကို အမှိုက်ပုံးအပြင်သို့ပို့ရန် သင့်အားá€á€½á€„့်မပြုပါá‹á€¤á€¡á€™á€»á€­á€¯á€¸á€¡á€™á€Šá€ºá€€á€­á€¯ အမှိုက်ပုံးအá€á€½á€„်းသို့ ရွှေ့ရန် သင့်ကိုá€á€½á€„့်မပြုပါá‹á€¤ စာမျက်နှာကို ဖွင့်လှစ်အသုံးပြုရန် သင့်á€á€±á€¬á€ºá€žá€±á€¬á€á€½á€„့်ပြုá€á€»á€€á€º သင့်မှာမရှိပါá‹á€žá€„့်မှá€á€ºá€á€»á€€á€ºá€¡á€¬á€¸ စစ်ဆေးမှုကို စောင့်နေသည်á‹[%s] အဖွဲ့á€á€„်á€á€¼á€„်း အá€á€Šá€ºá€•ြုá€á€»á€€á€ºá€•ယ်ဖျက်ပြုပြင်ပါhttp://mya.wordpress.org/ဖွင့်နေသည်…မှá€á€ºá€á€»á€€á€ºwordsplugins/jetpack/languages/jetpack-ckb.mo0000755000312500031250000026232412651056012020751 0ustar eacbforgeacbforgÞ•ŸÕ :`MaMtM„M-¢M;ÐM N N7&N ^N kNyN‚NH‰NÒNéN&O)ODO^OmO!sO•O«OÃOÊOÛOñO P PCPbP1qP0£PÔPåPxôPpmQ+ÞQ# R-.R4\R‘R  RÁRÓRÜRãRçRøRSS'S7SKS `SmS†S–SC¨SìSÿST['TƒTœT5£T ÙTãTçTüT U U,U=UPU bU lU(zU£U1ÃUõUVB"VZeV*ÀVëV6Wp:W «Wf¸WCXcX sX~X‘X¤XÂXÕXSæX:Y @YNY kYuYŒY‘YÚ¥Y€Z ŸZ¬Z°ZÆZÍZ(äZ [ [![*[3[<[MC[‘[ [³[ ¼[Ý[ü[ \\#$\H\h\w\‘\¬\È\á\ú\]-]F] L]Y]l]t]‹]¥]¶]!¿] á] ë]ø]"^ #^.^iG^ ±^»^ Ø^æ^ __ _5-_c_;s_¯_Ã_ Ê_Õ_ë_``&` <` J`T`Y`l`{`€` …``–`Gž`qæ`Xahaoa‚a Ÿa«a¾a Ôaßaýa+b1bEFb/Œb$¼b3áb c56c lc(xc/¡cDÑcSdjd8†d*¿dêd#ód&eC>e‚e  eªeÀe<Çef ff!f 6fCfTfffxfŠfžf ¤f$²f×féfýf gg,glClëWlÞCm "n.n 3n?n Hn6Rn^‰n èn ónoo#o)o :oGo^o vo o Œo—o §o ³o ¾oËoÓo$Üo p…p{”p qq5qEq]qnqt„qBùq€-€!Ë€Kí€9Vt)ˆ²ºÁÇÏÖÛë ú‚ ‚‚C#‚5g‚+‚CÉ‚Q ƒ%_ƒ+…ƒ ±ƒ$Òƒ÷ƒ%„7„V„>s„²„Ï„ׄÞ„æ„õ„ … …"%… H…/S… ƒ… Ž…›…¡… ²… ½… Ë…Ö…3Þ…† †%†+† 3†A† I† U† b† o†0}†®†C½†‡+‡>‡G‡ ]‡\g‡ć ؇㇠ë‡õ‡7ü‡<4ˆqˆ…ˆ ‹ˆ™ˆ  ˆ­ˆ±ˆI¸ˆ‰‰&‰ .‰ <‰J‰ Y‰6g‰ž‰ ¶‰‰ ȉÒ‰ð‰6ŠEŠ MŠnŠwŠ}Š ‚ŠŠ ŸŠÀŠÓŠ㊠öŠ‹‹‹*‹<‹ L‹Y‹q‹ƒ‹’‹¦‹»‹Ë‹â‹ö‹@ŒFŒ9bŒ%œŒ Œ͌ãŒ+ÿŒ+ E(R/{;«çð ŽŽ !Ž-Ž 4Ž@ŽHŽXŽ iŽ-uŽ £Ž ±Ž»ŽÀŽÓŽ âŽíŽ 8"<[˜ ¨ ´"¾á÷ d&‹.‘'À èö ý ‘ ‘‘ %‘/‘ 5‘A‘I‘N‘U‘s‘’‘f­‘K’2`’“’-­’Û’ä’Ié’3“<“ Q“ ^“k“q“x“Š“’“ ™“§“ ¼“Ɠؓ蓔”$”-”<”A”Z” k”w”Š”Ÿ”¤” ·” Á” ˔Ք!Þ”••,•"J•m•ƒ•A£•8å•,–2K–y~–„ø–‘}—?˜O˜ _˜Bl˜L¯˜ªü˜>§™Yæ™%@š\fšÚ ÞšIÿš@I›^Š›#é›M œ [œ eœrœxœ~œŽœ”œ\›œøœU eoe… ë øžž!ž7žMž Tž`ž sžž‰žšžŸž¥ž¨žD¬žEñžH7Ÿ €ŸŽŸ¢Ÿ ÁŸ ÍŸ ÙŸçŸþŸ %  -  : G  V )c  ‘¨ ::¡Hu¡H¾¡¢$¢-¢ 3¢>¢S¢e¢z¢ ‰¢•¢ §¢²¢Å¢΢ç¢ö¢ £ £)£";£^£-o££d·£:¤W¤/]¤ ¤4˜¤ͤ&Þ¤&¥P,¥}¥'…¥ ­¥Î¥Ná¥0¦ 6¦JA¦ Œ¦𦠭¦¹¦À¦à¦ø¦§j)§”§§§ ­§»§ϧß§(ã§( ¨75¨3m¨+¡¨@ͨ6©;E©2©!´©3Ö©Z ªJeªî°ªQŸ«7ñ«)¬ <¬ ]¬4g¬6œ¬$Ó¬ø¬­%2­]X­;¶­?ò­!2®T®n®†® ® ˜®¢®¦® «®wµ®-¯5¯G¯]¯o¯ u¯Q‚¯Ô¯æ¯õ¯°°)°<°L°`°o°° °°¬° ½° ˰ Ù°ä°±&±î.±²:²W² k² u²€²’²¤² ¿²̲ ಠì²vú²q³†³,Ÿ³#̳*ð³´-´63´j´ˆ´¥´¬´"¿´ â´µµ+µ@µR[µT®µ¶¶x3¶ƒ¬¶00·;a·Q·@ï·0¸.O¸~¸›¸ ®¸¹¸&ȸ"ï¸#¹46¹$k¹.¹+¿¹ë¹6º"=º0`º€‘º*»1=»(o»é˜»8‚¼»¼Cʼ½ *½35½&i½&½·½(Ó½0ü½(-¾V¾$t¾P™¾Gê¾Z2¿O¿Ý¿cú¿Å^ÀH$Á mÁ[ŽÁêÁð¾Ã{ÇÃCÄ[Ä&pÄ1—Ä@ÉÄ" Å-ÅÊKÅÆÆ)=ÆgÆ:|Æ·Æ¾Æ¤ÛÆ@€ÈÁÈÙÈ-ÝÈ É3ÉNLÉ›É'¶É ÞÉìÉ ûÉʹÊ%ÖÊüÊËY#ËN}ËÌËÝË#öË_ÌBzÌ%½Ì>ãÌC"ÍCfÍ>ªÍ=éÍA'Î<iÎ2¦Î ÙÎæÎÏ Ï@'Ï<hÏ!¥ÏÇÏ4ßÏ Ð!Ð1ÐT@ЕÐ;±ÐÃíÐ ±Ñ4¾Ñ óÑAÒVÒ'rÒ.šÒ@ÉÒ Ó'Ó4µÓ êÓ÷ÓÔ!0ÔRÔ'qÔ-™ÔÇÔÛÔìÔûÔÕ 7ÕBÕRÕjÕpÕƒÕ›Õ¹ÕÑÕ!æÕ2Ö ;ÖGÖ=gÖ¥Ö;¶ÖòÖJ×%Nׯt×R$Ø3wØi«Ø;Ù1QÙƒÙ?ŸÙQßÙ§1ÚªÙÚ-„Ûl²Û4Ü TÜ'aÜA‰Ü–ËÜFbÝ©Ý9ºÝ"ôÝÞ—Þ«Þ)ÀÞ<êÞ"'ß+Jß+vß3¢ß.Öß2à8àVàlvà,ãà)á':á$bá9‡áÁá5áá-âUE⃛â)ã7Iã´ã6äRä>häJ§ä:òä -åH7åt€åZõåŠPæ Ûæéæ òæýæ(ç>ç&Gçnç/ŠçºçØçëçè)è Iè@Vè—è«èÉè&æè% é13éeé…é¤é Àé Êé×ébÜé?êWêjêqêê!©êËêÔê'ôê ë*ë ;ëGë^ë#q뙕ë«/í Ûî çîôîï&ï\>ïÈ›ï)dð"Žð'±ð%Ùðÿðñ#ñ&8ñ,_ñŒñ ñ´ñ&Îñõñò#ò@òPòV_ò¶òîÐòÚ¿óšô'ºôâô#õ&õ@õ­Zõ}öF†öÍö!Õö0÷ö)(÷,R÷/÷@¯÷ð÷ øI%ø8oø<¨øXåø‘>ùeÐù6úJú Pú \úiú pú}ú–ú¯úÂúÕú Þúéú*û,ûBûXû#tû˜û ´û$¾ûãûêûóûü'ü,?ülü‡üQ–üPèü9ýLJý—ýe ý,þ†3þ#ºþ,Þþ$ ÿ0ÿ,Aÿ@nÿ ¯ÿ¼ÿoÚÿTJ;Ÿ4Û_p&• ¼Ç$Ý031OŠ ¯#À+ä%( NZk €–­Â ß!ê  *5“OEã<)$f0‹¼ÏÖÝ'÷)9)c0Ÿ Ðñ .< L X0d.•DÄ. D8}8“AÌ. 3= q (Ž /· :ç " ) F c  [ž Qú  L Y ` g 6j ¡ #ª Î è   - ¶= Pô @E ˆ†  H9cG å &2 H!Vx’ ¢ ¯¹EËo8Šº’E4Ø_ -m9›!ÕV÷:NB‰rÌK?‹ª ±'¾*æ4/2d—M¬ú"='V~œ#®ÒuãY`z‰› ­¸ÔðI %jO#àGL@]ž¼µ)rœ´#ÑõÌühÉ2 LWr¯¸>¿8þ17i!x!š.¼ëF&NuˆŸ°²´¶KÔ 6?F^'¥LÍ1 +L 0x 5©  ß  !-!26%D6(j6k“6Hÿ6/H76x7ʯ7äz8_9Ug:½:Ó:uã:’Y; ì;¨ö<Ÿ=?°=•ð=+†>A²>Êô>a¿?·!@;Ù@hA%~A¤A³AÂAÊAçA÷AªB ³B£ÔB#xC8œCÄÕC!šD¼DÅD$ãD-E56ElEsE'EµEÌEÔEðE÷E FF{F“F›G±G$ÍGNòGAH^H sH9”H(ÎH(÷H I5I!OI'qI™I^³I1J+DJpK‰KšKN«K#úKL %L#0L9TL,ŽL»LÚL+ôL M%+MQM'pM˜M6µMìMN%!NZGN(¢NËNEàN‚&O|©O&P€8P¹PpÊP;QMWQc¥Q RÌR4ÜR<SNSƒjSîSõST T4TPT aT1mT(ŸTBÈT UÉ(UòUV V#VCV _VGkVO³VbWwfW:ÞWoXƒ‰XZ YnhY3×YS Zy_Z§ÙZw[’ù\lŒ]ù]@^O^uX^GÎ^>_<U_*’_F½_˜`e`iaRma9Àa úab"b ;bHbObcbbcc0c FcPc Ycfc2uc ¨cµc¾cÅc ÎcØc ßc êcõc üc d!d;dwdd¥d ºdÅdFd;-<ï}˜<‚} ó' âìøt[lî³ëWow©Øñ“F5‚Š\éŒ0†kZ\Ó>•ꃽp-yDΈ"E*ŽÀέHæA¥„Zx ^¹v.ˆ±PÉg µËŽ—|ÿ%)×mY8™¤ùc„Jíÿ;ö Èòþ~"S*žzRÄ¡ØSÍOô½Þe„$†CKð G Ä16Ó€[º'›s=Lœ“N[âðj=‰@u:°Bäk’™zA”Ì õ7‚Ýl(ÜЦèä ÜìÏ´’‡WcI|ý#6ëi˜éQ&‰”V·¶‹aUAѪMNñÇ6‡8ú·œDÃ?N©fÓ*^P §Ê‚2× ÚUUe:hÅ>¬M Ïа»&ÍG347Âþ0ž2š`Ç&…ó$?E•ñ‘úKõ +oYXÂr²Ôsxã {ˆ‰!r†T\÷ì⛹ל?é,µæ³ÂdÀqH)¾Ë 7íü)»g\WÙO…/bi%@~XG‘ý|˜€‹&·‰–­£¢Ÿ51yðÌkÛ¿7IjåöbªƒHsݾ![n].¯àT±o9‹jßæ=t´ES ƸàÞ9X3ôç±oäÔå,š]–)OMù¦ û/¹`Q¢wCŸÈs ¼f<š½cQªJPSŸA;ú•ÌÀ“,1ƒ ?_Š uҗɺf(>XͺÙ/²`ášÒwÆ15ÜLVÛ›ËÁLJß÷ï0îÖᨋq…ø©4”­®ORn‡¿K–4ˆýva6ápÅ/þê—Ш.vùí#3ždŸu}g‘û%Á{›(~ôè}ÎN8Õk³G$ !§’+¬ÉÃ4tŒ¥iõi¢alveCÃLÚ¿¬€2hFà¾Ö«:¨¤h'bnCz®òq<@“_Ê’+ ,RIãD÷QŒÖrgW¯l _¡Ác"FVÙ™*ç.µŽY ï e¥'«hfÏ£Œ¸^Å`¶üV¶0K-«¦nTŽ»¡;¼ûÊ8"j|]5–xzü~b•(—@œ{qã†t-¤PaBò ®ƒdŠmžp²Ämru‘w{ØøÆÈ+:B°£p=…˜%î§!ÑD3MëBÞ$™ÒóLÔx_yE¯¸´ >„R2å9ZTç#ÕÕÝ#Ûßÿ€y”è^êUHÚ]JÐmIÑYJ9Z¼ö# of Tweets Shown:%1$s %2$s Views%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature namesDeactivate %l%s (Jetpack)%s (Required)%s Error%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is not a valid command.%s is not a valid module.%s is required%s px%s requires a valid email address%s was not activated.%s was not deactivated.%s: %s« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s404 error pageClick here to refresh this list.Learn more about these options.% Replies1 Reply%4$s« Back to Gallery« Older%d bloggers like this:Module settings were saved. Your Jetpack is already connected. A known issue.A problem with your XMLRPC file.A theme conflict.ActivateActiveAddAdd Contact FormAdd Many ItemsAdd NewAdd New Menu Item LabelAdd New ProjectAdd New Project TagAdd New Project TypeAdd One ItemAdd These New Menu ItemsAdd a new fieldAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd-onAdditionally you can define your own custom services.Admin barAllAll Menu Item LabelsAll Project TagsAll Project TypesAll ProjectsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlternate text:An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.An incompatible plugin.An unknown error has occurred. Please try again later.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to exit the form editor without saving? Any changes you have made will be lost.Are you sure you want to stop Publicizing posts to this connection?Attachment PageAutomatticAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.BlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:Blog follow email textBlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryButton styleCSSCSS Stylesheet EditorCameraCan I add more fields?Can I view my feedback within WordPress?CancelCancel replyCaption:CarouselCategoryCenterChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?CheckboxChoose from the most used LabelsChoose from the most used tagsCirclesClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseColor SchemeComing soon…CommentComment cache problem?Comment follow email textCommenting as %sCommentsComments on this post are closed.ConfigureConfigure %sConnectConnect and share your posts on %sConnect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnected as:Connected to WordPress.comContact FormContact Form URL:Contact InfoContinue reading →Convert to PostCount the page views of registered users who are logged in.Create Share ButtonCustomCustom CSSCustom CSS StylesheetCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomizeDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDebugDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisable CSS and JSDisable Post By EmailDisconnectDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice.Display a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display higher quality video by default.Display images in full-size carousel slideshow.Display share menu and allow viewers to embed or download this videoDisplays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do I need to fill this out?Do not allow other users to access my VideoPress libraryDo you still have the %s plugin installed?DownloadDownload: %s
        Drag and drop available services here.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downDrop images to uploadE-mailEach of these widgets has a number of customization options.EditEdit CSSEdit Menu ItemEdit Menu Item LabelEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit Your ProfileEdit this new fieldEmailEmail AddressEmail check failed, please try againEmail me wheneverEmail notificationsEmail settingsEmpty SpamEnable Post By EmailEnable carouselEnabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExcerptsExplain...Export feedback as CSVFacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback(s) marked as spamField typeFirst optionFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFood MenusFor more information:Form builderFormat:FreeFromFront Page, Archive Pages, and Search ResultsFront pageGalleryGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:HideHomeHow does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIcon + textIcon URLIcon onlyIf empty, we will attempt to determine the image size.If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Images:InactiveInclude this CSS in the Mobile ThemeInsert VideoIntroduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid idInvalid or expired nonce.Invalid requestInvalid security token.Invalid usernameIs this site private?It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.Items on your restaurant's menuJetpackJetpack CommentsJetpack Comments ScreenshotJetpack FAQJetpack Plugin VersionJetpack Single Sign OnJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is not currently connected to WordPress.comJetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Join %s other subscriberJoin %s other subscribersJump to:LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes and SharesLink Color (hex):Link To:Link URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading Comments...Loading video...Loading...Location of the Ogg video file.Log in with WordPress.comM j, Y @ G:iMain SidebarMake this connection available to all users of this blog?Manage your Publicize settings.Mark this message as NOT spamMark this message as spamMaximum number of posts to show (no more than 10):MediaMedia FileMediumMenuMenu ItemMenu Item LabelMenu Item LabelsMenu ItemsMenu Items re-ordered.MessageMessage SentMessagesMetadataMissed scheduleMobile AppsMobile ThemeMobile-compatible:Mode:Module TagAppearanceModule TagDevelopersModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagSocialModule TagWordPress.com StatsModule TagWritingMonthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Publicize.Move menu section downMove menu section upMy TweetsNameNewNew Menu ItemNew Menu Item Label NameNew ProjectNew Project Tag NameNew Project Type NameNew fieldNewer »Newer Comments →NewestNext »Next » NoNo BordersNo FooterNo HeaderNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo comment text was submitted.No feedback foundNo plugins found.No suggestionsNo tags found.No themes found.No writing errors were found.NoneNot ConnectedNot connectedNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.Noun, as in: "The author of this post is..."AuthorNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNova label separator, Number of Posts to Display:OKOfficial buttonsOgg File URLOlder postsOmnisearchOn for all postsOnce enabled, a "Log in with WordPress.com" option will be added to your existing log in form.One New Jetpack Module%s New Jetpack ModulesOnly images can be uploaded here.Only videos from the selected blog will be available in your media library.Open Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderPage %sPages:PathPermalink to %sPersonal LinksPingback:PinkPinterestPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please describe the problem you are having.Please enable JavaScript support in your browser to use VideoPress.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please select a video file to upload.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please verify your birthday.PluginsPocketPopularPopular LabelsPopular Project TagsPost CommentPost by EmailPost converted.%s posts convertedPost type:Post was not sent - check your email addresses!Posted by Posted in %sPostsPosts & CommentsPosts pagePreprocessor:Press ThisPreviewPreview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject published. View projectProject saved.Project submitted. Preview projectProject updated.Project updated. View itemProjectsProudly powered by %sPublicizePublicize allows you to share your posts on Facebook, Twitter, Tumblr, Yahoo!, and Linkedin.Publicize to my %s:Publicize:PublishPublishedPurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RadioRandom Order:RatingRecent PostsRedRedditRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersRelatedRelated PostsRelated postsRemove ServiceRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:RightSaveSave ChangesSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll back to topSearchSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu Item LabelsSearch Menu ItemsSearch PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch resultsSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShortcodeShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow StreamShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow buttons onShow likes.Show moreShow profile photos in the plugin.Show sharing buttons.Show top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSite NameSite StatsSitesSlideshowSmallSmiley faceSnippetSnowSocialSomeone likes one of my postsSomething has gotten mixed up!Something is being cranky!Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStyle:Stylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSupportTag nameTagged with %sTagsTake WordPress with you.Terms of ServiceTestimonialTestimonial saved.Testimonial updated.TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.The Image Widget The Jetpack Version is %sThe Plugin is already active.The Plugin is already deactivated.The RSS Links Widget The WordPress.com blog_id is %dThe authorization process expired. Please go back and try again.The default content width for the %s theme is %d pixels.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The preview is unavailable while this video is being processed.Theme is empty.Theme: %1$s.There are no posts to display. Want more traffic?There was a problem connecting with Publicize. Please try again in a moment.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This gallery contains %2$s photo.This gallery contains %2$s photos.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.This video requires Adobe Flash for playback.ThumbnailTiled MosaicTilesTime:Timeline Theme:TitleTitle:To configure your sharing settings, go to the Settings → Sharing menu.To infinity and beyondTo use Post By Email, you need to link your %s account to your WordPress.com account.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparentTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter TimelineTypeTypesUPURLUnable to create your Post By Email address. Please try again later.Unable to disable your Post By Email address. Please try again later.Unable to regenerate your Post By Email address. Please try again later.UncategorizedUnlink This AccountUnlink user from WordPress.comUnpublishedUnsubscribeUntitled PostUpdate Menu Item LabelUpdate Project TagUpdate Project TypeUpdatedUpload ImageUpload VideoUpload a VideoUploading...Use Google Analytics with Infinite ScrollUse a valid email address.Use the form below to upload a video to your VideoPress Library. The following video formats are supported: %s. Maximum upload file size is %d%s.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUser linked to WordPress.comUsernameValueVaultPressVaultPress dashboardVerified ServicesVideo Library AccessVideo Preview:Video on %sVideo post by %s.VideoPressVideoPress LibraryView AllView Full Profile →View Menu ItemView Menu Item LabelView Mobile SiteView ProjectView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView people's profiles when you mouse over their GravatarsView:Views over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.WP.me ShortlinksWe cannot display posts for this blog.We cannot load blog data at this time.We were unable to get your stats just now. Please reload this page to try again.WebsiteWelcome to Jetpack %s!What should the subject line be?What's a Gravatar?When you write great content, all you really want is people to find it, right?WhiteWidget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Widgets ScreenshotWidth (px):Width:With 1 commentWith %s commentsWordPress.com Likes areWordPress.com Single Sign OnWordPress.com StatsWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Write a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYesYou are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou can add the following variables to your service sharing URL:You cannot disconnect, without having first connected.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou must log in to post a comment.You must be logged in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to select what to show in this Gravatar Profile widget.You will no longer receive email updates about Jetpack.Your Email AddressYour Jetpack setup looks a-okay!Your NameYour Site Stats work better with Javascript enabled.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour video has successfully been uploaded. It will appear in your VideoPress Library shortly.Your video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedas sharing sourceEmailcancelclick hereconfiguredayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/locales%1$s/%2$smonthnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:search everythingshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 # تویت نیشاندرا:%1$s %2$s سەیرکراوە%1$s سایدبار%1$s %2$s%1$s: %2$s%1$s له‌ %2$s%1$s له‌ %2$sناچالاکی بکە %l%s (Jetpack)%s (پێویستە)%s Ù‡Û•ÚµÛ•%s پێشتر%s نەتوانرا پەیوەندییەکە بپچڕێنرێت. دڵنیایت ئێستا پەیوەندی هەیە؟%s چالاککرا.%s ناچالاککرا.%s بە سەرکەوتووی پچڕێنرا.%s Ùەرمانێکی هەڵەیە.%s مۆدیولەکە دروست نییە.%s پێویستە%s px%s پێویستی بە ئیمەیڵێکی دروستە%s چالاک نەکراوە.%s ناچالاک نەکرا%s: %sپێشوو «← سەرنجە کۆنەکان— هەڵبژێرە —(بێ سه‌ردێڕ)(پێویستە)%1$s لەسەر %2$sÙ¾Û•Ú•Û•ÛŒ Ù‡Û•ÚµÛ• ٤٠٤کلیک لێرە بکە تا لیستەکە نوێ بێتەوە.زیاتر بزانە دەربارەی ئەم هەڵبژاردنە.% وەڵامەکان1 وەڵام%4$s« گەڕانەوە بۆ گالەری« کۆنتر%d هاوشێوەی ئەم بلۆگەرانە:ڕێکخستنەکانی مۆدیول پاشەکەوتکران. جیتپاکەکەت بەستراوەتەوە. هەڵەیەکی زانراو.کێشەیەک هەیە Ù„Û• ÙØ§ÛŒÙ„ÛŒ XMLRPCپێکدادانی بەرگ.چالاکكردنچالاکزۆرکردنÙÛ†Ú•Ù…ÛŒ پەیوەندی دابنێچەند دانەیەک دابنێیەکێکی نوێ زیاد بکەپێناسەیەک بۆ دانەی مێنیو بکەپڕۆژەیەکی نوێ دابنێتاگێکی نوێ دابنێ بۆ پڕۆژەجۆرێکی نوێی Ù¾Ú•Û†Ú˜Û• دابنێیەک دانە دابنێئەم دانە نوێیانەی مێنیو دابنێخانەیەکی نوێ دابنێخزمەتگوزارییەکی نوێ دابنێÙۆرمێکی بەشداربوون دابنێ تا Ú•ÛŽÚ¯Û• بدەیت بە خەڵک ئاگاین Ù„Û• بلۆگەکەت بێت.هەڵبژاردەیەکی تر دابنێپێناسە زیادبکە یان بیسڕەوەتاگ زیاد بکە یان لاببەدوگمەکانی بڵاوکردنەوە دابنێ Ù„Û• ناو بلۆگەکەتدا ÙˆÛ• Ú•ÛŽÚ¯Û• بدە بە سەردانکەرانی بلۆگەکەت بابەتەکانت بڵاو بکەنەوە Ù„Û•Ú¯Û•Úµ هاوڕێکانیان.ئەم ÙØ¤Ø±Ù…Û• بخە ناو بابەتەکەمەوەسەرخراوئەشتوانی خۆت خزمەتگوزاری تر دابنێیت.باڕی بەڕێوەبەرهەمووپێانسی هەموو دانەکانی مێنیوهەموو تاگەکانی پڕۆژەهەموو جۆرەکانی پڕۆژەهەموو پڕۆژەکانپەڕەی هەموو نوسەرەکانپەڕەی هەموو کاتەگۆرییەکانئەرشیڤی هەموو ڕۆژەکانهەموو بابەتەکانپەرەی هەموو تاگەکانرێ بدە بە بەکارهێنەران دەستکاری ڤیۆکان بکەنڕی بدە بە بەکارهێنەران ڤیدیۆکانم ببیننڕیگە بدە بتوانن دەستکاری ڤیدیۆ بکەن یان بیسڕنەوە.Ú•ÛŽÚ¯Û• بدە بە بەکارهێنەران ڤیدیۆ بەرزبکەنەوەنوسینی جێگرەوە:دەبێت بەڕێوەبەری ئەم بلۆگە پەیوەندی جێتپاک دروستبکات.هەڵەیەک ڕویدا Ù„Û• کاتی دروستکردنی خزمەتگوزارییە نوێیەکەدا - تکایە سەیربکەرەوە بزانە زانیاری تەواوت بەخشیوە.هەڵەیەک ڕویدا. تکایە دواتر هەوڵبدەرەوە.پێوەکراوێکی Ù‡Û•ÚµÛ•.هەڵەیەکی نەناسراو ڕویدا. تکایە دواتر هەوڵبدەرەوە.ببوره‌ ،به‌ڵام هیچ ئه‌نجامێك نه‌دۆزرایه‌وه‌ بۆ ئه‌رشیÙÛŒ داواكراو. له‌وانه‌یه‌ گه‌ڕان یارمه‌تیت بدا بۆ دۆزینه‌وه‌ی بابه‌تی هاوشێوه‌.Ù¾Û•Ú•Û•ÛŒ ئەرشیڤدڵنیایت ئەتەوێت ÙÛ†Ú•Ù…Û• پڕکراوەکەت دابخەیتەوە بێ پاشەکەوتکردن؟ هەر گۆڕانکارییەکت کردووە لەدەستی دەدەیت.دڵنیایت ئەتەوێت بڵاوکردنەوەی بابەتەکانت ڕاگریت بۆ ئەم پەیوەندییە؟پەڕەی هاوپێچئۆتۆماتیکیمۆدیولە بەردەستەکان:خزمەتگوزارییە بەردەستەکانلینکە کورتە بەردەستەکان ئەمانەن: %l.بگەڕێوە سەرەوە ↑Ú•Û•Ù†Ú¯ÛŒ باکگراونددڵنیابەرەوە Ù„Û• کلیک کردنی "نوێکردنەوەی Ù¾Ø±Û†ÙØ§ÛŒÙ„" Ù„Û• خوارەوەی شاشەکەدا بۆ ئەوەی گۆڕانکارییەکانت پاشەکەوت بکەیت.ڕەشئەرشیÙەکانى بلاگبەشداربوونی بلۆگ (Jetpack)لینکی بلۆگ:نوسینی دواکەوتنی بلۆگ بە ئیمەیڵشینڕەنگی سنوور (hex):توانا Ùˆ بەهێزی مالپەری وۆردپرێس بهێنە ناو ماڵپەرەکەتەوە. جێتپاک یارمەتیت دەدات بلۆگەکەت ببەستیتەوە بە هەژماری ماڵپەری وۆردپرێسەوە تا بتوانیت ئەو خزمەتگوزارییانەت دەستبکەوێت Ú©Û• تەنها بەردەستە بۆ بەکارهێنەرانی ماڵپەری وۆردپرێس.بە ناو کتێبخانەی ڤیدیۆکانتدا بگەڕێشێوازی دوگمەCSSدەستکاریکەی ستایلشیتی CSSکامێرائەتوانم خانەی زیاتر دابنێم؟ئەتوانم Ùیدباکەکانم ببینمەوە Ù„Û• وۆردپرێس؟پاشگەزبوونەوەهەڵوەشاندنەوەی وەڵامسەردێڕ:کارۆسێلهاوپۆلناوه‌ڕاستدەستکاری ئەوە بکە ئایا بەکارهێنەرەکانت ئەتوانن بەشداری بابەتەکان بکەن یان سەرنجەکان یان هەردووکیان.چارتی زانیاری بە پێیسیخوڕی، واو؟چێکبۆکسهەڵبژێرە Ù„Û• ناو زۆرترین پێناسە بەکارهاتووەکاندالە زۆرترین تاگە بەکارهێنراوەکان بەکاربەرەبازنەکانکلیک لێرە بکەکلیک بکە بۆ پرێس زس!کلیک بکە بۆ ئەوەی خۆکارانە پرێسنتەیشنەکەت بکرێتەوە!کلیک بکە بۆ ناردنی ئەمە بۆ هاوڕێیەکتکیک بکە بۆ پرینتکردنکلیک بکە بۆ بڵاوکردنەوەی Ù„Û• گووگڵ+کلیک بکە بۆ بڵاوکردنەوەی Ù„Û• لینکدئینکلیک بکە بۆ بڵاوکردنەوەی Ù„Û• پینترێستکلیک بکە بۆ بڵاو کردنەوەی Ù„Û• پۆکێتکلیک بکە بۆ بڵاوکردنەوەی Ù„Û• ڕێدئتکلیک بکە بۆ بڵاوکردنەوەی Ù„Û• تەمبڵەرکلیک بکە بۆ ناردنی ئەمە بۆ تویتەرکلیک بکو بۆ بینینی سلایدشۆوداخستنبۆکسی ڕەنگەکانبەمزوانە…لێدوانکێشەت هەیە Ù„Û•Ú¯Û•Úµ کاشی سەرنجەکاندا؟نوسینی دواکەوتنی سەرنج بە ئیمەیڵناردنی سەرنج ÙˆÛ•Ú© %sلێدوانه‌کانسەرنجدان Ù„Û•Ù… بابەتە داخراوە.سازدانسازدان %sبیبەستەبابەتەکانت بڵاو بکەرەوە Ùˆ بیبەستەرەوە لەسەر %sبیبەستەرەوە بەبیبەستەوە بە ماڵپەری وۆرپرێسەوەبلۆگەکەت ببەستەرەوە بە تۆڕە کۆمەڵایەتییە بەناوبانگەکانەوە ÙˆÛ• خۆکارانە بابەتە نوێکانت بنێرە بۆ هاوڕێکانت.بەسترابیبەستەرەوە بە بلۆگی WordPress.comبەستراوەتەوە ÙˆÛ•Ú©:بیبەستەرەوە Ù„Û•Ú¯Û•Úµ ماڵپەری وۆردپرێسÙÛ†Ú•Ù…ÛŒ پەیوەندیلینکی ÙÛ†Ú•Ù…ÛŒ پەیوەندی:زانیاری په‌یوه‌ندی کردندرێژە بخوێنەوە →بیگۆڕە بۆ بابەتژمارەی سەیرکردنەکان دیاریبکە لەلایەن ئەو بەکارهێنەرانەوە Ú©Û• چونەتە ژوورەوە.دوگمەی بڵاوکردنەوە دروستبکەخۆکردەCSSÛŒ دروستکراوستایلشیتی تایبەتئیمەیڵی دروستکراونامەی دروستکراو:خشته‌كه‌ سڕایه‌وه‌خشته‌كه‌ نوێكرایه‌وه‌ناوی کڕیاردەستکاریخوارەوەئەرشیڤی ڕۆژانە: %sئەرشیڤی ڕۆژانەتاریکڕێكه‌وتناچالاک کردنDebugبنه‌ڕه‌تخانەیەکی نوێیەکەم هەڵبژاردنکوالیتی خۆییسڕینه‌وه‌سڕینەوەی هەمیشەییئەو بڕگەیە بسڕەوە بۆ هەمیشەپه‌سنCSS Ùˆ JS ناچالاک بکەبابەت ناردن بە ئیمەیڵ ناچالاک بکەبیپچڕینەبیپچڕینە Ù„Û•Ú¯Û•Úµ ماڵپەری وۆردپرێشوازهێنانئەم ئاگادارییە لابەو جێتپاک ناچالاک بکە.ئەم ئاگادارییە لابە.بۆکسیکی لایکی Ùەیسبووک پیشانبدە بۆ ئەوەی بەکارهێنەرەکانت ببەستیتەوە بە پەرەی Ùەیسبووکەکەتەوە.وێنەیەکی بچکۆلەی Ù¾Ø±Û†ÙØ§ÛŒÙ„ÛŒ گراڤاتار پیشانبدەگالەری یان سلایدشۆ پیشانبدەهەموو وێنەکانی گەلەرییەکەت پیشانبدە Ù„Û• مۆسایکێکی جواندا.وێنەیەک پیشانبدە Ù„Û• سایدبارەکەتویدجێتێکی تویتەر پیشانبدە.نیشانی بدە ÙˆÛ•Ú©:ڤیدیۆکان بە کوالیتی بەرز پیشانبدە.وێنەکان بە Ù¾Ú•ÛŒ پیشانبدە Ù„Û• سلایدشۆی کارۆسێل.مێنیوی بڵاوکردنەوە پیشانبدە Ùˆ ڕێگەبدە بە بەکارهێنەرەکانت ڤیدیۆکانت ئێمبد بکەن یان دایبگرنلیستی نوێترین بابەتەکان پیشانبدە Ù„Û• ماڵپەرێکی دیکەی وۆردپرێس یان بلۆگێکی جالاککراوی جێتپاک.پێویستە ئەمە Ù¾Ú• بکەمەوە؟ڕێگە مەدە بە بەکارهێنەرانی تر بێنە ناو کتێبخانەی ڤیدیۆپرێسهێشتا ئەم پێوەکراوەت %s ماوە؟داگرتنداگرتن: %s
        خزمەتگوزارییەکان ڕابکێشەرە ئێرەوە.ئەو خزمەتگوزارییانەی دەتەوێت چالاکیان بکەیت ڕایانبکێشەرە ناو ئەو بۆکسەی خوارەوە.بەرز Ùˆ نزمی بکە بۆ دووبارە ڕێکخستنەوەیدرۆپداونوێنەکانت Ùڕێبدە بۆ بەرزکردنەوەپۆستی ئه‌لیكترۆنیهەر یەکێک Ù„Û•Ùˆ ویدجێتانە ژمارەیەک Ù„Û• هەڵبژاردنی دەستکاریکردنیان هەیە.ده‌ستكاریدەستکاری CSSدەسکاری بڕگەکانی لیست.دەستکاری پێناسەی دانەی مێنیو بکەدەستکاری Ù¾Ú•Û†Ú˜Û• بکەدەستکاری تاگی Ù¾Ú•Û†Ú˜Û• بکەدەستکاری جۆری Ù¾Ú•Û†Ú˜Û• بکەدەستکاری دیاریکراوەکە بکە...دەستکاری Ù¾Ø±Û†ÙØ§ÛŒÙ„ەکەت بکەدەستکاری ئەم خانە نوێیە بکەپۆستی ئەلکترۆنیناونیشانی ئیمەیڵچێککردنەوەی ئیمەیڵ سەرکەوتوو نەبو، تکایە دووبارەی بکەرەوەئیمەیڵم بۆ بکە هەر کاتێکئاگادارکرنەوەی ئیمەیڵهەڵبژاردەکانی ئیمەیڵبەتاڵکردنەوەی سپام.بابەت ناردن بە ئیمەیڵ چالاک بکەکارۆسێل چالاکبکەخزمەتگوزارییە چالاککراوەکانهەڵبژاردنەکانی ئینگلیزیلینکی مالپەرێکی وۆردپرێس یان جێتپاک تۆمار بکە.لینکی وێنەیەکی ١٦x١٦ دابنێ Ú©Û• ئەتەوێت بەکاریبێنیت بۆ ئەم خزمەتگوزارییە.ناوی کڕیار لێرە بنووسەناونیشانی ئیمەیڵەکەت داخڵ بکەئیمەیڵەکەت تۆمار بکە تا بەشداری ئەم بلۆگە بکەیت Ùˆ ئاگاداری نوێترین بابەتەکان بیت Ù„Û• Ú•ÛŽÛŒ ئیمەیڵەوە.زانیاری Ù‡Û•ÚµÛ•: %sکۆدی Ù‡Û•ÚµÛ•: %sÙ‡Û•ÚµÛ• Ù„Û• گواستنەوەی بۆ تەنەکەی خۆڵ.Ù‡Û•ÚµÛ• Ù„Û• کاتی هێنانەوە Ù„Û• تەنەکەی خۆڵەوە .Ù‡Û•ÚµÛ• ڕویدا Ù„Û• پیشاندانی Ù¾Ø±Û†ÙØ§ÛŒÙ„Ù‡Û•ÚµÛ•!Ù‡Û•ÚµÛ•: نەتوانرا ناوێکی دروست دروستبکرێت.Ù‡Û•ÚµÛ•: پەیوەندییەکانی جێتپاکی ئەم ماڵپەرە Ù„Û• ئێستادا Ú©ÛŽØ´Û•ÛŒ هەیە.هه‌ڵه‌ ڕویدا!! پۆستی ئه‌لیكترۆنی ته‌واو بنوسه‌هه‌ڵه‌: تکایه‌ خانه‌ پێویسته‌کان پڕبکه‌وه‌ (ناو، په‌یامی ئه‌لیکترۆنی).نموونە:پەڕەکورتەڕونکردنەوە...Ùیدباکەکان بگۆڕە بۆ CSVFacebookبۆکسی لایکی Ùەیسبووکپەڕەی Ùەیسبووکلینکی Ù¾Û•Ú•Û•ÛŒ Ùەیسبووکەکەت.دیواری Ùەیسبووکتایبەتکرابابەتی گرنگوێنەی پێشکەوتووهەواڵەکان بۆ پیشاندان:Ùیدباکئەو Ùیدباکانەی ÙˆÛ•Ú© خراپ دیاریکراونشێوەی خانەیەکەم هەڵبژاردەدوای بلۆگ بکەوەدوای سەرنجەکان بکەوەدوام بکەوە Ù„Û• تویتەرهەڵبژاردەکانی دواکەوتەکانمێنیوکانی خواردنبۆ زانیاری زیاتردروستکەری Ùۆرمشێوە:خۆڕاییلەپەڕەی سەرەکەی، پەڕەکانی ئەرشیڤ، ÙˆÛ• ئەنجامەکانی گەڕانپەڕەی سەرەکیگه‌له‌ریGoogleکارتی گراڤاتارکارتی Ú¯Ø±Ø§Ú¤Ø§ØªØ§Ø±Ù¾Ø±Û†ÙØ§ÛŒÙ„ÛŒ گراڤاتارسەوزنوسینی بەخێرهاتنشتێکت پێیە بۆ جێتپاک؟به‌رزیبەرزی (px):بەرزی:شاردنه‌وه‌ماڵه‌وه‌ئەمە Ú†Û†Ù† کار دەکات؟بەخێربێیت. بەم دواییانە دوای یەکێک Ù„Û• بابەتەکانم کەوتیت. مانای وایە Ú©Û• هەر سەرنجێک نوسرا بۆت دەنێردرێت بە ئیمەیڵ. بۆ چالاککردن، کلیک Ù„Û• خوارەوە بکە. ئەگەرە بڕوات وایە هەڵەیە، ئمە نامەیە پشتگوێ بخەو هەرگیز بێزارت ناکەینەوە.بەخێربێیت. بەم دواییانە دوای بابەتەکانی ئەم بلۆگە کەوتیت. مانای وایە Ú©Û• هەر بابەتێک بڵاو دەکرێتەوە بۆت دەنێردرێت بە ئیمەیڵ. بۆ چالاککردن، کلیک Ù„Û• خوارەوە بکە. ئەگەرە بڕوات وایە هەڵەیە، ئمە نامەیە پشتگوێ بخەو هەرگیز بێزارت ناکەینەوە.IP Address:ئایکۆنئایکۆن + نوسینلینکی ئایکۆنتەنها ئایکۆنئەگەر بەتاڵ بوو، خۆمان قەبارەیەکی بۆ دیاری دەکەین.ئەگەر تا ئیشتا هەژماری ماڵپەری وۆردپرێست نییە، ئەتوانیت ئێستا دروستیبکەیت بە خۆڕایی Ù„Û• ماوەی چەند چرکەیەکدا.Ùه‌رامۆشکردنی هه‌مووهەردەم پشتگوێی بخەڕونکردنەوە پشتگوێبخەدەقە پشتگوێخراوەکانوێنەڕێکخستنی ÙˆÛŽÙ†Û•:Ú•Û•Ù†Ú¯ÛŒ ÙˆÛŽÙ†Û•:گەلەری ÙˆÛŽÙ†Û•ÛŒ کارۆسێلسلایدشۆی گەلەری وێنەکانشێوەی وێنەلینکی وێنەلیستی وێنەکانهەلبژاردنەکانی ÙˆÛŽÙ†Û•:قەبارەی ÙˆÛŽÙ†Û•:لینکی ÙˆÛŽÙ†Û•:ناونیشانی ÙˆÛŽÙ†Û•:وێنەکان:ناچالاکئەم ÙØ§ÛŒÙ„ÛŒ سی ئێس ئێسە بکەرە ناو بەرگی مۆبایلەوەتێکردنی ڤیدیۆنامەیەکی ناساندن ئەنێردرێت کاتێک کەسێک دوای بابەتێک دەکەوێت Ù„Û• بلۆگەکەت.(ماڵپەر Ùˆ زانیاری دڵنیاکردنەوەش خۆکارانە بۆ تۆ دادەنرێت.)نامەیەکی ناساندن ئەنێردرێت کاتێک کەسێک دوای بلۆگەکەت دەکەوێت.(ماڵپەر Ùˆ زانیاری دڵنیاکردنەوەش خۆکارانە بۆ تۆ دادەنرێت.)ناسنامەکە هەڵەیەهەڵەیە یان بەسەرچووە.داوایەکی نادروستکۆدی ئاسایش هەڵەیە.ناوەکە هەڵەیەئەمە تایبەتە؟وا دیارە لینکی Ùەیسبووکەکەت هەڵەیە. . تکایە سەیری بکەرەوە Ù„Û• هەڵبژاردنەکانی ویدجێتدا.وا دیارە Ú©Û• ماڵپەرەکەت ناتوانێت بە تەواوی پەیوەست ببێت بە جێتپاکەوە.ئەو شتانەی Ù„Û• مێنیوی ڕێستۆرانتەکەتدانJetpackسەرنجەکانی جێتپاکنموونەی سەرنجەکانی جێتپاکپرسیار Ùˆ وەڵامی جێتپاکڤێرژنی پێوەکراوی جێتپاکچونە ژوورەوە Ù„Û•Ú¯Û•Úµ جێتپاکهەڵبژاردەکانی بەشداریکردنی جێتپاکپشتگیری جێتپاکJetpack by WordPress.comپەیوەندی جێتپاک بە سەرکەوتوویی پچڕێنرا.جێتپاک بەستراوەتەوە بە WordPress.comجێتپاک نەبەستراوەتەوە بە WordPress.comجێتپاک پێویستی بە ڤێرژنی %s وۆردۆرێسە یان سەروتر.جێتپاک ماڵپەری وۆرپرێسەکەت Ù¾Ú• دەکات Ù„Û• تواناکانی هەوری جوانی ماڵپەری وۆردپرێس.بچۆ ڕیزی %s بەشداربووی ترەوەبچۆ ڕیزی %s بەشداربووی ترەوەباز بدە بۆ:LaTeXلەیبڵ.ئیمەیڵناوماڵپەرهەڵبژاردەکانهەڵبژاردەکانگواستنەوەنوسینەکانزمانگەورەدوا دەستکاریهەلبژاردەکانی لایئاوت:زیاتر بزانەزیاتر بزانەوەڵامێک بنووسەوەڵامێک بنووسە بۆ %sوەڵامێک بنووسەچه‌پپێمان بڵێ ناوت چییە.کاڵلایکلایکی بکە:لایکەکانئاگادارکردنەوەی لایکلایکەکان Ùˆ بڵاوکراوەکانرەنگی لینک (hex):لینک بۆ:ناونیشانی لینک (کاتێک کلیک Ù„Û• ÙˆÛŽÙ†Û•Ú©Û• دەکرێت(:هەژمارەکەت ببەستەوە بە ماڵپەری وۆردپرێسەوەدەستکاریهەژمارەکەت پەیوسەت بکە بە ماڵپەری WordPress.comLinkedInلینکی ئەو خزمەتگوزارییانەی بەکاریاندینیت Ù„Û• ناو وێبدا.لینکەکانی RSS بۆ بلۆگەکەتلینکی ئەو ماڵپەرانەی، یان بلۆگانەی، یان هەر ماڵپەرێک Ú©Û• پێناسەی تۆ دەکات.نیشاندانی ڕاستەوخۆئامادەکردنی سەرنجەکان...ئامادەکردنی ڤیدیۆ...دادەبزێتشوینی ÙØ§ÛŒÙ„ÛŒ ڤیدیۆکانی Oggبچۆ ژوورەوە Ù„Û•Ú¯Û•Úµ هەژماری وۆردپرێسM j, Y @ G:iسایدباری سەرەکیئەم پەیوەندییە بخەمە بەردەست هەموو بەکارهێنەرانی ئەم بلۆگە؟لێرەوە ڕێکخستنی بڵاوکردنەوە چاک بکە.ئەم نامەیە دایریبکە Ú©Û• خراپ نییەئەم نامەیە دیاریبکە ÙˆÛ•Ú© خراپزۆرترین ژمارەی بابەت بۆ پیشاندان (زیاتر نەبێت Ù„Û• ١٠(:Ú•Û•Ù†Ú¯Ø§ÚµÛ•ÙØ§ÛŒÙ„ÛŒ میدیاناوەند یان مامناوەندمێنیولیستەی بڕگەپێناسەی دانەی مێنیوپێناسەکانی دانەکانی مێنیودانەکانی مێنیودانەکانی مێنیو ڕێکخرانەوە.نامەنامە نێردرانامەکانمێتاداتانەبوونی پلاندانراوئەپڵیکەیشنەکانی مۆبایلبەرگی مۆبایکگونجاو Ù„Û•Ú¯Û•Úµ مۆبایل:شێواز:دەرکەوتنپێشخەرەکانمۆبایلدیکەوێنە Ùˆ ڤیدیۆکۆمەڵایەتیزانیاری WordPress.comنوسینئەرشیڤی مانگانە: %sئەرشیڤی مانگانەزۆرترزانیاری زیاترزانیاری زیاتر Ù„Û• سەر ناردنی ئیمەیڵ، پێوەکراوەکان، ÙˆÛ• دەستکاری کردنی بابەتەکانت.زانیاری زیاتر لەسەر بەکارهێنانی لایک.زانیاری زیاتر لەسەر بڵاوکردنەوە.مێنیو ببەرە خوارەوەئەم بەشەی مێنیو ببە سەرەوەتویتەکانمناونوێمێنیویەکی نوێناوی دانەی نوێی مێنیوپڕۆژەیەکی نوێناوی تاگە نوێکەی پڕۆژەناوی جۆرە نوێکەی پڕۆژەخانەی نوێنوێتر »Ø³Û•رنجە نوێکان →نوێترینداهاتوو »Ø¯Ø§Ù‡Ø§ØªÙˆÙˆ »Ù†Ù‡â€ŒØ®ÛŽØ±Ø¨ÛŽ Ø³Ù†ÙˆÙˆØ±Ø¨ÛŽ ژێربێ سەرهیچ پێناسەیەک نەدۆزرایەوەهیچ مێنیویەک نەدۆزرایەوەهیچ مێنیویەک نەدۆزرایەوە Ù„Û• زبڵدانداهیچ پڕۆژەیەک نەدۆزرایەوەهیچ پڕۆژەیەک نەدۆزرایەوە Ù„Û• زبڵداندابێ سکرۆڵبارهیچ تێستیمۆنیالێک نەدۆزرایەوەهیچ نوسینێک بۆ سەرنجەکەت نەنوسراوە.هیچ Ùیدباکێک نەدۆزرایەوەهیچ پێوەکراوێک نەدۆزرایەوە.پێشنییار نییه‌هیچ تاگێک نەدۆزرایەوە.هیچ ڕووکارێک نەدۆزرایەوەهیچ هەڵەیەکی نوسین نەدۆزرایەوە.هیچنەبەستراوەتەوەنەبەستراوەتەوەهیچ نەدۆزرایەوەئاگادارکردنەوەئاگادارم بکەرەوە Ù„Û• سەرنجەکانی داهاتوو بە ئیمەیڵ..ئاگادارم بکەرەوە Ù„Û• بابەتە نوێکان بە ئیمەیڵنووسەررۆژتاگ, ژمارەی بابەتەکان بۆ پیشاندان:باشەدوگمە بنەڕەتییەکانلینکی ÙØ§ÛŒÙ„ÛŒ Oggبابەتە کۆنەکانOmnisearchکراوە بۆ هەموو بابەتەکانکاتێک چالاککرا، هەڵبژاردەی "بچۆ ژوورەوە Ù„Û•Ú¯Û•Úµ WordPress.com" دادەنرێت Ù„Û• Ùۆرمی چوونە ژوورەوەی ماڵپەرەکەت.مۆدیولێکی نویی جێتپاک%s مۆدیولی نوێی جێتپاکتەنها دەتوانرێت ÙˆÛŽÙ†Û• بەرزبکرێتەوە.تەنها ڤیدیۆی ئەو بلۆگەی دیاریت کردووە دەردەکەوێ Ù„Û• کتێبخانەی ڤیدیۆکانتدا.کراوەکردنەوەی بەستەر Ù„Û• پەنجەرە/تاب Ù€ÛŽÚ©ÛŒ نوێلە پەنجەرەیەکی نوێدا دەکرێتەوەنوسینێک Ú©Û• پیشانی خوینەرەکانتی ئەدەیت:هه‌ڵبژاردنه‌كانپرتەقاڵیڕیزکردنپەڕە %sپه‌ڕه‌كان:ڕێڕه‌وبەستەرى سەرکى بۆ %sلینکی تایبەتیپینگباك:پەمەییPinterestپلان & نرخبۆ پلەی کردن پێویستت بە جاڤاسکریپتە %s.تکایە دڵنیا بە Ù„Û•ÙˆÛ•ÛŒ چەند نوسینێک ئەنوسیت Ù„Û•Ú¯Û•Úµ سەرنجەکەتدا.تکایە باسی کێشەکەت بکە Ú©Û• هەتە.تکایە جاڤاسکریپت چالاک بکە Ù„Û• براوسەرەکەتدا بۆ ئەوەی ڤیدیۆپرێس بەکاربێنیت.تکایە ئاگاداربە Ú©Û• خزمەتگوزارییەکانت سنوردارن چونکە ماڵپەرەکەت تایبەتە بۆ خۆت.تکایە ئیمەیڵێکی دروست بنوسە.تکایە ناونیشانێکی ئیمەیڵ بنوسە تا سەرنجەکەت بنوسیت.تکایە ئیمەیڵەکەت بنووسە.تکایە ناو بنوسە بۆ ناردنی سەرنجتکایە ناوت بنووسە.تکایە ÙØ§ÛŒÙ„ÛŽÚ©ÛŒ ڤیدیۆیی دایریبکە بۆ بەرزکردنەوە.تکایە مۆدیولێکی دروست دیاریبکە.تکایە بەکارهێنەرێکی دروست دیاریبکە.تکایە دیاریبکە ئەگەر ئەتەوێت بلۆگێک یان بەکارهێنەرێک لاببەیت.تکایە رۆژی Ù„Û• دایکبوونەکەت دڵنیابکەرەوە.پێوه‌كراوه‌كانPocketناودارپێناسە بەناوبانگەکانتاگە ناودارەکانی پڕۆژەلێدوانێک بنووسەبابەت ناردن Ù„Û• Ú•ÛŽÛŒ ئیمەیڵەوەبابەت گۆڕدرا%s بابەت گۆڕدراجۆری بابەت:بابەت نەنێردرا - سەیری ئیمەیڵەکەت بکەرەوە!نێردراوە لەلایەنبڵاوکراوەتەوە Ù„Û• %sبابه‌ته‌كانبابەتەکان & سەرنجەکانپەڕەی بابەتەکانپڕۆسێسەر:کرته‌ی ئێره‌ بکه‌پێشبینیننیشاندان: پێویستە گۆڕانکارییەکان پاشەکەت بکرێن ئەگینا ئەÙەوتێننرخمێنیوی سەرەکیچاپكردنتایبه‌تیکارکردن...پڕۆژەتاگەکانی پڕۆژەتاگەکانی پڕۆژەجۆری پڕۆژەجۆرەکانی Ù¾Ú•Û†Ú˜Û•Ù¾Ú•Û†Ú˜Û•Ú©Û• بڵاوکرایەوە. سەیری بکەپڕۆژەکە پاشەکەوتکراپڕۆژەکە نێردرا. سەیری بکەپڕۆژەکە نوێکرایەوەپڕۆژەکە نوێکرایەوە. سەیری بکەپڕۆژەکانبە شانازییەوە بەهێزکراوە لەلایەن %sبڵاوکردنەوەبڵاو کردنەوە ڕێگەتدەدات بابەتەکانت بڵاو بکەیتەوە لەسەر Ùەیسبووک، تویتەر، تەمبڵەر، یاهوو! ÙˆÛ• لینکدئین.بڵاوی بکەرەوە بۆ ناو %s:بڵاوکردنەوە:بڵاوكردنه‌وه‌بڵاوكراوه‌ته‌وه‌مۆر چارتێک پیشانبدە Ù„Û• باری بەڕێوەبەردا Ú©Û• هەموو ئەو بابەتانە نیشانبدات Ú©Û• Ù„Û• ماوەی ٤٨ کاژێری ڕابردوودا سەیرکراون.ماوسەکەت بخە سەر گراڤاتارەکەت تا سەیری هەژمارەکەت بکەیت.لینکی RSS (Jetpack)ڕادیۆشێوازی خۆکاری:هه‌ڵسه‌نگاندندوا بابه‌ته‌کانسوورRedditپەیوەندییەکەت نوێ بکەرەوە Ù„Û•Ú¯Û•Úµ %sناونیشان دووبارە دروستبکەرەوەبەکارهێنەرە تۆمارکراوەکانهاوشێوەبابەتە هاوشێوەکانبابەتە هاوشێوەکانئەم خزمەتگوزارییە بسڕەوەووشە دوبارەکانبیگۆڕە بەرگ CSS (پێشکەوتوو)ئەم بەشە بگۆڕە Ù„Û•Ú¯Û•Úµ:جێگرتنەوەوەڵامدانەوەپێویستە؟ گه‌ڕاندنه‌وه‌گەڕاندنەوەی ئەم بابەتە Ù„Û• تەنەکەی خۆڵەوەئەنجامەکان:ڕاستپاشه‌كه‌وتكردنپاشه‌که‌وتکردنی گۆڕانكاریه‌كان »Ø³ØªØ§ÛŒÙ„شیت پاشەکەوتبکەپاشەکەوتی بکە Ùˆ بگەڕێوە بۆ دروستکەری Ùۆڕمدەستکارییەکان پاشەکەوتبکەئەم خانەیە پاشەکەوت بکەبە سەرکەوتووی پاشەکەوتکراڕێكخراوه‌ بۆ بڵاوكردنه‌وه‌بگەڕێوە بۆ سەرەوەگه‌ڕانگه‌ڕان له‌ لێدوانه‌کانبگەڕێ بە ناو هەموو شتەکاندابە ناو Ùیدباکەکاندا بگەڕێگەڕان لەڕەنگاڵەبە ناو پێناسەی دانەکانی مێنیودا بگەڕێبە ناو مێنیوکاندا بگەڕێگەڕان Ù„Û• پێوەکراوەکانبگەڕێ بە ناو تاگی پڕۆژەکاندابگەڕی بە ناوی جۆرەکانی پڕۆژەداگەڕان بە ناو پڕۆژەکاندائەنجامى گەڕان بۆ: %sبە ناو تێستیمۆنیالەکاندا بگەڕێئەنجامەکانی گەڕانبەکارهێنەرێک یان "custom" هەڵبژێرە Ùˆ ئیمەیڵێک بنووسە.ئەم Ùیدباکە دیاریبکە بۆ داگرتنئەو ڕۆڵانە دیاری بکە Ú©Û• ئەتوانن ڕاپۆرتی زانیارییەکانی ماڵپەرەکەت ببینن.شۆسته‌ی گوزارشتی تاکه‌که‌سی بڵاوكراوئیمەیڵ بنێرەبینێرە بۆ ناونیشانی ئیمەیڵنێردراوە Ù„Û• لایەن %s بەکارهێنەرێکی دانپێدانراوەوە.نێردراوە Ù„Û• لایەن بەکارهێنەرێکی دانپێدانەنراوەوە بۆ ماڵپەرەکەت.تاگه‌کان به‌ کۆما له‌یه‌ک جیا بکه‌وه‌.ناوی خزمەتگوزاری%1$s: %2$sئەو خزمەتگوزارییانەی ڕادەکێشرێنە ئێرەوە ڕاستەوخۆ دەردەکەون.ئەو خزمەتگوزارییانەی دەخرێنە ئێرەوە ئەکەونە پشتی دوگمەی بڵاوکردنەوەوە.ڕێكخستنه‌كاندەستکارییەکان پاشەکەوتکرانبڵاوکردنەوەبڵاویبکەرەوە Ù„Û• Ùەیسبووکئەمە بڵاوبکەرەوە:بڵاوکرایەوەبابەتی بڵاوکراوەبڵاوکردنەوەدوگمەکانی بڵاوکردنەوەهەڵبژاردەکانی بڵاوکردنەوەلینکی بڵاوکردنەوەبڵاوکردنەوە داخراوە. خزمەتگوزارییەکانی سەرەوە دابنێ بۆ ئەوەی چالاک بێت.نوسینی بڵاوکردنەوەکۆدی کورتپیشاندانلینکی هەژمارەکان پیشانبدەکورتە پیشانبدە:دەموچاوەکان پیشانبدەوێنەی تایبەت پیشانبدە:لینکی تایبەت پیشانبدەستریم پیشانبدەهەڵبژاردەی 'دوای بلۆگ بکەوە' پێسانبدە Ù„Û•Ú¯Û•Úµ Ùۆرمی سەرنجەکانداهەڵبژاردەی 'دوای سەرنجەکان بکەوە' پیشانبدە Ù„Û•Ú¯Û•Úµ Ùۆرمی سەرنجەکاندادوگمەکان پیشانبدە لەسەرلایکەکان پیشانبدەزیاتر پیشانبدەوێنەی Ù¾Ø±Û†ÙØ§ÛŒÙ„ەکان پیسانبدە Ù„Û• لکێنراوەکەدا،دوگمەکانی بڵاوکردنەوە پیشانبدە.گەرمترین بابەتەکان پیشانبدەزۆرترین ئەو ووشانە پیشانبدە Ú©Û• Ù„Û• گەڕاندا بەکارهێنراونکۆی گشتی بەشداربووان پیشانبدە؟ (%s بەشداربوو)Ú©Û†ÛŒ گشتی بەشداربووان پیشانبدە؟ (%s بەشداربوو)نیشاندان:یانئەو بابەت Ùˆ پەڕانەت پیشاندەدات Ú©Û• زۆرترین جار سەیرکراون.خیرایی شەتەرزیویبابەتی هاوشێوەناوی ماڵپەڕزانیاری ماڵپەرماڵپەڕسلایدشۆوبچووکدەموچاوی Ù¾ÛŽÚ©Û•Ù†ÛŒÙ†Ø§ÙˆÛŒØ³Ù†ÛŒÙ¾ÛŽØªØ¨Û•ÙØ±Ú©Û†Ù…ەڵایەتیکەسێک لایکی بابەتێکم دەکاتشتێک تێکەڵ بو!شتێکی ناخۆش بوو!شتێک Ú©Û• نەئەبوایە ڕویبدایە، ڕویدا. ببورە. ئەگەر هەوڵبدەیتەوە، لەوانەیە کار بکات.ببورە، هەڵەیەک هەبو Ù„Û• ناردنی سەرنجەکەتدا. تکایە دواتر هەوڵبدەرەوە.ببورە، نەمانتوانی داواکەت بناسینەوە.ببورە، هیچ زانیارییەک نییە بۆ پیشاندان.ببورە، بلۆگەکەت ناتوانێت بابەت بڵاو بکاتەوە بە ئیمەیڵ.ڕیزیان بکه‌ به‌پێی:سپامخراپ (%s)خراپ (%s)نوسیننوسین Ùˆ ڕێزمانشێوازی خشتەییپەڕەی سادە:زانیاریشێوە:ستایلشییت پاشەکەوتکرا.سەردێڕبینێره‌بینێرە »Ø¯Ø§Ù†Ø§Ù†ÛŒ سەرنج%sبەشداربەدوگمەی بەشداربوون:بەشداربە بۆ %sبەشداری ئەم بلۆگە بکە Ù„Û• Ú•ÛŽÛŒ ئیمەیڵەوەنموونەی بەشداریکردنPiÅŸtgirîناوی تاگتاگ کراوە Ù„Û•Ú¯Û•Úµ %sتاگه‌كانوؤردپرێس ببە Ù„Û•Ú¯Û•Úµ خۆت.یاساکنی خزمەتگوزاریتێستیمۆنیالتێستیمۆنیال پاشەکەوتکرا.تێستیمۆنیال نوێ کرایەوە.دەقلینکی نوسین & وێنەلینکی نوسینلیستی نوسینەکانتەنها نوسینناوچەی نوسینپەیوەندییەکە سڕدرایەوەویدجێتی وێنەڤێرژنی جێتپاکەکەت %sئەم پێوەکراوە پێشتر چالاک کراوەئەم پێوەکراوە پێشتر ناچالاک کراوەویدجێتی لینکەکانی RSSblog_idÛŒ WordPress.com ئەمەیە %dڕێگەپێدان کۆتایی هات. تکایە بگەڕێوە Ùˆ دووبارە هەوڵبدەرەوە.پانی ئاسایی پێکهاتە بۆ بەرگی %s %d پیکسڵە.ئەم مۆدیولە نوێکرایەوە: %l.ئەم مۆدیولە نوێیە چالاککرا: %l.ئەم خزمەتگوزارییانەی تیایە: تویتەر، Ùەیسبووک، ڕێدئت، ستەمبڵئەپئۆن، دیگ، لینکدئین، گووگڵ +Ù¡ØŒ پرینت، ÙˆÛ• ئیمەیڵ.ئەم خزمەتگوزارییانەی Ù„Û• خۆگرتووە: تویتەر، Ùەیسبووک، رێدئت، ستەمبڵئەپئۆن، پرێسزس، دیگ، لینکدئین، گووگڵ +Ù¡ØŒ پرینت، ÙˆÛ• ئیمەیڵ.ڤێرژنە Ú©Û†Ù†Û•Ú©Û• ناچالاککرا ÙˆÛ• ئەتوانرێت بسڕدرێتەوە Ù„Û• ناو ماڵپەرەکەتدا.ڤێرژنە کۆنەکان ناچالاککران ÙˆÛ• ئەتوانرێت بسڕدرێنەوە Ù„Û• ناو ماڵپەرەکەتدا.پیشاندان بونی نییە کاتێک ڤیدیۆکە Ù„Û• پرۆسەدایە.بەرگ بەتاڵەبەرگ: %1$s.هیچ بابەتێک نییە بۆ پیشاندان. سەردانکەری زیاترت دەوێت؟کێشەیەک هەبوو Ù„Û• کاتی پەیوەندیکردن بە پەبڵیشایز. تکایە پاش خولەکێک هەوڵبدەرەوە.ئەگەرێكی زۆر هەیە Ú©Û• سەردانکەرەکانت یەنە ماڵپەرەکەتەوە مۆبایل بەکاربێنن، ÙˆÛ• گرنگە بە باسترین شێواز ماڵپەرەکتینا نیشانبدەیت Ù„Û• شاشە بچوکەکاندا.ئەم گۆڕانکارییانە ئەو ئیمەیڵانە ئەگۆڕێت Ú©Û• Ù„Û• لایەن بلۆگەکەتەوە ئەنێردرێت بۆ دواکەوتەکانت.(پێویستە)ئەم پەیوەندییە بە تەواوی کار دەکاتئەم گالەرییە پێکهاتووە Ù„Û• %2$s ÙˆÛŽÙ†Û•.ئەم گالەرییە پێکهاتووە Ù„Û• %2$s وینە.ئەم بابەتە بڵاو کرایەوەئەم بابەتە بە تێپەڕەووشە پارێزراوە.ئه‌م بابه‌ته‌ پێویست به‌ ووشه‌ی تێپه‌ڕبوون ده‌کات. ووشه‌ی تێپه‌ڕبوون لێبده‌ بۆ نیشاندانی هه‌ر بۆچوونێك.ئەم هەژمارە ئێستا نەلکێنراوە بە مالثەری وۆردپریسەوە.نەتوانرا ئەم سلایدشۆیە دەستپێبکرێت. هەوڵبدە Ù¾Û•Ú•Û•Ú©Û• نوێ بکەیتەوە یان Ù„Û• براوسەرێکی دیکەدا سەیری بکە.سلایدشۆو پێویستی بە جاڤاسکریپتەئەم ڤیدیۆیە پێویستی بە Adobe Flash بۆ لێدانی.چوارچێوە (بڵاوترینە)زەخرەÙەخشتەکانکات:تایملاینی بەرگ:سه‌ردێڕسه‌ردێڕ:بۆ دەستکاریکردنی ڕێکخستنەکانی بڵاوکردنەوە, بڕۆ بۆ ڕێکخستنی → بڵاوکردنەوە مێنیوی.بەرەو پشتی ناکۆتابۆ بەکارهێنانی بابەت ناردن بە ئیمەیڵ، پێویستە هەژمارەکەت %s ببەستیتەوە بە هەژماری WordPress.comگەرمترین بابەتەکانگەرمترین بابەتەکان & پەڕەکانگەرمترین بابەتەکان & پەڕەکان بە Ù¾ÛŽÛŒ سەیرکردنیان Ù„Û• ماوەی ٢٤-٤٨ کاتژمێردا. کاتێکی زۆری Ù¾ÛŽ دەچێت تا دەگۆڕێت.زۆرترین گەڕاوەکانئاویباکگراوندی ئاویته‌نه‌که‌ی Ùڕێدانکێشەت هەیە Ù„Û•Ú¯Û•Úµ جێتپاک؟هەوڵبدە دووبارە بیبەستیتەوە.Tumblrبلۆگی تەمبڵەربە Ù¾ÛŽÛŒ بابەت بیکەرەوەتویتەکانی @%sTwitterویدجێتی تویتەرجۆرجۆرەکانسەرەوەURLنەتوانرا بابەتەکەت دروستبکرێت Ù„Û• Ú•ÛŽÛŒ ئیمەیڵەوە. تکایە هەوڵبدەرەوە.نەتوانرا بابەت ناردن بە ئیمەیڵ ناچالاک بکرێت. تکایە دواتر هەوڵبدەرەوە.نەتوانرا دووبارە بابەتەکەت دروستبکرێتەوە Ù„Û• Ú•ÛŽÛŒ ئیمەیڵەوە. تکایە دواتر هەوڵبدەرەوە.هاوپۆلنه‌كراوئەم هەژمارە بپچڕێنەبەکارهێنەر بپچڕێنە Ù„Û•Ú¯Û•Úµ ماڵپەری وۆردپرێسبڵاونه‌كراوه‌بەشدارمەبەبابەتێکی بێ تایتڵپێناسەی دانەی مێنیو نوێبکەرەوەتاگی Ù¾Ú•Û†Ú˜Û• نوێبکەرەوەجۆری Ù¾Ú•Û†Ú˜Û• نوێبکەرەوەنوێکرایەوەبارکردنی وێنەڤیدیۆ بەرزبکەرەوەڤیدیۆیەک بەرزبکەرەوەبەرزکردنەوە...گووگڵ ئەنالایتیکس بەکاربێنە Ù„Û•Ú¯Û•Úµ سکرۆڵی بێ کۆتاییئیمەیڵێکی دروست بەکاربێنە.ئەم Ùۆرمەی خوارەوە بەکاربێنە بۆ بەرزکردنەوەی ڤیدیۆ بۆ کتێبخانەی ڤیدیۆپرێس. ئەم جۆری ÙØ§ÛŒÙ„Û• ڤیدیۆییانە ئەتوانیت بەرزبکەیتەوە: %s. گەورەترین قەبارە بۆ بەرزکردنەوە %d%s.-- دیاریکردن --شاردنەوەپیشاندانبەکارهێنەر بەسترایەوە بە ماڵپەری وۆردپرێسناوی به‌كارهێنه‌رنرخVaultPressداشبۆردی ڤاوڵتپرێسخزمەتگوزارییە دانپێدانراوەکانئاسایشی کتێبخانەی ڤیدیۆنیشاندانی ڤیدیۆ:ڤیدیۆ Ù„Û• سەر %sڤێدیۆی بابەت Ù„Û• لاەین %s.VideoPressکتێبخانەی ڤیدیۆپرێسهەمووی پیشان بدەسەیری Ù¾Ø±Û†ÙØ§ÛŒÙ„ بکە →سەیری مێنیو بکەسەیری پێناسەی دانەی مێنیو بکەمۆبایل ڤێرژنسەیری Ù¾Ú•Û†Ú˜Û• بکەسەیری جۆری Ù¾Ú•Û†Ú˜Û• بکەسەیری زانیاری ماڵپەر بکە بێ چالاکردنی جاڤاسکریپتسەیری تێستیمۆنیاڵ بکەسەیرکردن %s.هەموو خزمەتگوزارییەکانی جێتپاک ببینەقەبارەی ڕاستەقینە ببینە %1$s×%2$sسەیری هەژماری خەڵک بکە کاتێک ماوسەکەت دەخەیتە سەر گاراڤاتارەکانیانسەیرکردن:سەیرکردنەوکان Ù„Û• ماوەی ٤٨ کاژێری ڕابردوودا. کلیک بکە بۆ زانیاری زیاتر.نیشاندانسەردانی زانیاری ماڵپەر بکە بۆ بینینی زانیارییەکانت.لینکی کورتی WP.meناتوانین بابەتەکانی ئەم بلۆگە پیشانبدەین.ناتوانی زانیارییەکانی بلۆگ بخەینە بەردەست Ù„Û•Ù… کاتەدا.نەمانتوانی زانیارییەکانت بخەینە بەر دەست Ù„Û•Ù… کاتەدا. تکایە Ù¾Û•Ú•Û•Ú©Û• دووبارە نوێ بکەرەوە Ùˆ دووبارەی بکەرەوە.ماڵپه‌ڕبەخێربێیت بۆ Jetpack %s!پێویستە سەردێڕی بابەتەکە Ú†ÛŒ بێت؟گراڤاتار چییە؟کاتێک بابەتێکی باش دەنوسیت ئەوەی ئەتەوێت ئەوەیە خەڵک بیدۆزێتەوە، وایە؟سپیژمارەی ویدجێت:isناونیشانی ویدجێت:نموونەی ویدجێتدرێژی (px):درێژی:Ù„Û•Ú¯Û•Úµ Ù¡ سەرنچلەگەڵ %s سەرنجلایکی وۆردپرێس ئەوەیەچونە ژوورەوە Ù„Û•Ú¯Û•Úµ ماڵپەری وۆردپرێسWordPress.com زانیاریمالپەری وۆردپرێس Ù„Û•Ù… کاتەدا Ú©ÛŽØ´Û•ÛŒ هەیە Ùˆ ناتوانێ تانکی بەنزینەکەی جێتپاک Ù¾Ú• بکاتەوە. تکایە دواتر هەوڵبدەرەوە.سەرنجێک بنوسە...Y/m/dY/m/d g:i:s Aئەرشیڤی ساڵانە: %sئەرشیڤی ساڵانەبه‌ڵێڕێگەت پێنەدراوە ئەم گۆڕانکارییە بکەیت.تۆ ڕێگەت پێنەدراوە ئەم دانەیە بەڕێوە ببەیت.تۆ ڕێگەپێندراوی بۆ دەرکردنی ئەم بڕگەیە Ù„Û• تەنەکەی خۆڵتۆ Ú•ÛŽÚ¯Û• پێنەدراوی تا بتوانی ئەم بڕگەیە بگوێزیتەوە بۆ تەنەکەی خۆڵ.ڕێگەت پێنەدراو ئەم بەرگە بگۆڕیتئەتوانیت ئەم نرخانە بخەیتە لینکی خزمەتگوزاری بڵاوکردنەوەوە.ناتوانیت پەیوەندییەکە بپچڕێنیت، Ù„Û• کاتێکدا پەیوەندییەکە دروستنەکراوە.ده‌سه‌ڵاتی هاتنه‌ ناو ئه‌م په‌ڕه‌یه‌ت نییه‌.تۆ بەشداریت کردووە تا ئیمەیڵێ نوێت پێبگات Ù„Û• کاتی نوێکاریدا.تۆ ئەم بابەتەت بڵاو کردەوە %sپێویستە بچیتە ژوور تۆ وەڵام جێبێڵیت.پێویستە Ù„Û• ژوورەوە بیت تا سەرنج بنێریت.دەبێت لکێنراوی جێتپاک ببەستیتەوە بە ماڵپەری وۆردپرێسەوە بۆ بەکارهێنانی ئەم خزمەتگوزارییە.پێویستە ویدجێتێک دروستبکەیت Ù„Û• Twitter.com,پاشان ژمارەی ویدجێتەکەی داخڵ بکە(ژمارەیەکی درێژە Ú©Û• Ù„Û• لینکی Ù¾Û•Ú•Û•ÛŒ دەستکاری ویدجێتەکەدایە( Ù„Û• خانەکەی خوارەوە زیاتر بخوێنەرەوە.پێویستە دیاری بکەیت Ú†ÛŒ پیشانبدرێت Ù„Û• ویدجێتی گراڤاتاری Ù¾Ø±Û†ÙØ§ÛŒÙ„ەکەتدا.لەمەودوا ئیمەیڵت پێناگات دەربارەی گۆڕانکارییەکانی جێتپاک.ئیمەیڵەکەتڕێکخستنەکانی جێتپاک باش دەردەکەون!ناوتزانیاری ماڵپەر کاتێک باشتر کار دەکات Ú©Û• جاڤاسکریپت چالاککرابیت.بلۆگەکەت هیچ بابەتێکی بڵاوکراوەی نییە.لێدوانەکەت چاوەڕێی چاودێری کردنە.سەرنجەکەت Ù„Û• ژێر پێداچونەوەدایە.سەرنجەکەت بڵاوکرایەوە.خانە نوێکەت بە سەرکەوتویی پاشەکەوتکراڤیدیۆکەت بە سەرکەوتووی بەرزکرایەوە. بەمزووانە Ù„Û• کتێبخانەی ڤیدیۆکانتدا دەردەکەوێ.ڤیدیۆکەت بەرز دەکرێتەوە... تکایە پەنجەرەکەت دامەخەرەوە.پێویستە ماڵپەرەکەت بڵاوکرابێتەوە تا جێتپاک بەکاربێنێت: %sبابەتێک یان پەڕەیەک بۆ یەکەم جار بڵاوکرایەوەبابەتێک یان پەڕەیەک نوێکرایەوەئیمەیڵپاشگەزبوونەوەکلیک لێرە بکەسازدانڕۆژده‌ستكاریدەستکاری نوسینئۆو، هەڵەیەک ڕویدا Ù„Û• کاتی دروستکردنی Ùۆڕمەکەتدا. ئەبێت دووبارە هەوڵبدەیتەوە.بگەڕێوەhttp://jetpack.mehttp://wordpress.org/%1$s/%2$sمانگلێدوان%s ئەگەر:بگەڕێ بە ناو هەموو شتەکاندائیمەیڵFacebookGoogleLinkedInPinterestPocketPress ThisپرینتTumblrتویتەرڕۆژی ڕابردوومانگی ڕابردووچواریەکی Ú•Ø§Ø¨Ø±Ø¯ÙˆÙˆÙ‡Û•ÙØªÛ•ÛŒ ڕابردووساڵی ڕابردووئەم ڤیدیۆیەسەیرکردن: %sÙ‡Û•ÙØªÛ•ووشەکانplugins/jetpack/languages/jetpack-vi.mo0000755000312500031250000005403612651056012020627 0ustar eacbforgeacbforgÞ•,| ‘Ü Ï! ñ þG SHZ&£Ê Û æñú  & * 7 ABN-‘¿ÆÖ Ü êôù #B#W{›ªÄßû-F`y‡ —¡©  Ì5Ù 0FK P[cj} š¦®SÂ"+ :G M [fcãõ . *5 5` – ¦ ¯ ´ E¼ "!%!6!(C(>H(‡(™(­(µ( ½( Ê( Õ(â(è(ù( ))) $)1)7)?)P) Y)c) k)u)|) ƒ)) ”)¢) ª) ¸)Æ)Ì) Ô)õ)û) * ***.* @*M*\*v* * ‹*•*Oš* ê* ++ + %+/+ã5+,56-l-u-z-€-’-š- ¡-¯- Ä-Î-ê-ò-û-...0.P.)p. š.I».// 5/?/D/J/ Q/[/q/w/~//•/ ™/ §/ ³/ ¿/ Í/(Ú/0 00050G0&M0&t0›0£0 ©0·0×0 Ý0ë07ï03'1;[17—1$Ï1ô1ø1 ÿ1 22222B2 H2>U2<”2Ñ2á2ð2ÿ23.3ç3354Q5`5;p5 ¬5e¸5(6G6^6 w6 „6‘6 6¦6¹6Ê6 Ð6Û6ô6 7V!7Gx7 À7Ë7 ç7ñ78!8 58 @8 N8 \87f8!ž83À8ô89#&9#J9%n9"”9!·9"Ù9#ü9# :D: K: X: e: q: }:‰:©:º:2Ð:;);0E;v;|;‚; —;¥;ª;¼;Î;×;/Ý;x <†<˜<ž<°<Ë<â<&ô<=%+=Q=Ó=&è=->=>HD>S>á> ô> ? ?e$?&Š?±?Ä?×?Û?/ä? @ @1@E@K@(a@ Š@–@°@-É@3÷@>+A jA vAƒA A§AºAÚAíAóA9ùA3BMBiByB ˆB –B  B¬B¼B ÚBæB ëB øBC C(Cn@C]¯CO D‡]DhåDCNEx’E— FQ£FõF GGE"GhG mGzGŒG›G¢GÂG+ÛGH HH”H1²H äH ðH üHII Ib*II§I¿I ÆIÓI æIóI JJ%*JPJ fJ pJ ~JŠJ J$˜J½J ÆJÑJäJ ôJ þJ K K('KPK_K{K ’K žK.«KÚK áKìKýK L L9L RL ^L/jL šL ¦L ±L ½LmÊL18M jM xMƒM •M  MbªMn OW|PÔPæP ëP÷P QQ Q-Q IQSQ lQ xQƒQ‰Q ¥Q%°QÖQóQR92RxlRHåR .S 8S DS PS]S(nS —S£SªSÆSÍSÝSãSúS T(T>q‹CÒZÏ»D%J#Œ°ç±Š*‚}7ˆ³(Ä`ÀñSo‘Þ§\œÕ:/Võë™|dô{ƒ1ºN÷Pˬ[z^–ÎUåøiy¸'býÐà Ö+½ÓØ0¡óÊ;h¦‰ £XÔ 9è"Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on).%1$s at %2$s%1$s on %2$s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been successfully disconnected.« Previous(no title)(required)ActivateActiveAddAdd NewAdd or remove tagsAlbumAllAll ProjectsAll postsAlphabeticalAn administrator for this blog must set up the Jetpack connection.An unknown error occurred during installationArtistAttachment PageBlackBlog ArchivesBlog URL:BlueCancelCategoryCenterCheatin’ uh?Choose from the most used tagsClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseCommentCommentsConfigConfigureConnectConnect to WordPress.comConnectedContact InfoContinue reading →Crop ImageCustom field deleted.Custom field updated.DarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDismissDisplay Header TextDisplays a list of recent posts from another WordPress.com or Jetpack-enabled blog.E-mailEditEdit CSSEdit Menu ItemEdit ProjectEmailEmail AddressEmpty SpamEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Featured ImagesFeedbackFreeGalleryGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGive Us FeedbackGreenHeightHideHide related content after postsHomeIP Address:Ignore allImageInactiveIndexing postsInsert VideoJetpack CommentsJetpack SettingsJetpack has been successfully disconnected.Jetpack is in local development mode.Jetpack is not currently connected to WordPress.comLanguageLargeLast ModifiedLearn MoreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLink your account to WordPress.comLive PreviewLoading Comments...Loading…Loading...Logged InLogged OutM j, Y @ G:iMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMissed scheduleModule DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionShare new posts on social media networks automatically.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module NameRelated PostsMonthly archivesMoreMore information on using Related Posts.NameNewestNext »Next » NoNo plugins found.No suggestionsNo tags found.NoneNotificationsOKOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Open link in a new window/tabOptionsOrangeOrderPages:PathPinkPlease specify if you would like to disconnect a blog or user.Plugin activated.Plugin deactivated.PluginsPopularPost CommentPosted by Posted by %sPostsPosts & CommentsPosts indexed.Press ThisPreviewPreview:Primary MenuPrintPrivacyProject updated.ProjectsPublicizePublishPublishedPurpleRatingRecent PostsRedReindex PostsRelatedRelated PostsRelated postsReplyRestoreRestore this item from the TrashRightSaveSave ChangesScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch PluginsSeparate tags with commasSettingsShare this:ShortcodeShowShow a "Related" header to more clearly separate the related section from postsShow related content after postsShow:SilverSimilar postSite NameSitesSome features of Jetpack uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, please try requesting a reindex of your posts.Some themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Sorry, no modules were found for the search term "%s"Sort by:SpamStatsStylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe to Blog via EmailSupportTag nameTagsTerms of ServiceTextThe Jetpack Version is %sThe WordPress.com blog_id is %dThe plugin is already installedThere was an error installing your pluginThis post is password protected.This post is password protected. Enter the password to view any comments.This user is not authorized to %s on this blog.ThumbnailTimeTitleTitle:Top PostsTop Posts & PagesTrashTumblrTwitter username:TypeURLUncategorizedUnpublishedUnsubscribeUntitled PostUploading...Use a large and visually striking layoutUsernameValueView AllView all Jetpack featuresView on InstagramView:We cannot display posts for this blog.We cannot load blog data at this time.WebsiteWhiteWidget title:With 1 commentWith %s commentsY/m/dY/m/d g:i:s AYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.You need to register your Jetpack before connecting it.Your comment is awaiting moderation.andcancelclick heredayeditin {category/tag name}In "%s"loading…monthnounCommentsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficshare toGoogleshare toPrintthe past monththe past quarterwatch a video titleWatch: %sweekPO-Revision-Date: 2015-06-27 06:00:15+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: dev "Các bài đăng liên quan" hiển thị các liên kết phù hợp bổ sung dưới các bài đăng được lấy từ trang web cá»§a bạn. Nếu tính năng này được bật lên, sẽ có các liên kết xuất hiện dưới các nút chia sẻ và nút thích cá»§a WordPress.com (nếu có).%1$s lúc %2$s%1$s trong %2$sBạn vừa đăng ký theo dõi cập nhật qua email. %s%s trước%s không thể ngắt kết nối. Bạn có chắc chắn rằng chúng Ä‘ang được kết nối?%s đã ngắt kết nối thành công.« Trang trước(không có tiêu Ä‘á»)(yêu cầu)Kích hoạtHoạt độngThêmThêm thành viênThêm/Xóa thẻAlbumTất cảTất cả các dá»± ánTất cả bài viếtThứ tá»± chữ cáiMá»™t quản trị cao cấp cá»§a blog này phải thiết lập kết nối Jetpack.Má»™t lá»—i không rõ đã xuất hiện trong quá trình cài đặtNghệ sÄ©Trang tập tin đính kèmMàu Ä‘enCác bài viết cũį°á»ng dẫn tá»›i BlogMàu xanh da trá»iHá»§y bá»Chuyên mụcChính giữaÄ‚n gian?Chá»n từ những thẻ được dùng nhiá»u nhấtBấm để đăng lên WordpressBấm để bài trình diá»…n tá»± động chạy!Bấm để gá»­i cho bạn bèBấm để in raBấm để chia sẻ trên Google+Bấm để chia sẻ lên LinkedInBấm để chia sẻ trên PinterestBấm để chia sẻ trên PocketBấm để chia sẻ lên RedditBấm để chia sẻ trên TumblrBấm để chia sẻ trên TwitterBấm để xem bài trình diá»…n.ÄóngPhản hồiPhản hồiCấu hìnhCấu hìnhKết nốiKết nối vá»›i WordPress.comÄã kết nốiThông tin liên hệÄá»c tiếp →Cắt xén hình ảnh.Trưá»ng tùy biến đã được xóa.Trưá»ng tùy biến đã được cập nhậtTốiNgàyNgừng kích hoạtMặc địnhXóaXóa vÄ©nh viá»…nXóa vÄ©nh viá»…nMô tảHá»§yHiển thị văn bản ở phần đầu trangHiển thị má»™t danh sách các bài viết má»›i từ má»™t blog WordPress.com hoặc blog đã bật Jetpack khác.Thư Ä‘iện tá»­Sá»­aChỉnh sá»­a CSSChỉnh sá»­a trình đơnChỉnh sá»­a dá»± ánThư Ä‘iện tá»­Äịa chỉ thư Ä‘iện tá»­ (email)Xóa hết spamNhập địa chỉ email cá»§a bạnNhập địa chỉ email cá»§a bạn để đăng ký theo dõi blog này và nhận thông báo vá» các bài má»›i qua email.Thông tin lá»—i: %sGặp lá»—i khi bá» vào thùng rác.Gặp lá»—i khi lấy lại từ thùng rác.Lá»—i!Lá»—i: vui lòng nhập địa chỉ thư Ä‘iện tá»­.Lá»—i: xin vui lòng Ä‘iá»n các ô được yêu cầu (tên, thư Ä‘iện tá»­).Ảnh tiêu biểuPhản hồiMiá»…n phíThư viện cá»§a bàiKhởi động để quản trị việc cài đặt Ä‘a trang vá»›i Jetpack bằng cách kết nốiKhởi động cùng Jetpack Äa trangGá»­i phản hồiMàu xanh lá câyCaoẨn Ä‘iẨn ná»™i dung liên quan sau các bài đăngTrang chá»§Äịa chỉ IP:Bá» qua tất cảẢnhKhông hoạt độngÄang lập chỉ mục các bài đăngThêm videoCác bình luận JetpackCác tùy chá»n JetpackJetpack đã ngắt kết nối thành công.Jetpack trong chế độ phát triển ná»™i bá»™.Jetpack hiện không được kết nối vá»›i Wordpress.comNgôn ngữChiá»u dàiSá»­a đổi lần cuốiXem thêmGá»­i phản hồiTrả lá»i phản hồi cho %sGá»­i phản hồiTráiSángLiên kết tài khoản cá»§a bạn đến WordPress.comXem Trước Tức Thá»iÄang tải Bình luận...Äang tải 26%Äang tải...Äăng nhậpThoát rad.m.Y @ H:iPhương tiệnTập tin Ä‘a phương tiệnTrung bìnhMenuTrình đơnTin nhắnThư đã được gá»­i!Tin nhắnÄã lên kế hoạch:Cho phép ngưá»i dùng đăng ký bài đăng và bình luận cá»§a bạn và nhận thông báo qua email.Hiển thị các liên kết tá»›i ná»™i dung liên quan dưới các bài đăng và trang.Bật trình rút gá»n liên kết WP.me cho tất cả bài đăng và trang.Tổ chức và hiển thị các loại ná»™i dung khác nhau trên trang cá»§a bạn, tách biệt khá»i các bài đăng và trang.Xuất bản các bài đăng qua email, sá»­ dụng bất cứ thiết bị và máy khách email nào.Tá»± động chia sẻ các bài má»›i trên các mạng xã há»™i.Chia sẻ các bài đăng và bình luận công khai cá»§a bạn cho các máy tìm kiếm và các dịch vụ khác.Sá»­ dụng ngôn ngữ đánh dấu LaTex trong các bài đăng và trang cho các phương trình phức tạp và các nhu cầu chuyên sâu khácViết các bài đăng hoặc trang trong cú pháp Markdown văn bản thuần.Các bài liên quanLưu trữ thángThêmThông tin thêm vá» việc sá»­ dụng các bài đăng liên quan.TênMá»›i nhấtTrang sau »tiếp theo 26KhôngKhông tìm thấy plugin nào.Không có gợi ý nàoKhông tìm thấy thẻ đánh dấu nào.KhôngThông báoOKTrên trang này, bạn có thể xem các mô-Ä‘un có sẵn trong Jetpack, tìm hiểu thêm vá» chúng, và bật hoặc tắt chúng khi cần.Mở đưá»ng dẫn trong cá»­a sổ/thẻ má»›iTùy chá»nMàu da camThứ tá»±Trang:ÄÆ°á»ng dẫnMàu hồngXin vui lòng làm rõ liệu bạn có muốn tắt kết nối má»™t blog hoặc ngưá»i dùng.Äã kích hoạt plugin.Äã vô hiệu plugin.PluginPhổ biếnGá»­i bình luậnÄăng bởiÄăng bởi %sBài viếtBài viết & Bình luậnBài đã được lập chỉ mục.Äăng trang web nàyXem thá»­Xem trước:Menu chínhInRiêng tưDá»± án đã được cập nhật.Dá»± ánCông khaiÄăng bài viếtÄÆ°á»£c đăngMàu tímÄánh giáBài viết má»›iMàu Ä‘á»Lập chỉ mục lại các bài đăngCó liên quanCác bài viết liên quanBài viết liên quanTrả lá»iPhục hồiPhục hồi chỉ mục này từ Thùng RácPhảiLưu lạiLưu thay đổiÄã lên kế hoạchTìm kiếmTìm kiếm phản hồiÄể lại lá»i nhắnTìm kiếmTìm pluginPhân cách các thẻ bằng dấu phẩy (,).Cài đặtChia sẻ:Mã nguồnHiển thịHiển thị tiêu đỠ"Có liên quan" để phân tách rõ ràng mục liên quan vá»›i các bài đăngHiện ná»™i dung liên quan sau các bài đăngHiển thị:Màu bạcBài tương tá»±Tên trangTrang webMá»™t số tính năng cá»§a Jetpack sá»­ dụng cÆ¡ sở hạ tầng cá»§a Wordpress.com và yêu cầu ná»™i dung công khai cá»§a bạn được phản ánh ở đó. Nếu bạn gặp các vấn đỠgián Ä‘oạn chỉ ảnh hưởng tá»›i các bài đăng nhất định, hãy thá»­ yêu cầu lập chỉ mục lại các bài đăng cá»§a bạn.Má»™t số themes và plugin có xung đột vá»›i Jetpack – kiểm tra danh sách này. (Bạn cÅ©ng có thể duyệt trong trang trợ giúp cá»§a Jetpack hoặc diá»…n đàn trợ giúp cá»§a Jetpack để xem những ngưá»i khác đã trải qua và xá»­ lý được vấn Ä‘á».)Xin lá»—i, không có mô-Ä‘un nào được tìm thấy vá»›i chuá»—i tìm kiếm "%s"Sắp xếp theo:SpamThống kêCSS đã được lưu.Chá»§ Ä‘á»LưuGá»­i »Äang đăng bình luận%sTheo dõiTheo dõi blog qua emailTrợ giúpTên thẻThẻÄiá»u khoản dịch vụVăn bảnPhiên bản Jetpack hiện tại: %sblog_id WordPress.com là %dPlugin đã được cài xongXảy ra lá»—i khi cài plugin.Bài viết này được bảo vệ bằng mật khẩu.Bài viết được bảo vệ bằng mật khẩu. Vui lòng nhập mật khẩu để xem ná»™i dung và lá»i bình.Ngưá»i dùng này chưa được xác thá»±c để %s trên blog này.Thu nhá»Thá»i gianTiêu Ä‘á»Tiêu Ä‘á»:Bài nổi bậtBài & Trang được đáng chú ýThùng rácTumblrTên đăng nhập Twitter:LoạiÄÆ°á»ng dẫnKhácKhông được đăngNgừng theo dõiBài không có tiêu Ä‘á»Äang tải lên...Sá»­ dụng má»™t bố cục lá»›n và nổi bật thị giácTên đăng nhậpGiá trịXem tất cảXem tất cả tính năng cá»§a JetpackXem trên InstagramXem:Chúng tôi không thể hiển thị bài viết cho blog này.Chúng tôi không thể tải dữ liệu blog vào thá»i Ä‘iểm này.Trang webMàu trắngTiêu đỠwidget:Vá»›i %s bình luậnY/m/dY/m/d g:i:s ACóBạn không có quyá»n lấy ra khá»i thùng rác.Bạn không có quyá»n bá» vào thùng rác.Bạn không có đủ quyá»n để xem trang này.Bạn cần đăng ký Jetpack trước khi kết nối.Phản hồi cá»§a bạn Ä‘ang chỠđược xét duyệt.vàHá»§y bá»click vào đâyngàySá»­aTrong "%s"Äang tải…thángPhản hồibảo mật, tuyến bảo mật, bảo há»™, tấn công mạng, lá»±c lượng bạo độngthống kê, theo dõi, phân tích, lượt xem, lượng truy cậpGoogleInTháng trước15 phút trướcXem: %stuầnplugins/jetpack/languages/jetpack-sk_SK.mo0000755000312500031250000004330412651056012021217 0ustar eacbforgeacbforgÞ•? ¯ È É Ö ã ðþ% < GxRËÔåìðø # '17Iˆ ˜£¶ ¼ ÊÔÙí ô  3RX`w €Š £± Ì5Ù  !,BXkp u€ˆ¢ ¿ËÞü5 N8Z“šŸ¨· ½Ë Úåö ) H *O 5z ° ¹  Ò Û ñ -ö $!,!2!9!A!F! K!W! \! h! r! }!‹!‘! ¢! ¯! º! Å!Ñ! Ú!ç! ø!""/-"”]"ò"ø"# # # # +#9# M#[#`# f#q#w# ˆ#•#¦# ¶# Á# Ë# Ø#å# ë#ö#ý# $ $ $!$1$I$c$x$‰$Ž$ Ÿ$©$ ®$ »$É$ Ì$ ×$ á$ë$ý$%%-%>% C% Q%)_% ‰%ª% ­%º% Ã%Ï%í%õ%ü%& &&&&&+& 3& @& L& W& d&q& w&‚&3Š&¾&Ä&Ì&Ô& Ü&æ&í& ô&''' ',' 2'<'Z'6x'¯' ·'Ø'Þ' ã'ð' ( (($( 4(A(+P(|( –(£(¬(Å(Ë( Ý(é(ú(ÿ().)4) ;) H) R) \)g)m)s)|))‡)™)¡) ¨) ¶)À)È)Ñ)Ö)ç) ì) ö)* *1,*Y^* ¸*IÙ* #+-+2+B+H+ O+Y+ o+|+‚+˜+ +±+¶+ º+ È+Ô+ Ü+é+,, , ,5,/>,n,v,|,ƒ,—, ,«,¿,7Ã,3û,M/-;}-$¹-Þ-ò-ö-ý-... .+. <.I.X. i. w. ….. •. ¡/ ­/ º/ Ç/ Õ/ß/ó/0 0 +0x60 ¯0º0Í0Ö0 Þ0ì0!1$1*121C15[1‘1˜1 ­1¸1Ê1Ò1 á1ï1ö1 22 &21282 S2(`2 ‰2 “22 »2 Æ2Ð2ê2ú234'3\3m3 v3ƒ3"›3¾3Ñ3Ø3ß3 è3ó3û3 4,424G4e4n43‰4½4KÌ455 (555L5R5d5k5~55­5É5è54ï5<$6 a6 n6|6“6£6º66Â6ù67 777"7 57@7 F7 S7]7p77Š7Ÿ7¯7Â7Ó7ç7ð7ÿ7!8@8P83i8—8 59@9F9N9 ^9 k9x9‰9£9´9»9 Â9 Ð9Ú9ñ9:: *: 7: D:P: c:p:†:: ”:¢:ª:¼:Õ:ç:ù:;";'; 9;E;J;Y;h; l; x; †;#”; ¸;Ù;é;<<!< 2<2?<'r<š<< °<¼<!Î< ð< ú< = = =%=+=?=H=O= a=k= t=‚=‘= š=¥=7®=æ= ï=ù= > >> #>.> B>L>g>y> ‹> –> >¢>¤>¦>¯>Ï>Ö>ß>î> ???4?O?_?9o?©? Ã? Ð?Û? õ?ÿ?@.@C@&L@5s@ ©@ ´@À@ Ô@â@ò@AAA'A ,A"8A[AcAkA {A…A AšA¡AÀAÅAÕAÞA ùA'B .B&9BP`B ±B¼BÁBÑBØBàBôBC/C5CSC[ClCpC tC€CCžC*¯CÚCñC ùCDDB*D mDyDDˆD¢D ©D¶DËD8ÐD5 Ec?E9£E&ÝEFFF&F+F4FFF MFWF _FlF{F‘F £F ¯F ºF.&3’£ Øé*hšõÜ1¸ü‹<#Çæ†ý©-ájÓ­Ï= ðº /dwžÞ|Ÿ€ 'Á™œAZ̓0lÛ÷»À¥ÐÚƘt^V‰}¿¬;î{x"M('ûYI6v=B(79ä"ÎÖ_@°G&å!È—ô54Ž:Ý?ÔJó‚øg+c+uò]·p<‘n!Tâí8F 2f“L à¾:m Ñ¢ö¨±$Ã) µ8RïbSÄ9Å01PÉ›¼%K >Hq¯ªÊ„ß -y5Ì7ˆ6úo4èŠ×).%þìrË«Eñ”iã[a*‡§…$sDNzÙ¡?3¦/ë´;# ÂÕkOCW•> Òç¶e–~\,`²ù êQ³½2¹,UX®¤Œÿ%1$s at %2$s%1$s on %2$s%s (Jetpack)%s (Required)%s ago%s is required« Previous— Select —(no title)(required)%4$sActivateActivate AkismetActiveAddAdd NewAdd a new serviceAdd or remove tagsAlbumAllAll postsAn incompatible plugin.Are you sure you want to disconnect from WordPress.com?ArtistAttachment PageAutomatticAvailable ServicesBlackBlog ArchivesBlog URL:BlueBorder Color (hex):CancelCancel replyCategoryCenterChart stats byCheatin’ uh?Choose from the most used tagsCloseCommentComment cache problem?CommentsConfigureConnect to WordPress.comConnected as:Connected to WordPress.comContact InfoContinue reading →Crop ImageCustomCustom CSSCustom field deleted.Custom field updated.Daily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay an official Twitter Embedded Timeline widget.Display as:Do not allow other users to access my VideoPress libraryE-mailEditEdit CSSEdit Menu ItemEmailEmail AddressEmail Address:Empty SpamEnabled ServicesEnter your email addressError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:FeaturedFeatured ImagesFeedbackFor more information:FreeFront Page, Archive Pages, and Search ResultsGalleryGreenHeightHeight:HideHomeIP Address:IconIcon + textIcon onlyIgnore allIgnore alwaysImageImage Alignment:Image Color:Image GridImage ListImage Size:InactiveInsert VideoInvalid usernameJetpack FAQJetpack SupportJetpack by WordPress.comJetpack requires WordPress version %s or later.Jumpstart Descriptiongive visitors two easy subscription options — while commenting, or via a separate email subscription widget you can display.LabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLike this:LikesLikes and SharesLive PreviewLoading video...Loading…Loading...Logged InM j, Y @ G:iMark as SpamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMissed scheduleMissing target post ID.Module NameRelated PostsMonthly Archives: %sMonthly archivesMoreMore informationMy TweetsNameNext »Next » NoNo BordersNo FooterNo HeaderNo feedback foundNo plugins found.No suggestionsNo tags found.No themes found.NoneNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.OKOgg File URLOlder %sOlder postsOpen link in a new window/tabOptionsOrangeOrderPage %sPages:PathPermalink to %sPinkPluginsPost CommentPost by %s.Posted by Posted by %sPosted in %sPostsPress ThisPreviewPreview: changes must be saved or they will be lostPrintPrivacyProjectPublishPublishedPurpleRatingRecent PostsRedRegistered usersRelatedRelated PostsReplyRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesSave configurationScheduledSearchSearch CommentsSearch FeedbackSearch MediaSearch PluginsSent by an unverified visitor to your site.Separate tags with commasService nameSettingsSettings have been savedShareShare on FacebookShare this:Sharing SettingsShowShow top posts overShow top search terms overShow:SilverSimilar postSite LogoSite NameSite StatsSitesSmallSort by:SpamStatsStylesheet saved.SubjectSubmitSubmit »SubscribeSupportTag nameTagsTerms of ServiceTextText ListText onlyThe image needs to be at leastTheme: %1$s.There was an error while deactivating the module.This HTML form field is marked as required by the user in contact form builder(required)This post is password protected.This post is password protected. Enter the password to view any comments.ThumbnailTimeTimeline Theme:TitleTitle:Top PostsTop Posts & PagesTop SearchesTrashTry connecting again.TwitterTwitter TimelineTypeURLUncategorizedUnpublishedUpdatedUpload ImageUser linked to WordPress.comUsernameValueVaultPressVaultPress dashboardView AllViews over 48 hours. Click for more Site Stats.WebsiteWhiteWidth:WordPress.com StatsY/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can activate or deactivate individual Jetpack modules to suit your needs.You do not have sufficient permissions to access this page.Your comment is awaiting moderation.Your current IP: %sandcanceldayedithttp://jetpack.memonthnounCommentshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthis videoweekPO-Revision-Date: 2015-07-22 06:09:02+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s o %2$s%1$s na %2$s%s (Jetpack)%s (povinné)%s dozadu%s je povinné pole« PredoÅ¡lá— VybraÅ¥ —(bez názvu)(povinné)%4$sAktivovaÅ¥AktivovaÅ¥ AkismetAktívnyPridaÅ¥PridaÅ¥ novýPridaÅ¥ novú službuPridaÅ¥ alebo odstrániÅ¥ znaÄkyAlbumVÅ¡etkoVÅ¡etky ÄlánkyNekompatibilný plugin.Ste si istý, že sa chcete odpojiÅ¥ z WordPress.com?UmelecStránka s prílohouAutomatticDostupné službyÄŒiernaArchívy bloguAdresa blogu:ModráFarba okrajov (hex):ZruÅ¡iÅ¥ZruÅ¡iÅ¥ odpoveÄKategóriaCenterTabuľkové Å¡tatistiky odPodvádzame?VybraÅ¥ z najpoužívanejších znaÄiekZatvoriÅ¥KomentárKomentovaÅ¥ problém s cache?KomentáreNastaviÅ¥Pripojit na WordPress.comPripojený ako:Prepojený s WordPress.comKontaktné údajeČítaÅ¥ Äalej →OrezaÅ¥ obrázokVlastnéVlastné CSSVlastné pole zmazané.Vlastné pole bolo aktualizované.Denný archív: %sTmaváDátumVypnúťZákladnýZmazaÅ¥ZmazaÅ¥ natrvaloZmazaÅ¥ túto položku natrvaloPopisZablokovaÅ¥ CSS a JSOdhlásiÅ¥ sa z WordPress.comZruÅ¡iÅ¥ZobraziÅ¥ text v hlaviÄkeZobrazí oficálny Twitter embedded timeline widgetZobraziÅ¥ ako:ZakázaÅ¥ ostatným používateľom prístup k mojej VideoPress filmotéke.E-mailUpraviÅ¥UpraviÅ¥ CSSUpraviÅ¥ položku menuEmailE-mailová adresaEmail:VyprázdniÅ¥ spamyPovolené službyZadaj tvoju emailovú adresuChyba pri presune do koÅ¡a.Chyba pri obnovovaní z koÅ¡a.Chyba!Chyba: Prosím, zadajte korektnú e-mailovú adresu.Chyba: Zadajte, prosím, požadované údaje (meno, e-mail).Napríklad: OdporúÄanéPrezentaÄné obrázkySpätné ohlasyPre viac informácií:ZadarmoPredná Strana, Archív Stránok a Výsledky HľadaniaGalériaZelenáVýškaVýška:SkryÅ¥Domovská stránkaIP Adresa:IkonaIkona + textLen ikonaIgnorovaÅ¥ vÅ¡etkoVždy ignorovaÅ¥ObrázokZarovnanie obrázka:Farba obrázka:Obrazová mriežkaObrazový zoznamVeľkosÅ¥ obrázku:VypnutýVložiÅ¥ videoNeplatné užívateľské menoÄŒasto kladené otázky o JetPackPodpora JetpackJetpack od WordPress.comJetpack vyzaduje WordPress verzie %s alebo novší.dá návÅ¡tevníkom dve jednoduché možnosti predplatného - cez komentáre, alebo cez samostatný email widget, ktorý si môžete nechaÅ¥ zobraziÅ¥.OznaÄenieJazykVeľkýPosledná zmenaZistiÅ¥ viacZistiÅ¥ viacPridaj komentárNapísaÅ¥ odpoveÄ pre %sPridaj komentárVľavoJasnáPáÄi sa mi:PáÄi saPáÄi sa a zdieľaniaŽivý náhľadNahrávam video...NaÄítava sa…Nahrávam...prihlásenýj. F Y, G:iOznaÄiÅ¥ ako spamMultimédiáMultimediálny súborStrednýMenuPoložka menuSprávaSpráva odoslanáZmeÅ¡kané naplánovanieChýba koment ID.Podobné ÄlánkyMesaÄné archívy: %sMesaÄný archívViacViac informáciíMoje tweetyMenoÄŽalej »ÄŽalej »NieBez okrajovBez pätiÄkyBez hlaviÄkyNenájdené žiadne spätné ohlasyNeboli nájdené žiadne moduly.Žiadne návrhyNebol nájdený žiadny tag.Témy nenájdené.ŽiadneNiÄ sa nenaÅ¡loNotifikácieUpozorniÅ¥ ma na nadväzujúce komentáre emailom.UpozorniÅ¥ ma na nové Älánky emailomOKAdresa súboru OggStarÅ¡ie %sStarÅ¡ie ÄlánkyOtvoriÅ¥ odkaz v novom okne/karteMožnostiOranžováZoradenieStránka %sStránky:CestaTrvalý odkaz na %sRužováModulyPridaÅ¥ komentárAutor: %sPridanéPublikoval %sKategória: %sÄŒlánkyPress ThisNáhľadNáhľad: zmeny musia byÅ¥ uložené, inÃ¡Ä sa stratiaTlaÄiÅ¥SúkromieProjektPublikovaÅ¥PublikovanéFialováHodnotenieNajnovÅ¡ie ÄlánkyÄŒervenáRegistrovaný užívateliaPodobné ÄlánkyPodobné ÄlánkyOdpovedaÅ¥Povinné? ObnoviÅ¥ObnoviÅ¥ túto položku z koÅ¡aVpravoUložiÅ¥UložiÅ¥ zmenyUložiÅ¥ konfiguráciuNaplánovanéHľadaÅ¥HľadaÅ¥ v komentárochVyhľadaÅ¥ spätné ohlasyHľadaÅ¥ súborHľadaÅ¥ modulyOdoslané neovereným návÅ¡tevníkom na tvojej stránke.Heslá oddeľte ÄiarkamiMeno službyNastaveniaNastavenia boli uloženéZdieľaÅ¥ZdielaÅ¥ na FacebookuZdieľaj tento Älánok:Nastavenia zdielaniaUkázaÅ¥ZobraziÅ¥ najlepÅ¡ie Älánky navrchu.ZobraziÅ¥ hore najÄastejÅ¡ie vyhľadávané spojeniaZobraziÅ¥:StriebornáPodobný príspevokLogo stránkyNázov stránkyÅ tatistiky stránkyStránkyMalýZoradiÅ¥ podľa:SpamÅ tatistikyÅ týlový dokument bol uložený.PredmetZaslaÅ¥OdoslaÅ¥ »OdoberaÅ¥PodporaMeno znaÄkyHesláPodmienky poskytovania službyTextTextový zoznamLen textObrázok musí byÅ¥ aspoňTéma: %1$s.Nastala chyba pri deaktivovaní modulu.(povinné)Tento príspevok je chránený heslom.ÄŒlánok je chránený heslom. Prosím vložte heslo pre zobrazenie komentárov.MiniatúraÄŒasTéma timeline:NadpisNadpis:NajlepÅ¡ie ÄlánkyNajlepÅ¡ie Älánky a stranyNajÄastejÅ¡ie vyhľadávanéKôšPokúsiÅ¥ sa znovu pripojiÅ¥.TwitterTwitter timelineTypURLNezaradenéNepublikovanéAktualizovanýNahraÅ¥ obrázokUžívateľ bol prepojený s WordPress.comPoužívateľské menoHodnotaVaultPressNástenka VaultPressUkázaÅ¥ vÅ¡etkoPrezretí za 48 hodín. Pre viac kliknite na Å tatistiky stránky.Adresa webuBielaŠírka:Å tatistika WordPress.comj. F Yj. F. Y, G:iRoÄné Archívy: %sÃnoNie je vám dovolené presunúť túto položku z koÅ¡a.Nemáte povolené presunúť túto položku do koÅ¡a.Môžete aktivovaÅ¥ alebo deaktivovaÅ¥ jednotlivé moduly Jetpacku, aby vyhovoval vaÅ¡im potrebám.Nemáte dostatoÄné práva na prístup k tejto stránke.Váš komentár Äaká na schválenie.VaÅ¡a IP adresa je: %saZruÅ¡iÅ¥deňUpraviÅ¥http://jetpack.memesiacKomentárTwitterminulý deňMinulý mesiacminulý triÅ¡tvrÅ¥rokminulý týždeňminulý roktoto videotýždeňplugins/jetpack/languages/jetpack-lv.mo0000755000312500031250000000144612651056012020627 0ustar eacbforgeacbforgÞ• l ¼ðñ ù!6?v ”® À ËÖØÚ Üêù% CommentRSS LinksResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... SettingsSubmit »Themes[%s] Joining confirmationPO-Revision-Date: 2015-08-24 07:10:50+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev KomentÄrsRSS saites UzstÄdÄ«jumiSÅ«tÄ«t »TÄ“mas[%s] PievienoÅ¡anÄs apstiprinÄÅ¡anaplugins/jetpack/languages/jetpack-ca.mo0000755000312500031250000023430712651056012020575 0ustar eacbforgeacbforgÞ•4¼E\3pDqD„D”Dy¦D; E \E iE vEFƒEGÊEFF’"FHµFþFG&.G[UG±GÌGæG!õGHH/HEH \H gHCrH0¶HçHøH+I13IyeI-ßI9 J‹GJ©ÓJ4}K€²K63LjLsL„L‹LL—L§LC¹LýLM[#MM5˜MJÎM Nx#NsœNOO O 'O 1O>O NO"\OBOZÂOYPwPp€PfñPXQ_Q%oQ •Q Q³QÆQäQSõQ IRWR ]RkR ˆR’RÚ—R rS²S2T 6TDTZTaT(xT¡T ¨TµT¾TÇTÐTM×T%U4UGU%PUvU•UU ¬U·UÌUìUûUV0VLVeV~V˜V±V ·VÄV×VßVòVW! W.W>W EW OW\W"dW ‡W’W «WµW ÐWÝW ïW$üW5!X;WX“X §X²X ¹XÄXÚXïXÿXY+Y>YCY HYSYYYGaYq©YZ"Z5Z RZ^ZpZƒZ ™Z¤ZÂZ+ÊZöZ [E[/e[ •[ ¶[/Â[ò[*\n9\¨\#¹\&Ý\¥]Cª]î] ^^R^<p_Ó­_`†`` ž`«`½`Ï`ã` é`$÷`a0a ?aJa_a[oaËaÜavìaAcb¥bc¾b"c4cCc]c|c’c™c*¬c5×c d8d OdZdcd udƒd •d£d¬d¼dÐd Ùd äd ñd þd ee/eAe Wedeleqe-ve ¤e±¯eafif…f–f©f½fÎf Ôfâfüf gg*g CgPg!Ugwg¾|g†;h_Âh"i 6iBi GiSi \iMfi6´i ëi öijj&j,j =jJj aj lj wj‚j ’j žj ©j¶j¿j+Îj újãkëkûktlkˆlôlûlmm~0m¯m ÈmÔm åmómn"nu;n±nN1ov€o+÷o/#p>Sp3’pÍÆp/”qcÄq¢(r¾Ër2Šs½sÃs?És= tGGt\tfìtXSu¬uµu »u Éu Ôu ßuíu vvvv%vEv<ev"¢vÅv.ÎvývQw nw{ww w °w »w Åw Òwßwýwx x(x/x 4x>x FxSx\xexuxŒx¤x ¼x ÈxÕxèxîxy y!?y!ayƒyŸy¸yÌyæyzz.zKzazz™zµzÓz–ózŠ{Ÿ{°{µ{ Æ{Ð{Õ{ Ù{ã{ù{ | || | (|2|=Q||¡|³|Â|Ñ|â|}}û } ~ *~ 8~ F~)T~ ~~ Ÿ~F©~0ð~)!KN _Šk-öF$€k€ˆ€¦€)º€ä€ì€ó€ù€ +: KU ZdCt5¸%î+‚ @‚$a‚†‚ ‚¿‚>Ü‚ƒ8ƒ@ƒ Hƒ Uƒcƒ/sƒ £ƒ ®ƒ »ƒȃ΃߃ îƒ ùƒ „„3„ N„[„a„i„x„‰„ ›„¨„¾„ Æ„*Єû„…7 …<C…€…”…š… ¡…®…²…¹…Ë…Ú…í…þ… †† #†1†I†O† a†k†‰†6§†Þ† 憇—‡‡¢‡ ¹‡Ƈ Ö‡÷‡ ˆˆ -ˆ7ˆIˆPˆ`ˆ pˆ}ˆŒˆ£ˆ@²ˆ9óˆ%-‰ S‰^‰t‰+‰¼‰ Ö‰(ã‰/ Š;<ŠxŠŠšŠ Š ²Š¾Š Ô‹à‹è‹ø‹ Œ-Œ CŒQŒ²bŒ -8 L8X<‘Î Þ7ê "Ž‘,Ž"¾ŽáŽ÷Ž d&‹ ‘Ÿ ¦±· ÏÙß æKò2>5q§-ÁïøIýG‘P‘ e‘r‘x‘ˆ‘𑢑 ©‘·‘ Ì‘Ö‘è‘ø‘’,’4’=’L’ Q’]’.v’¥’«’2¼’ï’ô’ “ “ “%“!.“®P“Ëÿ“˔ݔ÷”¡ •¯•,Ï•2ü•y/–„©–s.—‘¢—©4˜§Þ˜ †™Ê“™Y^š?¸šYøš\R›¡¯›Qœ lœIœ#ל,ûœM(Nv ÅÏßäêð\÷úTž*OŸJz ÄÅ ~Š¡ ¢¢ )¢ 6¢B¢H¢^¢ e¢q¢y¢Š¢œ¢¡¢§¢ «¢¹¢ Ø¢ ä¢ð¢ ø¢ £Ö£@é£*¤G¤P¤ V¤a¤v¤ˆ¤‘¤"ª¤-ͤû¤d¥:z¥µ¥/»¥4륄 ¦¥¦#¶¦Ú¦'⦠§+§E§tX§ͧ Ó§á§ ô§¨¸¨ÅÀ¨†©jš©ª­ª˪ Ѫߪóª(÷ª7 «3X«8Œ«MÅ«@¬6T¬€‹¬; ­2H­!{­3­pÑ­7B®Qz®7Ì®¯ ¯4!¯sV¯]ʯ6(°$_°„°£°%¾°/ä°8±?M±!±¯±¿É±‰² ³ ³ ³ ³)³-³ 2³w<³´³¼³γä³´´%´ +´Q8´ Š´”´£´µ´Å´×´ê´þ´ µµ{.µ¤ªµ O¶\¶k¶ |¶ ж ˜¶£¶Á¶&ƶîí¶Ü·ñ· ¸†¸ ¤¸¯¸ ¿¸ ̸BÙ¸J¹g¹p¹’v¹C ºMº^ºrºf’ºùº»1»)A»k»r»»©»Ä» Ó» ß»4ì»!¼4¼/F¼5v¼¬¼8<½?u½Žµ½ÌD¾0¿œB¿Bß¿"À)À:À@ÀHÀPÀdÀjzÀåÀúÀnÁ$…Á>ªÁeéÁOÂfÂ{÷ÂsÃzÃÃ’à ¦Ã±ÃÂÃ)ÓÃGýÃqEÄV·ÄÅkÅhƒÅìÅôÅ,Æ 1Æ<ÆQÆ%eÆ ‹Æf™ÆÇ ÇÇ Ç ?ÇLÇQÇRÈÑbÈ4É8É!IÉkÉsÉ'ŠÉ ²É½ÉÖÉÞÉ çÉñÉWùÉQÊnÊ€ÊP•Ê&æÊ Ë Ë#Ë2Ë3OËƒË ™Ë"ºË"ÝË Ì!Ì!AÌ4cÌ˜ÌžÌ¯Ì ÁÌËÌæÌ Í/ Í<Í MÍ [Í eÍrÍ'{Í £Í®Í ÊÍÔÍðÍÎ%Î>=Î5|ÎI²ÎüÎÏ 'Ï5Ï"GÏ,jϗϯÏÌÏìÏþÏÐ ÐÐÐ*Ð3Ð BÐLÐ$eÐ ŠÐ–ЩÐ*¼Ð çÐóÐ Ñ,ÑHÑ]Ña}Ñ/ßÑ%Ò 5ÒCCÒ‡Ò)šÒgÄÒ,Ó <Ó1]Ó¶ÓJFÔ(‘ÔºÔÃÔ‹ÖÔDbÖ§Ö¨× ®×¹×Ó×å×û× Ø"Ø5ØCJØ$ŽØ"³ØÖØ,æØÙl'ٔ٣٥¸ÙV^Ú'µÚ‡ÝÚeÛ|Û.Û"¼Û,ßÛ ÜÜ;%Ü@aÜ¢Ü«Ü ³Ü¾ÜÇÜãÜøÜÝ (Ý3Ý!FÝhÝ ~݌ݛݪݺÝÑÝæÝÞÞ3Þ ;ÞEÞ=LÞŠÞÙ’Þlß.tߣßÀßàßÿßàà+àKà Sàaà$jà àœà:¢àÝàÙíàžÇá…fâìâ ã ã ãã /ãW=ã@•ã Öã äãòãää ä9ä Mänä€ä‘ä¢ä¾äÑäãäøäå+åCåïSåCæ([æ|„æjçlçsç{ç/’ç“ÂçVèsèƒè ™è.§èÖè#éè éŒéRêmê$þê+#ëCOë*“ëå¾ë<¤ìqáìÏSíÆ#î7êî"ï(ï1ïDïHïQïXï`ïdïmïrï ‡ï”ï¥ï ¸ïÄï×ïàïåï/îï$ðCð#Iðmð/vð/¦ðhÖð?ñ#Rñvñ•ñ¯ñ ÄñÎñâñ úñ"ò>òEòLòTòZòlòuò …òò˜ò²ò)Ðò2úò-óFóXóróxóŽó  óÁóØóøóôô "ô0ôPô eôpô…ô”ô ªô¸ôÌôãô•õ–õªõºõ¿õÐõßõãõéõòõ öö9öTöWölö"}öU ööö÷-÷=÷X÷$q÷–÷µ÷ð¹÷ªø½øÐø ãø3ñø:%ù`ùgùkùqùzù‚ù’ùŒ¤ù51ú gúqú.tú£ú$½úâúêúòú øú û ûûû6ûJû Zûhû mû wû,…û3²û6æû<ü/Zü!Šü¬üÈüçü7ý >ý _ýjýsý†ý¥ýJ»ý þþ #þ0þ9þOþcþ{þ Šþ —þ6¥þÜþ ìþ öþÿÿ.ÿEÿWÿfÿ nÿ<xÿµÿ¼ÿSÄÿF_w †‘¢ª±ÃÕè û0A_f €‹‘&š£Áek p‘¡)·á÷'/FLa p}Ž®mÄ820kœ(¸'á4 >] l9wX±  .9PQb´ ÇÒçÿVp‰Ôšo v – § Æ IÕ N n € D•  Ú —ç + "« Î $ì r „  ¦ ¬ È Î ê     P# 5t ?ª ê 8 9 FNT £®Æ×æø * IVm'~¦¿ÆØ éó/" R]8r«°ËÛ ê ö ¼%äâÇØõÄ #Ò,ö(#xLƒÅ‡IŠÑ°\·  ÅþÑfÐC7 {h‡Êð»,Ûf;o.«WÚS2 †£¨®µq½F/fvTÝÙ2 ‚ !!¤!Â! Ø!ä!í! ""#","A"U"["a"e")m" —"¤" ¶"Â"Ò"ãç"WË#"#$ F$S$ Y$ d$…$ ˜$¦$7Æ$ þ$) %p3%W¤%ü%Q&ZU&€°&1'*J'u')~',¨'Õ'ô'„ ((•(¥(¸(È(ÝÑ(ÿ¯)¯*uÏ*E+Àa+", (,4,D,4H,@},8¾,G÷,q?-E±-7÷-’/.?Â.C/F/7e//20`P0G±0ù0 1P$1u1kõ10a2'’2!º2Ü2#÷2:3AV3R˜3'ë3&4Ë:45”5 –5¡5 °5º5¾5 Ä5aÒ5 46@6R6h6o6 ‰6”6 ˜6¢6 ©6³6Æ6Ï6Ö6 ß6 é6 ÷677Ž7²Ÿ7 R8 `8n8~8 ‘8 ž8 ¬8¶8¾8ÿu¯Df/»¢ä—N±8žQ«‡@+$r$DZØÙ"F<ð ÀÎaÌî=&‰”_1•] *ÏZ?¥!-L¹Ç™ð0‡yÈiª*퀧(0P½9VÚ®þà'-ŒuäpPð- x…ª;¶“YCÆâ>4"áÚŠ4³ûÈòý¬ÖIÙ¡^.y­„1‡Iù'Èq“QnH­†^!¡/º…W dÛˆez€¨¯óÊö͆ÞÀõ(~ ÉG»Õþõgã3ô&JöD5—!£Æÿ¿¦BT¡ml¿òmËÿŽ}#U.T_¢y¼.aÙ¶Ü„¹ê8m5¾}2¸`Ôµ°’xiîg¥ËùÏ)ž™ ·s¼æ MWCjpOžë¦UŸ-cRßè} –5º ?†×›JßlõGVSO0,°7Ëz%ì)>!ú{6løRnÃRs—Z‘‹Ÿ÷MÊñUŒêe‰Žw¦Š®YÒµ:Ø$rè­X(Ò‹N2©ŽIÏöN˜ šQZº,Íâ Õý2Ñvq”&Sçt æt‹r\ñÌ•ÕK6¨§–|{¥Bëc›\A’Æ^&˜[’ÁôO¤7½×éýˆ#¢ÄøÛÓé´Eà…w_Á³f·\Á%Àã– ÐïçÝšÛAxúÃî¤fÅ<Pû¸ó¸tévE¼T]ß@zƒ3£Í´ëd[ÅYKG=#Å;ŸÚÓ+Ã7ˆ £Š€²;Ô*½Î‘âÜq`Ì  C+¶¬4oSñüÇ‚d¿›²µ±BJŒœ~gX:‰Fvnø?EÎÄjÞb)Vû“/[hɃ‚¾(3¨ì°A bÖ</9œ h1  Ð"Ý%|+™4boL•÷FÖ'#ü«9‚"š{`K:h,÷Â,¹˜íå´o„§ÐÒèHÝjª ²ƒakÄ e%¬$=à»ã Ôi³êXÊíúòH|>áDï¤ï¾ ü)*œô©WcìØ©uM~Ñ·‘sÉk1Þó.åçÂ'3w Ü@ ù”® k¯0æþ«Ó×]2påäáÑ68L# of Tweets Shown:%1$s %2$s Views%1$s – %2$s%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%s (Jetpack)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is not a valid command.%s is not a valid module.%s is required%s requires a valid email address%s: %s« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 Reply« Older%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentActivateActivate AkismetActiveAddAdd NewAdd a new fieldAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdditionally you can define your own custom services.Adjust your Jetpack Comments form with a clever greeting and color-scheme.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.AlbumAllAll ProjectsAll postsAlphabeticalAlternate text:An %s AirlineAn Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Answer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.ArtistAttachment PageAutomatically proofread content when:AutomatticAvailable Modules:Available ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:BlueBring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Button styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I view my feedback within WordPress?CancelCancel replyCaption:CarouselCategoryCenterChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?CheckboxChecking email updates status…Choose from the most used tagsCirclesClichésClick hereClick to Press This!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseColor SchemeComing soon…CommentComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnectConnect and share your posts on %sConnect toConnect to WordPress.comConnectedConnected to WordPress.comContact FormContact Form URL:Contact InfoContact the Jetpack Happiness Squad.Continue reading →Count the page views of registered users who are logged in.Create Share ButtonCrop ImageCustomCustom CSSCustom CSS StylesheetCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Daily Archives: %sDarkDateDeactivateDebugDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisable Post By EmailDisconnectDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice.Display Header TextDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay as:Display images in full-size carousel slideshow.Do I need to fill this out?Do you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Double NegativesDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.EditEdit CSSEdit Menu ItemEdit ProjectEdit Selection...Edit Your ProfileEdit this new fieldEmailEmail AddressEmail check failed, please try againEmail notificationsEmail settingsEmpty SpamEnable Post By EmailEnable carouselEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFeaturedFeatured ImagesFeed(s) to Display:FeedbackField typeFirst optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFor more information:Form builderFormat:FreeFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!GalleryGallery Carousel ScreenshotGive Us FeedbackGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:Here’s what your form will look likeHidden VerbsHideHide the stats smiley face image.HomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:InactiveIndexing postsIndexing request queued and waiting…Insert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Invalid requestInvalid security token.It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.JargonJetpackJetpack CommentsJetpack Comments ScreenshotJetpack Comments enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site.Jetpack Debugging CenterJetpack FAQJetpack SettingsJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will automatically take the great published content from your blog or website and share it instantly with third party services like search engines, increasing your reach and traffic.Join %s other subscriberJoin %s other subscribersLaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLink URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading Comments...Loading video...Loading…Loading...Logged InM j, Y @ G:iMain SidebarMark this message as NOT spamMark this message as spamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile AppsMobile ThemeMobile-compatible:Mode:Module NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameInfinite ScrollModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NamePost by EmailModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSubscriptionsModule NameTiled GalleriesModule NameWidget VisibilityModule NameWordPress.com StatsModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationMy TweetsNameNewNew fieldNewer Comments →NewestNext »Next » NoNo FooterNo HeaderNo comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo plugins found.No suggestionsNo tags found.No themes found.No writing errors were found.Nonce verification failed.NoneNope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don’t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.Not ConnectedNot connectedNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagOKOfficial buttonsOlder postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.One New Jetpack Module%s New Jetpack ModulesOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPersonal LinksPhrases to AvoidPingback:PinkPinterestPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please verify your birthday.PluginsPopularPost CommentPost by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts indexed.Posts pagePreprocessor:Press ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProject updated.Proofread WritingProofreadingProudly powered by %sPublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RadioRatingRecent PostsRedRedditRedundant PhrasesRefresh StatusRegenerate AddressRegistered usersRelatedRelated postsRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll InfinitelySearchSearch CommentsSearch FeedbackSearch MediaSearch PluginsSearch Results for: %sSearch resultsSelect a user or pick "custom" and enter a custom email address.Select the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow FacesShow Personal LinksShow StreamShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow buttons onShow likes.Show map of photo location in carousel, when available.Show moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show sharing buttons.Show top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shutter SpeedSilverSite StatsSitesSkip to primary contentSlideshowSmallSmileySmiley faceSorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatsStatus unknown.Stylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSupportTag nameTagged with %sTagsTake SurveyTake WordPress with you.Take a survey. Tell us how we’re doing.TermsTerms of ServiceTest your site’s compatibility with Jetpack.TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.The After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Custom CSS editor gives you the ability to add to or replace your theme's CSS, all while supplying syntax coloring, auto-indentation, and immediate feedback on the validity of the CSS you're writing.The Image Widget The Jetpack Version is %sThe RSS Links Widget The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WordPress.com blog_id is %dThe following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The image helps collect stats and makes the world a better place but should still work when hiddenThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There was a problem communicating with the Proofreading service. Try again in one minute.There was an error communicating with the proofreading service.This HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow requires JavaScript.This video is intended for mature audiences.This video requires Adobe Flash for playback.This will deactivate all Jetpack modules. Are you sure you want to disconnect?ThumbnailTiled GalleriesTimeTime:TitleTitle:To configure your sharing settings, go to the Settings → Sharing menu.To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the CSS editor, go to Appearance → Edit CSS.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop SearchesTransparentTrashTry connecting again.TumblrTumblr blogTwitterTwitter TimelineTwitter username:TypeTypesURLUncategorizedUnlink user from WordPress.comUnpublishedUnsubscribeUpdatedUpload ImageUploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use automatically detected language to proofread posts and pagesUser linked to WordPress.comUsernameValueVaultPressVaultPress dashboardVerified ServicesView AllView Full Profile →View Site Stats without JavascriptView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView people's profiles when you mouse over their GravatarsView:Views over 48 hours. Click for more Site Stats.Visit Site Stats to see your stats.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.WP.me ShortlinksWarning! Multibyte support missing!WebsiteWelcome to Jetpack %s!What should the subject line be?What’s a Hovercard?What's a Gravatar?When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.WhiteWidget title:Widgets ScreenshotWidth (px):Width:With Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.WordPress.com StatsWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou must log in to post a comment.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.You will no longer receive email updates about Jetpack.Your Email AddressYour NameYour Site Stats work better with Javascript enabled.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andcancelclick hereconfiguredayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/in {category/tag name}In "%s"loading…locales%1$s/%2$smonthnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPress Thisshare toPrintshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 # de tuits mostrats:%1$s %2$s visualitzacions%1$s – %2$sSegur que sí. %1$s per afegir un caixa de text nova, una àrea de text, un botó d'opció, una casella de selecció o un desplegable.%1$s: %2$s%1$s a les %2$s%1$s en %2$s%s (Jetpack)Voleu rebre actualitzacions del Jetpack per correu electrònic? %sAra mateix esteu subscrit a les actualitzacions per correu electrònic. %s%s errorfa %s%s no es pot activar perquè s'ha llançat un error fatal. Potser hi ha algun conflicte amb alguna extensió que heu instal·lat?%s no s'ha pogut desconnectar. Esteu segurs de que està connectat?S'ha activat %s.S'ha desactivat %s.%s s'ha desconnectat amb éxit.%s és un potent llenguatge de marques per escriure complexes equacions matemàtiques, fórmules, etc.%s no és un comand vàlid.%s no és un mòdul vàlid.Es necessita %s%s necessita un correu electrònic vàlid%s: %s« Entrades anteriors← Comentaris anteriors— Selecciona —(sense títol)(necessari)%1$s al %2$sAprén més sobre aquestes opcions.% respostes1 resposta« Anteriors%s no és un lloc incrustat permès.S'ha activat el JetPack! Cada lloc web de la xarxa ha d'estar connectat individualment per un administrador d'aquest lloc web.S'ha desat la configuració del mòdul Està llest i preparat per menjar-te el món. El JetPack té un problema tècnic. Alguna cosa que no hauria d'haver succeït, ha anat malament. Suposem que teniu sort: %sEl JetPack té un problema tècnic. La connexió d'aquest lloc amb WordPress.com no és possible. Això significa normalment que el vostre lloc no és accessible públicament (localhost).El JetPack ja està connectat. Un formulari de contacte és una gran manera d'oferir als vostres lectors la possibilitat de contactar amb vosaltres, sense que doneu el correu electrònic.Unes poques paraules enganxoses que motivin els lectors a comentarActivaActiva l'AkismetActiuAfegeixAfegeixAfegeix un camp nouAfegeix un servei nouAfegeix un formulari de registre de correu electrònic per permetre a la gent subscriure's al vostre bloc.Afegeix altra opcióAfegeix o elimina etiquetesAfegiu botons per compartir al bloc i permeteu que els visitants comparteixin les entrades amb els seus amics.Afegeix aquest formulari a l'entradaDe manera addicional podeu definir els vostres propis serveis.Ajusta el formulari dels comentaris del Jetpack amb una salutació i esquema de color intel·ligents.Barra d'administracióAvançat. Si aquesta opció està marcada, heu d'incloure aquests fitxers en el tema manualment perquè els enllaços de compartició funcionin.After the Deadline proporciona un nombre d'opcions de personalització, que podeu editar al vostre perfil.ÀlbumTotsTots els projectesTots els enviamentsAlfabèticText alternatiu:Un %s aerolíniaUna línia aèria AutomatticUn administrador d'aquest bloc deu configurar la connexió del JetPack.S'ha produït un error en crear el vostre nou serveu de compartició - comproveu que doneu els detalls correctes.Respon una enquesta curta per fer-nos saber què estem fent i què afegir en un futur.AperturaNo hi ha cap resultat per l'arxiu sol·licitat. Potser cercar us ajudarà a trobar una entrada relacionada.Segur que voleu sortir de l'editor del formulari sense desar? Qualsevol canvi que hàgiu fet es perdrà.ArtistaPàgina adjuntaCorregeix el contingut automàticament quan:AutomatticMòduls disponibles:Serveis disponiblesEls codis curts disponibles són: %l.Color de fonsAssegureu-vos que feu clic al botó "Actualitza el perfil" del peu de la pàgina per desar els canvis.Llengua NegreArxiu del BlocSubscripcions del bloc (Jetpack)URL del blocBlauPorta el poder del núvol de WordPress.com al vostre WordPress. El JetPack us permet connectar el vostre bloc amb un compre de WordPress.com per fer servir les potents funcionalitats que normalment solament estan disponibles per a usuaris de WordPress.com.Estil del botóEn afegir un formulari de contacte, els lectors podran enviar-vos opinions. Totes les opinions s'escanegen automàticament per trobar-hi brossa, i les opinions legítimes s'us enviaran per correu electrònic.sCSSRevisions de CSSEditor de les fulles d'estill CSSCàmeraPuc afegir més camps?Puc veure la meva opinió al WordPress?Cancel·laCancel·la les respostesTítol:CarruselCategoriaCentratCanvia si els visitants poden subscriure's a les entrades, als comentaris o a tots dos.Gràfic d'estadístiques perFent trampes, eh?Casella de seleccióS'estan comprovant l'estat de les actualitzacions per correu electrònic…Trieu una de les etiquetes més usadesCerclesClixésfeu clic aquíFeu clic per publicar això!Feu clic per enviar un correu electrònic a un amicFeu clic per imprimirFeu clic per compartir a Google+Fes clic per compartir al LinkedinFeu clic per compartir a PinterestFes clic per compartir al RedditFeu clic per compartir a TumblrFeu clic per compartir al TwitterFeu clic per veure la presentació amb diapositives.TancaEsquema de colorMolt aviat…ComentariNavegació pels comentarisS'està comentant com a %sComentarisEls comentaris d'aquesta entrada estan tancats.Frases complexesConfiguracióConfiguraConfigura %sConnectaConnecta i comparteix les entrades a %sConnecta aConnectat amb WordPress.comConnectatConnectat amb WordPress.comFormulari de contacteURl del formulari de contacte:Informació de contactePoseu-vos en contacte amb l'Esquadró de la Felicitat Jetpack.Continua llegint →Compta les pàgines vistes dels usuaris registrats que s'han identificat.Crea un botó per compartirRetalla ImatgePersonalitzatCSS personalitzatFulles d'estil CSS personalitzadesAdreça de correu electrònic personalitzadaMissatge personalitzat:Camp personalitzat suprimit.Camp personalitzat actualitzat.Arxius diaris: %sObscurDataDesactivaDepuraPredeterminadaCamp nouPrimera opcióSuprimeixSuprimeix definitivamentElimina aquest element permanentmentDescripcióSignes diacríticsDesactiva CSS i JSDesactiva l'entrada per correu electrònicDesconnectaDesconnectat de WordPress.comOblida-hoRebutja aquest avís i desactiva el Jetpack.Rebutja aquest avísMostra el text de la capçaleraMostra una caixa M'agrada del Facebook per connectar els visitants a la seva pàgina del FacebookMostra una versió mini del perfil del gravatarMostra una imatge en la barra lateralMostra com a:Mostra les imatges a mida completa a les diapositives del carrusel.He d'omplir això?Encara teniu l'extensió %s instal·lada?No feu això! Necessiteu estar identificats al vostre bloc del WordPress mentre s'autoritza el JetPack.Doble negacionsBaixa: %s
        Arrossegueu i desa els serveis disponibles aquí.Arrossega i deixa anar els serveis de compartició en la secció activa per activar-les al lloc web, i arrossega-les en les seccions ocultes per tenir-les ocultes darrere d'un botó.Arrossega i deixa anar els serveis que voleu habilitar a la caixa de sota.Arrossega i desa per tornar a organitzarDesplegaCorreu electrònicCada formulari de contacte es pot fàcilment adaptar a les vostres necessitats. Quan un usuari envia el formulari de contacte, l'opinió es filtrarà mitjançant l'Akismet (si està activat a la pàgina web) per assegurar-nos que no és brossa. Qualsevol opinió legítima s'us enviarà per correu electrònic, i s'afegirà a l'àrea de gestió de les opinions.Cadascun d'aquestos ginys tenen un nombre d'opcions personalitzades.Permet fàcilment a qualsevol visitant subscriure's a totes les entrades per correu electrònic gràcies a un giny en la barra lateral del bloc. Cada vegada que publiqueu una entrada, WordPress.com enviarà una notificació a tots els vostres subscriptors.EditaEditar CSSEdita l'element del menúEdita el projecteEdita la selecció...Editeu el perfilEdita aquest camp nouCorreu electrònicAdreça electrònicaHa fallat la comprovació del correu electrònic, torne-ho a provarNotificacions per correu electrònicParàmetres del correu electrònicBuida la brossaActiva la publicació per correu electrònicActivar el carruselActiva la correcció per a les següents gramàtiques i regles d'estil quan s'escriguin entrades i pàgines:Serveis actiusOpcions de l'anglèsIntroduïu un tros de codi directament a l'editor de l'entrada/pàgina per incrustar mèdia. Si voleu instruccions més específiques seguiu els enllaços següents.Introduïu la URL d'una icona de 16x16 píxels que voleu fer servir per aquest servei.Introduïu el vostre correu electrònicIntroduïu el vostre correu electrònic per subscriure-vos a aquest bloc i rebre notificacions d'entrades noves per correu electrònic.Detalls de l'error: %sCodi d'error: %sS'ha produït un error en moure a la paperera.Error en restaurar de la paperera.S'ha produït un error en carregar el perfilErrorError, mal mòdul.Error: introdueix una adreça de correu electrònic vàlid.Error: completeu els camps necessaris (nom, correu electrònic).exemple:PàginaExplica...FacebookCaixa M'agrada del FacebookPàgina del FacebookURL de la pàgina del FacebookMur del FacebookDestacadesImatges destacadesFil(s) de subscripció a mostrar:Opinions (en anglès)Tipus de campPrimera opcióLongitud focalSegueix el blocSegueix els comentarisSegueix-me a TwitterConfiguració del seguidorPer a més informació:Constructor de formularisFormat:Gratuït Des dePàgina principal, pàgines d'arxiu, i resultats de la cerca.PortadaTots els detalls es poden trobar a la pàgina de suport de compartició. Aquest vídeo també dóna una pinzellada sobre com fer servir la característica de compartició. Mireu-lo en alta definició!GaleriaCaptura de pantalla del carrusel de la galeriaDeixa'ns els teus comentarisGravatar de la tarja contextualLogo de les targes contextualsPerfil del gravatarVerdText de salutacióVols opinions sobre el JetPack?AlçadaAlçada (px):Alçada:Així és com el formulari es veuràVerbs ocultsAmagaAmaga la imatge de la cara somrient de les estadístiques.Pàgina d'iniciLes targes emergents milloren les imatges Gravatar amb informació sobre una persona: nom, biografia, fotos, informació de contacte, i altres serveis que fa servir en la web, com ara el Twitter, Facebook, o LinkedIn.Les targes emergents potencien les imatges Gravatar planes amb information sobre una persona: nom, biografia, fotos, informació de contacte i altres serveis.Les targes emergents ofereixen una gran manera de mostrar la vostra presència a internet i ajudar a la gent a trobar el vostre bloc.Com funciona açò?Adreça IP:IconaIcona + textURL de la iconaNomés iconesIdentifica les paraules i frases que cal ignorar quan corregiu les entrades i pàgines:Si està buit, intentarem determinar la grandària de la imatge.Ignora-ho totIgnora sempreIgnora el suggerimentFrases ignoradesImatgeAlineació de la imatge:Color de la imatge:Carrusel de la galeria d'imatgesGraella d'imatgesEnllaç d'ImatgeLlista d'imatgesConfiguració de la imatge:Mida de la imatge:URL de la imatge:Títol de la imatge:InactiuArtícles d'indexacióSol·licitud d'indexació en cua i esperantInsereix vídeoEn lloc de teclejar o copiar i pegar URLs llargues, podeu ara aconseguir un simple i curt enllaç a les vostres entrades i pàgines. Això fa servir el super compacte nom de domini wp.me, i us dona una URL única que serà segura i fiable.Sol·licitud no vàlidaEl testimoni de seguretat no és vàlid.Sembla que l'URL del Facebook no està configurada correctament. Comproveu-ho en la configuració del giny.És perfecte per fer servir al Twitter, Facebook i missatges de text per mòbils on cada caràcter compta.JargonJetpackComentaris del JetpackCaptura de pantalla dels comentaris del JetpackEls comentaris del Jetpack permet als vostres visitants fer servir els seus comptes de WordPress, Twitter o Facebook per comentar a la pàgina web.Centre de depuració JetpackPMF del JetPackConfiguració JetpackLlocs JetpackConfiguració de les subscripcions del JetpackSuport del JetpackEl Jetpack gràcies a WordPress.comEl JetPack combina el pdoer de %s i la simplicitat del WordPress per a donar-vos l'últim en plataformes de bloc matemàtiques.El JetPack conté la versió més recent de l'antiga extensió %l.El JetPack conté les versions més recent de les antigues extensions %l.El JetPack conté la versió més recent de l'antiga extensió “%1$s”.El JetPack no ha pogut contactar amb WordPress.com: %s. Això normalment significa que alguna cosa està mal configurada al vostre servidor web.Jetpack s'ha desconnectat amb éxit.Jetpack ara està connectat a WordPress.comEl Jetpack té activada la xarxa i els avisos no es poden rebutjar.Jetpack no està connectat a WordPress.comEl Jetpack ara inclou els comentaris Jetpack, que possibilita als vostres visitants l'ús del seus comptes del WordPress, Twitter o Facebook quan comenten a la pàgina web. Per activar els comentaris Jetpack, %s.El JetPack requereix la versió %s del WordPress o superior.El JetPack recarrega el vostre lloc web fet amb el WordPress amb el poder meravellós del núvol de WordPress.comEl Jetpack tracta d'ajustar l'esquema de color de la pàgina web automàticament, però podeu fer manualment els ajustos a la part inferior de la pàgina de configuració de les discussions.El JetPack agafarà automàticament el meravellós contingut del bloc o pàgina web i el compartirà instantàniament amb serveis de tercers com ara motors de cerca, i augmentar l'abast i trànsit. Uneix %s altre subscriptorUneix altres %s subscriptorsLaTeXEtiquetaCorreu electrònicNomLloc webOpcióOpcionsmouLlengua GranÚltima modificacióApreneu mésMés informacióDeixa un comentariRespon a %sDeixa un comentariEsquerraClarM'agradaURL de l'enllaç (quan es fa clic a la imatge):Enllaça el compte amb WordPress.comeditaVincula teu compte de WordPress.comLinkedInEnllaça als serveis que useu al llarg del web.Enllaços al canal de subscripció RSS del blocEnllaça amb les vostres pàgines web, blocs, o altres llocs webs que puguen ajudar a descriure com sou.Previsualització S'estan carregant els comentaris...S'està carregant el vídeo...S'està carregant…S'està carregant...ha entratd-m-Y \a \l\e\s G:iBarra lateral principalMarca el missatge com a legítimMarca aquest missatge com a brossaMèdiaMèdiaMitjanaMenúElement del menúMissatgeMissatge enviatMissatgesMetadadaFalta data de publicacióFalta l'identificador adjunt.Falta l'identificador del bloc de destí.Falta l'identificador de l'entrada de destinació.Aplicacions per a mòbilTema per a mòbilCompatible per a mòbils:Mode:Formulari de ContacteCSS personalitzatTipus de Contingut PersonalitzatDistribució milloradaGinys de la barra lateral extraScroll InfinitTheme per a mòbilMonitorNotificacionsPublicar per correu electrònicArticles RelacionatsCompartintIncrusteu ShortcodesIcona del llocVerificació del LlocSubscripcionsGaleries de rajolesVisibilitat dels GinysEstadístiques WordPress.comEl mòdul no es pot activar perquè a llançat un error fatal. Potser hi ha un conflicte amb altra extensió que teniu instal·lada?Arxius mensuals: %sArxius mensualsMésMés informacióEls meus tuitsNomNovesCamp nouComentaris més recents →El més nouEntrades següents »Entrades següents »NoSense peu de pàginaSense capçaleraNo s'ha enviat text del comentari.No s'ha trobat informació per a l'identificador del VideoPress: %s.No s'han trobat opinionsNo s'ha trobat cap extensió.Cap suggerimentNo s'han trobat etiquetes.No s'ha trobat cap tema.No s'han trobat errors d'escriptura.No ha fallat cap verificació.CapNo. Però si us agrada modificar on s'envien o l'assumpte de les opinions, podeu. Si no feu cap canvi aquí, les opinions s'enviaran a l'autor de la pàgina o de l'entrada i l'assumpte del missatge serà el nom de la pàgina o de l'entrada.No està connectatNo està connectatNo s'ha trobat resNotificacionsAviseu-me del seguiment dels comentaris per correu.Notifica'm per correu electrònic si hi ha entrades noves.UsuariRolFechaEtiquetaD'acordBotons oficialsEntrades antiguesEn aquesta pàgina, podeu veure els mòduls disponibles al JetPack, aprendre més sobre ells, i activar i desactivar-los quan ho necessiteu.Un mòdul nou del Jetpack%s mòduls nous del Jetpackno-subsetonObre l'enllaç en una finestra o pestanya novaObre in una finestra novaText opcional a mostrar als lectors:OpcionsTaronjaOrdrePàgina %sPàgines:Veu passivaCamíEnllaç permanent a %sEnllaços personalsFrases a evitarRetroenllaç:RosaPinterestPlans i preusEs requereix el JavaScript per a jugar a %s.Assegureu-vos d'enviar algun text amb el comentari.Proporcioneu una adreça de correu electrònic vàlid.Proporcioneu una adreça de correu electrònic per comentar.Proporcioneu una adreça de correu electrònic.Proporcioneu el nom per comentar.Proporcioneu el vostre nom.Especifiqueu un mòdul vàlid.Especifiqueu un usuari vàlid.Especifiqueu si voleu desconnectar un bloc o un usuari.Verifiqueu el vostre aniversari.ExtensionsPopularsEnvia un comentariPublica per correu electrònicNavegació d'entradesL'entrada no s'havia enviat, comproveu les vostres adreces electròniques!Publicat perPublicat per %sArxivat a %sEntradesEntrades i comentarisArtícles indexats.Pàgina de les entradesPrepocessador:Premeu aixòPrevisualitzaVista prèvia: els canvis s'ha de guardar o es perdranMenú principalImprimeixPrivacitatPolítica de privacitatProjecte actualitzatCorregeix l'escripturaS'està corregintGràcies al %sPublicaPublicadadEl publicador limita la reproducció de vídeos incrustats.CompraVioletaPosa un gràfic que mostri 48 hores de visualitzacions a la barra d'administració.Passeu el ratolí per sobre del Gravatar per revisar el vostre perfil.Enllaços RSS (Jetpack)Botó d'opcióPuntuacióEntrades recentsVermellRedditFrases redundantsActualitzar estatRegenera l'adreçaUsuaris registratsRelacionatsArticles RelacionatsSuprimeix el serveiParaula repetidaSubstitueix la selecció amb:ResponInforma de la visibilitatNecessari? RestauraRestaura aquest element de la papereraTorna al remitent. Buff! Sembla que teniu el JetPack incorrecte al correu; desactiveu-lo i aleshores torneu a activar l'extensió del JetPack per aconseguir altre.DretaDesaDesa i compra una actualitzacióDesa els canvisDesa la fulla d'estilDesa i torna al constructor de formularisDesa la configuracióS'ha desat aquest campS'ha desat correctament.PrevistDesplaça infinitamentCercaCerca els comentarisCerca opinionsCerca mèdiaCerca extensionsResultats de la cerca per a: %sResultats de la cercaSeleccioneu un usuari o feu clic a "personalitzat" i entreu una adreça de correu electrònic personalitzada.Selecciona els rols que podran veure les estadístiques.Plataforma de publicació personal i semàntica.Envia el correu electrònicEnviaeu a l'adreá de correu electrònicS'ha enviat per un usuari %s verificat.Enviat per un/a visitant no verificat a la teva web.Separa les etiquetes amb comesNom del servei%1$s: %2$sEls serveis arrossegats aquí apareixeran individualment.Els serveis arrossegats i deixats aquí, s'ocultaran darrere d'un botó de compartició.OpcionsS'ha desat la configuracióComparteixComparteix al FacebookComparteix això:Comparteix les entrades amb el Twitter, el Facebook, i un munt d'altres serveis. Podeu configurar els serveis perquè apareguin com a icones, text o ambdues opcions. Alguns serveis tenen opcions addicionals a mostrar-se com a botons intel·ligents, com ara el Twitter, que actualitzarà el nombre de vegades que l'entrada s'ha compartit.Entrada compartidaCompartintBotons per compartirOpcions de comparticióS'està compartint la URLLa compartició està desactivada. Afegiu els serveis de la part superior per activar.Etiqueta de comparticióIncrusta el codiEls trossos de codi us permeten incrustar mèdia des d'altres llocs de manera fàcil i amb seguretat al vostre lloc web. Amb un simple codi, podeu dir-li al WordPress que incrusti YouTube, Flickr i altres mèdia.MostraMostra els enllaços del compteMostra les caresMostra els enllaços personalsMostra el fluxMostra una opció 'segueix el bloc' al formulari dels comentarisMostra una opció 'segueix els comentaris' al formulari de comentarisMostra els botonsMostra els m'agrada.Mostra el mapa de localització de la foto al carrusel, quan hi hagiMostra més Mostra metadades (Exif) de la foto al carrousel, quan hi hagiMostra fotografies del perfil a l'extensióMostra els botons de compartició.Mostra els fils més visitatsMostra els termes més cercats sobreMostra el nombre total de subscriptors? (%s subscriptor)Mostra el nombre total de subscriptors? (%s subscriptors)Mostrar:Velocitat de l'obturadorPlataEstadístiques del lloc webLlocsVés al contingut principalPresentació amb diapositivesPetitSmileyCara somrientS'ha produït un error en publicar el comentari. Torneu a intentar-ho més tard.Ho sentim, però no podem autenticar la sol·licitud.Ho sentim, no es s'an trobat mòduls per al terme de cerca "%s"Ho sentim, res a dir.Ho sentim, el bloc no pot compartir entrades per correu.Ordenat per:Correu brossaBrossa (%s)Brosses (%s)OrtografiaOrtografia i gramàticaMosaics quadratsEstadístiquesEstat desconegut.Full d'estil guardat.AssumpteEnviaEnvia »S'esta enviant el comentari %sSubscriure'sBotó de subscripció:Subscriu-me a %sSubscriu al bloc per correu electrònicCaptura de subscripcionsSuportNom de l'etiquetaEtiquetat amb %sEtiquetesFes la enquestaEmporta't el WordPress amb tu.Fes una enquesta. Explica'ns com ho estem fent.CondicionsCondicions de ServeiPosa a prova la compatibilitat del seu lloc amb Jetpack.TextEnllaços de text i imatgeEnllaç de textLlista de textNomés textÀrea de textS'ha suprimit aquesta connexió.El servei de correcció After the Deadline millora l'escriptura en fer servir intel·ligència artificial per trobar errors i oferir suggeriments intel·ligents.L'editor de CSS personalitzat us dóna la possibilitat d'afegir o reemplaçar els CSS del tema, alhora que subministra coloració de la sintaxi, auto indexació, i comprovació immediata de la validació del CSS mentre escriviu.El giny d'imatgeLa versió de Jetpack és %sEl giny d'enllaços RSSL'extensió VideoPress no es pot comunicar amb els servidors de VideoPress. Aquest error la majoria de vegades és culpa d'un error en la configuració de l'extensió. Reinstal·leu o actualitzeu.La blog_id de WordPress.com és %dS'han actualitzat els mòduls següents: %l.S'han activat els següents mòduls: %l.Estan inclosos els següents serveis: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, i Email.Els següents serveis estan inclosos: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, i Email.La imatge ajuda a recollir les estadístiques i fa del món un millor lloc però hauria de funciona quan està oculta.La versió antiga s'ha desactivat i es pot suprimir del lloc web.Les versions antigues s'han desactivat i es poden suprimir del lloc web.El corrector té suggeriments per a aquesta entrada. Segur que voleu publicar-la? Premeu Sí per publicar l'entrada o Cancel·la per veure els suggeriments i editar l'entrada.El corrector té suggeriments per a aquesta entrada. Segur que voleu actualitzar-la? Premeu Sí per actualitzar l'entrada, o Cancel·la per veure els suggeriments i editar l'entrada.Tema: %1$s.Hi ha un munt d'extensions i serveis que proporcionen estadístiques, però les dades poden ser aclaparadores. Les estadístiques de WordPress.com fan que les mètriques més populars siguin fàcil d'entendre gràcies a una interfície atractiva i clara.S'ha produït un problema en comunicar-se amb el servei de correcció. Torneu-ho a provar en un minut.S'ha produït un error en comunicar-se amb el servei de correcció.(necessari)Aquesta galeria conté %2$s fotografia.Aquesta galeria conté %2$s fotografies.Aquesta extensió funcionarà sense suport per a múltiples bytes, per s'usarà si està disponible. Potser observeu problemes menors amb les piulades i altres serveis de compartició.S'ha compartit aquesta entrada!Aquest escrit està protegit per contrasenyaAquesta entrada està protegida amb contrasenya. Introduïu la contrasenya per veure'n els comentaris.Aquesta presentació amb diapositives necessita JavaScript.Aquest vídeo està destinat al públic adult.Aquest vídeo requereix l'Adobe Flash per reproduir-se.Això desactivarà tots els mòduls de Jetpack. Estàs segur que vols desconnectar?MiniaturaGaleries en mosaicHoraHora:TítolTítol:Per configurar les opcions de compartició, aneu al menú de les opcions → de compartició.Per veure les targes emergents, cerqueu en qualsevol entrada del bloc que tingui comentaris. Si qui comenta té una tarja emergent associada amb el seu gravatar, passeu el ratolí per sobre la seva imatge i la tarja emergent apareixerà. Per tancar la tarja emergent, feu clic en el botó de desactivació de la part superior.Per fer servir enllaços curts, aneu a qualsevol entrada publicada (o publiqueu quelcom nou!). El botó “Aconsegueix un enllaç curt” es visualitzarà a la part inferior del títol de l'entrada. Quan feu clic en ell, un quadre de diàleg apareixerà amb l'enllaç curt i podeu copiar i pegar al Twitter, al Facebook o a qualsevol lloc on vulgueu.Per fer servir l'editor CSS, aneu a Aparença → Edita el CSS.Per fer servir el giny de subscripcions, aneu a Aparença → Ginys. Arrossegueu el giny etiquetat com a “Subscripcions al Bloc (Jetpack)” a una de les barres laterals i configureu-lo.Per fer servir els ginys, aneu a Aparença → Ginys. Arrossegueu-los a les barres laterals i configureu-los.Entrades més vistesPàgines amb els millors FilsCerques més popularsTransparentPapereraProveu a connectar-vos de nou.TumblrBlog del TumblrTwitter Timeline del TwitterUsuari del Twitter:TipusTipusURLGeneralDesconnecta l'usuari des de WordPress.comNo publicadaDóna'm de baixa ActualitzatPenja la imatgeS'està carregant...Useu $latex el vostre codi latex aquí$ o [latex]el vostre codi latex aquí[/latex] per incloure %s en les entrades i comentaris. Hi ha disponibles tot tipus d'opcions.Fes servir la detecció automàtica de l'idioma per a corregir les entrades i pàgines.Usuari enllaçat amb WordPress.comNom d'usuariValorVaultPressTauler de control del VaultPressserveis verificatsMostra-ho totMostra el perfil complet →Visualitza les estadístiques del lloc sense JavascriptMostra %s.Veure totes les característiques JetpackVisualitza a mida completa %1$s×%2$sVisualitza els perfils de la gent quan passeu el ratolí per sobre dels seus Gravatars.Veure:Visualitzacions durant 48 hores. Feu clic per veure més estadístiques del lloc.Visiteu les estadístiques del lloc per veure les vostres estadístiques.Per comprovar les còpies de seguretat, veure qualsevol alerta de seguretat o comprovar la vitalitat del VaultPress, visiteu %s.Enllaços curts de WP.meAtenció! S'ha perdut el suport multibyte!Lloc webBenvingut al Jetpack %s!Quina hauria de ser la línia de l'assumpte?Què és una tarja contextual?Què és un Gravatar?Quan facin comentaris, els vostres visitants poden també subscriure's als comentaris de l'entrada per a mantindre's en la conversa.BlancTítol del ginyCaptura dels ginysAmplària (px):Amplada:Amb el carrusel actiu, qualsevol galeria estàndard del WordPress que incrusteu a les entrades o pàgines, llançarà una bella experiència de navegació per les fotos a pantalla completa amb comentaris i metadades EXIF.Amb una subscripció mensual, l'extensió VaultPress farà una còpia de seguretat del contingut de la web, dels temes i de les extensions en temps real, així també realitzarà escanejos de seguretat regulars per trobar les amenaces i atacs més comuns.Estadístiques de WordPress.comWordPress.com està tenint problemes ara mateix i no pot donar-li canya al teu JetPack. Torneu-ho a provar més tard.Uau, això sona molt lleig.Grandària incorrecta. Hm… sembla que el JetPack no s'acaba d'ajustar. Has perdut pes? feu clic de nou a “Connecta amb WordsPress.com” per aconseguir que el JetPack s'ajusti.d/m/YY-m-d G:i:sArxiu anual: %sSíNo teniu autorització per gestionar aquest element.No teniu autorització per treure aquest element de la paperera.No teniu permís per moure aquest element a la paperera.Podeu visualitzar les estadístiques del tauler aquí.Podeu activar i desactivar els mòduls del Jetpack de manera individual per adaptar-lo a les vostres necessitats.Podeu afegir les següents variables al servei de compartició d'URL:No et pots desconnectar sense haver-te connectat abans.No teniu suficients nivells de llibertat per veure aquest vídeo. Doneu suport al programari lliure i actualitzeu.No teniu els permisos necessaris per accedir a aquesta pàgina.Us haveu subscrit per rebre actualitzacions per correu electrònic.Heu compartit l'entrada amb %sHeu d'a href="%s">entrar per publicar un comentari.Necessiteu autoritzar la connexió del JetPack entre la vostra web i WordPress.com per activar les meravelloses funcionalitats.Heu de registrar el Jetpack abans de connectar-lo.Necessiteu seleccionar què cal mostrar en aquest giny del perfil del Gravatar.No rebreu més actualitzacions per correu electrònic sobre el JetPack.L'adreça de correu electrònicEl teu nomLes estadístiques del lloc web funcionen millor si teniu activat el Javascript.La instal·lació del WordPress està sent protegida actualment amb la millor seguretat del món, còpia de seguretat i suport.La teva `%1$s`` opció es configura com a `%2$s`, però la teva connexió WordPress.com enumera com `%3$s`!El bloc no té cap entrada publicada actualment.El comentari està esperant moderació.El comentari està en moderació.El comentari s'ha aprovat.S'ha desat correctament el camp nouEl teu lloc web no té connexió als servidors de Jetpack.El teu lloc web no té connexió segura als servidors de Jetpack.La pàgina web necessita ser accessible públicament per fer servir el JetPack: %suna entrada o pàgina es publica primers'ha actualitzat una entrada o pàginaus permet afegir enllaços als canals RSS de les entrades i comentaris a la barra lateral. Això fa fàcil per als vostres lectors estar actualitzats quan publiqueu nou contingut o rebeu nous comentaris.us permet afegir fàcilment imatges a les àrees de ginys del tema. És una manera senzilla d'afegir interès visual a la vostra pàgina web.iCancel·lafeu clic aquíConfiguradiaEditaedita el textBuf, s'ha produït un problema en generar el formulari. Probablement haureu d'intentar-ho de nou.vés enrerehttp://jetpack.mehttp://wordpress.org/A "%s"S'està carregant…s%1$s/%2$smesComentari%s si:corregeixCorreu electrònicFacebookGoogleLinkedInPinterestPublica AixòImprimeixTumblrTwittermostra la caixa M'agrada del Facebook a la barra lateral del tema. És una gran forma de deixar que els vostres lectors mostrin el seu suport.mostra les darreres piulades en la barra lateral del tema. És una manera senzilla d'afegir més activitat al vostre lloc web. També hi ha un munt d'opcions de personalització.el dia passatel mes passatel quart passatla setmana passadal'any passataquest vídeoMIreu: %ssetmanaparaulesplugins/jetpack/languages/jetpack-te.mo0000755000312500031250000005354212651056012020622 0ustar eacbforgeacbforgÞ•0œ ™€ “   ­»ÂÉÚð  .=FMQYlr v ƒ¤´Å Ë Ùãèï ö  /:@H[ d n5{ ±¼Ò èö ). 3>FM` }‰‘˜¦ ¬ºÊé*ð5Q8Z “ž§»ÄÔê ïú #(- A M6W Ž™ Ÿ ¬· ÇÓÜí?ô=4r{   š ¥ ³ÁÆÝã èó    % + 2 7 ? L U j { € ‘ – š ° ½ Ë Î Ý ì ñ ÿ 3 !0=!n!q!‚! ‹!—!Ÿ!¦!¬!´!»!À!Ð!ß!ä!þ!" " %" 1" <" I"V"\" m" x"ƒ"3‹"¿" Å"Ò"Ø"à"ï" ø"# ## #(#,#=# L#Z#`#~#6œ#Ó#Û#ä#ê# ï# ü#$ $$,$+C$o$ ‰$–$Ÿ$±$¹$ ¾$:É$ %% % %)%/%5%:%?%H%N%`%h% o%}%…%Ž%“%¤%©% ¼% Æ% Ð%+Ý%Y & c&I„&#Î& ò&ü&'' '' /' <'H'N'U']'o't'z' ~' Œ' ˜' ¤' ²' ¿'Ì':ç'H"(Hk(´(½( Ã(Î(/×()) ) #)/)6)M) S)a)u);y)µ)Õ) è)$ò)*6*Q*U* \*g*k*p*†*–*¨* ®*»*Í*Ý*í* þ* ++ ++ 9+G+&L+îs+b, t,~, ,°,Æ,Í,,Ü,+ -$5-Z-!x-š-¶-Æ-ã-(ö-T.t.‡.4—.Ì.8ì.%/"A/%d/Š/.š//É/ ù/00450j00‘05¡0(×011:/1j1†1C¥1Yé1>C2T‚2M×2%%34K3€35Ÿ3Õ3 è3!õ34044K4W€4Ø4è455+5I5/_525KÂ56Z%6w€6ø6 7!7;78W7!7C²73ö7*8:8W8j8€88¦8 ·8Ä89Ú8#9+89µd9;:V:i:‡:&¤:&Ë:ò:8;;;N; d; q;{;"‹;1®;1à;!<!4< V<6`< —<¡<5±<&ç<=$+= P=]=y= Œ=™=.¬=Û=5ô=%*>P>+f> ’>Ÿ>2¯>â>? ?+?<K?ˆ?"ž?Á?×? ç? ô?1þ?0@C@]@s@†@–@¦@ º@$Ç@.ì@AC.A;rA®A@ÊA# B/BEBbBB-B½B1×B C™"C¼CÃCãCÿC(D$DD$iDŽD-­DÛD"ëDE.E(ME+vE!¢EÄEÆEÈE'ÊEòE FF4/F0dF•F1¨F@ÚF2GrNGPÁGH)H@?H€HœH+²H–ÞH"uI˜I¯I%ÉIïIJ JJ!8JZJ;sJ¯J¿J#ÛJÿJK2K%KKqK7„K"¼K(ßKLt%LšL[¸LÏMxäM]N vN„NšN±N8ÑN4 O?O[OzOO?¬O ìOöOP P)PHP#aP4…P0ºPXëP!DQ fQsQ"‰Q¬Q$¼Q"áQ†R‹R§R&ºRáRýRTSiS oS>}S¼S9ÌSKT5RTˆTRœTYïTEIUUŸU(»U äUñUV&V CV MVWVmV‰VœV²VÎVäV%õVW/W OW\WÜãÁçé=ZÃx–kPRűŒ¼Kí4HÇ) +d·ªg+] â§Jè.-”#"-~»G!‚3'Ìh0¥aÿÛÑå ¯‘ !ÓÖIá\Ssêb[Ò ÏÀ«M0•¾¸‰$ ³#ïCìÈŠc/&à`ôöoÊ?Ø’„T,A©ò*f6Í“¢þ œU¬û÷OÉäóyð7v|¶ž((/‹ Wt²îFQ—q¦i†ºE8,1* .Ðø<›ˆ:¹Ÿ™¡×eõ‡Ú_°2½šrlüÞ­L ®%ÙñDÝŽ €˜¿;æV¤úË&N}ùwÕ$"%B´…jƒ µ'5mzë9ß> Xn£ÎÆý)pÄÔ^¨uY@{%1$s – %2$s%1$s at %2$s%1$s on %2$s%s (Required)%s ago%s: %s« Previous← Older Comments— Select —(no title)(required)% Replies1 ReplyActivateActiveAddAdd NewAdd or remove tagsAlbumAllAll ProjectsAll postsAlternate text:ArtistAttachment PageBackground colorBlackBlog ArchivesBlog URL:BlueCameraCancelCancel replyCaption:CategoryCenterCheatin’ uh?Click hereCloseCommentComment navigationCommentsConfigureContact InfoContinue reading →Crop ImageCustom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDismissE-mailEditEdit CSSEmailEmail AddressEnglish OptionsEnter the customer's name hereError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFeed(s) to Display:FeedbackFollow CommentsFor more information:FreeFront pageGoogleGreenHeightHeight (px):Height:HideHomeHow does this work?IP Address:Icon onlyIf empty, we will attempt to determine the image size.Ignore allImageImage Color:Image LinkImage Settings:Image Size:InactiveInvalid usernameJargonLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a replyLeftLet us know your name.LightLikeLike this:Loading…Loading...Logged InM j, Y @ G:iMediaMediumMenuMessageMessage SentMessagesMonthly Archives: %sMonthly archivesMoreMore informationNameNewNewer Comments →Next »Next » NoNo suggestionsNo tags found.NoneNothing FoundNounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "This page is a date archive."DateOKOfficial buttonsOlder %sOlder postsOptionsOrangeOrderPage %sPages:PathPermalink to %sPersonal LinksPinkPlease provide your name.Plugin activated.PluginsPost CommentPost by %s.Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProjectsPublicizePublishPublishedRatingRecent PostsRedRegistered usersRemove ServiceRepeated WordReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreResults:RightSaveSave ChangesScheduledSearchSearch CommentsSearch PluginsSearch Results for: %sSent by an unverified visitor to your site.Separate tags with commasService nameSettingsShare on FacebookSharingShowShow FacesShow falling snow on my blog until January 4th.Show moreShow:Site NameSite StatsSitesSmallSnowSpamSpellingStatsStylesheet saved.SubjectSubmitSubmit »SupportTag nameTagsTerms of ServiceTextText & Image LinksText LinkText onlyTheme: %1$s.There was an error deactivating your pluginThis HTML form field is marked as required by the user in contact form builder(required)This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow requires JavaScript.ThumbnailTime:TitleTitle:Top PostsTop Posts & PagesTop SearchesTransparentTrashTumblrTwitterTwitter username:TypeTypesURLUncategorizedUnpublishedUnsubscribeUntitled PostUpload ImageUploading...Use a valid email address.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVideoPressView AllViews over 48 hours. Click for more Site Stats.WebsiteWhiteWidget title:Width (px):Width:WordPress.com UsernameY/m/dY/m/d g:i:s AYearly Archives: %sYesYou do not have sufficient permissions to access this page.You must specify a valid actionYour Email AddressYour NameYour comment is awaiting moderation.Your comment is in moderation.Your comment was approved.andcancelclick heredayedithttp://wordpress.org/loading…locales%1$s/%2$smonthnounCommentshare toFacebookshare toGoogleshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?wordsPO-Revision-Date: 2015-07-22 06:11:58+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s – %2$s%1$s %2$s%2$s పై %1$s%s (తపà±à°ªà°¨à°¿à°¸à°°à°¿)%s à°•à±à°°à°¿à°¤à°‚%s: %s« à°—à°¤← పాత à°µà±à°¯à°¾à°–à±à°¯à°²à±— à°Žà°‚à°šà±à°•ోండి —(శీరà±à°·à°¿à°• లేదà±)(తపà±à°ªà°¨à°¿à°¸à°°à°¿)% à°¸à±à°ªà°‚దనలà±1 à°¸à±à°ªà°‚దనచేతనంసచేతనమౠగాచేరà±à°šà±à°•ొతà±à°¤à°µà°¿ చేరà±à°šà±à°Ÿà±à°¯à°¾à°—à±à°²à°¨à°¿ జతచేయి లేదా తొలగించà±à°†à°²à±à°¬à°®à±à°…à°¨à±à°¨à±€à°…à°¨à±à°¨à°¿ à°ªà±à°°à°¾à°œà±†à°•à±à°Ÿà±à°²à±à°…à°¨à±à°¨à°¿ టపాలà±à°ªà±à°°à°¤à±à°¯à°¾à°®à±à°¨à°¾à°¯ పాఠà±à°¯à°‚:కళాకారà±à°¡à±à°œà±‹à°¡à°¿à°‚పౠపేజీవెనà±à°¤à°²à°ªà± à°°à°‚à°—à±à°¨à°²à±à°ªà±à°¬à±à°²à°¾à°—ౠభాండాగారంబà±à°²à°¾à°—ౠయూఆరà±â€Œà°Žà°²à±:నీలంకెమేరారదà±à°¦à±à°šà±‡à°¯à°¿à°¸à±à°ªà°‚దననౠరదà±à°¦à±à°šà±‡à°¯à°¿à°µà±à°¯à°¾à°–à±à°¯:వరà±à°—ంమధà±à°¯à°¨à°®à°¸à±à°•à°¾ వేసà±à°¤à±à°¨à±à°¨à°¾à°°à°¾?ఇకà±à°•à°¡ నొకà±à°•ండిమూసివేయివà±à°¯à°¾à°–à±à°¯à°µà±à°¯à°¾à°–à±à°¯à°² మారà±à°—దరà±à°¶à°•à°‚à°µà±à°¯à°¾à°–à±à°¯à°²à±à°¸à±à°µà°°à±‚పించà±à°•à°²à±à°¸à±à°•ోవాలంటే? à°šà°¿à°°à±à°¨à°¾à°®à°¾! చదవడం కొనసాగించండి →బొమà±à°® à°…à°‚à°šà±à°²à± à°•à°¤à±à°¤à°°à°¿à°‚à°šà±à°¸à°¾à°®à°¾à°¨à±à°¯ విభాగమౠతొలగింపబడినది à°•à°¸à±à°Ÿà°®à± ఫీలà±à°¡à±à°¨à± తాజాకరించాంఖాతాదారౠపేరà±à°–ాతాదారà±à°² à°ªà±à°°à°¶à°‚సలà±à°…à°¨à±à°•ూలపరచà±à°°à±‹à°œà±à°µà°¾à°°à±€ భండారాలà±: %sà°®à±à°¦à±à°°à±à°¤à±‡à°¦à±€à°…చేతనం చేయౠఅపà±à°°à°®à±‡à°¯à°‚తొలగించౠశాశà±à°µà°¤à°‚à°—à°¾ తొలగించà±à°ˆ అంశానà±à°¨à°¿ శాశà±à°µà°¤à°‚à°—à°¾ తొలగించండివివరణమూసివేయిఈ-మెయిలà±à°®à°¾à°°à±à°šà±CSS ని మారà±à°šà±à°ˆà°®à±†à°¯à°¿à°²à±à°ˆ-మెయిలౠచిరà±à°¨à°¾à°®à°¾à°†à°‚à°—à±à°² భాషా ఎంపికలà±à°–ాతాదారౠపేరౠఇకà±à°•à°¡ ఇవà±à°µà°‚డిపొరపాటà±!తపà±à°ªà°¿à°¦à°‚à°ƒ సరైన à°ˆ-మెయిలౠనౠఇవà±à°µà°‚à°¡à°¿.తపà±à°ªà°¿à°¦à°‚: à°…à°¨à±à°¨à°¿ ఖాళీలూ నింపండి (పేరà±, à°ˆ-మెయిలà±).ఉదాహరణ:పేజీవివరించండి...ఫేసà±â€Œà°¬à±à°•à±à°šà±‚పించాలà±à°¸à°¿à°¨ ఫీడà±à°²à±:à°ªà±à°°à°¤à°¿à°¸à±à°ªà°‚దనవà±à°¯à°¾à°–à±à°¯à°²à±à°¨à°¿ à°…à°¨à±à°¸à°°à°¿à°‚చండిమరింత సమాచారం కోసం:ఉచితంమొదటి పేజీగూగà±à°²à±à°†à°•à±à°ªà°šà±à°šà°Žà°¤à±à°¤à±à°Žà°¤à±à°¤à± (px):à°Žà°¤à±à°¤à±:దాచà±à°®à±à°‚గిలిఇది ఎలా పనిచేసà±à°¤à±à°‚ది?à°à°ªà±€ à°šà°¿à°°à±à°¨à°¾à°®à°¾:à°ªà±à°°à°¤à±€à°•à°‚ మాతà±à°°à°®à±‡à°–ాళీగా వదిలేసà±à°¤à±‡, మేమే పరిమాణానà±à°¨à°¿ నిరà±à°£à°¯à°¿à°‚చడానికి à°ªà±à°°à°¯à°¤à±à°¨à°¿à°¸à±à°¤à°¾à°‚.à°…à°¨à±à°¨à°¿à°Ÿà°¿à°¨à±€ విసà±à°®à°°à°¿à°‚à°šà± à°šà°¿à°¤à±à°°à°‚బొమà±à°® à°°à°‚à°—à±:బొమà±à°® లంకెబొమà±à°® అమరికలà±:బొమà±à°® పరిమాణం:అచేతనచెలà±à°²à°¨à°¿ వాడà±à°•à°°à°¿ పేరà±à°ªà°¦à°œà°¾à°²à°‚ఈమెయిలà±à°ªà±‡à°°à±à°­à°¾à°·à°ªà±†à°¦à±à°¦à°šà°¿à°µà°°à°¿ మారà±à°ªà±à°®à°°à°¿à°‚à°¤ తెలà±à°¸à±à°•ోండిమరింత తెలà±à°¸à±à°•ోండిసà±à°ªà°‚దించండిసà±à°ªà°‚దించండిఎడమమీ పేరేంటో చెపà±à°ªà°‚à°¡à°¿.లేతఇషà±à°Ÿà°‚దీనà±à°¨à°¿ మెచà±à°šà±à°•ోండి:లోడవà±à°¤à±‚ంది…వసà±à°¤à±‹à°‚ది… లోపల ఉనà±à°¨à°¾à°°à± M j, Y @ G:iమాధà±à°¯à°®à°¾à°²à±à°®à°§à±à°¯à°®à°‚మెనూసందేశంసందేశం పంపబడినదిసందేశాలà±à°¨à±†à°²à°µà°¾à°°à±€ భాండారాలà±: %sనెలవారీ టపాలà±à°®à°°à°¿à°¨à±à°¨à°¿à°®à°°à°¿à°•ొంత సమాచారంపేరà±à°•ొతà±à°¤à°•ొతà±à°¤ à°µà±à°¯à°¾à°–à±à°¯à°²à± →తరà±à°µà°¾à°¤à°¿ »à°¤à°°à±à°µà°¾à°¤à°¿ »à°•ాదà±à°¸à°²à°¹à°¾à°²à± లేవà±à°Ÿà±à°¯à°¾à°—à±à°²à± à°à°®à±€ దొరకలేదà±.à°à°¦à±€à°•ాదà±à°à°®à±€ దొరకలేదà±à°µà°¾à°¡à±à°•రిరచయితతేదీసరేఅధికారిక బొతà±à°¤à°¾à°²à±%s పాతవిపాత టపాలà±à°Žà°‚పికలà±à°¨à°¾à°°à°¿à°‚జకà±à°°à°®à°‚పేజీ %sపేజీలà±:దారి%sà°•à°¿ à°¸à±à°¥à°¿à°°à°²à°‚కెవà±à°¯à°•à±à°¤à°¿à°—à°¤ లంకెలà±à°—à±à°²à°¾à°¬à°¿à°¦à°¯à°šà±‡à°¸à°¿ మీ పేరà±à°¨à± ఇవà±à°µà°‚à°¡à°¿.à°ªà±à°²à°—ినౠచేతనమయà±à°¯à°¿à°‚ది.à°ªà±à°²à°—à°¿à°¨à±à°²à±à°µà±à°¯à°¾à°–à±à°¯à°¨à± à°ªà±à°°à°šà±à°°à°¿à°‚à°šà°‚à°¡à°¿%s యొకà±à°• టపాలà±:రాసినది%s యొకà±à°• టపా%s లో రాసారà±à°Ÿà°ªà°¾à°²à±à°Ÿà°ªà°¾à°²à± & à°µà±à°¯à°¾à°–à±à°¯à°²à±à°Ÿà°ªà°¾à°² పేజీదీనà±à°¨à°¿ à°ªà±à°°à°šà±à°°à°¿à°‚à°šà±à°®à±à°¨à±à°œà±‚à°ªà±à°®à±à°¨à±à°œà±‚à°ªà±: మారà±à°ªà±à°²à± à°­à°¦à±à°°à°ªà°°à°šà°‚à°¡à°¿ లేకపోతే వాటిని కోలà±à°ªà±‹à°¤à°¾à°°à±à°§à°°à°ªà±à°°à°§à°¾à°¨ మెనూమà±à°¦à±à°°à°¿à°‚à°šà±à°…ంతరంగికతగోపà±à°¯à°¤à°¾ విధానంపà±à°°à°¾à°œà±†à°•à±à°Ÿà±à°²à±à°¬à°¹à°¿à°°à°‚గపరచండిపà±à°°à°šà±à°°à°¿à°‚à°šà±à°ªà±à°°à°šà±à°°à°¿à°‚చబడిందిగణà±à°¯à°¤à°‡à°Ÿà±€à°µà°²à°¿ టపాలà±à°Žà°°à±à°ªà±à°¨à°®à±‹à°¦à±ˆà°¨ వాడà±à°•à°°à±à°²à±à°¸à±‡à°µà°¨à± తొలగించà±à°ªà±à°¨à°°à°¾à°µà±ƒà°¤à°®à±ˆà°¨ పదంసà±à°ªà°‚దించండి à°ªà±à°¨à°°à±à°¦à±à°§à°°à°¿à°‚à°šà±à°«à°²à°¿à°¤à°¾à°²à±:à°•à±à°¡à°¿à°­à°¦à±à°°à°ªà°°à°šà±à°®à°¾à°°à±à°ªà±à°²à°¨à± à°­à°¦à±à°°à°ªà°°à°šà±à°¨à°¿à°°à±à°¦à±‡à°¶à°¿à°à°šà°¬à°¡à±à°¡à°¦à°¿à°µà±†à°¤à±à°•à±à°µà±à°¯à°¾à°–à±à°¯à°²à°¨à± వెతà±à°•à±à°ªà±à°²à°—ౠఇనౠల కోసం వెతకండివెతà±à°•à±à°¡à± ఫలితాలà±: %sà°—à±à°°à±à°¤à± తెలియని à°µà±à°¯à°•à±à°¤à°¿ మీ సైటౠకి పంపినారà±à°Ÿà±à°¯à°¾à°—à±à°²à°¨à± కామాలతో వేరà±à°šà±‡à°¯à°‚డిసేవ పేరà±à°…మరికలà±à°«à±‡à°¸à±â€Œà°¬à±à°•à±â€Œà°²à±‹ పంచà±à°•ోండిపంచà±à°•ోవడంచూపించà±à°®à±à°–ాలనౠచూపించà±à°œà°¨à°µà°°à°¿ 4à°µ తేదీ వరకూ నా à°¬à±à°²à°¾à°—à±à°²à±‹ మంచౠపడటానà±à°¨à°¿ చూపించà±.ఇంకా చూపించà±à°šà±‚పించà±:సైటౠపేరà±à°¸à±ˆà°Ÿà± గణాంకాలà±à°¸à±ˆà°Ÿà±à°²à±à°šà°¿à°¨à±à°¨à°®à°‚à°šà±à°…వాంఛితంసà±à°ªà±†à°²à±à°²à°¿à°‚à°—à±à°—ణాంకాలà±à°¶à±ˆà°²à°¿à°ªà°¤à±à°°à°‚ à°­à°¦à±à°°à°ªà°°à°¿à°šà°¾à°‚.విషయందాఖలà±à°šà±‡à°¯à°¿à°¦à°¾à°–à°²à±à°šà±‡à°¯à°¿ » సహాయమà±à°Ÿà±à°¯à°¾à°—ౠపేరà±à°Ÿà±à°¯à°¾à°—à±à°²à±à°¸à±‡à°µà°¾ నిబంధనలà±à°ªà°¾à° à±à°¯à°‚పాఠà±à°¯à°‚ & బొమà±à°® లంకెలà±à°ªà°¾à° à±à°¯à°ªà± లంకెపాఠà±à°¯à°‚ మాతà±à°°à°®à±‡à°…లంకారం: %1$s.మీ à°ªà±à°²à°—à°¿à°¨à±à°¨à± అచేతనం చేయడంలో దోషం దొరà±à°²à°¿à°‚ది(తపà±à°ªà°¨à°¿à°¸à°°à°¿)à°ˆ టపా సంకేతపదంతో సంరకà±à°·à°¿à°‚చబడింది.à°ˆ టపానౠసంకేతపదంతో సంరకà±à°·à°¿à°‚చారà±. à°µà±à°¯à°¾à°–à±à°¯à°²à°¨à± చూడడానికి సంకేతపదానà±à°¨à°¿ ఇవà±à°µà°‚à°¡à°¿.à°ˆ à°¸à±à°²à±ˆà°¡à± à°ªà±à°°à°¦à°°à±à°¶à°¨ కోసం జావాసà±à°•à±à°°à°¿à°ªà±à°Ÿà± అవసరం.నఖచితà±à°°à°‚సమయం:శీరà±à°·à°¿à°•శీరà±à°·à°¿à°•:ఉతà±à°¤à°® టపాలà±à°‰à°¤à±à°¤à°® టపాలౠ& పేజీలà±à°ªà±à°°à°¸à°¿à°¦à±à°§ à°…à°¨à±à°µà±‡à°·à°£à°²à±à°ªà°¾à°°à°¦à°°à±à°¶à°•ంచెతà±à°¤à°¬à±à°Ÿà±à°Ÿà°Ÿà°‚à°¬à±à°²à°°à±à°Ÿà±à°µà°¿à°Ÿà±à°Ÿà°°à±à°Ÿà±à°µà°¿à°Ÿà±à°Ÿà°°à± వాడà±à°•à°°à°¿ పేరà±:రకంరకాలà±URLఅవరà±à°—ీకృతంఅపà±à°°à°šà±à°°à°¿à°¤à°‚చందామానà±à°ªà±‡à°°à± లేని టపాబొమà±à°®à°¨à± à°Žà°•à±à°•à°¿à°‚à°šà°‚à°¡à°¿à°Žà°•à±à°•ించబడà±à°¤à±‹à°‚ది...సరైన ఈమెయిలౠచిరà±à°¨à°¾à°®à°¾à°¨à± ఇవà±à°µà°‚à°¡à°¿.-- à°Žà°‚à°šà±à°•ోండి --దాచà±à°šà±‚పించà±à°µà°¾à°¡à±à°•à°°à°¿ పేరà±à°µà°¿à°²à±à°µà°µà±€à°¡à°¿à°¯à±‹à°ªà±à°°à±†à°¸à±à°…à°¨à±à°¨à±€ చూడండిగత 48 à°—à°‚à°Ÿà°² సందరà±à°¶à°¨à°²à±. మరినà±à°¨à°¿ గణాంకాల కోసం నొకà±à°•à°‚à°¡à°¿.వెబà±â€Œà°¸à±ˆà°Ÿà±à°¤à±†à°²à±à°ªà±à°µà°¿à°¡à±à°œà±†à°œà± పేరà±:వెడలà±à°ªà± (px):వెడలà±à°ªà±:వరà±à°¡à±â€Œà°ªà±à°°à±†à°¸à±.కామౠవాడà±à°•à°°à°¿ పేరà±Y/m/dY/m/d g:i:s Aసాంవతà±à°¸à°°à°¿à°• భాండారాలà±: %sà°…à°µà±à°¨à±à°®à±€à°•ౠసరైన à°…à°¨à±à°®à°¤à°¿ లేదà±à°®à±€à°°à± సరైన à°šà°°à±à°¯à°¨à± పేరà±à°•ొనాలిమీ ఈమెయిలౠచిరà±à°¨à°¾à°®à°¾à°®à±€ పేరà±à°®à±€ à°µà±à°¯à°¾à°–à±à°¯ à°…à°¨à±à°®à°¤à°¿à°•ై వేచివà±à°‚ది.మీ à°µà±à°¯à°¾à°–à±à°¯ à°…à°¨à±à°®à°¤à°¿ కోసం వేచివà±à°‚ది.మీ à°µà±à°¯à°¾à°–à±à°¯à°¨à± à°…à°¨à±à°®à°¤à°¿à°‚చారà±.మరియà±à°°à°¦à±à°¦à±à°šà±‡à°¯à°¿à°‡à°•à±à°•à°¡ నొకà±à°•ండిరోజà±à°®à°¾à°°à±à°šà± http://wordpress.org/లోడవà±à°¤à±‚ంది…%1$s/%2$sనెలవà±à°¯à°¾à°–à±à°¯à°«à±‡à°¸à±â€Œà°¬à±à°•à±à°—ూగà±à°²à±à°Ÿà°‚à°¬à±à°²à°°à±à°Ÿà±à°µà°¿à°Ÿà±à°Ÿà°°à±à°¨à°¿à°¨à±à°¨à°Ÿà°¿à°—à°¤ నెలగత à°¤à±à°°à±ˆà°®à°¾à°¸à°¿à°•à°‚à°—à°¤ వారంగత సంవతà±à°¸à°°à°‚వారంwordsplugins/jetpack/languages/jetpack-nb_NO.mo0000755000312500031250000054431312651056012021206 0ustar eacbforgeacbforgÞ•.Œ1?übøƒùƒ8„ÏI„…,…<…?N…yŽ…|†…†-£†.ц;ˆ <ˆ IˆVˆ7k‰æ£‰ ŠŠ —ŠF¥ŠGìŠ4‹=‹’D‹H׋ Œ7Œ&PŒ[wŒÓŒîŒ!L?Œ¢ºÁÒèÿ Ž (ŽC3Ž*wŽ¢Ž4±ŽbæŽ1I0{¬½ÌxàpY‘+Ê‘#ö‘E’r`’1Ó’y“-“²­“j`”§Ë”}s•Xñ•\J–y§–H!—Pj—9»—‹õ—©˜4+™€`™6ᙚ 'šHšZšcštš%š ³šÀšÇšËšÜš ëšùš ››'›<›L›`›u› ‰› –›¤›½›Í›DÝ›"œC4œxœ‹œ”œ©œ[¼œ1AH5hžJ§ òxüsuž2鞟"Ÿ &Ÿ1Ÿ:ŸOŸaŸrŸ „Ÿ‘Ÿ¢Ÿ³ŸÆŸ ØŸ âŸðŸŒ   ­ º  Ê "Ø )û B%¡Zh¡*á¢6¼¢Yó¢M£pV£ Ç£7Ô£f ¤Cs¤·¤¾¤.Ϥþ¤¤¥³¥%Ã¥ é¥ô¥¦¦8¦Q¦d¦Su¦kɦ 5§C§ I§W§ t§~§•§9š§Ô§Úè§è Ò¨²ß¨€’©ª ª%ª;ªBª2Yª(Œªµª ¼ª?ɪ «««$« +«M7«…«”«§«}¶«4¬%=¬ c¬ q¬’¬ ±¬½¬Ŭ Ô¬߬#ô¬­8­G­\­v­‘­­­Æ­ß­ø­®+®1® D®Q®CW®,›®"È® ë®\ø®?U¯•¯*¤¯ϯÖ¯é¯ñ¯°°4°G°X°!a°ƒ°“° š° ¤°±°"¹°Eܰ "±-±iF± °±º± ×±å±W² X²e² w²$„²5©²Bß²"³3³;C³³n“³ ´ ´ ´´5´I´^´n´„´ š´¨´ ¾´È´ç´ì´ÿ´µµ µ#µ )µ#4µXµG`µq¨µ¶*¶1¶D¶ a¶õm¶c· u·€·“· ©·´·Ò·+Ú·¸#¸8¸L¸Ed¸/ª¸$Ú¸3ÿ¸ 3¹5T¹ й–¹/®¹DÞ¹/#º6SºxŠºS»W»*s»nž»% ¼3¼D¼#M¼&q¼¥˜¼C>½‚½  ½ª½À½RǽR¿<m¿Óª¿Ÿ~ÀÁ#Á ,Á 7ÁDÁSÁhÁ zÁ‡Á˜ÁªÁ¼ÁÍÁßÁóÁ ùÁÂ$Â;ÂMÂaÂ1p ¢Â(­ÂÖÂ"ëÂÃ2Ã[QíþÃNÄ4^Äv“ÄA ÅLÅkÅ‹Åc¤Å?ÆHÆ\ZÆO·ÆVÇ^ÇmLJǦǼÇÃÇÖÇ)ôÇIÈ*hÈ5“È(ÉÈòÈ8ûÈ4É =ÉHÉ_ÉhÉ zÉˆÉ šÉ¨É±ÉÂÉÒÉæÉïÉÊ Êú)Ê $Ë 1Ë >ËJËZËoË ËàŒËEmÌ³Ì ÉÌÖÌÞÌ ãÌðÌ-õÌ #ͱ.Í*àÍ ÎÎ/ÎE>Î"„Î#§ÎËÎäÜÎÁÏÈÏÏÏâÏöÏÐ ÐÐ5Ð <ÐIÐ*QÐ |ЉЎР§Ð5ÈÐ!þÐ Ñ %Ñ2Ѿ9цøÑ_ÒßÒëóÒÞßÓ ¾ÔÊÔ[Õ `ÕlÕ uÕMÕ6ÍÕ[Öõ`ÖmV×^Ä×Q#ØÖuØ LÙ WÙeÙVwÙÎÙÞÙäÙ õÙÚÚ 1Ú <Ú GÚRÚ bÚ nÚ yÚ†ÚšÚ¢Ú$«ÚÐÚ+ßÚ ÛãÛ…üÛ{‚Ü þÜ Ý#Ý3ÝKÝ\ÝtrÝBçÝI*ÞktÞOàÞ0ßPß_ßfßnßß~›ßà 3à!?àaàHxàÁàÞàïà áá3áCáu\áƒÒáVâNÖâv%ã+œã/Èã%øãä>4ä3säͧä/uåc¥å¢ 殬æ¾[çüè2é JéUéjéŠsé…þée„ê”êê­ë‡-왵ìwOí£Çíkkî×îÝî?ãî=#ïGaï\©ïfðXmðÆðQÍðñ(ñ.ñ ?ñMñ ]ñ hñ:sñ®ñ Éñ×ñ ëñùñþñòò ò+ò1òÑEòó)(ónRóÁóÓó%Üóô<"ô"_ô‚ô.‹ôºôQÙô +õ{8õ´õÅõÙõêõ úõö ö )ö4öMöfö=kö ©ö ¶ö9ÃöJýö"H÷0k÷Nœ÷†ë÷ røøø·øÀøOÑø!ú20úcú iú túúˆú ú—ú§ú ¸úÃú Úú çúFõú/<û&lû“û_¤ûBüGü-Züˆü üü¦ü¯ü¿üÖüîüý ý $ý1ý$DýiýUoý0ÅýböýAYþY›þXõþkNÿdºÿQlqLÞO+\{`ØK9M…YÓ?-bm_Ðh0S™oíh]MÆgk|UèJ>]‰LçR4h‡aðFR  ™ ¥ À Õ î   !& !H j Š ¦ » "Ø û   5 N b | “ ¦ À Ô ê   5 K  i Š ¤ À × î  ) I !_  — ¬ ¾ Ï ì 4–GÞö !L2 $ (Åî $): > HVo †’§½Å Õ+ß+ 7M T ao r} ¦ ° ºÄÔè( CPf¯…5=T’ ¤°ÂÑàÌóÀ*Þ $û) % 34A˜v  )+ U v3€F´0û),3VН¢Rnq*‚­ ¶ ÂZÍ(<ŠM^Ø^7-–'Ä,ì!†;F &D)X‚Š‘\—ôü,@ Uchx‡Ž Ÿ© ®¸CÈ5 +B Qn %À +æ  !$3!X!rr!å!">!"`"v"“"¥"¹"Á"È"Ð"ß" ô"þ"#-!# O# \# h#¾v#"5$X$ h$/s$ £$ ®$ »$È$Î$ß$ï$ þ$ % %"%*%:%L%3U%‰% %œ%¢%ª% ¹%Ç% Ï% Û% è% õ%L&0P&$&¦&`µ&C'Z'+k'—' ' ²'¿' Õ'Íß'\­( ) ))) 1)*;)f)o)7v)<®)ë)ÿ) **$* ?*L*P*W*i*Ix*Â*Õ* æ*ô* ü* + +$+ 3+ ?+6M+„+ œ+¨+®+À+ à+ê+,6&,], e,†,,-%-*- A-N-]- m-Ž-¡-±- Ä-Î-à-ó- ú-..*. :.G._.q.†.˜.§.».Ð.à.÷.r /~/!/@¯/ð/9 0%F0 l0w00+©0Õ0 ï0(ü0/%1;U1‘1 š1¦1¯1È1Î1à1 ð1ü13 3%3-3=3 N3-Z3 ˆ3 –3 3²±3d4i4|4 ‹4–4«4 ¿4OË485<T5M‘5ß5:ï52*6 ]6i67r6 ª6‘´6"F7 i7Š7 7À7Ô7dï7T8.Z8'‰8 ±8¿8 Æ8 Ó8Ý83î8"9 ¤9 ®9 ¸9Ã9á9ç9 ÿ9 :: :":*:/:ã6:;7<žU<9ô<.=M=fh=KÏ=2>5N>„>-ž>@Ì> ??I?e?n? ƒ? ??£?³?º?Ì?Þ?æ? í?û? @@,@C@S@o@‡@@'AEAMAVAeA jAvA.A¾AÄA2ÕA BB-BMBOdB3´B8èB(!CJCh]CKÆCD6'D ^D1kDD¢D µD ¿D ÉDÓD!ÜD}þD®|E)+FËUF!G?G(QG*zG¥G¿G"ÝGHH8*H¡cH)I/IAOI‘I8/J>hJJ§J,òJ2KyRK„ÌKsQLÅL;äL: M<wM‘´MOFN©–N§@O™èO]‚P"àPžQ¢Q ²QÊ¿QBŠR§ÍRSuSYÉSf#TFŠTLÑT?U+^U'ŠU&²U6ÙU/V?@Vª€V/+W>[WYšW%ôWÉX\äXbAY¡¤YFZ aZI‚Z@ÌZ? [^M[#¬[/Ð[;\,<\Mi\J·\N]‰Q] Û]å] ô]^ ^^%^*^0^@^F^{M^\É^&_޶_VE`pœab b¶pb'cú>cž9dQØdU*ei€e*êeJgÄ`g~%h ¤h®heÄh *iG7i i‹i¢i¨i¾iÔi Ûiçi úijj!j2jDjIjOjRjDVjE›jHáj *k8kLk kk wkUƒk Ùkçk÷kl"l5lIlZl bl ol|le‹l ñlÖþl)Õmÿm!n(ƒJIƒ ”ƒ¢ƒ µƒÁƒȃ¸èƒ·¡„ÅY…œ†¼‡Ô‡ð‡ ˆj!ˆŒˆ¤ˆ­·ˆe‰ k‰y‰‰¤‰BŠhFŠ(¯Š(ØŠ7‹39‹+m‹2™‹%Ì‹1ò‹%$Œ1JŒ8|ŒMµŒ@¶Dwû€sŽUôŽ6J€;B>2s´!(‘<J‘+‡‘3³‘Zç‘JB’’î­’pœ“7 ”QE”7—”†Ï”V•n•ˆ•g›•– !– B–_L–4¬–aá–sC—]·—,˜6B˜$y˜ž˜½˜ؘSì˜%@™!f™sˆ™/ü™8,š'eš[š;éš?%›!e›‡›¿¡›aœáœåœýœ  (, 1w;³»Íã÷ž0ž@žRžXž wž„žQ›ž íž÷ž> Ÿ HŸVŸeŸwŸ‡Ÿ™Ÿ¬Ÿ¼ŸПߟïŸÿŸ{ ¤Œ  1¡>¡M¡ ^¡ l¡ z¡…¡£¡&¨¡vÏ¡wF¢1¾¢îð¢ߣ@õ£ß6¤¥.¥B¥DT¥y™¥m¦¦ ‘¦›¦  § «§ ¸§ïƧ ¶¨©Ã¨ m©z©2Œ©2¿©ò©ú©ŽªB’ªÕªìªýª`«w«–«²«Å« Ë«Sì«@¬V¬m¬t¬„¬¬$²¬ ׬å¬ ô¬*­-­3>­br­9Õ­1® A® O®#]®x¯vú¯+q°%°Fðt ±<±¼±1J²º|²k7³µ£³Y´aê´aLµ®µC>¶S‚¶AÖ¶x·½‘·3O¸Šƒ¸<¹K¹']¹…¹ž¹¦¹¶¹+Ò¹ þ¹ ººº0ºGº Zºfº‚ºŸº·ºκíº»»/» F»g»‡»r»¼K(¼t¼ ¼ž¼º¼`ؼ#9½]½o½'w½9Ÿ½Ù½Kâ½ .¾~;¾Žº¾RI¿œ¿¢¿§¿ ¾¿Ê¿à¿ó¿ ÀÀ-À?ÀSÀfÀ uÀ‚À•À‘©À#;Á _ÁjÁ|Á#Á;±ÁIíÁo7Â&§ÂμéÂ<¦ÃpãÃTÄ€cÄ äÄ3îÄV"ÅRyÅÌÅÓÅïÅöŹ Æ ÇÆ%ÔÆ úÆÇÇ4Ç#TÇxÇ’ÇN¡Ç‹ðÇ|ÈÈ –È¤È ÄÈ%ÒÈøÈ8ýÈ6ÉÝOÉ -Ê ;ÊËFÊ¥Ë¸Ë ¼ËÊËÝËäË.Ì-3ÌaÌ hÌctÌ ØÌäÌíÌöÌ ÿÌa ÍlÍ „ÍÍ¢Í$Î)4Î ^ÎjÎ#ŠÎ ®Î¸ÎÀÎ ÉÎÓÎ2ñÎ&$ÏKÏbÏ{Ï™Ï¸ÏØÏõÏÐ/Ð#MÐqÐvÐ ˆÐ •ÐZ Ð7ûÐ23ÑfÑkÑMëÑ9Ò7UÒ Ò™Ò ©Ò³Ò ÉÒ'êÒÓ/Ó BÓ*NÓyÓ Ó ›Ó ¦Ó ²Ó!¼ÓXÞÓ 7ÔAÔ_YÔ ¹Ô$ÃÔèÔøÔÕ ‘ÕŸÕ±Õ*ÄÕ5ïÕA%ÖgÖ†Ö=œÖÚÖnîÖ]× l× vׄךױ×É×Ü×ô× ØØ-Ø 5ØVØ[Ø oØ}ØƒØ ˆØ’ؘØ%°ØÖØ ߨéØüØ ÙÙ#Ù BÙNÙ^ÚqÚƒÚ—Ú ·ÚÁÚÙÚ*ßÚ Û*Û @ÛNÛHdÛ(­Û*ÖÛ'Ü)Ü<DÜÜŠÜ6 ÜC×Ü4Ý8PÝo‰Ý]ùÝWÞ*sÞcžÞ#ß&ß6ß#?ß)cßß>+à*jà•à$¤àÉà•Ïà\eâHÂâÓ ãºßãšä ¢ä®äÁäÒäääýäå"å<åQåcåvå‰å¢å ©å ·å,Ååòåææ5+æaæ4sæ¨æ>Ææç*çaBç¤ç̸ç…èJ–èŒáè\néËé#âéêg!êL‰êÖêSëêG?ëP‡ë Øë"åë(ì1ìLìRìgì1‡ìC¹ì1ýì=/ímí |í†í‹í ’í'íÅíÎí âíðí î îî,î>îUîdî+{î §î#±îÕï èïóïðð,ð GðûQðCMñ‘ñ ¦ñ³ñ»ñ ÂñÐñ&Ôñûñ¸ò1½òïò ÷òóU+ó#ó ¥óÆóçÜóÄôÌôÓôæôùôõõ$õCõ JõWõ_õ zõ‡õõ$ªõ>Ïõö-ö2öGö¼Nö„ ÷f÷÷÷  øù *ú6úÄú ÉúÖúßúZèú;Cû`ûàû€úün{ýpêýæ[þ BÿOÿ^ÿqnÿàÿôÿúÿ 0 K Y doƒ“ §´ÎÖ'ÞA^ýmƒkƒï s"~¡¶ÎáƒýHDÊjcz#Þ$8‘Vè -=;\˜¸Îè&û"8sQ–ņ\ Rã „6 !» -Ý ' 3 FJ #‘ äµ 1š cÌ ª0 ÁÛ ÌjAƒ ÅÑ ï{ùžu@„U«Ú_†‹æuršè…ƒ " + 6CIOP §¬ ÁÍåî?÷7M co…¨¬ °»ÄÞÜ»/Ìxüu ‡$’%·Ý)å*'CSk¿ÕWk‘ ¤® É ÔÞ"ý :% ` kIwSÁ"98Xr“Ë_&q!˜ºÃMÔ" 54 j q  z  ˆ “  ˜ ¢ ³  Ä #Ð  ô  !R!3a!+•!Á!kÓ!I?"‰"3ž"Ò" Ú" è"ò"û"###8##O#s#‡#›#)­#×#OÞ##.$aR$4´$Ré$8<%Yu%\Ï%B,&Fo&7¶&Kî&D:'G'7Ç'?ÿ'O?(;(SË(N)an)GÐ)Y*jr*=Ý*B+]^+?¼+-ü+P*,G{,FÃ,V -Ta-/¶-æ-÷- . . !./.H.].n.‹.ž.§.».Ú.ã.÷. / / / /(/./ A/M/V/h/o/ ˆ/–/«/ Á/Î/ â/ í/ø/ 00;0D0 [0 e0q0w0}0”00¥0·0‘À0R1m1„1•1™1K©1$õ1$2-?2m2…2›2«2°2Ç2 Ê2Ø2ç2û2 33/3F3 M3 [34e3+š3Æ3ß3 æ3 ô3444!*4L4\4 l4y44&¦4Í4â4&ú4!515'K5»s5#/6BS6–6´6Æ6 ß6í67Â7à7ý7#979 =9H:W:;f:¥¢: H; U;+`;$Œ;±; ¸;Â;È;Í; Ö;à;Ìã;°<È<Ë<*Þ< = = =U)==˜=„­=[2>HŽ>*×>'?+*?V?šv? @@@6@&M@ t@@ ‰@U•@ë@ó@ú@A)A?A VAdAiA‚A”AA ³AÀA ÅAÏA*àA+ B07BWhB(ÀB3éB!C,?ClC‡C D!(DDJDD"ªDÍDâD ùDE EE*E HETEjE-~E¬E¿EÎEÞáE(ÀFéF G2G CGPG `GlGtG‹GœG ²GÀGÔG ãGðGH H>)HhH mHwH €H ‹H –H£H¬H½H ÏH ÜH[êH1FI*xI£If´IIJeJ2yJ ¬J·JÍJÝJðJÛùJVÕK,L ALKL TL3^L’L˜L? LFàL'M NPN bNmN |N ‡N@”NÕN éNôNùN O 'O5O7O9O ;O+GO sOO PPP9PIP ^P'lP”P¦P ¹PÃPÌPÜPôPùP Q Q(Q @QKQaQrQ…Q•Q§Q¾QÑQáQ÷Qz R„R"”R>·R öRBS8ZS “SŸS ¶S!×SùS T $T-/T9]T —T ¡T ¯T½TÜTàT ñT ÿT& U1V 6VCVJVYVkV>tV ³V¿VÈV¹ÜV–WšW ±W ½WÊWÞWôW\ XAfXC¨XWìXDY5TY0ŠY »YÉYIÒYZ™$Z$¾Z"ãZ[[%:[&`[K‡[Ó[Ø['Þ[\\\ -\;\;S\\ ]-]>]R] q]|]]ž] ¤] ®]¸]À]Å]çÍ]$µ^Ú_§ù_.¡`Ð`é`_a_ca7Ãa>ûa":b9]bE—b ÝbëbRôb GcUckc ~c ‰c”c£c©c¹cÐcÕcÞcîcddd;d Jdkd‡d’Ÿd+2e^e fe se}e†eŸe;µeñe øe0f 6fAf*^f‰fX©f%g5(g,^g‹gjžgM hWh7mh ¥h4²hçhíh i i i "i/i‰Li¯Öi1†jǸj€kk%¬k-Òkll"9l\lpl@l´Âl,wm¤mJÀm´ n;Àn<ünM9o.‡o-¶oväo‚[p’Þpqq2‡q3ºqîq öqrP’rÄãrŨs ntZu$ju¨u8v HvÓTvK(wÔtwqIx[»xfyN~ySÍyD!z5fz4œz0Ñz;{/>{_n{Î{;^|Nš|é|'ø|Ì }fí}^T~¥³~Y+yL¥Hò[;€a—€'ù€<!S^/²YâK<‚Lˆ‚˜Õ‚ nƒ|ƒ“ƒ¦ƒºƒ˃ÒƒÖƒÛƒðƒõƒŒýƒpŠ„™û„y•…r†v‚‡fù‡»`ˆ‰ú,‰¡'ŠFÉŠa‹ur‹Aè‹T*Å„EŽ ÊŽÖŽ€öŽwa€ âð (8 ?Li{ƒœ®ÂÇÍÒQÖS(‘U|‘ Ò‘à‘#ø‘ ’'’T:’’£’¶’Ð’å’““ -“7“F“U“|g“ 䓿ò“-Ù”•"%•*H•s•E•¯Ö•O†–Ö– d—o—u—$y— ž—‹©—¨5˜ ޘ阙ݙõ™ šš .š ;šFšNš]štš ˆš–š«š»š ךäšúš ›,›;›C›h`›É›@Ü›.œLœ;Qœ œE—œÝœvôœîkZž$qž.–ž,Åž¹òž3¬Ÿøà ‘Ù¡mk¢æÙ¢ÒÀ£“¤%œ¤*¤¬í¤Yš¦qô¦f§‚§—§å«§‚‘©Rªgªlªˆª ™ª¤ª§ª¶ª ˪ت"લ«ض«á¬ªq­¯8¯ T¯u¯ޝ°)°¦?°æ° ì°ö° ±Ž±§±iª±-²6B²>y²E¸²1þ²#0³T³%j³³!«³8ͳO´=V´º”´ƒOµvÓµSJ¶3ž¶ŠÒ¶0]·KŽ·)Ú·ˆ¸"¸*°¸Û¸=õ¸h3¹Sœ¹ð¹÷ºq»1z»O¬»8ü»“5¼ɼå¼½`½v½"’½ µ½a¿½7!¾HY¾ƒ¢¾h&¿1¿3Á¿%õ¿ À<ÀXÀboÀÒÀ!ìÀŒÁ6›ÁVÒÁ&)Â/PÂ:€ÂF»Â+Ã'.ÃÖVÑ-Ä¿ÄÂÄÈÄ ÏÄ ÙÄäÄôÄøÄ Å\Å kÅwʼnŢŶÅÏÅÖÅ éÅóÅúÅ ÆÆ4Æ =Æ JÆ2UÆ ˆÆ”Æ›Æ¤Æ«Æ ´Æ¾ÆÅÆÔÆÝÆäÆëÆqóÆžeÇÈÈ'È ;ÈIÈ YÈgÈnÈrÈvÈ*‘ȼÈgÝP¸JaÆÊäY¼œ÷.* Ù'—[ö¶S“0}ÂÒÉ]¬«Ì¨¯6e"üþE’Ã=Í~›Ÿ‘bØðÅ­MXÝXÁÔ? 1JZ+É¡.´ %·Ágê‹“¿œ@xØÄ4Q  ª{îëY:½·Ö{?´Ï“-³J‡Aó»ò‡Î6 ™ª³š!WŽ8¸œ):ºC™[E¢Ý‘ÄÆáž[zÍøô ˸•Úspígu|„¬nB €rôððÒås¶{ÈÕúc`²nË‚ÊÂÛ²Dyü<Þç¦r¿VQpçÐã!>jk§#¿°$Õ= PE¡ºPuˆe…«Õáì\–‘ ®¥ºS;v©p2a^ÙKÁ‰lG ÂÿÀ…p+- /¹ŸîÅÙBñþ™^n¨ˆÈŠSº–”Uêícôb7T'„V{úÞ=Ôi-Ið»ixrEÑŠ·àÑÆ]ªt+4gAØø(e¿o| ¾Aúçèûúñ‹:ÖÚ{]Ù )«ÃÕ{ÖàuÌá5!Óòe\ö*ÌÚgƒ—>šF%Á¢mY.ݳSzl8,P;°|CÔúF­žß¼çæ~q é=hK®©¼ïÝã0•Ûåòøó ïÇé϶^Þ­O)”aÀƒOì´!'1é¡C„Û& „˜%pQ·²%ƒývÃü–‰Â¹y3 f\ÿ ­,õƒI6Âļ}\n°ÉX^|¬%7 nv‰,m-JöG<¬±Ãí<—›?Á:— )‚x÷1ÍÞ=R¶rFÀÉsoMޝn¤}£›@,åõ`Tè©ôìä†[)c¹‰ã%,ÿ~Ÿi(32$G"å‰7è ³ÌÆÅ°xñùÅ÷Š Ûô§O_ª‡ˆrî&†U/åU¦I+ŒA”Ïéí4Ï0R?ÞÔÑ1´V÷ø½ÃÒDíÆ¥X—vøüh_5¼k8˜ZïYJñæ-é×_x±šõµœ˜jf»* …Œ‚ã’óëWþ÷'¾¿EWÀÎ!Úe*–ãjç'ýÍ?×Fk†}ä0òý£­ZîΠ£iü¯HžI¸>¯6&±d†Ü¿dÁ›é.Ë9WRÇ $&&¦!†^çþ¼—#’m⃠Òj[PžD½˜¡¤c&2º"à#ÿ(À8 MmÛäSýÅߤK̶R; hI•®4wÒÕ#@( ÛlóNâfË~Pd%ª«Q5[õÎ*’´â$쟦þ4Ð  B÷§µÐàyKûµÙ*2N¨.Zq»ügBÍ6/‹+Ç<äšêxaAð\dq¶’v,ûöÊùSïu¥Ü܆¬ŸTÜ¥ˆÞj‘€-Hc}t uG<$ ¢RHtÉl²Êw£ûùÖÐdt»Î7/‘TtÈ•mZì$×7±aRB¬´>yt¨Í]‚M³àYêf°Ð‚(3¹¢|ÑwC.ëLó"@öœ’6U°Ž›N×Ì  –Ã)³ÿuìviýKèœDÐÈ~”!9W€_:еY`挌ñÎࣾL`y›7$ÄæDFÄC/ÚNïqÔ˜¨;]ë¨sVš×qØ)|GEÜ¥º½ó­„˜‰Ó®€ €À &‡ËÈ׊h¤Õ± zo/ (“r®§`ž¢ÈhžL£ë…W"¡ÏhØ`ߥ•0¦ NŒ½ >…1z\ú©‹ý@‘¹ù–8§^ƒQqî¡á”îa•ò<€”-ÿ“w«wûmUf+Ä+9bMIliµÇ3Žoþ²Oµ=ŠT~™GÅe?2ô‚‡Må_펷«"ŽÓÖ¾HâQ>jV§X¢ßzZ4dpˆlÓ"±™™èûkB9“É:šŸ»Læ'ݯá¯}2Xbb;ßV.©0@ãä9ÑHLJ Ø …Ú_C3fÊ3·Fõ#AÓzDbǪk'#ÑácêÒ²â5;Jùˆõ®1NwŒ oO½ *öÙ¦âê‹8TH ï#ñL]ù¤ðϹ©ÔË5ß,¾„ o¾¸¤yò9æss(ÊÜÆ5OøkèLÓÖK‹¸Uë (Opens in new window) or Cancel and go back to the settings."Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on).# of Tweets Shown:%1$s %2$s Views%1$s – %2$s%1$s (%2$s) thinks you may be interested in the following post:%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = deactivation URL, %2$s = "Deactivate {list of Jetpack module/feature names}If your site is not publicly accessible, consider deactivating this feature.If your site is not publicly accessible, consider deactivating these features.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%l = list of Jetpack module/feature namesLike your site's RSS feeds, %l allows access to your posts and other content to third parties.Like your site's RSS feeds, %l allow access to your posts and other content to third parties.%s (Jetpack)%s (Required)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is not a valid command.%s is not a valid module.%s is required%s px%s requires a valid email address%s wants to access your site’s data. Log in to authorize that access.%s was not activated.%s was not deactivated.%s: %s« Previous← Older Comments— Select —(Shows %s posts on each load)(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s3999 Mission Boulevard, San Diego CA 92109404 error pageActivate NowActivate Now or return to previous page.Click here to refresh this list.Learn more about these options.% Replies1 Reply

        Activate Site Management to manage multiple sites from our centralized dashboard at wordpress.com/sites. Learn more.

        Activate Now%4$s« Back to Gallery« Older%d bloggers like this:%s Activated! You can change the setting of it here.%s Activated! You can deactivate at any time by clicking the Deactivate link next to each module.%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. The Display WordPress Posts Widget lets you display up to ten recent posts from another WordPress.com blog, or a self-hosted WordPress site with Jetpack enabled.The Facebook Like Box Widget shows your Facebook Like Box within a sidebar on your theme.The Gallery Widget provides you with a simple way to display a photo gallery or slideshow in your blog’s sidebar. Requires the Tiled Gallery module.The Gravatar Widget allows you to pull in your Gravatar image along with some of your Gravatar profile data.The Image Widget lets you easily add images to a sidebar on your theme.The Twitter Widget shows your latest tweets within a sidebar on your theme.The Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go, Jetpack is now active. You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentA known issue.A problem with your XMLRPC file.A theme conflict.ActivateActivate AkismetActivate Jetpack ProtectActivate Site Management and JSON APIActivate nowActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New ComicAdd New Menu Item LabelAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd One ItemAdd Site IconAdd These New Menu ItemsAdd a Site IconAdd a new fieldAdd a new post or page to any of your sites from a single interface.Add a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Add-onAdd-on CSS (Recommended)Additionally you can define your own custom services.Address:Adjust your Jetpack Comments form with a clever greeting and color-scheme.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.Akismet can help to keep your blog safe from spam!AlbumAllAll ComicsAll DoneAll Menu Item LabelsAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAll taxonomy pagesAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to upload videosAlphabeticalAlternate text:An %s AirlineAn Automattic AirlineAn API key is needed for Jetpack Protect.An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.An incompatible plugin.An invalid request was made. This normally means that something intercepted or corrupted the request from your server to the Jetpack Server. Try again and see if it works this time.An unknown error has occurred. Please try again later.Answer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to disconnect from WordPress.com?Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.Are you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to General SettingsBack to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:Blog follow email textBlueBoost traffic, enhance security, and improve performance.Border Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browser ChromeButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.By checking the box above, each new set of posts loaded via Infinite Scroll will be recorded as a page view in Google Analytics.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I send a notification to more than one person?Can I view my feedback within WordPress?CancelCancel replyCannot deal with cookie redirects, as headers are already sent.Caption:CarouselCategoryCenterChange logoChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Check for SpamCheck out other recommended features below, or go to the settings page to customize your Jetpack experience.CheckboxChecking email updates status…Choose ImagesChoose from the most used LabelsChoose from the most used tagsChoose logoCirclesClichésClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on %sClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseClose modal windowColor SchemeComicComic draft updated. Preview comicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsComing soon…CommentComment Likes areComment cache problem?Comment follow email textComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnectConnect and share your posts on %sConnect now to enable features like Stats, Likes, and Social Sharing.Connect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnected as:Connected to WordPress.comConnecting with WordPress.com SSO enables you to log in via your WordPress.com account.Contact FormContact Form URL:Contact InfoContact the Jetpack Happiness Squad.Continue reading →Control which pages your widgets appear on with Widget Visibility.Convert to ComicConvert to PostCount the page views of registered users who are logged in.Create Share ButtonCreate elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCustomCustom CSSCustom CSS StylesheetCustom Content TypeCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDebugDebug InfoDebug Jetpack for more information.DefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDescriptionDevelopers can use WordPress.com's OAuth2 authentication system and WordPress.com REST API to manage and access your site's content.Diacritical MarksDifficultyDisable CSS and JSDisable Post By EmailDisconnectDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display featured imagesDisplay images in full-size carousel slideshow.Display share menu and allow viewers to embed or download this videoDisplay upcoming events from an iCalendar feed.Display your location, hours, and contact information.Displayed below your posts will be how many people have liked your posts and the Gravatars of those who have liked them.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do I need to fill this out?Do you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Don't show the Reblog button on postsDouble NegativesDownloadDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downDrop images to uploadE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each module has an Activate or Deactivate link so you can toggle one individually.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.Easily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit DetailsEdit Menu ItemEdit Menu Item LabelEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail Address:Email check failed, please try againEmail me wheneverEmail notificationsEmail settingsEmails will be sent to %s (Edit)Empty SpamEnable Portfolio Projects for this site.Enable Post By EmailEnable Testimonials for this site.Enable carouselEnable excerpts on front page and on archive pagesEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnabling Manage allows you to update your self-hosted WordPress sites along with any WordPress.com sites you have, all in one simple dashboard.English OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Enter your meta key "content" value to verify your blog with %sError Details: %sError Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %sError Details: Jetpack ID is empty. Do not publicly post this error message! %sError Details: Jetpack ID is not a scalar. Do not publicly post this error message! %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example of a phone number1-202-555-1212Example:Example: The user is looking at a page, not a post.PageExcerptsExplain...Export feedback as CSVFacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Feedback(s) marked as spamField typeFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.First optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFood MenusFor example, if you wanted the Archives widget to only appear on category archives and error pages, choose "Show" from the first dropdown and then add two rules: "Page is 404 Error Page" and "Category is All Category Pages."For example, spicy, favorite, etc.
        Separate Labels with commasFor more information:Form builderFormat:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!Full management mode is off for this site.GalleryGallery Carousel ScreenshotGet an API KeyGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGet the most out of Jetpack with...Give Us FeedbackGive your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:Here’s what your form will look likeHidden VerbsHideHide all featured imagesHide related content after postsHide tag from displaying in post meta and tag clouds.Hide the stats smiley face image.HomeHours & InfoHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IPv4 and IPv6 are acceptable.
        To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.If none of these help you find a solution, click here to contact Jetpack support. Tell us as much as you can about the issue and what steps you've tried to resolve it, and one of our Happiness Engineers will be in touch to help.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.If you get a 404 message, contact your web host. Their security may block XMLRPC.If your problem isn't known or caused by a plugin, try activating Twenty Twelve (the default WordPress theme). If this solves the problem, something in your theme is probably broken – let the theme's author know.Ignore allIgnore alwaysIgnore suggestionIgnore the difference. This is just a staging site for the real site referenced above.Ignored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedImages:InactiveInclude this CSS in the Mobile ThemeIndexing postsIndexing request queued and waiting…Insert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid idInvalid or expired nonce.Invalid requestInvalid security token.Invalid usernameIs this site private?It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.It's ready to bring awesome, WordPress.com cloud-powered features to your site.Items on your restaurant's menuItems to show:JargonJetpackJetpack CommentsJetpack Comments ScreenshotJetpack Comments enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site.Jetpack Debugging CenterJetpack FAQJetpack Network Settings Updated!Jetpack Plugin VersionJetpack Protect helps to keep you secure from brute-force login attacks.Jetpack Protect is inactive.Jetpack SettingsJetpack Single Sign OnJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack connects your site to WordPress.com to give you traffic and customization tools, enhanced security, speed boosts, and more.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is installed!Jetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will allow you to authorize applications and services to securely connect to your blog and allow them to use your content in new ways and offer you new functionality.Jetpack will automatically take the great published content from your blog or website and share it instantly with third party services like search engines, increasing your reach and traffic.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJump StartJump Start your siteJump to:Jumpstart DescriptionTwitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content.Jumpstart Descriptionadds a button to your post and page editors, allowing you to build simple forms to help visitors stay in touch.Jumpstart Descriptionbrings your photos and images to life as full-size, easily navigable galleries.Jumpstart Descriptiongive visitors two easy subscription options — while commenting, or via a separate email subscription widget you can display.Jumpstart Descriptionhelps you remotely manage plugins, turn on automated updates, and more from wordpress.com.Jumpstart Descriptionkeep visitors engaged on your blog by highlighting relevant and new content at the bottom of each published post.Jumpstart Descriptionlet commenters link their profiles to their Gravatar accounts, making it easy for your visitors to learn more about your community.Jumpstart Descriptionlets you login to all your Jetpack-enabled sites with one click using your WordPress.com account.Jumpstart Descriptionmirrors and serves your images from our free and fast image CDN, improving your site’s performance with no additional load on your servers.Keep up with the latest happenings on all your WordPress sites and interact with other WordPress.com users.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLabels: spicy, favorite, etc. Separate Labels with commasLanguageLargeLarge Blog ImageLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Jump Start and what it adds to your site.Learn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes allow your readers to show their appreciation for your posts and other published content using their WordPress.com accounts. Your readers will then be able to review their liked posts from WordPress.com.Likes and SharesLimit must be greater than or equal to 0.Limit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link Color (hex):Link To:Link URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoad your XMLRPC file. It should say “XML-RPC server accepts POST requests only.†on a line by itself.Loading …Loading Comments...Loading video...Loading…Loading...Log in with WordPress.comLogged InLogged OutLogin Blocked by JetpackLogin method not allowedLogoLunch: 11am - 2pm Dinner: M-Th 5pm - 11pm, Fri-Sat:5pm - 1amM j, Y @ G:iMain SidebarMake this connection available to all users of this blog?Manage all of your WordPress sites, self-hosted or not, from WordPress.comManage has been activated for you!Manage your Publicize settings.Manage your Post By Email address from your profile settings.Manage your multiple Jetpack sites from our centralized dashboard at wordpress.com/sites. Learn more.Mark as SpamMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMarkdown lets you compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text, without having to take their hands off the keyboard, and without learning a lot of complicated codes and shortcuts.Match by EmailMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu Item LabelMenu Item LabelsMenu ItemsMenu Items re-ordered.Menu SectionMenu SectionsMenu item draft updated. Preview itemMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item scheduled for: %1$s. Preview itemMenu item submitted. Preview itemMenu item updated.Menu item updated. View itemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile App PromosMobile AppsMobile ThemeMobile-compatible:Modal window. Press escape to close.Mode:Module DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd a site icon to your site.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAdds brute force protection to your login page. Formerly BruteProtect.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionCheck your spelling, style, and grammar with the After the Deadline proofreading service.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionProtect your site with automatic backups and security scans. (Subscription required.)Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameJetpack CommentsModule NameJetpack Single Sign OnModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NameProtectModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule NameWordPress.com StatsModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagJumpstartModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSocialModule TagWordPress.com StatsModule TagWritingModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Module not found: `%s`.Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Publicize.More information on using Related Posts.Move menu section downMove menu section upMy TweetsNameNetwork SettingsNewNew ComicNew Menu ItemNew Menu Item Label NameNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNew in Jetpack: Centralized Site ManagementNewer »Newer Comments →NewestNext »Next » NoNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo LabelsNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Modules FoundNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo blog_id was included in your request. Please try disconnecting Jetpack from WordPress.com and then reconnecting it. Once you have done that, try connecting Publicize again.No comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No upcoming eventsNo user information was included in your request. Please make sure that your user account has connected to Jetpack. Connect your user account by going to the Jetpack page within wp-admin.No writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!Nonce verification failed.NoneNope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don’t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.Not ConnectedNot connectedNote: Custom CSS will be reset when changing themes.Note: Images in tiled galleries require extra-special processing, so they will be served from WordPress.com's CDN even if the Photon module is disabled.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Now you can update plugins, set plugins to automatically update, and activate or deactivate plugins on a per-site basis or in bulk from wordpress.com/plugins.Number of Posts to Display:OKOfficial buttonsOffset must be greater than or equal to 0.Older %sOlder postsOmnisearchOmnisearch plays nice with other plugins by letting other providers offer results as well.On for all commentsOn for all postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Once enabled, a "Log in with WordPress.com" option will be added to your existing log in form.Once you’ve made the connection you’ll activate all the delightful features below.One New Jetpack Module%s New Jetpack ModulesOne of your IP addresses was not valid.Only display videos in free software formatsOnly images can be uploaded here.Only the user who initiated the Jetpack connection on this site can toggle %s, but that user no longer exists. This should not happen.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Page %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please describe the problem you are having.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please solve this math problem to prove that you are not a bot. Once you solve it, you will need to log in again.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please upload a file.Please verify your birthday.Plugin activated.Plugin deactivated.PluginsPocketPopularPopular LabelsPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post converted.%s posts convertedPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts indexed.Posts pagePreprocessor:Press ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize allows you to connect your blog to popular social networking sites and automatically share new posts with your friends. You can make a connection for just yourself or for all users on your blog.Publicize allows you to share your posts on Facebook, Twitter, Tumblr, Yahoo!, and Linkedin.Publicize to my %s:Publicize:PublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RadioRandom Order:RatingReceive Monitor Email Notifications.Recent PostsRedRedditRedundant PhrasesRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove ServiceRemove logoRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyReport visibilityRequire Two-Step AuthenticationRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:Return to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave New OrderSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll InfinitelyScroll back to topSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu Item LabelsSearch Menu ItemsSearch Menu SectionsSearch Modules…Search PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch once, get results from everything! Currently supports searching posts, pages, comments, media, and plugins.Search resultsSee the other %s Jetpack featuresSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.ServingsSet as logoSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow StreamShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow a promo for the WordPress mobile apps in the footer of the mobile theme.Show buttons onShow falling snow on my blog until January 4th.Show full posts on front page and on archive pagesShow likes.Show mapShow map of photo location in carousel, when available.Show moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSite IconSite Icon UploadSite Icon creates a favicon for your site and more.Site Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site LogoSite NameSite StatsSite Title, Tagline, and LogoSitesSkip to primary contentSlideshowSmallSmileySmiley faceSnippetSnowSocialSome features of Jetpack uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, please try requesting a reindex of your posts.Some themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Someone likes one of my postsSomeone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.Something has gotten mixed up in your Jetpack Connection!Something has gotten mixed up!Something is being cranky!Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStatus unknown.Style:Stylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe Placeholder:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSuccess Message Text:Success! An email was just sent to confirm your subscription. Please find the email now and click activate to start subscribingSuccess! You've jump started your site.SupportTag nameTagged with %sTagsTake SurveyTake WordPress with you.Take a survey. Tell us how we’re doing.TermsTerms of ServiceTest your site’s compatibility with Jetpack.TestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial pages display at most %1$s testimonialsTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTesting your site's compatibility with Jetpack...TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.That used to be my URL for this site before I changed it. Update the WordPress.com Cloud's data to match my current settings.The After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Client ID/WP.com Blog ID of this siteThe Custom CSS editor gives you the ability to add to or replace your theme's CSS, all while supplying syntax coloring, auto-indentation, and immediate feedback on the validity of the CSS you're writing.The Facebook Like Box Widget The Image Widget The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe Plugin is already active.The Plugin is already deactivated.The RSS Links Widget The Twitter Widget The Twitter username of the owner of this site's domain.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WP.com username of the connected userThe WordPress.com blog_id is %dThe authorization process expired. Please go back and try again.The data listed above is not for my current site. Please disconnect, and then form a new connection to WordPress.com for this site using my current settings.The default content width for the %s theme is %d pixels.The email you entered was invalid. Please check and try again.The file that you uploaded is not an accepted file type. Please try again.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The image helps collect stats and makes the world a better place but should still work when hiddenThe image needs to be at leastThe image that you uploaded is smaller than %upx in height.The image that you uploaded is smaller than %upx in width.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The proofreader supports English, French, German, Portuguese, and Spanish. Your user interface language (see above) is the default proofreading language.The settings for Featured Content have moved to Appearance → Customize.The specified theme was not found.The test results and some other useful debug information will be sent to the support team. Please feel free to review/modify this information.Theme is empty.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There seems to be a problem with your site’s ability to communicate with Jetpack!There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem connecting to %s to create an authorized connection. Please try again in a moment.There was a problem connecting to %s. Please disconnect and try again.There was a problem connecting with Publicize. Please try again in a moment.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There was an error while activating the module.There was an error while getting the update data for this site.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This feature uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, request a reindex of your posts.This gallery contains %2$s photo.This gallery contains %2$s photos.This module can only be altered by %s, the user who initiated the Jetpack connection on this site.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This site is too large, please contact Jetpack support to sync.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This video is intended for mature audiences.This video requires Adobe Flash for playback.This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?This will prevent user-specific modules such as Publicize, Notifications and Post By Email from working. Are you sure you want to unlink?ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:To add a new icon to your site, head over to Settings → General → Site Icon, and upload an icon.To configure your sharing settings, go to the Settings → Sharing menu.To control visibility, expand the widget and click the Visibility button next to the Save button, and then, choose a set of visibility options.To customize the emails sent from your blog to your followers, check the settings at the bottom of the Reading Settings page.To enable a custom content type, head over to Settings → Writing → Your Custom Content Types to activate either "Portfolio Projects†or “Testimonials†by checking the corresponding checkbox. You can now add projects and testimonials under the new "Portfolio†or “Testimonials†menu item in your sidebar.To enable all of the Jetpack features you’ll need to link your account here to your WordPress.com account.To enable all of the Jetpack features, you’ll need to connect your website to WordPress.com.To immediately boost performance, security, and engagement, we recommend activating %s and a few others. Click Jump Start to activate these modules.To infinity and beyondTo see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To start using Jetpack, connect to your WordPress.com account by clicking the button (if you don’t have an account you can create one quickly and for free).To use Jetpack please contact your WordPress administrator to connect it for you.To use Post By Email, you need to link your %s account to your WordPress.com account.To use Publicize, you'll need to link your %s account to your WordPress.com account using the link below.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the CSS editor, go to Appearance → Edit CSS.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTrack each Infinite Scroll post load as a page view in Google AnalyticsTransparentTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter Site TagTwitter TimelineTwitter username:TypeTypesUPURLUnable to create your Post By Email address. Please try again later.Unable to disable your Post By Email address. Please try again later.Unable to regenerate your Post By Email address. Please try again later.UncategorizedUnlink This AccountUnlink user from WordPress.comUnpublishedUnsubscribeUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu Item LabelUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdate Site IconUpdatedUpload ImageUpload VideoUpload a VideoUpload a image that you want to use as your site icon. You will be asked to crop it in the next step.Uploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use Google Analytics with Infinite ScrollUse Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUse a valid email address.Use automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.Use these settings to display different types of content on your site.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUser linked to WordPress.comUsernameUsing the checkboxes next to each module, you can select multiple modules to toggle via the Bulk Actions menu at the top of the list.Using the tools on the right, you can search for specific modules, filter by module categories or which are active, or change the sorting order.VaultPressVaultPress dashboardVerified ServicesVerifying your site allows you to access advanced features on these other services (e.g. Webmaster tools, or getting a verified badge). We'll just add an invisible %s tag to the source code of your homepage.Video Preview:Video on %sVideo post by %s.Video post.VideoPressView AllView ComicView Full Profile →View Full SiteView Menu ItemView Menu Item LabelView Menu SectionView Mobile SiteView ProjectView Project TagView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.Visit the post for more.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.We could not verify that your server is making an authorized request. Please try again, and make sure there is nothing interfering with requests from your server to the Jetpack Server.We couldn't find an account with the email %1$s to log you in with. If you already have an account on %2$s, please make sure that %1$s is configured as the email address, or that you have connected to WordPress.com on your profile page.We couldn't find any account on %2$s that is linked to your WordPress.com account to log you in with. If you already have an account on %2$s, please make sure that you have connected to WordPress.com on your profile page.We have apps for iOS (iPhone, iPad, iPod Touch), Android, BlackBerry, and more!We were unable to get your stats just now. Please reload this page to try again.We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact support. In your report please include the information below.We’ve changed this option to a click-to-scroll version for you since you have footer widgets in Appearance → Widgets, or your theme uses click-to-scroll as the default behavior.WebsiteWebsite Verification ServicesWelcome to Jetpack %s!Welcome to Custom CSS! CSS (Cascading Style Sheets) is a kind of code that tells the browser how to render a web page. You may delete these comments and get started with your customizations. By default, your stylesheet will be loaded after the theme stylesheets, which means that your rules can take precedence and override the theme CSS rules. Just write here what you want to change, you don't need to copy all your theme's stylesheet content.Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWe’ll also let you know as soon as your site is up and running, so you can keep an eye on total downtime.What should the subject line be?What’s a Hovercard?What's a Gravatar?When adding a gallery to your post, you now have the option to select a layout style for your images. We've added support for Rectangular, Square, and Circular galleries. By default, galleries will continue to display using the standard thumbnail grid layout. To make the rectangular layout the default for all of your site's galleries, head over to Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.When you write great content, all you really want is people to find it, right?WhiteWhitelist ManagementWhitelist saved.Widget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Widgets ScreenshotWidth (px):Width:With 1 commentWith %s commentsWith Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With WordPress.com Single Sign On, your users will be able to log in to or register for your WordPress site with the same credentials they use on WordPress.com. It's safe and secure.With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.With the Infinite Scroll module and a supported theme, that's exactly what happens. Instead of the old way of navigating down a page by scrolling and then clicking a link to get to the next page, waiting for a page refresh—the document model of the web—infinite scrolling pulls the next set of posts automatically into view when the reader approaches the bottom of the page, more like an application.WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com Single Sign OnWordPress.com StatsWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are all set! Your site can now be managed from wordpress.com/sites.You are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou are required to specify a capability to check.You are required to specify a module.You are required to specify a plugin to activate.You are required to specify a plugin.You are required to specify a theme to switch to.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can also hide widgets based on the current page. For example, if you don't want the Archives widget to appear on search results pages, choose "Hide" and "Page is Search results."You can also make changes to your Subscription settings at the bottom of the Discussion Settings page.You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You can view your notifications in the Toolbar and on WordPress.com.You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have been subscribed to receive email updates.You have chosen not to connect your blog. Please click 'accept' when prompted if you wish to connect your accounts.You have shared this post with %sYou have successfully connected your %1$s account with %2$s.You have successfully disconnected Jetpack.You must log in to post a comment.You must be logged in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You must specify a valid actionYou need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.You will no longer receive email updates about Jetpack.Your %1$s option is set up as %2$s, but your WordPress.com connection lists it as %3$s!Your API key is invalidYour Custom Content TypesYour Email AddressYour IP (%1$s) has been flagged for potential security violations. Find out more...Your Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your Site Stats work better with Javascript enabled.Your Testimonial Archive currently has no entries. You can start creating them on your dashboard.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!Your answer was incorrect, please try again.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your current IP: %sYour main blog is not connected to WordPress.com. Please connect to get an API key.Your new field was saved successfullyYour site icon has been uploaded!Your site is configured to only permit SSL connections to Jetpack, but SSL connections don't seem to be functional!Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your theme supports %sYour upload didn't complete; try again later or cross your fingers and try again right now.Your video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andas sharing sourceEmailcancelclick hereconfigurecrop the imagedayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in both width and height.in {category/tag name}In "%s"loading…locales%1$s/%2$smonthnext-saturdayImage navigationnounCommentor, deactivate Jetpackplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forceselect a fileshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?words{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.Blocked malicious login attempts{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.Spam comments blocked by Akismet.{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-20 01:42:10+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Ã¥pnes i en ny fane)eller Avbryt og gÃ¥ tilbake til innstillingene."Relaterte innlegg" viser relevante lenker til innhld pÃ¥ ditt nettsted, under dine innlegg. Hvis funksjonen er aktivert vil lenker dukke opp under dine delingsknapper og WordPress.com-likinger (om du har skrudd pÃ¥ disse).Antall tvitringer vist:%1$s %2$s visninger%1$s – %2$s%1$s (%2$s) tror du kan være interessert i det følgende innlegget:Helt klart. %1$s for Ã¥ legge til en ny tekstboks, tekstomrÃ¥de, valgknapper, avkrysningesbokser, eller nedtrekksmenyer.Ja, du kan lese dine tilbakemeldinger nÃ¥r som helst ved Ã¥ klikke pÃ¥ "%1$s"-lenken i administrasjonsmenyen.%1$s sidestolpe%1$s %2$sHvis ditt nettsted ikke er offentlig tilgjengelig bør du vurdere Ã¥ deaktivere denne funksjonen.Hvis ditt nettsted ikke er offentlig tilgjengelig bør du vurdere Ã¥ deaktivere disse funksjonene.%1$s: %2$s%1$s kl %2$s%1$s pÃ¥ %2$s%l Deaktivert! Du kan aktivere den igjen nÃ¥r som helst ved Ã¥ bruke Aktiver-lenken ut for hver modul.%l Deaktivert! Du kan aktivere dem igjen nÃ¥r som helst ved Ã¥ bruke Aktiver-lenken ut for hver modul.Deaktiver %lAkkurat som RSS-matinger, vil %l gi andre adgang til dine innlegg og annet innhold.Akkurat som RSS-matinger, vil %l gi andre adgang til dine innlegg og annet innhold.%s (Jetpack)%s (Obligatorisk)Vil du fÃ¥ oppdateringer om Jetpack pÃ¥ e-post? %sDu abonnerer for tiden pÃ¥ e-postoppdateringer. %s%s feil%s siden%s kunne ikke aktiveres fordi det utløste en fatal feil. Kanskje det er en konflikt med et annet innstikk du har installert?%s kunne ike kobles fra. Er du sikker pÃ¥ at de er koblet til nÃ¥?%s har blitt aktivert.%s er deaktivert%s har blitt koblet fra.%s er et kraftfull oppmerkingssprÃ¥k for Ã¥ skrive komplekse matematiske likninger, formler osv.%s er ikke en gyldig kommando.%s er ikke en gyldig modul.%s er obligatorisk%s px%s krever en gyldig epostadresse%s ønsker adgang til ditt nettsteds data. Logg inn for Ã¥ godkjenne den adgangen..%s ble ikke aktivert.%s ble ikke deaktivert%s: %s« Forrige← Eldre kommentarer— Velg —(Viser %s innlegg i hver innlesting)(uten tittel)(obligatorisk)%1$s pÃ¥ %2$s3999 Mission Boulevard, San Diego CA 92109Status 404-sidenAktiver nÃ¥Aktiver nÃ¥ eller returner forrige side.Klikk her for Ã¥ oppfriske denne listen.Lær mer om disse alternativene.% svar1 svar

        Aktiver nettstedsadnministrasjon for å administtrere flere nettsteder fra vårt kontrollpanel på wordpress.com/sites. Lær mer.

        Aktiver nÃ¥%4$s« Tilbake til galleriet« Eldre%d bloggere liker dette:%s Aktivert! Du kan endre innstillingene til den her.%s Aktivert! Du kan dekativere den nÃ¥r som helst ved i klikke Deaktiver-lenken ut for hver modul..%s er ikke et tillatt innbyggings-nettsted.Jetpack er aktivert! Hver nettside av ditt nettverk mÃ¥ tilknyttes individuelt av en administrator for hver enkelt nettside.Modulinnstillingene ble lagret. Vis WordPress-innlegg-widgeten lar deg vise opp til de ti nyeste innleggene fra et annet WordPress.com-nettsted eller en egendrevet WordPress-nettsted med Jetpack aktiv.Facebook Likerboks-widgeten viser din Facebook Likerboks i et widget-omrÃ¥de i ditt tema..Galleri-widgeten gir deg en enkelmÃ¥te Ã¥ vise et bildegalleri eller en lysbildevisning i et widget-omrÃ¥de pÃ¥ nettstedet ditt. Krever modulen Flislagte gallerier.Gravatar-widgeten tillater deg Ã¥ putte ditt Gravatar-bilde inn sammen med noen av dine opplysninger fra Gravatar-profilen din.Bilde-widgeten lar deg enkelt lege til bilder til et widget-omrÃ¥de i ditt tema.Twitter-widgeten viser dine siste tvitringer i ett widget-omrÃ¥de for ditt tema.Kommende hendelser-widgeten tillater deg Ã¥ bruke en iCalendar-lenke for Ã¥ vise en oversikt over hendelser pÃ¥ ditt nettsted.Du har frakoblet din konto (%s) fra WordPress.com.Du har tanket opp og er klar til Ã¥ kjøre. Jetpack er nÃ¥ aktiv. Du har fylt opp tanken og er klar til Ã¥ kjøre.Din Jetpack har et problem. Noe gikk galt som egentlig aldri skal skje. Antar at du bare er uheldig: %sDin Jetpack har en feil. Det er ikke mulig Ã¥ koble dette nettstedet til WordPress.com. Dette betyr vanligvis at nettstedet ditt ikke er offentlig tilgjengelig (localhost).Din Jetpack er allerede tilkoblet.Et kontaktskjema er en fin mÃ¥te Ã¥ tilby dine lesere muligheten til Ã¥ komme i kontakt med deg uten at du mÃ¥ publisere din epostadresse.Et par velvalgte ord for motivere dine lesere til kommentareEt kjent problem,Et problem med ditt XMLRPC-grensesnitt.En konflikt med et tema.AktiverAktiver AkismetAktiver Jetpack beskyttelseAktiver Nettstedsadministrasjon og JSON APIAktiver nÃ¥AktivLegg tilLegg til kontaktskjemaLegg til flere punkterLegg til menypunktLegg til nyLegg til ny tegnseriestripeLegg til ny menypunkt-tittelLegg til ny menyseksjonLegg til nytt prosjektLegg til nytt prosjektstikkordLegg til ny prosjekttypeLegg til ny anbefalingLegg til et punktLegg til nettstedsikonLegg til disse nye menypunktene Legg til et ikon for nettstedetSett inn et nytt feltLegg til et nytt innlegg eller side pÃ¥ hvilket som helst av dine nettsteder gjennom ett enkelt brukergrensesnitt.Legg til en ny tjenesteLegg til et abonnementsskjema for Ã¥ la leserne abonnere pÃ¥ ditt nettsted.Legg til et nytt alternativLegg til logoLegg til eller fjern titlerLegg til eller fjern stikkordLegg delingsknapper til ditt nettsted og tillat dine besøkende Ã¥ dele innlegg med sine venner,Sett dette skjemaet inn i innleggetLegg til seksjon:TilleggCSS-tillegg (anbefalt)I tillegg kan du definere dine egne tilpassede tjenester.Adresse:Tilpass skjemaet i Jetpack Kommentarer med en fin hilsen og en fargepalett.VerkøylinjeAvansert: Hvis dette alternativet er valgt mÃ¥ du manuelt inkludere disse filene i ditt tema for at delingslenkene skal virke.After the Deadline tlbyr en rekke tilpasningsalternativer som du kan bestemme via din egen brukerprofil pÃ¥ dette nettstedet.Akismet kan hjelpe deg med Ã¥ holde ditt nettsted fritt for useriøse kommentarer!AlbumAlleAlle tegneseriestriperAlt utførtAlle menypunkt-titlerAlle menyseksjonerAlle prosjekt-stikkordAlle prosjekttyperAlle prosjekterAlle anbefalingerAlle forfattersiderAlle kategorisiderAlle datoarkivAlle innleggAlle stikkordsiderAlle taksonomisiderTillat den enkelte nettstedadministrator Ã¥ bestemme sin egen oppkobling (koble til og koble fra) til WordPress.comTillat brukere Ã¥ laste opp videoerAlfabetiskAlternativ tekst:Et %s flyselskapEn Automattic-flylinjeDet trenges en API-nøkkel for Jeptack-modulen beskyttelse.En administrator for dette nettstedet mÃ¥ sette opp Jetpack-tilkoblingen.Det oppstod en feil nÃ¥r den nye tjenesten for deling skulle lages - vennligst sjekk at du ga gyldige detaljer.En feil oppsto. Vennligst prøv igjen.En inkompatibel utvidelse.En ugyldig forespørsel ble gjort. Dette betyr normalt at noe snappet opp eller ødela forespørselen fra din server til serveren hos Jetpack. Prøv igjen og se om det virker denne gangen.En ukjent feil har oppstÃ¥ttt. Vennligst prøv igjen senere.Besvar en kort spørreundersøkelse og la oss fÃ¥ vite hvordan vi gjør det og hva vi bør legg til i fremtiden.BlenderÃ¥pningBeklager, men ingen resultater ble funnet for det ønskede arkivet. Kanskje et søk vil hjelpe med Ã¥ finne et relatert innlegg.ArkivsideEr du sikker pÃ¥ at du vil koble fra WordPress.com?Vil du gÃ¥ ut av skjema-editor uten Ã¥ lagre? Forandringer du har gjort vil forsvinne.Er du sikker pÃ¥ at du vil stanse publiseringen av innlegg til denne forbindelsen?Artistsom ikon pÃ¥ mobiltelefonerBetaltSom ditt nettstedsikonPÃ¥ dette tidspunkt støtter ikke ditt tema, %s, Ubegrenset rulling. Til forskjell fra ande moduler i Jetpack trenger Ubegrenset rulling informasjon fra ditt tema for fungere skikkelig.VedleggssideKorrekturles automatisk innhold nÃ¥r:AutomatticTilgjengelige moduler:Tilgjengelige tjenesterTilgjengelige kortkoder er: %l.Tilbake til generelle innstillingerTilbake til toppen ↑BakgrunnsfargeHusk Ã¥ klikke "oppdater profil" nederst pÃ¥ skjermen for Ã¥ lagre endringene.Før du trykker Publiser, vennligst oppfrisk følgende oppkobling(er) for Ã¥ sørge for at vi kan publisere ditt innlegg til sosiale media.Forutinntatt sprÃ¥kSvartInnleggsarkivNettstedsabonnementer (Jetpack)Nettsted URL:Tekst i epost om Ã¥ følge nettstedetblÃ¥FÃ¥ opp trafikken, forbedre sikkerheten og øk ytselsen.Kantlinjens farge (hex):Ta kraften fra WordPress.com-skyen til din egen WordPress-installasjon. Jetpack lar deg koble din blogg til en WordPress.com-konto, og bruke avanserte funksjoner som normalt kun er tilgjengelige for WordPress.com-brukere.NettleserpyntKnappestilVed Ã¥ legge til et kontaktskjema vil dine lesere kunne sende deg tilbakemeldinger. Alle tilbakemeldinger blir automatisk skannet for useriøse, og godkjente tilbakemeldinger vil bli sendt deg pÃ¥ epost.Ved Ã¥ krysse av i boksen ovenfor vil hver ny porsjon innlegg som lastes gjennom funksjonen Ubegrenset rulling bli regnet som en egen sidevisning i Google Analytics.CSSCSS-versjonerCSS stilark-editorKameraKan jeg legge til flere felter?Kan jeg sende varsel til flere enn én person?Kan jeg se mine tilbakemeldinger i WordPress?AvbrytAvbryt svarKan ikke hÃ¥ndtere redirigeringer via informasjonskapsler fordi dokumenthodet allerede er sendt ut.Bildetekst:KarusellKategoriSentrertEndre logoEndre hvorvidt dine besøkende kan abonnere pÃ¥ dine innlegg, dine kommentarer eller begge deler.Statistikkdiagram etterJukser vi?Se etter useriøseSjekk ut andre anbefalte funksjoner nedenfor eller gÃ¥ til innstillinger for Ã¥ tilpasse din Jetpack-opplevelse.AvkrysningsboksSjekker status for e-postoppdateringer…Velg bilderVelg fra de mest brukte titleneVelg fra de mest brukte stikkordeneVelg logoSirklerKlisjeerKlikk herKlikk for Ã¥ skrive om dette!Klikk for automatisk avspilling av presentasjonen!Klikk for Ã¥ e-poste dette til en vennKlikk for Ã¥ skrive utKlikk for Ã¥ dele pÃ¥ %sKlikk for Ã¥ dele pÃ¥ Google+Klikk for Ã¥ dele pÃ¥ LinkedInKlikk for Ã¥ dele pÃ¥ PinterestKlikk for Ã¥ dele pÃ¥ PocketKlikk for Ã¥ dele pÃ¥ RedditKlikk for Ã¥ dele pÃ¥ TumblrKlikk for Ã¥ dele pÃ¥ TwitterKlikk for Ã¥ vise bildefremvisning.LukkLukk modalt vinduFargeoppsettTegneserieKladd til tegenseriestripe oppdatert, ForhÃ¥ndsvis stripaTegneseriestripe publisert. Vis stripaTegneseriestripe gjenopprettet til revisjon fra %sTegneseriestripe lagret.Tegnseriestripe planlagt for: %1$s. ForhÃ¥ndsvis stripaTegnseriestripe lagt inn. ForhÃ¥ndsvis sripaTegneseriestripe oppdatert.Tegneseriestripe oppdatert. Vis stripaTegneserierKommer snart…KommenterKommentar-likinger erBufferproblemer med kommentarer?Tekst i epost for Ã¥ følge kommentarerNavigering blant kommentarerKommenterer som %sKommentarerKommentarer til dette innlegget er stengt.Komplekse setningerKonfigurasjonKonfigurerSett opp %sKoble tilKoble til del dine innlegg pÃ¥ %sKoble til nÃ¥ for Ã¥ muliggjøre funksjonalitet som statistikk, liking og sosial deling.Koble tilKoble til WordPress.comKoble nettstedet ditt opp mot populære nettverk og automatisk del nye innlegg med dine venner.TilkobletTilkoblet nettsted pÃ¥ WordPress.comKoblet til som:Koblet til WordPress.comTilkobling til enkeltpÃ¥loggings-serveren til WordPress.com gjør deg i stand til Ã¥ logge inn via din konto hos WordPress.com.KontaktskjemaKontaktskjema URLKontaktinformasjonKontakt Jetpacks fornøydhets-ingeniører.Fortsett Ã¥ lese →Bestem hvilke sider dine widgeter vises pÃ¥ med Widget-synlighet.Konverter til tegneseriestripeKonverter til innleggTell sidevisninger for registrerte brukere som er logget inn.Lag en delingsknappSkap en elegant, magasin-liknende mosaikk av dine bilder uten Ã¥ bruke et eksternt grafisk redigeringsprogram.Beskjær bildeTilpassetTilpasset CSSTilpasset CSS-stilarkTilpasset innholdstypeTilpasset epost-adresseTilpasset melding:Tilpasset felt slettet.Tilpasset felt oppdatert.Kundens navnKundeanbefalingerTilpassTilpass arkivet for anbefalingerNEDEDaglige arkievr: %sDaglige arkivMørkDatoDeaktiverDebugFeilsøkingsinformasjonFeilsøk Jetpack for mer informasjon.StandardNytt feltFørste alternativStandardkvalitetSlettSlett permanentSlett dette elementet for godtBeskrivelseUtviklere kan bruke WordPress.com sitt OAuth2 autenseringssystem og WordPress.com REST API til adminstrere og fÃ¥ tilgang til innholdet pÃ¥ nettstedtet ditt..Diakritiske merkerVanskelighetsgradDeaktiver CSS og JSDeaktiver publisering via epostKoble fraKoble fra WordPress.comAvvisAvvis dette varselet og deaktiver Jetpack.Avvis meldingen for denne gang.Avvis dette varselet.Vis topptekstVis WordPress-innleggVis en Facebook Liker-boks for Ã¥ koble besøkende til din Facebook-sideVis en miniversjon av din gravatarprofilVis et bildegalleri eller en bildekarusellVis frem fine bilder in stilig mosaikk.Vis et bilde i sidestolpenVis den offisielle widgeten for Twitter innebygget tidslinjeVis som:Vis fremhevede bilderVis bildene i full størrelse i lysbildefremvisningen.Vis delingsmeny og la besøkende bygge inn eller dele denne videoenViser kommende hendelser fra en iCalendar-innmating.Vis din plassering, Ã¥pningstider og kontaktinformasjon.Det som vises under din ditt innlegg vil være hvor mange som har likt ditt innlegg og deres avatar (Gravatar).Viser en liste av nyeste innlegg fra et annet WordPress.com- eller Jetpack-aktivert nettsted.Trenger jeg fylle ut dette?Har du fremdeles innstikket %s installert?Ikke kryss strømmene! Du mÃ¥ være logget inn pÃ¥ din WordPress-blogg mens du autoriserer Jetpack.Ikke vis reblogg-knapen pÃ¥ innleggDobbel negasjonLast nedLast ned: %s
        Dra og slipp tilgjengelige tjenester hit.Dra og slipp tjenester for deling i aktivert-seksjonen for å vise dem på nettstedet ditt, og dra dem inn i skjult-seksjonen for å gjemme dem bak en knapp.Dra og slipp de tjenestene du vil aktivere inn i boksen under.Da opp eller ned for å endre rekkefølgenNedtrekkslisteDra og slipp bilder for å laste oppEpostHvert kontaktskjema kan enkelt bli tilpasset dine behov. Når en besøkende sender inn kontaktskjemaet vil tilbakemeldingene bli filtrert gjennom Akismet (hvis aktiv på ditt nettsted) for kontrollere at det ikke er en useriøs melding. Alle godkjente tilbakemeldinger vil bli sendt til deg via epost og samtidig lagt til ditt administrasjonsområde for tilbakemeldinger.Hver modul har en aktiver- og deaktiver-lenke slik at du kan veksle hver av dem individuelt.Hver av disse widgetene har en rekke innstillinger for å tilpasse dem. La dine besøkende enkelt abonnere på alle dine innlegg via epost gjennom en widget på ditt nettsteds sidekolonne. Hver gang du publiserer et innlegg vil WordPress.com sende et varsel til alle dine abonnenter,Frehev alt innhold enkelt med stikkordet "fremhevet" eller et annet fritt valgt stikkord. Ditt tema støtter inntil %2$s innlegg i sitt område for fremhevede innlegg.RedigerRediger CSSRediger tegneserieRediger detaljerRediger menypunktRediger menypunkt-tittelRediger menyseksjonRediger prosjektRediger prosjekt-stikkordRediger prosjekttypeRediger Utvalg…Rediger anbefalingRediger din profilRediger dette nye feltetE-postEpost-adresseEpostadresse:E-postsjekk mislyktes, vennligst prøv igjenSend meg epost nårEpost-varslingerEpost-innstillingerEpost vil bli sendt til %s (Rediger)Tøm papirkurven.Aktiver portefølje-prosjekter for dette nettstedet.Aktiver publisering via epostGjør innholdstypen omtaler tilgjengelig på dette nettstedet.Slå på karusellVis kun utdrag på forsiden og arkivsideneAktiver korrekturlesing for følgende grammatikk- og stilregler når du skriver innlegg og sider:Aktiverte tjenesterAktivering av fjernadministrering gjør deg i stand til å oppdater dine egeninstallerte WordPress.org- nettsteder sammen med eventuelle WordPress.com-nettsteder du måtte ha, fra et enkelt kontrollpanel.Valg for engelskLegg inn URL for et WordPress.com- eller et WordPress med Jetpack-nettstedSkriv inn en snarvei direkte i innleggs- eller sideredigereren for å bygge inn media. For spesifikke instruksjoner, følg lenkene nedenfor.Skriv inn URL-en til et ikon med dimensjonene 16x16 px som du vil bruke for denne tjenesten.Oppgi kundens navn herLegg inn navnet på menypunktet herSkriv inn din epostadresseOppgi din epost-adresse for å abonnere på dette nettstedet og motta varsler om nye innlegg via epost.Legg inn din meta "content"-verdi for å verifisere dit nettsted overfor %s.Detaljer om feil: %sFeil-detaljer: Jetpack ID begynner med et nummer. Ikke publiser denne meldingen! %sFeil-detaljer: Jetpack ID er tom. Ikke publiser denne feilmeldingen! %sFeildetaljer: Jetpack ID er ikke numerisk. Ikke publiser denne feilmeldingen! %sFeilkode: %sFeil ved flytting til papirkurven.Feil ved gjenoppretting fra papirkurven.Feil ved lasting av profilFeil!Feil, ugyldig modul.Feil oppsto. Ugyldige svardata.Feil: Kunne ikke opprette en passende brukernavn.Feil: Dette nettstedets Jetpack-oppkobling har for tiden problemer.Feil: Vennligst skriv inn en gyldig epostadresse,Feil: Vennligst fyll ut det nødvendige feltet (navn, epost).+47 123 45 678Eksempel:SideUtdragForklar…Eksporter tilbakemeldinger som CSV-fil.FacebookFacebook Liker-boksFacebook-sideFacebook Side-URLFacebook-veggFremhevetFremhevet innholdFremhevede bilderInnmating(er) å vise:TilbakemeldingTilbakemelding avvist.Tilbakemelding(ene) merket som useriøs(e).Type feltFinn ut ved å deaktivere alle uvidelser utenom Jetpack, Hvis problemet fortsetter er det ikke et problem med en annen utvidelse. Hvis problemet løses aktiverer du dine utvidelser én etter én inntil problemet dukker opp igjen - der er poenget. Fortell oss dette og vi vil forsøke hjelpe.Første alternativBrennviddeFølg nettstedetFølg kommentarerFølg meg på TwitterInnstillinger for følgingMatmenyerHvis du for eksempel ønsker at din arkiv-widget bare skal vises på kategoriarkiv-sider og feilmeldingssider kan du velge "Vis" på den første nedtrekklisten og deretter legge til to regler; "Side er 404-side" og "Kategori er alle kategorier-siden".For eksempel krydret, favoritt osv.
        Adskill ordene med kommaFor mer informasjon:SkjemabyggerFormat:GratisFrie formaterFraForside, arkivsider og søkeresultaterForsidenAlle detaljer kan du finne på Del brukerstøtte-side. Denne videoen gir deg en enkel gjennomgang av hvordan du bruker delingsfunksjonen. Se den i HD for ekstra snazz!Adminstrasjon er deaktivert for dette nettstedet.GalleriSkjermbilde av gallerikarusellenFå en API-nøkkelKom i gang med å administrere din nettverksinstallasjon av Jetpack ved å koble til.Kom i gang med Jetpack for nettverkFå det beste fra Jetpack med...Gi oss tilbakemeldingGi ditt nettsted ekstra fart ved å laste bilder fra leveringsnettverket til WordPress.com. Vi bufrer dine bilder og leverer dem fra vårt superraske nettverk. Ved bare et lite klikk kan du redusere belastningen på ditt webhotell.GlobaltGoogleGravatar svevekortGravatar svevekortGravatarprofilgrønnVelkomsthilsenHar du en tilbakemelding om Jetpack?HøydeHøyde (px):Høyde:Slik vil ditt skjema se utSkjulte verbSkjulSkjul alle fremhevede bilderSkjul relatert innhold etter innleggSkjul stikkordet fra å vises i innleggsdata og stikkordskyen.Skjul smilefjes i statistikkenHjemTider og informasjonTimer:Hovercards forbedrer vanlige gravatar-bilder med informasjon om personen: navn, bio, bilder, deres kontaktinfo og andre tjenester de bruker på nettet som Twitter, Facebook eller LinkedIn.Hovercards forbedrer vanlige gravatar-bilder med informasjon om en person: navn, bio, bilder, deres kontaktinfo, og andre tjenester.Hovercards er en flott måte å vise din internett-tilstedeværelse og hjelpe folk å finne din blogg.Hvordan virker dette?Hei Du har akkurat valgt å følge ett av mine innlegg . Det betyr at du vil motta nye kommentarer på epost. For å aktivere klikker du Bekreft nedenfor. Hvis du mener du har mottatt denne ved en feil kan du bare ignorere dette, og vi vil ikke forstyrre deg igjen.Hei. Du har akkurat valgt å følge innleggene på dette nettstedet. Det betyr at du vil motta nye innlegg på epost. For å aktivere klikker du Bekreft nedenfor. Hvis du mener du har mottatt dette ved en feil er det bare å ignorere, og vi vil ikke forstyrre deg igjen.IP-adresse:IPv4 og IPv6 er akseptert.
        For Ã¥ angi et intervall, oppgi lav verdi og høy verdi adskilt med bindestrek. Eks: 12.12.12.1-12.12.12.100IkonIkon + tekstIkon-URLKun ikonIdentifiser ord og setninger som skal ignoreres nÃ¥r dine innlegg og sider korrekturleses:Om den stÃ¥r tom vil vi prøve Ã¥ beregne bildestørrelsen.Hvis det ikke er av seg selv viser et tema eller en utvidelse ekstra tegn. Forsøk trinn 2 og 3.Hvis ikke noe av dette hjelper deg Ã¥ finne en løsning kan du klike her for Ã¥ kontakte Jetpack brukerstøtte. Fortell oss sÃ¥ mye som mulig om problemet, og hva du alt har forsøkt for Ã¥ løse det, sÃ¥ vil en av vÃ¥re lykke-ingeniører ta kontakt for Ã¥ hjelpe.Hvis du er tema-designer kan du lære om hvordan lege inn støtte for funksjonen Ubegrenset rulling pÃ¥ %1$s.Hvis du ikke allerede har en konto pÃ¥ WordPress.com sÃ¥ kan du du registrere deg for en i løpet av sekunder.Hvis du fÃ¥r status 404 (ikke funnet) kontakt din nettvert. Deres sikkerhetspolitikk kan hende blokkerer XMLRPC.Hvis ditt problem er ukjent eller forÃ¥rsaket av en utvidelse prøv Ã¥ aktivere et Twenty-tema (standard WordPress-tema). Hvis det løser problemet er det noe i ditt tema som ikke fungerer. Fortell dette til forfatteren av temaet.Ignorer alleIgnorer alltidIgnorer forslagSe bort fra forskjellen. Dette er bare en iscenesettelses-nettsted for det virkelige nettstedet referert ovenfor.Ignorerte setningerBildeJustering av bilde:Bildefarge:Bildegalleri-karusellBildegalleri bildekarusellBilderutenettBildelenkeBildelisteBildeinnstillinger:bildestørrelseBildeadresse (URL):Bildetittel:Bilde som skal beskjæresBilder:InaktivInkluder denne CSS pÃ¥ ditt mobile temaKatalogiserer innleggForespørsel om katalogisering lagt inn i køen og venter…Sett inn videoI stedet for Ã¥ skrive eller kopiere og lime inn lange nettadresser, kan du nÃ¥ fÃ¥ en kort og enkel kobling til dine innlegg og sider. Dette bruker det superkompakte domenet wp.me, og gir deg en unik nettadresse du kan bruke som er trygg og pÃ¥litelig.Introduksjonstekst som sendes nÃ¥r noen følger et innlegg pÃ¥ nettstedet ditt. (Bekreftelsesdetaljer vil automatisk bli lagt til.)Introduksjonstekst som sendes nÃ¥r noen følger ditt nettsted. (Nettstedsnavn og bekreftelsesdetaljer vil automatisk bli lagt til.)Ugyldig IDUgyldig eller utløpt engangskode.Ugyldig forespørselUgyldig sikkerhetskode.Ugyldig brukernavnEr dette nettstedet privat?Det ser ut til at din Facebook-URL ikke er korrekt satt opp. Vennligst kontroller det i dine widget-innstillinger.Det ser ut til at ditt nettsted ikke kommuniserer skikkelig med Jetpack.Det kan skyldes ett av disse tingene, noe du kan diagnostisere selv:Det er perfekt for bruk pÃ¥ Twitter, Facebook og tekstmeldinger for mobiltelefoner, der hvert tegn teller.Det er klart for Ã¥ bringe nydelige funksjoner til ditt nettsted, drevet av WordPress.com-nettskyenMenypunkter pÃ¥ din restaurantmeny.Punkter Ã¥ vise:SjargongJetpackJetpack KommentarerJetpack Kommenater skjermdumpJetpack Kommentarer gjør dine besøkende i stand til Ã¥ bruke sin WordPress.com, Twitter eller Facebook-konto nÃ¥r de kommenterer pÃ¥ nettsiden.Jetpack feilsøkingssenterJetpack FAQNettverksinnstillinger for Jetpack oppdatert!Versjon av innstikket Jetpack Jetpack hjelper med Ã¥ holde deg trygg mot innbruddsangrep.Jetpack beskyttelse er inaktiv.Jetpack innstillingerJetpack enpartsinnloggingJetpack-nettstederInnstillinger for Jetpack abonnementerJetpack brukerstøtteJetpack av WordPress.comJetpack kombinerer kraften fra %s og enkelheten fra WordPress for Ã¥ gi deg det ytterste innen matematikk-blogging.Jetpack kobler op ditt nettsted til WordPerss.com for Ã¥ skaffe deg trafikk og verktøy for tilpasning, øket sikkerhet, hastighetsforbedring med mer.Jetpack inneholder den nyeste versjonen av det gamle %l innstikket.Jetpack inneholder de nyeste versjonen av de gamle %l innstikkene.Jetpack inneholder den nyeste versjonen av det gamle “%1$s” innstikketJetpack kunne i koble til WordPress.com: %s. Dette skyldes vanligvis at noe er satt opp feil hos ditt nettvert eller pÃ¥ din server.Jetpack ble vellykket koblet fra.Jetpack er for tiden koblet til WordPress.comJetpack er i modus for lokal utvikling.Jetpack er installert!Jetpack er nÃ¥ aktivert i hele nettverket og varsler kan ikke avvises.Jetpack er koblet til WordPress.comJetpack inneholder nÃ¥ JetPack Kommentarer som gjør det mulig for dine besøkende Ã¥ bruke sin WordPress.com- eller Twitter-konto nÃ¥r de kommenterer pÃ¥ nettstedet ditt. For Ã¥ aktivere Jetpack Kommentarer %s.Jetpack krever WordPress versjon %s eller senere.Jetpack revolusjonerer din WordPress-installasjon med den utrolige kraften til WordPress.com-skyen.Jetpack prøver automatisk Ã¥ matche ditt nettsteds fargepalett, men du kan gjøre manuelle tilpasninger pÃ¥ bunnen av siden Innstillinger for diskusjon.Jetpack vil la deg autorisere applikasjoner og tjenester til Ã¥ koble seg til ditt nettsted pÃ¥ en sikker mÃ¥te, tillate dem Ã¥ bruke ditt innhold pÃ¥ nye mÃ¥ter og tilby deg ny funksjonalitet.Jetpack vil automatisk ta ditt storartede publiserte innhold, fra din blogg eller nettsted, og straks dele det med tredjepartstjenester som søkemotorer, for slik Ã¥ øke ditt nedslagsfelt og din trafikk.Det mobiltilpassede tema til Jetpack er optimalisert for smÃ¥ skjermer. Det bruker bildet i sidetoppen, bakgrunnen og widgeter fra ditt aktive tema for en god tilpasset opplevelse. Innleggsformater er inkludert slik at dine bilder og gallerier vil se flott ut pÃ¥ en smarttelefon.Bli med blant %s annen abonnentBli med blant %s andre abonnenterHurtigstartHurtigstart for ditt nettstedHopp til:Knapper for Twitter, Facebook og Google+ under hvert innlegg, noe som gjør det enkelt for dine besøkende Ã¥ dele innhold.legger en knapp øverst pÃ¥ redigeringssiden for innlegg og sider slik at du enkelt kan sette inn enkle skjemaer for Ã¥ hjelpe besøkende med Ã¥ kontakte deg.gir deg dine bilder i full størrelse i lettnavigerte gallerier.gi besøkende to enkle abonnementsmuligheter — ved kommentering eller via en egen widget for epost-abonnement som du kan legge ut.hjelper deg med Ã¥ fjernadministrere utvidelser, skru pÃ¥ automatiske oppdateringer med mer fra wordpress.com.holde dine besøkende engasjert ved Ã¥ vise relevant og nytt innhold i bunnen av hvert innlegg.lar kommentatorer lenke sin profil til sinGravatar-konto, noe som gjør det enkelt for dine besøkende Ã¥ lære mer om ditt nettfellesskap.lar deg logge inn pÃ¥ alle dine nettsteder med Jetpack, bare med ett klikk, ved hjelp av din konto pÃ¥ WordPress.com.speiler og tilbyr dine bilder fra vÃ¥r gratis og hurtige lagringsnettverk, noe som forbedrer ditt nettsteds ytelse uten noen belastning pÃ¥ din webserver.Hold deg oppdatert om de siste hendelsene pÃ¥ alle dine nettsteder pÃ¥ WordPress.com og samhandle med andre brukere pÃ¥ WordPress.comLaTeXEtikettEpostNavnNettstedAlternativAlternativerflyttTitlerTitler: krydret, favoritt osv. Adskill ordene med kommaSprÃ¥kstorStort nettstedsbildeSist endretUtformingsalternativer:Lær merLær merLær mer om hurtigstart og hva det kan tilby for ditt nettsted.Lær mer om Markdown.Legg inn en kommentarSvar pÃ¥ %sLegg inn en kommentarvenstreLa oss fÃ¥ vite ditt navn.LysLikLik dette:LikingerVarsling av liker-klikkLiking er en mÃ¥te dine lesere kan vise sin begeistring for dine innlegg og annet publisert innhold ved Ã¥ bruke sin WordPress.com-konto. Dine lesere vil ha mulighet til Ã¥ gÃ¥ gjennom sine likte innlegg fra WordPress.com.Liking og delingGrenseverdien mÃ¥ være større en eller lik 0.Begrens bredden til %1$s bildepunkter for videoer, fullstørrelssbilder og nadre kortkoder. (Les mer.Lenkefarge (hex):Lenke til:Lenke-URL (nÃ¥r bildet klikkes pÃ¥):Koble brukerkontoen til WordPress.comredigerKoble brukerkontoen din til WordPress.comLinkedInLenker til tjenester du bruker pÃ¥ nettet.Lenker til ditt nettsteds RSS-strømmerLenker til dine nettsteder, blogger eller andre steder som kan beskrive hvem du er.Live forhÃ¥ndsvisningLast in din XMLRPC-fil. Det bør si “XML-RPC server accepts POST requests only.†pÃ¥ en linje for seg selv.Laster inn …Laster kommentarer...Laster video...laster inn…Laster...Logg inn med WordPress.comLogget innLogget utInnlogging blokkert av JetpackInnloggingsmetoden er ikke tillattLogoLunsj: 11 - 14 Middag: man-tor 17 - 22, fre-lør: 17 - 01j. F Y H:iSideomrÃ¥deGjøre denne koblingen tilgjengelig for alle brukere av dette nettstedet?Administrer alle dine WordPress-nettsteder, egeninstallerte eller hos WordPress.comAdministrering har blitt aktivert!Administrer dine Publiser-innstillinger.Administrer din adresse for publisering via epost fra din brukerprofil.Administrer dine mange Jetpack-nettsteder fra vÃ¥rt sentraliserte kontrollpanel pÃ¥ wordpress.com/sites. Lær mer.Merk som useriøsMerk denne meldingen som IKKE useriøsMerk denne meldingen som useriøsMarkdownMarkdown-innholdMarkdown lar deg skrive innlegg og kommentarer med lenker, lister og andre stiler gjenom bruk av vanlige bokstaver og skilletegn. Markdown blir brukt av skribenter og bloggere som vil ha en hurtig og enkel mÃ¥te Ã¥ skrive rik tekst, uten Ã¥ mÃ¥tte ta hendene fra tastaturet, og uten Ã¥ lære en mengde kompliserte koder og snarveier,Samsvar med epostMaksimalt antall innlegg Ã¥ vise (ikke flere enn 10):MedierMediefilSkjermbredde:mellomstorMenyMenypunktMenypunkt-tittelMenypunkt-titlerMenypunkterMenypunkter har endret rekkefølge.MenyseksjonMenyseksjonerMenypunkt-kladd oppdatert. ForhÃ¥ndsvis menypunktMenupunkt publisert. Vis menypunktMenypunkt gjenopprettet til revisjon fra %sMenypunkt lagret.Menypunkt er planlagt for: %1$s. ForhÃ¥ndsvis menypunktMenypunkt lagret. ForhÃ¥ndsvis menypunktMenypunkt oppdatert.Menypunkt oppdatert. Vis menypunktMeldingMelding sendtMeldingerMetadataGjenblitt planlagtMangler vedleggs-ID.Mangler bloggens ID.Mangler innleggets ID.Promoteringer av mobilapplikasjonenMobile aplikasjonerMobiltilpasset temaMobil-kompatibel:Modalt vindu. Trykk ESC for Ã¥ lukke det.Modus:Gjør nettstedet ditt raskere ved Ã¥ laste bilder via WordPress.com-nettverket.Legg til et ikon for ditt nettsted.Lwegg til bilder, twitter-strømmer, ditt nettsteds RSS-lenker og annet til dine widget-omrÃ¥der-Legg til støtte for uendelig skrolling i ditt tema.Legger til innbruddsbeskyttelse for din innloggingsside. Tidligere "BruteProtect".La applikasjoner nÃ¥ ditt innhold sikkert via nettskyen.Tillat brukere Ã¥ abonnere pÃ¥ dine innlegg og kommentarer og motta varslinger via epost.La dine besøkende dele innholdet ditt pÃ¥ Facebook, Twitter med flere, via et enkelt klikk.Tillat dine brukere Ã¥ logge inn med sin konto pÃ¥p WordPress.com.Sjekk fin staving, stil og gramatikk med After the Deadline-tjenesten.Tilpass CSS pÃ¥ ditt nettsted uten Ã¥ endre pÃ¥ temaet.Vis lenker til ditt relaterte innhold under innholdet pÃ¥ innlegg og sider.Vis dine bildegallerier gjennom ulike slanke grafiske arrangementer.Bygg inn innhold fra YouTube, Vimeo, SlideShare med flere, uten koding.Aktiver kortlenker med wp.me for alle innlegg og sider.Aktiver pop-up visittkort over kommentarforfatteres gravatarer.Gi besøkende en enkel mulighet til Ã¥ vise sin begeistring for innholdet ditt.Legg til et kontaktskjema hvor som helst pÃ¥ ditt nettsted.La leserne kommentere med konto fra WordPress.com, Twitter, Facebook eller Google+.Administrer alle dine nettsteder fra en ett sted, https://wordpress.com/sites.Følg med pÃ¥ din nettstedsstatistikk med klare og tydelige rapporter uten Ã¥ belaste din server.Tilrettelegg ditt nettsted med et mobilvennlig tema for smarttelefoner.Orgainser og vis ulike typer av innhold pÃ¥ nettstedet ditt adskilt fra innlegg og sider.Beskytt ditt nettsted med automatiske sikkerhetsoppdateringer og sikkerhetsskanninger (abonnement kreves).Publiser innlegg via epost, fra enhver enhet og epost-klient.FÃ¥ varslinger om nettstedsaktivitet via adminlinjen og din mobil.FÃ¥ varslinger fra Jetpack hvis nettstedet ditt gÃ¥r offline – og nÃ¥r det kommer tilbake.Søk i hele databasen fra ett enkelt felt i ditt kontrollpanel.Del nye innlegg pÃ¥ sosiale media automatisk.Del dine publiserte innlegg og kommentarer til søkemotorer og andre tjenester.Angi hvilke widgeter som skal synes pÃ¥ hvilke sider pÃ¥ ditt nettsted.Forvandle vanlige bildegallerier til lysbildevisninger pÃ¥ fullskjerm.Bruk LaTeX-oppmerking i innlegg og pÃ¥ sider for komplekse likninger og annet nerderi.Verifiser ditt nettsted eller domene med Google Webmaster Tools, Pinterest og andre.Skriv innlegg eller sider med Markdown-syntaks.ModulinformasjonNydelig matematikkKarusellKontaktskjemaTilpasset CSSTilpassede innholdstyperUtvidet distribusjonEkstra widgdeterGravatar svevende visittkortUbegrenset rullingJSON APIJetpack kommentarerJetpack enkeltparts innloggingLikingerFjernadministrasjonMarkdownMobiltemaOvervÃ¥kVarslingerTotalsøkFotonPubliser via epostBeskyttelsePubliserRelaterte innleggDelingInnbygging via kortkoderNettstedsikonNettstedsbekreftelseStaving og grammatikkAbonnementerFlislagte gallerierVaultPressVideoPressKortlenker fra wp.meWidget-synlighetStatistikk fra WordPress.comUtseendeSentral administreringUtviklereHurtigstartMobilAnnetFotografier og videoerAnbefaltSosialtBesøksstatistikkSkrivingModul kunne ikke aktiveres fordi det utløste en fatal feil. Kanskje det er en konflikt med et annet innstikk du har installert?Modulen ikke funnet: '%s'.MÃ¥nedlige arkiver: %sMÃ¥nedlige arkivMerMer informasjonMer informasjon om sending av epost, vedlegg og tilpasning av dine innlegg.Mer informasjon om bruken av liking.Mer informasjon om bruk av Publiser.Mer informasjon om bruk av relaterte innlegg.Flytt menyseksjonen nedFlytt menyseksjon oppMine tvitringerNavnNettverksinnstillingerNyNy tegneserieNytt menypunktNy menypunkt-tittelNy menyseksjonNytt prosjektNytt prosjekt-stikkordNytt prosjekttype-navnNy radNy anbefalingNytt feltNytt i Jetpack: Sentralisert nettstedsadministrasjonNyere »Nyere kommentarer →NyesteNeste »Neste »NeiIngen kantlinjeIngen stripe funnetIngen stripe funnet i papirkurvenIngen bunntekstIngen topptekstIngen titlerIngen titler funnetIngen menypunkter funnetIngen menypunkter funnet i papirkurvenIngen moduler funnetIngen prosjekter funnetIngen prosjekter funnet i papirkurven.Intet rullefeltIngen anbefalinger funnetIngen anbefalinger funnet i papirkurvenIngen blog_id var inkludert i din forespørsel. Vennligst koble Jetpack fra WordPress.com and koble sÃ¥ til pÃ¥ nytt. Straks du har gjort det prøv Ã¥ koble til funksjonen Publiser igjen.Ingen kommentartekst ble sendt inn.Ingen data funnet for VideoPress-identiteten: %s.Ingen tilbakemeldinger funnetIngen logo angittIngen utvidelser funnet.Ingen forslagIngen stikkord funnet.Ingen kommende hendelserIngen brukerinformasjon ble tatt med i din forespørsel. Vennligst kontroller at din brukerkonto er koblet til Jetpack. Koble til din konto ved Ã¥ gÃ¥ til Jetpack-siden i admin.Ingen skrivefeil ble funnet.Ingen liker nedetid og det er derfor Jetpack Monitor er pÃ¥ vakt, holder oppsyn med ditt nettsted ved Ã¥ sjekke det hvert femte minutt. Straks nedetid oppdages vil du motta et epost-varsel om problemet. PÃ¥ den mÃ¥ten kan du ta rask affære og bringe nettstedet ditt opp igjen.Hensiktsbekreftelse (nonce) feilet.ingenNei. Men hvis du vil endre hvor dine tilbakemeldinger blir sendt, eller emnelinjen, sÃ¥ kan du det. Hvis du ikke gjør noen endringer her vil tilbakemeldingene bli sendt til forfatteren av siden eller innlegget og emnet vil bli det samme som denne sidens/innleggets.Ikke tilkobletIkke tilkobletNotis: Tilpasset CSS vil bli nullstilt nÃ¥r du bytter tema.Merk: Bilder i flislagte gallerier krever spesiell prosessering, slik at de vil bli levert fra innholdsnettverket til WordPress.com selv om modulen Foton er inaktiv.Intet funnetVarslingerVarsle meg om senere kommentarer via epost.Varsle meg om nye innlegg via epost.BrukerForfatterRolleDatoStikkordTaksonomi, NÃ¥ kan du oppdatere utvidelser, sørge for at utvidelser automatisk oppdateres, og aktivere eller deaktivere utvidelser for nettstedeen enkeltvis eller samlet, fra wordpress.com/plugins.Antall innlegg Ã¥ vise:OkOffisielle knapperOfftset mÃ¥ være større enn eller lik 0.Eldre %sEldre innleggOmnisøkOmnisøk spiller pÃ¥ lag med andre utvidelser ved Ã¥ la andre ogsÃ¥ tilby resultater.PÃ¥ for alle kommentarerPÃ¥ for alle innleggPÃ¥ denne siden kan du se de modulene som er tilgjengelige i Jetpack, lære mer om dem og aktivere eller deaktivere dem etter behov.Etter aktivering vil "Logg inn med WordPress.com" bli tingjengelig pÃ¥ din innloggingsside.Straks du har koblet opp kan du aktivere de flotte funksjonene nedenfor.En ny Jetpack-modul%s nye Jetpack-modulerEn av dine IP-adresser var ikke gyldig.Vis bare videoer i fri programvare-formaterBare bilder kan lastes opp her.Bare brukeren som opprettet koblingen til Jetpack pÃ¥ dette netstedet kan veksle %s, men den brukeren eksisterer ikke lenger. Dette skulle ikke ha skjedd.no-subsetpåÅpne lenken i ny faneÃ…pnes i et nytt vinduYtterligere tekst Ã¥ vise dine lesere:AlternativeroransjeRekkefølgeOrganiser og vis ulike typer innhold pÃ¥ ditt nettsted, adskilt fra innlegg og sider,Side %sSider:Overordnet menyseksjonOverordnet menyseksjon:Forelder-prosjekttypeForelder-prosjekttype:Passiv stemmeBanePermanent kobling til %sPersonlige lenkerTelefon:Uttrykk for Ã¥ unngÃ¥Tilbakeping:rosaPinterestPlaner og priserJavaScript er nødvendig for Ã¥ spille %s.Vennligst ta med noe tekst i din kommentar.Vennligst beskriv problemet du har, pÃ¥ engelsk.Vær oppmerksom pÃ¥ at dine tjenester er inskrenket fordi ditt nettsted er satt privat.Vennligst oppgi en gyldig epost-adresse.Vennligst oppgi en epost-adresse for Ã¥ kommentere.Vennligst oppgi en epost-adresse.Vennligst oppgi ditt navn for Ã¥ kommentere.Vennligst oppgi ditt navn.Vennligst løse denne matematiske oppgaven for Ã¥ vise at du ikke er en robot. Straks du har løst den mÃ¥ du logge inn pÃ¥ nytt.Vennligst opgi en gyldig modulVennligst oppgi en gyldig bruker.Vennligst bekreft hvis du vil koble fra et nettsted eller en bruker.Vennligst last opp en fil.Vennligst bekreft din fødselsdag.Utvidelsen aktivert.Utvidelsen deaktivert.UtvidelserPocketMest brukteMest brukte titlerMest brukte prosjekt-stikkordPorteføljePortefølje-elementerProsjektporteføljePorteføljesider viser høyst %1$s prosjekterSend inn kommentarInnlegg av %s.Publiser via epostPublisering via epost er en mÃ¥te Ã¥ publisere innlegg pÃ¥ ditt nettsted via en epost-melding. Ethvert epost-program kan brukes til Ã¥ sende eposten, og det tillater deg derfor hurtig Ã¥ publisere fra f.eks mobiltelefonen.Innlegg konvertert%s innlegg konvertertNavigering blant innleggInnleggstype:E-post ble ikke sendt - Sjekk dine e-postadresser!Publisert avPublisert av %sPostet i %sInnleggInnlegg og kommentarerInnlegg og siderInnlegg katalogisert.InnleggssidenForhÃ¥ndsprosessor:Skriv om detteForhÃ¥ndsvisForhÃ¥ndsvis ikonForhÃ¥ndsvis hjemme-ikonForhÃ¥ndsvis:ForhÃ¥ndsvis: Endringer mÃ¥ være lagret, ellers gÃ¥r de tapt.PrisHovedmenySkriv utPersonvernPersonvernBehandler...ProsjektProsjektstikkordProsjekt-stikkordProsjekttypeProsjekttyperKladd til prosjekt-element oppdatert. FohÃ¥ndsvis prosjektProsjekt publisert. Vis prosjektProsjekt gjenopprettet til revisjon fra %sProsjekt lagret.Prosjekt planlagt for: %1$s. ForhÃ¥ndsvis prosjektProsjekt lagt inn. ForhÃ¥ndsvis prosjektProsjekt oppdatert.Prosjekt oppdatert. Vis elementetProsjekterKorrekturles skrivingKorrekturlesingStolt drevet av %sPubliserPubliser tillater deg Ã¥ koble ditt nettsted til populære sosiale nettsteder og automatisk dele nye innlegg med dine venner.→ Du kan opprette en kobling bare for seg selv eller for alle brukere pÃ¥ dette nettstedet.Publicize lar deg dele dine innlegg pÃ¥ Facebook, Twitter, Tumblr, Yahoo! og Linkedin.Publiser til min %s:Publiser:PubliserPublisertUtgiver begrenser avspilling av video-innbygginger.KjøpfiolettSett et diagram som viser 48 timer med visninger i adminlinjen.Plasser pekeren over ditt profilbilde for Ã¥ kontrollere profilen din.RSS-lenker (Jetpack)ValgknapperTilfeldig rekkefølge:VurderingMotta varslinger fra Monitor via epost.Siste innleggrødRedditOverflødige setningerOppfrisk statusOppfrisk oppkoblingen til %sGjenskap adresseRegistrerte brukereKatalogiser innleggene pÃ¥ nytt.RelatertRelaterte innleggRelaterte innleggFjern ikonFjern tjenesteFjern logoGjentatt ordErstatt temaets CSS (avansert)Erstatt utvalg med:ErstatningSvarRapportsynlighetForlang tofaktor.autenseringObligatorisk? GjenopprettGjenopprett dette elementet fra papirkurvenResultater:Tilbake til avsenderen. Whoops! Det ser ut som du fikk feil Jetpack i posten. Deaktiverer og reaktiverer innstikket Jetpack for Ã¥ fÃ¥ en ny.HøyreLagreLagre & kjøp oppgraderingLagre endringerLagre ny rekkefølgeLagre stilarkLagre og gÃ¥ tilbake til skjemabyggerenLagre innstillingLagre dette feltetLagret okPlanlagtRull ubegrensetRull tilbake til toppenSøkSøk tegneserierSøk i kommentarerSøk i altSøk i tilbakemeldingerSøk mediaSøk menypunkt-titlerSøk menypunkterSøk menyseksjonerSøk moduler...Søk i utvidelserSøk prosjekt-stikkordSøk prosjekttyperSøk prosjekterSøkeresultaer for %sSøk anbefalingerSøk én gang og fÃ¥ resulater fra overalt! For tiden støttes søking i innlegg, sider, kommentarer, media og utvidelser.SøkeresultaterSe de andre %s Jetpack-funksjoneneVelg en bruker eller "tilpasset" og legg inn en epost-adresse.Velg tilbakemelding Ã¥ laste nedVelg rollene som skal være i stand til Ã¥ se statistikkrapporter.Semantisk personlig plattform for publisering pÃ¥ nettetSend e-postSend til e-postadresseSendt av en bekreftet %s bruker.Send av en ubekreftet besøkende.Adskill stikkordene med kommaTjenestenavn%1$s: %2$sTjenester som dras hit vil vises individuelt.Tjenester som dras hit vil være skjult bak en deleknapp.MÃ¥ltiderSett som logoInnstillingerInnstillinger har blitt lagretDelDel pÃ¥ FacebookDel pÃ¥ TumblDel dette:Del dine innlegg pÃ¥ Twitter, Facebook og en rekke andre tjenester. Du kan konfigurere tjenestene til Ã¥ vises som ikoner, tekst eller bÃ¥de og. Noen tjenester har flere alternativer for Ã¥ vise smarte knapper, som for eksempel Twitter, som vil oppdatere antall ganger innlegget har blitt delt.DeltDelt innleggDelingDelingsknapperDeleinnstillingerDele-URLDeling er avlÃ¥tt. Legg til tjenester ovenfor for Ã¥ aktivere.DeleetikettKortkodeKortkode bygger innMed kortkodene kan du enkelt og trygt bygge inn media fra andre steder pÃ¥ ditt nettsted. Med bare én enkelt kode, kan du fÃ¥ WordPress til Ã¥ bygge inn YouTube, Flickr og annen media.VisVis brukerkonto-lenkerVis utdrag:Vis ansikterVis fremhevet bildeVis personlige lenkerVis nyhetsoppdatringVis en topptekst for avsnittet relatert innhold slik at det skilles tydeligere fra innleggetVis en 'følg nettstedet'-muligheten i kommentarskjemaetVis en 'følg kommentarene'-muligheten i kommentarskjemaetVis en promotering for WordPress mobilapplikasjoner i sidebunnen for det mobile temaet.Vis knapper pÃ¥Vis fallende snø pÃ¥ mitt nettsted inntil 4. januar.Vis hele innlegg pÃ¥ forsiden og pÃ¥ arkivsideneVis likinger.Vis kartVis et kart over fotografert sted i karusellen, nÃ¥r det er tilgjengelig.Vis merVis foto-metadata (Exif) in karusellen nÃ¥r de er tilgjengelig.Vis profilbilder i dette innstikket.Vis relatert innhold etter innleggVis delingsknapper.Vis reblogg-knappen pÃ¥ innleggVis de mest populære innleggene overVis de mest populære søkeordene overVis antall abonnenter? (%s abonnent)Vis antall abonnenter? (%s abonnenter)Vis:ellerViser dine mest viste innlegg og sider.LukkerhastighetSølvLiknende innleggNettstedsikonNettstedsikon oppdatertNettstedsikon lager et "favicon" for ditt nettsted med mer.Nettstedsikon lar deg lage et ikon for ditt nettsted. Dette ikonet vil bli brukt som favicon, mobilikon og menyflis pÃ¥ Windows 8-datamaskiner.NettstedslogoNettstedets navnNettstedsstatistikkNettstedsnavn, slagord og logoNettstederHopp til innholdBildefremvisningLitenSmilefjesSmilefjesUtklippSnøSosialeNoen funksjoner i Jetpack bruker nettverket til WordPress.com og krever at ditt publiserte innhold speiles der. Hvis du ser periodiske feil som bare pÃ¥virker enkelte innlegg vennligst prøv Ã¥ be om ny indeksering av dine innlegg.Noen tema og utvidelser har kjente konflikter med Jepack. Sjekk listen. (Du kan ogsÃ¥ se Jetpacks brukerstøttesider eller Jetpacks brukerstøttefora for Ã¥ se etter om andre har opplevd dette og sÃ¥ løst problemet.Noen liker ett av mine innleggNoen kan ha prøvd Ã¥ lure deg til Ã¥ gi dem tilgang til ditt nettsted. Elle det kan være at du bare er offer for en programfeil :). Uansett, bare lukk dette vinduet.Noe har gÃ¥tt galt med din Jetpack-oppkobling!Noe har blitt helt feil!Noe er ikke som det skal!No som egentlig aldri skal skje skjedde. Beklager. Hvis du prøver igjen vil det kanskje virke.Beklager, men det oppsto en feil ved innsending av din kommentar. Vennligst prøv igjen senere.Beklager, men vi kunne ikke autensere din forespørsel.Beklager, men ingen moduler ble funnet for søkeuttrykket "%s"Beklager, ingenting Ã¥ rapportere.Beklager, ditt nettsted kan ikke dele innlegg via e-post.Beklager, din nettleser støttes ikke. Oppgrader pÃ¥ browsehappy.com.Sorter etter:UseriøsUseriøs (%s)Useriøse (%s)StavekontrollStaving og grammatikkKvadratiske fliserFast side:StatistikkStatus ukjent.Stil:Stilark lagret.Overstyr undernettstedEmneSend innSend inn »Sender inn kommentar %sAbonnerAbonnementsknappPlassholder for abonnering:Abonner pÃ¥ %sAbonner pÃ¥ nettstedet via epostSkjermbilde av abonnementerMelding nÃ¥r vellykket:Vellykket. En epost ble akkurat sendt deg for Ã¥ bekrefte ditt abonnement. Vennligst finn eposten og klikk pÃ¥ aktiver for Ã¥ starte abonnementet.Flott!. Du har hurtigstartet ditt nettsted.SupportStikkordnavnMerket %sStikkordTa spørreundersøkelsenTa med deg WordPress.Ta spørreundersøkelsen. Fortell oss hvordan vi gjør det.TermerBruksvilkÃ¥rSjekk ditt nettsteds kompatibilitet med Jetpack.AnbefalingInnhold pÃ¥ anbefalingssidenFremhevet bilde til siden for anbefalingerOverskrift pÃ¥ anbefalingssidenKladd til anbefaling oppdatert. ForhÃ¥ndsvis anbefalingOmtalesiden viser høyst %1$s omtalerAnbefaling publisert. Vis anbefalingAnbefaling gjenopprettet til revisjon fra %sAnbefaling lagret.Anbefaling planlagt til: %1$s. ForhÃ¥ndsvis anbefalingAnbefaling lagt inn. ForhÃ¥ndsvis anbefalingAnbefaling oppdatert.Anbefaling oppdatert, Vis anbefalingenAnbefalingerSjekker ditt nettsteds kompatibilitet med Jetpack...TekstTekst og bildelenkerTekstlenkeTekstlisteKun tekstTekstomrÃ¥deDen oppkoblingen er fjernet.Det har vært min URL for dette nettstedet tidligere. Oppdater dataene pÃ¥ WordPress.com til Ã¥ passe med mine næværende innstillinger.After the Deadline-korrekturtjenesten forbedrer din skriving ved Ã¥ bruke kunstig intelligens for Ã¥ finne feil og tilbyr smarte forbedringsforslag.Din Client ID/WP.com Blog ID for dette nettstedetCSS-editoren gir deg muligheten til Ã¥ legge til eller erstatte CSS fra dit tema, med syntaksfargelegging, automatisk innrykk og øyeblikkelig tilbakemelding om gyldigheten av den CSS du skriver inn.Facebook Liker-boks-widgetenBilde-widgetenJetpack-modulen er allerede aktivert.Denne Jetpack-modulen er allerede deaktivert.Versjonen av Jetpack er %sUtvidelsen er allerede aktiv.Utvidelsen er allerede deaktivert.RSS-lenker-widgetenTwitter-widgetenTwitter-brukernavnet til eieren av domenet for dette nettstedet.VideoPress-modulen klarte ikke Ã¥ kommunisere med VideoPress-serverne. Denne feilen skyldes mest sannsynlig et feilkonfigurert innstikk. Vennligst reinstaler eller oppgrader dette.Brukernavnet pÃ¥ WP.com for tilkoblet brukerWordPress.com blog_id er %dInnloggingsprosessen utløp pÃ¥ tid. Venlligst gÃ¥ tilbake og prøv igjen.Dataene vist ovenfor er ikke for dette nettstedet. Vennligst koble fra og opprett sÃ¥ en ny tilkobling til WordPress.com for dette nettstedet ut fra mine nÃ¥værende innstillinger.Standard innholdsbredde for temaet %s er %d bildeelementer.Epostadressen du oppga var ugyldig. Vennligst forsøk igjen.Filen du lastet opp er ikke blant aksepterte filtyper. Vennligst prøv igjen.De følgende modulene har blitt oppdatert: %l.Følgende nye moduler har blitt aktivert: %l.Følgende tjenester er inkludert: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google+1, utskrift og epost.Følgende tjenester er inkludert: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google+1, utskrift og epostl.Bildet hjelper til med Ã¥ registrere statistikken og gjør verden til et bedre sted, men skulle fortsatt virke om det blir skjultBilde mÃ¥ være minstBildet du lastet opp er mindre enn %upx i høyden.Bildet du lastet opp var mindre enn %upx i bredden.JetpackJetpack %sDen gamle versjonen har blitt deaktivert og kan fjernes fra nettstedet.De gamle versjonene har blitt deaktiverte og kan fjernes fra nettstedet.Den primære oppkoblingen eies av WordPress.com-kontoen til %s.Korrekturleseren har forslag til dette innlegget. Er du sikker pÃ¥ at du vil publisere det? Trykk OK for Ã¥ publisere innlegget ditt, eller Avbryt for Ã¥ vise forslagene og redigere ditt innlegg.Korrekturleseren har forslag til dette innlegget. Er du sikker pÃ¥ at du vil oppdatere det? Trykk OK for Ã¥ oppdatere innlegget ditt, eller Avbryt for Ã¥ vise forslagene og redigere ditt innlegg.Korrekturleseren støter engelsk, fransk, tysk, portugisisk og spansk. Ditt sprÃ¥kvalg for programgrensesnittet (se ovenfor) er standard sprÃ¥k for korrekturen.Innstillingen for femhevet innhold er flyttet til Utseede → Tilpass.Det oppgitte temaet ble ikke funnet.Testresultatene og noe øvrig, nyttig feilsøkingsinformasjon vil bli sendt til brukerstøtte-teamet. gjennomgÃ¥ eller endre gjerne denne informasjonen.Temaet er tomt.Tema: %1$s.Det er mange innstikk og tjenester som gir statistikk, men data kan være overveldende. WordPress.com statistikk gjør de mest populære beregningene lett Ã¥ forstÃ¥ gjennom en tydelig og attraktivt grensesnitt.Det er ingen innlegg Ã¥ vise. Ønsker du flere besøkende?Det er tilgjengelig oppdatering for ditt tema. Du vil kanskje sjekke denne om denne oppdateringen gjør at un\begrenset rulling blir tilgjengelig ved Ã¥ gÃ¥ til siden for WordPress-oppdateringer.Det ser ut til at det er et problem med ditt nettsteds eller din servers mulighet til Ã¥ kommunisere med Jetpack!Det oppsto et problem med Ã¥ kommunisere med korrekturtjenesten. Prøv igjen om ett minutt.Det oppsto et problem med Ã¥ koble opp mot %s med en gyldig tilkobling. Vennligst prøv igjen om litt.Det oppsto et problem med Ã¥ koble til %s. Vennligst koble fra og prøv igjen.Det oppsto et problem med Ã¥ koble til Publiser. Vennligst prøv igjen om kort tid.Det oppstod en feil i kommunikasjonen med korrekturlesingstjenesten.Det oppsto en feil ved deaktivering av din utvidelse.Det oppsto en feil ved oppdatering av din utvidelse.Det oppsto en feil ved oppdatering av ditt tema.Det oppsto en feil ved abonneringen. Vennligst prøv igjen.Det oppsto en feil under aktivering av modulen.Det oppsto en feil under forsøk pÃ¥ Ã¥ fÃ¥ tak i oppdateringsinformasjon for dette nettstedet.Det er ganske sannsynlig at mange besøkende vil bruke en smarttelefon, og det er viktig Ã¥ gi disse en god leseopplevelse pÃ¥ en liten skjerm.Disse instillingene pÃ¥virker alle nettstedene i nettverketDisse innstillingene endrer eposter som sendes fra ditt nettsted til følgere.(obligatorisk)Denne oppkoblingen virker som den skal.Denne funksjonen bruker nettverket til WordPress.com og krever at dit publiserte innhold speiles der. Hvis du ser periodiske feil som bare pÃ¥virker enkelte innlegg be om en reindeksering av dine innlegg.Dette galleriet inneholder %2$s bilde.Dette galleriet inneholder %2$s bilder.Denne modulen kan bare endres pÃ¥ av %s, brukeren som koblet opp Jetpack pÃ¥ dette nettstedet.Dette innstikket vil fungere uten det, men multibyte-støtte brukes hvis tilgjengelig. Du kan se mindre problemer med tweets og andre deletjenester.Dette innlegget har blitt delt!Dette innlegget er beskyttet av et passord.Dette innlegget er passordbesyttet. Oppgi passordet for Ã¥ vise kommentarer.Denne brukerkontoen er for tiden ikke koblet til en WordPress.com-konto.Dette nettstedet er for stort. Vennligst kontakt Jetpack brukerstøtte for Ã¥ synkronisere.Bildekarusellen kunne ikke starte. Forsøk oppfriske siden eller vise den med en annen nettleser.Denne bildekrusellen krever javaskript.Denne brukeren har ikke tilgang til %s pÃ¥ dette nettstedet.Denne brukeren har ikke tilgang til Ã¥ administrere utvidelser for hele nettverket.Denne videoen er beregnet pÃ¥ voksent publikum.Denne videoen krever Adobe Flash for Ã¥ kunne spilles av.Dette vil deaktivere Jetpack. Er du skker pÃ¥ at du vil deaktivere Jetpack?Dette vil deaktivere alle Jetpack-moduler. Er du sikker pÃ¥ at du koble fra?Dette vil forhindre brukerspesifikke moduler, slike som Publiser, Varslinger og Publiser via epost fra Ã¥ fungere. Er du sikker pÃ¥ at du vil koble fra?MiniatyrbildeMiniatyrbilde-rutenettFlislagte kolonnerFlislagte gallerierFilslagt mosaikkFliserTidTid:Tema for tidslinjen:EmneTittel:For Ã¥ legge til et ikon for ditt nettsted, gÃ¥ til Innstillinger → Generelt → Nettstedsikon og last opp et ikon.For Ã¥ konfigurere dine delingsinnstillinger gÃ¥r du til menyvalget Innstillinger→ Deling.For Ã¥ kontrollere synlighet, ekspander widgeten og klikk Synlighet-knappen til høyre for Lagre-knappen, og velg sÃ¥ et sett med synlighetsalternativer.FÃ¥r Ã¥ tilpasse epostene sendt fra ditt nettsted til din abonnenter sjekk siden Innstillinger - Lesing.For Ã¥ aktivere tilpassede innholdstyper, gÃ¥ til Innstillinger → Skriving → Dine tilpassede innholdstyper for Ã¥ aktivere enten "Porteføljeprosjekter†eller “Omtaler†ved Ã¥ krysse av i tilhørende boks. Du kan sÃ¥ legge til prosjekter og omtaler under den nye "Porteføljeprosjekterâ€- eller “Omtalerâ€-menypunktet i sidekolonnen.For Ã¥ gjøre alle funksjonene i Jetpack tilgjengelige mÃ¥ du koble din konto her til til din konto hos WordPress.com.For Ã¥ gjøre alle funksjonene i Jetpack tilgjengelig mÃ¥ du koble ditt nettsted opp til WordPress.comFor straks Ã¥ øke ytelsen, sikerheten og engasjementet, anbefaler vi Ã¥ aktivere %s og noen fÃ¥ andre. Klikk Hurtigstart for Ã¥ aktivere disse modulene.I det uendeligeFor Ã¥ se hovercards, se pÃ¥ et blogginnlegg pÃ¥ bloggen din som har kommentarer. Hvis avsenderen har et hovercard knyttet til sin gravatar, vil du se det nÃ¥r du fører musen over bildet. For Ã¥ slÃ¥ av hovercards, klikker du deaktiver-knappen over.For Ã¥ starte med Ã¥ bruke Jetpack mÃ¥ du koble til WordPress.com-konto ved Ã¥ klikke pÃ¥ knappen (hvis du ikke har en konto der kan du fort opprette en gratis).Kontakt din administrator for koble til, slik at du kan bruke Jetpack.FÃ¥r Ã¥ bruke publisering via epost pÃ¥ du først koble din %s-konto til din WordPress.com-konto.For Ã¥ bruke funksjonen Publiser mÃ¥ du koble din %s-konto til din WordPress.com-konto ved Ã¥ følge lenken nedenfor.For Ã¥ bruke kortlenker gÃ¥r du til et hvilket som helst innlegg (publisert eller noe nytt!). En “FÃ¥ kortlenke”-knapp vil vises nedenfor innleggets tittel. NÃ¥r du klikker pÃ¥ den vil det duke opp en dialogboks med kortlenken og du kan da kopiere den og lime den inn pÃ¥ Twitter, Facebokk eller andre steder.For Ã¥ bruke CSS-editoren gÃ¥r du til Utseende → Rediger CSS.For Ã¥ bruke Abonnementer-widgeten gÃ¥r du til Utseende → Widgeter. Dra widgeten merket “Abonnementer (Jetpack)” over i en av dine sidepaneler og konfigurer i veiFor Ã¥ bruke widgetene gÃ¥ til Utseende → Widgeter. Dra dem inn i en dine widgetomrÃ¥der og konfigurer i vei.ToppinnleggMest populære innlegg og siderMest populære innlegg og sider etter visninger, beregnet etter 24-48 timers statistikk. Det vil ta en tid før endringer vises.ToppsøkRegn hver sideinnlasting gjennom ubegrenset rulling som en egen sidevisning i Googløe Analytics.GjennomsiktigGjennomsiktig bakgrunnPapirkurvProblemer med Jetpack?Prøv pÃ¥ nytt.TumblrTumblr-bloggSlÃ¥es pÃ¥ for hvert innleggTvitringer av @%sTwitterTwitter nettstedsetikettTwitter tidslinjeTwitter-brukernavn:TypeTyperOPPEURLKunne ikke opprette din Publiser via epost-adresse. Vennligst prøv igjen senere.Kunne ikke deaktivere din Publiser via epost-adresse. Vennligst prøv igjen senere.Kunne ikke gjenopprette din Publiser via epost-adresse. Vennligst prøv igjen senere.UkategorisertKoble fra denne kontoenFrakoble brukeren fra WordPress.comUpublisertAvslutt abonnementFør ditt tema støtter ubegrenset rulling vil du ikke kunne aktivere denne modulen.Innlegg uten tittelKommende hendelserOppdater menypunkt-tittelOppdater menyseksjonOppdater prosjekt-stikkordOppdater prosjekttypeOppdater nettstedsikonOppdatertLast opp bildeLast opp videoLast opp en videoLast opp et bilde som du ønsker skal brukes som ikon for ditt nettsted. Du vil bli spurt om Ã¥ beskjære det i neste trinn.Laster opp...Bruk $latex din latex-kode her$ eller [latex]din latex-kode her[/latex] for Ã¥ inkluderes %s i dine innlegg og kommentarer. Det finnes en rekke alternativer tilgjengelige.Bruk Google Analytics med ubegrenset rulling.Bruk Markdown for kommentarerBruk Markdown for innlegg og siderBruk en stor og visuelt slÃ¥ende utformingBruk en gyldig epostadresse.Bruk automatisk oppdaget sprÃ¥k for Ã¥ korrekturlese innlegg og siderBruk TAB-tasten pÃ¥ tastaturet for Ã¥ flytte deg mellom kolonner, og Enter- eller Return-tasten for Ã¥ lagre hver rad og flytte til den neste.Bruk disse innstillingene til Ã¥ vise ulike typer av innhold pÃ¥ ditt nettsted.Bruk disse verktøyene for Ã¥ bekrefte at du eiier eller kontrollerer din nettsted, overfor eksterne tjenester som Google, Bing og Pinterest.-- velg --SkjulVisBrukeren er koblet til WordPress.comBrukernavnVed Ã¥ bruke avkrysnongsboksene ut for hver modul kan du velge flere moduler for Ã¥ veksle med Massehandlinger-menyen pÃ¥ toppen av listen.Ved Ã¥ bruke verktøyene pÃ¥ høyre side kan du søke etter spesifikke moduler, filtrere etter kategorier eller hvilke som er aktive eller endre sorteringsrekkefølgen.VaultPressVaultPress kontrollpanelBekreftede tjenesterBekreftelse av ditt nettsted gir deg tilgang pÃ¥ avanserte funsjoner hos disse tjenestene (f.eks Verky for netredaktører, eller fÃ¥ en bekreftet-boks). Vi vil legge til et usynlig %s-element i kildekoden pÃ¥ hjemmesiden.Video forhÃ¥ndsvisning:Video pÃ¥ %sVideoinnlegg av %s.VideoinnleggVideoPressSe alleVis tegneserieVis full profil →Vis hele nettstedetVis menypunktVis menypunkt-tittelVis menyseksjonVis mobilversjonen av sidenVis prosjektVis prosjekt-stikkordVis prosjekttypeVis statistikken uten JavascriptVis anbefalingVis %s.Vis alle Jetpack-funksjoneneVis fullstørrelse %1$s×%2$sVis pÃ¥ InstragramVis folks profiler nÃ¥r du beveger musen over deres profilbilderVis statistikken pÃ¥ WordPress.com akkurat nÃ¥Vis:Visninger over 48 timer. Klikk for mer nettstedsstatistikk.SynlighetBesøk Nettstedsstatistikk for Ã¥ se din statistikk.Vis innlegget for mer.For Ã¥ kontrollere din sikkerhetskopier, se sikkerhetsadvarsler eller kontrollere din VaultPress-helse, besøk din %s.Besøkende med iPhone, Android, Windows Phone og andre mobile enheter vil se det mobile temaet automatisk, med mulighet til Ã¥ se nettstedet i fullversjon. Du kan aktivere eller deaktivere med knappene "Aktiver" eller "Dekativer" ovenfor.WP.me ​​kortlenkerAdvarsel! Multibyte-støtte mangler!Vi kan ikke vise innlegg fra dette nettstedet.Vi kan ikke hente nettstedsdata akkurat nÃ¥.Vi kunne ikke forsikre oss om at din server gjør en gyldig forespørsel. Vennligst prøv igjen og forsikre deg om at intet forstyrrer forespørsler fra din server til Jetpack-serverne.Vi kunne ikke finne noen konto med eposten %1$s Ã¥ logge deg inn med. Hvis du allerede har en konto pÃ¥ %2$s vennligst sørg for at %1$ser satt opp som epostadresse, eller at du har koblet deg til WordPress.com pÃ¥ din profilside.Vi kunne ikke finne noen konto pÃ¥ %2$s, koblet til din WordPress.com-konto, Ã¥ logge deg inn med. Hvis du allerede har en konto pÃ¥ %2$s, vennligst kontroller at du har koblet til WordPress.com pÃ¥ din profilside.Vi har apps for iOS (iPhone, iPad, iPod Touch), Android, BlackBerry og flere!Vi er ikke i stand til hente statistikken akkurat nÃ¥. Vennligst prøv igjen ved Ã¥ laste inn siden pÃ¥ nytt.Vi kan ikke hente statistikken di akkurat nÃ¥. Vennligst opfrisk denne siden og prøv igjen, Hvis det opstÃ¥r en feil igjen, vennligst kontakt brukerstøtte. Inkluder informasjonen nedenfor i din tilbakemelding.Vi har endret denne innstillingen til en klikk for Ã¥ rulle-utgave siden du har widgeter i sidebunnen satt opp under Utseende - Widgeter, eller fordi ditt tema bruker klikk for Ã¥ rulle som standard virkemÃ¥te.NettstedBekreftelses-tjenester for nettstederVelkommen til Jetpack %s!Velkommen til tilpasset CSS! CSS (Cascading Style Sheets) er en type kode som forteller nettleseren hvordan vise en nettside. Du kan slette dise kommentarene og starte dine tilpasninger. I utgangspunktet vil ditt stilark etter temaets stilark, noe som betyr at dine regler kan fÃ¥ forrang og overstyre temaets CSS-regler. Bare skriv inn her hva du vil endre. Du trenger ikke kopiere hele innholdet fra stilarket til ditt tema.Velkommen til tilpasset CSS! For Ã¥ lære hvordan dette virker, se http://wp.me/PEmnE-BtVi vil ogsÃ¥ varsle deg straks ditt nettsted er oppe og gÃ¥r, slik at du kan holde øye med den totale nedetiden.Hva vil du ha i emnefeltet?Hva er et svevekort?Hva er en gravatar?NÃ¥r du legger et galleri i ditt innlegg har du nÃ¥ muligheten til Ã¥ velge utforming for dine biilder. Vi har lagt til støtte for rektangulære, kvadratiske og sirkulære gallerier. I utgangspunktet vil gallerier fortsette Ã¥ Ã¥ bli med standard miniatyrbilde-rutenett. For Ã¥ gjøre den rektangulære utformingen til standard for ditt nettsteds gallerier kan gÃ¥ til Settings → Media og krysse av i boksen ved siden av "Vis frem fine bilder in stilig mosaikk."NÃ¥r dine besøkende har lagt inn en kommentar fÃ¥r de ogsÃ¥ tilbud om Ã¥ abonnere pÃ¥ innleggets kommentarer for følge samtalen.NÃ¥r du skriver flott innhold sÃ¥ vil du gjerne at folk skal finne det, ikke sant?HvitAdministrering av hvitlisteHvitliste lagretWidget ID:erWidget-tittel:Skjermbilde widgeterBredde (px):Bredde:Med 1 kommentarMed %s kommentarerMed karusell aktiv vil ethvert standard WordPress-galleri som du har bygget inn i innlegg eller sider bli en nydelig fullskjerms fotoopplevelse, med kommentarer og EXIF-metadata.Med WordPress.com enpartsinnloging vil dine brukere bli i stand til Ã¥ logge inn eller registrere seg pÃ¥ ditt WordPress-nettsted med samme brukernavn og passord som de har pÃ¥ WordPress.com. Det er trygt og sikkert.Men et mÃ¥nedlig abonnement vil VaultPress-modulen sikkerhetskopiere innholdet, temaer og innstikk pÃ¥ nesstedet ditt i sanntid. Dessuten vil den foreta en jevnlige sikkerhetskontroller mot de vanligste truslene og angrepene.Med modulen Ubegrenset rulling og et tema som støtter det er det akkurat det som skjer. I stedet for den gamle mÃ¥ten Ã¥ navigere ned ved Ã¥ rulle siden og sÃ¥ trykke pÃ¥ en lenke for Ã¥ fÃ¥ neste side, vente pÃ¥ at siden oppdateres—dokumentmodellen for www—trekker Ubegrenset rulling den neste rekken av innlegg automatisk frem til visning nÃ¥r leseren nærmer seg bunnen av siden, omtrent som i en applikasjon.Likinger fra WordPress.com:WordPress.com reblogg-knappWordPress.com enparts innloggingWordPress.com-statistikkWordPress.com har for øyeblikket problemer og er ute av stand til Ã¥ gi drivstoff til din Jetpack. Vennligst prøv igjen senere.Wow, det ser nerdete ut.Skriv en kommentar...Feil størrelse. Hmm… det virker som at din Jetpack ikke helt passer. Har du gÃ¥tt ned i vekt? Klikk "Koble til WordPress.com" igjen for Ã¥ fÃ¥ Jetpack justert.d.m.Yd.m.Y H:iÃ…rlige arkiver: %sÃ…rlige arkivJa. Du kan oppgi flere epostadresser i feltet for epostadresse og skille dem med komma. Et varsel vil da bli sendt til hver av epostadressene.JaDu er klar! Ditt nettsted kan nÃ¥ administreres fra wordpress.com/sites.Du har ike lov til Ã¥ gjøre denne endringen.Du har ike tillatelse til Ã¥ behandle dette elementet.Du har ikke tilgang til Ã¥ gjenopprette denne fra papirkurven.Du har ikke tillatelse til Ã¥ flytte dette elementet til papirkurven.Du er ikke tilgang til Ã¥ skifte til dette temaetDu mÃ¥ angi en rettighet Ã¥ sjekke.Du mÃ¥ angi en modul.Du mÃ¥ angi en utvidelse Ã¥ aktivere.Du mÃ¥ oppgi en utvidelse.Du mÃ¥ angi et tema Ã¥ bytte til.Du kan se din statistikk-oversikt her .Du kan aktivere eller deaktivere individuelle Jetpack-moduler etter dine behov.Du kan legge til følgende variabler til tjenestens dele-URL:Du kan ogsÃ¥ skjule widgeter basert pÃ¥ gjeldene side. Hvis du for eksempel ikke ønsker arkiv-widgeten til Ã¥ vises pÃ¥ søkeresultat-siden velger du "Skjul" og "Side er søkereltater".Du kan ogsÃ¥ gjøre endringer i dine innstillinger for abonnementer i bunnen av siden for Diskusjonsinnstillinger.Du kan lage en kobling bare for deg selv eller for alle brukerne pÃ¥ nettstedet. Delte koblinger er merket med (Delt).Du kan se dine varslinger pÃ¥ verktøylinjen og pÃ¥ WordPress.com.Du kan ikke koble fra uten først Ã¥ ha koblet til.Du har ikke tilstrekkelige frihetsnivÃ¥er til Ã¥ se denne videoen. Bidra til fri programvare og oppgrader.Du har ikke tillatelse til Ã¥ bruke denne siden.Du har allerede abonnert pÃ¥ dette nettsetdet. vennligst sjekk din innboks.Du abonnerer nÃ¥ pÃ¥ e-postoppdateringer.Du har valgt Ã¥ koble opp dit nettsted. Venligst klikk "Bekreft" nÃ¥r du blir bedte om det, om du ønsker Ã¥ koble opp dine brukerkonti.Du har delt dette innlegget med %sDu har koblet din %1$s-konto opp mot %2$s.Du har frakoblet Jetpack.Du mÃ¥ logge inn for Ã¥ legge inn kommentar.Du mÃ¥ være logget inn for Ã¥ legge inn en kommentar.Du mÃ¥ koble ditt Jetpack-innstikk til WordPress.com for Ã¥ bruke denne funksjonen,Du mÃ¥ velge en gyldig handlingDu mÃ¥ lage en widget pÃ¥ Twitter.com og deretter skrive inn din widget id (det lange tallet som finnes i URL-en pÃ¥ instillingssiden for din widget) i feltet nedenfor. Les mer.Du mÃ¥ autorisere Jetpack-forbindelsen mellom nettstedet og WordPress.com for Ã¥ aktivere disse fete funksjonene.Du mÃ¥ registrere Jetpack før du kobler det til.Du mÃ¥ velge hva du skal vise i denne Gravatarprofil-widgeten.Du vil ikke lenger motta e-postoppdateringer om Jetpack.Din innstilling %1$s er satt opp til %2$s, men din tilkobling til WordPress.com angir den som %3$s!Din API-nøkkel er ugyldig.Dine tilpassede innholdstyperDin e-postadresseDin IP-adresse (%1$s) er assosiert med mulige sikkerhetsbrudd. Finn ut mer...Din Jeptack er nesten klar!Ditt Jetpack-oppsett ser greit ut!Ditt navnDitt porteføljearkiv har ingen oppføringer. Du kan begynne Ã¥ opprette dem fra kontrollpanelet,Ditt nettsted fungerer bedre med JavaScript slÃ¥tt pÃ¥.Ditt arkiv for omtaler er tomt. Du kan opprette dem fra kontrollpanelet.Din WordPress-installasjon blir for øyeblikket beskyttet med verdens beste sikkerhetssystem, sikkerhetskopiering og brukerstøtte.Ditt '%1$s' alternativ er satt opp som '%2$s', men din oppkobling til WordPress.com angir den som '%3s'!Ditt svar var ikke riktig. Vennligst prøv igjen.Bloggen din har for tiden ingen publiserte innlegg.Din kommentar venter pÃ¥ godkjenning.Din kommentar er til moderering.Din kommentar ble godkjent.Din nÃ¥værende IP: %sDit hovednettsted er ikke koblet til WordPress.com. Vennligst koble til for Ã¥ fÃ¥ en API-nøkkel.Ditt nye felt ble lagret.Ditt nettstedsikon er lastet opp!Ditt nettsted eller server er satt opp til bare Ã¥ tillate SSL-tilkobling til Jetpack, men SSL-forbindelsen ser ikke ikke ut til Ã¥ fungere.Ditt nettsted nÃ¥r ikke fram til serverne til Jetpack.Ditt nettsted eller server kan ikke nÃ¥ frem til Jetpacks servere pÃ¥ en sikker mÃ¥te.Ditt tema støtter %sDin opplasting ble ikke fullført. Prøv igjen.Din video lastes opp... Vennligst ikke lukk dette vinduet.Ditt nettsted mÃ¥ være offentlig tilgjengelig for Ã¥ bruk Jetpack: %set innlegg eller side først blir publisertet innlegg eller en side blir oppdatertlar deg legge til lenker til ditt nettsteds innlegg- og kommentarer-RSS-strøm i din sidetolpe. Dette gjør det lett for dine besøkende Ã¥ holde seg oppdatert nÃ¥r du legger ut nytt innhold eller fÃ¥r kommentarer.lar deg enkelt legge til bilder i widget-omrÃ¥dene in ditt tema.Det er en en enkel mÃ¥te Ã¥ legge ut flere visuelle interesser pÃ¥ ditt nettsted.ogEpostAvbrytKlikk herKonfigurerbeskjær bildetdagRedigerrediger tekstOoops. Det oppsto et problem med Ã¥ opprette ditt skjema. Du vil trolig mÃ¥tte prøve igjen.gÃ¥ tilbakehttp://jetpack.mehttp://nb.wordpress.org/iCalendar Feed URL:i bÃ¥de bredde og høydei "%s"laster inn…%1$s/%2$smÃ¥nedBilde-navigasjonsmerkeKommentareller deaktiver Jetpack.%s hvis:korrekturlesSøk i altsikkerhet, sikker, beskyttelse, botnett, rÃ¥ kraftvelg en filE-postFacebookGoogleLinkedInPinterestPocketSkriv om detteSkriv utRedditTumblrTwitterviser din Facebook Liker-boks i et sidepanel i ditt tema. Det er en fin mÃ¥te Ã¥ la dine lesere vise sin støtte.viser dine siste tvitringer i et sidepanel i ditt tema. Det er en enkel mÃ¥te Ã¥ fÃ¥ mer aktivetet pÃ¥ ditt nettsted. Det har mange muligheter for tilpasning.den siste dagenden siste mÃ¥nedendet siste kvartaletden siste ukadet siste Ã¥retdenne videoenSe: %sukeordblokkerte innbruddsforsøkuseriøse kommentarer blokkert av Akismet.%1$s \k\l %2$splugins/jetpack/languages/jetpack-pl_PL.mo0000755000312500031250000012562412651056012021221 0ustar eacbforgeacbforgÞ•„<[\(È5É58à5-6;G6 ƒ6 6 6Gª6ò6û67757!D7f7m7~7”7 «7 ¶70Á7+ò78'888?8C8T8 c8q8y8‰88²8Â8DÒ89C)9m9€9‰9œ9µ9Å9Î9Ô9 Ø9ã9 ì9ù9 :(:=:1]::6Ÿ:pÖ: G;CT;˜;Ÿ;°;À; Ð;Û;î;<<-<>< D<R< o<y<~<Ú’<m= q==•=2¬=ß= æ=ó=ü=> >>+> 4>B> a>m> u>€>•>µ>Ä>ß>û>?.?G? M?Z?b?y?Œ?!•? ·? Á?Î?EÖ?@ 5@?@ Z@g@ y@5†@¼@ Ð@Û@í@ ô@ÿ@A*A@A VAdA zA„A‰AœA«A°A µAÀAÈAÏAâA ÿA BB)BGBOBcB3{B5¯B åB/ñB!C%=CcC#lC&CC·CûCDD DD ,D9DKD]D cDqD…D ”DŸD°DÀDcßDCE3RE†E E¿EÕE*ÜE5F8=FvFF ŸF­F¶FÇF×FëF ôF ÿF GG(G=GOGeGmGrG wG‚GŠG#™G½GÎGÕG ÛGéGH HHH$H )Hë6HÞ"I J JMJ dJoJJ‘J—J ¨J µJ ÀJ ËJÖJ æJ òJ ýJ KHKd[K=ÀKþK$L ,L 9LDLTLjL!qL“L¤L´L%ÍL2óL&M/M5M;MBMKM QM_M oM zM…M  M®M ÂMÐMÕMÛM àMëMñM)N/N%ANgN‡NN ¯N¼NÍNÞN îNùN O #O.O GO TOaO{OŒO ’OO¤O ©O/³OãO ëOøOP PPY1P?‹P_ËPJ+QvQ‰Q£Q¿QÜQòQ RR0RAR FRPRURfR jRvR+~RªR ÀR ÍRÛR ÞR éR óRýRS *S7SMS_SqS€SS S ¥S ³S ÁS ÏS)ÝS T (T32TFfT0­T)ÞT3U[E[U[ g[t[†[˜[§[¾[!Í[%ï[\++\W\(q\ š\¦\ ¯\»\Ã\ Ó\ ß\í\ô\ ù\ ]:]K] T]^]t].z]'©]Ñ] Ø] å] ï] ù] ^^ ^^$^)^@C^„^^’^ ›^ ¨^µ^»^Ë^Ý^å^ ì^ú^ __+_;_W___h_m_s_„_—_œ_ ¯_ ¹_ Ã_Í_>ç_2&` Y`Bf`+©`'Õ`&ý`6$a%[a\a ÞaIÿa?Ib,‰bM¶b cc c+c ;cHcNcScYcicoc vc€ce–c üc d d&de:eHºeHfLfUf[fdf}fŒf›f ¬fd¹fg 0gP;gŒg”gšgJ«g ög hhh7hNhah ghuh‰h7h3Åh@ùh;:i+vi3¢i7Öij&j Dj6Nj$…jªj¾jÂj Éj ÔjÞjâj çjñjùj k!k@kPk Vk wk'„k>¬k<ëk (l6lElWl klxl‡l ˜l ¦l´l&¹l*àl n2(n [n en pn |n ˆn-•n ÃnÍnÕn"ïn%o"8o[obouoo §o µo9Ào-úo(p0pApIpOpjpp ”pŸp²pÊpâpöpJqQqI`qªq ½qÈq#Ýqrrr r)r;rKr^rsrAƒr2ÅrBør;s8Osƒˆs tGtdtltt”t ¨t³tÆtØt÷t uu !u/u Ku Vu`uûyuuv yv…v˜v>·vövýv w !w+w 3w?w Ow[w,lw ™w¦w ­w»w2Ùw x%#x&Ix%px–x&¯xÖxÞx ïx,ùx&y @y(Ky tyyya™yûy z z>z"Szvz1†z¸z×zézúz{{0{ L{%m{ “{¡{²{»{Ã{Õ{æ{í{ò{ û{| ||7| <|G|Y|s|||™|<µ|5ò|(}8:}s}'}µ}"½}/à}I~Z~a~ h~s~†~ž~­~Á~Õ~ Ü~é~þ~!4OrjÝ5í#€A€^€y€0€:²€í€ô€0AJ _m‰˜ §´Çâ ý‚&‚/‚2‚B‚J‚,^‚"‹‚®‚µ‚½‚Í‚ ì‚÷‚ ƒƒƒ*ƒ ?ƒåI„ /… 9…fC…ª…Ê…Ý…î…ö… ††+†?†O†c†t†‡†—†FŸ†læ†?S‡ “‡$ž‡ Ç·߇ò‡ ˆ+ˆ?ˆRˆcˆ({ˆq¤ˆ ‰ ‰&‰/‰8‰?‰E‰Z‰i‰~‰ “‰´‰ĉâ‰ò‰û‰ŠŠŠ3Š&MŠtŠPŒŠÝŠüŠ1‹7‹@‹T‹f‹y‹ˆ‹ ž‹ ©‹#´‹ Ø‹å‹ ö‹Œ(Œ.ŒAŒIŒ NŒ2[Œ ŽŒšŒ ¯Œ»ŒÄŒ$׌düŒ@aO¢Eò 8Ž CŽQŽcŽ {Ž‡ŽŽ¢ŽºŽÏŽ ׎äŽëŽüŽ  ,G`r„ ˆ “Ÿ¯*Éô #% I jx˜µºÊÚ ñ3ÿ+3‘ _‘k‘q‘v‘{‘ ‘Š‘.‘ ¼‘ Ç‘+Õ‘,’.’8E’~’ „’ ’’ ž’©’±’ Ì’Ö’ó’“ ““% “)F“&p“—“«““ Ê“ Ô“Þ“ñ“ ” ”7”U”d” v”„”Д𔩔 º” Å”Ï”à” •2 • =•K• T•a•w•‰• ‘• Ÿ•¬•¾•Ö•ß•!ó•– – (–5– ;–%E–k––…–•–ž–¯–Ë–Û–÷–— — '— 5— A—L— g—%q———™—›— —¨— Ç—Ñ— Ø—æ—ü— ˜˜˜*˜<˜K˜d˜x˜2‡˜º˜&Θ0õ˜&™,=™ j™ ‹™–™ ¦™ ±™¿™Ιç™ú™šš"š1š9Cš }šŠš ™šºššEÆš › › !› .› :›G›Z›b›q›w›$~›X£›ü› œœœ,œ >œIœZœsœyœœœ£œªœÀœ"Þœ .CX^~‘ ¢®GÂ3 ž >ž[Kž0§ž.Øž-ŸD5Ÿ"zŸˆŸ&& UM S£ 5÷ J-¡ x¡‚¡”¡¤¡¶¡È¡Сءޡï¡ö¡þ¡*¢A¢Ñ¢ç¢û¢£#£8£?£G£[£x£|£ £ ‹£™£ª£¾£Ï£ç£ö£¤4 ¤U¤Nt¤ äѤפÞ¤ ñ¤û¤ ¥(¥>¥+R¥~¥p¥þ¥ ¦Z¦z¦ަ•¦¬¦±¦À¦ Ò¦'ߦ §(§<§ B§N§a§Pe§B¶§Gù§EA¨‡¨<§¨6ä¨#©&?© f©6r©'©©Ñ©ë©í©ô© ªªª ª,ª3ªEª[ªbªuª~ª Žª ˜ª5¤ª/Úª ««« '«4«F«W«h« y«…«Ž«P×1§ MLüö÷åΞŒR˱nÊXu l)BD’ªÕÞ6²ê`ÃÂtÈ…¤&B'"á ¨¥‚%Ý9ïlÁxÔñZ ¯@˜¾# Tä3Fγ¦ÍÀc¿âsÚ X`ެZÐV^³·!0Ä2RQ¥e*3 ¤%xÉêb ±\´UK°RÛLé&Gå„[WGhœ­(kí(5ˆ‡žZÒ+,f-j7€ßq­ÐC Ñ>Ôr€YøŸ®\e>ƒ|î?I"aÅ%WP«_j=qñ™ˆæt”—ãk0/aV8?ù}¶ëèE<^dý1ø °ß‹ËA›Í”#ïMô ªÖ‰)¸upÏ-¸þr ow!Þ6¨;ÿŠ˜š7‘Oæxbܵ|¼-œü*z·4î]?d(gÅÜÇÇó*†Ù«ú–ì/+t:â o:=7@Óe>Kè“›5Ày`ðÚr~8Ϲd].6‹nm$ð ãàáJ£‚)CÙÄcTŸû<4OQhùN< 2Övä¶úc4~+f¦ÆówÌqUDçkÂBID]Û @zJjn/†ÁÊA{õõW´9g;,¡\yiY÷m"[нN=C {–²ÆOÈlQ‡v—bƒ#™“pé¯'û;}K…ŒXþ.Ã8V{E$~Tm0•a&©¡YpU¾5gS»Žyíàý»„ö§ìô½Éf¿„1HFosH×i'’vSšÝ IÑ!µ_$òº®뢹9Ó:‚,s^ÕMGòLw}uÒ‰NiØ2¢ Ì£PJE[ƒ_3SF•.hØ ÿ©|‘çA€¬º¼zH (Opens in new window) or Cancel and go back to the settings.%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%s (Jetpack)%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s has been deactivated.%s is not a valid module.%s is required%s requires a valid email address%s: %s« Previous← Older Comments— Select —(no title)(required)Learn more about these options.« OlderActivateActivate AkismetActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New ProjectAdd New Project TagAdd New Project TypeAdd a Site IconAdd a new fieldAdd a new post or page to any of your sites from a single interface.Add a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove tagsAdd this form to my postAdd to section:Address:AlbumAllAll ComicsAll DoneAll ProjectsAll TestimonialsAll postsAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAlternate text:An unknown error has occurred. Please try again later.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs your faviconAttachment PageAutomatticAvailable Modules:Available ServicesBack to General SettingsBack to Top ↑Background colorBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:BlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.CSSCSS RevisionsCSS Stylesheet EditorCan I add more fields?Can I send a notification to more than one person?CancelCancel replyCaption:CategoryCenterChange logoCheatin’ uh?CheckboxChoose ImagesChoose from the most used tagsChoose logoCirclesClick hereClick to Press This!Click to email this to a friendClick to printClick to share on LinkedInClick to share on PinterestClick to share on RedditClick to share on TwitterClick to view slideshow.CloseColor SchemeCommentComment cache problem?Comment navigationCommentsComments on this post are closed.ConfigureConfigure %sConnectConnect now to enable features like Stats, Likes, and Social Sharing.Connect to WordPress.comConnectedConnected to WordPress.comContact FormContact Form URL:Contact InfoContinue reading →Create Share ButtonCrop ImageCurrently ReadingCustomCustom CSSCustom CSS StylesheetCustom Email AddressCustom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDifficultyDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay WordPress PostsDisplay all your gallery pictures in a cool mosaic.Display an official Twitter Embedded Timeline widget.Display as:Display upcoming events from an iCalendar feed.Do I need to fill this out?Don't show the Reblog button on postsDownloadDownload: %s
        Drag and drop available services here.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit DetailsEdit Menu ItemEdit ProjectEdit Project TypeEdit Your ProfileEmailEmail AddressEmail notificationsEmail settingsEmpty SpamEnabled ServicesEnglish OptionsEnter the customer's name hereEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error code: %sError connecting to WordPress.com. Code: %1$s, %2$sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example: The user is looking at a page, not a post.PageExport feedback as CSVFacebook Page URLFacebook WallFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackField typeFirst optionFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFor more information:Format:FreeFromFront pageGalleryGet an API KeyGet the most out of Jetpack with...Give Us FeedbackGoogleGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:HideHomeHours & InfoHowdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:Icon URLIdentify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Images:In Development Mode, via site URL lacking a dot (e.g. http://localhost).In Development Mode, via the JETPACK_DEV_DEBUG constant being defined in wp-config.php or elsewhere.In Development Mode, via the jetpack_development_mode filter.InactiveInclude this CSS in the Mobile ThemeInsert VideoInvalid idInvalid requestIs this site private?JargonJetpack Network Settings Updated!Jetpack SettingsJetpack SupportJetpack by WordPress.comJetpack is in local development mode.Join %s other subscriberJoin %s other subscribersJump to:LaTeXLabelLabelsLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLikes NotificationsLimit must be greater than or equal to 0.Link Color (hex):Link URL (when the image is clicked):Link account with WordPress.comLinkedInLinks to your blog's RSS feedsLive PreviewLoading …Loading video...Loading…Loading...Location of the Ogg video file.Logged InLogged OutLogin Blocked by JetpackM j, Y @ G:iMark as SpamMark this message as spamMarkdown contentMediaMedia FileMediumMenuMenu ItemMenu item published. View itemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionShare new posts on social media networks automatically.Module NameManageModule NameNotificationsModule NameTiled GalleriesModule NameWP.me ShortlinksModule TagDevelopersModule TagRecommendedModule TagSocialMonthly Archives: %sMonthly archivesMoreMy TweetsNameNetwork SettingsNewNew ProjectNew RowNewer »Newer Comments →Next »Next » NoNo BordersNo FooterNo HeaderNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo feedback foundNo plugins found.No suggestionsNo tags found.No update neededNoneNot ConnectedNot connectedNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyOKOffset must be greater than or equal to 0.Older %sOlder postsOne of your IP addresses was not valid.Open link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderPage %sPages:Parent Project Type:PathPermalink to %sPersonal LinksPhone:Pingback:PinkPlease provide a valid email address.Please provide your name to comment.Please provide your name.Plugin activated.Plugin deactivated.PluginsPopularPortfolioPortfolio ItemsPost CommentPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts pagePress ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProcessing...ProjectProject TagsProject TypeProject saved.Project updated.ProjectsProofreadingProudly powered by %sPublicizePublishPublishedPurchasePurpleRSS Links (Jetpack)Random Order:RatingRecent PostsRedRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove logoReplace selection with:ReplyRequire Two-Step AuthenticationResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesSave StylesheetSaved successfullyScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch Menu ItemsSearch Modules…Search PluginsSearch Results for: %sSearch resultsSee the other %s Jetpack featuresSemantic Personal Publishing PlatformSend to Email AddressSent by an unverified visitor to your site.Separate tags with commasService: Account connected as%1$s: %2$sSet as logoSettingsShare this:SharingSharing ButtonsSharing URLSharing labelShelf:ShowShow FacesShow StreamShow falling snow on my blog until January 4th.Show mapShow moreShow sharing buttons.Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.SilverSimilar postSite IconSite LogoSite NameSite StatsSitesSlideshowSmallSnowSorry, nothing to report.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sort by:SpamSpellingSquare TilesStatic page:StatsStatus unknown.Stylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe to %sSubscribe to Blog via EmailSupportTag nameTagsTermsTerms of ServiceTestimonial saved.TextText & Image LinksText LinkText ListText onlyThe Jetpack Version is %sThe email you entered was invalid. Please check and try again.The following new modules have been activated: %l.Theme: %1$s.There are no posts to display. Want more traffic?There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.This connection is working correctly.This gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected.This post is password protected. Enter the password to view any comments.This site is too large, please contact Jetpack support to sync.This video is intended for mature audiences.This video requires Adobe Flash for playback.ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTwitterTwitter TimelineTwitter username:TypeTypesURLUncategorizedUnpublishedUnsubscribeUntitled PostUpcoming EventsUpdatedUpload ImageUploading...Use Google Analytics with Infinite ScrollUse Markdown for comments.Use automatically detected language to proofread posts and pagesUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueView AllView Full Profile →View Full SiteView Menu ItemView Mobile SiteView ProjectView full size %1$s×%2$sView on InstagramVisibilityWe were unable to get your stats just now. Please reload this page to try again.WebsiteWhiteWhitelist saved.Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:With 1 commentWith %s commentsWordPress.com UsernameWrite a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can add the following variables to your service sharing URL:You do not have sufficient permissions to access this page.You have successfully disconnected Jetpack.You must log in to post a comment.You will no longer receive email updates about Jetpack.Your API key is invalidYour Jetpack is almost ready!Your NameYour blog does not currently have any published posts.Your comment is awaiting moderation.Your current IP: %sandcancelclick hereconfiguredayeditedit textgo backhttp://jetpack.mehttp://wordpress.org/in {category/tag name}In "%s"loading…monthmy list of books to readTo ReadnounCommentpast participle: books I have readReadsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toPress Thisthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Otwiera siÄ™ w nowym oknie)lub Anuluj i wróć do ustawieÅ„.%1$s %2$s%1$s: %2$s%1$s o %2$s%1$s o %2$s%s (Jetpack)Prenumerujesz obecnie wiadomoÅ›ci emailowe.%s%s Błąd%s temu%s zostaÅ‚ dezaktywowany.%s nie jest prawidÅ‚owym moduÅ‚em.WypeÅ‚nienie pola "%s" jest wymagane.%s wymaga poprawnego adresu e-mail%s: %s« Poprzednie← Starsze komentarze— Wybierz —(bez tytuÅ‚u)(wymagane)Dowiedz siÄ™ wiÄ™cej na temat tej opcji.« StarszeWłączWłącz AkismetaAktywneDodajDodaj formularz kontaktowyDodaj wiele elementówDodaj element menuDodaj nowyDodaj nowy projektDodaj nowy tag projektuDodaj nowy typ projektuDodaj ikonÄ™ stronyDodaj nowe poleDodaj nowy post lub stronÄ™ do swoich stron za pomocÄ… jednego interfejsu.Dodaj usÅ‚ugÄ™Dodaj formularz, pozwalajÄ…cy na subskrypcjÄ™ twojego blogu przez e-mail.Dodaj innÄ… opcjÄ™Dodaj logoDodaj lub usuÅ„ tagiDodaj ten formularz do mojego wpisuDodaj do sekcji:Adres:AlbumWszystkieWszystkie komiksyWszystko gotoweWszystkie projektyWszystkie referencjeWszystkie wpisyZezwalaj użytkownikom na dostÄ™p do moich filmów i ich edycjÄ™.Zezwalaj użytkownikom na dostÄ™p do moich filmówZezwalaj użytkownikom na dostÄ™p, edycje i usuwanie moich filmówTekst alternatywny:WystÄ…piÅ‚ nieznany błąd. Spróbuj ponownie później.Przepraszamy, ale nie znaleziono żadnych elementów w wybranym archiwum. Być może wyszukiwanie pomoże odnaleźć pokrewny wpis.Strona archiwumCzy na pewno chcesz zatrzymać Publikowanie wpisów w tym połączeniu?ArtystaJako ikona mobilnaJako twoja favicon'aStrona załącznikaAutomatticDostÄ™pne moduÅ‚y:DostÄ™pne usÅ‚ugiWróć do głównych ustawieÅ„Powrót do góry ↑Kolor tÅ‚aCzarnyArchiwa bloguSubskrypcje blogu (Jetpack)URL blogu:NiebieskiKolor Obramowania (hex):Sprowadź moc chmury WordPress.com do wÅ‚asnego bloga WordPress. Jetpack pozwoli ci na połączenie wÅ‚asnego bloga z kontem na WordPress.com aby móc korzystać z jego zaawansowanych funkcji, zwykle dostÄ™pnych tylko dla użytkowników WordPress.com.CSSRewizje CSSEdytor stylów CSSCzy mogÄ™ dodać wiÄ™cej pól?Czy mogÄ™ wysÅ‚ać powiadomienia do wiÄ™cej niż jednej osoby?AnulujAnuluj pisanie odpowiedziEtykieta:kategoriaÅšrodekZmieÅ„ logoOszukujemy, co?Pole wyboruWybierz zdjÄ™ciaWybierz spoÅ›ród najpopularniejszych tagówWybierz logoKrÄ™giKliknij tutajKliknij, aby to opublikować!Kliknij, aby wysÅ‚ać to do znajomego przez e-mailKliknij by wydrukowaćKliknij, aby udostÄ™pnić na LinkedInKliknij, aby udostÄ™pnić na PinterestKliknij aby podzielić siÄ™ na RedditUdostÄ™pnij na TwitterzeKliknij, aby zobaczyć pokaz slajdów.ZamknijSchemat kolorówkomentarzProblem z pamiÄ™ciÄ… podrÄ™cznÄ… komentarza?Nawigacja po komentarzachKomentarzeKomentarze do tego wpisu sÄ… zamkniÄ™te.KonfiguracjaSkonfiguruj %sPołączDołącz teraz by włączyć funkcje statystyk, like'ów oraz udostÄ™pniania spoÅ‚ecznoÅ›ciowego.Połącz z WordPress.comPołączonyPodłączony do WordPress.comFormularz kontaktowyAdres URL formularza kontaktowego:Dane kontaktoweCzytaj dalej →Utwórz przycisk "UdostÄ™pnij"Okrojenie obrazkaWÅ‚aÅ›nie czytamWÅ‚asnyNiestandardowy CSSWÅ‚asny arkusz stylów CSSNiestandardowy adres e-mailWÅ‚asne pole zostaÅ‚o usuniÄ™te.WÅ‚asne pole zostaÅ‚o zaktualizowane.Nazwa klientaOpinie klientówDostosujW dółArchiwum dnia: %sArchiwum dzienneCiemnyDataWyłączDomyÅ›lnyUsuÅ„UsuÅ„ na zawszeUsuÅ„ ten element na zawszeOpisTrudnośćWyłącz CSS i JSOdłącz od WordPress.comZignorujWyÅ›wietl tekst w nagłówkuWyÅ›wietlaj wpisy WordPressWyÅ›wietlaj wszystkie obrazki galerii w estetycznej mozaice.WyÅ›wietl oficjalny widget Twitter Embedded Timeline.WyÅ›wietlaj jako:WyÅ›wietlaj nadchodzÄ…ce wydarzenia z kanaÅ‚u iCalendar.Czy muszÄ™ to wypeÅ‚nić?Nie pokazuj przycisku Reblog we wpisachPobierzPobierz: %s
        PrzeciÄ…gnij i upuść tutaj dostÄ™pne usÅ‚ugi.PrzeciÄ…gnij i upuść w polu poniżej usÅ‚ugi, które chcesz włączyć.E-mailEdytujEdytuj CSSEdytuj szczegółyEdytuj ten element menuEdytuj projektEdytuj typ projektuEdytuj swój profilE-mailAdres e-mailPowiadomienia e-mailUstawienia pocztyUsuÅ„ caÅ‚y spamWłączone usÅ‚ugiOpcje dot. j. angielskiegoWpisz tutaj nazwÄ™ klientaWprowadź swój adres email aby zaprenumerować ten blog i otrzymywać powiadomienia o nowych wpisach przez email.Kod błędu: %sBłąd połączenia do WordPress.com. Kod: %1$s, %2$sBłąd przenoszenia do kosza.Błąd przywracania z kosza.Błąd wczytywania profiluBłąd!Błąd: proszÄ™ podać prawidÅ‚owy adres e-mail.Błąd: proszÄ™ wypeÅ‚nić wymagane pola (podpis, e-mail).StronaEksportuj odpowiedzi jako CSVAdres URL strony na FacebookuÅšciana FacebookPolecaneWyróżniona treśćIkony wpisówKanaÅ‚(y) do wyÅ›wietlenia:UwagiTyp polaPierwsza opcjaÅšledź blogÅšledź komentarzeObserwuj mnie na TwitterzeUstawienia PrenumaratorówAby uzyskać wiÄ™cej informacji:Format:Za darmoOdStrona głównaGaleriaZdobÄ…dź klucz APIWyciÄ…gnij najwiÄ™cej z Jetpack'a dziÄ™ki...Podziel siÄ™ z nami swojÄ… opiniÄ…GoogleZielonyTekst powitalnyMasz opiniÄ™ na temat Jetpack?WysokośćWysokość (px):Wysokość:UkryjStrona głównaGodziny i informacjaWitaj, jeÅ›li chciaÅ‚byÅ› otrzymywać powiadomienia e-mail o nowych komentarzach pod wpisem, który oznaczyÅ‚eÅ› do Å›ledzenia, kliknij na poniższym linku. Jeżeli otrzymaÅ‚eÅ› tÄ… wiadomość przez pomyÅ‚kÄ™, zignoruj jÄ…, nie bÄ™dziemy CiÄ™ ponownie niepokoili.Witaj, jeÅ›li chciaÅ‚byÅ› otrzymywać powiadomienia e-mail od nowych wpisach na tym blogu, kliknij na poniższym linku. Jeżeli otrzymaÅ‚eÅ› tÄ… wiadomość przez pomyÅ‚kÄ™, zignoruj jÄ…, nie bÄ™dziemy CiÄ™ ponownie niepokoili.Adres IP:URL ikonyWskaż sÅ‚owa i wyrażenia, które majÄ… być ignorowane w trakcie sprawdzania Twoich wpisów i stron:Zignoruj wszystkie wystÄ…pieniaZignoruj sugestiÄ™Ignorowane frazyObrazekWyrównanie obrazka:Kolor obrazka:Siatka obrazkówOdnoÅ›nik obrazkowyLista obrazkówUstawienia obrazka:Rozmiar obrazka:Adres URL obrazka:TytuÅ‚ obrazka:Obrazy:W Trybie Deweloperskim, poprzez URL bez kropki (np. http://localhost).W Trybie Deweloperskim, poprzez stałą JETPACK_DEV_DEBUG zdefiniowanÄ… w wp-config.php lub gdzieÅ› indziej.W Trybie Deweloperskim, poprzez filtr jetpack_development_mode.NieaktywnyDołącz ten CSS w mobilnej skórce.Wstaw filmNieprawdÅ‚owe idBłędne żądanieTa strona jest prywatna?Å»argonUstawienia sieciowe Jetpack zaktualizowane!Ustawienia JetpackWsparcie JetpackJetpack z WordPress.comJetpack w lokalnym trybie deweloperskim.Dołącz do %s subskrybentaDołącz do %s pozostaÅ‚ych subskrybentówDołącz do %s pozostaÅ‚ych subskrybentówSkocz do:LaTeXEtykietaEtykietyJÄ™zykDużyOstatnia modyfikacjaOpcje ukÅ‚adu:Dowiedz siÄ™ wiÄ™cejDowiedz siÄ™ wiÄ™cejDowiedz siÄ™ wiÄ™cej o Markdown.Dodaj komentarzOdpowiedz na „%s”Dodaj komentarzDo lewejJasnyLubiÄ™Dodaj do ulubionych:Dodania do ulubionychPowiadomienia o LubiÄ™ toLimit musi być wiÄ™kszy lub równy 0.Kolor OdnoÅ›nika (hex):Adres URL odnoÅ›nika (przejÅ›cie pod ten adres nastÄ…pi po klikniÄ™ciu obrazka):Połącz konto z WordPress.comLinkedInZawiera odnoÅ›niki do kanałów RSS twojego bloguPodglÄ…dÅadowanie …Åaduje wideo ...Åadowanie…Wczytywanie...Lokalizacja pliku OggZalogowanyWylogowanyLogowanie zablokowane przez Jetpackj M Y \o H:iOznacz jako spamOznacz tÄ™ wiadomość jako spamTreść MarkdownMediaPlik multimedialnyÅšredniMenuElement menuPozycja menu opublikowana. PokażWiadomośćWiadomość wysÅ‚anaWiadomoÅ›ciMetadanePrzegapiono terminBrakuje identyfikatora załącznika.Spraw, aby odwiedzajÄ…cy mogli w Å‚atwy sposób okazać swoje uznanie dla zawartoÅ›ci Twojej strony.Wstaw formularz kontaktowy w dowolnym miejscu na swojej stronie.ZarzÄ…dzaj swoimi witrynami z centralnego miejsca, https://wordpress.com/sites.Automatycznie udostÄ™pniaj nowe wpisy w sieciach spoÅ‚ecznoÅ›ciowych.ZarzÄ…dzajPowiadomieniaKafelkowe galerieKrótki adres WP.me ​DeweloperzyZalecaneSpoÅ‚ecznoÅ›ciowyArchiwa miesiÄ™czne: %sArchiwum miesiÄ™czneWiÄ™cejMoje Tweet'yPodpisUstawienia sieciNowyNowy projektNowy wierszNowsze »Nowsze komentarze →NastÄ™pne »NastÄ™pne »NieBrak RamekBrak StopkiBrak NagłówkaNie znaleziono projektówW koszu nie znaleziono żadnych projektówBrak Paska PrzewijaniaNie znaleziono referencjiNie znaleziono informacji zwrotnychNie znaleziono żadnych wtyczek.Brak sugestiiNie znaleziono żadnych tagów.Brak wymaganych aktualizacjiBrakNie połączonyNie połączonyNiczego nie znalezionoPowiadomieniaPowiadom mnie o kolejnych komentarzach przez email.Powiadom mnie o nowych wpisach przez email.UżytkownikAutorRolaDataTagTaksonomiaOKPrzesuniÄ™cie musi być wiÄ™ksze lub równe 0.Starsze %sStarsze wpisyJeden z twoich adresów IP byÅ‚ nie ważny.Otwórz odnoÅ›nik w nowym oknie/nowej karcieOtwieraj w nowym oknieOpcjonalny tekst wyÅ›wietlany czytelnikom twojego blogu:OpcjePomaraÅ„czowyKolejnośćStrona %s.Strony:Typ projektu nadrzÄ™dnego:ÅšcieżkaBezpoÅ›redni odnoÅ›nik do %sOsobiste łączaTelefon:Pingback:RóżowyProszÄ™ podać poprawny adres e-mail.Podaj proszÄ™ swoje imiÄ™ by komentować.ProszÄ™ podać swoje imiÄ™ i nazwisko.Wtyczka aktywowana.Wtyczka dezaktywowana.WtyczkiPopularnePortfolioElementy portfolioOpublikuj komentarzZobacz wpisyTyp wpisu:Wpis nie zostaÅ‚ wysÅ‚any - sprawdź swój adres email!OpublikowaÅ‚/aOpublikowaÅ‚/a %sNapisane w %sWpisyPozycje i uwagiWpisy i stronyStrona z wpisamiPress ThisPodejrzyjPodglÄ…d FaviconPodglÄ…d ikony strony głównejPodglÄ…d:PodglÄ…d: niezatwierdzone zmiany zostanÄ… utraconeMenu główneWydrukujPrywatnośćPolityka prywatnoÅ›ciPrzetwarzanie ...ProjektTagi projektuTyp projektuProjekt zapisany.Zaktualizowano projekt.ProjektySprawdzanie pisowniDumnie wspierane przez WordPressaPublikujOpublikujOpublikowanoZakupFioletowyOdnoÅ›niki do kanałów RSS (Jetpack)Kolejność losowa:OcenaNajnowsze wpisyCzerwonyOdÅ›wież statusOdÅ›wież połączenia z %sRegeneruj adresZarejestrowani użytkownicyZaindeksuj ponownie wpisyPodobnePodobne wpisyPodobne wpisyUsuÅ„ ikoneUsuÅ„ logoZastÄ…p zaznaczenie przez:OdpowiedzWymagaj dwuetapowego uwierzytelniania PrzywróćPrzywróć ten element z koszaDo prawejZapiszZapisz zmianyZapisz arkusz stylówZapisaneZaplanowanoSzukajSzukaj komentarzyWyszukaj WszystkoSzukaj mediówPrzeszukaj elementy menuSzukaj modułów...Szukaj wtyczekWyniki wyszukiwania dla zapytania „%s”Wyniki wyszukiwaniaSprawdź %s innych modułów Jetpack'aSemantycznÄ…, osobistÄ… platformÄ™ publikacyjnÄ…WyÅ›lij na adres emailWysÅ‚ano przez niezidentyfikowanego goÅ›cia.Oddziel kolejne tagi przecinkami%1$s: %2$sUstaw jako logoUstawieniaPodziel siÄ™:Dzielenie siÄ™Przyciski udostÄ™pnianiaURL udostÄ™pnianiaEtykieta udostÄ™pnianiaPółka:PokażPokazuj twarzePokazuj strumieÅ„Do 4 stycznia wyÅ›wietlaj na moim blogu padajÄ…cy Å›nieg.Pokaż mapÄ™Pokaż wiÄ™cejPokaż przyciski udostÄ™pniania.Pokaż:lubWyÅ›wietla najczęściej oglÄ…dane wpisy i strony na twojej witrynie.SrebrnyPodobny wpisIkona stronyLogo stronyNazwa stronyStatystyki witrynyWitrynyPokaz slajdówMaÅ‚aÅšniegNiestety, nie ma nic do zgÅ‚oszenia.Niestety, twoja przeglÄ…darka nie jest obsÅ‚ugiwana. Zaktualizuj jÄ… na browsehappy.com.PorzÄ…dkuj wg:SpamPisowniaKwadratowe kafelkiStrona statyczna:StatystykiStatus nieznany.Zapisano arkusz stylów.TematWyÅ›lijWyÅ›lij »Dodaje komentarz%sZapisyPrzycisk subskrypcji:Zasubskrybuj „%s”Zaprenumeruj ten blog przez e-mailWsparcieNazwa taguTagiWarunki korzystaniaWarunki użytkowaniaReferencja zapisana.TekstOdnoÅ›niki tekstowe i obrazkoweOdnoÅ›nik tekstowylistÄ™ tekstowÄ…Tylko tekstJetpack w wersji %sE- mail jest nieprawidÅ‚owy. ProszÄ™ sprawdzić i spróbować ponownie.NastÄ™pujÄ…ce nowe moduÅ‚y zostaÅ‚y włączone: %l.Motyw: %1$s.Brak wpisów do wyÅ›wietlenia. Chcesz zwiÄ™kszyć ruch na swojej witrynie?WystÄ…piÅ‚ błąd podczas dezaktywowania wtyczkiWystÄ…piÅ‚ błąd podczas aktualizacji wtyczkiWystÄ…piÅ‚ błąd podczas aktualizacji motywuWystÄ…piÅ‚ błąd podczas subskrypcji. ProszÄ™ spróbować ponownie.To połączenie dziaÅ‚a poprawnie.Ta galeria zawiera %2$s zdjÄ™cie.Ta galeria zawiera %2$s zdjÄ™cia.Ta galeria zawiera %2$s zdjęć.Ta pozycja jest zabezpieczona hasÅ‚em.Ten wpis jest chroniony hasÅ‚em. Wprowadź hasÅ‚o, aby zobaczyć komentarze do niego.Ta strona jest zbyt duża, skontaktuj siÄ™ z obsÅ‚ugÄ… Jetpack by zsynchronizować.Ten film jest przeznaczony dla dorosÅ‚ych odbiorców.Ten film wymaga Adobe Flash do otworzenia.miniaturySiatka miniaturekKaflowe KolumnyKafelkowe galerieKafelkowa mozaikaKafelkiGodzinaCzas:Motyw Osi Czasu:TytuÅ‚TytuÅ‚:Najpopularniejsze wpisyNajbardziej popularne pozycje & StronyNajlepsze Wpisy & Strony wedÅ‚ug odwiedzin sÄ… kalkulowane do statystyk w odstÄ™pach 24 do 48 godzin. TrochÄ™ to trwa, zanim siÄ™ zmieniÄ….Najczęściej szukanePrzeźroczyste TÅ‚oKoszProblemy z Jetpack?Spróbuj połączyć siÄ™ ponownie.TumblrTwitterOÅ› czasu Twitter'aNazwa użytkownika Twittera:TypTypyAdres URLBez kategoriiNie opublikowanoAnuluj subskrypcjÄ™Wpis bez tytuÅ‚uNadchodzÄ…ce wydarzeniaZaktualizowanyWyÅ›lij obrazek na serwerPrzesyÅ‚anie...Użyj Google Analytics z nieskoÅ„czonym przewijaniemUżyj Markdown w komentarzach.Do sprawdzania pisowni wpisów i stron używaj automatycznie wykrytego jÄ™zyka-- Wybierz --UkryjPokażNazwa użytkownikaWartośćZobacz wszystkieZobacz peÅ‚ny profil →Pokaż peÅ‚nÄ… stronyPokaż pozycje menuWyÅ›wietl wersjÄ™ na urzÄ…dzenia przenoÅ›nePokaż projektZobacz w peÅ‚nym rozmiarze %1$s×%2$sZobacz na InstagramWidocznośćNie udaÅ‚o nam siÄ™ pobrać twoich statystyk. OdÅ›wież stronÄ™, aby spróbować ponownie.Witryna internetowaBiaÅ‚yBiaÅ‚a lista zapisana.jestNazwa widgetu:Szerokość (px):Szerokość:1 komentarz%s komentarze%s komentarzyNazwa użytkownika WordPress.comNapisz komentarz...d.m.Yd.m.Y H:i:sRoczne archiwa: %sTakNie posiadasz uprawnienia do przeniesienia tego elementu z kosza w inne miejsce.Nie posiadasz uprawnienia do przeniesienia tego elementu do kosza.Możesz dodać nastÄ™pujÄ…ce zmienne do adresu udostÄ™pniania usÅ‚ugom:Nie posiadasz wystarczajÄ…cych uprawnieÅ„, by wejść na tÄ™ stronÄ™.PomyÅ›lnie odłączono Jetpack.Musisz być zalogowany by dodać komentarz.Nie bÄ™dziesz już otrzymywać powiadomieÅ„ o Jetpack.Twój klucz API jest nieprawidÅ‚owyTwój Jetpack jest już prawie gotowy!Twoje imiÄ™W dzienniku tym nic jeszcze nie zostaÅ‚o zamieszczone.Twój komentarz oczekuje na moderacjÄ™.Twój obecny numer IP: %siAnulujnaciÅ›nij tutajKonfiguracjadzieÅ„Edytujedytuj tekstwróćhttp://jetpack.mehttp://wordpress.org/W "%s"Åadowanie…miesiÄ…cDo przeczytaniaKomentarzPrzeczytanebezpieczeÅ„stwo, troska, ochrona, botnet, brute forcestatystyki, Å›ledzenie, analizy, poglÄ…dy, ruchwybierz plikE-mailFacebookOpublikuj topoprzedniego dniaminiony miesiÄ…czeszÅ‚y kwartaÅ‚zeszÅ‚y tydzieÅ„zeszÅ‚y roktydzieÅ„wordsplugins/jetpack/languages/jetpack-sr_RS.mo0000755000312500031250000015173012651056012021240 0ustar eacbforgeacbforgÞ•D³l 8+9+ I+ V+Fc+Gª+ò+’ù+Œ,!›,½,Î,ä, û, --"-H1-9z-‹´-©@.4ê./(/9/@/D/L/^/[q/5Í/ 0x 0†0Œ0 0 0§0B·0Zú0YU1p¯1C 2d2k2{2Ž2¬2½2 Ã2 Ñ2Û2 à2í2 ñ2ÿ23 3)323;3MB33Ÿ3%²3Ø3÷3 4,4;4U4p4Œ4¥4¾4Ø4ñ4 ÷455525 ;5 E5R5ik5 Õ5ß5ú5 656;O6‹6 Ÿ6ª6 ±6¼6Ñ6á6÷6 77*7/7 47?7G7N7a7 ~7Š77 ³7¾7Ü7+ä78%8E98/8 ¯8(Ð8Dù8n>9&­9¥Ô9Cz:¾:Å:Ê:Ó: â:ï:; ;$; :;E;Z;Ak;­;¿;Ù;ø;<*<5@<v<<ˆ<š<¬<µ<Å<Ù< â<î<þ<== !=.=-3= a=l=t={=Ž=¢=¨=Â=É=Ñ=Ö=¾Û=†š>_!? ?? ’?ž? §?6±? è?ó?ù? @ @"@ 2@ >@ I@V@ _@ãl@PAk`A ÌAØA÷AB Bv B/CcGC«C±CºC ÀC ÎC ÙC äCòC DDDD$D*D%;DaD.jD™DQ¸D EE(E 8ECE cEmE rE E9ŒEÆEäEþE FFF F%F -F:FCFLF \F hF–uF G!G2G7G HG$iGŽG“G—G­G ´G ÁGÏGÒGäGöGHH H'H*H ;H HHŠTH,ßHF ISIpIŽI¢IªI±I·I¿IÆIËIÛI êIôI ùIQJUJrJzJ ‚J JJ/­J ÝJ èJ õJKK K $K/K37K kKxK~K†K•K¦K¯K ÅKÍÏK L¨L °LºLÃL7ÊL<M?M FMSMWM^MqM‚M‘M—M©M ±MÒMbNhN mNzN N—NžN®N ¾NËNÚNñN@O9AO%{O ¡O¬OÂO+ÞO P $P/1P;aPP¦P¿PÅP ×PãPùQ R RR$R 5R-AR oR }R‡R²˜RKSPS cSnS ‚S8ŽS<ÇST T"TATUTpTvT }T ‡T’T˜T °TºTÀT-ÚTUUIU`UfUxU€U ‡U •UŸU§U°U µUÁUÚUëUðU V V8V‘PV âVÊïVFºW>X\@X¡X?Y ZYI{Y#ÅY,éY Z Z%Z+Z1Zú8Z 3[=[ S[`[f[|[ƒ[‹[[¢[¨[ ¬[ º[ Æ[ Ò[ß[è[î[ \ \\-\:>\/y\4©\Þ\#ï\]]5]H] N]\]c]w]­Ž]<^ B^P^d^(h^7‘^3É^8ý^M6_@„_€Å_;F`2‚`!µ`p×`7Ha7€a¸a Ëa6Õa$ b?1b!qb“b­b±b¸b¼bÁb×bçb íbúb cc-c@cTcccsc „c‘c c ±c ¿cÍc&Òc8ùc2e MeZeZieXÄefÜ-f g9%g_g(zg"£gÆgàg#óg!hb9h@œhØÝh¶i<¼j ùjk&k 7kBk Vk+wk»£kr_lÒlÛòl ÎmÙmàmøm nX)nÉ‚n™Lo÷æo€Þp_qnqŽq4¬qáqûqrr ,r7rOrSr#krr& r ÇrÕrêr©ÿr1©sÛsLës?8t.xt]§t*uF0uMwuOÅuGvK]vI©vYóvMw\w nww! wÂw Õwâw)òwäxy#y14y*fyK‘y|Ýy&Zzz—z®z1Çz$ùz6{8U{Ž{¡{ ¿{ Ê{Õ{ä{ ÿ{ |-&|T|]|8z|³|*Ë| ö|C})G}*q}§œ}_D~E¤~_ê~ J¨ëB”€$×€yü v‚ „‚‚*ž‚É‚$å‚ ƒƒj3ƒ6žƒ4Õƒ „‚*„­„1Ë„1ý„?/… o…P}…]Î… ,†:†%I†'o†—†ª†+Ȇô†‡!‡%?‡ e‡q‡„‡¢‡e©‡ˆ/ˆ@ˆ;Gˆ;ƒˆ ¿ˆ+̈ øˆ ‰ ‰‰€.‰¯Šî‹±ŒÂŒÑŒíŒsŒ ¤¯Îã üŽ:ŽJŽcŽ"vލ™Ž!B¼d!‘27‘j‘ˆ‘Û£‘Á’PA“¶’“ I” V” a”n”Œ”¢”¸”'Ø”• • )•6•K•Z•By•¼•IÍ•8–¾P–—.)—X—s—8‰——×—à—"ï—f˜8y˜:²˜í˜!ü˜™<™M™ m™ z™ ›™¨™'½™;å™/!šóQšE›e››Š›?¤›Gä›,œ3œ&<œcœvœœ¤œ*©œ/Ôœ+ L&U |ˆ¦¿ðÛkÌž8ŸAŸADŸ=†ŸÄŸÙŸîŸýŸ    ( F Z u ~ ©‘ F;¡ ‚¡¡¢¡%À¡æ¡^¢$c¢'ˆ¢°¢ É¢"Ö¢ù¢£-£m<£!ª£Ì£Ý£'ò£'¤B¤%S¤y¤«¤<¦ L¦Y¦l¦}¦}¦ƒ§ ’§œ§ º§ ǧ(Ò§+û§'¨A¨%P¨v¨0…¨ú¶¨ ±©¼©Ë©ç©ªª#)ªMªmªª4­ª+⪡«k°«L¬i¬,„¬L±¬cþ¬7b­š­_®­k®z®*® º®"Ç®ê®Ùÿ® Ù°æ° ±±!+±M±p^±ϱé±5ý±h3²œ³$«³г"è³ ´k!´t´ µ#µG;µ/ƒµW³µ ¶¶$¶&=¶d¶/v¶¦¶ĶDͶf·y·#Š·˜®·G¸\¸u¸ ˆ¸•¸©¸¸¸Ǹ ߸ì¸2¹5¹ U¹0`¹‘¹¯¹Kùjºz»^Š»ªé¼v”½é ¾!õ¾*À=BÀŒ€ÀK Á_YÁ¹Á ÓÁ ÞÁ êÁ ÷Á2Â)8Ä9bÄ-œÄ ÊÄ7ÕÄ Å Å0!Å RÅ ]ÅhÅ lÅŤÅÀÅÚÅöÅÆ 'Æ2Æ#BÆAfÆt¨Æsdž‘ÇÈ@4ÈuÈ1‡È¹È×ÈàÈ ûÈ" É),É6VÉÊ “ÊŸÊ¿ÊSÄÊaË]zËtØË¬MÌeúÌÕ`ÍW6ÎVŽÎ5åγÏXÏÏV(Ð#УÐJ³Ð0þÐw/ÑH§Ñ8ðÑ)Ò,Ò=Ò DÒOÒhÒ ƒÒŽÒ ŸÒ­Ò¼ÒÍÒàÒôÒÓ Ó!Ó;Ó'YÓ!Ó£ÓÃÓÒÓ{"E)$|UG÷n+ßÙÙ~Ã…?Ômt^!¾ÄÚû×¹¦9K¤j&‚áðÖµÿ‰ ¶Nùh"°·´pz›ˆc¤¯[c5¡ŒØ'­î1,¨íÓFçu ×£ ø¾­ì•à SKã©_‰öä ȃM`†ãâC˜Tyä¶e%•sï7æºwôŽñý”YBΜéœýI¥r™VŸ=žÍøV{¼Ëå†ÊËüŽb“ƒ3ÕH‚ßYoX„õÇ™ï‡vØ.þefÒl€:  -ê1|}ND3,)Ьë‘: ÏÕ4â´*ÖfòAª8é\©ñd±æ'<i;x–L=»y50û\îA8‹//Âuô»@(òzQb— M®W.šÚ„ðˆèÁg’U®?²Ý 0‹Á÷þOÓžŠ ³¬Ä~àÉÇÅ! çS¸”>l‡PÈ¥ÞR±ÂÀÉok%½ª¿åD7};šX<ÔÜüàóÆá#BÊa#4ÒöÑÐZºŠ+W]Jw°¸ÆÌmqa–ÜZÎí«·2j-¼Pg9£L€Eú &_²ÑCOÌŒHÍhp«½Ý$>6Ÿ^T¢]2kFÿIG¢xó³(Àsìê*d…õtúvJRèù¨‘§Ïnq¡[ŧ“ ’¿6`ëµÞ¯Q¦˜riÛ@—›Û¹%1$s %2$s Views%1$s at %2$s%1$s on %2$s%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s is required%s requires a valid email address« Previous← Older Comments— Select —(no title)(required)% Replies1 ReplyYou have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. ActivateActivate AkismetActiveAddAdd NewAdd a new serviceAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Additionally you can define your own custom services.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.AlbumAllAll ProjectsAll postsAlternate text:An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Answer a short survey to let us know how we’re doing and what to add in the future.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Are you sure you want to stop Publicizing posts to this connection?ArtistAttachment PageAvailable ServicesAvailable shortcodes are: %l.Background colorBlackBlog ArchivesBlog URL:BlueButton styleCSSCSS RevisionsCSS Stylesheet EditorCancelCancel replyCaption:CategoryCenterChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsClick to Press This!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseColor SchemeComing soon…CommentComment navigationCommentsConfigureConfigure %sConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected to WordPress.comContact Form URL:Contact InfoContinue reading →Count the page views of registered users who are logged in.Create Share ButtonCrop ImageCustomCustom CSSCustom Email AddressCustom Message:Custom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisable CSS and JSDisable Post By EmailDisconnectDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice.Display Header TextDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay higher quality video by default.Display share menu and allow viewers to embed or download this videoDon’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Your ProfileEmailEmail AddressEmail check failed, please try againEmpty SpamEnable Post By EmailEnabled ServicesEnter the URL of a 16x16px icon you want to use for this service.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:FacebookFacebook Like BoxFacebook Page URLFeaturedFeatured ImagesFeed(s) to Display:FeedbackFollow BlogFollow CommentsFor more information:Format:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageGalleryGoogleGravatar HovercardGravatar HovercardsGreenHave feedback on Jetpack?HeightHeight:HideHomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.IP Address:IconIcon + textIcon URLIcon onlyIf empty, we will attempt to determine the image size.Ignore allImageImage Alignment:Image Color:Image LinkImage Settings:Image Size:Image URL:Image title:InactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Invalid requestIt’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.Jetpack FAQJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.LabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLikesLikes and SharesLink URL (when the image is clicked):LinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading video...Loading…Loading...Location of the Ogg video file.Logged InLogoM j, Y @ G:iMain SidebarMake this connection available to all users of this blog?Mark this message as NOT spamMark this message as spamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMetadataMissed scheduleMobile AppsMobile ThemeModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationMore information on using Likes.More information on using Publicize.NameNewNewer Comments →NewestNext »Next » NoNo feedback foundNo plugins found.No suggestionsNo tags found.NoneNothing FoundOKOfficial buttonsOgg File URLOlder postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Only display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptionsOrangeOrderPage %sPages:PathPermalink to %sPersonal LinksPingback:PinkPinterestPlease note that your services have been restricted because your site is private.Please verify your birthday.PluginsPopularPost CommentPost by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProject updated.ProjectsProudly powered by %sPublicizePublicize allows you to connect your blog to popular social networking sites and automatically share new posts with your friends. You can make a connection for just yourself or for all users on your blog.Publicize:PublishPublishedPurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RatingRecent PostsRedRedditRegenerate AddressRegistered usersRemove ServiceReplyReport visibilityRestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave configurationScheduledSearchSearch CommentsSearch FeedbackSearch MediaSearch PluginsSearch Results for: %sSearch resultsSelect a user or pick "custom" and enter a custom email address.Select the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow FacesShow Personal LinksShow StreamShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow buttons onShow moreShow profile photos in the plugin.Show top posts overShow top search terms overShow:SilverSite NameSite StatsSitesSkip to primary contentSlideshowSmallSorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)StatsStylesheet saved.SubjectSubmitSubmit »SubscribeSupportTag nameTagsTake SurveyTake WordPress with you.Terms of ServiceTextText & Image LinksText LinkText onlyThe default content width for the %s theme is %d pixels.The old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There was a problem connecting to %s. Please disconnect and try again.These settings change emails sent from your blog to followers.This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow requires JavaScript.This video is intended for mature audiences.ThumbnailTimeTime:TitleTitle:To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.Top PostsTop Posts & PagesTop SearchesTrashTry connecting again.TumblrTwitterTwitter username:TypeTypesURLUncategorizedUnpublishedUnsubscribeUpload ImageUsernameValueVerified ServicesVideoPressView AllView Full Profile →View Mobile SiteView people's profiles when you mouse over their GravatarsViews over 48 hours. Click for more Site Stats.Visit Site Stats to see your stats.WP.me ShortlinksWarning! Multibyte support missing!WebsiteWhat’s a Hovercard?What's a Gravatar?WhiteWidget title:Width:WordPress.com StatsWordPress.com UsernameWrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Email AddressYour NameYour blog does not currently have any published posts.Your comment is awaiting moderation.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedandcanceldayedithttp://wordpress.org/loading…monthnounCommentshare toEmailshare toFacebookshare toLinkedInshare toPinterestshare toPress Thisshare toPrintshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?wordsPO-Revision-Date: 2015-06-27 06:00:15+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: dev %1$s %2$s прегледа%1$s у %2$s%1$s на %2$sЖелите ли да примате ажурирања о Jetpack-у е-поштом? %sТренутно Ñте пријављени на ажурирања е-поштом. %s%s раније%s није могао бити укључен зато што је изазвао кобну грешку. Можда поÑтоји Ñукоб Ñа другим поÑтављеним додатком?%s је неопходан%s захтева ваљану адреÑу е-поште« Претходно← Старији коментари— Изаберите —(нема наÑлова)(обавезно)% одговора1 одговорПрекинули Ñте везу Ñвог налога (%s) Ñа WordPress.com.Спремни Ñте за покретање. Ваш Jetpack има грешку. Ðешто Ñе догодило погрешно што није требало икада да Ñе деÑи. Изгледа да Ñте Ñрећковић: %sВаш Jetpack има грешку. Повезивање овог веб меÑта Ñа WordPress.com-ом није могуће. Ово обично значи да ваше веб меÑто није јавно доÑтупно (localhost).Ваш Jetpack већ је повезан. УкључиУкључите ÐкиÑметУкљученоДодајДодај новоДодај нову уÑлугуДодај или уклони ознакеДодајте дугмад дељења Ñвом блогу и дозволите Ñвојим поÑетиоцима да деле чланке Ñа Ñвојим пријатељима.Такође можете да одредите Ñвоје ÑопÑтвене прилагођене уÑлуге.Управљачка тракаÐапредно. Уколико је ова могућноÑÑ‚ штиклирана, морате ручно укључити ове датотеке у Ñвоју тему да би дељење веза радило.ÐлбумСвиСви пројектиСви чланциРезервни текÑÑ‚:Управник овог блога мора да поÑтави везу за Jetpack.ДеÑила Ñе грешка Ñа прављењем ваше нове уÑлуге дељења - молимо Ð²Ð°Ñ Ð´Ð° проверите да ли Ñте дали иÑправне детаље.Одговорите на кратку анкету да биÑмо знали како радимо и шта да додамо у будућноÑти.Извините, али ниједан резултат није могао бити пронађен за тражену архиву. Можда ће претраживање помоћи за проналажење Ñродног чланка.Да ли Ñигурно желите да прекинете Ñа обзнањивањем чланака на ову везу?УметникСтраници прилогаДоÑтупне уÑлугеДоÑтупни кратки кодови Ñу: %l.Боја позадинецрнаÐрхиве блогаURL блога:ПлаваСтил дугметаCSSРевизије CSS-аУређивач CSS ÑтиловаОдуÑтаниОдуÑтани од одговораÐатпиÑ:КатегоријаЦентрираноПромените да ли ваши поÑетиоци могу да Ñе пријављују на ваше чланке или коментаре или на оба.СтатиÑтике на дијаграму поВараш, а?Проверавање Ñтања ажурирања е-поштом…Изабери из најкоришћенијих ознакаПритиÑните за Објави ово!ПритиÑните да биÑте поÑлали ово пријатељу е-поштомПритиÑните за штампањеПритиÑните да биÑте поделили на Гуглу+ПритиÑните да биÑте поделили на ЛинкединуПритиÑните да биÑте поделили на ПинтереÑтуПритиÑните да биÑте поделили на РедитуПритиÑните да биÑте поделили на ТамблеруПритиÑните да биÑте поделили на ТвитеруПритиÑните да биÑте видели овај приказ Ñлајдова.ЗатвориШема бојаУÑкоро долази…КоментарКретање коментараКоментариПодеÑиПодеÑи %sПовежи Ñе Ñа WordPress.com-омПовежите Ñвој блог Ñа популарним веб меÑтима за друштвено умрежавање и аутоматÑки делите нове чланке Ñа Ñвојим пријатељима.ПовезанПовезано Ñа WordPress.comURL обраÑца за контактирање:Подаци за контактирањеÐаÑтавите Ñа читањем →Број прегледе Ñтраница региÑтрованих кориÑника који Ñу пријављени.Ðаправи дугме дељењаИÑеци ÑликуПрилагођеноПрилагођен CSSПрилагођена адреÑа е-поштеПрилагођена порука:Прилагођено поље је обриÑано.Прилагођено поље је ажурирано.ПрилагодиДневне архиве: %sтамнаДатумИÑкључиПодразумеваноОбришиОбриши трајноТрајно обриши ову ÑтавкуОпиÑОнемогући CSS и JSОнемогући чланке преко е-поштеПрекини везуПрекини везу Ñа WordPress.comОдбациЗанемари ову напомену и иÑкључи Jetpack.Занемари ову напомену.Прикажи текÑÑ‚ заглављаПрикажите ФејÑбукову кутијицу да биÑте повезали поÑетиоце Ñа Ñвојом Ñтраницом на ФејÑбукуПрикажите умањено издање Ñвох Граватаровог профилаПрикажите Ñлику у Ñвојој бочној трациПодразумевано прикажи видео запиÑе већег квалитетаПрикажи изборник дељења и дозволи гледаоцима да угнежђују или преузму овај видео запиÑÐе прелазите потоке! Морате оÑтати пријављени на Ñвој ВордпреÑов блог док овлашћујете Jetpack.Повуци и пуÑти доÑтупне уÑлуге овде.Повуците и пуÑтите уÑлуге дељења на одељак омогућених да би Ñе приказивале на вашем веб меÑту и пуÑтите их на одељак Ñакривених да биÑте их Ñакрили иза дугмета.Повуците и пуÑтите уÑлуге које желите да омогућите у кутију иÑпод.Е-поштаУредиУреди CSSУреди Ñтавку изборникаУреди пројекатУредите Ñвој профилЕ-поштаÐдреÑа е-поштеПровера е-поште није уÑпела, молимо Ð²Ð°Ñ Ð´Ð° покушате поновоИÑпразни непожељне коментареОмогући чланке преко е-поштеОмогућене уÑлугеУнеÑите URL иконице величине 16x16px коју желите да кориÑтите за ову уÑлугу.Детаљи грешке: %sГрешка у померању на отпад.Грешка у враћању Ñа отпада.Грешка приликом учитавања профилаГрешка!Грешка: молим унеÑите ваљану адреÑу е-поште.Грешка: молим попуните потребна поља (име, е-адреÑу)Пример:ФејÑбукФејÑбукова кутијицаФејÑбуков URL ÑтраницеИздвојеноИздвојене ÑликеДовод(и) за приказивање:ПодршкаПраћење блогаПраћење коментараЗа више информација:Облик:БеÑплатноСлободни облициПодПочетна Ñтраница, Ñтранице архиве и резултати претрагеПочетна ÑтраницаГалеријаGoogleГраватарове картице на прелаÑкуГраватарове картице на прелаÑкузеленаИмате реаговање на Jetpack?ВиÑинаВиÑина:СакриjПочетакКартице на прелаÑку побољшавају проÑте Граватарове Ñлике Ñа подацима о оÑоби: имену, биографији, Ñликама, подацима за контактирање и другим уÑлугама које кориÑти на вебу као што Ñу Твитер, ФејÑбук или Линкедин.Картице на прелаÑку побољшавају проÑте Граватарове Ñлике Ñа подацима о оÑоби: имену, биографији, Ñликама, подацима за контактирање и другим уÑлугама.Картице на прелаÑку нуде одличан начин за приказивање вашег приÑуÑтва на интернету и помажу људима да пронађу ваш ÑопÑтвени блог.IP адреÑа:ИконицаИконица + текÑÑ‚URL иконицеСамо иконицаУколико је празно, ми ћемо покушати да одредимо величину Ñлике.Занемари ÑвеСликаПоравнање Ñлике:Боја Ñлике:Веза Ñа ÑликеПодешавања Ñлике:Величина Ñлике:URL Ñлике:ÐаÑлов Ñлике:ÐеактиванУметни видео запиÑУмеÑто да куцате или множите-лепите дугачке URL-ове, Ñада можете добити кратку и проÑту везу за Ñвоје чланке и Ñтране. Ово кориÑти веома мали wp.me домен и даје вам јединÑтвени URL који можете да кориÑтите и који ће бити безбедан и поуздан.ÐеиÑправан захтевСавршен је за коришћење на Твитеру, ФејÑбуку и у порукама преноÑивих телефона где Ñе Ñваки знак рачуна.Jetpack-ова ЧППJetpack-ова подешавања пријаваJetpack-ова подршкаJetpack од WordPress.comJetpack Ñадржи најновије издање додатка %l.Jetpack Ñадржи најновије издање додатака %l.Jetpack Ñадржи најновије издање додатака %l.Jetpack није могао да контактира WordPress.com: %s. Ово обично значи да је нешто погрешно подешено на вашем домаћину.Jetpack захтева издање ВордпреÑа %s или каÑније.Jetpack унапређује ваше ВордпреÑово веб меÑто коме Ñте Ñами домаћини Ñа Ñјајном моћи облака од WordPress.com.ÐатпиÑЈезикВеликаПоÑледња изменаСазнај вишеСазнај вишеОÑтавите одговорОÑтавите одговор на %sОÑтавите одговорЛевоÑветлаСвиђа ми ÑеСвиђањаСвиђања и дељењаURL везе (када је притиÑнуто на Ñлику):ЛинкединВезе ка уÑлугама које кориÑтите на вебу.Везе ка RSS доводима вашег блогаВезе ка вашим веб меÑтима, блоговима или било којим другим веб меÑтима која помажу у опиÑивању ко Ñте ви.Преглед уживоУчитавање видео запиÑа ...Учитавање…Учитавање...МеÑто Ogg датотеке видео запиÑа.пријављениЛогоj. F Y. у H:iГлавна бочна тракаÐаправи ову везу доÑтупном Ñвим кориÑницима овог блога?Врати ови поруку из непожељнихОзначи ову поруку као непожељнуСадржајДатотеци ÑадржајаСредња величинаИзборникСтавка изборникаПорукаПорука је поÑлатаПорукеМетаподациПромашено заказивањеÐпликације за преноÑиве уређајеТема за преноÑиве уређајеМодул није могао да буде укључен зато што је изазвао кобну грешку. Можда поÑтоји Ñукоб Ñа другим додатком који је поÑтављен?МеÑечне архиве: %sМеÑечне архивеВишеВише податакаВише података о коришћењу Свиђања.Више података о коришћењу Обзнањивања.ИмеÐовоÐовији коментари →ÐајновијеСледеће »Ð¡Ð»ÐµÐ´ÐµÑ›Ðµ »ÐеÐема пронађене подршкеÐема пронађених додатака.Ðема препорукаÐема пронађених ознака.ÐемаÐишта није пронађеноУ редуЗванична дугмадURL Ogg датотекеСтарији чланциÐа овој Ñтраници, можете погледати модуле који Ñу доÑтупни у Jetpack-у, Ñазнати више о њима и активирати их или деактивирати по потреби.Прикажи Ñамо видео запиÑе у Ñлободни ÑофтверÑким облицимаcyrilliconОтвори везу у новом прозору/језичкуОтвара Ñе у новом прозору/језичкуМогућноÑтинаранџаÑтаПоредакСтрана %sСтране:ПутањаСтална веза ка %sЛичне везеПовратни пинг:розаПинтереÑтМолимо Ð²Ð°Ñ Ð´Ð° водите рачуна да Ñу ваше уÑлуге ограничене зато што је ваше веб меÑто приватно.Молимо Ð²Ð°Ñ Ð´Ð° потврдите Ñвој рођендан.ДодациПопуларниПредај коментарЧланак преко е-поштеКретање чланакаЧланак није поÑлат - проверите Ñвоје адреÑе е-поште!Објављено од ÑтранеОбјављено од Ñтране %sОбјављено у %sЧланциЧланци и коментариСтраница чланакаОбјави овоПрегледПреглед: промене морају бити Ñачуване или ће бити изгубљенеПримарни изборникШтампањеПриватноÑтПолитика приватноÑтиПројекта је ажуриран.ПројекатСа поноÑом покреће %sОбјављивањеОбзнањивање вам омогућава да повежете Ñвој блог Ñа популатним веб меÑтима за друштвено умрежавање и да аутоматÑки делите нове чланке Ñа Ñвојим пријатељима. Можете направити везу Ñамо за Ñебе Ñаме или за Ñве кориÑнике на вашем блогу.Обзнана:ОбјавиОбјављеноКуповинаљубичаÑтаСтави дијаграм на управљачку траку који показује прегледе за 48 Ñати.Ставите Ñвога миша преко Ñвог Граватара да биÑте проверили Ñвој профил.ОценaСкорашњи чланцицрвенаРедитПоново направи адреÑуРегиÑтровани кориÑнициУклони уÑлугуОдговорВидљивоÑÑ‚ извештајаПовратиВрати ову Ñтавку Ñа отпадаÐазад на пошиљаоца. УпÑ! Изгледа да Ñте добили погрешан Jetpack у е-пошти; иÑкључите а затим поново укључите додатак Jetpack да биÑте добили нов.ДеÑноСачувајСачувај изменеСачувај поÑтавкуЗаказаноПретрагаПретражи коментареПретражи подршкуПретражи ÑадржајПретражи додаткеРезултати претраживања за: %sРезултати претраживањаИзаберите кориÑника или изаберите "прилагођеног" и унеÑите адреÑу е-поште прилагођеног.Одаберите улоге које ће моћи да виде извештаје ÑтатиÑтике.Семантичка платформа за лично издаваштвоПошаљи е-поштуПошаљи на адреÑу е-поштеПоÑлато од Ñтране потврђеног %s кориÑника.ПоÑлато од Ñтране непотврђеног кориÑника вашег меÑта.Одвојите више ознака запетамаИме уÑлугеУÑлуге повучене овде ће Ñе појављивати појединачно.УÑлуге повучене овде ће бити Ñакривене иза дугмета дељења.ПодешавањаПодешавања Ñу ÑачуванаДељењеПодели на ФејÑбукуПодели ово:Поделите Ñвоје чланке на Твитеру, ФејÑбуку и другим уÑлугама. Можете да подеÑите да Ñе уÑлуге појављују као иконице, текÑÑ‚ или оба. Ðеке уÑлуге имају додатне могућноÑти за приказивање паметне дугмади (као што је Твитер), која ће приказивати број дељења чланка.ДељенаПодељени чланакДељењеДугмад дељењаПодешавања дељењаURL дељењаДељење је иÑкључено. Додајте уÑлуге изнад да биÑте омогућили.ÐÐ°Ñ‚Ð¿Ð¸Ñ Ð´ÐµÑ™ÐµÑšÐ°ÐšÑ€Ð°Ñ‚Ð°Ðº кодКратки кодови за угнежђивањаКратки кодови вам дозвољавају да једноÑтавно и безбедно угнездите Ñадржај на Ñвом веб меÑту Ñа других меÑта. Са једним проÑтим кодом, можете рећи ВордпреÑу да угнезди Јутјуб, Фликр и други Ñадржај.ПрикажиПрикажи везе налогаПрикажи лицаПрикажи личне везеПрикажи токПрикажи могућноÑÑ‚ 'прати блог'' у обраÑцу за коментареПрикажи могућноÑÑ‚ 'прати коментаре' у обраÑцу за коментареПрикажи дугмад наПрикажи вишеПрикажи фотографије профила у додатку.Покажи број чланака прекоПрикажи најкоришћеније упите на претрази прекоПрикажи:ÑиваИме веб меÑтаСтатиÑтике веб меÑтаВеб меÑтаСкочи на примарни ÑадржајПриказ ÑлајдоваМалаЖао нам је, нема ичега за извештавање.Жао нам је, ваш блог не може да дели чланке преко е-поште.Уреди по:Ðепожељан коментарÐепожељне (%s)Ðепожељне (%s)Ðепожељне (%s)СтатиÑтикеСтил Ñачувам.ПодређеноПошаљиПошаљи »ÐŸÑ€Ð¸Ñ˜Ð°Ð²Ð°ÐŸÐ¾Ð´Ñ€ÑˆÐºÐ°Ðазив ознакеОзнакеУзми анкетуПонеÑите Ð’Ð¾Ñ€Ð´Ð¿Ñ€ÐµÑ Ñа Ñобом.УÑлови коришћењаТекÑтТекÑтуалне и везе Ñа ÑликаТекÑтуална везаСамо текÑтПодразумевана ширина теме %s је %d пикÑела.Старо издање је иÑкључено и може бити уклоњено Ñа вашег веб меÑта.Стара издања Ñу иÑкључена и могу бити уклоњена Ñа вашег веб меÑта.Стара издања Ñу иÑкључена и могу бити уклоњена Ñа вашег веб меÑта.Тема: %1$s.ПоÑтоји много додатака и уÑлуга које дају ÑтатиÑтике али подаци могу бити превелики. WordPress.com ÑтатиÑтике праве најпопуларније мере једноÑтавним за разумевање кроз проÑто и атрактивно Ñучеље.ПоÑтојао је проблем приликом повезивања на %s. Молимо Ð²Ð°Ñ Ð´Ð° прекинете везу и покушате поново.Ова подешавања мењају е-пошту поÑлату Ñа вашег блога пратиоцима.Ова галерија Ñадржи %2$s фотографију.Ова галерија Ñадржи %2$s фотографије.Ова галерија Ñадржи %2$s фотографија.Овај додатак ће радити без тога али multibyte подршка Ñе кориÑти ако је доÑтупна. Можда ћете видети мање проблеме Ñа Твитером и другим уÑлугама за дељење.Овај чланак је подељен!Овај чланак је заштићен лозинком.Овај чланак је заштићен лозинком. УнеÑите лозинку да биÑте видели коментаре.Овај приказ Ñлајдова захтева јаваÑкрипт.Овај видео Ð·Ð°Ð¿Ð¸Ñ Ñ˜Ðµ намењен Ñамо за одраÑлу публику.Умањена ÑликаВремеВреме:ÐаÑловÐаÑлов:Да биÑте видели картице на прелаÑку, погледајте било који чланак на вашем блогу који има коментаре. Уколико коментатор има картицу на прелаÑку повезану Ñа Ñвојим граватаром, пређите мишем преко његове Ñлике и картица ће Ñе појавити. Да биÑте иÑкључили картице на прелаÑку, притиÑните на дугме ИÑкључи иÑпод.Ðајпопуларнији чланциÐајпопуларнији чланци и ÑтранеÐајпопуларније претрагеОтпадПокушајте повезивање каÑније.TumblrТвитерКориÑничко име на Твитеру:Ð’Ñ€ÑтаВрÑтеURLÐекатегоризованоÐеобјављеноОдјава пријавеОтпреми ÑликуКориÑничко имеВредноÑтПотврђене уÑлугеVideoPressВиди ÑвеВиди цео профил →Види веб меÑто за преноÑиве уређајеВидите профиле људи када пређете мишем преко њихових ГраватараПрегледи током 48 Ñати. ПритиÑните за више ÑтатиÑтика веб меÑта.ПоÑетите СтатиÑтике веб меÑта да биÑте видели Ñвоје ÑтатиÑтике.WP.me кратке везеУпозорење! Multibyte подршка недоÑтаје!Веб меÑтоШта је картица на прелаÑку?Шта је Граватар?белаÐаÑлов виџета:Ширина:WordPress.com ÑтатиÑтикеWordPress.com кориÑничко имеПогрешна величина. Хм… изгледа да Ñе ваш Jetpack не уклапа. Да ли Ñте изгубили на тежини? ПритиÑните поново на „Повежи Ñе Ñа WordPress.com-ом“ да биÑте добили уÑклађен Jetpack.Y/m/dY/m/d H:i:sГодишње архиве: %sДаÐије вам дозвољено да управљате овом Ñтавком.Ðије вам дозвољено да померите ову Ñтавку ван отпада.Ðије вам дозвољено да померите ову Ñтавку на отпад.Можете видети контролну таблу Ñвојих ÑтатиÑтика овде.Можете укључити или иÑкључити појединачне Jetpack-ове модуле тако да одговарају вашим потребама.Можете додати Ñледеће променљиве Ñвом URL уÑлуге дељења:Можете направити везу Ñамо за Ñебе Ñаме или за Ñве кориÑнике на вашем блогу. Дељене везе Ñу означене текÑтом (Дељена).Ðемате довољна права да приÑтупите овој Ñтрани.Пријавили Ñте Ñе да примате ажурирања е-поштом.Поделили Ñте овај чланак Ñа %sМорате да овлаÑтите Jetpack везу између Ñвог веб меÑта и WordPress.com-а да биÑте омогућили одличне оÑобине.Морате да региÑтрујете Ñвој Jetpack пре повезивања.Више нећете примати ажурирања е-поштом о Jetpack-у.Ваша адреÑа е-поштеВаше имеВаш блог тренутно нема објављене чланке.Ваш коментар чека преглед.Ваше веб меÑто мора бити јавно доÑтупно да биÑте кориÑтили Jetpack: %sчланак или Ñтрана је први пут објављеначланак или Ñтрана је ажуриранаиОдуÑтаниданУредиhttp://sr.wordpress.org/Учитавање…меÑецКоментарЕ-поштаФејÑбукЛинкединПинтереÑтОбјави овоШтампањеТамблерТвитерпретходни данпретходни меÑецпретходно тромеÑечјепретходна Ñедмицапретходна годинаÑедмицаwordsplugins/jetpack/languages/jetpack-bg_BG.mo0000755000312500031250000005124412651056012021147 0ustar eacbforgeacbforgÞ•+t ‘Ì  +H2{’&«Òí. E P[du|€ˆ›¡ ¥¯¶ÆÙê ð þ  !*1Dciq„  —5¤ Úåì "5: ?JRYl ‰•©°µ¾Í Ó áì%*,5W8ÆÏàðù  4?GMTƒ\àå ê6ö -8>O X+e/‘3Áõû  # 1 E S X %^ „ ‘ ¡ ¬ Ì Ö á î û ! !! !"!2!8! @!M!V!f!|!’!¤!µ!Ò!é!û!"#"4"9">" T" a"o"r"„"“"¢" §")µ" ß"3é"F#0d#)•#3¿#ó#Fö#=$Z$x$€$‡$$•$œ$¡$ ±$»$À$ß$>ü$;%M%a%i% q%~% Ž% ™% ¦%³%¹%Ê% Ú% å%ð%3ø% ,&9&?&G&]& z&„& Œ&–& &§& ®&»& ¿& Í&Û&á&ÿ&6'T' \'}'ƒ' ˆ' •'Ÿ'¦'¶' È'Õ'ä'%û'!(;(D(I(.O(~(…(‹(”(™(Ÿ(§( ®(¼( Ñ(Û(ã(ì(ñ())!)OA)‘)+˜)'Ä)&ì) **"*(*/*5*<*A*G* K* Y* e*:r*H­*Hö*?+H+N+W+_+Je+ °+ ¾+Ê+Ñ+ä+ ê+ø+ ,7,3H,%|,6¢,;Ù,-65-$l-‘-«-²-¶-»-Ñ-ð-. .Q. e.r. ..&”.ì». ¨/µ/ Ä/rÒ/!E0%g0.0)¼0%æ0 1)%1O1j1„1Ÿ1!²1Ô1ã1ô1@2 Q2 \2i2ƒ2$˜2½2Ú2 ñ2 ü2 33 &3 13<3 O3\3Ix3Â3Õ3,æ34&4942K42~4±4@Ä4<5B5U5 p5{5„5™5·5#Ê5#î563#6 W6b6y6<™6 Ö6á6"ó697;P7 Œ79š7eÔ7:8K8#[8.8®8(Ê8!ó8'9=9]9 l9y9Š9Ôœ9q: ‚::ž:!,;N;/e;•; ¨;1É;;û;A7< y<„< <š<º<Ö<#ô<=6= ?=[L=)¨=Ò=å=*û= &>3> F>,P>}>Œ> •>¢>«>*È> ó>?,?@?>T?“?§?À? Ï?Ú?õ? @ @ *@K@e@l@'s@)›@)Å@ï@.ô@#A)CAmAvAP–AçA üABB B&B ;B FBPBHSBœB¯BÀBÑBåB÷B)þB (C 2C4?C8tCl­C1D5LD‚D—DªD.ÁDðD E+EHE*]E(ˆE(±EÚEîEpýEnF„F›F®F&ÅFìFGG -G:G KG%XG~G!G¯GÏGÞGàGâGäG0H 2H =H*HHsH†H(•H"¾HáH(ðH/I?II;‰IÅIØIëIÿIJJ(JAJJJ_J hJuJ.J¾JÔJçJK$K 4K#?K.cKo’KL9 LUELI›LåL MM!M 3M>MEM LM YMdM~M$™M¾MÏMàM!óMN &N!3NUN^N'aN‰N œN)ªNÔN ÚN æNO` OXmO8ÆOdÿOIdP3®P[âP:>Q3yQ ­Q¸Q¿QÖQïQ÷Q RR 'R2RLR!jRŒR›R9iuð$ ž+±»«’öª™|ч˜¾¼fÒœ½ ÎLDŠ>Ÿ¬Uûké&ÌJ\<µ`×#‹)2ÿIm¯}7Õ%+”‰§Èñ´aŒ›£ ?T Ö*Ú-Zóô4®úâî¸"b!ÑèB¦ /hï5À—"¹¥¿FÏÐ!ƒÇ†àtßd^%ýg=€cV~n8x³lËåçæAÛ¤w„(ë­:¡Á)3jÅ÷ 6Y;ÝRØQõÉ@¶·1êys,NºãÊW…OòíEe– “0'H °¨ì#rš['PqÜpäz*$Cø© ŽÍoSKáGÂù¢{vXüÙÆˆÄÞ(&  ]•Ó_‚Ô þM ².%1$s at %2$s%1$s on %2$s%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is not a valid command.%s is not a valid module.« Previous← Older Comments— Select —(no title)(required)ActivateActivate AkismetActiveAddAdd NewAdd or remove tagsAlbumAllAll postsArtistAttachment PageAvailable Modules:Background colorBlackBlog ArchivesBlog URL:BlueCancelCancel replyCategoryCenterCheatin’ uh?Choose from the most used tagsCloseCommentComment navigationCommentsConfigureContact InfoContinue reading →Crop ImageCustomCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisplay Header TextE-mailEditEdit CSSEdit Menu ItemEmailEmail AddressEmpty SpamError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example: The user is looking at a page, not a post.PageFeaturedFeatured ContentFeatured ImagesFeedbackFollow CommentsFollow me on TwitterFor more information:Front pageGalleryGreenHeightHeight:Hi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHideHomeIP Address:If empty, we will attempt to determine the image size.Ignore allImageImage Alignment:InactiveInsert VideoJetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is not currently connected to WordPress.comLabelLanguageLargeLast ModifiedLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLink URL (when the image is clicked):Live PreviewLoading…Loading...Location of the Ogg video file.Logged InLogged OutM j, Y @ G:iMain SidebarMediaMedia FileMediumMenuMenu ItemMenu ManagementMenusMessageMessage SentMetadataMissed scheduleModule TagAppearanceModule TagDevelopersModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSocialModule TagWritingMonthly Archives: %sMonthly archivesMoreNameNewer Comments →Next »Next » NoNo plugins found.No suggestionsNo tags found.NoneNothing FoundNotify me of follow-up comments by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyOKOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:PathPermalink to %sPingback:PinkPlease specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Plugin activated.Plugin deactivated.PluginsPopularPost CommentPost navigationPosted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyProudly powered by %sProudly powered by WordPressPublicizePublishPublishedPurpleRSS LinksRatingRecent PostsRedRelated PostsRelated postsReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch PluginsSearch Results for: %sSemantic Personal Publishing PlatformSeparate tags with commasSettingsShowShow:Shown between widget visibility conditions.orSilverSitesSort by:SpamStatsSubjectSubmitSubmit »Submitting Comment%sSubscribeSupportTag nameTagsTerms of ServiceTextThe Jetpack Version is %sThe WordPress.com blog_id is %dThe primary connection is owned by %s's WordPress.com account.ThemesThere was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThumbnailTimeTitleTitle:TrashTumblrTypeTypesURLUncategorizedUnpublishedUpload ImageUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueView AllWebsiteWhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:Write a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are required to specify a plugin.You cannot disconnect, without having first connected.You do not have sufficient permissions to access this page.You must specify a valid actionYour blog does not currently have any published posts.Your comment is awaiting moderation.[%s] Joining confirmationcanceldayedithttp://wordpress.org/in {category/tag name}In "%s"loading…monthnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:the past daythe past monththe past yearweekword count: words or characters?wordsPO-Revision-Date: 2015-08-21 12:56:32+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s в %2$s%1$s по %2$sпреди %s%s не може да Ñе изключи. Сигурни ли Ñте, че в момента има връзка?%s беше активирана.%s беше деактивирана.%s беше развързан уÑпешно.%s не е валидна команда.%s не е валиден модул.« Предишни← По-Ñтари коментари— Избор —(без заглавие)(задължително)ВключванеÐктивиране на AkismetÐктивенДобавÑнеÐов потребителДобавÑне или премахване на етикетиÐлбумВÑичкиВÑички ÑтатииИзпълнителСтраницата за файлаÐалични модули:ЦвÑÑ‚ на фонаЧернаÐрхивиURL на блогаСиниОтказОтказКатегориÑЦентърШмекеруваме, а?Избор от най-чеÑто използваните етикетиЗатварÑнеКоментарÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð² коментаритеКоментариÐаÑтройкиЗа връзкаИма още →ИзрÑзване на изображениетоСобÑтвеноПотребителÑките полета Ñа изтрити.ПотребителÑкото поле е обновено.ÐаÑтройкиÐрхив по дни: %sТъмнаДатаИзключванеПо подразбиранеИзтриванеИзтриване завинагиИзтриване завинагиОпиÑаниеПоказване на заглавен текÑтИмейлРедактиранеРедактиране на CSSРедактиране на елемент от менютоИмейлE-mail адреÑИзтриване на ÑпамаГрешка при меÑтенето в Кошчето.Грешка при връщането от Кошчето.Грешка!Грешка: Ð¼Ð¾Ð»Ñ Ð²ÑŠÐ²ÐµÐ´ÐµÑ‚Ðµ e-mail адреÑГрешка: Ð¼Ð¾Ð»Ñ Ð¿Ð¾Ð¿ÑŠÐ»Ð½ÐµÑ‚Ðµ задължителните полета (име, e-mail).СтраницаÐа фокуÑИзбрано ÑъдържаниеКартинки за публикациитеОбратна връзкаСледване на коментариСледвай ме на Twitter За повече информациÑ:Ðачална ÑтраницаГалериÑЗеленаВиÑочинаВиÑочина:Привет, Имате покана да Ñе приÑъедините към '%1$s' в %2$s като %3$s. МолÑ, поÑледвайте връзката, за да приемете поканата: %4$sСкриванеÐачалоIP адреÑ:Ðко оÑтавите полето празно, ще Ñе опитаме да познаем размера на изображенито.Игнориране вÑÐ¸Ñ‡ÐºÐ¸Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐŸÐ¾Ð·Ð¸Ñ†Ð¸Ñ Ð½Ð° изображението:ÐеактивенВмъкване на видеоJetpack беше отвързан уÑпешно.Ð’ момента JetPack e Ñвързан Ñ WordPress.comÐ’ момента Jetpack не е Ñвързан Ñ WordPress.comТекÑтЕзикГолÑмаПоÑледна промÑнаÐаучете повечеВашиÑÑ‚ коментарВашиÑÑ‚ отговор на %sВашиÑÑ‚ коментарЛÑвоСветлаВръзка (когато нÑкой натиÑне върху изображението)Предварителен прегледЗарежданеЗареждане...ÐÐ´Ñ€ÐµÑ Ð½Ð° Ogg видео файла.влезлиРазлогнатd.m.Y G:iОÑновна Ñтранична лентаФайловеФайлСреденМенюЕлемент на менюУправление на менютатаМенютаСъобщениеСъобщението е изпратеноМета данниПропуÑнато планирано публикуванеВъншен видРазработчициМобилнаДругаСнимки и видеоПрепоръчаниСоциалнаПиÑанеÐрхив по меÑеци: %sМеÑечен архивОщеИмеПо-нови коментари →Следваща Ñтраница »Ð¡Ð»ÐµÐ´Ð²Ð°Ñ‰Ð° Ñтраница »ÐеÐÑма намерени разширениÑÐÑма предложениÑÐÑма намерени етикети.ÐÑмаÐищо не е откритоИзвеÑÑ‚Ñване за поÑледващи коментари по e-mail.ПотребителÐвторРолÑДатаЕтикетТакÑономиÑДобреno-subsetonОтварÑне на връзката в нов прозорец/табÐаÑтройкиОранжеваПодредбаСтраница %sСтраници:ПътПоÑтоÑнна връзка към %sPingback:Ð Ð¾Ð·Ð¾Ð²Ð°ÐœÐ¾Ð»Ñ Ð¸Ð·Ð±ÐµÑ€ÐµÑ‚Ðµ валиден модул.Отбележете валиден потребителОтбележете дали желаете да развържете блог или потребител.Разширението е активирано.Разширението е деактивирано.РазширениÑПопулÑрниПубликуванеÐÐ°Ð²Ð¸Ð³Ð°Ñ†Ð¸Ñ Ð² публикациитеПубликувано отПубликувано от %sПубликувано в %sПубликацииПубликации и коментариПубликации и ÑтранициСтраница Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ÐатиÑни меПрегледПреглед: промените трÑбва да Ñе запазÑÑ‚ или ще бъдат изгубениГлавно менюОтпечатванеСигурноÑтСъздаден Ñ %sГордо движен от WordPressРазглаÑÑванеПубликуванеПубличнаЛилаваRSS връзкиОценкаПоÑледни публикацииЧервенаСходни публикацииСвързани поÑтовеОтговор ВъзÑтановÑванеВъзÑтановÑване от кошчетоДÑÑноЗапиÑЗапазване на променитеПланиранаТърÑенеТърÑене в коментаритеТърÑене във Ð’ÑичкоТърÑенеТърÑене на разширениÑРезултати от търÑене за: %sСемантична ÑиÑтема за публикуванеРазделете етикетите ÑÑŠÑ Ð·Ð°Ð¿ÐµÑ‚Ð°Ð¸ÐаÑтройкиПоказванеПоказване:илиСребриÑтаСайтовеСортиране по:СпамСтатиÑтикаТемаÐапредИзпращане »ÐŸÑƒÐ±Ð»Ð¸ÐºÑƒÐ²Ð°Ð½Ðµ на коментар%sÐбонирай ÑеПоддръжкаИме на етикетЕтикетиУÑÐ»Ð¾Ð²Ð¸Ñ Ð·Ð° ползванеТекÑтВерÑиÑта на Jetpack е %sБлогът в WordPress.com е Ñ blog_id %dОÑновната връзка е направена Ñ WordPress.com профила на.%s ТемиСтана грешка при деактивациÑтаСтана грешка при обновÑването на разширениетоСтана грешка при обновÑването на тематаУмалена картинкаВремеЗаглавиеЗаглавие:КошчеTumblrТипВидовеÐдреÑБез категориÑÐепубликуванаКачване на картинка-- Избор --СкриванеПоказванеПотребителÑко имеСтойноÑтВÑичкиИнтернет ÑтраницаБÑлаеЗаглавие на джаджата:Ширина (px):Ширина:ДобавÑне на коментар…d.m.Yd.m.Y G:i:sÐрхив по години: %sДаÐÑмате право да премеÑтите този Ð·Ð°Ð¿Ð¸Ñ Ð¸Ð·Ð²ÑŠÐ½ Кошчето.ÐÑмате право да премеÑтите този Ð·Ð°Ð¿Ð¸Ñ Ð² Кошчето.ТрÑбва да поÑочите разширение.Ðе можете да развържете без преди това да Ñте Ñвързали.ÐÑмате право на доÑтъп до тази Ñтраница.ТрÑбва да поÑочите дейÑтвиеВ момента вашиÑÑ‚ блог нÑма публикувани материали.Коментарът ви очаква одобрение.[%s] Потвърждение за приеманеОтказденРедактиранеhttp://bg.wordpress.org/Ð’ "%s"ЗарежданемеÑецКоментар:%s ако:Ð¿Ñ€ÐµÐ´Ð¸ÑˆÐ½Ð¸Ñ Ð´ÐµÐ½Ð¸Ð·Ð¼Ð¸Ð½Ð°Ð»Ð¸Ñ Ð¼ÐµÑецизминалата годинаÑедмицадумиplugins/jetpack/languages/jetpack-cs_CZ.mo0000755000312500031250000013352012651056012021206 0ustar eacbforgeacbforgÞ•ü×Ü!8-9-?P- - -7ª- â-ð-H÷-@.W.&p.—.±.!À.Lâ.//E/]/n/„/ ›/ ¦/±/Â/pÑ/+B0yn0-è0H19_14™1Î1 ×1ä1ë1ï1÷1 221272 ;2 E2"R2-u2Y£2pý2n3.u3¤3´3Ç3Ø3 Þ3 ì3ö3 û3 44 &434<4C4R4%e4‹4 ª4µ4#Ê4î45575R5n5‡5 5¹5Ó5 Ù5æ5ù566+6 46 >6K6ES6 ™6¤6 ½6Ç6 â6$ï657 J7U7\7r7ˆ7 ž7¨7»7À7 Å7Ð7Ö7Þ7å7ø7 8 !8,8+48`8}8 ‘8n8 999!9 09=9 C9 Q92\99\¡9Oþ9VN:¥:¿:Þ:*å:5;8F;;ˆ;‘;¡;ª;À; Å;*Ð;û;< <<*<1<9<><ÞC< "=.= 3=V>=•=H›=dä==I>‡>$> µ>Â>OØ>(? A?M?d?u?…?+@/1@a@Íw@2EAxA~A‡A A ›A ¦A ±A¿A ÓAáAæAnìA[B{BŒB œB §B ±B ¾BËB ÑB ÜBéBðB õBÿBC C'C0C9CIC [CgCzCU€CbÖCA9DX{DkÔDd@EQ¥EO÷E`GFK¨FMôFYBGhœGMHgSHk»HU'IJ}ILÈIhJa~JFàJ'K@K WK!xK!šK¼KÜKøK L&L:LTLgLL•L«LÉLãLúLM5MUMgMxMŠM©MÁMÖMçMìM+ðM+NHN^N eN rN€NƒN•N¤N³NÄNÕN ÚN)èN O33OFgO0®O)ßO3 P=P^@PFŸPæPQ!Q)Q0Q6Q>QEQJQ ZQdQCiQ­QÌQ>éQ(R0R 8R ERSR/cR “R žR «R¸R ¾R ÉRÔR3ÜR SS#S+S:SISZSpS xS‚S‹S’S ™S¦SIªS ôS TT6T VTbT hTrTT6®TåT íTUžU¤U©U ÀUÍUÝU ðUúUVV #V0V?V%VV |V‡V+VÉV(ãV WW'W .W8W8=W<vWM³W2X 4X>XRX.XX‡XŽX YY Yž8Y×YöY5ZGZPZUZ[ZmZuZ |Z ŠZ”Z°Z¸ZÁZÐZ ÕZáZúZ[2[D[}I[(Ç[*ð[\(5\+^\)Š\A´\ö\8”]0Í]‘þ]^°^ Ï^)Ü^(_//_1__Y‘_\ë_H` c`I„`/Î`;þ`J:aN…a ÔaÞaíaýabbbb{bp—bbcQkc ½cÇc Ýcêcðcd dd d#d Bd NdZd bd:odHªdHód‹^‰‹@è‹K)ŒuŒh÷ŒS`E´\úEWŽCŽ\áŽ^>_aý]_;½BùL<‘n‰‘[ø‘=T’’’ ¨’µ’Ê’!ã’““1“:“L“ T“_“f“ “‹“š“®“ ¶“Á“Ù“î“”””+”D”_”w”‹”’”<˜”0Õ”• $•2•B•R•!U•w•"ˆ•"«•Εç• ð•0û•1,–^–d–i–o– x–‚–w…–ý–—(— C— N—Y— b— o—y—— ”— ž—+¨—%Ô—ú—?˜Y˜ a˜m˜€˜”˜<ª˜ç˜ ð˜ ú˜ ™™,™B™7J™ ‚™™ ”™ž™²™ÙÚ™ ù™ šš š %š0š KšUšmšˆš£š;²š îš ùš ››››››¬;›è›ð›ø›œ œ,œ ?œMœTœgœ~œŽœ œ'¾œ æœóœ9#> b mx —¦K¯RûSNž?¢žâž(òž Ÿ%Ÿ *Ÿœ6ŸÓŸãŸ蟢úŸ ² >Å  ¡¡ ¡ "¡ 0¡:¡C¡S¡l¡…¡¡ ¡ª¡³¡Ì¡ ë¡õ¡2¢H¢¨M¢ö¢£.£"C£4f£6›£,Ò£‘ÿ£8‘¤/ʤÛú¤"Ö¥ ù¥¦&*¦)Q¦'{¦)£¦ ͦ™Ø¦r§'’§fº§/!¨;Q¨A¨HϨ© ©4© I©S©X©]©d©—l©fªZkª‚ƪI«&a«ˆ« §«±«È« Ì«׫ Û«+諬#¬2¬A¬ R¬`¬g¬ p¬‘¬°¦¬rW­Ê­ Ò­à­ ø­"®(® ?®I®ÎZ®)°0°3° C°¦M°ô° ú°±±G±Je±;°±ì±5²8²AO²6‘²WȲ ³x4³5­³Œã³0p´)¡´ Ë´!Ø´~ú´Syµ͵ϵÕµ ݵ ëµöµúµ¶¶"¶7¶?¶ R¶ ]¶g¶~¶„¶¶”¶ ¶§¶ ®¶¹¶¶ɶжضî¶·· '· 5·C·J·h"ó&?PgÐ_– iÅ%æ~½X-Ñ!…3Пá"²'/àg¹GÀùž+‘Po5ònÙŽTñ‡¨é uIèm”•>·>Ñë ùRå #òÚ¾ÂVáÓ°D_Ôel¤ w»O)ÏêqX×m¦­ô’¿$Œø¬v×:í‡V%0W]<‚³*yï ª.ÚL›ûÇ›fM Ž7½{¡9ß šéAv (Ë¡Fx´uƒ#„Î(îç`úC’‘Ò-Jñ º³´¾ÊüÒ¿ãÆÄD|}¼úÖܬ}8*†öâsd2Ã< HHz^KëŠnµõŸNèwËìµä6A1;÷É@\zÄ™‰RÁB®`ºÙ߈U&) WLE@Zb“ÿ®G¤NîäiÌôe'.Û©Ö†+Û|6 9«C¸f§K ¯ð¸²ìb¦O—æƒÞd¯¥Jk[Êð­Øˆ4˜?1È‹Õpp5S£–ý»Yã3¨Øç[Þcí$¢óE]âñ,ž ·¢Ih/ø¼©£þŹÜq‹Ï,x 8ê~;Ó‰ªrc=ÍBõ¶^÷Ç{„È!œQœ y±¶rYa”—a …ZjÁ¥ÎÀþÝÍstàtFÆ4M2€Ý\€åýT:7§öü=ÕQkÉ «jšÌlû°ŒoUÿÔ0•˜S™‚ (Opens in new window)%1$s (%2$s) thinks you may be interested in the following post:%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature namesDeactivate %l%s (Required)%s ago%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is not a valid module.%s is required%s requires a valid email address%s wants to access your site’s data. Log in to authorize that access.%s was not activated.%s was not deactivated.« Previous← Older Comments— Select —(no title)(required)% Replies1 Reply« Back to Gallery« OlderJetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go. Your Jetpack is already connected. ActivateActivate nowActiveAddAdd NewAdd or remove tagsAdd-onAdd-on CSS (Recommended)AlbumAllAll postsAlphabeticalAn Automattic AirlineAn unknown error occurred during installationAnswer a short survey to let us know how we’re doing and what to add in the future.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAs in Premium. Premium module descriptionPaidAttachment PageAvailable Modules:Background colorBlackBlog ArchivesBlog URL:BlueCSS RevisionsCSS Stylesheet EditorCancelCancel replyCategoryCenterChart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterCloseColor SchemeComing soon…CommentComment cache problem?Comment navigationCommentsConfigureConfigure %sConnectConnect now to enable features like Stats, Likes, and Social Sharing.Connect toConnect to WordPress.comConnectedConnected to WordPress.comContact InfoContact the Jetpack Happiness Squad.Continue reading →Crop ImageCustomCustom CSS StylesheetCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisconnectDismissDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Display Header TextDisplay as:Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.E-mailEditEdit CSSEdit Menu ItemEdit ProjectEmailEmail AddressEmpty SpamEnable excerpts on front page and on archive pagesError Details: %sError Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %sError Details: Jetpack ID is empty. Do not publicly post this error message! %sError Details: Jetpack ID is not a scalar. Do not publicly post this error message! %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example: The user is looking at a page, not a post.PageExcerptsFeaturedFeatured ImagesFeedbackFor more information:FreeFront pageFull management mode is off for this site.GalleryGoogleGreenHave feedback on Jetpack?HeightHeight:HideHomeHowdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIgnore allIgnore the difference. This is just a staging site for the real site referenced above.ImageIn Development Mode, via site URL lacking a dot (e.g. http://localhost).In Development Mode, via the JETPACK_DEV_DEBUG constant being defined in wp-config.php or elsewhere.In Development Mode, via the jetpack_development_mode filter.InactiveInclude this CSS in the Mobile ThemeInsert VideoIs this site private?It's ready to bring awesome, WordPress.com cloud-powered features to your site.Jetpack Debugging CenterJetpack FAQJetpack Plugin VersionJetpack SettingsJetpack SupportJetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is installed!Jetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Join %s other subscriberJoin %s other subscribersLabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLimit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link account with WordPress.comLoading video...Loading…Loading...Logged InM j, Y @ G:iMain SidebarMediaMedia FileMedia Width:MediumMenuMenu ItemMenu item updated.MessageMessage SentMessagesMetadataMissed scheduleMobile App PromosMobile AppsMobile-compatible:Mode:Module DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NamePhotonModule NameRelated PostsModule NameSharingModule NameSite IconModule NameSite VerificationModule NameSubscriptionsModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule NameWordPress.com StatsModule TagMobileModule TagOtherModule TagSocialModule TagWordPress.com StatsModule not found: `%s`.Monthly Archives: %sMonthly archivesNameNewNew in Jetpack: Centralized Site ManagementNewer »Newer Comments →NewestNext »Next » NoNo plugins found.No suggestionsNo tags found.No themes found.No update neededNoneNothing FoundNotify me of follow-up comments by email.Notify me of new posts by email.Noun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyOKOnce you’ve made the connection you’ll activate all the delightful features below.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:PathPermalink to %sPingback:PinkPlay as in playback or view a movieJavaScript required to play %s.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.PluginsPopularPost CommentPost by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProject saved.Project updated.Proudly powered by %sPublishPublishedPurchasePurpleRatingRecent PostsRedRefresh connection with {social media service}Refresh connection with %sRelated PostsRelated postsRemove ServiceReplace theme's CSS (Advanced)ReplacementReplyRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave StylesheetSave configurationScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch PluginsSearch Results for: %sSemantic Personal Publishing PlatformSend EmailSend to Email AddressSent by an unverified visitor to your site.Separate tags with commasService: Account connected as%1$s: %2$sSettingsShare on FacebookSharedShortcodeShowShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow a promo for the WordPress mobile apps in the footer of the mobile theme.Show full posts on front page and on archive pagesShow moreShow top posts overShow:Shown between widget visibility conditions.orSilverSite Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site NameSitesSkip to primary contentSomeone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.Something has gotten mixed up!Something is being cranky!Sorry, no modules were found for the search term "%s"Sort by:SpamStatsStylesheet saved.SubjectSubmitSubmit »SubscribeSubscribe to Blog via EmailSupportTag nameTagged with %sTagsTake SurveyTake WordPress with you.TermsTerms of ServiceTest your site’s compatibility with Jetpack.TextThat used to be my URL for this site before I changed it. Update the WordPress.com Cloud's data to match my current settings.The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe WP.com user ID of the connected userThe WP.com user email of the connected userThe WP.com username of the connected userThe authorization process expired. Please go back and try again.The data listed above is not for my current site. Please disconnect, and then form a new connection to WordPress.com for this site using my current settings.The default content width for the %s theme is %d pixels.The number of sites of the connected WP.com userThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The plugin is already installedThe theme is already installedTheme: %1$s.There was an error installing your pluginThere was an error installing your themeThere was an error while activating the module.There was an error while deactivating the module.This HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?ThumbnailThumbnail GridTiled GalleriesTilesTimeTime:TitleTitle:To add a new icon to your site, head over to Settings → General → Site Icon, and upload an icon.To enable all of the Jetpack features you’ll need to link your account here to your WordPress.com account.To enable all of the Jetpack features, you’ll need to connect your website to WordPress.com.To use Jetpack please contact your WordPress administrator to connect it for you.Top PostsTop Posts & PagesTop SearchesTrashTrouble with Jetpack?TypeTypesURLUncategorizedUnlink user from WordPress.comUnpublishedUnsubscribeUpdatedUpload ImageUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUser linked to WordPress.comUsernameUsing the checkboxes next to each module, you can select multiple modules to toggle via the Bulk Actions menu at the top of the list.Using the tools on the right, you can search for specific modules, filter by module categories or which are active, or change the sorting order.ValueView AllView Mobile SiteView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView on InstagramView:WebsiteWelcome to Custom CSS! CSS (Cascading Style Sheets) is a kind of code that tells the browser how to render a web page. You may delete these comments and get started with your customizations. By default, your stylesheet will be loaded after the theme stylesheets, which means that your rules can take precedence and override the theme CSS rules. Just write here what you want to change, you don't need to copy all your theme's stylesheet content.WhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width:Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are required to specify a capability to check.You are required to specify a module.You are required to specify a plugin to activate.You are required to specify a plugin.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You must connect your Jetpack plugin to WordPress.com to use this feature.You must specify a valid actionYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You will no longer receive email updates about Jetpack.Your %1$s option is set up as %2$s, but your WordPress.com connection lists it as %3$s!Your Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour comment is awaiting moderation.Your site is configured to only permit SSL connections to Jetpack, but SSL connections don't seem to be functional!Your website needs to be publicly accessible to use Jetpack: %sandas sharing sourceEmailcancelclick hereconfiguredayedithttp://wordpress.org/in {category/tag name}In "%s"loading…monthnext-saturdayImage navigationnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:search everythingshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearwatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (OtevÅ™e se v novém oknÄ›)%1$s (%2$s) se domnívá, že by vás mohlo zajímat následující:%1$s v %2$s%1$s na %2$sDeaktivovat %l%s (povinné)pÅ™ed %s%s nemohl být odpojen. Jste si jisti, že je momentálnÄ› pÅ™ipojen?%s byl aktitován%s byldeaktivován.%s byl úspěšnÄ› odpojen.%s není validní modul.%s je povinné%s není platná emailová adresa%s chce pÅ™istupovat k datům vaší stránky. Po pÅ™ihlášení můžete spojení povolit.%s nebyl aktivován.%s nebyl deaktivován.« PÅ™edchozí← Starší komentáře— Vyberte —(bez názvu)(vyžadováno)% komentářů1 komentář« ZpÄ›t do galerie« StaršíJetpack byl aktivován! Každý web vaší sítÄ› musí být pÅ™ipojen samostatnÄ› administrátorem daného webu.Nastavení modulu byla uložena.ZruÅ¡ili jste propojení vaÅ¡e úÄtu (%s) s WordPress.comMáte dotankováno a můžete vyrazit.Váš Jetpakc je již propojený.AktivovatAktivovat!AktivníVytvoÅ™itVytvoÅ™it odkazPÅ™idat nebo odebrat Å¡títkyPÅ™ipojeníPÅ™ipojí CSS (DoporuÄeno)AlbumVÅ¡eVÅ¡echny příspÄ›vkyAbecedníLeteská spoleÄnost AutomatticBÄ›hem instalace se vyskytla neznámá chybaOdpovÄ›zte na nÄ›kolik málo otázek a dejte nám vÄ›dÄ›t, jak si stojíme a co pÅ™idat v budoucnu.Omlouváme se, ale pro vybraný archiv nebyl nalezen žádný příspÄ›vek. Možná se vám ale podaří najít nÄ›jaký související příspÄ›vek pomocí vyhledávání.AutorPlacenéStránku se zobrazením přílohyDostupné modulyBarva pozadíČernáArchivURL Blogu:ModráStarší verzeEditor CSSZruÅ¡itZruÅ¡it odpovÄ›Ä na komentářrubrikuCenterSeÅ™aÄ statistiky podleNepodvádíte?Zjišťuje se status odbÄ›ru novinek emailem…Vyberte si z nejpoužívanÄ›jších Å¡títkůKliknÄ›te zdeKliknÄ›te pro tisk!KliknÄ›te pro spuÅ¡tÄ›ní prezentace!Poslat emailemVytisknoutSdílet na Google+Sdílet na LinkedInSdílet na PinterestSdílet na PocketSdílet na RedditSdílet na TumblrSdílet na TwitteruZavřítBarevné schémaJiž brzy…komentářProblém s komentářovou cache?Navigace v komentáříchKomentářeNastaveníNastavit %sPÅ™ipojPÅ™ipojte se nyní a povolte funkce jako Statistiky, To se mi Líbí a Sdílení na Sociálních Sítích.PÅ™ipoj kPÅ™ipojit se k WordPress.comPÅ™ipojenPÅ™ipojeno k WordPress.comKontaktní informaceKontaktujte jednotku spokojenosti Jetpack.Celý příspÄ›vek →Oříznout obrázekUživatelský odkazVlastní CSSUživatelské pole bylo smazáno.Uživatelské pole bylo aktualizováno.PÅ™izpůsobitDenní archivy: %sTmaváDatumDeaktivovatLadÄ›níVýchozíSmazatSmazatNenávratnÄ› smazat tuto položkuPopisOdpojZavřítZruÅ¡it toto upozornÄ›ní a deaktivovat Jetpack.Skrýt toto upozornÄ›ní.Zobrazit text v záhlavíZobraz jako:NenaruÅ¡ujte plynnutí vÄ›cí! Musíte zůstat pÅ™ihlášeni k vaÅ¡emu blogu po dobu kdy nastavujete Jetpack.EmailUpravitUpravit CSSUpravit položku menuUpravit projektEmailová adresaEmailová adresaHromadnÄ› smazat spamZobrazovat výtažky na domovské stránce a archivechDetaily chyby: %sDetaily o chybÄ›: Jetpack ID zaÄíná Äíslicí. Toto chybové hlášení nezveÅ™ejňujte! %sDetaily o chybÄ›: Jetpack ID je prázné. Toto chybové hlášení nezveÅ™ejňujte! %sDetaily o chybÄ›: Jetpack ID není skalární. Toto chybové hlášení nezveÅ™ejňujte! %sBÄ›hem pÅ™esunování do koÅ¡e se objevila chyba.BÄ›hem obnovování z koÅ¡e se objevila chyba.Chyba!Chyba: Zadejte prosím správnou emailovou adresu.Chyba: Zadejte prosím požadované údaje (jméno, email).StránkaVýtažkyZvýraznÄ›noNáhledové obrázkyKontaktDalší informace:ZdarmaÚvodní stránkaÚplná správa této stránky je vypnuta.GalerieGoogleZelenáMáte nÄ›jaké pÅ™ipomínky k Jetpacku?VýškaVýška:SkrýtÚvodní stránkaAhoj. Nedávno jste zaÄali sledovat příspÄ›vky tohoto blogu. To znamená, že budete dostávat každý nový příspÄ›vek emailem. Pro aktivaci, kliknÄ›te na potvrdit. Pokud si myslíte, že se jedná o chybu, tak tuto zprávu ignorujte a my už vás nebudeme znovu obtěžovat.IP Adresa:IkonaPÅ™eskoÄit vÅ¡eIgnorovat rozdíly. Toto je pouze testovací verze stránky, na kterou je odkazováno výše.ObrázekVe výojářském módu, skrze URL adresu stránky bez koncovky s teÄkou (například http://localhost).Ve vývojářském módu, skrze konstantu JETPACK_DEV_DEBUG definovanou ve wp-config.php Äi jinde.Ve vývojářském módu skrze filter jetpack_development_mode.NeaktivníPoužít toto CSS i v mobilní Å¡ablonÄ›Vložit videoJe tento web soukromý?VÅ¡e je pÅ™ipraveno k použití vÅ¡ech úžasných funkcí cloudem pohénÄ›ného WordPress.com na vaÅ¡em webu.Centrum ladÄ›ní JetpackuÄŒasto kladené dotazyVerze JetpackuNastavení JetpackuJetpack podporaJetpack obsahuje nejnovjěší verzi %l starého pluginu.Jetpack obsahuje nejnovÄ›jší verzi %l starých pluginů.Jetpack obsahuje nejnovÄ›jší verzi %l starých pluginů.Jetpack byl úspěšnÄ› odpojen.Jetpack je momentálnÄ› pÅ™ipojen k WordPress.comJetpack je nainstalován!Jetpak nyní obsahuje také Jetpack Komentáře, které umožňují návÅ¡tÄ›vníkům vaÅ¡eho webu použít svých úÄtů na WordPress.com, Twitteru a Facebooku k vkládání komentářů. Aktivovat Jetpack Komentáře můžete na %sPÅ™ipojte se k %s dalším odbÄ›ratelůmPÅ™ipojte se k %s dalším odbÄ›ratelůmPÅ™ipojte se k %s dalším odbÄ›ratelůmTextJazykVelký obrázekNaposledy zmÄ›nÄ›noZjistit víceZjistit víceNapsat komentářNapsat komentář k %sNapsat komentářDolevaSvÄ›tláOmezit šířku na %1$s pixelů pro videa, obrázky o plné velikosti a další obsah. (Více informací.)Spojit úÄet s WordPress.comNáhrávám video...nahrává se…NaÄítání...pÅ™ihlášenj.n.Y, G:iHlavní postranní panelMédiaMediální souborŠířka mediálního obsahuStÅ™ední velikostMenuPoložka menuPoložka menu aktualizována.ZprávaVzkaz odeslánZprávyStrukturované informaceZmeÅ¡kaná publikacePropagace mobilních aplikacíMobilní aplikaceKompatibilní s mobilní verzí:Režim:Zrychlete svou stránku nahráváním obrázku z CDN sítÄ› WordPress.com.PÅ™idejte obrázky, Twitter stream, RSS odkazy vaší stránky a další, do boÄního panelu.PÅ™idejte do vaší Å¡ablony podporu nekoneÄného skrolování.UmožnÄ›te aplikacím bezpeÄnÄ› pÅ™istupovat k vaÅ¡emu obsahu pÅ™es cloud.UmožnÄ›te uživatelům pÅ™ihlásit si odbÄ›r vaÅ¡ich příspÄ›vků a komentářů, aby mohli dostávat upozornÄ›ní pÅ™es email.UmožnÄ›te návÅ¡tÄ›vníkům sdílet váš obsah na Facebooku, Twitteru a dalších, jedním kliknutím.UmožnÄ›te vaÅ¡im uživatelům pÅ™ihlášení pomocí jejich WordPress.com úÄtů.Zobrazte odkazy na související obsah pod příspÄ›vky a stránkami.Vložte obsah z YouTube, Vimeo, SlideShare a dalších, bez vkládání zbyteÄných kódů.Povolte zkrácené odkazy WP.me pro vÅ¡echny příspÄ›vky a stránky.Povolte vyskakovací vizitky pÅ™i najetí na Gravatar komentátora.Dejte návÅ¡tÄ›vníkům jednoduchý způsob, jak ukázat, že jsou za váš obsah vdÄ›Äní.Monitorujte své statistiky s Äistými, struÄnými reporty, bez zatížení vaÅ¡eho serveru.Publikujte příspÄ›vky pÅ™es email, použitím jakéhokoliv zařízení a emailového klienta.Dostávejte notifikace o akivitÄ› vaší stránky pÅ™es admin panel a vaÅ¡e mobilní zařízení.Dostávejte notifikace od Jetpacku kdykoliv bude vaÅ¡e stránka offline - a když se vrátí.Prohledejte celou databázi z jediného pole na NástÄ›nce.Sdílejte automaticky nové příspÄ›vky na sociálních sítích.UpÅ™esnÄ›te, které widgety se zobrazí na jakých stránkách vaÅ¡eho webu.Použijte v příspÄ›vcích a stránkách znaÄkovací jazyk LaTeX pro komplexní rovnice a další geekoviny.Ověřte svoji stránku nebo doménu s Google Nástroji pro webmastery, Pinterst a další.PiÅ¡te příspÄ›vky nebo stránky v Äisté syntaxi Markdown.Kontaktní formulářVlastní CSSVlastní typy obsahuRozšířená distribuceExtra widgety do boÄního paneluKartiÄky GravatarNekoneÄné skrolováníJSON APIMobilní Å¡ablonaMonitorNotifikacePhotonSouvisející příspÄ›vkySdíleníIkona stránkyOvěření stránkyOdbÄ›ryVideoPressWP.me zkrácené odkazyViditelnost widgetůWordPress.com StatistikyMobilníOstatníSociální sítÄ›WordPress.com StatistikaModul nebyl nalezen: "%s".MÄ›síÄní archivy: %sMÄ›síÄní archivyJménoNovýNovÄ› souÄástí Jetpacku: Centralizovaná Správa StránekNovÄ›jší »NovÄ›jší komentáře →NejnovÄ›jšíDalší »Další »NeNebyly nalezeny žádné pluginy.Žádné návrhyNebyly nalezeny žádné Å¡títky.Nebyly nalezeny žádné Å¡ablony.Aktualizace není nutnáŽádnéNenalezenoInformujte mÄ› o nových komentářích emailem.Informujte mÄ› o nových příspÄ›vcích emailem.AutorRoleDatumÅ títekTaxonomieOKHned jak propojíte svou stránku s WordPress.com budete moci aktivovat vÅ¡echny ty úžasné funkce zmínÄ›né níže.žádná podmnožinazapnoutOtevřít odkaz v novém oknÄ›/záložceNastaveníOranžováPoÅ™adí%s. stránkaStránky:CestaTrvalý odkaz pro %sPingback:RůžováJe zapotÅ™ebí JavaScript k pÅ™ehrátí %s.Prosím, specifikujte validní modul.Zadejte validního uživatele.Prosím, specifikujte, zda chcete odpojit blog nebo uživatele.PluginyPopulárníOdeslat komentářPÅ™ispívat EmailemNavigace příspÄ›vkuPÅ™ispÄ›vek nebyl odeslán - zkontrolujte e-mailovou adresu!ZaslánoZaslal %sKategorie: %sPříspÄ›vkyStránka příspÄ›vkůKliknout a publikovatNáhledNáhled: zmÄ›ny musí být uloženy nebo budou ztracenyHlavní menuTiskSoukromíObchodní podmínkyProjekt uložen.Projekt aktualizován.Používáme %s (v ÄeÅ¡tinÄ›)PublikovatPublikovánoZakoupitPurpurováHodnoceníNejnovÄ›jší příspÄ›vkyÄŒervenáObnovit propojení s %sSouvisející příspÄ›vkySouvisející příspÄ›vkyOdeber službuNahradí CSS Å¡ablony (PokroÄilé)NahrazeníOdpovÄ›dÄ›tPovinné? ObnovitObnovit tuto položku z koÅ¡eVrátit odesílateli. Ajajaj! Vypadá to, že se k vám emailem dostal Å¡patný Jetpack. Abyste získal(a) nový, je tÅ™eba jej deaktivovat a poté Jetpack aktivovat znovu.DopravaUložitUložit a koupit upgradeUložit zmÄ›nyUložit CSSUložit nastaveníNaplánovánoHledatHledat komentářevyhledávejte ve vÅ¡emVyhledat médiaHledat pluginyVýsledky vyhledávání pro: %sSémantický osobní redakÄní systémPoslat emailOdeslat na emailPosláno neověřeným návÅ¡tÄ›vníkem vaÅ¡ich stránek.Více Å¡títků oddÄ›lte Äárkami.%1$s: %2$sNastaveníSdílet na FacebookuSdílenýZdrojový kódZobrazitZobrazit položku 'sledovat blog' ve formuláři pro komentováníZobrazit položku 'sledovat komentáře' ve formuláři pro komentováníZobrazit propagaci mobilních aplikací pro WordPress v patiÄce mobilní Å¡ablony.Zobrazovat celé příspÄ›vky na domovské stránce a archivechUkázat dalšíZobrazit nejlepší příspÄ›vky nahoÅ™eZobrazit:neboStříbrnáIkona Stránky vám umožní vytvoÅ™it ikonu vaší stránky. Tato ikona je použita jako favicon, mobilní ikona a dlaždice na poÄítaÄích s Windows 8.Nézev stránkyWebyPÅ™ejít na obsahNÄ›kdo se vás může pokouÅ¡et podvést a získat přístup k vaší stránce. Nebo se také může jednat o chybu :). KaždopádnÄ›, zavÅ™ete prosím toto okno.NÄ›co se pomíchalo!NÄ›co je Å¡patnÄ›!Omlouváme se, pro výraz "%s" nebyly nalezeny žádné modulyŘadit podle:SpamStatistikyStyl uložen.PoužitíPotvrditPotvrdit »PÅ™ihlásit se k odbÄ›ruOdebírejte blog emailemPodporaNázev Å¡títkuÅ títky: %sÅ títkyZůÄastnit se průzkumuVezmÄ›te si WordPress s sebou.PodmínkyPodmínky používání službyOtestujte kompatibilitu vaší stránky s Jetpack.TextTo bývala má URL pro tuto stránku pÅ™ed tím, než jsem ji zmÄ›nil. Aktualizujte informaci v cloudu WordPress.com tak, aby odpovídala mému aktuálnímu nastavení.Modul byl již aktivován.Modul byl již deaktivován.Verze Jetpacku je %sID pÅ™ipojeného WP.com uživateleUživatelské jméno pÅ™ipojeného WP.com uživateleUživatelské jméno uživatele pÅ™ipojeného z WP.comSpojení vyprÅ¡elo. Zkuste to prosím znovu.Data zobrazená výše nepatří k mé aktuální stránce. ZruÅ¡te propojení a poté vytvoÅ™te nové využívající má aktuální nastavení.Výchozí šířka obsahu pro Å¡ablonu %s je %d pixelů.PoÄet stránek pÅ™ipojeného WP.com uživateleStará verze byla deaktivována a může být odstranÄ›na z vaÅ¡eho webu.Staré verze byly deaktivovány a mohou být odstranÄ›ny z vaÅ¡eho webu.Staré verze byly deaktivovány a mohou být odstranÄ›ny z vaÅ¡eho webu.Tento plugin je již nainstalovánÅ ablona je již nainstalována.Å ablona: %1$s.PÅ™i instalaci pluginu doÅ¡lo k chybÄ›BÄ›hem instalace Å¡ablony doÅ¡lo k chybÄ›BÄ›hem aktivace modulu doÅ¡lo k chybÄ›.BÄ›hem deaktivace modulu doÅ¡lo k chybÄ›.(povinné)Tato galerie obsahuje %2$s fotografii.Tato galerie obsahuje %2$s fotografie.Tato galerie obsahuje %2$s fotografií.Tento příspÄ›vek byl sdílen!Tento příspÄ›vek je chránÄ›n heslem.Tento příspÄ›vek je chránÄ›n heslem. Pokud chcete zobrazit jeho komentáře, zadejte prosím heslo.Uživatel nemá oprávnÄ›ní %s na tomto blogu.Uživatel není oprávnÄ›n spravovat pluginy v síti webů.Tato akce deaktivuje Jetpack. Opravdu chcete deaktivovat Jetpack?Tato akce deaktivuje vÅ¡echny moduly Jetpack. Opravdu se chcete odpojit?NáhledMřížka náhledůDlaždicové galerieDlaždiceÄŒasÄŒasNázevNázev:PÅ™idat ikonu do své stránky můžete skrze Nastavení → Obecná → Ikona Stránky, kde se nachází formulář pro upload.Pro povolení vÅ¡ech funkcí Jetpacku budete muset spojit svůj úÄet zde s úÄtem na WordPress.com.K aktivaci vÅ¡ech funkcí Jetpaku musíte nejdřív propojit svou stránku s WordPress.comAbyste mohl(a) používat Jetpack budete muset kontaktovat WordPress administrátora s žádností o to, aby jej s vámi propojil.Nejlepší příspÄ›vkyNejlepší příspÄ›vky & StránkyNejÄastÄ›ji hledané termínyOdstranitProblémy s Jetpackem?TypZvolte typURLNezaÅ™azenéZruÅ¡it spojení uživatele z WordPress.comNepublikovánoZruÅ¡it odbÄ›rAktualizovánoNahrát obrázek-- vyberte --SkrýtZobrazitUživatel spojen k WordPress.comUživatelské jménoPomocí zaÅ¡krtávacích políÄek u jednotlivých modulů můžete zvolit více modulů a aktivovat/deaktivovat je zároveň skrze menu hromadných akcí na zaÄátku výpisu.Hledat konkrétní modu lze pomocí nástrojů napravo. Lze filtrovat dle kategorií Äi zmÄ›nit poÅ™adí výpisu.HodnotaZobrazit vÅ¡eZobrazit mobilní verziZobrazit %s.Zobrazit vÅ¡echny výhody JetpackuZobrazit na InstagramuZobrazit:Webová stránkaVítejte v Kustomizovaném CSS! CSS (Cascading Style Sheets) je druh kódu, který urÄuje, jak má prohlížeÄ zobrazit webovou stránku. Můžete tento komentář smazat a zaÄít s vaÅ¡imi vlastními úpravami. Tento CSS soubor bude ve stránce použit až za CSS souborem Å¡ablony, takže pravidla použitá zde pÅ™epíší ta pravidla, která pocházejí ze Å¡ablony. UveÄte zde jen to, co chcete zmÄ›nit, nemusíte sem kopírovat celé CSS ze Å¡ablony.BílájeJméno Widgetu:Šířka:Å patná velikost. Hmm, vypadá to, že vám Jetpack moc nesedne. Nezhubl(a) jste? KliknÄ›te na "Propojit s WordPress.com" znovu a nechte si Jetpack upravit na míru.j.n.Yj.n.Y, G:iRoÄní archivy: %sAnoNemáte dostateÄné oprávnÄ›ní pro obnovení této položky z koÅ¡e.Nemáte dostateÄné oprávnÄ›ní pro pÅ™esunutí této položky do koÅ¡e.Musíte vybrat opravnÄ›ní, které má být zkontrolováno.Musíte vybrat modul.Musíte vybrat plugin, který má být nainstalován.Musíte zvolit plugin.Nemáte dostateÄné oprávnÄ›ní pro přístup na tuto stránku.Byl(a) jste pÅ™ihlášen(a) k odbÄ›ru novinek emailem.Abyste mohla být tato funkce povolena, musíte propojit svůj Jetpack s WordPress.com.Musíte zvolit akciAbyste mohli aktivovat úžasné funkce Jetpacku, musíte nejdřív povolit spojení mezi vaším webem a WordPress.com.Již nebudete dostávat aktuality o Jetpacku emailem.Option %1$s je nastavena jako %2$s, ale vaÅ¡e spojení s WordPress.com jej uvádí jako %3$s!Jetpack je již téměř pÅ™ipraven k použití!VaÅ¡e nastavení Jetpacku vypadá dobÅ™e!VaÅ¡e jménoKomentář Äeká na schválení.VaÅ¡e stránka je nastavena tak, aby povolovala pouze SSL spojení s Jetpackem, ale SSL pÅ™ipojení se nezdá býti funkÄní.Váš web musí být veÅ™ejnÄ› přístupný aby bylo možné Jetpack používat: %saEmailZruÅ¡itKliknÄ›te zdeNastavenídenUpravithttp://cs.wordpress.org/V "%s"nahrávání…mÄ›sícNavigace obrázkůKomentář%s pokud:vyhledávejte ve vÅ¡emEmailFacebookGoogleLinkedInPinterestPocketPublikovatTisknoutRedditTumblrTwitterv pÅ™edchozích dnechposlední mÄ›sícposlední Ätvrtletíposlední týdenposlední rokPÅ™ehrát: %stýdenslovaplugins/jetpack/languages/jetpack-cy.mo0000755000312500031250000005062312651056012020622 0ustar eacbforgeacbforgÞ•r¬ ó<  #*; R ]0h™¢ ¦´¼Ìàõ    , > K U p^ Ï Ö æ ñ S!V! \!j!o!s!z! !Ž!—!ž!±!Ð!Ø!í! ""5"O"h" n"{"ƒ" Œ"–" ž" ©" ³"5À" ö"# ##)# ?#I#N# S#^#f#m#€# # ©#´#É#Ý# æ#ð#÷#ü#$ $!$2$D$V$ \$ j$(u$ž$·$Ñ$ð$*÷$5"%X%a%j%z% ƒ% Ž% ›%§%¼%Ò% Ú%å%í%ô%û%&& &)&1&6& ;&G& L&W&]& f&s&„&?Š&GÊ&\'fo'Ö'Ý'æ' ì' ú' ( (( 2(@(E(K( P([(a(r({( š(§( ·( Â( Ì(×( Ü( é(ö( ü()) )) %)2);) K)X)^)o)t)…) Š)–)«)Á) È) Õ)ã)æ)ø)*%*4*C* H* V* d*Fn*)µ*3ß*++ +F++r++­+µ+¼+\Â+,&,:,O,T, d,n,s,…,,•, ª,´,Ä,-×, - - - ,- 9-F- L- W-b-j- p-}-ƒ-‹- š-¨- °- ¼- É- Ö-Lä-01.$b.‡.`–.C÷.;/+L/x/ / ‹/–/ ž/¨/¯/ ¶/Ã/Ç/ Ï/ Ý/ë/ñ/06-0d0 l00“0 ˜0 ¥0¯0¶0 Æ0Ó0å0ô011-1<1V1_1e1 w1ƒ1Š1’1—1«1±1 ¸1 Â1 Ì1×1 Ý1ç1í1ô1ý12 2 2&2-252 <2F2N2S2d2i2 |2+†2'²2YÚ2I43 ~3ˆ3Ž3”3 ›3¥3»3Á3È3Ú3ß3å3 é3 ÷344 *4 74:D4H4HÈ455 5 )565G5 Y5d5l5 r5€5 †5”57˜53Ð516;66r6 ’6_œ6$ü6'!7I7M7e7l7p7u7”7¤7 ª7'·7ß7î7þ78$8 48B8&G8n8 Š9 —9 ¤9®9À9 Ö9 â9/í9 : (:2: K:U:o::§: Â:Í:Ó:Û: ì: ù: ;;;¨; ¯; ½;È;^×;6< 9<E<J<N<U<]<l<u< {<'‰< ±<»<Ð<î<==7=W= [=h=m= v== Š= –=¤=6¸= ï= ý= >>1> M>W>^> f> s>€>†>–> ³> ¾>Ê>Ù>î>ý>? ? ??5?G?[?k??†? —?4¥?Ú? ÷?@6@"=@/`@ @ œ@§@·@ ¿@ Ë@ Ö@á@õ@ A A A&A/A6AKARA YAfAmAtA |AŠAA¡A ©A¶AÅAÜAâAéAðA öABBBB &B 3B @BNB aBoBvB|B ‚BB“B¢B«B ÈBÕB åBðBCC C#C3C ;CICQCZCiCoCƒCŒC ¢C°C¶CÅCÌCßCãCóC D D *D 8DFDID"_D‚D•D¥D¸D ¼D ÉD ÕDàDåD éDóD øDE E$E'+E SE^EcEbiE ÌEØEíEF FF1F6FOF WFbF }FˆF›FD±F öFGG'G9G IGSG eGpGyG~GG ˜G¥G ¹GÇG ÐGÝGíG öGYH8\H"•H¸HqËHM=I‹I7£I ÛIæI ïIùI J JJJ-J 2J=JRJgJlJnJpJrJxJ—JšJŸJ ±J¾JÆJÙJéJKK*K>KRK hK ‰K”K›K ®KºKÃKÊK ÑKòKúK L LL *L 4LBL GLTLcLhLpL ƒLL–L›L ¤L °L»LÂLÔLÛLõL'M#,M PMQ[M ­M·M¾MÄMËM#àMN NN+N0N5N 9NFNWNnNN ˜N £N¯N¶N½NÌN ÓNáNòNO OO%O *O8O >OLO6QO2ˆO+»O2çOP9Pj@P%«P-ÑPÿPQQQQQ'Q7Q;Q@QHQOQVQ _QjQqQ†QŽQ¤1­ñ/7ð:Ûg#¢4?ËÈ^Ìåtd¡ÝÞ`´$ EæÎj ý"EÀiÐxRW‹á%Fëe=ìã Ïg^I#Ô<D£íÙM!‰¬vp:(=|'\ @?±YÉOUÚ·PVRàÃ2˜0ar_øÄOMôk‚,× ÊA*hšª}•éŽ.%D³üžy«»è¶ÍŸ XW½8P [(Km‘Áf7aï).úo‡CÓ¼h15Q<ÒfØ*i¥nISûò '-6QLµ$zG rSºlâq0–²„U/ u`,dþä®õ’Å“;›ˆBö3]…\N°V©X _” î @ç¹j2F¨ßÿ™wTGKp)+BÆ¿¦89NÜ5cb†-k§œC"qL&9J[€ê3]&cH¸sH>ŒZƒ;>Ç÷6—4!o¯lJÖÑTÂZÕAY~nŠm¾ùóe{b+%1$s at %2$s%1$s on %2$s%s ago« Previous— Select —(no title)(required)Learn more about these options.ActivateAddAdd Menu ItemAdd NewAdd New ProjectAdd New Project TagAdd New Project TypeAdd or remove tagsAddress:AlbumAllAll Project TagsAll Project TypesAll ProjectsAll postsApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatticBackground colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.BlackBlog ArchivesBlueCSSCameraCancelCancel replyCategoryCenterCheatin’ uh?Choose from the most used tagsCirclesClick to Press This!Click to email this to a friendClick to printClick to share on RedditClick to share on TwitterClick to view slideshow.CloseColor SchemeCommentCommentsConfigureConnectConnect toConnectedContact InfoContinue reading →Crop ImageCustomCustom CSSCustom field deleted.Custom field updated.CustomizeDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisconnectDismiss this notice.Display Header TextDownloadDrop downE-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Project TagEdit Project TypeEdit Your ProfileEmailEmail AddressEmpty SpamEnable Portfolio Projects for this site.Enter your email addressError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:FeaturedFeatured ImagesFeedbackField typeFocal LengthFollow BlogFollow me on TwitterFor more information:Format:Front pageGalleryGlobalGoogleGravatar HovercardsGreenHeightHeight (px):Height:HideHomeIP Address:IconIgnore allImageInactiveInsert VideoInvalid usernameLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabelsLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLikes and SharesLinkedInLinks to your blog's RSS feedsLive PreviewLoading…Loading...Logged InLogged OutLogoM j, Y @ G:iMark as SpamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMetadataMissed scheduleMobile ThemeMode:Monthly archivesMoreMore informationNameNew ProjectNew Project Tag NameNew Project Type NameNewestNext »Next » NoNo Projects foundNo Projects found in TrashNo plugins found.No suggestionsNo tags found.NoneNot connectedNotificationsNounUserNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyOKOlder %sOlder postsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Pages:Parent Project TypeParent Project Type:PathPermalink to %sPingback:PinkPlugin activated.PluginsPopularPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPosted by %sPosted in %sPostsPosts pagePress ThisPreviewPricePrimary MenuPrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsPublicizePublicize:PublishPublishedPurpleRatingRecent PostsRedRelatedRelated PostsRelated postsReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch Menu ItemsSearch PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch resultsSeparate tags with commasSettingsShareShare on FacebookShare this:SharedSharingShowShow top posts overShow:SilverSite IconSite NameSite StatsSitesSlideshowSmallSocialSort by:SpamSpellingSpelling and GrammarStatsStyle:SubjectSubmitSubscribeSupportTagsTerms of ServiceTextText & Image LinksText onlyThere was an error deactivating your pluginThere was an error updating your pluginThis HTML form field is marked as required by the user in contact form builder(required)This post is password protected. Enter the password to view any comments.ThumbnailTime:TitleTitle:Top PostsTop Posts & PagesTrashTumblrTwitter username:TypeTypesURLUncategorizedUnpublishedUpdate Project TagUpdate Project TypeUpload ImageUploading...Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueView AllView ProjectView Project TagView Project TypeVisibilityWebsiteWhiteWidget title:Y/m/dY/m/d g:i:s AYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are required to specify a plugin to activate.You do not have sufficient permissions to access this page.You must specify a valid actionYour NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your comment is awaiting moderation.Your theme supports %sandas sharing sourceEmailcanceldayeditin {category/tag name}In "%s"loading…monthnounCommentpast participle: books I have readReadshare toEmailshare toGoogleshare toLinkedInshare toPress Thisshare toTumblrthe past weekweekword count: words or characters?wordsPO-Revision-Date: 2015-09-02 07:38:50+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s yn %2$s%1$s ar %2$s%s yn ôl« Blaenorol— Dewis —(dim teitl)(gofynnol)Dysgu mwy am y dewisiadau hyn.GweithreduYchwaneguYchwanegu Eitem DewislenYchwaneguYchwanegu Prosiect NewyddYchwanegu Tag Prosiect NewyddYchwanegu Categori NewyddYchwanegu neu dynnu tagiauCyfeiriad:AlbwmY CyfanPob Tag ProsiectPob CategoriPob ProsiectPob cofnodAgorfaYmddiheuriadau, ond doedd dim canlyniadau ar gael ar gyfer yr archif yma. Efallai y byddai chwilio yn helpu i ddod o hyd i gofnod cysylltiedig.ArtistTudalen AtodiAutomatticLliw'r cefndirGwna'n siŵr dy fod ti'n clicio ar "Diweddaru Proffil" ar waelod y sgrin i gadw dy newidiadau.DuArchif BlogGlasCSSCameraDiddymuDiddymu ymatebCategoriCanolTwyllo, ai e?Dewis o blith y tagiau mwyaf poblogaiddCylchoeddClicio i Flogio Hwn!Clicio i'w e-bostio at ffrindClicio i argraffuClicio i'w rannu ar RedditClicio i'w rannu ar TwitterClicio i wylio'r sioe sleidiau.CauCynllun LliwSylwSylwadauFfurfwedduCysylltuCysylltu âWedi cysylltuGwybodaeth CysylltuParhau i ddarllen →Tocio DelweddCyfaddasuCSS CyfaddasWedi dileu'r maes cyfaddasu.Diweddaru'r maes cyfaddasu.CyfaddasuTywyllDyddiadDadweithreduRhagosodedigDileuDileu'n BarhaolDileu'r eitem hon yn barhaolDisgrifiadDatgysylltuCau'r rhybudd.Dangos Testun PennynLlwytho i lawrCwymplenE-bostGolyguGolygu CSSGolygu Eitem DewislenGolygu'r ProsiectGolygu Tag ProsiectGolygu CategoriGolygu eich ProffilE-bostCyfeiriad E-bostGwagio'r SbamGalluogi Prosiectau Portffolio ar gyfer y wefan hon.Rhowch eich cyfeiriad e-bostGwall wrth ei symud i'r Sbwriel.Gwall wrth adfer o'r Sbwriel.Gwall!Gwall: rho gyfeiriad e-bost dilys.Gwall: llenwa'r meysydd gofynnol (enw, e-bost).Enghraifft:NodweddionDelwedd NodweddAdborthMath o faesHyd FfocalDilyn BlogDilyn fi ar TwitterRhagor o wybodaeth:Fformat:Tudalen flaenOrielByd eangGoogleHofrgardiau GravatarGwyrddUchderUchder (px):UchderCuddioCartrefCyfeiriad IP:EiconAnwybyddu popethDelweddAnweithredolMewnosod FideoEnw defnyddiwr annilysLabelE-bostGwefanDewisDewisiadauLabeliIaithMawrNewidiwyd DiwethafDysgu RhagorDysgu rhagorGadael YmatebGadael Ymateb i %sGadael YmatebChwithGolauHoffiHoffi hwn:HoffiHoffi a RhannuLinkedInDolenni i lifoedd RSS y blogRhagolwg BywLlwytho…Llwytho...wedi mewngofnodiWedi AllgofnodiLogoM j, Y @ G:iMarcio fel SbamCyfrwngFfeil CyfrwngCanoligDewislenEitem DewislenNegesNeges wedi ei AnfonMetadataAmserlennu wedi methuThema SymudolModd:Archifau misolRhagorRhagor o wybodaethEnwProsiect NewyddEnw Tag Prosiect NewyddEnw Categori NewyddDiweddarafNesaf »Nesaf »NaHeb ganfod ProsiectauHeb ganfod Prosiectau yn y SbwrielHeb ganfod ategyn.Dim awgrymiadauHeb ganfod tagiau.DimHeb GysylltuHysbysiadauDefnyddiwrRôlTagTacsonomiIawnBlaenorol: %sCofnodion blaenorolno-subsetymlaenAgor dolen mewn ffenestr neu dab newyddDewisiadauOrenTrefnTrefnu ac arddangos gwahanol fathau o gynnwys ar eich gwefan, ar wahân i gofnodion a thudalennau.Tudalennau:Rhiant Math ProsiectRhiant Math Prosiect:LlwybrDolen barhaol i %sHysbysiad Cyfeirio:PincAtegyn wedi ei actifadu.AtegionPoblogaiddTagiau Prosiect PoblogaiddPortffolioEitemau PortffolioProsiectau PortffolioNi fydd tudalennau portffolio yn dangos dim mwy na %1$s o brosiectauCyhoeddi SylwCofnod gan %s.Cofnodi drwy E-bostCyhoeddwyd gan %sCofnodwyd yn %sCofnodionTudalen cofnodionPress ThisRhagolwgPrisDewislen CynraddArgraffuPreifatrwyddPolisi PreifatrwyddYn prosesu...ProsiectTag ProsiectTagiau ProsiectCategoriCategorïauDiweddarwyd eitem prosiect drafft. Rhagolwg o'r prosiectCyhoeddwyd y prosiect. Gweld y prosiectAdferwyd y prosiect i ddiwygiad %sCadwyd y prosiect.Amserlennwyd y prosiect ar gyfer: %1$s. Rhagolwg o'r prosiectCyflwynwyd y prosiect. Rhagolwg o'r prosiectDiweddarwyd y prosiect.Diweddarwyd y prosiect. Gweld yr eitemProsiectauHyrwyddoHyrwyddo:CyhoeddiCyhoeddwydPorfforMarcCofnodion DiweddarCochYn perthynCofnodion PerthnasolCofnodion PerthnasolAteb AdferAdfer yr eitem hon o'r SbwrielDeCadwCadw'r NewidiadauAmserlennwydChwilioChwilio'r SylwadauChwilio CyfrwngChwilio Eitemau DewislenChwilio AtegionChwilio Tagiau ProsiectChwilio CategorïauChwilio CategorïauCanlyniadau'r chwilioGwahanu'r tagiau gyda chollnodauGosodiadauRhannuRhannu ar FacebookRhannu hwn:RhannwydRhannuDangosDangos cofnodion poblogaidd drosDangos:ArianEicon GwefanEnw GwefanYstadegau'r WefanGwefannauSioe sleidiauBachCymdeithasolTrefnu yn ôl:SbamSillafuSillafu a GramadegYstadegauArddull:PwncCyflwynoTanysgrifioCefnogaethTagiauAmodau GwasanaethTestunDolenni Delwedd a ThestunTestun yn unigBu gwall wrth ddadweithredu eich ategynBu gwall wrth diweddaru eich ategyn(gofynnol)Mae'r cofnod wedi ei diogeli gan gyfrinair. Rho gyfrinair i weld unrhyw sylwadau.Llun bachAmser:TeitlTeitl:Cofnodion PoblogaiddCofnodion a Thudalennau Poblogaidd SbwrielTumblrEnw defnyddiwr Twitter:MathMathURLHeb GategoriHeb ei chyhoeddiDiweddaru Tag ProsiectDiweddaru CategoriLlwytho Delwedd i FynyLlwytho...-- Dewis --CuddioDangosEnw defnyddiwrGwerthGweld y CyfanGweld y ProsiectGweld Tag ProsiectGweld CategoriGwelededdGwefanGwynTeitl teclyn:Y/m/dY-m-d g:i:s AIawnNid oes gennych hawl i symud yr eitem hon o'r Sbwriel.Nid oes gennych hawl i symud yr eitem i'r Sbwriel.Mae gofyn i chi bennu ategyn i'w weithredu.Nid oes gennych digon o hawl i weld y dudalen hon.Rhaid i chi benodi camau dilysDy EnwDoes dim cofnodion yn eich Archif Portffolio ar hyn o bryd. Gallwch ddechrau eu creu ar eich bwrdd rheoli.Mae eich sylw'n disgwyl ei gymedroli.Mae eich thema yn cefnogi %saE-bostDiddymudiwrnodGolyguYn "%s"Llwytho…misSylwDarllenE-bostGoogleLinkedInPress ThisTumblryr wythnos ddiwethafwythnosgairplugins/jetpack/languages/jetpack-pt_PT.mo0000755000312500031250000025236512651056012021244 0ustar eacbforgeacbforgÞ•$±,8ðJñJKyK|ŽK L L%L7:MærM YNFfNG­NõNþN’O˜OŸO°OÆO ÝO èOCóO07PhPyPyˆPyQ‹|Q©R4²R€çRhSqS‚S‰SS œSªS²SÇS ÛSèSTCTWT`T5sT©T ²T¼TÂTÆTÏTáT òTüTŒU(œUÅU1åUV 4VAV"QVBtVZ·VpW7ƒW»WÂW.ÓWX¤X·X%ÇX íXøX Y)YS:Y ŽYœY ¢Y°Y ÍY×YÜYÚðYËZêZ ùZ[ [[.[ 5[B[K[T[][d[s[%†[¬[ Ë[×[ß[î[\#\2\M\f\\™\²\¸\ Ë\Ø\ë\ó\]])]!2]T] d] n]{]ƒ]œ] ·]$Ä]5é];^n[^ Ê^Õ^ Ü^ç^ü^_(_ >_H_M_`_e_ j_u_{_Gƒ_qË_=`D`W` t`€`’`¥`Ã`Ë`ß`E÷`/=a ma Ža(ša/ÃaSóanGb%¶bÜb¥íbC“c×cRÞc1d6d?dNd`dqdƒd•d ›d©d$¸d Ýd[èdDeUe4eevšeAfSfclfÐfâfüfg1g8gKg)ig*“g5¾gôg8ýg 6hAhJh\hnhwh‡h›h ¤h ±h½hÒhèhðh õhi iiEi"`i#ƒiä§iŒj“j¦jºjËjÑj Øjåj íjúj ÿj! kBk GkTk¾[k†l_¡lëmÞím ÌnØn Ýnén ònMün6Jomo ïo úopp*p0p Ap Np Yp dpop p ‹p –p£p·p ÀpãÍp…±q{7rt³rk(s”s£s!ªsÌsuåsv[t%Òt>øt/7ucguüËu2Èv”ûvw–w?œw=ÜwGx\bxf¿xX&yy†yy •y£y ³y ¾y Éy×y ëyùyþyz zzz%,z<Rz"z²z.»zêzQ { [{h{y{{ž{ ®{¹{Ù{ ó{ ý{|!| &| 3|N@||­|2Ç|ú| } }} }!} 8} E}&S}z}-}»} Ã}Ð}Ù} é}$ö}U~bq~AÔ~XkoQÛL-€\z€Y×€?1_qhÑS:‚oŽ‚hþ‚Mgƒgµƒk„U‰„]ß„L=…WŠ…hâ…aK†F­† ô†‡‡0‡I‡ `‡!‡£‡Ç߇ô‡"ˆ4ˆFˆYˆnˆ‡ˆ›ˆµˆ̈߈ùˆ‰)‰=‰Z‰p‰ މ¯‰ɉå‰ü‰Š9Š!OŠqŠ‡Š™ŠªŠÇŠÞŠðŠ‹–"‹¹‹΋ß‹ä‹Lõ‹BŒYŒ nŒxŒ}ŒŽŒ’Œ©Œ¾Œ+ÔŒ  *8 ; F P Zd ’=ŸÝïþ Ž*+ŽV [ i)w ¡ Â3ÌF0G)x3¢Öî ‘ ‘ ‘*‘,>‘Fk‘²‘Ï‘í‘)’+’3’:’@’H’O’c’x’Œ’ ¡’¯’´’Ä’Ó’Ú’ ë’õ’ú’C “CN“$’“%·“Ý“ú“ ” ”(”0”E”U”-h” –” £”¾±”p•/€• °• »• È•Õ•Û•ì• ü• –––*–<–3E–y– –Œ–’–š– ©– µ––Ó–Ü– î–û– — —&— .—8—A—7H—<€—½—Ñ— Ø—å—é—ð—I˜L˜]˜ e˜ s˜˜ ˜ž˜¶˜¼˜Θì˜6 ™A™ I™j™ú™š šš"š 5š?šFšVš hšušŠšœš«šÀšך@æš9'›%a› ‡›’›¨›+ě𛠜(œ/@œ;pœ ¬œ¸œÁœÚœàœ òœþœ ž ž(ž 9ž Ež Sž]ž²nž!Ÿ&Ÿ9Ÿ HŸSŸhŸ |ŸOˆŸØŸèŸ ñŸ"ûŸ  ? U u ‰ d¤  ¡.¡'>¡f¡ m¡ z¡ „¡¡•¡­¡³¡ º¡Æ¡Ë¡Ò¡5ï¢%£-?£m£v£{£„£ ™£¦£¬£¾£УØ£ ߣí£ ¤ ¤¤.¤J¤`¤à¤è¤ñ¤.ö¤%¥+¥2<¥ o¥|¥¥ ”¥ ž¥ ¨¥²¥»¥"Ù¥>ü¥,;¦sh¦ܦ<ø¦‘5§Oǧ©¨§Á¨"i©Œ© œ©Ê©©Btª§·ªY_«f¹«? ¬+`¬'Œ¬&´¬6Û¬ª­/½­>í­Y,®\†®¡ã®…¯  ¯IÁ¯5 °#A°;e°M¡° ï°ù° ±±±!±1±7±Ž>±úͱ ȲÒ²eè² N³ [³g³~³„³š³¡³©³º³̳ѳ׳Ú³ Þ³ ì³ ø³U´ Z´h´x´Œ´Ÿ´ ³´ À´ÖÍ´(¤µ@͵ž¶F­¶yô¶:n·H©·Hò·;¸…D¸ʸ иÛ¸ð¸Ï¹ Ò¹ݹð¹ù¹º!º3ºDºUº"gº-Šº¸º:Òº% »3»/9» i»4t»„©»ö.¼%½#6½&Z½&½¨½'°½ؽò½N¾T¾JZ¾ ¥¾ ³¾¿¾¸Æ¾œ¿Á8ÁLÁjcÁÎÁæÁ­ùÁ§Â ­Â»ÂÏÂ7ÓÂ3 Ã2?Ã1rÃ%¤Ã8ÊÃ@Ä;DÄB€Ä2ÃÄ!öÄZÅsÅp“Å7Æ7<ÆtÆŽÆ ¡Æ4«Æ6àÆ$Ç<Ç'[Ç;ƒÇ?¿Ç!ÿÇ!È;È?ÈWÈ ^È iÈsÈwÈ |Èw†ÈþÈÉ&É:ÉYÉiÉ oÉÉ ¯É'¼ÉQäÉ 6Ê@ÊRÊaÊsʃʕʨʸÊÌÊÛÊëÊûÊ ËË(Ë 9Ë GË UË`Ë~Ë&ƒËvªËw!Ìî™ÌˆÍžÍs¸Íb,ΠΠΪΠ¬ÏÂºÏ }Ð4ŠÐ%¿ÐåÐíÐ|ôÐqÑxÑ ‰ÑªÑ ÅÑÓÑ âÑ0ïÑ Ò3ÒzEÒ‡ÀÒxHÓ¼ÁÓ2~Ô¦±ÔXÕ`ÕrÕ zÕ„Õ›Õ²ÕÁÕ#áÕÖ#Ö;ÖiSÖ½ÖÌÖFëÖ 2×=×V×]× b×m׈ק׸ד××0kØ/œØAÌØ1Ù @ÙLÙ,_ÙBŒÙtÏÙDÚ1ÒÚÛ ÛÛ "Û»/ÛëÛ)üÛ &Ü1Ü$HÜ mÜvzÜñÜÝ ÝÝ .Ý;Ý@ÝûWÝ$SÞxއޘޜެÞËÞÔÞæÞ ïÞ ùÞß ß &ß2Gß)zß¤ß ·ßÁß,Êß3÷ß+à!Gà&iàà'°àØàõàüàáá /á;áVárá ƒá3áÄá Õá àáîá÷áâ,â8Fâ4âA´âuöâ lãzã‹ã ã¾ãÝãýã ä"ä+äAäHä MäXä`ä oäzä‹ä”ä"­ä ÐäÜäðäå!å)åEåZ_å2ºå&íå æ+"æ/NæY~æ_Øæ+8çdçªuçI èjèapèÒè Ùèçèûèé/éDéXé^éqé3…é ¹ébÇé*ê<ê,Pê’}êLë"]ëo€ëðëì ì9ìSìYì#tì=˜ì8Öì9íIíRí ZífíoíŠí ¥í±íÅí×íàíñíîî,î5î=îMîPî`îJhî#³î(×îïðð.ðCðVð\ð cðpðxðŠð1“ð5Åðûðññîñ±òƒÀòDóý]ô [õiõpõ õ õS›õ4ïõm$ö ’ö ö¯öÁöÒöÙöðöÿö ÷÷-÷E÷X÷g÷z÷÷˜÷ò§÷œšø‘7ù„ÉùINú˜ú©ú*±úÜúiöúŒ`û4íûI"ü,lüy™ü,ý@@þ†þÿÿÿÿÿ'ÿ/ÿ8ÿ >ÿHÿOÿVÿlÿ ÿ Œÿ—ÿ«ÿºÿÎÿ×ÿÜÿ âÿðÿöÿ) 4";^3g#›P¿!2Fau ˆ%–¼Üí(ÿ(1Ed])Âì7 CI^e jw“¤+¶â3ü09 JT h+tG `è2I\|fÙK@7ŒQÄYIpfºf!Aˆ[Êy& H  mé UW H­ Zö LQ \ž sû Xo AÈ  "  9 C [ "m  © ½ Í Ö $ë  &2: IT[ lw Œ–«ºÐ èö ' CN cqx  œªÅƒÎRgx}N!ß"$38MU!t–.´!ã $5 : GS b,oœ¼U×-M!_+~­,3L:[0– ÇÒ Øãè ñûþ0!E+g“¢%¥Ë+á  $ /9Ndy ›£À ÏÙ éóø* P4*…2°+ã 4 <Ffy:ËàâñÔLë 8FWgo†™ ¬·ÇßùGV]l u ¢¸ Ì Öä íû  !*W/>‡ÆÛë ü  ; S_t‰š«ÈÑìîðòø“¨°¸Íæý  # 2 A ] s … ¡ À d× U"VÏ"&#=# F# g#q#‡#C—#Û$í$ö$% % 5%?%±X% &&*& <&J&f&}&o&ý& ' '$''0L'}'&š'Á'$Û'l(m(v(/y(©(²( Â(Ï(å(!ë( ))%)5):)hA)Hª*#ó*A+ Y+f+ k+v+Ž+ ¡+¯+Ä+Ö+Þ+ç+÷+ ,, 3,A,[,—x,- - $-=.-l-s-2†- ¹-Å-Ë- ã-î- ý- . .%:.F`.-§.VÕ.,/ 4/‹?/MË/©0­Ã0%q1—1 ª1î¶1C¥2Ëé2bµ348š4&Ó4#ú4(5BG5ÍŠ52X6S‹6 ß6\í6ÌJ78&38[Z8;¶8'ò8@9Y[9 µ9¿9Ô9Ü9á9è9÷9ÿ9¤:Ø­:†;%;vÃ;:< N<[<n<$s<˜<Ÿ<§<Á<Ý<â<è<ð< ô<==V&=}==¢=¾=Þ=ú= >é>-?G0?›x?R@Šg@ò@A AA¸(AáA çAòABB "C-C CCMCjC|C‘C¡CºC'ÏC÷C'ÿCI'D(qDšDEŸD åDJòD€=E ¾EÌF+ßF, G18GjG)rGœG¼G_ÒG2H9H<º.ñA‹ÅIy(ÔæmaB‰öëýP ÷»?RÈ¡“d§ÝiÜÅÂɳŽäÁ1F¢Àöñwº)T8„<æG—/?˜Ìý¬¹zOQû)?…»:¦Ícû fr  ÓÝÞðŸl(t<â­g ÑpNø]" –6•\¤±1rV¯›u·$Ý,=K€hjžS³kL0 ™6t‚é.Õèd úôi-$o…õem‡DC#²€^РÌAnÀßxù)Ç€¥¤5œ8yCF\X5vµÚò!/- 1eG4bm*iŒˆBi„Žãh¼ÃÎòêgEç*¯8b^yv©Ÿ]]v"±Ñ4lð§žq%_¶[DpšS†Äs~oúÒ9›J17˜ïGb|Ø+ŠÚ‚}®µ  uE>#'ßþj°ÂQC9UÐCàËýP#qî£+J>ùfŒµÃzè¼ z×M9åø°wâ©ê¾>n²Ö¨¸öšáÔ`º¬~—2S«ø¬¦Ž½£·“¶Ï&h!2b@L ç~¿rLØÉˆw"„Æ=}ÅP­‹k³V7l÷ìWÏrÛÁŸ  ×—s|x–¥Ä®4¿­cJ-*¥B‰|oôƒAzåþwÌ‘Ö5#_ð`âH½ÇH%è‚ÙÊRÿc†-°‡Da*û±¼9›P•qɨø¯‹[©)å[™;ñ\U$é7«<¦@fXÚ2·BsMÛ”ªOãta}EQ4éÛ lÍZÁ´ãíú3Ê+Nõ¢´W&jò`(q=WùÆàxo¡6Ip“3IK²äÙZK†ÕÍháxÇ.,@ü'n¹È6`þ.kmW”çëîõ;V»Œsá;XM,ŠÓR«/óì’R!vH™ ‘ƒËïÖMUÔe’×p!½L;ï'Jcü0V ÙS´Y‘Þ,ATk ¸Òy÷Þóœ0Ë~d äëHê_ GÂÑÒF]ìe+ÐuXÎΪj=Èæ@Ï:š3ô&_ßF Æ(2Z’IY¾Ü{|Õ  ÓĘa%$# of Tweets Shown:%1$s %2$s Views%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%l = list of Jetpack module/feature namesLike your site's RSS feeds, %l allows access to your posts and other content to third parties.Like your site's RSS feeds, %l allow access to your posts and other content to third parties.%s (Jetpack)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s: %s« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 ReplyJetpack is activated! Each site on your network must be connected individually by an admin on that site.The Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.ActivateActivate AkismetActiveAddAdd Many ItemsAdd Menu ItemAdd NewAdd New Menu SectionAdd New Project TagAdd One ItemAdd These New Menu ItemsAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add logoAdd or remove tagsAdditionally you can define your own custom services.Address:Admin barAlbumAllAll DoneAll Menu SectionsAll Project TagsAll postsAll taxonomy pagesAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlphabeticalAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Are you sure you want to disconnect from WordPress.com?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:BlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryBrowser ChromeButton styleCSSCSS RevisionsCSS Stylesheet EditorCancelCancel replyCaption:CarouselCategoryCenterChart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsChoose logoCirclesClichésClick to Press This!Click to email this to a friendClick to printClick to share on LinkedInClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseClose modal windowColor SchemeComing soon…CommentComment Likes areComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigureConfigure %sConnectConnect to WordPress.comConnected to WordPress.comContact InfoContact the Jetpack Happiness Squad.Continue reading →Count the page views of registered users who are logged in.Create elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCustomCustom CSSCustom Email AddressCustom field deleted.Custom field updated.Customer TestimonialsCustomizeDOWNDaily Archives: %sDarkDateDeactivateDebugDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay as:Display higher quality video by default.Display upcoming events from an iCalendar feed.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Don't show the Reblog button on postsDouble NegativesDrag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.E-mailEach module has an Activate or Deactivate link so you can toggle one individually.EditEdit CSSEdit Menu ItemEdit Menu SectionEdit Project TagEdit Selection...Edit Your ProfileEmailEmail AddressEmail Address:Email check failed, please try againEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFacebook Like BoxFacebook Page URLFeaturedFeatured ImagesFeed(s) to Display:FeedbackFirst optionFollow BlogFollow me on TwitterFor more information:Format:FreeFree formatsFromFront pageGalleryGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGet the most out of Jetpack with...Give your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGravatar HovercardGravatar HovercardsGravatar ProfileGreenHeightHeight (px):Height:Hidden VerbsHideHide related content after postsHide the stats smiley face image.HomeHours & InfoHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedInactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.Items to show:JargonJetpack Network Settings Updated!Jetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack is in local development mode.Jetpack is network activated and notices can not be dismissed.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJumpstart Descriptiongive visitors two easy subscription options — while commenting, or via a separate email subscription widget you can display.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLink Color (hex):Link URL (when the image is clicked):Link to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Log in with WordPress.comLogged InLogged OutLogin method not allowedLogoM j, Y @ G:iMain SidebarManage your Post By Email address from your profile settings.Mark this message as NOT spamMark this message as spamMaximum number of posts to show (no more than 10):MediaMedia FileMediumMenuMenu ItemMenu Items re-ordered.Menu SectionMenu SectionsMenu item restored to revision from %sMenu item updated.Menu item updated. View itemMessageMessage SentMessagesMissed scheduleMobile ThemeModal window. Press escape to close.Module DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionProtect your site with automatic backups and security scans. (Subscription required.)Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionUpload and embed videos right on your site. (Subscription required.)Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameJetpack CommentsModule NameJetpack Single Sign OnModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameWP.me ShortlinksModule NameWordPress.com StatsModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSocialModule TagWordPress.com StatsModule TagWritingModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.Move menu section downMove menu section upMy TweetsNameNetwork SettingsNewNew Menu Sections NameNew Project Tag NameNew Project Type NameNewer »Newer Comments →NewestNext »Next » NoNo BordersNo FooterNo HeaderNo LabelsNo Menu Items found in TrashNo Modules FoundNo ScrollbarNo data found for VideoPress identifier: %s.No plugins found.No suggestionsNo tags found.No writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!NoneNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:OKOfficial buttonsOlder postsOn for all commentsOnly display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderPage %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please enable JavaScript support in your browser to use VideoPress.Please provide your name to comment.Please select a video file to upload.Please verify your birthday.Plugin activated.Plugin deactivated.PluginsPopularPopular Project TagsPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts pagePress ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProject TagProject TagsProject updated.ProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize:PublishPublishedPurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RatingRecent PostsRedRedditRedundant PhrasesRefresh connection with {social media service}Refresh connection with %sRegistered usersRelatedRelated PostsRelated postsRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave StylesheetSave configurationScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch Menu SectionsSearch Modules…Search PluginsSearch Project TypesSearch Results for: %sSearch resultsSelect a user or pick "custom" and enter a custom email address.Select the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.Set as logoSettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing SettingsSharing URLSharing labelShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow StreamShow a "Related" header to more clearly separate the related section from postsShow buttons onShow mapShow moreShow profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.SilverSimilar postSite NameSite StatsSitesSkip to primary contentSmallSmileySmiley faceSnowSocialSome themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Sorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpellingSpelling and GrammarStatic page:StatsStylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe to %sSubscribe to Blog via EmailSuccess Message Text:Success! An email was just sent to confirm your subscription. Please find the email now and click activate to start subscribingSupportTag nameTagsTake a survey. Tell us how we’re doing.TermsTerms of ServiceTest your site’s compatibility with Jetpack.TestimonialsTextText & Image LinksText LinkText ListText onlyTextareaThe Plugin is already active.The Plugin is already deactivated.The email you entered was invalid. Please check and try again.The following modules have been updated: %l.The image helps collect stats and makes the world a better place but should still work when hiddenThe menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The specified theme was not found.Theme is empty.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem connecting to %s to create an authorized connection. Please try again in a moment.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This setting may be overridden for individual videos.This slideshow requires JavaScript.This user is not authorized to manage plugins network wide.This video requires Adobe Flash for playback.ThumbnailTiled GalleriesTiled MosaicTimeTime:Timeline Theme:TitleTitle:To customize the emails sent from your blog to your followers, check the settings at the bottom of the Reading Settings page.To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparentTransparent BackgroundTrashTry connecting again.TumblrTwitterTwitter TimelineTwitter username:TypeTypesUPURLUncategorizedUnpublishedUnsubscribeUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu SectionUpdate Project TagUpdate Project TypeUpload ImageUploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use a large and visually striking layoutUse automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.Use these settings to display different types of content on your site.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameUsing the checkboxes next to each module, you can select multiple modules to toggle via the Bulk Actions menu at the top of the list.ValueVaultPressVaultPress dashboardVerified ServicesVerifying your site allows you to access advanced features on these other services (e.g. Webmaster tools, or getting a verified badge). We'll just add an invisible %s tag to the source code of your homepage.VideoPressVideoPress LibraryView AllView Full Profile →View Full SiteView Menu SectionView Mobile SiteView Project TagView Project TypeView Site Stats without JavascriptView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.WebsiteWelcome to Jetpack %s!What’s a Hovercard?What's a Gravatar?When you write great content, all you really want is people to find it, right?WhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:With Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With the Infinite Scroll module and a supported theme, that's exactly what happens. Instead of the old way of navigating down a page by scrolling and then clicking a link to get to the next page, waiting for a page refresh—the document model of the web—infinite scrolling pulls the next set of posts automatically into view when the reader approaches the bottom of the page, more like an application.WordPress.com Reblog ButtonWordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are required to specify a capability to check.You are required to specify a plugin to activate.You are required to specify a plugin.You can view your stats dashboard here.You can add the following variables to your service sharing URL:You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have been subscribed to receive email updates.You have shared this post with %sYou must be logged in to post a comment.You must specify a valid actionYou need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Custom Content TypesYour Email AddressYour NameYour Site Stats work better with Javascript enabled.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your theme supports %sYour video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedandas sharing sourceEmailcancelclick hereconfiguredayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.http://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in {category/tag name}In "%s"loading…monthmy list of books to readTo Readnext-saturdayImage navigationnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?words{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.Blocked malicious login attempts{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.Spam comments blocked by Akismet.PO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 # de Tweets exibidos:%1$s %2$s VisualizaçõesClaro que sim. %1$s para adicionar uma nova caixa de texto, área de texto, opção, selecção, ou campo de lista.Sim, pode ler o seu feedback a qualquer altura clicando no link "%1$s" no menu de administração.%1$s às %2$s%1$s em %2$s%l Desactivado! Pode activar novamente a qualquer altura utilizando o link para activar junto a cada módulo.%l Desactivado! Pode activá-los novamente a qualquer altura utilizando o link para activar junto a cada módulo.Desactivar %lGoste do seu feed de RSS, %l permite acesso aos seus artigos e outros conteúdos por terceiros.Goste dos seus feeds de RSS, %l permite acesso aos seus artigos e outros conteúdos por terceiros.%s (Jetpack)Quer receber notícias sobre o Jetpack por email? %sSubscreveu as notícias por email. %sErro %shá %s%s não pôde ser ativado porque gerou um erro fatal. Talvez exista um conflito com outro plugin instalado?%s: %s« Anterior← Comentários Mais Antigos— Seleccione —(sem título)(obrigatório)%1$s em %2$sSaiba mais sobre esta opções.% respostas1 respostaJetpack foi activado! Cada site na rede deve conectar-se individualmente por um administrador desse site.O widget de Próximos Eventos permite-lhe utilizar um link de iCalendar para mostrar uma lista de eventos no seu site.Seu Jetpack tem uma falha. Alguma coisa falhou que nunca deveria falhar. Parece que não teve sorte: %sSeu Jetpack tem uma falha. A conexão deste site com o WordPress.com não é possível. Isso geralmente significa que o site não está acessível ao público (localhost).O seu Jetpack já esta conectado.Um formulário de contacto é uma excelente forma de permitir que os visitantes entrem em contacto, sem que seja necessário expor publicamente um endereço de email.ActivarActivar o AkismetActivosAdicionarAdicionar Muitos ItemsAdicionar Item de MenuAdicionar NovoAdicionar Nova Secção de MenuAdicionar Nova Etiqueta de ProjectoAdicionar Um ItemAdicionar Estes Novos Itens de MenuAdicionar novo serviçoAdicionar um formulário de recolha de emails para permitir que os seus visitantes subscrevam o seu site.Adicionar logoAdicionar ou remover etiquetasAdicionalmente pode definir os seu próprios serviços personalizados.Endereço:Barra de administraçãoÃlbumTudoConcluídoTodas as Secções de MenuTodas as Etiquetas de ProjectoTodos os artigosTodas as páginas de taxonomiaPermite aos administradores individuais do site gerir as suas próprias ligações (ligar e desligar) a WordPress.comPermitir aos utilizadores editar os meus vídeosPermitir aos utilizador aceder aos meus vídeosPermitir aos utilizadores aceder, editar e apagar os meus vídeosPermitir aos utilizadores fazer upload de vídeosAlfabéticaTexto alternativo:Uma companhia aérea AutomatticUm administrador deste site deve configurar a conexão do Jetpack.Ocorreu um erro ao criar o seu novo serviço de partilha - por favor certifique-se que introduziu detalhes válidos.Pedimos desculpa, mas não foram encontrados resultados para o arquivo solicitado. Talvez a pesquisa ajude a encontrar um artigo relacionado.Tem a certeza que quer desligar de Wordpress.com?ArtistaComo icon mobilePagoComo faviconNesta altura, o seu tema, %s não suporte scroll infinito. Ao contrário dos outros módulos Jetpack, o Scroll Infinito necessita de informação do seu tema para funcionar correctamente.Página de anexoRever automaticamente o conteúdo quando:AutomatticServiços DisponíveisOs shortcodes disponíveis são: %l.Cor do fundoNão se esqueça de clicar em "Actualizar Perfil" no final da página para que as suas modificações sejam guardadas.Linguagem TendenciosaPretoArquivosSubscrições (Jetpack)URL do blog:AzulCôr da moldura (hex):Traga a potência da nuvem WordPress.com ao seu site WordPress. O Jetpack permite-lhe conectar o seu site a uma conta WordPress.com, para que possa usar funcionalidades avançadas, normal†mente apenas disponíveis para utilizadores do WordPress.com.Navegue na sua Biblioteca VideoPressBrowser ChromeEstilo de botãoCSSVersões de CSSEditor de folha de estilos CSSCancelarCancelar respostaLegenda:CarrosselCategoriaCentroEstatísticas do quadro porCom que então a fazer batota...Verificando estado das notícias por email…Escolha de entre as etiquetas mais usadasEscolher logótipoCírculosClichésCarregue aqui para partilhar com Press This!Carregue aqui para partilhar por email com um amigoCarregue aqui para imprimirClique para partilhar no LinkedInCarregue aqui para partilhar no RedditClique para partilhar no TumblrCarregue aqui para partilhar no TwitterClique para ver o slideshow.FecharFechar janela ModalEsquema de corEm breve…ComentárioComentários de Gosto sãoNavegação de comentáriosComentar como %sComentáriosOs comentários nesta publicação estão fechados.Frases ComplexasConfigurarConfigurar %sConectarConectar ao WordPress.comConectado ao WordPress.comInformações de contactoEntre em contacto com o Esquadrão de Alegria do JetpackContinuar a ler →Contar as visualizações de páginas de utilizadores registados.Crie esquemas elegantes ao estilo de mosaico de revista para as suas imagens sem ter de utilizar um editor de imagem.Cortar ImagemPersonalizado(a)CSS PersonalizadoEndereço de Email personalizadoCampo personalizado eliminado.Campo personalizado actualizadoTestemunhos de ClientesPersonalizarEM BAIXOArquivos diários: %sEscuroDataDesactivarDepurarPredefiniçãoNovo campoPrimeira opçãoEliminarEliminar permanentementeEliminar este item definitivamenteDescriçãoMarcas DiacríticasDesactivar CSS e JSDisconectar do WordPress.comIgnorarMostrar texto no cabeçalhoMostrar Artigos WordPressMostrar uma Caixa de Gosto do Facebook para ligar os visitantes à sua página de FacebookMostrar uma mini versão do seu Perfil de GravatarMostre uma imagem na sua barra lateralMostrar como:Exibir vídeo de alta qualidade por defeitoMostrar eventos futuros de um feed de iCalendarMostrar uma lista de artigos recentes de outro blog WordPress.com ou Jetpack compatível.Não cruze os fluxos! É necessário permanecer ligado ao seu site enquanto autoriza o Jetpack.Não mostrar o botão de Reblog nos artigosNegativas DuplasPegue e arraste serviços de partilha para a caixa activa, para que apareçam no seu site, ou arraste-os para a secção escondida para que apareçam dentro de um botão.Pegue e arraste os serviços que gostaria de activar para a caixa abaixo.EmailCada módulo tem um link para Activar ou Desactivar para que possa gerir cada um individualmente.EditarModificar CSSEditar item de menuEditar Secção de MenuEditar Etiqueta de ProjectoEditar Selecção...Editar o seu perfilEmailEndereço de emailEndereço de Email:A verificação do email falhou, tente de novamenteEsvaziar SpamActivar a revisão para as seguintes regras de gramática e estilo ao escrever artigos e páginas:Serviços activosOpções de InglêsIntroduza um URL do WordPress.com ou JetpackDigite um shortcode directamente no editor de entradas ou páginas para inserir mídia. Para obter instruções específicas siga os links abaixo.Insira o URL do icon de 16x16px que gostaria de utilizar para este serviço.Introduza o seu endereço de emailIndique o seu endereço de email para subscrever este site e receber notificações de novos artigos por email.Detalhes do erro: %sErro ao mover para o Lixo.Erro ao retirar do Lixo.Erro ao carregar o perfilErro!Erro, módulo com defeito.Erro, dados de resposta inválidos.Erro: não foi possível criar nome de utilizador apropriado.Erro: por favor introduza um endereço de email válido.Erro: por preencha os campos obrigatórios (nome, email).Exemplo:PáginaExplicar...FacebookCaixa de Gosto do FacebookURL da Página do FacebookEm destaqueImagens em destaqueFeed(s) a mostrarFeedbackPrimeira opçãoSubscrever siteSiga-me no TwitterPara mais informação:Formato:GrátisFormatos livresDePágina inicialGaleriaComeçe a gerir a sua instalação Multisite do Jetpack ligando as contas.Começe já com o Jetpack MultisiteTire o máximo partido do Jetpack com...Dê ao seu site uma ajuda carregando as imagens nos artigos através da rede de conteúdos do WordPress.com. Nós criamos cópias das suas imagens e disponibilizamos-as através da nossa rede super-rápida, reduzindo a carga no seu alojamento com um simples clique de botão.GlobalGravatar flutuanteGravatars flutuantesPerfil de GravatarVerdeAlturaAltura (px):Altura:Verbos EscondidosEsconderEsconder conteúdo relacionado depois dos artigosEsconder a imagem do smiley de estatísticasInícioHoras & InformaçãoHoras:Os Gravatars flutuantes melhoram as imagens simples de Gravatar com informações sobre uma pessoa: nome, biografia, fotos, as suas informações de contacto e outros serviços que utilizam na web, tais como Twitter, Facebook ou LinkedIn.Os Gravatars flutuantes melhoram as imagens simples de Gravatar com informações sobre uma pessoa: nome, biografia, fotos, as suas informações de contacto e outros serviços.Os Gravatars flutuantes são uma óptima maneira de mostrar a sua presença na Internet e ajudar as pessoas a encontrar o seu site.Olá. Subscreveu recentemente um dos meus artigos. A partir de agora irá receber um email quando forem publicados novos comentários. Para ativar, clique no botão "Confirmar" abaixo. Se achar que se trata de um erro, ignore esta mensagem e não iremos incomodá-lo novamente.Olá. Subscreveu recentemente artigos deste site. A partir de agora irá receber os artigos novos por email. Para ativar, clique no botão "Confirmar" abaixo. Se achar que se trata de um erro, ignore esta mensagem e não iremos incomodá-lo novamente.Endereço IP:ÃconeÃcone + TextoURL do ÃconeApenas ÃconeIdentifique as palavras e frases a ignorar na revisão dos seus artigos e páginas:Se vazio, tentaremos determinar o tamanho da imagem.Se você um autor de temas, pode saber sobre adicionar suporte ao Scroll Infinito em %1$s.Ignorar todasIgnorar sempreIgnorar sugestãoFrases IgnoradasImagemAlinhamento da imagem:Cor da imagem:Grelha de imagemLink ImagemLista de imagensDefinições de imagem:Tamanho da imagem:URL da imagem:Título da imagem:Imagem a ser cortadaInactivoInserir VídeoEm vez de escrever ou copiar e colar URLs longos, agora pode obter um link curto e simples para as suas entradas e páginas. Usa o nome de domínio super compacto wp.me, e dá-lhe um URL exclusivo que pode usar de maneira segura e confiável.Texto de apresentação enviado quando alguém subscreve um artigo no seu site. (Os detalhes do site e da confirmação serão adicionados automaticamente.)Texto de apresentação enviado quando alguém subscreve o seu site. (Os detalhes do site e da confirmação serão adicionados automaticamente.)Parece que o seu URL do Facebook está configurado incorrectamente. Por favor verifique nas definições de widget.É perfeito para usar no Twitter, Facebook, e SMS, onde cada letra conta.Items a mostrar:JargãoDefinições da Rede Jetpack actualizadas!Jetpack por WordPress.comJetpack combina o poder de %s e a simplicidade do WordPress para lhe dar a melhor plataforma matemática.O Jetpack não conseguiu contactar o WordPress.com: %s. Isso geralmente significa que algo está incorretamente configurado no seu servidor.O Jetpack encontra-se modo de desenvolvimento local.A rede Jetpack está activa e as notificações não podem ser ignoradas.O Jetpack requer o WordPress %s ou superior.Jetpack é um plugin que usa o poder impressionante da nuvem do WordPress.com para aumentar a funcionalidade do seu site.O tema móvel do Jetpack está optimizado para ecrãs de pequenas dimensões. Utiliza a imagem do cabeçalho, fundo, e widgets do seu tema actual para mostrar correctamente. O suporte aos formatos de artigos estão incluídos, para que as suas imagens e galerias pareçam fantásticas num smartphone.Junte-se a %s outro subscritorJunte-se a %s outros subscritoresdê aos visitantes duas opções de subscrição fácil - enquanto comenta, ou via um widget de email de subscrição que pode exibir.LaTeXTextoEmailNomeWebsiteOpçãoOpçõesmoverEtiquetasIdiomaGrandeÚltima ModificaçãoOpções de esquema:Saber MaisSaber MaisDeixar uma respostaResponder a %sDeixar uma respostaEsquerdaLeveGostoGostar disto:LikesCôr do Link (hex):URL do link (quando a imagem é clicada):editarLigue a sua conta ao WordPress.comLinkedInLinks para serviços que usa noutros locais da web.Links para os feeds RSS do seu siteLinks para os seus sites, blogs, ou outros sites que ajudem a descrever quem é.Pré-visualização em tempo realA carregar …A carregar comentários...Carregando video...A carregar…Carregando...Localização do ficheiro vídeo Ogg.Autentique-se com WordPress.comSessão iniciadaSessão terminadaMétodo de autenticação não permitidoLogotipoj \d\e F \d\e Y G:iBarra lateral principalControle o seu endereço para Postar por Email através das definições de perfil.Marcar esta mensagem como NÃO sendo spamMarcar esta mensagem como spamNúmero máximo de artigos a mostrar (não mais de 10):MediaFicheiro multimédiaMédioMenuItem do menuItens de Menu re-ordenados.Secção de MenuSecções de MenuItem de Menu restaurado para revisão de %sItem de Menu actualizado.Item de Menu actualizado. Ver itemMensagemMensagem enviadaMensagensAgendamento falhadoTema móvelJanela Modal. Pressione em Esc para fechar.Acelere o seu site carregando imagens a partir do CDN do WordPress.com.Adicione images, streams de Twitter, links para os RSS do seu site, e mais na sua barra lateral.Adicione suporte para scroll infinito ao seu tema.Permita que aplicações possam aceder com segurança aos seus conteúdos através da nuvem.Permita aos utilizadores subscrever os seus artigos e comentários e receber notificações por email.Permita aos seus utilizadores autenticarem-se com a conta do WordPress.com.Personalize o CSS do seu site sem modificar o seu tema.Mostar as suas galerias de imagens numa variedade elegante de arranjos gráficos.Dê aos seus visitantes uma forma fácil para mostrar o seu agrado pelos seus contéudos.Insira um formulário de contacto a partir de qualquer local no seu site.Faça a gestão de todos os seus sites a partir de um local centralizado, https://wordpress.com/sites.Verifique as suas estatisticas com relatórios claros, concisos e sem carga adicional no seu servidor.Optimize o seu site para um tema amigo dos smartphones e tablets.Organize e exiba diferentes tipos de conteúdo no seu site, separado de artigos e páginas.Proteja o seu site com cópias de segurança automáticas e com verificações de segurança. (Subscrição necessária.)Publique artigos por email, usando qualquer aparelho e cliente de email.Receba notificações da actividade do site através da barra de administração e dos seus aparelhos Mobile.Receba notificações do Jetpack se o seu site estiver offline - e quando ele voltar.Pesquise toda a base de dados a partir de um único campo no seu Painel.Partilhe os seus artigos públicos e comentários nos motores de busca e outros serviços.Especifique quais os widgets a aparecer em nas várias páginas do seu site.Faça o upload e incorporação de vídeos a partir do seu site. (Subscrição necessária.)Utilize a linguagem de markup LaTeX nos seus artigos e páginas para equações complexas e outras coisas de geeks.Verifique o seu site ou dominio com as Ferramentas Google Webmaster, Pinterest e outros.Escreva artigos ou páginas texto simples com a sintaxe Markdown.Informação do MóduloMatemática EmbelezadaCarrosselFormulário de ContactoCSS PersonalizadoTipos de Conteúdos PersonalizadosDistribuição MelhoradaGravatar HovercardsScroll InfinitoJSON APIComentários JetpackInício de Sessão Única do JetpackGostosGerirMarkdownTema MobileMonitorNotificaçõesOmnisearchPhotonPostar por EmailPublicitarArtigos RelacionadosPartilharEmbeds de ShortcodesÃcone do SiteVerificação de SiteOrtografia e GramáticaSubscriçõesGalerias em moldurasVaultPressShortlinks WP.meEstatísticas WordPress.comAparênciaGestão CentralizadaProgramadoresMóvelOutrosImagens e VideosRecomendadoRedes SociaisEstatisticas WordPress.comEscreverO módulo não pode ser activado porque gerou um erro fatal. Talvez exista um conflito com outro plugin instalado?Arquivos mensais: %sArquivos mensaisMaisMais informaçõesMais informação sobre enviar emails, anexos, e personalizar os seus artigos.Mover secção de menu para baixoMover a secção de menu para cimaOs meus TweetsNomeDefinições de RedeRecenteNovo Nome de Secções de MenuNovo Nome de Etiqueta de ProjectoNovo Nome de Tipo de ProjectoSeguinte »Comentários Mais Recentes →Mais recentesSeguinte »Seguinte »NãoSem MoldurasSem RodapéSem CabeçalhoSem LegendasNão foram encontrados Items de Menu no LixoNão foram encontrados MódulosSem barras de deslocamentoNenhuma infirmação encontrada para o identificador VideoPress: %s.Não foram encontrados plugins.Nenhuma sugestãoNão foram encontradas etiquetas.Não foi encontrado nenhum erro de escrita.Ninguém gosta de servidores em baixo, e é por isso que o Monitor do Jetpack está em cima do assunto, mantendo um controlo no estado do seu site a cada 5 minutos. Assim que é detectado que o servidor está em baixo, você irá receber um email com uma notificação alertando da ocorrência. Dessa forma você poderá agir rapidamente, para poder ter o seu site activo novamente!NenhumNão foi encontrado nadaNotificaçõesQuero ser notificado de comentários adicionais por email.Quero ser notificado de novos artigos por email.UtilizadorAutorPermissãoDataEtiquetaTaxonomia, Número de artigos a mostrar:OKBotões oficiaisArtigos mais antigosActivo para todos os comentáriosExibir apenas vídeos em formatos gratuitossem-subfamiliaemAbrir link numa nova janela/separadorAbre numa nova janelaTexto opcional a mostrar aos seus leitores:OpçõesLaranjaOrdemPágina %sPáginas:Secção de Menu PaiSecção de Menu Pai:Tipo de Projecto PaiTipo de Projecto Pai:Voz PassivaCaminhoLigação permamente para %sLinks pessoaisTelefone:Frases a EvitarPingback:RosaPlanos & PreçosNecessário Javascript para reproduzir %s.Por favor ative os suporte para JavaScript no seu browser para usar o VideoPressPor favor insira o seu nome para comentar.Selecione um ficheiro de vídeo para fazer upload.Por favor verifique a sua da de nascimento.Plugin activado.Plugin desactivado.PluginsPopularesEtiquetas Populares de ProjectoItems de PortfolioProjectos de PortfolioAs páginas de Portfolio mostram no máximo %1$s projectosPublicar comentárioPostar por EmailPostar por Email é uma forma de publicar artigos no seu blog por email. Qualquer cliente de email pode ser utilizado para enviar email, permitindo-lhe publicar fácil e rapidamente através de aparelhos tais como smartphones.Navegação de artigosO artigo não foi enviado - por favor verifique os seus endereços de email!Publicado porPublicado por %sNa categoria %sArtigosArtigos & comentáriosArtigos e PáginasPágina de artigosPress ThisPré-visualizarPré-visualizar FaviconPré-visualizar Home iconPré-visualização:Pré-visualizar: as alterações devem ser guardadas ou serão perdidasPreçoMenu primárioImprimirPrivacidadePrivacidadeEtiqueta de ProjectoEtiquetas de ProjectoProjeto atualizado.ProjectosRever EscritaRevisãoCriado com %sDivulgarDivulgar:PublicarPublicadoAdquirirRoxoMostrar um gráfico que mostra 48 horas de visualizações na barra de administração.Passe o rato sobre o seu Gravatar para verificar o seu perfil.Links RSS (Jeptpack)ClassificaçãoArtigos recentesEncarnadoRedditFrases RedundantesActualize ligação com %sUtilizadores RegistadosRelacionadoArtigos RelacionadosArtigos relacionadosRemover ServiçoPalavra RepetidaSubstituir a selecção com:RespostaVisibilidade do relatório ReporRestaurar este item do lixoDevolvido ao remetente. Ups! Parece que você recebeu um Jetpack errado no correio; desactive o Jetpack e em seguida reactive-o para obter um novo.DireitaGuardarGuardar alteraçõesGuardar folha de estilosGuardar configuraçãoAgendadoTermoPesquisar Comentáriospesquisar tudoProcurar mediaPesquisar Secções de MenuPesquisar Módulos...Pesquisar PluginsPesquisar Tipos de ProjectoResultados da Pesquisa por: %sResultados da pesquisaSeleccione um utilizador ou escolha "personalizado" e introduza um endereço de email personalizado.Selecione os perfis que estão autorizados a visualizar relatórios de estatísticas.Plataforma Semântica de Publicação PessoalEnviar EmailEnviar para endereço de EmailEnviado por um utilizador verificado de %s.Enviado para o seu site por um visitante não-verificado.Separe as etiquetas com vírgulasNome do serviço%1$s: %2$sOs serviços arrastados para aqui aparecerão individualmente.Os serviços arrastados para aqui ficarão escondidos dentro de um botão de partilha.Definir como logótipoOpçõesAs preferências foram guardadasPartilharPartilhar no FacebookPartilhar isto:Partilhe os seus artigos no Twitter, Facebook e muitos outros serviços. Pode configurar os serviços para que apareçam como ícones, como texto ou ambos. Alguns serviços tem opções adicionais para mostrar botões inteligentes, como o Twitter que, por exemplo, actualiza o número de vezes que um artigo foi partilhado.Artigo partilhadoPartilhaPreferências de partilhaURL de PartilhaEtiqueta da partilhaShortcodeInserção de ShortcodesShortcodes permitem a fácil e segura inserção de mídia a partir de outros lugares, no seu site. Com um código simples, pode inserir do YouTube, Flickr e de outros suportes.MostrarMostrar Links de ContasMostrar Excertos:Mostrar CarasMostrar Imagem de Destaque:Mostrar links pessoaisMostrar EstadosApresentar um cabeçalho com "Relacionado" para mostrar mais claramente as secções relacionadas dos artigos.Mostrar botõesMostrar mapaMostrar maisMostrar imagens de perfil no plugin.Mostrar conteúdo relacionado depois dos artigosMostrar botões de partilha.Mostrar o botão de Reblog nos artigosMostrar artigos popularesMostrar termos de pesquisa popularesMostrar o número total de assinantes? (%s assinante)Mostrar o número total de assinantes? (%s assinantes)Mostrar:ouMostrar os seus artigos e páginas mais vistas.PrateadoArtigo parecidoNome do SiteEstatísticas do siteSitesSaltar para o conteúdo primárioPequenoSmileySmileyNeveSocialAlguns temas e plugins têm conflitos conhecidos com o Jetpack – verifique a lista. (Você também pode pesquisar nas páginas de suporte do Jetpack ou fórum de suporte Jetpack para verificar se outras pessoas têm os mesmos problemas ou se encontraram soluções para o problema.)Desculpe, não foram encontrados módulos com os termos de pesquisa "%s"Desculpe, não há nada a reportar.Lamentamos, mas o seu site não pode partilhar artigos por email.Ordenar por:SpamOrtografiaOrtografia e gramáticaPágina estática:EstatísticasStylesheet guardado.Suprimir sub-siteAssuntoSubmeterSubmeter »Publicando comentário%sSubscreverBotão de subscrição:Subscrever %sSubscrever Blog via emailTexto da Mensagem de SucessoSucesso! Foi enviado um email para confirmar a sua subscrição. Por favor verifique o seu email e clique em "Ativar" para dar início à subscrição.SuporteNome da TagEtiquetasResponda a um inquérito. Diga-nos como nos estamos a portar.TermosTermos do serviçoTeste a compatibilidade do seu site com o Jetpack.TestemunhosTextoLinks de Texto & ImagemLink TextoLista de textoApenas textoÃrea de TextoO Plugin já se encontra activo.O Plugin já se encontra desactivado.O email inserido não é válido. Por favor verifique e tente de novo.Os seguintes módulos foram actualizados: %l.A imagem ajuda a recolher estatísticas, mas continuará a funcionar quando escondida.JetpackJetpack %sA versão antiga foi desactivada e pode ser removida do seu site.As versões antigas foram desactivadas e podem ser removidas do seu site.A ligação primária pertence à conta WordPress.com de %s.O revisor tem sugestões para este artigo. Tem a certeza que o quer publicar? Clique OK para publicar o artigo ou Cancelar para ver as sugestões e editar o seu artigo.O revisor tem sugestões para este artigo. Tem a certeza que o quer actualizar? Clique OK para actualizar o artigo ou Cancelar para ver as sugestões e editar o seu artigo.O tema escolhido não foi encontrado.O Tema está vazioTema: %1$s.Existem muitos plugins e serviços que fornecem estatísticas, mas os dados podem ser em demasia. As estatísticas do WordPress.com Stats torna as métricas mais populares fáceis de compreender através de um interface claro e atractivo.Não há artigos para mostrar. Quer mais tráfego?Existe uma actualização disponível para o seu tema. Poderá verificar se esta actualização adiciona o suporte ao Scroll Infinito visitando a página de Actualizações do WordPress.Ocorreu um problema ao comunicar com o serviço de verificação. Tente de novo daqui a um minuto.Houve um problema na ligação a %s para a criação de uma ligação autorizada. Por favor tente novamente dentro de um momento.Ocorreu um erro ao comunicar com o serviço de revisão.Ocorreu um erro ao desactivar o pluginOcorreu um erro ao activar o pluginOcorreu um erro ao actualizar o seu temaOcorreu um erro durante a subscrição. Por favor tente novamente.Existe uma boa probabilidade de que os visitantes do seu site estejam a utilizar um smartphone, e é importante para eles que tenham uma boa experiência a ver o seu site no ecrã com dimensões reduzidas.Estas definições afectam todos os sites na rede.Estas definições alteam os emails enviados do seu site para os seus subscritores.(necessário)Esta galeria contém %2$s imagem.Esta galeria contém %2$s imagens.Se bem que este plugin também funcione sem ele, o suporte multibyte será usado, se estiver disponível. Poderá ver problemas menores com tweets e outros serviços de partilha.Este artigo foi partilhado!Este artigo está protegido por senha.Este conteúdo está protegido por senha. Introduz a senha para ver eventuais comentários.Esta definição pode ser alterada para vídeos individuaisEste slideshow necessita de JavaScript.Este utilizador não está autorizado a gerir a rede de plugins.Este video necessita de Adobe Flash para ser reproduzido.MiniaturaGalerias em EsquemasMosaicoHoraTempo:Tema Timeline:TítuloTítulo:Para personalizar os emails enviados do seu blog para os seus seguidores, verifique as definições no final da página de Definições de Leitura.Para ver Gravatars flutuantes visite qualquer entrada no seu site que tenha comentários. Se o autor tem um Gravatar, clique sobre a imagem e os Gravatar flutuará. Para desactivar, clique no botão Desactivar acima.Artigos mais popularesArtigos & páginas mais popularesAs visualizações de artigos e páginas são calculadas de 24 a 48 horas de estatísticas; levam algum tempo a mudar.Pesquisas popularesTransparenteFundo TransparenteLixoPor favor tente conectar-se de novo.TumblrTwitterLinha de tempo do TwitterNome de utilizador Twitter:TipoTiposEM CIMAURLSem categoriaNão PublicadoRemover subscriçãoEnquanto o seu tema não suporte o Scroll Infinito, não poderá activar este módulo.Artigo sem TítuloPróximos EventosActualizar Secção de MenuActualizar Etiqueta de ProjectoActualizar Tipo de ProjectoCarregar imagemA carregar...Use $latex o seu código latex aqui$ ou [latex]o seu código latex aqui[/latex] para incluir %s nos seus artigos e comentários. Estão disponíveis todo os tipo de opções.Utilize um visual de layout largo e apelativoUse o idioma automaticamente detectado para corrigir artigos e páginasUtilize a tecla TAB para se mover entre colunas e a tecla ENTER ou RETURN para gravar cada linha e seguir para a próxima.Utilize estas definições para mostrar diferentes tipos de conteúdo no seu site.Utilize estas ferramentas para verificar que é dono/controla o seu website com outros serviços externos como o Google, Bing e Pinterest.-- Seleccionar --EsconderMostrarNome de utilizadorUtilizando as caixas de selecção junto a cada módulo, você pode seleccionar múltiplos módulos para activar ou desactivar através do menu de acções múltiplas no topo da lista.ValorVaultPressPainel VaultPressServiços verificadosVerificando o seu site permite-lhe que algumas funcionalidades avançadas nestes outros serviços (ex: Ferramentas de Webmaster, ou ganhando um emblema de certificação). Iremos apenas adicionar uma etiqueta invisível %s ao código-fonte da sua página inicial.VideoPressBiblioteca VideoPressVer todosVer o perfil completo →Ver Site CompletoVer Secção de MenuVer site móvelVer Etiqueta de ProjectoVer Tipo de ProjectoVisualizar estatísticas sem JavascriptVer %s.Ver todas as funcionalidades do JetpackVer o perfil dos utilizadores quando passa o rato sobre os seus GravatarsVer estatísticas no WordPress.com agoraVer:Vistas nas últimas 48 horas. Clique para mais estatísticas do site.VisibilidadeVisite Estatísticas do site para ver suas estatísticas.Para verificar as suas cópias de segurança, ver alertas de segurança, ou verificar a Vitalidade do seu VaultPress, visite %s.Visitantes que utilizem iPhone, Android, Windows Phone, e outros dispositivos móveis irão ver automaticamente o tema móvel, com a opção de poder ver o site completo. Você pode activar ou desactivar o tema móvel clicando no botão "Activar" ou "Desactivar" acima.Links curtos WP.meAviso! Suporte multibyte em falta!Não podemos mostrar artigos para este blog.Não podemos carregar dados do blog nesta altura.WebsiteBem-vindo ao Jetpack %s!O que é um Gravatar flutuante?O que é um Gravatar?Quando você escreve bom conteúdo, tudo o que você quer é que as pessoas o encontrem, certo?BrancoéTítulo do widget:Largura (px):Largura:Com o Carrossel activo, quaisquer galerias WordPress que estejam nos seus artigos ou páginas serão lançadas numa experiência de ecrã completo com comentários e com a EXIF metadata.Com o módulo de Scroll Infinito e com um tema que o suporte, é exactamente o que acontece. Em vez de navegar na página com o scroll para baixo e depois clicar num link para ir para a próxima página, e esperar que actualize — o normal na web — o scroll infinito carrega os próximos artigos automaticamente na mesma janela quando o leitor se aproxima do final da página, tal como se fosse uma aplicação informática.Butão para Reblog do WordPress.comEstatísticas WordPress.comUtilizador WordPress.comO WordPress.com está de momento com problemas e é incapaz de dar combustível ao Jetpack. Por favor, tente novamente mais tarde.Uau, isto soa a nerd.Escreva um comentário...Tamanho errado. Hm… parece que seu Jetpack não se encaixa. Perdeu peso? Clique em “Conectar ao WordPress.com” novamente para ajustar o seu Jetpack.Y/m/dY/m/d g:i:s AArquivos anuais: %sSimNão pode mover este item para fora do Lixo.Não pode mover este item para o Lixo.É necessário que especifique uma capacidade para verificar.É necessário que especifique um plugin para activar.Necessita de especificar um plugin.Pode ver seu painel de estatísticas aqui.Poderá adicionar as seguintes variáveis ao URL de partilha do seu serviço:Não tem permissões suficientes para aceder a esta página.Já subscreveu anteriormente este site. Por favor verifique a sua caixa de correio.Subscreveu as notícias por email.Acabou de partilhar este artigo com %sDeverá estar ligado para publicar um comentário.Tem de especificar uma acção válidaNecessita autorizar a conexão entre o seu site Jetpack e o WordPress.com para activar os recursos.É necessário registar o seu Jetpack antes de o conectar.Não receberá mais notícias sobre o Jetpack por email.Os seus Tipos Personalizados de ConteúdoO seu endereço de emailO seu nomeAs estatísticas funcionam melhor com Javascript activo.O seu blog não tem de momento quaisquer artigos publicados.O seu comentário aguarda moderação.O seu comentário esta em moderação.O seu tema suporta %sO seu vídeo está a ser enviado... Não feche esta janela.O seu site precisa ser acessível ao público para usar o Jetpack: %sum artigo ou página é publicado pela primeira vezum artigo ou uma página são actualizadoseEmailCancelarclique aquiConfigurardiaEditareditar textoUps, houve um problema ao gerar o seu formulário. Terá provavelmente de voltar a tentar.http://jetpack.mehttp://pt.wordpress.org/URL do iCalendarEm "%s"A carregar…mêsPara LerNavegação de imagemComentárioLido%s se:reverpesquisar tudoEmailFacebookGoogleLinkedInPinterestPocketPress ThisImprimirRedditTumblrTwitterontemno mês passadono trimestre passadona semana passadano ano passadoeste videoVer: %ssemanawordsTentativas de autenticação maliciosa bloqueadasComentários de spam bloqueados pelo serviço Akismetplugins/jetpack/languages/jetpack-az.mo0000755000312500031250000060655512651056012020634 0ustar eacbforgeacbforgÞ•T¼2q\e ‡!‡88‡Ïq‡Aˆ(Tˆ}ˆˆ?Ÿˆy߈|Y‰Ö‰-ô‰."Š;Q‹ ‹ š‹§‹7¼ŒæôŒ Û èFöG=Ž…ŽŽŽ’•ŽH(qˆ&¡[È$?Yh!nLÝó ‘‘#‘9‘P‘ n‘ y‘C„‘*È‘ó‘4’b7’1š’0Ì’ý’““x1”pª”+•#G•rk•1Þ•y–-Š–²¸–jk—§Ö—}~˜Xü˜\U™y²™H,š9uš‹¯š©;›4囀œ6›œÒœ áœ14FO`%y Ÿ¬³·È ×å íûž(ž8žLžaž už ‚žž©ž¹žDÉžŸC ŸdŸwŸ€Ÿ•Ÿ[¨Ÿ  - 4 5T Š J“  Þ xè sa¡Õ¡Û¡ ß¡ê¡ó¡¢¢+¢ =¢J¢[¢l¢¢ ‘¢ ›¢©¢Œ¼¢(I£r£1’£Ä£ á£î£ þ£" ¤</¤Bl¤Z¯¤* ¥5¥µM¥6¦-:¦Yh¦¦p˦ <§7I§f§Cè§,¨3¨.D¨s¨¤ƒ¨(©%8© ^©i©|©©­©Æ©Ù©Sê©k>ª ªª¸ª ¾ª̪ éªóª «9«I«Ú]«8¬W¬ f¬²s¬€&­§­ «­¹­Ï­Ö­2í­( ®I® P®?]®®¦®¯®¸® ¿®MË®¯(¯;¯}J¯ȯ%ѯ ÷¯ °&° E°Q°Y° h°s°#ˆ°¬°̰Û°ð° ±%±A±Z±s±Œ±¦±¿±ű رå±Cë±,/²"\² ²\Œ²?é²)³*8³c³j³}³…³—³®³ȳÛ³ì³!õ³´'´ .´ 8´E´"M´Ep´ ¶´Á´iÚ´ DµNµ kµyµW”µ ìµùµ ¶$¶=¶5M¶Bƒ¶ƶ×¶Cç¶;+·g·n{· ê·õ·¸ ¸¸/¸C¸X¸h¸~¸ ”¸¢¸ ¸¸¸á¸æ¸ù¸¹ ¹ ¹¹ #¹#.¹R¹GZ¹q¢¹º$º+º>º [ºõgº]» o»z»» £»®»Á»ß»+综0¼E¼Y¼Eq¼/·¼$ç¼3 ½ @½5a½ —½£½(»½/ä½D¾$Y¾/~¾!®¾6оx¿S€¿Ô¿8ð¿*)ÀnTÀ%ÃÀéÀúÀ#Á&'Á¥NÁCôÁ8 VÂ`ÂvÂR}ÂRÐÃ<#ÄÓ`ÄŸ4ÅÔÅÙÅ âÅ íÅúÅ ÆÆ 0Æ=ÆNÆ`ÆrÆƒÆ•Æ©Æ ¯Æ½Æ$ÌÆñÆÇÇ1&Ç XÇ(cÇŒÇ"¡ÇÄÇ2ÔÇ[ÈcÈtÈ4„Èv¹ÈA0ÉrɑɱÉcÊÉ?.ÊnÊ\€ÊOÝÊV-˄˓˭ËÌËâËéËüË)ÌIDÌ*ŽÌ5¹Ì(ïÌÍ8!ÍZÍ cÍnÍ…ÍŽÍ  Í®Í ÀÍÎÍáÍêÍûÍ ÎÎ(Î<Î WÎúbÎ ]Ï jÏ wÏƒÏ“Ï¨Ï ºÏàÅÏE¦ÐìÐ ÑÑÑ Ñ)Ñ-.Ñ \ѱgÑ*ÒDÒLÒEhÒ"®Ò#ÑÒõÒÓäÓüÓ Ô ÔÔ'Ô;ÔLÔ RÔ`ÔzÔ ÔŽÔ*–Ô ÁÔÎÔÓÔ ìÔ5 Õ!CÕeÕ jÕwÕ¾~Õ†=Ö_ÄÖ$×ë8×Þ$Ø ÙÙ Ù Ù )ÙM3Ù6Ù[¸ÙõÚm Û^xÛQ×ÛÖ)Ü Ý ÝÝV+Ý‚Ý’Ý˜Ý ©Ý¶ÝÍÝ åÝ ðÝ ûÝÞ Þ "Þ -Þ:ÞNÞVÞ$_Þ„Þ+“Þ ¿ÞÌÞãàÞ…Äß{JàKÆà áá7áGá_ápát†áBûáI>âkˆâOôâDãdãsãzã‚ã“ã~¯ã.ä Gä!SäuäŒää ´äÂäáäñäu å€åNævOæ+Ææ/òæ%"çHç>^ç3çÍÑç/ŸècÏè¢3é®Öé¾…êüDë2Aì tì슈ì…íe™í”ÿí­”î‡Bï™Êïwdð£Üðk€ñìñòñ?øñ=8òGvò\¾òfóX‚óÛóQâó4ô=ôCô Tôbô rô }ôˆô £ô±ô ÅôÓôØôïôõô úôõ õÑõñõ)ön,ö›ö­ö%¶öÜö<üö"9÷\÷e÷.x÷§÷QÆ÷ ø{%ø¡ø²øÆø×ø çøòøù ,ù 6ùAùZùsù=xù ¶ù Ãù9Ðù0 úN;ú Šú—úµúÏúØúOéú9ü2Hü{ü ü Œü™ü ü ¥ü¯ü¿ü ÐüÛü òü ÿüF ý/Tý&„ý«ý_¼ýBþ_þ-rþ þ ¨þµþ¾þÇþ×þîþÿÿ 0ÿ <ÿIÿ$\ÿÿU‡ÿ0ÝÿbAqX³k dxQÝl/LœOé\9`–K÷MCY‘?ëb+_ŽhîSWo«hM„gÒk:U¦Jü]G L¥ Rò WE h a Fh  ¯ » Ö ë    !< !^ €   ¼ Ñ "î  # 6 K d x ’ © ¼ Ö ê .Ka  ºÖí!?_!u—­ÂÔå+J–]ô !27LH •$¶(Û 0:?P T ^l… œ¨½ÓÛ ë+õ+!Mc j w… ˆ“£ ¼ Æ ÐÚêþ,> Yf|¯›K=j¨ ºÆØçöÌ+ø*A\ûa ] k4y˜® G U)c  ®3¸Fì03)d3ŽÂÚöù*  5¦Bé ò þZ dxЉ^-s,¡!ΆðKwFà ' E )Y ƒ ‹ ’ \˜ õ ý !!-!A! V!d!i!y!ˆ!!  !ª! ¯!¹!Í!CÝ!5!"+W"Cƒ"ÅÇ"Q#%ß#+$ 1$$R$w$%‘$·$Ö$>ó$2%H%e%$w%œ%°%¸%¿%Ç%Ö% ë%õ%&-& F& S& _&¾m&",'O' _'/j' š' ¥' ²'¿'Å'Ö'æ' õ' ( ((!(1(C(3L(€( †(“(™(¡( °(¾( Æ( Ò( ß( ì(Lú(0G)$x))`¬)C *Q*+b*Ž*—* ©*¶* Ì*ÍÖ*\¤+, , , (,*2,],f,7m,<¥,Nâ,1-E- K-Y-$`- …-’-–--¯-I¾-.. ,.:. B. P. ^.j. y. ….6“.Ê. â.î.ô./ &/0/N/6l/£/ «/Ì/Õ/e0k0p0 ‡0”0£0 ³0Ô0ç0÷0 11&191 @1N1^1p1 €11¥1·1Ì1Þ1í122&2=2rQ2Ä2!Ó2@õ2639R3%Œ3 ²3½3Ó3+ï34 54(B4/k4;›4×4 à4ì4õ455&5 65B5X6 _6k6s6ƒ6 ”6- 6 Î6Ü6 ã6í6²þ6±7¶7É7Ú7 é7ô7 88 .8O:88Š8<Ã8M9N9:^92™9 Ì9Ø97á9 :‘#:"µ: Ø:ù:;/;C;d^;Ã;.É;'ø; <.< 5< B<L<3]<‘< = = '=2=P=V= n=x=~= …=‘=™=ž=¥=ã¸=œ>¹?ž×?9v@°@Ï@}ê@fhAKÏA2B5NB„B-žB@ÌBe CsC|CICËCÔC éC öCD DD D2DDDLD SDaD vD€D’D©D¹DÕDíDõDþD E EE.7E$fE&‹E²E¸E2ÉE üEF!FAFOXF3¨F8ÜF(G>GhQGKºGH6H RH1_H‘H–H ©H ³H ½HÇH!ÐH}òH®pI)JËIJK3K(EK*nK™K³K"ÑKôK L8L¡WLùLAM[M8ùM>2NJqN,¼N2éNyO„–OsPP;®P:êP%Q<AQ‘~QR?0ROpR©ÀR§jS™T]¬T" Už-UÌU*ëUV &VÊ3VBþV§AWSéWY=Xf—XFþXLEYr’Y?Z+EZ)qZ(›Z'ÄZ&ìZ6[/J[1z[?¬[ªì[/—\>Ç\Y]%`]Ɇ]\P^b­^¡_²_ Í_Iî_@8`5y`?¯`^ï`#Na/ra;¢a,ÞaM bJYbN¤b‰ób }c‡c –c¤c ´cÁcÇcÌcÒcâcèc{ïc\kdÈdŽXepçeXfúofQjgU¼gih*|hJ§iÄòi~·j 6k@keVk ¼kGÉk ll4l:lPlfl mlyl Œlšl¢l³lÄlÖlÛlálälDèlE-mHsm ¼mÊmçmûm n &nU2n ˆn–n¦n½nÑnänøn o o o+oe:o  oÖ­o)„p®p!Ép(ëpq@/qžpqÍr‘ÝrFosy¶s:0tHktH´týtu…#u©u:v @vKv`vÏrvBwWw fwrw „w w›w!®wÐw Ùwäwýw xx0xBx Sx`xqx"ƒx¦x-·xåxdÿxdy:vy%±y×y/Ýy z z4(z]z„vzöûzò{#|&'|&N|¸u|:.}i~“jPþÈO€¼ÕÝ'û¿#‚Jãƒk.„ š„»„Õ„Ôè„t½†N2‡‡ ‡‡J’‡ ݇ë‡ þ‡ ˆˆ¸1ˆ·êˆÅ¢‰œhŠŒŒ9ŒVŒjŒjŒìŒ­Å ËÙí¤ý¢Žh¦Ž((87a3™+Í2ù%,1R%„1ª.Ü8 ‘MD‘@’‘¶Ó‘wŠ’€“Uƒ“6Ù“€”;‘”BÍ”2•sC•!·•<Ù•+–3B–Zv–JÑ–—î<—p+˜‹œ˜7(™Q`™7²™ê™†þ™…šš·šgÊš2› P› q›_{›4Û›sœ]„œ,âœ6$FkŠ¥S¹% ž!3žsUž/Éž8ùž'2Ÿ ZŸ[{Ÿ]ן;5 ?q !± Ó ¿í ­¡-¢1¢I¢ P¢ [¢e¢t¢x¢ }¢w‡¢ÿ¢££/£C£]£|£Œ£ž£ ¤£Å£ ä£ñ£'¤Q0¤ ‚¤Œ¤>ž¤<ݤ ¥(¥7¥I¥Y¥k¥~¥Ž¥¢¥±¥Á¥Ñ¥{⥤^¦ §§§ 0§ >§ L§W§u§&z§v¡§w¨1¨î¨±©JÑ©ª"«5=«s«…«@—«ŠØ«~c¬â¬ ñ¬÷û¬ ó­þ­7®yQ®˯1Û¯ ±±D)±In±¸± Á±™Ë±Xe²¾²Ô².ì²n³г¥³Á³Ó³,Ù³s´z´“´®´µ´Æ´Þ´(ó´µ +µ7µ*Mµxµ>µw̵FD¶F‹¶ Ò¶ à¶;î¶x*¸p£¸+¹'@¹¶h¹@º‚`º2ãºö»} ¼Í‹¼wY½dѽe6¾©œ¾]F¿B¤¿ç¿ÒuÀ5HÁ•~ÁQÂf vÂ7—Â$Ï ôÂÿÂ"Ã*:ÃeÃ|à ‚ÃéÃÈÃâÃöÃ+ Ä9ÄYÄqÄ!‘ijÄÒÄðÄ&Å-ÅCÅhYÅÂÅYÙÅ3ÆMÆ]Æwƃ“ÆÇ6ÇMÇ(TÇ=}Ç»Ç]ÃÇ!È•7ȆÍÈTÉZÉbÉuÉ(ˆÉ±ÉÌÉèÉÊÊ0Ê PÊqÊŠÊ›Ê!¸Ê¢ÚÊQ}Ë>ÏËYÌ:hÌ£Ì´ÌÆÌ)ÛÌMÍISÍnÍ8 ÎEÎÑ\ÎG.Ï8vÏ”¯Ï DÐNÐÐÐFáГ(ÑR¼ÑÒÒ(Ò,.ÒÇ[Ò#Ó66Ó mÓxÓŠÓÓ!»ÓÝÓõÓzÔ¡€Ô "Õ,Õ1ÕAÕ _ÕiÕ†ÕZ‹ÕæÕÖ(×H× X×f×·hØ Ù$Ù5ÙSÙ)ZÙ5„Ù<ºÙ÷ÙÿÙpÚ ‚ÚŒÚ ”ÚŸÚ¨ÚzºÚ(5Û^ÛzÛ‘ÛTÜ=cÜ¡Ü7´Ü5ìÜ "Ý ,Ý 7ÝBÝTÝ'sÝ6›ÝÒÝ/ñÝ%!Þ*GÞ+rÞ(žÞ(ÇÞ'ðÞ)ß&Bßißpß ß›ß^¢ß2à+4à`àktàTàà5á0Há yá„á•áœá&·áÞáýáâ *â%5â[â râ €âŽâŸâ0¦âV×â.ã6ãxNã ÇãÕã ôãþãsääžäºä8Ðä å6åhPå¹åÉåXØåJ1æ|æ~–æ ç#ç3ç :çEçYçrç Šç˜ç®çÇç×çñç&è'è/èFèYè^è dèqèyè8ŒèÅè Íè Øèæèùèýèé +é=6é!tê –ê( ê%Éêïêë$ ëEëCMë ‘ë²ëÉë çëfì3oì&£ìJÊì!íB7ízí%”íAºíBüíf?î3¦îFÚî%!ïFGï{Žïl ð$wðWœð$ôð†ñ4 ñÕñçñ íñ1ò@òRFó<™óÖó0ìóôÇ%ô–íõU„öÚößô÷ Ôøàøðøùù'8ù`ù~ù”ù²ùÐùéùúú9úAúRúMdú%²úØúïúEûKû5Zû$û-µûãûGúû†BüÉüÚüCöüË:ýQþ'Xþ0€þ!±þeÓþ]9ÿ—ÿ‡¬ÿk4{ 2+>^¸¿#×3û@/DpGµý   ,#9]f•²Ãßçù' 5D-] ‹G˜ àí þ 9RbY{Õéý  @) jõw<m ª $³ PØ !) 9K … Ÿ  ¸ Å  Ì Ö Ý ô   $ (3  \ h  { %ˆ  ® ¼ $Ä *é 0 +E q € ’ ò˜ ª‹œ6Ó6çA `m s Šƒ—O|kžè ‡m(t–, 8Qigƒë '7P mz£º ÎÛë  "7LMš«9È¢”¥s: ®+¼è,ø%B{WNÓ]"}€ZþY  y š ¡ © '½ ©å ! ©!,µ!â!ü!"(":"Z"#l"ž"/#F¯#ö#3‡$.»$%ê$%S!%2u%¨%T¯&~'Ƀ' M(²W)x *?ƒ+Ã+Õ+‹Ú+½f,g$-‹Œ-Ñ.žê.¥‰/—/0¨Ç0ˆp1ù1ÿ12222 #202 72dB2§2«2³2É2Ú2ó2333I3Z3v3‡3‹3¨3¯3 ·3Å3Ô3Dî335/S5 ƒ5$6 =6-I6!w6 ™6(¥6Î6×6=ó6917Wk7Ã7‚Ö7Y8m8†8š8 ­8»8Ú8ö8 ý8(909P9]U9 ³9¿9\Ð96-:fd:Ë:'â:! ;,; =;Ú^;9==P=Ž= ”=¡=³=¸=¾=Í=ç=>'>?>O>Sb>C¶>1ú>,?`H?V©?@A@]@c@x@@Š@¥@½@Ù@÷@A %A 2AB@AƒAJŠA$ÕAsúA;nBpªB}C™CiD]ƒD‚áDcdEVÈE_FtFVôF{KGDÇGq HW~H\ÖH3I‚µIy8Jr²Jm%K[“K]ïKMMLx›LeMMzMJÈMkNgNOçN7OPOjOrO ƒOŽOªOÇOàO÷OPP-PCP RP]P nP{P ƒP‘P¡P§PºPÁPÈP ØPâP ûPQQ 1Q?Q XQ cQnQŠQŸQ ½Q#ÉQíQRRR#R9RNRURsRœyRS/SDS US_ShrS?ÛS0TFLT!“T µTÖTêTíTU UU&+URU oU|U™U ¶UÁU ÕUBàU*#VNVeVnVVV“V¢V"¾V áV íV úVWW*6WaW|W'™WÁW#áW.XÙ4X"YL1Y~Y˜Y®YËYÞYûYZ&)ZPZ$S[\x[$Õ\ ú\+]0^B^>T^¼“^ P_ \_1j_+œ_ È_ Ö_à_ä_ê_ ñ_ý_&`'`*`6=` t`È`JaSafa–va b(b¹Abzûb.vc:¥c9àcœdG·d ÿd e/eDe:ae œe ©e ³e}½e ;f GfUfofŠf£f ½fÉfÍféfþfg"g 1g !„@`„e¡„…F%…Il…¶…Ò…Sæ…:†§P†"ø†+‡"G‡1j‡.œ‡+ˇk÷‡ cˆmˆ9tˆ®ˆ Àˆ ˈ ؈äˆYúˆT‰ â‰ î‰ø‰! Š-Š5Š OŠYŠ `Š nŠ zŠ…Š‰ŠŠP¨ŠŠù‹%„éª1”ŽÆŽߎeñŽbWhº:#B^+¡ZÍM(‘†v‘ý‘’I ’U’[’p’ƒ’ ”’¢’·’½’Ú’÷’þ’““,“3“E“[“p““«“ ´“À“ Õ“ à“$í“=”2P”Pƒ” Ԕߔ3ó”'•'6•-^•#Œ•p°•=!–B_–3¢–Ö–}ò–fp—×—@ì—-˜5?˜u˜!{˜˜±˜ ˜ ИÞ˜Šû˜̆™&Sš„zš"ÿš"›-2›/`››¦›*Á›ì›œ:œÈSœL6΃=RžBžYÓž&-Ÿ2TŸx‡Ÿƒ ·„ ,<¡Bi¡7¬¡ä¡ 졊÷¡‚¢2¢WТì(£ö¤¸ ¥cÅ¥!)¦ÍK¦§64§k§ {§ ‰§Q“¨å¨Tè©t=ªˆ²ªf;«_¢«¦¬<©¬8æ¬7­*W­1‚­/´­Bä­5'®6]®L”®Ðá®A²¯Wô¯ L° X°Fy°aÀ±„"²Ч²x³³Mª³9ø³C2´ov´næ´+Uµ:µQ¼µQ¶R`¶a³¶o·¤…· *¸4¸C¸Z¸s¸ …¸¸•¸œ¸³¸ ¼¸¨Æ¸„o¹¢ô¹¼—ºµT» ¼U¼„s½ø½›z¾¡¿u¸Àå.ÁžÂ³Â(ÌÂõ†Ãz ÃÄ$Ä 6Ä/CÄ"sÄ–Ä Ä,ªÄ×ÄæÄîÄÅÅ5Å:ÅCÅJÅYNÅP¨ÅbùÅ\Æ)kÆ&•Æ9¼ÆöÆÇw ǘǫÇ#ÂÇæÇÈÈ4È IÈTÈ dÈ rȆ€È ÉéÉ=ÿÉ2=ÊApÊ5²Ê èÊv ËÓ€ËTÌÅhÍj.ζ™Î PÏ[ÏcÏ(lÏ•Ïâ¨Ïð‹Ð|Ñ „Ñ Ñ°ÑöËÑÂÒâÒõÒ Ó+Ó ;ÓFÓ,^Ó ‹Ó ™Ó¦Ó¾ÓÐÓ æÓÔÔ.Ô=ÔTÔ-jÔ˜Ô­Ô(µÔhÞÔGÕbXÕ-»ÕéÕPîÕ?Ö XÖUdÖ:ºÖšõÖ@×ÑØ.ëØ-Ù8HÙáÙUcÚB¹Û¤üÜ|¡ÝÞ&ßFà!Oà-qàRŸàiòâ™\ã"öãä/äp@är±æ€$ç¥ç ©ç´ç¹çÍçèçñçõçÓèòæè ÙéÕãê¹ì)Øìíí <ív]í&Ôí ûíÓ îÝî ãîñîïÇïßï‚åï/hð*˜ðPÃð6ñ2KñK~ñ#ÊñNîñ(=òIfò<°òCíòq1óM£óñó’õ¼¡õh^ö6Çö¯þö6®÷Uå÷*;øtføÛø3úø8.ù;gùb£ùfú6mú¤ú“¾û§Rü9úü`4ý@•ýÖýšèý#ƒþ§þÅþ€àþ aÿ-‚ÿ°ÿ–¹ÿLP…p#7”BÌ/.^xbŽ.ñ §:7âO2j+[Éo%A•Y×31&eŒ¼MQYa s  ” ~³2 C U k  ‹ ˜ ®  Á Ë  Î Ü ò !ù    . 8 9L 6†  ½ Ç Ï Ø ß  è ò  ù     «" ÆÎ  •  ¡  « ·  Æ Ð  Ù ä ì :ô ./ ^ ¤ä "ú¡þJœÈ¿Á¾'8ñòšÖÎAQ=ÁG;º[tï¹’„‰–) X‡©6"6¸,ÜOÞãg¡ ¹±µ#+‘S)B4§Ð2nlBmTOá¦ç%?Nú“Ëfi‡È±38V¹?êØ²jùéxìgpðnœ—! ¼)ìTíÜ_-‘üíò,†÷9ߥC–O0Y3$‰aõ±>W½e7Ýëã&©">¦; ö§½ô†ÍRžž?ôJTtÀ(j_š™ÕÃ`íŒwºÍÜ>‘zz’ÚÑëf°.ú—ý}ü1¤#Ó냶Þüø")'è€À*f<á°8¤áVKÄœ9Å…©ß/µõ ”ÖZ À‚PŒ~NiçÏ4#ÂSÅÝÂȯgcuØY²ÔF!ÒÀ ×—˜NmÜ=>v0Žá`BÔáYî«(æ´Hày/žJyïØâéoRLÌöÎÞhŽ€"¾È¥3D5êN L*Ø0§$j…ºê;!eQJ¥‡—™}ÁšÉA,­‰úòZ¶¿å›:k~Xè’& hÑëû¯¥H¹ßŸkb•cDäÍSïX é¼I1jRß‹ªÂvE”/AàÒ·Ù&ìžó®2eï•Dd ¦¿IK‹ó=e¢Ì¬ã×Õéxlýx#C~qŽÏ6”ÁZFgm/}ÂúàžÎ¸|â;uVȘ™"°âÅNrê‹ê«„ý¾pî_œO ñÌä=rMQYQ^>UÔ½ô¢×€Ò=ÊÝ<h˜Œ°Ž&ä˜8oïûÚPÊÜ·’Çy“Ð,Eú…{*S\Ÿ„M]( >%ÓP!ÏøM-7sdzo6@®ød*ÆÛ3Ïfhʉ‘5î7™ ÕÅOÎŒ£^àû»ù˜1Ú0 ü0”7ÈùH¤³¢– £ÿ%w¨èh¿ÒXMÁ—1‰]9Ûˆ2P<B³zÀ¨f5^ÆRvŒµ' × -<…¤ÛT®Ç;[£2KÁ™¨r»ct~ÆD÷}ÙÏ«æqŸ ¼ëø/Íæw®WÓù£¸ÇZøPžF$Z±!|°@X¢¥šôõÂ;à”j¶Ð&­\O(¼Ë)+cî®Çbï¬óÅuÛd*ñPbë`Éö*¼Wl¹qô`Þ˜ n.é6ÖÉ‹!¶F¡@Šèÿ WÜ0†Æ[~«Í}Ô5:þ{ã%/<wU („rVh28–vŸˆ¦Ø¼“›Îª²ÓÅðÃçÖýMCºŸ:·9²™4Ê„B7]§2›reĪå†%ɇ ¨²jQ ùÚClLCÝÕ´4Ý4Çõöé1þ9þ&5,L3üåSà´i<ƒ íd(¥ƒ{4'»ç›MY¡6€i²)ûîªb¬än×g/ {½Ìþèå)òì¨IÌ+75­’µQk\ ]ဠ÷´Gåv+›'`®HÊTÛ³yÚXG÷>ÞDо³E‡C¡ ·l©ÒJ{u^?TæfÙå(w1¶aÙ8$ƒ|¦dиôÿ† FmBÓø1ƒ\•?apË EЯ_LN…   b¢J$ê|¹ÿ[›zín#Fœ¿OÔ%4-6s+‘ʧµÉÄmpÞ9ñŽÓ@‡sREkbS%*=šíˆqã¾ÐM¨ˆU2 £Àþ¯¸‚ˆ[:‚”­ütä@\-^¿ðVÌK‘Hù[ ŽØªÄ<ˆ{Dlñ»Kk¯‚·ìó|ËñòËÛ=ðou_×ç‰v„niÑGmæ,dýH_g7ª;zÕ Ú·u“ºÖU¬zP^¯ð•ó³q°.«3ýScÂxwèâîNr IÎ ‹DÖì 犡:W–¸oóAIÄŸB|s±ßR?,­x«ÿ-LKxq¬;oº½a»±.òÄ# µ“Y5£ H"'EÑ ©¦©eÝû´û¤æ&?ƒ÷‹`ÕGÙR‚ÆA@÷IÙ’.¢ãÊaWE]–Ë €ÑÏÒÆŠ$G +y¬8JV~Ôâ†\TK#tœQ-I½•öŠ“§­}aŒ0õÃ.yFpöûâUÑA is¶C—k+É!.ß9ÿpõ3]•ðA L´:š…$:UsÃG@tZ'‚c (Opens in new window) or Cancel and go back to the settings."Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on).# of Tweets Shown:%1$d Food Menu Item%1$d Food Menu Items%1$s %2$s Views%1$s – %2$s%1$s (%2$s) thinks you may be interested in the following post:%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = deactivation URL, %2$s = "Deactivate {list of Jetpack module/feature names}If your site is not publicly accessible, consider deactivating this feature.If your site is not publicly accessible, consider deactivating these features.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%l = list of Jetpack module/feature namesLike your site's RSS feeds, %l allows access to your posts and other content to third parties.Like your site's RSS feeds, %l allow access to your posts and other content to third parties.%s (Jetpack)%s (Required)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s could not be disconnected. Are you sure they're connected currently?%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is not a valid command.%s is not a valid module.%s is required%s px%s requires a valid email address%s wants to access your site’s data. Log in to authorize that access.%s was not activated.%s was not deactivated.%s: %s« Previous← Older Comments— Select —(Shows %s posts on each load)(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s3999 Mission Boulevard, San Diego CA 92109404 error pageActivate NowActivate Now or return to previous page.Click here to refresh this list.Learn more about these options.% Replies1 Reply

        Activate Site Management to manage multiple sites from our centralized dashboard at wordpress.com/sites. Learn more.

        Activate Now%4$s« Back to Gallery« Older%d bloggers like this:%s Activated! You can deactivate at any time by clicking the Deactivate link next to each module.%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. The Display WordPress Posts Widget lets you display up to ten recent posts from another WordPress.com blog, or a self-hosted WordPress site with Jetpack enabled.The Facebook Like Box Widget shows your Facebook Like Box within a sidebar on your theme.The Gallery Widget provides you with a simple way to display a photo gallery or slideshow in your blog’s sidebar. Requires the Tiled Gallery module.The Gravatar Widget allows you to pull in your Gravatar image along with some of your Gravatar profile data.The Image Widget lets you easily add images to a sidebar on your theme.The Twitter Widget shows your latest tweets within a sidebar on your theme.The Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentA known issue.A problem with your XMLRPC file.A simple widget that displays social media icons.A theme conflict.ActivateActivate AkismetActivate Jetpack ProtectActivate Site Management and JSON APIActivate nowActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New ComicAdd New Menu Item LabelAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd One ItemAdd Site IconAdd These New Menu ItemsAdd a Site IconAdd a new fieldAdd a new post or page to any of your sites from a single interface.Add a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Add-onAdd-on CSS (Recommended)Additionally you can define your own custom services.Address:Adjust your Jetpack Comments form with a clever greeting and color-scheme.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.AlbumAllAll ComicsAll DoneAll Menu Item LabelsAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAll taxonomy pagesAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlphabeticalAlternate text:An %s AirlineAn Automattic AirlineAn active access token must be used to retrieve post counts.An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.An incompatible plugin.An invalid request was made. This normally means that something intercepted or corrupted the request from your server to the Jetpack Server. Try again and see if it works this time.An unknown error has occurred. Please try again later.An unknown error occurred during installationAnswer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to disconnect from WordPress.com?Are you sure you want to exit the form editor without saving? Any changes you have made will be lost.Are you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to General SettingsBack to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:Blog follow email textBlueBoost traffic, enhance security, and improve performance.Border Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryBrowser ChromeButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.By checking the box above, each new set of posts loaded via Infinite Scroll will be recorded as a page view in Google Analytics.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I send a notification to more than one person?Can I view my feedback within WordPress?CancelCancel replyCannot deal with cookie redirects, as headers are already sent.Caption:CarouselCategoryCenterChange logoChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Check for SpamCheck out other recommended features below, or go to the settings page to customize your Jetpack experience.CheckboxChecking email updates status…Choose ImagesChoose from the most used LabelsChoose from the most used tagsChoose logoCirclesClichésClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on %sClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseClose modal windowColor SchemeComicComic draft updated. Preview comicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsComing soon…CommentComment Likes areComment cache problem?Comment follow email textComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnectConnect and share your posts on %sConnect now to enable features like Stats, Likes, and Social Sharing.Connect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnected as:Connected to WordPress.comConnecting with WordPress.com SSO enables you to log in via your WordPress.com account.Contact FormContact Form URL:Contact InfoContact the Jetpack Happiness Squad.Continue →Continue reading →Control which pages your widgets appear on with Widget Visibility.Convert to ComicConvert to PostCould not obtain a VideoPress upload token. Please try again later.Count the page views of registered users who are logged in.Create Share ButtonCreate elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCurrently ReadingCustomCustom CSSCustom CSS StylesheetCustom Content TypeCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDebugDebug InfoDebug Jetpack for more information.DefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDescriptionDevelopers can use WordPress.com's OAuth2 authentication system and WordPress.com REST API to manage and access your site's content.Diacritical MarksDifficultyDisable CSS and JSDisable Post By EmailDisconnectDisconnect JetpackDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display featured imagesDisplay higher quality video by default.Display images in full-size carousel slideshow.Display share menu and allow viewers to embed or download this videoDisplay tag content in all listings.Display upcoming events from an iCalendar feed.Display your books from GoodreadsDisplay your location, hours, and contact information.Displayed below your posts will be how many people have liked your posts and the Gravatars of those who have liked them.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do I need to fill this out?Do not allow other users to access my VideoPress libraryDo you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Don't show the Reblog button on postsDouble NegativesDownloadDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downDrop images to uploadE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each module has an Activate or Deactivate link so you can toggle one individually.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.Easily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit DetailsEdit Menu ItemEdit Menu Item LabelEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail Address:Email check failed, please try againEmail me wheneverEmail notificationsEmail settingsEmails will be sent to %s (Edit)Empty SpamEnable Portfolio Projects for this site.Enable Post By EmailEnable Testimonials for this site.Enable carouselEnable excerpts on front page and on archive pagesEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Enter your meta key "content" value to verify your blog with %sError Details: %sError Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %sError Details: Jetpack ID is empty. Do not publicly post this error message! %sError Details: Jetpack ID is not a scalar. Do not publicly post this error message! %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example of a phone number1-202-555-1212Example:Example: The user is looking at a page, not a post.PageExcerptsExplain...Export feedback as CSVFacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFacebook username:FeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Feedback(s) marked as spamField typeFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.First optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFood MenusFor example, if you wanted the Archives widget to only appear on category archives and error pages, choose "Show" from the first dropdown and then add two rules: "Page is 404 Error Page" and "Category is All Category Pages."For example, spicy, favorite, etc.
        Separate Labels with commasFor more information:Form builderFormat:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!Full management mode is off for this site.GalleryGallery Carousel ScreenshotGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGet the most out of Jetpack with...GitHub username:Give Us FeedbackGive your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGoodreadsGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:Here’s what your form will look likeHidden VerbsHideHide all featured imagesHide related content after postsHide tag from displaying in post meta and tag clouds.Hide the stats smiley face image.HomeHours & InfoHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.If none of these help you find a solution, click here to contact Jetpack support. Tell us as much as you can about the issue and what steps you've tried to resolve it, and one of our Happiness Engineers will be in touch to help.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.If you get a 404 message, contact your web host. Their security may block XMLRPC.If your problem isn't known or caused by a plugin, try activating Twenty Twelve (the default WordPress theme). If this solves the problem, something in your theme is probably broken – let the theme's author know.Ignore allIgnore alwaysIgnore suggestionIgnore the difference. This is just a staging site for the real site referenced above.Ignored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedImages:InactiveInclude this CSS in the Mobile ThemeIndexing postsIndexing request queued and waiting…Insert VideoInstagram username:Instead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid User ID, please verify and re-enter your Goodreads numeric user ID.Invalid idInvalid or expired nonce.Invalid requestInvalid security token.Invalid usernameIs this site private?It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.It's ready to bring awesome, WordPress.com cloud-powered features to your site.Items on your restaurant's menuItems to show:JargonJetpackJetpack CommentsJetpack Comments ScreenshotJetpack Comments enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site.Jetpack Debugging CenterJetpack FAQJetpack Network Settings Updated!Jetpack Plugin VersionJetpack SettingsJetpack Single Sign OnJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is installed!Jetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will allow you to authorize applications and services to securely connect to your blog and allow them to use your content in new ways and offer you new functionality.Jetpack will automatically take the great published content from your blog or website and share it instantly with third party services like search engines, increasing your reach and traffic.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJump StartJump to:Jumpstart DescriptionTwitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content.Jumpstart Descriptionadds a button to your post and page editors, allowing you to build simple forms to help visitors stay in touch.Jumpstart Descriptionbrings your photos and images to life as full-size, easily navigable galleries.Jumpstart Descriptiongive visitors two easy subscription options — while commenting, or via a separate email subscription widget you can display.Jumpstart Descriptionhelps you remotely manage plugins, turn on automated updates, and more from wordpress.com.Jumpstart Descriptionkeep visitors engaged on your blog by highlighting relevant and new content at the bottom of each published post.Jumpstart Descriptionlet commenters link their profiles to their Gravatar accounts, making it easy for your visitors to learn more about your community.Jumpstart Descriptionlets you login to all your Jetpack-enabled sites with one click using your WordPress.com account.Jumpstart Descriptionmirrors and serves your images from our free and fast image CDN, improving your site’s performance with no additional load on your servers.Keep up with the latest happenings on all your WordPress sites and interact with other WordPress.com users.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLabels: spicy, favorite, etc. Separate Labels with commasLanguageLargeLarge Blog ImageLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes allow your readers to show their appreciation for your posts and other published content using their WordPress.com accounts. Your readers will then be able to review their liked posts from WordPress.com.Likes and SharesLimit must be greater than or equal to 0.Limit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link Color (hex):Link To:Link URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinkedIn username:Links to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoad your XMLRPC file. It should say “XML-RPC server accepts POST requests only.†on a line by itself.Loading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Log in with WordPress.comLogged InLogged OutLogin Blocked by JetpackLogin method not allowedLogoLunch: 11am - 2pm Dinner: M-Th 5pm - 11pm, Fri-Sat:5pm - 1amM j, Y @ G:iMain SidebarMake this connection available to all users of this blog?Manage your Publicize settings.Manage your Post By Email address from your profile settings.Mark as SpamMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMarkdown lets you compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text, without having to take their hands off the keyboard, and without learning a lot of complicated codes and shortcuts.Match by EmailMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu Item LabelMenu Item LabelsMenu ItemsMenu Items re-ordered.Menu SectionMenu SectionsMenu item draft updated. Preview itemMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item scheduled for: %1$s. Preview itemMenu item submitted. Preview itemMenu item updated.Menu item updated. View itemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile App PromosMobile AppsMobile ThemeMobile-compatible:Modal window. Press escape to close.Mode:Module DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAdd a site icon to your site.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionCheck your spelling, style, and grammar with the After the Deadline proofreading service.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionProtect your site with automatic backups and security scans. (Subscription required.)Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionShare your public posts and comments to search engines and other services.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUpload and embed videos right on your site. (Subscription required.)Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameJetpack CommentsModule NameJetpack Single Sign OnModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NameProtectModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule NameWordPress.com StatsModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagJumpstartModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSocialModule TagWordPress.com StatsModule TagWritingModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Module not found: `%s`.Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Publicize.More information on using Related Posts.Move menu section downMove menu section upMy TweetsNameNetwork SettingsNewNew ComicNew Menu ItemNew Menu Item Label NameNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNew in Jetpack: Centralized Site ManagementNewer »Newer Comments →NewestNext »Next » NoNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo LabelsNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Modules FoundNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo blog_id was included in your request. Please try disconnecting Jetpack from WordPress.com and then reconnecting it. Once you have done that, try connecting Publicize again.No comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No themes found.No upcoming eventsNo update neededNo user information was included in your request. Please make sure that your user account has connected to Jetpack. Connect your user account by going to the Jetpack page within wp-admin.No writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!Nonce verification failed.NoneNope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don’t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.Not ConnectedNot connectedNote: Custom CSS will be reset when changing themes.Note: Images in tiled galleries require extra-special processing, so they will be served from WordPress.com's CDN even if the Photon module is disabled.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:OKOfficial buttonsOffset must be greater than or equal to 0.Ogg File URLOgg file container with Theora video and Vorbis audio. Note that some browsers are unable to play free software video formats, including Internet Explorer and Safari.Older %sOlder postsOmnisearchOmnisearch plays nice with other plugins by letting other providers offer results as well.On for all commentsOn for all postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Once enabled, a "Log in with WordPress.com" option will be added to your existing log in form.One New Jetpack Module%s New Jetpack ModulesOnly display videos in free software formatsOnly images can be uploaded here.Only the user who initiated the Jetpack connection on this site can toggle %s, but that user no longer exists. This should not happen.Only videos from the selected blog will be available in your media library.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Page %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPinterest username:Plans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please describe the problem you are having.Please enable JavaScript support in your browser to use VideoPress.Please note that the VideoPress module requires a WordPress.com account with an active VideoPress subscription.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please select a video file to upload.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please upload a file.Please verify your birthday.Plugin activated.Plugin can only be Network ActivatedPlugin deactivated.PluginsPocketPopularPopular LabelsPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post converted.%s posts convertedPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts indexed.Posts pagePreprocessor:Press ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize allows you to connect your blog to popular social networking sites and automatically share new posts with your friends. You can make a connection for just yourself or for all users on your blog.Publicize allows you to share your posts on Facebook, Twitter, Tumblr, Yahoo!, and Linkedin.Publicize to my %s:Publicize:PublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RESET EVERYTHING (during testing only) - will reset modules to default as wellRSS Links (Jetpack)RadioRandom Order:RatingReceive Monitor Email Notifications.Recent PostsRedRedditRedundant PhrasesRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove ServiceRemove logoRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyReport visibilityRequire Two-Step AuthenticationRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:Return to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave New OrderSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll InfinitelyScroll back to topSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu Item LabelsSearch Menu ItemsSearch Menu SectionsSearch Modules…Search PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch once, get results from everything! Currently supports searching posts, pages, comments, media, and plugins.Search resultsSee the other %s Jetpack featuresSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.ServingsSet as logoSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShelf:ShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Cover PhotoShow Excerpts:Show FacesShow Featured Image:Show Page Posts.Show Personal LinksShow StreamShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow a promo for the WordPress mobile apps in the footer of the mobile theme.Show buttons onShow falling snow on my blog until January 4th.Show full posts on front page and on archive pagesShow likes.Show mapShow map of photo location in carousel, when available.Show moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSite IconSite Icon UploadSite Icon creates a favicon for your site and more.Site Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site LogoSite NameSite StatsSite Title, Tagline, and LogoSitesSkip to primary contentSlideshowSmallSmileySmiley faceSnippetSnowSocialSocial Media IconsSome features of Jetpack uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, please try requesting a reindex of your posts.Some themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Someone likes one of my postsSomeone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.Something has gotten mixed up in your Jetpack Connection!Something has gotten mixed up!Something is being cranky!Something is wrong with your Wufoo shortcode. If you copy and paste it from the %sWufoo Code Manager%s, you should be golden.Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sorry. We can not plot this address. A map will not be displayed. Is the address formatted correctly?Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStatus unknown.Style:Stylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe Placeholder:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSupportTag nameTagged with %sTagsTake SurveyTake WordPress with you.Take a survey. Tell us how we’re doing.Temporary Large Image for Blog ImageTemporary Resized Image for Blog ImageTermsTerms of ServiceTest your site’s compatibility with Jetpack.TestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial pages display at most %1$s testimonialsTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTesting your site's compatibility with Jetpack...TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.That used to be my URL for this site before I changed it. Update the WordPress.com Cloud's data to match my current settings.The After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Client ID/WP.com Blog ID of this siteThe Custom CSS editor gives you the ability to add to or replace your theme's CSS, all while supplying syntax coloring, auto-indentation, and immediate feedback on the validity of the CSS you're writing.The Facebook Like Box Widget The Image Widget The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe Plugin is already active.The Plugin is already deactivated.The RSS Links Widget The Twitter Widget The Twitter username of the owner of this site's domain.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WordPress.com blog_id is %dThe authorization process expired. Please go back and try again.The data listed above is not for my current site. Please disconnect, and then form a new connection to WordPress.com for this site using my current settings.The default content width for the %s theme is %d pixels.The email you entered was invalid. Please check and try again.The file that you uploaded is not an accepted file type. Please try again.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The image helps collect stats and makes the world a better place but should still work when hiddenThe image needs to be at leastThe image that you uploaded is smaller than %upx in height.The image that you uploaded is smaller than %upx in width.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The plugin is already installedThe preview is unavailable while this video is being processed.The primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The proofreader supports English, French, German, Portuguese, and Spanish. Your user interface language (see above) is the default proofreading language.The settings for Featured Content have moved to Appearance → Customize.The specified theme was not found.The test results and some other useful debug information will be sent to the support team. Please feel free to review/modify this information.The theme is already installedThe widget only works with Facebook Pages.Theme is empty.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There seems to be a problem with your site’s ability to communicate with Jetpack!There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem connecting to %s to create an authorized connection. Please try again in a moment.There was a problem connecting to %s. Please disconnect and try again.There was a problem connecting with Publicize. Please try again in a moment.There was a problem getting the data to display this address on a map. Please refresh your browser and try again.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error installing your pluginThere was an error installing your themeThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There was an error while activating the module.There was an error while deactivating the module.There was an error while getting the update data for this site.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This feature uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, request a reindex of your posts.This gallery contains %2$s photo.This gallery contains %2$s photos.This module can only be altered by %s, the user who initiated the Jetpack connection on this site.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This setting may be overridden for individual videos.This site is too large, please contact Jetpack support to sync.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This video is intended for mature audiences.This video requires Adobe Flash for playback.This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?This will prevent user-specific modules such as Publicize, Notifications and Post By Email from working. Are you sure you want to unlink?ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:To add a new icon to your site, head over to Settings → General → Site Icon, and upload an icon.To configure your sharing settings, go to the Settings → Sharing menu.To control visibility, expand the widget and click the Visibility button next to the Save button, and then, choose a set of visibility options.To customize the emails sent from your blog to your followers, check the settings at the bottom of the Reading Settings page.To enable all of the Jetpack features you’ll need to link your account here to your WordPress.com account.To infinity and beyondTo see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use Jetpack please contact your WordPress administrator to connect it for you.To use Post By Email, you need to link your %s account to your WordPress.com account.To use Publicize, you'll need to link your %s account to your WordPress.com account using the link below.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the CSS editor, go to Appearance → Edit CSS.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTrack each Infinite Scroll post load as a page view in Google AnalyticsTransparentTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter Site TagTwitter TimelineTwitter username:TypeTypesUPURLUnable to create your Post By Email address. Please try again later.Unable to disable your Post By Email address. Please try again later.Unable to regenerate your Post By Email address. Please try again later.UncategorizedUnknown post type requested.Unlink This AccountUnlink user from WordPress.comUnpublishedUnsubscribeUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu Item LabelUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdate Site IconUpdatedUpload ImageUpload VideoUpload a VideoUpload a image that you want to use as your site icon. You will be asked to crop it in the next step.Uploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use Google Analytics with Infinite ScrollUse Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUse a valid email address.Use automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.Use the button below to browse your VideoPress Library. Note that you can also browse your VideoPress Library while editing a post or page by using the Add Media button in the post editor.Use the form below to upload a video to your VideoPress Library. The following video formats are supported: %s. Maximum upload file size is %d%s.Use these settings to display different types of content on your site.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUser linked to WordPress.comUsernameUsing the checkboxes next to each module, you can select multiple modules to toggle via the Bulk Actions menu at the top of the list.Using the tools on the right, you can search for specific modules, filter by module categories or which are active, or change the sorting order.ValueVaultPressVaultPress dashboardVerified ServicesVerifying your site allows you to access advanced features on these other services (e.g. Webmaster tools, or getting a verified badge). We'll just add an invisible %s tag to the source code of your homepage.Video Library AccessVideo Preview:Video on %sVideo post by %s.Video post.VideoPressVideoPress LibraryView %1$s’s profile on %2$sView AllView ComicView Full Profile →View Full SiteView Menu ItemView Menu Item LabelView Menu SectionView Mobile SiteView ProjectView Project TagView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.Vimeo username:VisibilityVisit Site Stats to see your stats.Visit the post for more.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.We could not verify that your server is making an authorized request. Please try again, and make sure there is nothing interfering with requests from your server to the Jetpack Server.We couldn't find an account with the email %1$s to log you in with. If you already have an account on %2$s, please make sure that %1$s is configured as the email address, or that you have connected to WordPress.com on your profile page.We couldn't find any account on %2$s that is linked to your WordPress.com account to log you in with. If you already have an account on %2$s, please make sure that you have connected to WordPress.com on your profile page.We have apps for iOS (iPhone, iPad, iPod Touch), Android, BlackBerry, and more!We were unable to get your stats just now. Please reload this page to try again.We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact support. In your report please include the information below.We’ve changed this option to a click-to-scroll version for you since you have footer widgets in Appearance → Widgets, or your theme uses click-to-scroll as the default behavior.WebsiteWebsite Verification ServicesWelcome to Jetpack %s!Welcome to Custom CSS! CSS (Cascading Style Sheets) is a kind of code that tells the browser how to render a web page. You may delete these comments and get started with your customizations. By default, your stylesheet will be loaded after the theme stylesheets, which means that your rules can take precedence and override the theme CSS rules. Just write here what you want to change, you don't need to copy all your theme's stylesheet content.Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWe’ll also let you know as soon as your site is up and running, so you can keep an eye on total downtime.What should the subject line be?What’s a Hovercard?What's a Gravatar?When adding a gallery to your post, you now have the option to select a layout style for your images. We've added support for Rectangular, Square, and Circular galleries. By default, galleries will continue to display using the standard thumbnail grid layout. To make the rectangular layout the default for all of your site's galleries, head over to Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.When you write great content, all you really want is people to find it, right?WhiteWidget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Widgets ScreenshotWidth (px):Width:With 1 commentWith %s commentsWith Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With WordPress.com Single Sign On, your users will be able to log in to or register for your WordPress site with the same credentials they use on WordPress.com. It's safe and secure.With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.With the Infinite Scroll module and a supported theme, that's exactly what happens. Instead of the old way of navigating down a page by scrolling and then clicking a link to get to the next page, waiting for a page refresh—the document model of the web—infinite scrolling pulls the next set of posts automatically into view when the reader approaches the bottom of the page, more like an application.WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com Single Sign OnWordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are all set! Your site can now be managed from wordpress.com/sites.You are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou are required to specify a capability to check.You are required to specify a module.You are required to specify a plugin to activate.You are required to specify a plugin.You are required to specify a theme to switch to.You are required to specify a theme to update.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can also hide widgets based on the current page. For example, if you don't want the Archives widget to appear on search results pages, choose "Hide" and "Page is Search results."You can also make changes to your Subscription settings at the bottom of the Discussion Settings page.You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You can view your notifications in the Toolbar and on WordPress.com.You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have been subscribed to receive email updates.You have chosen not to connect your blog. Please click 'accept' when prompted if you wish to connect your accounts.You have shared this post with %sYou have successfully connected your %1$s account with %2$s.You have successfully disconnected Jetpack.You must log in to post a comment.You must be logged in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You must specify a valid actionYou need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to enter your numeric user ID for the Goodreads Widget to work correctly. Full instructions.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.You will no longer receive email updates about Jetpack.YouTube channel ID:Your %1$s option is set up as %2$s, but your WordPress.com connection lists it as %3$s!Your API key is invalidYour Custom Content TypesYour Email AddressYour IP (%1$s) has been flagged for potential security violations. Find out more...Your Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your Site Stats work better with Javascript enabled.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!Your answer was incorrect, please try again.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your current IP: %sYour main blog is not connected to WordPress.com. Please connect to get an API key.Your new field was saved successfullyYour site icon has been uploaded!Your site is configured to only permit SSL connections to Jetpack, but SSL connections don't seem to be functional!Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your theme supports %sYour theme supports TestimonialsYour upload didn't complete; try again later or cross your fingers and try again right now.Your video has successfully been uploaded. It will appear in your VideoPress Library shortly.Your video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andas sharing sourceEmailcancelclick hereconfigurecrop the imagedayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in both width and height.in {category/tag name}In "%s"loading…locales%1$s/%2$smonthmy list of books to readTo Readnext-saturdayImage navigationnounCommentor, deactivate Jetpackpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?words{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.Blocked malicious login attempts{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.Spam comments blocked by Akismet.{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Yeni pÉ™ncÉ™rÉ™dÉ™ açılır) vÉ™ ya İmtinaya tıklayıb parametrlÉ™rÉ™ geri dönün."OxÅŸar Yazılar", yazılarınızın altında saytınızdan É™lavÉ™ olaraq É™laqÉ™dar baÄŸlantıları göstÉ™rir. XüsusiyyÉ™t aktivdirsÉ™, baÄŸlantılar PaylaÅŸma DüymÉ™lÉ™ri vÉ™ WordPress.com BÉ™yÉ™nmÉ™lÉ™rinin (bunları açmısınızsa) altında görünür.GöstÉ™rilÉ™n Tweet Sayı:%1$d Qida Menyusu MaddÉ™si%1$d Qida Menyusu MaddÉ™si%1$s %2$s Baxış%1$s – %2$s%1$s (%2$s), bu yazılara maraq göstÉ™rÉ™cÉ™yinizi düşünür:ÆlbÉ™ttÉ™. Yeni bir mÉ™tn qutusu, mÉ™tn sahÉ™si, radio düymÉ™si, tÉ™sdiqlÉ™mÉ™ qutusu vÉ™ ya açılan sahÉ™ É™lavÉ™ etmÉ™k üçün %1$s.BÉ™li, istÉ™diyiniz zaman nÉ™zarÉ™tçi menyusundakı "%1$s" baÄŸlantısına tıklayaraq geri bildiriÅŸinizi oxuya bilÉ™rsiniz.%1$s Yan menyu%1$s %2$sÆsasÉ™n saytınızla É™laqÉ™ qurula bilmirsÉ™ bu xüsusiyyÉ™ti söndürmÉ™yi yoxlayın.ÆsasÉ™n saytınızla É™laqÉ™ qurula bilmirsÉ™ bu xüsusiyyÉ™tlÉ™ri söndürmÉ™yi yoxlayın.%1$s: %2$s%1$s tarixindÉ™, saat %2$s%2$s yazısı üçün %1$s tÉ™rÉ™findÉ™n edilÉ™n ÅŸÉ™rh%l Deaktivasiya edildi! Bunu, istÉ™diyiniz zaman hÉ™r bir modulun yanındakı aktivləşdirmÉ™ baÄŸlantısından istifadÉ™ edÉ™rÉ™k yenidÉ™n aktivləşdirÉ™ bilÉ™rsiniz.%l Deaktivasiya edildi! Bunları, istÉ™diyiniz zaman hÉ™r bir modulun yanındakı aktivləşdirmÉ™ baÄŸlantısından istifadÉ™ edÉ™rÉ™k yenidÉ™n aktivləşdirÉ™ bilÉ™rsiniz.Deaktivasiya %lTamamÉ™n saytınızın RSS qidalandırıcıları kimi, %l, üçüncü tÉ™rÉ™flÉ™rin yazılarınıza vÉ™ digÉ™r içəriyÉ™ qoÅŸulmalarına imkan yaradar.TamamÉ™n saytınızın RSS qidalandırıcıları kimi, %l, üçüncü tÉ™rÉ™flÉ™rin yazılarınıza vÉ™ digÉ™r içəriyÉ™ qoÅŸulmalarına imkan yaradar.%s (Jetpack)%s (GÉ™rÉ™kli)Jetpack haqqında yenilÉ™nmÉ™ e-poçtları almaq istÉ™yirsinizmi? %sHazırda e-poçt yenilÉ™nmÉ™lÉ™rinÉ™ abunÉ™ olmuÅŸ vÉ™ziyyÉ™tdÉ™siniz. %s%s XÉ™ta%s öncÉ™%s aktivləşdirilmÉ™di; çünki önÉ™mli bir xÉ™taya sÉ™bÉ™b oldu. BÉ™lkÉ™ dÉ™ qurduÄŸunuz baÅŸqa bir qoÅŸma ilÉ™ uyÄŸunsuzluq vardır.%s dövrÉ™dÉ™n açıla bilmÉ™z. Siz onun hÉ™qiqÉ™tÉ™n dÉ™ qoÅŸulduÄŸundan É™minsinizmi?%s aktivləşdirildi.%s deaktivasiya edildi.%s müvÉ™ffÉ™qiyyÉ™tlÉ™ dövrÉ™dÉ™n açıldı.%s, qarmaqarışıq riyaziyyat düsturları, formullar vb. yazmaq üçün güclü bir formatlandırma dilidir.%s düzgün É™mr deyildir.%s düzgün modul deyildir.%s tÉ™lÉ™b olunur%s px%s hazırkı e-poçt ünvanı tÉ™lÉ™b olunur%s, saytınızın mÉ™lumatlarına qoÅŸulmaq üçün izin istÉ™yir. Bu qoÅŸulmaya izin vermÉ™k üçün giriÅŸ edin.%s aktivləşdirilmÉ™di.%s deaktivasiya edilmÉ™di.%s: %s« ÖncÉ™ki← Æski ÅŸÉ™rhlÉ™r— Seç —(HÉ™r yüklÉ™mÉ™dÉ™ %s yazı göstÉ™rir)(baÅŸlıqsız)(gÉ™rÉ™kli)%2$s üzÉ™rindÉ™ %1$s3999 Mission Boulevard, San Diego CA 92109404 xÉ™ta sÉ™hifÉ™siYenidÉ™n AktivləşdirYenidÉ™n Aktivləşdir vÉ™ ya öncÉ™ki sÉ™hifÉ™yÉ™ geri dön.Bu siyahını tÉ™zÉ™lÉ™mÉ™k üçünBuraya tıklayın.Bu xüsusiyyÉ™tlÉ™r haqqındaDaha É™traflı mÉ™lumat.% RÉ™y1 RÉ™y

        Sayt Menecerini aktivləşdirin və wordpress.com/sites səhifəsindəki mərkəzi lövhəmizdən bir çox saytı idarə edin. Daha çox məlumat.

        YenidÉ™n Aktivləşdir%4$s« Qalereyaya Geri Dön« Æski%d bloqqer bunu bÉ™yÉ™nir:%s Aktivləşdirildi! HÉ™r bir modulun saÄŸ tÉ™rÉ™findÉ™ yer alan Deaktivasiya baÄŸlantısına tıklayaraq o modulu istÉ™diyiniz zaman deaktivasiya edÉ™ bilÉ™rsiniz.%s izin verilÉ™n bir daxil edilmiÅŸ sayt deyil.Jetpack iaktivləşdirildi! ŞəbÉ™kÉ™dÉ™ki hÉ™r bir sayt nÉ™zarÉ™tçi tÉ™rÉ™findÉ™n ayrı-ayrı qoÅŸulmalıdır.Modul parametrlÉ™ri qeyd edildi. WordPress Yazılarını GöstÉ™rmÉ™ Vidceti hÉ™r hansı bir WordPress.com bloqundakı ya da Jetpack-ın aktiv olduÄŸu digÉ™r WordPress bloqlarındakı son on yazıya qÉ™dÉ™r olan yazıları göstÉ™rÉ™ bilmÉ™yinizÉ™ imkan yaradar.Facebook BÉ™yÉ™nmÉ™ Qutusu Vidceti mövzunuzun yan menyusunda sizin Facebook BÉ™yÉ™nmÉ™ Qutunuzu göstÉ™rir.Qalereya Vidceti, bloqunuzun yan menyusundaa bir foto qalereyası ya da slayd tÉ™qdimatı göstÉ™rÉ™ bilmÉ™yinizÉ™ imkan yaradar. Tiled Gallery (DöşənmiÅŸ Qalereya) modulu gÉ™rÉ™klidir.Gravatar Vidceti Gravatar tÉ™svirinizi vÉ™ ona baÄŸlı Gravatar profil mÉ™lumatlarınızı göstÉ™rir.TÉ™svir Vidceti mövzunuzun yan menyusunda daxil etdiyiniz tÉ™svirlÉ™ri göstÉ™rir.Twitter Vidceti mövzunuzun yan menyusunda sizin É™n son tweet-lÉ™rinizi göstÉ™rir.GÉ™lÉ™cÉ™k TÉ™dbirlÉ™r Vidceti Sizin saytda tÉ™dbirlÉ™rin siyahısını göstÉ™rmÉ™k üçün iCalendar baÄŸlantısından istifadÉ™ etmÉ™yÉ™ imkan verir.Hesabınızın (%s) WordPress.com ilÉ™ olan baÄŸlantısını ləğv etdiniz.HÉ™r ÅŸey tamamdır, hÉ™rÉ™kÉ™tÉ™ hazırsınız. Sizin Jetpack-da bir xÉ™ta var. ÆslindÉ™ heç gözlÉ™nilmÉ™yÉ™n bir problem É™mÉ™lÉ™ gÉ™ldi. DeyÉ™sÉ™n ÅŸanslısınız: %sJetpack-da bir xÉ™ta var. Bu saytı WordPress.com ilÉ™ baÄŸlamaq mümkün deyil. Bu É™sasÉ™n, saytınızın hÉ™r kÉ™sin qoÅŸula bilmÉ™k üçün açıq olmadığı mÉ™nasına gÉ™lir (localhost).Sizin Jetpack artıq qoÅŸulmuÅŸdur. ÆlaqÉ™ formaları, fÉ™rdi e-poçt ünvanınızı vermÉ™dÉ™n oxuyucularınıza É™laqÉ™ qurma imkanı tÉ™qdim etmÉ™k üçün mükÉ™mmÉ™l bir üsuldur.Ağılda qalacaq bir neçə sözlÉ™ oxuyucularınızı ÅŸÉ™rh yazmaÄŸa sövq edinMÉ™lum problem.XMLRPC faylınızda problem var.Sosial media ikonlarını göstÉ™rÉ™n sadÉ™ bir vidcet.Mövzular arasında münaqiÅŸÉ™ var.AktivasiyaAkismet-i AktivləşdirJetpack Qorumasını AktivləşdirSayt Menecerini vÉ™ JSON API AktivləşdirYenidÉ™n aktivləşdirAktivÆlavÉ™ etÆlaqÉ™ Forması ÆlavÉ™ EtBir çox maddÉ™lÉ™r É™lavÉ™ etMenyu MaddÉ™si ÆlavÉ™ EtYenisini É™lavÉ™ etYeni Komiks É™lavÉ™ etYeni menyu maddÉ™sinin etiketini É™lavÉ™ etYeni Menyu BölmÉ™si ÆlavÉ™ etYeni LayihÉ™ ÆlavÉ™ EtYeni LayihÉ™ Etiketi ÆlavÉ™ EtYeni LayihÉ™ Növünü ÆlavÉ™ EtYeni xarakteristika É™lavÉ™ etBir menyu maddÉ™si É™lavÉ™ etSayt ikonu É™lavÉ™ etBu Yeni Menyu maddÉ™lÉ™rini É™lavÉ™ etSayta ikon É™lavÉ™ etYeni sahÉ™ É™lavÉ™ etSaytlarınızın hÉ™r hansı birinÉ™ tÉ™k bir interfeysdÉ™n yeni bir yazı vÉ™ ya sÉ™hifÉ™ É™lavÉ™ edin.Yeni servis É™lavÉ™ etİnsanların saytınızı tÉ™qib edÉ™ bilmÉ™si üçün bir e-poçt forması É™lavÉ™ edin.DigÉ™r variant É™lavÉ™ etLoqo É™lavÉ™ etEtiket É™lavÉ™ et vÉ™ silEtiket É™lavÉ™ et ya da silBloqunuza paylaÅŸma düymÉ™lÉ™ri É™lavÉ™ edÉ™rÉ™k ziyarÉ™tçilÉ™rinizlÉ™ vÉ™ dostlarınızla yazılarınızı paylaÅŸa bilÉ™rsiniz.Bu formanı yazıma É™lavÉ™ etBölmÉ™yÉ™ É™lavÉ™ et:Add-onAdd-on CSS (MÉ™slÉ™hÉ™t bilinÉ™n)Ayrıca, ÅŸÉ™xsi servislÉ™rinizi dÉ™ tÉ™yin edÉ™ bilÉ™rsiniz.Ünvan:Jetpack ŞərhlÉ™ri formanızı mükÉ™mmÉ™l bir qarşılama vÉ™ rÉ™ng tÉ™rtibatı ilÉ™ qurun.NÉ™zarÉ™tçi çubuÄŸuQabaqcıl. Bu parametr seçildiyindÉ™, paylaÅŸma baÄŸlantılarının iÅŸlÉ™mÉ™si üçün bu faylları mövzunuza É™llÉ™ daxil etmÉ™yiniz gÉ™rÉ™kdir.After the Deadline, profilinizdÉ™ redaktÉ™ edÉ™ bilÉ™cÉ™yiniz bir yığın özÉ™lləşdirmÉ™ variantı tÉ™qdim edÉ™r.AlbomTamamıBütün KomikslÉ™rHamısı TamamdırBütün menyu maddÉ™lÉ™rinin etiketlÉ™riBütün Menyu BölmÉ™lÉ™riBütün LayihÉ™ EtiketlÉ™riBütün LayihÉ™ NövlÉ™riBütün LayihÉ™lÉ™rBütün XarakteristikalarBütün müəllif sÉ™hifÉ™lÉ™riBütün kateqoriya sÉ™hifÉ™lÉ™riBütün tarix arxivlÉ™riBütün yazılarBütün etiket sÉ™hifÉ™lÉ™riBütün taksonomiya sÉ™hifÉ™lÉ™riSayt nÉ™zarÉ™tçilÉ™rinÉ™ öz WordPress.com baÄŸlantılarını idarÉ™ etmÉ™ (qoÅŸulma vÉ™ baÄŸlantını kÉ™smÉ™) imkanını yaradınİstifadəçilÉ™rÉ™ mÉ™nim videolarıma baxma vÉ™ redaktÉ™ etmÉ™ imkanı verilsinİstifadəçilÉ™rÉ™ mÉ™nim videolarıma baxma imkanı verilsinİstifadəçilÉ™rÉ™ mÉ™nim videolarıma baxma, redaktÉ™ etmÉ™ vÉ™ silmÉ™ imkanı verilsinİstifadəçilÉ™rÉ™ videoları yüklÉ™mÉ™ imkanı verilsinÆlifba sırasıAlternativ mÉ™tn:Bir %s Hava yollarıBir Automattic Hava YollarıAktiv izin markeri yazı miqdarlarını almaq üçün istifadÉ™ edilmÉ™lidir.Bu bloqun nÉ™zarÉ™tiçisinin Jetpack baÄŸlantısını qurması gÉ™rÉ™kir.Yeni paylaÅŸma servisi yaratmaq baÅŸ tutmadı - gÉ™rÉ™kli mÉ™lumatları doÄŸru daxil etdiyinizdÉ™n É™min olun.Bir xÉ™ta meydana gÉ™ldi. Daha sonra tÉ™krar cÉ™hd edin.UyÄŸun olmayan qoÅŸma.Keçərsiz bir istÉ™k. ÆsasÉ™n bu, bir ÅŸeyin serverin Jetpack serverinÉ™ edilÉ™n müraciÉ™tin mane olması vÉ™ ya istÉ™yi pozduÄŸu mÉ™nasına gÉ™lir. TÉ™krar cÉ™hd edÉ™rÉ™k iÅŸlÉ™yib-iÅŸlÉ™mÉ™diyinÉ™ baxın.NamÉ™lum bir xÉ™ta baÅŸ verdi. LütfÉ™n bir az sonra tÉ™krar yoxlayın.Qurulma zamanı gözlÉ™nilmÉ™z bir xÉ™ta meydana gÉ™ldi NecÉ™ bir iÅŸ gördüyümüzü vÉ™ gÉ™lÉ™cÉ™kdÉ™ necÉ™ inkiÅŸaf etmÉ™yimizi öyrÉ™nmÉ™yimizÉ™ yardımçı olmaq üçün qısa bir sorÄŸuya qoÅŸulun.DiafraqmaBağışlayın,istÉ™diyiniz arxiv üçün nÉ™ticÉ™ É™ldÉ™ edilmÉ™di.BÉ™lkÉ™ axtarış edÉ™rÉ™k uyÄŸun bir yazı tapa bilÉ™rsiniz.Arxiv sÉ™hifÉ™siWordPress.com baÄŸlantısını kÉ™smÉ™k istÉ™diyinizdÉ™n É™minsinizmi?DÉ™yiÅŸikliklÉ™ri qeyd etmÉ™dÉ™n forma redaktorundan çıxmaq istÉ™diyinizdÉ™n É™minsinizmi? Etdiyiniz hÉ™r hansı bir dÉ™yiÅŸiklik yox olacaqdır.Bu baÄŸlantıya Yazı BÉ™yanı etmÉ™yi dayandırmaq istÉ™diyinizdÉ™n É™minsinizmi?ArtistMobil ikon olaraqPulluÆn çox istifadÉ™ edlÉ™n favikonunuz olaraqHazırda sizin brauzeriniz %s mövzusu üçün Davamlı SürüşdürmÉ™ni dÉ™stÉ™klÉ™mir. Davamlı SürüşdürmÉ™nin normal iÅŸlÉ™mÉ™si üçün mövzu haqqında mÉ™lumat É™ldÉ™ edilmÉ™si gÉ™rÉ™kdir.ÆlavÉ™ sÉ™hifÉ™siBu hallarda mühtÉ™viyyat avtomatik korrektÉ™ edilsin:AutomatticMövcud Modullar:Mövcud ServislÉ™rUyÄŸun olan qısa kodlar: %l.Æsas ParametrlÉ™rÉ™ geri dönünÆvvÉ™lÉ™ Qayıt ↑Arxa fon rÉ™ngiDÉ™yiÅŸikliklÉ™rin qeyd edilmÉ™si üçün ekranın aÅŸağısındakı " Profili YenilÉ™" düymÉ™sinÉ™ basmağı unutmayın.Yayımla düymÉ™sinÉ™ tıklamadan É™vvÉ™l, yazınızın BÉ™yanını edÉ™ bilÉ™cÉ™yimizdÉ™n É™min olmaq üçün lütfÉ™n aÅŸağıdakı baÄŸlantıları yenilÉ™yin:Bias DiliQaraBloq ArxivlÉ™riBloq AbunÉ™liklÉ™ri (Jetpack)Bloq URL:Bloq izlÉ™mÉ™ e-poçt mÉ™tniMaviTrafiki artırın, tÉ™hlükÉ™sizliyi inkiÅŸaf etdirin vÉ™ performansı yaxşılaÅŸdırın.ÇərçivÉ™ RÉ™ngi (hex):WordPress.com-un bulud gücünü, öz hostunuzda olan WordPress qurulumuna gÉ™tirir. Jetpack bloqunuzu bir WordPress.com hesabı ilÉ™ baÄŸlamaÄŸa izin verir vÉ™ sadÉ™cÉ™ WordPress.com istifadəçilÉ™rinin istifadÉ™ edÉ™ bildiyi xüsusiyÉ™tlÉ™rdÉ™n faydalanmağınıza ÅŸÉ™rait yaradar.VideoPress Kitabxananıza nÉ™zÉ™r salınChrome BrauzeriDüymÉ™ stiliÆlaqÉ™ forması É™lavÉ™ etmÉ™klÉ™, oxuyucularınız sizinlÉ™ birbaÅŸa ünsiyyÉ™t qura bilÉ™cÉ™klÉ™r. Bütün geri izlÉ™mÉ™lÉ™r spam tÉ™hlükÉ™sinÉ™ qarşı avtomatik olaraq yoxlamadan keçirilÉ™cÉ™k vÉ™ qanuni yollarla sizin ünvanınıza göndÉ™rilÉ™cÉ™k.Yuxarıdakı qutu iÅŸarÉ™lÉ™ndiyindÉ™, Davamlı SürüşdürmÉ™ ilÉ™ yüklÉ™nÉ™n hÉ™r bir yeni yazı topası, Google Analytics-dÉ™ bir sÉ™hifÉ™ görüntülÉ™nmÉ™si olaraq qeyd edilir.CSSCSS VersiyalarıCSS Stil SÉ™hifÉ™si RedaktoruKameraDaha çox sahÉ™ É™lavÉ™ edÉ™ bilÉ™rÉ™mmi?BirdÉ™n çox insana bildiriÅŸ göndÉ™rÉ™ bilÉ™rÉ™mmi?WordPress-dÉ™ geri qidalandırıcılarıma baxa bilÉ™rÉ™mmi?İmtinaCavabı ləğv etBaÅŸlıqlar (header) artıq göndÉ™rildiyi üçün çərÉ™z (cookie) yönlÉ™ndirmÉ™lÉ™rindÉ™n istifadÉ™ etmirik.BaÄŸlıq:KaruselKateqoriyaMÉ™rkÉ™zLoqonu dÉ™yiÅŸdirZiyarÉ™tçilÉ™rinizin yazılarınıza vÉ™ ya ÅŸÉ™rhlÉ™rinizÉ™ ya da hÉ™r ikisinÉ™ abunÉ™ ola bilmÉ™ statsunu dÉ™yiÅŸdirin.Statistikaları göstÉ™rmÉ™ kriteriyasıHiylÉ™karlıqmı edirsiniz?Spam ÅŸÉ™rhlÉ™ri yoxlaAÅŸağıda mÉ™slÉ™hÉ™t bilinÉ™n digÉ™r özÉ™lliklÉ™ri görÉ™ bilÉ™rsiniz vÉ™ ya Jetpack bacarığınızı özÉ™lləşdirmÉ™k üzrÉ™ parametrlÉ™r sÉ™hifÉ™sinÉ™ gedÉ™ bilÉ™rsiniz.TÉ™sdiq qutusuE-poçt yenilÉ™nmÉ™lÉ™rinin statusunun yoxlanılması…TÉ™svirlÉ™r seçinÆn çox istifadÉ™ edilÉ™n etiketlÉ™r arasından seçinÆn çox istifadÉ™ edilÉ™n etiketlÉ™r arasından seçLoqo seçDairÉ™lÉ™rKliÅŸelÉ™rBuraya tıklayınPress This üçün tıklayın!TÉ™qdimatı avtoifa üçün tıklayın!E-poçt ilÉ™ dostunuza göndÉ™rmÉ™k üçün tıklayınÇap etmÉ™k üçün tıklayın%s sÉ™hifÉ™sindÉ™ paylaÅŸmaq üçün tıklayınGoogle+ paylaÅŸmaq üçün yıklayınLinkedIn-dÉ™ paylaÅŸmaq üçün tıklayınPinterest-dÉ™ paylaÅŸmaq üçün tıklayınPocket-dÉ™ paylaÅŸmaq üçün tıklayınReddit-dÉ™ paylaÅŸmaq üçün tıklayınTumblr-da paylaÅŸmaq üçün tıklayınTwitter-dÉ™ paylaÅŸmaq üçün tıklayınSlaydÅŸouya baxmaq üçün tıklayın.BaÄŸlaModal pÉ™ncÉ™rÉ™ni baÄŸlayın.RÉ™ng sxemiKomiksKomiks qaralaması yenilÉ™ndi. Komiksin ön izlÉ™mÉ™sinÉ™ baxKomiks dÉ™rc edildi. KomiksÉ™ baxKomiks %s versiyasından geri bÉ™rpa edildiKomiks qeyd edildi.Komiks planlandı: %1$s. Komiksin ön izlÉ™mÉ™sinÉ™ baxKomiks göndÉ™rildi. Komiksin ön izlÉ™mÉ™sinÉ™ baxKomiks yenilÉ™ndi.Komiks yenilÉ™ndi. KomiksÉ™ baxKomikslÉ™rTezliklÉ™…ŞərhŞərh BÉ™yÉ™nmÉ™lÉ™ri VarŞərh keÅŸlÉ™mÉ™sindÉ™ problemmi var?Şərh izlÉ™mÉ™ e-poçt mÉ™tniŞərh naviqasiyası%s olaraq ÅŸÉ™rh edilirŞərhlÉ™rBu yazıya ÅŸÉ™rh yazmaq baÄŸlıdır.Qarışıq İfadÉ™lÉ™rKonfiqurasiyaKonfiqurasiyaKonfiqurasiya %sQoÅŸulBaÄŸlan vÉ™ %s üzÉ™rindÉ™ yazılarını paylaÅŸStatistikalar, BÉ™yÉ™nmÉ™lÉ™r vÉ™ Sosial PaylaÅŸma kimi xüsusiyyÉ™tlÉ™ri indi qoÅŸun.BaÄŸlanWordPress.com-a baÄŸlanBloqunuzu populyar sosial ÅŸÉ™bÉ™kÉ™lÉ™rÉ™ qoÅŸun vÉ™ yeni yazılarınızı dostlarınızla avtomatik olaraq paylaşın.BaÄŸlanıldıQoÅŸulmuÅŸ WordPress.com BloquQoÅŸulma:WordPress.com-a baÄŸlandıWordPress.com Çoxlu GiriÅŸ (SSO) ilÉ™ qoÅŸulmaq WordPress.com hesabınızla giriÅŸ etmÉ™yinizÉ™ ÅŸÉ™rait yaradır.ÆlaqÉ™ FormasıÆlaqÉ™ Formasının URL-i:ÆlaqÉ™ mÉ™lumatlarıJetpack XoÅŸbÉ™xtlik Komandası ilÉ™ É™laqÉ™ saxlayın.Davam et →OxumaÄŸa davam et →Vidcet Görünüşü ilÉ™ pÉ™ncÉ™rÉ™ maddÉ™lÉ™rinizin hansı sÉ™hifÉ™lÉ™rdÉ™ görünÉ™cÉ™yini yoxlayın.KomiksÉ™ ÇevirYazıya ÇevirVideoPress yüklÉ™mÉ™ tÉ™yinatçısı alınmadı. LütfÉ™n daha sonra tÉ™krar yoxlayın.Qeydiyyatdan keçmiÅŸ istifadəçilÉ™rin sÉ™hifÉ™ baxışlarını hesabla.PaylaÅŸma DüymÉ™si YaratXarici qrafik redaktorundan istifadÉ™ etmÉ™dÉ™n sizin ÅŸÉ™klillÉ™riniz üçün zÉ™rif jurnal-stilli mozaik tÉ™rtibat yaradın.TÉ™sviri KÉ™sHazırda OxunanÖzÉ™lÖzÉ™l CSSÖzÉ™l CSS ÅžablonuXüsusi İçərik NövüÖzÉ™l E-poçt ÜnvanıÖzÉ™l Mesaj:ÖzÉ™l sahÉ™ silindi.ÖzÉ™l sahÉ™ yenilÉ™ndi.MüştÉ™ri AdıMüştÉ™ri MÉ™mnuniyyÉ™tiÖzÉ™lləşdirXarakteristika Arxivini ÖzÉ™lləşdirAÅžAÄžIGünlük ArxivlÉ™r: %sGünlük arxivlÉ™rQoyuTarixDeaktivasiyaSazlamaSazlama MÉ™lumatıDaha çox bilgi üçün Jetpack xÉ™talarını sazlayın.MövcudYeni Sahəİlk parametrMövcud keyfiyyÉ™tSilBirdÉ™fÉ™lik silBu elementi birdÉ™fÉ™lik silAçıqlamaProqramçılar, saytınızın içəriyini idarÉ™ etmÉ™k vÉ™ bu içəriyÉ™ qoÅŸulmaq üçün WordPress.com-un OAuth2 kimlik tÉ™sdiqlÉ™mÉ™ sistemindÉ™n vÉ™ WordPress.com REST API-dÉ™n istifadÉ™ edÉ™ bilÉ™r.SÉ™s dÉ™yiÅŸdirtÉ™n İşarÉ™tlÉ™rÆziyyÉ™tCSS vÉ™ JS maddÉ™lÉ™rini deaktivasiya etE-poçt İlÉ™ Yazını PassivləşdirBaÄŸlantını kÉ™sJetpack BaÄŸlantısını KÉ™sWordPress.com baÄŸlantısı kÉ™sildiGizlÉ™tBu bildiriÅŸi gözardı et vÉ™ Jetpack É™lavÉ™sini deaktivasiya et.Bu bildiriÅŸi indilik gizlÉ™din.Bu bildiriÅŸi gizlÉ™t.Üst hissÉ™ mÉ™tnini göstÉ™rWordPress Yazılarını GöstÉ™rFacebook sÉ™hifÉ™nizÉ™ ziyarÉ™tçilÉ™rinizin qoÅŸulması üçün Facebook BÉ™yÉ™nmÉ™ Qutusunu göstÉ™rGravatar Profilinizin mini versiyasını göstÉ™rinFotoqalereya vÉ™ ya slaydÅŸou göstÉ™rBütün qalereya tÉ™svirlÉ™rinizi xoÅŸ bir mozaika ÅŸÉ™klindÉ™ göstÉ™rin.Yan menyuda tÉ™svirlÉ™ri göstÉ™rDaxil edilmiÅŸ RÉ™smi Twitter Zaman Tuneli vidcetini É™lavÉ™ edin.GörüntülÉ™mÉ™ ÅŸÉ™kli:Bütün xüsusi tÉ™svirlÉ™ri göstÉ™rYüksÉ™k keyfiyyÉ™tli videolar mövcud olan olaraq göstÉ™rilsin.TÉ™svirlÉ™ri tam ölçülü karusel slaydÅŸousu içindÉ™ göstÉ™r.PaylaÅŸ menyusunu göstÉ™r vÉ™ izlÉ™yicilÉ™rin bu videonu daxil etmÉ™sinÉ™ vÉ™ endirmÉ™sinÉ™ izin ver.Bütün siyahılarda etiket içəriyini göstÉ™rin.Bir iCalendar qidalandırıcısından gÉ™lÉ™n tÉ™dbirlÉ™ri göstÉ™rin.Goodreads kitablarınızı göstÉ™rinYaÅŸadığınız yer, saat vÉ™ É™laqÉ™ mÉ™lumatlarınızı göstÉ™rin.Yazılarınızın altında, yazılarınızın neçə nÉ™fÉ™rin bÉ™yÉ™ndiyi vÉ™ bÉ™yÉ™nÉ™nlÉ™rin Gravatarları göstÉ™rilir.BaÅŸqa bir WordPress.com vÉ™ ya Jetpack xüsusiyyÉ™tli bir bloqdan son yazıların siyahısını göstÉ™rir.MÉ™nÉ™ bunu doldurmaq lazımdırmı?DigÉ™r istifadəçilÉ™rÉ™ mÉ™nim VideoPress Kitabxanama daxil olma icazÉ™sini vermÉ™yin%s qoÅŸması hÉ™lÉ™ dÉ™ quruludurmu?Amma unutmamağınız gÉ™rÉ™kÉ™n bir ÅŸey var! Jetpack-ı sÉ™lahiyyÉ™tlÉ™ndirÉ™rkÉ™n WordPress bloqunuza daxil olmağınız gÉ™rÉ™kir.Yazılarda YenidÉ™n bloqlama düymÉ™sini göstÉ™rmÉ™QoÅŸa NeqativlÉ™rEndirEndir: %s
        Mövcud servislÉ™ri buraya sürüşdür vÉ™ buraxPaylaÅŸma servislÉ™rinin saytınızda görünmÉ™sini tÉ™min etmÉ™k üçün bu servislÉ™ri, aktivləşdirilÉ™n bölmÉ™yÉ™ sürüklÉ™yib buraxın. ServislÉ™rin bir düymÉ™nin arxasında gizlÉ™nmÉ™sini tÉ™min etmÉ™k üçün bunları gizli bölmÉ™yÉ™ sürüklÉ™yin.GöstÉ™rmÉ™k istÉ™diyiniz servislÉ™ri aÅŸağıdakı qutuya sürüklÉ™yib buraxın.YenidÉ™n sıralamaq üçün aÅŸağı-yuxarı sürüşdürünAÅŸağı sürüşdürYüklÉ™mÉ™k üçün tÉ™svirlÉ™ri buraya buraxınE-poçtÆlaqÉ™ formalarının hÉ™r biri ehtiyaclarınızı qarşılayacaq ÅŸÉ™kildÉ™ rahatlıqla özÉ™lləşdirilÉ™ bilÉ™r. Bir istifadəçi, É™laqÉ™ formanızı göndÉ™rdiyindÉ™, bunun spam poçt olmadığından É™min olmaq üçün geri bildiriÅŸ Akismet (saytınızda aktivdirsÉ™) vasitÉ™si ilÉ™ filtrlÉ™nir. Düzgün geri bildiriÅŸlÉ™r sizÉ™ e-poçt ilÉ™ göndÉ™rilir vÉ™ geri bildiriÅŸ idarÉ™etmÉ™ sahÉ™nizÉ™ É™lavÉ™ edilir.HÉ™r bir modulda mövcud olan Aktivasiya ya da Deaktiuvasiya baÄŸlantısı sayÉ™sindÉ™, É™laqÉ™dar modullar üçün dÉ™yiÅŸikliklÉ™r edÉ™ bilÉ™rsiniz.Bu vidcet maddÉ™lÉ™rinin hÉ™r birinin bir neçə özÉ™lləşdirmÉ™ variantı vardır.HÉ™r hansı bir ziyarÉ™tçinin bloqunuzun yan menyusundakı bir vidcet maddÉ™si vasitÉ™si ilÉ™ yazılarınızın tamamına e-poçt ilÉ™ abunÉ™ olmalarına rahat ÅŸÉ™rait yaradın. Bir yazı yayınladığınızda, WordPress.com, abunÉ™lÉ™rinizin tamamına bir bildiriÅŸ göndÉ™rir.Yazıların tamamını "xüsusi" etiketi ilÉ™ vÉ™ ya istÉ™diyiniz bir etiketlÉ™ asan bir ÅŸÉ™kildÉ™ önÉ™ çıxarın. Mövzunuz xüsusi içərik sahÉ™sindÉ™ %2$s É™dÉ™dÉ™ qÉ™dÉ™r yazını dÉ™stÉ™klÉ™yÉ™r.RedaktÉ™ etCSS redaktÉ™ etKomiksi redaktÉ™ etDetalları redaktÉ™ etMenyu elementini redaktÉ™ etMenyu maddÉ™sinin etiketini redaktÉ™ etMenyu BölmÉ™sini RedaktÉ™ etLayihÉ™ni redaktÉ™ etLayihÉ™ Etiketini RedaktÉ™ EtLayihÉ™ Növünü RedaktÉ™ EtBölmÉ™ni redaktÉ™ et...Xarakteristikanı redaktÉ™ etProfilini redaktÉ™ etBu yeni sahÉ™ni redaktÉ™ etE-poçtE-poçt ünvanıE-poçt ünvanı:E-poçt tÉ™sdiqlÉ™mÉ™si müvÉ™ffÉ™qiyyÉ™tsiz oldu, lütfÉ™n tÉ™krar yoxlayınBu hallarda mÉ™nÉ™ e-poçt göndÉ™rinE-poçt bildiriÅŸlÉ™riE-poçt parametrlÉ™riE-poçtlar buraya göndÉ™rilÉ™cÉ™k: %s (RedaktÉ™ et)Spamı boÅŸaltBu sayt üçün Portfel LayihÉ™lÉ™rini aktivləşdir.E-poçt İlÉ™ Yazını AktivləşdirBu sayt üçün TÉ™dbirlÉ™ri atkivləşdirin.karuseli aktivləşdirÖn sÉ™hifÉ™dÉ™ vÉ™ arxiv sÉ™hifÉ™lÉ™rindÉ™ xülasÉ™lÉ™ri aktivləşdirYazıları vÉ™ sÉ™hifÉ™lÉ™ri yazarkÉ™n aÅŸağıdakı dil mÉ™lumatı vÉ™ stil qaydaları üçün korrektor oxumasını aktivləşdirin:Aktiv ServislÉ™rİngilis dili parametrlÉ™riBir WordPress.com vÉ™ ya Jetpack WordPress sayt URL-nı daxil edin.Media mÉ™lumatlarını daxil edilmiÅŸ vÉ™ziyyÉ™tÉ™ gÉ™tirmÉ™k üçün birbaÅŸa Yazı/SÉ™hifÉ™ redaktoruna qısa kod daxil edin. ÆlaqÉ™dar mÉ™slÉ™hÉ™tlÉ™r üçün aÅŸağıdakı baÄŸlantıları izlÉ™yin.Bu xidmÉ™t üçün istifadÉ™ etmÉ™k istÉ™diyiniz bir 16x16px ikon URL daxil edin.MüştÉ™ri adınızı buraya daxil edinYeni menyu maddÉ™lÉ™rinin adını buraya daxi etE-poçt ünvanınızı daxil edinBu bloqa abunÉ™ olmaq vÉ™ e-poçt ilÉ™ bildiriÅŸlÉ™r almaq üçün e-poçt ünvanınızı daxil edin.%s ilÉ™ bloqunuzu tÉ™sdiqlÉ™mÉ™k üçün meta açarı "mühtÉ™viyyat" dÉ™yÉ™rinizi daxil edinXÉ™ta Detalları: %sXÉ™ta Detalları: Jetpack ID rÉ™qÉ™mli bir dÉ™yÉ™rlÉ™ baÅŸlayar. Bu xÉ™ta mesajını hÉ™r kÉ™sin görÉ™cÉ™yi ÅŸÉ™kildÉ™ yayınlama! %sXÉ™ta Detalları: Jetpack ID boÅŸdur. Bu xÉ™ta mesajını hÉ™r kÉ™sin görÉ™cÉ™yi ÅŸÉ™kildÉ™ yayınlama! %sXÉ™ta Detalları: Jetpack ID ölçülÉ™ndirici deyil. Bu xÉ™ta mesajını hÉ™r kÉ™sin görÉ™cÉ™yi ÅŸÉ™kildÉ™ yayınlama! %sXÉ™ta kodu: %sZibil qutusuna göndÉ™rilÉ™rkÉ™n xÉ™ta baÅŸ verdi.Zibil qutusundakı maddÉ™ni bÉ™rpa edÉ™rkÉ™n xÉ™ta baÅŸ verdi.Profil yüklÉ™mÉ™ xÉ™tasıXÉ™ta!XÉ™ta, yararsız modul.XÉ™ta, keçərsiz cavab mÉ™lumatı.XÉ™ta: UyÄŸun istifadəçi adı yaradıla bilmÉ™di.XÉ™ta: Bu saytın Jetpack baÄŸlantısında hazırda problem var.XÉ™ta: zÉ™hmÉ™t olmasa keçərli elektron poçt ünvanı daxil edin.XÉ™ta: zÉ™hmÉ™t olmasa tÉ™lÉ™b olunan sahÉ™lÉ™ri doldurun(ad, e-poçt).1-202-555-1212NümunÉ™:SÉ™hifÉ™XülasÉ™lÉ™rAçıqla ...Geri bildiriÅŸi CSV olaraq ixrac etFacebookFacebook BÉ™yÉ™nmÉ™ QutusuFacebook SÉ™hifÉ™siFacebook SÉ™hifÉ™sinin URL-iFacebook DivarıFacebook istifadəçi adı:XüsusiXüsusi İçərikXüsusi TÉ™svirlÉ™rGöstÉ™rilÉ™cÉ™k Qidalandırıcı(lar):Geri bildiriÅŸGeri bildiriÅŸ atıldı.Geri izlÉ™mÉ™(lÉ™r) spam olaraq iÅŸarÉ™lÉ™ndiSahÉ™ növüJetpack xaricindÉ™ki qoÅŸmaların tamamını deaktivasiya edÉ™rÉ™k qoÅŸma problemi olub-olmadığına baxın. Problem davam edÉ™rsÉ™ qoÅŸmalarla É™laqÉ™li bir ÅŸey yoxdur. Problem hÉ™ll edilÉ™rsÉ™, problem yenidÉ™n ortaya çıxana qÉ™dÉ™r qoÅŸmalarınızı tÉ™k-tÉ™k aktivləşdirin; günahkarı bu ÅŸÉ™kildÉ™ tapa bilÉ™rsiniz.İlk variantFokus MÉ™safÉ™siBloqu İzləŞərhlÉ™ri İzlÉ™Twitter-dÉ™ mÉ™ni izlÉ™yinİzlÉ™yici ParametrlÉ™riQida MenyularıMÉ™sÉ™lÉ™n, ArxivlÉ™r vidcetinin yalnız kateqoriya arxivlÉ™rindÉ™ vÉ™ xÉ™ta sÉ™hifÉ™lÉ™rindÉ™ görünmÉ™sini istÉ™yirsinizsÉ™ ilk açılan menyudan "GöstÉ™r"i seçin vÉ™ iki qayda É™lavÉ™ edin: "SÉ™hifÉ™, 404 XÉ™ta SÉ™hifÉ™si" vÉ™ "Kateqoriya, Bütün Kateqoriya SÉ™hifÉ™lÉ™ri."NümunÉ™ üçün, É™dviyyatlar, favoritlÉ™r vÉ™ s.
        EtiketlÉ™ri vergüllÉ™ ayırınDaha çox mÉ™lumat:Forma yaradıcısıFormat:PulsuzPulsuz formatlarGöndÉ™rÉ™nÖn SÉ™hifÉ™, Arxiv SÉ™hifÉ™lÉ™ri vÉ™ Axtarışın NÉ™ticÉ™lÉ™riÖn sÉ™hifÉ™Bütün detallar paylaÅŸma dÉ™stÉ™k sÉ™hifÉ™sindÉ™ mövcuddur. Ayrıca bu video PaylaÅŸma özÉ™lliyinin necÉ™ istifadÉ™ edilÉ™cÉ™yinÉ™ dair sizi sürÉ™tlÉ™ mÉ™lumatlandıra bilÉ™r. Daha çox mÉ™lumat üçün HD olaraq seyr edin!Bu sayt üçün tam idarÉ™etmÉ™ rejimi söndürülmüşdür.QalereyaQalereya Karusel Ekran GörüntüsüJetpack qurulumundan istifadÉ™ edÉ™rÉ™k Multisite ünvanlarınızı idarÉ™ edin.Jetpack Multisite ilÉ™ baÅŸlayınJetpack-dan É™n yaxşı ÅŸÉ™kildÉ™ faydalanmaq üçün...GitHub istifadəçi adı:BizÉ™ Geri BildiriÅŸ VerWordPress.com içərik paylaÅŸma ÅŸÉ™bÉ™kÉ™sindÉ™n yazılarınız üçün tÉ™svirlÉ™r yüklÉ™mÉ™yi sürÉ™tlÉ™ndirdik. BÉ™sit bir düymÉ™yÉ™ tıkladığınızda, sizin üçün ÅŸÉ™bÉ™kÉ™nin keÅŸlÉ™nmÉ™sini daha sürÉ™tli etmÉ™k üçün var gücümüzlÉ™ çalışırıq.QlobalGoodreadsGoogleGravatar Kimlik kartıGravatar Kimlik KartıGravatar ProfiliYaşılTÉ™brik MÉ™tniJetpack haqqında geri bildiriÅŸ varmı?YüksÉ™klikHündürlük (px):YüksÉ™klik:Sizin formanız bu cür görünÉ™cÉ™kGizli FellÉ™rGizlÉ™tBütün xüsusi tÉ™svirlÉ™ri gizlÉ™tYazılardan sonra oxÅŸar içəriyi gizlÉ™tEtiketi yazı meta vÉ™ etiket buludunda gizlÉ™t.Statistika üz ifadÉ™si tÉ™svirini gizlÉ™t.Æsas sÉ™hifÉ™Saatlar vÉ™ BilgiSaat:Kimki Kartları, düz Gravatar tÉ™svirlÉ™rini fÉ™rd haqqındakı mÉ™lumatlarla zÉ™nginləşdirir: ad, bioqrafiya, rÉ™smlÉ™r, É™laqÉ™ mÉ™lumatları vÉ™ Twitter, Facebook vÉ™ ya LinkedIn kimi internetdÉ™ istifadÉ™ etdiklÉ™ri digÉ™r xidmÉ™tlÉ™r.Kimki Kartları, düz Gravatar tÉ™svirlÉ™rini fÉ™rd haqqındakı mÉ™lumatlarla zÉ™nginləşdirir: ad, bioqrafiya, rÉ™smlÉ™r, É™laqÉ™ mÉ™lumatları vÉ™ digÉ™r xidmÉ™tlÉ™r.Kimki Kartları internetdÉ™ki mövcudiyyÉ™tinizi göstÉ™rmÉ™ vÉ™ insanların bloqunuzu tapmalarına yardımçı olmaq baxımından mükÉ™mmÉ™l bir üsuldur.Bu necÉ™ iÅŸlÉ™yir?Salam. Siz son zamanlarda mÉ™nim yazılarımdan birini izlÉ™diniz. Bu o demÉ™kdir ki, Siz hÉ™r ÅŸÉ™rh yazıldığında e-poçt ilÉ™ bildiriÅŸ alacaqsınız. AktivləşdirmÉ™k üçün, aÅŸağıdakı düymÉ™yÉ™ tıklayın. ÆgÉ™r bunun bir xÉ™ta olduÄŸunu düşünürsünüzsÉ™, Sizi bir daha narahat etmÉ™rik.Salam. Siz son zamanlarda mÉ™nim bloqumdakı yazılarımdan birini izlÉ™diniz. Bu o demÉ™kdir ki, Siz hÉ™r yazı yazıldığında e-poçt ilÉ™ bildiriÅŸ alacaqsınız. AktivləşdirmÉ™k üçün, aÅŸağıdakı düymÉ™yÉ™ tıklayın. ÆgÉ™r bunun bir xÉ™ta olduÄŸunu düşünürsünüzsÉ™, Sizi bir daha narahat etmÉ™rik.IP Ünvanı:İkonİkon + mÉ™tnIkon URLYalnız ikonYazılarınızda vÉ™ sÉ™hifÉ™lÉ™rinizdÉ™ korrektor oxuması edilÉ™rkÉ™n gözardı edilÉ™cÉ™k sözlÉ™ri vÉ™ ifadÉ™lÉ™ri tÉ™yin edin:ÆgÉ™r boÅŸdursa, biz tÉ™svirin ölçüsünü tÉ™yin etmÉ™yÉ™ çalışacağıq.Æks tÉ™qdirdÉ™, bir mövzu vÉ™ ya qoÅŸma ekstra xarakterlÉ™r göstÉ™rmiÅŸ ola bilÉ™r. 2-ci vÉ™ 3-cü addımları yoxlayın.Bunlardan heç biri É™lac tapa bilmÉ™yinizÉ™ yardımçı olmazsa Jetpack dÉ™stÉ™k xidmÉ™tinÉ™ müraciÉ™t etmÉ™k üçün buraya tıklayın. BizÉ™, problem haqqında mümkün qÉ™dÉ™r É™traflı mÉ™lumat verin vÉ™ problemi hÉ™ll etmÉ™k üçün hansı addımları atdığınızı bildirin. Bunu etdiyinizdÉ™, XoÅŸbÉ™xtlik MühÉ™ndislÉ™ri komandamız yardım etmÉ™k üçün sizinlÉ™ É™laqÉ™ quracaqdır.Mövzu müəllifisinizsÉ™, Davamlı SürüşdürmÉ™ dÉ™stÉ™yi É™lavÉ™ etmÉ™ haqqındakı mÉ™lumatları buradan É™ldÉ™ edÉ™ bilÉ™rsiniz: %1$s.WordPress.com hesabınız yodursa bir neçə saniyÉ™ É™rzindÉ™ pulsuz olaraq qeydiyyatdan keçə bilÉ™rsiniz.404 mesajı alırsınızsa, veb serverinizÉ™ müraciÉ™t edin. Onların tÉ™hlükÉ™sizliyi XMLRPC-yÉ™ mane ola bilÉ™r.Probleminiz bilinmirsÉ™ vÉ™ ya probleminizin sÉ™bÉ™bi bir qoÅŸmadırsa İyirmi On İkini (mövcud WordPress mövzusu) aktivləşdirmÉ™yi yoxlayın. Bu problemi hÉ™ll edÉ™rsÉ™ yÉ™qin ki, mövzunuzdakı bir ÅŸey pozulmuÅŸdur; mövzunun müəllifinin bu vÉ™ziyyÉ™tdÉ™n xÉ™bÉ™rdar olmasını tÉ™min edin.Tamamını göz ardı etHÉ™r zaman gözardı etMÉ™slÉ™hÉ™ti gözardı etFÉ™rqi gözardı edin. Bu sadÉ™cÉ™, yuxarıda bÉ™hs edilÉ™n gÉ™rçək sayt üçün bir demo saytıdır.Hesaba Alınmayan İfadÉ™lÉ™rTÉ™svirTÉ™svir Tarazlığı:TÉ™svir RÉ™ngi:TÉ™svir Qalerya KaruseliTÉ™svir Qalereya SlaydÅŸousuTÉ™svir ToruTÉ™svir BaÄŸlantısıTÉ™svir SiyahısıTÉ™svir parametrlÉ™ri:TÉ™svir Ölçüsü:TÉ™svir URL:TÉ™svirin adı:KÉ™silÉ™cÉ™k tÉ™svirTÉ™svirlÉ™r:PassivBu CSS-i Mobil Mövzuya daxil edinYazılar indekslÉ™nirİndekslÉ™mÉ™ İstÉ™yiniz növbÉ™yÉ™ alınmış vÉ™ gözlÉ™mÉ™dÉ™dir…Video É™lavÉ™ etInstagram istifadəçi adı:Uzun URL-ları yazmaq vÉ™ köçürüb yapışdırmaq yerinÉ™ artıq yazılarınız vÉ™ sÉ™hifÉ™lÉ™riniz üçün qısa vÉ™ bÉ™sit bir baÄŸlantı É™ldÉ™ edÉ™ bilÉ™rsiniz. Bu, super kompakt wp.me domen adından istifadÉ™ edir vÉ™ sizÉ™ etibarlı bir ÅŸÉ™kildÉ™ istifadÉ™ edÉ™ bilÉ™cÉ™yiniz bÉ™nzÉ™rsiz bir URL verir.Birisi bloqunuzda bir yazını izlÉ™diyindÉ™ giriÅŸ mÉ™tni göndÉ™rdi. (Saytı vÉ™ tÉ™sdiqlÉ™mÉ™ detalları sizin üçün avtomatik olaraq É™lavÉ™ edilÉ™cÉ™kdir.)Birisi bloqunuzu izlÉ™diyindÉ™ giriÅŸ mÉ™tni göndÉ™rdi. (Saytı vÉ™ tÉ™sdiqlÉ™mÉ™ detalları sizin üçün avtomatik olaraq É™lavÉ™ edilÉ™cÉ™kdir.)XÉ™talı İstifadəçi ID, lütfÉ™n tÉ™sdiqlÉ™yin vÉ™ tÉ™krar Goodreads rÉ™qÉ™msal istifadəçi ID-nizi daxil edin.Keçərsiz idXÉ™talı vÉ™ ya hazırda müddÉ™ti dolmuÅŸ.XÉ™talı istÉ™kKeçərsiz tÉ™hlükÉ™sizlik tÉ™yinatçısı.Keçərsiz istifadəçi adıBu sayt özÉ™ldirmi?Facebook URL sÉ™hv konfiqurasiya edilmiÅŸ kimi görünür. LütfÉ™n vidcet parametrlÉ™rinizdÉ™n yoxlayın.DeyÉ™sÉ™n saytınız Jetpack ilÉ™ düzgün bir ÅŸÉ™kildÉ™ É™laqÉ™ qura bilmir.Bunun sÉ™bÉ™bi, öz başınıza tÉ™yin edÉ™ bilÉ™cÉ™yiniz bu problemlÉ™rdÉ™n biri ola bilÉ™r:HÉ™r bir simvolun önÉ™mli olduÄŸu Twitter, Facebook vÉ™ cib telefonu qısa mesajlarında istifadÉ™ etmÉ™k üçün idealdır.Saytınıza, WordPress.com bulud dÉ™stÉ™kli müdhiÅŸ xüsusiyyÉ™tlÉ™r qatmaÄŸa hazırdır.Restoran menyusunun maddÉ™lÉ™riGöstÉ™rmÉ™k üçün maddÉ™lÉ™r:JarqonJetpackJetpack ŞərhlÉ™riJetpack ŞərhlÉ™ri Ekran GörüntüsüJetpack ŞərhlÉ™ri, ziyarÉ™tçilÉ™rinizin saytınızda ÅŸÉ™rh yazarkÉ™n WordPress.com, Twitter vÉ™ ya Facebook hesablarından istifadÉ™ etmÉ™lÉ™rinÉ™ ÅŸÉ™rait yaradır.Jetpack Sazlama MÉ™rkÉ™ziJetpack SSSJetpack ŞəbÉ™kÉ™ ParametrlÉ™ri YenilÉ™nib!Jetpack QoÅŸma VersiyasıJetpack ParametrlÉ™riJetpack Çoxlu GiriÅŸJetpack SaytlarıJetpack AbunÉ™lik ParametrlÉ™riJetpack DÉ™stÉ™yiWordPress.com tÉ™rÉ™findÉ™n JetpackJetpack, sizÉ™ riyaziyyat bloqu yazma platformalarında É™n yaxşı imkanları tÉ™qdim etmÉ™k üçün %s gücü ilÉ™ WordPress sadÉ™liyini bir araya gÉ™tirir.Jetpack, É™ski %l qoÅŸmasının É™n son versiyasına sahibdir.Jetpack, É™ski %l qoÅŸmalarının É™n son versiyasına sahibdir.Jetpack, É™ski “%1$s†qoÅŸmasının É™n son versiyasına sahibdir.Jetpack, WordPress.com ilÉ™ É™laqÉ™ qura bilmÉ™di: %s. Bu É™sasÉ™n, veb serverinizdÉ™ bÉ™zi ÅŸeylÉ™rin düzgün qurulmadığına dÉ™lalÉ™t edir.Jetpack müvÉ™ffÉ™qiyyÉ™tlÉ™ dövrÉ™dÉ™n açıldı.Jetpack hazırda WordPress.com-a qoÅŸulmuÅŸdurJetpack yerli inkiÅŸaf rejimindÉ™dir.Jetpack quruldu!Jetpack ÅŸÉ™bÉ™kÉ™si aktivləşdirilmiÅŸdir vÉ™ bildiriÅŸlÉ™r rÉ™dd edilÉ™ bilmÉ™z.Jetpack hazırda WordPress.com-a qoÅŸulmamışdırJetpack artıq, ziyarÉ™tçilÉ™rinizin saytınızda ÅŸÉ™rh yazarkÉ™n WordPress.com, Twitter vÉ™ ya Facebook hesablarından istifadÉ™ etmÉ™lÉ™rinÉ™ imkan yaradan Jetpack ŞərhlÉ™rinÉ™ sahibdir. Jetpack ŞərhlÉ™rini aktivləşdirmÉ™k üçün, %s.Jetpack üçün WordPress-in %s versiyası vÉ™ ya daha yeni bir versiyası gerekdir.Jetpack, özünüz hazırladığınız WordPress saytınızı WordPress.com-un fövqÉ™ladÉ™ bulud gücü ilÉ™ dÉ™stÉ™klÉ™yÉ™r.Jetpack, saytınızın rÉ™ng sxemini avtomatik olaraq uyÄŸunlaÅŸdırmaÄŸa çalışır; ancaq MüzakirÉ™ ParametrlÉ™ri sÉ™hifÉ™sinin alt hissÉ™sindÉ™ É™llÉ™ qurulumlar edÉ™ bilÉ™rsiniz.Jetpack, proqramların vÉ™ xidmÉ™tlÉ™rin bloqunuza tÉ™hlükÉ™siz bir ÅŸÉ™kildÉ™ baÄŸlanmasına izin vermÉ™sinÉ™ imkan yaradır vÉ™ bunların içəriyinizi yeni ÅŸÉ™killÉ™rdÉ™ istifadÉ™ edilmÉ™sinÉ™ vÉ™ sizÉ™ yeni funksionallıq tÉ™qdim etmÉ™lÉ™rinÉ™ imkan yaradır.Jetpack avtomatik olaraq saytınızda yayınlanmış içəriklÉ™ri axtarış sistemlÉ™ri vb. üçüncü tÉ™rÉ™f servislÉ™rÉ™ göndÉ™rir vÉ™ saytınıza gÉ™lÉ™n trafiki artırır.Jetpack-ın mobil mövzusu kiçik ekranlar üçün optimallaÅŸdırılmışdır. Möhtəşəm bir özÉ™l görünüş tÉ™qdim etmÉ™k üçün mövcud mövzunuzdakı baÅŸlıq tÉ™svirindÉ™n, arxa fondan vÉ™ vidcetlÉ™rdÉ™n istifadÉ™ edir. Yazı formatı dÉ™stÉ™yi daxil edilmiÅŸdir; dolayısı ilÉ™ fotolarınız vÉ™ qalereyalarınız ağıllı telefonlarda möhtəşəm görünür.DigÉ™r %s abunəçiyÉ™ qoÅŸulunDigÉ™r %s abunəçiyÉ™ qoÅŸulunSürÉ™tli BaÅŸlatGet:HÉ™r yazının altındakı Twitter, Facebook vÉ™ Google+ düymÉ™lÉ™ri sayÉ™sindÉ™ ziyarÉ™tçilÉ™r içəriyinizi asanlıqla paylaÅŸa bilÉ™r.yazı vÉ™ sÉ™hifÉ™ redaktorlarınıza É™lavÉ™ edilÉ™n düymÉ™ ilÉ™ bÉ™sit formalar yaratmağınıza imkan tanıyır, belÉ™cÉ™ ziyarÉ™tçilÉ™rin sizinlÉ™ É™laqÉ™ qurmasına yardımçı olur.foto vÉ™ tÉ™svirlÉ™rinizi asanlıqla baxıla bilÉ™n tam ölçülü qalereyalar olaraq hÉ™yata keçirir.ziyarÉ™tçilÉ™rÉ™ iki asan abunÉ™lik seçimi tÉ™qdim edÉ™r: ÅŸÉ™rh yazarkÉ™n vÉ™ ya ayrı bir e-poçt abunÉ™liyi pÉ™ncÉ™rÉ™si üzÉ™rindÉ™n.wordpress.com üzÉ™rindÉ™n qoÅŸmaları uzaqdan idarÉ™ etmÉ™yinizÉ™, avtomatik yenilÉ™nmÉ™lÉ™ri açıb digÉ™r iÅŸlÉ™ri etmÉ™yinizÉ™ yardımçı olur.yayımlanan hÉ™r yazının altında mövzu ilÉ™ É™laqÉ™li yeni içəriklÉ™ri qeyd edÉ™rÉ™k ziyarÉ™tçilÉ™rin bloqunuzu daha çox incÉ™lÉ™mÉ™sini tÉ™min edÉ™r.ÅŸÉ™rhçilÉ™rin profillÉ™rinizi Gravatar hesablarına baÄŸlamalarına imkan tanıyır, belÉ™cÉ™ ziyarÉ™tçilÉ™r cÉ™miyyÉ™tiniz haqqında daha asan bilgi sahibi olur.WordPress.com hesabınızdan istifadÉ™ edÉ™rÉ™k bütün Jetpack xüsusiyyÉ™tli saytlarınızda tÉ™k bir tıklama ilÉ™ giriÅŸ etmÉ™yinizi tÉ™min edÉ™r.tÉ™svirlÉ™rinizi pulsuz vÉ™ sürÉ™tli vizual CDN-mizdÉ™n É™ks etdirib tÉ™qdim edÉ™rÉ™k serverlÉ™rinizÉ™ É™lavÉ™ yük vermÉ™dÉ™n saytınızın performansını artırır.WordPress saytlarının tamamındakı É™n son olayları tÉ™qib edin vÉ™ digÉ™r WordPress.com istifadəçilÉ™rinizlÉ™ ünsiyyÉ™tdÉ™ olun.LaTeXEtiketE-poçtAdVeb saytParametrParametrlÉ™rdaşıEtiketlÉ™rEtiketlÉ™r: É™dviyyatlar, favoritlÉ™r vÉ™ s. EtiketlÉ™ri vergüllÉ™ ayırınDilBöyükBöyük Bloq TÉ™sviriSon DÉ™yiÅŸiklikTÉ™rtibat ParametrlÉ™ri:Daha çox mÉ™lumatDaha É™traflıAÅŸağı dÉ™yÉ™r haqqında daha É™traflı mÉ™lumat.Bir cavab yazın%s üçün bir cavab yazınBir cavab yazınSolBizÉ™ adınızı söylÉ™yin.AçıqBÉ™yÉ™nBunu bÉ™yÉ™n:BÉ™yÉ™nmÉ™lÉ™rBÉ™yÉ™nmÉ™ BildiriÅŸlÉ™riBÉ™yÉ™nmÉ™lÉ™r, oxuyucularınızın, yazılarınızda vÉ™ yayınlanan digÉ™r içəriyÉ™ yönÉ™lik tÉ™qdirlÉ™rini WordPress.com hesablarından istifadÉ™ edÉ™rÉ™k göstÉ™rmÉ™lÉ™rinÉ™ ÅŸÉ™rait yaradar. Bunun ardından, oxuyucularınız, WordPress.com-dan bÉ™yÉ™ndiklÉ™ri yazılarla É™laqÉ™dar dÉ™yÉ™rlÉ™ndirmÉ™ edÉ™ bilÉ™rlÉ™r.BÉ™yÉ™nmÉ™lÉ™r vÉ™ PaylaÅŸmalarLimit böyük vÉ™ ya 0-a bÉ™rabÉ™r olmalıdır.Videolar, tam ölçülü tÉ™svirlÉ™r vÉ™ digÉ™r qısa kodlar üçün geniÅŸliyi %1$s piksellÉ™ mÉ™hdudlaÅŸdırın. (Daha É™traflı mÉ™lumat.)BaÄŸlantı RÉ™ngi (hex):BaÄŸlantı:BaÄŸlantı URL (tÉ™svirÉ™ tıklandığında):Hesabı WordPress.com ilÉ™ baÄŸlaredaktÉ™ etHesabınızı WordPress.com-a baÄŸlayınLinkedInLinkedIn istifadəçi adı:İnternetdÉ™ istifadÉ™ etdiyiniz xidmÉ™tlÉ™rÉ™ baÄŸlantılar.Bloqunuzun RSS qidalandırıpcılarının baÄŸlantılarıSizin kim olduÄŸunuzu anlatmaÄŸa yardımçı olan veb saytı, bloq vs. baÄŸlantıları.Canlı ÖnizlÉ™mÉ™XMLRPC faylnızı yüklÉ™yin. SadÉ™cÉ™ “XML-RPC server accepts POST requests only.†ifadÉ™si görünmÉ™lidir.YüklÉ™nir …ŞərhlÉ™r YüklÉ™nir...Video yüklÉ™nir...YüklÉ™nir…YüklÉ™nir...Ogg video faylının mövqeyi.WordPress.com ilÉ™ Daxil olGirişÇıxışGiriÅŸ Jetpack tÉ™rÉ™findÉ™n blok edildiGiriÅŸ üsuluna icazÉ™ verilmirLoqoNahar: 11.00 - 14.00 AxÅŸam YemÉ™yi: Btesi-Çş 17.00 – 23.00, CümÉ™-Åžb: 17.00 – 01.00d F Y @ H:iÆsas yan sütunBu bloqun bütün istifadəçilÉ™ri üçün bu baÄŸlantı istifadÉ™ edilÉ™ bilinÉ™n olsunmu?BÉ™yan parametrlÉ™rinizi idarÉ™ edin.profil parametrlÉ™riniz vasitÉ™si ilÉ™ E-poçt ilÉ™ Yazı ünvanınızı idarÉ™ edin.Spam olaraq iÅŸarÉ™lÉ™Bu mesajı spam Deyil olaraq iÅŸarÉ™lÉ™Bu mesajı spam olaraq iÅŸarÉ™lÉ™AÅŸağı dÉ™yÉ™rAÅŸağı dÉ™yÉ™rli mühtÉ™viyyatAÅŸağı DÉ™yÉ™r, normal simvolları vÉ™ nöqtÉ™ iÅŸarÉ™lÉ™rini istifadÉ™ edÉ™rÉ™k baÄŸlantılar, siyahılar vÉ™ digÉ™r stillÉ™rlÉ™ yazılar vÉ™ ÅŸÉ™rhlÉ™r yaratmağınıza imkan yaradır. AÅŸağı DÉ™yÉ™r, É™llÉ™rini klaviaturadan qaldırmadan vÉ™ bir yığın qarmaqarışıq kodu vÉ™ qısayolu öyrÉ™nmÉ™k mÉ™cburiyyÉ™tindÉ™ qalmadan zÉ™ngin mÉ™tn yazmaq üçün sürÉ™tli vÉ™ asan bir üsul istÉ™yÉ™n müəlliflÉ™r vÉ™ bloq müəlliflÉ™ri tÉ™rÉ™findÉ™n istifadÉ™ edilir.E-poçt ilÉ™ TutuÅŸdurGöstÉ™rilÉ™cÉ™k yazıların maksimal miqdarı (É™n çox 10):MediaMedia faylıMedia GeniÅŸliyi:OrtaMenyuMenyu elementiMenyu maddÉ™sinin etiketiMenyu maddÉ™sinin etiketlÉ™riMenyu maddÉ™lÉ™riMenyu maddÉ™lÉ™ri yenidÉ™n sıralandı.Menyu BölmÉ™siMenyu BölmÉ™lÉ™riMenyu maddÉ™si qaralaması yenilÉ™ndi. ÖnizlÉ™mÉ™Menyu maddÉ™si dÉ™rc edildi. Menyu maddÉ™sinÉ™ baxMenyu maddÉ™si %s versiyasından geri gÉ™tirildi.Menyu maddÉ™si qeyd edildi.Menyu maddÉ™si planlandı: %1$s. ÖnizlÉ™mÉ™Menyu maddÉ™si göndÉ™rildi. MaddÉ™nin ön izlÉ™mÉ™siMenyu maddÉ™si yenilÉ™ndi.Menyu maddÉ™si yenilÉ™ndi. Menyu maddÉ™sinÉ™ baxMesajMesaj göndÉ™rildi. MesajlarMetadataErtÉ™lÉ™nmÉ™ qaçırıldıYarımçıq É™lavÉ™ ID.Yaımçıq hÉ™dÉ™f bloq ID.Yarımçıq hÉ™dÉ™f yazı ID.Mobil Proqram TÉ™qdimatlarıMobil ProqramlarMobil MövzuMobil-uyumlu:Modal pÉ™ncÉ™rÉ™. BaÄŸlamaq üçün çıxış düymÉ™sinÉ™ basın.Rejim:WordPress.com CDN-dÉ™n rÉ™sm yüklÉ™yÉ™rÉ™k saytınızı sürÉ™tlÉ™ndirin.Saytınıza sayt ikonu É™lavÉ™ edin.Yan menyunuza tÉ™svirlÉ™r, Twitter axışları, saytınızın RSS baÄŸlantılarını vÉ™ daha çoxunu É™lavÉ™ edin.Mövzunuza davamlı sürüşdürmÉ™ dÉ™stÉ™yi É™lavÉ™ edin.Proqramların bulud vasitÉ™si ilÉ™ içəriklÉ™rinizÉ™ tÉ™hlükÉ™siz bir ÅŸÉ™kildÉ™ qoÅŸulmasına imkan yaradın.İstifadəçilÉ™rin yazılarınıza vÉ™ ÅŸÉ™rhlÉ™rinizÉ™ abunÉ™ olmalarına vÉ™ e-poçt yolu ilÉ™ almalarına imkan yaradın.ZiyarÉ™tçilÉ™rin, içəriyinizi tÉ™k bir tıklama ilÉ™ Facebook, Twitter vÉ™ daha çoxunda paylaÅŸmalarına ÅŸÉ™rait yaradın.İstifadəçilÉ™rinizin WordPress.com hesablarından istifadÉ™ edÉ™rÉ™k daxil olmalarına imkan yaradın.After the Deadline korrektor xidmÉ™ti ilÉ™ imlanızı, stilinizi vÉ™ dil bilginizi yoxlayın.Temanızı deÄŸiÅŸtirmeden sitenizin CSS'sini özelleÅŸtirin. Mövzunuzu dÉ™yiÅŸdirmÉ™dÉ™n saytınızın CSS-ini özÉ™lləşdirin.Yazılar vÉ™ sÉ™hifÉ™lÉ™rin altında É™laqÉ™dar içəriyinizin baÄŸlantılarını görüntülÉ™yin.TÉ™svir qalereyalarınızı çeÅŸidli ÅŸux qrafik tÉ™rtibatlar ÅŸÉ™klindÉ™ göstÉ™rin.YouTube, Vimeo, SlideShare vÉ™ daha çoxundan içərik É™lavÉ™ edin - kodlamya ehtiyac olmadan.Bütün yazılar vÉ™ sÉ™hifÉ™lÉ™r üçün WP.me tÉ™rÉ™findÉ™n dÉ™stÉ™klÉ™nÉ™n qısa baÄŸlantıları aktivləşdirin.ŞərhçilÉ™rin Gravatarları üzÉ™rindÉ™ açılan vizit kartlarını aktivləşdirin.ZiyarÉ™tçilÉ™rin içəriyinizi nÉ™ qÉ™dÉ™r bÉ™yÉ™ndiklÉ™rini asan bir ÅŸÉ™kildÉ™ göstÉ™rÉ™ bilmÉ™lÉ™rinÉ™ imkan yaradın.Saytınızın hÉ™r hansı bir yerinÉ™ É™laqÉ™ forması É™lavÉ™ edin.Oxuyucuların WordPress.com, Twitter, Facebook vÉ™ ya Google+ hesablarından ÅŸÉ™rh yazmaqlarına imkan yaradın.Bütün saytlarınızı mÉ™rkÉ™zi bir yerdÉ™n idarÉ™ edin: https://wordpress.com/sites.Statistikalarınızı tam vÉ™ qısa raportlarla, serverinizÉ™ É™lavÉ™ yük olmadan izlÉ™yin.Saytınızı tablet vÉ™ telefonlar üçün hazırlanmış mobil dÉ™stÉ™kli bir mövzu ilÉ™ hÉ™r platformaya uyÄŸun hala gÉ™tirin.Yazılardan vÉ™ sÉ™hifÉ™lÉ™rdÉ™n ayrı olaraq saytınızda fÉ™rqli növlÉ™rdÉ™n olan içəriklÉ™ri redaktÉ™ edin görüntülÉ™yin.Saytınızı avtomatik geri yüklÉ™mÉ™lÉ™rlÉ™ vÉ™ tÉ™hlükÉ™sizlik axtarışları ilÉ™ qoruyun. (AbunÉ™lik gÉ™rÉ™klidir.)HÉ™r hansı bir cihazdan vÉ™ ya e-poçt müştÉ™risindÉ™n istifadÉ™ edÉ™rÉ™k yazıları e-poçt ilÉ™ yayımlayın.NÉ™zarÉ™tçi alÉ™t çubuÄŸu vÉ™ Mobil cihazlarınız vasitÉ™si ilÉ™ sayt aktivliyi haqqında bildiriÅŸ alın.Saytınız offlayn olduÄŸunda vÉ™ ya tÉ™krar onlayn olduÄŸunda Jetpack-dan bildiriÅŸ alın.VerilÉ™nlÉ™r bazanızın tamamını İdarÉ™etmÉ™ lövhÉ™sindÉ™ki tÉ™k bir sahÉ™dÉ™n axtarın.Yeni yazıları sosial media ÅŸÉ™bÉ™kÉ™lÉ™rindÉ™ avtomatik olaraq paylaşın.HÉ™r kÉ™sÉ™ açıq olan yazılarınızı vÉ™ ÅŸÉ™rhlÉ™rinizi axtarış sistemlÉ™ri vÉ™ digÉ™r xidmÉ™tlÉ™rlÉ™ paylaşın.Hansı pÉ™ncÉ™rÉ™ maddÉ™lÉ™rinin saytınızın hansı sÉ™hifÉ™lÉ™rindÉ™ görünÉ™cÉ™yini tÉ™yin edin.Standart tÉ™svir qalereyalarını tam ekran slaydÅŸoularına dönüşdürün.BirbaÅŸa saytınıza video yüklÉ™yib saxlayın. (AbunÉ™lik gÉ™rÉ™klidir.)Qarışıq düsturlar vb. üçün yazılarda vÉ™ sÉ™hifÉ™lÉ™rdÉ™ LaTeX formatlama dilindÉ™n istifadÉ™ edin.Saytınızı vÉ™ ya domeninizi Google Vebusta AlÉ™tlÉ™ti, Pinterest vÉ™ digÉ™rlÉ™ri ilÉ™ tÉ™sdiqlÉ™yin.Yazıları vÉ™ ya sÉ™hifÉ™lÉ™ri düz mÉ™tn Markdown söz sintaksisindÉ™ yazın.Modul haqqında mÉ™lumatRiyaziyyatın GözÉ™lliyiKaruselÆlaqÉ™ FormasıÖzÉ™l CSSXüsusi İçərik NövlÉ™riTÉ™kmilləşdirilmiÅŸ VesiyaÆlavÉ™ Yanmenyu VidcetiGravatar Kimlik KartıDavamlı SürüşdürmÉ™JSON APIJetpack ŞərhlÉ™riJetpack Çoxlu GiriÅŸBÉ™yÉ™nmÉ™lÉ™rİdarÉ™ etAÅŸağı dÉ™yÉ™rMobil MövzuMonitorBildiriÅŸlÉ™rÆsas AxtarışFotonE-poçt ilÉ™ YazıQorumaBÉ™yanOxÅŸar YazılarPaylaÅŸmaQısakod DaxiletmÉ™lÉ™riSayt İkonuSayt TÉ™sdiqlÉ™mÉ™siİmla vÉ™ QrammatikaAbunÉ™liklÉ™rDöşənmiÅŸ QalereyalarVaultPressVideoPressWP.me Qısa baÄŸlantılarıVidcet GörünüşüWordPress.com StatistikalarıGörünüşMÉ™rkÉ™zləşdirilmiÅŸ İdarÉ™etmÉ™ÆmÉ™k sÉ™rf edÉ™nlÉ™rSürÉ™tli BaÅŸlatMobilDigÉ™rFotolar vÉ™ VideolarMÉ™slÉ™hÉ™t bilinÉ™nSosialWordPress.com StatistikalarıYazmaModul aktivləşdirilmÉ™di; çünki önÉ™mli bir xÉ™taya sÉ™bÉ™b oldu. BÉ™lkÉ™ dÉ™ qurduÄŸunuz baÅŸqa bir qoÅŸma ilÉ™ uyÄŸunsuzluq vardır.Modul tapılmadı: `%s`.Aylıq ArxivlÉ™r: %sAylıq arxivlÉ™rDaha çoxDaha çox mÉ™lumatE-poçtlar, É™lavÉ™lÉ™r göndÉ™rmÉ™k vÉ™ mesajları özÉ™lləşdirmÉ™ haqqında daha É™traflı mÉ™lumat.BÉ™yÉ™nmÉ™lÉ™rin istifadÉ™si haqqında daha É™traflı mÉ™lumat.BÉ™yan istifadÉ™si haqqında daha çox mÉ™lumat.OxÅŸar Yazılar parametrindÉ™n istifadÉ™ haqqında daha çox mÉ™lumat.Menyu bölmÉ™sini aÅŸağı daşıMenyu bölmÉ™sini yuxarı daşıMÉ™nim Tweet-lÉ™rimAdŞəbÉ™kÉ™ ParametrlÉ™riYeniYeni KomiksYeni menyu maddÉ™siYeni menyu maddÉ™sinin etiketinin adıYeni Menyu BölmÉ™sinin AdıYeni LayihÉ™Yeni LayihÉ™ Etiketinin AdıYeni LayihÉ™ Növünün AdıYeni SÉ™trYeni XarakteristikaYeni sahÉ™Jetpack-da yeni xüsusiyyÉ™t: MÉ™rkÉ™zləşdirilmiÅŸ Sayt MeneceriYeni »Yeni ÅŸÉ™rhlÉ™r →Æn yeniSonrakı »Sonrakı »NoÇərçivÉ™sizHeç bir Komiks tapılmadıZibil qutusunda Komiks tapılmadıZirzÉ™misizBaÅŸlıqsızEtiket yoxdurEtiket tapılmadıMenyu maddÉ™si tapılmadıZibil qutusunda menyu maddÉ™si tapılmadıHeç bir modul tapılmadıHeç bir layihÉ™ tapılmadıZibil qutusunda heç bir layihÉ™ yoxdurSürüşdürmÉ™ çubuÄŸu yoxdurHeç Bir Xarakteristika TapılmadıZibil qutusunda heç bir xarakteristika yoxdurİstÉ™yinizdÉ™ blog_id yoxdu. LütfÉ™n Jetpack ilÉ™ WordPress.com arasındakı baÄŸlantını kÉ™sib baÄŸlantını yenidÉ™n qurmağı yolayın. Bunu etdikdÉ™n sonra, BÉ™yan baÄŸlantısını qurmağı tÉ™krar yoxlayın.Şərh yoxdur mÉ™tni göndÉ™rildi.VideoPress identifikatoru üçün mÉ™lumat tapılmadı: %s.Geri bildirÅŸ tapılmadıLoqo qurulmamışdırHeç bir qoÅŸma tapılmadı.MÉ™slÉ™hÉ™t yoxdurHeç bir etiket tapılmadı.Mövzu tapılmadı.GÉ™lÉ™cÉ™k tÉ™dbir yoxdurHeç bir yenilÉ™nmÉ™yÉ™ ehtiyac yoxdurİstÉ™yinizÉ™ hÉ™r hansı bir istifadəçi mÉ™lumatı É™lavÉ™ edilmÉ™di. LütfÉ™n istifadəçi hesabınızın Jetpack-a baÄŸlandığından É™min olun. wp-admin içindÉ™ki Jetpack sÉ™hifÉ™sinÉ™ gedÉ™rÉ™k istifadəçi hesabınızı baÄŸlayın.Heç bir yazma xÉ™tası tapılmadı.KimsÉ™ iÅŸlÉ™mÉ™yÉ™n saytları sevmÉ™z, bu üzdÉ™n Jetpack Monitoru iÅŸinin başındadır vÉ™ saytınızı hÉ™r beÅŸ dÉ™qiqÉ™dÉ™ bir yoxlayır. Saytınıza qoÅŸul bilmÉ™diyi an problem haqqında sizi xÉ™bÉ™rdar edÉ™n bir e-poçt alacaqsınız. Bu sayÉ™dÉ™ hÉ™mÉ™n gÉ™rÉ™kli redaktÉ™lÉ™ri edib saytınızı iÅŸlÉ™k vÉ™ziyyÉ™tÉ™ gÉ™tirÉ™ bilÉ™rsiniz!Nonsens tÉ™sdiqlÉ™mÉ™ baÅŸ tutmadı.Heç biriXeyr. Bununla birlikdÉ™, geri bildiriÅŸinizin göndÉ™rildiyi yeri vÉ™ ya mövzu sÉ™trini dÉ™yiÅŸdirmÉ™k istÉ™sÉ™niz, bunu da edÉ™ bilÉ™rsiniz. Burada hÉ™r hansı bir dÉ™yiÅŸiklik etmÉ™sÉ™niz, geri bildiriÅŸ sÉ™hifÉ™n/yazının müəllifinÉ™ göndÉ™rilir vÉ™ mövzu, bu sÉ™hifÉ™n/yazının adı olur.BaÄŸlantı YoxdurBaÄŸlantı YoxdurQeyd: Mövzular dÉ™yiÅŸdirildiyindÉ™ ÖzÉ™l CSS sıfırlanır.Qeyd: Mozaika qalereyasındakl tÉ™svirlÉ™r É™lavÉ™ xüsusi iÅŸlÉ™mÉ™ gÉ™rÉ™kdirir; dolayısı ilÉ™ Photon modulu söndürülmüş olsa belÉ™ bunlar WordPress.com-un CDN-dÉ™n tÉ™min edilir.TapılmadıBildiriÅŸlÉ™rE-poçt ilÉ™ izlÉ™nÉ™n ÅŸÉ™rhlÉ™ri mÉ™nÉ™ bildir.Yeni yazıları mÉ™nÉ™ e-poçt ilÉ™ bildir.İstifadəçiMüəllifRolTarixEtiketTaksonomiya, GöstÉ™rilÉ™cÉ™k Yazıların Miqdarı:OkRÉ™smi düymÉ™lÉ™rÆvÉ™zlÉ™mÉ™ böyük vÉ™ ya 0-a bÉ™rabÉ™r olmalıdır.Ogg Fayl URLTheora video vÉ™ Vorbis audio ilÉ™ Ogg fayl konteyneri. Internet Explorer vÉ™ Safari kimi bÉ™zi brauzerlÉ™rin, pulsuz proqramlara aid video formatlarını ifa etdirmÉ™diklÉ™rini yadınızda saxlayın.Æski %sÆn É™ski yazılarÆsas AxtarışÆsas Axtarış, digÉ™r provayderlÉ™rin dÉ™ nÉ™ticÉ™ tÉ™qdim etmÉ™sinÉ™ ÅŸÉ™rait yaradacaq digÉ™r qoÅŸmalarla qarşılıqlı bir ÅŸÉ™kildÉ™ iÅŸlÉ™yir.Bütün ÅŸÉ™rhlÉ™r üçünBütün yazılar üçünBu sÉ™hifÉ™dÉ™, Jetpack içindÉ™ki modulları göstÉ™rÉ™ bilÉ™r, daha çox mÉ™lumat É™ldÉ™ edÉ™ bilÉ™r vÉ™ modulları istÉ™diyiniz kimi aktıvasiya vÉ™ ya deaktivasiya edÉ™ bilÉ™rsiniz.AktivləşdirdikdÉ™n sonra, mövcud olan hesab açma formanıza bir "WordPress.com-da hesab aç" variantı É™lavÉ™ edilir.Bir Yeni Jetpack Modulu%s Yeni Jetpack ModuluSadÉ™cÉ™ pulsuz proqram formatındakı videoları göstÉ™rBuraya sadÉ™cÉ™ tÉ™svir faylları yüklÉ™yÉ™ bilÉ™rsiniz.SadÉ™cÉ™, bu saytdakı Jetpack baÄŸlantısını baÅŸladan istifadəçi %s dÉ™yiÅŸikliyini edÉ™ bilÉ™r; ancaq o istifadəçi artıq yoxdur. Bu olmamalıdır.SadÉ™cÉ™ seçilÉ™n bloqdakı videolar media kitabxananızda mövcuddur.altset yoxduraçıqBaÄŸlantını yeni pÉ™ncÉ™rÉ™dÉ™/sÉ™kmÉ™dÉ™ açYeni pÉ™ncÉ™rÉ™dÉ™ açılırOxuyucularınıza göstÉ™rilÉ™cÉ™k istÉ™yÉ™ baÄŸlı yazı:ParametrlÉ™rNarıncıSıralamaSaytınıza, yazılar vÉ™ sÉ™hifÉ™lÉ™rdÉ™n müstÉ™qil olaraq fÉ™rqli içərik növlÉ™rini təşkil edin vÉ™ görüntülÉ™yin.SÉ™hifÉ™ %sSÉ™hifÉ™lÉ™r:Valideyin Menyu BölmÉ™siValideyin Menyu BölmÉ™si:Valideyin LayihÉ™ NövüValideyin LayihÉ™ Növü:Passiv SÉ™sYol%s üçün daimi baÄŸlantıFÉ™rdi BaÄŸlantılarTelefon:Uzaq durulacaq İfadÉ™lÉ™rGeri izlÉ™mÉ™:ÇəhrayıPinterestPinterest istifadəçi adı:Planlar vÉ™ QiymÉ™tlÉ™r%s ifa etdirmÉ™k üçün JavaScript gÉ™rÉ™kdir .LütfÉ™n ÅŸÉ™rhiniz ilÉ™ birlikdÉ™ bir mÉ™tn göndÉ™rdiyinizdÉ™n É™min olun.LütfÉ™n qarşılaÅŸdığınız problem barÉ™sindÉ™ mÉ™lumat verin.VideoPress istifadÉ™ etmÉ™k üçün, veb brauzerinizin JavaScript dÉ™stÉ™yini aktivləşdirin.LütfÉ™n, VideoPress modulunun aktiv bir VideoPress abunÉ™liyi olan bir WordPress.com hesabı gÉ™rÉ™kdirdiyini unutmayın.Saytınız özÉ™l olduÄŸu üçün servislÉ™rinizin imkanları mÉ™hduddur.Etibarlı bir e-poçt ünvanı tÉ™qdim edin.Şərh etmÉ™k üçün e-poçt ünvanınızı tÉ™qdim edin.Bir e-poçt ünvanı daxil edin.Şərh etmÉ™k üçün adnızı tÉ™qdim edin.Adınızı tÉ™min edin.LütfÉ™n, yüklÉ™mÉ™k üçün bir video fayl seçin.Etibarlı bir modul tÉ™yin edin.Etibarlı istifadəçi daxil edin.ÆgÉ™r bir istifadəçini vÉ™ ya bloqu dövrÉ™dÉ™n açmaq istÉ™yirsinizsÉ™, birini tÉ™yin edin.LütfÉ™n fayl yüklÉ™yin.Ad gününüzü tÉ™sdiqlÉ™yin.QoÅŸma aktivləşdirildi.QoÅŸma ancaq ÅŸÉ™bÉ™kÉ™ üzÉ™rindÉ™n aktivləşdirilÉ™ bilÉ™rQoÅŸma deaktivasiya edidi.QoÅŸmalarPocketPopulyarPopulyar EtiketlÉ™rPopulyar LayihÉ™ EtiketlÉ™riPortfelPortfel MaddÉ™lÉ™riPortfel ParametrlÉ™riÆn çox %1$s portfel layihÉ™ sÉ™hifÉ™sini göstÉ™rŞərh göndÉ™r%s yayınları:E-poçt ilÉ™ YazıE-poçt ilÉ™ Yazı göndÉ™rmÉ™k, e-poçt vasitÉ™si ilÉ™ bloqda yazı dÉ™rc etmÉ™yin müxtÉ™lif üsullarından biridir. İstÉ™nilÉ™n e-poçt müştÉ™risi mobil telefon vasitÉ™si ilÉ™ asanlıqla vÉ™ tez bir ÅŸÉ™kildÉ™ e-poç vasitÉ™si ilÉ™ yazılarını dÉ™rc edÉ™ bilÉ™r.Yazı çevrildi.%s yazı çevrildiYazı naviqasiyasıYazı növü:Yazı göndÉ™rilmÉ™di - e-poçt ünvanlarınızı yoxlayın!Yazan %s tÉ™rÉ™findÉ™n dÉ™rc edildiKateqoriya:%sYazılarYazılar vÉ™ ŞərhlÉ™rYazılar vÉ™ SÉ™hifÉ™lÉ™rYazılar indekslÉ™ndi.Yazı sÉ™hifÉ™siPreprosessor:Press ThisÖn izlÉ™mÉ™Favikon ÖnizlÉ™mÉ™siÆsas SÉ™hifÉ™ İkonunun ÖnizlÉ™mÉ™siÖn izlÉ™mÉ™:Ön izlÉ™mÉ™: DÉ™yiÅŸikliklÉ™r qeyd edilmÉ™diyi tÉ™qdirdÉ™ qeyb olacaqlar.QiymÉ™tÆsas menyuÇap etGizlilikGizlilik SiyasÉ™tiİşlÉ™nir...LayihÉ™LayihÉ™ EtiketiLayihÉ™ EtiketlÉ™riLayihÉ™ NövüLayihÉ™ NövlÉ™riLayihÉ™ qaralaması yenilÉ™ndi. LayihÉ™nin önizlÉ™mÉ™siLayihÉ™ dÉ™rc edildi. LayihÉ™yÉ™ baxLayihÉ™ %s versiyasından geri bÉ™rpa edildiLayihÉ™ qeyd edildi.LayihÉ™ planlandı: %1$s. ÖnizlÉ™mÉ™LayihÉ™ göndÉ™rildi. LayihÉ™nin önizlÉ™mÉ™siLayihÉ™ yenilÉ™ndi.LayihÉ™ yenilÉ™ndi. LayihÉ™yÉ™ baxLayihÉ™lÉ™rKorrektor YazmaKorrektÉ™%s qürurla tÉ™qdim edÉ™rBÉ™yanBÉ™yan, bloqunuzu populyar sosial ÅŸÉ™bÉ™kÉ™ saytlarına baÄŸlamağınıza vÉ™ yeni yazıları dostlarınızla avtomatik olaraq paylaÅŸmağınıza imkan yaradar. SadÉ™cÉ™ özünüz üçün vÉ™ ya bloqunuzdakı istifadəçilÉ™rin tamamı üçün bir baÄŸlantı yarada bilÉ™rsiniz.BÉ™yan, yazılarınızı Facebook, Twitter, Tumblr, Yahoo! vÉ™ Linkedin-dÉ™ paylaÅŸmağınıza ÅŸÉ™rait yaradar.%s hesabımda bÉ™yan et:BÉ™yan:DÉ™rc etDÉ™rc edilmiÅŸYayımcı, daxil edilmiÅŸ videoların ifa etdirilmÉ™sinÉ™ mÉ™hdudiyyÉ™t qoyur.Satın alTünd qırmızıİdarÉ™etmÉ™ çubuÄŸunda 48 saat É™rzindÉ™ki baxışları göstÉ™rÉ™n bir qrafik yerləşdirin.Profilinizi yoxlamaq üçün mausunuzu Gravatar tÉ™svirinin üzÉ™rinÉ™ gÉ™tirin.HÆR ÅžEYİ SIFIRLA (sadÉ™cÉ™ test É™snasında) – modulları mövcud parametrinÉ™ sıfırlayarRSS BaÄŸlantılar (Jetpack)RadioQarışıq Sıra:ReytinqE-poçt İzlÉ™mÉ™ BildiriÅŸlÉ™rini Al.Æn son yazılarQırmızıRedditYardımçı İfadÉ™lÉ™rStatusu TÉ™zÉ™lÉ™%s ilÉ™ baÄŸlantını yeniləÜnvanı YenidÉ™n YaratQeydiyyatdan keçmiÅŸ istifadəçilÉ™rYazılar yenidÉ™n indekslÉ™nirOxÅŸarOxÅŸar YazılarOxÅŸar yazılarİkonu SilServisi SilLoqonu silTÉ™krarlanan KÉ™lmÉ™Mövzunun CSS ilÉ™ yerini dÉ™yiÅŸdir (Qabaqcıl)BölmÉ™ni bununla dÉ™yiÅŸdirin:Yer dÉ™yiÅŸdirmÉ™CavablaRaport görünüşüİki MÉ™rhÉ™lÉ™li TÉ™sdiqlÉ™mÉ™ İstÉ™GÉ™rÉ™klidirmi? BÉ™rpa etBu elementi zibil qutusundan geri yüklÉ™NÉ™ticÉ™lÉ™r:GöndÉ™rÉ™nÉ™ geri qaytar. XÉ™ta! DeyÉ™sÉ™n poçtdakı Jetpack yanlışdır; yenisini almaq üçün Jetpack qoÅŸmasını söndürüb yenidÉ™n aktivləşdirin.SaÄŸQeyd etQeyd et & YüksÉ™ltmÉ™ni Satın alDÉ™yiÅŸikliklÉ™ri qeyd etYeni sıranı qeyd etStil SÉ™hifÉ™sini qeyd etQeyd et vÉ™ forma yaradıcısına geri dönKonfiqurasiyanı qeyd etBu sahÉ™ni qeyd etMüvÉ™ffÉ™qiyyÉ™tlÉ™ qeyd edildiPlanlanmışDavamlı sürüşdürmÉ™ rejimiÆvvÉ™lÉ™ qayıtAxtarKomikslÉ™ri axtarŞərhlÉ™ri axtarHÉ™r Åžeyi AxtarınGeri bildiriÅŸlÉ™ri axtarMedia AxtarMenyu maddÉ™sinin etiketlÉ™rini axtarAxtarış menyusu maddÉ™lÉ™riAxtarış Menyu BölmÉ™lÉ™riModulları Axtar…QoÅŸmaları axtarLayihÉ™ EtiketlÉ™rini AxtarLayihÉ™ NövlÉ™rini AxtarLayihÉ™lÉ™ri Axtar %s üçün Axtarışın NÉ™ticÉ™lÉ™ri:Xarakteristikaları AxtarBir dÉ™fÉ™ axtarış edin, hÉ™r ÅŸeydÉ™n nÉ™ticÉ™ É™ldÉ™ edin! Hazırda yazıları, sÉ™hifÉ™lÉ™ri, ÅŸÉ™rhlÉ™ri, medianı vÉ™ qoÅŸmaları axtarmağı dÉ™stÉ™klÉ™yir.Axtarışın nÉ™ticÉ™lÉ™riDigÉ™r %s Jetpack özÉ™lliyinÉ™ baxınBir istifadəçi seçin vÉ™ ya "özÉ™l"i seçib özÉ™l bir e-poçt ünvanı daxil edin.EndirmÉ™k üçün bir geri bildiriÅŸ seçinStatistika raportlarına baxa bilmÉ™k üçün mümkün ola bilÉ™cÉ™k rolları seçin.Müasir FÉ™rdi Yayın PlatformasıE-poçt göndÉ™rE-poçt ünvanına göndÉ™rTÉ™sdiqlÉ™nmiÅŸ bir %s istifadəçisi tÉ™rÉ™findÉ™n göndÉ™rildi.ŞəxsiyyÉ™ti tÉ™yin edilmÉ™miÅŸ birisi tÉ™rÉ™findÉ™n saytınıza göndÉ™rilmiÅŸdir.EtiketlÉ™ri vergül ilÉ™ ayırınServis adı%1$s: %2$sBuraya sürüşdürülmüş servislÉ™r fÉ™rdi qaydada görünür.Burada göstÉ™rilÉ™n servislÉ™r PaylaÅŸ düymÉ™sinin arxasında gizlÉ™dilÉ™cÉ™kdir.ServisLoqo olaraq qurParametrlÉ™rParametrlÉ™r qeyd edildiPaylaÅŸFacebook-da paylaÅŸTumblr-da paylaÅŸBunu paylaÅŸ:Yazılarınızı Twitter, Facebook vÉ™ digÉ™r bir çox servislÉ™ paylaşın. ServislÉ™ri ikon, mÉ™tn vÉ™ ya hÉ™r iki formatda görünÉ™cÉ™k ÅŸÉ™kildÉ™ tÉ™rtibatlandıra bilÉ™rsiniz. BÉ™zi servislÉ™rdÉ™, yazının paylaşılma miqdarını yenilÉ™yÉ™n ağıllı düymÉ™lÉ™ri görüntülÉ™mÉ™k üçün É™lavÉ™ seçimlÉ™r mövcuddur (mÉ™sÉ™lÉ™n, Twitter).PaylaşıldıPaylaşılmış YazıPaylaÅŸmaPaylaÅŸma DüymÉ™lÉ™riPaylaÅŸma ParametrlÉ™riPaylaÅŸma URLPaylaÅŸma baÄŸlıdır. AktivləşdirmÉ™k üçün yuxarıdakı servislÉ™ri É™lavÉ™ edin.PaylaÅŸma etiketiRÉ™f:Qısa kodQısakod ÆlavÉ™etmÉ™lÉ™riQısa kodlar, saytınıza digÉ™r yerlÉ™rdÉ™n asan vÉ™ etibarlı bir ÅŸÉ™kildÉ™ media köçürüb daxil etmÉ™yinizÉ™ imkan yaradır. SadÉ™cÉ™ tÉ™k bir bÉ™sit kodla, WordPress-É™ YouTube, Flickr vÉ™ digÉ™r medianı daxil etdirÉ™ bilÉ™rsiniz.GöstÉ™rHesab BaÄŸlantılarını GöstÉ™rÖrtük Fotosunu GöstÉ™rXülasÉ™lÉ™ri GöstÉ™r:ÜzlÉ™ri GöstÉ™rXüsusi TÉ™sviri GöstÉ™r:SÉ™hifÉ™ Yazılarını GöstÉ™r.FÉ™rdi BaÄŸlantıları GöstÉ™rAxışı GöstÉ™rOxÅŸar yazıları É™sl yazıdan daha açıq ÅŸÉ™kildÉ™ ayırmaq üçün bir "OxÅŸar" baÅŸlığı göstÉ™rŞərh formasında 'bloqu izlÉ™' parametrini göstÉ™rŞərh formasında 'ÅŸÉ™rhi izlÉ™' parametrini göstÉ™rMobil mövzunun zirzÉ™mi bölmÉ™sindÉ™ WordPress mobil proqramları üçün bir tÉ™qdimat göstÉ™rin.DüymÉ™lÉ™ri burada göstÉ™r:Yanvar ayının 4-nÉ™ qÉ™dÉ™r bloqumda yaÄŸan qar göstÉ™r.Ön sÉ™hifÉ™dÉ™ vÉ™ arxiv sÉ™hifÉ™lÉ™rindÉ™ yazının tamamını göstÉ™rBÉ™yÉ™nilÉ™nlÉ™ri göstÉ™r.XÉ™ritÉ™ni göstÉ™rİstifadÉ™yÉ™ hazır olduÄŸunda karusel içindÉ™ fotonun yer xÉ™ritÉ™sini göstÉ™r.Daha çoxunu göstÉ™rMövcud olduÄŸunda, karusel içindÉ™ foto meta mÉ™lumatını (Exif) göstÉ™r.QoÅŸmada profil rÉ™smini göstÉ™r.Yazılardan sonra oxÅŸar içəriyi göstÉ™rPaylaÅŸma düymÉ™lÉ™rini göstÉ™r.Yazılarda YenidÉ™n bloqlama düymÉ™sini göstÉ™rÆn çox oxunanları göstÉ™rmÉ™ kriteriyası:Æsas axtarış kriteriyalarını göstÉ™rCÉ™mi abunəçi sayı göstÉ™rilsinmi? (%s abunəçi)CÉ™mi abunəçi sayı göstÉ™rilsinmi? (%s abunəçi)GöstÉ™r:vÉ™ yaÆn çox baxılan yazı vÉ™ sÉ™hifÉ™lÉ™rinizi göstÉ™rin.GecikmÉ™ SürÉ™tiGümüşüOxÅŸar yazıSayt İkonuSayt ikonu yüklÉ™ndiSayt ikonu, saytınız vÉ™ daha çoxu üçün çox istifadÉ™ edilÉ™n sayt ikonu yaradır.Sayt İkonu saytınızda ikon yaratmaq üçündür. Bu ikon, mobil cihazlarda vÉ™ Windows 8 ÆS olan bilgisayarlarda istifadÉ™ edilÉ™ bilÉ™r.Sayt LoqosuSayt AdıSayt StatistikasıSayt baÅŸlığı, Şüar vÉ™ LoqoSaytlarÆsas mühtÉ™viyyata keçSlaydÅŸouKiçikÜz İfadÉ™siGülÉ™n üzParçacıqQarSosialSosial Media İkonlarıJetpack-ın bÉ™zi xüsusiyyÉ™tlÉ™ri, WordPress.com infrastrukturundan istifadÉ™ edir vÉ™ hÉ™r kÉ™sÉ™ açıq içəriyinizin orada É™ks olunmasını gÉ™rÉ™kdirir. Aralıqlarla meydana gÉ™lÉ™n problemlÉ™rin yalnızca müəyyÉ™n yazılara tÉ™sir etdiyini görsÉ™niz, lütfÉ™n yazılarınızın indeksinin yenidÉ™n yaradılmasını istÉ™yin.BÉ™zi mövzu vÉ™ qoÅŸmaların Jetpack ilÉ™ yola getmÉ™diyi mÉ™lumdur - siyahıya baxın. (Ayrıca Jetpack dÉ™stÉ™k sÉ™hifÉ™lÉ™rini ya da Jetpack dÉ™stÉ™k forumunu ziyarÉ™t edÉ™rÉ™k digÉ™rlÉ™rinin oxÅŸar problemlÉ™rlÉ™ qarşılaşıb-qarşılaÅŸmadığını vÉ™ onları hÉ™ll edib-edÉ™ bilmÉ™diyini görÉ™ bilÉ™rsiniz.Birisi mÉ™nim yazılarımı bÉ™yÉ™nirBirilÉ™ri sizi, onlara saytınıza daxil ola bilmÉ™ imkanı vermÉ™yiniz üçün tovlamaÄŸa çalışa bilÉ™r. Ya da sadÉ™cÉ™ bir xÉ™tayla qarşılaÅŸmış ola bilÉ™rsiniz :). HÉ™r ehtimala qarşı, lütfÉ™n bu pÉ™ncÉ™rÉ™ni baÄŸlayın.Jetpack BaÄŸlantınızda bir qarışıqlıq oldu!Bir qarışıqlıq oldu!Bir tÉ™rslik var!Wufoo qısa kodunuz xÉ™talıdır. %sWufoo Code Manager%s-dan köçürüb yapışdırsanız É™la olar.Æsla olmaması gÉ™rÉ™kÉ™n bir ÅŸey oldu. Üzr istÉ™yirik. TÉ™krar yoxlasanız bÉ™lkÉ™ çalışar.Bağışlayın, ancaq ÅŸÉ™rhiniz göndÉ™rilÉ™rkÉ™n bir xÉ™ta baÅŸ verdi. Bir az sonra tÉ™krar yoxlayın.Bağışlayın, ancaq istÉ™yinizi tÉ™sdiqlÉ™yÉ™ bilmÉ™dik.Bağışlayın, "%s" üçün heç bir axtarış modulu tapılmadıRaport edilÉ™cÉ™k heç bir mÉ™lumat yoxdur.Bağışlayın, sizin bloq e-poçt yolu ilÉ™ yazıları paylaÅŸmaq üçün münasib deyil.Bağışlayın, sizin brauzer dÉ™stÉ™klÉ™nmir.browsehappy.com-da yüksÉ™ldin.Bağışlayın. Bu ünvanın xÉ™ritÉ™sini çıxarda bilmÉ™rik. Bir xÉ™ritÉ™ göstÉ™rilmÉ™yÉ™cÉ™k. Ünvan doÄŸru formatlanmışdırmı?Sırala:SpamSpam (%s)Spam (%s)İmlaİmla vÉ™ QrammatikaKvadrat MozaikalarStatik sÉ™hifÉ™:StatistikalarBilinmÉ™yÉ™n status.Stil:Stil sÉ™hifÉ™si qeyd edildi.Alt saytı etibarsız etmÉ™kMövzuGöndÉ™rGöndÉ™r »ÅžÉ™rh%s GöndÉ™rmÉ™AbunÉ™AbunÉ™ DüymÉ™si:Tutucuya abunÉ™ olun:%s üçün abunÉ™ olE-poçt ilÉ™ Bloqa abunÉ™ olAbunÉ™lik Ekran GörüntüsüDÉ™stÉ™kEtiket adı%s ilÉ™ etiketlÉ™ndiEtiketlÉ™rİncÉ™lÉ™yinWordPress-i özünüzlÉ™ götürün.Bir araÅŸdırma edin. Biz bunu necÉ™ edirik - bizÉ™ bildirin.Bloq TÉ™sviri Üçün MüvÉ™qqÉ™ti Böyük TÉ™svirBloq TÉ™sviri Üçün MüvÉ™qqÉ™ti YenidÉ™n ÖlçülÉ™ndirilmiÅŸ Böyük TÉ™svirŞərtlÉ™rXidmÉ™t ŞərtlÉ™riJetpack ilÉ™ Saytınızın uyÄŸunluÄŸunu test edin.XarakteristikaXarakteristika SÉ™hifÉ™ MühtÉ™viyyatıXarakteristika SÉ™hifÉ™sinin Xüsusi TÉ™sviriXarakteristika SÉ™hifÉ™ BaÅŸlığıXarakteristika qaralaması yenilÉ™ndi. Xarakteristikanın ön izlÉ™mÉ™sinÉ™ baxTÉ™dbirlÉ™r sÉ™hifÉ™sindÉ™ É™n çox %1$s tÉ™dbir göstÉ™rilirXarakteristika dÉ™rc edildi. Xarakteristikaya baxXarakteristika %s versiyasından geri bÉ™rpa edildiXarakteristika qeyd edildi.Xarakteristika planlandı: %1$s. Xarakteristikanın ön izlÉ™mÉ™sinÉ™ baxXarakteristika göndÉ™rildi. Xarakteristikanın ön izlÉ™mÉ™sinÉ™ baxTestimonial updated.Xarakteristika yenilÉ™ndi. Xarakteristikaya baxXarakteristikalarSaytınızın Jetpack ilÉ™ uyÄŸunluÄŸu test edilir...MÉ™tnMÉ™tn vÉ™ TÉ™svir BaÄŸlantılarıMÉ™tn BaÄŸlantısıMÉ™tn SiyahısıYalnız mÉ™tnMÉ™tn sahÉ™siBu baÄŸlantı ləğv edildi.Bu, dÉ™yiÅŸdirmÉ™dÉ™n öncÉ™ bu sayta aid URL-dır. WordPress.com Bulud mÉ™lumatlarını keçərli parametrlÉ™rimÉ™ uyÄŸun olaraq yenilÉ™.After the Deadline Korrektor xidmÉ™ti, süni zÉ™kadan faydalanaraq, xÉ™talarınızı tapıb ağıllı mÉ™slÉ™hÉ™tlÉ™r tÉ™klif edÉ™r vÉ™ daha yaxşı yazma zövqü tÉ™qdim edÉ™r.Bu saytın Client ID/WP.com Blog ID-siÖzÉ™l CSS redaktoru, mövzunuzun CSS-sinÉ™ É™lavÉ™lÉ™r etmÉ™yinizÉ™ vÉ™ ya mövzunuzun CSS-sini dÉ™yiÅŸdirmÉ™yinizÉ™ imkan yaradar.Facebook BÉ™yÉ™nmÉ™ Qutusu VidcetiTÉ™svir VidcetiJetpack Modulu artıq aktivləşdirilmiÅŸdir.Jetpack Modulu artıq deaktivasiya edilmiÅŸdir.Jetpack Versiyası %sBu qoÅŸma artıq aktivdir.Bu qoÅŸma artıq deaktivasiya edilmiÅŸdir.RSS BaÄŸlantıları VidcetiTwitter VidcetiBu saytın domen adı sahibinin Twitter istifadəçi adı.VideoPress qoÅŸması VideoPress serverlÉ™ri ilÉ™ É™laqÉ™ qura bilmÉ™di. Böyük bir ehtimalla, yanlış tÉ™rtib edilmiÅŸ bir qoÅŸma bu xÉ™taya sÉ™bÉ™b olur. LütfÉ™n yenidÉ™n qurun vÉ™ ya yüksÉ™ldin.WordPress.com bloq_id: %dHesaba daxilolma müddÉ™ti bitdi. LütfÉ™n geri qayıdıb tÉ™krar yoxlayın.Yuxarıda sıralanan mÉ™lumatlar hazırkı saytıma aid deyil. LütfÉ™n baÄŸlantını kÉ™sin vÉ™ keçərli parametrlÉ™rimdÉ™n istifadÉ™ edÉ™rÉ™k bu sayt üçün WordPress.com ilÉ™ yeni bir baÄŸlantı qurun.%s mövzusu üçün mövcud içərik geniÅŸliyi %d pikseldir.Daxil etdiyiniz e-poçt yanlışdır. LütfÉ™n tÉ™krar cÉ™hd edin.YüklÉ™diyiniz fayl növü qÉ™bul edilÉ™n fayl növü deyil. LütfÉ™n tÉ™krar cÉ™hd edin.AÅŸağıdakı modullar yenilÉ™ndi: %l.AÅŸağıdakı yeni modullar aktiv edilmiÅŸdir: %l.AÅŸağıdakı xidmÉ™tlÉ™r daxildir: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Çap vÉ™ E-poçt.AÅŸağıdakı xidmÉ™tlÉ™r daxildir: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Çap vÉ™ E-poçt.Bu tÉ™svir, statistikaların toplanmasına yardımçı olur vÉ™ dünyanı daha yaxşı bir yer halına gÉ™tirir; ancaq gizlÉ™dilmiÅŸ olsa belÉ™ iÅŸlÉ™mÉ™si gÉ™rÉ™kdirTÉ™svirin geniÅŸliyi vÉ™ yüksÉ™kliyi É™n azYüklÉ™diyiniz tÉ™svirin hündürlüyü %upx -dÉ™n daha kiçikdir.YüklÉ™diyiniz tÉ™svirin eni %upx -dÉ™n daha kiçikdir.JetpackJetpack %sÆski versiya deaktivasiya edildi vÉ™ saytınızdan silinÉ™ bilÉ™r.Æski versiyalar deaktivasiya edildi vÉ™ saytınızdan silinÉ™ bilÉ™r.QoÅŸma artıq qurulmuÅŸdurBu video iÅŸlÉ™nÉ™rkÉ™n ön izlÉ™mÉ™ etmÉ™k olmaz.Birinci dÉ™rÉ™cÉ™li baÄŸlantı %s -ın WordPress.com hesabına aiddir.Korrektorun bu yazı üçün tÉ™kliflÉ™ri var. Bunu dÉ™rc etmÉ™k istÉ™diyinizdÉ™n É™minsinizmi? dÉ™rc etmÉ™k üçün OK düymÉ™sinÉ™ basın, ya da tÉ™kliflÉ™rÉ™ baxmaq vÉ™ yazını redaktÉ™ etmÉ™k üçün İmtina düymÉ™sinÉ™ basın.Korrektorun bu yazı üçün tÉ™kliflÉ™ri var. Bunu yenilÉ™mÉ™k istÉ™diyinizdÉ™n É™minsinizmi? yazını yenilÉ™mÉ™k üçün OK düymÉ™sinÉ™ basın, ya da tÉ™kliflÉ™rÉ™ baxmaq vÉ™ yazını redaktÉ™ etmÉ™k üçün İmtina düymÉ™sinÉ™ basın.Korrektor, İngilis, Fransız, Alman, Portuqal vÉ™ İspan dillÉ™rini dÉ™stÉ™klÉ™mÉ™kdÉ™dir. İstifadəçi interfeys diliniz (yuxarıda göstÉ™rilir) sizin mövcud korrektor dilinizdir.Xüsusi İçərik parametrlÉ™ri buraya daşındı: Görünüş → ÖzÉ™lləşdir.GöstÉ™rilÉ™n mövzu tapılmadı.Test nÉ™ticÉ™lÉ™ri vÉ™ digÉ™r faydalı xÉ™ta sazlama mÉ™lumatları dÉ™stÉ™k komandasına göndÉ™rilir. Bu mÉ™lumatları heç çəkinmÉ™dÉ™n dÉ™yÉ™rlÉ™ndirÉ™ bilÉ™r/dÉ™yiÅŸdirÉ™ bilÉ™rsiniz.Mövzu artıq qurulmuÅŸdurVidcet sadÉ™cÉ™ Facebook SÉ™hifÉ™lÉ™ri ilÉ™ iÅŸlÉ™yir.Mövzu boÅŸdur.Mövzu: %1$s.Statistika xidmÉ™ti tÉ™klif edÉ™n bir çox qoÅŸma vÉ™ xidmÉ™t vardır; ancaq mÉ™lumatlar çox baÅŸ qarışdırıcı ola bilir. WordPress.com Statistikaları, É™n populyar metrajların sadÉ™ vÉ™ cÉ™zbedici bir interfeyslÉ™ asaanca anlaşıla bilmÉ™sini tÉ™min edÉ™r.GöstÉ™rilÉ™cÉ™k yazı yoxdur. Daha çox trafikmi istÉ™yirsiniz?Sizin mövzu üçün istifadÉ™yÉ™ yararlı yenilÉ™nmÉ™ var. Bu yenilÉ™nmÉ™ WordPress YenilÉ™nmÉ™lÉ™ri sÉ™hifÉ™sini ziyarÉ™t edÉ™rÉ™k Davamlı SürüşdürmÉ™ni dÉ™stÉ™klÉ™diyi barÉ™dÉ™ É™lavÉ™ mÉ™lumata sahib olduÄŸunu öyrÉ™nÉ™ bilÉ™rsiniz.Saytınızın Jetpack ilÉ™ É™laqÉ™ qurma bacarığında problem var kimi görünür!Korrektor xidmÉ™ti ilÉ™ É™laqÉ™ yaratmaq mümkün olmadı. LütfÉ™n bir neçə dÉ™qiqÉ™dÉ™n sonra tÉ™krar yoxlayın.SÉ™lahiyyÉ™tli bir baÄŸlantı qurmaq üçün %s ilÉ™ baÄŸlantı qurularkÉ™n problem meydana gÉ™ldi. LütfÉ™n birazdan tÉ™krar yoxlayın.%s ilÉ™ É™laqÉ™ qurularkÉ™n bir problem ortaya çıxdı. LütfÉ™n É™laqÉ™ni kÉ™sib yenidÉ™n yoxlayın.BÉ™yan ilÉ™ baÄŸlantı qurularkÉ™n problem meydana gÉ™ldi. LütfÉ™n birazdan tÉ™krar yoxlayın.Bu ünvanı bir xÉ™ritÉ™ üzÉ™rindÉ™ göstÉ™rmÉ™k üçün mÉ™lumatları qÉ™bul edÉ™rkÉ™n bir xÉ™ta baÅŸ verdi. LütfÉ™n brauzerinizi yenilÉ™yin vÉ™ tÉ™krar yoxlayın.Korrektor servisi ilÉ™ É™laqÉ™ qurularkÉ™n xÉ™ta baÅŸ verdi.QoÅŸmanızı deaktivasiya edÉ™rkÉ™n bir xÉ™ta baÅŸ verdiQoÅŸma quruıması sırasında bir xÉ™ta meydana gÉ™ldiMövzunuz qurularkÉ™n bir xÉ™ta baÅŸ verdiQoÅŸmanızı yenilÉ™yÉ™rkÉ™n bir xÉ™ta baÅŸ verdiMövzunuzu yenilÉ™yÉ™rkÉ™n bir xÉ™ta baÅŸ verdiAbunÉ™ olarkÉ™n bir xÉ™ta baÅŸ verdi. LütfÉ™n tÉ™krar cÉ™hd edin.Modulu aktivləşdirÉ™rkÉ™n bir xÉ™ta meydana gÉ™ldi.Bu modulu deaktivasiya edÉ™rkÉ™n bir xÉ™ta baÅŸ verdi.Bu sayt üçün yenilÉ™mÉ™ mÉ™lumatı É™ldÉ™ edÉ™rkÉ™n bir xÉ™ta baÅŸ verdi.Saytınızın ziyarÉ™tçilÉ™rinin ağıllı telefondan istifadÉ™ etmÉ™ ehtimalı yüksÉ™kdir; dolayısı ilÉ™ kiçik ekran istifadÉ™ edÉ™nlÉ™r üçün çox yaxşı oxuma bacarığı tÉ™min etmÉ™k önÉ™mlidir.Bu parametrlÉ™r ÅŸÉ™bÉ™kÉ™dÉ™ki bütün saytlara tÉ™sir edÉ™cÉ™k.Bloqunuza göndÉ™rilÉ™n izlÉ™yici e-poçt dÉ™yiÅŸikliklÉ™rini bu parametrlÉ™ dÉ™yiÅŸin.(gÉ™rÉ™kli)Bu qöşulma düzgün iÅŸlÉ™yir.Bu xüsusiyyÉ™t, WordPress.com infrastrukturundan istifadÉ™ edir vÉ™ hÉ™r kÉ™sÉ™ açıq olan içəriyinizin orada É™ks etdirilmÉ™sini gÉ™rÉ™kdirir. FasilÉ™lÉ™rlÉ™ meydana gÉ™lÉ™n problemlÉ™rin sadÉ™cÉ™ müəyyÉ™n yazılara tÉ™sir etdiyini görsÉ™niz yazılarınızın direktoriyasının yenidÉ™n təşkil edilmÉ™sini istÉ™yin.Bu qalereya % 2$s foto ehtiva edir.Bu qalereya % 2$s foto ehtiva edir.Bu modul sadÉ™cÉ™, bu saytdakı Jetpack baÄŸlantısını aktivləşdirÉ™n istifadəçi olan %s ttÉ™rÉ™findÉ™n dÉ™yiÅŸdirilÉ™ bilÉ™r.Bu qoÅŸma o olmadan iÅŸlÉ™yir; ancaq, varsa, multibyte dÉ™stÉ™yi istifadÉ™ edilir . Tweet-lÉ™r vÉ™ digÉ™r paylaÅŸma servislÉ™ri ilÉ™ É™laqÉ™dar kiçik problemlÉ™rlÉ™ qarşılaÅŸa bilÉ™rsiniz.Bu yazı paylaşıldı!Bu yazı parolla qorunur.Bu yazı parolla qorunur. ŞərhlÉ™ri görmÉ™k üçün parolunuzu daxil edin.Bu profil hazıda WordPress.com ProfilinÉ™ baÄŸlı deyil.Bu parametr fÉ™rdi videolar üçün tÉ™krar redaktÉ™ edilÉ™ bilÉ™r.Bu sayt çox böyükdür, sinxronizasiya etmÉ™k üçün lütfÉ™n Jetpack dÉ™stÉ™k komandasına müraciÉ™t edin.Bu slaydÅŸou iÅŸÉ™ salına bilmÉ™z. SÉ™hifÉ™ni yenilÉ™yin vÉ™ ya baÅŸqa bir brauzerdÉ™ yoxlamaÄŸa çalışın.Bu slaydÅŸou üçün JavaScript lazımdır.Bu istifadəçi %s bloqunda qeydiyyatdan keçmÉ™miÅŸdir.Bu istifadəçi ÅŸÉ™bÉ™kÉ™dÉ™ki qoÅŸmaları idarÉ™ etmÉ™yÉ™ sÉ™lahiyyÉ™tli deyil.Bu video yetkinlik yaşına çatmış auditoriya üçün nÉ™zÉ™rdÉ™ tutulmuÅŸdur.Bu videonun ifası üçün Adobe Flash lazımdır.Bu hÉ™rÉ™kÉ™t Jetpack-ı söndürÉ™cÉ™kdir.Jetpack-ı söndürmÉ™k istÉ™diyinizdÉ™n É™minsinizmi?Bu, Jetpack modullarının tamamını deaktivasiya edÉ™r. BaÄŸlantını kÉ™smÉ™k istÉ™diyinizdÉ™n É™minsinizmi?Bu; BÉ™yan, BildiriÅŸlÉ™r vÉ™ E-poçt ilÉ™ Yazı kimi istifadəçiyÉ™ xas modulların iÅŸlÉ™mÉ™sinÉ™ mane olar. BaÄŸlantını silmÉ™k istÉ™diyinizdÉ™n É™minsinizmi?MiniatürMiniatür ToruDöşənmiÅŸ SütunlarDöşənmiÅŸ QalereyalarMozaik DöşəmÉ™MozaikalarVaxtTarix:Zaman tuneli mövzusu:BaÅŸlıqBaÅŸlıq:Saytınıza yeni ikon É™lavÉ™ etmÉ™k üçün, ParametrlÉ™r → Æsas → Sayt İkonu, ardıcıllığını izlÉ™yin vÉ™ yeni ikonunuzu yüklÉ™yin.PaylaÅŸma parametrlÉ™rinizi konfiqurasiya etmÉ™k üçün, ParametrlÉ™r → PaylaÅŸma menyusu bölmÉ™sinÉ™ gedin.Görünüşü yoxlamaq üçün, vidceti geniÅŸlÉ™din vÉ™ Qeyd et düymÉ™sinin yanındakı Görünüş düymÉ™sinÉ™ tıklayıb görünüş parametrlÉ™rinizi qurun.Bloqunuzdan izlÉ™yicilÉ™rinizÉ™ göndÉ™rilÉ™n e-poçtları özÉ™lləşdirmÉ™k üçün Oxuma ParametrlÉ™ri sÉ™hifÉ™sinin alt hissÉ™sindÉ™ki parametrlÉ™rdÉ™n istifadÉ™ edin.Jetpack xüsusiyyÉ™tlÉ™rinin tamamını aktivləşdirmÉ™k üçün saÄŸdakı düymÉ™dÉ™n istifadÉ™ edÉ™rÉ™k hesabınızı burada WordPress.com hesabınıza qoÅŸmağınız gÉ™rÉ™kdir.SonsuzluÄŸa doÄŸruKimlik Kartlarını görmÉ™k üçün, ÅŸÉ™rhÉ™ sahib olan bloqunuzdakı hÉ™r hansı bir bloq yazısına baxın. Şərhçinin gravatarı ilÉ™ É™laqÉ™lÉ™ndirilmiÅŸ bir kimlik kartı varsa onun tÉ™svirinin üzÉ™rinÉ™ gÉ™ldiyinizdÉ™ kimlik kartı görünür. Kimlik Kartlarını baÄŸlamaq üçün yuxarıdakı Ləğv Et düymÉ™sinÉ™ tıklayın.Jetpack-dan istifadÉ™ etmÉ™k üçün, bunu sizin yerinizÉ™ baÄŸlaması üçün lütfÉ™n WordPress nÉ™zarÉ™tçinizÉ™ müraciÉ™t edin.E-poçt İlÉ™ Yazıdan istifadÉ™ edÉ™ bilmÉ™k üçün, %s hesabınzı WordPress.com hesabınız ilÉ™ baÄŸlamağınız gÉ™rÉ™kdir.BÉ™yandan istifadÉ™ etmÉ™k üçün, aÅŸağıdakı baÄŸlantıdan istifadÉ™ edÉ™rÉ™k %s hesabınızı WordPress.com hesabınıza baÄŸlamağınız gÉ™rÉ™kdir.Qısa baÄŸlantılardan istifadÉ™ etmÉ™k üçün hal-hazırda dÉ™rc edilmiÅŸ olan yazılaran birinÉ™ gedin (vÉ™ ya yeni bir ÅŸey dÉ™rc edin!). Yazı baÅŸlığının altında “Qısa BaÄŸlantı Al†düymÉ™si görünür. Buna tıkladığınızda, qısa baÄŸlantıya sahib olan bir É™laqÉ™ qutusu ekrana gÉ™lir vÉ™ baÄŸlantını köçürüb Twitter-É™, Facebook-a ya da istÉ™diyiniz bir yerÉ™ yapışdıra bilÉ™rsiniz.CSS redaktorundan istifadÉ™ etmÉ™k üçün, Görünüş → CSS RedaktÉ™ et bölmÉ™sinÉ™ gedin.AbunÉ™liklÉ™r vidcetindÉ™n istifadÉ™ etmÉ™k üçün Görünüş → VidcetlÉ™r bölmÉ™sinÉ™ gedin. “Bloq AbunÉ™liklÉ™ri (Jetpack)†etiketli vidcetini yan menyularınızdan birinÉ™ sürüklÉ™yin vÉ™ qurun.VidcetlÉ™rdÉ™n istifadÉ™ etmÉ™k üçün Görünüş → VidcetlÉ™r bölmÉ™sinÉ™ gedin. VidcetlÉ™ri yan menyunuza sürüklÉ™yin vÉ™ qurun.Æn çox oxunan yazılarÆn Populyar Yazılar & SÉ™hifÉ™lÉ™rSon 24-48 içindÉ™ baxış statistikalarına görÉ™ hesablanan Æn Yaxşı Yazılar & SÉ™hifÉ™lÉ™r. DÉ™yiÅŸmÉ™lÉ™ri bir az zaman ala bilÉ™r.Æn populyar axtarışlarHÉ™r bir Davamlı SürüşdürmÉ™ yazısı yüklÉ™mÉ™sini Google Analytics-dÉ™ sÉ™hifÉ™ görüntülÉ™mÉ™si olaraq izlÉ™yinŞəffafŞəffaf Arxa fonZibil qutusuJetpack ilÉ™ É™laqÉ™dar bir probleminiz varmı?ÆlaqÉ™ qurmaÄŸa tÉ™krar cÉ™hd et.TumblrTumblr bloquHÉ™r bir yazı üçün ayrı-ayrı açılır@%s tweetlÉ™riTwitterTwitter Sayt EtiketiTwitter XronologiyasıTwitter istifadəçi adı:NövNövlÉ™rYUXARIURLE-poçt İlÉ™ Yazı ünvanınız yaradıla bilmir. LütfÉ™n daha sonra tÉ™krar yoxlayın.E-poçt İlÉ™ Yazı ləğv edilÉ™ bilmir. LütfÉ™n daha sonra tÉ™krar yoxlayın.E-poçt İlÉ™ Yazı ünvanınız yenidÉ™n yaradıla bilmir. LütfÉ™n daha sonra tÉ™krar yoxlayın.KateqoriyasızBilinmÉ™yÉ™n yazı növü tÉ™lÉ™b edildi.Bu Hesabın BaÄŸlantısını Ləğv Etİstifadəçinin WordPress.com baÄŸlantısını ləğv etDÉ™rc edilmÉ™miÅŸAbunÉ™likdÉ™n imtina etSizin mövzu Davamlı SürüşdürmÉ™ni dÉ™stÉ™klÉ™mÉ™diyi müddÉ™tcÉ™, bu modulu aktivləşdirmÉ™k mümkün olmayacaq.BaÅŸlıqsız YazıGÉ™lÉ™cÉ™k TÉ™dbirlÉ™rMenyu maddÉ™sinin etiketini yenilÉ™Menyu BölmÉ™sini YenilÉ™LayihÉ™ Etiketini YenilÉ™LayihÉ™ Növünü YenilÉ™Sayt ikonunu yenilÉ™YenilÉ™ndiTÉ™svir YüklÉ™Video YüklÉ™Video YüklÉ™Sayt ikonunuz olaraq istifadÉ™ etmÉ™k istÉ™diyiniz bir tÉ™svir yüklÉ™yin. Bir sonrakı mÉ™rhÉ™lÉ™dÉ™ bunu kÉ™smÉ™k lazım gÉ™lÉ™cÉ™k.YüklÉ™nir...$latex your latex code here$ vÉ™ ya [latex]your latex code here[/latex] istifadÉ™ edÉ™rÉ™k yazılarınıza vÉ™ ÅŸÉ™rhlÉ™rinizÉ™ %s É™lavÉ™ edin. HÉ™r cür variant mövcuddur.Google Analytics-i Davamlı SürüşdürmÉ™dÉ™ istifadÉ™ edinAÅŸağı dÉ™yÉ™ri ÅŸÉ™rhlÉ™r üçün istifadÉ™ et.AÅŸağı dÉ™yÉ™ri yazılar vÉ™ sÉ™hifÉ™lÉ™r üçün istifadÉ™ et.Böyük vÉ™ parlaq vizual tÉ™rtibatdan istifadÉ™ edinDüzgün e-poçt istifadÉ™ edin.Yazzılarda vÉ™ sÉ™hifÉ™lÉ™rdÉ™ korrektor oxuması etmÉ™k üçün avtomatik olaraq tÉ™yin edilÉ™n dildÉ™n istifadÉ™ etSütunlar arasında hÉ™rÉ™kÉ™t etmÉ™k üçün klaviaturanızdakı TAB klaviÅŸini vÉ™ hÉ™r sÉ™tri qeyd edÉ™rÉ™k bir sonrakına keçmÉ™k üçün ENTER vÉ™ ya RETURN istifadÉ™ edin.VideoPress Kitabxananıza baxmaq üçün aÅŸağıdakı düymÉ™dÉ™n istifadÉ™ edin. Ayrıca, bir yazını vÉ™ ya sÉ™hifÉ™ni redaktÉ™ edÉ™rkÉ™n yazı redaktorundakı Media ÆlavÉ™ Et düymÉ™sindÉ™n istifadÉ™ edÉ™rÉ™k VideoPress Kitabxananıza baxa bilÉ™rsiniz.VideoPress Kitabxananıza video yüklÉ™mÉ™k üçün aÅŸağıdakı formadan istifadÉ™ edin. AÅŸağıdakı video formatları dÉ™stÉ™klÉ™nir: %s. Maksimum yüklÉ™mÉ™ faylının ölçüsü budur: %d%s.Saytınızdakı fÉ™rqli mühtÉ™viyyat növlÉ™rini göstÉ™rmÉ™k üçün bu parametrlÉ™rdÉ™n istifadÉ™ edin.Veb saytınızın sahibi olduÄŸunuzu vÉ™ saytınıza Google, Bing vÉ™ Pinterest kimi xarici servislÉ™rlÉ™ nÉ™zarÉ™t etdiyinizi tÉ™sdiqlÉ™mÉ™k üçün bu alÉ™tlÉ™rdÉ™n istifadÉ™ edin.-- Seç --GizlÉ™tGöstÉ™rİstifadəçi WordPress.com-a baÄŸlandıİstifadəçi adıHÉ™r bir modulun yanında olan tÉ™sdiqlÉ™mÉ™ qutularından istifadÉ™ edÉ™rÉ™k, birdÉ™n çox modul seçə bilÉ™r vÉ™ siyahının üzÉ™rindÉ™ki KütlÉ™vi HÉ™rÉ™kÉ™tlÉ™r menyusundakı hÉ™rÉ™kÉ™tlÉ™ri hÉ™yata keçirÉ™ bilÉ™rsiniz.SaÄŸ tÉ™rÉ™fdÉ™ki alÉ™tlÉ™rdÉ™n istifadÉ™ edÉ™rÉ™k, istÉ™diyiniz modulları tÉ™rtiblÉ™yÉ™ bilÉ™r, modul kateqoriyasına görÉ™ filtrlÉ™mÉ™ edÉ™ bilÉ™r, aktiv olan modulları sıralaya bilÉ™r ya da sıralamalarını dÉ™yiÅŸdirÉ™ bilÉ™rsiniz.DÉ™yÉ™rVaultPressVaultPress idarÉ™etmÉ™ lövhÉ™siTÉ™sdiqlÉ™nmiÅŸ ServislÉ™rSaytınızı tÉ™sdiqlÉ™mÉ™k, digÉ™r servislÉ™rdÉ™ki qabaqcıl özÉ™lliklÉ™rÉ™ nail olmağınıza imkan yaradar (mÉ™sÉ™lÉ™n Webmaster alÉ™tlÉ™ri kimi). Biz sadÉ™cÉ™ É™sas sÉ™hifÉ™nizin mÉ™nbÉ™ koduna görünmÉ™yÉ™n %s etiketini É™lavÉ™ edÉ™cÉ™yik.Video Kitabxanası İcazÉ™lÉ™riVideo ÖnizlÉ™mÉ™:%s üzÉ™rindÉ™ video%s tÉ™rÉ™findÉ™n video yazısı.Video yazısı.VideoPressVideoPress Kitabxanası%1$s’s profilinÉ™ %2$s üzÉ™rindÉ™ baxTamamına BaxKomiksÉ™ BaxTam ProfilÉ™ Bax →Bütöv sayta baxMenyu maddÉ™sinÉ™ baxMenyu maddÉ™sinin etiketinÉ™ baxMenyu BölmÉ™sinÉ™ BaxMobil Sayta BaxLayihÉ™yÉ™ BaxLayihÉ™ EtiketinÉ™ BaxLayihÉ™ NövünÉ™ BaxJavascript olmadan Sayt Statistikalarına BaxXarakteristikaya BaxBax %s.Bütün Jetpack xüsusiyyÉ™tlÉ™rinÉ™ baxTam ölçüdÉ™ bax %1$s×%2$sInstagram-da baxMausunuzu insanların Gravatarlarının üzÉ™rinÉ™ gÉ™tirdiyinizdÉ™ onların profillÉ™rini görünElÉ™ indi WordPress.com-da statistikalara baxBax:48 saat É™rzindÉ™ki baxışlar. Daha çox sayt statistikası üçün tıklayın.Vimeo istifadəçi adı:GörünüşStatistikalara baxmaq üçün Sayt Statistikalarını ziyarÉ™t edin.Daha É™traflı mÉ™lumat üçün bu yazını ziyarÉ™t edin.Geri yüklÉ™mÉ™lÉ™rinizi yoxlamaq, tÉ™hlükÉ™sizlilik xÉ™bÉ™rdarlıqlarını yoxlamaq vÉ™ ya VaultPress Vitality-nizi yoxlamaq üçün %s-i ziyarÉ™t edin.iPhone, Android, Windows Phone vÉ™ digÉ™r mobil cihazlar istifadÉ™ edÉ™n ziyarÉ™tçilÉ™r, tam sayta baxma parametri ilÉ™ birlikdÉ™ avtomatik olaraq mobil mövzusunu görürlÉ™r. Yuxarıdakı "Aktivləşdir" vÉ™ ya "Ləğv Et" düymÉ™sinÉ™ tıklayaraq mobil mövzunu aktivləşdirÉ™ bilÉ™r vÉ™ ya ləğv edÉ™ bilÉ™rsiniz.WP.me Qısa baÄŸlantılarXÉ™bÉ™rdarlıq! Multibyte dÉ™stÉ™yi É™ksikdir!Bu bloqun yazılarını göstÉ™rÉ™ bilmÉ™rik.Hal-hazırda bloq mÉ™lumatlarını yüklÉ™yÉ™ bilmÉ™rik.Serverinizin sÉ™lahiyyÉ™tli bir istÉ™k tÉ™lÉ™b etdiyini tÉ™sdiqlÉ™yÉ™ bilmÉ™dik. LütfÉ™n tÉ™krar yoxlayın vÉ™ serverinizdÉ™n Jetpack serverinÉ™ edilÉ™n istÉ™klÉ™rÉ™ mane olan hÉ™r hansı bir ÅŸey olmadığından É™min olun.Hesab açmaq üçün %1$s e-poçtuna sahib bir hesab tapa bilmÉ™dik. %2$s üzÉ™rindÉ™ artıq bir hesabınız varsa lütfÉ™n %1$s maddÉ™sinin e-poçt ünvanı olaraq tÉ™rtiblÉ™ndiyindÉ™n vÉ™ ya profil sÉ™hifÉ™nizdÉ™ WordPress.com-a baÄŸlandığınızdan É™min olun.%2$s üzÉ™rindÉ™, hesab açmağınıza yardımçı olması üçün istifadÉ™ edilÉ™cÉ™k, WordPress.com hesabınıza baÄŸlı hÉ™r hansı bir hesab tapa bilmÉ™dik. %2$s üzÉ™rindÉ™ artıq bir hesabınız varsa lütfÉ™n profil sÉ™hifÉ™nizdÉ™ WordPress.com-a baÄŸlandığınızdan É™min olun.iOS (iPhone, iPad, iPod Touch), Android, BlackBerry vÉ™ daha çoxu üçün proqramlarımız var!Sİzin statistikalarınızı elÉ™ indi É™ldÉ™ edÉ™ bilmÉ™dik. TÉ™krar cÉ™d etmÉ™k üçün bu sÉ™hifÉ™ni yenidÉ™n yüklÉ™yin.Hazırda statistikalarınızı ala bilmirik. LütfÉ™n tÉ™krar yoxlamaq üçün bu sÉ™hifÉ™ni yenidÉ™n yüklÉ™yin. Bu xÉ™ta davam edÉ™rsÉ™ lütfÉ™n dÉ™stÉ™k ximÉ™tinÉ™ müraciÉ™t edin. LütfÉ™n raportunuza aÅŸağıdakı mÉ™lumatları daxil edin.Bu parametri sizin üçün sürüşdürmÉ™k-üçün-tıkla versiyası ilÉ™ dÉ™yiÅŸdirdik, çünki ya Görünüş → VidcetlÉ™r bölmÉ™sindÉ™ alt hissÉ™ vidcetindÉ™n istifadÉ™ edirsiniz, ya da mövzunuz mövcud olaraq sürüşdürmÉ™k-üçün-tıkla xüsusiyyÉ™tindÉ™n istifadÉ™ edir.Veb saytVebsayt TÉ™sdiqlÉ™mÉ™ ServislÉ™riJetpack %s XoÅŸ GÉ™lmisiniz!ÖzÉ™l CSS üçün XoÅŸ gÉ™ldiniz! CSS (Cascading Style Sheets) brauzerÉ™ veb sÉ™hifÉ™sinÉ™ necÉ™ iÅŸlÉ™yÉ™cyini söyÉ™lÉ™yÉ™n bir kod növüdür. Bu ÅŸÉ™rhlÉ™ri silÉ™ bilÉ™r vÉ™ özÉ™lləşdirmÉ™lÉ™rinizÉ™ baÅŸlaya bilÉ™rsiniz. Standart olaraq, sizin stil lövhÉ™niz mövzu stil lövhÉ™sindÉ™n sonra yüklÉ™nÉ™cÉ™kdir, bu, sizin ÅŸÉ™rtlÉ™rinizin öncÉ™likli olduÄŸu vÉ™ mövzu CSS ÅŸÉ™rtlÉ™rini etibarsız etdiyi mÉ™nasına gÉ™lir. SadÉ™cÉ™ hansı dÉ™yiÅŸikliklÉ™ri etmÉ™k istÉ™yirsinizsÉ™ buraya yazın, mövzunuzun bütün stil lövhÉ™sinin mühtÉ™viyyatını köçürmÉ™yÉ™ lüzum yoxdur.ÖzÉ™l CSS-É™ XoÅŸ GÉ™ldiniz! Bunun necÉ™ iÅŸlÉ™diyini öyrÉ™nmÉ™k üçün baxın. http://wp.me/PEmnE-BtSaytınız hazır olduÄŸunda bu vÉ™ziyyÉ™ti sizÉ™ bildirÉ™cÉ™yik; dolayısı ilÉ™ cÉ™mi dövrÉ™ xaricindÉ™ qalma müddÉ™tini dÉ™ tÉ™qib edÉ™ bilÉ™rsiniz.Obyekt xÉ™ttindÉ™ nÉ™ olmalıdır?Kimlik Kartı nÉ™dir?Gravatar nÉ™dir?Yazılarınıza qalereya É™lavÉ™ edÉ™rkÉ™n artıq tÉ™svirlÉ™riniz üçün bir tÉ™rtibat stili seçə bilÉ™rsiniz. Dördbucaq, ÇərçivÉ™ vÉ™ DairÉ™ ŞəklindÉ™ qalereyalar üçün dÉ™stÉ™k É™lavÉ™ etdik. Mövcud olaraq, qalereyalar, standart miniatür rÉ™sm tor tÉ™rtibatı istifadÉ™ edilÉ™rÉ™k göstÉ™rilmÉ™yÉ™ davam edÉ™cÉ™k. Saytınızdakı qalereyaların tamamı üçün dördbucaq ÅŸÉ™klindÉ™ki tÉ™rtibatı mövcud halına gÉ™tirmÉ™k üçün, ParametrlÉ™r → Media-ya gedib "Qalereya rÉ™smlÉ™rinizin tamamını gözÉ™l bir mozaika halında göstÉ™rin" ifadÉ™sinin yanındakı qutunu iÅŸarÉ™lÉ™yin.ZiyarÉ™tçilÉ™riniz, ÅŸÉ™rh yazarkÉ™n, söhbÉ™ti izlÉ™mÉ™k üçün yazının ÅŸÉ™rhlÉ™rinÉ™ dÉ™ abunÉ™ ola bilÉ™r.Çox gözÉ™l bir içərik hazırladığınızda, É™slindÉ™ tÉ™k istÉ™yiniz insanların bu içəriyi tapmasıdır, belÉ™ deyilmi?AÄŸVidcet ID:edirVidcet baÅŸlığı:Vidcet Ekran GörüntüsüEn (px):En:1 ÅŸÉ™rh ilÉ™%s ÅŸÉ™rh ilÉ™Karusel aktiv olduÄŸunda, yazılara vÉ™ sÉ™hifÉ™lÉ™rÉ™ daxil etdiyiniz standart WordPress qalereyaları, ÅŸÉ™rhlÉ™r vÉ™ EXIF meta mÉ™lumatları ilÉ™ möhtəşəm bir tam ekran foto axtarma bacarığı baÅŸladar.WordPress.com Çoxlu GiriÅŸ ilÉ™, istifadəçilÉ™riniz , WordPress.com-da istifadÉ™ etdiklÉ™ri kimlik mÉ™lumatları ilÉ™ WordPress saytınızda hesab aça bilÉ™r vÉ™ ya WordPress saytınızda qeydiyyatdan keçə bilÉ™rlÉ™r. TÉ™hlükÉ™sizdir.Aylıq abunÉ™lik olduÄŸunda, VaultPress qoÅŸması saytınızın içəriyini, mövzularını vÉ™ qoÅŸmalarını gÉ™rçək zamanlı olaraq yedÉ™klÉ™yÉ™r vÉ™ yayğın olaraq bilinÉ™n hÉ™dÉ™lÉ™r vÉ™ hücumlar üçün davamlı olaraq tÉ™hlükÉ™sizlik yoxlamaları edÉ™r.Davamlı SürüşdürmÉ™ modulu vÉ™ dÉ™stÉ™klÉ™nÉ™n bir mövzu ilÉ™ tam olaraq bunlar tÉ™min edilir. Davamlı sürüşdürmÉ™dÉ™, É™skidÉ™n istifadÉ™ edilÉ™n sürüşdürÉ™rÉ™k bir sÉ™hifÉ™nin É™n aÅŸağısına getmÉ™ vÉ™ ardından bir sonrakı sÉ™hifÉ™yÉ™ keçmÉ™k üçün bir baÄŸlantıya tıklayıb sÉ™hifÉ™nin yenilÉ™nmÉ™sini gözlÉ™mÉ™k yerinÉ™, oxuyucu sÉ™hifÉ™nin alt hissÉ™sinÉ™ yaxınlaÅŸdığında bir sonrakı yazı topası avtomatik olaraq ekrana çəkilir.WordPress.com BÉ™yÉ™nilÉ™nlÉ™rWordPress.com YenidÉ™n Bloqlama DüymÉ™siWordPress.com Çoxlu GiriÅŸWordPress.com StatistikalarıWordPress.com İstifadəçi adıWordPress.com-da hazırda bir problem var vÉ™ Jetpack-ı dÉ™stÉ™klÉ™yÉ™ bilmir. LütfÉ™n daha sonra tÉ™krar yoxlayın.Vay, bu nÉ™ qÉ™dÉ™r É™caib sÉ™slÉ™nir.Şərh Yaz...Yanlış ölçü. Hmm… DeyÉ™sÉ™n Jetpack-nız o qÉ™dÉ™r dÉ™ formasında deyil. Arıqladınızmı? Jetpack-ın qurulmasını tÉ™min etmÉ™k üçün “WordPress.com-a baÄŸlan†düymÉ™sinÉ™ yenidÉ™n tıklayın.Y/m/dY/m/d g:i:s Aİllik ArxivlÉ™r: %sİllik arxivlÉ™rBÉ™li. E-poçt ünvanı sahÉ™sinÉ™ birdÉ™n çox e-poçt ünvanı daxil edÉ™ bilÉ™rsiniz, ancaq onları vergüllÉ™ ayırmalısınız. Bu bildiriÅŸ e-poçtu hÉ™r e-poçt ünvanına göndÉ™rilÉ™cÉ™kdir.BÉ™liHÉ™r ÅŸey hazırdır! Saytınız artıq wordpress.com/sites sÉ™hifÉ™sindÉ™n idarÉ™ edilÉ™ bilÉ™r.Bu dÉ™yiÅŸikliyi etmÉ™ sÉ™lahiyyÉ™tiniz yoxdur.Bu maddÉ™ni idarÉ™ etmÉ™yÉ™ izin verilmir.Bu maddÉ™ni zibil qutusundan geri almaq üçün yetÉ™rli iznÉ™ sahib deyilsiniz.Bu maddÉ™ni zibil qutusuna göndÉ™rmÉ™ izniniz yoxdur.SizÉ™ bu mövzuya keçmÉ™k üçün icazÉ™ verilmirSizdÉ™n yoxlamaq üçün bir qabiliyyÉ™ti müəyyÉ™n etmÉ™k tÉ™lÉ™b olunur.Bir modul tÉ™yin etmÉ™k gÉ™rÉ™kdir.SizdÉ™n aktivləşdirmÉ™k üçün bir qoÅŸma müəyyÉ™n etmÉ™k tÉ™lÉ™b olunur.Bir qoÅŸma tÉ™yin etmÉ™yiniz gÉ™rÉ™kdir.SizdÉ™n keçid etmÉ™yiniz üçün bir mövzu daxil etmÉ™k tÉ™lÉ™b olunur.YenilÉ™mÉ™k üçün bir mövzu tÉ™yin etmÉ™yiniz gÉ™rÉ™kdir.Statistika lövhÉ™sini buradan görÉ™ bilÉ™rsiniz.Jetpack modullarının hÉ™r birini ehtiyaclarınıza görÉ™ aktivləşdirÉ™, ya da deaktivasiya edÉ™ bilÉ™rsiniz.AÅŸağıdakı variantları xidmÉ™t paylaÅŸma URL-na É™lavÉ™ edÉ™ bilÉ™rsiniz:Ayrıca, keçərli sÉ™hifÉ™yÉ™ baÄŸlı olaraq pÉ™ncÉ™rÉ™ maddÉ™lÉ™rini dÉ™ gizlÉ™dÉ™ bilÉ™rsiniz. MÉ™sÉ™lÉ™n, ArxivlÉ™r pÉ™ncÉ™rÉ™ maddÉ™sinin axtarış nÉ™ticÉ™lÉ™ri sÉ™hifÉ™sindÉ™ görünmÉ™sini istÉ™mirsinizsÉ™ "GizlÉ™t" vÉ™ "SÉ™hifÉ™, Axtarış nÉ™ticÉ™lÉ™ri sÉ™hifÉ™si"ni seçin.Ayrıca, MüzakirÉ™ ParametrlÉ™ri sÉ™hifÉ™sinin alt hissÉ™sindÉ™ AbunÉ™lik parametrlÉ™rinizdÉ™ dÉ™ dÉ™yiÅŸiklik edÉ™ bilÉ™rsiniz.SadÉ™cÉ™ özünüz üçün vÉ™ ya bloqunuzdakı bütün istifadəçilÉ™r üçün bir baÄŸlantı hazırlaya bilÉ™rsiniz. Paylaşılan baÄŸlantılar (Paylaşılan) mÉ™tni ilÉ™ iÅŸarÉ™lÉ™nir.BildiriÅŸlÉ™rinizi AlÉ™t ÇubuÄŸunda vÉ™ WordPress.com-da görüntülÉ™yÉ™ bilÉ™rsiniz.BaÄŸlantı qurmadan baÄŸlantını kÉ™sÉ™ bilmÉ™zsiniz.Bu videonu görüntülÉ™mÉ™k üçün yetÉ™rli sÉ™rbÉ™stlik sÉ™viyyÉ™sinÉ™ sahib deyilsiniz. Pulsuz proqramları dÉ™stÉ™klÉ™yin vÉ™ yüksÉ™ldin.Bu sÉ™hifÉ™yÉ™ varmaq üçün yetÉ™rli izniniz yoxdur.Bu sayta daha É™vvÉ™l abunÉ™ oldunuz. LütfÉ™n daxil olan e-poçt qutunuzu yoxlayın.E-poçt yenilÉ™mÉ™lÉ™rinÉ™ abunÉ™ oldunuz.Bloqunuzu baÄŸlamamağı seçdiniz. Hesablarınızı baÄŸlamaq istÉ™yirsinizsÉ™, lütfÉ™n 'qÉ™bul et'-É™ tıklayın.%s ilÉ™ bu yazı paylaşıldı%1$s hesabınızı %2$s ilÉ™ uÄŸurla baÄŸladınız.Jetpack baÄŸlantısını müvÉ™ffÉ™qiyyÉ™tlÉ™ kÉ™sdiniz.Şərh yazmaq üçün giriÅŸ etmÉ™lisiniz.Şərh yaza bilmÉ™k üçün giriÅŸ etmÉ™lisiniz.Bu xüsusiyyÉ™tdÉ™n istifadÉ™ etmÉ™k üçün WordPress.com üçün Jetpack qoÅŸması baÄŸlanmalıdır.Keçərli bir hÉ™rÉ™kÉ™t tÉ™yin etmÉ™yiniz lazımdır.Twitter.com-da vidcet yaratmalısınız vÉ™ vidcet kodunu (vidcetinizin tÉ™rtiblÉ™ndirmÉ™ sÉ™hifÉ™sinin URL-da yer alan uzun nömrÉ™ni) aÅŸağıdakı sahÉ™yÉ™ daxi etmÉ™yiniz lazımdır. Daha çoxunu öyrÉ™nin.Möhtəşəm xüsusiyyÉ™tlÉ™ri aktivləşdirmÉ™k üçün sayt vÉ™ WordPress.com arasındakı Jetpack baÄŸlantısını aktivləşdirmÉ™k lazımdır.Goodreads Vidceti-nin doÄŸru iÅŸlÉ™mÉ™si üçün rÉ™qÉ™msal istifadəçi ID-nizi daxil etmÉ™yiniz gÉ™rÉ™kir. Bütün tÉ™limatlar.Jetpack-ı qoÅŸmadan öncÉ™, qeydiyyatdan keçmÉ™lisiniz.Gravatar Profil vidceti içindÉ™ nÉ™ göstÉ™rmÉ™k istÉ™diyinizi seçmÉ™lisiniz.Siz Jetpack haqqında e-poçt yenilÉ™nmÉ™lÉ™ri almayacaqsınız.YouTube kanal ID:%1$s parametriniz %2$s olaraq quruldu; ancaq WordPress.com baÄŸlantınız bunu %3$s olaraq sıralandırır!Sizin API açarınız yararsızdırÖzÉ™l İçərik NövlÉ™rinizSizin e-poçt ünvanınızIP ünvanınız (%1$s) mümkün tÉ™hlükÉ™sizlik pozuntularına qarşı iÅŸarÉ™lÉ™ndi. Daha çox mÉ™lumat...Sizin Jetpack artıq hazırdır!Sizin Jetpack qurulumunuz yaxşı görünür!AdınızPortfel ArxivinizdÉ™ hÉ™lÉ™lik heç bir içərik mövcud deyil. İdarÉ™etmÉ™ lövhÉ™si üzÉ™rindÉ™n yeni bir içərik yaratmaÄŸa baÅŸlaya bilÉ™rsiniz.Sizin Sayt Statistikanız qoÅŸulmuÅŸ Javascript ilÉ™ daha yaxşı iÅŸlÉ™yir.Sizin WordPress qurulumunuz hazırda dünyanın É™n yaxşı tÉ™hlükÉ™sizlik, bÉ™rpa vÉ™ É™n çevik dÉ™stÉ™yi ilÉ™ mühafizÉ™ olunur.`%1$s`parametriniz `%2$s` olaraq quruldu; ancaq WordPress.com baÄŸlantınız bunu `%3$s` olaraq sıralandırır!Cavabınız düzgün deyil, lütfÉ™n tÉ™krar yoxlayın.Sizin bloqda hazırda dÉ™rc edilmiÅŸ hÉ™r hansı bir yazı yoxdur.Şərhiniz yoxlama gözlÉ™yir.Şərhiniz yoxlanmaq üçün gözlÉ™mÉ™kdÉ™dir.Şərhiniz tÉ™sdiqlÉ™ndi.Sizin düzgün IP: %sÆsas bloqunuz WordPress.com-a qoÅŸulmamışdır. Bir API açarı almaq üçün lütfÉ™n qoÅŸulun.Yeni sahÉ™niz müvÉ™ffÉ™qiyyÉ™tlÉ™ qeyd edildiSayt ikonunuz yüklÉ™ndi!Saytınız sadÉ™cÉ™ Jetpack ilÉ™ SSL baÄŸlantıları qurulmasına izin verilÉ™cÉ™k ÅŸÉ™kildÉ™ tÉ™rtib edildi; ancaq SSL baÄŸlantıları iÅŸlÉ™yÉ™n vÉ™ziyyÉ™tdÉ™ deyil!Sizin sayt Jetpack serverlÉ™ri üçün É™lçatan deyil.Saytınız, Jetpack serverlÉ™rinÉ™ tÉ™hlükÉ™siz bir ÅŸÉ™kildÉ™ qoÅŸula bilmir.Sizin mövzunuz %s dÉ™stÉ™klÉ™yirSizin mövzunuz TÉ™dbirlÉ™ri dÉ™stÉ™klÉ™yirSizin yüklÉ™mÉ™niz tamamlanmadı; elÉ™ indi vÉ™ ya daha sonra tÉ™krar yoxlaya bilÉ™rsiniz.Sizin video müvÉ™ffÉ™qiyyÉ™tlÉ™ yüklÉ™ndi. O, Sizin VideoPress Kitabxananızda bir az sonra görünÉ™cÉ™kdir.Sizin video yüklÉ™nir... LütfÉ™n, bu pÉ™ncÉ™rÉ™ni baÄŸlamayın.Sizin veb Jetpack istifadÉ™si üçün açıq vÉ™ ictimaiyyÉ™tÉ™ É™lçatan olmalıdır: %syazı vÉ™ ya sÉ™hifÉ™ ilk dÉ™fÉ™ dÉ™rc edildiyindÉ™yazı vÉ™ ya sÉ™hifÉ™ yenilÉ™ndiyindÉ™yan menyuda bloqunuzun yazı vÉ™ ÅŸÉ™rh RSS qidalandırıcılarına baÄŸlantı É™lavÉ™ edÉ™ bilmÉ™yinizÉ™ ÅŸÉ™rait yaradar. Bu, yeni içərik yayımladığınızda vÉ™ ya yeni ÅŸÉ™rhlÉ™r aldığınızda oxuyucularınızın aktuall qalmasını asanlaÅŸdırır.mövzunuzdakı pÉ™ncÉ™rÉ™ maddÉ™si sahÉ™sindÉ™ asan bir ÅŸÉ™kildÉ™ tÉ™svir É™lavÉ™ edÉ™ bilmÉ™yinizÉ™ ÅŸÉ™rait yaradar. Bu, saytınıza daha çox tÉ™svir É™lavÉ™ etmÉ™yin É™n asan yoludur.vÉ™E-poçtİmtinaBuraya tıklayınKonfiqurasiyatÉ™sviri kÉ™sgünredaktÉ™ etmÉ™tni redaktÉ™ etBağışlayın, forma yaradıcısında bir problem meydana gÉ™ldi. Siz böyük ehtimalla tÉ™krar cÉ™hd etmÉ™li olacaqsınız.É™vvÉ™lÉ™ qayıthttp://jetpack.mehttp://wordpress.org/iCalendar Qidalandırıcı URL:olmalıdır."%s" kateqoriyasındaYüklÉ™nir…%1$s/%2$sayÆtraflı oxuTÉ™svir naviqasiyasıŞərhvÉ™ ya Jetpack-ı deaktivasiya etOxuBu durumda %s:korrektorhÉ™r ÅŸeyi axtarıntÉ™hlükÉ™sizlik, tÉ™hlükÉ™siz, qoruma, botnet, kobudluqstatistiklar, izlÉ™mÉ™, analizlÉ™r, baxışlar, trafikfayl seçE-poçtFacebookGoogleLinkedInPinterestPocketPress ThisÇap etRedditTumblrTwittermövzunuzun yan menyusunda Facebook BÉ™yÉ™nmÉ™ Qutusunu göstÉ™rir. Bu, oxuyucularınızın dÉ™stÉ™klÉ™rini göstÉ™rmÉ™lÉ™rinÉ™ ÅŸÉ™rait yaradan çox yaxşı bir üsuldur.mövzunuzun yan menyusunda É™n son tweet-lÉ™rinizi göstÉ™rir. Bu, saytınıza daha çox aktivlik qatmaq üçün yaxşı bir üsuldur. Ayrıca, bir neçə özÉ™lləşdirmÉ™ variantı da mövcuddur.ÖtÉ™n günötÉ™n ayötÉ™n rübÖtÉ™n hÉ™ftəÖtÉ™n ilbu videoİzlÉ™: %shÉ™ftÉ™kÉ™lmÉ™Blok edilÉ™n pis niyyÉ™tli giriÅŸ etmÉ™ cÉ™hdinin miqdarıSpam ÅŸÉ™rh Akismet tÉ™rÉ™findÉ™n blok edildi.%1$s \a\t %2$splugins/jetpack/languages/readme.txt0000644000312500031250000000146112651056012020222 0ustar eacbforgeacbforg=== How To Translate Jetpack === == Who translates Jetpack? How can I get involved? == Anyone can help by suggesting new translations [here](https://translate.wordpress.org/projects/wp-plugins/jetpack/). Once you've suggested a new translation, a GlotPress validator will review it. They will then approve, reject, or change your suggestions. Once your changes get approved, they are automatically shipped to all Jetpack users using WordPress in your language. == How does GlotPress work? == You can find detailed GlotPress documentation on [this page](https://en.support.wordpress.com/glotpress/). == I want to change translations locally. Where can I download the .PO file for my language? == You'll find options to create a .PO file and export translations at the bottom of each language page in GlotPress. plugins/jetpack/languages/jetpack-af.mo0000755000312500031250000002577612651056012020610 0ustar eacbforgeacbforgÞ•¿  $ 1 > KY`o€ – ¡¬µ¼ÀÓ ãîó "#5Y _ltŽŸ!¨ÊÏ â î5 EQX]o uƒ5ŠÀÔäù  ) . 9 F Q \g w?ƒGà  *8 LZ_ew2‹¾ Å ÒÜá ÷    * 4A`o~ ƒ)‘ »Üßæë5ð+&$Rw  Œ —¤ª»ÃÉÑ Ùãê ñþ 6>u{ €” ¤¯Åß è'ó"K(t} „’§·¼Á Ô Þ?è(B/YrÌ ç@ ISci pze ö*/ 3AU^dl ‹‘¥!©3ËZÿZ m$wœ»ÖÚòùý '6 ERìWD V c p } Š”¦µÌ Ýèñø ,7< Wby€,‘¾ Ä Ï(Ú  )( R Y i t 7‘ É Õ Û á ö û !+ !8!I!]!p!y! !Œ! “! ! §!µ!Ä! Ô!ß!ç!ù! """#")"<"M"d"u"{""˜"A¸"ú"# ##!#9#J#[#`#s#‡#š#«#Ë#ß#ù#þ#0$.@$o$r$y$}$%ƒ$<©$2æ$ %$% 9%F%V%^% s%~% ƒ% % ™%¥%ª%²%Ã%È%Ê%Ì%Î%Ó%Ù%é%î%&&*& C& O&*[&†&&a“&õ&' '':'I'R'W' l'w'A'Á'NÇ' ( (0A(Hr( »(È(Ù(ß( æ(ò({ ) ‰)•)­)¼)Á)Å)(×) **** 1*?*E*\*._*8Ž*`Ç*(+7+@+`+€+ž+¡+ §+²+¶+¼+Î+ Ô+ß+å+ê+ù+n¶;yt\*¡½ˆ.=Jcq>–b·µ£¹Hž®Ž^XŒœ ]Š/'`ªGR§k(w©¨Yš-»e™|s17†­oT8°z‚vuW,¤¯:5&hU‡²p2 L@gd•˜‹…$³‘±f"#%~¬jŸAP}¼6”’›Q F )_ ºV¥mID<“+¿OEr¸ƒS—«l„M¦ €´4a3¾BC{!i¢ KN0Z?[x9‰# of Tweets Shown:%1$s at %2$s%1$s on %2$s%s (Jetpack)%s (Required)%s ago%s is required« Previous← Older Comments(no title)(required)ActivateActiveAddAdd or remove tagsAttachment PageAutomatticBlueBorder Color (hex):CancelCancel replyCenterCheatin’ uh?Click to autoplay the presentation!CloseColor SchemeCommentComment follow email textCommenting as %sCommentsComments on this post are closed.DarkDelete PermanentlyDescriptionDisplay an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:E-mailEditEdit Your ProfileEmailEmail AddressError!Error: please fill the required fields (name, email).Feed(s) to Display:Follow CommentsFollow me on TwitterFormat:GreenGreeting TextHeightHeight (px):HomeIgnore allImage Color:Image GridImage LinkImage ListImage Settings:Image Size:Label for HTML form "Email" field in contact form builderEmailLabel for HTML form "URL/Website" field in contact form builderWebsiteLanguageLargeLayout Options:Leave a ReplyLeave a Reply to %sLeave a replyLeftLightLink Color (hex):Loading Comments...Maximum number of posts to show (no more than 10):MediumMessage SentMy TweetsNameNewer Comments →Next »Next » NoNo BordersNo FooterNo HeaderNo ScrollbarNo comment text was submitted.No suggestionsNo tags found.NoneNothing FoundNotify me of follow-up comments by email.Notify me of new posts by email.OKOrangePathPinkPlease be sure to submit some text with your comment.Please provide an email address to comment.Please provide your name to comment.PluginsPost CommentPosted by Posted by %sPostsPosts & CommentsPreviewPrintPrivacyPublishPublishedPurpleRatingRecent PostsRedResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RightSaveSave ChangesSearchSearch CommentsSend EmailSend to Email AddressSeparate tags with commasSettingsShow FacesShows your most viewed posts and pages.SilverSmallSorry, but there was an error posting your comment. Please try again later.Sort by:SubmitSubmit »Submitting Comment%sSubscribe to %sTagsTextText & Image LinksText LinkText ListThe preview is unavailable while this video is being processed.ThemesThere are no posts to display. Want more traffic?This HTML form field is marked as required by the user in contact form builder(required)This post has been shared!This post is password protected.This profile is not currently linked to a WordPress.com Profile.ThumbnailTimeline Theme:TitleTitle:Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.TransparentTransparent BackgroundTwitter TimelineTypeURLUncategorizedUnlink This AccountUsernameValueWebsiteWhat's a Gravatar?Width (px):Y/m/dYearly Archives: %sYesYou have shared this post with %sYou must log in to post a comment.You must be logged in to post a comment.Your Email AddressYour NameYour comment is awaiting moderation.Your comment is in moderation.Your comment was approved.andas sharing sourceEmailcanceldayedithttp://jetpack.memonthnounCommentshare toEmailshare toPrintthe past dayweekPO-Revision-Date: 2015-08-21 12:56:15+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev # sigbare tweets:%1$s om %2$s%1$s op %2$s%s (Jetpack)%s (verplig)%s gelede%s is word vereis« Vorige← Ouer kommentaar(geen titel nie)(verplig) AktiveerAktiefVoeg bySkrap of voeg etikette byAanhangsel BladsyAutomatticBlouKleur van buitelyne (hex):KanselleerKanselleer die reaksieMiddelVerneuk jy, huh?Kliek om die aanbieding outomaties te speel!SluitKleurskemaKommentaarE-posboodskap wanneer jy kommentaar volgJy lewer kommentaar as %sKommentareHierdie artikel se kommentaar is gesluit.DonkerSkrap Vir AltydBeskrywingWys 'n foto in jou kantkolomVertoon 'n amptelike Twitter Embedded Timeline brokkie.Vertoon as:E-posWysigVerander jou profielEposE-posadresOeps!Fout: vul asseblief die verpligde velde in.Sigbare feed(s):Volg die kommentaarVolg my op TwitterFormaat:GroenVerwelkomingHoogteHoogte (px):TuisteIgnoreer alleFoto se kleur:FotoversamelingFotoskakelFotolysFotoverstellings:Grootte van foto:E-posadresWebwerfTaalGrootOpsies vir uitleg:Lewer kommentaarLewer kommentaar op %sLewer kommentaarLinksLigKleur van skakels (hex):Die kommentaar is aan't laai...Maksimum hoeveelheid artikels om te vertoon (nie meer as 10 nie):MediumBoodskap gestuurMy tweetsNaamNuwer kommentaar →Volgende »Volgende »GeenGeen buitelyne nieGeen voetstrook nieGeen kopstrook nieGeen rolbalk nieGeen kommentaar is gestuur nie.Geen voorstelle nieGeen etikette gevind nie.GeenGeen BevingdingsStel my in kennis van nuwe kommentaar per e-pos.Stel my in kennis van nuwe artikels per e-pos.OKOranjePadPienkMaak seker jou kommentaar bevat teks.Verskaf asseblief jou e-posadres om kommentaar te kan lewer.Verskaf asseblief jou naam om kommentaar te lewer.LaslappiesPubliseer kommentaarBygedra deurBygedra deur %sBydraesBydraes & KommentareVooraf KykDrukPrivaatheidPubliseerGepubliseerPersAanslagOnlangse BydraesRooi RegsStoorStoor wysigingsSoekDeursoek die kommentaarStuur die e-posStuur na e-posadresSkei etikette met kommasInstellingsWys gesigteWys jou mees geleeste artikels en bladsye.SilwerKleinJammer, maar daar was 'n fout met die publiseer van jou kommentaar. Probeer asseblief later weer.Rangskik volgens:StuurStuur »Die kommentaar%s is aan't stuurTeken in op %sEtiketteTeksTeks- en fotoskakelsTeksskakelTekslysDie voorskou is nie beskikbaar terwyl die video verwerk word nie.TemasDaar is geen artikels om te wys nie. Wil jy meer verkeer hê?(verplig)Die artikel is suksesvol gedeel!Hierdie inskrywing word deur 'n wagwoord beskermHierdie profiel is tans nie verbind met 'n profiel op WordPress.com nie.PiekiekiekieTema van tydlyn:TitelTitel:Top SkrywesTop Artikels & BladsyeDie top artikels & bladsye volgens besoeke word bereken uit 24-48 uur se statistiek. Dit neem 'n rukkie om te verander.DeurskynendDeurskynende agtergrondTwitter-tydlynTipeURLOngeklassifiseerdVerbreek die skakel met hierdie rekeningGebruikernaamWaardeWebwerfWat is 'n Gravatar?Breedte (px):Y/m/dJaarlikse Argiewe: %s JaDie skakel na hierdie artikel is na %s gestuurJy moet inteken om kommentaar te lewer.Jy moet ingeteken wees om kommentaar te lewer.Jou e-posadresJou naamJou kommentaar word gemodereer.Jou kommentaar word gemodereer.Jou kommentaar is goedgekeur.enE-posKanselleerdagWysighttp://jetpack.memaandKommentaarE-posDrukdie vorige dagweekplugins/jetpack/languages/jetpack-sa_IN.mo0000755000312500031250000000206312651056012021173 0ustar eacbforgeacbforgÞ• l ¼ðñ #-<jˆ6¦Ýìï:Ü:1&l‡“!  For more information:Jetpack FAQJetpack SupportJetpack by WordPress.comOne New Jetpack Module%s New Jetpack ModulesResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... http://jetpack.mePO-Revision-Date: 2015-08-21 11:25:42+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev परिवारà¥à¤¤à¥à¤¤à¤¾à¤ƒ अधिकाः -:जेतà¥à¤ªà¤•ॠFAQजेतà¥à¤ªà¤•ॠसाहायà¥à¤¯à¤¾à¤§à¤¾à¤°à¤ƒà¤œà¥‡à¤¤à¥à¤ªà¤•ॠby WordPress.comà¤à¤•ं नव जेतà¥à¤ªà¤•ॠयोजनाङà¥à¤—मà¥%s नव जेतà¥à¤ªà¤•ॠयोजनाङà¥à¤—ानि http://jetpack.meplugins/jetpack/languages/jetpack-fi.mo0000755000312500031250000012427012651056012020605 0ustar eacbforgeacbforgÞ•a$5,&33 3 3 +3F93G€3È3Ï3Þ3!ä344-4 D4 O40Z4‹4œ4#«4Ï5Ø5é56 6 66&686[K6§6 °62º6í6ó6 ÷6 77"7BA7Z„7*ß7 888%.8 T8_8r88S¡8 õ89 9 9!99&9`9 t99 …9“9©9°9 ·9Ä9Í9Ö9Ý9%ð9:5:D:Y:y:ˆ:£:¼:Ö:ï: õ:;;;0;A;J; Z; d;q;y;i’; ü;<!< 3<5@< v<< ˆ<“<©< ¿<É<Î<á<æ< ë<ö<ü<= == ;=G=Y=l=Š=’=/¦= Ö=(÷= >&1>CX>œ>£>¨>±> À>Í>ß>ñ> ÷>$?*? >?[I?¥?¶?AÆ?@c!@…@—@±@Ð@*×@5A8A8AA zA…AŽA—A¨A¸AÌAÕAéABB/B7B C6ŒC ÃC ÎCÜCîCþCD D "D-D =D ID TDaD jDwD‡D˜DŸD§DÄD ÕDãD%üD/"E2RE…E‹E?‘E=ÑEFF F ,F 7F BFPF dFrFwF}F ‚FF“F¤F<¶F"óFGGQ>G GG±GÂG ÒGÝG ýG HH H $H1HOHiH oHzHH †HH ˜H¥H®H ¾HUÊHd IQ…IO×I`'JKˆJYÔJh.KS—KMëKg9Lk¡LU MJcMF®MõMN!N6NGNLN ]NgNlNpN†N N šN¨N «N ¶N ÀNÊNåN÷N O'O6OEOcO hO)vO  O ÁO3ËOFÿO0FP)wP3¡PÕPØP éPöP ÿP Q,QFIQQ­QËQÓQÚQàQèQ ïQýQRR!R(R 9RCR HRRRoRR•RR ¥R ¯R ¼R ÈRÖR/æR S !S .S;SASRS bS mSxS€S3‰S ½SÊSÐSØS çS óSTT T)T ;THT ^T hTsT {T…TŽT<•TÒT ÙTæTêTñTU U "U0U ?UMUeUkU }U‡U¥U6ÃUúU V#V)V .V;VKV ^VhVoVV VœV«V¿VÖV9åV%W EWPWfW‚W œW/©W;ÙWXX7X=X OX[X qY}Y…Y•Y ¦Y ²Y ÀYÊYÛYàYïYZZ Z&Z:ZUZ.[ZŠZ ‘Z ›Z¦Z ¬Z¶Z5¼ZòZ- [:[C[IH[’[›[¡[³[»[ Â[Ð[ å[ï[ \\\!\:\ K\X\]\ p\ z\8„\½\<Ù\O]©f]§^ ¸^?Å^+_'1_&Y_Y€_\Ú_¡7`Ù` ô`Ia#_a,ƒa °aºa¿aÅaÕaÛa âaìa bb&b,bBbXb_brbzb‹bb¢b¨b«b ¯b ½b ÉbÕbèb ðb ýb@ c:KcH†cHÏcd!d'd 9dDdMdfdd€d:åd e4&e[e&le“e›eµeÈeÎeãe ôeJÿe Jf Xfdfkff–f©f ¯f½fÑf(Õf7þf36g%jg8g;Ég2h!8hZh7zh²h Åh,Ïh6üh$3iXi!si•i¯i³iËi Òi Ýiçiëi ðiúijj*jIjYj _jljQƒj Õjßjîjkk"k5kEkYkhkxkˆk ™k¦kµk Æk Ôkâkl&lî,lm 4m ?mJmMYm)§m Ñm Ûm èm&õmn.nIn an on2{n®nÁnGÒnp*p:p Rp^pfp pŽp£p`Âp#q+q=:qxqq†q—q©q)Àq6êq=!r._r Žr šr ¥r'³r Ûrær#s %s`3s”s¤sªsºsÐsJØs#t7tHtLt_tut|t„t ”t  tªt³t2Ît*u,u4u)Tu~u†u˜u¨u#¹uÝu ãuîu v vv 4v>vTv Zv fvrv…v ww!9w [w0hw ™w ¥w°w¸wÏwèwðwõwxx'x :xHxOxVxhx‡x Žxšx ·xØxÞx+÷x#y*Cy ny${yK yìyÿy zz+z=zOzaztz5‡z½zÖzdêzO{a{`u{Ö{iõ{_|!o|)‘|»|-Â|Að| 2}=} B}M} V}b}}Ž}¨}°}Â}á} û}~~~ (~%5~[~c~l~s~†~~¯~·~¿~Ô~Ý~ï~÷~ÿ~ * ?CK4 Ä Ñ Üêþ € € €)€ 9€E€W€ f€ t€‚€—€´€»€$Àè€ú€! #-3Q6…¼ ÉÖÛáç ù ‚‚‚1‚ 8‚C‚J‚S‚ e‚q‚…‚™‚!¡‚ÂÌ‚bì‚ OƒZƒrƒ†ƒ—ƒ ƒ½ƒÒƒáƒæƒ ÷ƒ&„)„I„ O„ ]„k„ s„„ˆ„š„¢„»„B΄w…<‰…RÆ…`†Zz†<Õ†o‡O‚‡`Ò‡q3ˆX¥ˆEþˆ=D‰I‚‰ ̉؉ø‰Š,Š 4Š AŠOŠTŠYŠsŠ|ŠŠžŠ ¡Š¬Š ¾Š$ËŠðŠ‹"‹;‹J‹)c‹ ‹™‹/¯‹-ß‹ Œ Œ%Œ+Œ 3Œ =ŒHŒKŒaŒ zŒ†Œ›Œ4²Œ çŒñŒ,ôŒ !+ 3>FM_e˜¡»Î Þ莎 8ŽBŽ KŽUŽhŽ$„Ž©Ž9¼Ž öŽ $/FZm } ˆ7”Ìá é ôÿ$: PZlu‰ ’œ ¥¯´O¹ ‘‘.‘7‘>‘S‘r‘’‘²‘ Á‘ Ï‘Ý‘ä‘ ÷‘’’’ ’!’4’=’F’Y’l’’‘’–’§’¸’Î’Ý’ø’ “7“,N“{“!‘“-³“á“ þ“> ”@K” Œ”–”­”±””2Ç”ú• ––%–9– I– S–]–q–y– ‰–ª–¾–Í–0Þ–2—B—K—O— U—c—u— ~—‰—/—¿—PÑ— "˜ -˜X:˜“˜£˜¬˜ØȘјá˜ü˜'™*™ /™ 9™D™ [™ i™u™|™ ’™ Ÿ™4«™à™ è™Gó™¿;š¾ûš º›8Ç›2œ,3œ)`œ Šœ\–œ¡óœ•)©NÓ"ž.Bž qž}ž‚žˆž˜ž ž©ž#Áž åžðž ŸŸ,ŸIŸPŸnŸvŸ‡Ÿ¢Ÿ©Ÿ°Ÿ¶ŸºŸ Ÿ ПÞŸ üŸ    P"  s  ‰ ‘ £ ¨  ½ È × %ò k¡P„¡Õ¡GÞ¡&¢47¢l¢u¢‰¢ œ¢"¦¢!É¢ ë¢ù¢ü¢£#£+£B£b£x£ ~£ˆ£¢£1©£9Û£>¤%T¤@z¤;»¤3÷¤.+¥3Z¥?Ž¥Î¥å¥;ì¥C(¦#l¦¦3«¦"ߦ§§§§.§6§>§F§W§f§x§ާ §±§ º§ħã§ ë§ö§¨¨¨ ¨)¨0¨@¨H¨O¨V¨ ^¨ h¨r¨„¨ •¨ ¡¨«¨²¨ê«MB:b\&ä ŽU³Y¾Âöè"Ã…PVÅTµÔááa¼ƒD´Ÿ+Š7Å{¶ŸdY- W¦’XÀõŒ]–ýf29ž…X78 PNùK„Îu·_os°,GD4$Ïæµ­œú©$ß›S@ ÆR^ Q˜}qÌÚ¼M1OÇjNp™BAÃÞÊoôBÓ¶´ä;Òk `OýÇ 5dì×6>º–¬YCÛS|R%‡ð•Ic9{.OàÝÔ£¾R¥»ÙéH6'DªL.‰x;^êÌpLJb8i)¯¢·)eGI1(Á2¡í":Ä CzJZÞû-„å7Q‘ +[X|a”ðt=ü],ÓϘëršß3  ,=±†KпˆçPͱ÷ѪW“Û¹‡$#0’×ïÐ'üÁ?¸œ8l5ÄÊ Üñ0ØÒvF3hÝHæ*‹~0T 5m¯¨<JV?(Ù#w‹ò<ã‰IÕeWNs(6ÈÈxn½§<g ¹Ž+É![²ycU1FôiAE”h!£Ëî‚¥VF;ó~.«:âL¨Q'Ñ&4®@Ëõ*ûZ÷t%\àš4ñçÖÿ†TÎ# !ïA¿ƒ%ùqøˆâ‚^€zÆ&ãžøn‘M¬Uó})_Ö½=—r`GC¡>/ºlþK€Šj_[g*SØÍa™ @¤§u›ÿ³2Éþ©kå“­ò®9² èî3EíÚ>Â/"—]öEŒ`¦•mf¤Z¢vyì¸éHwÕú?ë -Ü °/À»\ %1$s %2$s Views%1$s at %2$s%1$s on %2$s%s (Required)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s ago%s is required%s px%s requires a valid email address« Previous← Older Comments— Select —(no title)(required)Learn more about these options.% Replies1 ReplyYou failed to correctly answer the math problem. This is used to combat spam when the Jetpack Protect API is unavailable. Please use your browser's back button to return to the login form, press the "refresh" button to generate a new math problem, and try to log in again.ActivateActivate AkismetActivate Jetpack ProtectActiveAddAdd Contact FormAdd NewAdd a new serviceAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Address:Admin barAkismet can help to keep your blog safe from spam!AlbumAllAll ProjectsAll postsAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.Archive pageArtistAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog URL:BlueBoost traffic, enhance security, and improve performance.Border Color (hex):Button styleCSSCSS RevisionsCSS Stylesheet EditorCameraCancelCancel replyCaption:CategoryCenterCheatin’ uh?Checking email updates status…Choose from the most used tagsClichésClick to Press This!Click to email this to a friendClick to printClick to share on LinkedInClick to share on RedditClick to share on TwitterClick to view slideshow.CloseColor SchemeComing soon…CommentComment navigationCommenting as %sCommentsComplex PhrasesConfigureConfigure %sConnectConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected to WordPress.comContact Form URL:Contact InfoContinue reading →Crop ImageCustomCustom CSSCustom field deleted.Custom field updated.CustomizeDOWNDaily Archives: %sDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDisplay Header TextDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay higher quality video by default.Double NegativesDrag and drop available services here.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Selection...Edit Your ProfileEmailEmail AddressEmail check failed, please try againEmail notificationsEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter the URL of a 16x16px icon you want to use for this service.Enter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Feedback(s) marked as spamFollow me on TwitterFor more information:Format:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageGalleryGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenHeightHeight (px):Height:Hidden VerbsHideHomeHours:IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image LinkImage Settings:Image Size:Image URL:Image title:InactiveInsert VideoInvalid requestInvalid usernameJargonJetpackJetpack Protect is inactive.Jetpack SettingsJetpack SitesJetpack by WordPress.comJetpack is in local development mode.Jetpack requires WordPress version %s or later.Join %s other subscriberJoin %s other subscribersLaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLikes and SharesLink Color (hex):Link to edit an HTML form field in contact form buildereditLink your account to WordPress.comLinkedInLinks to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Logged InLogged OutLogoM j, Y @ G:iMain SidebarMark this message as NOT spamMark this message as spamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMissed scheduleMobile AppsModule DescriptionAccelerate your site by loading images from the WordPress.com CDN.Module DescriptionAllow visitors to share your content on Facebook, Twitter, and more with a click.Module DescriptionAllow your users to log in using their WordPress.com accounts.Module DescriptionDisplay links to your related content under posts and pages.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionMonitor your stats with clear, concise reports and no additional load on your server.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionReceive notifications from Jetpack if your site goes offline — and when it it returns.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionShare new posts on social media networks automatically.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module NameLikesModule NameRelated PostsMonthly Archives: %sMonthly archivesMoreMore informationMy TweetsNameNewNewer Comments →NewestNext »Next » NoNo BordersNo FooterNo HeaderNo Projects found in TrashNo feedback foundNo plugins found.No reply from Jetpack serversNo suggestionsNo tags found.No writing errors were found.NoneNothing FoundNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyOKOfficial buttonsOgg File URLOlder %sOlder postsOn for all postsOnly display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPlease verify your birthday.Plugin activated.Plugin deactivated.PluginsPopularPortfolioPost CommentPost by %s.Post by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts pagePress ThisPreviewPreview:Preview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProject TagProject TypeProject saved.Project updated.ProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize:PublishPublishedPurchasePurplePut your mouse over your Gravatar to check out your profile.RatingRecent PostsRedRedditRedundant PhrasesRegistered usersRelated PostsRelated postsRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave ChangesSave StylesheetSave configurationScheduledSearchSearch CommentsSearch FeedbackSearch MediaSearch PluginsSearch Project TagsSearch Results for: %sSearch resultsSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Separate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing ButtonsSharing SettingsSharing URLSharing labelShortcodeShortcode EmbedsShowShow Excerpts:Show Personal LinksShow buttons onShow mapShow moreShow top posts overShow top search terms overShow:Shown between widget visibility conditions.orSilverSite NameSite StatsSitesSlideshowSmallSorry, no modules were found for the search term "%s"Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)SpellingStatsStylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe to Blog via EmailSupportTag nameTagsTake WordPress with you.Terms of ServiceTestimonialsTextText & Image LinksText LinkText onlyThe default content width for the %s theme is %d pixels.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.Theme: %1$s.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThis HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow requires JavaScript.This video is intended for mature audiences.ThumbnailTimeTime:Timeline Theme:TitleTitle:Top PostsTop Posts & PagesTop SearchesTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTurned on per postTwitterTwitter TimelineTwitter username:TypeTypesUPURLUncategorizedUnpublishedUnsubscribeUpdate Project TagUpdatedUpload ImageUploading...Use automatically detected language to proofread posts and pagesUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVerified ServicesVideoPressView AllView Full Profile →View all Jetpack featuresView full size %1$s×%2$sView people's profiles when you mouse over their GravatarsView:Visit Site Stats to see your stats.WP.me ShortlinksWe cannot load blog data at this time.WebsiteWhat’s a Hovercard?What's a Gravatar?WhiteWhitelist ManagementWhitelist saved.Widget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:WordPress.com StatsWordPress.com UsernameWrite a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are required to specify a plugin.You can view your stats dashboard here.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou must specify a valid actionYou will no longer receive email updates about Jetpack.Your Email AddressYour NameYour answer was incorrect, please try again.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment was approved.a post or page is first publisheda post or page is updatedandas sharing sourceEmailcancelclick hereconfiguredayeditedit textgo backhttp://jetpack.mehttp://wordpress.org/in {category/tag name}In "%s"loading…monthnounCommentor, deactivate Jetpackplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearwatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s %2$s näyttökertaa%1$s %2$s%1$s: %2$s%s (Vaaditaan)Haluatko vastaanottaa Jetpackiin liittyviä päivityksiä sähköpostitse? %sVastaanotat sähköpostipäivityksiä. %s%s sitten%s vaaditaan%s pikseliä%s vaatii oikean sähköpostiosoitteen« Edellinen← Vanhemmat kommentit— Valitse —(ei otsikkoa)(Vaaditaan)Lue lisää näistä asetuksista.% Vastausta1 VastausLaskutehtävän vastaus oli väärin. Tämä toiminto estää roskapostittajia käyttämästä palvelua, kun Jetpack Protect API ei ole saatavilla. Käytä selaimesi Takaisin-nappia palataksesi sisäänkirjautumislomakkeelle, paina "Lataa uudelleen"-nappia saadaksesi uuden laskutehtävän ja yritä uudelleen.Ota käyttöönAktivoi AkismetAktivoi Jetpack suojausKäytössäLisääLisää yhteydenottolomakeLisää uusiLisää uusi palveluLisää tai poista avainsanojaLisää jakopainikkeita blogiisi ja anna kävijöidesi jakaa artikkeleitasi kavereidensa kanssa.Osoite:HallintapalkkiAkismet auttaa pitämään blogisi puhtaana roskaviesteiltä!AlbumiKaikkiKaikki projektitKaikki artikkelitVaihtoehtoinen teksti:Automattic:n lennokas luomusBlogin pääkäyttäjän täytyy luoda Jetpack-yhteys.Virhe luodessa uutta jakopalvelua - tarkista antamasi tiedot.Tapahtui virhe. Ole hyvä ja yritä uudelleen.ArkistosivuEsittäjäLiitteen sivuOikolue sisältö automaattisesti, kun:AutomatticSaatavilla olevat palvelutKäytettävät pikakoodit ovat: %l.Taustan väriTallentaaksesi asetukset varmasti paina "Päivitä käyttäjätiedot"-nappia ruudun alalaidassa.Viallinen kieliMustaBlogin arkistotBlogin verkko-osoite:SininenKerää lisää kävijöitä, paranna turvallisuutta sekä suorituskykyä.Reunan väri (hex):Painikkeen tyyliCSSCSS-versiohistoriaCSS-tyyliohjemuokkainKameraPeruutaPeruuta vastausKuvateksti:kategoriaKeskelleHei, yritätkö huiputtaa?Tarkistetaan sähköpostipäivitysten tila…Valitse eniten käytetyistä avainsanoistaKliseetKlikkaa julkaistaksesi tämän!Lähetä tämä kaverille sähköpostitseTulostaJaa LinkedIn:ssäJaa RedditissäJaa TwitterissäKlikkaa nähdäksesi kuvaesityksen.SuljeVärikaavaTulossa pian…kommenttiKommenttien selausKirjoita nimellä %sKommentitMonimutkaiset fraasitAsetaSäädä %sVerkostoiduYhdistä WordPress.com:iinYhdistä blogisi suosittuihin sosiaalisiin verkostosivustoihin ja jaa automaattisesti blogisi uusimmat artikkelit kavereidesi kanssa.YhdistettyYhdistä WordPress.com:iinYhteydenottolomakkeen URL-osoite:YhteystiedotLue loppuun →Rajaa kuvaaMukautettuOma CSSAvainkenttä poistettuAvainkenttä päivitettyMukautaAlasPäivittäiset arkistot: %sTummaPäivämääräPoista käytöstäVikasietotilaOletusPoistaPoista pysyvästiPoista tämä kohde pysyvästiKuvausTarkemerkitPoista CSS ja JS käytöstäKatkaise yhteys WordPress.comiinSuljeNäytä otsakkeen tekstiNäytä pieni versio Gravatar-profiilistasiNäyttää kuvan sivupalkissasiNäytä oletuksena parempilaatuinen video.TuplakiellotRaahaa ja tiputa palveluita tähän.Raahaa alla olevaan laatikkoon ne palvelut, jotka haluat ottaa käyttöön.SähköpostiosoiteMuokkaaCSS-muokkainMuokkaa valikon kohtaaMuokkaa projektiaMuokkaa kohtaa...Muokkaa profiiliaSähköpostiosoiteSähköpostiosoiteSähköpostivarmistus epäonnistui. Yritä uudelleen.Sähköposti-ilmoituksetPoista roskaviestitSalli oikoluku seuraavilla kieliopeilla ja tyylisäännöillä artikkeleita ja sivuja kirjoittaessa:Sallitut palvelutEnglannin asetuksetSyötä URL-osoite 16x16px kokoiseen kuvaan, jota haluat käyttää tämän palvelun kuvakkeena.Syötä sähköpostiosoitteesiSyötä sähköpostiosoitteesi tilataksesi blogin artikkelit ja saadaksesi päivityksiä sähköpostitse.Virhetiedot: %sRoskakoriin siirto ei onnistunut.Roskakorista palauttaminen ei onnistunut.Virhe!Virhe: syötä kelvollinen sähköpostiosoiteVirhe: syötä tiedot vaadittuihin kenttiin (nimi, sähköposti).Esimerkki:SivuSelitä...FacebookSuositellutEtusivun nostetut artikkelitArtikkelikuvatNäytettävät syötteet:PalautePalaute hylätty.Palaute merkitty roskapostiksiSeuraa minua TwitterissäMuuta tukeaMuoto:IlmainenVapaat formaatitLähettäjäEtusivu, arkistosivut ja hakutuloksetEtusivuGalleriaGoogleGravatar HovercardGravatar-käyntikortitGravatar-profiiliVihreäKorkeusKorkeus (pikseliä):Korkeus:Piilotetut verbitPiilotaEtusivuTunnit:IP-osoite:KuvakeKuvake ja tekstiKuvakkeen URL-osoiteVain kuvakeNämä sanat ohitetaan, kun artikkeleitasi ja sivujasi oikoluetaan:Tyhjänä kuvankoko määritetään automaattisesti.Ohita kaikkiOhita ainaOhita ehdotusOhitettavat fraasitKuvaKuvan tasaus:Kuvan väri:KuvalinkkiKuva-asetukset:Kuvan koko:Kuvan URL-osoite:Kuvan otsikko:Ei-aktiivinenLisää videoVirheellinen pyyntöVirheellinen käyttäjänimiSlangiJetpackJetpack suojaus on pois käytöstä.Jetpack asetuksetJetpack sivustotJetpackin on luonut WordPress.comJeptack on paikalliskehitys tilassaJetpack vaatii WordPressin version %s tai uudemman.Liity %s tilaajan joukkoonLiity %s tilaajien joukkoonLaTeXTekstiSähköpostiNimiKieliSuuriViimeksi muokattuLue lisääLue lisääVastaaVastaa käyttäjälle %sVastaaVasemmalleVaaleaTykkääTykkää tästä:TykkäyksetTykkäykset ja jaotLinkin väri (hex):muokkaaLinkitä tilisi WordPress.com:iinLinkedInLinkit blogisi RSS-syötteisiinLinkit nettisivuihin, blogeihin ja muihin sivustoihin, jotka auttavat kuvailemaan, millainen olet.EsikatseluLadataan kommentteja...Videota ladataan...Ladataan…Lataa...Ogg-videotiedoston sijainti.Kirjautunut sisäänKirjautui ulosLogoj.n.Y \k\l\o G.iSivupalkkiPalauta tämä viesti roskaviesteistäMerkitse tämä viesti roskaksiMediaMediatiedostoKeskikokoinenValikkoValikon kohtaViestiViesti lähetettyViestitAikataulusta myöhässäMobiilisovelluksetNopeuta sivustoasi latamaalla kuvat WordPress.com:in CDN:n kautta.Anna lukijoidesi jakaa sisältöäsi napin painalluksella Facebookissa, Twitterissä, sekä monissa muissa palveluissa.Salli käyttäjien kirjautuminen WordPress.com -tunnuksilla.Näytä linkkejä aiheeseen liittyviin sisältöihin artikkeleissa sekä sivuissa.Upota sisältöä helposti YouTubesta, Vimeosta, SlideSharesta sekä monista muista palveluista.Ota käyttöön WP.me -pohjaiset URL-lyhennyslinkit kaikille artikkeleille sekä sivuille.Anna lukijoille helppo tapa kiittää sinua sisällöstäsi.Seuraa sivustosi tilastoja selkeiden sekä ytimekkäiden raporttien avulla, jotka eivät kuormita palvelintasi.Optimoi sivusi puhelimille sekä tableteille mobiiliystävällisellä teemalla.Julkaise artikkeleita sähköpostin avulla, laitteesta sekä sähköpostiohjelmasta riippumatta.Vastaanota ilmoituksia sivustolla tapahtuvasta toiminnasta ohjauspaneelin työkaluriviin tai mobiililaitteisiisi.Vastaanota ilmoituksia Jetpackilta jos sivustosi menee nurin - ja kun se palaa takaisin.Etsi yhden kentän avulla koko tietokannastasi Ohjauspaneelin kautta.Jaa uudet artikkelit automaattisesti sosiaalisissa medioissa.Kirjoita artikkeleita tai sivuja tekstipohjaisella Markdown -syntaksilla.TykkäyksetAiheeseen liittyvät artikkelitKuukausittainen arkisto:%sKuukausittaiset arkistotLisääLisätietojaMinun twiititNimiUusiUudemmat kommentit →UusimmatSeuraava »Seuraava »EiEi reunojaEi alatunnistettaEi otsakettaRoskakorista ei löytynyt projektejaEi palautteita.Lisäosia ei löytynyt.Jetpackin palvelimet eivät vastaaEi ehdotuksia.Avainsanoja ei löytynytYhtään kirjoitusvirhettä ei löytynyt.Ei mitäänMitään ei löytynytIlmoita sähköpostilla tulevista kommenteista.Ilmoita sähköpostilla uusista postauksista.KäyttäjäKirjoittajaRooliPäiväAvainsanaTaksonomiaOKViralliset painikkeetOgg-tiedoston URL-osoiteVanhempi %sVanhemmat artikkelitKaikkiin artikkeleihinNäyttää vain vapaissa formaateissa olevat videot.no-subsetonAvaa linkki uuteen ikkunaan tai välilehteenAsetuksetOranssiJärjestysSivu %sSivut:Passiivinen kieliPolkuKestolinkki kohteeseen %sHenkilökohtaiset linkitPuhelin:Fraasit ovat kierteleviäPäivitysilmoitus:VaaleanpunainenPinterestVarmista syntymäpäiväsi.Lisäosa aktivoitu.Lisäosa poistettu käytöstä.LisäosatSuositutPortfolioLähetä kommenttiKäyttäjän %s artikkelit.Artikkelien julkaisu sähköpostillaArtikkelien selausViestiä ei lähetetty - tarkista sähköpostiosoitteesi!KirjoittanutKirjoittaja: %sKategoria(t): %sArtikkelitArtikkelit & KommentitArtikkelit ja sivutArtikkeleiden sivuJulkaise tämäEsikatseleEsikatsele:Esikatselu: muutokset täytyy tallentaa tai ne katoavatEnsisijainen valikkoTulostaTietosuojaTietosuojaProjektin avainsanaProjektin tyyppiProjekti tallennettu.Projekti päivitetty.ProjektitOikolue kirjoitusOikolukuPalvelun tarjoaa %sJulkaiseJulkaise:JulkaiseJulkaistuOstaLilaSiirrä hiiresi Gravatarisi päälle katsoaksesi, miltä profiilisi näyttää.Luokittelu:Viimeisimmät artikkelitPunainenRedditTarpeettomat fraasitRekisteröityneet käyttäjätAiheeseen liittyvät artikkelitAiheeseen liittyvät artikkelitPoista palveluToistuva sanaKorvaa kohta:VastaaRaportin näkyvyysVaaditaanko? PalautaPalauta tämä kohde roskakoristaOikealleTallennaTallenna muutoksetTallenna tyyliohjeTallenna asetuksetOdottaa julkaisuaEtsiEtsi kommenttejaEtsi palautteitaEtsi mediakirjastostaEtsi lisäosiaEtsi projektin avainsanojaHakutulokset: %sHakutuloksetValitse rooli, jolla on oikeus nähdä tilastoraportit.Semanttinen henkilökohtainen julkaisualustaLähetä sähköpostiLähetä sähköpostiosoitteeseenLähetetty varmistetulta %s-käyttäjältä.Erottele avainsanat pilkullaPalvelun nimiTähän raahatut palvelut näkyvät yksittäisinä kuvakkeina.Tähän raahatut palvelut piilotetaan Jaa-alasvetolaatikon alle.AsetuksetAsetukset tallennettu.JaaJaa FacebookissaJaa:Jaa artikkelisi Twitterissä, Facebookissa ja muissa sosiaalisissa palveluissa. Voit käyttää jakopainikkeina kuvakkeita, tekstitä tai molempia. Joidenkin palveluiden kohdalla on mahdollisuus käyttää "älykkäitä painikkeita". Esimerkiksi Twitterin älykäs painike näyttää artikkelin jakokerrat.Jaetut artikkelitJakaminenJakopainikkeetJakamisen asetuksetJaon URL-osoiteJakolauseShortcodeShortcode-upotuksetNäytäNäytä otteet:Näytä henkilökohtaiset linkitNäytä painikkeet:Näytä karttaNäytä enemmänNäytä luetuimmat artikkelit päällimmäisinäNäytä käytetyimmät hakusanat päälimmäisinäNäytä:taiHopeaSivuston nimiSivuston tilastotSivustotKuvaesitysPieniHaku termi "%s" ei tuottanut osumia moduuleissaEi raportoitavaa.Valitettavasti blogisi artikkeleita ei voida jakaa sähköpostin välityksellä.Lajittele:RoskaviestitRoskaviesti (%s)Roskaviestit (%s)OikeinkirjoitusTilastotTyyliohje tallennettu.AiheLähetäLähetä »Lähetetään kommenttia%sTilaaTilaa blogin artikkelit sähköpostiisiTukiAvainsanaAvainsanatOta WordPress mukaasi.KäyttöehdotSuosituksetTekstiTeksti- ja kuvalinkitTekstilinkkiVain tekstiOletussisällön leveys teemassa %s on %d pikseliä.JetpackJetpack %sEnsisijaisen yhteyden omistaa WordPress.com tunnus %s.Oikolukijalla on ehdotuksia koskien tätä artikkelia. Oletko varma, että haluat päivittää sen? Paina OK päivittääksesi tai Peruuta nähdäksesi ehdotukset ja muokataksesi artikkelia.Oikolukijalla on ehdotuksia koskien tätä artikkelia. Oletko varma, että haluat päivittää sen? Paina OK päivittääksesi tai Peruuta katsoaksesi ehdotuksia ja muokataksesi artikkelia.Teema: %1$s.Virhe tapahtui kommunikoitaessa oikolukupalvelun kanssa.Lisäosan käytöstäpoistamisessa tapahtui virhe.Lisäosan päivittämisessä tapahtui virhe.Teeman päivittämisessä tapahtui virhe.(Vaaditaan)Tässä galleriassa on %2$s kuva.Tässä galleriassa on %2$s kuvaa.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.Artikkeli jaettiin!Tämä kirjoitus on suojattu salasanalla.Tämä kommentti on salasanasuojattu. Syötä salasana nähdäksesi kommentit.Kuvaesitys vaatii JavaScriptin.Tämä video on tarkoitettu täysi-ikäisille.PienoiskuvaAikaAika:Aikajanan TeemaOtsikkoOtsikko:Suosituimmat artikkelitSuosituimmat artikkelit & sivutHaetuimmatLäpinäkyvä taustaRoskakoriinOngelmia Jetpackin kanssa?Yritä yhdistää uudelleen.Tumblrsäädä artikkelikohtaisestiTwitterTwitter aikajanaTwitter-käyttäjätunnus:TyyppityypitYlösURLYleinenJulkaisematonLopeta tilausPäivitä projektin avainsanaPäivitetty.Siirrä kuvaLadataan...Käytä automaattisesti valittua kieltä artikkelien ja sivujen oikolukemisessa.-- Valitse --PiilotaNäytäKäyttäjätunnusArvoVarmennetut palvelutVideoPressNäytä kaikkiKatso koko profiili →Näytä kaikki Jetpackin ominaisuudetKatso täysikokoisena %1$s×%2$sNäytä ihmisten profiilit, kun siirrät hiiresi heidän Gravatariensa päälle.Näytä:Mene Sivuston tilastot -sivulle nähdäksesi tilastot.WP.me-pikalinkitBlogin tietoja ei pystytty lataamaan tällä kertaa.KotisivuMikä on Hovercard?Mikä Gravatar on?ValkoinenHyväksyttyjen listan hallinnointiHyväksyttyjen lista tallennettu.Vimpaimen ID:onVimpaimen otsikko:Leveys (pikseliä):Leveys:WordPress.com-tilastotWordPress.com-käyttäjätunnusKirjoita kommentti...j.n.Yj.n.Y G.iVuosittaiset arkistot: %sKylläSinulla ei ole oikeuksia hallita tätä kohdetta.Sinulla ei ole oikeuksia poistaa tätä pois roskiksesta.Sinulla ei ole oikeutta siirtää tätä kohdetta roskakoriin.Sinun täytyy määrittää lisäosa.Voit tarkastella sivustosi tilastoja täällä.Sinulla ei ole tämän sivun saantiin tarvittavaa oikeutta.Olet tilannut päivitysilmoitukset sähköpostiisi.Olet jakanut artikkelin käyttäjän %s kanssaSinun täytyy määrittää olemassa oleva toimintoEt tule saamaan enää sähköpostipäivityksiä Jetpack:iltä.SähköpostiosoitteesiNimesiVastauksesi ei täsmännyt. Ole hyvä ja kokeile uudelleen.Blogissasi ei ole tällä hetkellä yhtään julkaistua artikkelia.Kommenttisi odottaa hyväksyntää.Kommenttisi hyväksyttiin.artikkeli tai sivu julkaistaan ensimmäistä kertaaartikkeli tai sivu on päivitetty.ja SähköpostitsePeruutaklikkaa tästäMuokkaapäiväMuokkaamuokkaa tekstiäpalaa takaisinhttp://jetpack.mehttp://wordpress.org/Kategoriassa "%s"Ladataan…kuukausiKommenttitai poista Jetpack käytöstä%s jos:oikoluettuSähköpostitseFacebookGoogleLinkedInPinterestPocketJulkaise tämäTulostaRedditTumblrTwittertänäänviime kuukuluva neljänneställä viikollaviime vuosiKatso: %sviikkowordsplugins/jetpack/languages/jetpack-is_IS.mo0000755000312500031250000005221012651056012021207 0ustar eacbforgeacbforgÞ•‡T Œ° ± 8È !!&!-D!;r! ®! »! È!Ö!ß!æ!÷! "$" B" M"X"i"x""’"™""¥"®"Á"Ê"Ð" Ô" Þ"ë"pô"e#.l#›# «#¶#Ç# Í#Û#à#ç# î#û#$ $$'$6$?$^$ f$q$ w$„$Œ$Ÿ$ ¨$²$ º$ Å$ Ï$ Ü$5é$ %*% 1%<%R% h%r%…%Š% %š% %¨%¯%Â% ß% ë%ö%" &,&B&W& k&w&€&‡& Œ&™& ¨&µ&Ç& Í&Û& ê&õ&''='*D'5o'¥'8®'ç'ð'ù' ((#(9(A( F(Q(Y(`(g(m( t((ƒ‰( )) )#) ()3) 9)E) N)[)?a)=¡)Gß)\'*f„*ë*ò*û* + + + %+3+ G+U+Z+q+ w+<‚+ ¿+Ì+ Ü+ç+ ì+ ù+ ,, ,$,+, 0,:,J,P, X,e,n,w, ‡, “, ,³,¹,Ò,é,ü,-)-C-V- l--§-Ã-Ú-ñ-.,.B.X.j.{.’.¤.·.Ì.Ý.â.ç.ø./ / "/0/B/Q/b/ g/ u/ ƒ/ ‘/ Ÿ/3©/FÝ/0$0)U00 ‚0FŽ0Õ0ò0111%1-14191I1 P1Z1%_1…11 •1¢1 ²1 ¿1Ì1 Ò1 Ý1è1ð13ù1-2 32@2F2 N2\2 d2q2z2 2š2 ¢2¬2³2¹2 À2Í2Ñ2 Ù2 ç2ó2ù23653l3 t3•3ž3¤3 ©3 ¶3À3Ç3×3 é3ö344%+4Q4(k4”44 £4¯4¶4»4Á4 È4Ò4 Ø4â4è4í4ô4ý45 5 5&5-5?5G5 N5 \5f5n5w5|5‚5“5 ˜5¢5Y©5\6I`6 ª6´6 Ä6Ñ6×6Ü6â6è6 ï6û677 7 7 7+7 ;7:H7Hƒ7HÌ788 $8 /8:8M8-V8„8 ž8©8º8Â8 È8Ô8Û8î8 ô899793R9;†9 Â9$Ì9ñ9 :#: *:5:9:>:T:f:l: ‹:'˜:À:Ò:á:ó:;;&;6;&;;|b;ß<?ù<9=M=_= p= z= …= “=  =­= ¶= Á=Ï=é='ÿ='>6>E> T>b>i>x> > Š>•>!¦> È> Ö>à>å>ô>?­ ? ¹?Å?Ì? Þ?é?ø? þ? @ @ @&@7@G@O@V@o@ ƒ@%@³@ »@È@Í@ Ü@ç@ A AA A*A0A BA/cA “A žAªA»A ÊA ëA÷ABB B*B 2B ?BLB\BsB{B„B"•B¸BÈBãB ÷BC CCC-CCCSC nC|C„C”C£C³C-ÒCD4DBLL‹L ‘LžL ¥L °L¾LÇLØLáLöLüLM MMM#M5M =MHM YM eMrMtMvM xM„MœM¬M³M¹MÊMÙMßMõMNN(NGN,\N.‰N ¸N ÃNÎNÔNÛNäNêNòNùN OO(O/O 6O @O MO YOeO €OŒO”O§O¬O ³OÁOÔO ÝOéO ïOúO P PP#Pg2PYšPôPýPQ$Q,Q2Q9Q @Q LQVQ[QbQ iQ sQ~Q…Q œQ §Q³Q¹Q ¿QËQ ÑQ ÜQçQ ÷Q RR -R8RKRQR YRfRnRƒR ‰R—RµR@¹R(úR>#S bS$pS•S ±S ¿S ËSØSÞSåS ûSTT $T/T6T ETST\T cTpTwT~TƒTÔC?ˆ^7R§L( `¸y€¨'ú)_m×·õŒB1 høp=ÇD•sí@ô€Ä}h¬Â%ÊQ /³Ú PÿûvRi8#!BnµXW.|ºÈ‹ì’¡]e(MïJ‡#FU;d,Ð~¶ùéÍ0Yl8«ó»°‰*p£ÕF{VAC wÙx†„ÓkÛ9Ke5g@]S²iŽÌ)–ŸžP<­œS!,\a¯3TL`1%>™Å —˜†Ý à&[þâxHfÞ¢Zè"ý„¤zMl0Z\ßT‡j ¦ÊjÆ…a:çf^ÁN>±ñå÷NðÜVG©qª<”}E6J¥$o43"äEy'ÀbOÉ Gëür5_w6+´ö¾‘Ë2 s4r7‚ cqk¿Ñ?áÏ$›;[tÒ&zO*“QDudc2~Uƒ¼=®b-/òê IHνš:oXIgvYA‚. -¹mãƒ9un|{K+…ØÖWîæt (Opens in new window) or Cancel and go back to the settings.# of Tweets Shown:%1$s – %2$s%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%s (Jetpack)%s (Required)%s Error%s ago« Previous← Older Comments— Select —(Shows %s posts on each load)(no title)(required)% Replies1 ReplyActivateActivate AkismetActiveAddAdd NewAdd logoAdd or remove tagsAddress:AlbumAllAll postsAlphabeticalApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAs in Premium. Premium module descriptionPaidAttachment PageAutomatticBackground colorBlackBlog ArchivesBlueCameraCancelCancel replyCaption:CategoryCenterCheatin’ uh?Check for SpamCheckboxChoose from the most used tagsCirclesClick hereCloseColor SchemeCommentComment navigationCommentsConfigureConnectConnect toConnectedContact FormContact InfoContinue reading →Crop ImageCustomCustom CSSCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisconnectDisconnect JetpackDisconnect site from WordPress.comDisconnecting JetpackDismiss this notice.Display Header TextDisplay as:DownloadE-mailEditEdit DetailsEdit Menu ItemEdit ProjectEdit Your ProfileEmailEmail AddressEmail settingsEmpty SpamError code: %sError in moving to Trash.Error in restoring from Trash.Error!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageFacebookFeaturedFeatured ContentFeatured ImagesFeedbackFor more information:Format:FromFront pageGalleryGlobalGoogleGreenHeightHeight (px):Height:Hi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHideHomeIP Address:IconIgnore allImageImage Size:InactiveInsert VideoLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabelsLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLike this:Link to edit an HTML form field in contact form buildereditLive PreviewLoading…Loading...LogoM j, Y @ G:iMain SidebarMark as SpamMediaMedia FileMediumMenuMenu ItemMenu ManagementMenusMessageMessage SentMessagesMetadataMissed scheduleMobile AppsMobile ThemeMobile-compatible:Mode:Module NameContact FormModule NameCustom CSSModule NameManageModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NamePhotonModule NamePublicizeModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule TagAppearanceModule TagDevelopersModule TagMobileModule TagOtherModule TagRecommendedModule TagSocialModule TagWritingMonthly Archives: %sMonthly archivesMoreNameNetwork SettingsNewer Comments →NewestNext »Next » No plugins found.No tags found.No themes found.NoneNot ConnectedNot connectedNothing FoundNotificationsNounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagOKOlder postsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:PathPermalink to %sPhone:Pingback:PinkPlease provide a valid email address.PluginsPopularPost CommentPost navigationPosted by %sPosted in %sPostsPosts pagePress ThisPreviewPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyProcessing...ProjectProject TypeProjectsProudly powered by %sPublicizePublishPublishedPurpleRadioRatingRecent PostsRedRelatedRelated postsReplacementReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:RightSaveSave ChangesScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch PluginsSearch Results for: %sSearch resultsSemantic Personal Publishing PlatformSeparate tags with commasService: Account connected as%1$s: %2$sSettingsShareShare this:SharedShowShow:SilverSite NameSitesSlideshowSmallSnowSocialSort by:SpamSpellingSpelling and GrammarStatsStyle:Stylesheet saved.SubjectSubmitSubmit »SubscribeSupportTag nameTagsTermsTerms of ServiceTextText onlyThemesThis HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected. Enter the password to view any comments.ThumbnailTiled GalleriesTiled MosaicTilesTimeTime:TitleTitle:TransparentTrashTumblrTypeURLUncategorizedUnpublishedUpcoming EventsUpload ImageUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVaultPressVideoPressVideoPress LibraryView AllView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresVisibilityWP.me ShortlinksWebsiteWhiteWidth (px):Width:Write a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.Your NameYour comment is awaiting moderation.[%s] Joining confirmationas sharing sourceEmailcancelclick heredayedithttp://wordpress.org/locales%1$s/%2$smonthnext-saturdayImage navigationnounCommentpast participle: books I have readReadsearch everythingshare toEmailshare toFacebookshare toGoogleshare toPress Thisshare toPrintshare toTumblrweekword count: words or characters?wordsPO-Revision-Date: 2015-08-21 12:56:32+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n % 100 != 1 && n % 100 != 21 && n % 100 != 31 && n % 100 != 41 && n % 100 != 51 && n % 100 != 61 && n % 100 != 71 && n % 100 != 81 && n % 100 != 91); X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev (Opnast í nýjum glugga) eða hætta við og fara aftur í stillingar.# af tístum sýnd:%1$s – %2$s%1$s hliðarslá%1$s %2$s%1$s: %2$s%1$s kl. %2$s%s (Jetpack)%s (Krafist)%s villa%s síðan« Fyrri← Eldri athugasemdir— Velja —(Birtir %s færslur í hverri hleðslu)(ekkert heiti)(nauðsynlegt)% Svör1 SvarVirkjaVirkja AkismetVirkirBæta viðBæta viðBæta við merkiBæta við eða eyða efnisorðumHeimilisfang:MyndasafnAlltAllar færslurStafrófsröðLjósopVið biðjumst velvirðingar en engar niðurstöður fundust fyrir valið safn. Það er huganlegt að leitin geti aðstoðað þig við að finna það sem þú leitar að.ListamaðurGreittSíða viðhengisAutomatticBakgrunnsliturSvartFærslusafnBlárMyndavélHætta viðHætta við svarSkýringatexti:FlokkurMiðjaEr nokkuð að svindla ?Leita að amapóstiValreiturVelja út frá mest notuðu merkjunumHringirsmelltu hérLokaLitasamsetningAthugasemdLeiðastýring athugasemdaSkilaboðStillaTengjastTengjast viðTengdHafa samband formHvar má ná sambandi við þig?Lesa meira →Skera myndSérsniðinSérsniðið CSSSérreiti eyttSérsniðinn reitur uppfærður.SérsníðaDagskipt greinasafn: %sDökkurDags.Gera óvirktAflúsaSjálfgildurEyða þessuEyða varanlegaEyða þessu varanlegaLýsingAftengjaAftengja JetpackAftengja síðu frá WordPress.comAftengi JetpackLoka þessari tilkynningu.Sýna texta í hausSýna sem:SækjaNetfangBreyta Breyta upplýsingumBreyta valmyndarhlutaBreyta verkefniBreyta prófílnum þínumTölvupósturNetfangPóststillingarTæma amapóstVillukóði: %sVilla við að flytja í Rusl.Villa kom upp við endurheimt úr ruslafötu.Villa!Villa: vinsamlega skráðu inn rétt tölvupóstfangVilla: vinsamlegast fylltu út nauðsynlega reiti (nafn, netfang).Dæmi:SíðaFacebookà forsíðuValið efniEinkennandi myndirEndurgjöfFyrir frekari upplýsingar:Skráarsnið:FráForsíðaMyndasafnAltæktGoogleGrænnHæðHæð (px):hæð:Hæ, Þér hefur verið boðið að tengjast '%1$s' hjá %2$s með aðgang sem %3$s. Vinsamlegast ýttu á eftirfarandi tengil til þess að staðfesta boðið: %4$sHyljaHeimIP tala:TáknmyndHunsa alltMyndStærð myndar:ÓvirkurSetja inn myndskeiðFyrirsögnTölvupósturNafnVefurValkosturValmöguleikarMerkimiðarTungumálStórSíðast breyttLesa meiraLesa meiraSkildu eftir svarSkildu eftir svar við %sSkilja eftir athugasemdVinstriSegðu okkur hvað þú heitir. LjóstLíkar við:BreytaLifandi forsýnHleð…Hleð...MerkiM j, Y @ G:iAðal hliðarsláMerkja sem SpamSkrárSkráMiðlungi gottValmyndValmyndarhlutiUmsýsla valmyndarValmyndirEfniSkilaboð sendSkilaboðLýsigögnTímastilling úr skorðumSmáforritSmátækja þemaSmátækja-vænt:Hamur:Hafa samband formSérsniðið CSSStjórnunSmátækja þemaVöktunTilkynningarPhotonBirtaStafsetning og málfræðiÃskriftirFlísalögð myndasöfnVaultPressVideoPressWP.me stutthlekkirSýnileiki aukahlutaÚtlitHönnuðirFarsímiAnnaðMælt meðSamskiptiRitunMánaðarskipt greinasafn fyrir: %sMánaðarlegt færslusafnMeiraNafnNet-stillingarNýrri athugasemdir →NýjastNæsta »Næsta »Engar viðbætur fundust.Engin efnisorð fundust.Engar þemu fundin.EkkertEkki tengd(ur)Ekki tengd(ur)Ekkert fannstTilkynningarNotandiHöfundurHlutverkDags.EfnisorðOKEldri færslurenginn undirflokkurvirktOpna hlekk í nýjum glugga/flipaValmöguleikarAppelsínugulurPöntunSíða %sSíður:SlóðBeinn tengill á %sSími:Pingback:BleikurVinsamlegast sláðu inn gilt netfang.ViðbæturVinsælirSenda inn athugasemdLeiðarkerfi færslu%s skrifaðiSkrifað í %sFærslurFærslusíðaBirta þettaSýnishornForskoðun:Forskoða: breytingar verður að vista ella munu þær tapastVerðAðalvalmyndPrentaFriðhelgià vinnslu...VerkefniTegund verkefnisVerkefniDrifið áfram af %sBirtaBirtaBirtFjólublárÚtvarpEinkunnNýlegar færslurRauðurTengt efniTengdar færslurÚtskiptingSvara þessu EndurheimtaEndurheimta úr ruslinuNiðurstöður:HægriVistaVista stillingarTímaáætlaðLeitaLeita í athugasemdumLeita í ölluLeita í skrámLeita í viðbótumLeitarniðurstöður fyrir: %sLeitarniðurstöðurSemantískt og persónuleg útgáfu umhverfiAðskildu fleiri en eitt efnisorð með kommum%1$s: %2$sStillingarDeilaDeila:SamnýttSýnaSýna: SilfurHeiti vefsvæðisÞínir vefirSkyggnusýningSmáarSnjórSamskiptiRaða eftir:RuslpósturStafsetningStafsetning og málfræðiTölfræðiStíll:Sniðmát vistað.EfniÃframSenda » Gerast áskrifandiAðstoðNafn merkisMerkiSkilmálarNotendaskilmálarTextiBara textiÞemu(nauðsynlegt)Þetta myndasafn inniheldur %2$s mynd.Þetta myndasafn inniheldur %2$s myndir.Þessi færsla er læst með lykilorði. Sláðu inn lykilorð til að sjá athugasemdir.SmámyndFlísalögð myndasöfnMosaíkflísarFlísarTímiTími:TitillFyrirsögn:GegnsættRuslTumblrTegundVefslóðÓflokkaðÓbirtVæntanlegir atburðirHlaða upp-- Veldu --HyljaSýnaNotandanafnGildiVaultPressVideoPressVideoPress safnSkoða alltSkoða %s.Skoða alla eiginleika JetpackSýnileikiWP.me stutthlekkirVefurHvíturBreidd (px):Breidd:Skrifa athugasemd...Y/m/dY/m/d g:i:s AÃrskipt greinasafn fyrir: %sJáÞú hefur ekki heimild til að flytja þennan hlut úr ruslinu.Þú mátt ekki færa þetta í Ruslið.Þú hefur ekki tilskilin leyfi til að fara á þessa síðu.Nafnið þittAthugasemd þín bíður samþykkis.[%s] ÞáttökustaðfestingTölvupósturHætta viðsmelltu hérdagurBreytahttp://wordpress.org/%1$s/%2$smánuðiLeiðarstýring myndaAthugasemdLesiðLeita í ölluTölvupósturFacebookGoogleBirta þettaPrentaTumblrvikaorðplugins/jetpack/languages/jetpack-uk.mo0000755000312500031250000015622112651056012020627 0ustar eacbforgeacbforgÞ•šì‹¼)è7é788"8-@8;n8 ª8 ·8 Ä8 Ñ8ß8æ8õ899 :9 E9P90_99¡9#°91Ô9::::+: ::H:P:e:u:‰:ž: ²:¿:Ø:è:ú: ;;+;[>;š;³;Ã;Ì;Ò;Ö;è;ù; <<)<:<M< _< i< w<„<*”<¿<Æ< Ö<á<ô<= = =%=<= A=²N=> >>)>0>7>@>I> P>\> o>}> œ>¨> °>»>Ð>ð>ÿ>?4?:?B?T?k?…?˜?!¡?Ã? Ó?Ý? å?ð?i @ s@ }@Š@ œ@5©@ß@ï@ AA A'A=ARAbAxA ŽAœA²AÑAÖAÛA àAëAGóAq;B­B´B ÇBÓB éBôBC3 C TC/`C!C%²CØCéC&òCCD]DdDiDrD „D‘D¢D´DÅD×DëD ñDÿDE%E 4E?E"TEwE‡E˜E·EÐEæE*íE5F NFYFkF~F‡F —F ¢F ¯F ¼FÈFØFêFGG- G;GCG TG^GrGƒG‰G GG¥G ªGËG ÐGÝG äGðG õGH H H H-H=H NH[H rH }H ˆH“H £H ¯H ºHÇHÏH ØHåH…ùH{I ûIJJN'J/vJ¦J\¯Jf KXsKÌKÕK ÛKéK ùK LL *L8L LLZL_LeL jLuL{LL L<©LæLïL MM M4MEM UM`M€M …M ’MŸM½M×MàMñM ÷MN NN -N :NFHN/N&¿NæN_÷NBWOšO-­OÛOãOìOüOP+P CP OP\PoP€P…P$–P»P ÀP ÎPÚPïPQ QQ3Q :Q GQUQ XQ bQ lQvQ†QšQ·QÉQäQúQR +R7RIRXRgRxR–R ›R ©R ·R ÅR)ÓR3ýR1SISeShS yS†S S›S¯SÀSÞSòSúSTTTT*T?TSThTmT}TŒT “TT¢T%¶T ÜTýTU)U=UEUMU\U qU{U‹U-žU ÌU ÙU åU óU þU V V#V)V:V JVUV]V3fVšV  V­V³V»VÊV ÒV ÞV ëV øVLW0SW$„W©W`¸WCX]X+nXšX£XµX ËX ÕXàX èXòX<ùX 6YDY KYXY\Y dY rY€Y Y ›Y ©YµY »YÅYãY6Z8Z@ZIZOZTZ kZxZˆZ˜Z «ZµZÇZÚZáZñZ[ [ [2[G[V[j[[[¦[º[ É[Ô[ê[ \(\/:\;j\ ¦\²\»\ Ô\à\ ç\ó\û\ ] ]*] 1];]@]S] b]m]‚]O–]8æ]^ /^;^ D^‘N^ à^__7_.=_l_ s_ €_ Š_ ”_ ž_©_Ç_Ú_ø_`I`P`Y` n`{``ˆ`š`¢` ©`·` Ì`Ö`æ`î`÷`ü`a &a2aKakaO‚a3Òa8b(?bhbh{bKäb0c6Ec |c‰cŽc ¡c «c µc>ÂcYd%[d\d ÞdIÿd IeSeberewe}eƒeŠe ¡e«e ÁeÎeåeëe þe ff&f+f1f 5f Cf Of]fqf„f ˜f¥f!Àf(âfF g:RgHgHÖgh(h .h9h KhWh ih!uh—h h¹hÈh×héh úhii*id;i i:²iíi ýij!j&2jYjajtjJzj Åj Ójßjæjþjk1kDk JkXk(\k(…k€®k;/l+klZ—lòlm m 3m$=mbmm%œm Âmãmýmn nnn nw&nžn¦n¸n×nén ïn o'oQEo—o<©oæo øop p "p0p15p8gp7 qØq÷q r (r 2r =rJr Yrfr ƒrrªr(ÅraîrPsds#|s= sÞsýs=thWtÀtÕt æt>ót(2u [u |u-‰u$·u5Üu-v.@v ov0vÁv$àv(w.w/Dw-twâw7fx!žx Àx ÎxÛxâx(y *yKyay$y*¦yÑyîy(z+z(Azbjz Íz'Úz{{-9{ g{t{Œ{P¥{ö{ |x!|š}ž}0³} ä}ñ}~~ (~3~K~#`~%„~ª~Â~Ë~Aå~M'1u@§;è$€3€,D€4q€Z¦€,.BA„ž·É&åÛ ‚è‚1ú‚E,ƒ'rƒ:šƒ&Õƒ4üƒ%1„ W„b„-„­„4Ì„&…'(…P…-g…:•…Ð… Ù…æ…ï…†(†:†X†#i††5–†̆4â†-‡iE‡¯‡ṗ7=ˆOuˆ'ňíˆ>‰rC‰¶‰½‰Ò‰*ë‰!Š48Š*mŠ-˜Š;ÆŠ+‹.‹.L‹M{‹4É‹þ‹Œ78ŒIpŒ#ºŒ!ÞŒ.+/P[¬[¼fŽŽ1“Ž*ÅŽðŽ#&9W$w.œ-Ë+ù %3l:§(¶ ß6é& ‘G‘ V‘c‘ }‘‹‘Gš‘â‘&ñ‘ ’&’ 7’D’$^’ƒ’’!¹’Û’.û’ *“2K“~“'œ“Ä“.ä“"”-6” d”…”›”°”+Ì”ø”íù•+ç–—//—d_—KÄ—˜%˜6˜I˜`˜i˜x˜(’˜»˜Û˜0û˜,™+J™#v™š™©™¸™Ï™ì™0š(2š[štš‰š*’š%½š ãš0›&5› \›}›2™›Ì› Õ›(ß›Cœ>Lœ‹œ”œ¨œ½œÖœçœ.ýœ,BZSÚH.ž'wžŽŸžr.Ÿ%¡ŸMÇŸ . G =g L¥ Nò !A¡c¡'}¡¥¡ Á¡!ΡLð¡=¢E¢d¢3|¢+°¢Ü¢!ò¢&£;£N£_£p£u£‹£¥£ »£-Ü£= ¤&H¤6o¤.¦¤>Õ¤&¥$;¥4`¥•¥!±¥Ó¥8ñ¥*¦9¦P¦"g¦ЦŸ¦°¦Ŧ6Ȧ ÿ¦ §$(§*M§x§7”§1̧Qþ§5P¨ †¨‘¨#¤¨Ȩܨ.î¨/©.M©/|©¬©+µ©#ᩪª+ª+:ªCfª8ªª5ãª"« <«]«l«‰«4§«Ü«#ï«!¬d5¬š¬¸¬$Ö¬û¬­)­?­^­$s­"˜­»­%Ø­&þ­c%®‰®š®²®»®1Ò® ¯¯1¯Q¯g¯˜¯[°Av° ¸°–Ù°vp±ç±U²\²'k²“²±² ȲӲ첳}³$˜³½³̳è³ù³ ´ .´O´m´!‡´ ©´¶´É´â´ä´æ´è´û´µ"µ;3µoµ,‹µ¸µ!×µùµ- ¶/:¶ j¶u¶•¶©¶ö"Ù¶$ü¶!·.=·&l·“·0¯·%à·!¸(¸-B¸*p¸›¸ µ¸fÀ¸f'¹"޹±¹+ʹö¹º/ºKº#`º'„º¬º ƺÔºðºE»M»#l»5»4Æ»—û»|“¼&½&7½^½x½¿–½OV¾5¦¾Jܾ'¿9¿@¿O¿g¿¿“¿©¿>¾¿,ý¿I*ÀtÀÀz˜ÀÁ($Á"MÁpÁ …Á ‘Á²ÁÃÁØÁ-ôÁ"Â9ÂXÂkÂÂ+ˆÂ&´ÂÛÂ4ôÂM)Ã<wÛ´ÃrPÄqÃÄM5Å,ƒÅ¬°Å]Æ*îÆkÇ…Ç žÇ9©Ç#ãÇÈÈ /ÈÐÈ4êȹÉ2ÙɃ ÊʣʿÊ!ÝÊÿÊ Ë Ë-Ë'LË;tË)°ËÚË òË5Ì06ÌgÌ'oÌ—ÌžÌ§Ì «ÌÌÌéÌ$Í.+Í$ZÍÍD›ÍTàÍc5Κ™Î4Ï IÏVÏ kÏŒÏ Ï'¨ÏÐÏ&ãÏ ÐZ!Ð|ÐHƒÐ*ÌÐ*÷Ð,"Ñ2OÑ#‚Ñ6¦Ñ,ÝÑ/ Ò†:Ò%ÁÒhçÒ'PÓxÓ8‹Ó'ÄÓXìÓEÔNÔ fÔqÔtÔÔ ©Ô"¶Ô2ÙÔ1 Õ$>ÕcÕ iÕwÕA~ÕOÀÕñÖm×2p×£×0#Ø9TØŽØ«ØJ¼Ø6Ù)>Ù<hÙ=¥Ù3ãÙÚÚ-ÚGÚPÚeÚ’…Ú Û#Û5Û =Û GÛ TÛaÛrÛ …Û’Û\¦ÛÜ Ü$Ü@Ü^ÜtÜ ƒÜÓ9w€gˆ(âdšÕbÕù)qa}¸¦ƒ4ÆèŸÊ]nÛ‡0¿É•Ý ÿô»Ýh(jÊÑiM 9:év=˜]r6_9ãÓ È²é mÅN6£³sQ4–&/í©ìPK"T·½0mþ.F2ø7 ¨ªLW?xÂ*Úë)otZ1upG`Ðq+%IDçüŒ<NàuQG È<¡¼á¡CVJ.¦pM87ÍRÄõgÇ2*Ò«5¶4žKWk/pw\hˆ–1n’1Ñ3 ïˆR‘ãXluè`ç’ñ,Î#Ú™aö²×©v<2~¾¬ìeF‰ð›„äRÅbÀ r‰¬ |Øk%£š|l÷Ü|-jb‚Àšñáà{&ü×Sx§UUŽ+îJŸhI7LP%ß¹H…zß î[«—†"õ: ^†委˓6±“H3*fnxŽÙ‹å;i8”ƒV„#ºBóþg–´&T·Z -y$\DÇ‘Eµ•,‡K›tðæZµËÏ€Äo¿{XH¸Pyc‚FYiÞ=)€Ù¨¾ ‹ùúŽ—r_qEÉs™…¤ Ný;¯»°oŒO ÿÏv5z´`ŠÍA/úD?äcf}‡I:Æ¢‚‹yý¯ª>OÞ@ó®mÔ8>5®ÖSƒ°Y­¢W0˜…Beíö±ºÃ?„‰ >\G˜™Ôec$f^ ¥'Ø@¼¶ÖSAŒ.VêÒM}ûEaò!ë“ûŠtœ-[@"†'jB'L]!ô=OY^d(,~ {‘A • CÛ¥QÌ!~øJdŠ+ÐÁlæžUÜ;zsÎò¤÷³êT$âÌ#w¹3k[ï_Á’—ÂX­œ½C”à (Opens in new window)%1$s %2$s Views%1$s – %2$s%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%s (Jetpack)%s (Required)%s ago%s is required« Previous← Older Comments(Shows %s posts on each load)(no title)(required)404 error pageLearn more about these options.% Replies1 Reply%d bloggers like this:A simple widget that displays social media icons.ActivateActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd One ItemAdd These New Menu ItemsAdd a new fieldAdd a new serviceAdd another optionAdd logoAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Address:AlbumAllAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAlphabeticalAlternate text:An error occurred. Please try again later.ArtistAttachment PageAutomatticAvailable ServicesBack to Top ↑BlackBlog ArchivesBlog URL:Blog follow email textBlueButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.CSSCSS RevisionsCSS Stylesheet EditorCameraCancelCarouselCategoryCenterChange logoCheatin’ uh?Choose ImagesChoose from the most used tagsChoose logoCirclesClick hereClick to Press This!Click to email this to a friendClick to printClick to share on PinterestClick to share on RedditCloseCommentComment Likes areComment cache problem?Comment follow email textComment navigationCommentsComments on this post are closed.Complex PhrasesConfigureConnectConnect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedContact FormContact Form URL:Contact InfoContinue reading →Convert to PostCreate Share ButtonCrop ImageCurrently ReadingCustomCustom CSS StylesheetCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomize Testimonials ArchiveDOWNDarkDateDeactivateDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDescriptionDisable Post By EmailDisconnectDisplay Header TextDisplay WordPress PostsDisplay all your gallery pictures in a cool mosaic.Display as:Display images in full-size carousel slideshow.Display your books from GoodreadsDon't show the Reblog button on postsDouble NegativesDownloadDrag and drop available services here.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail me wheneverEmail notificationsEmail settingsEmpty SpamEnable Post By EmailEnable Testimonials for this site.Enable carouselEnabled ServicesEnter the customer's name hereEnter your email addressError loading profileError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Explain...Facebook Page URLFacebook username:FeaturedFeatured ImagesField typeFirst optionFocal LengthFollow BlogFollow CommentsFollower SettingsFor more information:Format:FromFront Page, Archive Pages, and Search ResultsGalleryGitHub username:GoodreadsGravatar HovercardsGravatar ProfileGreenHeightHeight (px):Height:HideHide related content after postsHomeHours & InfoHours:IP Address:IconIcon + textIcon URLIcon onlyIgnore allIgnore alwaysIgnored PhrasesImage Alignment:Image Color:Image Gallery CarouselImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Images:InactiveInsert VideoInstagram username:Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid idInvalid requestInvalid usernameJetpack contains the most recent version of the old “%1$s” plugin.Jetpack requires WordPress version %s or later.Jump to:Label for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLike this:LikesLikes NotificationsLikes and SharesLink To:Link to edit an HTML form field in contact form buildereditLinkedInLinkedIn username:Live PreviewLoading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.LogoM j, Y @ G:iMain SidebarMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMediaMedia Width:MediumMenu ItemsMenu Items re-ordered.Menu SectionMenu SectionsMenu item draft updated. Preview itemMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item scheduled for: %1$s. Preview itemMenu item submitted. Preview itemMenu item updated.Menu item updated. View itemMessageMessagesMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile AppsMobile ThemeMobile-compatible:Monthly archivesMoreMore informationMore information on using Publicize.NameNew Menu ItemNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNewer Comments →NewestNext »Next » NoNo FooterNo HeaderNo LabelsNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Projects foundNo Projects found in TrashNo Testimonials foundNo Testimonials found in TrashNo feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No themes found.No writing errors were found.NoneNot ConnectedNot connectedNothing FoundNotificationsNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:OKOfficial buttonsOgg File URLOlder %sOlder postsOn for all commentsOn for all postsOpen link in a new window/tabOpens in new windowOptionsOrangeOrderPage %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:PathPermalink to %sPersonal LinksPhone:Pingback:PinkPinterest username:Please provide a valid email address.Please provide an email address.Please provide your name.Plugin activated.Plugin deactivated.PluginsPopularPopular LabelsPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost type:Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPress ThisPreviewPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyPrivacy PolicyProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProudly powered by %sPublicizePublicize:PublishPublishedPurplePut your mouse over your Gravatar to check out your profile.Random Order:RatingRecent PostsRedRelatedRelated PostsRelated postsRemove ServiceRemove logoRepeated WordReplacementReplyRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreResults:RightSaveSave & Buy UpgradeSave ChangesSave StylesheetSave this fieldSaved successfullyScheduledScroll InfinitelyScroll back to topSearchSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu ItemsSearch Menu SectionsSearch PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch resultsSend EmailSend to Email AddressSeparate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.Set as logoSettingsSettings have been savedShare this:SharedShared PostSharingSharing ButtonsSharing SettingsSharing labelShelf:ShortcodeShowShow Account LinksShow Excerpts:Show FacesShow Featured Image:Show Personal LinksShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow buttons onShow likes.Show mapShow moreShow photo metadata (Exif) in carousel, when available.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow:Shown between widget visibility conditions.orSilverSimilar postSite IconSite LogoSite NameSite StatsSite Title, Tagline, and LogoSocial Media IconsSomeone likes one of my postsSort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarStatic page:StatsStyle:Stylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe to %sSupportTag nameTagsTake WordPress with you.Terms of ServiceTestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial pages display at most %1$s testimonialsTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTextText & Image LinksText LinkText onlyTheme: %1$s.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected.This post is password protected. Enter the password to view any comments.ThumbnailThumbnail GridTiled GalleriesTimeTime:TitleTitle:To infinity and beyondTop PostsTop Posts & PagesTop SearchesTransparent BackgroundTrashTurned on per postTweets by @%sTwitterTwitter username:TypeTypesURLUncategorizedUnpublishedUntitled PostUpdate Menu SectionUpdate Project TagUpdate Project TypeUploading...Use Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUse these settings to display different types of content on your site.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVaultPressVerified ServicesVideo on %sVideo post by %s.Video post.View %1$s’s profile on %2$sView AllView Full Profile →View Full SiteView Menu ItemView Menu SectionView Mobile SiteView ProjectView Project TagView Project TypeView TestimonialView full size %1$s×%2$sView on InstagramView people's profiles when you mouse over their GravatarsVimeo username:VisibilityVisit the post for more.WP.me ShortlinksWe cannot display posts for this blog.WebsiteWhat's a Gravatar?WhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com UsernameWrite a Comment...Y/m/dY/m/d g:i:s AYesYou are not allowed to make this change.You are not allowed to manage this item.You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You do not have sufficient permissions to access this page.You have successfully disconnected Jetpack.You must be logged in to post a comment.YouTube channel ID:Your Custom Content TypesYour Email AddressYour NameYour comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour theme supports Testimonialsa post or page is updatedandcancelclick heredayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mein {category/tag name}In "%s"locales%1$s/%2$smonthmy list of books to readTo ReadnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:search everythingsearch termsstatistics, tracking, analytics, views, trafficshare toLinkedInthe past daythe past monththe past weekthe past yearweek{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-08-31 09:59:56+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev (ВідкриваєтьÑÑ Ñƒ новому вікні)%1$s %2$s ПереглÑдів%1$s – %2$s%1$s Бокова панель%1$s %2$s%1$s: %2$s%1$s о %2$s%1$s на %2$s%s (Jetpack)%s (Обов’Ñзково)%s тому%s обов’Ñзково« Попередні← Старіші коментарі(Показує Ñтільки запиÑів при кожному завантаженні: %s)(без назви)(обов`Ñзково)Сторінка помилки 404ДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про це.Відповідей: %1 Відповідь%d блогерам подобаєтьÑÑ Ñ†Ðµ:ПроÑтий віджет, Ñкий відображає іконки Ñоціальних медіа.ÐктивуватиÐктивнийДодатиДодати форму зворотнього зв’ÑзкуДодати багато пунктівДодати пункт менюДодатиДодати новий розділ менюДодати новий проектДодати нову позначку проектуДодати новий тип проектуДодати нову рекомендаціюДодати один пунктДодати ці нові пункти менюДодати нове полеДодати новий ÑервіÑДодати інший параметрДодати логоДодати або видалити міткиДодати або видалити теґиДодати кнопки Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð´Ð¾ Ñвого блогу та дозволити Ñвоїм відвідувачам ділитиÑÑ Ð·Ð°Ð¿Ð¸Ñами зі Ñвоїми друзÑми.Додати цю форму до мого запиÑуДодати до розділу:ÐдреÑа:ÐльбомВÑеВÑÑ– розділи менюВÑÑ– позначки проектівВÑÑ– типи проектівВÑÑ– проектиВÑÑ– рекомендаціїВÑÑ– Ñторінки автораВÑÑ– Ñторінки категоріїВÑÑ– архіви датиВÑÑ– запиÑиВÑÑ– Ñторінки позначкиПо алфавітуÐльтернативний текÑÑ‚:СталаÑÑ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Будь лаÑка, Ñпробуйте ще раз пізніше.ÐртиÑтПрикріплена ÑторінкаÐвтоматичноДоÑтупні ÑервіÑиПовернутиÑÑ Ð´Ð¾ верху ↑ЧорнийÐрхіви блогуÐдреÑа блогу:ТекÑÑ‚ e-mail Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ підпиÑку на блогБлакитнийСтиль кнопкиЗа допомогою форми зворотнього зв’Ñзку ваші читачі будуть мати можливіÑть відправити вам відгук. Ð’ÑÑ– відгуки автоматично перевірÑютьÑÑ Ð½Ð° наÑвніÑть Ñпаму, перевірені відгуки будуть надіÑлані вам по e-mail.CSSРедакції CSSРедактор таблиць Ñтилів CSSКамераСкаÑуватиКаруÑельКатегоріÑЦентрЗмінити логоМухлюєш, а?!Вибрати зображеннÑÐайпопулÑрніші теґиОберіть логоКолаÐатиÑнути тутÐатиÑніть, щоб ÑкориÑтатиÑÑ "Press This"!ÐатиÑніть, щоб надіÑлати це другові по e-mailÐатиÑніть, щоб надрукуватиÐатиÑніть, щоби поділитиÑÑ Ð½Ð° PinterestÐатиÑніть, щоб поділитиÑÑ Ð½Ð° RedditÐ—Ð°ÐºÑ€Ð¸Ñ‚Ð¸ÐšÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð’Ð¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ Ñ†ÐµÐŸÑ€Ð¾Ð±Ð»ÐµÐ¼Ð° із кешом коментарÑ?ТекÑÑ‚ e-mail Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ підпиÑку на коментаріÐÐ°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ Ð¿Ð¾ коментарÑÑ…ÐšÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ–ÐšÐ¾Ð¼ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ запиÑу вимкнено.Складні фразиÐалаштуваннÑЗ’єднатиПриєднатиÑÑ Ð´Ð¾Ð—â€™Ñ”Ð´Ð½Ð°Ñ‚Ð¸ÑÑ Ð· WordPress.comПід’єднайте Ñвій блог до популÑрних Ñайтів Ñоціальних мереж Ñ– автоматично ділітьÑÑ Ð½Ð¾Ð²Ð¸Ð¼Ð¸ запиÑами зі Ñвоїми друзÑми.З’єднаноФорма зворотнього зв’ÑзкуПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð¸ зворотнього зв’Ñзку:Контактна інформаціÑЧитати далі →Перетворити на запиÑСтворити кнопку "ПоділитиÑÑ"Обрізати зображеннÑЧитаюКориÑтувацькийКориÑтувацька Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ CSSE-mail кориÑтувача КориÑтувацьке повідомленнÑ:ВлаÑне поле видаленоВлаÑне поле оновлено.Ім'Ñ Ð¿Ð¾ÐºÑƒÐ¿Ñ†ÑКлієнтÑькі рекомендаціїÐалаштувати архів рекомендаційВнизТемнийДатаДеактивуватиЗа замовчуваннÑмÐове полеПерший параметрВидалитиВидалити оÑтаточноОпиÑВимкнути Ð¾Ð¿Ñ€Ð¸Ð»ÑŽÐ´Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾ e-mailРоз’єднатиВідображати текÑÑ‚ заголовкуВідображати запиÑи WordPressВідображати вÑÑ– ваші Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ— гарною мозаїкою.Відображати Ñк:Відображати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ повнорозмірному Ñлайдшоу каруÑелі.Відображати Ñвої книги з GoodreadsÐе показувати кнопку "ПоділитиÑÑ" в запиÑахподвійні запереченнÑЗавантажитиПеретÑгуйте доÑтупні ÑервіÑи тут.ПеретÑгуйте ÑервіÑи, Ñкі ви б хотіли увімкнути, у розділ нижче.E-mailРедагуватиРедагувати CSSРедагувати розділ менюРедагувати проектРедагувати позначку проектуРедагувати тип проектуРедагувати рекомендаціюРедагувати Ñвій обліковий запиÑРедагувати це нове полеЕлектрона поштаÐдреÑа електронної поштиÐадÑилати мені e-mail Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑŒ-ÐºÐ¾Ð»Ð¸ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ реєÑтраціюÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ e-mailОчиÑтити ÑпамУвімкнути Ð¾Ð¿Ñ€Ð¸Ð»ÑŽÐ´Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾ e-mailУвімкнути рекомендації Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñайту.Увімкнути каруÑельУвімкнені ÑервіÑиВведіть Ñ–Ð¼â€™Ñ Ð¿Ð¾ÐºÑƒÐ¿Ñ†Ñ Ñ‚ÑƒÑ‚Ð’Ð²ÐµÐ´Ñ–Ñ‚ÑŒ Ñвою e-mail адреÑуПомилка при завантаженні облікового запиÑуПомилка!Помилка: введіть правильну адреÑу E-mail, будь-лаÑка.Помилка: заповніть необхідні Ð¿Ð¾Ð»Ñ (ім`Ñ, E-mail) будь-лаÑка.ПоÑÑніть...ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° Ñторінку FacebookÐ†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Facebook:Пов`ÑзанеГоловні зображеннÑТип файлу:Перший параметрФокуÑна відÑтаньПідпиÑатиÑÑ Ð½Ð° блогПідпиÑатиÑÑ Ð½Ð° коментаріÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ð¿Ð¸ÑÐ½Ð¸ÐºÐ°Ð”Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñ— інформації:Формат:ВідГоловна Ñторінка, архівні Ñторінки, та пошукові результатиГалереÑÐ†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача GitHub:GoodreadsВізитка при наведенні на GravatarОбліковий Ð·Ð°Ð¿Ð¸Ñ GravatarЗеленийВиÑотаВиÑота (пікÑ.):ВиÑота:СховатиХовати пов’Ñзаний вміÑÑ‚ піÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑівДомівкаГодини та інформаціÑГодини:IP адреÑа:ІконкаІконка + текÑтПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° іконкуТільки іконкаІгнорувати вÑеІгнорувати завждиІгноровані Ñ„Ñ€Ð°Ð·Ð¸Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ:Колір зображеннÑ:КаруÑель галереї зображеньСітка зображеньПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½ÑСпиÑок зображеньÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ:Розмір зображеннÑ:ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° зображеннÑ:Ðазва зображеннÑ:ЗображеннÑ:БездіÑльнеВÑтавити Ð²Ñ–Ð´ÐµÐ¾Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Instagram:Ð’Ñтупний текÑÑ‚ надÑилаєтьÑÑ ÐºÐ¾Ð»Ð¸ хтоÑÑŒ підпиÑуєтьÑÑ Ð½Ð° ваш Ð·Ð°Ð¿Ð¸Ñ Ð°Ð±Ð¾ блог. (Сайт Ñ– деталі Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ додані Ð´Ð»Ñ Ð²Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾.) Ð’Ñтупний текÑÑ‚ надÑилаєтьÑÑ ÐºÐ¾Ð»Ð¸ хтоÑÑŒ підпиÑуєтьÑÑ Ð½Ð° ваш блог. (Сайт Ñ– деталі Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ додані Ð´Ð»Ñ Ð²Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾.)Ðевірний ідентифікаторÐевірний запитÐевірне Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸ÑтувачаJetpack міÑтить оÑтанні верÑÑ–Ñ— Ñтарих “%1$s” плагінів.Jetpack підтримує WordPress верÑÑ–Ñ— %s або пізнішу.Перейти до:ПараметрПараметрипереміÑтитиМоваВеликийОÑтанні зміниПараметри розміщеннÑ:ДізнатиÑÑŒ більшеДізнатиÑÑŒ більшеДізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про Markdown.Ðапишіть відгукÐапиÑати відповідь до %sЗалишити відповідьЛіворучСвітлийПодобаєтьÑÑПодобаєтьÑÑ Ñ†Ðµ:ВподобаннÑÐ¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ вподобаннÑÐ’Ð¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð½Ñ Ñ‚Ð° діленнÑПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð°:редагуватиLinkedInÐ†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача LinkedIn:Динамічний переглÑÐ´Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ…Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ–Ð²â€¦Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾â€¦Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ…Ð—Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñâ€¦Ð Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐµÐ¾ файлу ".ogg".Логоd.m.Y H:iГоловна бічна колонкаПозначити це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñк ÐЕ ÑпамПозначити це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñк ÑпамMarkdownВміÑÑ‚ MarkdownМедіафайлиШирина медіа:СереднійПункти менюПункти меню впорÑдкованіРозділ менюРозділи менюЧернетку пункту меню оновлено. Попередній переглÑдПункт меню оприлюднено. ПереглÑнутиПункт меню відновлено до редакції від %sПункт меню збережено.Пункт меню відкладено до: %1$s. Попередній переглÑдПункт меню відправлено. Попередній переглÑдПункт меню оновлено.Пункт меню оновлено. ПереглÑнутиПовідомленнÑПовідомленнÑХибні відкладеніВідÑутній ідентифікатор додатку.ВідÑутній ідентифікатор цільового блогу.ВідÑутній ідентифікатор цільового запиÑу.Мобільні програмиМобільна темаСуміÑно з мобільними:МіÑÑчні архівиБільшеБільше інформаціїБільше інформації про викориÑÑ‚Ð°Ð½Ð½Ñ Publicize.Ім`ÑÐовий пункт менюÐовий проектÐова назва позначки проектуÐова назва типу проектуÐовий Ñ€ÑдокÐова рекомендаціÑÐовіші коментарі →ÐайновішеДалі »Ð”алі »ÐіБез підвалуБез заголовкуМіток немаєМіток не знайденоПунктів меню не знайденоПунктів меню в кошику не знайденоПроектів не знайденоÐе знайдено проектів у кошикуÐе знайдено рекомендаційÐе знайдено рекомендацій в кошикуВідгуків не знайденоЛого не вÑтановленоЖодного плаґіну не знайдено.Ðемає підказокÐе знайдено теґів.Тем не знайдено.Ðе знайдено помилок напиÑаннÑ.ЖодногоÐе з’єднаноÐе з’єднаноÐічого не знайденоСповіщеннÑПозначкаТакÑономіÑ, КількіÑть запиÑів Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ:ДобреОфіційні кнопкиПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° файл Ogg↠Старіші публікації %sСтаріші запиÑиУвімкнено Ð´Ð»Ñ Ð²ÑÑ–Ñ… коментарівУвімкнено Ð´Ð»Ñ Ð²ÑÑ–Ñ… запиÑівВідкривати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð² новому вікні/вкладціВідкриваєтьÑÑ Ñƒ новому вікніОпціїОранжевийПорÑдок розміщеннÑСторінка %sСторінки:БатьківÑький розділ менюБатьківÑький розділ меню:БатьківÑький тип проектуБатьківÑький тип проекту:ШлÑхПоÑтійне поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° %sОÑобиÑті поÑиланнÑТелефон:СповіщеннÑ:Ð Ð¾Ð¶ÐµÐ²Ð¸Ð¹Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Pinterest:Будь лаÑка, надайте вірну e-mail адреÑу.Будь лаÑка, надайте e-mail адреÑу.Будь лаÑка, введіть Ñвоє ім'Ñ.Плагін увімкнений.Плагін вимкнений.ПлаґіниÐайпопулÑрнішеПопулÑрні міткиПопулÑрні позначки проектівПортфоліоЕлементи портфоліоПроекти портфоліоСторінки портфоліо відображають не більше %1$s проектівДодати коментарЗапиÑи автора %s.ÐžÐ¿Ñ€Ð¸Ð»ÑŽÐ´Ð½ÐµÐ½Ð½Ñ Ð¿Ð¾ e-mailТип запиÑу:ОпублікованоÐадіÑлано %sОпубліковано в %sПублікаціїЗапиÑи та коментаріЗапиÑи та ÑторінкиÐатиÑніть на цеПопередній переглÑдПопередній переглÑд:ПереглÑд: зміни Ñлід зберегти, інакше Ñ—Ñ… буде втраченоВартіÑтьОÑновне менюДрукПриватніÑтьПолітика конфіденційноÑтіПроектПозначка проектуПозначки проектуТип проектуТипи проектівЧернетку елемента проекту оновлено. Попередній переглÑд проектуПроект оприлюднений. ПереглÑнути проектПроект відновлено до редакції від %sПроект збережено.Проект відкладено до: %1$s. Попередній переглÑд проектуПроект надіÑлано. Попередній переглÑд проектуПроект оновлено.Проект оновлено. ПереглÑнути елементПроектиПеревірÑти напиÑаннÑСайт працює на %sОприлюднитиPublicize:ОпублікуватиОпублікованоПурпуровийÐаведіть курÑор на Ñвій Gravatar, щоби переглÑнути Ñвій обліковий запиÑ.Випадковий порÑдок:РейтингÐедавні запиÑиЧервонийПов’ÑзаноПов’Ñзані запиÑиПов’Ñзані запиÑиВидалити ÑервіÑВидалити логоПовторюване ÑловоЗамінаВідповідьОбов’Ñзково? ВідновитиРезультати:ПраворучЗберегтиЗберегти та придбати розширеннÑЗберегти зміниЗберегти таблицю ÑтилівЗберегти це полеЗбережено уÑпішноВідклаÑтиПрокручувати безкінечноПрокрутити назад до верхуПошукПошук коментарівШукати вÑеШукати відгукПошук медіаШукати пункти менюШукати розділи менюШукати плаґіниШукати позначки проектівШукати типи проектівШукати проектиПошукові результати длÑ: %sШукати рекомендаціїРезультати пошукуÐадіÑлати e-mailÐадіÑлати за e-mail адреÑоюРозділÑйте теґи комамиÐазва ÑервіÑу%1$s: %2$sСервіÑи, перетÑгнені Ñюди, будуть відображатиÑÑ Ð¾ÐºÑ€ÐµÐ¼Ð¾.СервіÑи переміщені Ñюди будуть приховані за кнопкою shareÐ’Ñтановити Ñк логоÐалаштуваннÑÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð¾ÐŸÐ¾Ð´Ñ–Ð»Ð¸Ñ‚Ð¸ÑÑ Ñ†Ð¸Ð¼:Вже поділилиÑÑСпільний запиÑПоділитиÑьКнопки "ПоділитиÑÑ"ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ð»ÐµÐ½Ð½ÑМітка діленнÑПолицÑ:Скорочений кодВідобразитиПоказати поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ñ–ÐºÐ¾Ð²Ð¾Ð³Ð¾ запиÑуПоказати уривки:Показувати обличчаПоказати головне зображеннÑ:Показати оÑобиÑті поÑиланнÑПоказувати заголовок "Пов’Ñзано", щоби чіткіше відокремити цей розділ від запиÑівПоказувати параметр "ПідпиÑатиÑÑ Ð½Ð° блог" у формі коментуваннÑПоказувати кнопки наПоказати вподобаннÑ.Показати мапуПоказати більшеПоказувати метадані фото (Exif) у каруÑелі, коли доÑтупно.Показувати пов’Ñзаний вміÑÑ‚ піÑÐ»Ñ Ð·Ð°Ð¿Ð¸ÑівПоказати кнопки "ПоділитиÑÑ".Показувати кнопку "ПоділитиÑÑ" в запиÑахПоказати:абоСрібнийСхожий запиÑІконка ÑайтуЛого ÑайтуÐазва ÑайтуСтатиÑтикаÐазва Ñайту, ключова фраза та логоІконки Ñоціальних медіаКомуÑÑŒ подобаєтьÑÑ Ð¾Ð´Ð¸Ð½ із моїх запиÑÑ–Ð²Ð¡Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°:СпамСпам (%s)Спам (%s)Спам (%s)ПравопиÑÐŸÑ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ñ‚Ð° граматикаСтатична Ñторінка:СтатиÑтикаСтиль:Іконку збережено.ТематикаВідправитиВідправити »Ð’Ñ–Ð´Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ%sПідпиÑатиÑьПідпиÑатиÑÑ Ð½Ð° %sПідтримкаÐазва теґуТеґиВізьміть WordPress із Ñобою.Умови Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð¾ÑлугРекомендаціÑВміÑÑ‚ Ñторінки рекомендаційГоловне Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñторінки рекомендаційЗаголовок Ñторінки рекомендаційЧернетку рекомендації оновлено. Попередній переглÑд рекомендаціїСторінки рекомендацій відображають не більше %1$s рекомендаційРекомендацію оприлюднено. ПереглÑнути Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–ÑŽÐ ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–Ñ Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð° до редакції від %sРекомендацію збережено.Рекомендацію відкладено до: %1$s. Попередній переглÑд рекомендаціїРекомендацію відправлено. Попередній переглÑд Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–Ñ—Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð°.Ð ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–Ñ Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð°. ПереглÑнути рекомендаціюРекомендаціїТекÑтПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту та зображеннÑТекÑтове поÑиланнÑТільки текÑтТема: %1$s.Ці Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð½Ñють e-mail повідомленнÑ, Ñкі надÑилаютьÑÑ Ð· вашого блогу підпиÑникам.(обов’Ñзково)Це Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” Ñк Ñлід.Ð¦Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ Ð¼Ñ–Ñтить %2$s фото.Ð¦Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ Ð¼Ñ–Ñтить %2$s фото.Ð¦Ñ Ð³Ð°Ð»ÐµÑ€ÐµÑ Ð¼Ñ–Ñтить %2$s фото.Цей Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¾ паролем.Цей Ð·Ð°Ð¿Ð¸Ñ Ð·Ð°Ñ…Ð¸Ñ‰ÐµÐ½Ð¸Ð¹ паролем. Введіть пароль, щоб переглÑнути коментарі.МініатюраСітка мініатюрГалереї Ð¿Ð»Ð¸Ñ‚ÐºÐ¾ÑŽÐ¤Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°ÑуЧаÑ:ÐазваÐазва:До безкінечноÑті та даліÐайпопулÑрніші поÑтиÐайпопулÑрніші поÑти Ñ– ÑторінкиÐайпопулÑрніші пошукиПрозорий фонВ кошикУвімкнено Ð´Ð»Ñ Ð´ÐµÑких запиÑівЗапиÑи кориÑтувача Tweeter: @%sTwitterTwitter ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача:ТипТипиURLÐекатегоризованоÐÐµÐ¾Ð¿ÑƒÐ±Ð»Ñ–ÐºÐ¾Ð²Ð°Ð½ÐµÐ—Ð°Ð¿Ð¸Ñ Ð±ÐµÐ· назвиОновити розділ менюОновити позначку проектуОновити тип проектуЗавантаженнÑ…ВикориÑтовувати Markdown Ð´Ð»Ñ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñ–Ð².ВикориÑтовувати Markdown Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів та Ñторінок.ВикориÑтовувати великий розмір та ÑÑкраве розміщеннÑВикориÑтовуйте ці налаштуваннÑ, щоби відображати різні типи вміÑту на вашому Ñайті.-- Вибрати --Ð¥Ð¾Ð²Ð°Ñ‚Ð¸ÐŸÐ¾ÐºÐ°Ð·ÑƒÐ²Ð°Ñ‚Ð¸Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸ÑтувачаЗначеннÑVaultPressПідтверджені ÑервіÑиВідео на %sВідео Ð·Ð°Ð¿Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° %s.Відео запиÑ.ПереглÑнути обліковий Ð·Ð°Ð¿Ð¸Ñ ÐºÐ¾Ñ€Ð¸Ñтувача %1$s на %2$sÐ’ÑеПереглÑнути повний обліковий Ð·Ð°Ð¿Ð¸Ñ →ПереглÑнути цілий ÑайтПереглÑнути пункт менюПереглÑнути розділ менюПереглÑнути мобільний ÑайтПереглÑнути проектПереглÑнути позначку проектуПереглÑнути тип проектуПереглÑнути рекомендаціюПереглÑнути повний розмір %1$s×%2$sПереглÑнути на InstagramБачити профіль людей коли ваша мишка за їхнім Ð“Ñ€Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¾Ð¼Ð†Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача Vimeo:ВидиміÑтьВідвідайте Ð·Ð°Ð¿Ð¸Ñ Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ð³Ð¾.Короткі поÑÐ¸Ð»Ð°Ð½Ð½Ñ WP.meМи не можемо відобразити запиÑи Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ блогу.СайтЩо таке Gravatar?БілийєÐазва віджета:Ширина (пікÑ.):Ð¨Ð¸Ñ€Ð¸Ð½Ð°Ð’Ð¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð½Ñ WordPress.comWordPress.com, кнопка "ПоділитиÑÑ"Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача на WordPress.comÐапиÑати коментар...Y/m/dY/m/d g:i:s AТакУ Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” дозволу робити цю зміну.У Ð²Ð°Ñ Ð½ÐµÐ¼Ð°Ñ” дозволу керувати цим елементом.Ви можете зробити Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ñ–Ð»ÑŒÐºÐ¸ Ð´Ð»Ñ Ñебе, чи Ð´Ð»Ñ Ð²ÑÑ–Ñ… кориÑтувачів Ñвого блогу. Ðа Ñпільних з’єднаннÑÑ… вказано, що вони Ñпільні.У Ð’Ð°Ñ Ð½ÐµÐ´Ð¾Ñтатньо повноважень Ð´Ð»Ñ Ð´Ð¾Ñтупу до цієї Ñторінки.Ви уÑпішно від’єднали Jetpack.Ви маєте увійти, щоб оприлюднити коментар.Ідентифікатор каналу YouTube:Ваші кориÑтувацькі типи вміÑтуВаша e-mail адреÑаВаше ім'ÑЗ’ÑвивÑÑ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€ у черзі на узгодженнÑВаш коментар чекає одобреннÑ.Ваш коментар одобрено.Ваше нове поле збережено уÑпішноВаша тема підтримує Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ñ–Ñ—Ð·Ð°Ð¿Ð¸Ñ Ð°Ð±Ð¾ Ñторінку оновленоіСкаÑуватинатиÑніть тутденьредагуватиредагувати текÑтОтакої, виникла проблема при Ñтворенні вашої форми. Вам варто Ñпробувати ще раз.назадhttp://jetpack.meУ "%s"%1$s/%2$sміÑÑцьЧитатиКоментарПрочитано%s Ñкщо:шукати вÑеÑтатиÑтика, ÑтеженнÑ, аналітика, переглÑди, трафікLinkedInминулий деньминулий міÑÑцьминулий тижденьминулий ріктиждень%1$s \о %2$splugins/jetpack/languages/jetpack-fa_IR.mo0000755000312500031250000055130512651056012021172 0ustar eacbforgeacbforgÞ•t¼+E\Wptqt8ˆtÏÁtF‘u‡Øug`vÈv(Ûvwwy&w| wx-;x.ix;˜y Ôy áyîy7{æ;{ "| /|=|F|HM|–|¶|Í|&æ| }[&}J‚}JÍ}~3~M~\~!l~Ž~•~­~¾~Ô~‚ë~jn^Ù 8€ C€ M€3X€CŒ€*Ѐû€1 0<m~#¡‚1Å‚y÷‚ŒqƒyþƒPx„É„ Ø„1ù„+…=…F… W… d…n…u…y… Š…˜…  …®…Ã…Ó…ç…ü… ††.†D>†ƒ†C•†Ù†ì†õ†[‡d‡}‡‡­‡¿‡ ȇ2Ò‡ˆ ˆ ˆˆ#ˆ5ˆFˆ Xˆeˆvˆ‡ˆšˆ¬ˆÈ ܈ æˆôˆŒ‰(”‰½‰1݉Š ,Š9Š<IŠB†ŠZÉŠ$‹6<‹-s‹¡‹pª‹ ŒC(ŒlŒsŒ.„Œ³Œ¤ÃŒh%x ž(©ÒåøŽ/ŽBŽSSŽM§Ž õŽ !8=ÚQ,K Z²g‘ ‘,‘B‘I‘(`‘‰‘ ‘?‘(Ý‘’’’!’ (’M4’‚’‘’}¤’ "“0“ O“[“c““ Ž“™“#®“Ò“ò“””6”R”k”„””·”ДÖ” é”ö”,ü”")• L•\Y•?¶•ö•*–0–7–?–Q–h–‚–•–!ž–À– ЖÚ–í–õ–"— (—3—iL— ¶—À—TÝ— 2˜?˜ Q˜^˜5n˜B¤˜ç˜ø˜C™;L™ˆ™0œ™nÍ™ <šGšYš `škšš•šªšºšК æšôš ››3›F›U›Z› _›j› p›#{›Ÿ›G§›qï›aœqœxœ‹œ¨œ »œÇœ Ùœäœ÷œ " C+Y…¢·ËEã/)ž$Yž3~ž ²ž5Óž Ÿ(ŸD>Ÿ$ƒŸ/¨Ÿ!ØŸ6úŸx1 Sª 8þ W7¡@¡QСX"¢w{¢%ó¢£*£#3£CW£›£±£Ÿ¸£X¤]¤ f¤q¤€¤ ’¤Ÿ¤°¤¤Ô¤å¤÷¤ ý¤ ¥$¥?¥S¥1b¥ ”¥(Ÿ¥È¥"Ý¥¦[¦l¦}¦ §4§AR§”§³§Ó§cì§?P¨¨¢¨±¨˨ꨩ©©)8©Ib©*¬©5ש( ª6ª8?ªxª ‹ª–ªŸª ±ª¿ª Ѫߪ%òª«!«2«B«V«_« s«ú~« y¬ †¬ “¬Ÿ¬¯¬ĬàÖ¬·­ Í­Ú­ â­ï­-ô­ "®±-®*ß® ¯¯E.¯"t¯—¯ä¨¯° ”°Jž°é°ð°±±± "±/±7±ƒV± 򱍱 ì±5 ²!C²e² j²w²~²ë’²Þ~³]´ l´x´ }´‰´ ’´Mœ´6ê´[!µm}µQëµÖ=¶ · ·-·?·O·U· f·s· ‹· –· ¡·¬· ¼· È· Ó·à·ô·ü·¸+¸ @¸M¸¼a¸…¹{¤¹ ºK-º yº„º”ºt¥ºB»I]»§»¶»½»Å» Þ»!ê» ¼ !¼/¼N¼^¼uw¼Ní¼+<½/h½%˜½¾½>Ô½3¾/G¾cw¾¢Û¾q~¿üð¿2íÀ Á+Á@Á…IÁeÏÁ”5­Ê‡xÙÄxšÄ£ÅŠ·ÅBÆHÆ?NÆ=ŽÆGÌÆ\ÇfqÇXØÇ1È:È@È QÈ_È oÈ.zÈ ©È ´ÈÂÈ ÖÈäÈéÈÉÉ ÉÉÉÑ0ÉÊÊ%Ê%.Ê<TʑʣʬÊ.¿ÊîÊQ Ë _Ë{lËèËùË ÌÌ .Ì9ÌYÌ sÌ }̡̈Ì=¦Ì äÌ ñÌÇþÌJÆÍ"ÎÌ4ÎNÏPÏnÏOˆÏØÐ2çÐÑ Ñ +Ñ8Ñ?Ñ DÑNÑ ^Ñ kÑ/yÑ&©ÑÐÑáÑ-ôÑ"Ò(Ò 0Ò=ÒFÒOÒ_Ò vÒ ‚Ò$Ò0´ÒbåÒAHÓXŠÓkãÓ1OÔ.Ôl°Ô6ÕLTÕ+¡Õ\ÍÕ`*ÖK‹ÖM×ÖY%×?×b¿×_"ØS‚ØoÖØ/FÙMvÙgÄÙU,Ú.‚ÚL±Ú.þÚR-ÛW€ÛhØÛaAÜ3£ÜF×Ü Ý*ÝEÝZÝsÝ ŠÝ!«Ý!ÍÝïÝÞ+Þ@ÞRÞeÞzÞ“Þ§ÞÁÞØÞëÞßß/ßIß]ßzßß ®ßÏßéßàà3àPànà!„à¦à¼àÑàãàôàá(á>áPácá{á•áªá»áÀáLÑá â(?â hâ sâ}â‚â “ââ ´âÀâÕâëâóâ ã+ ã9ãOã Vã cãqã tãã㠨㠲ã¼ãÍãßã úãää<äNä=mä«ä ½äÉäÛäêäùä åå.å*Låwæ |æ Šæ4˜æ˜Íæ fç tç)‚ç ¬ç Íç3×çF è0Rè)ƒè3­èáè¯ùè©éÅéÈé Ù馿éê –ê ¢êZ­êëëŠ-똸ë^Qì-°ì,Þì! í/-íK]íF©íðí î+îIî]î>dî)£îÍîÕîÜî\âî?ïGïNïbïvï ‹ï™ïžï¹ïÉïØïßï ðïúï ÿï ðCð+aðCð2ÑðÅñQÊñ%ò+Bò nò$ò´ò%Îò7ôò,óKó>hóB§óêóôô/ôCôKôRôZô oôyô‰ô-œô Êô ×ô ãô¾ñô"°õÓõ ãõ/îõ ö )ö 6öCöIöZöjö yö„ö œö§ö¯ö¿öÑö3Úö ÷÷4÷:÷B÷ Q÷_÷ g÷ s÷ €÷ ÷L›÷0è÷$ø>ø`MøC®øòø+ù/ù8ù Jù%Wù@}ù¾ùÐùæùú ú "ú-ú 5ú*?újú7qú<©úNæú 5û ?ûMû$Tû yû†ûŠû‘û£ûI²ûüû üü #ü 1ü ?üKü Zü fütüŒü’ü¤üÄüâü6ý7ý ?ý`ýiýoý týýý  ýÁýÔý äýîý õýþþ%þ 5þBþWþiþxþŒþ¡þ±þÈþrÜþOÿ!^ÿ@€ÿÁÿ9Ýÿ% =H^+z¦ À(Í/ö;& bn–¯µÇ ×ã êöþ  +9 @J²[&7 FQfw ‹8—<Ð : Xd m"w š»Ññd ….‹'º âð ÷ 3.b ä î ø !/GM R\b iuz”±9Ï} 5‡ &½ ä -þ @, em Ó Ü Iá + 4  I  V c i y € ’ ¤ ¬  ³ Á  Ö à ò   5 K 'Ë ó û   $" &G n   ‹ ¤ Ä OÛ 3+8_(˜ÁhÔK=‰6ž Õâç ú  T!mË([*„¯8É¡(¤+Í)ù#>CJ‚sÍA;`:œ×<ó00a?OÁ©§».c!’,´á]ž_þ* HUB\§ŸSGY›rõ?h+¨)Ô(þ''&O6v/­1ݪ/º>êY)Ƀ\M ¡ª L! g!Iˆ!@Ò!5"#I"/m";",Ù"M# T#^# m#{# ‹#˜#ž#£#©#¹#¿#{Æ#\B$Ÿ$V/%¤†&J+' v'€'e–' ü' ((/(5(K( R(^( q((‡(˜(©( »(Ü(ü())") &)4)H)e)y)&Œ) ³)U¿) *#*3*G*Z*n*D* Ä* Ñ*Þ*eí* S+(`+‰+@¤+Íå+‘³,yE-:¿-Hú-HC.Œ.•.›.°.ÏÂ.’/§/ ¶/ Â/ Î/Ù/!ì/0 0"0;0J0\0m0 €00ž0"°0Ó0-ä01,1:>1%y1Ÿ1/¥1Õ1 å14ð1%2„>2öÃ2º3#Ë3&ï3&4:=4x5Py6ÈÊ6“7›7J¹7k8p8Ôƒ8NX:§:­: Á:JÌ: ; %;1;8;¸X;©<œ»<XX>±?É?å?ù?z@‹@£@¶@ ¼@Ê@Þ@î@hò@([A(„A7­A3åA B2:B%mB1“B%ÅB8ëBM$C@rC¶³CAjD6¬D€ãD;dEB E!ãE+F?1FMqF¿FîßF‹ÎG7ZHQ’HäHøHI%I CI dI_nI4ÎI]J6aJ$˜J½JÜJ%÷J!K/?K8oK'¨K ÐK]ñK;OL‹L!¥LÇLUáL7M;MSM ZMeMtMxM }Mw‡MÿMNN/NCN]N|N“N£NµN »NÜN ûN'OQ0O ‚OŒO>žO<ÝO P(P7PIPYPkP~PŽP¢P±PÁPÑP âPïPþP Q Q6+Q bQmQ‹Q&Qv·Qw.R1¦RçØR0ÀSMñS¥?TgåUrMVWÀV<W#UWyWW‡¢W©*XÔX íX²÷X ªYµYÄYÆÓYšZƸZ[ [ ž[ ª[c´[4\M\ h\!‰\,«\ºØ\n“]X^$[^&€^§^ Ã^<ä^!_/(_X_'k_#“_ˆ·_W@`O˜`è` þ` a5aJa*Ya„a]ŸaQýaObab™tbKdFZdµ¡d(Weç€f…hg$îg-hqAh³hÒhäh#i $i2i ;iHi$eiŠi i+½i éi- j.8j-gj%•j%»j'áj‡ k#‘k¬µk bl ƒl3¤lðØl/Émùm=nQn lnvn…ˆnooo0o%Go%mo“o°o%Îo.ôo*#p+Np/zp7ªpâp,ýp,*qÖWqe.rZ”rjïrCZsžs­s‹ÄslPt½t#€uc¤u>v Gv¸Rv w’%w ¸w*Åwðwùw,xEyBdy§yX¸y%z7z*Rz+}z!©zËz¢äz”‡{|9|!B| d|?…|Å|Ì|žã|;‚~¾~Ô~fä~K€.b€>‘€ ЀCÝ€S!u|¡Œ{.‚ª‚ º‚Ȃтォƒ ¬ƒ#̓Çñƒ"¹„QÜ„.…M…B_…¢…!´…-Ö…:†M?†*†M¸†Q‡OX‡I¨‡Iò‡H<ˆK…ˆ?ш‰ ‰;‰M‰<T‰7‘‰ɉ~á‰S`Š$´ŠIÙŠ #‹ .‹+;‹9g‹<¡‹Þ‹ø‹A ŒNŒhŒyŒ ™Œ¤ŒLÄŒ$!æF-Ž/=ޤmŽ "C[Jm¦¸_vŠ‘o‘-Œ‘Iº‘Û’à’#ö’ “'“38“#l““°“&Ç“-î“”).”X”Cp”´”$Ô”ù” • •%•&=•Ld•±•Á•וï• ––*,– W–x–‡– ¦–E³–Aù–;—2V—)‰—W³—? ˜/K˜{˜+š˜–ƘS]™>±™€ð™1qšN£šòšd ›Îq›C@œD„œ;ÉœXÅ^ˆ$ži­ž„ŸbœŸƒÿŸ§ƒ Í+¡Pù¡#J¢n¢)}¢r§¢@£[£Un£ Ĥ#Ѥõ¤$ ¥".¥Q¥"i¥Œ¥*«¥"Ö¥4ù¥.¦A¦T¦kh¦4Ô¦ §`)§ ЧZ«§=¨SD¨$˜¨¤½¨b© v©"—ªjºª«%«7Ñ«@ ¬0J¬È{¬|D­Á­Ù­2é­4®-Q®®‡®7£®DÛ®h ¯H‰¯RÒ¯%° 4°@°*I° t° ‚°0°À°%Þ°±$±KD±±™±­±?ñ²&²9²çK²3´K´%e´)‹´,µ´*â´‘ µ#Ÿ¶ö Ó¶ݶø¶Ký¶I·‚]·Mภ.¹+9¹be¹Dȹ$ ºÃ2º ö»¼e¼x¼/¼&±¼ؼ ß¼ê¼ ½G½ôW½L¾b¾Ks¾c¿¾=#¿a¿!j¿ Œ¿(˜¿òÁ¿ä´Á'™ÃÁà ÙÃäÃøÃÄÅ'ÄpíĬ^Å´ ÆÌÀÆ\Ç"êÈ É&.É+UÉɈÉÉ2°ÉãÉÊÊ2ÊMÊhÊ„Ê3›Ê ÏÊÝÊ'íÊiËË)—˪ÁËlÌæ‹ÍrΗ†Î Ï?Ï [ÏÑ|ÏŠNÐ…ÙÐ6_Ñ –Ñ ¡Ñ*­ÑØÑ9óÑ-Ò"MÒ0pÒ¡Ò¾ÒºÞÒs™Ó* ÔM8Ô9†Ô!ÀÔvâÔMYÕK§Õ¡óÕ(•Ö¶¾×ÿuØ,uÚ¢Ú/´Ú äÚýñÚ­ïÛܦÝ̧Þ;tßµ°à fáÎpâ?ãHãZãmã tã ‚ãã Ÿã¬ãµã#¾ãâã!ä#äi;ä¥ä½ä%×äýäå3åPåYåmå„å9¡åÕÛå@±çòç èQè nè'{è£è%´èaÚèL<饉é/ê¹Lê#ë3*ë(^ë‡ë ë.Àë)ïëì)ì;;ìwì`‹ì ììùìyíˆî2ïTLï…¡ð_'ñF‡ñlÎñ0;ônlô Ûô æôõ õ)õ8õPõlõ‚õO¡õFñõ(8ö+aöNöÜöòöûö÷(÷):÷-d÷$’÷ ·÷LØ÷7%ø¶]øYù»nùÝ*ú=û<Fûƒû7ü[Lü/¨üŸØüËxý™DþyÞþpXÿBÉÿª ~·‡6¡¾D`²¥©Xe(hˆ‘8vSˆÊ»Sˆg˜opŒ ¤²Â)â 4, -a  %¬ Ò  ï ü  ( 1 L  ` $k   µ Ô "î  * C c 0w ¨ º !Ë )í   6 R f z  Ž ¯ À ×  æ $ñ B Y y  •   ™º YT[® 4;S.c’%¦!Ìî !@7,x¥¹ÊÛâô6I_%u(›AÄ3#LW$¤6É^'_<‡$Ä$é$)3#]0-²gàHWid{Cà$=WXM° þ   *5GGJ/’ ÂÍ"è  '5Tâf!I!k¡—Á &Y!d€!Oå!o5"¥" C#M#AT#G–#4Þ# $¦$`Å$&% 8% E%™P% ê%ø% &(&C&_&s&|&—&·& Ñ&<Û& ' &'1'&C'Dj'/¯'†ß'„f( ë(ø)Lz*bÇ*A*+Yl+<Æ+\,‡`,8è,5!-W-§×-9.Q¹. /!'/I/]/d//u/¥/¹/'Ø/p0q00$ž0±Ã0u2“2«2_¾2393W3q3(ƒ3$¬31Ñ34 4 >4L4#`4'„4¬4tÁ465!N5p5w5€5”5 °5»5Ñ5ð56{#6DŸ69ä67†:7WÁ78A88z8"Œ8¯8VÇ8†9 ¥9/Æ97ö94.:c:y: ::X¯:;b;gt;²Ü;<¤<½<HÆ<=,= 5=B=V=u=%•=-»= é=ô=>2>L>"d>‡>8Ÿ>Ø>á>Có>@7?Fx?p¿?0@=?@ }@‰@ ’@@)¹@'ã@: A)FApAA¨A¸A(ÐA!ùA B)*O>iO<¨ODåO'*P9RPDŒP ÑPÝPeâPHQ^QnQQ­Q)ÄQvîQ;eR!¡SÃSØS8ïS!(T,JTwT ŒT—T²T »TÈTÞTåT+ôT  UF+WKrW¼¾Wa{XjÝX:HY‚ƒYaZ¶hZ[7[.F[u[~[ž[»[Õ[Þ[þ["\9)\ c\n\}\\©\»\!Ô\ö\>]Q]öo]Ef^¬^½^Ï^8á^G_db_#Ç_ë_-`6/`+f`†’`maZ‡a@âa&#bœJbuçb)]cY‡cácþc,d2dFdZd—jd'gœ*g5Çh;ýh9iQTi ¦iL³jCkDDk‰k‚©k˜,lçÅlD­m^òm\Qn ®nºnPÉn-oqHo^ºoBpD\q=¡r+ßrQ s)]sˆ‡sït+uV,uƒu•u€§ui(vo’wxדxUkyNÁy>z3OzTƒzRØzZ+{C†{IÊ{|r1}®¤} S~¡^~:€4;€8pC©–íe„‚fê‚PQƒJ¢ƒ\íƒVJ„k¡„ … ….<…0k…œ…»…Ë… Ô…!Þ… † †Ñ†«é†•‡V³ˆ ‹yŒŒŒ1«ŒÃÝŒ#¡Å×ò%Ž .Ž;Ž(XŽŽ ›Ž%¨Ž ÎŽ!ïŽA;S˜/¨Øè%C+&o#–3ºî«‘¯‘Α-í‘-’)I’0s’-¤’Ò’î’ “è+“”`4”E•”“Û”vo•æ–ä˜ç˜ ø˜ ™™ "™#-™'Q™|y™-öš$›B›U›l›}›,œ›É›ß›1ó›%œAœ#`œ„œŸœ³œÒœJíœ8 W1d$–k»B'ž jžnxžçžŸdŸI‚Ÿì̟׹ !‘¢>³¢Zò¢gM£Ñµ£}‡¥°§x¶§ /©.=©žl©ì ªøªó«Í®Ö®$ß®¯¯&¯?¯ V¯`¯0u¯ø¦°Ÿ±=´3]¶4‘¶ƶ'å¶à ·9Ñ· ¸,¸ 2¸@¸$`¸…¸¢Œ¸U/¹?…¹ZŹX º/yº]©º9»SA»9•»dÏ»£4¼„ؼQ]½x¯¾D(¿Ìm¿\:À€—ÀMÁNfÁrµÁ…(Â/®Â˜ÞÂÙwÄQQŦ£Å%JÆ)pÆšÆ4´ÆLéÆ 6ǼDÇmȤoÈaÉ9vÉ2°É(ãÉ@ Ê?MÊQÊXßÊK8ËT„ËÙËjwÌâÌUÿÌ;UÍ ‘͜͟ͲÍ!¹Í#ÛÍÿÍ Î΄'Î ¬Î¹ÎËÎ%áÎ+Ï 3Ï/?ÏoÏ ˆÏ’Ï™Ï¯Ï ÇÏÔÏ èÏóÏ! Ð^-ÐEŒÐ)ÒÐüÐ ÑÑ#Ñ4ÑFÑ OÑ]Ñ dÑ oÑ |Ñ‰Ñ ›Ñ©Ñ»ÑÍÑ ßÑêÑúÑ ÒÒSÒDqÒ¶Òè†qU˜©Å3Í|ÇÞh/–ÊN_'×'µúßÍØB±Õ‰PB ž*ç<º=”>‘æòñÓ÷7CðRj`2[ä·àõôœà†¢î­QKI¼Z³ùS<jn C|'Å^J[gW"„HHùÕ»K't¤ÜcÉvÙëº<üØC/$pÁUˆUqû°¿þÇì° H™Zì‘âA ¢°½€$Ýýëwö}Ï38I@r2L¡ &’ šekrTœð æèØ=e†GÀÔ¶K¿Ëƒ°ªº;“øIÙ+‹dÇ›J ·,LÍs6Í ×½?Ÿ ò¨Œ/y>›Ö¸Ÿò¤24l”C²uÐ).Þz˶Ïa äˆRï£yphP5éÏ­à9÷Ká$ª%8GßbNvIa³¦"…#§6“ÊNM‹ê&²`:Y<Iajãדk4ähê볋7j\èF•TÿK#Ýgt  BÂEƒßh½ Â`1íË焱¦~¨Ö%Ó œÕúx¯+ ‡‡¾SPãÙ…ý1øÅ{ý pfob¨±Õlí!¢L–\Ä-@WsÀÖä³}Ñm®„ ?Et­~*FØVd?6d¯ïPÎÔ ;S”bX;ŸàªŠ,ˆO^ôñçÂzÁ;D™«mv©åõ× `K4Ñ®’AÒ…Ù§‚´)$šnž{.ã9,Xo}̹ZÅJ:šŸ†`=’z4܃Y9#“Š›ÖRФ…/ÑâÛq€È»øi+‰l¨EC&eüEßZ__ÿE1¹ºQ•¡io˜Ë:nÒ^j¯n„}²ünTÁ¶ÌÓ= yÿ¶“[Á<ú´î‰Â¢ô쇲Ýi—$?Û-'»!Ü·Ô0ÒÄ£òÓÆé¦Lf3ßî -Þ×^‰15G¿’3{\X!wxçt#/¹:ÆÄú—Ú'0ÄmÌ6Û.BQá–ÐY;AO(÷€ørzjÎ|¿Æî™¶™Î¥¬®žµ*ó!u(»›f|‹ý:>°pA~5{Èö&fWTŽZGMFZñå\類»J][.Üö ² ù2àSô@‚i9$µ¹ … þ9޾çœ]¡ã(råñÍsn”#w ´L0dóH+ í.M©u]ò«®õ*g¸2O’W,z eý‡q‚êØð\å éæMg¥]-u· ·. D[~ðëÚ=ÿŽÀ‚],eô‡"V†¾£l8äŒ|§Y)Ð&(agQ— ´+DÒMHY7¬¼@%siXè¾8@mÝo> k^ÆF_˜1öÉURû0G Ïí5‚©(Uo vŠaA©È˜S«cpÌæ}=æT0¦x6¤ðÞÚ³ ì"?£µ›)Döÿ%¼´%5œkõÐÈ­ÀdOµû§õVã¹?®Œüw¬N)ž3D¬H/u¸ˆeáQFïâwïêšX*c!÷þ^_î¼\fWx"¡;, ªí4ûVüâN™ÎÉúÇŒO¥(Žåâ]mÉËND8VÙs±÷@%l¥8FŒÃi«7fQMpPL–O_ïq€ÇØcûótkA¼[À—!ù¿BmóW4­3 2¥ºó ÚëÁêÄ•-ÑÆ7d¯‘ˆè1bbÊBÛÎÊlÉ–š½Ã½ÔÔÓѢᧉyþcþïÏÜÂXrR~hV<Cs¤:#ñYøvrÈJ̱ìÀéqÖÛ¸7->•0EÊkù{UÐ9Ò¬`P5a +Ýx—)hŽ‘t6Þ¦£¸ÅJoЍG¾>IƒªÕ•Úg*yá„”‘RŸ"cb‹ƒ«&ST (Opens in new window) or Cancel and go back to the settings."Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on)."Site Icon" is the feature name.WordPress now has Site Icon built in!"wp jetpack module activate" is a command - do not translate%s is not active. You can activate it with "wp jetpack module activate %s""wp jetpack status full" is a command - do not translateView full status with 'wp jetpack status full'# of Tweets Shown:%1$d Food Menu Item%1$d Food Menu Items%1$s %2$s Views%1$s – %2$s%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = deactivation URL, %2$s = "Deactivate {list of Jetpack module/feature names}If your site is not publicly accessible, consider deactivating this feature.If your site is not publicly accessible, consider deactivating these features.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%l = list of Jetpack module/feature namesLike your site's RSS feeds, %l allows access to your posts and other content to third parties.Like your site's RSS feeds, %l allow access to your posts and other content to third parties.%s (Jetpack)%s (Required)%s Error%s ago%s could not be disconnected. Are you sure they're connected currently?%s has already been whitelisted%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s has been whitelisted.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is a usernameYou have successfully set %s as Jetpack’s primary user.%s is a websitePlease visit %s to configure your VaultPress subscription.%s is not a valid command.%s is not a valid module.%s is required%s option reset%s requires a valid email address%s: %s%sConnect more admins%s« Previous← Older Comments— Select —'get', 'delete', and 'update' are commands - do not translate.Above are your options. You may 'get', 'delete', and 'update' them.'list' and 'clear' are commands and should not be translatedYou can also 'list' or 'clear' the whitelist.'wp jetpack options' is a command - do not translate.Type 'wp jetpack options' for more info.(no title)(primary)(required)1: Twitter; 2: Facebook- Follow us on %1$s or %2$s1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s3999 Mission Boulevard, San Diego CA 92109404 error pageClick here to refresh this list.Learn more about these options.% Replies1 Reply

        Activate Site Management to manage multiple sites from our centralized dashboard at wordpress.com/sites. Learn more.

        Activate Now%d bloggers like this:%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.The Social Media Icons Widget lets you add icons for the most popular social networks to your sidebar or other widget area.The Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.You’re fueled up and ready to go, Jetpack is now active. A known issue.A problem with your XMLRPC file.A simple widget that displays social media icons.A theme conflict.ActivateActivate AkismetActivate nowActivatedActiveAddAdd Contact FormAdd Menu ItemAdd NewAdd New ComicAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd Site IconAdd a Site IconAdd a new fieldAdd a new post or page to any of your sites from a single interface.Add a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Add-on CSS (Recommended)Additional data: Address:Admin barAkismet can help to keep your blog safe from spam!AlbumAllAll ComicsAll DoneAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll modules activated!All modules deactivated!All postsAll tag pagesAll taxonomy pagesAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlphabeticalAlternate text:An active access token must be used to retrieve post counts.An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An incompatible plugin.An unknown error has occurred. Please try again later.An unknown error occurred during installationApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAutosave encountered an unexpected errorAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to General SettingsBack to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Before you completely disconnect Jetpack is there anything we can do to help?Bias LanguageBlackBlog ArchivesBlog URL:Blog follow email textBlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryBrowser ChromeButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I view my feedback within WordPress?CancelCancel replyCannot deal with cookie redirects, as headers are already sent.Cannot use global flag on non-multisitesCaption:CarouselCategoryCenterChange logoChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Check out other recommended features below, or go to the settings page to customize your Jetpack experience.Choose ImagesChoose from the most used tagsChoose logoCirclesCleared all whitelisted IPsClichésClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseClose modal windowColor SchemeComicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsCommentComment Likes areComment cache problem?Comment follow email textComment navigationCommentsComments on this post are closed.Complex PhrasesConfigureConfirm DisconnectConnectConnect JetpackConnect and share your posts on %sConnect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnecting with Single Sign On enables you to log in via your WordPress.com account.Contact FormContact Form URL:Contact InfoContinue →Continue reading →Control which pages your widgets appear on with Widget Visibility.Convert to ComicConvert to PostCould not obtain a VideoPress upload token. Please try again later.Count the page views of registered users who are logged in.Create Share ButtonCreate additional admins to change primary user.Create elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCurrently ReadingCustomCustom CSSCustom CSS StylesheetCustom Content TypeCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDaily Archives: %sDaily archivesDarkDateDeactivateDebugDebug InfoDebug Jetpack for more information.DefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDeleted option: %sDescriptionDiacritical MarksDifficultyDisable CSS and JSDisable Post By EmailDisconnect JetpackDisconnect site from WordPress.comDisconnecting JetpackDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display higher quality video by default.Display share menu and allow viewers to embed or download this videoDisplay tag content in all listings.Display upcoming events from an iCalendar feed.Display your books from GoodreadsDisplay your location, hours, and contact information.Displayed below your posts will be how many people have liked your posts and the Gravatars of those who have liked them.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do not allow other users to access my VideoPress libraryDomain `%1$s` just failed is_usable_domain check as it is a subdomain of WordPress.com.Domain `%1$s` just failed is_usable_domain check as it is empty.Domain `%1$s` just failed is_usable_domain check as it is in the forbidden array.Domain `%1$s` just failed is_usable_domain check as it uses an invalid top level domain.Domain `%1$s` just failed is_usable_domain check as its IP `%2$s` is either invalid, or in a reserved or private range.Don't show the Reblog button on postsDouble NegativesDownloadDownload: %s
        Drag and drop the services you'd like to enable into the box below.Drop images to uploadE-mailEasily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit Menu ItemEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit TestimonialEdit Your ProfileEmailEmail AddressEmail Address:Email check failed, please try againEmail notificationsEmail settingsEmails will be sent to %s (Edit)Empty SpamEnable Portfolio Projects for this site.Enable Post By EmailEnable Testimonials for this site.Enable carouselEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnabling Manage allows you to update your self-hosted WordPress sites along with any WordPress.com sites you have, all in one simple dashboard.English OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Enter your meta key "content" value to verify your blog with %sError Details: %sError code: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example of a phone number1-202-555-1212Example:Example: The user is looking at a page, not a post.PageExpecting an arrayExplain...FacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFacebook username:Failed permissions, please try again.FeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Field typeFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.First optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFor example, if you wanted the Archives widget to only appear on category archives and error pages, choose "Show" from the first dropdown and then add two rules: "Page is 404 Error Page" and "Category is All Category Pages."For more information:Form builderFormat:Free formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!Full management mode is off for this site.GalleryGallery Carousel ScreenshotGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGitHub username:Give your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGoodreadsGoodreads numeric user ID (instructions):GoogleGravatar HovercardsGravatar ProfileGreenHeightHeight (px):Height:Here are your whitelisted IPs:Hi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHidden VerbsHideHide related content after postsHide tag from displaying in post meta and tag clouds.Hide the stats smiley face image.HomeHours & InfoHours:How does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.I Need SupportIP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.If you get a 404 message, contact your web host. Their security may block XMLRPC.If your problem isn't known or caused by a plugin, try activating Twenty Twelve (the default WordPress theme). If this solves the problem, something in your theme is probably broken – let the theme's author know.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedImages:InactiveIndexing postsIndexing request queued and waiting…Insert VideoInstagram username:Instructions on how to whitelist IP ranges - low_range/high_range should be translated.You can save a range of IPs {low_range}-{high_range}. No spaces allowed. (example: 1.1.1.1-2.2.2.2)Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid JSONInvalid User ID, please verify and re-enter your Goodreads numeric user ID.Invalid idInvalid requestInvalid usernameIt looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:Items to show:JargonJetpackJetpack Debugging CenterJetpack FAQJetpack Network Settings Updated!Jetpack Primary UserJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is installed!Jetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack's Carousel has been disabled, because another plugin or your theme is overriding the [gallery] shortcode.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJump StartJump Start your siteJump to:Jumpstart DescriptionAdds a button to your post and page editors, allowing you to build simple forms to help visitors stay in touch.Jumpstart DescriptionBrings your photos and images to life as full-size, easily navigable galleries.Jumpstart DescriptionGive visitors two easy subscription options — while commenting, or via a separate email subscription widget you can display.Jumpstart DescriptionHelps you remotely manage plugins, turn on automated updates, and more from wordpress.com.Jumpstart DescriptionKeep visitors engaged on your blog by highlighting relevant and new content at the bottom of each published post.Jumpstart DescriptionLet commenters link their profiles to their Gravatar accounts, making it easy for your visitors to learn more about your community.Jumpstart DescriptionLets you log in to all your Jetpack-enabled sites with one click using your WordPress.com account.Jumpstart DescriptionMirrors and serves your images from our free and fast image CDN, improving your site’s performance with no additional load on your servers.Jumpstart DescriptionTwitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLanguageLargeLarge Blog ImageLast ModifiedLayout Options:Learn MoreLearn about what being the Primary User means.Learn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes allow your readers to show their appreciation for your posts and other published content using their WordPress.com accounts. Your readers will then be able to review their liked posts from WordPress.com.Likes and SharesLink Color (hex):Link To:Link URL (when the image is clicked):Link to edit an HTML form field in contact form buildereditLink your accountLinkedInLinkedIn username:Links to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoad your XMLRPC file. It should say “XML-RPC server accepts POST requests only.†on a line by itself.Loading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Log in with WordPress.comLogged InLogged OutLogin method not allowedLogoLunch: 11am - 2pm Dinner: M-Th 5pm - 11pm, Fri-Sat:5pm - 1amM j, Y @ G:iMain SidebarMake sure to add your most frequently used IP addresses as they can change between your home, office or other locations. Removing an IP address from the list below will remove it from your whitelist.Manage all of your WordPress sites, self-hosted or not, from WordPress.comManage has been activated for you!Manage multiple sites from one dashboard at wordpress.com/sites. Enabling allows all existing, connected Administrators to modify your site from WordPress.com. Learn More.Manage your Post By Email address from your profile settings.Mark this message as NOT spamMark this message as spamMarkdown lets you compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text, without having to take their hands off the keyboard, and without learning a lot of complicated codes and shortcuts.Match by EmailMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu ManagementMenu SectionMenu SectionsMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item updated.Menu item updated. View itemMenusMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Mobile AppsMobile ThemeModal window. Press escape to close.Module DescriptionAdd a site icon to your site.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionAutomatically promote content.Module DescriptionBackups and security scans.Module DescriptionCheck your spelling, style, and grammar with the After the Deadline proofreading service.Module DescriptionCollect traffic stats and insights.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay similar content.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionPrevent brute force attacks.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionSecure user authentication.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionSpeed up images and photos.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUpload and embed videos right on your site. (Subscription required.)Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionVisitors can share your content.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NameProtectModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagJumpstartModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSite StatsModule TagSocialModule TagWritingModule not found: `%s`.Modules reset to default.Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Related Posts.My JetpackMy TweetsNameNetwork SettingsNew ComicNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNew in Jetpack: Centralized Site ManagementNewer Comments →NewestNext »Next » NoNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo Modules FoundNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo command found.No comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No themes found.No upcoming eventsNo update neededNo writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!NoneNot ConnectedNot connectedNote: Custom CSS will be reset when changing themes.Note: Images in tiled galleries require extra-special processing, so they will be served from WordPress.com's CDN even if the Photon module is disabled.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Now you can update plugins, set plugins to automatically update, and activate or deactivate plugins on a per-site basis or in bulk from wordpress.com/plugins.Number of Posts to Display:OKOfficial buttonsOgg File URLOgg file container with Theora video and Vorbis audio. Note that some browsers are unable to play free software video formats, including Internet Explorer and Safari.Older %sOlder postsOmnisearchOmnisearch plays nice with other plugins by letting other providers offer results as well.On for all commentsOn for all postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Once added, your custom content will be visible on your website at %1$s or %2$s, or you may add them with shortcodes.Once enabled, a "Log in with WordPress.com" option will be added to your existing log in form.One New Jetpack Module%s New Jetpack ModulesOnly display videos in free software formatsOnly images can be uploaded here.Only super admins can edit the global whitelistOnly videos from the selected blog will be available in your media library.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpen links in new window/tab:Opens in new windowOptionOption not found or is empty. Use "list" to list option namesOptional text to display to your readers:OptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Page %sPages:Parent Menu SectionParent Project TypeParent Project Type:Passive VoicePathPerformance & SecurityPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPinterest username:Play as in playback or view a movieJavaScript required to play %s.Please describe the problem you are having.Please enable JavaScript support in your browser to use VideoPress.Please enter the IP address you want to whitelist.Please note that the VideoPress module requires a WordPress.com account with an active VideoPress subscription.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please select a video file to upload.Please specify a user by either ID, username, or email.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please specify if you would like to reset your options, or modulesPlease upload a file.Please verify your birthday.Plugin activated.Plugin deactivated.PluginsPocketPopularPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post converted.%s posts convertedPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts indexed.Posts pagePremium Jetpack ServicePress ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPrimary MenuPrimary User of the sitePrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProofreadingProtect cannot keep your site secure.Protect helps to keep you secure from brute-force login attacks.Protect whitelistProudly powered by %sProudly powered by WordPressProve your humanity:PublicizePublicize:PublishPublishedPublisher limits playback of video embeds.PurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RESET EVERYTHING (during testing only) - will reset modules to default as wellRSS LinksRandom Order:RatingReceive Monitor Email Notifications.Recent PostsRedRedditRedundant PhrasesRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove ServiceRemove logoRepeated WordReplace selection with:ReplyReport visibilityRequire Two-Step AuthenticationResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:RightSaveSave ChangesSave New OrderSave StylesheetSave and go back to form builderSave configurationSave this fieldScheduledSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu SectionsSearch Modules…Search PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch once, get results from everything! Currently supports searching posts, pages, comments, media, and plugins.Search resultsSee the other %s Jetpack featuresSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.Set as logoSet the primary account holderSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing labelShelf:ShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Cover PhotoShow Excerpts:Show FacesShow Featured Image:Show Page Posts.Show Personal LinksShow StreamShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow buttons onShow falling snow on my blog until January 4th.Show likes.Show mapShow moreShow profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSingle Sign OnSite IconSite Icon UploadSite Icon creates a favicon for your site and more.Site Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site LogoSite NameSite StatsSite Title, Tagline, and LogoSite UsernameSite Username (Primary)SitesSkipSlideshowSmallSmileySmiley faceSnowSocialSocial Media IconsSome themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Someone likes one of my postsSomething has gotten mixed up in your Jetpack Connection!Something is wrong with your Wufoo shortcode. If you copy and paste it from the %sWufoo Code Manager%s, you should be golden.Sorry, no modules were found for the search term "%s"Sorry, no updating arrays at this timeSorry, nothing to report.Sorry, your blog cannot share posts by email.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sorry. We can not plot this address. A map will not be displayed. Is the address formatted correctly?Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStatus unknown.Style:Stylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe Placeholder:Subscribe to %sSubscribe to Blog via EmailSuccess Message Text:Success! An email was just sent to confirm your subscription. Please find the email now and click activate to start subscribingSuccess! You've jump started your site.SupportTag nameTagsTake WordPress with you.Temporary Large Image for Blog ImageTemporary Resized Image for Blog ImageTerms of ServiceTestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial pages display at most %1$s testimonialsTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTextText & Image LinksText LinkText ListText onlyThanks for activating Protect! To start protecting your site, please network activate Jetpack on your Multisite installation and activate Protect on your primary site. Due to the way logins are handled on WordPress Multisite, Jetpack must be network-enabled in order for Protect to work properly. Learn MoreThat connection has been removed.The Custom CSS editor gives you the ability to add to or replace your theme's CSS, all while supplying syntax coloring, auto-indentation, and immediate feedback on the validity of the CSS you're writing.The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe Twitter username of the owner of this site's domain.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WP.com user ID of the connected userThe WP.com user email of the connected userThe WP.com username of the connected userThe WordPress.com blog_id is %dThe email you entered was invalid. Please check and try again.The file that you uploaded is not an accepted file type. Please try again.The image helps collect stats and makes the world a better place but should still work when hiddenThe image needs to be at leastThe image that you uploaded is smaller than %upx in height.The image that you uploaded is smaller than %upx in width.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe number of sites of the connected WP.com userThe plugin is already installedThe preview is unavailable while this video is being processed.The primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The response parameter is invalid or malformedThe response parameter is missingThe secret parameter is invalid or malformedThe secret parameter is missingThe settings for Featured Content have moved to Appearance → Customize.The test results and some other useful debug information will be sent to the support team. Please feel free to review/modify this information.The theme is already installedThe widget only works with Facebook Pages.Theme: %1$s.ThemesThere are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There seems to be a problem with your site’s ability to communicate with Jetpack!There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem getting the data to display this address on a map. Please refresh your browser and try again.There was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error installing your pluginThere was an error installing your themeThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There was an error while activating the module.There was an error while deactivating the module.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This feature uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, request a reindex of your posts.This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This setting may be overridden for individual videos.This slideshow requires JavaScript.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This video is intended for mature audiences.This video requires Adobe Flash for playback.ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:To add a new icon to your site, head over to Settings → General → Site Icon, and upload an icon.To configure your sharing settings, go to the Settings → Sharing menu.To control visibility, expand the widget and click the Visibility button next to the Save button, and then, choose a set of visibility options.To enable a custom content type, head over to Settings → Writing → Your Custom Content Types to activate either "Portfolio Projects†or “Testimonials†by checking the corresponding checkbox. You can now add projects and testimonials under the new "Portfolio†or “Testimonials†menu item in your sidebar.To quickly boost performance, security, and engagement we recommend activating %s. Click Jump Start to activate these features or To use the CSS editor, go to Appearance → Edit CSS.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTraffic GrowthTransparent BackgroundTrashTrouble with Jetpack?TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter Site TagTwitter TimelineTwitter username:Two-Step Authentication DisabledTwo-Step Authentication EnabledTypeTypesTypes of pages to display:URLUncategorizedUnexpected responseUnknown post type requested.Unlink This AccountUnlink my account Unlink your account from WordPress.comUnpublishedUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdate Site IconUpdating an option from "this" to "that".Updated option: %s to "%s"Upload ImageUpload VideoUpload a VideoUpload a image that you want to use as your site icon. You will be asked to crop it in the next step.Uploading...Use a large and visually striking layoutUse a valid email address.Use automatically detected language to proofread posts and pagesUse the button below to browse your VideoPress Library. Note that you can also browse your VideoPress Library while editing a post or page by using the Add Media button in the post editor.Use the form below to upload a video to your VideoPress Library. The following video formats are supported: %s. Maximum upload file size is %d%s.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVaultPress dashboardVerified ServicesVerifying your site allows you to access advanced features on these other services (e.g. Webmaster tools, or getting a verified badge). We'll just add an invisible %s tag to the source code of your homepage.Video Library AccessVideo Preview:Video on %sVideo post.VideoPressVideoPress LibraryView %1$s’s profile on %2$sView AllView ComicView Full Profile →View Full SiteView Menu SectionView Mobile SiteView Network AdminView ProjectView Project TagView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.Vimeo username:VisibilityVisit Site Stats to see your stats.Visit the post for more.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.We couldn't find an account with the email %1$s to log you in with. If you already have an account on %2$s, please make sure that %1$s is configured as the email address, or that you have connected to WordPress.com on your profile page.We couldn't find any account on %2$s that is linked to your WordPress.com account to log you in with. If you already have an account on %2$s, please make sure that you have connected to WordPress.com on your profile page.We were unable to get your stats just now. Please reload this page to try again.We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact support. In your report please include the information below.WebsiteWebsite Verification ServicesWelcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWe’ll also let you know as soon as your site is up and running, so you can keep an eye on total downtime.What's a Gravatar?When adding a gallery to your post, you now have the option to select a layout style for your images. We've added support for Rectangular, Square, and Circular galleries. By default, galleries will continue to display using the standard thumbnail grid layout. To make the rectangular layout the default for all of your site's galleries, head over to Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."When you write great content, all you really want is people to find it, right?WhiteWhitelist is empty.Widget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:With 1 commentWith %s commentsWith Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With Single Sign On, your users will be able to log in to or register for your WordPress site with the same credentials they use on WordPress.com. It's safe and secure.With the Infinite Scroll module and a supported theme, that's exactly what happens. Instead of the old way of navigating down a page by scrolling and then clicking a link to get to the next page, waiting for a page refresh—the document model of the web—infinite scrolling pulls the next set of posts automatically into view when the reader approaches the bottom of the page, more like an application.With the VideoPress module you can easily upload videos to your WordPress site and embed them in your posts and pages. This module requires a WordPress.com account with an active VideoPress subscription. Once you have purchased a VideoPress subscription, click here to configure VideoPress.WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com ToolsWordPress.com UsernameWould you tell us why? Just answering two simple questions would help us improve Jetpack.Wow, that sounds nerdy.Write a Comment...Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYesYou are all set! Your site can now be managed from wordpress.com/sites.You are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not supposed to be here!You are required to specify a capability to check.You are required to specify a module.You are required to specify a plugin to activate.You are required to specify a plugin.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can also hide widgets based on the current page. For example, if you don't want the Archives widget to appear on search results pages, choose "Hide" and "Page is Search results."You can manage your network-wide whitelist via the network admin.You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have shared this post with %sYou have successfully disconnected Jetpack.You have successfully set yourself as Jetpack’s primary user.You must link another admin account before switching primary account holders.You must specify a valid actionYou need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to enter your numeric user ID for the Goodreads Widget to work correctly. Full instructions.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.YouTube channel ID:Your Custom Content TypesYour Email AddressYour Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your Site Stats work better with Javascript enabled.Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour site icon has been uploaded!Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your theme supports %sYour theme supports TestimonialsYour video has successfully been uploaded. It will appear in your VideoPress Library shortly.Your video is uploading... Please do not close this window.[%s] Joining confirmationa post or page is first publisheda post or page is updateda variable command that a user can write, provided in the printed instructionsoptionandas sharing sourceEmailcancelclick herecrop the imagedayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in both width and height.in {category/tag name}In "%s"jumpstart option resetloading…locales%1$s/%2$smonthmy list of books to readTo Readnext-saturdayImage navigationnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthe value that they want to update the option tovaluethis videowatch a video titleWatch: %sweekword count: words or characters?words{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.Blocked malicious login attempts{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.Spam comments blocked by Akismet.{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-09-05 05:42:36+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev (در پنجرۀ تازه باز می‌شود) یا لغو کنید Ùˆ به تنظیمات برگردید.«نوشته‌های مرتبط»‌ پیوندهای مرتبط بیشتری از وب‌گاه شما در زیر نوشته‌هایتان نمایش می‌دهد. اگر این ویژگی ÙØ¹Ø§Ù„ باشد، پیوندها زیر دکمه‌های اشتراک‌گذاری Ùˆ بالای دوست‌داشتن‌های WordPress.com (اگر ÙØ¹Ø§Ù„شان کرده باشید) نمایش داده خواهند شد.هم‌اکنون وردپرس نقشک وب‌گاه را به صورت درونی در بر دارد!%s ÙØ¹Ø§Ù„ نیست. می‌توانید آن را با Ú©Ù…Ú© "wp jetpack module activate %s" ÙØ¹Ø§Ù„ کنید.وضعیت کامل را با Ø§Ø³ØªÙØ§Ø¯Ù‡ از 'wp jetpack status full' ببینیدشمار توییت‌های نمایش‌داده‌شده:%1$d مورد گزینگان غذا%1$s %2$s بازدید%1$s – %2$sحتماً. برای Ø§ÙØ²ÙˆØ¯Ù† یک جعبهٔ متن تازه، پهنهٔ متنی، گزینه یا زمینهٔ کشویی %1$s.آری، می‌توانید بازخوردهایتان را در هر زمان با کلیک روی پیوند «%1$s» در گزینگان مدیریت بخوانید.نوار کناری %1$s%1$s %2$sاگر وب‌گاه شما برای عموم در دسترس نیست، به از کار انداختن این ویژگی‌ها Ùکر کنید.%1$s: %2$s%1$s در %2$s%1$s در %2$s%l ØºÛŒØ±ÙØ¹Ø§Ù„ شد! می‌توانید هرزمان Ú©Ù‡ خواستید با Ú©Ù…Ú© پیوندهای کنار هر پودمان آن‌ها را دوباره ÙØ¹Ø§Ù„ کنید.از کار انداختن %lهمچون خوراک‌های RSS وب‌گاهتان، %l امکان دسترسی به نوشته‌ها Ùˆ دیگر مطالبتان را برای طرÙ‌های سوم ÙØ±Ø§Ù‡Ù… می‌کند.%s (جت‌پک)%s (لازم)خطای %s%s پیشامکان جداکردن %s نبود. مطمئنید Ú©Ù‡ هم‌اکنون متصل هستند؟%s در Ùهرست سÙید جای Ú¯Ø±ÙØªÙ‡ است%s ÙØ¹Ø§Ù„ شده است.%s ØºÛŒØ±ÙØ¹Ø§Ù„ شده است.%s با موÙقیت جدا شد.%s در Ùهرست سÙید جای Ú¯Ø±ÙØª.%s یک زبان نشانه‌گذاری قدرتمند است Ú©Ù‡ برای نوشتن معادله‌های ریاضی پیچیده، ÙØ±Ù…ول‌ها Ùˆ... به کار می‌رود.شما با موÙقیت %s را به عنوان کاربر اصلی جت‌پک تنظیم کرده‌اید.Ù„Ø·ÙØ§Ù‹ برای پیکربندی اشتراک VaultPress خود به %s بروید.%s دستور معتبری نیست.%s Ø§ÙØ²ÙˆÙ†Ù‡ معتبری نیست.%s مورد نیاز استبازنشانی گزینهٔ %s%s به یک رایانشانی معتبر نیاز دارد%s: %s%sمتصل‌کردن مدیران بیشتر%s« پیشین← دیدگاه‌های پیشین— گزینش کنید —موارد بالا گزینه‌های شما هستند. می‌توانید آن‌ها را 'get'ØŒ 'delete'ØŒ Ùˆ 'update' کنید.همچنین می‌توانید Ùهرست سÙید را 'list' یا 'clear' کنید.برای اطلاعات بیشتر 'wp jetpack options' را تایپ کنید.(بدون عنوان)(اصلی)(لازم)- ما را روی %1$s یا %2$s دنبال کنید%1$s در %2$s3999 Mission Boulevard, San Diego CA 92109ØµÙØ­Ù‡â€ŒÛŒ خطای 404برای بازآوری این Ùهرست اینجا را کلیک کنید.دربارهٔ این گزینه‌ها بیشتر بدانید.% پاسخ۱ پاسخ

        مدیریت وب‌گاه را ÙØ¹Ø§Ù„ کنید تا وب‌گاه‌های مختل٠را از پیش‌خوان مرکزی ما در wordpress.com/sites مدیریت کنید. بیشتر بدانید.

        هم‌اکنون ÙØ¹Ø§Ù„ کنید%d وب‌نوشت‌نویس این را دوست دارند:%s مجاز به جاسازی وب‌گاه نیست.جت‌پک ÙØ¹Ø§Ù„ است! هر وب‌گاهی روی شبکهٔ شما باید جداگانه به دست مدیر آن وب‌گاه متصل شده باشد.ابزارک نقشک‌های رسانه‌های اجتماعی این امکان را می‌دهد Ú©Ù‡ نقشک‌هایی از Ù¾Ø±Ø·Ø±ÙØ¯Ø§Ø±ÛŒÙ† شبکه‌های اجتماعی را به نوار کناری یا دیگر پهنه‌های ابزارک Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.ابزارک رویدادهای پیش رو امکان Ø§Ø³ØªÙØ§Ø¯Ù‡ از یک پیوند iCalendar به شما می‌دهد تا Ùهرستی از رویدادهای وب‌گاهتان را نمایش دهید.سوخت‌گیری تمام شد Ùˆ آمدهٔ Ø±ÙØªÙ† هستیم. جت‌پک هم‌اکنون ÙØ¹Ø§Ù„ است. یک مشکل شناخته‌شده.مشکلی در پروندهٔ XMLRPC شما.یک ابزارک ساده Ú©Ù‡ نقشک‌های شبکه‌های اجتماعی را نمایش می‌دهد.پوستهٔ ناسازگار.ÙØ¹Ø§Ù„ Ú©Ø±Ø¯Ù†ÙØ¹Ø§Ù„‌سازی Akismetهم‌اکنون ÙØ¹Ø§Ù„ Ú©Ù†ÛŒØ¯ÙØ¹Ø§Ù„ Ø´Ø¯ÙØ¹Ø§Ù„Ø§ÙØ²ÙˆØ¯Ù†Ø§Ùزودن ÙØ±Ù… ØªÙ…Ø§Ø³Ø§ÙØ²ÙˆØ¯Ù† مورد Ú¯Ø²ÛŒÙ†Ú¯Ø§Ù†Ø§ÙØ²ÙˆØ¯Ù† ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† طنز ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† بخش گزینگان ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† پروژۀ ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† برچسب پروژهٔ ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† نوعی تازه از Ù¾Ø±ÙˆÚ˜Ù‡Ø§ÙØ²ÙˆØ¯Ù† گواهی‌نامهٔ ØªØ§Ø²Ù‡Ø§ÙØ²ÙˆØ¯Ù† شمایل ÙˆØ¨â€ŒÚ¯Ø§Ù‡Ø§ÙØ²ÙˆØ¯Ù† شمایل ÙˆØ¨â€ŒÚ¯Ø§Ù‡Ø§ÙØ²ÙˆØ¯Ù† یک زمینهٔ تازهاز یک رابط،‌ نوشته‌ها یا ØµÙØ­Ù‡â€ŒÙ‡Ø§ تازه را به هر یک از وب‌گاه‌ها Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.Ø§ÙØ²ÙˆØ¯Ù† یک خدمت تازهبرای اینکه به دیگران اجازه دهید در وب‌نوشت شما مشترک شوند یک ÙØ±Ù… نام‌نویسی رایانامه Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.Ø§ÙØ²ÙˆØ¯Ù† گزینۀ Ø¯ÛŒÚ¯Ø±Ø§ÙØ²ÙˆØ¯Ù† Ù†Ø´Ø§Ù†â€ŒÙˆØ§Ø±Ù‡Ø§ÙØ²ÙˆØ¯Ù† یا پاک کردن برچسب‌هادکمه‌های اشتراک‌گذاری را به وب‌نوشت خود Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯ Ùˆ به بازدیدکنندگانتان اجازه دهید تا نوشته‌ها را با دوستانشان به اشتراک بگذارند.Ø§ÙØ²ÙˆØ¯Ù† این ÙØ±Ù… به نوشتۀ Ù…Ù†Ø§ÙØ²ÙˆØ¯Ù† به بخش:Ø§ÙØ²ÙˆÙ†Ù‡ سی‌اس‌اس (پیشنهادشده)اطلاعات بیشتر:آدرس:نوار مدیرAkismet می‌تواند به شما Ú©Ù…Ú© کند وب‌نوشتتان را از هرزنامه‌ها دور نگاه دارید!جÙنگهمههمۀ طنزهاهمه انجام شدهمۀ بخش‌های گزینگانهمۀ برچسب‌های پروژههمۀ انواع پروژههمه‌ی پروژه‌هاهمهٔ گواهی‌نامه‌هاهمهٔ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ نوسنده‌هاهمهٔ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ دسته‌هاهمهٔ بایگانی‌های تاریخهمهٔ پودمان‌ها ÙØ¹Ø§Ù„ شدند!همهٔ پودمان‌های ØºÛŒØ±ÙØ¹Ø§Ù„ شدند!همهٔ نوشته‌هاهمهٔ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ برچسب‌هاتمام ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ رده‌بندیبه مدیران وب‌گاه‌ها اجازه داده شود ارتباطات خودشان را مدیریت کنند (متصل‌شدن به Ùˆ جدا شدن از WordPress.com) به کاربران اجازهٔ دستیابی Ùˆ ویرایش ویدئوهای من داده شودبه کاربران اجازهٔ دستیابی به ویدئوهای من داده شودبه کاران اجازهٔ دستیابی، ویرایش Ùˆ حذ٠ویدئوهای من داده شودکاربران مجاز به بارگذاری ویدئو Ø¨Ø§Ø´Ù†Ø¯Ø§Ù„ÙØ¨Ø§ÛŒÛŒÙ…تن جایگزین:برای Ø¯Ø±ÛŒØ§ÙØª شمار نوشته‌های ضروری است از یک Ù†Ù…ÙˆØ¯Ø§ÙØ²Ø§Ø± (token) ÙØ¹Ø§Ù„ Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.یکی از مدیران این وب‌نوشت می‌باید اتصال جت‌پک را برپا کند.خطایی هنگام ایجاد خدمت اشتراک‌گذاری تازه‌‌تان رخ داد - Ù„Ø·ÙØ§Ù‹ بررسی کنید Ú©Ù‡ جزئیات را درست وارد کرده‌اید.Ø§ÙØ²ÙˆÙ†Ù‡Ù”‌ ناسازگار.خطای ناشناخته‌ای رخ داد. Ù„Ø·ÙØ§Ù‹ بعداً دوباره تلاش کنید.خطای ناشناخته‌ای هنگام نصب رخ داددریچهپوزش، اما نتیجه‌ای برای بایگانی درخواست شده، ÛŒØ§ÙØª نشد. شاید جست‌وجو Ú©Ù…Ú© کند نوشتهٔ مرتبطی پیدا کنید.ØµÙØ­Ù‡Ù” بایگانیآیا مطمئنید Ú©Ù‡ می‌خواهید اطلاع‌رسانی نوشته‌هایتان را در این اتصال متوق٠کنید؟هنرمندبه عنوان یک شمایل همراهپولیبه عنوان ÙØ§ÙˆØ¢ÛŒÚ©Ù†Ø¯Ø± حال حاضر پوستهٔ شما، %sØŒ از نوردش بی‌پایان پشتیبانی نمی‌کند. برخلا٠پودمان‌های دیگر جت‌پک، نوردش بی‌پایان برای عملکرد درست، نیازمند اطلاعاتی از پوستهٔ شما است.پوستهٔ پیوست‌هانمونه‌خوانی خودکار محتوا هنگامی Ú©Ù‡:اتوماتیکذخیره‌سازی خودکار با خطای نامنتظره‌ای مواجه شدپودمان‌های دردسترس:خدمات در دسترسکدهای کوتاه در دسترس: %l.بازگشت به تنظیمات عمومیبازگشت به بالا ↑رنگ پس‌زمینهحتما دکمهٔ «به‌روزرسانی شناس‌نامه» را در پایین پرده کلیک کنید تا تغییراتتان ذخیره گردد.پیش از آنکه جت‌پک را کاملاً جدا کنید، آیا چیزی هست Ú©Ù‡ بتوانیم در مورد آن Ú©Ù…Ú© کنیم؟زبان تبعیض‌گرامشکیبايگانی‌ وب‌نوشتنشانی وب وب‌نوشت:متن رایانامهٔ دنبال‌کردن وب‌نوشتآبیرنگ کادر (hex):نیروی ابر ورپرس.کام را به وردپرس خودمیزبان خود بیاورید. جت‌پک این امکان را به شما می‌دهد Ú©Ù‡ وب‌نوشتتان را به حساب وردپرس.کام متصل کنید Ùˆ بتوانید از ویژگی‌های قدرتمندی Ú©Ù‡ تنها برای حساب‌های وردپرس.کام در دسترس است Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.کتابخانهٔ VideoPress خود را مرور کنیدمرورگر کرومسبک دکمهبا Ø§ÙØ²ÙˆØ¯Ù† یک ÙØ±Ù… تماس، خوانندگان شما قادر خواهند بود برای شما بازخوردهایشان را ثبت کنند. همۀ بازخوردها به طور خودکار برای هرزنامه بررسی می‌شود Ùˆ بازخوردهای مناسب به رایانامهٔ شما ÙØ±Ø³ØªØ§Ø¯Ù‡ خواهد شد.Ø³ÛŒâ€ŒØ§ÙØ³â€ŒØ§Ùسبازنگری‌های Ø³ÛŒâ€ŒØ§ÙØ³â€ŒØ§Ùسویرایش‌گر سبک‌برگهٔ Ø³ÛŒâ€ŒØ§ÙØ³â€ŒØ§Ùسدوربینمی‌توانم زمینه‌های بیشتری Ø¨ÛŒÙØ²Ø§ÛŒÙ…؟آیا می‌توانم بازخوردهایم را در وردپرس ببینم؟لغولغو پاسخامکان کنارآ«دن با کلوچک‌های تغییرمسیر وجود ندارد زیرا سرایندها از پیش ÙØ±Ø³ØªØ§Ø¯Ù‡ شده‌اند.امکان Ø§Ø³ØªÙØ§Ø¯Ù‡ از پرچم‌های سراسری در حالت غیرچندوب‌گاهه وجود نداردبرنگاشت:چرخ Ùلکدستهمیان‌چینتغییر نشان‌وارهاینکه بازدیدکنندگانتان بتوانند مشترک دیدگاه‌ها یا نوشته‌هایتان یا هردو شوند را تغییر دهید.کشیدن آمار براساستقلب می‌کنید، آره؟ویژگی‌های پیشنهادی دیگر را در زیر ببینید Ùˆ یا به ØµÙØ­Ù‡Ù” تنظیمات بروید Ùˆ جت‌پک خود را شخصی‌سازی کنید.تصاویر را برگزینیداز میان Ù¾Ø±Ø§Ø³ØªÙØ§Ø¯Ù‡â€ŒØªØ±ÛŒÙ† برچسب‌ها گزینش کنیدگزیدن نشان‌وارهدایره‌هاهمهٔ آی‌پی‌های Ùهرست سÙید پاک شدند.کلیشه‌هااینجا را کلیک کنیدبرای نـشر ایـن کلیک کنید!برای پخش خودکار ارائه کلیک کنید!برای رایانامه کردن این به دوستان کلیک کنیدبرای چاپ کردن کلیک کنیدکلیک کنید تا روی Ú¯ÙˆÚ¯Ù„+ به اشتراک گذاشته شودبرای به اشتراک گذاشتن روی لینکداین کلیک کنیدبرای اشتراک‌گذاردن روی پین‌ترست کلیک کنیدکلیک نمایید تا روی Pocket اشتراک گذاشته شودبرای به اشتراک گذاشتن در رددیت کلیک کنیدبرای اشتراک‌گذاری روی تامبلر کلیک کنیدبرای به اشتراک گذاشتن در توییتر کلیک کنیدبرای دیدن نمایش پرده‌ای کلیک کنید.بستنبستن پنجرهٔ مودالرنگ‌بندیطنزطنز منتشر شد. مشاهده طنزکمیک به بازنگری %s برگردانده شدطنز ذخیره شد.طنز زمان‌بندی شد برای: %1$s. پیش‌نمایش طنزطنز ارسال شد. پیش‌نمایش طنزطنز به‌روزرسانی شد.طنز به‌روزرسانی شد. مشاهده طنزطنزهادیدگاهدوست‌داشتن‌های دیدگاهمشکل در Ø­Ø§ÙØ¸Ù‡Ù” نهان دیدگاه‌ها؟متن رایانامهٔ دنبال‌کردن دیدگاهناوبری دیدگاهدیدگاه‌هادیدگاه‌های این نوشته بسته شده‌اند.عبارات پیچیدهپیکربندیقطع را تأیید کنیداتصالمتصل‌کردن جت‌پکاتصال Ùˆ اشتراک‌گذاری نوشته‌های شما روی %sاتصال بهبه WordPress.com متصل شویدوب‌نوشت خود را به وب‌گاه‌های اجتماعی Ù¾Ø±Ø·Ø±ÙØ¯Ø§Ø± متصل کنید Ùˆ به صورت خودکار نوشته‌های تازه را با دوستان‌تان به اشتراک بگذارید.متصل شدهوب‌نوشت WordPress.com متصل‌شدهاتصال از راه «ثبت ورود تکی» این امکان را به شما می‌دهد Ú©Ù‡ از راه حساب WordPress.com ثبت ورود کنید.ÙØ±Ù… تماسنشانی وب ÙØ±Ù… تماس:اطلاعات تماسادامه →به خواندن ادامه دهید →با رویت‌پذیری ابزارک، اینکه کدام ابزارک‌ها در کدام ØµÙØ­Ù‡â€ŒÙ‡Ø§ نمایش می‌یابند را کنترل کنید.تبدیل به طنزتبدیل به نوشتهامکان Ø¯Ø±ÛŒØ§ÙØª شناسانهٔ بارگذاری ویدئوپرس نبود. Ù„Ø·ÙØ§Ù‹ بعداً دوباره تلاش کنید.شمارش بازدیدهای کاربران نام‌نویسی‌شده‌ای Ú©Ù‡ وارد شده‌اند.ساخت دکمهٔ اشتراک‌گذاریایجاد مدیران دیگر برای تغییر کاربر اصلی.ساخت چیدمان‌های بسیار زیبای سبک موزاییکی مجله‌ها برای عکس‌هایتان. بدون نیاز به Ø§Ø³ØªÙØ§Ø¯Ù‡ از ویرایشگرهای گراÙیکی بیرونی.بریدن تصویرهم‌اکنون Ù…ÛŒâ€ŒØ®ÙˆØ§Ù†Ù…Ø³ÙØ§Ø±Ø´ÛŒCSS Ø³ÙØ§Ø±Ø´ÛŒØ³Ø¨Ú©â€ŒØ¨Ø±Ú¯Ù‡Ù” سی‌اس‌اس Ø³ÙØ§Ø±Ø´ÛŒÙ…حتوا با نوع Ø³ÙØ§Ø±Ø´ÛŒØ±Ø§ÛŒØ§Ù†Ø´Ø§Ù†ÛŒ Ø³ÙØ§Ø±Ø´ÛŒÙ¾ÛŒØ§Ù… Ø³ÙØ§Ø±Ø´ÛŒ:زمینهٔ Ø³ÙØ§Ø±Ø´ÛŒ پاک شد.زمینهٔ Ø³ÙØ§Ø±Ø´ÛŒ به‌روز شد.نام مشتریگواهی‌نامه‌های Ù…Ø´ØªØ±ÛŒØ³ÙØ§Ø±Ø´ÛŒâ€ŒØ³Ø§Ø²ÛŒØ³Ùارشی‌سازی بایگانی گواهی‌نامه‌هابایگانی روزانه: %sبایگانی‌های Ø±ÙˆØ²Ø§Ù†Ù‡ØªÛŒØ±Ù‡ØªØ§Ø±ÛŒØ®ØºÛŒØ±ÙØ¹Ø§Ù„ کردناشکال‌زداییاطلاعات اشکال‌زداییاشکال‌زدایی از جت‌پک برای اطلاعات بیشتر.Ù¾ÛŒØ´â€ŒÙØ±Ø¶Ø²Ù…ینهٔ تازهنخستین گزینهکیÙیت Ù¾ÛŒØ´â€ŒÙØ±Ø¶Ø­Ø°Ùحذ٠برای همیشهحذ٠این مورد برای همیشهگزینهٔ حذÙ‌شده: %sØªÙˆØ¶ÛŒØ­Ø§ØªØ§Ø¹Ø±Ø§Ø¨â€ŒÚ¯Ø°Ø§Ø±ÛŒâ€ŒÙ‡Ø§Ø¯Ø´ÙˆØ§Ø±ÛŒØºÛŒØ±ÙØ¹Ø§Ù„ کردن جاوا اسکریپت Ùˆ Ø³ÛŒâ€ŒØ§Ø³â€ŒØ§Ø³ØºÛŒØ±ÙØ¹Ø§Ù„ کردن نوشته از طریق رایانامهجداکردن جت‌پکقطع اتصال وب‌گاه از WordPress.comدر حال قطع اتصال جت‌پکمرخص‌کردن این آگاه‌سازی Ùˆ ØºÛŒØ±ÙØ¹Ø§Ù„‌سازی جت‌پکاین آگاه‌سازی را ÙØ¹Ù„اً کنار بزنید.مرخص‌کردن این آگاه‌سازی.نمایش متن سرآیندنمایش نوشته‌های وردپرسنمایش یک جعبهٔ دوست‌داشتن Ùیس‌بوک برای اتصال بازدیدکنندگان به ØµÙØ­Ù‡Ù” Ùیس‌بوک شمانمایش یک نسخهٔ Ú©ÙˆÚ†Ú© از شناسنامهٔ گراواتار شمانمایش یک گالری عکس یا نمایش اسلایدنمایش همهٔ تصاویر گالری‌های خود را در یک موزاییک خوش‌نما داشته باشید.نمایش عکس در ستون کناری شمانمایش یک ابزارک رسمی خط زمانی توییتر توکار.نمایش به صورت:Ùیلم‌ها به صورت Ù¾ÛŒØ´â€ŒÙØ±Ø¶ با Ú©ÛŒÙیت بالا نمایش داده شوند.گزینگان اشتراک‌گذاری را به نمایش درآورید Ùˆ به مشاهده‌کنندگان اجازه دهید این Ùیلم را جاسازی کرده یا بارگیری کنندنمایش محتوای برچسب در همهٔ Ùهرست‌ها.نمایش رویدادهای پیش رو از خوراک iCalendar.کتاب‌های Goodreads خود را نمایش دهیدمکان، ساعت‌ها Ùˆ اطلاعات تماس‌تان را نمایش دهید.شمار کسانی Ú©Ù‡ نوشته‌هایتان را دوست داشته‌اند به همراه گراواتار آن‌ها، در زیر نوشته‌ها نمایش داده می‌شود. نمایش Ùهرستی از نوشته‌های اخیر یک وب‌نوشت وردپرس.کام یا دارای جت‌پک دیگر.به کاربران دیگر دسترسی به کتابخانهٔ ویدئوپرس من داده نشوددامنهٔ `%1$s` در بررسی is_usable_domain شکست خورد چراکه زیردامنه‌ای از WordPress.com است.دامنهٔ `%1$s` در بررسی is_usable_domain شکست خورد چراکه خالی است.دامنهٔ `%1$s` در بررسی is_usable_domain شکست خورد چراکه در آرایهٔ ممنوعه قرار دارد.دامنهٔ `%1$s` در بررسی is_usable_domain شکست خورد چراکه از یک دامنهٔ سطح بالای نامعتبر Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند.دامنهٔ `%1$s` در بررسی is_usable_domain شکست خورد چراکه آی‌پی آن `%2$s` یا نامعتبر است Ùˆ یا در یک بازهٔ خصوصی رزرو شده جای دارد.دکمۀ بازوب‌نویسی را روی نوشته‌ها نمایش ندهدوبار منÙÛŒ کردن‌هابارگیریبارگیری: %s
        خدماتی را Ú©Ù‡ می‌خواهید کارا کنید به جعبهٔ زیر بکشید Ùˆ رها کنید.تصاویر را رها کنید تا بارگذاری شوندرایانشانیبه‌سادگی همهٔ نوسته‌هایی Ú©Ù‡ دارای برچسب «ویژه» هستند را ویژه کنید یا برچسب دلخواه خود را برای این کار انتخاب نمایید. پوستهٔ شما از %2$s نوشته در پهنهٔ مطالب ویژه پشتیبانی می‌کند.ویرایشویرایش Ø³ÛŒâ€ŒØ§ÙØ³â€ŒØ§Ùسویرایش طنزویرایش مورد گزینگانویرایش بخش گزینگانویرایش پروژهویرایش برچسب پروژهویرایش نوع پروژهویرایش قسمت گزینش شده...ویرایش گواهی‌نامهشناسنامهٔ خود را ویرایش کنیدرایانشانیرایانشانیرایانشانی:بررسی رایانشانی Ù†Ø§ÙØ±Ø¬Ø§Ù… ماند، خواهشمندیم دوباره تلاش کنیدآگاه‌سازی‌های رایانامه‌ایتنظیمات رایانامهرایانامه‌ها به %s ÙØ±Ø³ØªØ§Ø¯Ù‡ خواهند شد (ویرایش)خالی کردن Ù‡Ø±Ø²Ù†Ø§Ù…Ù‡ÙØ¹Ø§Ù„‌سازی پروژه‌های نمونه‌کار برای این وب‌گاه.ÙØ¹Ø§Ù„‌کردن نوشته از طریق رایانامهبه کار انداختن گواه‌نامه‌ها برای این ÙˆØ¨â€ŒÚ¯Ø§Ù‡ÙØ¹Ø§Ù„‌کردن چرخ Ùˆ Ùلککارا کردن نمونه‌خوانی هنگام نگارش نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ برای قواعد دستوری Ùˆ ØµÙØ­Ù‡â€ŒØ¨Ù†Ø¯ÛŒ زیر:خدمات Ú©Ø§Ø±Ø§ÙØ¹Ø§Ù„‌سازی مدریت این امکان را ÙØ±Ø§Ù‡Ù… می‌آورد Ú©Ù‡ وب‌گاه‌های خودمیزبان WordPress خود را به همراه هر وب‌گاه WordPress.comÛŒ Ú©Ù‡ دارید را همگی از یک پیشخوان ساده به‌روز کنید.گزینه‌های انگلیسینشانی وب یک وب‌گاه وردپرس.کام یا دارای جت‌پک را وارد کنید.نشانی وب شمایلی به اندازهٔ ۱۶×۱۶پیکسل Ú©Ù‡ می‌خواهید برای این خدمت Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید را وارد نمایید.نام مشتری را اینجا وارد نماییدنام مورد گزینگان را اینجا وارد کنیدرایانشانی خود را وارد کنیدبرای اشتراک در این وب‌نوشت Ùˆ Ø¯Ø±ÛŒØ§ÙØª آگاه‌سازی از نوشته‌های تازه از راه رایانامه، رایانشانی خود را وارد کنید.برای تأیید وب‌نوشتتان در %sØŒ مقدار «content» در ÙØ±Ø§Ú©Ù„ید خود را وارد کنیدجزئیات خطا: %sکد خطا: %sخطا در انتقال به زباله‌دان.خطا در بازیابی از زباله‌دان.خطا در بارگذاری شناسنامهخطا!خطا، پودمان بد.خطا، داده‌های پاسخ نامعتبرند.خطا: امکان ساخت نام کاربری مناسب نبود.خطا: اتصال جت‌پک این وب‌گاه در حال حاضر دچار مشکلاتی است.خطا: Ù„Ø·ÙØ§Ù‹ یک رایانشانی معتبر وارد کنید.خطا: بخش‌های لازم را پر کنید (نام، رایانشانی).1-202-555-1212نمونه:ØµÙØ­Ù‡ÛŒÚ© آرایه انتظار می‌رودتوضیح...Ùیسبوکجعبهٔ دوست‌داشتن ÙÛŒØ³â€ŒØ¨ÙˆÚ©ØµÙØ­Ù‡â€ŒÛŒ Ùیس‌بوکپیوند ØµÙØ­Ù‡Ù” Ùیس‌بوکدیوار Ùیس‌بوکنام کاربری Ùیس‌بوک:دسترسی ممکن نبود، Ù„Ø·ÙØ§Ù‹ دوباره تلاش کنید.ویژهمطالب ویژهتصاویر ویژهخوراک‌هایی Ú©Ù‡ نمایش داده می‌شوند:بازخوردبازخورد دور ریخته شد.نوع زمینهبا از کار انداختن همهٔ Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ به غیر از جت‌پک مشکل را بیابید. اگر ادامه پیدا کرد بدین معنیست Ú©Ù‡ مشکل از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ نیست. اما اگر حل شد، Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ را یکی‌یکی روشن کنید تا مشکل دوباره جلوه کند – مقصر را Ú©Ù‡ ÛŒØ§ÙØªÛŒØ¯ØŒ ما را در جریان بگذارید Ùˆ ما تلاش می‌کنیم کمکتان کنیم.نخستین Ú¯Ø²ÛŒÙ†Ù‡ÙØ§ØµÙ„Ù‡Ù” کانونیدنبال‌کردن وب‌نوشتدنبال‌کردن دیدگاه‌هامرا در توییتر دنبال کنیدتنظیمات دنبال‌کنندگانبرای نمونه اگر می‌خواهید ابزارک بایگانی‌ها تنها در بایگانی دسته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ خطا نمایش داده شود، از گزینهٔ کشویی نخست «نمایش» را برگزینید Ùˆ سپس دو قاعده Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯: Â«ØµÙØ­Ù‡ØŒ خطای Û´Û°Û´ است»، «دسته، همهٔ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ دسته است».برای اطلاعات بیشتر:ÙØ±Ù…‌سازقالب:قالب‌های Ø¢Ø²Ø§Ø¯Ø§Ø²ØµÙØ­Ù‡Ù” اول، ØµÙØ­Ø§Øª بایگانی Ùˆ نتایج Ø¬Ø³Øªâ€ŒÙˆØ¬ÙˆØµÙØ­Ù‡Ù” نخستجزئیات کامل را می‌توان در ØµÙØ­Ù‡â€ŒÛŒ پشتیبانی اشتراک‌گذاری پیدا کرد. این Ùیلم نیزمروری سریع بر چگونگی Ø§Ø³ØªÙØ§Ø¯Ù‡ از ویژگی اشتراک‌گذاری در اختیارتان می‌گذارد . برای ÙØ±Ù‡ بیشتر آن را در حالت پرکیÙیت تماشا کنید!حالت مدیریت کامل روی این وب‌گاه خاموش است.Ú¯Ø§Ù„Ø±ÛŒÙ†Ù…Ø§Ú¯Ø±ÙØª چرخ‌وÙÙ„Ú© گالریکار با مدیریت جت‌پک چندوب‌گاهه را با اتصال آغاز کنید.کار با جت‌پک چندوب‌گاهه را آغاز کنیدنام کاربری گیت‌هاب:با بارگیری تصاویر از راه شبکهٔ توزیع محتوای WordPress.com وب‌گاه خود را تقویت کنید. ما می‌توانیم تصاویر شما را در Ø­Ø§ÙØ¸Ù‡Ù” نهان ذخیره Ùˆ آن‌ها را از راه شبکه‌های اَبَرسریع خودمان ارائه کنیم. تنها با یک کلیک Ùˆ انجام این کار، بار میزبان وب شما کاهش خواهد ÛŒØ§ÙØª.سراسریگودریدزشناسهٔ کاربری عددی Goodreads (دستورالعمل):گوگلکارت‌های آویزان گراواتارشناسنامه‌ی گراواتارسبزبلندابلندا (پیکسل):درازا:آی‌پی‌ها Ùهرست سÙید شما از این قرارند:سلام، شما دعوت شده‌اید تا به ''%1$s' در %2$s Ùˆ به عنوان %3$s بپیوندید. Ù„Ø·ÙØ§Ù‹ برای تأیید این دعوت بر روی پیوندی Ú©Ù‡ در زیر می‌آید کلیک کنید: %4$sØ§ÙØ¹Ø§Ù„ پنهانپنهانیدنپنهان‌کردن محتوای مرتبط بعد از نوشته‌هاپنهان کردن برچسب از ÙØ±Ø§Ø¯Ø§Ø¯Ù‡â€ŒÙ‡Ø§ÛŒ نوشته Ùˆ ابر برچسب‌ها.Ù†Ù‡ÙØªÙ† تصویر صورتک خندان آمارگیری.خانهساعت‌ها Ùˆ اطلاعاتساعات:این چگونه کار می‌کند؟درود. شما یکی از نوشته‌های ما را دنبال کردید. این یعنی هرگاه دیدگاه‌های تازه‌ای ÙØ±Ø³ØªØ§Ø¯Ù‡ شوند را از راه رایانامه آگاه خواهید شد. برای ÙØ¹Ø§Ù„‌سازی، روی دکمهٔ تأیید در زیر کلیک کنید. اگر بر این باورید Ú©Ù‡ اشتباهی شده، این پیام را نادیده بگیرید Ùˆ ما دیگر هرگز مزاحم شما نخواهیم شد.درود. شما به‌تازگی نوشته‌های این وب‌نوشت را دنبال کردید. این یعنی نوشته‌های تازه را از راه رایانامه Ø¯Ø±ÛŒØ§ÙØª خواهید کرد. برای ÙØ¹Ø§Ù„‌سازی، روی دکمهٔ تأیید در زیر کلیک کنید. اگر بر این باورید Ú©Ù‡ اشتباهی شده، این پیام را نادیده بگیرید Ùˆ ما دیگر هرگز مزاحم شما نخواهیم شد.به پشتیبانی نیاز دارمنشانی آی‌پی:شمایلشمایل + متننشانی وب شمایلتنها شمایلواژه‌ها Ùˆ عباراتی را Ú©Ù‡ می‌خواهید هنگام نمونه‌خوانی نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒØªØ§Ù† نادیده Ú¯Ø±ÙØªÙ‡ شوند، مشخص کنید:اگر خالی باشد، تلاش خواهیم کرد تا اندازهٔ تصویر را تشخیص دهیم.اگر از خودش نبود، یک Ø§ÙØ²ÙˆÙ†Ù‡ یا پوسته نویسه‌های اضاÙÛŒ نمایش می‌دهد. گام‌های Û² Ùˆ Û³ را بیازمایید.اگر شما نویسندهٔ یک پوسته هستید، می‌توانید در مورد نرودش بی‌پایان در %1$s بیشتر بیاموزید.اگر پیام Û´Û°Û´ Ø¯Ø±ÛŒØ§ÙØª می‌کنید، با میزبان وب خود تماس بگیرید. تنظیمات امنیتی آن‌ها ممکن است XMLRPC را مسدود کرده باشد.اگر مشکلتان ناشناخته است یا مسببش یکی از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ نیست، ÙØ¹Ø§Ù„‌کردن Twenty Twelve (پوستهٔ Ù¾ÛŒØ´â€ŒÙØ±Ø¶ وردپرس) را بیازمایید. اگر مشکل حل شد، ایراد احتمالاً در پوستهٔ شماست – نویسندهٔ پوسته را آگاه کنید.از همه چشم‌پوشی کنهمیشه نادیده بگیرنادیده Ú¯Ø±ÙØªÙ† پیشنهادعبارات نادیده Ú¯Ø±ÙØªÙ‡ شدهعکسچینش تصویر:رنگ تصویر:نمایش پرده‌ای تصاویر گالریشبکه‌بندی تصویرپیوند تصویریÙهرست تصویریتنظیمات تصویر:اندازهٔ تصویر:نشانی وب تصویر:عنوان تصویر:تصویری Ú©Ù‡ قرار است بریده شودتصاویر:غير ÙØ¹Ø§Ù„نمایه‌سازی نوشته‌هادرخواست نمایه‌سازی در ص٠قرار Ú¯Ø±ÙØª Ùˆ چشم‌به‌راه است…گذاشتن ویدئونام کاربری اینستاگرام:می‌توانید بازه‌ای از آی‌پی‌های {low_range}-{high_range} را ذخیره کنید. ÙØ§ØµÙ„Ù‡ مجاز نیست. (مثال: 1.1.1.1-2.2.2.2)متن معرÙی‌ای Ú©Ù‡ برای Ø§ÙØ±Ø§Ø¯ÛŒ Ú©Ù‡ یکی از نوشته‌های وب‌نوشت شما را دنبال می‌کنند ÙØ±Ø³ØªØ§Ø¯Ù‡ می‌شود. (جزئیات تأیید Ùˆ وب‌گاه به طور خودکار برایتان Ø§ÙØ²ÙˆØ¯Ù‡ خواهد شد.)متن معرÙÛŒ Ú©Ù‡ برای کسانی Ú©Ù‡ وب‌نوشت شما را دنبال می‌کنند ÙØ±Ø³ØªØ§Ø¯Ù‡ می‌شود. (جزئیات وب‌گاه Ùˆ تأیید به طور خودکار Ø§ÙØ²ÙˆØ¯Ù‡ خواهد شد.)JSON نامعتبرشناسهٔ کاربری معتبر نیست. Ù„Ø·ÙØ§Ù‹ شناسهٔ عددی Goodreads خود را بازبینی Ùˆ دوباره وارد کنید.شناسه نامعتبر استدرخواست نادرستنام کاربری نادرستبه نظر می‌رسد نشانی وب Ùیسبوک شما به درستی پیکربندی نشده است. Ù„Ø·ÙØ§Ù‹ موضوع را در widget تنظیماتتان بررسی کنید.به نگر می‌رسد Ú©Ù‡ وب‌گاه شما نمی‌تواند به درستی با جت‌پک ارتباط برقرار کند.ممکن است یکی از ایرادهای زیر در کار باشند Ú©Ù‡ می‌توانید خودتان بررسی کنید:مواردی Ú©Ù‡ نمایش داده می‌شوند:تخصصیجت‌پکمرکز مشکل‌زدایی جت‌پکپرسشگان جت‌پکتنظیمات شبکهٔ جت‌پک به‌روز شد!کاربر اصلی جت‌پکوب‌گاه‌های جت‌پکتنظیمات اشتراک‌های جت‌پکپشتیبانی جت‌پکجتپک توسط WordPress.comجت‌پک نیروی %s Ùˆ سادگی وردپرس را ترکیب می‌کند تا نهایت ریاضیات بسترهای وب‌نویسی را به شما ارائه نماید.جت‌پک تازه‌ترین نسخه از Ø§ÙØ²ÙˆÙ†Ù‡Ù” کهن “%1$s” را شامل می‌شود.جت‌پک با موÙقیت جدا شد.جت‌پک هم‌اکنون به وردپرس.کام متصل شده استجت‌پک در وضعیت توسعهٔ محلی است.جت‌پک نصب شده است!جت‌پک روی شبکه ÙØ¹Ø§Ù„ شده است Ùˆ آگاه‌سازی‌ها را می‌توان مرخص کرد.جت‌پک هم‌اکنون به وردپرس.کام متصل شده استچتپک به نسخه %s یا بالاتر وردپرس نیاز دارد.جت‌پک با بهره‌گیری از نیروی وردپرس.کام، وردپرس خودمیزبان شما را نیروی صدچندان می‌بخشد.جت‌پک تلاش می‌کند به طور خودکار با رنگ‌بندی وب‌گاه شما هم‌خوان شود، اما شما می‌توانید تنظیمات دستی‌ای را از راه پایین ØµÙØ­Ù‡Ù” تنظیمات Ú¯ÙØªÚ¯Ùˆ انجام دهید.چرخ‌وÙÙ„Ú© جت‌پک از کار انداخته شده است زیرا پوسته یا Ø§ÙØ²ÙˆÙ†Ù‡Ù” دیگری از کد کوتاه [gallery] Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند.پوستهٔ همراه جت‌پک برای پرده‌های نمایش Ú©ÙˆÚ†Ú© بهینه‌سازی شده است. این پوسته از تصویر سرایند، پس‌زمینه Ùˆ ابزارک‌های پوستهٔ کنونی شما Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند تا ظاهری Ø³ÙØ§Ø±Ø´ÛŒ داشته باشد. پشتیبانی از قالب‌های نوشته نیز موجود است Ùˆ عکس‌ها Ùˆ گالری‌ها روی تلÙن‌های هوشمند عالی به نظر می‌رسند.به %s مشترک دیگر بپیوندیدشروع جهشیجهش اولیه برای وب‌گاه شماپرش به:دکمه‌هایی به ویرایشگرهای نوشته Ùˆ ØµÙØ­Ù‡Ù” شما Ù…ÛŒâ€ŒØ§ÙØ²Ø§ÛŒØ¯ Ú©Ù‡ امکان می‌دهد ÙØ±Ù…‌های ساده‌ای را جهت تماس با خودتان به بازدیدکنندگان ارائه دهید.با نمایش تمام‌اندازه Ùˆ در قالب گالری‌های دارای ناوبری، به تصاویر Ùˆ عکس‌هایتان زندگی می‌بخشد.به بازدیدکنندگان خود دو گزینهٔ سادهٔ اشتراک ارائه دهید — در زمان دیدگاه‌گذاری یا از راه یک ابزارک اشتراک جداگانه Ú©Ù‡ می‌توانید به نمایش بگذارید.Ú©Ù…Ú© می‌کند Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ را از راه دور مدیریت کنید، به‌روزرسانی خودکار را ÙØ¹Ø§Ù„ کنید، Ùˆ مواردی دیگر از wordpress.com.با پررنگ‌کردن مطالب مرتبط Ùˆ تازه در زیر نوشته‌های منتشرشده، بازدیدکنندگانتان را با مطالب خود درگیر نگاه دارید.به دیدگاه‌گذاران امکان می‌دهد شناس‌نامه‌های خود را به حساب‌های Gravatar خودشان پیوند دهند Ùˆ به این Ø´Ú©Ù„ امکان دانستن در مورد اجتماع شما را برای بازدیدکنندگان ساده‌تر می‌کند.به شما امکان می‌دهد با یک کلیک Ùˆ با حساب WordPress.comØŒ در همهٔ وب‌گاه‌های دارای جت‌پک خود ثبت ورود کنید.آینهٔ تصاویر شما از شبکهٔ توزیع محتوای سریع Ùˆ رایگان ما، بدون اینکه هیچ بار اضاÙه‌ای روی کارسازهای شما Ø¨ÛŒÙØªØ¯ کارایی وب‌گاه شما را بهبود می‌بخشد.دکمه‌های توییتر، Ùیسبوک Ùˆ Ú¯ÙˆÚ¯Ù„+ هریک از نوشته‌ها Ú©Ù‡ اشتراک‌گذاری مطالب را برای بازدیدکنندگان شما ساده می‌کنند.لاتکشناس‌برگرایانشانیناموب‌گاهگزینهگزینه‌هاانتقالزبانبزرگتصویر وب‌نوشت بزرگواپسین دست‌کاریگزینه‌های چیدمان:بیشتر بدانیددر مورد اینکه کاربر اصلی بودن Ú†Ù‡ معنایی دارد بیشتر بدانید.بیشتر بدانیدپاسخی بگذاریدبرای %s پاسخی بگذاریدپاسخی بگذاریدچپاجازه دهید نامتان را بدانیم.روشندوست داشتندوست‌داشتن:دوست‌داشتن‌هاآگاه‌سازی‌های دوست‌داشتن‌هادوست‌داشتن‌ها این امکان را برای خوانندگانتان ÙØ±Ø§Ù‡Ù… می‌کند Ú©Ù‡ با Ø§Ø³ØªÙØ§Ø¯Ù‡ از حساب‌های WordPress.comØŒ قدردانی خود را از نوشته‌های Ùˆ دیگر مطالب منتشرشدهٔ شما نمایش دهند. خوانندگان شما قادر خواهند بود نوشته‌های دوست‌داشتهٔ شما را از WordPress.com مورد بازبینی قرار دهند.دوست‌داشتن‌ها Ùˆ اشتراک‌گذاری‌هارنگ پیوند (hex):پیوند به:نشانی وب پیوند (هنگامی Ú©Ù‡ تصویر کلیک می‌شود):ویرایشحسابتان را پیوند دهیدلینکدایننام کاربری لینکداین:پیوندهایی به خدماتی Ú©Ù‡ شما در سطح وب Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کنید.پیوندهایی به خوراک آر‌اس‌اس وب‌نوشت شماپیوندهایی به وب‌گاه‌ها Ùˆ وب‌نوشت‌هایتان یا هر وب‌گاهی Ú©Ù‡ در توصی٠کیستی شما Ú©Ù…Ú© می‌کند.پیش‌نمایش زندهپروندهٔ XMLRPC خود را بارگذاری کنید. در یک خط جداگانه باید نوشته باشد “XML-RPC server accepts POST requests only.â€Ø¯Ø± حال بارگیری …در حال بارگذاری دیدگاه‌ها...در حال بارگذاری Ùیلم...بارگذاری…در حال بارگذاری...محل پرونده‌های تصویری Ogg.ثبت ورود از راه WordPress.comوارد شدهوارد نشدهشیوهٔ ثبت ورود Ù¾Ø°ÛŒØ±ÙØªÙ‡â€ŒØ´Ø¯Ù‡ نیستنشان‌وارهناهار: Û±Û±Ù‚.ظ. - ۲ب.ظ. شام: د-Ù¾ ۵ب.ظ. - ۱ب.ظ.ØŒ ج-Ø´:۵ب.ظ. - Û±Ù‚.ظ.M j, Y @ G:iستون کناری اصلیمطمئن شوید Ú©Ù‡ از Ù¾Ø±Ø§Ø³ØªÙØ§Ø¯Ù‡â€ŒØªØ±ÛŒÙ† نشانی‌های آی‌پی خود Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید چراکه این‌ها ممکن است بین محل کار، خانه Ùˆ مکان‌های دیگر تغییر کنند. حذ٠یک یک نشانی آی‌پی از Ùهرست زیر آن را از Ùهرست سÙید شما حذ٠خواهد کرد.تمامی وب‌گاه‌های WordPress خود را، خودمیزبان یا غیر آن، از WordPress.com مدیریت کنیدمدریت برای شما ÙØ¹Ø§Ù„ شده است!از یک پیش‌خوان در wordpress.com/sites چندین وب‌گاه را مدیریت کنید. ÙØ¹Ø§Ù„‌سازی باعث خواهد شد همگی مدیران کنونی متصل‌شده بتوانند وب‌گاه شما را از WordPress.com تغییر دهند. بیشتر بدانید.از راه تنظیمات شناسنامه، Â«ÙØ±Ø³ØªØ§Ø¯Ù† بار رایانامه» را مدیریت کنید.این پیام را به عنوان هرزنامه نبودن نشانه‌گذاری کنیدنشانه‌گذاری این پیام به عنوان هرزنامهمارک‌داون (Markdown) به شما اجازه می‌دهد نوشته‌ها Ùˆ دیدگاه‌هایی به همراه پیوند، Ùهرست Ùˆ دیگر موارد رایج را تنها با Ø§Ø³ØªÙØ§Ø¯Ù‡ از علائم Ùˆ نویسه‌های معمول بنویسید. مارک‌داون توسط وب‌نویسان Ùˆ نویسندگانی Ú©Ù‡ به دنبال راهی ساده برای نوشتن متن‌های غنی، تنها با Ú©Ù…Ú© ØµÙØ­Ù‡â€ŒÚ©Ù„ید رایانه Ùˆ بدون نیاز به آموختن تعداد زیادی کد Ùˆ میانبر، هستند Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌شود.همخوانی برپایهٔ رایانشانیبیشینهٔ نوشته‌هایی Ú©Ù‡ نمایش داده می‌شوند (بیشتر از 10 نباشد):رسانهپروندهٔ رسانه‌ایپهنای رسانه:میانهگزینگانمورد گزینگانمدیریت گزینگانبخش گزینگانبخش‌های گزینگانمورد گزینگان منتشر شد. مشاهده موردمورد گزینگان به بازنگری %s برگردانده شدمورد گزینگان ذخیره شد.مورد گزینگان به‌روز شد.مورد گزینگان به‌روز شد. دیدن موردگزینگان‌هاپیامپیام ÙØ±Ø³ØªØ§Ø¯Ù‡ شدپیام‌هامتا‌دادهزمان‌بندی Ø§Ø²Ø¯Ø³Øªâ€ŒØ±ÙØªÙ‡Ø§Ø² دست Ø±ÙØªÙ† شناسهٔ پیوست.Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø±Ù‡Ø§ÛŒ همراهپوستهٔ تلÙÙ† همراهپنجرهٔ مودال، برای بستن کلید escape را بزنید.Ø§ÙØ²ÙˆØ¯Ù† شمایلی برای وب‌گاهتان.تصاویر، جریان‌های توییتر، پیوندهای آراس‌اس وب‌گاهتان Ùˆ موارد دیگری را به نوار کناری خود Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.Ø§ÙØ²ÙˆØ¯Ù† پشتیبانی از نوردش بی‌پایان به پوستهٔ شما.به برنامه‌های کاربردی اجازه داده شود از راه اتصال امن به محتوای شما به صورت ابری دست‌یابی داشته باشند.به کاربرانتان اجازه دهید از راه رایانامه در نوشته‌ها Ùˆ دیدگاه‌های شما مشترک شوند Ùˆ در مورد آن‌ها آگاه‌سازی Ø¯Ø±ÛŒØ§ÙØª کنند.مطالب را به طور خودکار ترویج کنید.پویش‌های پشتیبان‌گیری Ùˆ امنیتی.املا، سبک Ùˆ دستور زبان خود را را با Ú©Ù…Ú© خدمات نمونه‌خوانی After the Deadline بررسی کنید.جمع‌آوری آمار شدامد Ùˆ دید Ú©Ù„ÛŒ.CSS وب‌گاه خود را بدون تغییردادن پوسته Ø³ÙØ§Ø±Ø´ÛŒ کنید.مطالب مشابه را نمایش دهید.گالری‌های تصویر خود را به صورت چیدمان‌های گراÙیکی خوش‌دست Ùˆ گوناگون به نمایش بگذارید.محتوای وب‌گاه‌هایی چون یوتیوب، ویمیو، اسلایدشیر Ùˆ موارد دیگر را بدون نیاز به کدنویسی در مطالب خود جاسازی کنید.پیوندهای کوتاه Ù†ÛŒØ±ÙˆÚ¯Ø±ÙØªÙ‡ از WP.me را برای همهٔ نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒØªØ§Ù† به کار اندازید.ÙØ¹Ø§Ù„‌سازی کارت‌های تجاری بالاپَر بر روی گراواتار دیدگاه‌گذاران.برای بازدیدکنندگان راهی آسان جهت تشکر از مطالبتان ÙØ±Ø§Ù‡Ù… کنید.درج ÙØ±Ù… تماس در هرجایی از وب‌گاهتان.به کاربران اجازه دهید با حساب‌های وردپرس.کام، توییتر، Ùیسبوک یا Ú¯ÙˆÚ¯Ù„+ دیدگاهشان را بیان کنند.همهٔ وب‌گاه‌های خود را از یک مکان مرکزی مدیریت کنید، https://wordpress.com/sites.وب‌گاه خود را با یک پوستهٔ سازگار با تلÙن‌های همراه Ùˆ تبلت‌ها بهینه کنید.سازمان‌دهی Ùˆ نمایش گونه‌های مختلÙÛŒ از مطالب روی وب‌گاهتان، جدا از نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§.از حملات غیرهوشمندانه پیش‌گیری کنید.نوشته‌هایتان را با رایانامه منتشر کنید، با Ø§Ø³ØªÙØ§Ø¯Ù‡ از هر دستگاهی Ú©Ù‡ می‌تواند رایانامه ارسال کند.Ø¯Ø±ÛŒØ§ÙØª آگاه‌سازی در مورد ÙØ¹Ø§Ù„یت وب‌گاهتان از راه نوار ابزار مدیریتی Ùˆ دستگاه‌های همراهتان.Ú©Ù„ دادگان خود را از یک نقطه در پیشخوان خود جست‌وجو کنید.اصالت‌سنجی امن کاربر.مشخص کنید Ú©Ù‡ کدام ابزارک‌ها روی کدام ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ وب‌گاه شما نمایش می‌یابند.عکس‌ها Ùˆ تصاویر را سرعت ببخشیدتبدیل گالری‌های استاندارد تصاویر به نمایش اسلایدهای تمام‌پرده.Ùیلم‌ها را یک‌راست روی وب‌گاه خود بارگذاری Ùˆ منتشر کنید. (نیازمند اشتراک.)Ø§Ø³ØªÙØ§Ø¯Ù‡ از زبان نشانه‌گذاری لاتک در ØµÙØ­Ù‡â€ŒÙ‡Ø§ Ùˆ نوشته‌ها برای معادله‌های پیچیده Ùˆ گیک‌بازی‌های دیگر.وب‌گاه یا دامنهٔ خود را با ابزارهای وب‌مستر Ú¯ÙˆÚ¯Ù„ Ùˆ موارد مشابه تأیید کنید.بازدیدکنندگان می‌توانند مطالب شما را به اشتراک بگذارند.نوشته‌ها یا ØµÙØ­Ù‡â€ŒÙ‡Ø§ را به صورت متن سادهٔ مارک‌داون بنویسید.اطلاعات پودمانریاضیات زیباچرخ ÙÙ„Ú©ÙØ±Ù… تماسسی‌اس‌اس Ø³ÙØ§Ø±Ø´ÛŒÚ¯ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ Ø³ÙØ§Ø±Ø´ÛŒ مطالبتوزیع Ø¨Ù‡Ø¨ÙˆØ¯ÛŒØ§ÙØªÙ‡Ø§Ø¨Ø²Ø§Ø±Ú©â€ŒÙ‡Ø§ÛŒ نوار کناری بیشترکارت‌های شناور گراواتارنوردش بی‌پایانای‌پی‌آی جی‌سن (JSON)دوست‌داشتن‌هامدیریتمارک‌داونپوستهٔ همراهپایشآگاه‌سازی‌هاهمه‌چیزجوÙÙˆØªÙˆÙ†ÙØ±Ø³ØªØ§Ø¯Ù† با Ø±Ø§ÛŒØ§Ù†Ø§Ù…Ù‡Ù…Ø­Ø§ÙØ¸ØªØ§Ø·Ù„اع‌رسانینوشته‌های مرتبطاشتراک‌گذاریجاسازی کدهای کوتاهشمایل وب‌گاهتأیید وب‌گاهاملا Ùˆ دستور زباناشتراک‌هاگالری‌های کاشی‌کاری‌شدهوالت‌پرسویدئوپرسپیوندهای کوتاه WP.meرویت‌پذیری ابزارک‌هانمامدیریت مرکزیتوسعه‌دهندگانشروع‌جهشیتلÙÙ† همراهموارد دیگرعکس‌ها Ùˆ Ùیلم‌هاپیشنهادیآمار وب‌گاهاجتماعینوشتنپودمان ÛŒØ§ÙØª نشد: `%s`.پودمان‌ها به حالت Ù¾ÛŒØ´â€ŒÙØ±Ø¶ بازگشتندبایگانی ماهانه: %sبایگانی ماهانهبیشتراطلاعات بیشتراطلاعات بیشتر دربارهٔ ÙØ±Ø³ØªØ§Ø¯Ù† رایانامه‌ها، پیوست‌ها Ùˆ Ø³ÙØ§Ø±Ø´ÛŒâ€ŒØ³Ø§Ø²ÛŒ نوشته‌هایتان.اطلاعات بیشتر در مورد Ø§Ø³ØªÙØ§Ø¯Ù‡ از دوست‌داشتن‌ها.اطلاعات بیشتر در مورد Ø§Ø³ØªÙØ§Ø¯Ù‡ از نوشته‌های مرتبط.جت‌پک منتوییت‌های مننامتنظیمات شبکهطنز تازهنام بخش‌های گزینگان تازهپروژۀ تازهنام برچسب پروژۀ تازهنام نوع پروژه تازهردی٠تازهگواهی‌نامهٔ تازهزمینهٔ تازهتازه در جت‌پک: مدیریت وب‌گاه مرکزیدیدگاه‌های تازه‌تر →تازه‌ترینبعدی »Ø¨Ø¹Ø¯ÛŒ »Ø®ÛŒØ±Ø¨Ø¯ÙˆÙ† کادرهیچ طنزی ÛŒØ§ÙØª شدهیچ طنزی در سطل زباله ÛŒØ§ÙØª نشدبدون پاورقیبدون سرآیندهیچ پودمانی ÛŒØ§ÙØª نشدهیچ پروژه‌ای ÛŒØ§ÙØª نشدهیچ پروژه‌ای در زباله‌دان ÛŒØ§ÙØª نشدبدون نوار نوردشهیچ گواهی‌نامه‌ای ÛŒØ§ÙØª نشدهیچ گواهی‌نامه‌ای در زباله‌دان ÛŒØ§ÙØª نشدهیچ ÙØ±Ù…انی ÛŒØ§ÙØª نشد.هیچ متنی برای دیدگاه ثبت نشده.داده‌ای برای شناساگر ویدئوپرس پیدا نشد: %s.هیچ بازخوردی ÛŒØ§ÙØª نشدهیچ نشان‌واره‌ای تنظیم نشده Ø§Ø³ØªØ§ÙØ²ÙˆÙ†Ù‡â€ŒØ§ÛŒ ÛŒØ§ÙØª نشد.پیشنهادی وجود نداردهیچ برچسبی ÛŒØ§ÙØª نشد.هیچ پوسته‌ای ÛŒØ§ÙØª نشد.رویدادی در پیش نیستنیازی به به‌روزرسانی نیستخطای نگارشی‌ای ÛŒØ§ÙØª نشد.هیچ‌کس از دسترس خارج شدن را دوست ندارد، به همین خاطر است Ú©Ù‡ پایشگر جت‌پک سروپاگوش است Ùˆ هر Ûµ دقیقه وب‌گاه شما را بررسی می‌کند. به محض اینکه خارج شدن از دسترسی شناسایی شود، یک رایانامهٔ آگاه‌سازی Ø¯Ø±ÛŒØ§ÙØª خواهید کرد Ú©Ù‡ به شما در مورد این مشکل هشدار می‌دهد. به این Ø´Ú©Ù„ شما می‌توانید به‌سرعت واکنش نشان دهید Ùˆ وب‌گاه خود را دوباره برخط سازید!هیچکداممتصل نیستمتصل نیستتوجه: CSS Ø³ÙØ§Ø±Ø´ÛŒ هنگام تغییر پوسته‌ها بازنشانی خواهد شد.توجه: تصاویر درون گالری‌های کاشی‌شده نیازمند پردازش ویژهٔ بیشتر هستند، بنابراین حتی اگر پودمان Ùوتون از کار انداخته شده باشد، از راه شبکهٔ توزیع محتوای WordPress.com ارائه خواهند شد.چیزی پیدا نشدآگاه‌سازی‌هامرا از دیدگاه‌های پس از این با رایانامه آگاه Ú©Ù†.مرا از نوشته‌های تازه با رایانامه آگاه Ú©Ù†.کاربرنویسندهنقشتاریخبرچسبرده‌بندی،هم‌اکنون می‌توانید Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ را به‌روز کنید، به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ را خودکار کنید، Ùˆ Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ وب‌گاه را جداگانه یا دسته‌جمعی از wordpress.com/plugins ÙØ¹Ø§Ù„ یا ØºÛŒØ±ÙØ¹Ø§Ù„ کنید.شمار نوشته‌ها برای نمایش:پذیرشدکمه‌های رسمینشانی وب پروندهٔ Oggدربرگیرندهٔ پروندهٔ ogg با ویدئوی Theora Ùˆ صوت Vorbis. توجه داشته باشید Ú©Ù‡ برخی از مرورگرهای نمی‌توانند قالب‌های ویدئویی آزاد را پخش کنند، از جمله Internet Explorer Ùˆ Safari.%s پیشیننوشته‌های پیشینامنی‌سرچهمه‌چیزجو (Omnisearch) به خوبی با دیگر Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ÛŒ شما کنار می‌آید Ùˆ اجازه می‌دهد دیگر ÙØ±Ø§Ù‡Ù…‌کنندگان نیز نتایج آن را ارائه دهند.روی همۀ دیدگاه‌هاروی تمام نوشته‌هادر این ØµÙØ­Ù‡ می‌توانید پودمان‌های در دسترس درون جت‌پک را ببینید، چیزهای بیشتری دربارهٔ آن‌ها بیاموزید، Ùˆ در صورت نیاز آن‌ها را ÙØ¹Ø§Ù„ یا ØºÛŒØ±ÙØ¹Ø§Ù„‌کنید.پس از Ø§ÙØ²ÙˆØ¯Ù‡â€ŒØ´Ø¯Ù†ØŒ مطالب Ø³ÙØ§Ø±Ø´ÛŒ شما روی وب‌گاهتان در %1$s یا %2$s رویت‌پذیر خواهد بود. همچنین می‌توانید آن‌ها را به Ú©Ù…Ú© کدهای کوتاه Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.پس از ÙØ¹Ø§Ù„‌شدن، یک گزینهٔ «ثبت ورود با WordPress.com» به ÙØ±Ù… ثبت ورود شما Ø§ÙØ²ÙˆØ¯Ù‡ خواهد شد.%s پودمان تازهٔ جت‌پکتنها Ùیلم‌هایی با قالب Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø±ÛŒ آزاد نمایش داده شودتنها تصاویر می‌توانند اینجا بارگذاری شوند.تنها اَبَرمدیرها می‌توانند Ùهرست سÙید سراسری را ویرایش کنندتنها Ùیلم‌های موجود در وب‌نوشت گزیده‌شده در کتابخانهٔ رسانهٔ شما در دسترس خواهد بود.no-subsetرویباز کردن پیوند در یک پنجره/ØµÙØ­Ú© تازهبازکردن پیوندها در پنجره یا سربرگ تازه:در یک پنجرهٔ تازه باز می‌شودگزینهگزینه پیدا نشد Ùˆ یا خالی است. از «Ùهرست‌کردن» برای Ùهرست‌کردن نام گزینه‌های Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.متن اختیاری Ú©Ù‡ برای خوانندگان شما نمایش داده می‌شود:گزینه‌هانارنجیترتیبانواع Ù…ØªÙØ§ÙˆØª مطالب وب‌گاهتان را سازماندهی Ùˆ نمایش دهید، جدا از نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§.ØµÙØ­Ù‡Ù” %sØµÙØ­Ù‡â€ŒÙ‡Ø§:بخش گزینگان والدنوع پروژۀ مادرنوع پروژۀ مادر:حالت مجهولمسیرکارایی Ùˆ امنیتپیوند پایدار به %sپیوندهای شخصیتلÙÙ†:عباراتی Ú©Ù‡ باید از آنها پرهیز کردبازتاب:صورتیپین‌ترستنام کاربری پین‌ترست:برای اجرای %s به جاوا اسکرپیت نیاز است.Ù„Ø·ÙØ§Ù‹ مشکلتان را شرح دهید.برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از VideoPress Ù„Ø·ÙØ§Ù‹ پشتیبانی جاوااسکریپت مرورگر خود را ÙØ¹Ø§Ù„ کنید.Ù„Ø·ÙØ§Ù‹ نشانی آی‌پی‌ای Ú©Ù‡ می‌خواهید در Ùهرست سÙید جای بگیرد را وارد کنید.Ù„Ø·ÙØ§Ù‹ توجه داشته باشید Ú©Ù‡ پودمان ویدئوپرس نیازمند حساب WordPress.com به همراه یک اشتراک ویدئوپرس ÙØ¹Ø§Ù„ است.Ù„Ø·ÙØ§ توجه داشته باشید Ú©Ù‡ چون وب‌گاه شما خصوصی است خدمات محدود شده‌اند.خواهشمندیم یک رایانشانی معتبر ارائه دهید.خواهشمندیم یک رایانشانی برای بیان دیدگاه ÙØ±Ø§Ù‡Ù… آورید.خواهشمندیم یک رایانشانی ارائه دهید.خواهشمندیم برای گذاشتن دیدگاه نامتان را بنویسید.خواهشمندیم نام خود را ارائه کنید.Ù„Ø·ÙØ§Ù‹ یک پروندهٔ‌ ویدئویی برای بارگذاری برگزینید.Ù„Ø·ÙØ§Ù‹ یک کاربر را با Ø§Ø³ØªÙØ§Ø¯Ù‡ از شناسه، نام کاربری Ùˆ یا رایانشانی مشخص کنید.Ù„Ø·ÙØ§Ù‹ یک پودمان معتبر ذکر کنید.Ù„Ø·ÙØ§Ù‹ کاربر معتبری وارد کنید.Ù„Ø·ÙØ§Ù‹ اگر می‌خواهید وب‌نوشت یا کاربری را جدا کنید، آن را مشخص نمایید.در صورتی Ú©Ù‡ می‌خواهید گزینه‌ها یا پودمان‌هایتان بازنشانی شود Ù„Ø·ÙØ§Ù‹ این موضوع را مشخص Ú©Ù†ÛŒØ¯Ù„Ø·ÙØ§Ù‹ پرونده‌ای را باربگذارید.خواهشمندیم زادروز خود را درستی‌سنجی نمایید.Ø§ÙØ²ÙˆÙ†Ù‡ ÙØ¹Ø§Ù„ شد.Ø§ÙØ²ÙˆÙ†Ù‡ ØºÛŒØ±ÙØ¹Ø§Ù„ شد.Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§PocketÙ¾Ø±Ø·Ø±ÙØ¯Ø§Ø±Ø¨Ø±Ú†Ø³Ø¨â€ŒÙ‡Ø§ÛŒ Ù¾Ø±Ø·Ø±ÙØ¯Ø§Ø± پروژهنمونه‌کارموارد نمونه‌کارپروژه‌های Ù†Ù…ÙˆÙ†Ù‡â€ŒÚ©Ø§Ø±ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ نمونه‌کار در حالت بیشینه %1$s پروژه را نمایش Ù…ÛŒâ€ŒØ¯Ù‡Ù†Ø¯ÙØ±Ø³ØªØ§Ø¯Ù† دیدگاهنوشتهٔ %s.ÙØ±Ø³ØªØ§Ø¯Ù† با Ø±Ø§ÛŒØ§Ù†Ø§Ù…Ù‡Â«ÙØ±Ø³ØªØ§Ø¯Ù† با رایانامه» روش برای انتشار نوشته‌ها روی وب‌نوشتتان از راه رایانامه است. هر کارخواه رایانامه‌ای را می‌توان برای ÙØ±Ø³ØªØ§Ø¯Ù† نامه Ø§Ø³ØªÙØ§Ø¯Ù‡ کرد. اجازه می‌دهد به‌سرعت Ùˆ به‌سادگی مطالب را از Ø§ÙØ²Ø§Ø±Ù‡â€ŒÙ‡Ø§ÛŒÛŒ مانند تلÙÙ† همراه منتشر کنید.%s نوشته تبدیل شدناوبری نوشتهنوع نوشته:نوشته ÙØ±Ø³ØªØ§Ø¯Ù‡ نشد - رایانشانی‌های خود را بررسی کنید!نوشته شده توسطنوشته شده توسط %sنوشته شده در %sنوشته‌هانوشته‌ها Ùˆ دیدگاه‌هانوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§Ù†ÙˆØ´ØªÙ‡â€ŒÙ‡Ø§ نمایه‌سازی شدند.ØµÙØ­Ù‡Ù” نوشته‌هاخدمات اعلای Jetpackنشر اینپیش‌نمایشپیش‌نمایش ÙØ§ÙˆØ¢ÛŒÚ©Ù†.پیش‌نمایش شمایل خانهپیش‌نمایش:پیش‌نمایش: تغییرات باید ذخیره شوند در غیر اینصورت حذ٠خواهند شدگزینگان اصلیکاربر اصلی وب‌گاهچاپحریمسیاست حریمدر حال پردازش...پروژهبرچسب پروژهبرچسب‌های پروژهگونهٔ پروژهانواع پروژه‌هامورد پروژهٔ پیش‌نویس به‌روز شد. پیش‌نمایش پروژهپروژه منتشر شد. مشاهدۀ پروژهپروژه به بازنگری %s برگردانده شدپروژه ذخیره شد.پروژه زمان‌بندی شد برای: %1$s. پیش‌نمایش پروژهپروژه ثبت شد. پیش‌نمایش پروژهپروژه به‌روز شد.پروژه به‌روز شد. دیدن موردپروژه‌هانمونه‌خوانی نوشتهنمونه‌خوانیپاسدار نمی‌تواند وب‌گاه شما را ایمن نگاه دارد.پاسدار Ú©Ù…Ú© می‌کند از دست حملات ثبت ورود غیرهوشمندانه (brute-force) ایمن بمانید.Ùهرست سÙید Ù…Ø­ÙØ§Ø¸ØªØ¨Ø§ Ø§ÙØªØ®Ø§Ø±ØŒ نیرو Ú¯Ø±ÙØªÙ‡ از %sبا Ø§ÙØªØ®Ø§Ø± نیرو Ú¯Ø±ÙØªÙ‡ از وردپرسانسان‌بودن خود را ثابت کنید:اطلاع رسانیاطلاع رسانی:انتشارمنتشر شدهناشر پخش Ùیلم‌های جاسازی‌شده را محدود کرده است.Ø¨Ù†ÙØ´Ù‚رار دادن نمودار نمایش 48 ساعت از بازدیدها در نوار مدیربرای بررسی شناسنامهٔ خود، موشی را روی گراواتارتان ببرید.بازنشانی هــمــه‌چــیــز (تنها در مراحل آزمایش) - پودمان‌ها را نیز به حالت Ù¾ÛŒØ´â€ŒÙØ±Ø¶ بازمی‌گرداندپیوندهای RSSترتیب تصادÙÛŒ:Ù†Ù…Ø±Ù‡Ø¯Ø±ÛŒØ§ÙØª رایانامه‌های آگاه‌سازی نظارتی.نوشته‌های ØªØ§Ø²Ù‡Ù‚Ø±Ù…Ø²Ø±ÙØ¯ÛŒÙ€ØªØ¹Ø¨Ø§Ø±Ø§Øª حشوتازه‌سازی وضعیتنوسازی اتصال با %sکاربران ثبت‌نام شدهبازنمایه‌سازی نوشته‌هامرتبطنوشته‌های مرتبطنوشته‌های مرتبطبرداشتن شمایلبرداشتن خدمتبرداشتن نشان‌وارهواژهٔ تکراریجایگزین کردن قسمت گزینش شده با:پاسخگزارش دیدالزامی‌کردن اصالت‌سنجی دومرحله‌ایدر حال بازنشانی گزینه‌های جت‌پک... در حال بازنشانی پودمان‌های Ù¾ÛŒØ´â€ŒÙØ±Ø¶... در حال بازنشانی گزینه‌های جت‌پک Ú©Ù‡ در wp_options ذخیره شده‌اند... Ø¨Ø§Ø²ÛŒØ§ÙØªØ¨Ø§Ø²Ú¯Ø±Ø¯Ø§Ù†Ø¯Ù† این مورد از زباله‌داننتایج:راستذخیرهذخیرهٔ تغییراتذخیره‌سازی Ø³ÙØ§Ø±Ø´ تازهذخیره‌سازی سبک‌برگهذخیره‌سازی Ùˆ برگشتن به ÙØ±Ù…‌سازپیکربندی را ذخیره کنیدذخیرۀ این زمینهزمان‌بندی شدهجست‌وجوجستجوی طنزهاجست‌وجو در دیدگاه‌هاجست‌وجوی همه‌چیزجست‌وجوی بازخوردجست‌وجوی چندرسانه‌ایجستجوی بخش‌های گزینگانجستجوی پودمان‌ها…جست‌وجوی Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§Ø¬Ø³Øªâ€ŒÙˆØ¬ÙˆÛŒ برچسب‌های پروژهجستجوی انواع پروژهجستجوی پروژه‌هانتایج جست‌وجو برای: %sجست‌وجوی گواهی‌نامه‌هایک جستجو، نتایج از همه‌چیز! در حال حاضر جستجوی نوشته‌ها، ØµÙØ­Ù‡â€ŒÙ‡Ø§ØŒ دیدگاه‌ها، رسانه Ùˆ Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ را پشتیبانی می‌کند.نتایج جست‌وجو%s ویژگی دیگر جت‌پک را ببینیدکاربری را گزینش کنید Ùˆ یا Â«Ø³ÙØ§Ø±Ø´ÛŒÂ» را برگزینید Ùˆ یک رایانشانی Ø³ÙØ§Ø±Ø´ÛŒ وارد نمایید.انتخاب بازخورد تا بارگیری شودنقش‌هایی را Ú©Ù‡ می‌توانند گزارش‌های آماری را ببینند برگزینید.بستر معنایی نشر Ø´Ø®ØµÛŒÙØ±Ø³ØªØ§Ø¯Ù† Ø±Ø§ÛŒØ§Ù†Ø§Ù…Ù‡ÙØ±Ø³ØªØ§Ø¯Ù† به Ø±Ø§ÛŒØ§Ù†Ø´Ø§Ù†ÛŒÙØ±Ø³ØªØ§Ø¯Ù‡ شده به وسیلهٔ یک کاربر درستی‌سنجی شدهٔ %s.ÙØ±Ø³ØªØ§Ø¯Ù‡ شده به وب‌گاه شما بدست یک بازدیدکنندهٔ درستی‌سنجی‌نشده.برچسب‌ها را با ویرگول لاتین (,) جدا کنیدنام خدمت%1$s: %2$sخدمات کشیده شده به اینجا جداجدا نمایان می‌شوند.خدمات کشیده‌ شده به اینجا در پشت یک دکمهٔ اشتراک‌گذاری پنهان خواهند شد.تنظیم به عنوان نشان‌وارهتنظیم دارندهٔ اصلی حسابتنظیماتتنظیمات ذخیره شده‌انداشتراک‌گذاریبه اشتراک گذاشتن در Ùیسبوکاشتراک‌گذاری روی تامبلراشتراک‌گذاری این:به اشتراک گذاشته شدهنوشتهٔ به اشتراک گذاشته شدهاشتراک‌گذاریدکمه‌های اشتراک‌گذاریتنظیمات اشتراک‌گذارینشانی وب اشتراک‌گذاریشناس‌برگ Ø§Ø´ØªØ±Ø§Ú©â€ŒÚ¯Ø°Ø§Ø±ÛŒÙ‚ÙØ³Ù‡:کد کوتاهجاسازی کد کوتاهکدهای کوتاه اجازه می‌دهند به سادگی Ùˆ با امنیت، رسانه‌های جاهای دیگر را در وب‌گاه خود جاسازی کنید. تنها یا یک کد ساده، می‌توانید به وردپرس بگویید یوتیوب، Ùلیکر یا دیگر رسانه‌ها را جاسازی کند.نمایشنمایش پیوندهای حسابنمایش عکس جلدنمایش چکیده‌ها:نمایش صورت‌هانمایش تصویر ویژه:ØµÙØ­Ù‡â€ŒÙ†ÙˆØ´ØªÙ‡â€ŒÙ‡Ø§ نمایش داده شود.نمایش پیوندهای شخصینمایش جریاننمایش گزینهٔ «دنبال‌کردن وب‌نوشت» در ÙØ±Ù… دیدگاهنمایش یک گزینهٔ 'دنبال‌کردن دیدگاه‌ها' درون ÙØ±Ù… بیان دیدگاهنمایش دکمه‌ها روینمایش ریزش بر٠روی وب‌نوشت من تا چهارم ژانویه.نمایش دوست‌داشتن‌ها.نمایش نقشهنمایش بیشترنمایش تصاویر شناس‌نامه در Ø§ÙØ²ÙˆÙ†Ù‡.نمایش مطالب مرتبط بعد از نوشته‌هانمایش دکمه‌های به اشتراک‌گذاری.نمایش دکمۀ بازوب‌نویسی روی نوشته‌هانمایش برترین نوشته درنمایش برترین عبارات جست‌وجو درشمار مشترکان نمایش داده شود؟ (%s مشترک)نمایش:یاپربازدیدترین نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ شما را نمایش می‌دهد.سرعت نوربندنقره‌اینوشته‌های مشابهثبت ورود ØªÚ©â€ŒÙ†ÙØ±Ù‡Ù†Ù‚Ø´Ú© وب‌گاهبارگذاری شمایل وب‌گاهشمایل وب‌گاه یک favicon برای وب‌گاه شما ایجاد می‌کند Ùˆ چیزهای دیگر.شمایل وب‌گاه به شما اجازه می‌دهد برای وب‌گاه خود یک شمایل بسازید. این شمایل به عنوان شمایل وب‌گاه در Ùهرست علاقه‌مندی‌های کاربر Ùˆ نیز در کاشی‌های ویندوز Û¸ رویت‌پذیر است.نشان‌واره وب‌گاهنام وب‌گاهآمار وب‌گاهعنوان وب‌گاه، شعار Ùˆ نشان‌وارنام کاربری وب‌گاهنام کاربری وب‌گاه (اصلی)وب‌گاه‌هاپریدننمایش پرده‌ایکوچکخندانکصورتک Ø®Ù†Ø¯Ø§Ù†Ø¨Ø±ÙØ§Ø¬ØªÙ…اعیشمایل شبکه‌های اجتماعیبرخی از Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ Ùˆ پوسته‌ها ناسازگاری‌ها شناخته‌شده‌ای با جت‌پک دارند – Ùهرست را ببینید. (همچنین می‌توانید ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ پشتیبانی جت‌پک یا انجمن پشتیبانی جت‌پک را مرور کنید Ùˆ ببنید اگر دیگران هم مشکل شما را داشته‌اند چگونه آن را حل کرده‌اند.)کسی یکی از نوشته‌های مرا دوست می‌داردنکتهٔ مبهمی در اتصال جت‌پک شما وجود دارد!مشکل در کد کوتاه WufooÛŒ شما موجود است. اگر آن را از %sمدیر کد Wufoo%s رونوشت‌برداری کنید، باید مثل مَرد کار کند.پوزش، هیچ پودمانی برای برای جستجوی عبارت «%s» ÛŒØ§ÙØª نشدپوزش، در این لحظه امکان به‌روزرسانی آرایه‌های وجود Ù†Ø¯Ø§Ø±Ø¯Ù…ØªØ£Ø³ÙØ§Ù†Ù‡, هیچ گزارشی موجود نیست.پوزش، وب‌نوشت شما نمی‌تواند نوشته‌ها را با رایانامه به اشتراک بگذارد.پوزش، مرورگر شما پشتیبانی نمی‌شود. ارتقا در browsehappy.com.پوزش. نمی‌توانیم نقشهٔ این نشانی را رسم کنیم. نقشه‌ای نمایش داده نخواهد شد. آیا قالب نشانی صحیح است؟چینش بر اساس:هرزنامههرزنامه (%s)املااملا Ùˆ دستور زبانکاشی‌های Ù…Ø±Ø¨Ø¹ÛŒØµÙØ­Ù‡â€ŒÛŒ ایستا:آماروضعیت نامشخص است.سبک:سبک‌برگه ذخیره شد.اولویت‌بخشی روی Ø²ÛŒØ±ÙˆØ¨â€ŒÚ¯Ø§Ù‡â€ŒÙ‡Ø§Ù…ÙˆØ¶ÙˆØ¹ÙØ±Ø³ØªØ§Ø¯Ù†Ø§Ø±Ø³Ø§Ù„ »Ø§Ø±Ø³Ø§Ù„ دیدگاه%sمشترک شدندکمهٔ اشتراک:جانگه‌دار اشتراک:مشترک‌شدن در %sاشتراک در وب‌نوشت از راه رایانامهمتن پیام موÙقیت:پیروزی! همین حالا رایانامه‌ای برای تأیید اشتراک برای شما ÙØ±Ø³ØªØ§Ø¯Ù‡ شد. Ù„Ø·ÙØ§Ù‹ آن را بیابید روی ÙØ¹Ø§Ù„‌سازی کلیک کنید تا اشتراک شما آغاز شود.موÙقیت! شروع جهشی وب‌گاه شما انجام شد.پشتیبانینام برچسببرچسب‌هاوردپرس را به همراه داشته باشید.تصویر بزرگ موقت به عنوان تصویر وب‌نوشتتصویر ØªØºÛŒÛŒØ±Ø§Ù†Ø¯Ø§Ø²Ù‡â€ŒÛŒØ§ÙØªÙ‡Ù” موقت به عنوان تصویر وب‌نوشتشرایط Ùˆ ضوابط خدماتگواهی‌نامهمحتوای ØµÙØ­Ù‡Ù” گواهی‌نامهتصویر ویژهٔ ØµÙØ­Ù‡Ù” گواهی‌نامهعنوان ØµÙØ­Ù‡Ù” گواهی‌نامهپیش‌نویش گواهی‌نامه به‌روز شد. پیش‌نمایش Ú¯ÙˆØ§Ù‡ÛŒâ€ŒÙ†Ø§Ù…Ù‡ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ گواه‌نامه بیشینهٔ %1$s گواه‌نامه را نمایش می‌دهندتصدیق‌نامه منتشر شد. مشاهده گواهی‌نامهگواهی‌نامه به نسخهٔ %s برگردانده شدگواهی‌نامه ذخیره شد.گواهی‌نامه زمان‌بندی شد برای: %1$s. پیش‌نمایش گواهی‌نامهگواهی‌نامه ÙØ±Ø³ØªØ§Ø¯Ù‡ شد. پیش‌نمایش گواهی‌نامهگواهی‌نامه به‌روز شد.تصدیق‌نامه به‌روز شد. دیدن گواهی‌نامهگواهی‌نامه‌هامتنپیوند‌های تصویری Ùˆ متنیپیوند متنیÙهرست متنیتنها متناز این Ú©Ù‡ پاسدار را ÙØ¹Ø§Ù„ کرده‌اید سپاسگزاریم! برای آغاز پاسداری از وب‌گاهتان Ù„Ø·ÙØ§Ù‹ جت‌پک را به صورت شبکه‌ای روی نصب چندوب‌گاههٔ خود ÙØ¹Ø§Ù„ کنید Ùˆ Ù…Ø­Ø§ÙØ¸Øª را در وب‌گاه اصلی به کار اندازید. با توجه به شیوه‌ای Ú©Ù‡ ثبت‌های ورود در WordPress چندوب‌گاهه تحلیل می‌شوند، ضروری است Ú©Ù‡ جت‌پک به صورت شبکه‌ای ÙØ¹Ø§Ù„ باشد تا پاسدار به‌درستی کار کند. اطلاعات بیشترآن اتّصال حذ٠شده است.ویرایش‌گر Ø³ÙØ§Ø±Ø´ÛŒ CSS‌ به شما امکان Ø§ÙØ²ÙˆØ¯Ù† به CSS٠پوسته‌تان Ùˆ یا جایگزین‌کردن آن را می‌دهد. در عین حال امکان رنگ‌بندی ساختار، ÙØ±ÙˆØ±Ùتگی خودکار، Ùˆ بازخورد بی‌درنگ در مورد معتبربرودن CSSای Ú©Ù‡ در حال نوشتن آن هستید را ÙØ±Ø§Ù‡Ù… می‌کند.پودمان جت‌پک از پیش ÙØ¹Ø§Ù„ است.پودمان جت‌پک از پیش ØºÛŒØ±ÙØ¹Ø§Ù„ است.نسخهٔ جت‌پک: %sنام کاربری توییتر دارندهٔ دامنهٔ این ÙˆØ¨â€ŒÚ¯Ø§Ù‡Ø§ÙØ²ÙˆÙ†Ù‡Ù” ویدئوپرس نتوانست با کارسازهای ویدئوپرس تماس بگیرد. رایج‌ترین علت این مشکل پیکربندی نادرست Ø§ÙØ²ÙˆÙ†Ù‡ است. Ù„Ø·ÙØ§Ù‹ دوباره نصب کنید یا ارتقا دهید.شناسهٔ کاربری وردپرس.کام٠کاربر متصل‌شدهرایانشانی کاربر وردپرس.کام متصل‌شدهنام کاربری وردپرس.کام کاربر متصل‌شدهblog_id وردپرس.کام: %dرایانشانی‌ای Ú©Ù‡ وارد کردید نامعتبر بود. Ù„Ø·ÙØ§Ù‹ بررسی Ùˆ دوباره تلاش کنید.پرونده‌ای Ú©Ù‡ بارگذاری کرده‌اید از انواع Ù¾Ø°ÛŒØ±ÙØªÙ‡â€ŒØ´Ø¯Ù‡ نیست. Ù„Ø·ÙØ§Ù‹ دوباره تلاش کنید.این تصویر به جمع‌آوری آمار Ú©Ù…Ú© می‌کند Ùˆ کلاً جهان را به جایی بهتر تبدیل می‌کند اما حتی اگر پنهان باشد هم باید کار کند.لازم است تصویر دست Ú©Ù… این اندازه باشد:تصویری Ú©Ù‡ بارگذاری کرده‌اید بلندایش از %upx کمتر است.تصویری Ú©Ù‡ بارگذاری کرده‌اید پهنایش از %upx کمتر است.جت‌پکجت‌پک %sشمار وب‌گاه‌های کاربر وردپرس.کام Ù…ØªØµÙ„â€ŒØ´Ø¯Ù‡Ø§ÙØ²ÙˆÙ†Ù‡ از پیش نصب شده استدر زمانی Ú©Ù‡ این ویدئو پردازش می‌شود، پیش‌نمایش در دسترس نیست.اتصال اصلی متعلق به حساب وردپرس.کام٠%s است.نمونه‌خوان پیشنهادهایی برای این نوشته دارد. آیا مطمئنید Ú©Ù‡ می‌خواهید منتشرش کنید؟ پـذیـرش را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ تا نوشته‌تان منتشر شود، یا لـغـو برای مشاهدهٔ پیشنهاد‌ها Ùˆ ویرایش نوشتهنمونه‌خوان پیشنهادهایی برای این نوشته دارد. آیا مطمئنید می‌خواهید به‌روزش کنید؟ پـذیـرش را Ø¨ÙØ´Ø§Ø±ÛŒØ¯ تا نوشته‌تان به‌روز شود، یا لـغـو برای مشاهدهٔ پیشنهاد‌ها Ùˆ ویرایش نوشته.پارامتر پاسخ نامعتبر یا بدشکل استپارامتر پاسخ موجود نیستپارامتر رمز نامعتبر یا با ساختاری نادرست استپارامتر رمز موجود نیستتنظیمات مربوط به مطالب ویژه به نما → Ø³ÙØ§Ø±Ø´ÛŒâ€ŒØ³Ø§Ø²ÛŒ منتقل شده است.نتایج آزمون Ùˆ برخی اطلاعات Ù…Ùید دیگر برای تیم پشتیبانی ÙØ±Ø³ØªØ§Ø¯Ù‡ خواهد شد. می‌توانید این اطلاعات را بازبینی کنید/تغییر دهید.پوسته از پیش نصب شده استاین ابزارک تنها با ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ Ùیسبوک کار می‌کند.پوسته: %1$s.پوسته‌هاهیچ نوشته‌ای برای نمایش وجود ندارد. شدآمد بیشتری می‌خواهید؟به‌روزرسانی‌ای برای پوستهٔ شما در دسترس است. ممکن است بخواهید ببینید Ú©Ù‡ آیا این به‌روزرسانی نوردش بی‌پایان را به آن Ø§ÙØ²ÙˆØ¯Ù‡ است یا نه. برای این کار ØµÙØ­Ù‡Ù” به‌روزرسانی‌های وردپرس را ببینید.ظاهراً مشکلی در زمینهٔ ارتباط وب‌گاه شما با جت‌پک وجود دارد!مشکلی هنگام ارتباط با خدمات نمونه‌خوان رخ داد. یک دقیقهٔ دیگر دوباره تلاش کنید.مشکلی در Ø¯Ø±ÛŒØ§ÙØª داده‌ها برای نمایش این نشانی روی نقشه وجود داشت. Ù„Ø·ÙØ§Ù‹ مرورگر خود را به‌روز کنید Ùˆ دوباره تلاش نمایید.خطایی هنگام ارتباط با خدمات نمونه‌خوان رخ داد.خطایی به هنگام از کار انداختن Ø§ÙØ²ÙˆÙ†Ù‡ رخ دادخطایی هنگام نصب Ø§ÙØ²ÙˆÙ†Ù‡Ù” شما رخ دادخطایی هنگام نصب پوسته رخ دادخطایی به هنگام به‌روزرسانی Ø§ÙØ²ÙˆÙ†Ù‡Ù” شما رخ دادخطایی به هنگام به‌روزرسانی پوستهٔ شما رخ دادخطایی هنگام اشتراک رخ داد. Ù„Ø·ÙØ§Ù‹ دوباره تلاش کنید.خطایی هنگام ÙØ¹Ø§Ù„‌سازی پودمان رخ داد.خطایی هنگام ØºÛŒØ±ÙØ¹Ø§Ù„‌سازی پودمان رخ داد.احتمال زیادی هست Ú©Ù‡ بازدیدکنندگان وب‌گاه شما از یک تلÙÙ† هوشمند Ø§Ø³ØªÙØ§Ø¯Ù‡ کنند. مهم است Ú©Ù‡ برای ایشان تجربهٔ خواندن٠خوبی را روی پردهٔ نمایش هوشمند ÙØ±Ø§Ù‡Ù… کنید.این تنظیمات روی تمامی وب‌گاه‌های این شبکه تأثیر خواهند گذاشت.این تنظیمات رایانامه‌هایی را Ú©Ù‡ از وب‌نوشت شما به دنبال‌کننده‌ها ارسال می‌شود تغییر می‌دهد.(لازم)این ویژگی از زیرساخت‌های WordPress.com Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌کند Ùˆ لازم است Ú©Ù‡ مطالب عمومی شما از آنجا پایش شوند. اگر مشکلات گاه‌به‌گاهی را شاهد بودید Ú©Ù‡ تنها برخی نوشته‌هایتان را را متأثر می‌کرد، درخواست بازنمایه‌سازی نوشته‌هایتان را بدهید.این گالری شامل %2$s عکس است.این Ø§ÙØ²ÙˆÙ†Ù‡ بدون آن کار خواهد کرد، اما در صورت در دسترس بودن از چندبایته Ø§Ø³ØªÙØ§Ø¯Ù‡ می‌شود. ممکن است شاهد مشکلات Ú©ÙˆÚ†Ú©ÛŒ در توییت‌ها Ùˆ دیگر خدمات اشتراک‌گذاری باشید.این نوشته به اشتراک گذاشته شده!این نوشته با گذرواژه پاسداری می‌شود.این نوشته با گذرواژه پاسداری شده است. برای مشاهدهٔ دیدگاه‌ها گذرواژه را وارد کنید.این شناسنامه در حال حاضر به شناسنامهٔ WordPress.com متصل نیست.این تنظیم را می‌توان برای ویدئوها جداگانه بازنویسی کرد.این نمایش پرده‌ای نیاز به جاوااسکریپت دارد.این کاربر مجاز به %s روی این وب‌نوشت نیست.کاربر مجاز به مدیریت٠سطح شبکه‌ای Ø§ÙØ²ÙˆÙ†Ù‡â€ŒÙ‡Ø§ نیست.این Ùیلم برای مخاطبین بالغ در نظر Ú¯Ø±ÙØªÙ‡ شده است.این Ùیلم برای پخش‌شدن نیازمند Adobe Flash است.بندانگشتیتوری بندانگشتیستون‌های کاشی‌کاری‌شدهگالری‌های کاشی‌کاری‌شدهموزاییک ÙØ±Ø´â€ŒØ´Ø¯Ù‡Ú©Ø§Ø´ÛŒâ€ŒÙ‡Ø§Ø²Ù…انزمان:پوستهٔ تایم‌لاین:عنوانعنوان:برای Ø§ÙØ²ÙˆØ¯Ù† یک شمایل نو وب‌گاهتان، به تنظیمات → عمومی → شمایل وب‌گاه، بروید Ùˆ شمایل را به‌روز کنید.برای پیکربندی تنظیمات اشتراک‌گذاریتان، به گزینگان تنظیمات → اشتراک‌گذاری بروید.برای کنترل رویت‌پذیری، ابزارک را گسترش دهید روی دکمهٔ رویت‌پذیری Ú©Ù‡ در کنار ذخیره‌سازی است کلیک کنید. سپس مجموعه‌ای از گزینه‌های رویت‌پذیری را برگزینید.برای ÙØ¹Ø§Ù„‌سازی نوع Ø³ÙØ§Ø±Ø´ÛŒØŒ سری به تنظیمات → نوشتن → مطالب Ø³ÙØ§Ø±Ø´ÛŒ شما Types بزنید Ùˆ از آنجا «پروژه‌های نمونه‌کار» یا «گواهینامه‌ها» را با زدن تیک جعبه‌هایشان ÙØ¹Ø§Ù„ کنید. شما هم‌اکنون می‌توانید پروژه‌های تازه Ùˆ گواهینامه‌ها را تحت موردی تازهٔ از گزینگان «نمونه‌کار» یا «گواهینامه‌ها» به نوار کناری‌تان Ø¨ÛŒÙØ²Ø§ÛŒÛŒØ¯.برای بهبود سریع عملکرد، امنیت Ùˆ تعامل، ÙØ¹Ø§Ù„‌سازی %s را توصیه می‌کنیم. برای ÙØ¹Ø§Ù„‌سازی این ویژگی‌ها روی شروع جهشی کلیک کنید یا برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از ویرایشگر CSSØŒ به «نما» → ویرایش CSS بروید.برترین نوشته‌هابرترین نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§Ù†ÙˆØ´ØªÙ‡â€ŒÙ‡Ø§ Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒ برتر، محاسبه‌شده بر پایهٔ بازدیدهای Û²Û´-Û´Û¸ ساعت گذشته. مدتی زمان می‌برد تا تغییر کنند.برترین جست‌و‌جوهارشد شدامدپس‌زمینه Ø´ÙØ§Ùدور انداختنجت‌پک دردسرساز شده؟تامبلروب‌نوشت ØªØ§Ù…Ø¨Ù„Ø±ÙØ¹Ø§Ù„‌شده روی هر نوشتهتوییت‌های٠@%sتوئیتربرچسب وب‌گاه توییترتایم‌لاین توییترنام کاربری توییتر:اصالت‌سنجی دومرحله‌ای ØºÛŒØ±ÙØ¹Ø§Ù„ استاصالت‌سنجی دومرحله‌ای ÙØ¹Ø§Ù„ استگونهگونه‌هاانواع ØµÙØ­Ù‡â€ŒÙ‡Ø§ برای نمایش:نشانی وبدسته‌بندی نشدهپاسخ پیش‌بینی‌نشدهنوع ناشناخته‌ای از نوشته درخواست شد.لغو پیوند به این حسابپیوند حسابم قطع شودقطع پیوند حسابتان به WordPress.comمنتشر نشده تا آن زمان Ú©Ù‡ پوستهٔ شما از نرودش بی‌پایان پشتیبانی نکند، نمی‌توانید این پودمان را ÙØ¹Ø§Ù„ کنید.نوشتهٔ بی‌عنوانرویدادهای پیش روبه‌روزرسانی بخش گزینگانبه‌روزرسانی برچسب پروژهبه‌روزرسانی نوع پروژهبه‌روزرسانی شمایل وب‌گاهگزینه به‌روز شد: %s به «%s»بارگذاری تصویربارگذاری ویدئوبارگذاری یک ویدئوتصویری Ú©Ù‡ می‌خواهید به عنوان شمایل وب‌گاه شما Ø§Ø³ØªÙØ§Ø¯Ù‡ شود را بارگذاری کنید. در گام بعدی از شما خواسته خواهد شد آن را Ø¨ÙØ±Ø´ بزنید.در حال بارگذاری...از یک چیدمان بزرگ Ùˆ از نظر دیداری برجسته Ø§Ø³ØªÙØ§Ø¯Ù‡ Ú©Ù†ÛŒØ¯Ù„Ø·ÙØ§ از یک ایمیل معتبر Ø§Ø³ØªÙØ§Ø¯Ù‡ نمایید.Ø§Ø³ØªÙØ§Ø¯Ù‡ از زبانی Ú©Ù‡ خودکار شناسایی می‌شود برای نمونه‌خوانی نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§Ø§Ø² دکمهٔ زیر برای مرور کتابخانهٔ VideoPress خود Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. توجه کنید Ú©Ù‡ همچنین می‌توانید کتابخانهٔ VideoPress را هنگام ویرایش نوشته‌ها یا ØµÙØ­Ù‡â€ŒÙ‡Ø§ با Ø§Ø³ØªÙØ§Ø¯Ù‡ از دکمهٔ Ø§ÙØ²ÙˆØ¯Ù† رسانه در ویرایشگر مرور کنید.از ÙØ±Ù… زیر برای بارگذاری ویدئو در کتابخانهٔ VideoPress خود Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید. از قالب‌های ویدئویی زیر پشتیبانی می‌شود: %s. بیشینهٔ اندازهٔ پروندهٔ بارگذاری‌شدنی: %d%s.از این ابزارها برای تأیید اینکه شما دارنده/کنترل‌گر وب‌گاه هستید (برای خدمات بیرونی مثل Ú¯ÙˆÚ¯Ù„ØŒ بینگ Ùˆ پین‌ترست) Ø§Ø³ØªÙØ§Ø¯Ù‡ کنید.-- گزینش --Ù†Ù‡ÙØªÙ†Ù†Ù…ایشنام کاربریمقدارپیش‌خوان والت‌پرسخدمات درستی‌سنجی شدهتأیید وب‌گاهتان به شما اجازه می‌دهد از ویژگی‌های Ù¾ÛŒØ´Ø±ÙØªÙ‡Ù” این خدمات Ùˆ خدمات دیگر بهره‌مند شوند (مانند ابزارهای وب‌مستر یا Ú¯Ø±ÙØªÙ† نشان تأییدشده). ما تنها یک برچسب نامرئی %s به متن کدهای آغازهٔ شما خواهیم Ø§ÙØ²ÙˆØ¯.دسترسی به کتابخانهٔ Ùیلمپیش نمایش ویدئو:Ùیلم روی %sÙیلم‌نوشته.ویدئوپرسکتابخانهٔ VideoPress دیدن شناسنامهٔ %1$s روی %2$sمشاهدهٔ همهمشاهده طنزمشاهدهٔ شناسنامهٔ کامل →دیدن Ú©Ù„ وب‌گاهدیدن بخش گزینگاندیدن وب‌گاه موبایلدیدن مدیر شبکهدیدن پروژهدیدن برچسب پروژهدیدن نوع پروژهمشاهده آمارهای وب‌گاه بدون جاوا اسکریپتدیدن گواهی‌نامهدیدن %s.دیدن همهٔ ویژگی‌های جت‌پکنمایش در اینستاگرامدیدن شناسنامهٔ Ø§ÙØ±Ø§Ø¯ وقتی موشی را روی گراواتارشان می‌بریدهمین حالا آمار را روی WordPress.com ببینید.بازدید:بازدیدهای Û´Û¸ ساعت گذشته. برای دیگر آمارهای وب‌گاه کلیک کنید.نام کاربری ویمیو:رویت‌پذیریاز آمار وب‌گاهدیدن کنید تا آمارتان را ببینید.برای اطلاعات بیشتر از نوشته بازدید کنید.برای چک‌کردن پشتیبان‌هایتان، نگاهتان به هشدارهای امنتی باشد، یا اینکه درستی والت‌پرس خود را بررسی کنید، از %s خوب بازدید نمایید.بازدیدکنندگان Ø¢ÛŒÙون، اندروید، ویندوزÙون، Ùˆ دیگر Ø§ÙØ²Ø§Ø±Ù‡â€ŒÙ‡Ø§ÛŒ همراه به طور خودکار پوستهٔ همراه را خواهند دید Ùˆ این امکان را خواهند داشت Ú©Ù‡ وب‌گاه کامل را ببینند. با کلیک روی دکمهٔ Â«ÙØ¹Ø§Ù„‌سازی» یا «از کار انداختن» می‌توانید پوستهٔ همراه را ÙØ¹Ø§Ù„ یا ØºÛŒØ±ÙØ¹Ø§Ù„ کنید.WP.me پیوندهای کوتاههشدار! پشتیبانی چندبایته ÛŒØ§ÙØª نشد!نمی‌توانیم نوشته‌های این وب‌نوشت را نمایش دهیم.در حال حاضر نمی‌توانیم اطلاعات وب‌نوشت را بارگیری کنیم.نتوانستیم حسابی با رایانشانی %1$s بیابیم تا ورود شما را از راه آن ثبت کنیم. اگر از پیش حسابی در %2$s دارید، Ù„Ø·ÙØ§Ù‹ مطمئن شوید Ú©Ù‡ %1$s به عنوان رایانشانی آن تنظیم شده است، یا اینکه در ØµÙØ­Ù‡Ù” شناسنامهٔ به WordPress.com متصل شده‌اید.نتوانستیم هیچ حسابی متصل‌شده به WordPress.com با رایانشانی %2$s بیابیم تا ورود شما را از راه آن ثبت کنیم. اگر از پیش حسابی در %2$s دارید، Ù„Ø·ÙØ§Ù‹ مطمئن شوید Ú©Ù‡ در ØµÙØ­Ù‡Ù” شناسنامه‌تان به WordPress.com متصل هستید. نتوانستیم در این لحظه به آمار شما دست پیدا کنیم. Ù„Ø·ÙØ§Ù‹ برای تلاش دوباره این ØµÙØ­Ù‡â€ŒÙ‡Ø§ بازآوری کنید.نتوانستیم در این لحظه به آمار شما دست پیدا کنیم. Ù„Ø·ÙØ§Ù‹ برای تلاش دوباره این ØµÙØ­Ù‡â€ŒÙ‡Ø§ بازآوری کنید. اگر این خطا ادامه داشت Ù„Ø·ÙØ§Ù‹ با پیشتیبانی تماس بگیرید. Ù„Ø·ÙØ§Ù‹ در گزارش خود اطلاعات زیر را هم بیاورید.وب‌گاهخدمت‌های شناسایی وب‌گاهبه CSS Ø³ÙØ§Ø±Ø´ÛŒ خوش‌آمدید! برای اینکه دراینباره بیشتر بدانید اینجا را ببینید: http://wp.me/PEmnE-Btهمچنین هرگاه وب‌گاه شما دوباره برپا Ùˆ اجرا شود به شما اطلاع داده خواهد شد تا بتوانید Ú©Ù„ زمان خروج از دسترسی را زیر نظر داشته باشید.گراواتار چیست؟هنگام Ø§ÙØ²ÙˆØ¯Ù† گالری به نوشته‌تان این گزینه را دارید Ú©Ù‡ چیدمانی برای تصویرها برگزینید. ما از چیدمان‌های مستطیلی، مربعی Ùˆ دایره‌ای برای گالری‌ها پشتیبانی می‌کنیم. به صورت Ù¾ÛŒØ´â€ŒÙØ±Ø¶ گالری‌ها به صورت شبکه‌ای از تصاویر بندانگشتی به نمایش درمی‌آیند. برای Ø§Ø³ØªÙØ§Ø¯Ù‡ از چیدمان مستطیلی به عنوان Ù¾ÛŒØ´â€ŒÙØ±Ø¶ گالری‌های وب‌گاه، به تنظیمات → رسانه بروید Ùˆ جعبهٔ «نمایش همهٔ تصاویر گالری به صورت موزاییک» را تیک بزنید.وقتی مطالب عالی می‌نویسید، مهم‌ترین چیزی Ú©Ù‡ می‌خواهید این است Ú©Ù‡ دیگران بتوانند آن‌ها را بیابند، اینطور نیست؟سÙیدÙهرست سÙید خالی است.شناسهٔ ابزارک:استعنوان ابزارک:پهنا (پیکسل):پهنا:با %s دیدگاهبا چرخ‌وÙÙ„Ú© ÙØ¹Ø§Ù„ØŒ هر گالری استاندارد وردپرسی Ú©Ù‡ در نوشته‌ها یا ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒØªØ§Ù† جاسازی کرده باشید یک عکس تمام‌پرده را به همراه دیدگاه‌ها Ùˆ ÙØ±Ø§Ø¯Ø§Ø¯â€ŒÙ‡Ø§ÛŒ EXIF اجرا خواهد کرد.با «ثبت ورود تکی»، کاربران شما قادر خواهند بود با اعتبارنامه‌های WordPress.com در وب‌گاه شما ثبت ورود یا نام‌نویسی کنند. ویژگی‌ای امن Ùˆ ایمن.با پودمان نوردش بی‌پایان Ùˆ یک پوستهٔ پشتیبانی‌شده دقیقاً همین Ø§ØªÙØ§Ù‚ رخ خواهد داد. به جای روش‌های قدیمی نوردش به پایین ØµÙØ­Ù‡ Ùˆ سپس کلیک روی ØµÙØ­Ù‡Ù” بعدی، منتظرشدن برای بازآوری ØµÙØ­Ù‡ — مدل مستندات وب — نوردش بی‌پایان به طور خودکار دستهٔ بعدی نوشته‌ها را هنگامی Ú©Ù‡ خواننده به پایان ØµÙØ­Ù‡ نزدیک می‌شود Ø¯Ø±ÛŒØ§ÙØª می‌کند؛ کاری شبیه به یک Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø± کاربردی.با پودمان ویدئوپرس می‌توانید به‌سادگی Ùیلم‌ها را روی وب‌گاه وردپرس خود بارگذاری کنید Ùˆ آن‌ها را در نوشته‌ها Ùˆ ØµÙØ­Ù‡â€ŒÙ‡Ø§ÛŒØªØ§Ù† جاسازی نمایید. پودمان نیازمند حساب WordPress.com به همراه اشتراک ÙØ¹Ø§Ù„ ویدئوپرس. است. پس از آنکه یک اشتراک ویدئوپرس را خریداری کردید، روی پیکربندی ویدئوپرس کلیک کنید.دوست‌داشتن‌های وردپرس.کام:دکمۀ بازوب‌نویسی وردپرس.کامابزارهای WordPress.comنام کاربری وردپرس.کامامکان دارد بگویید چرا؟ تنها دو پرسش ساده را پاسخ دهید تا به ما در بهبوددادن جت‌پک Ú©Ù…Ú© کند.واو، مانند نردها به نظر می‌رسد.دیدگاهی بنویسید...Y/m/dY/m/d g:i:s Aبایگانی سالانه :%sبایگانی‌های سالانهآریهمه‌چیز آماده است! هم‌اکنون وب‌گاه شما از wordpress.com/sites. قابل مدیریت است.شما دسترسی کاÙÛŒ برای انجام این تغییر را ندارید.شما مجاز به مدیریت این مورد نیستید.شما مجاز به برداشتن این مورد از زباله‌دان نیستید.شما مجاز به انتقال این مورد به زباله‌دان نیستید.قرار نبود شما اینجا برسید!لازم است یکی از توانایی‌ها را برای بررسی مشخص کنید.لازم است یک پودمان را مشخص کنید.لازم است Ø§ÙØ²ÙˆÙ†Ù‡â€ŒØ§ÛŒ برای ÙØ¹Ø§Ù„‌سازی مشخص کنید.لازم است یک Ø§ÙØ²ÙˆÙ†Ù‡ را مشخص کنید.می‌توانید پیش‌خوان آمار خود را اینجا ببینید.برای هم‌خوانی با نیازهایتان می‌توانید پودمان‌های جت‌پک را جداجدا ÙØ¹Ø§Ù„ یا ØºÛŒØ±ÙØ¹Ø§Ù„ کنید.می‌توانید متغیرهای زیر را به نشانی وب خدمات اشتراک‌گذاریتان Ø¨ÛŒØ§ÙØ²Ø§ÛŒÛŒØ¯:نیز می‌توانید ابزارک‌ها را بسته به ØµÙØ­Ù‡Ù” کنونی پنهان کنید. برای مثال، اگر نمی‌خواهید ابزارک بایگانی‌ها در ØµÙØ­Ù‡Ù” نتایج جستجو نمایان شود، Â«Ù†Ù‡ÙØªÙ†Â» Ùˆ Â«ØµÙØ­Ù‡ØŒ نتایج جستجو است» را برگزینید.شما می‌توانید Ùهرست سÙید Ú©Ù„ شبکه را از بخش مدیریت شبکه تنظیم کنید.نمی‌توانید پیش از متصل‌شدن جدا شوید.شما سطح آزادی لازم برای دیدن این ویدئو را ندارید. از Ù†Ø±Ù…â€ŒØ§ÙØ²Ø§Ø±Ù‡Ø§ÛŒ آزاد حمایت کنید Ùˆ ارتقا دهید.شما مجوزهای لازم برای دسترسی به این ØµÙØ­Ù‡ را ندارید.شما از پیش در این وب‌گاه مشترک شده‌اید. Ù„Ø·ÙØ§Ù‹ نامه‌دان خود را Ú†Ú© کنید.شما اين نوشته را با %s به اشتراک گذاشته‌ایدشما با موÙقیت اتصال جت‌پک را قطع کرده‌اید.شما با موÙقیت خود را به عنوان کاربر اصلی جت‌پک تنظیم کرده‌اید.پیش از سوگردانی صاحبان اصلی حساب می‌باید یک حساب مدیر دیگر را پیوند دهید.باید یک عمل معتبر ذکر کنیدلازم است یک ابزارک در توییتر.کام بسازید، Ùˆ سپس شناسهٔ ابزارکتان را وارد کنید (شمارهٔ بزرگی Ú©Ù‡ در نشانی وب ØµÙØ­Ù‡Ù” پیکربندی ابزارکتان ÛŒØ§ÙØª می‌شود) Ùˆ سپس آن را در زیر وارد کنید. اطلاعات بیشتر.لازم است شناسهٔ کاربری عددی خود را برای ابزراک Goodreads وارد کنید تا به درستی کار کند. دستورالعمل کامل.لازم است پیش از اتصال، جت‌پک خود را ثبت کنید.نیاز است چیزی Ú©Ù‡ باید در این ابزارک شناسنامهٔ گراواتار نمایش می‌یابد را برگزینید.شناسهٔ کانال یوتیوب:انواع Ø³ÙØ§Ø±Ø´ÛŒ مطالب شمارایانشانی شماجت‌پک شما تقریباً آماده است.ساختار جت‌پک شما بی‌اشکال به نظر می‌رسد!نام شمابایگانی نمونه‌کار شما هم‌اکنون هیچ مدخلی ندارد. می‌توانید ساختن آن‌ها را روی پیش‌خوانتان بیازمایید.آمار وب‌گاه شما با ÙØ¹Ø§Ù„‌سازی جاوا اسکریپت بهتر کار می‌کند.گزینهٔ `%1$s` به عنوان `%2$s` تنظیم شده است اما اتصال وردپرس.کام آن را به عنوان `%3$s` Ùهرست می‌کند!هم‌اکنون وب‌نوشت شما هیچ نوشتهٔ منتشر شده‌ای ندارد.دیدگاه شما چشم به راه بررسی است.دیدگاه شما در حال بررسی است.دیدگاه شما Ù¾Ø°ÛŒØ±ÙØªÙ‡ شد.زمینهٔ تازهٔ شما با پیروزی ذخیره شدشمایل وب‌گاه شما بارگذاری شده است!وب‌گاه شما به کارسازهای جت‌پک دسترسی ندارد.وب‌گاه شما دسترسی امن به کارسازهای جت‌پک ندارد.پوستهٔ شما از %s پشتیبانی می‌کندپوستهٔ شما از گواهی‌نامه‌ها پشتیبانی می‌کندویدئوی شما با موÙقیت بارگذاری شده است. به‌زودی در کتابخانهٔ VideoPress شما نمایان خواهد شد.پرونده در حال بارگذاری‌شدن است... Ù„Ø·ÙØ§Ù‹ این ØµÙØ­Ù‡ را نبندید.[%s] تایید پیوستننوشته یا ØµÙØ­Ù‡â€ŒØ§ÛŒ برای نخستین بار منتشر می‌شودنوشته یا ØµÙØ­Ù‡â€ŒØ§ÛŒ به‌روز می‌شودگزینهورایانشانیلغواینجا را کلیک کنیدتصویر را Ø¨ÙØ±Ø´ بزنیدروزویرایشویرایش متناوه، مشکلی در تولید ÙØ±Ù… شما رخ داد. احتمالاً لازم است Ú©Ù‡ دوباره تلاش کنید.بازگشتhttp://jetpack.mehttp://wordpress.org/نشانی وب خوراک iCalendar:هم در پهنا Ùˆ هم در بلندا.در «%s»بازنشانی گزینهٔ شروع جهشیبارگذاری…%1$s/%2$sماهبرای خواندنناوبری تصویردیدگاهخوانده‌ام%s اگر:نمونه‌خوانیجست‌وجوی همه‌چیزامنیت، ایمنی، پاسداری، بات‌نت، حملهٔ غیرهوشمندانهآمار، ردگیری، تحلیل، بازدیدها Ùˆ شدامدپرونده‌ای را برگزینیدرایانامهÙیسبوکگوگللینکداینپین‌ترستپاکتنشر اینچاپرددیتتامبلرتوییترروز گذشتهماه Ù¾ÛŒØ´ÙØµÙ„ Ú¯Ø°Ø´ØªÙ‡Ù‡ÙØªÙ‡Ù” پیشسال گذشتهمقداراین Ùیلمببینید: %sÙ‡ÙØªÙ‡ÙˆØ§Ú˜Ù‡Ø§Ø² تلاش‌های ثبت ورود Ø¨Ø¯Ø§ÙØ²Ø§Ø±Ù…انند جلوگیری شددیدگاه‌ها هرز جلوگیری‌شده توسط Akismet.%1$s در %2$splugins/jetpack/languages/jetpack-da_DK.mo0000755000312500031250000016057612651056012021162 0ustar eacbforgeacbforgÞ•œm)Ð6Ñ6è6û6? 7 K7 X7 e7 r7F€7GÇ788’8[²8!909A9W9 n9 y9C„90È9ù9 :1:yK:‹Å:©Q;û; << $<1<8<<<D<T<Cf<ª<5½<ó< ü<x=s=2ó=&>,> 0> => G>T>"d>B‡>ZÊ>-%?S?p\?Í?Ô?%ä? @@(@F@SY@ ­@»@ Á@Ï@ ì@ö@û@ÚAêAñA øABBBB-B%@BfB…B ”BŸB´BÔBãBøBC-CFC`C fCsC†CŽC¡C²C!»CÝCíC ôC þC D$D ?DLD ^D5kD¡D;±D íDøD EE'E=EPE_EdE iEtEzE‚E‰EœE ¹EÅE×EêEFF-F AF5bF ˜F6¤FSÛF*/GnZGÉG¥ÚGC€HÄHËHÐHÙH èHõHII I,I$;I `I(kI[”IðIJ4JvFJA½JÿJcK|KŽK¨KÇKÎK*áK5 LBL8KL „LL˜L¡L²LÂL ÖL ãLïLÿLM*M2M7M-m Qm [m®em¡n>¶n,õn2"oyUo„Ïo‘Tpæp©q§°qXr wrÊ„rBOsY’s?ìs),t6Vt\t¡êtŒu §uIÈu,vM?v v—vœv¢v²v¸v\¿vbwúw*zx ¥ye¯y z"z9z?z Uzczkz|zŽz“z™z z «z ·z ÃzÑz ÙzÖæz(½{@æ{'|0| 6|A| V|a|"j|-|»|:Í|%}.}/4} d}4o}¤}#µ}&Ù}&~'~'/~JW~¢~¼~ Â~JÍ~  &29Ymj„€È€ ΀Ü€ð€73<8p@©€ê;k‚B§‚2ê‚!ƒ+?ƒ3kƒŸƒî¿ƒp®„7…7W……¢… À…4Ê…6ÿ…$6†[†z†?•†!Õ†÷†‡‡ ‡ '‡1‡@‡D‡ I‡S‡[‡m‡ƒ‡¢‡²‡ ¸‡ Ù‡'æ‡ ˆˆ>*ˆ<iˆ ¦ˆ´ˆÈÕˆçˆûˆ ‰ ‰(‰7‰ H‰ V‰ d‰o‰‰&’‰î¹‰¨ŠÁŠЊCäŠ (‹ 6‹ D‹Q‹<a‹4ž‹Ó‹Û‹ä‹nuŒ#äŒ4 JX m6{ ² ÀJΗŽc±ŽµËÚâ òþ 9MPž?»û‘z‘n–‘7’=’C’H’ W’ d’o’%€’7¦’hÞ’,G“t“x|“õ“þ“+” @”K”c”ƒ”\” ú”• ••2•G•P•ôc•X–_– h– v–ƒ–Œ–“–¨–&¸–"ß– — ——'3—[—p—ˆ—¥—×ß—ü— ˜ ˜ ˜&˜;˜ N˜4Z˜˜ ¤˜ ²˜ ½˜Șâ˜ÿ˜™(™0=™n™>„™ÙÓ™ç™ ÷™š š'š7š=š BšLšUš^šcšrš š›š¬šÀšÙš%ßš››35›i›9r›U¬›&œb)œŒœ·œBU˜Ÿ §´Æ×ížžž#'ž Kž,Užv‚žùžŸ6%Ÿƒ\ŸHàŸ) XB › "¬ %Ï õ û -¡C>¡ ‚¡Œ¡ ‘¡¡ ¦¡±¡Ä¡Ö¡î¡ ¢¢ ¢6¢L¢T¢[¢&_¢†¢½Ž¢L£T£m£t£‡£ ›£ ¥£ °£½£Å£Ø£%Þ£¤ ¤&¤è-¤©¥À¥+B¦n§ …¨‘¨ –¨£¨¬¨Sµ¨5 © ?© K©Y©i©{©ƒ© ”© ¡© ®© ¹©Å©Ú© ì© ø©ª ªªQ.«€«‡««€¶«{7¬M³¬z­|­1”­pÆ­@7®x®®‡®Ž®“®™®ž® °®½®ή ß®í® ¯¯¯¯0.¯_¯ h¯‰¯š¯­¯̯߯ ñ¯ û¯ ° °°+°H°O°V° [°e°l°~°‡° ¤°¯°À°а–Ù°p±±”±™± ª±¶±»±,¾±ë±² ²²1² 5² B² O²\²$q²–²&©²Dв³ +³9³L³j³;p³ ¬³¹³+ȳ%ô³´ !´+´1´6´T´ W´a´Tp´+Å´#ñ´)µ ?µMµTµiµqµxµµ…µ–µŸµ ·µÁµ*Ƶ;ñµ(-¶"V¶y¶"’¶µ¶ ½¶ ǶÓ¶â¶2ñ¶$·87· p· {· ‰· “·Ÿ· µ·¿·Ç·=Ù· ¸$¸ *¸4¸F¸N¸b¸ t¸¸‡¸¸<•¸Ò¸׸Kݸ6)¹`¹t¹}¹¹–¹¹µ¹ ʹÔ¹ç¹ú¹ ºº0º5ºFºHºJºLº$Tº yºŽ…º »»#»6»H»Q»k»p» …»»¢»µ»Æ»Þ»Dî»(3¼ \¼h¼1€¼²¼ м4ݼ@½ S½a½{½½½ Ÿ½2ª½ ݾê¾ñ¾ ¿ ¿ ¿Ä6¿û¿ ÿ¿ ÀW$À#|À À!¼ÀdÞÀCÁHÁNÁ ^ÁhÁˆyÁ   $Â.ÂLÂRÂYÂ]Â4| ±Â¿ÂÄÂÍ ã ñÂû Ã"Ã'à ,Ã:ÃPÃYÃhË„ÃÄÄ Ä %Ä1ÄDÄJÄ _Ä iijsÄ©'Å5ÑÅ*Æ.2ÆvaÆØÆ‘ZÇ!ìÇÅÈÞÔÈ³É ÒÉÓÞÉF²Ê_ùÊFYË3 Ë"ÔËf÷ˬ^Ì Í')ÍYQÍ0«ÍWÜÍ 4Î>ÎBÎGÎWÎ]ÎbdÎdÇÎ,Ï=EÐ ƒÑoŽÑ$þÑ#Ò 9ÒCÒ\ÒkÒsÒ…Ò™ÒžÒ¤Ò¨Ò »ÒÈÒÏÒ âÒìÒäûÒ0àÓHÔ ZÔ eÔ pÔ{Ô “ÔžÔ%¦ÔÌÔÔÔ<åÔ&"ÕIÕCRÕ –ÕB ÕãÕ,óÕ( Ö-IÖwÖ*ÖBªÖíÖ× ×× × $×1×9×J×bׂ{×þ×ب)ØÒØ ØØ âØðØÙ>Ù@BÙ9ƒÙB½ÙÚA‚ÚMÄÚ=Û PÛ%qÛ>—Û!ÖÛûøÛnôÜ8cÝAœÝÞÝñÝÞ@Þ;XÞ#”Þ#¸ÞÜÞHùÞ0Bß%sߙߜߥ߮߶ßÇßËß Óßáßéßûßàà(à /à =àGàMà \à3gà2›à ÎàÛàâàëàôàýàá áá0áDáSá cáoávázá`y¦ãä©O >Ê3H‚«rHÈ˸9G7dL’õ}]_;ß%SN!Q2÷ 60\¥úˆ& þ$)íÝUs÷Ø€'soN1 -—zÍ~æ Œ¡¢êöxßaoÛ½¿v{¤$m^Œ™ƒÔ°„+w¸^½‚‹;=´T(K©z–KhVåf•ù޹²•Bƒdù±M-?­æ'à[ÛYä§dâØ&ºiø56ç}/OÑñúZô“<Xrkìš\IÙà°}"–H¾qBaŽžk r˜“—pt Ö ‡f³¨¦Ñ€ nè»<âð´î'L9‘ÇûÏg¶Ulˆ`*+Gö ÁµáF³Ó1œ)ÊÄ@ˆŒÕ0ÃC1&štÝëGSÅ |Ö=ÐÂÔ^y[ª( Èõ[|¥:¼… À"ae­ïX‚›k, áT¬”2òJeeg#FФüÚ˜IjÉuñ›ÇX:øEw¾fïŠãµCs/{%8$Ìup]¿néêóNx4W¹Ü®ÞìÜQÎM6É’²¨;ýMª! Zbjœ#8A5nPhÍWû!|,‰ò„yÓvD«,o‰jè3Ò.@cL9‹xð"ó*Ú¶7`?-~E:FŽÄ çcÆíÒÕ/ƒ K·{RÅ_Ÿ»ZЇu(qÎÞ£‹åVcSliw†AÙmŸD…ŠECÿQ>@piÌ)®JÆY†¯b%¼ég4_zËþ7À”+R·.¯ýô…I*ϧºV T8 ü>±?Y€™†D£#‡¬mPWJA„ R<Ã.lv02P¡bÂU5îÁ4]×¢žOqÿ\‘ëth~=B׉3 (Opens in new window)# of Tweets Shown:%1$s %2$s Views%1$s (%2$s) thinks you may be interested in the following post:%1$s at %2$s%1$s on %2$s%s (Jetpack)%s (Required)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s requires a valid email address« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 Reply%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).A known issue.ActivateActivate AkismetActivate nowActiveAddAdd NewAdd New ProjectAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add or remove tagsAdditionally you can define your own custom services.Address:Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.Akismet can help to keep your blog safe from spam!AlbumAllAll ProjectsAll postsAlphabeticalAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An unknown error occurred during installationApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Back to Top ↑Be sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:BlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.CameraCancelCancel replyCaption:CategoryCenterChart stats byCheatin’ uh?Checking email updates status…Choose from the most used tagsClichésClick hereClick to Press This!Click to email this to a friendClick to printClick to share on %sClick to share on Google+Click to share on LinkedInClick to share on RedditClick to share on TwitterCloseColor SchemeComing soon…CommentComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnect to WordPress.comConnected to WordPress.comContact FormContact Form URL:Contact InfoContinue reading →Convert to PostCount the page views of registered users who are logged in.Crop ImageCurrently ReadingCustomCustom field deleted.Custom field updated.Daily Archives: %sDaily archivesDarkDateDeactivateDebugDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDismiss this notice for now.Display Header TextDisplay an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display your location, hours, and contact information.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Double NegativesDrag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.E-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Selection...Edit TestimonialEmailEmail AddressEmail Address:Email check failed, please try againEmpty SpamEnable Portfolio Projects for this site.Enable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error!Error, bad module.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:Focal LengthFollow BlogFollow CommentsFollow me on TwitterFor more information:Format:FreeFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!GalleryGive Us FeedbackGoogleGravatar HovercardGravatar HovercardsGreenHeightHeight (px):Height:Hidden VerbsHideHide related content after postsHomeHours & InfoHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:InactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.JargonJetpack Single Sign OnJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack is installed!Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Join %s other subscriberJoin %s other subscribersJump to:LaTeXLabelLabel for HTML form "Name" field in contact form builderNameLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLink Color (hex):Link URL (when the image is clicked):LinkedInLinks to your blog's RSS feedsLive PreviewLoading …Loading Comments...Loading video...Loading…Loading...Logged InLogged OutM j, Y @ G:iMain SidebarMark this message as spamMediaMediumMenuMenu ItemMessageMessage SentMessagesMissed scheduleMobile ThemeModule InfoModule NameContact FormModule NameManageModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationMy TweetsNameNewNew in Jetpack: Centralized Site ManagementNewer Comments →NewestNext »Next » NoNo BordersNo FooterNo HeaderNo Modules FoundNo Projects found in TrashNo ScrollbarNo comment text was submitted.No data found for VideoPress identifier: %s.No plugins found.No suggestionsNo tags found.No writing errors were found.NoneNote: Custom CSS will be reset when changing themes.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNumber of Posts to Display:OKOlder %sOlder postsOnce you’ve made the connection you’ll activate all the delightful features below.One New Jetpack Module%s New Jetpack ModulesOpen link in a new window/tabOptional text to display to your readers:OptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhone:Phrases to AvoidPingback:PinkPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please provide a valid email address.Please provide an email address.Please provide your name.Please verify your birthday.PluginsPopularPortfolioPost CommentPost by %s.Post converted.%s posts convertedPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPress ThisPreviewPreview:Preview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProjectProofread WritingProofreadingProudly powered by %sPublicizePublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RatingRecent PostsRedRedditRedundant PhrasesRegistered usersRelatedRelated PostsRelated postsRemove ServiceRepeated WordReplace selection with:ReplyReport visibilityResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:Return to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave configurationScheduledScroll back to topSearchSearch CommentsSearch EverythingSearch MediaSearch Modules…Search PluginsSearch Results for: %sSearch resultsSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by an unverified visitor to your site.Separate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing SettingsSharing URLSharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Excerpts:Show Featured Image:Show a "Related" header to more clearly separate the related section from postsShow related content after postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShutter SpeedSilverSimilar postSite Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site NameSite StatsSitesSkip to primary contentSmallSnippetSnowSorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpellingSpelling and GrammarStatic page:StatsStatus unknown.Stylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe to %sSubscribe to Blog via EmailSuccess! An email was just sent to confirm your subscription. Please find the email now and click activate to start subscribingSupportTag nameTagsTermsTerms of ServiceTextText & Image LinksText LinkText onlyThe After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The email you entered was invalid. Please check and try again.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The plugin is already installedThe proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The theme is already installedTheme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There was a problem communicating with the Proofreading service. Try again in one minute.There was an error communicating with the proofreading service.There was an error installing your pluginThere was an error when subscribing. Please try again.This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This video is intended for mature audiences.This video requires Adobe Flash for playback.ThumbnailTimeTime:Timeline Theme:TitleTitle:To configure your sharing settings, go to the Settings → Sharing menu.To enable all of the Jetpack features, you’ll need to connect your website to WordPress.com.To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.Top PostsTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparent BackgroundTrashTry connecting again.Tweets by @%sTwitterTwitter TimelineTwitter username:TypeTypesURLUncategorizedUnpublishedUnsubscribeUntitled PostUpdatedUpload ImageUse $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use a large and visually striking layoutUse automatically detected language to proofread posts and pagesUsernameValueVaultPressVaultPress dashboardVideoPressView AllView Site Stats without JavascriptView _Plans_&_Pricing_. (VaultPress)View %s.View on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.VisibilityVisit Site Stats to see your stats.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.WebsiteWelcome to Jetpack %s!Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWhat’s a Hovercard?WhiteWidget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:With 1 commentWith %s commentsWordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can add the following variables to your service sharing URL:You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have been subscribed to receive email updates.You have shared this post with %sYou have successfully disconnected Jetpack.You must log in to post a comment.You must specify a valid actionYou need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Email AddressYour Jetpack is almost ready!Your NameYour Site Stats work better with Javascript enabled.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedandcancelclick hereconfigurecrop the imagedayeditedit textgo backhttp://jetpack.mehttp://wordpress.org/in {category/tag name}In "%s"loading…monthmy list of books to readTo ReadnounCommentpast participle: books I have readReadproofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toLinkedInshare toPress Thisshare toPrintshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Ã…bner i et nyt vindue)# Tweets Vist:%1$s %2$s visninger%1$s (%2$s) tror du vil være interesseret i det følgende indlæg:%1$s kl. %2$s%1$s til %2$s%s (Jetpack)%s (pÃ¥krævet)Ønsker du at modtage opdateringer om Jetpack via e-mail? %sDu er i øjeblikket tilmeldt e-mail opdateringer. %s%s fejl%s siden%s kunne ikke aktiveres fordi det udløste en alvorlig fejl. MÃ¥ske er der en konflikt med et anden plugin, du har installeret?%s er et kraftfuldt formatteringsværktøj, nÃ¥r du skal skrive komplekse matematiske ligninger, formler, osv.%s kræver en gyldig e-mail adresse« Tidligere← Ældre kommentarer— Vælg —(ingen titel)(påkrævet)%1$s pÃ¥ %2$sFÃ¥ mere at vide om disse muligheder.% svar1 svar%s er ikke et websted vi tillader at indlejre medier fra.Jetpack er aktiveret! Hver enkelt websted i dit netværk skal tilsluttes individuelt af en administrator pÃ¥ det pÃ¥gældende websted.Din Jetpack fejler. Noget gik galt, der ikke burde ske. Du er vist bare heldig: %sDin Jetpack fejler. Tilslutning af dette websted til WordPress.com er ikke muligt. Det betyder normalt, at dit websted er ikke offentligt tilgængeligt (localhost).En kendt fejl.AktiverAktiver AkismetAktivér nuAktivTilføjTilføj nyTilføj nyt projektTilføj en ny tjenesteTilføj en tilmeldingsformular og tillad brugere at abonnere pÃ¥ dit websted.Tilføj eller fjern tagsDerudover kan du ogsÃ¥ definere dine egne tilpassede tjenester.Adresse:AdministrationsbjælkeAvanceret. Er denne indstilling valgt, skal du inkludere disse filer i dit tema for at fÃ¥ links til deletjenesterne vist.After the Deadline rummer en række tilpasningsmuligheder, som du kan indstille i din profil.Akismet kan hjælpe med at holde din blog fri for spam!AlbumAlleAlle projekterAlle indlægAlfabetiskAlternativ tekstEt Automattic FlyselskabEn administrator for denne blog skal tilslutte Jetpack.Der opstod en fejl under oprettelsen dine nye deletjenester - tjek venligst om oplysningerne er gyldige.Der opstod en ukendt fejl under installeringBlændeBeklager, men der blev ikke fundet noget i arkivet. MÃ¥ske vil en søgning hjælpe dig til at finde et relevant indlæg.KunstnerVedhæftede filerLæs automatisk korrektur pÃ¥ indhold nÃ¥r:AutomatticTilgængelige tjenesterTilgængelige kortkoder er: %l.Tilbage til Toppen ↑Husk at klikke pÃ¥ "Opdater Profil" nederst pÃ¥ skærmbilledet for at gemme dine ændringer.VanesprogSortBlogarkivWebstedstilmeldinger (Jetpack)Bloggens webadresse:BlåRamme Farve (hex):Overfør kraften fra WordPress.com skyen til din selv-hostede WordPress. Jetpack giver dig mulighed for at forbinde dit websted til en WordPress.com-konto og udnytte de kraftfulde funktioner som kun WordPress.com-brugere normalt har adgang til.KameraAnnullerAnnuller svarBilledtekst:KategoriCenterFigurstatistikker afHey! Snyder du?Tjekker e-mail opdateringersstatus ...Vælg mellem de mest anvendte tagsKlichéerKlik herKlik for at aktive Press det!Klik for at sende som e-mail til en venKlik for at udskriveKlik for at dele pÃ¥ %sKlik for at dele pÃ¥ Google+Klik for at dele pÃ¥ LinkedInKlik for at dele pÃ¥ RedditKlik for at dele pÃ¥ TwitterLukFarveskemaKommer snart ...KommentarKommentar navigationKommenterer som %sKommentarerDer kan ikke længere kommenteres pÃ¥ dette indlæg.Komplekse sætningerIndstillingerKonfigurerIndstil %sTilslut til WordPress.comTilsluttet til WordPress.comKontaktformularURL til kontaktformular:KontaktinformationerLæs resten →Konverter til indlægTæl sidevisninger fra registrerede brugere, der er logget indBeskær billedeI gang med at læseBrugerdefineretFelt slettet.Eget felt opdateretDagsarkiv: %sDaglige arkiverMørkDatoDeaktiverFejlsøgStandardSletSlet permanentSlet dette element permanentBeskrivelseDiakritiske tegnDeaktiver CSS og JSAfbryd fra WordPress.comAfvisAfvis denne meddelelse indtil videre.Vis tekst i headerVis et billede i din sidebarVis en officiel Twitter indlejret Tidslinje widget.Vis som:Vis din beliggenhed, Ã¥bningstider og kontaktinformation.Vis en liste med seneste indlæg fra en anden WordPress eller Jetpack-aktiveret blog.Har du stadig %s pluginet installeret?Kryds ikke strÃ¥lerne! Du skal være logget ind pÃ¥ din WordPress-blog, nÃ¥r du godkender Jetpack.Dobbelt negationTræk og slip de enkelte tjenester ned i sektionen med Aktiverede tjenester for at fÃ¥ dem vist pÃ¥ dit websted. Træk dem ind i skjule-sektionen for at gemme tjenesterne bag en knap.Træk og slip de tjenester, du vil aktivere ind i boksen nedenfor.E-mailRedigerRedigér CSSRediger menupunktRedigér projektRediger markering ...Rediger Testimoniale-mailE-mail-adresseE-mail adresse:E-mail tjek mislykkedes, prøv igenSlet spamAktivér Portfolio Projekter for dette site.Aktiver korrekturlæsning efter følgende grammatiske og stilistiske retningslinjer, nÃ¥r du skriver indlæg og sider:Aktiverede tjenesterEngelske indstillingerSkriv en WordPress eller Jetpack WordPress webadresse.Skriv en kortkode direkte i editoren for at indlejre medier. Ønsker du en mere specifik vejledning, sÃ¥ følg nedenstÃ¥ende links.Indtast webadressen pÃ¥ et 16x16px ikon du vil bruge til denne tjeneste.Skriv din e-mail adresseIndtast din e-mail adresse for at blive tilmeldt og modtage pÃ¥mindelser om nye indlæg.Fejldetaljer: %sFejl ved flytning til papirkurven.Fejl ved gendannelse fra papirkurven.Fejl!Fejl, dÃ¥rligt modulFejl: Skriv venligst en gyldig e-mail-adresseFejl: Udfyld venligst de påkrævede felter (navn, e-mail).Eksempel:SideForklar ...FacebookFremhævetFremhævet indholdUdvalgte billederFeed(s) som skal vises:Objektiv brændviddeFølg blogFølg kommentarerFølg mig pÃ¥ TwitterFor mere information:Format:GratisFraForside, arkivsider og søgeresultaterForsideUddybende oplysninger kan findes pÃ¥ Dele-supportsiden. Denne video giver ogsÃ¥ en elegant gennemgang af, hvordan du bruger delingsfunktionen. Se den i HD for lirens skyld!GalleriGiv os en tilbagemeldingGoogleGravatar HovercardGravatar HovercardsGrønHøjdeHøjde (px):Højde:Skjulte udsagnsordSkjulSkjul relateret indhold efter indlægHjemÃ…bningstider og InformationTimer:Hovercards udvider de almindelige Gravatar-billeder med oplysninger om en person: navn, biografiske oplysninger, billeder, deres kontaktinfomation, samt andre tjenester, de bruger pÃ¥ nettet, sÃ¥som Twitter, Facebook eller LinkedIn.Hovercards udvider de almindelige Gravatar-billeder med oplysninger om en person: navn, biografiske oplysninger, billeder, deres kontaktinfomation, samt andre tjenester.Hovercards er en fantastisk mÃ¥de at vise din tilstedeværelse pÃ¥ internet og hjælpe personer med at finde hen til dit websted.Hej Du har for nylig fulgt et af mine indlæg hvilket betyder, at du vil modtage en email hver gang indlægget bliver kommenteret. For at aktivere/godkende skal du klikke pÃ¥ "Godkend" herunder. Hvis du mener der er tale om en fejl kan du ignorere denne besked, sÃ¥ vil vi ikke forstyrre dig igen.Hej Du har for nylig fulgt denne blogs indlæg hvilket betyder, at du vil modtage hvert nyt indlæg via mail. For at aktivere/godkende skal du klikke pÃ¥ "Godkend" herunder. Hvis du mener der er tale om en fejl kan du ignorere denne besked, sÃ¥ vil vi ikke forstyrre dig igen.IP-adresse:IkonIkon + tekstIkon URLKun ikonSkriv ord og fraser der skal ignoreres, nÃ¥r dine indlæg og sider korrekturlæses:Hvis tomt forsøger vi at finde billedets størrelse.Ignorer altIgnorer altidIgnorer forslagIgnorerede fraserBilledeBilledjustering:Billedfarve:BilledgitterBilledlinkBilledlisteBilledindstillinger:Billedstørrelse:Billed-url:Billedtitel:InaktivIndsæt videoI stedet for at skrive eller kopiere/indsætte lange webadresser, kan du nu fÃ¥ et kort og enkelt link til dine indlæg og sider. Kortlink-funktionen bruger det superkompakte wp.me domænenavn, og giver dig en unik webadresse, der er bÃ¥de sikker og pÃ¥lidelig at bruge.Det er perfekt til brug pÃ¥ Twitter, Facebook og sms'er, hvor hvert tegn tæller.JargonJetpack enkelt log-onJetpack af WordPress.comJetpack kombinerer kraften fra ​%s og enkelheden fra WordPress til at give dig den ultimative platform til matematik-blogging.Jetpack indeholder den nyeste version af det gamle %l plugin.Jetpack indeholder den nyeste version af de gamle %l plugins.Jetpack indeholder den nyeste version af det gamle “%1$s” plugin.Jetpack kunne ikke komme i kontakt med WordPress.com: %s. Det betyder normalt, at noget hos din udbyder er forkert sat op.Jetpack er installeret!Jetpack kræver WordPress version %s eller nyere.Jetpack sætter fut i dit selv-hostede WordPress websted ved at trække pÃ¥ kraften fra skyen hos WordPress.com.Slut dig til %s andre tilmeldtSlut dig til %s øvrige tilmeldteHop til:LaTeXEtiketNavnSprogStorSidst ændretLayout Valg:FÃ¥ mere at videFÃ¥ mere at videSkriv et svarSkriv et svar til %sSkriv et svarVenstreLysLink Farve (hex):Link URL (NÃ¥r der bliver klikket pÃ¥ billedet):LinkedInLinks til dit websteds RSS feedsForhÃ¥ndsvisningIndlæser …Indlæser kommentarer ...Indlæser video...Indlæser…Henter...Logget IndLogget Udj. M Y H:iPrimær sidebarMarker denne besked som spamMedierMediumMenuMenupunktBeskedBeskeden er sendtBeskederMissede planlagt indlægMobil-temaModulinformationKontaktformularHÃ¥ndterModulet kunne ikke aktiveres, fordi det udløste en alvorlig fejl. MÃ¥ske er der en konflikt med et andet plugin, du har installeret?MÃ¥nedsarkiv: %sMÃ¥nedlige arkiverMereMere informationMine TweetsNavnNyNyt i Jetpack: Centraliseret Site ManagementNyere kommentarer →NyesteNæste »Næste »NejIngen RammerIngen FooterIngen HeaderIngen moduler fundetIngen projekter fundet i papirkurvenIngen RullebjælkeDer blev ikke indsendt kommentartekst.Ingen data fundet for VideoPress-identifikator: %s.Ingen plugins fundet.ingen forslagIngen tags fundet.Ingen skrivefejl blev fundet.IngenBemærk: Custom CSS bliver nulstillet nÃ¥r du skifter tema.Intet fundetNotifikationerInformer mig om nye kommentarer via e-mail.Giv besked om nye indlæg via e-mail.BrugerForfatterRolleDatoAntal indlæg der skal vises:OKÆldre %sÆldre indlægNÃ¥r du har lavet forbindelsen, kan du aktivere alle de dejlige funktioner herunder.Et nyt Jetpack modul%s nye Jetpack modulerÃ…ben link i et nyt vindue/fanebladValgfri tekst der vises til dine læsere:IndstillingerOrangeRækkefølgeSide %sSider:PassiverStiPermalink til %sTelefon:Fraser der bør undgÃ¥sPingback:PinkDer kræves JavaScript for at afspille %s.Glem ikke at indsende noget tekst sammen med din kommentar.Skriv venligst en gyldig e-mail adresse.Skriv venligst din e-mail adresse.Skriv venligst dit navn.Bekræft venligst din fødselsdag.PluginsPopulærePorteføljeSend kommentarIndlæg af %s.Indlæg er konverteret.%s indlæg er konverteret.Indlæg navigationIndlæg blev ikke sendt - kontroller din e-mail adresse.Skrevet afSkrevet af %sLagt i %sIndlægIndlæg & kommentarerPress detPreviewForhÃ¥ndsvisning:ForhÃ¥ndsvisning: ændringer skal gemmes for ikke at gÃ¥ tabtPrimær menuPrintPrivatlivPrivatlivspolitikProjektKorrekturlæs tekstKorrekturlæsningDrevet af %sUdgivUdgivUdgivetUdgiveren har begrænset afspilningen af indlejrede videoer.KøbLillaLav en figur, der viser de sidste 48 timers besøg i administratorbjælken.Før musen over din Gravatar for at tjekke din profil.RSS links (Jetpack)KarakterSeneste indlægRødRedditOverflødige sætningerRegistrerede brugereRelateretRelaterede indlægRelaterede indlægFjern tjenesteGentaget ordErstat det markerede med:SvarRapportsynlighed GenskabGendan dette element fra PapirkurvenResultater:Retur til afsender. Ups! Det ser ud til, at du fik den forkerte Jetpack med posten; deaktiver og genaktiver Jetpack-pluginet for at fÃ¥ en ny.HøjreGemGem ændringerGem indstillingerPlanlagtScroll tilbage til toppenSøgSøg kommentarerSøg i altSøg i medierSøg i moduler ...Søg pluginsSøgeresultater for: %sSøgeresultaterVælg de roller, som vil være i stand til at se statistikrapporter.Personlig semantisk publiceringsplatformSend e-mailSend til e-mail adresseSendt af en uregistreret besøgende pÃ¥ din side.Adskil flere tags med kommaerTjenestenavnTjenester der trækkes hertil vil vises individuelt.Tjenester der trækkes hertil vil være skjult bag en dele-knap.IndstillingerIndstillingerne blev gemtDelDel pÃ¥ FacebookDel pÃ¥ TumblrDel dette:Del dine indlæg pÃ¥ Twitter, Facebook og en lang række andre tjenester. Du kan indstille tjenesterne til at blive vist som ikoner, tekst eller begge dele. Nogle tjenester har derudover mulighed for at vise smarte knapper, sÃ¥som Twitter, der løbende opdatere antallet af gange indlægget er blevet delt.Delt indlægDelingIndstillinger for delingDeling URLDeleetiketKortkode indlejringerKortkoder giver dig mulighed for nemt og sikkert at indlejre medier fra andre steder pÃ¥ dit websted. Med en simpel stump kode kan du fÃ¥ WordPress til at indlejre YouTube, Flickr og andre medier.VisVis Uddrag:Vis fremhævede Billede:Vis en "Relateret"-header for mere tydeligt at separere relateret-sektionen fra indlægVis relateret indhold efter indlægVis mest besøgte indlæg iVis populæreste søgetermer overVis det samlede antal tilmeldinger? (%s tilmeldt)Vis det samlede antal tilmeldinger? (%s tilmeldte)Vis:ellerLukkerhastighedSølvLignende indlægSite Icon lader dig oprette et ikon til dit websted. Dette ikon vil blive brugt som favicon, mobil ikon og Tile pÃ¥ Windows 8 computere.Side NavnStatistik for webstedetWebstederFortsæt til primære indholdLilleUdklipSneBeklager, intet at rapportere.Beklager, din blog kan ikke dele indlæg via e-mail.Sorter efter:SpamStavningStavning og grammatikStatisk side:StatistikStatus ukendt.Dit stylesheet er gemt.EmneSendAfsend »Indsender kommentar%sAbonnérTilmeld til %sAbonner pÃ¥ blog via e-mailSucces! En mail er lige blevet sendt for at bekræfte dit abonnement. Find venligst mailen nu og klik aktiver for at starte dit abonnement.SupportTagnavnTagsBetingelserServicebetingelserTekstTekst- & billedlinksTekstlinkKun tekstAfter the Deadline korrekturlæsningstjenesten forbedrer dine tekster ved at bruge kunstig intelligens til at finde dine fejl og tilbyde smarte forslag.VideoPress-pluginet kunne ikke fÃ¥ forbindelse til VideoPress-serverne. Denne fejl skyldes højst sandsynligt et plugin, der er forkert sat op. Geninstaller og opgrader.Den indtastede email er ugyldig. Venligst prøv igen.Følgende moduler er blevet opdateret: %l.Følgende nye moduler er blevet aktiveret: %l.Følgende tjenester er inkluderet: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, print og e-mail.Følgende tjenester er inkluderet: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, print og e-mail.Den gamle version er blevet deaktiveret og kan fjernes fra dit websted.De gamle versioner er blevet deaktiverede og kan fjernes fra dit websted.Plugin'et er allerede installeretKorrekturlæseren har forslag til dette indlæg. Er du sikker pÃ¥ at du vil udgive det? Klik pÃ¥ OK for at udgive dit indlæg, eller klik pÃ¥ Annuller for at se forslagene og redigere dit indlæg.Korrekturlæseren har forslag til dette indlæg. Er du sikker pÃ¥, at du vil opdatere og udgive det? Klik pÃ¥ OK for at opdatere og udgive dit indlæg, eller klik pÃ¥ Annuller for at se forslagene og redigere dit indlæg.Temaet er allerede installeretTema: %1$s.Der er mange plugins og tjenester, der leverer statistikker, men data kan være overvældende. WordPress.com Stats gør de mest populære mÃ¥linger nemme at forstÃ¥ via en tydelig og imødekommende grænseflade.Der er ingen indlæg at vise. Ønsker du mere trafik?Der var et problem med kommunikationen med korrekturlæsningstjenesten. Prøv igen om et minut.Der opstod en fejl i kommunikationen med korrekturlæsningstjenesten. Der opstod en fejl under installering af dit pluginFejl under tilmelding, prøv igen.Dette galleri indeholder %2$s billede.Dette galleri indeholder %2$s billeder.Dette plugin virker uden, men multibyte-understøttelse bruges hvis det er tilgængeligt. Du kan opleve mindre problemer med Tweets og andre deletjenester.Dette indlæg er blevet delt!Dette indlæg er beskyttet med kodeord.Dette indlæg er beskyttet med kodeord. Skriv kodeordet for at se eventuelle kommentarer.Denne video er henvendt til et voksent publikum.Denne video kræver Adobe Flash for at kunne afspilles.ThumbnailTidTid:Tidslinje Tema:TitelTitel:For at ændre dine deleindstillinger, gÃ¥ til Indstillinger → Deling menuen.For at aktivere alle Jetpack funktionerne er du nødt til at forbinde dit website til WordPress.com.Find et tilfældigt indlæg pÃ¥ dit websted, som har nogle kommentarer, for at se hovercards. Hvis kommentarskriveren har et hovercard tilknyttet sin Gravatar vil det vises, nÃ¥r du fører musen henover deres billede. Klik pÃ¥ Deaktiver-knappen ovenfor for at slÃ¥ hovercards fra.For at benytte kortlinks skal du redigere et udgivet indlæg (eller udgive et nyt!). En “Hent kortlink” knap vil blive vist under indlæggets titel. NÃ¥r du klikker pÃ¥ den, vises en dialogboks med kortlinket som du kan kopiere og benytte pÃ¥ Twitter, Facebook eller hvor du ellers kunne fÃ¥ brug for det.TopindlægVisninger af topindlæg & Sider er udregnet fra 24-48 timers statistik. De er et stykke tid om at opdatere.Mest populære søgningerGennemsigtig baggrundPapirkurvPrøv at tilslutte igen.Tweets fra @%sTwitterTwitter TidslinjeTwitter brugernavn:TypeTyperURLIkke kategoriseretIkke udgivetAfmeldUnavngivet IndlægOpdateretUpload billedeBenyt $latex din latex kode her$ eller [latex]din latex kode her[/latex] for at inkludere %s i dine indlæg og kommentarer. Der er rigtig mange muligheder til rÃ¥dighed.Brug et fremhævet og visuelt imponerende layoutBrug automatisk fundet sprog til at læse korrektur pÃ¥ indlæg og siderBrugernavnVærdiVaultPressVaultPress kontrolpanelVideoPressSe alleVis webstedsstatistik uden JavaScriptVis %s.Se pÃ¥ InstagramSe folks profiler, nÃ¥r du fører musen over deres GravatarsSe statistik pÃ¥ WordPress.com lige nuOversigtVisninger de seneste 48 timer. Klik her for mere webstedsstatistik.SynlighedBesøg webstedsstatistik for at se din statistik.WP.me kortlinksAdvarsel! Multibyte-understøttelse mangler!Vi kan ikke vise indlæg fra denne blog.Vi kan ikke indlæse blog data i øjeblikket.WebsideVelkommen til Jetpack %s!Velkommen til Custom CSS! For mere info, se http://wp.me/PEmnE-BtHvad er et Hovercard?HvidWidget ID:erWidget-titel:Bredde (px):Bredde:Med 1 kommentarWordPress.com statistikWordPress.com brugernavnWordPress.com har i øjeblikket problemer, og er ude af stand til at fylde brændstof pÃ¥ din Jetpack. Prøv venligst igen senere.Wow, det lyder nørdet.Skriv en kommentarForkert størrelse. Hmm ... det ser ud til, at din Jetpack ikke helt passer. Har du tabt dig? Klik pÃ¥ "Tilslut til WordPress.com" igen for at fÃ¥ din Jetpack justeret.d.m.Yd.m.Y H:iÃ…rsarkiv: %sÃ…rlige arkivetJaDu har ikke lov til at flytte dette element ud af papirkurven.Du har ikke tilladelse til at flytte dette emne til papirkurven.Du kan se dit statistikkontrolpanel her.Du kan tilføje følgende variabler til din tjenestes delings-URL:Du har ikke tilstrækkelige rettigheder til at se denne video. Støt gratis software og opgrader.Du har ikke tilstrækkelige rettigheder til at se denne side.Du abonnerer allerede pÃ¥ denne hjemmeside. Venligst tjek din email indbakke.Du er blevet tilmeldt til at modtage opdateringer via e-mail.Du har delt dette indlæg med %sDu har med succes koblet Jetpack fra.Du skal logge ind for at skrive en kommentar.Du skal angive en gyldig kommandoDu skal oprette en widget pÃ¥ Twitter.com, og derefter skrive dit widget id (det lange tal som du finder i URL'en pÃ¥ din widgets konfigurations side) i feltet her under. Læs mere.Du skal godkende Jetpack-forbindelsen mellem dit websted og WordPress.com, for at aktivere de seje funktioner.Du skal registrere din Jetpack, inden du tilslutter den.Du vil ikke længere modtage opdateringer om Jetpack via e-mail. Din e-mail adresseDin Jetpack er næsten klar!Dit navnDine webstedsstatistikker virker bedre med JavaScript aktiveret.Der er i øjeblikket ikke nogle blogindlæg, som er udgivetDin kommentar afventer godkendelse.Din kommentar afventer godkendelse.Din kommentar blev godkendt.Dit websted skal være offentligt tilgængeligt for at bruge Jetpack: %set indlæg eller en side er udgivet første ganget indlæg eller en side er opdateretogAnnullerKlik herIndstilbeskær billedetdagRedigerrediger teksttilbagehttp://jetpack.mehttp://wordpress.org/I %sIndlæser…mÃ¥nedjeg vil læseKommentarlæstkorrekturlæstsøg i altSikkerhed, sikker, beskyttelse, botnet, brute forcestatistik, tracking, analytics, visninger, traffikvælg en filE-mailFacebookLinkedInPres detUdskrivTwitterden seneste dagden seneste mÃ¥neddet seneste kvartalden sidste ugedet seneste Ã¥rdenne videoSe: %sugeordplugins/jetpack/languages/jetpack-bs_BA.mo0000755000312500031250000021434512651056012021160 0ustar eacbforgeacbforgÞ•è\åœ.0>1>yA>»>-Ù>;? C? P?7]? •?F¢?Gé?1@:@’A@[Ô@0A!?AaAhAyAA ¦A ±AC¼A0B1BBB1QByƒB-ýBH+C9tC‹®C©:D4äD€E6šEÑEÚEëEòEöEþEF"FC4FxF‹FžF5·FJíF 8GxBGs»G/H5H 9H FHPH"`HBƒHZÆHY!I{Ip„I õIfJiJpJ%€J ¦J±JÄJâJSóJ GKUK [KiK †KKÚ•K pL²}L0M 4MBMXM_M(vMŸM ¦M³M¼MÅMÎMMÕM#N2NEN%NNtN“N ¢N­NÂNâNñN O(OAOZOtO zO‡OšO¢O¹OÌOÝO!æOP P "P/PiHP ²P¼P ×PäP öP5Q;9QuQ ‰Q”Q ›Q¦Q¼QÑQáQ÷Q RR*R/R 4R?RERGMRq•RSS!S >SJS\SoSS+•SÁSÖSEêS/0T `T T(T/¶TæT*Un-UœU#­U&ÑU¥øUCžVâV W WRW<dXÓ¡XuYzYƒY ’YŸY±YÃY×Y ÝY$ëYZ$Z 3Z>Z[NZªZ»ZvËZAB[„[c[\\-\L\b\*i\5”\Ê\ Ó\Þ\ç\ù\ ]]%]5]I] R] ]] j] w]ƒ]“]¨]º] Ð]Ý]å] ê]÷]-ü] *^±5^ç^ï^ö^ __._ 4_B_\_c_*k_ –_£_!¨_Ê_¾Ï_†Ž`_aua ‰a•a ša¦a ¯aM¹a6b >b IbWbibybb bb ´b ¿b ÊbÕb åb ñb üb c cãcdd+dgÍÀg/Žhc¾h¢"i¾Åi2„j·j½j?Ãj=kGAk\‰kfækXMl¦l¯l µl Ãl Îl Ùlçl ûl mmm%m?m<_mœm.¥mÔmQóm EnRnfnwn ‡n’n ²n ¿nÌnêno ooo !o+o 3o@oIoRoboyo‘o–©o@pUpfpkp|pp …pp¥p ¬p ¹pÇpÊpåp=qBqTqfquq„q¢q½qûÂq ¾r Ìr)Úr s%s(s 9sFs Os [sŠfs-ñs,tFLt“t°tÎt)ât uuu!u)u 0u>uCuSubu su}u ‚uŒuCœu5àuQv%hv+Žv ºv$Ûvww7w?w Gw Tw `wnw/~w ®w ¹w ÆwÓwÙw êw õwx3x <w´7Ä ü‘‚"˜‚»‚Ï‚dê‚Oƒ'Uƒ }ƒ‹ƒ ’ƒ œƒ§ƒ­ƒŃ˃ ÒƒKÞƒ2*„]„-w„¥„®„I³„ý„……!…3…;… B…P… e…o……‘…­…Å…Í…Ö… Û…ç…ø…ý… † † $†.†®7†æ†‡‡,‡¡@‡Aâ‡8$ˆ,]ˆ2Šˆy½ˆ„7‰s¼‰‘0Š©ÂŠ§l‹ ŒÊ!ŒBìŒY/?‰YÉ\#Ž¡€Ž" =I^,¨MÕ #-28>\Eú¢*‘ÄÈ’~“ ”” ,” 9”E”K”a”h”p”‚”‡”” ‘”Ÿ” ¾” Ê”Ö”é” ñ” þ”Ö •@â•#–@–I– O–Z–o– –Œ–•–®–"¿–-â–d—:u—/°—4à—„˜š˜#«˜Ϙ'ט ÿ˜ ™:™tM™™ ș֙é™Å𙶚ʚjášL›d›­w›%œ +œ9œMœ(Qœ7zœ3²œ8æœM@m€®;/ž2kž!žž3ÀžJôžp?Ÿ7°Ÿ7èŸ   3 4= sr 6æ $¡B¡a¡%|¡?¢¡!â¡¢¿¢Þ¢^£b£ i£ t£~£‚£ ‡£w‘£ ¤¤#¤9¤I¤[¤ a¤ n¤x¤‡¤™¤«¤¾¤Ò¤á¤ñ¤{¥¤~¥ #¦0¦?¦ P¦ ^¦ l¦w¦•¦&š¦:Á¦ü§f¨v¨ Ѝ –¨ ¡¨ ­¨¹¨ Ȩ5Õ¨. © :©E©—N©Yæ©@ª!Pªrªyª‹ª¤ª ¼ª ʪ Öª0㪫&«97«jq«-Ü«O ¬=Z¬˜¬²­/Í­…ý­Iƒ® Í®×®é®ñ®÷®ý®¯)¯[;¯—¯¯¯ ǯ,è¯f°|°†“°q±Œ±’± –± £±¯±ñ:㱊²y©² #³{0³¬³‚³³ 6´@´,U´ ‚´´ž´ º´XÈ´!µ0µ 5µBµ [µfµölµ c¶Òp¶C· G·T·o·v·:‘·Ì·Õ·æ·î· ÷· ¸Y ¸g¸~¸™¸(©¸)Ò¸ü¸¹¹$.¹S¹j¹$ˆ¹!­¹!Ϲ(ñ¹º "º-º4º)=ºgº|º ’º)œºƺ ׺áºñºq » »‹»§»º»Ò»4æ»D¼`¼ |¼ м–¼¦¼Á¼Ú¼î¼ ½ (½2½D½J½ P½ \½h½ q½ |½ˆ½½Ÿ½¹½¾½Ó½ç½¾+¾;¾Q¾Vj¾/Á¾%ñ¾ ¿,%¿(R¿{¿&’¿N¹¿À"À*>ÀÁiÀ7+Á1cÁ•Á¥Á°«Á>\Ãã›ÃÄ …ÄģIJÄÅÄÙÄîÄ ôÄ<Å>ÅOÅ ^ÅkÅaÅãÅöÅŒÆL“ÆàÆhüÆeÇyÇ –Ç·Ç×Ç5àÇ=ÈTÈ ]ÈhÈqÈ…È ›È¥È¸ÈÈÈÜÈ ñÈ ýÈ É É$É8ÉOÉeÉ{ÉÉ •ɟɱÉ.´ÉãÉÙõÉÏÊØÊßÊúÊË%Ë,Ë <Ë]ËdË lËËŸË(¦ËÏËÕØËª®Ì†YÍàÍ ÷ÍÎ Î Î Î\+Î?ˆÎ ÈÎÕÎæÎúÎ ÏÏ #Ï/Ï AÏ NÏYÏhÏxÏ ‰Ï ”Ï ¡Ï «Ïë¸Ï¤Ð·ÐÒÐíÐi ÑtÑ|ÑŽÑš©Ñ DÒPÒkÒ|Òn’Ò‘ÓD“ÓxØÓAQÔë“Ô)ÕJ©Õ´ôÕ¬©Ö€V×××Ý×ä× ê× ø×Ø Ø ØØ#Ø*Ø =Ø JØ WØdØ sØ€Ø‡ØØ$–Ø!»ØÝØãØ0ìØ$Ù\BٟٮÙÅÙØÙêÙùÙÚ%Ú9ÚNÚjÚsÚ|Ú„Ú ‰Ú—ÚžÚ­Ú ´ÚÀÚØÚîÚ Ûš/ÛÊÛßÛðÛöÛÜ Ü ÜÜ 4Ü>ÜPÜbÜeÜ}ÜKœÜ&èÜÝ)Ý9Ý"QÝ#tݘÝùŸÝ™Þ °Þ2»Þ/îÞß$ß6ß GßRßb߃qßDõß-:à hàrà uà–à;°àìà óà á á á!á'á/áAá$Páuá„á ‰á“á+¤á;ÐáN â-[â*‰â$´â!Ùâ!ûâ'ãEã MãWãgãvã“ã4§ã Üã çãõãä ä!ä 5ä@ä>Hä ‡ä “ä žä©ä¼äÌäÛäîäå å å ,å8å AåNå Uå@`å¡å ¦åC²å=öå4æ JæVæ]æoævæ}æŒæ£æ´æ Åæ Óæßæñæ çç ,ç7ç9ç;ç=çCç›^çúçè èè(/èXèoè‚è–èŸè¦è¹èØèêèûèé.é^AéJ é&ëéê!ê+:ê*fê‘ê °ê6¼êHóê<ëEë[ëdë zëˆë£ì ·ìÂì×ìëìDýìBíWíÝsíQîZî sîî™îIªîMôîBï>Uï”ï(=ðfð…ð ¥ðFñ1Oññ‘ñ šñ§ñ»ñ ÄñåñêñññoøñChò!¬ò@Îò óón óó¢ó ·óÂóÚóßóèóøó ôô,ô$?ôdôtô }ôŠô‘ô¡ô°ô¶ôÒôâô óôþô­õ¼õÛõìõö¾öTÒö''÷#O÷(s÷wœ÷‚ø}—øÂùÅØùÇžú fûórûDfüq«ü?ý ]ý˜iýÍþÐþ#ìþYÿ(jÿ\“ÿðÿùÿ \-v^¤Ü¢àƒ"š½ÕÞå -3:>'M u‚“ ­ ¸ ÄÚÏHª$ó ( 3>Z o zˆ§-ÂðmKnGºB zE À )Õ  ÿ + #8 \ w ¬‰ 6 = M \  e o ˆ x¦  6 ¨L õ  û -3M5K·>HB‡‹$.8!gF‰gИ8;Ñ0 > QD[e -"4"Wz'”I¼+"2ôU”Jßáê ù h ‚Œž· ÉÓÚ ãðöÿ  &-–5¬Ìy€Ÿ¯ ¾ É×ß’[¾x\`0sB–¡ql}Í. S%àÿU ó¼cÝn±ìNm[Ê—*”¸ßÑd¼AÔÕYâ1ˆS…w˜ÏÚÒG¿9éÏʬœÁ©†:%tãÎäHÃ3h·Ókê5pX+TW(E÷¥üšÓjq{ºlRÅ-íä ‰\¨þ//Ö¢®žNÌË' tßߪçÉh Ÿ’z¬½€Bàn­P¨ôi£eb“Ôƒ©z‚É\ÄΓd_;Z‡TÛ6È$·rƒäHv´½æ”Mhn‹ù„´ïlt±¢°Òˆ…FgW.ö+ÑOQJ¡`=Q#7&CÙ}¤æk!]Œü"Ÿã#,¢¥]wF~§E×p²ŒšÇ™¥s‰ØWL{ñ:èÅæÞi9Û*ÀgcYP¾`$žid"Š*-5f&|ÆÇ®r^ ŽÑN=PM¹€vL2‘oœC«Ðà?[q‡=Jú¦ò~ÜžjËšõ¦ba@¦Ä·³<0²K˜ Àg.2!ç?€f—ó’BÓ£µ¸ºIb“±Þ¯û¶¡|Ù8 çyKØ‹œ3›«6Â_è…6I^†ð«¶z_ïµÍ)4»4 ö£ã$p}ÁLG,Vê8ª&cî¤Ñ)Ú˜­ñÄûÝ•‹ŠÌXî¹³m¿ÉVìǤ—× Õ ÌŒø"Ï”åÜÖªRF#™ëDŽ›<„áQa›aËo¿:§©uG7»uõZÙ¹Þ1Î 9ú/O{ø‘2ʼ>T|ýf;ÜS,YM >E-Z3ÝoÚ–¸ Чâ(â4ù(yAC†ÛƒáÈ!ÆÈvÀò²) µ^ ³ÿå?Ve0R'•í‚<e°ˆ~]m1x+ÂØk@ý®s áUy½–j¾>ô‚ºxX‰U×¶Í5;wÆ Ç„ëÔ™J8¨ è¬@u•DKÐr%´ Õþ¯Å廎ÁŸHOð'¯Ö7÷°ŠÒ ­DAéI%1$s %2$s Views%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature namesDeactivate %l%s (Jetpack)%s = Subscribe linkWant to receive updates about Jetpack by email? %s%s = Unsubscribe linkYou are currently subscribed to email updates. %s%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is required%s requires a valid email address%s: %s« Previous← Older Comments— Select —(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 Reply%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentActivateActivate AkismetActiveAddAdd NewAdd New Project TagAdd a new fieldAdd a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd or remove tagsAdd this form to my postAdditionally you can define your own custom services.Adjust your Jetpack Comments form with a clever greeting and color-scheme.Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.AlbumAllAll ProjectsAll postsAlternate text:An Automattic AirlineAn administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.Answer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to exit the form editor without saving? Any changes you have made will be lost.ArtistAttachment PageAutomatically proofread content when:AutomatticAvailable ServicesAvailable shortcodes are: %l.Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog Subscriptions (Jetpack)Blog URL:BlueBring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Button styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I view my feedback within WordPress?CancelCancel replyCaption:CarouselCategoryCenterChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?CheckboxChecking email updates status…Choose from the most used tagsClichésClick hereClick to Press This!Click to email this to a friendClick to printClick to share on LinkedInClick to share on PinterestClick to share on RedditClick to share on TumblrClick to share on TwitterCloseColor SchemeComing soon…CommentComment cache problem?Comment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigureConfigure %sConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected to WordPress.comContact FormContact Form URL:Contact InfoContinue reading →Count the page views of registered users who are logged in.Create Share ButtonCrop ImageCustomCustom CSSCustom CSS StylesheetCustom Email AddressCustom Message:Custom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDebugDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDisable CSS and JSDisconnect from WordPress.comDismissDismiss this notice and deactivate Jetpack.Dismiss this notice.Display Header TextDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay an image in your sidebarDisplay as:Display higher quality video by default.Display images in full-size carousel slideshow.Do I need to fill this out?Do you still have the %s plugin installed?Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Double NegativesDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.EditEdit CSSEdit Menu ItemEdit ProjectEdit Selection...Edit Your ProfileEdit this new fieldEmailEmail AddressEmail check failed, please try againEmail notificationsEmail settingsEmpty SpamEnable carouselEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error Details: %sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Explain...FacebookFacebook Like BoxFacebook Page URLFeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackField typeFirst optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFor more information:Form builderFormat:FreeFree formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!GalleryGoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight:Here’s what your form will look likeHidden VerbsHideHide the stats smiley face image.HomeHovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?IP Address:IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:InactiveInsert VideoInstead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Invalid requestInvalid security token.Invalid usernameIs this site private?It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.JargonJetpack CommentsJetpack Comments ScreenshotJetpack Comments enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site.Jetpack FAQJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack is network activated and notices can not be dismissed.Jetpack now includes Jetpack Comments, which enables your visitors to use their WordPress.com, Twitter, or Facebook accounts when commenting on your site. To activate Jetpack Comments, %s.Jetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will automatically take the great published content from your blog or website and share it instantly with third party services like search engines, increasing your reach and traffic.Join %s other subscriberJoin %s other subscribersLaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLikeLink URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading Comments...Loading video...Loading…Loading...Location of the Ogg video file.M j, Y @ G:iMain SidebarMark this message as NOT spamMark this message as spamMediaMedia FileMediumMenuMenu ItemMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Module could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Monthly Archives: %sMonthly archivesMoreMore informationNameNewNew fieldNewer Comments →NewestNext »Next » NoNo Projects found in TrashNo comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo plugins found.No suggestionsNo tags found.No writing errors were found.Nonce verification failed.NoneNope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don’t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.OKOfficial buttonsOgg File URLOlder %sOlder postsOmnisearchOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.One New Jetpack Module%s New Jetpack ModulesOnly display videos in free software formatsOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptional text to display to your readers:OptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPersonal LinksPhrases to AvoidPingback:PinkPinterestPlans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please verify your birthday.PluginsPopularPost CommentPost by %s.Post by EmailPost navigationPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPreview: changes must be saved or they will be lostPrimary MenuPrintPrivacyPrivacy PolicyProject TagProject TypeProject saved.Project updated.ProjectsProofread WritingProofreadingProudly powered by %sPublicizePublicize:PublishPublishedPublisher limits playback of video embeds.PurchasePurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RSS Links (Jetpack)RadioRatingRecent PostsRedRedditRedundant PhrasesRegistered usersRelated PostsRelated postsRemove ServiceRemove logoRepeated WordReplace selection with:ReplyReport visibilityRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashReturn to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave ChangesSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledSearchSearch CommentsSearch FeedbackSearch MediaSearch PluginsSearch Project TagsSearch Results for: %sSearch resultsSelect a user or pick "custom" and enter a custom email address.Select the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameServices dragged here will appear individually.Services dragged here will be hidden behind a share button.SettingsSettings have been savedShareShare on FacebookShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.Shared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow FacesShow Personal LinksShow StreamShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow buttons onShow map of photo location in carousel, when available.Show moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shows your most viewed posts and pages.Shutter SpeedSilverSite NameSite StatsSitesSkip to primary contentSmallSmileySmiley faceSorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, nothing to report.Sorry, your blog cannot share posts by email.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarStatsStylesheet saved.SubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSupportTag nameTagsTake SurveyTerms of ServiceTextText & Image LinksText LinkText ListText onlyTextareaThe After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Facebook Like Box Widget The Image Widget The RSS Links Widget The Twitter Widget The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The authorization process expired. Please go back and try again.The default content width for the %s theme is %d pixels.The following modules have been updated: %l.The following new modules have been activated: %l.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Print, and Email.The following services are included: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Print, and Email.The image helps collect stats and makes the world a better place but should still work when hiddenThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.Theme: %1$s.There are many plugins and services that provide statistics, but data can be overwhelming. WordPress.com Stats makes the most popular metrics easy to understand through a clear and attractive interface.There are no posts to display. Want more traffic?There was a problem communicating with the Proofreading service. Try again in one minute.There was an error communicating with the proofreading service.This HTML form field is marked as required by the user in contact form builder(required)This gallery contains %2$s photo.This gallery contains %2$s photos.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This video is intended for mature audiences.This video requires Adobe Flash for playback.ThumbnailTimeTime:TitleTitle:To configure your sharing settings, go to the Settings → Sharing menu.To see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop SearchesTransparentTrashTry connecting again.TumblrTwitterTwitter username:TypeTypesURLUncategorizedUnlink user from WordPress.comUnpublishedUnsubscribeUpdate Project TagUpdatedUpload ImageUploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use automatically detected language to proofread posts and pagesUser linked to WordPress.comUsernameValueVaultPressVaultPress dashboardVerified ServicesVideoPressView AllView Full Profile →View Mobile SiteView Site Stats without JavascriptView _Plans_&_Pricing_. (VaultPress)View %s.View full size %1$s×%2$sView people's profiles when you mouse over their GravatarsViews over 48 hours. Click for more Site Stats.Visit Site Stats to see your stats.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.WP.me ShortlinksWarning! Multibyte support missing!WebsiteWelcome to Jetpack %s!What should the subject line be?What’s a Hovercard?What's a Gravatar?When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.WhiteWidget title:Widgets ScreenshotWidth:With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.WordPress.com StatsWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYesYou are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have been subscribed to receive email updates.You have shared this post with %sYou must log in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to register your Jetpack before connecting it.You will no longer receive email updates about Jetpack.Your Email AddressYour NameYour Site Stats work better with Javascript enabled.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your new field was saved successfullyYour website needs to be publicly accessible to use Jetpack: %sa post or page is first publisheda post or page is updatedallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andcancelclick hereconfiguredayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/loading…locales%1$s/%2$smonthnounCommentproofreadshare toEmailshare toFacebookshare toLinkedInshare toPinterestshare toPress Thisshare toPrintshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?wordsPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 %1$s %2$s pregledaNaravno. %1$s da dodate novi tekstualni okvir, radio dugme, dugme za oznaÄavanje ili padajuću listu.%1$s - boÄna traka%1$s - %2$s%1$s: %2$s%1$s u %2$s%1$s u %2$sDeaktiviraj %l%s (Jetpack)Želite dobijati novosti o Jetpacku na vaÅ¡ email? %sTrenutno ste pretplaćeni na email novosti. %s%s greÅ¡kaprije %s%s nije mogao biti aktiviran zbog toga Å¡to je prouzrokovao fatalnu greÅ¡ku. Možda postoji konflikt sa drugim instaliranim pluginima?%s je moćni markup jezik za pisanje komplikovanih matematiÄnih jednaÄina, formula itd.%s je neophodno%s zahtjeva ispravnu email adresu%s: %s« Prethodna← Stariji komentari— Odaberi —(bez naslova)(neophodno)%1$s na %2$sSaznajte viÅ¡e o ovim opcijama.% odgovora1 odgovor%s nije dozvoljena stranica za ugradnju.Jetpack je aktiviran! Administrator mora posebno povezati svaku stranicu u vaÅ¡oj mreži.Opcije modula su saÄuvane. Ukinuli ste vezu vaÅ¡eg raÄuna (%s) i stranice WordPress.com.Sve je spremno. Možete zapoÄeti sa radom. VaÅ¡ Jetpack ima problem. Desilo se neÅ¡to Å¡to se ne bi trebalo deÅ¡avati. Izgleda da se jednostavno sretni: %sVaÅ¡ Jetpack ima problem. Povezivanje ove stranice sa WordPress.com stranicom nije moguće. Ovo obiÄno znaÄi da vaÅ¡a stranica nije javno dostupna (localhost).VaÅ¡ Jetpack je već povezan. Obrazac za kontakt je dobar naÄin da omogućite vaÅ¡im Äitateljima da vas kontaktiraju bez objavljivanja vaÅ¡e liÄne email adrese.Nekoliko rijeÄi kojima ćete motivirati vaÅ¡e Äitatelje da komentariÅ¡uAktivirajAktiviraj AkismetAktivnaDodajDodajDodaj novu oznaku projektaDodaj novo poljeDodaj novi servisDodaje obrazac za email registraciju kako bi se druge osobe mogle pretplatiti na vaÅ¡ blog.Dodaj joÅ¡ jednu opcijuDodaj ili ukloni oznakeDodaj ovaj obrazac u moj ÄlanakMožete definisati i vaÅ¡e vlastite servise.Prilagodite obrazac vaÅ¡ih Jetpack komentara dodajući poruku dobrodoÅ¡lice i mijenjajući Å¡emu boja.Administratorska trakaNapredno. Ako je ova opcija ukljuÄena, ove datoteke morate ruÄnu ubaciti u vaÅ¡u temu da bi linkovi za razmjenjivanje funkcionisali.After the Deadline ima mnogo opcija za prilagoÄ‘avanje koje možete ureÄ‘ivati u vaÅ¡em profilu.AlbumSveSvi projektiSvi ÄlanciAlternativni tekst:Automattic AirlineAdministrator ovog bloga mora postaviti Jetpack konekciju.Desila se greÅ¡ka prilikom kreiranja vaÅ¡eg novog servisa za dijeljenje - molimo vas da provjerite da li ste unijeli ispravne informacije.Popunite kratku anketu i napiÅ¡ite vaÅ¡e miÅ¡ljenje o pluginu i dajte nam savjet o tome na Äemu da radimo u budućnosti.Otvor blendeŽao nam je, nema rezultata za prikaz iz zahtjevane arhive. Možda će vam pretraga pomoći u pronalasku željenog Älanka.ArhivaJeste li sigurni da želite zatvoriti ureÄ‘ivaÄ obrasca bez snimanja? Bilo kakve promjene koje ste napravili će biti izgubljene.IzvoÄ‘aÄStranici s prilozimaAutomatski radi lektorisanje sadržaja kada:AutomatticDostupni servisiDostupni kratki kodovi: %l.Boja pozadineNe zaboravite kliknuti na "Ažuriraj profil" u dnu stranice da biste saÄuvali promjene.Vulgaran jezikCrnaArhive blogaBlog pretplate (Jetpack)URL bloga:PlavaDobijte WordPress.com mogućnosti na vaÅ¡oj samostalno hostiranoj WordPress stranici. Jetpack vam omogućava da povežete vaÅ¡ blog sa WordPress.com raÄunom kako biste mogli koristiti mogućnosti koje su dostupne samo za WordPress.com korisnike.Stil dugmetaDodavanjem obrasca za kontakt, vaÅ¡i Äitaoci će vam moći slati komentare i druge informacije. Sve ovo će se automatski skenirati radi spama i samo će poruke koje nisu spam biti proslijeÄ‘ene na vaÅ¡ email.CSSCSS revizijaUreÄ‘ivaÄ CSS predložakaKameraMogu li dodati joÅ¡ polja?Mogu li pregledati povratne informacije unutar WordPressa?PoniÅ¡tiPoniÅ¡ti odgovorNaslov:CarouselkategorijaCentriranoOdaberite da li želite da se posjetioci mogu pretplatiti na vaÅ¡e Älanke ili komentare.Dijagram statistika odPokuÅ¡avate nas prevariti?Dugme za oznakuProvjeravam status email novosti…Izaberi iz najÄešće koriÅ¡tenih oznakaKliÅ¡eiKliknite ovdjeKliknite za objavljivanje!Kliknite za slanje emaila prijateljuKliknite za Å¡tampanjeKlik za razmjenu na LinkedInuKliknite da podijelite na PinterestuKliknite za dijeljenje na ReddituKliknite da podijelite na TumblruKliknite ovdje za dijeljenje na TwitteruZatvoriÅ ema bojaUskorokomentarGreÅ¡ka u keÅ¡iranju (caching) komentara?Navigacija komentaraKomentariÅ¡ete kao %sKomentariKomentari su iskljuÄeni za ovaj Älanak.Kompleksne frazePrilagodiKonfiguriÅ¡i %sPoveži se na WordPress.comPovežite vaÅ¡ blog sa popularnim druÅ¡tvenim mrežama i automatski dijelite nove Älanke sa vaÅ¡im prijateljima.KonektovanoKonektovan na WordPress.comObrazac za kontaktURL obrasca za kontakt:Kontakt informacijeNastavi Äitati →Broji preglede stranica registrovanih korisnika koji su prijavljeni.Kreiraj dugme za dijeljenjeIzreži slikuKorisniÄkiKorisniÄki CSSKorisniÄki CSS predložakKorisniÄka email adresaKorisniÄka poruka:KorisniÄko polje obrisano.KorisniÄko polje ažurirano.PrilagodiDnevne arhive: %sTamnaDatumDeaktivirajDebugovanjePoÄetnoNovo poljePrva opcijaObriÅ¡iTrajno obriÅ¡iTrajno obriÅ¡i ovu stavkuOpisDijakritiÄke oznakeOnemogući CSS i JSDiskonektuj se sa WordPress.comZatvoriZatvori ovu napomenu i deaktiviraj Jetpack.Zatvori ovu napomenu.Prikaži tekst zaglavljaPrikažite Facebook Like okvir za povezivanje posjetitelja s vaÅ¡om Facebook stranicomPrikažite mini verziju vaÅ¡eg Gravatar profilaPrikažite sliku vaÅ¡oj boÄnoj traciPrikaži kao:Prikaži video veće kvalitete kao poÄetni.Prikaži slideshow preko cijelog ekrana.Moram li ovo popuniti?Da li joÅ¡ imate instaliran plugin %s?Morate biti prijavljeni na vaÅ¡ WordPress blog prilikom autorizacije Jetpacka.Dvostruka negacijaPreuzmi: %s
        Ovdje dovucite i pustite dostupne servise.Dovucite servise za dijeljenje u sekciju za omogućavanje da biste ih prikazali na vaÅ¡oj stranici, a možete ih odvući i u sekciju za sakrivene servise kako biste ih maskirali unutar dugmeta.Dovucite servise koje želite omogućiti u okvir ispod.PovlaÄite gore ili dolje da promijenite rasporedPadajuća listaEmailSvaki obrazac za kontakt moguće je prilagoditi vaÅ¡im potrebama. Kada korisnik poÅ¡alje podatke pomoću obrasca, oni će biti filtrirani pomoću Akismet (ako je ovaj plugin aktiviran na vaÅ¡oj stranici) da bi se utvrdilo da li se radi o spamu. Nakon toga, svaka poruka koja nije spam će vam biti proslijeÄ‘ena na vaÅ¡u email adresu i dodana u oblast za upravljanje porukama iz obrasca za kontakt.Svaki od ovih dodataka ima nekoliko opcija za prilagoÄ‘avanje.Omogućite vaÅ¡im korisnicima jednostavnu pretplatu na vaÅ¡e Älanke pomoću emaila koristeći se dodatkom u vaÅ¡oj boÄnoj traci. Svaki put kada objavite Älanak, WordPress.com će poslati obavijest svim vaÅ¡im pretplatnicima.UrediUredi CSSUredi stavku menijaUredi projekatUredi selekciju...Uredite vaÅ¡ profilUredi ovo novo poljeEmailEmail adresaProvjera emaila nije uspjela, molimo vas da pokuÅ¡ate ponovoEmail obavijestiEmail postavkeOÄisti spamOmogući prikaz slikaOmogući lektorisanje za sljedeća gramatiÄka i stilska pravila pri pisanju Älanaka i stranica:Omogućeni servisiEngleske opcijeUnesite kratki kod direktno u ureÄ‘ivaÄ Älanka/stranice kako biste ugradili multimediju. Za detaljne instrukcije pogledajte linkove ispod.Unesite URL ikone (veliÄine 16x16px) koju želite koristiti za ovaj servis.UpiÅ¡ite vaÅ¡u email adresuUpiÅ¡ite vaÅ¡u email adresu da biste se pretplatili na email obavijesti o novim Älancima na ovom blogu.Detalji greÅ¡ke: %sGreÅ¡ka pri slanju u smeće.GreÅ¡ka pri vraćanju iz smeća.GreÅ¡ka pri uÄitavanju profilaGreÅ¡ka!GreÅ¡ka: molimo vas da unesete ispravnu email adresu.GreÅ¡ka: molimo vas da popunite neophodna polja (ime, email).Primjer:Objasni...FacebookFacebook Like okvirURL Facebook straniceIstaknutoIstaknuti sadržajIstaknute slikeKanal(i) za prikaz:Povratne informacijeVrsta poljaPrva opcijaFokalna dužinaPrati blogPraćenje komentaraPratite me na TwitteruPostavke pretplatnikaZa viÅ¡e informacija:Kreiranje obrascaFormat:BesplatnoBesplatni formatiOdPoÄetna stranica, arhiva i rezultati pretrageNaslovna stranicaViÅ¡e informacija možete pronaći na stranici podrÅ¡ke za dijeljenje. Ovaj video vam takoÄ‘er daje brzi pregled naÄina koriÅ¡tenja mogućnosti za dijeljenje. Pogledajte ga u HD-u za dodatni užitak!GalerijaGoogleGravatar istaknuta karticaGravatar istaknute karticeGravatar profilZelenaPozdravni tekstImate komentar vezan za Jetpack?VisinaVisina:VaÅ¡ obrazac će izgledati ovakoSakriveni glagoliSakrijSakrij smajli koji prikazuje statistika.PoÄetnaIstaknute kartice poboljÅ¡avaju obiÄne slike Gravatara sa informacijama o osobi: ime, biografija, slika, kontakt informacije i drugi servisi koje dotiÄna osoba koristi kao Å¡to su Twitter, Facebook ili Linkedln.Istaknute kartice poboljÅ¡avaju obiÄne slike Gravatara sa informacijama o osobi: ime, biografija, slika, kontakt informacije i drugi servisi koje dotiÄna osoba koristi.Isktanute kartice su odliÄan naÄin za prikazivanje vaÅ¡eg internet prisustva i pomoć drugim osobama da pronaÄ‘u vaÅ¡ vlastiti blog.Kako ovo funkcioniÅ¡e?IP adresa:IkonaIkona + tekstURL ikoneSamo ikonaIdentifikacija ignorisanih rijeÄi i fraza prilikom lektorisanja vaÅ¡ih Älanaka i stranica:Ako je ovo prazno, mi ćemo pokuÅ¡ati utvrditi dimenzije slike.Zanemari sveUvijek zanemarujIgnoriÅ¡i prijedlogZanemarene frazeSlikaPoravnanje slike:Boja slike:Slike iz galerijeTabelu slikaLink slikeSlikovnu listuPostavke slike:VeliÄina slike:URL slike:Naziv slike:NeaktivanUmetni videoUmjesto da unosite ili ubacujete duge URL-ove sada možete dobiti kratki i jednostavni link ka vaÅ¡em Älanku ili stranici. Ova mogućnost koristi kompaktnu wm.me domenu i daje vam na koriÅ¡tenje unikatni URL koji je siguran i pouzdan.Neispravan zahtjevNetaÄan sigurnosni token.Neispravno korisniÄko imeJe li ova stranica privatna?Ovo je savrÅ¡eno za upotrebu na Twitteru, Facebooku i u mobilnim tekst porukama gdje se broji svaki znak.ŽargonJetpack komentariSlika za Jetpack komentareJetpack komentari omogućavaju vaÅ¡im korisnicima da koriste svoje WordPress.com, Twitter ili Facebook raÄune prilikom komentarisanja na vaÅ¡oj stranici.Jetpack FAQPostavke Jetpack pretplateJetpack podrÅ¡kaWordPress.com JetpackJetpack kombinuje %s snagu i jednostavnost WordPressa kako bi vam dao ultimativnu matematiÄku blog platformu.Jetpack ima najnoviju verziju %l starog plugina.Jetpack ima najnoviju verziju %l stara plugina.Jetpack ima najnoviju verziju %l starih plugina.Jetpack sadrži najnoviju verziju starog “%1$s” plugina.Jetpack nije mogao kontaktirati WordPress.com: %s. Ovo je obiÄno uzrokovano neispravnim postavkama vaÅ¡eg web hostinga.Jetpack je aktiviran na mreži i napomene ne mogu biti zatvorene.Jetpack sada sadrži Jetpack komentare koji omogućavaju vaÅ¡im posjetiocima da koriste svoje WordPress.com, Twitter ili Facebook raÄune prilikom komentarisanja na vaÅ¡oj stranici. Da aktivirate Jetpack komentare, %s.Jetpack zahtjeva WordPress %s ili noviji.Jetpack daje vaÅ¡oj WordPress stranici vrhunske WordPress.com mogućnosti.Jetpack će pokuÅ¡ati da automatski izabere odgovarajuću Å¡emu boja. TakoÄ‘er, vi možete napraviti i ruÄne izmjene pomoću postavki na dnu stranice za raspravu.Jetpack će automatski sakupljati vaÅ¡ objavljeni sadržaj i trenutno ga slati pretraživaÄima kako biste povećali saobraćaj na vaÅ¡oj stranici i proÅ¡irili njen uticaj.Pridružite se ostalim pretplatnicima (%s)Pridružite se ostalim pretplatnicima (%s)Pridružite se ostalim pretplatnicima (%s)LaTeXNaslovEmailIme i prezimeWeb stranicaOpcijaOpcijepremjestiJezikVelikoPosljednja izmjenaSaznaj viÅ¡eSaznaj viÅ¡eKomentariÅ¡iOdgovori na %sKomentariÅ¡iLijevoSvijetlaVolimURL linka (kada se klikne na sliku):Povežite raÄun sa WordPress.comurediLinkedInLinkovi ka servisima koje koristite Å¡irom weba.Linkovi ka RSS kanalima vaÅ¡eg blogaLinkovi ka vaÅ¡oj web stranici, blogovima ili bilo kojim drugim stranicama koje vas opisuju.Pregled uživoUÄitavam komentare...UÄitavam video...UÄitavam…UÄitavanje...Lokacija Ogg video datoteke.j. M, Y. @ H:iGlavna boÄna trakaOva poruka NIJE spamOznaÄi ovu poruku kao spamDatotekeDatoteciSrednjeMeniStavka menijaPorukaPoruka poslanaPorukeMeta podaciNeispoÅ¡tovani rasporedNedostaje ID priloga.Nedostaje ID odrediÅ¡nog bloga.Nedostaje ID odrediÅ¡nog Älaka.Modul nije mogao biti aktiviran zbog toga Å¡to je prouzrokovao fatalnu greÅ¡ku. Možda postoji konflikt sa drugim instaliranim pluginima?MjeseÄne arhive: %sMjeseÄne arhiveViÅ¡eViÅ¡e informacijaImeNovoNovo poljeNoviji komentari →NajnovijeSljedeća »Sljedeća »NeNema projekata u SmećuNiste upisali tekst komentara.Nema pronaÄ‘enih podataka za VideoPress identifikator: %s.Nema pronaÄ‘enih povratnih informacijaNema pronaÄ‘enih plugina.Nema prijedlogaOznake nisu pronaÄ‘ene.Nisu pronaÄ‘ene greÅ¡ke u pisanju.Verifikacija za nonce nije uspjela.NiÅ¡taNe. Ipak, ako želite modificirati lokaciju na koju se Å¡alju ove informacije ili naslov, onda je moguće. Ako ovdje ne napravite nikakve izmjene, povratne informacije će se slati autoru stranice/Älanka, a naslov će biti ime ove stranice/Älanka.NiÅ¡ta nije pronaÄ‘enoObavijestiObavijesti me o narednim komentarima putem emaila.Obavijesti me o novim Älancima pomoću emaila.UreduOficijelna dugmadURL Ogg datotekeStariji %sStariji ÄlanciPretraga svegaNa ovoj stranici možete vidjeti module koji su dostupni u Jetpacku, saznati viÅ¡e o njima i aktivirati/deaktivirati ih po potrebi.%s novi Jetpack modul%s nova Jetpack modula%s novih Jetpack modulaPrikazuj samo video zapise besplatnih formatano-subsetonOtvori link u novom prozoru/tabuOtvara se u novom prozoruNeobavezni tekst koji će se prikazivati vaÅ¡im Äitaocima:OpcijeNarandžastaRedoslijedStranica %sStranice:PasivPutanjaTrajni link ka %sLiÄni linkoviFraze koje bi se trebale izbjegavatiPovratni ping:RozePinterestPlanovi i cijeneJavascript je neophodan za reprodukciju %s.Molimo vas da ne zaboravite upisati tekst vaÅ¡eg komentara.Imajte na umu da su vaÅ¡i servisi ograniÄeni jer koristite privatnu stranicu.Molimo vas da upiÅ¡ete ispravnu email adresu.Molimo vas da upiÅ¡ete vaÅ¡u email adresu.Molimo vas da upiÅ¡ete email adresu.Molimo vas da upiÅ¡ete vaÅ¡e ime.Molimo vas da upiÅ¡ete vaÅ¡e ime.Molimo vas da potvrdite vaÅ¡ roÄ‘endan.PluginiPopularnoObjavi komentarÄŒlanci od %s.Objavljivanje pomoću emailaNavigacija ÄlanakaÄŒlanak nije poslan - provjerite vaÅ¡u email adresu!Objavio/laObjavio/la %sObjavljeno u %sÄŒlanciÄŒlanci i komentariStranica za ÄlankeObjavi ovoPregledPregled: izmjene moraju biti saÄuvane ili će biti izgubljeneGlavni meniÅ tampanjePrivatnostPolica privatnostiOznaka projektaVrsta projektaProjekat snimljen.Projekat ažuriran.ProjektiLektoriÅ¡i napisanoLektorisanjePokreće %sObjavitiPublikacija:ObjaviObjavljenoObjavljivaÄ ograniÄava reprodukciju ugraÄ‘enih video datoteka.KupiLjubiÄastaUbaci dijagram pregleda u zadnjih 48 sati u administratorsku traku.Naciljajte miÅ¡a na Gravatara da biste pogledali vaÅ¡ profil.RSS linkovi (Jetpack)Radio dugmeOcjenaNajnoviji ÄlanciCrvenaRedditSuviÅ¡ne frazeRegistrovani korisniciPovezani ÄlanciPovezani ÄlanciUkloni servisUkloni logoPonovljena rijeÄZamijeni selekciju sa:KomentariÅ¡iVidljivost izvjeÅ¡tajaNeophodno? VratiVrati ovu stavku iz smećaVrati poÅ¡iljaocu. Izgleda da se dobili pogreÅ¡an Jetpack u emailu; izvrÅ¡ite deaktivaciju i ponovnu aktivaciju Jetpack plugina da biste dobili novi email.DesnoSaÄuvajSaÄuvaj promjeneSaÄuvaj predložakSaÄuvaj i vrati se na kreiranje obrascaSaÄuvaj konfiguracijuSaÄuvaj ovo poljeUspjeÅ¡no saÄuvanoZakazanoTražiPretraga komentaraPretraga povratnih informacijaPretraga datotekaPretraga pluginaPretraga oznaka projektaRezultati pretrage za: %sRezultati pretrageOdaberite korisnika ili "ostalo" nakon Äega je potrebno da upiÅ¡ete korisniÄku email adresu.Odaberite korisniÄke uloge koje će imati mogućnost pregleda statistike.SemantiÄka platforma za objavljivanjePoÅ¡alji emailPoÅ¡alji na email adresuPoslano od strane provjerenog %s korisnika.Poslano od strane neprovjerenog korisnika.Odvojite oznake pomoću zarezaIme servisaServisi dovuÄeni ovdje će se prikazivati samostalno.Servisi dovuÄeni ovdje će biti sakriveni unutar dugmeta za dijeljenje.PostavkePostavke su saÄuvanePodijeliPodijeli na FacebookuPodijeli ovo:Podijelite vaÅ¡e Älanke na Twitteru, Facebooku i mnogo drugih servisa. Možete konfigurisati servise da se prikazuju kao ikone, tekst ili oboje. Neki servisi imaju dodatne opcije za prikaz pametnih dugmadi, npr. Twitter, koji će vrÅ¡iti ažuriranja broja dijeljenja nekog Älanka.Podijeljeni ÄlanakDijeljenjeDugmad za dijeljenjePostavke dijeljenjaURL za dijeljenjeDijeljenje je iskljuÄeno. Dodajte servise kako biste ga omogućili.Naslov za dijeljenjeUgraÄ‘ivanje kratkih kodovaKratki kodovi omogućavaju vam jednostavno i sigurno ugraÄ‘ivanje multimedije sa drugih lokacija na vaÅ¡u stranicu. Pomoću jednog jednostavnog koda, možete reći WordPressu da ugradi Youtube, Flickr i drugu multimediju.PrikažiPrikaži linkove raÄunaPrikaži licaPrikaži liÄne linkovePrikaži novostiPrikaži opciju 'za praćenje bloga' u obrascu za komentarisanjePrikaži opciju 'za praćenje komentara' u obrascu za komentarisanjePrikaži dugmad naAko je moguće, prikaži mapu lokacije fotografije u galeriji.ViÅ¡eAko su dostupni, prikaži meta podatke za fotografije (Exif) u galeriji.Prikazuje fotografije profila u pluginu.Istakni najpopularnije ÄlankeIstakni najpopularnije pretragePrikazati ukupan broj pretplatnika? (%s pretplatnik)Prikazati ukupan broj pretplatnika? (%s pretplatnika)Prikazati ukupan broj pretplatnika? (%s pretplatnika)PrikažiPrikazuje Älanke i stranice s najviÅ¡e pregleda.Brzina okidanjaSrebrenaIme straniceStatistika straniceStranicePreskoÄi do primarnog sadržajaMaloSmajliSmajliŽao nam je, desila se greÅ¡ka prilikom objavljivanja vaÅ¡eg komentara. Molimo vas da kasnije pokuÅ¡ate ponovo.Žao nam je, nismo mogli izvrÅ¡iti autentifikaciju vaÅ¡eg zahtjeva.Žao nam je, niÅ¡ta za prijaviti.Žao nam je, vaÅ¡ blog ne može dijeliti Älanke pomoću emaila.Poredaj po:SpamSpam (%s)Spam (%s)Spam (%s)Provjera pravopisaPravopis i gramatikaStatistikaPredložak je saÄuvan.TemaPoÅ¡aljiPoÅ¡alji »Å aljem komentar%sPretplati seDugme za pretplatu:Pretplati se na %sPretplati se na blogu pomoću emailaSlika pretplataPodrÅ¡kaNaziv oznakeOznakeIspunite anketuUslovi servisaTekstLinkovi sa tekstom i slikomTekstualni linkTekstualnu listuSamo tekstOblast za tekstAfter the Deadline poboljÅ¡ava vaÅ¡e pisanje koriÅ¡tenjem umjetne inteligencije da pronaÄ‘e greÅ¡ke u vaÅ¡em tekstu i ponudi vam dobre prijedloge.Dodatak za Facebook Like okvirDodatak za slikeDodatak za RSS linkoveTwitter dodatakVideoPress plugin ne može komunicirati sa VideoPress serverima. Ovakva greÅ¡ka je obiÄno rezultat nepravilne konfiguracije plugina. Molimo vas da plugin ponovo instalirate ili nadogradite.Autorizacijski proces je istekao. Molimo vas da se vratite nazad i pokuÅ¡ate ponovo.PoÄetna Å¡irina teme %s je %d piksela.Sljedeći moduli su ažurirani: %l.Aktivirani su sljedeći novi moduli: %l.Omogućeni su sljedeći servisi: Twitter, Facebook, Reddit, StumbleUpon, Digg, LinkedIn, Google +1, Å¡tampanje i email.UkljuÄeni su sljedeći servisi: Twitter, Facebook, Reddit, StumbleUpon, PressThis, Digg, LinkedIn, Google +1, Å¡tampanje i email.Slika pomaže u prikupljanju statistike i Äini svijet bolji mjestom, ali sve će raditi i kada je sakrivenaStare verzije su deaktivirane i mogu biti uklonjene sa stranice.Stare verzije su deaktivirane i mogu biti uklonjene sa stranice.Stare verzije su deaktivirane i mogu biti uklonjene sa stranice.Postoje prijedlozi za lektorisanje ovog Älanka. Jeste li sugurni da ga želite objaviti? Pritisnite U redu za ažuriranje Älanka, ili PoniÅ¡ti za pregled prijedloga i ureÄ‘ivanje vaÅ¡eg Älanka.Postoje prijedlozi za lektorisanje ovog Älanka. Jeste li sugurni da ga želite ažurirati? Pritisnite U redu za ažuriranje Älanka, ili PoniÅ¡ti za pregled prijedloga i ureÄ‘ivanje vaÅ¡eg Älanka.Tema: %1$s.Postoji mnogo plugina i servisa koji pružaju statistiÄke podatke ali koliÄina tih podataka Äesto može biti problem. WordPress.com statistika daje vam najpopularnije podatke na vrlo jednostavan naÄin u preglednom i atraktivnom interfejsu.Nema Älanaka za prikaz. Želite viÅ¡e saobraćaja?Desio se problem pri komunikaciji sa servisom za provjeru pravopisa i gramatike. PokuÅ¡ajte ponovo za par minuta.Desila se greÅ¡ka pri komunikaciji sa servisom za lektorisanje.(neophodno)Ova galerija sadrži %2$s fotografiju.Ova galerija sadrži %2$s fotografije.Ova galerija sadrži %2$s fotografija.Ovaj plugin će raditi i bez nje, ali multibyte podrÅ¡ka se koristi uvijek kada je dostupna. Moguće je da ćete imati sitne probleme sa vaÅ¡im tweetovima i drugim servisima za dijeljenje.Ovaj Älanak je podijeljen!Ovaj Älanak je zaÅ¡tićen Å¡ifrom.Ovaj Älanak je zaÅ¡tićen Å¡ifrom. Unesite Å¡ifru da biste vidjeli eventualne komentare.Ovaj video je namijenjen zreloj publici.Di biste pregledali ovaj video, potreban vam je Adobe Flash.UmanjenoVrijemeVrijeme:NaslovNaslov:Da konfiguriÅ¡ete postavke dijeljenja, otvorite Postavke → Dijeljenje.Da biste vidjeli istaknute kartice, otvorite bilo koji Älanak na vaÅ¡em blogu koji ima komentare. Ako osoba koja je napisala komentar ima ukljuÄen gravatar, ciljanjem miÅ¡a na sliku te osobe aktivirat ćete istaknutu karticu. Za iskljuÄivanje istaknutih kartica, kliknite na dugme za deaktiviranje.Da biste poÄeli koristiti kratke linkove, otvorite bilo koji objavljeni Älanak (ili napiÅ¡ite novi!). Vidjet ćete dugme “Dobij kratki link” ispod naslova Älanka. Nakon Å¡to kliknete na to dugme, pojavit će se okvir sa vaÅ¡im kratkim linkom koji možete kopirati i zalijepiti na vaÅ¡ Twitter, Facebook ili na bilo koju drugu stranicu.Za koriÅ¡tenje dodatka za pretplate, otvorite Izgled→ Dodaci. Prebacite dodatak pod imenom “Blog pretplate (Jetpack) ” u jednu od vaÅ¡ih boÄnih traka i izvrÅ¡ite potrebna podeÅ¡avanja.Za koriÅ¡tenje ovog dodatka, otvorite Izgled→ Dodaci. Prebacite dodatak u jednu od vaÅ¡ih boÄnih traka i izvrÅ¡ite potrebna podeÅ¡avanja. Najpopularniji ÄlanciNajposjećeniji Älanci i straniceNajpopularnije pretrageProvidnoSmećePokuÅ¡ajte se konektovati sada.TumblrTwitterTwitter korisniÄko ime:VrstaTipoviURLNekategorisanoUkini korisnikovu vezu na WordPress.comNeobjavljenoUkloni pretplatuAžuriraj oznaku projektaAžuriranoDodaj slikuDodajem...Koristite $latex vaÅ¡ latex kod ovdje$ ili [latex]vaÅ¡ latex kod ovdje[/latex] da ubacite %s u vaÅ¡e Älanke i komentare. Dostupno je mnogo raznoraznih opcija.Koristi automatski detektovani jezik za lektorisanje Älanaka i stranicaKorisnik je povezan na WordPress.comKorisniÄko imeVrijednostVaultPressVaultPress kontrolna ploÄaVerificirani servisiVideoPressPregledaj svePregledaj cijeli profil →Pregledaj mobilnu stranicuPregledaj statistike stranice bez JavascriptaPregledajte %s.Prikaži punu veliÄinu %1$s×%2$sPregledajte informacije o osobama kada naciljate miÅ¡a na njihove GravatarePregledi u zadnjih 48 sati. Kliknite za proÅ¡irenu statistiku stranice.Za pregled posjeta posjetite statistiku stranice.Da provjerite backupe, pogledate ima li sigurnosnih upozorenja ili da provjerite vaÅ¡u VaultPress vitalnost, posjetite %s.WP.me kratki linkoviUpozorenje! Nedostaje Multibyte podrÅ¡ka!Web stranicaDobro doÅ¡li u Jetpack %s!Å ta bi trebalo upisati kao naslov?Å ta je istaknuta kartica?Å ta je Gravatar?Prilikom pisanja komentara, posjetioci na vaÅ¡oj stranici će imati opciju da se pretplate na komentare kako bi bili obavijeÅ¡teni o razvoju diskusije na pojedinom Älanku.BijelaNaslov dodatka:Slike dodatakaÅ irina:Zasnovan na mjeseÄnoj pretplati, VaultPress plugin će vrÅ¡iti backup, u realnom vremenu, sadržaja vaÅ¡e stranice, tema i plugina, a istovremeno će vrÅ¡iti i redovne sigurnosne provjere u cilju pronalaska uobiÄajenih prijetnji i metoda napada na vaÅ¡u stranicu.WordPress.com statistikaWordPress.com korisniÄko imeWordPress.com trenutno ima neke probleme i nije u mogućnosti da aktivira vaÅ¡ Jetpack. Molimo vas da pokuÅ¡ate kasnije.To zvuÄi Å¡treberski.NapiÅ¡ite komentar...Neispravna veliÄina. Izgleda da se Jetpack se može ispravno uklopiti. Kliknite ponovo na “Poveži se na WordPress.com” za prilagoÄ‘avanje vaÅ¡eg Jetpacka.d/m/Yd/m/Y H:i:sGodiÅ¡nje arhive: %sDaNije vam dozvoljeno upravljanje ovom stavkom.Nemate dozvolu za izbacivanje ove stavke iz smeća.Nije vam dozvoljeno prebacivanje ove stavke u smeće.Ovdje možete pogledati kontrolnu ploÄu vaÅ¡e statistike.Možete aktivirati ili deaktivirati bilo koji Jetpackov modul.Možete dodati sljedeće promjenjive u URL vaÅ¡eg servisa za dijeljenje:Nemate potrebni nivo slobode za pregled ovog videa. Podržite slobodni softver i izvrÅ¡ite nadogradnju.Nemate pravo pristupa ovoj stranici.UspjeÅ¡no ste se pretplatili na email novosti.Podijelili ste ovaj Älanak sa %sMorate se prijaviti da biste mogli objaviti komentar.Morate povezati vaÅ¡ Jetpack plugin sa WordPress.com stranicom da biste mogli koristiti ovu mogućnost.Morate izvrÅ¡iti autorizaciju Jetpack konekcije izmeÄ‘u vaÅ¡e i WordPress.com stranice da biste omogućili vrhunske mogućnosti koje vam Jetpack pruža.Morate registrovati vaÅ¡ Jetpack prije nego ga konektujete.ViÅ¡e nećete dobijati email novosti o Jetpacku.VaÅ¡a email adresaVaÅ¡e imeStatistike vaÅ¡e stranice radit će bolje ako omogućite Javascript.VaÅ¡u WordPress instalaciju trenutno Å¡titu najbolja svjetska sigurnosna zaÅ¡tita, backup i podrÅ¡ka.VaÅ¡ blog trenutno nema objavljenih Älanaka.VaÅ¡ komentar Äeka na moderaciju.VaÅ¡ komentar Äeka na moderaciju.VaÅ¡ komentar je odobren.VaÅ¡e novo polje je uspjeÅ¡no saÄuvanoVaÅ¡a stranica mora biti javno dostupna da bi mogla koristiti Jetpack: %sÄlanak ili stranica se objavljuju prvi putÄlanak ili stranica se ažurirajuomogućava vam dodavanje linkova ka RSS kanalima za Älanke i komentare u vaÅ¡u boÄnu traku. Ovim ćete olakÅ¡ati snalaženje vaÅ¡im posjetiocima i pružiti im jedinstveno mjesto na kojem će moći vidjeti sve novosti vezane za vaÅ¡u stranicu.omogućava vam jednostavno dodavanje slika u boÄne trake vaÅ¡e teme. Ovo je jednostavan naÄin da svoju stranicu uÄinite vizuelno interesantnijom.iPoniÅ¡tiKliknite ovdjePrilagodidanUrediuredi tekstUps, desio se problem prilikom generisanja ovog obrasca. Najvjerovatnije biste trebali pokuÅ¡ati ponovo.idi nazadhttp://jetpack.mehttp://bs.wordpress.org/UÄitavam…%1$s/%2$smjesecKomentarlektorisanjeEmailFacebookLinkedInPinterestObjavi ovoÅ tampajTumblrTwitterprikazuje Facebook Like okvir u boÄnoj traci vaÅ¡e teme. Ovo je odliÄan naÄin da svojim Äitaocima dozvolite da iskažu svoju podrÅ¡ku vaÅ¡em radu.prikazuje najnovije tweetove u boÄnoj traci vaÅ¡e teme. Ovo je jednostavan naÄin da povećate aktivnost na vaÅ¡oj stranici. Postoji i nekoliko opcija za prilagoÄ‘avanje. juÄerproÅ¡li mjesecproÅ¡li kvartalproÅ¡la sedmicaproÅ¡la godinaovaj videoPregledaj: %ssedmicawordsplugins/jetpack/languages/jetpack-ms_MY.mo0000755000312500031250000005754012651056012021240 0ustar eacbforgeacbforgÞ•¢, -<ð"ñ"#-"#;P# Œ# ™# ¦# ³#Á#È#!×#ù#$ $ $C'$0k$œ$­$¼$Å$Ì$Ð$Ø$ê$ý$ % %.%E%%U% {%†%S—% ë%ù% ÿ% && & )&7&>& E&R&[&b&q& „&’&¡&¶&Ð&ë&' '9'R'l'…' ‹'˜'ž'¥'­'¶' Æ' Ð' Þ' ë'ö'ý'()(?(D(W(\( a(l(Gt(q¼(.)5) H)T) f)r)ƒ)Œ)“)˜)¡)°)Â)Ô) Ú)è)$÷)* +*[6*’*£*³*Ì**Ó*5þ*4+8=+ v++Š+œ+¥+µ+Ê+à+è+í+õ+ü+ ,, ,', /,<,A, F,R, W, c,Mm, », Æ,Ô,æ,ö,ü, - -%- 5- A- L-Y-a- j-w-†--?“-=Ó-G.XY.².¹.Â. È. Ö.ä. ø./ //#/<,/i/ r/ }/ ‡/ ’/2Ÿ/Ò/Ø/ß/ ä/î/ô/ ü/ 00"080U0g0z00 0¥0 ¶0 ×0á0æ0 î0 û0 1 11(171U1 Z1 h1)v1  1 Á13Ë10ÿ1)02Z2r2Ž2 ‘22¥2¬2²2º2 Á2Ï2Ô2ä2 õ2ÿ2 3C3%R3+x3 ¤3$Å3ê34!434G4O4V4^4 m4/z4 ª4 µ4 Â4Ï4Õ4 æ4ñ43ù4-53595 A5O5 a5 n5x5 €5Š5 ‘5›5 ¢5¯5³5º5Ì5 Ô5 â5 ð5þ566:66X66—66 ¢6 ¯6¹6À6 Ð6Ý6 ì6÷6+7?7(Y7‚7‹77­7´7¹7.¿7'î78 8'8-868;8D8J8\8d8 k8 y8ƒ8“8›8¤8³8¸8 É8Ö8Û8 î8 ø89<9©[9§:­:?´:+ô:' ;&H;Yo;%É; ï;I<#Z< ~<ˆ<<“<™<  <ª< À<Í<Ó< Ú<æ<î<ó<ù<ü< = = =@'=:h=H£=Hì=5>>> D>P>-Y>‡>>¢>J¨> ó> ? ?? ?(?KÀKÈK ÐKÜKåKùK LL$L;LCLHLOLVLfLlL sL€LˆLŸL¨L ®L¹L ¾L ÊL]ÖL 4M ?M MM[MvM {M ˆM ”M  M ®M ¹M ÃMÏM ÕM áMíMN NNN N&N.N4N;NANTNgN„N—NœN¢N ¶NÄNÉN ÒNÜNìN ÿN< OIO OOYO ^OiOnOvO‹O‘O £O®O½O ÄOÎO àOîOóO+P 0PUDUFUHUJUPUVU]U dUpU uU €U ‹U ˜U¥U-ÄUòU VV V;V OV[VaVhV8mV¦V¬V»VÁVÑVÖV ÜVæVûV W WW "W.W 7WBWRWVW iWsWxW ‹W —W£W «W̶W̓XQY9VY,Y0½Y.îY Z%*ZPZOpZ,ÀZ íZøZþZ[ [ [[7[F[L[ S[_[g[m[s[x[|[[“[P¢[ ó[ ÿ[ \ \\ %\ 1\ =\ G\Q\c\i\ p\ }\‰\\ –\¤\ ¶\Ä\BÇ\f ]q] ƒ]]¨]4Á]'ö]^"^(^.^3^ 8^E^M^ _^ j^t^z^€^ ‰^–^œ^¥^¬^ µ^¿^ Æ^Ñ^×^Þ^å^í^ õ^_ _ _ +_ 5_@_ G_Q_5¶‚Pòc®€|u“²CyÊ¡*Ÿwðl ‰ØsÜ4–Θ?$š­’N{b‘º¸fV$Š˜rmªMÀ3Äå™Og0ÌJ@†;>eQÒi^NW"p kb/¢USrÓþtqpePL›m2ŒRAK}¤*ƒ^9QXznù è%@<&¡½Ö( E6qnÐ…ókE4÷ˆGŒ'ú)¾ƒx©ßT][ÙûZi¼>øo»¥Ç/‹dÿ;G·”I”‘_űÃ1B-<užHÔ=žz‡f™!dîoYxÂ| T¹—Í_ `5aÛUëê%´£“‹\ö³7:—ŸV°í«3…•}1ü†Ž~¿~ä’ ý+J¬)j60 ŠA¯õ? yD„‡v9œé\+, WO:Á,ñg¦§{'µ#SàÏá-`j2#HY‚DwaZ[ïˆ×7vhç"K€Ý=šCM¢&ÈtÞ›c ‰¨ã„Ë8 8 hìÚBÑRFXl!.].I–ŽæôÉÆsœ(Õ• FâL# of Tweets Shown:%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%s (Jetpack)%s (Required)%s ago%s is required%s requires a valid email address%s: %s« Previous(no title)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$sLearn more about these options.% Replies1 ReplyActivateActiveAddAdd NewAdd a new serviceAdd or remove tagsAllAll ComicsAll postsAs in Premium. Premium module descriptionPaidAttachment PageAutomatically proofread content when:AutomatticBackground colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog URL:BlueButton styleCSS RevisionsCameraCancelCancel replyCategoryCenterChart stats byCheatin’ uh?Choose ImagesClichésClick to Press This!Click to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseColor SchemeComicComicsCommentCommentsComplex PhrasesConfigureConnected as:Contact InfoCrop ImageCustomCustom field deleted.Custom field updated.Customer TestimonialsDOWNDaily Archives: %sDarkDateDeactivateDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDescriptionDiacritical MarksDisplay as:Double NegativesDownloadE-mailEditEdit CSSEdit Menu ItemEdit Selection...Edit Your ProfileEmailEmail AddressEmail Address:Email check failed, please try againEmail settingsEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnglish OptionsEnter your email addressError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example:Example: The user is looking at a page, not a post.PageExplain...FacebookFacebook Page URLFeaturedFeatured ImagesFollow me on TwitterFor more information:Format:FromGalleryGoogleGravatar ProfileGreenHeightHeight (px):Height:Hidden VerbsHideHomeIP Address:IconIcon + textIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image LinkImage Settings:Image Size:Image URL:Image title:Images:InactiveInsert VideoItems to show:JargonLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLanguageLargeLast ModifiedLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLink Color (hex):Link To:Link to edit an HTML form field in contact form buildereditLinkedInLoading...Logged InLogged OutM j, Y @ G:iMaximum number of posts to show (no more than 10):MediaMediumMenuMenu ItemMenusMessageMessage SentMessagesMissed scheduleModule TagAppearanceModule TagPhotos and VideosModule TagSocialModule TagWritingMonthly Archives: %sMonthly archivesMoreMore informationMore information on using Likes.My TweetsNameNew RowNext »Next » NoNo LabelsNo plugins found.No suggestionsNo writing errors were found.NoneNothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNova label separator, Number of Posts to Display:OKOlder postsOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhrases to AvoidPingback:PinkPinterestPlay as in playback or view a movieJavaScript required to play %s.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please verify your birthday.Plugin activated.Plugin deactivated.PluginsPocketPopularPopular LabelsPost CommentPost was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPress ThisPreviewPreview: changes must be saved or they will be lostPricePrintPrivacyProcessing...Proofread WritingProofreadingPublicizePublishPublishedPurpleRSS LinksRatingRecent PostsRedRedditRedundant PhrasesRelatedRelated PostsRelated postsRepeated WordReplace selection with:ReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRightSaveSave ChangesScheduledSearchSearch CommentsSearch MediaSearch PluginsSend EmailSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService: Account connected as%1$s: %2$sSettingsShare on FacebookShare on TumblrSharedShowShow:Shown between widget visibility conditions.orShows your most viewed posts and pages.SilverSite NameSmallSort by:SpamSpellingStatsStylesheet saved.SubjectSubmitSubmit »SubscribeSubscribe to %sSupportTag nameTagged with %sTagsTerms of ServiceTestimonialsTextText & Image LinksText LinkText onlyThe menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.ThemesThere was an error communicating with the proofreading service.There was an error deactivating your pluginThere was an error updating your pluginThere was an error updating your themeThis HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow requires JavaScript.ThumbnailTimeTime:TitleTitle:Top PostsTop Posts & PagesTop SearchesTrashTumblrTumblr blogTwitterTypeTypesUPURLUncategorizedUnpublishedUpload ImageUse automatically detected language to proofread posts and pagesUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVideo on %sView AllView _Plans_&_Pricing_. (VaultPress)View %s.WebsiteWhat's a Gravatar?WhiteWidget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):Width:Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYesYou do not have sufficient permissions to access this page.You must be logged in to post a comment.Your Email AddressYour NameYour comment is awaiting moderation.[%s] Joining confirmationa post or page is first publisheda post or page is updatedandas sharing sourceEmailcanceldayeditedit textgo backhttp://jetpack.mein {category/tag name}In "%s"locales%1$s/%2$smonthnounCommentplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearthis videowatch a video titleWatch: %sweekword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-08-24 07:14:18+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev # Tweets Dipamerkan:%1$s Sidebar%1$s %2$s%1$s: %2$s%1$s at %2$s%1$s bagi %2$s%s (Jetpack)%s (Diperlukan)%s yang lalu%s diperlukan%s memerlukan alamat email yang sah%s: %s« Sebelumnya(tiada tajuk)(wajib)%1$s di %2$sKetahui lebih lanjut tentang pilihan ini.% Komen1 KomenAktifkanAktifTambahTambahTambah servis baruTambah atau buang labelSemuaSemua KomikSemua kirimanBerbayarLaman LampiranLakukan penyemakan pruf kandungan secara automatik jika:AutomatticWarna latar belakangPastikan klik "Kemaskini Profil" dibahagian bawah skrin untuk menyimpan perubahan yang anda buat.Bahasa PrasangkaHitamArkib BlogURL Blog:BiruStail butangSemakan CSSKameraBatalBatal balasanKategoriPusatCarta statistik olehMain tipu, ya?Pilih ImejKliséKlik untuk berkongsi melalui Press This!Klik untuk berkongsi melalui Google+Klik untuk berkongsi melalui LinkedInKlik untuk berkongsi melalui PinterestKlik untuk berkongsi melalui PocketKlik untuk berkongsi melalui RedditKlik untuk berkongsi melalui TumblrKlik untuk berkongsi melalui TwitterKlik untuk melihat persembahan slaid.TutupSkema warnaKomikKomikKomenKomentarFrasa-frasa RumitKonfigurasiBerdaftar sebagai:Maklumat HubunganPotong GambarKustomMedan tempahan telah dipadam.Medan tempahan telah dikemaskinikan.Testimoni PelangganBAWAHArkib Harian: %sGelapTarikhNyahaktifkanLalaiRuangan BaruPilihan pertamaPadamPadam KekalKeteranganTanda DiakritisPamer sebagai:Negatif BergandaMuat TurunE-melUbahSunting CSSSunting Item MenuSunting Pilihan...Kemaskini Profil AndaEmailAlamat EmelAlamat Email:Pengesahan email tidak berjaya, sila cuba lagiTetapan EmailKosongkan SpamBolehkan penyemakan pruf untuk tatabahasa dan gaya bahasa berikut ketika menulis kiriman atau laman:Servis-servis AktifPilihan InggerisMasukkan alamat email andaRalat!Ralat: sila masukkan alamat e-mel yang sah.Ralat: sila isi ruangan-ruangan yang diwajibkan (nama, e-mel).Contoh:HalamanHuraikan...FacebookURL Pautan FacebookPilihanImej PilihanIkuti saya di TwitterUntuk maklumat lanjut:Format:DariGaleriGoogleProfil GravatarHijauTinggiTinggi (px):Tinggi:Kata Kerja TersembunyiSembunyiRumahAlamat IP:IkonIkon + teksIkon sahajaKenalpasti perkataan dan frasa untuk diabaikan ketika penyemakan pruf kiriman dan laman anda:Abai semuaAbai sentiasaAbai cadanganFrasa-frasa yang diabaikanImejAturan Imej:Warna Imej:Pautan ImejTetapan Imej:Saiz Imej:URL Imej:Tajuk imej:Imej:Tidak AktifSisip VideoItem untuk dipaparkan:JargonLabelEmailNamaLaman WebalihkanLabelBahasaBesarSuntingan TerakhirTinggalkan JawapanTinggalkan Jawapan kepada %sTinggalkan JawapanKiriCerahWarna Pautan (hex):Pautkan Pada:ubahLinkedInMemuat...Berdaftar MasukDidaftarkan KeluarM j, Y @ G:iBilangan post maksimum untuk dipaparkan (tidak melebihi 10):MediaSederhanaMenuButir MenuMenuPesananMesej telah dihantarMesejTertinggal jadualPenampilanImej dan VideoSosialPenulisanArkib Bulanan: %sArkib bulananLagiInformasi lanjutMaklumat lanjut berkenaan penggunaan Likes.Tweets SayaNamaBaris BaruBerikutnya »Berikutnya »TidakTiada LabelTiada plugin ditemui.Tiada cadanganTiada ralat penulisan dijumpai.TiadaTiada dijumpaiNotifikasiMaklumkan komen-komen susulan melalui e-mail.Maklumkan kiriman susulan melalui e-mail.PenggunaPenulisTarikhTag, Bilangan Post untuk Dipaparkan:OKKiriman TerdahuluPilihanJinggaTertibHalaman %sLaman:Suara PasifLaluanPermalink ke %sFrasa-frasa yang perlu dielakkanPingback:Merah JambuPinterestJavaScript diperlukan untuk menonton %s.Sila lengkapkan alamat email yang sah.Sila bekalkan alamat email yang sah untuk komen.Sila lengkapkan alamat email anda.Sila lengkapkan nama untuk komen.Sila lengkapkan nama anda.Sila sahkan tarikh lahir anda.Plugin diaktifkan.Plugin dimatikan.PemalamPocketPopularLabel PopularHantar KomenPost tidak didaftarkan - sila periksa email anda!DIkirim olehDikirim oleh %sDikirim dalam %sKirimanPost & Komen-komenPress ThisPralihatPralihat: sila simpan perubahan setelah anda berpuas hatiHargaPrintPrivasiSedang diproses...Penulisan Pembaca PrufPenyemakan prufUmumkanTerbitDiterbitkanUnguPautan RSSPenilaianKiriman TerbaruMerahRedditFrasa LewahBerkaitanPost BerkaitanPost BerkaitanPerkataan BerulangGanti pilihan dengan:Balas PulihKananSimpanSimpanDijadualkanCariCari KomenCari MediaCari PemalamHantar EmailDihantar oleh pengguna %s sah.Dihantar oleh pengunjung yang tidak disahkan.Pisahkan label dengan koma%1$s: %2$sTetapanKongsikan melalui FacebookKongsikan di TumblrPerkongsianPaparPapar:atauPamerkan post dan laman anda yang paling banyak dilihat.PerakNama Laman WebKecilSusun mengikut:SpamEjaanStatistikStylesheet disimpan.PerkaraDaftarkanSerah »LangganLanggani %sSokonganNama labelDitag dengan %sTagTerma-terma ServisTestimoniTeksPautan Teks & ImejPautan TeksTeks sahajaJetpackJetpack %sPenyemakan pruf mempunyai beberapa cadangan untuk kiriman ini. Anda pasti ingin menerbitkannya? Tekan OK untuk terbitkan kiriman anda, atau Batal untuk melihat cadangan-cadangan dan sunting kiriman anda.Penyemakan pruf mempunyai beberapa cadangan untuk kiriman ini. Anda pasti ingin mengemaskininya? Tekan OK untuk kemaskini kiriman anda, atau Batal untuk melihat cadangan-cadangan dan sunting kiriman anda.TemaTerdapat ralat ketika menghubungi servis penyemakan pruf.Ada ralat dalam proses mematikan plugin andaAda ralat dalam proses mempebaharui plugin anda.Ada ralat dalam proses memperbaharui tema anda(diperlukan)Sambungan ini berfungsi dengan betul.Pos ini memerlukan laluan kata.Entri ini dikunci oleh password. Masukkan password untuk melihat apa apa komen.Persembahan slaid ini memerlukan JavaScript.Imej KecilWaktuMasa:TajukTajuk:Post PopularPost & Laman PopularCarian PopularBuangTumblrBlog TumblrTwitterJenisJenisATASURLUmumBelum DiterbitkanMuat Naik ImejGuna pengesanan automatik bagi bahasa untuk penyemakan pruf kiriman dan halaman.-- Pilih --SembunyikanPamerNama PenggunaNilaiVideo di %sLihat SemuaLihat %s.Laman WebApa itu Gravatar?PutihadalahTajuk Wijet:Lebar (px):Lebar:Y/m/dY/m/d g:i:s AArkib Tahunan: %sArkib tahunanYaAnda tidak mempunyai keizinan yang cukup untuk mencapai laman ini.Anda perlu berdaftar masuk untuk meninggalkan komen.Alamat Email AndaNama AndaKomen anda sedang ditapis.[%s] Pengesahan Jemputansebarang kiriman atau laman pertama kali diterbitkansebarang kiriman atau laman dikemaskinidanEmailBatalhariUbahsunting tekskembalihttp://jetpack.meDalam "%s"%1$s/%2$sbulanKomen%s jika:pembaca prufEmailFacebookGoogleLinkedInPinterestPocketPress ThisPrintRedditTumblrTwittersemalambulan lepassuku tahun lepasminggu lepastahun lepasvideo iniTonton: %smingguperkataan%1$s \a\t %2$splugins/jetpack/languages/jetpack-el.mo0000755000312500031250000075260012651056012020613 0ustar eacbforgeacbforgÞ•ˆ\4½œh‹‘‹8¨‹Ï዇±Œg9¡(´Ýí?ÿy?Ž|¹Ž6-T.‚;± í ú‘7’æT’ ;“ H“V“_“’f“Hù“B”b”y”&’”¹”[Ò”.•I•c•r•‚•!ˆ•Lª•÷• –%–,–D–U–k–‚‚–j—^p—Ï— í— ø— ˜C ˜*Q˜|˜4‹˜bÀ˜1#™0U™†™—™¦™xºšp3›+¤›#ЛEô›r:œ1­œyßœ-Y²‡j:ž§¥ž}MŸXËŸŒ$ \± y¡Hˆ¡PÑ¡9"¢‹\¢©è¢4’£€Ç£6H¤¤ ޤ1¯¤á¤ó¤ü¤ ¥%¥ D¥ Q¥[¥b¥f¥w¥ †¥”¥ œ¥ª¥Â¥×¥ç¥û¥¦ $¦ 1¦?¦X¦h¦Dx¦½¦CϦ§&§/§D§[W§³§̧ܧ㧨5¨K¨ T¨x^¨sר2K©~©„© ˆ©“©œ©±©éÔ© æ©ó©ªª(ª:ªQª jª tª‚ªŒ•ª("«K«1k«« º«Ç« ׫"å«<¬BE¬Zˆ¬*㬭µ&­6Ü­-®YA®›®p¤® ¯f"¯C‰¯ͯÔ¯.寰¤$°ɰ%Ù° ÿ°( ±3±F±Y±w±±£±S´±M²kV² ²в Ö² ä²î²³ ³Ú³ù³´ '´²4´€ç´hµ lµzµµ—µ2®µ(áµ ¶ ¶?¶(^¶‡¶¶™¶¢¶ ©¶Mµ¶··%·}4·²· »· É·ê· ¸¸¸9¸ H¸S¸#h¸Œ¸¬¸»¸и긹!¹:¹S¹l¹†¹Ÿ¹¥¹ ¸¹ŹC˹,º"<º _º\lº?ɺ »*»C»J»R»d»{»•»¨»¹»!»ä»ô» û» ¼¼¼"*¼EM¼ “¼ž¼i·¼ !½+½ H½ V½c½ u½$‚½§½5·½Bí½0¾A¾CQ¾;•¾Ѿ0å¾n¿ …¿¿¢¿ ©¿´¿Ê¿Þ¿ó¿ÀÀ /À=À SÀ]À|ÀÀ”À£À¨À ­À¸À ¾À#ÉÀíÀGõÀq=Á¯Á¿ÁÆÁÙÁöÁ Âõ à Ã(Ã;à QÃ\Ã"oÃ’Ã+¨ÃÔÃñÃÄÄE2Ä/xÄ$¨Ä3ÍÄ Å5"Å XÅdÅ(|Å/¥ÅDÕÅ$Æ/?Æ!oÆ6‘ÆxÈÆSAÇ•Ç8±Ç*êÇWÈ@mÈQ®ÈXÉwYÉnÑÉ%@ÊfÊwÊ#€Ê&¤Ê¥ËÊCqËµË ÓËÝËóËRúËRMÍ< ÍÓÝÍŸ±ÎQÏVÏ _Ï jÏwÏ†Ï›Ï ­ÏºÏËÏÝÏïÏÐÐ&Ð ,Ð:Ð$IÐnЀДÐ1£Ð ÕÐ(àÐ Ñ"ÑAÑ2QÑ[„ÑàÑñÑÒ4‘ÒvÆÒA=ÓÓžÓ¾Óc×Ó?;Ô{Ô\ÔOêÔV:Õ‘Õ3 ÕÔÕîÕ Ö#Ö*Ö=Ö)[ÖI…Ö*ÏÖ5úÖ(0×Y×8b×›×¤× ·×Â×Ù×â× ôר Ø"Ø%5Ø[ØdØuØ…Ø™Ø¢Ø¶Ø ÑØúÜØ ×Ù äÙ ñÙýÙ Ú"Ú 4Úà?ÚE ÛfÛ |Û‰Û ‘ÛžÛ-£Û ÑÛ±ÜÛ*ŽÜ¹ÜÁÜÝÜEìÜ"2ÝUÝfÝäwÝ\Þ cÞJmÞ¸Þ¿ÞÒÞæÞ÷Þ ýÞ ß%ß ,ß9ßAß*`߃‹ß àà!à :à5[à!‘à³à ¸àÅà¾Ìà†‹á_ârâë†âÞrãQä `äläýä åå åM!å6oå[¦åõæmøæ^fçQÅçÖè îè ùèéé)é/é @éMédé |é ‡é ’éé ­é ¹é ÄéÑéåéíé$öéê+*ê Vêcêãwê¼[ë…ì{žì íK'í sí~í˜í¨íÀíÑítçíB\îIŸîkéîOUï¥ïÅïÔïÛïãï üï!ð*ðAðVð gðuð”ð¤ðu½ð3ñN³ñvò+yò/¥ò%Õòûò>ó3Pó/„óc´ó¢ô®»ô¾jõü)ö2&÷ Y÷d÷y÷Š‚÷k øyøø?…ø=ÅøGù\Kùf¨ùXúhúQoúÁúÊúÐú áúïú ÿú. û 9ûDû _ûmû ûû”û«û±û ¶ûÁûÇûÑÛû­ü)¾ünèüWýiý%rý˜ý<¸ýõý"þ*þ3þ.FþuþQ”þ æþ{óþoÿ€ÿ”ÿ¥ÿ µÿÀÿàÿ úÿ (A=F „ ‘Çž9fJ "ëÌ0ÛN †[ âï '0OA‘2 Ó Ù äñø ý (3J Z gFu/¼&ì_$B„Ç-Ú #,5E\tŒ ž ª·$Êï0õb& A‰ XË k$ l Lý \J `§ K MT Y¢ ?ü b< _Ÿ Sÿ oSMÃgUyLÏRWohÇa0F’ Ùå. E!f!ˆªÊæû  5Nb|“¦ÀÔê5K iФÀ×î )!?awŒž¯Ìãõ–Ÿ·Ñæ÷üL  Z${( Éà õ    *8Q ht‰Ÿ§ ·+Á+í/ 6 CQ T _jz “  §±ÁÕò 0=S¯r"4=S‘ £¯Áßîý!Ì2ÿ*Hcûh d r4€˜µ N  \ )j  ”  µ 3¿ Fó 0:!)k!3•!É!¯á!‘"­"°"*Á" ì"¦ù" # ©# µ#ZÀ#$/$Š@$^Ë$-*%'X%,€%!­%/Ï%†ÿ%K†&FÒ&'6'T'r'†'>')Ì'ö'þ'(\ (h(p(w(‹( (´( É(×(Ü(ì(û() )) "),)@)CP)5”)+Ê)Cö)2:*Åm*Q3+%…++«+ ×+$ø+,%7,r],7Ð,-'->D-Bƒ-Æ-Ü-ù-$ .0.D.L.S.[.j. .‰.™.-¬. Ú. ç. ó.¾/"À/ã/ ó//þ/ .0 90 F0S0Y0j0z0 ‰0 ”0 ¢0­0µ0Å0×03à01 1'1@1F1N1 ]1k1 s1 1 Œ1 ™1L§10ô1$%2J2`Y2Cº2þ2+3;3D3 V3c3u3‹3¨3 ½3ÍÇ3\•4ò4 55 5*#5N57U5<5NÊ5 6#6 )676$>6 c6p6t6{66Iœ6æ6ù6 77 7 .7 <7H7 W7 c76q7¨7 À7Ì7Ò7ä7 88,86J88 ‰8ª8³8C9I9N9 e9r99 ‘9²9Å9Õ9 è9ò9:: :,:<:N: ^:k:ƒ:•:ª:¼:Ë:ß:ô:;;r/;¢;!±;@Ó;<90<%j< <›<±<+Í<ù< =( =/I=;y=µ= ¾=Ê=é=ò= >>#> 3>?>U? \?h?p?€? ‘?-? Ë?Ù? à?ê?²û?®@³@Æ@×@ æ@ñ@AA +AO7A8‡A<ÀAMýAKB:[B2–B ÉBÕB7ÞB C‘ C"²C ÕCöC D,D@Dd[DÀD.ÆD'õD E+E 2E?E NEXE3iEE F )F 3F>F \FjF‚FˆFF ¥F¯FµF ¼FÈFÐFÕFÜFãïFÓGðHžI9­IçI}Jf€JKçJ23K5fK&œKÃK-ÝK@ LeLL²L»LIÀL MM (M 5MBMHMXM_MqMƒM‹M ’M M µM¿MÑMèMøMN,NBN'ÂNêNòNûN OO O+O.DO$sO&˜O¿OÅO2ÖO PP.PNPOeP3µP8éP("QKQh^QKÇQR6(R _R1lRžR£R ¶R ÀR ÊRÔR!ÝR®ÿR)®SËØS¤TÂT(ÔT*ýT(UBU"`UƒU™U8­U¡æU(ˆV+±V)ÝVWA'W8iW>¢WJáW,,X2YXsŒXY;Y:[Y–Y<²Y0ïY‘ Z²Z?ÒZO[©b[§ \™´\.N]!}],Ÿ]Ì]]ì]"J^žm^ _*+_V_ f_s_Bz_§½_Se`Y¹`faFzaLÁarb?b.Áb+ðb)c(Fc'oc&—c6¾c/õc1%d?Wdª—d/Be>reY±e% fÉ1f\ûfbXg¡»g]h xhI™h@ãh5$i?Zi^ši#ùi/j;Mj,‰jM¶jJkNOk‰žk (l2l AlOl _lllrlwl}ll“l{šl\msmŽnV’néoúpUûpiQq*»qJærÄ1s~ös utte•t ûtGu Pu\usuyuu¥u ¬u¸u ËuÙuáuòuv v6vVv[vav|vvDƒvEÈvHw Wwewyw–wªw&½w äwUðw FxTxdx{xx¢x¶xDÇx y y&ye5y ›yÖ¨y)z©z!Äz(æz{@*{žk{Í |‘Ø|Fj}y±}:+~Hf~H¯~ø~…‡€ €)€>€ÏP€ 5 DP b ny!Œ® ·ÂÛêù‚ ‚1‚ D‚Q‚b‚"t‚—‚-¨‚Ö‚dð‚Uƒ:gƒ%¢ƒȃ/΃þƒ „4„N„„g„öì„ã…#ô…&†&?†¸f†:‡Zˆ“[‰Pï‰È@м ‹Æ‹΋'ì‹¿ŒJÔkŽ ‹Ž¬ŽÆŽÔÙŽt®N#‘r‘x‘‘¡‘K²‘ þ‘J ’ T’b’ u’’ˆ’¸¨’Åa“œ'”XÄ•—5—Q—jh—Ó—ë—­þ—¬˜ ²˜À˜Ô˜¤ä˜‰™h™(ö™(š7Hš3€š+´š2àš%›19›%k›1‘›.Û8ò›M+œ@yœ¶ºœwq€éAjžU¬ž6Ÿ€9Ÿ;ºŸBöŸs9 !­ <Ï + ¡38¡Zl¡JÇ¡M¢`¢po£‹à£7l¤Q¤¤ö¤ ¥"¥<¥gO¥·¥ Õ¥ ö¥_¦4`¦a•¦s÷¦]k§,ɧ6ö§$-¨R¨q¨Œ¨S ¨%ô¨!©s<©/°©8à©'ª Aª[bª]¾ª;«?X«˜«!²«Ô«Uî«¿D¬­„­ˆ­ ­ §­²­Á­Å­ Ê­wÔ­L®T®f®|®®ª®É®à®ð®¯ ¯)¯ H¯'U¯Q}¯ ϯÙ¯>ë¯<*° g°u°„°–°¦°¸°˰Û°ï°þ°±±{/±¤«± P²]²l² }² ‹²6™² вÛ²ù²&þ²v%³wœ³1´ìF´-3µYaµ‡»µ„C·MÈ·¸A-¸o¸Џpœ¸g ¹®u¹ $º Eº¿Oº ¼¼-¼ì<¼)¾ÏI¾ À&ÀBÀ RÀÅ^Àˆ$ÁG­Á%õÁ)Â2EÂdx¢ÝÂ:€Ã<»Ã)øÃ("ÄKÄ<QÄ“ŽÄC"ÅGfÅ®Å<µÅòÅ(Æ:ÆYÆ]ÛÆ]9ÇI—ÇáÇùÇÈ!È*2È']È@…È–ÆÈM]É_«É Ê)Ê CÊxN̲ÇÌ<zÍ+·ÍgãÍ÷KÎhCϬÏJ½ÐÑÂ'Ò êÒÌ ÔëØÔ ÄÕ¾ÏÖÖŽ×ueØxÛØdTÙO¹Ù: Ú@DÛC…ÛyÉÜCÝ/bÝF’ÝÙÝ÷Ý'Þ 8ÞVYÞ°Þ ÉÞ ÖÞãÞ6ôÞ<+ß.hß—ß±ß5Íß5à!9à9[à5•à*Ëàöà8á+@á8lá¥áÀÃá,„âʱâ!|ã#žã5Âã+øãé$ä/å>åPå4aå"–åd¹åæ!2æëTæÑ@çFèYèhèoè †è‘è%°è/Öèé%%éKé*dé,é&¼é3ãé7êOê(fêKêÚÛêy¶ëR0싃ìKí[í,pí í"«ípÎí?î¡Íî?oï%¯ï…ÕïZ[ð3¶ð­êð˜ñŒ«ñ 8ò²EòWøòPó&eóŒó ¢ó©¯ó!Yô+{ô §ôB³ô&öô'õ?Eõ=…õ-Ãõñõ” öažöå÷(æ÷ ø!ø(<ø\eøÂø,ËøeøøW^ú.¶úåú+ÿú+üJý+Ný%zý  ý=­ýkëý`Wþ ¸þ!ÃþNåþS4ÿˆÿ ÿ±ÿ ÄÿÑÿÏñÿ.Áð,Ú/ %&JLD—!Ü þW  cn~Vš/ñ !.B?q@±Aò>4>s>²?ñ11ct)… ¯¼J<W‡)ß› _¥' H-  v  Ž O¤ ]ô R r  <œ 'Ù    5 D \[ Ù¸ ’ "¦ ëÉ µ >Ì ! #-IQ)›PÅH.Œw""'‰J›Ô>pŒ¯Ö<-/]r)‘@»3ü(0@YBšÝõ2&Y!b„ ¢¯Äá@ZB²Ä+Þ !:=)x¢Ãµ"yœ*­BØ0<M+ŠW¶$.32b1•®ÇWvFÎTJj?µõ8 \CX vù-pOžCîh2 ®› ’J!,Ý!t "K"MË"M#lg#KÔ#± $µÒ$Jˆ%Ó%ë%/ô%ƒ$&:¨&›ã'N(Î(@è())ÍB)—,U¨,þ,$€.¥/¼/!×//ù/4)0'^02†0'¹08á021*M1x1#”1,¸1å1ë12_2/~2®2Í2iæ2)P3.z3>©3'è3)4ž:4„Ù41^595!Ê6yì6f7žj8. 9?89/x9¸¨9„a:/æ:ì;Ó<é×<Á=NÒ=.!>EP>?–> Ö>'ä>A ?`N?†¯?86@Šo@ú@ A A,A.CArAY†AàAéA B5BUB!kB=BËB/äB*C?C&XCPCeÐC6D‘NDàEúE7F(RF*{FH¦FïFÚ G…äH7jI4¢I ×I.ãIJmJˆJ J…¯K5LTDL%™Lx¿LU8MŽM*®MÝÙM ·O ÄO‰ÎOXP_PwP‘P§P+¶PFâP)Q2Q AQ3KQ4Qü´Q±RÉR:ÚRRSihS]ÒS 0T!=T _TViT@ÀUWX¸XáÖY#¸[Ü[0ó[$]#7]+[]‡]o£]Œ^Í ^¹n_(a­0b"Þbd’e®e%Ìe0òe #f 1fRf'mf2•f!Èf!êf g"&gIg.hg—g´gÔgäg=õgA3h\uhÒh"ðhþiêj«ýj°©kZlÂrl/5m&em Œm ™m-§mAÕm¨n}Ànd>o¡£o—Ep4Ýp0q CqNq(Vq3qg³q'r#Crgr‚r-rËr!èr! så,twuçŠu7rvFªvGñvB9wŸ|wMxUjxÂÀxüƒyf€zç{Ùú|Ô~ T*_Š¡Á/€ñ€÷€ *9J_p þ ‚6‚O‚$j‚#‚W³‚# ƒX/ƒˆƒ™ƒ²ƒŃ)Öƒ „ „„&„%,„éR„'<…Qd…ƶ…$}†¢†[·†=‡ Q‡%^‡:„‡¿‡!ȇOê‡K:ˆ½†ˆ?D‰¸„‰=Š UŠ%vŠœŠ®Š3ÀŠ!ôŠ‹2‹>G‹D†‹Ë‹aÜ‹ >Œ&KŒÖrŒIŽ]ÚŽ58ænCU‘º™‘ØT’-“;D“6€“'·“ß“ö“%„•cª•"–+1– ]–i– r–}–,™–.Æ–õ–B—T—t—Š—˜¤—Z=˜g˜˜:™¼;™rø™8kšk¤š › ›(›H›Y›Er›T¸›; œ3Iœ;}œ&¹œàœ!ýœ.NFb½©Œgž’ôž·‡ŸŠ? kÊ «6¡hâ¡WK¢ £¢D£X⣯;¤n뤺Z¥–¦°¬¦è]§oF¨ž¶¨`U©“¶©®JªÎùª‰È«4R¬)‡¬±¬#º¬+Þ¬@ ­K­Ra­´­8È­® ®®/%®+U®®œ® µ®À®#Ç®ë® þ®)¯2¯%M¯%s¯)™¯ïد@ë¯ ,° 7°B°S°k°%|°¢° ·°Á° Õ°*à° ±$±7±âF±X)²b‚²å²³!³/8³£h³O ´m\´hÊ´G3µG{µõ×µ êµ4õµ*¶"<¶"_¶0‚¶³¶3ɶ-ý¶+·?·S·De·4ª·"ß·¸¸(¸?¸F¸b¸"‚¸@¥¸æ¸¹ ¹(<¹3e¹O™¹4é¹(ºKGº5“º$ɺFîº;5»&q¼˜¼w¯¼@'½1h½)š½JĽ¾))¾%S¾=y¾.·¾æ¾!fÀêˆÀ0s ¤Â±ÂBÄ\ÄivÄwàÄ XÆyÆf’ÆdùÆ^ÇmÇ €Ç‹Ç¢Ç±ÇÄÇ?ÇÇ4É<É?É[]É)¹ÉXãÉ<Ë/RË ‚˧Ë<5ÌLr̼̿×Í.”ÎNÃÎKÏI^Ïe¨ÏõÐ“Ñ˜Ñ ¶ÑMÃÑMÒ,_ҌҖ›ÒK2Ó~Ó‘Ó ¤ÓŸ¯ÓOÔ_Ô"oÔ#’Ô&¶Ô'ÝÔÕÕ-0Õ'^Õ†Õ*˜Õ ÃÕÍÕ ÔÕ"ÞÕ$Ö]&ÖE„ÖOÊÖ}׈˜×!Ø£)Ù7ÍÙXÚ#^ÚI‚Ú(ÌÚ6õÚÕ,Û\Ü<_ÜMœÜ}êÜ‘hÝúÝ8Þ5RÞYˆÞ6âÞß*ß1ß%Bß4hßß°ßÁßJÒß#à#Aà#eàð‰àNzá)Éá$óá€â™â"¹â Üâ ýâ'ã 0ã\Qã ®ã¹ã ×ãâã"ýã/ äPä{läèäñä.å6åGå#Xå|å–å¥å!Ååçåæ•æLµæRç*Uç­€çi.è)˜èIÂè éNé?lé0¬é*Ýéê;%ê aê—lê¨ì­ì ÍìØìíì¥í¬í›³í½Oî^ ïlï ƒïï©ïl¾ï+ðGðVð]ð%}ð'£ð3Ëð'ÿðJ'ñrñ)ñ)«ñ%Õñ#ûñ#ò)Cò€mò1îò ó;ó!Ló`nóÏó1åó;ôCSô—ô5ªôàôáúô Üõçõ%üõ#"ö*FöqöY‘ö'ëö!÷.5÷ d÷8…÷(¾÷ç÷ú÷&ø?øA_ø5¡ø#×ø0ûø.,ù*[ù%†ù2¬ù.ßù#ú92ú7lúÕ¤ú-zûG¨ûuðûYfünÀü%/ýUý.lýC›ýKßýC+þoþ þ˜þÂÿÝÿ$æÿL X9k¥%Á$ç n&•/®Þ'õ-/K¦{%" H!RCta¸8):b(ÆAæ+(6T0‹ļŠ „ ¢‘  4 …U ‹Û g } — % à< KPi9ºDô89Mr£ÀdtPw#È ì÷%16WgŽ}ö#t˜¶IË*9@z7ž Ö ãî õ &+FªrX^v;Õ"Á4?öœ6UÓn)W˜]ðuN•ÄŒZçm‹0 Ñä "  9 (C l ‹ ” £ 1» í ü !$+!7P!)ˆ!5²!Ãè!Z¬"##8#O#-`#$Ž#8³#Zì#IG$c‘$õ$þ$H% ]%4j%MŸ%*í%“&W¬&S'TX'2­'“à'pt(/å(O) e)Yr)Ì)4Û)#*4*P*h*.ˆ*·*=¹+ÿ÷+÷,-;2-@n-,¯-EÜ-I".l.€.e.õ.l 0Wx0\Ð0C-1ªq1x2•2#3SÁ3W4£m4C5jU5nÀ5/6 76aB61¤6KÖ7’"8xµ8Ý.9ó :s;:t<7¯<6ç<3=ÊR=>>a\>C¾?>@"A@d@ t@@An+BÅšBm`CfÎC‰5D—¿D“WEYëEiEFM¯FIýFIGGE‘G‰×GDaHH¦HAïHC1I‡uJýJL7LSL•áMÌwN)DO:nPY©P¨Qr¬Q[R{Ru}S>óSz2T€­TA.U…pUšöU¨‘V:WCX'ZX%‚X@¨XéXøXY Y#Y @Y MY[Y­tZç"[Þ \é\,ÿ^~,_ß«a‹bù¦c® ePOf3 gÔh0ðh³!i+Õi j¢j±jËj#âj:kAkHk4bk—k©k±kÂk Ñk@òk<3l pl {l.†lµl¾l¿Âl­‚mÉ0nún,o1>o+po+œo@Èo pù(p"q%8q!^q.€q2¯q.âq4r?Fr†r¤rÀrÛÜr¸s:ÊsguImup·u)(vIRvrœvw”x ¥yŲzx{Œ||®|¿|öÒ|$É}î~ ÷~(/+9[•€(µ€Þ€5õ€!+ MX3vªÂ1Ü<‚2K‚~‚*ž‚CÉ‚5 ƒCƒ0cƒ*”ƒ;¿ƒûƒ„L,„„y„þ„¥…:Ä…ÿ…‡†—†¶†=ɆA‡$I‡nˆ2tŠF§ŠrîŠXa‹ûº‹I¶Œá‘†s‘¼ú‘¨·“`•>u•;´•Üð•Í™kš"t›+—›Û=â›Ô žQõž GŸ.RŸUŸ2ןº  "Å  è ó ¡(¡ ;¡(I¡Õr¡£H¢¢ì£ç¥0w§!¨§%ʧáð§Ò¨ ê¨Ç ©Ó© ٩穪ª"«Ê)«9ô«>.¬cm¬aѬG3­_{­PÛ­g,®E”®.Ú®X ¯=b¯² ¯}S°‘ѰŸc²³œ´s¤´mµ+†µZ²¶k ·êy·Ed¸Vª¸/¹Y1¹‹¹³ º¶ÁºIx»’»úU½ÔP¾^%¿Œ„¿À"%ÀLHÀ•ÀÜ®ÀO‹ÁDÛÁ Â¥+…щWÃ:áÓÅ=°ÅbîÅ:QÆ/ŒÆ+¼Æ*èÆšÇ0®ÇLßÇÌ,ÈoùÈ…iÉ?ïÉI/ÊdyʽÞÊgœË›Ì, Ì7ÍÌ>ÍDÍêSÍ€>Î¿ÎÆÎÌÎÛÎëÎÏÏ''ÏxOÏÈÏÛÏíÏ&Ð"*Ð MÐ/WЇР™Ð £Ð®Ð'ËÐ óÐÑÑÑ'Ñ9:Ñ`tÑÕÑóÑùÑÒ Ò ÒÒ #Ò.Ò?ÒFÒMÒUÒÞæÒ ÅÓ&ÐÓ*÷Ó."Ô QÔ \ÔfÔÔ”Ô ¥Ô|²ÔA/ÕqÕUè]ÿ?Q‡–FSžÀ!‘+zôKä$åŠÑg€z åwèçXšŠpC²Kš¸¿² ÆœU?jèŠJKŸíßEUŸê`$YÕI(yŒ/‡Ñîfw7Ö½t'±"VÛ‚LIœŸyâG˜…íp”Õ#[Þ±Ž (žöpÞ¯•®¨÷„ô¸ïñùÕ»ºdÝ0ÄÅñ²Yl_À4žVˆ< ©ufÊ4§|é©X2GëkQVmγYŸ‡ÔQrt‘d¹NYÇö”ðìnà\ Š™OäøkÓ#ÄÀi§Žàghq\m¬ØÛØNøà)s£ú×€5p]Ì}Î *T=$,f[=øÔTÌ9¾‰LQPi¬¦>|½ ¬ÛGŒÃi ÆJ?‡ÍaN>ÆF Ç+)Âýð/°Ž8Ýk“–D1VÃŽ&„B-£i^?d;x˜R±ÌÇfbmAg-|ù¾ 2m&`¿<NÜEø”só*[“UBCjáƒ,P•ü:2×ö¯=$x¬aSœÚLWiÉOºögÁƒ{‰ÚqÐØd â*pœ .”7X>ÇÒr²Ü—Ûò q£ @õzëÛcD0³‹þ,Ï„.£ÓÖLD "-‚ í ï):oªðsBõú†8ïì½Kœ‚ T¶‚ Â±Ë’ž-×<ÞÌL%©aÒ:ÂOßä!ù¼+[zçܦ³ú#2' qxo÷$*aXæô™ô9rk "—±B“®Y]Á´^ï#_å•`u Á#eºM6Ï›ðט8Zûº°z9ú¢’—~'µcµãRäÿl¸ÍóÒÜN^$híMW‚…„&Ú¿J´s;SÎÊ«XFAû@Íó¹µc„VAÆ‹´5¼%1ª•T®Á+PIcú:çïdߪ˜¡ü?"—¡Úu7R4ÑãÉ “xtã¹w4{§*<¾¶æfÕh ŽÎ^ÈPÊŒtkv‘Gk¢éµa.¦àå;*ú„Pm=ž!3}¼»MEû™…{‡â /n´›`÷µ«ÉƒG{ Hûûê.j¥Õããµ <.moÔÏ?ªû’JW¢¦Ö¨ñ…Oéõ߃u@ÅìJ~(|šˆ|ç}À€—vùA§8>üij5È!1 (6/ ¤³íJs­E?¼T¡Ó £œ;o%äß_ð*“·w˜òÒ¹îÖ­ˆ4É~©ù§ek4Ï"³>¥ÿ8S‹×® 0-4±†(æê$ÀˆýÃmÊ-KŠ¨Õ Ò²›v]º5’»IsM Ëutž3°¤1‘ov¡H=ü†`]°T9À«pÁe—aW»x’iÖ·!­IÖÓÆ6ÙÎá[nèø6'Å{³C9_‘õZ‰Œw+Y=” '†^ !ˆ´ÛSKd2GÞ#÷Ç šd­ÜZo\7Ä¡¾´Ê,~8¤¥~·ËQLC))•›t€­Ob͸QÚh_r¤M¯y¿Œ:ê ý[QARzNë‡HF¯½áqC1Š\ÐAÐÊ%×cH–¦fwýOî©RÓ…#ëZì5,êe¦+&=ÙÀ¬Ï¾¼lG`SÚgÅb& òа(1«,7_‘¹šønýÙò‹T‰ó’ÐÔÝá@Žäˆéj}ÍÞ>ËUÈMÁ–D%ݯBÅ>Fƒ~ònáñõ·v©¡þÿËåýw €àzj¸¢D:'bÇ'˜“7®F)\NWy»·«É¢ââôÐgU"5pM!ðÿ[™î»YæË…Z¨xJ¤}¥­cñóÙD|ŸØö`‹9ý. &¯æó§ X‰Ô33vUéüÝ÷u16x<Ñ +ñþH¢ÑA¨÷u€9qˆ P}eÉÌ…›@<]s/ƒZþÄ^32/yÈI‰š&rîlÝ0®yvíöqREòü¶K½ ‡bÅX·he %¿Bß6 Ârgë| C3†Ì‹3Ÿï¥IVÆ-‚B{£"lîàÙ›â2ë†Hf_–W]°ÍL(C«çŒ~Þ}ª¤Ñ:eRªÎ¿n¶Ȇ\²”0c0@;Ehèb–;o¬HSÄ{ê϶07ØlF¹éOW)áÿP‚º•n@æh噄ôõ\%¥,5rVaè6D ç/¼;ÓÙÒþ^ZytjƒÃ8Äìùì.lØEÔ¸bȨ¾ãþÜ™¶ (Opens in new window) or Cancel and go back to the settings."Related Posts" shows additional relevant links from your site under your posts. If the feature is enabled, links appear underneath your Sharing Buttons and WordPress.com Likes (if you’ve turned these on)."wp jetpack module activate" is a command - do not translate%s is not active. You can activate it with "wp jetpack module activate %s""wp jetpack status full" is a command - do not translateView full status with 'wp jetpack status full'# of Tweets Shown:%1$d Food Menu Item%1$d Food Menu Items%1$s %2$s Views%1$s – %2$s%1$s (%2$s) thinks you may be interested in the following post:%1$s = "Click here" in an HTML linkSure thing. %1$s to add a new text box, textarea, radio, checkbox, or dropdown field.%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s = blog name%1$s Sidebar%1$s = blog name, %2$s = post title%1$s %2$s%1$s = deactivation URL, %2$s = "Deactivate {list of Jetpack module/feature names}If your site is not publicly accessible, consider deactivating this feature.If your site is not publicly accessible, consider deactivating these features.%1$s = form field label, %2$s = form field value%1$s: %2$s%1$s at %2$s%1$s on %2$s%l = list of Jetpack module/feature names%l Deactivated! You can activate it again at any time using the activate link next to each module.%l Deactivated! You can activate them again at any time using the activate links next to each module.%l = list of Jetpack module/feature namesDeactivate %l%l = list of Jetpack module/feature namesLike your site's RSS feeds, %l allows access to your posts and other content to third parties.Like your site's RSS feeds, %l allow access to your posts and other content to third parties.%s (Jetpack)%s (Required)%s Error%s ago%s could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?%s could not be disconnected. Are you sure they're connected currently?%s has already been whitelisted%s has been activated.%s has been deactivated.%s has been successfully disconnected.%s has been whitelisted.%s is a powerful markup language for writing complex mathematical equations, formulas, etc.%s is not a valid command.%s is not a valid module.%s is required%s option reset%s px%s requires a valid email address%s wants to access your site’s data. Log in to authorize that access.%s was not activated.%s was not deactivated.%s: %s%sConnect more admins%s« Previous← Older Comments— Select —'get', 'delete', and 'update' are commands - do not translate.Above are your options. You may 'get', 'delete', and 'update' them.'list' and 'clear' are commands and should not be translatedYou can also 'list' or 'clear' the whitelist.'wp jetpack options' is a command - do not translate.Type 'wp jetpack options' for more info.(Shows %s posts on each load)(no title)(primary)(required)1: User Name, 2: Service Name (Facebook, Twitter, ...)%1$s on %2$s3999 Mission Boulevard, San Diego CA 92109404 error pageActivate NowActivate Now or return to previous page.Click here to refresh this list.Learn more about these options.% Replies1 Reply

        Activate Site Management to manage multiple sites from our centralized dashboard at wordpress.com/sites. Learn more.

        Activate Now%4$s« Back to Gallery« Older%d bloggers like this:%s Activated! You can change the setting of it here.%s Activated! You can deactivate at any time by clicking the Deactivate link next to each module.%s is not an allowed embed site.Jetpack is activated! Each site on your network must be connected individually by an admin on that site.Module settings were saved. The Display WordPress Posts Widget lets you display up to ten recent posts from another WordPress.com blog, or a self-hosted WordPress site with Jetpack enabled.The Facebook Like Box Widget shows your Facebook Like Box within a sidebar on your theme.The Gallery Widget provides you with a simple way to display a photo gallery or slideshow in your blog’s sidebar. Requires the Tiled Gallery module.The Gravatar Widget allows you to pull in your Gravatar image along with some of your Gravatar profile data.The Image Widget lets you easily add images to a sidebar on your theme.The Social Media Icons Widget lets you add icons for the most popular social networks to your sidebar or other widget area.The Twitter Widget shows your latest tweets within a sidebar on your theme.The Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.You have unlinked your account (%s) from WordPress.com.You’re fueled up and ready to go, Jetpack is now active. You’re fueled up and ready to go. Your Jetpack has a glitch. Something went wrong that’s never supposed to happen. Guess you’re just lucky: %sYour Jetpack has a glitch. Connecting this site with WordPress.com is not possible. This usually means your site is not publicly accessible (localhost).Your Jetpack is already connected. A contact form is a great way to offer your readers the ability to get in touch, without giving out your personal email address.A few catchy words to motivate your readers to commentA known issue.A problem with your XMLRPC file.A simple widget that displays social media icons.A theme conflict.ActivateActivate AkismetActivate ProtectActivate Site Management and JSON APIActivate nowActivatedActiveAddAdd Contact FormAdd Many ItemsAdd Menu ItemAdd NewAdd New ComicAdd New Menu Item LabelAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd One ItemAdd Site IconAdd These New Menu ItemsAdd a Site IconAdd a new fieldAdd a new post or page to any of your sites from a single interface.Add a new serviceAdd an email signup form to allow people to subscribe to your blog.Add another optionAdd logoAdd or remove LabelsAdd or remove tagsAdd sharing buttons to your blog and allow your visitors to share posts with their friends.Add this form to my postAdd to section:Add-onAdd-on CSS (Recommended)Additional data: Additionally you can define your own custom services.Address:Admin barAdvanced. If this option is checked, you must include these files in your theme manually for the sharing links to work.After the Deadline provides a number of customization options, which you can edit in your profile.Akismet can help to keep your blog safe from spam!AlbumAllAll ComicsAll DoneAll Menu Item LabelsAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll modules activated!All modules deactivated!All postsAll tag pagesAll taxonomy pagesAllow individual site administrators to manage their own connections (connect and disconnect) to WordPress.comAllow users to access and edit my videosAllow users to access my videosAllow users to access, edit, and delete my videosAllow users to upload videosAlphabeticalAlternate text:An %s AirlineAn Automattic AirlineAn active access token must be used to retrieve post counts.An administrator for this blog must set up the Jetpack connection.An error occurred creating your new sharing service - please check you gave valid details.An error occurred. Please try again later.An incompatible plugin.An invalid request was made. This normally means that something intercepted or corrupted the request from your server to the Jetpack Server. Try again and see if it works this time.An unknown error has occurred. Please try again later.An unknown error occurred during installationAnswer a short survey to let us know how we’re doing and what to add in the future.ApertureApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.Archive pageAre you sure you want to exit the form editor without saving? Any changes you have made will be lost.Are you sure you want to stop Publicizing posts to this connection?ArtistAs a mobile iconAs in Premium. Premium module descriptionPaidAs your faviconAt this time, your theme, %s, doesn't support Infinite Scroll. Unlike other Jetpack modules, Infinite Scroll needs information from your theme to function properly.Attachment PageAutomatically proofread content when:AutomatticAutosave encountered an unexpected errorAvailable Modules:Available ServicesAvailable shortcodes are: %l.Back to General SettingsBack to Top ↑Background colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Before you completely disconnect Jetpack is there anything we can do to help?Before you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:Bias LanguageBlackBlog ArchivesBlog URL:Blog follow email textBlueBorder Color (hex):Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.Browse Your VideoPress LibraryBrowser ChromeButton styleBy adding a contact form, your readers will be able to submit feedback to you. All feedback is automatically scanned for spam, and the legitimate feedback will be emailed to you.By checking the box above, each new set of posts loaded via Infinite Scroll will be recorded as a page view in Google Analytics.CSSCSS RevisionsCSS Stylesheet EditorCameraCan I add more fields?Can I send a notification to more than one person?Can I view my feedback within WordPress?CancelCancel replyCannot deal with cookie redirects, as headers are already sent.Cannot use global flag on non-multisitesCaption:CarouselCategoryCenterChange logoChange whether your visitors can subscribe to your posts or comments or both.Chart stats byCheatin’ uh?Check for SpamCheck out other recommended features below, or go to the settings page to customize your Jetpack experience.CheckboxChoose ImagesChoose from the most used LabelsChoose from the most used tagsChoose logoCirclesCleared all whitelisted IPsClichésClick hereClick to Press This!Click to autoplay the presentation!Click to email this to a friendClick to printClick to share on %sClick to share on Google+Click to share on LinkedInClick to share on PinterestClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterClick to view slideshow.CloseClose modal windowColor SchemeComicComic draft updated. Preview comicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsCommentComment Likes areComment cache problem?Comment follow email textComment navigationCommenting as %sCommentsComments on this post are closed.Complex PhrasesConfigConfigureConfigure %sConnectConnect JetpackConnect and share your posts on %sConnect now to enable features like Stats, Likes, and Social Sharing.Connect toConnect to WordPress.comConnect your blog to popular social networking sites and automatically share new posts with your friends.ConnectedConnected WordPress.com BlogConnected as:Contact FormContact Form URL:Contact InfoContact the Jetpack Happiness Squad.Continue →Continue reading →Control which pages your widgets appear on with Widget Visibility.Convert to ComicConvert to PostCould not obtain a VideoPress upload token. Please try again later.Count the page views of registered users who are logged in.Create Share ButtonCreate additional admins to change primary user.Create elegant magazine-style mosaic layouts for your photos without having to use an external graphic editor.Crop ImageCurrently ReadingCustomCustom CSSCustom CSS StylesheetCustom Content TypeCustom Email AddressCustom Message:Custom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDOWNDaily Archives: %sDaily archivesDarkDateDeactivateDebugDebug InfoDebug Jetpack for more information.DefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDefault qualityDeleteDelete PermanentlyDelete this item permanentlyDeleted option: %sDescriptionDevelopers can use WordPress.com's OAuth2 authentication system and WordPress.com REST API to manage and access your site's content.Diacritical MarksDifficultyDisable CSS and JSDisable Post By EmailDisconnectDisconnect JetpackDisconnect site from WordPress.comDisconnecting JetpackDismiss this notice and deactivate Jetpack.Dismiss this notice for now.Dismiss this notice.Display Header TextDisplay WordPress PostsDisplay a Facebook Like Box to connect visitors to your Facebook PageDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an image in your sidebarDisplay an official Twitter Embedded Timeline widget.Display as:Display featured imagesDisplay higher quality video by default.Display images in full-size carousel slideshow.Display share menu and allow viewers to embed or download this videoDisplay tag content in all listings.Display upcoming events from an iCalendar feed.Display your books from GoodreadsDisplay your location, hours, and contact information.Displayed below your posts will be how many people have liked your posts and the Gravatars of those who have liked them.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Do I need to fill this out?Do not allow other users to access my VideoPress libraryDo you still have the %s plugin installed?Domain `%1$s` just failed is_usable_domain check as it is a subdomain of WordPress.com.Domain `%1$s` just failed is_usable_domain check as it is empty.Domain `%1$s` just failed is_usable_domain check as it is in the forbidden array.Domain `%1$s` just failed is_usable_domain check as it uses an invalid top level domain.Domain `%1$s` just failed is_usable_domain check as its IP `%2$s` is either invalid, or in a reserved or private range.Don’t cross the streams! You need to stay logged in to your WordPress blog while you authorize Jetpack.Don't show the Reblog button on postsDouble NegativesDownloadDownload: %s
        Drag and drop available services here.Drag and drop sharing services into the enabled section to have them show up on your site, and drag them into the hidden section to have them hidden behind a button.Drag and drop the services you'd like to enable into the box below.Drag up or down to re-arrangeDrop downDrop images to uploadE-mailEach contact form can easily be customized to fit your needs. When a user submits your contact form, the feedback will be filtered through Akismet (if it is active on your site) to make sure it’s not spam. Any legitimate feedback will then be emailed to you, and added to your feedback management area.Each module has an Activate or Deactivate link so you can toggle one individually.Each of these widgets has a number of customization options.Easily allow any visitor to subscribe to all of your posts via email through a widget in your blog’s sidebar. Every time you publish a post, WordPress.com will send a notification to all your subscribers.Easily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit DetailsEdit Menu ItemEdit Menu Item LabelEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit Selection...Edit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail Address:Email check failed, please try againEmail me wheneverEmail notificationsEmail settingsEmails will be sent to %s (Edit)Empty SpamEnable Portfolio Projects for this site.Enable Post By EmailEnable Testimonials for this site.Enable carouselEnable excerpts on front page and on archive pagesEnable proofreading for the following grammar and style rules when writing posts and pages:Enabled ServicesEnabling Manage allows you to update your self-hosted WordPress sites along with any WordPress.com sites you have, all in one simple dashboard.English OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter a shortcode directly into the Post/Page editor to embed media. For specific instructions follow the links below.Enter the URL of a 16x16px icon you want to use for this service.Enter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Enter your meta key "content" value to verify your blog with %sError Details: %sError Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %sError Details: Jetpack ID is empty. Do not publicly post this error message! %sError Details: Jetpack ID is not a scalar. Do not publicly post this error message! %sError code: %sError connecting to WordPress.com. Code: %1$s, %2$sError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error, bad module.Error, invalid response data.Error: Couldn't create suitable username.Error: This site's Jetpack connection is currently experiencing problems.Error: please enter a valid email address.Error: please fill the required fields (name, email).Example of a phone number1-202-555-1212Example:Example: The user is looking at a page, not a post.PageExcerptsExpecting an arrayExplain...Export feedback as CSVFacebookFacebook Like BoxFacebook PageFacebook Page URLFacebook WallFacebook username:Failed permissions, please try again.FeaturedFeatured ContentFeatured ImagesFeed(s) to Display:FeedbackFeedback discarded.Feedback(s) marked as spamField typeFind out by disabling all plugins except Jetpack. If the problem persists, it's not a plugin issue. If the problem is solved, turn your plugins on one by one until the problem pops up again – there's the culprit! Let us know, and we'll try to help.First optionFocal LengthFollow BlogFollow CommentsFollow me on TwitterFollower SettingsFood MenusFor example, if you wanted the Archives widget to only appear on category archives and error pages, choose "Show" from the first dropdown and then add two rules: "Page is 404 Error Page" and "Category is All Category Pages."For example, spicy, favorite, etc.
        Separate Labels with commasFor more information:Form builderFormat:Free formatsFromFront Page, Archive Pages, and Search ResultsFront pageFull details can be found on the Sharing support page. This video also gives a swish run-down of how to use the Sharing feature. Watch it in HD for extra snazz!Full management mode is off for this site.GalleryGallery Carousel ScreenshotGet an API KeyGet started managing your Multisite install of Jetpack by connecting.Get started with Jetpack MultisiteGitHub username:Give Us FeedbackGive your site a boost by loading images in posts from the WordPress.com content delivery network. We cache your images and serve them from our super-fast network, reducing the burden on your Web host with the click of a button.GlobalGoodreadsGoodreads numeric user ID (instructions):GoogleGravatar HovercardGravatar HovercardsGravatar ProfileGreenGreeting TextHave feedback on Jetpack?HeightHeight (px):Height:Here are your whitelisted IPs:Here’s what your form will look likeHi, You've been invited to join '%1$s' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$sHidden VerbsHideHide all featured imagesHide related content after postsHide tag from displaying in post meta and tag clouds.Hide the stats smiley face image.HomeHours & InfoHours:Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services they use on the web like Twitter, Facebook, or LinkedIn.Hovercards enhance plain Gravatar images with information about a person: name, bio, pictures, their contact info, and other services.Hovercards offer a great way to show your internet presence and help people find your own blog.How does this work?Howdy. You recently followed one of my posts. This means you will receive an email when new comments are posted. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.Howdy. You recently followed this blog's posts. This means you will receive each new post by email. To activate, click confirm below. If you believe this is an error, ignore this message and we'll never bother you again.I Need SupportIP Address:IPv4 and IPv6 are acceptable.
        To specify a range, enter the low value and high value separated by a dash. Example: 12.12.12.1-12.12.12.100IconIcon + textIcon URLIcon onlyIdentify words and phrases to ignore while proofreading your posts and pages:If empty, we will attempt to determine the image size.If it's not by itself, a theme or plugin is displaying extra characters. Try steps 2 and 3.If none of these help you find a solution, click here to contact Jetpack support. Tell us as much as you can about the issue and what steps you've tried to resolve it, and one of our Happiness Engineers will be in touch to help.If you are a theme author, you can learn about adding support for Infinite Scroll at %1$s.If you don't have a WordPress.com account yet, you can sign up for free in just a few seconds.If you get a 404 message, contact your web host. Their security may block XMLRPC.If your problem isn't known or caused by a plugin, try activating Twenty Twelve (the default WordPress theme). If this solves the problem, something in your theme is probably broken – let the theme's author know.Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Alignment:Image Color:Image Gallery CarouselImage Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Image to be croppedImages:InactiveInclude this CSS in the Mobile ThemeIndexing postsIndexing request queued and waiting…Insert VideoInstagram username:Instead of typing or copy-pasting long URLs, you can now get a short and simple link to your posts and pages. This uses the super compact wp.me domain name, and gives you a unique URL you can use that will be safe and reliable.Instructions on how to whitelist IP ranges - low_range/high_range should be translated.You can save a range of IPs {low_range}-{high_range}. No spaces allowed. (example: 1.1.1.1-2.2.2.2)Introduction text sent when someone follows a post on your blog. (Site and confirmation details will be automatically added for you.)Introduction text sent when someone follows your blog. (Site and confirmation details will be automatically added for you.)Invalid JSONInvalid User ID, please verify and re-enter your Goodreads numeric user ID.Invalid idInvalid or expired nonce.Invalid requestInvalid security token.Invalid usernameIs this site private?It looks like your Facebook URL is incorrectly configured. Please check it in your widget settings.It looks like your site can not communicate properly with Jetpack.It may be caused by one of these issues, which you can diagnose yourself:It’s perfect for use on Twitter, Facebook, and cell phone text messages where every character counts.It's ready to bring awesome, WordPress.com cloud-powered features to your site.Items on your restaurant's menuItems to show:JargonJetpackJetpack Debugging CenterJetpack FAQJetpack Network Settings Updated!Jetpack Plugin VersionJetpack Primary UserJetpack SettingsJetpack SitesJetpack Subscriptions SettingsJetpack SupportJetpack by WordPress.comJetpack combines the power of %s and the simplicity of WordPress to give you the ultimate in math blogging platforms.Jetpack contains the most recent version of the old %l plugin.Jetpack contains the most recent versions of the old %l plugins.Jetpack contains the most recent version of the old “%1$s” plugin.Jetpack could not contact WordPress.com: %s. This usually means something is incorrectly configured on your web host.Jetpack has been successfully disconnected.Jetpack is currently connected to WordPress.comJetpack is in local development mode.Jetpack is installed!Jetpack is network activated and notices can not be dismissed.Jetpack is not currently connected to WordPress.comJetpack requires WordPress version %s or later.Jetpack supercharges your self-hosted WordPress site with the awesome cloud power of WordPress.com.Jetpack tries to match your site's color scheme automatically, but you can make manual adjustments at the bottom of the Discussion Settings page.Jetpack will allow you to authorize applications and services to securely connect to your blog and allow them to use your content in new ways and offer you new functionality.Jetpack will automatically take the great published content from your blog or website and share it instantly with third party services like search engines, increasing your reach and traffic.Jetpack's mobile theme is optimized for small screens. It uses the header image, background, and widgets from your current theme for a great custom look. Post format support is included, so your photos and galleries will look fantastic on a smartphone.Join %s other subscriberJoin %s other subscribersJump StartJump Start your siteJump to:Jumpstart DescriptionTwitter, Facebook and Google+ buttons at the bottom of each post, making it easy for visitors to share your content.Keep up with the latest happenings on all your WordPress sites and interact with other WordPress.com users.LaTeXLabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabel to drag HTML form fields around to change their order in contact form buildermoveLabelsLabels: spicy, favorite, etc. Separate Labels with commasLanguageLargeLarge Blog ImageLast ModifiedLayout Options:Learn MoreLearn about what being the Primary User means.Learn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeave a replyLeftLet us know your name.LightLikeLike this:LikesLikes NotificationsLikes allow your readers to show their appreciation for your posts and other published content using their WordPress.com accounts. Your readers will then be able to review their liked posts from WordPress.com.Likes and SharesLimit must be greater than or equal to 0.Limit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Link Color (hex):Link To:Link URL (when the image is clicked):Link account with WordPress.comLink to edit an HTML form field in contact form buildereditLink your accountLink your account to WordPress.comLinkedInLinkedIn username:Links to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoad your XMLRPC file. It should say “XML-RPC server accepts POST requests only.†on a line by itself.Loading …Loading Comments...Loading video...Loading…Loading...Location of the Ogg video file.Log in with WordPress.comLogged InLogged OutLogin Blocked by JetpackLogin method not allowedLogoLunch: 11am - 2pm Dinner: M-Th 5pm - 11pm, Fri-Sat:5pm - 1amM j, Y @ G:iMain SidebarMake sure to add your most frequently used IP addresses as they can change between your home, office or other locations. Removing an IP address from the list below will remove it from your whitelist.Make this connection available to all users of this blog?Manage all of your WordPress sites, self-hosted or not, from WordPress.comManage has been activated for you!Manage multiple sites from one dashboard at wordpress.com/sites. Enabling allows all existing, connected Administrators to modify your site from WordPress.com. Learn More.Manage your Publicize settings.Manage your Post By Email address from your profile settings.Manage your multiple Jetpack sites from our centralized dashboard at wordpress.com/sites. Learn more.Mark as SpamMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMarkdown lets you compose posts and comments with links, lists, and other styles using regular characters and punctuation marks. Markdown is used by writers and bloggers who want a quick and easy way to write rich text, without having to take their hands off the keyboard, and without learning a lot of complicated codes and shortcuts.Match by EmailMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu Item LabelMenu Item LabelsMenu ItemsMenu Items re-ordered.Menu ManagementMenu SectionMenu SectionsMenu item draft updated. Preview itemMenu item published. View itemMenu item restored to revision from %sMenu item saved.Menu item scheduled for: %1$s. Preview itemMenu item submitted. Preview itemMenu item updated.Menu item updated. View itemMenusMessageMessage SentMessagesMetadataMissed scheduleMissing attachment ID.Missing target blog ID.Missing target post ID.Mobile App PromosMobile AppsMobile ThemeMobile-compatible:Modal window. Press escape to close.Mode:Module DescriptionAdd a site icon to your site.Module DescriptionAdd images, Twitter streams, your site’s RSS links, and more to your sidebar.Module DescriptionAdd support for infinite scroll to your theme.Module DescriptionAllow applications to securely access your content through the cloud.Module DescriptionAllow users to subscribe to your posts and comments and receive notifications via email.Module DescriptionCheck your spelling, style, and grammar with the After the Deadline proofreading service.Module DescriptionCustomize your site’s CSS without modifying your theme.Module DescriptionDisplay your image galleries in a variety of sleek, graphic arrangements.Module DescriptionEmbed content from YouTube, Vimeo, SlideShare, and more, no coding necessary.Module DescriptionEnable WP.me-powered shortlinks for all posts and pages.Module DescriptionEnable pop-up business cards over commenters’ Gravatars.Module DescriptionGive visitors an easy way to show their appreciation for your content.Module DescriptionInsert a contact form anywhere on your site.Module DescriptionLet readers comment with WordPress.com, Twitter, Facebook, or Google+ accounts.Module DescriptionManage all your sites from a centralized place, https://wordpress.com/sites.Module DescriptionOptimize your site with a mobile-friendly theme for smartphones.Module DescriptionOrganize and display different types of content on your site, separate from posts and pages.Module DescriptionPublish posts by email, using any device and email client.Module DescriptionReceive notification of site activity via the admin toolbar and your Mobile devices.Module DescriptionSearch your entire database from a single field in your Dashboard.Module DescriptionSpecify which widgets appear on which pages of your site.Module DescriptionTransform standard image galleries into full-screen slideshows.Module DescriptionUpload and embed videos right on your site. (Subscription required.)Module DescriptionUse LaTeX markup language in posts and pages for complex equations and other geekery.Module DescriptionVerify your site or domain with Google Webmaster Tools, Pinterest, and others.Module DescriptionWrite posts or pages in plain-text Markdown syntax.Module InfoModule NameBeautiful MathModule NameCarouselModule NameContact FormModule NameCustom CSSModule NameCustom Content TypesModule NameEnhanced DistributionModule NameExtra Sidebar WidgetsModule NameGravatar HovercardsModule NameInfinite ScrollModule NameJSON APIModule NameLikesModule NameManageModule NameMarkdownModule NameMobile ThemeModule NameMonitorModule NameNotificationsModule NameOmnisearchModule NamePhotonModule NamePost by EmailModule NameProtectModule NamePublicizeModule NameRelated PostsModule NameSharingModule NameShortcode EmbedsModule NameSite IconModule NameSite VerificationModule NameSpelling and GrammarModule NameSubscriptionsModule NameTiled GalleriesModule NameVaultPressModule NameVideoPressModule NameWP.me ShortlinksModule NameWidget VisibilityModule TagAppearanceModule TagCentralized ManagementModule TagDevelopersModule TagJumpstartModule TagMobileModule TagOtherModule TagPhotos and VideosModule TagRecommendedModule TagSocialModule TagWritingModule could not be activated because it triggered a fatal error. Perhaps there is a conflict with another plugin you have installed?Module not found: `%s`.Modules reset to default.Monthly Archives: %sMonthly archivesMoreMore informationMore information on sending emails, attachments, and customizing your posts.More information on using Likes.More information on using Publicize.More information on using Related Posts.Move menu section downMove menu section upMy JetpackMy TweetsNameNetwork SettingsNew ComicNew Menu ItemNew Menu Item Label NameNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNew in Jetpack: Centralized Site ManagementNewer »Newer Comments →NewestNext »Next » NoNo API keyNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo LabelsNo Labels foundNo Menu Items foundNo Menu Items found in TrashNo Modules FoundNo Projects foundNo Projects found in TrashNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo blog_id was included in your request. Please try disconnecting Jetpack from WordPress.com and then reconnecting it. Once you have done that, try connecting Publicize again.No command found.No comment text was submitted.No data found for VideoPress identifier: %s.No feedback foundNo logo setNo plugins found.No reply from Jetpack serversNo suggestionsNo tags found.No themes found.No upcoming eventsNo update neededNo user information was included in your request. Please make sure that your user account has connected to Jetpack. Connect your user account by going to the Jetpack page within wp-admin.No writing errors were found.Nobody likes downtime, and that's why Jetpack Monitor is on the job, keeping tabs on your site by checking it every five minutes. As soon as any downtime is detected, you will receive an email notification alerting you to the issue. That way you can act quickly, to get your site back online again!Nonce verification failed.NoneNope. However, if you’d like to modify where your feedback is sent, or the subject line you can. If you don’t make any changes here, feedback will be sent to the author of the page/post and the subject will be the name of this page/post.Not ConnectedNot connectedNote: Custom CSS will be reset when changing themes.Note: Images in tiled galleries require extra-special processing, so they will be served from WordPress.com's CDN even if the Photon module is disabled.Nothing FoundNotificationsNotify me of follow-up comments by email.Notify me of new posts by email.NounUserNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Now you can update plugins, set plugins to automatically update, and activate or deactivate plugins on a per-site basis or in bulk from wordpress.com/plugins.Number of Posts to Display:OKOfficial buttonsOffset must be greater than or equal to 0.Ogg File URLOgg file container with Theora video and Vorbis audio. Note that some browsers are unable to play free software video formats, including Internet Explorer and Safari.Older %sOlder postsOmnisearchOmnisearch plays nice with other plugins by letting other providers offer results as well.On for all commentsOn for all postsOn this page, you are able to view the modules available within Jetpack, learn more about them, and activate or deactivate them as needed.Once enabled, a "Log in with WordPress.com" option will be added to your existing log in form.One New Jetpack Module%s New Jetpack ModulesOne of your IP addresses was not valid.Only display videos in free software formatsOnly images can be uploaded here.Only super admins can edit the global whitelistOnly the user who initiated the Jetpack connection on this site can toggle %s, but that user no longer exists. This should not happen.Only videos from the selected blog will be available in your media library.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpen links in new window/tab:Opens in new windowOptionOption not found or is empty. Use "list" to list option namesOptional text to display to your readers:OptionsOrangeOrderOrganize and display different types of content on your site, separate from posts and pages.Page %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:Passive VoicePathPermalink to %sPersonal LinksPhone:Phrases to AvoidPingback:PinkPinterestPinterest username:Plans & PricingPlay as in playback or view a movieJavaScript required to play %s.Please be sure to submit some text with your comment.Please describe the problem you are having.Please enable JavaScript support in your browser to use VideoPress.Please enter the IP address you want to whitelist.Please note that the VideoPress module requires a WordPress.com account with an active VideoPress subscription.Please note that your services have been restricted because your site is private.Please provide a valid email address.Please provide an email address to comment.Please provide an email address.Please provide your name to comment.Please provide your name.Please select a video file to upload.Please solve this math problem to prove that you are not a bot. Once you solve it, you will need to log in again.Please specify a user by either ID, username, or email.Please specify a valid module.Please specify a valid user.Please specify if you would like to disconnect a blog or user.Please specify if you would like to reset your options, or modulesPlease upload a file.Please verify your birthday.Plugin activated.Plugin can only be Network ActivatedPlugin deactivated.PluginsPocketPopularPopular LabelsPopular Project TagsPortfolioPortfolio ItemsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost by Email is a way of publishing posts on your blog by email. Any email client can be used to send the email, allowing you to publish quickly and easily from devices such as cell phones.Post converted.%s posts convertedPost navigationPost type:Post was not sent - check your email addresses!Posted by Posted by %sPosted in %sPostsPosts & CommentsPosts and PagesPosts indexed.Posts pagePreprocessor:Press ThisPreviewPreview FaviconPreview Home IconPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrimary User of the sitePrintPrivacyPrivacy PolicyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsProofread WritingProofreadingProtect whitelistProudly powered by %sProudly powered by WordPressProve your humanity:PublicizePublicize allows you to connect your blog to popular social networking sites and automatically share new posts with your friends. You can make a connection for just yourself or for all users on your blog.Publicize allows you to share your posts on Facebook, Twitter, Tumblr, Yahoo!, and Linkedin.Publicize to my %s:Publicize:PublishPublishedPublisher limits playback of video embeds.PurplePut a chart showing 48 hours of views in the admin bar.Put your mouse over your Gravatar to check out your profile.RESET EVERYTHING (during testing only) - will reset modules to default as wellRSS LinksRadioRandom Order:RatingReceive Monitor Email Notifications.Recent PostsRedRedditRedundant PhrasesRefresh StatusRefresh connection with {social media service}Refresh connection with %sRegenerate AddressRegistered usersReindex PostsRelatedRelated PostsRelated postsRemove IconRemove ServiceRemove logoRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyReport visibilityRequire Two-Step AuthenticationRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:Return to sender. Whoops! It looks like you got the wrong Jetpack in the mail; deactivate then reactivate the Jetpack plugin to get a new one.RightSaveSave & Buy UpgradeSave ChangesSave New OrderSave StylesheetSave and go back to form builderSave configurationSave this fieldSaved successfullyScheduledScroll InfinitelyScroll back to topSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu Item LabelsSearch Menu ItemsSearch Menu SectionsSearch Modules…Search PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch Results for: %sSearch TestimonialsSearch once, get results from everything! Currently supports searching posts, pages, comments, media, and plugins.Search resultsSee the other %s Jetpack featuresSelect a user or pick "custom" and enter a custom email address.Select feedback to downloadSelect the roles that will be able to view stats reports.Semantic Personal Publishing PlatformSend EmailSend to Email AddressSent by a verified %s user.Sent by an unverified visitor to your site.Separate tags with commasService nameService: Account connected as%1$s: %2$sServices dragged here will appear individually.Services dragged here will be hidden behind a share button.ServingsSet as logoSet the primary account holderSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Share your posts with Twitter, Facebook, and a host of other services. You can configure services to appear as icons, text, or both. Some services have additional options to display smart buttons, such as Twitter, which will update the number of times the post has been shared.SharedShared PostSharingSharing ButtonsSharing SettingsSharing URLSharing is off. Add services above to enable.Sharing labelShelf:ShortcodeShortcode EmbedsShortcodes allow you to easily and safely embed media from other places in your site. With just one simple code, you can tell WordPress to embed YouTube, Flickr, and other media.ShowShow Account LinksShow Cover PhotoShow Excerpts:Show FacesShow Featured Image:Show Page Posts.Show Personal LinksShow StreamShow a "Related" header to more clearly separate the related section from postsShow a 'follow blog' option in the comment formShow a 'follow comments' option in the comment formShow a promo for the WordPress mobile apps in the footer of the mobile theme.Show buttons onShow falling snow on my blog until January 4th.Show full posts on front page and on archive pagesShow likes.Show mapShow map of photo location in carousel, when available.Show moreShow photo metadata (Exif) in carousel, when available.Show profile photos in the plugin.Show related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow total number of subscribers? (%s subscriber)Show total number of subscribers? (%s subscribers)Show:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSingle Sign OnSite IconSite Icon UploadSite Icon creates a favicon for your site and more.Site Icon lets you create an icon for your site. This icon will be used as favicon, mobile icon, and Tile on Windows 8 computers.Site LogoSite NameSite StatsSite Title, Tagline, and LogoSite UsernameSite Username (Primary)SitesSkipSkip to primary contentSlideshowSmallSmileySmiley faceSnippetSnowSocialSocial Media IconsSome features of Jetpack uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, please try requesting a reindex of your posts.Some themes and plugins have known conflicts with Jetpack – check the list. (You can also browse the Jetpack support pages or Jetpack support forum to see if others have experienced and solved the problem.)Someone likes one of my postsSomeone may be trying to trick you into giving them access to your site. Or it could be you just encountered a bug :). Either way, please close this window.Something has gotten mixed up in your Jetpack Connection!Something is being cranky!Something is wrong with your Wufoo shortcode. If you copy and paste it from the %sWufoo Code Manager%s, you should be golden.Something which should never happen, happened. Sorry about that. If you try again, maybe it will work.Sorry, but there was an error posting your comment. Please try again later.Sorry, but we could not authenticate your request.Sorry, no modules were found for the search term "%s"Sorry, no updating arrays at this timeSorry, nothing to report.Sorry, your blog cannot share posts by email.Sorry, your browser isn't supported. Upgrade at browsehappy.com.Sorry. We can not plot this address. A map will not be displayed. Is the address formatted correctly?Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarSquare TilesStatic page:StatsStatus unknown.Style:Stylesheet saved.Sub-site overrideSubjectSubmitSubmit »Submitting Comment%sSubscribeSubscribe Button:Subscribe Placeholder:Subscribe to %sSubscribe to Blog via EmailSubsriptions ScreenshotSuccess Message Text:Success! An email was just sent to confirm your subscription. Please find the email now and click activate to start subscribingSuccess! You've jump started your site.SupportTag nameTagged with %sTagsTake Our SurveyTake SurveyTake WordPress with you.Take a survey. Tell us how we’re doing.Temporary Large Image for Blog ImageTemporary Resized Image for Blog ImageTermsTerms of ServiceTest your site’s compatibility with Jetpack.TestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial pages display at most %1$s testimonialsTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTesting your site's compatibility with Jetpack...TextText & Image LinksText LinkText ListText onlyTextareaThat connection has been removed.The After the Deadline Proofreading service improves your writing by using artificial intelligence to find your errors and offer smart suggestions.The Client ID/WP.com Blog ID of this siteThe Custom CSS editor gives you the ability to add to or replace your theme's CSS, all while supplying syntax coloring, auto-indentation, and immediate feedback on the validity of the CSS you're writing.The Facebook Like Box Widget The Image Widget The Jetpack Module is already activated.The Jetpack Module is already deactivated.The Jetpack Version is %sThe Plugin is already active.The Plugin is already deactivated.The RSS Links Widget The Twitter Widget The Twitter username of the owner of this site's domain.The VideoPress plugin could not communicate with the VideoPress servers. This error is most likely caused by a misconfigured plugin. Please reinstall or upgrade.The WP.com user ID of the connected userThe WP.com user email of the connected userThe WP.com username of the connected userThe WordPress.com blog_id is %dThe authorization process expired. Please go back and try again.The default content width for the %s theme is %d pixels.The email you entered was invalid. Please check and try again.The file that you uploaded is not an accepted file type. Please try again.The following modules have been updated: %l.The following new modules have been activated: %l.The image helps collect stats and makes the world a better place but should still work when hiddenThe image needs to be at leastThe image that you uploaded is smaller than %upx in height.The image that you uploaded is smaller than %upx in width.The menu item labelJetpackThe menu item label with a new module count as %sJetpack %sThe number of sites of the connected WP.com userThe old version has been deactivated and can be removed from your site.The old versions have been deactivated and can be removed from your site.The plugin is already installedThe preview is unavailable while this video is being processed.The primary connection is owned by %s's WordPress.com account.The proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.The proofreader supports English, French, German, Portuguese, and Spanish. Your user interface language (see above) is the default proofreading language.The response parameter is invalid or malformedThe response parameter is missingThe secret parameter is invalid or malformedThe secret parameter is missingThe settings for Featured Content have moved to Appearance → Customize.The specified theme was not found.The test results and some other useful debug information will be sent to the support team. Please feel free to review/modify this information.The theme is already installedThe widget only works with Facebook Pages.Theme is empty.Theme: %1$s.ThemesThere are no posts to display. Want more traffic?There is an update available for your theme. You may wish to check if this update adds Infinite Scroll support by visiting the WordPress Updates page.There seems to be a problem with your site’s ability to communicate with Jetpack!There was a problem communicating with the Proofreading service. Try again in one minute.There was a problem connecting to %s to create an authorized connection. Please try again in a moment.There was a problem connecting to %s. Please disconnect and try again.There was a problem connecting with Publicize. Please try again in a moment.There was a problem getting the data to display this address on a map. Please refresh your browser and try again.There was an error communicating with the proofreading service.There was an error contacting Jetpack servers.There was an error deactivating your pluginThere was an error installing your pluginThere was an error installing your themeThere was an error updating your pluginThere was an error updating your themeThere was an error when subscribing. Please try again.There was an error while activating the module.There was an error while deactivating the module.There was an error while getting the update data for this site.There's a good chance that visitors to your site will be using a smartphone, and it's important to provide them with a great reading experience while on the small screen.These settings affect all sites on the network.These settings change emails sent from your blog to followers.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This feature uses the WordPress.com infrastructure and requires that your public content be mirrored there. If you see intermittent issues only affecting certain posts, request a reindex of your posts.This gallery contains %2$s photo.This gallery contains %2$s photos.This module can only be altered by %s, the user who initiated the Jetpack connection on this site.This plugin will work without it, but multibyte support is used if available. You may see minor problems with Tweets and other sharing services.This post has been shared!This post is password protected.This post is password protected. Enter the password to view any comments.This profile is not currently linked to a WordPress.com Profile.This setting may be overridden for individual videos.This site is too large, please contact Jetpack support to sync.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.This user is not authorized to %s on this blog.This user is not authorized to manage plugins network wide.This video is intended for mature audiences.This video requires Adobe Flash for playback.This will deactivate Jetpack. Are you sure you want to deactivate Jetpack?This will deactivate all Jetpack modules. Are you sure you want to disconnect?This will prevent user-specific modules such as Publicize, Notifications and Post By Email from working. Are you sure you want to unlink?ThumbnailThumbnail GridTiled ColumnsTiled GalleriesTiled MosaicTilesTimeTime:Timeline Theme:TitleTitle:To add a new icon to your site, head over to Settings → General → Site Icon, and upload an icon.To configure your sharing settings, go to the Settings → Sharing menu.To control visibility, expand the widget and click the Visibility button next to the Save button, and then, choose a set of visibility options.To customize the emails sent from your blog to your followers, check the settings at the bottom of the Reading Settings page.To enable a custom content type, head over to Settings → Writing → Your Custom Content Types to activate either "Portfolio Projects†or “Testimonials†by checking the corresponding checkbox. You can now add projects and testimonials under the new "Portfolio†or “Testimonials†menu item in your sidebar.To infinity and beyondTo see hovercards, look at any blog post on your blog that has comments. If the commenter has a hovercard associated with their gravatar, mouse over their image and the hovercard will appear. To turn hovercards off, click the Deactivate button above.To use Post By Email, you need to link your %s account to your WordPress.com account.To use Publicize, you'll need to link your %s account to your WordPress.com account using the link below.To use shortlinks, go to any already published post (or publish something new!). A “Get Shortlink” button will be visible under the Post title. When you click it, a dialog box will appear with the shortlink and you can copy and paste to Twitter, Facebook or wherever your heart desires.To use the CSS editor, go to Appearance → Edit CSS.To use the Subscriptions widget, go to Appearance → Widgets. Drag the widget labeled “Blog Subscriptions (Jetpack)” into one of your sidebars and configure away.To use the widgets, go to Appearance → Widgets. Drag them into one of your sidebars and configure away.Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTrack each Infinite Scroll post load as a page view in Google AnalyticsTransparentTransparent BackgroundTrashTrouble with Jetpack?Try connecting again.TumblrTumblr blogTurned on per postTweets by @%sTwitterTwitter Site TagTwitter TimelineTwitter username:Two-Step Authentication DisabledTwo-Step Authentication EnabledTypeTypesTypes of pages to display:UPURLUnable to create your Post By Email address. Please try again later.Unable to disable your Post By Email address. Please try again later.Unable to regenerate your Post By Email address. Please try again later.UncategorizedUnexpected responseUnknown post type requested.Unlink This AccountUnlink my account Unlink your account from WordPress.comUnpublishedUntil your theme supports Infinite Scroll, you won't be able to activate this module.Untitled PostUpcoming EventsUpdate Menu Item LabelUpdate Menu SectionUpdate Project TagUpdate Project TypeUpdate Site IconUpdating an option from "this" to "that".Updated option: %s to "%s"Upload ImageUpload VideoUpload a VideoUpload a image that you want to use as your site icon. You will be asked to crop it in the next step.Uploading...Use $latex your latex code here$ or [latex]your latex code here[/latex] to include %s in your posts and comments. There are all sorts of options available.Use Google Analytics with Infinite ScrollUse Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUse a valid email address.Use automatically detected language to proofread posts and pagesUse the TAB key on your keyboard to move between colums and the ENTER or RETURN key to save each row and move on to the next.Use the button below to browse your VideoPress Library. Note that you can also browse your VideoPress Library while editing a post or page by using the Add Media button in the post editor.Use the form below to upload a video to your VideoPress Library. The following video formats are supported: %s. Maximum upload file size is %d%s.Use these settings to display different types of content on your site.Use these tools to verify that you own/control your website with other external services like Google, Bing and Pinterest.Used as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameUsing the checkboxes next to each module, you can select multiple modules to toggle via the Bulk Actions menu at the top of the list.Using the tools on the right, you can search for specific modules, filter by module categories or which are active, or change the sorting order.ValueVaultPressVaultPress dashboardVerified ServicesVerifying your site allows you to access advanced features on these other services (e.g. Webmaster tools, or getting a verified badge). We'll just add an invisible %s tag to the source code of your homepage.Video Library AccessVideo Preview:Video on %sVideo post by %s.Video post.VideoPressVideoPress LibraryView %1$s’s profile on %2$sView AllView ComicView Full Profile →View Full SiteView Menu ItemView Menu Item LabelView Menu SectionView Mobile SiteView Network AdminView ProjectView Project TagView Project TypeView Site Stats without JavascriptView TestimonialView _Plans_&_Pricing_. (VaultPress)View %s.View all Jetpack featuresView full size %1$s×%2$sView on InstagramView people's profiles when you mouse over their GravatarsView stats on WordPress.com right nowView:Views over 48 hours. Click for more Site Stats.Vimeo username:VisibilityVisit Site Stats to see your stats.Visit the post for more.Visit your _VaultPress_dashboard_.To check your backups, see any security alerts, or check your VaultPress Vitality, visit your %s.Visitors on iPhone, Android, Windows Phone, and other mobile devices will automatically see the mobile theme, with the option to view the full site. You can enable or disable the mobile theme by clicking the "Activate" or "Deactive" button above.WP.me ShortlinksWarning! Multibyte support missing!We cannot display posts for this blog.We cannot load blog data at this time.We could not verify that your server is making an authorized request. Please try again, and make sure there is nothing interfering with requests from your server to the Jetpack Server.We couldn't find an account with the email %1$s to log you in with. If you already have an account on %2$s, please make sure that %1$s is configured as the email address, or that you have connected to WordPress.com on your profile page.We couldn't find any account on %2$s that is linked to your WordPress.com account to log you in with. If you already have an account on %2$s, please make sure that you have connected to WordPress.com on your profile page.We have apps for iOS (iPhone, iPad, iPod Touch), Android, BlackBerry, and more!We were unable to get your stats just now. Please reload this page to try again.We were unable to get your stats just now. Please reload this page to try again. If this error persists, please contact support. In your report please include the information below.We’ve changed this option to a click-to-scroll version for you since you have footer widgets in Appearance → Widgets, or your theme uses click-to-scroll as the default behavior.WebsiteWebsite Verification ServicesWelcome to Jetpack %s!Welcome to Custom CSS! CSS (Cascading Style Sheets) is a kind of code that tells the browser how to render a web page. You may delete these comments and get started with your customizations. By default, your stylesheet will be loaded after the theme stylesheets, which means that your rules can take precedence and override the theme CSS rules. Just write here what you want to change, you don't need to copy all your theme's stylesheet content.Welcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWe’ll also let you know as soon as your site is up and running, so you can keep an eye on total downtime.What should the subject line be?What’s a Hovercard?What's a Gravatar?When adding a gallery to your post, you now have the option to select a layout style for your images. We've added support for Rectangular, Square, and Circular galleries. By default, galleries will continue to display using the standard thumbnail grid layout. To make the rectangular layout the default for all of your site's galleries, head over to Settings → Media and check the box next to "Display all your gallery pictures in a cool mosaic."When leaving comments, your visitors can also subscribe to a post’s comments to keep up with the conversation.When you write great content, all you really want is people to find it, right?WhiteWhitelist ManagementWhitelist is empty.Whitelist saved.Whitelisting an IP address prevents it from ever being blocked by Jetpack. Widget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Widgets ScreenshotWidth (px):Width:With 1 commentWith %s commentsWith Carousel active, any standard WordPress galleries you have embedded in posts or pages will launch a gorgeous full-screen photo browsing experience with comments and EXIF metadata.With a monthly subscription, the VaultPress plugin will backup your site’s content, themes, and plugins in real-time, as well as perform regular security scans for common threats and attacks.With the Infinite Scroll module and a supported theme, that's exactly what happens. Instead of the old way of navigating down a page by scrolling and then clicking a link to get to the next page, waiting for a page refresh—the document model of the web—infinite scrolling pulls the next set of posts automatically into view when the reader approaches the bottom of the page, more like an application.With the VideoPress module you can easily upload videos to your WordPress site and embed them in your posts and pages. This module requires a WordPress.com account with an active VideoPress subscription. Once you have purchased a VideoPress subscription, click here to configure VideoPress.WordPress.com Likes areWordPress.com Reblog ButtonWordPress.com UsernameWordPress.com is currently having problems and is unable to fuel up your Jetpack. Please try again later.Wow, that sounds nerdy.Write a Comment...Wrong size. Hm… it seems your Jetpack doesn’t quite fit. Have you lost weight? Click “Connect to WordPress.com” again to get your Jetpack adjusted.Y/m/dY/m/d g:i:s AYearly Archives: %sYearly archivesYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are all set! Your site can now be managed from wordpress.com/sites.You are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou are required to specify a capability to check.You are required to specify a module.You are required to specify a plugin to activate.You are required to specify a plugin.You are required to specify a theme to switch to.You are required to specify a theme to update.You can view your stats dashboard here.You can activate or deactivate individual Jetpack modules to suit your needs.You can add the following variables to your service sharing URL:You can also hide widgets based on the current page. For example, if you don't want the Archives widget to appear on search results pages, choose "Hide" and "Page is Search results."You can also make changes to your Subscription settings at the bottom of the Discussion Settings page.You can make a connection for just yourself or for all users on your blog. Shared connections are marked with the (Shared) text.You can manage your network-wide whitelist via the network admin.You can view your notifications in the Toolbar and on WordPress.com.You cannot disconnect, without having first connected.You do not have sufficient freedom levels to view this video. Support free software and upgrade.You do not have sufficient permissions to access this page.You have already subscribed to this site. Please check your inbox.You have chosen not to connect your blog. Please click 'accept' when prompted if you wish to connect your accounts.You have shared this post with %sYou have successfully connected your %1$s account with %2$s.You have successfully disconnected Jetpack.You must log in to post a comment.You must be logged in to post a comment.You must connect your Jetpack plugin to WordPress.com to use this feature.You must link another admin account before switching primary account holders.You must specify a valid actionYou need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to authorize the Jetpack connection between your site and WordPress.com to enable the awesome features.You need to enter your numeric user ID for the Goodreads Widget to work correctly. Full instructions.You need to register your Jetpack before connecting it.You need to select what to show in this Gravatar Profile widget.YouTube channel ID:Your API key is invalidYour Custom Content TypesYour Email AddressYour IP (%1$s) has been flagged for potential security violations. Find out more...Your Jetpack is almost ready!Your Jetpack setup looks a-okay!Your NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your Site Stats work better with Javascript enabled.Your Testimonial Archive currently has no entries. You can start creating them on your dashboard.Your WordPress installation is currently being protected with the world’s best security, backup, and support.Your `%1$s` option is set up as `%2$s`, but your WordPress.com connection lists it as `%3$s`!Your answer was incorrect, please try again.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your comment is in moderation.Your comment was approved.Your current IP: %sYour main blog is not connected to WordPress.com. Please connect to get an API key.Your new field was saved successfullyYour site icon has been uploaded!Your site is configured to only permit SSL connections to Jetpack, but SSL connections don't seem to be functional!Your site isn’t reaching the Jetpack servers.Your site isn’t securely reaching the Jetpack servers.Your theme supports %sYour theme supports TestimonialsYour upload didn't complete; try again later or cross your fingers and try again right now.Your video has successfully been uploaded. It will appear in your VideoPress Library shortly.Your video is uploading... Please do not close this window.Your website needs to be publicly accessible to use Jetpack: %s[%s] Joining confirmationa post or page is first publisheda post or page is updateda variable command that a user can write, provided in the printed instructionsoptionallows you to add links to your blog’s post and comment RSS feeds in your sidebar. This makes it easy for your readers to stay updated when you post new content or receive new comments.allows you to easily add images to widget areas in your theme. It’s an easy way to add more visual interest to your site.andas sharing sourceEmailcancelclick herecrop the imagedayeditedit texterror message in contact form builderOops, there was a problem generating your form. You'll likely need to try again.go backhttp://jetpack.mehttp://wordpress.org/iCalendar Feed URL:in both width and height.in {category/tag name}In "%s"jumpstart option resetloading…locales%1$s/%2$smonthmy list of books to readTo Readnext-saturdayImage navigationnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingsearch termssecurity, secure, protection, botnet, brute forcesearch termsstatistics, tracking, analytics, views, trafficselect a fileshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPinterestshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwittershows your Facebook Like Box within a sidebar on your theme. It’s a great way to let your readers show their support.shows your latest tweets within a sidebar on your theme. It’s an easy way to add more activity to your site. There are also a number of customization options.the past daythe past monththe past quarterthe past weekthe past yearthe value that they want to update the option tovaluethis videowatch a video titleWatch: %sweekword count: words or characters?words{#} Blocked malicious login attempts -- number is on a prior line, text is a caption.Blocked malicious login attempts{#} Spam comments blocked by Akismet -- number is on a prior line, text is a caption.Spam comments blocked by Akismet.{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-08-31 09:36:25+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev (Ανοίγει σε νέο παÏάθυÏο)ή ΑκÏÏωση και επιστÏοφή στις Ïυθμίσεις.Με την επιλογή "Σχετικές ΔημοσιεÏσεις" εμφανίζονται σÏνδεσμοι σχετικοί με το πεÏιεχόμενο της δημοσίευσης σας ακÏιβώς κάτω από τις επιλογές Κοινοποίησης και WordPress.com Likes (αν έχετε ενεÏγοποίησει αυτές τις υπηÏεσίες).Το %s δεν είναι ενεÏγό. ΜποÏείτε να το ενεÏγοποιήσετε με "wp jetpack module activate %s"Δείτε την πλήÏη κατάσταση με 'wp jetpack status full'ΑÏιθμός Tweets:%1$d στοιχείο μενοÏ%1$d στοιχεία μενοÏ%1$s %2$s ΠÏοβολές%1$s – %2$sο/η %1$s (%2$s) θεωÏεί ότι θα σας ενδιαφέÏει η ακόλουθη δημοσίευση:%1$s για να Ï€Ïοσθέσετε νέο πλαίσιο κειμένο, κουμπί ή μενοÏ.Διαβάστε τα σχόλια και τις παÏατηÏήσεις κάνοντας κλικ στην επιλογή "%1$s" στον Î¼ÎµÎ½Î¿Ï Î´Î¹Î±Ï‡ÎµÎ¯Ïισης.ΠλευÏική στήλη %1$s%1$s %2$sΑν ο ιστότοπος σας δεν είναι δημόσια Ï€Ïοσβάσιμος, σκεφτείτε να απενεÏγοποιήσετε αυτό το χαÏακτηÏιστικό.Αν ο ιστότοπος σας δεν είναι δημόσια Ï€Ïοσβάσιμος, σκεφτείτε να απενεÏγοποιήσετε αυτά τα χαÏακτηÏιστικά.%1$s: %2$s%1$s στις %2$s%1$s σε %2$sΤο %l απενεÏγοποιήθηκε!. ΜποÏείτε να το ενεÏγοποιήσετε ξανά οποιαδήποτε στιγμή από τον σÏνδεσμο δίπλα από το όνομα του module.Τα %l απενεÏγοποιήθηκαν!. ΜποÏείτε να τα ενεÏγοποιήσετε ξανά οποιαδήποτε στιγμή από τον σÏνδεσμο δίπλα από το όνομα του κάθε module.ΑπενεÏγοποίηση %lΌπως συμβαίνει με τις Ïοές RSS του ιστότοπου σας, το %l επιτÏέπει την Ï€Ïόσβαση Ï„Ïίτων υπηÏεσιών στα άÏθÏα και το πεÏιεχόμενο σας.Όπως συμβαίνει με τις Ïοές RSS του ιστότοπου σας, τα %l επιτÏέπουν την Ï€Ïόσβαση Ï„Ïίτων υπηÏεσιών στα άÏθÏα και το πεÏιεχόμενο σας.%s (Jetpack)%s (υποχÏεωτικό)%s Σφάλμα%s Ï€ÏινΔεν ήταν δυνατή η ενεÏγοποίηση του %s εξαιτίας σοβαÏÎ¿Ï ÏƒÏ†Î¬Î»Î¼Î±Ï„Î¿Ï‚. Πιθανό Ï€Ïόβλημα με άλλο Ï€Ïόσθετο.Δεν ήταν δυνατή η αποσÏνδεση του %s. Είστε βέβαιος/η ότι είναι συνδεδεμένοι;Το %s έχει ήδη Ï€Ïοστεθεί στη λευκή λίσταΤο %s ενεÏγοποιήθηκε.Το %s απενεÏγοποιήθηκε.Το %s αποσυνδέθηκε επιτυχώς.Το %s Ï€Ïοστέθηκε στην λίστα εγκεκÏιμένων διευθÏνσεων IP.Το %s είναι μια Ï€Ïοηγμένη γλώσσα και Ï„Ïόπο διαχείÏισης πολÏπλοκων μαθηματικών εξισώσεων.Το %s δεν αποτελεί έγκυÏη εντολή.Το %s δεν αποτελεί έγκυÏο άÏθÏωμα.το %s είναι υποχÏεωτικόΕπαναφοÏά Ïυθμίσεων %s%s pxτο %s απαιτεί έγκυÏη διεÏθυνση emailΤο %s χÏειάζεται Ï€Ïόσβαση στις δημοσιεÏσεις σας. Συνδεθείτε για να το επιτÏέψετε.Η ενεÏγοποίηση του %s δεν ήταν εφικτή.Η απενεÏγοποίηση του %s δεν ήταν εφικτή.%s: %s%sΣÏνδεση επιπλέον διαχειÏιστών%s« ΠÏοηγοÏμενη← παλαιότεÏα σχόλια— Επιλογή —ΠαÏαπάνω είναι οι επιλογές σας. ΜποÏείτε να τις κάνετε 'get', 'delete', ή 'update'.ΜποÏείτε επίσης να κάνετε 'list' ή 'clear' τη λευκή λίστα.Εισάγετε 'wp jetpack options' για πεÏισσότεÏες πληÏοφοÏίες.(ΠÏοβολή %s δημοσιεÏσεων σε κάθε φόÏτωση)(χωÏίς τίτλο)(κÏÏιος)(υποχÏεωτικό)%1$s στο %2$s3999 Mission Boulevard San Diego CA 92109Σφάλμα 404. Δεν βÏέθηκεΕνεÏγοποίησηΕνεÏγοποίηση ή επιστÏοφή στην Ï€ÏοηγοÏμενη σελίδα.Κλικ εδώ για ανανέωση της λίστας.Μάθετε πεÏισσότεÏα για αυτές τις επιλογές.% απαντήσεις1 απάντηση

        ΕνεÏγοποίηση ΔιαχείÏισης Ιστότοπου για τον έλεγχο Ï€Ïόσθετων και πολλαπλών ιστότοπων από τον κεντÏικό πίνακα ελέγχου στην διεÏθυνση wordpress.com/sites. Μάθετε πεÏισσότεÏα.

        ΕνεÏγοποίηση%4$s« ΕπιστÏοφή στη συλλογή φωτογÏαφιών« ΠÏοηγοÏμεναΑÏέσει σε %d bloggers:Το %s ΕνεÏγοποιήθηκε! Αλλάξτε τις Ïυθμίσεις εδώ.Το %s ενεÏγοποιήθηκε! ΜποÏείτε να απενεÏγοποιήσετε τις λειτουÏγίες ανά πάσα στιγμή κάνοντας κλικ στην επιλογή ΑπενεÏγοποίησηΔεν επιτÏέπεται η ενσωμάτωση από τον ιστότοπο %sΤο Jetpack ενεÏγοποιήθηκε! Κάθε ένας από τους ιστότοπους του δικτÏου σας Ï€Ïέπει να συνδεθεί ξεχωÏιστά από τον διαχειÏιστή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου.Οι επιλογές σας αποθηκεÏθηκαν. Το Widget ΠÏοβολής ΆÏθÏων WordPress επιτÏέπει την Ï€Ïοβολή δέκα Ï€Ïόσφατων άÏθÏων από ιστολόγια WordPress.com Ï„Ïίτων ή ιστολόγια Ï„Ïίτων με ενεÏγοποιημένο το Jetpack.Το Widget για Facebook Like δείχνει το πλαίσιο Facebook Like στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε.Το Widget Συλλογής ΦωτογÏαφιών επιτÏέπει την εμφάνιση φωτογÏαφιών και σλάιντ στην πλευÏική στήλη του ιστολόγιο σας. ΑπαÏαίτητη η χÏήση του module Tiled GalleryΤο Gravatar Widget σας επιτÏέπει να δείχνετε την φωτογÏαφία του Gravatar Ï€Ïοφίλ σας μαζί με επιπλέον πληÏοφοÏίες.Το Widget φωτογÏαφίας σας επιτÏέπει να Ï€Ïοσθέσετε εÏκολα φωτογÏαφίες στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε.Το Widget Εικονίδια Social Media σας επιτÏέπει να Ï€Ïοσθέσετε εικονίδια για τα δημοφιλέστεÏα social media sites στην πλευÏική στήλη ή άλλες πεÏιοχές widgets.Το Twitter Widget δείχνει τα πιο Ï€Ïόσφατα tweets σας στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε.Το Widget ΕπεÏχόμενα Συμβάντα επιτÏέπει την χÏήση συνδέσμων iCalendar για την εμφάνιση δÏώμενων στον ιστότοπο σας.Έχετε αποσυνδέσει τον λογαÏιασμό σας (%s) από το WordPress.com.Είστε έτοιμοι να ξεκινήσετε. Το Jetpack έχει ενεÏγοποιηθεί. Γεμίσατε και είστε έτοιμος/η για την συνέχειαΣφάλμα στην λειτουÏγία του Jetpack. %sΣφάλμα στην λειτουÏγία του Jetpack. Η σÏνδεση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου με το WordPress.com δεν είναι εφικτή. Αυτό συνήθως σημαίνει ότι ο ιστότοπος δεν είναι δημόσια Ï€Ïοσβάσιμος. Το Jetpack έχει ήδη συνδεθεί. Η φόÏμα επικοινωνίας αποτελεί ένα εÏκολο και γÏήγοÏο Ï„Ïόπο επικοινωνίας με τους επισκέπτες του ιστότοπου σας χωÏίς να χÏειαστεί να αποκαλÏψετε την Ï€Ïοσωπική σας διεÏθυνση email.Κάτι έξυπνο για να παÏακινήσετε τους επισκέπτες σας να σχολιάσουνΓνωστό Ï€Ïόβλημα.ΠÏόβλημα με το αÏχείο XMLRPC.Widget για την Ï€Ïοβολή εικονιδίων social media.Διένεξη ΘεμάτωνΕνεÏγοποίησηΕνεÏγοποιήστε το AkismetΕνεÏγοποίηση ProtectΕνεÏγοποίηση ΔιαχείÏισης Ιστοσελίδων και JSON APIΕνεÏγοποίησηΕνεÏγόΕνεÏγόΠÏοσθήκηΠÏοσθήκη φόÏμας επικοινωνίαςΠÏοσθήκη πολλαπλών αντικειμένωνΠÏοσθήκη στοιχείου μενοÏΠÏοσθήκη νέουΠÏοσθήκη κόμικΠÏοσθήκη νέου Î¼ÎµÎ½Î¿Ï ÎµÏ„Î¹ÎºÎ­Ï„Î±Ï‚Î Ïοσθήκη νέου τμήματος μενοÏΠÏοσθήκη δουλειάςΠÏοσθήκη νέας ετικέτας σχέδιουΠÏοσθήκη νέου Ï„Ïπου δουλειάςΠείτε μας την γνώμη σαςΠÏοσθήκηΠÏοσθήκη εικονιδίου ιστότοπουΠÏοσθήκη νέων στο μενοÏΠÏοσθήκη εικονιδίου ιστότοπουΠÏοσθήκη πεδίουΠÏοσθέστε νέες σελίδες και δημοσιεÏσεις σε οποιοδήποτε από τα site σας από ένα ενιαίο πεÏιβάλλον εÏγασίας.ΠÏοσθήκη νέας υπηÏεσίαςΠÏοσφέÏετε την δυνατότητα εγγÏαφής και παÏακολοÏθησης του ιστολόγιου σας με την Ï€Ïοσθήκη φόÏμας εγγÏαφής email.ΠÏοσθήκη επιλογήςΠÏοσθήκη λογότυπουΠÏοσθήκη ή διαγÏαφή ετικέταςΠÏοσθαφαίÏεση ετικετώνΠÏοσθέστε κουμπιά κοινοποίησης στο ιστολόγιο σας και δώστε την δυνατότητα στους επισκέπτες να μοιÏάζονται το πεÏιεχόμενο σας.ΠÏοσθήκη φόÏμας στο άÏθÏοΠÏοσθήκη:ΠÏόσθετοΠÏόσθετο CSS (ΠÏοτείνεται)Επιπλέον δεδομένα:ΜποÏείτε επίσης να Ï€Ïοσθέσετε τις δικές σας υπηÏεσίες.ΔιεÏθυνση:ΜπάÏα ΔιαχείÏισηςΓια Ï€ÏοχωÏημένους. Αν ενεÏγοποιήσετε αυτή την λειτουÏγία θα Ï€Ïέπει να ενσωματώσετε χειÏοκίνητα τα παÏακάτω αÏχεία στο Θέμα σας.Η υπηÏεσία After the Deadline Ï€ÏοσφέÏει διάφοÏες επιλογές παÏαμετÏοποίησης που μποÏείτε να δείτε στο Ï€Ïοφίλ σας.Το Akismet Ï€ÏοστατεÏει το blog σας από το spam!ΆλμπουμΌλαΌλα τα κόμικΤέλοςΌλες οι ετικέτεςΌλα τα τμήματα μενοÏΌλες οι ετικέτες δουλειάςΌλες οι δουλειέςΌλες οι δουλειές μουΌλα τα σχόλιαΠλήÏης λίστα συντακτώνΠλήÏης λίστα κατηγοÏιώνΠλήÏης λίστα αÏχείουΌλα τα modules ενεÏγοποιήθηκαν!Όλα τα modules απενεÏγοποιήθηκαν!Όλα τα άÏθÏαΠλήÏης λίστα ετικετώνΠÏοβολή όλων των κατηγοÏιών και ετικετώνΕπιτÏέψτε στους διαχειÏιστές ιστότοπων να Ïυθμίσουν τις συνδέσεις στο WordPress.com όπως εκείνοι επιθυμοÏν.ΕπιτÏέπεται η Ï€Ïόσβαση και επεξεÏγασία από Ï„Ïίτους στα βίντεο μουΕπιτÏέπεται η Ï€Ïόσβαση Ï„Ïίτων στα βίντεο μουΕπιτÏέπεται η Ï€Ïόσβαση, επεξεÏγασία και διαγÏαφή των βίντεο μου από Ï„ÏίτουςΕπιτÏέπεται η φόÏτωση βίντεο από Ï„ÏίτουςΑλφαβητικάΣυμπληÏωματικό κείμενο:An %s AirlineAn Automattic AirlineΑπαÏαίτητη η χÏήση ενεÏÎ³Î¿Ï token για την εμφάνιση δημοσιεÏσεων.Ο διαχειÏιστής του ιστολογίου Ï€Ïέπει να δημιουÏγήσει την σÏνδεση για το Jetpack.Σφάμα. Δεν ήταν δυνατή η δημιουÏγία της υπηÏεσίας κοινοποίησης. Ελέγξτε τα στοιχεία σας.Σφάλμα. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Μη συμβατό ΠÏόσθετο.Σφάλμα επικοινωνίας με τους διακομιστές Jetpack. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΔημιουÏγήθηκε σφάλμα. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την εγκατάστασηΣυμπληÏώστε το σÏντομο εÏωτηματολόγιο με σχόλια και Ï€Ïοτάσεις για την βελτίωση της υπηÏεσίας.ΔιάφÏαγμαΔεν βÏέθηκαν δημοσιεÏσεις στο συγκεκÏιμένο αÏχείο. Δοκιμάστε την αναζήτηση.ΑÏχείοΕίστε σίγουÏος/η ότι θέλετε να κλείσετε χωÏίς να αποθηκεÏσετε τις αλλαγές; Η δουλειά σας θα χαθεί.Θέλετε να απενεÏγοποιήσετε την υπηÏεσία Publicizing;ΚαλιτέχνηςΩς εικονίδιο κινητοÏΕπί πληÏωμήως faviconΤο Θέμα που χÏησιμοποιείτε, %s, δεν υποστηÏίζει την αυτόματη φόÏτωση πεÏιεχομένου χωÏίς κλικ.Σελίδα συνημμένωνΑυτόματη διόÏθωση όταν:Automattic.Σφάλμα κατά την αυτόματη αποθήκευσηΔιαθέσιμα αÏθÏώματα:Διαθέσιμες υπηÏεσίεςΔιαθέσιμες συντομεÏσεις κώδικα: %l.ΕπιστÏοφή στις Γενικές ΡυθμίσειςΕπιστÏοφή την κοÏυφή ↑ΧÏώμα φόντουΠατήστε "ΕνημέÏωση ΠÏοφίλ" στο τέλος της σελίδας για να αποθηκεÏσετε τις αλλαγές.ΠÏιν αποσυνδέσετε το Jetpack μποÏοÏμε να σας βοηθήσουμε;ΠÏιν την δημοσίευση του νέου πεÏιεχομένου, ανανεώστε την παÏακάτω σÏνδεση ώστε η υπηÏεσία Publicize να κοινοποιήσει το άÏθÏο σας:Λέξεις με Ï€ÏοκατάληψηΜαÏÏοΑÏχεία ΙστολογίουΔιεÏθυνση ιστολογίου:ΠεÏιγÏαφή εγγÏαφής ειδοποιήσεων email για ιστολόγιοΜπλεΧÏώμα πεÏιγÏάμματος (hex):Εκμεταλλευτείτε τα Ï€Ïοηγμένα χαÏακτηÏιστικά του WordPress.com στο πακέτο φιλοξενίας που ήδη χÏησιμοποιείτε. Το Jetpack συνδέει το ιστολόγιο σας με το WordPress.com και τις μοναδικές δυνατότητες της πλατφόÏμας.ΠεÏιήγηση στον κατάλογο πεÏιεχομένου του VideoPressΠÏόγÏαμμα πεÏιήγησης ChromeΣτυλ κουμπιοÏΜε την Ï€Ïοσθήκη φόÏμας επικοινωνίας οι επισκέπτες θα μποÏοÏν να σας στείλουν σχόλια και παÏατηÏήσεις. Κάθε μήνυμα ελέγχεται αυτόματα για ανεπιθÏμητο πεÏιεχόμενο.Αν ενεÏγοποιήσετε αυτή την επιλογή, η φόÏτωση κάθε δημοσίευσης μέσω της αυτόματης φόÏτωσης πεÏιεχομένου θα Ï€ÏοσμετÏάται ως ξεχωÏιστή Ï€Ïοβολή στο Google Analytics.CSSΠαλαιότεÏες εκδόσεις CSSΕπεξεÏγασία CSS StylesheetΚάμεÏαΜποÏÏŽ να Ï€Ïοσθέσω επιπλέον πεδία;ΜποÏÏŽ να στείλω ειδοποιήσεις σε πεÏισσότεÏα από ένα άτομα;ΜποÏÏŽ να δω τα σχόλια και τις παÏατηÏήσεις στο WordPress; ΆκυÏοΑκÏÏωση απάντησηςΣφάλμα στην αποστολή και λήψη cookies με redirects.Δεν είναι δυνατή η χÏήση global flag σε μη multisites sitesΕπικεφαλίδα:ΚαÏουζέλΚατηγοÏίαΚέντÏοΑλλαγή λογότυπουΕπιλέξτε αν οι επισκέπτες του ιστότοπου σας μποÏοÏν να εγγÏαφοÏν και να ακολουθοÏν νέα άÏθÏα, σχόλια ή και τα δÏο.Στατιστικά γÏαφήματα απόΚλέβουμε;Έλεγχος για ανεπιθÏμηταΔείτε άλλα Ï€Ïοτεινόμενα χαÏακτηÏιστικά παÏακάτω ή μεταφεÏθείτε στις Ïυθμίσεις για παÏαμετÏοποίηση του Jetpack.Πεδίο επιλογήςΕπιλογή ΦωτογÏαφιώνΕπιλογή από τις δημοφιλέστεÏες ετικέτεςΕπιλέξτε από τις κοινότεÏες ετικέτεςΕπιλογή λογότυπουΚÏκλοιΌλες οι εγκεκÏιμένες διευθÏνσεις IP διαγÏάφηκανΚλισέκλικ εδώΚλικ για Press This!Κλικ για αυτόματη αναπαÏαγωγή της παÏουσίασης!Κλικ για αποστολή μέσω emailΚλικ για εκτÏπωσηΚλικ για κοινοποίηση σε %sΚλικ για να το μοιÏαστείτε στο Google+Κλικ για να το μοιÏαστείτε στο LinkedInΚλικ για να το μοιÏαστείτε στο PinterestΚλικ για να το μοιÏαστείτε στο PocketΚλικ για να το μοιÏαστείτε στο RedditΚλικ για να το μοιÏαστείτε στο TumblrΚλικ για να το μοιÏαστείτε στο TwitterΚλικ για να δείτε το σλάιντΚλείσιμοΚλείσιμοΧÏωματικός συνδυασμόςΚόμικςΤο Ï€ÏόχειÏο άÏθÏο κόμικ ενημεÏώθηκε. ΠÏοεπισκόπησηΤο κόμικ δημοσιεÏθηκε. Δείτε τοΤο κόμικ ανακτήθηκε από την παλαιότεÏη έκδοση %sΤο κόμικ αποθηκεÏθηκε.Το κόμικ έχει Ï€ÏογÏαμματιστεί για τις: %1$s. ΠÏοεπισκόπησηΤο κόμικ φοÏτώθηκε. ΠÏοεπισκόπησηΤο κόμικ ενημεÏώθηκε.Το κόμικ ενημεÏώθηκε. Δείτε τοΚόμικΣχόλιοΤα Likes είναιΠÏόβλημα με την Ï€ÏοσωÏινή μνήμη στα σχόλια;ΠεÏιγÏαφή εγγÏαφής ειδοποιήσεων email για νέα σχόλιαΠλοήγηση σχολίωνΣχολιασμός ως %sΣχόλιαΤα σχόλια έχουν απενεÏγοποιηθεί.ΠολÏπλοκες εκφÏάσειςΡÏθμισηΡÏθμισηΡυθμίσεις %sΣÏνδεσηΣÏνδεση JetpackΣυνδεθείτε και μοιÏαστείτε τις δημοσιεÏσεις στο %sΣυνδεθείτε τώÏα για να ενεÏγοποίησετε λειτουÏγίες όπως Στατιστικά, Likes και Κοινοποίηση στα μέσα κοινωνικής δικτÏωσης.ΣÏνδεση σεΣÏνδεση με WordPress.com Συνδέστε το ιστολόγιο σας με δημοφιλή δίκτυα κοινωνικής δικτÏωσης και μοιÏαστείτε τις νέες σας δημοσιεÏσεις με τους φίλους σας.ΣυνδεδεμένοΙστολόγιο συνδεδεμένο στο WordPress.comΣυνδεδεμένος/η ως:ΦόÏμα επικοινωνίαςΔιεÏθυνση URL για την φόÏμα επικοινωνίας:Στοιχεία επικοινωνίαςΕπικοινωνήστε με την ομάδα ΥποστήÏιξης JetpackΣυνέχεια →Συνέχεια ανάγνωσης →Επιλέξτε τις σελίδες που θα εμφανίζονται τα widgets από την επιλογή ΠÏοβολή Widget.ΜετατÏοπή σε κόμικΜετατÏοπή σε άÏθÏοΔεν ήταν δυνατή η μεταφοÏά του αÏχείο στο VideoPress. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΚαταμέτÏηση των Ï€Ïοβολών σελίδων εγγεγÏαμένων χÏηστών που παÏαμένουν συνδεδεμένοι.ΔημιουÏγία ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï ÎºÎ¿Î¹Î½Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚Î”Î·Î¼Î¹Î¿Ï…Ïγήστε πεÏισσότεÏους διαχειÏιστές Ï€Ïιν αλλάξετε τον κÏÏιο χÏήστη.ΠαÏουσιάστε τις φωτογÏαφίες σας με όμοÏφο και μοναδικό Ï„Ïόπο, απλά και γÏήγοÏα χωÏίς την χÏήση πολÏπλοκων εÏγαλείων.Κόψιμο ΕικόναςΔιαβάζω αυτή την πεÏίοδοΠÏοσαÏμογήΠÏοσαÏμοσμένο CSSΠÏοσαÏμοσμένο CSS StylesheetΠÏοσαÏμοσμένος ΤÏπος ΠεÏιεχομένουΠÏοσαÏμοσμένη διεÏθυνση emailΠÏοσαÏμοσμένο μήνυμα:Το Ï€ÏοσαÏμοσμένο πεδίο διαγÏάφηκε.Το Ï€ÏοσαÏμοσμένο πεδίο ενημεÏώθηκε.Όνομα πελάτηΣχόλια πελατώνΠÏοσαÏμογήΠÏοσαÏμογή αÏχείου απόψεωνΚΑΤΩΗμεÏήσια αÏχεία: %sΗμεÏήσιο αÏχείοΣκοÏÏοΗμεÏομηνίαΑπενεÏγοποίησηΕÏÏεση σφαλμάτωνΠληÏοφοÏίες εÏÏεσης σφαλμάτων (debug)Αποσφαλμάτωση Jetpack για πεÏισσότεÏες πληÏοφοÏίες.ΠÏοεπιλογήÎέο πεδίοΠÏώτη επιλογήΠÏοεπιλεγμένη ποιότηταΔιαγÏαφήΟÏιστική διαγÏαφήΟÏιστική διαγÏαφή αντικειμένουΔιαγÏαμμένη επιλογή: %sΠεÏιγÏαφήΟι Ï€ÏογÏαμματιστές μποÏοÏν να χÏησιμοποιήσουν τους μηχανισμοÏÏ‚ πιστοποίησης του WordPress.com's όπως για παÏάδειγμα το OAuth2 και το WordPress.com REST API για να αποκτήσουν Ï€Ïόσβαση στο πεÏιεχόμενο σας.Τόνοι και πνεÏματαΔυσκολίαΑπενεÏγοποίηση CSS και JSΑπενεÏγοποίηση δημοσίευσης μέσω emailΑποσÏνδεσηΑποσÏνδεση JetpackΑποσÏνδεση ιστότοπου από WordPress.comΓίνεται αποσÏνδεση JetpackΑπόκÏυψη μηνÏματος και απενεÏγοποίηση του Jetpack.ΑπόκÏυψη μηνÏματος.ΑπόÏÏιψη της ειδοποίησηςΠÏοβολή κειμένου κεφαλίδαςΠÏοβολή πεÏιεχομένου WordPressΧÏησιμοποιήστε το κουτί Facebook Likes για να Ï€Ïοβάλλετε στους επισκέπτες σας την σελίδα σας στο FacebookΠÏοβολή μικÏογÏαφίας του Ï€Ïοφίλ σας από το GravatarΠÏοβολή συλλογής φωτογÏαφιών ή σλάιντΠÏοβολή συλλογής φωτογÏαφίες σε μωσαϊκό στυλ.ΠÏοβολή φωτογÏαφίας στην πλευÏική στήληΧÏησιμοποιήστε το επίσημο Twitter widgetΠÏοβολή ως:ΠÏοβολή Ï€Ïοβεβλημένων εικόνωνΠÏοβολή βέλτιστης ποιότητας βίντεο ως Ï€Ïοεπιλογή.ΠÏοβολή φωτογÏαφιών καÏουζέλ σε πλήÏες μέγεθος.ΠÏοβολή Î¼ÎµÎ½Î¿Ï ÎºÎ¿Î¹Î½Î¿Ï€Î¿Î¯Î·ÏƒÎ·Ï‚ και επιλογή για κατέβασμα του βίντεοΠÏοβολή ετικετών παντοÏ.ΠÏοβολή επεÏχόμενων συμβάντων από το iCalendar.Εμφάνιση των βιβλίων σας από το GoodreadsΠÏοβολή της τοποθεσίας, ÏŽÏας και στοιχείων επικοινωνίας.Θα εμφανίζει τον αÏιθμό όσων έκαναν Like στην δημοσίευση σας μαζί με τις φωτογÏαφίες Ï€Ïοφίλ τους.ΠÏοβολή Ï€Ïόσφατου πεÏιεχομένου από ιστολόγια WordPress.com ή ιστολόγια με Jetpack Ï„ÏίτωνΠÏέπει να το συμπληÏώσω;ΑπαγοÏεÏεται η Ï€Ïόσβαση Ï„Ïίτων στον κατάλογο αÏχείων του VideoPressΈχετε ακόμα εγκατεστημένο το Ï€Ïόσθετο %s ;Σφάλμα στο domain `%1$s`. Είναι subdomain του WordPress.com.Σφάλμα για το domain `%1$s` is_usable_domain. Κενό πεδίο.Σφάλμα για το domain `%1$s` is_usable_domain. Η χÏήση του δεν επιτÏέπεται.Σφάλμα για το domain `%1$s`. Μη έγκυÏο top level domain.Σφάλμα στο domain `%1$s`. Η διεÏθυνση IP `%2$s` του domain δεν ειναι έγκυÏη ή είναι ιδιωτική ή χÏησιμοποιείται.ΠÏέπει να παÏαμείνετε συνδεδεμένοι στο ιστολόγιο σας στο WordPress κατά την διάÏκεια έγκÏισης του Jetpack.ΑπόκÏυψη ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï Reblog στις δημοσιεÏσειςΔιπλή άÏνησηDownloadΑποθήκευση: %s
        ΣÏÏετε εδώ τις διαθέσιμες υπηÏεσίες που επιθυμείτε να χÏησιμοποιήσετε.ΣÏÏετε τις υπηÏεσίες κοινοποίησης που θέλετε να ενεÏγοποιήσετε στην πεÏιοχή ΕνεÏγά ώστε να εμφανιστοÏν στον ιστότοπο σας. ΣÏÏετε στην πεÏιοχή ΚÏυφά για να τις αποκÏÏψετε.ΣÏÏετε στον χώÏο κάτω από αυτό το μήνυμα, τις υπηÏεσίες που θέλετε να ενεÏγοποιήσετε.ΣÏÏετε πάνω ή κάτω για να αλλάξετε την θέσηAναπτυσσόμενοΣÏÏετε εδώ φωτογÏαφίες για φόÏτωσηΗλ. διεÏθυνσηΟι φόÏμες επικοινωνίας μποÏοÏν να παÏαμετÏοποιηθοÏν για να ταιÏιάξουν στις ανάγκες σας. Κάθε φοÏά που οι επισκέπτες αφήνουν κάποιο σχόλιο και παÏατηÏήσεις, το πεÏιεχόμενο αυτών ελέγχεται για ανεπιθÏμητα μηνÏματα από το Akismet (αν είναι ενεÏγό). Τα μηνÏματα αποστέλλονται μέσω email στην διεÏθυνση που έχετε οÏίσει και βÏίσκονται συγκεντÏωμένα στην σελίδα σχόλιων και απόψεων.Κάθε λειτουÏγία Ï€ÏοσφέÏει την επιλογή ΕνεÏγοποίησης ή ΑπενεÏγοποίησης ξεχωÏιστά.Κάθε widget Ï€ÏοσφέÏει επιλογές παÏαμετÏοποίησης.ΠÏοσφέÏετε την δυνατότητα εγγÏαφής στις ειδοποιήσεις νέου πεÏιεχομένου μέσω email στους επισκέπτες σας. ΧÏησιμοποιώντας το ειδικό widget, κάθε φοÏά που δημοσιεÏετε νέο πεÏιεχόμενο θα λαμβάνουν ειδοποίηση για αυτό.ΧÏησιμοποιήστε την ετικέτα "featured" για τις Ï€Ïοβεβλημένες δημοσιεÏσεις σας. Το Θέμα που χÏησιμοποιείτε επιτÏέπει μέχÏι %2$s Ï€Ïοβεβλημένες δημοσιεÏσεις.ΕπεξεÏγασίαΕπεξεÏγασία CSSΕπεξεÏγασία κόμικΕπεξεÏγασία λεπτομεÏειώνΕπεξεÏγασία στοιχείου μενοÏΕπεξεÏγασία ετικέταςΕπεξεÏγασία τμήματος μενοÏΕπεξεÏγασία δουλειάςΕπεξεÏγασία ετικέτας δουλειάςΕπεξεÏγασία Ï„Ïπου δουλειάςΕπεξεÏγασία επιλογής...Αλλαγή σχόλιουΕπεξεÏγασία Ï€ÏοφίλΕπεξεÏγασία νέου πεδίουEmailΔιεÏθυνση emailΔιεÏθυνση Email:Ο έλεγχος του email απέτυχε, παÏακαλώ Ï€Ïοσπαθήστε ξανάΑποστολή email κάθε φοÏά πουΕιδοποιήσεις emailΡυθμίσεις emailΤα email θα αποστέλλονται στην διεÏθυνση %s (Αλλαγή)Άδειασμα ανεπιθÏμητωνΕνεÏγοποίηση ΠοÏτφόλιου.ΕνεÏγοποίηση δημοσίευσης μέσω emailΕνεÏγοποίηση ΑπόψεωνΕνεÏγοποίηση καÏουζέλΕνεÏγοποίηση της Ï€Ïοβολής αποσπασμάτων στην κεντÏική σελίδα και στις σελίδες αÏχείουΕνεÏγοποίηση ελέγχου γÏαμματικής και στυλ γÏαφής για άÏθÏα και σελίδες:ΕνεÏγοποιημένες υπηÏεσίεςΗ ενεÏγοποίηση ΔιαχείÏισης επιτÏέπει την ενημέÏωση των WordPress sites που διατηÏείτε σε δικό σας διακομιστή αλλά και των WordPress.com sites σας μέσα από ένα ενιαίο πεÏιβάλλον εÏγασίας.Επιλογές ΑγγλικώνΠαÏακαλώ εισάγετε την διεÏθυνση του ιστότοπου WordPress.com ή Jetpack WordPress.ΠÏοσθέστε τις συντομεÏσεις κώδικα απευθείας στο πεÏιεχόμενο σας ώστε να εμφανίσετε φωτογÏαφίες κλπ. Για πεÏισσότεÏες πληÏοφοÏίες δείτε εδώ.ΚαταχωÏήστε την διεÏθυνση URL για το εικονίδιο με διαστάσεις 16x16px για αυτή την υπηÏεσία.Εισαγωγή ονόματος πελάτηΔώστε το όνομα του στοιχείου μενοÏΠαÏακαλώ γÏάψτε το email σαςΕισάγετε το email σας για εγγÏαφή στην υπηÏεσία αποστολής ειδοποιήσεων μέσω email για νέες δημοσιεÏσεις. Εισαγωγή της τιμής meta "content" για την πιστοποίηση του ιστολόγιο σας με το %sΛεπτομέÏειες σφάλματος: %sΛεπτομέÏειες σφάλματος: Το αναγνωÏιστικό Jetpack ξεκινά με αλφαÏιθμητικό. ΠαÏακαλείστε να μην δημοσιεÏσετε αυτό το μήνυμα λάθους! %sΛεπτομέÏειες σφάλματος: Το αναγνωÏιστικό Jetpack είναι κενό. ΠαÏακαλείστε να μην δημοσιεÏσετε αυτό το μήνυμα λάθους! %sΛεπτομέÏειες σφάλματος: Το αναγνωÏιστικό Jetpack δεν είναι ένας αÏιθμός. ΠαÏακαλείστε να μην δημοσιεÏσετε αυτό το μήνυμα λάθους! %sΣφάλμα: %sΣφάλμα σÏνδεσης στο WordPress.com. Κωδικός: %1$s, %2$sΣφάλμα κατά την διαγÏαφή.Σφάλμα επαναφοÏάς από τα διαγÏαμμένα.Σφάλμα κατά την φόÏτωση του Ï€ÏοφίλΣφάλμα!Σφάλμα, μη έγκυÏο module.Σφάλμα. Λήψη λανθασμένων δεδομένων.Σφάλμα: Δεν ήταν δυνατή η δημιουÏγία ονόματος χÏήστηΣφάλμα: Η σÏνδεση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου με το Jetpack αντιμετωπίζει Ï€ÏοβλήματαΣφάλμα: ΣυμπληÏώστε έγκυÏο email.Σφάλμα: ΠαÏακαλοÏμε συμπληÏώστε τα υποχÏεωτικά πεδία (όνομα, ηλ. διεÏθυνση).1-202-555-1212ΠαÏάδειγμα:ΣελίδαΑποσπάσματαΑναμενόμενη χÏήση πίνακαΕξηγήστε...Αποθήκευση σχολίων και παÏατηÏήσεων σε αÏχείο CSVFacebookΚουτί για Facebook LikeΣελίδα FacebookΔιεÏθυνση URL σελίδας στο FacebookΤοίχος FacebookΌνομα χÏήστη Facebook:Λάθος στοιχεία. ΠÏοσπαθήστε ξανά.ΠÏοβεβλημέναΠÏοβεβλημένο ΠεÏιεχόμενοΠÏοβεβλημένες εικόνες.ΠÏοβολή Ïοών:ΠÏοτάσεις και σχόλιαΤα σχόλια και οι παÏατηÏήσεις αποÏÏίφθηκαν.Σχόλια και παÏατηÏήσεις χαÏακτηÏισμένα ως ανεπιθÏμηταΕίδος πεδίουΑπενεÏγοποιήστε όλα τα ΠÏόσθετα εκτός του Jetpack. Αν το Ï€Ïόβλημα συνεχίζει τότε δεν Ï€ÏοέÏχεται από κάποιο ΠÏόσθετο. Αν το Ï€Ïόβλημα επιλÏθηκε, ενεÏγοποιήστε ένα-ένα τα ΠÏόσθετα για να εντοπίσετε πιο δημιουÏγεί το Ï€Ïόβλημα.ΠÏώτη επιλογήΕστιακή απόστασηΑκολουθήστε αυτό το ΙστολόγιοΑκολουθήστε τα ΣχόλιαΑκολουθήστε με στο TwitterΡυθμίσεις ΠαÏακολοÏθησης ΠεÏÎ¹ÎµÏ‡Î¿Î¼Î­Î½Î¿Ï…ÎœÎµÎ½Î¿Ï Ï†Î±Î³Î·Ï„Î¿ÏΓια παÏάδειγμα, αν θέλετε το widget ΑÏχείου να εμφανίζεται μόνο στα αÏχεία κατηγοÏιών και σελίδων με σφάλαμτα, επιλέξτε "ΠÏοβολή" από το Ï€Ïώτο Î¼ÎµÎ½Î¿Ï ÎºÎ±Î¹ Ï€Ïοσθέστε τους εξής δÏο κανόνες: "Η σελίδα είναι σελίδα σφάλματος 404" και "Η κατηγοÏία είναι Όλες οι κατηγοÏίες".Για παÏάδειγμα, καυτεÏÏŒ, αγαπημένο κλπ.
        ΞεχωÏίστε τις λέξεις με κόμμαΓια πεÏισσότεÏες πληÏοφοÏίες:ΕÏγαλείο δημιουÏγίας φόÏμαςΜοÏφή:ΕλεÏθεÏες ΜοÏφές ΑÏχείωνΑπό ΑÏχική σελίδα, σελίδες αÏχείου και αποτελέσματα αναζήτησηςΠÏώτη σελίδαΘα βÏείτε πεÏισσότεÏες πληÏοφοÏίες στην σελίδα υποστήÏιξης. Εναλλακτικά δείτε το βίντεο για να μάθετε πεÏισσότεÏα για τις κοινοποιήσεις.Η δυνατότητα για πλήÏη διαχείÏιση του ιστότοπου είναι απενεÏγοποιημένη.ΓκαλεÏίΣτιγμιότυπο από συλλογή φωτογÏαφιών καÏουζέλΑποκτήσετε κλειδί APIΞεκινήστε την διαχείÏιση πολλαπλών ιστότοπων με σÏνδεση στο Jetpack.Ξεκινήστε με το Jetpack για πολλαπλοÏÏ‚ ιστότοπουςΌνομα χÏήστη GitHub:Πείτε μας την γνώμη σαςΒελτιώστε την ταχÏτητα απόκÏισης του ιστότοπου σας χÏησιμοποιώντας την υπηÏεσία φόÏτωσης εικόνων του WordPress.com. Οι φωτογÏαφίες σας φοÏτώνονται μέσω του ειδικά διαμοÏφωμένου δικτÏου υψηλής ταχÏτητας. Το μόνο που χÏειάζεται είναι να ενεÏγοποιήσετε την υπηÏεσία.ΓενικάGoodreadsΑÏιθμητικό, αναγνωÏιστικό ID χÏήστη από το Goodreads (οδηγίες):GoogleΚαÏτέλα GravatarΚαÏτέλες GravatarΠÏοφίλ GravatarΠÏάσινοΚείμενο καλωσόÏισματοςΈχετε σχόλια και Ï€Ïοτάσεις για το Jetpack;ΎψοςΎψος (px):Ύψος:ΕγκεκÏιμένες ΔιευθÏνσεις IP:Έτσι θα είναι η νέα σας φόÏμαΈχετε λάβει Ï€Ïόσκληση να συμμετάσχετε στο '%1$s' στη διεÏθυνση %2$s ως %3$s. Πατήστε στον ακόλουθο σÏνδεσμο για να αποδεχτείτε την Ï€Ïόσκληση: %4$sΚÏυφά ÏήματαΑπόκÏυψηΑπόκÏυψη Ï€Ïοβεβλημένων εικόνωνΑπόκÏυψη σχετικών θεμάτων στις δημοσιεÏσειςΑπόκÏυψη ετικέτας σε δημοσιεÏσεις και συλλογές ετικετών.ΑπόκÏυψη της εικόνας καταμέτÏησης στατιστικών smileyΑÏχικήÎÏες & ΠληÏοφοÏίεςÎÏες:Οι καÏτέλες Gravatar Ï€Ïοσθέτουν επιπλέον πληÏοφοÏίες στις απλές φωτογÏαφίες Ï€Ïοφίλ. Για παÏάδειγμα μποÏοÏν να δείξουν το όνομα, σÏντομο βιογÏαφικό, φωτογÏαφίες, Facebook, Twitter, LinkedIn του Ï€Ïοσώπου.Οι καÏτέλες Gravatar Ï€Ïοσθέτουν επιπλέον πληÏοφοÏίες στις απλές φωτογÏαφίες Ï€Ïοφίλ. Για παÏάδειγμα μποÏοÏν να δείξουν το όνομα, σÏντομο βιογÏαφικό, φωτογÏαφίες κλπ του Ï€Ïοσώπου.Οι καÏτέλες Gravatar είναι ένας Ï€Î¿Î»Ï ÎºÎ±Î»ÏŒÏ‚ Ï„Ïόπος να δείξετε επιπλέον πληÏοφοÏίες ώστε πεÏισσότεÏοι επισκέπτες να ανακαλÏψουν το ιστολόγιο σας.Πώς δουλεÏει;Γεια χαÏά, Επιλέξατε να ακολουθείτε τις εξελίξεις σε αυτή την δημοσίευση. Θα λαμβάνετε email για κάθε νέο σχόλιο. Για να ενεÏγοποιήσετε την υπηÏεσία κάνετε κλικ στον παÏακάτω σÏνδεσμο. Αν έχετε λάβει αυτό το μήνυμα κατά λάθος απλά αγνοήστε το.Γεια χαÏά, Επιλέξατε να ακολουθείτε τις νέες δημοσιεÏσεις σε αυτό το ιστολόγιο. Θα λαμβάνετε email για κάθε νέο άÏθÏο που δημοσιεÏεται. Για να ενεÏγοποιήσετε την υπηÏεσία κάνετε κλικ στον παÏακάτω σÏνδεσμο. Αν έχετε λάβει αυτό το μήνυμα κατά λάθος απλά αγνοήστε το.ΧÏειάζομαι ΒοήθειαΔιεÏθυνση IP:ΕπιτÏέπεται η χÏήση διευθÏνσεων IPv4 και IPv6.
        Για να καθοÏίσετε εÏÏος εισάγετε την μικÏότεÏη και μεγαλÏτεÏη τιμή διαχωÏίζοντας με παÏλα. Για παÏάδειγμα: 12.12.12.1-12.12.12.100ΕικονίδιοΕικονίδιο + κείμενοΔιεÏθυνση URL εικονιδίουΕικονίδιο μόνοΕπιλέξτε λέξεις και φÏάσεις που δεν επιθυμείτε να ελεγχθοÏν:Εάν είναι κενό, θα Ï€Ïοσπαθήσουμε να υπολογίσουμε το μέγεθος της φωτογÏαφίας.Αν δεν συμβαίνει αυτόματα, κάποιο Θέμα ή ΠÏόσθετο χÏησιμοποιοÏν επιπλέον χαÏακτήÏες. Δοκιμάστε τα βήματα 2 και 3.Αν δεν έχετε καταφέÏει να βÏείτε λÏση στο Ï€Ïόβλημα που αντιμετωπίζετε, επικοινωνήστε με την υποστήÏιξη του Jetpack. ΠεÏιγÏάψτε το Ï€Ïόβλημα με λεπτομέÏειες και την Ï€Ïοσπάθεια που κάνετε για να το επιλÏσετε. Θα χαÏοÏμε να σας βοηθήσουμε.Αν σχεδιάζετε και φτιάχνετε Θέματα μποÏείτε να μάθετε πεÏισσότεÏα για την αυτόματη φόÏτωση πεÏιεχομένου χωÏίς κλικ (Infinite Scroll) εδώ %1$s.Αν δεν έχετε λογαÏιασμό στο WordPress.com μποÏείτε να δημιουÏγήσετε έναν, εÏκολα, γÏήγοÏα και δωÏεάν.Αν λαμβάνετε το Σφάλμα 404 επικοινωνήστε με τον διαχειÏιστή του πακέτου φιλοξενίας του ιστότοπου σας. Οι Ïυθμίσεις ασφαλείας είναι πιθανό να αποκλείουν το XMLRPC.Αν το Ï€Ïόβλημα που αντιμετωπίζετε δεν είναι γνωστό ή δημιουÏγήθηκε εξαιτίας κάποιου ΠÏόσθετου, ενεÏγοποιήστε το Θέμα Twenty Twelve. Αν το Ï€Ïόβλημα επιλÏθηκε αυτό σημαίνει ότι το Θέμα που χÏησιμοποιείτε δεν λειτουÏγεί ομαλά.ΠαÏάβλεψη όλωνΠαÏάβλεψη πάνταΠαÏάβλεψη συμβουλήςΦÏάσεις που παÏαλείφθηκανΕικόνα Στοίχηση εικόνας:ΧÏώμα Εικόνας:ΚαÏουζέλ φωτογÏαφιώνΣυλλογή φωτογÏαφιών σλάιντΚατάλογος ΕικόνωνΣÏνδεσμος ΕικόναςΛίστα ΕικόνωνΡυθμίσεις εικόνας:Μέγεθος εικόνας:ΔιεÏθυνση URL φωτογÏαφίας:Τίτλος εικόνας:Κοπή φωτογÏαφίαςΕικόνες:ΑνενεÏγόΕπιλογή του CSS στο Θέμα για κινητάΔημιουÏγία καταλόγου δημοσιεÏσεων ΔημιουÏγία καταλόγου δημοσιεÏσεων σε εξέλιξη…Εισαγωγή βίντεοΌνομα χÏήστη Instagram:Αντί να χÏησιμοποιείτε μεγάλου μήκους διευθÏνσεις URL μποÏείτε να χÏησιμοποιήσετε τους συνδέσμους μικÏÎ¿Ï Î¼Î®ÎºÎ¿Ï…Ï‚ Shortlinks από την υπηÏεσία wp.meΜποÏείτε να αποθηκεÏσετε μια σειÏά από διευθÏνσεις IP {κατώτατο_ÏŒÏιο}-{ανώτατο_ÏŒÏιο}. Δεν επιτÏέπονται κενά. (παÏάδειγμα: 1.1.1.1-2.2.2.2)Κείμενο καλωσόÏισματος για όσους ακολουθοÏν για Ï€Ïώτη φοÏά νέα δημοσίευση στο ιστολόγιο σας.Κείμενο καλωσόÏισματος για όσους ακολουθοÏν για Ï€Ïώτη φοÏά το ιστολόγιο σας μέσω της υπηÏεσίας.Εσφαλμένο JSONΣφάλμα. Μη έγκυÏο αναγνωÏιστικό ID χÏήστη. Εισάγετε ξανά το αÏιθμητικό, αναγνωÏιστικό ID χÏήστη από το Goodreads.Λανθασμένο αναγνωÏιστικόΜη έγκυÏο ή παλιό nonce.ΣφάλμαΣφάλμα.Λανθασμένο όνομα χÏήστη.Ο ιστότοπος αυτός είναι Ï€Ïοσωπικός;Η διεÏθυνση URL για την σελίδα του Facebook δεν είναι σωστή. Δείτε τις Ïυθμίσεις μονάδας.Η επικοινωνία Î¼ÎµÏ„Î±Î¾Ï Ï„Î¿Ï… ιστότοπου σας και του Jetpack δεν είναι εφικτή.Είναι πιθανό να συμβαίνει εξαιτίας των παÏακάτω λόγων:Ιδανικό για χÏήση στο Twitter, Facebook και μηνÏματα κινητών με πεÏιοÏισμένο αÏιθμό χαÏακτήÏων.Έτοιμο να Ï€ÏοσφέÏει τα Ï€Ïοηγμένα χαÏακτηÏιστικά του WordPress.com στο δικό σας ιστότοπο.Το Î¼ÎµÎ½Î¿Ï Ï„Î¿Ï… εστιατοÏίου σαςΠÏοβαλλόμενο πεÏιεχόμενο:ΑÏγκόJetpackΕÏÏεση Σφαλμάτων Jetpack Συχνές ΕÏωτήσεις για το JetpackΗ ανανέωση των Ïυθμίσεων σÏνδεσης του Jetpack ολοκληÏώθηκε!Έκδοση Jetpack ΠÏόσθετουΚÏÏιος ΧÏήστης JetpackΡυθμίσεις JetpackΙστότοποι JetpackΡυθμίσεις ΣυνδÏομής JetpackΥποστήÏιξη JetpackJetpack από το WordPress.comΤο Jetpack συνδυάζει τα Ï€Ïοηγμένα χαÏακτηÏιστικά του %s και την απλότητα χÏήσης του WordPress ώστε να Ï€ÏοσφέÏει την καλÏτεÏη δυνατή εμπειÏία χÏήσης στο ιστολόγιο σας.Το Jetpack συμπεÏιλαμβάνει την τελευταία έκδοση του Ï€Ïόσθετου %lΤο Jetpack συμπεÏιλαμβάνει τις τελευταίες εκδόσεις των Ï€Ïόσθετων %lΤο Jetpack πεÏιέχει την πιο Ï€Ïόσφατη έκδοση του “%1$s” Ï€Ïόσθετου.Το Jetpack δεν μπόÏεσει να συνδεθεί στο WordPress.com: %s. Αυτό συνήθως σημαίνει λάθος Ïυθμίσεις στο πακέτο φιλοξενίας του ιστότοπου σας. Το Jetpack αποσυνδέθηκε επιτυχώς.Το Jetpack είναι συνδεδεμένο με το WordPress.comΤο Jetpack βÏίσκεται υπό ανάπτυξη (τοπικά).Η εγκατάσταση του Jetpack ολοκληÏώθηκε!Το Jetpack απαιτεί σÏνδεση και για τον λόγο αυτό δεν είναι δυνατή η απόκÏυψη των μηνυμάτων.Το Jetpack δεν είναι συνδεδεμένο με το WordPress.comΤο Jetpack χÏειάζεται την έκδοση WordPress %s ή νεότεÏη.Το Jetpack Ï€ÏοσφέÏει Ï€Ïοηγμένα και καινοτόμα χαÏακτηÏιστικά του WordPress.com στο WordPress ιστολόγιο και ιστότοπο σας.Το Jetpack Ï€Ïοσπαθεί αυτόματα να μιμηθεί το χÏωματικό στυλ του ιστότοπου σας. ΜποÏείτε να κάνετε αλλαγές στις Ρυθμίσεις συζητήσεων.Το Jetpack σας επιτÏέπει να πιστοποιήσετε εφαÏμογές και υπηÏεσίες για ασφαλή σÏνδεση με το ιστολόγιο σας ώστε να χÏησιμοποιήσετε το πεÏιεχόμενο των δημοσιεÏσεων σας με νέους, ενδιαφέÏοντες Ï„Ïόπους.Το Jetpack θα ενημεÏώσει αυτόματα τις μηχανές αναζήτησης για κάθε νέα δημοσίευση σας ώστε να αποκτήσετε μεγαλÏτεÏη έκθεση και πεÏισσότεÏους επισκέπτες.Το Θέμα για κινητά του Jetpack κάνει αυτό ακÏιβώς. ΧÏησιμοποιεί αυτόματα την φωτογÏαφία κεφαλίδας, την φωτογÏαφία φόντου και τις μονάδες (widgets) που ήδη χÏησιμοποιείτε στον ιστότοπο σας. ΔημοσιεÏσεις με συλλογές φωτογÏαφιών λειτουÏγοÏν το ίδιο καλά και σε κινητά.ΠÏοστεθείτε στον %s εγγεγÏαμμένο.ΠÏοστεθείτε στους %s εγγεγÏαμμένους.Jump StartΕνεÏγοποιήστε το Jump StartΜεταφοÏά σε:Κουμπιά Twitter, Facebook και Google+ στο τέλος κάθε δημοσίευσης για εÏκολη κοινοποίηση.ΕνημεÏωθείτε για τις τελευταίες εξελίξεις στους ιστότοπους σας και ελάτε σε επαφή με χÏήστες του WordPress.com.LaTeXΕτικέταEmailΌνομαΙστότοποςΕπιλογήΕπιλογέςμετακίνησηΕτικέτεςΕτικέτες: καυτεÏÏŒ, αγαπημένο κλπ. ΔιαχωÏίστε τις λέξεις με κόμμαΓλώσσαΜεγάλοΜεγάλη ΦωτογÏαφία ΙστολόγιουΤÏοποποιήθηκεΕπιλογές εμφάνισης:Μάθετε πεÏισσότεÏαΜάθετε πεÏισσότεÏα σχετικά με τον ΚÏÏιο ΧÏήστη.Μάθετε πεÏισσότεÏαΜάθετε πεÏισότεÏα για την μοÏφοποίηση κειμένου.ΑπάντησηΑπάντηση σε %sΣχολιάστεΑÏιστεÏάΠείτε μας το όνομα σας.ΑπαλόLikeΚάνε Like στο:LikesΕιδοποιήσεις για likesΤα Likes επιτÏέπουν στους επισκέπτες να δείξουν την Ï€Ïοτίμηση τους για τις δημοσιεÏσεις σας, μέσω των λογαÏισμών τους στο WordPress.com.Κοινοποιήσεις και likesΤο ÏŒÏιο Ï€Ïέπει να είναι μεγαλÏτεÏο ή ίσο με 0.ΠεÏιοÏισμός πλάτους στα %1$s pixels για βίντεο, φωτογÏαφίες πλήÏους μεγέθους κλπ. (Μάθετε πεÏισσότεÏα.)ΧÏώμα συνδέσμου (hex):ΣÏνδεση με:ΣÏνδεσμος URL (για όταν γίνει κλικ στην φωτογÏαφία):ΣÏνδεση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Î¼Îµ το WordPress.comαλλαγήΣÏνδεση λογαÏιασμοÏΣÏνδεση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÏ„Î¿ WordPress.comLinkedInΌνομα χÏήστη LinkedIn:ΣÏνδεσμοι σε υπηÏεσίες που χÏησιμοποιείτε.ΣÏνδεσμοι στις Ïοές RSS του ιστολόγιου σαςΣÏνδεσμοι στον Ï€Ïοσωπικό σας ιστότοπο και ιστολόγιο ή άλλους ιστότοπους που πεÏιγÏάφουν ποιος/α είστε.ΠÏοεπισκόπηση σε Ï€Ïαγματικό χÏόνοΦοÏτώστε το αÏχείο XMLRPC. Θα Ï€Ïέπει να αναφέÏει "Ο διακομιστής XML-RPC δέχεται μόνο συνδέσεις POST".ΦόÏτωση …ΦόÏτωση σχόλιων...Το βίντεο φοÏτώνει...ΦόÏτωση…ΦόÏτωση...Τοποθεσία αÏχείου βίντεο Ogg.ΣÏνδεση με WordPress.comΣυνδεδεμένος/ηΑποσÏνδεσηΗ σÏνδεση αποκλείστηκε από το JetpackΗ επιλεγμένη σÏνδεση δεν επιτÏέπεταιΛογότυποΜεσημεÏιανό: 11am - 2pm Î’Ïαδινό: Δ-Πεμ 5pm - 11pm, ΠαÏ-Σαβ:5pm - 1amM j, Y @ G:iΚÏÏια πλευÏική στήληΒεβαιωθείτε ότι Ï€Ïοσθέσατε τις πιο συχνά χÏησιμοποιοÏμενες διευθÏνσεις IP. Οι διευθÏνσεις IP αλλάζουν από το σπίτι στο γÏαφείο και άλλες τοποθεσίες. Η διαγÏαφή μιας διεÏθυνσης από εδώ θα αφαιÏέσει την διεÏθυνση από την λίστα εγκεκÏιμένων διευθÏνσεων (whitelist).Θέλετε να ενεÏγοπίησετε αυτή την σÏνδεση σε όλους τους χÏήστες του ιστολογίου;ΔιαχειÏιστείτε όλα τα site σας με WordPress από το WordPress.comΗ ΔιαχείÏιση ενεÏγοποίηθηκε!ΔιαχειÏιστείτε πολλαπλοÏÏ‚ ιστότοπους από τον πίνακα ελέγχου στην διεÏθυνση wordpress.com/sites. Η ενεÏγοποίηση της λειτουÏγίας αυτής επιτÏέπει σε όλους τους διαχειÏιστές του ιστότοπου Î±Ï…Ï„Î¿Ï Î½Î± Ï€ÏαγματοποιοÏν αλλαγές μέσω του WordPress.com. Μάθετε πεÏισσότεÏα.ΔιαχείÏιση Ρυθμίσεων Publicize.Ελέγξτε την διεÏθυνση email της υπηÏεσίας Δημοσίευση μέσω email από τις Ïυθμίσεις του Ï€Ïοφίλ σας.ΔιαχειÏιστείτε πολλά Jetpack sites από ένα ενιαίο πεÏιβάλλον εÏγασίας στο wordpress.com/sites. Μάθετε πεÏισσότεÏα.ΑνεπιθÏμητοΧαÏακτηÏισμός ως ΜΗ ανεπιθÏμητοΧαÏακτηÏισμός ως ανεπιθÏμητοΜοÏφοποίηση κειμένουΠεÏιεχόμενοΗ μοÏφοποίηση κειμένου σας επιτÏέπει να γÏάψετε άÏθÏα και σχόλια συμπεÏιλαμβάνοντας συνδέσμους, λίστες κλπ. Η δυνατότητα είναι συνήθως χÏήσιμη στους bloggers που θέλουν να μοÏφοποιήσουν το κείμενο τους γÏήγοÏα και απλά.Πιστοποίηση μέσω emailΜέγιστος αÏιθμός δημοσιεÏσεων (όχι πεÏισσότεÏα από 10):Εικόνες και ΒίντεοΑÏχείο εικόνας και ήχουΜήκος:ΜέσοΜενοÏΣτοιχείο μενοÏΕτικέτα στοιχείου μενοÏΕτικέτες στοιχείων μενοÏΣτοιχεία μενοÏΤα στοιχεία Î¼ÎµÎ½Î¿Ï Î±Î½Î±Î´Î¹Î¿Ïγανώθηκαν.ΔιαχείÏιση μενοÏΤμήμα μενοÏΤμήματα μενοÏΤο Ï€ÏόχειÏο στοιχείο Î¼ÎµÎ½Î¿Ï ÎµÎ½Î·Î¼ÎµÏώθηκε. ΠÏοεπισκόπιση στοιχείουΤο στοιχείο Î¼ÎµÎ½Î¿Ï Î´Î·Î¼Î¿ÏƒÎ¹ÎµÏτηκε. ΠÏοβολήΕπιτυχής ανάκληση στοιχείου από την παλαιότεÏη έκδοση %sΤο στοιχείο Î¼ÎµÎ½Î¿Ï Î±Ï€Î¿Î¸Î·ÎºÎµÏτηκε.Το στοιχείο Î¼ÎµÎ½Î¿Ï Ï€ÏογÏαμματίστηκε για δημοσίευση στις: %1$s. ΠÏοεπισκόπησηΤο στοιχείο Î¼ÎµÎ½Î¿Ï Ï…Ï€Î¿Î²Î»Î®Î¸Î·ÎºÎµ. ΠÏοεπισκόπησηΤο στοιχείο Î¼ÎµÎ½Î¿Ï ÎµÎ½Î·Î¼ÎµÏώθηκε.Το στοιχείο Î¼ÎµÎ½Î¿Ï ÎµÎ½Î·Î¼ÎµÏώθηκε. ΠÏοβολή στοιχείουΜενοÏΜήνυμαΤο μήνυμα εστάλη.ΜηνÏματαΜεταδεδομέναΔεν δημοσιεÏθηκε με βάση το Ï€ÏόγÏαμμαΧωÏίς αναγνωÏιστικό επισυναπτόμενου αÏχείου.ΧωÏίς αναγνωÏιστικό ιστολόγιου.ΧωÏίς αναγνωÏιστικό άÏθÏου.Διαφήμιση για εφαÏμογές κινητώνΕφαÏμογές για κινητάΘέμα για κινητάΣυμβατό με κινητά:Πατήστε Escape για κλείσιμο.Κατάσταση:ΠÏοσθέστε εικονίδιο στον ιστότοπο σαςΠÏοσθέστε φωτογÏαφίες, συνομιλίες από το Twitter, Ïοές RSS του ιστότοπου σας κλπ στις πλευÏικές στήλες (sidebar).ΠÏοσθέστε την δυνατότητα φόÏτωσης σελίδων χωÏίς κλικ (infinite scroll) στο Θέμα σας.ΕπιτÏέψτε την ασφαλή Ï€Ïόσβαση εφαÏμογών στο πεÏιεχόμενο σας μέσω υπηÏεσιών cloud.ΕπιτÏέψτε στους επισκέπτες σας να ενημεÏώνονται για τις νέες δημοσιεÏσεις με ειδοποιήσεις μέσω email.Έλεγχος οÏθÏογÏαφίας και γÏαμματικής με την χÏήση της υπηÏεσίας After the Deadline.ΠαÏαμετÏοποίηση των αÏχείων CSS χωÏίς παÏεμβάσεις στο Θέμα.ΠÏοβάλετε τις συλλογές φωτογÏαφιών σας χÏησιμοποιώντας πολλά και διαφοÏετικά, όμοÏφα θέματαΕνσωματώστε πεÏιεχόμενο από το YouTube, Vimeo, SlideShare κλπ εÏκολαΕνεÏγοποιήστε τους συντμημένους συνδέσμους WP.meΕνεÏγοποιήστε το χαÏακτηÏιστικό business cards στις φωτογÏαφίες Ï€Ïοφίλ Gravatar όσων σχολιάζουν.ΕπιτÏέψτε στους επισκέπτες σας να δείξουν την εκτίμηση τους για τις δημοσιεÏσεις σας.Εισαγωγή φόÏμας επικοινωνίας στον ιστότοπο σας.ΕπιτÏέψτε στους επισκέπτες σας να σχολιάζουν με τον λογαÏιασμό τους σε WordPress.com, Twitter, Facebook ή Google+.ΔιαχειÏιστείτε όλα τα site σας κεντÏικά από το https://wordpress.com/sites.Βελτιστοποιήστε την Ï€Ïόσβαση στον ιστότοπο σας με την επιλογή Θεμάτων ειδικά για πλοήγηση από smartphones.ΟÏγανώστε και παÏουσιάστε δημοσιεÏσεις και πεÏιεχόμενο εκτός σελίδων και άÏθÏων.Δημοσίευση άÏθÏων και πεÏιεχομένου μέσω email χÏησιμοποιώντας οποιαδήποτε συσκευή και Ï€ÏόγÏαμμα.Λάβετε ειδοποιήσεις για την δÏαστηÏιότητα του ιστότοπου σας μέσω της μπάÏας διαχείÏισης και λοιπών συσκευών (smartphones, tablets, κλπ).Ενιαία αναζήτηση της βάσης δεδομένων από τον Πίνακα Ελέγχου.Επιλέψτε ποιες μονάδες (widgets) εμφανίζονται σε συγκεκÏιμένες σελίδες του ιστότοπου σας.ΜετατÏέψτε συλλογές φωτογÏαφιών σε Ï€Ïοβολές σλάιντ.ΦοÏτώστε και ενσωματώστε βίντεο απευθείας στον ιστότοπο σας. (Απαιτεί συνδÏομή.)ΧÏησιμοποιήστε την γλώσσα LaTeX για μαθηματικοÏÏ‚ Ï„Ïπους και εξισώσεις σε άÏθÏα και δημοσιεÏσεις.Πιστοποιείστε τον ιστότοπο σας και το όνομα του ιστότοπου σας (domain) μέσω Google Webmaster Tools, Pinterest, και λοιπών υπηÏεσιών.ΔημοσιεÏστε άÏθÏα χÏησιμοποιώντας το εÏγαλείο παÏαμετÏοποίησης κειμένου ΠληÏοφοÏίες αÏθÏώματος (module)Μαθηματικές ΕξισώσειςCarouselΦόÏμα επικοινωνίαςΠÏοσαÏμοσμένα ΑÏχεία CSSΠÏοσαÏμοσμένοι ΤÏποι ΠεÏιεχομένουEnhanced DistributionΕπιπλέον Μονάδες (widgets) στις πλευÏικές στήλεςGravatar HovercardsΑυτόματη φόÏτωση πεÏιεχομένουJSON APILikesΔιαχείÏισηΠαÏαμετÏοποίηση ΚειμένουΘέμα για κινητά και tabletsΠαÏακολοÏθησηΕιδοποιήσειςOmnisearchPhotonΔημοσίευση μέσω EmailΠÏοστασίαPublicizeΣχετικές δημοσιεÏσειςΚοινοποιήσειςΣυντομεÏσεις κώδικαΕικονίδιο ΙστότοπουΠιστοποίηση ΙστότοπουΟÏθογÏαφίαΣυνδÏομέςΣτοιχισμένες Συλλογές ΦωτογÏαφιώνVaultPressVideoPressWP.me ShortlinksΕμφάνιση WidgetΕμφάνισηΚεντÏική ΔιαχείÏισηΔημιουÏγοίJumpstartΓια κινητάΛοιπάΦωτογÏαφίες και ΒίντεοΠÏοτεινόμενοΚοινωνικόΣÏνταξηΔεν ήταν δυνατή η ενεÏγοποίηση του module εξαιτίας σοβαÏÎ¿Ï ÏƒÏ†Î¬Î»Î¼Î±Ï„Î¿Ï‚. Πιθανή διένεξη με άλλο εγκατεστημένο Ï€Ïόσθετο.Δεν ήταν δυνατή η εÏÏεση του αÏθÏώματος (module): `%s`.Έγινε επαναφοÏά στις αÏχικές Ïυθμίσεις σε όλα τα modules.Μηνιαία αÏχεία: %sΜηνιαία αÏχείαΠεÏισσότεÏαΠεÏισσότεÏες πληÏοφοÏίεςΕπιπλέον πληÏοφοÏίες σχετικά με την αποστολή email, συνημμένων αÏχείων και άλλων επιλογών. ΠεÏισσότεÏες πληÏοφοÏίες για την χÏήση Likes.ΠεÏισσότεÏες πληÏοφοÏίες για την χÏήση της υπηÏεσίας Publicize.ΠεÏισσότεÏες πληÏοφοÏίες για τις Σχετικές ΔημοσιεÏσεις.Μετακίνηση τμήματος Î¼ÎµÎ½Î¿Ï Ï€Ïος τα κάτωΜετακίνηση τμήματος Î¼ÎµÎ½Î¿Ï Ï€Ïος τα πάνωΤο Jetpack ΜουΤα tweets μουΌνομαΡυθμίσεις δικτÏου / σÏνδεσηςÎέο κόμικÎέο στοιχείο μενοÏÎέο Î¼ÎµÎ½Î¿Ï ÎµÏ„Î¹ÎºÎ­Ï„Î±Ï‚ÎŒÎ½Î¿Î¼Î± νέου τμήματος Î¼ÎµÎ½Î¿Ï Îέα δουλειάΌνομα νέας ετικέτας σχεδίουÎέο όνομα Ï„Ïπου δουλειάςÎέα γÏαμμήÎέο σχόλιοÎέο πεδίοÎέο: ΚεντÏική ΔιαχείÏιση ΙστοσελίδωνÎεότεÏα »ÎεότεÏα σχόλια →ÎεότεÏοΕπόμενη »Î•πόμενη »ÎŒÏ‡Î¹Î§Ï‰Ïίς κλειδί APIΧωÏίς πεÏίγÏαμμαΔεν βÏέθηκαν κόμικΔεν βÏέθηκαν κόμικ στα διαγÏαμμέναΧωÏίς υποσέλιδοΧωÏίς κεφαλίδαΧωÏίς ετικέτεςΔεν βÏέθηκαν ετικέτεςΔεν βÏέθηκαν στοιχεία μενοÏΔεν βÏέθηκαν στοιχεία Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î± διαγÏαμέναΔεν βÏέθηκαν αÏθÏώματα (modules)Δεν βÏέθηκαν δουλειέςΔεν βÏέθηκαν δουλειές στα διαγεγÏαμμένα ΧωÏίς πλευÏική μπάÏα κÏλισηςΔεν βÏέθηκαν σχόλιαΔεν βÏέθηκαν σχόλια στα διαγεγÏαμμέναΔεν βÏέθηκε αναγνωÏιστικό blog_id στην σÏνδεση σας. ΑπενεÏγοποιήστε το Jetpack από το WordPress.com και ενεÏγοποιήστε το ξανά. Δοκιμάστε να ενεÏγοποιήστε την υπηÏεσία Publicize αμέσως μετά.Η εντολή δεν βÏέθηκε.Κενό σχόλιο.Δεν βÏέθηκαν δεδομένα για το αναγνωÏιστικό του VideoPress: %s.Δεν βÏέθηκαν σχόλια ή παÏατηÏήσειςΔεν έχει επιλεγεί λογότυποΔεν βÏέθηκαν Ï€Ïόσθετα.Καμία απάντηση από τους διακομιστές JetpackΚαμία Ï€ÏότασηΔεν βÏέθηκαν ετικέτες.Δεν βÏέθηκαν Θέματα.Δεν υπάÏχουν επεÏχόμενα συμβάνταΔεν χÏειάζεται ενημέÏωσηΔεν βÏέθηκαν στοιχεία χÏήστη στην σÏνδεση σας. Βεβαιωθείτε ότι ο λογαÏιασμός σας είναι συνδεδεμένος με το Jetpack. ΜποÏείτε να συνδέσετε τον λογαÏιασμό σας από το Î¼ÎµÎ½Î¿Ï Jetpack στο διαχειÏιστικό πεÏιβάλλον.Δεν υπάÏχουν λάθη.Η υπηÏεσία παÏακολοÏθησης της κατάστασης του ιστότοπου σας, Jetpack Monitor, Ï€Ïαγματοποιεί ελέγχους κάθε 5 λεπτά. Στην πεÏίπτωση που διαπιστωθεί ότι ο ιστότοπος σας βÏίσκεται εκτός λειτουÏγίας ή είναι μη διαθέσιμος Ï€Ïαγματοποιείται αυτόματη αποστολή email Ï€Ïος ενημέÏωση σας.Αποτυχία πιστοποίησης Nonce.ΚανέναΔυστυχώς όχι. ΜποÏείτε όμως να επιλέξετε την διεÏθυνση αποστολής ή το θέμα. Ας δεν κάνετε αλλαγές, τα σχόλια και οι παÏατηÏήσεις θα σταλοÏν στον συντάκτη του άÏθÏου ή της σελίδας με θέμα το όνομα του άÏθÏου ή της σελίδας.ΧωÏίς σÏνδεσηΧωÏίς σÏνδεσηΣημείωση: Οι αλλαγές σε CSS θα χαθοÏν με την αλλαγή Θέματος.Σημείωση: Οι στοιχισμένες φωτογÏαφίες απαιτοÏν επιπλέον επεξεÏγασία. Για αυτό θα Ï€Ïοβάλλονται χÏησιμοποιώντας το δίκτυο υψηλής ταχÏτητας του WordPress.com ακόμα και αν η λειτουÏγία Photon είναι απενεÏγοποιημένη.Δε βÏέθηκε τίποταΕιδοποιήσειςΕπιθυμώ να λαμβάνω ειδοποιήσεις για νέα σχόλια μέσω email.Επιθυμώ να λαμβάνω ειδοποιήσεις για νέα άÏθÏα μέσω email.ΧÏήστηςΣυντάκτηςΡόλοςχÏονολογικόΕτικέταταξινομία, ΜποÏείτε να ενημεÏώσετε plugins, να Ïυθμίσετε την αυτόματη ενημέÏωση τους και να ενεÏγοποιήσετε ή να απενεÏγοποιήσετε plugins ανά site ή μαζικά, απευθείας από το wordpress.com/plugins.ΑÏιθμός άÏθÏων Ï€Ïος Ï€Ïοβολή:OKΕπίσημα κουμπιάΤο πεÏιθώÏιο Ï€Ïέπει να είναι μεγαλÏτεÏο ή ίσο με 0.ΔιεÏθυνση URL αÏχείου OggΑÏχείο container Ogg με Theora βίντεο και ήχο Vorbis. Η αναπαÏαγωγή του βίντεο από Ï€ÏογÏάμματα πεÏιήγησης όπως Internet Explorer και Safari είναι πιθανό να αποτυχεί εξαιτίας της μη υποστήÏιξης ανοιχτών Ï€ÏοτÏπων.ΠαλιότεÏα %sΠαλαιότεÏες δημοσιεÏσειςOmnisearchΤο Omnisearch συνεÏγάζεται με Ï€Ïόσθετα Ï„Ïίτων και επιτÏέπει την Ï€Ïοβολή αποτελεσμάτων από αυτά.ενεÏγοποιημένα για όλα τα σχόλιαενεÏγοποιημένα για όλες τις δημοσιεÏσειςΣε αυτή την σελίδα βλέπετε όλες τις διαθέσιμες λειτουÏγίες του Jetpack, πληÏοφοÏίες σχετικά με αυτές και δυνατότητα ενεÏγοποίησης ή απενεÏγοποίησης αυτών.Μόλις ενεÏγοποιηθεί, η επιλογή "ΣÏνδεση με λογαÏιασμό WordPress.com" θα γίνει διαθέσιμη στους επισκέπτες σας.Îέο Jetpack Module%s Îέα Jetpack ModuleΜία από τις διευθÏνσεις IP δεν είναι έγκυÏη.ΠÏοβολή βίντεο με ελεÏθεÏη μοÏφή αÏχείουΜποÏείτε να φοÏτώσετε μόνο φωτογÏαφίες.Οι αλλαγές στην καθολική whitelist γίνονται μόνο από super adminsΜόνο ο χÏήστης που ξεκίνησε την σÏνδεση του Jetpack σε αυτό τον ιστότοπο μποÏεί να επιλέξει το %s. Δυστυχώς ο χÏήστης αυτός δεν υπάÏχει πια.Μόνο τα βίντεο από τα επιλεγμένα ιστολόγια θα είναι διαθέσιμα στον κατάλογο σας.χωÏίς υποσÏνολοενεÏγόΆνοιγμα συνδέσμου σε νέο παÏάθυÏο/καÏτέλαΆνοιγμα συνδέσμων σε νέο παÏάθυÏο/καÏτέλαΑνοίγει σε νέο παÏάθυÏο.ΡÏθμισηΗ επιλογή δεν βÏέθηκε ή είναι κενή. Επιλέξτε "λίστα" για εμφάνιση όλων των ονομάτωνΠÏοεÏαιτικό κείμενο για τους επισκέπτες:ΡυθμίσειςΠοÏτοκαλίΣειÏάΟÏγανώστε και παÏουσιάστε πεÏιεχόμενο, εκτός των σελίδων και άÏθÏων του ιστότοπου σας.Σελίδα %sΣελίδες:Γονικό τμήμα μενοÏΓονικό τμήμα μενοÏ:ΤÏπος γονέα δουλειάςΤÏπος γονέα δουλειάς:Παθητική φωνήΔιαδÏομήΜόνιμος σÏνδεσμος Ï€Ïος %sΠÏοσωπικοί σÏνδεσμοιΤηλέφωνο:ΕκφÏάσεις Ï€Ïος αποφυγήPingback:ΡοζPinterestΌνομα χÏήστη Pinterest:ΥπηÏεσίες και τιμέςΑπαιτείται η χÏήση JavaScript για την αναπαÏαγωγή του %s.ΠÏέπει να γÏάψετε κάτι στο σχόλιο σας.ΠεÏιγÏάψτε το Ï€Ïόβλημα που αντιμετωπίζετε.ΕνεÏγοποιήστε την λειτουÏγία JavaScript για να χÏησιμοποιήσετε το VideoPress.ΠαÏακαλώ εισάγετε τη διεÏθυνση IP που θέλετε να Ï€Ïοσθέσετε στη λευκή λίστα.Η λειτουÏγία του VideoPress απαιτεί την χÏήση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÏ„Î¿ WordPress.com με ενεÏγή συνδÏομή για το VideoPress.Οι υπηÏεσίες που έχετε επιλέξει δεν λειτουÏγοÏν επειδή ο ιστότοπος σας είναι Ï€Ïοσωπικός.Εισάγετε έγκυÏη διεÏθυνση email.Εισάγετε έγκυÏη διεÏθυνση email για να σχολιάσετε.Εισάγετε το email σας.Εισάγετε το όνομα σας για να σχολιάσετε.Εισάγετε το όνομα σας.Επιλέξτε βίντεο Ï€Ïος φόÏτωση.Απαντήστε στην εÏώτηση για να βεβαιωθοÏμε ότι δεν είστε Ïομπότ. Μόλις απαντήσετε σωστά θα Ï€Ïέπει να συνδεθείτε ξανά.ΠÏοσδιοÏίστε τον χÏήστη με το ID, όνομα χÏήστη ή email.ΠÏοσδιοÏίστε ένα έγκυÏο άÏθÏωμα.ΠαÏακαλώ Ï€ÏοσδιοÏίστε έναν έγκυÏο χÏήστη.ΠαÏακαλώ Ï€ÏοσδιοÏίστε αν θέλετε να αποσυνδέσετε ιστολόγιο ή χÏήστη.Επιλέξτε αν θέλετε να επαναφέÏετε στις αÏχικές Ïυθμίσεις τις επιλογές ή τα modulesΦόÏτωση αÏχείου.Επιβεβαιώστε τα γεννέθλια σας.Το Ï€Ïόσθετεο ενεÏγοποιήθηκε.Το plugin μποÏεί να ενεÏγοποιηθεί μόνο μέσω δικτÏουΤο Ï€Ïόσθετο απενεÏγοποιήθηκεΠÏόσθεταPocketΔημοφιλήΔημοφιλείς ετικέτεςΔημοφιλείς ετικέτες σχεδίωνΠοÏτφόλιοΔουλειέςΔουλειέςΠÏοβολή μέχÏι και %1$s δουλειών ανά σελίδαΔημοσίευση ΣχολίουΔημοσιεÏθηκε από %s.Δημοσίευση μέσω emailΗ δημοσίευση μέσω email επιτÏέπει την δημιουÏγία και δημοσίευση άÏθÏων με την αποστολή email. Για παÏάδειγμα από το κινητό σας τηλέφωνο.Το άÏθÏο μετατÏάπηκε.%s άÏθÏα μετατÏάπηκανΠλοήγηση δημοσιεÏσεωνΕίδος πεÏιεχομένου:Δεν ήταν δυνατή η αποστολή της δημοσίευσης - ελέγξτε την διεÏθυνση email!ΔημοσιεÏθηκε απόΔημοσιεÏθηκε από %sΑναÏτήθηκε στις %sΆÏθÏαΔημοσιεÏσεις & ΣχόλιαΆÏθÏα και ΣελίδεςΗ δημιουÏγία καταλόγου δημοσιεÏσεων ολοκληÏώθηκεΆÏθÏαΠÏοεπεξεÏγασία:Press ThisΠÏοεπισκόπησηΠÏοεπισκόπηση FaviconΠÏοεπισκόπηση ΕικονιδίουΠÏοεπισκόπηση:ΠÏοεπισκόπηση: Ï€Ïέπει να αποθηκεÏσετε τις αλλαγές αλλιώς θα χαθοÏνΤιμήΚÏÏιο μενοÏΚÏÏιος ΧÏήστης ιστότοπουΕκτÏπωσηΑπόÏÏητοΠολιτική ΑποÏÏήτουΕπεξεÏγασία...ΔουλειάΕτικέτα δουλειάςΕτικέτες δουλειάςΤÏπος δουλειάςΤÏποι δουλειάςΤο Ï€ÏόχειÏο σχέδιο της δουλειάς σας ενημεÏώθηκε. ΠÏοεπισκόπησηΗ δουλειά δημοσιεÏτηκε. Δείτε τηΗ δουλειά ανακτήθηκε από παλαιότεÏη έκδοση %sΗ δουλειά αποθηκεÏτηκεΗ δουλειά Ï€ÏογÏαμματίστηκε για δημοσίευση στις: %1$s. ΠÏοεπισκόπησηΗ δουλειά δημιουÏγήθηκε. ΠÏοεπισκόπησηΗ δουλειά ενημεÏώθηκε.Η δουλειά ενημεÏώθηκε. ΠÏοβολήΔουλειέςΈλεγχος οÏθογÏαφίας και διόÏθωση κειμένουΈλεγχος οÏθÏογÏαφίας και διόÏθωσηΠÏοστάτευση λευκής λίσταςΜε την υποστήÏιξη του %sProudly powered by WordPressΔείξτε την ανθÏώπινη πλευÏά σας:Publicize.Η υπηÏεσία Publicize σας επιτÏέπει να συνδέσετε το ιστολόγιο σας με δημοφιλή δίκτυα κοινωνικής δικτÏωσης και να κοινοποιείτε δημοσιεÏσεις. → ΜποÏείτε να δημιουÏγήσετε σÏνδεση για τον λογαÏιασμό σας μόνο ή όλους τους χÏήστες.Η υπηÏεσία Publicize επιτÏέπει την κοινοποίηση των δημοσιεÏσεων στο Facebook, Twitter, Tumblr, Yahoo! και Linkedin.Δημοσίευση στο %s:Publicize:ΔημοσίευσηδημοσιευμένοΟ δημιουÏγός του βίντεο απαγοÏεÏει την αναπαÏαγωγή βίντεο που έχουν ενσωματωθεί σε άÏθÏα.ΜωβΕνεÏγοποίηση γÏαφήματος στην μπάÏα διαχείÏισης με στατιστικά των τελευταίων 48 ωÏών.Τοποθετήστε τον δείκτη του Ï€Î¿Î½Ï„Î¹ÎºÎ¿Ï Ï€Î¬Î½Ï‰ στην Ï€Ïοσωπική σας φωτογÏαφία Gravatar για να δείτε το Ï€Ïοφίλ σας.ΕΠΑÎΑΦΟΡΑ ΟΛΩΠ(για δοκιμές) - επαναφέÏει και τα modulesΣÏνδεσμοι RSSΚουμπίΤυχαία ΣειÏά:ΒαθμολογίαΛήψη ειδοποιήσεων για την κατάσταση του ιστότοπου μέσω email.ΠÏόσφατα άÏθÏαΚόκκινοRedditΠεÏιττές φÏάσειςΑνανέωση κατάστασηςΑνανέωση σÏνδεση με %sΕπαναδημιουÏγία διεÏθυνσηςΕγγεγÏαμένοι χÏήστεςΕπαναδημιουÏγία καταλόγου δημοσιεÏσεωνΣχετικάΣχετικές δημοσιεÏσειςΣχετικές δημοσιεÏσειςΑφαίÏεση εικονιδίουΔιαγÏαφή υπηÏεσίαςΑφαίÏεση λογότυπουΕπαναλαμβανόμενη λέξηΑντικατάσταση του αÏχείου CSS στο Θέμα (Για Ï€ÏοχωÏημένους)Αντικατάσταση επιλογής με:ΑντικατάστασηΑπάντησηΕμφάνιση αναφοÏάςΥποχÏεωτική χÏήση επαλήθευσης ÎºÏ‰Î´Î¹ÎºÎ¿Ï ÏƒÎµ δÏο βήματαΑπαιτείται;ΕπαναφοÏά Ρυθμίσεων Jetpack... ΕπαναφοÏά Ï€Ïοεπιλεγμένων modules... ΕπαναφοÏά Ïυθμίσεων Jetpack στο wp_options... ΕπαναφοÏάΕπαναφοÏά από τα διαγÏαμμέναΑποτελέσματα:ΕπιστÏοφή στον αποστολέα. Λάβατε λάθος email για την ενεÏγοποίηση του Jetpack. ΑπενεÏγοποιήστε το Jetpack και ενεÏγοποιήστε το ξανά.ΔεξιάΑποθήκευσηΑποθήκευση & αγοÏάΑποθήκευση αλλαγώνΑποθήκευση νέας σειÏάςΑποθήκευση stylesheetΑποθήκευση και επιστÏοφή στην δημιουÏγία φόÏμαςΑποθήκευση ÏυθμίσεωνΑποθήκευση πεδίουΑποθηκεÏτηκε με επιτυχίαΠÏογÏαμματισμένοΑυτόματη φόÏτωση πεÏιεχομένουΕπιστÏοφή στην κοÏυφήΑναζήτησηΑναζήτηση κόμικΑναζήτηση στα σχόλιαΑναζήτηση παντοÏΑναζήτηση σχολίων και παÏατηÏήσεωνΑναζήτηση Εικόνων και ΒίντεοΑναζήτηση ετικέταςΑναζήτηση στοιχείων μενοÏΑναζήτηση τμημάτων μενοÏΑναζήτηση αÏθÏωμάτων...Αναζητηση Ï€ÏοσθετωνΑναζήτηση ετικετών σχεδίουΑναζήτηση Ï„Ïπων δουλειάςΑναζήτηση δουλειάςΑποτελέσματα αναζήτησης για : %sΑναζήτηση σχόλιων και απόψεωνΑναζήτηση παντοÏ! Î’Ïείτε τα πάντα ανάμεσα σε άÏθÏα, σελίδες, σχόλια, εικόνες, φωτογÏαφίες, βίντεο, ήχους και Ï€Ïόσθετα.Αποτελέσματα αναζήτησηςΔείτε τα άλλα %s χαÏακτηÏιστικά του JetpackΕπιλέξτε χÏήστη ή την επιλογή "Ï€ÏοσαÏμογή" για νέα διεÏθυνση email.Επιλογή σχολίων και παÏατηÏήσεων για αποθήκευσηΕπιλέξτε ποιοι Ïόλοι χÏηστών έχουν Ï€Ïόσβαση στα στατιστικά.Semantic Personal Publishing PlatformΑποστολή emailΑποστολή σε διεÏθυνση emailΣτάλθηκε από πιστοποιημένο χÏήστη %s.Στάλθηκε από μη πιστοποιημένο επισκέπτη.ΧωÏίστε πολλαπλές ετικέτες με κόμμα.Όνομα υπηÏεσίας%1$s: %2$sΟι υπηÏεσίες που θα σÏÏετε στην πεÏιοχή αυτή θα εμφανιστοÏν ξεχωÏιστά.Οι υπηÏεσίες που θα σÏÏετε στην πεÏιοχή αυτή θα παÏαμείνουν κÏυφές μέσα στο κεντÏικό κουμπί κοινοποίησης.ServingsΕπιλογή ως λογότυποΡÏθμιση του κÏÏιου ιδιοκτήτη λογαÏιασμοÏΡυθμίσειςΟι Ïυθμίσεις σας αποθηκεÏθηκανΜοιÏαστείτε τοMοιÏαστείτε στο FacebookΜοιÏαστείτε στο TumblrΚοινοποιήστε:Κοινοποιήστε τις δημοσιεÏσεις σας στο Twitter, Facebook και άλλες υπηÏεσίες. ΜποÏείτε να Ïυθμίσετε την εμφάνιση ως εικονίδιο, όνομα υπηÏεσίας ή και τα δÏο μαζί. Κάποιες από τις υπηÏεσίες κοινοποίησης Ï€ÏοσφέÏουν επιπλέον δυνατότητες παÏαμέτÏοποίησης. Για παÏάδειγμα το "έξυπνο κουμπί" του Twitter εμφανίζει πόσες φοÏές έχει κοινοποιηθεί η δημοσίευση.ΚοινόχÏηστεςΔιαμοιÏασμένη δημοσίευσηΚοινοποίησηΚουμπιά κοινοποίησηςΡυθμίσεις κοινοποιήσεωνΔιευθυνση κοινοποίησης URLΗ κοινοποίηση πεÏιεχομένου είναι ανενεÏγή. ΠÏοσθέστε υπηÏεσίες για να την ενεÏγοποιήσετε.Τίτλος κοινοποίησηςΡάφι:Συντόμευση κώδικαΣυντομεÏσεις κώδικα Ï€Ïος ενσωμάτωσηΟι συντομεÏσεις κώδικα επιτÏέπουν την γÏήγοÏη και ασφαλή ενσωμάτωση πεÏιεχομένου στις δημοσιεÏσεις σας. ΕÏκολα και απλά μποÏείτε να ενσωματώσετε βίντεο από το YouTube, φωτογÏαφίες από το Flickr κλπ.ΠÏοβολήΠÏοβολή συνδέσμων λογαÏιασμοÏΕμφάνιση ΦωτογÏαφίας ΕξωφÏλλουΠÏοβολή αποσπάσματος:ΠÏοβολή Ï€ÏοσώπωνΠÏοβολή επισημασμένης φωτογÏαφίας:ΠÏοβολή ΆÏθÏων Σελίδας.ΠÏοβολή Ï€Ïοσωπικών συνδέσμωνΠÏοβολή Ροής ΠεÏιεχομένουΧÏησιμοποιήστε την κεφαλίδα "Σχετικά θέματα" για να διαχωÏίσετε τα σχετικά θέματα από τις δημοσιεÏσεις σαςΠÏοβολή της επιλογής 'παÏακολοÏθηση ιστολόγιου' στην φόÏμα σχολιασμοÏΠÏοβολή της επιλογής 'παÏακολοÏθηση σχόλιων' στην φόÏμα σχολιασμοÏΠÏοβολή διαφήμισης για τις εφαÏμογές κινητών WordPress στο υποσέλιδο του Θέματος για κινητά.ΧÏήση κουμπιών σεΧÏήση του εφέ χιονόπτωσης στο ιστολόγιο μου μέχÏι τις 4 ΙανουαÏίου.Εμφάνιση πλήÏους δημοσίευσης στην κεντÏική σελίδα και στις σελίδες αÏχείουΠÏοβολή likes.ΠÏοβολή χάÏτηΠÏοβολή χάÏτη με τοποθεσίας φωτογÏαφιών στο καÏουζέλ, όταν είναι διαθέσιμος.ΠεÏισσότεÏαΠÏοβολή πληÏοφοÏιών φωτογÏαφίας (Exif) στο καÏουζέλ, όταν είναι διαθέσιμες.ΠÏοβολή φωτογÏαφιών Ï€Ïοφίλ στο Ï€Ïόσθετο.ΠÏοβολή σχετικών θεμάτων στις δημοσιεÏσειςΠÏοβολή κουμπιών κοινοποίησης.ΧÏήση ÎºÎ¿Ï…Î¼Ï€Î¹Î¿Ï Reblog στις δημοσιεÏσειςΠÏοβολή δημοφιλέστεÏων άÏθÏωνΠÏοβολή δημοφιλέστεÏων λέξεων αναζήτησηςΠÏοβολή αÏÎ¹Î¸Î¼Î¿Ï ÏƒÏ…Î½Î´Ïομητών; (%s συνδÏομητής)ΠÏοβολή αÏÎ¹Î¸Î¼Î¿Ï ÏƒÏ…Î½Î´Ïομητών; (%s συνδÏομητές)ΠÏοβολή:ήΠÏοβολή των δημοφιλέστεÏων άÏθÏων, σελίδων.ΤαχÏτητα κλείστÏουΑσημίΠαÏόμοια θέματαΕνιαία ΣÏνδεσηΕικονίδιο ιστότοπουΦόÏτωση εικονιδίου ιστότοπουΤο εικονιδίου ιστότοπου δημιουÏγεί αυτόματα και το favicon.Το Εικονίδιο Ιστότοπου επιτÏέπει την δημιουÏγία εικονιδίου για τον ιστότοπο σας. Το εικονίδιο θα χÏησιμοποιηθεί ως αναγνωÏιστικό του ιστότοπου σας (favicon) αλλά και ως εικονίδιο σε κινητά τηλέφωνα και τα Windows 8. Λογότυπο ΙστότοπουΌνομα ιστότοπουΣτατιστικάΌνομα ιστότοπου, πεÏιγÏαφή και λογότυποΌνομα ΧÏήστη ΙστότοπουΌνομα ΧÏήστη Ιστότοπου (ΚÏÏιος)ΙστότοποιΠαÏάληψηΜετάβαση σε κÏÏιο πεÏιεχόμενοΣλάιντΜικÏÏŒSmileySmiley faceΑπόσπασμαΧιόνιSocialΕικονίδια social mediaΟÏισμένα από τα χαÏακτηÏιστικά του Jetpack χÏησιμοποιοÏν τους διακομιστές του WordPress.com. Για να λειτουÏγήσουν χÏειάζεται να αντιγÏάψουν τις δημόσιες δημοσιεÏσεις στους διακομιστές αυτοÏÏ‚. Αν εντοπίσετε Ï€Ïοβλήματα σε συγκεκÏιμένες δημοσιεÏσεις ζητήστε την επαναφόÏτωση του καταλόγου των δημοσιεÏσεων σας.Είναι γνωστό ότι οÏισμένα Θέματα και ΠÏόσθετα δεν λειτουÏγοÏν σωστά με το Jetpack. Δείτε την λίστα. Î’Ïείτε πληÏοφοÏίες και λÏσεις στην σελίδα υποστήÏιξης του Jetpack ή στο φόÏουμ υποστήÏιξη του Jetpack.κάποιος κάνει like σε μία από τις δημοσιεÏσεις μουΣφάλμα ή κακόβουλη Ï€Ïοσπάθεια. Κλείστε το παÏάθυÏο.Σφάλμα κατά την σÏνδεση του Jetpack!Κάτι δεν πήγε καλά!Σφάλμα με την συντόμευση κώδικα Wufoo Αν αντιγÏάψατε τον κώδικα από το %sWufoo Code Manager%s, θα Ï€Ïέπει να λειτουÏγεί.Σφάλμα. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΠαÏουσιάστηκε σφάλμα κατά την δημοσίευση του σχόλιου σας. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την πιστοποίηση του αιτήματος σας.ΛυποÏμαστε αλλά δεν βÏέθηκαν αÏθÏώματα για την αναζήτηση "%s"Σφάλμα. Δεν είναι δυνατή η ενημέÏωση του πίνακα.Δεν υπάÏχουν δεδομένα για την δημιουÏγία αναφοÏάς.Το ιστολόγιο σας δεν μποÏεί να κοινοποιεί δημοσιεÏσεις μέσω email.Δυστυχώς το Ï€ÏόγÏαμμα πεÏιήγησης δεν υποστηÏίζεται. Αναβαθμιστείτε στο browsehappy.com.Σφάλμα. Δεν ήταν δυνατός ο εντοπισμός της διεÏθυνση και η εμφάνιση του χάÏτη.Ταξινόμηση κατά:ΑνεπιθÏμηταΑνεπιθÏμητο (%s)ΑνεπιθÏμητα (%s)ΟÏθογÏαφίαΟÏθογÏαφία και γÏαμματικήΤετÏάγωναΣτατική σελίδα:ΣτατιστικάΆγνωστη κατάσταση.Στυλ:Το stylesheet αποθηκεÏτηκεΠαÏάκαμψη υπο-siteΘέμαΥποβολήΑποστολή »Î¤Î¿ σχόλιο σας αποστέλεται%sΕγγÏαφήΚουμπί ΕγγÏαφής:ΕγγÏαφή:ΠαÏακολοÏθηση του %sΕγγÏαφή στο Ιστολόγιο μέσω EmailΣτιγμιότυπο ΣυνδÏομώνΚείμενο ΕπιτυχοÏÏ‚ ΜηνÏματος:Έχετε λάβει email για να επιβεβαιώσετε την συνδÏομή σας. Εντοπίστε το μήνυμα και κάντε κλικ για ενεÏγοποίηση.ΣυγχαÏητήÏια. ΕνεÏγοποιήσατε το Jump Start στο site σας.ΥποστήÏιξηΌνομα ετικέταςΜε ετικέτα %sΕτικέτεςΛάβετε μέÏος στην έÏευναΣυμμετοχή σε έÏευναΧÏησιμοποιήστε το WordPress παντοÏΛάβετε μέÏος στην έÏευνα. Πείτε μας την γνώμη σας.ΠÏοσωÏινή Μεγάλη ΦωτογÏαφία ΙστολόγιουΠÏοσωÏινή ΦωτογÏαφία Ιστολόγιου με αλλαγμένο μέγεθοςΌÏοιΌÏοι ΧÏήσηςΔοκιμή συμβατότητας ιστοτόπου και Jetpack.ΣχόλιοΠεÏιεχόμενο σελίδας απόψεωνΠÏοβεβλημένη φωτογÏαφίας σελίδας απόψεωνΤίτλος σελίδας απόψεωνΤο Ï€ÏόχειÏο σχέδιο του σχόλιου σας ενημεÏώθηκε. ΠÏοεπισκόπησηΠÏοβολή μέχÏι και %1$s απόψεων χÏηστών ανά σελίδαΤο σχόλιο σας δημοσιεÏθηκε. Δείτε τοΕπιτυχής ανάκληση από την παλαιότεÏη έκδοση %sΤο σχόλιο σας αποθηκεÏτηκε.Το σχόλιο σας θα δημοσιευθεί στις: %1$s. ΠÏοεπισκόπησηΤο σχόλιο σας δημιουÏγήθηκε. ΠÏοεπισκόπησηΟι αλλαγές αποθηκεÏθηκαν.Οι αλλαγές αποθηκεÏθηκαν. ΠÏοβολήΣχόλιαΈλεγχος συμβατότης του ιστότοπου σας με το Jetpack...ΚείμενοΣÏνδεσμοι Κειμένου & ΕικόναςΣÏνδεσμος ΚειμένουΛίστα ΚειμένουΚείμενο μόνοΠεÏιοχή κειμένουΗ σÏνδεση έχει διαγÏαφεί.Η υπηÏεσία οÏθογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Ï‡Î¿Ï… και διόÏθωσης After the Deadline σας βοηθά να εντοπίσετε λάθη και να βελτιώσετε τις δημοσιεÏσεις σας.Client ID/WP.com Blog ID Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπουΤο εÏγαλείο επεξεÏγασίας CSS Ï€ÏοσφέÏει την δυνατότητα αλλαγών με έλεγχο του κώδικα σε Ï€Ïαγματικό χÏόνο, χÏωματική επισήμανση στοιχείων κλπ.Widget για Facebook LikesWidget ΦωτογÏαφίαςΤο Jetpack είναι ήδη ενεÏγοποιημένοΤο Jetpack είναι ήδη απενεÏγοποιημένο.Η έκδοση του Jetpack είναι %sΤο ΠÏόσθετο είναι ήδη ενεÏγοποιημένο.Το ΠÏόσθετο είναι ήδη απενεÏγοποιημένο.Widget Ïοών RSSTwitter WidgetΌνομα χÏήστη Twitter του ιδιοκτήτη Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ονόματος domain. Δεν ήταν δυνατή η επικοινωνία με τους διακομιστές του VideoPress. Ελέγξτε τις Ïυθμίσεις του VideoPress, αναβαθμίστε το Ï€Ïόσθετο ή Ï€ÏοχωÏήστε σε επανεγκατάσταση. ΑναγνωÏιστικό χÏήστη από το WP.com για τον συνδεδεμένο χÏήστηEmail χÏήστη από το WP.com για τον συνδεδεμένο χÏήστηΌνομα χÏήστη από το WP.com για τον συνδεδεμένο χÏήστηΤο αναγνωÏιστικό WordPress.com blog_id είναι %dΗ διαδικασία πιστοποίησης ξεπέÏασε το Ï€Ïοβλεπόμενο χÏονικό ÏŒÏιο. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Το Ï€Ïοεπιλεγμένο πλάτος για το πεÏιεχόμενο στο Θέμα %s είναι %d pixels.Η διεÏθυνση email που καταχωÏήσατε δεν είναι έγκυÏη. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Το αÏχείο που φοÏτώσατε αποτελεί μη αποδεκτό Ï„Ïπο αÏχείου. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΟλοκληÏώθηκε η αναβάθμιση των λειτουÏγιών: %l.ΟλοκληÏώθηκε η ενεÏγοποίηση των λειτουÏγιών: %l.Η εικόνα αυτή επιτÏέπει την συλλογή στατιστικών ακόμα και όταν παÏαμένει κÏυφή.Η εικόνα Ï€Ïέπει να είναι τουλάχιστονΗ φωτογÏαφία που φοÏτώσατε είναι μικÏότεÏη από %upx σε Ïψος.Η φωτογÏαφία που φοÏτώσατε είναι μικÏότεÏη από %upx σε πλάτος.JetpackJetpack %sΑÏιθμός ιστότοπων του συνδεδεμένου χÏήστη από το WP.comΗ παλαιότεÏη έκδοση απενεÏγοποιήθηκε και μποÏεί να αφαιÏεθεί από τον ιστότοπο.Οι παλαιότεÏες έκδοσεις απενεÏγοποιήθηκαν και μποÏοÏν να αφαιÏεθοÏν από τον ιστότοπο.Αυτό το Ï€Ïόσθετο είναι ήδη εγκατεστημένοΔεν είναι δυνατή η Ï€Ïοεπισκόπηση του βίντεο κατά την διάÏκεια της επεξεÏγασίας.Η κÏÏια σÏνδεση ανήκει στον λογαÏιασμό WordPress.com του/της %s.Η υπηÏεσία οÏθÏογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Î¿Ï… και διόÏθωσης εντόπισε λάθη. Πατήστε ΟΚ για δημοσίευση ή ΆκυÏο για να δείτε τις αλλαγές.Η υπηÏεσία οÏθÏογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Î¿Ï… και διόÏθωσης εντόπισε λάθη. Πατήστε ΟΚ για ενημέÏωση του κειμένου ή ΆκυÏο για να δείτε τις αλλαγές.Ο έλεγχος οÏθογÏαφίας και διόÏθωσης υποστηÏίζει Αγγλικά, Γαλλικά, ΓεÏμανικά και Ισπανικά. Η γλώσσα του διαχειÏÎ¹ÏƒÏ„Î¹ÎºÎ¿Ï Ï€ÎµÏιβάλλοντος χÏησιμοποιείται ως Ï€Ïοεπιλεγμένη γλώσσα για τον οÏθογÏαφικό έλεγχο.Εσφαλμένη παÏάμετÏος απάντησηςΗ παÏάμετÏος απάντησης λέιπειΕσφαλμένη μυστική παÏάμετÏοςΗ μυστική παÏάμετÏος λέιπειΟι Ïυθμίσεις για τις ΠÏοβεβλημένες ΔημοσιεÏσεις είναι διαθέσιμες στο Î¼ÎµÎ½Î¿Ï Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· → ΠÏοσαÏμογή.Το Θέμα που επιλέξατε δεν βÏέθηκε.Τα αποτελέσματα των ελέγχων μαζί με επιπλέον πληÏοφοÏίες για την επίλυση το Ï€Ïοβλήματος θα σταλοÏν στην ομάδα υποστήÏιξης. Αν θέλετε μποÏείτε να δείτε και να ελέγξετε τις πληÏοφοÏίες.Αυτό το Θέμα είναι ήδη εγκατεστημένοΤο widget λειτουÏγεί μόνο με Facebook Pages.Το Θέμα είναι κενό.Θέμα: %1$s.ΘέματαΔεν βÏέθηκαν δημοσιεÏσεις. Θέλετε επιπλέον κίνηση στον ιστότοπο σας;ΥπάÏχει νέα έκδοση για το Θέμα που χÏησιμοποιείτε. Ίσως να υποστηÏίζει και την αυτόματη φόÏτωση πεÏιεχομένου χωÏίς κλικ. Μάθετε πεÏισσότεÏαεδώ.ΠÏόβλημα στην επικοινωνία Î¼ÎµÏ„Î±Î¾Ï Jetpack και του ιστότοπου σας!Σφάλμα κατά την επικοινωνία με την υπηÏεσία οÏθÏογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Î¿Ï… και διόÏθωσης. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΠÏόβλημα κατά την σÏνδεση στο %s . ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την σÏνδεση με %s. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΠÏόβλημα κατά την σÏνδεση με την υπηÏεσία Publicize. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την φόÏτωση της διεÏθυνσης. Ανανεώστε την σελίδα και Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την επικοινωνία με την υπηÏεσία οÏθÏογÏÎ±Ï†Î¹ÎºÎ¿Ï ÎµÎ»Î­Î³Î¿Ï… και διόÏθωσης.Σφάλμα κατά την σÏνδεση με τους διακομιστές Jetpack.ΠαÏουσιάστηκε σφάλμα κατά την απενεÏγοποίηση του plugin σαςΣφάλμα κατά την εγκατάσταση του Ï€ÏόσθετουΣφάλμα κατά την εγκατάσταση του ΘέματοςΣφάλμα κατά την ενημέÏωση του Ï€ÏόσθετουΣφάλμα κατά την ενημέÏωση του ΘέματοςΠÏοέκυψε σφάλμα κατά την εγγÏαφή στην συνδÏομή. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Σφάλμα κατά την ενεÏγοποίηση του module.Σφάλμα κατά την απενεÏγοποίηση του module.Σφάλμα κατά την μεταφοÏά δεδομένων.Είναι πιθανό ότι μεγάλος αÏιθμός επισκεπτών σας χÏησιμοποιεί κινητό για να διαβάσει τις δημοσιεÏσεις σας. Πλέον, έχετε την δυνατότητα να τους Ï€ÏοσφέÏετε μια καλÏτεÏη εμπειÏία.Οι παÏακάτω Ïυθμίσεις επηÏεάζουν όλους τους ιστότοπους σε αυτό το δίκτυο.Οι παÏακάτω Ïυθμίσεις αφοÏοÏν στα μηνÏματα email από το ιστολόγιο σας Ï€Ïος όσους ακολουθοÏν και ενημεÏώνονται μέσω email για νέες δημοσιεÏσεις σας.(απαÏαίτητο)Η σÏνδεση λειτουÏγεί κανονικάΗ ενεÏγοποίηση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… χαÏακτηÏÎ¹ÏƒÏ„Î¹ÎºÎ¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯ την αντιγÏαφή του δημόσια διαθέσιμου πεÏιεχομένου σας στους διακομιστές του WordPress.com. Αν αντιμετωπίζετε Ï€Ïοβλήματα ζητήστε την ανανέωση του καταλόγου με τα άÏθÏα σας.Η συλλογή πεÏιέχει %2$s φωτογÏαφία.Η συλλογή πεÏιέχει %2$s φωτογÏαφίες.Αυτή η λειτουÏγία μποÏεί να αλλάξει μόνο από τον χÏήστη %s που ξεκίνησε την σÏνδεση του Jetpack σε αυτό τον ιστότοπο.Αυτό το Ï€Ïόσθετο λειτουÏγεί χωÏίς multibyte. Αν είναι διαθέσιμη η λειτουÏγία χÏησιμοποιείται. Ίσως διαπιστώσετε μικÏά Ï€Ïοβλήματα με Tweets και άλλες υπηÏεσίες.Η δημοσίευση σας κοινοποιήθηκε!Αυτό το άÏθÏο Ï€ÏοστατεÏεται με κωδικό Ï€Ïόσβασης.Αυτό το άÏθÏο Ï€ÏοστατεÏεται με κωδικό Ï€Ïόσβασης. Εισάγετε τον κωδικό για να δείτε τα σχόλια.Δεν έχετε συνδέσει αυτό το Ï€Ïοφίλ με κάποιο Ï€Ïοφίλ στο WordPress.com.Η ÏÏθμιση αυτή παÏακάμπεται σε μεμονωμένα βίντεο.Το πεÏιεχόμενου Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου είναι υπεÏβολικά μεγάλο. Επικοινωνήστε με την υποστήÏιξη του Jetpack για τον συγχÏονισμό του πεÏιεχομένου.Δεν ήταν δυνατή η Ï€Ïοβολή του σλάιντ. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Το σλάιντ απαιτεί την χÏήση JavaScript.Ο χÏήστης δεν έχει δικαιώματα Ï€Ïόσβασης για %s σε αυτό το ιστολόγιο.Ο παÏών χÏήστης δεν έχει δικαιώματα διαχείÏισης Ï€Ïόσθετων στο δίκτυο.Βίντεο κατάλληλο μόνο για ενηλίκες.Η αναπαÏαγωγή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… βίντεο απαιτεί την χÏήση Adobe FlashΘα απενεÏγοποιήσετε το Jetpack. Είστε σίγουÏος/η ότι θέλετε να απενεÏγοποιήσετε το Jetpack;Θα απενεÏγοποιήσετε όλα τα αÏθÏώματα του Jetpack. Είστε σίγουÏος/η ότι θέλετε να αποσυνδεθείτε;Δεν θα μποÏείτε να χÏησιμοποιήσετε δυνατότητες όπως Publicize, Ειδοποιήσεις και ΔημοσιεÏσεις μέσω email. Είστε σίγουÏος/η ότι θέλετε να αποσυνδεθείτε;ΜικÏογÏαφίαΠÏοβολή μικÏογÏαφιώνΣτοιχισμένες ΣτήλεςΣτοιχισμένες συλλογές φωτογÏαφιώνΜωσαϊκόΕικόνεςÎÏαΧÏόνος:ΧÏονολόγιο ΘεμάτωνΤίτλοςΤίτλος:Για να Ï€Ïοσθέσετε νέο εικονίδιο στον ιστότοπο σας επισκευθείτε τις Ρυθμίσεις → Γενικά → Εικονίδιο ιστότοπου και φοÏτώστε το νέο εικονίδιο.Για να αλλάξετε τις Ïυθμίσεις κοινοποίησης κάντε κλικ στο Ρυθμίσεις → Κοινοποίηση.Για να ελέγξετε που και πότε εμφανίζονται τα widgets, κάντε κλικ στο κουμπί Εμφάνιση και επιλέξτε μια από τις διαθέσιμες επιλογές.Για να παÏαμετÏοποιήσετε τα μηνÏματα email που αποστέλλονται στους επισκέπτες σας, δείτε τις Ρυθμίσεις ανάγνωσης.Για να ενεÏγοποιήσετε δικό σας Ï„Ïπο πεÏιεχομένου μεταφεÏθείτε στο Î¼ÎµÎ½Î¿Ï Î¡Ï…Î¸Î¼Î¯ÏƒÎµÎ¹Ï‚ → ΣÏνταξη → Ειδικός ΤÏπος ΠεÏιεχομένου και ενεÏγοποιήστε την επιλογή "Portfolio Projects†ή “Testimonialsâ€. ΜποÏείτε πλέον να Ï€Ïοσθέσετε projects και testimonials στο νέο Î¼ÎµÎ½Î¿Ï "Portfolio†ή “Testimonials†στην πλευÏική στήλη.Στο άπειÏο και ξανά πίσωΓια να δείτε πως δουλεÏουν οι καÏτέλες Gravatar πηγαίντε σε κάποια δημοσίευση του ιστολόγιου σας με σχόλια. ΠεÏάστε το ποντίκι πάνω από τις φωτογÏαφίες των Ï€Ïοσώπων που έχουν σχολιάσει και η καÏτέλα Gravatar θα εμφανιστεί (αν ο χÏήστης έχει ενεÏγοποιήσει αυτή την δυνατότητα). Για να απενεÏγοποιήσετε τις καÏτέλες Gravatar κάντε κλικ στο κουμπί ΑπενεÏγοποίηση.Για την χÏήση της υπηÏεσίας Δημοσίευση μέσω email Ï€Ïέπει να συνδέσετε τον λογαÏιασμό σας %s με τον λογαÏιασμό σας στο WordPress.com.Για να χÏησιμοποιήσετε την υπηÏεσία Publicize Ï€Ïέπει να συνδέσετε τον λογαÏιασμό σας %s στον λογαÏιασμό σας στο WordPress.com χÏησιμοποιώντας τον παÏακάτω σÏνδεσμο.Για να χÏησιμοποιήσετε τους μικÏÎ¿Ï Î¼Î®ÎºÎ¿Ï…Ï‚ συνδέσμους (shortlinks) ελέγξτε μια παλαιότεÏη δημοσίευση σας. Θα δείτε το κουμπί “Shortlink” ακÏιβώς κάτω από τον τίτλο. Πατώντας το θα εμφανιστεί ένα νέο παÏάθυÏο με τον μικÏÎ¿Ï Î¼Î®ÎºÎ¿Ï…Ï‚ σÏνδεσμο για να το χÏησιμοποιήσετε στο Twitter, Facebook κλπΓια να να κάνετε αλλαγές σε αÏχεία CSS κάντε κλικ στο Î¼ÎµÎ½Î¿Ï Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· → ΕπεξεÏγασία CSS.Για να χÏησιμοποιήσετε το widget ΣυνδÏομών, κάντε κλικ στο Î¼ÎµÎ½Î¿Ï Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· → Widgets. ΣÏÏετε το widget “ΣυνδÏομές Ιστολόγιου (Jetpack)” στην πλευÏική στήλη για να το ενεÏγοποιήσετε.Για να χÏησιμοποιήσετε τα widgets κάνε κλικ στο Î¼ÎµÎ½Î¿Ï Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· → Widgets. ΣÏÏετε το widget που θέλετε να χÏησιμοποιήσετε στην πλευÏική στήλη για να το ενεÏγοποιήσετε.Δημοφιλή άÏθÏαΔημοφιλή άÏθÏα & σελίδεςΤα δημοφιλή άÏθÏα και σελίδες υπολογίζονται κάθε 24-48 ÏŽÏες σÏμφωνα με τον αÏιθμό των Ï€Ïοβολών τους.Δημοφιλείς αναζητήσειςΚαταμέτÏηση της αυτόματης φόÏτωσης κάθε δημοσίευσης ως ξεχωÏιστή Ï€Ïοβολή στο Google AnalyticsΔιάφανοΔιάφανο φόντοΔιαγÏαμμέναΠÏόβλημα με το Jetpack;ΠÏοσπαθήστε να συνδεθείτε ξανά.TumblrΙστολόγιο TumblrΕνεÏγοποίηση ανα δημοσίευσηTweets από @%sTwitterTwitter Site TagΡοή TwitterΌνομα χÏήστη Twitter:ΑνενεÏγή η Πιστοποίηση ΔÏο ΣταδίωνΕνεÏγή η Πιστοποίηση ΔÏο ΣταδίωνΤÏποςΤÏποιΕίδη σελιδών για Ï€Ïοβολή:ΠΑÎΩURLΔεν ήταν δυνατή η δημιουÏγία διεÏθυνσης για την υπηÏεσία Δημοσίευση μέσω email. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Δεν ήταν δυνατή η απενεÏγοποίηση της υπηÏεσίας Δημοσίευση μέσω email. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Δεν ήταν δυνατή η επαναδημιουÏγία διεÏθυνσης για την υπηÏεσία Δημοσίευση μέσω email. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.ΑταξινόμηταΜη αναμενόμενη απάντησηΆγνωστο είδος δημοσίευσης.ΑποσÏνδεση ΛογαÏιασμοÏΑποσÏνδεση λογαÏιασμοÏΑποσÏνδεση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Î±Ï€ÏŒ WordPress.comΑδημοσίευτος/η/οΤο Θέμα που χÏησιμοποιείτε δεν υποστηÏίζει την αυτόματη φόÏτωση πεÏιεχομένου χωÏίς κλικ. Για αυτό η λειτουÏγία είναι απενεÏγοποιημένη.ΧωÏίς τίτλοΕπεÏχόμενα ΣυμβάνταΑνανέωση ετικέταςΕνημέÏωση τμήματος μενοÏΕνημέÏωση ετικέτας σχέδιουΕνημέÏωση Ï„Ïπου δουλειάςΑλλαγή εικονιδίου ιστότοπουΗ ÏÏθμιση ενημεÏώθηκε από %s σε "%s"ΦόÏτωση εικόναςΦόÏτωση ΒίντεοΦόÏτωση βίντεοΧÏησιμοποιήστε μια εικόνα που θέλετε να γίνει το εικονίδιο του ιστότοπου σας. ΜποÏείτε να την Ï€ÏοσαÏμόσετε αμέσως μετά.ΦόÏτωση...ΧÏησιμοποιήστε $latex your latex code here$ ή [latex]your latex code here[/latex] για να συμπεÏιλάβετε το %s στις δημοσιεÏσεις και σχόλια. Δείτε τις διαθέσιμες επιλογές.ΧÏήση του Google Analytics με την αυτόματη φόÏτωση πεÏιεχομένουΧÏήση μοÏφοποίησης κειμένου στα σχόλια.ΧÏησιμοποιήστε την μοÏφοποίηση κειμένο σε άÏθÏα και σελίδες.ΠÏοβολή με όμοÏφο στυλΧÏησιμοποιήστε μια έγκυÏη διεÏθυνση emailΑυτόματη επιλογή γλώσσας για οÏθογÏαφικό έλεγχο και διόÏθωση.ΧÏησιμοποιήστε το κουμπί TAB για να μετακινηθείτε Î¼ÎµÏ„Î±Î¾Ï ÏƒÏ„Î·Î»ÏŽÎ½. Αντίστοιχα με κουμπί ENTER ή RETURN μετακινήστε Î¼ÎµÏ„Î±Î¾Ï Î³Ïαμμών.Κλικ στο κουμπί για να δείτε τον καταλόγο βίντεο του VideoPress. ΜποÏείτε να δείτε όλα σας τα βίντεο ανα πάσα στιγμή κατά την επεξεÏγασία οποιασδήποτε δημοσίευσης κάνοντας κλικ στο κουμπί ΠÏοσθήκη Εικόνων και Βίντεο ΧÏησιμοποιήστε την παÏακάτω φόÏμα για να φοÏτώσετε βίντεο στον κατάλογο του VideoPress. ΥποστηÏίζονται τα ήδη αÏχείων: %s με μέγιστο μέγεθος αÏχείου %d%s.ΧÏησιμοποιήστε αυτές τις Ïυθμίσεις για να εμφανίσετε διαφοÏετικοÏÏ‚ Ï„Ïπους πεÏιεχομένου στον ιστότοπό σας.ΧÏησιμοποιήστε τα παÏακάτω εÏγαλεία για να πιστοποιήσετε ότι σας ανήκει και μποÏείτε να διαχειÏιστείτε τον ιστότοπο στις υπηÏεσίες Google, Bing, Pinterest κλπ.ΕπιλέξτεΑπόκÏυψηΕμφάνισηΨευδώνυμοΧÏησιμοποιώντας τα κουμπιά δίπλα από κάθε module μποÏείτε να επιλέξετε πολλά μαζί για μαζικές κινήσεις από το Î¼ÎµÎ½Î¿Ï ÏƒÏ„Î·Î½ αÏχή της λίστας.ΧÏησιμοποιώντας τα εÏγαλεία στην δεξιά στήλη μποÏείτε να αναζητήσετε για συγκεκÏιμένα modules, να φιλτÏάÏετε να αποτελέσματα και να αλλάξετε την σειÏά εμφάνισης.ΤιμήVaultPressΠίνακας Ελέγχου VaultPressΠιστοποιημένες υπηÏεσίεςΗ πιστοποίηση του ιστότοπο σας θα αποφέÏει σημαντικές λειτουÏγίες από την χÏήση Ï„Ïίτων υπηÏεσιών, πχ Webmaster tools. Θα Ï€Ïοσθέσουμε το %s tag χωÏίς να χÏειαστεί δική σας παÏέμβαση.Κατάλογος ΒίντεοΠÏοεπισκόπηση Βίντεο:Βίντεο στο %sΤο βίντεο δημοσιεÏθηκε από %s.Βίντεο δημοσίευσηVideoPressΚατάλογος VideoPressΠÏοβολή του Ï€Ïοφίλ %1$s στο %2$sΠÏοβολή όλωνΠÏοβολή κόμικΠÏοβολή πλήÏους Ï€Ïοφίλ →ΠÏοβολή ιστότοπου με πλήÏες ΘέμαΠÏοβολή στοιχείου μενοÏΠÏοβολή ετικέταςΠÏοβολή τμήματος μενοÏΠÏοβολή ιστότοπου με Θέμα για κινητάΠÏοβολή διαχείÏισης δικτÏου ΠÏοβολή δουλειάςΠÏοβολή ετικέτας δουλειάςΠÏοβολή Ï„Ïπου δουλειάςΠÏοβολή Στατιστικών χωÏίς JavascriptΠÏοβολή σχόλιουΠÏοβολή %s.ΠÏοβολή όλων των χαÏακτηÏιστικών του JetpackΠÏοβολή πλήÏους μεγέθους %1$s×%2$sΠÏοβολή στο InstagramΠÏοβολή πληÏοφοÏιών Ï€Ïοφίλ κατά την στάση του δείκτη Ï€Î¿Î½Ï„Î¹ÎºÎ¹Î¿Ï Ï€Î¬Î½Ï‰ από φωτογÏαφίες GravatarsΠÏοβολή στατιστικών στο WordPress.comΠÏοβολή:ΠÏοβολές τις τελευταίες 48 ÏŽÏες. Κλικ για πεÏισσότεÏα στατιστικά στοιχεία.Όνομα χÏήστη Vimeo:ΟÏατότηταΔείτε τα Στατιστικά σας.Διαβάστε το άÏθÏο για λεπτομέÏειες.Για να ελέγξετε την κατάσταση των αντιγÏάφων ασφαλείας, τα αποτελέσματα των ελέγχων ασφαλείας και την κατάσταση της υπηÏεσίας VaultPress επισκευθείτε την σελίδα %s.Επισκέπτες από κινητά Android, Windows Phone και iPhone θα δουν αυτόματα το Θέμα για κινητά με την επιλογή να επιστÏέψουν στο κανονικό Θέμα. ΜποÏείτε να ενεÏγοποιήσετε ή να απανεÏγοποιήσετε την επιλογή για το Θέμα για κινητά κάνοντας κλικ στις επιλογές "ΕνεÏγοποίηση" ή "ΑπενεÏγοποίηση" παÏακάτω.ΣÏνδεσμοι μικÏÎ¿Ï Î¼Î®ÎºÎ¿Ï…Ï‚ WP.meΠÏοσοχή! Δεν υπάÏχει υποστήÏιξη multibyte! Η Ï€Ïοβολή πεÏιεχομένου δεν είναι εφικτή για αυτό το ιστολόγιο.Δεν ήταν εφικτή η φόÏτωση φόÏτωση των δεδομένων.Δεν ήταν η πιστοποίηση της σÏνδεσης Î¼ÎµÏ„Î±Î¾Ï Ï„Î¿Ï… διακομιστή σας και του διακομιστή Jetpack. ΠαÏακαλώ ελέγξτε τις Ïυθμίσεις του διακομιστή σας.Δεν ήταν δυνατή η εÏÏεση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï Î¼Îµ διεÏθυνση email %1$s ώστε να Ï€Ïαγματοποιηθεί η σÏνδεση. Αν ήδη έχετε λογαÏιασμό στο %2$s, βεβαιωθείτε ότι η διεÏθυνση email %1$s είναι σωστή και χÏησιμοποιείται στον λογαÏιασμό αυτό. Επίσης, ελέγξτε αν έχετε συνδέσει τον λογαÏιασμό σας με το WordPress.com.Δεν ήταν δυνατή η εÏÏεση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÏ„Î¿ %2$s που να σχετίζεται με λογαÏιασμό στο WordPress.com. Αν ήδη έχετε λογαÏιασμό στο %2$s, βεβαιωθείτε ότι έχετε Ï€Ïαγματοποιήσει σÏνδεση με τον λογαÏιασμό σας στο WordPress.com.Εγκαταστείστε την εφαÏμογή WordPress σε iOS (iPhone, iPad, iPod Touch), Android, BlackBerry και άλλες πλατφόÏμες!Δεν ήταν δυνατή η φόÏτωση των στατιστικών σας. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Δεν ήταν δυνατή η φόÏτωση των στατιστικών σας. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά. Αν συνεχίσετε να εμφανίζεται αυτό το μήνυμα λάθος επικοινωνήστε με την υποστήÏιξη. Σας παÏακαλοÏμε να αναφέÏετε τις παÏακάτω λεπτομέÏειες όπως εμφανίζονται.Αλλάξαμε την ÏÏθμιση στην επιλογή κλικ-για-συνέχεια γιατί εντοπίσαμε ότι χÏησιμοποιείτε widgets στο υποσέλιδο σας (ÎœÎµÎ½Î¿Ï Î•Î¼Ï†Î¬Î½Î¹ÏƒÎ· → Widgets) ή το ενεÏγό Θέμα χÏησιμοποιεί την επιλογή κλικ-για-συνέχεια και φόÏτωση επιπλέον δημοσιεÏσεων.ΙστοσελίδαΥπηÏεσίες Πιστοποίησης ΙστότοπουΚαλώς ήÏθατε στο Jetpack %s!Καλωσήλθατε στα ΠÏοσαÏμοσμένα CSS! Τα CSS (Cascading Style Sheets) είναι μια μοÏφή κωδικών που οδηγοÏν τον φυλλομετÏητή σας πως να εμφανίσει μια ιστοσελίδα. ΜποÏείτε να διαγÏάψετε αυτά τα σχόλια και να ξεκινήσετε τις Ï€ÏοσαÏμογές σας. Ως Ï€Ïοεπιλογή, το φÏλλο στυλ θα φοÏτώνεται μετά τα φÏλλα στυλ που οÏίζει το θέμα, το οποίο σημαίνει ότι οι κανόνες που οÏίζετε εσείς θα εφαÏμοστοÏν αντί για αυτοÏÏ‚ που οÏίζει το στυλ του θέματος. Εδώ απλά γÏάψτε αυτό που θέλετε να αλλάξετε, δεν χÏειάζεται να αντιγÏάψετε όλο το πεÏιεχόμενο του φÏλλου στυλ του θέματός σας.Καλώς ήÏθατε στο ΠαÏαμετÏοποιήσιμο CSS! Για να μάθετε πεÏισσότεÏα δείτε το http://wp.me/PEmnE-BtΘα σας ειδοποιήσουμε αμέσως μόλις ο ιστότοπος σας επανέλθει και είναι διαθέσιμος ξανά ώστε να μποÏείτε να ελέγξετε τον χÏόνο εκτός λειτουÏγίας.Ποιό είναι το θέμα;Τί είναι η καÏτέλα Gravatar;Τί είναι το Gravatar;Με την Ï€Ïοσθήκη συλλογής φωτογÏαφιών στις δημοσιεÏσεις έχετε την δυνατότητα επιλογής διαφοÏετικών στυλ παÏουσίασης τους: ΠαÏαλληλόγÏαμο, ΤετÏάγωνο, ΣτÏογγυλό. Το Ï€Ïοεπιλεγμένο στυλ μποÏεί να αλλάξει από τις Ρυθμίσεις → Πολυμέσα με την ενεÏγοποίηση της επιλογής "ΠÏοβολή φωτογÏαφιών σε μωσαϊκό στυλ"Μετά από κάθε νέο σχόλιο οι επισκέπτες σας μποÏοÏν να εγγÏαφοÏν στην υπηÏεσία αποστολής ενημεÏώσεων για νέα σχόλια.Θέλετε οι δημοσιεÏσεις σας να έχουν απήχηση;ΛευκόΔιαχείÏιση Λευκής ΛίσταςΗ λίστα εγκεκÏιμένων διευθÏνσεων IP είναι κενή.Η λευκή λίστα αποθηκεÏτηκε.Η Ï€Ïοσθήκη διεÏθυνσης IP στην λίστα εγκεκÏιμένων διευθÏνσεων αποτÏέπει τον αποκλεισμό της από το Jetpack.ΑναγνωÏιστικό widget:είναιΤίτλος widget:Widget στιγμιότυπωνΠλάτος (px):Πλάτος:με 1 σχόλιομε %s σχόλιαΜε ενεÏγοποιημένο το ΚαÏουζέλ, οι συλλογές φωτογÏαφιών σας θα Ï€Ïοβάλλονται σε πλήÏη οθόνη με σχόλια και δεδομένα EXIF.Με την ενεÏγοποίηση της μηνιαίας συνδÏομής, το VaultPress δημιουÏγεί αυτόματα αντίγÏαφα ασφαλείας ολόκληÏου του ιστότοπου σας (πεÏιεχόμενο, θέματα, Ï€Ïόσθετα) σε Ï€Ïαγματικό χÏόνο ενώ παÏάλληλα διενεÏγεί τακτικοÏÏ‚ ελέγχους ασφαλείας.Αυτό συμβαίνει με την επιλογή αυτόματης φόÏτωσης πεÏιεχομένου χωÏίς κλικ και ένα συμβατό Θέμα. Φτάνοντας στο τέλος κάθε σελίδας, οι δημοσιεÏσεις σας φοÏτώνονται αυτόματα καθώς οι επισκέπτες σας αναζητοÏν άÏθÏα και πεÏιεχόμενο.Με το VideoPress φοÏτώνετε εÏκολα και γÏήγοÏα βίντεο για ενσωμάτωση σε δημοσιεÏσεις και σελίδες στο WordPress site σας. ΑπαÏαίτητη η χÏήση λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï WordPress.com και της υπηÏεσίας VideoPress. Μόλις αγοÏάσετε την υπηÏεσία VideoPress κάντε κλικ εδώ για Ïυθμίσεις.Τα likes του WordPress.com Likes είναιΚουμπί WordPress.com ReblogΌνομα χÏήστη WordPress.comΑυτή την στιγμή το WordPress.com αντιμετωπίζει Ï€Ïοβλήματα και δεν μποÏεί να επικοινωνήσει με το Jetpack. ΠαÏακαλώ Ï€Ïοσπαθείστε ξανά.Wow, that sounds nerdy.ΓÏάψτε ένα σχόλιοΛάθος μέγεθος αÏχείου Jetpack. Κάντε κλικ στην επιλογή “ΣÏνδεση στο WordPress.com” για να διοÏθώσετε το Ï€Ïόβλημα.d/m/Yd/m/Y g:i:s aΕτήσια αÏχεία: %sΕτήσιο αÏχείοΜποÏείτε να Ï€Ïοσθέσετε πολλαπλές διευθÏνσεις email και να τις διαχωÏίσετε με κόμμα. Η αποστολή των ειδοποιήσεων θα γίνει σε κάθε μία ξεχωÏιστά.ÎαιΌλα είναι έτοιμα! Για να διαχειÏιστείτε τον ιστότοπο σας επισκευθείτε την σελίδα wordpress.com/sites.Δεν μποÏείτε να κάνετε αλλαγές.Δεν έχετε δικαιώματα διαχείÏισης.Δεν έχετε δικαίωμα επαναφοÏάς Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αντικειμένου.Δεν έχετε δικαίωμα διαγÏαφής Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… αντικειμένου.Δεν μποÏείτε να επιλέξετε αυτό το Θέμα Είναι απαÏαίτητη η επιλογή δυνατότητας Ï€Ïος έλεγχο.Είναι απαÏαίτητη η επιλογή αÏθÏώματος (module).Είναι απαÏαίτητη η επιλογή Ï€Ïόσθετου Ï€Ïος ενεÏγοποίηση.Η επιλογή ΠÏόσθετου είναι απαÏαίτητη.ΠÏέπει να επιλέξετε Θέμα.ΠÏέπει να επιλέξετε Θέμα για την αναβάθμιση του.Δείτε τα στατιστικά σας.ΜποÏείτε να ενεÏγοποίησετε και να απενεÏγοποιήσετε λειτουÏγίες του Jetpack ανάλογα τις ανάγκες σας.ΠÏοσθέστε τις παÏακάτω μεταβλητές στις διευθÏνσεις κοινοποίησης URL:ΜποÏείτε να αποκÏÏψετε widgets από συγκεκÏιμένες σελίδες. Για παÏάδειγμα, αν δεν θέλετε να εμφανίζεται το widget αÏχείου στην σελίδα με αποτελέσματα αναζήτησης επιλέξτε "ΑπόκÏυψη" και "Η σελίδα είναι αποτελέσματα αναζήτησης".ΜποÏείτε να παÏαμετÏοποιήσετε το widget ΣυνδÏομών από τις Ρυθμίσεις συζητήσεων.ΔημιουÏγήστε συνδέσεις αποκλειστικά για εσάς ή όλους τους χÏήστες του ιστολόγιου σας. Οι κοινές συνδέσεις χαÏακτηÏίζονται ως "ΚοινόχÏηστες".Κάντε αλλαγές στην λίστα εγκεκÏιμένων διευθÏνσεων (whitelist) από την διαχείÏιση δικτÏου.Θα βÏείτε τις ειδοποιήσεις στην μπάÏα και στο WordPress.com.Δεν είναι δυνατή η αποσÏνδεση σε μη συνδεδεμένο λογαÏιασμό.Δεν έχετε τα απαÏαίτητα επίπεδα ελευθεÏίας για την αναπαÏαγωγή Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… βίντεο. ΥποστηÏίξτε το ελεÏθεÏο λογισμικό και Ï€ÏοχωÏήστε σε αναβάθμιση.Δεν έχετε δικαιώματα Ï€Ïόσβασης σε αυτή τη σελίδα.Έχετε ήδη εγγÏαφεί σε αυτό τον ιστότοπο. Ελέγξτε το email σας.Επιλέξατε να μην συνδέσετε το ιστολόγιο σας. Κάντε κλικ στην επιλογή "Αποδοχή" αν επιθυμείτε να συνδέσετε τους λογαÏιασμοÏÏ‚ σας.ΜοιÏαστήκατε αυτή την δημοσίευση με %sΣυνδέσατε επιτυχώς τον λογαÏιασμό σας %1$s με %2$s.Έχετε αποσυνδέσει το Jetpack.ΠÏέπει να συνδεθείτε για να σχολιάσετε.ΠÏέπει να έχετε συνδεθεί για να σχολιάσετε.Είναι απαÏαίτητη η σÏνδεση του Ï€Ïόσθετου Jetpack στο WordPress.com για την χÏήση Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… χαÏακτηÏιστικοÏ.ΠÏέπει Ï€Ïώτα να Ï€Ïοσθέσετε έναν ακόμα διαχειÏιστή Ï€Ïιν αλλάξετε την κυÏιότητα του λογαÏÎ¹Î±ÏƒÎ¼Î¿Ï ÏƒÎ±Ï‚.ΜποÏείτε να οÏίσετε μια έγκυÏη ενέÏγειαΠÏέπει να δημιουÏγήσετε νέο widget στο Twitter.com και στην συνέχεια να χÏησιμοποιήσετε το αναγνωÏιστκό widget id (μακÏοσκελής αÏιθμός στην διεÏθυνση URL ) στο παÏακάτω πεδίο. Μάθετε πεÏισσότεÏα.ΠÏέπει να επιτÏέψετε την σÏνδεση Î¼ÎµÏ„Î±Î¾Ï Î±Ï…Ï„Î¿Ï Ï„Î¿Ï… ιστότοπου και του WordPress.com για να ενεÏγοποιήσετε τα εκπληκτικά χαÏακτηÏιστικά του Jetpack.ΠÏέπει να εισάγετε τον αÏιθμητικό κωδικό ID ώστε το Goodreads Widget να λειτουÏγήσει. Δείτε τις οδηγίες.ΠÏέπει Ï€Ïώτα να εγγÏάψετε το Jetpack Ï€Ïιν το συνδέσετε.ΠÏέπει να επιλέξετε το πεÏιεχόμενου της μονάδας για το Ï€Ïοφίλ Gravatar.YouTube channel ID:Μη έγκυÏο κλειδί APIΟι ΠÏοσαÏμοσμένοι ΤÏποι ΠεÏιεχομένου σαςΔιεÏθυνση emailΗ διεÏθυνση IP (%1$s) που χÏησιμοποιείτε έχει χαÏακτηÏιστεί για πιθανή παÏαβίαση ασφάλειας. Μάθετε πεÏισσότεÏα...Η εγκατάσταση του Jetpack σχεδόν ολοκληÏώθηκε!Η εγκατάσταση του Jetpack είναι μια χαÏά.ΌνομαΤο αÏχείο του ποÏτφόλιο σας είναι άδειο. ΠÏοσθέστε νέο πεÏιεχόμενο από τον πίνακα ελέγχου.Τα Στατιστικά λειτουÏγοÏν καλÏτεÏα με την ÏÏθμιση Javascript ενεÏγοποιημένη.Το αÏχείο Testimonial είναι κενό. ΔημιουÏγήστε νέο Testimonial από τον Πίνακα Ελέγχου.Η εγκατάσταση του WordPress για τον ιστότοπο και το ιστολόγιο σας έχει την καλÏτεÏη υποστήÏιξη σε θέματα ασφαλείας, δημιουÏγίας αντιγÏάφων ασφαλείας και επίλυσης Ï€Ïοβλημάτων.Η επιλογή `%1$s` έχει οÏιστεί ως `%2$s` αλλά η σÏνδεση στο WordPress.com την εμφανίζει ως `%3$s`!Λάθος απάντηση. ΠÏοσπαθήστε ξανά.Δεν υπάÏχουν δημοσιευμένα άÏθÏα σε αυτό το ιστολόγιο.Το σχόλιό σας πεÏιμένει έγκÏισηΤο σχόλιο σας θα ελεγχθεί.Το σχόλιο σας εγκÏίθηκεΤÏέχουσα διεÏθυνση IP: %sΤο κÏÏιο blog σας δεν είναι συνδεδεμένο στο WordPress.com. Συνδεθείτε για να λάβετε κλειδί API.Το νέο πεδίο αποθηκεÏτηκε.Το εικονίδιο του ιστότοπου σας φοÏτώθηκε!Ο ιστότοπος σας επιτÏέπει μόνο συνδέσεις Ï„Ïπου SSL στο Jetpack. Δυστυχώς οι συνδέσεις SSL δεν φαίνεται να λειτουÏγοÏν!Ο ιστότοπος σας δεν επικοινωνεί με τους διακομιστές του Jetpack.Ο ιστότοπος σας δεν επικοινωνεί με ασφάλεια με τους διακομιστές του Jetpack.Το Θέμα σας υποστηÏίζει %sΤο Θέμα σας υποστηÏίζει απόψεις χÏηστώνΗ φόÏτωση δεν ολοκληÏώθηκε. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.Η φόÏτωση του βίντεο ολοκληÏώθηκε με επιτυχία. Το βίντεο θα εμφανιστεί στον κατάλογο του VideoPress σÏντομα.Το βίντεο σας φοÏτώνεται... ΚÏατήστε το παÏαθυÏο ανοιχτό.Για να χÏησιμοποιήσετε το Jetpack %s ο ιστότοπος σας Ï€Ïέπει να είναι δημόσια Ï€Ïοσβάσιμος.[%s] Επιβεβαίωση αποδοχήςάÏθÏα ή σελίδες δημοσιεÏονταικάποιο άÏθÏο ή σελίδα ενημεÏώθηκεÏÏθμισηεπιτÏέπει την σÏνδεση δημοσιεÏσεων στο ιστολόγιο σας και Ïοών RSS από σχόλια στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε.επιτÏέπει την εÏκολη Ï€Ïοσθήκη φωτογÏαφιών σε widget του ενεÏÎ³Î¿Ï Î˜Î­Î¼Î±Ï„Î¿Ï‚.καιEmailΑκÏÏωσηκλικ εδώκόψιμο εικόναςμέÏαΕπεξεÏγασίαεπεξεÏγασία κειμένουΣφάλμα κατά την δημιουÏγία της φόÏμας. ΠαÏακαλώ Ï€Ïοσπαθήστε ξανά.επιστÏοφήhttp://jetpack.mehttp://wordpress.org/ΔιεÏθυνση Ïοής iCalendar:σε πλάτος και Ïψος.σε "%s"επαναφοÏά Ïυθμίσεων jumpstartΦόÏτωση…%1$s/%2$sμήναςΘέλω να διαβάσωΠλοήγηση φωτογÏαφιώνΣχόλιοΔιάβασα%s αν:έλεγχοςαναζήτησηασφάλεια, Ï€Ïοστασία, botnet, brute forceστατιστικά, παÏακολοÏθηση, Ï€Ïοβολές, επισκεψιμότηταεπιλέξτε αÏχείοEmailFacebookGoogleLinkedInPinterestPocketPress ThisΕκτÏπωσηRedditTumblrTwitterδείχνει το πλαίσιο Facebook Like στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε.δείχνει τα πιο Ï€Ïόσφατα tweets στην πλευÏική στήλη του Θέματος που χÏησιμοποιείτε. ΠÏοσφέÏει δυνατότητες παÏαμετÏοποίησης.εχθέςΤον Ï€ÏοηγοÏμενο μήνατο Ï€ÏοηγοÏμενο Ï„ÏίμηνοΤην Ï€ÏοηγοÏμενη εβδομάδαΠέÏσι τιμήαυτό το βίντεοΠÏοβολή: %sεβδομάδαλέξειςΑποκλείστηκαν κακόβουλες Ï€Ïοσπάθειες σÏνδεσης στον λογαÏιασμό σαςΑποκλείστηκαν spam σχόλια από το Akismet.%1$s \a\t %2$splugins/jetpack/languages/jetpack-th.mo0000755000312500031250000007245012651056012020624 0ustar eacbforgeacbforgÞ•VÌ É| ¡ ³ ÀÍÔåû  0(Yjyyóü4GNnw} “   ªp·(/%? epS Õã é ÷   # * = \ k v | ‰ ‘ ¤ ­ ½ Ç 5Ô !!!2! H!R!e!j! o!z!‚!‰!œ! ¹!Å!×!ì!6"7"H"O"T"]" l"y"‹""¯" µ" Ã"[Î"*#:#Y#y#c’#ö#$$*>$5i$ Ÿ$ª$³$Ä$Ô$Ý$ ó$þ$%%% $%1%6%;% B%MN% œ% §%µ%Ç%×% Ý% ê%ö%$ÿ% $&1&@&G&M&V& \& j& u& €&Ž& ¢&°&µ&n»& *'7' G' R'\' a' n'{' 'Œ'“' ˜'¢'-¹'ç' ï'ü'(((1(7(L(](b(s( x(„(š( ¡( ®(¼(¿(Ñ(ì(þ( ))-)K) P) ^)l)o)Fx)¿)Ü)ú)* *** *,*1*A*H* Y*c*h*p* x* …*“* £* ®* »*È* Î* Ù*ä* ì*ù*ÿ*++ + +++9+e+n+ €++ £+­+ µ+¿+Æ+ Í+Ú+Þ+ ð+ þ+ ,6,Q, i,u,{,™,6·,î, ö,--"- 9- F-P-W-g- y-†-˜-§-·-%Î-+ô- .:.C.I.P.U.^.d. k. u..…..¦.«.´.º.Ì.Ô. Û.å.í.ö.û. /©/§»/rc0?Ö0\1 s1I”1 Þ1è1í1ó1 ú12 2222 2 .2D:2 2 Œ2@™2Ú2ã2é2û2 3333 %333¤G3ì37ð33(4+\41ˆ4;º4 ö4$5!%5G5a5e5 l5w5{5 €5Š5 5°5 ¶5 Ã5Í5ß5&ä5ç 6ó677*7@7@Y7š7#º7Þ7ö7!‡8©8 ¼8É9Ü9û9 :0':?X:<˜:Õ:8ñ:*;A;W;Em;*³;$Þ;!<%<;=!N=Up= Æ=Ñ=ôð='å> ?'?B?`?|?$?´?Í?Fã?`*@‹@!¨@ Ê@Ô@ä@3ý@1A'JArA$‹AL°AýAB)B.FBuB1ŽB ÀBÊB$ÝBCC!C'ACiC3ˆC0¼C9íC'D0©DÚDíDýD+E$=E?bE6¢EHÙE"F5F'HFôpF6eG9œG<ÖGBHýVH%TINzI`ÉIe*J‚JK)K9KXKqK?ŠKÊKàK0öK'L=L0SL „L‘L§L¾LÄØL*M!ÈM*êMN4NGNaNN6 N'×N.ÿN.OMO fOsO3ŒO!ÀO!âO!P-&P!TP vPƒP “P- Q5ÎQR#R9R RR$_R„RR¶R ÏRÜRHûRrDS·SÍSìST0 TFU!KU@mU®UÁUÑU áU$ëU<V'MV$uV*šVÅVEÞV$W!4WVW uW‚W'žWÆW]ÜW:XSXcX|X ŒX<šX×X$ÜXY0Y LYVYiY‚Y!˜Y*ºY-åY-ZAZ^ZwZŠZ ©Z´ZÇZàZðZ?[F[0\[0[]¾[\62\-i\0—\'È\ð\]]/]$K]p]'€]0¨]0Ù]! ^N,^C{^¿^Û^ñ^ó^õ^÷^B _ M_W_Ej_<°_$í_`'"`'J`r`-Ž`'¼`$ä`C alMa±ºaFlb³bÉbßb õbc !c/c$Bcgc€c<™cÖc ðcýcdF#djd ‰d*“d¾d'Úde3eReµhe¶gÕh“æiWzj^Òj¨1k!Úk ük ll'0lXlkl rl lŒl'l'¸lNàl'/m'Wm¨m(n Gn-Qnn›n·nÐnàn æn+ônF o gpoqpiáp{Kq{ÇqTCr˜rT·rc sHps ¹sÃs!Ös øst$t7t5Pt†t–t$¯t'Ôtütuê Q«íعüä'B»Üù“J¯Í…‘$Q7m>ºCGVO—HEáDIð>¨W™LG w0ñ‰F²ÄÐybÎ^M&’ ûHeTï/Kýó:"1]VÇÊEÁ{ÿšJ9hC´t3[@*$8g•,XO›€ ?òµ°*v+;l;¥P 0Ô©Öu-FIZ (ÅÛú· |ˆŒþ5)B§ß#AT!\Фc× .ª‡3Y"r±¿aMÝôÆÓ‹ÀRÞ(ö÷d6L®=ŽËA&Nâ!x2”SÒ ?è¾@. _6¦çSì8ÌÃj놢ã%5'}U`–4fÚî4žƒ:¼æ%¡~É+ )õ9˜à‚éi21„£7nkq NKR=z Ù-<Uœ<osȸp¶³½­å,/ŸP#D¬ÑÕÏø%1$s – %2$s%1$s at %2$s%1$s on %2$s%s ago« Previous← Older Comments— Select —(no title)(required)Learn more about these options.% Replies1 ReplyThe Upcoming Events Widget allows you to use an iCalendar link to display a list of events on your site.ActivateActiveAddAdd NewAdd New ProjectAdd New Project TypeAdd or remove tagsAdd-onAdd-on CSS (Recommended)Address:AlbumAllAll Project TypesAll ProjectsAll postsAlphabeticalApologies, but no results were found for the requested archive. Perhaps searching will help find a related post.ArtistAttachment PageAutomatically proofread content when:AutomatticBackground colorBe sure to click "Update Profile" at the bottom of the screen to save your changes.Bias LanguageBlackBlog ArchivesBlog URL:BlueCancelCancel replyCategoryCenterCheatin’ uh?Choose from the most used tagsClichésClick hereCloseColor SchemeCommentComment navigationCommentsComplex PhrasesConfigureContact InfoContinue reading →Crop ImageCustomCustom field deleted.Custom field updated.CustomizeDaily Archives: %sDarkDateDeactivateDefaultDeleteDelete PermanentlyDelete this item permanentlyDescriptionDiacritical MarksDismiss this notice.Display Header TextDisplay your location, hours, and contact information.Double NegativesE-mailEditEdit CSSEdit Menu ItemEdit ProjectEdit Project TypeEdit Selection...Edit Your ProfileEmailEmail AddressEmpty SpamEnable proofreading for the following grammar and style rules when writing posts and pages:English OptionsEnter the customer's name hereEnter the menu item's name hereEnter your email addressEnter your email address to subscribe to this blog and receive notifications of new posts by email.Error code: %sError in moving to Trash.Error in restoring from Trash.Error: please enter a valid email address.Error: please fill the required fields (name, email).Explain...FeaturedFeatured ContentFeatured ImagesFeedbackFor more information:Front pageGalleryGravatar ProfileGreenHeightHidden VerbsHideHomeHours:IP Address:Identify words and phrases to ignore while proofreading your posts and pages:Ignore allIgnore alwaysIgnore suggestionIgnored PhrasesImageImage Color:Image Size:InactiveInclude this CSS in the Mobile ThemeInsert VideoItems to show:JargonLabelLanguageLargeLast ModifiedLearn MoreLearn moreLeave a ReplyLeave a Reply to %sLeave a replyLeftLightLimit width to %1$s pixels for videos, full size images, and other shortcodes. (More info.)Live PreviewLoading…Loading...Logged InLogoM j, Y @ G:iMain SidebarMediaMedia FileMediumMenuMenu ItemMenu Items re-ordered.Menu item updated. View itemMessageMessage SentMessagesMetadataMissed scheduleMobile-compatible:Mode:Monthly Archives: %sMonthly archivesMoreMore informationNameNew ProjectNewer Comments →NewestNext »Next » NoNo Projects foundNo Projects found in TrashNo plugins found.No suggestionsNo tags found.No themes found.No writing errors were found.NoneNothing FoundNotificationsOKOlder %sOpen Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOptionsOrangeOrderPage %sPages:Passive VoicePathPermalink to %sPhone:Phrases to AvoidPingback:PinkPluginsPopularPost CommentPost by EmailPost navigationPosted by Posted by %sPosted in %sPostsPosts pagePress ThisPreviewPrimary MenuPrintPrivacyPrivacy PolicyProjectProject TypeProject TypesProject updated. View itemProjectsProofread WritingProofreadingProudly powered by %sPublicizePublishPublishedPurpleRatingRecent PostsRedRedundant PhrasesRelated PostsRelated postsRepeated WordReplace theme's CSS (Advanced)Replace selection with:ReplacementReplyResetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashRightSaveSave & Buy UpgradeSave ChangesScheduledSearchSearch CommentsSearch EverythingSearch MediaSearch Menu ItemsSearch PluginsSearch ProjectsSearch Results for: %sSemantic Personal Publishing PlatformSent by an unverified visitor to your site.Separate tags with commasSettingsShareSharedShowShow mapShow:SilverSite IconSite NameSitesSkip to primary contentSort by:SpamSpellingStatsStylesheet saved.SubjectSubmitSubscribeSupportTag nameTagsTerms of ServiceTextThe proofreader has suggestions for this post. Are you sure you want to publish it? Press OK to publish your post, or Cancel to view the suggestions and edit your post.The proofreader has suggestions for this post. Are you sure you want to update it? Press OK to update your post, or Cancel to view the suggestions and edit your post.There was a problem getting the data to display this address on a map. Please refresh your browser and try again.There was an error communicating with the proofreading service.This gallery contains %2$s photo.This gallery contains %2$s photos.This post is password protected.This post is password protected. Enter the password to view any comments.ThumbnailTimeTitleTitle:Top PostsTrashTumblrTypeTypesURLUncategorizedUnpublishedUpdating an option from "this" to "that".Updated option: %s to "%s"Upload ImageUploading...Use automatically detected language to proofread posts and pagesUsernameValueVerified ServicesView AllView ProjectWebsiteWhiteY/m/dY/m/d g:i:s AYearly Archives: %sYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You are not allowed to switch to this themeYou are required to specify a plugin to activate.You do not have sufficient permissions to access this page.Your NameYour comment is awaiting moderation.a post or page is first publisheda post or page is updatedandcancelclick heredayeditedit texthttp://wordpress.org/loading…monthnounCommentproofreadsearch everythingweekword count: words or characters?wordsPO-Revision-Date: 2015-09-07 05:40:45+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev %1$s – %2$s%1$s ที่ %2$s%1$s บน %2$s%s มาà¹à¸¥à¹‰à¸§à¸à¹ˆà¸­à¸™à¸«à¸™à¹‰à¸²← ความเห็นที่เà¸à¹ˆà¸²à¸à¸§à¹ˆà¸²— เลือภ—(ไม่มีหัวข้อ)(ต้องà¸à¸²à¸£)เรียนรู้เพิ่มเติม เà¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸•ัวเลือà¸à¹€à¸«à¸¥à¹ˆà¸²à¸™à¸µà¹‰% ความเห็น1 ตอบThe Upcoming Events วิตเจ็ต ทำให้คุณสามารถใช้ iCalendar ลิ้งค์เพื่อà¹à¸ªà¸”งลิสต์ของà¸à¸´à¸ˆà¸à¸£à¸£à¸¡à¸šà¸™à¹€à¸§à¹‡à¸›à¹„ซค์ของคุณได้ใช้งานเคลื่อนไหวเพิ่มสร้างใหม่เพิ่มโปรเจ็คใหม่à¹à¸à¹‰à¹„ขประเภทของโปรเจ็คเพิ่มหรือลบป้ายà¸à¸³à¸à¸±à¸šà¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡à¸ªà¹ˆà¸§à¸™à¹€à¸žà¸´à¹ˆà¸¡ CSS (à¹à¸™à¸°à¸™à¸³)ที่อยู่:อัลบั้มทั้งหมดประเภทของโปรเจ็คทั้งหมดโปรเจ็คทั้งหมดโพสต์ทั้งหมดตามตัวอัà¸à¸©à¸£à¸‚อโทษด้วย à¹à¸•่ไม่มีผลลัพท์สำหรับคลังเà¸à¹‡à¸šà¸—ี่ต้องà¸à¸²à¸£ บางทีà¸à¸²à¸£à¸„้นหาจะช่วยหาเรื่องที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้องได้ศิลปินหน้าไฟล์à¹à¸™à¸šà¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸‚้อความอัตโนมัติเมื่อ:Automatticสีพื้นหลังà¹à¸™à¹ˆà¹ƒà¸ˆà¸§à¹ˆà¸²à¸à¸” "อัปเดตข้อมูลส่วนตัว" ที่ด้านล่างของหน้าจอเพื่อบันทึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸‚องคุณภาษาที่ขัดà¸à¸±à¸™à¸ªà¸µà¸”ำคลังเà¸à¹‡à¸šà¸šà¸¥à¹‡à¸­à¸URL ของบล็อà¸:สีน้ำเงินยà¸à¹€à¸¥à¸´à¸à¸¢à¸à¹€à¸¥à¸´à¸à¸à¸²à¸£à¸•อบหมวดหมู่ตรงà¸à¸¥à¸²à¸‡à¸„ุณà¸à¸³à¸¥à¸±à¸‡à¸•ั้งใจโà¸à¸‡à¸­à¸¢à¸¹à¹ˆà¸£à¸¶?เลือà¸à¸ˆà¸²à¸à¸›à¹‰à¸²à¸¢à¸à¸³à¸à¸±à¸šà¸—ี่ใช้มาà¸à¸—ี่สุดสำนวนซ้ำ ๆคลิ้à¸à¸—ี่นี่ปิดเฉดสีความเห็นเมนูนำทางความเห็นความเห็นวลีที่ซับซ้อนปรับà¹à¸•่งข้อมูลติดต่ออ่านเพิ่มเติม →ตัดรูปปรับà¹à¸•่งCustom field ถูà¸à¸¥à¸šCustom field ถูà¸à¸›à¸£à¸±à¸šà¸›à¸£à¸¸à¸‡à¸›à¸£à¸±à¸šà¹à¸•่งคลัีงเà¸à¹‡à¸šà¸£à¸²à¸¢à¸§à¸±à¸™: %sมืดวันที่ปิดà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸‡à¸²à¸™à¸„่าหลัà¸à¸¥à¸šà¸¥à¸šà¸­à¸¢à¹ˆà¸²à¸‡à¸–าวรลบสิ่งนี้ถาวรคำขยายความออà¸à¹€à¸ªà¸µà¸¢à¸‡à¸§à¸£à¸£à¸“ยุà¸à¸•์ยà¸à¹€à¸¥à¸´à¸à¸„ำเตือนนี้à¹à¸ªà¸”งตัวอัà¸à¸©à¸£à¸ªà¹ˆà¸§à¸™à¸«à¸±à¸§à¹à¸ªà¸”งที่อยู่ของคุณ ชั่วโมง à¹à¸¥à¸°à¸‚้อมูลà¸à¸²à¸£à¸•ิดต่อปฎิเสธซ้อนปฎิเสธอีเมล์à¹à¸à¹‰à¹„ขà¹à¸à¹‰à¹„ข CSSà¹à¸à¹‰à¹„ขเมนูต่าง ๆà¹à¸à¹‰à¹„ขโปรเจ็คà¹à¸à¹‰à¹„ขประเภทของโปรเจ็คà¹à¸à¹‰à¹„ขส่วนที่เลือà¸...à¹à¸à¹‰à¹„ขข้อมูลส่วนตัวของคุณอีเมล์อีเมล์ลบสà¹à¸›à¸¡à¸—ั้งหมดเปิดใช้งานà¸à¸²à¸£à¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸­à¸±à¸à¸©à¸£à¸ªà¸³à¸«à¸£à¸±à¸šà¹„วยาà¸à¸£à¸“์à¹à¸¥à¸°à¸à¸Žà¸£à¸¹à¸›à¹à¸šà¸šà¸à¸²à¸£à¹€à¸‚ียนเมื่อเขียนเรื่องà¹à¸¥à¸°à¸«à¸™à¹‰à¸²:ตัวเลือà¸à¸ à¸²à¸©à¸²à¸­à¸±à¸‡à¸à¸¤à¸©à¹ƒà¸ªà¹ˆà¸Šà¸·à¹ˆà¸­à¸¥à¸¹à¸à¸„้าที่นี่ใส่ชื่อของเมนูที่นี่ใส่อีเมลล์ของคุณที่นี่ใส่อีเมลล์ของคุณที่เพื่อสมัครเป็นสมาชิà¸à¸‚องบล็อà¸à¸™à¸µà¹‰ à¹à¸¥à¸°à¸£à¸±à¸šà¸à¸²à¸£à¹à¸ˆà¹‰à¸‡à¹‚พสใหม่ผ่านทางอีเมลล์โค้ดผิดพลาด: %sผิดพลาดระหว่างย้ายไปถังขยะผิดพลาดระหว่างà¸à¸²à¸£à¸à¸¹à¹‰à¸„ืนจาà¸à¸–ังขยะผิดพลาด: à¸à¸£à¸¸à¸“าใส่อีเมล์ที่ใช้งานได้ผิดพลาด: โปรดà¸à¸£à¸­à¸à¸‚้อมูลที่ต้องà¸à¸²à¸£ (ชื่อ, อีเมล์)อธิบาย...พิเศษบทความเด่นรูปพิเศษผลตอบรับสำหรับข้อมูลเพิ่มเติมหน้าà¹à¸£à¸à¸„ลังภาพข้อมูลส่วนตัว Gravatarสีเขียวความสูงà¸à¸£à¸´à¸¢à¸²à¸—ี่ซ่อนอยู่ซ่อนหน้าà¹à¸£à¸à¸Šà¸±à¹ˆà¸§à¹‚มง:ที่อยู่ IP:ระบุคำà¹à¸¥à¸°à¸§à¸¥à¸µà¸—ี่จะไม่สนใจเมื่อทำà¸à¸²à¸£à¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸­à¸±à¸à¸©à¸£à¹€à¸£à¸·à¹ˆà¸­à¸‡à¹à¸¥à¸°à¸«à¸™à¹‰à¸²à¸‚องคุณ:ไม่สนใจทั้งหมดไม่สนใจตลอดไม่สนใจคำà¹à¸™à¸°à¸™à¸³à¹„ม่สนใจวลีรูปภาพสีของภาพ:ขนาดของภาพ:ไม่เปิดใช้รวม CSS นี้ใน Theme มือถือใส่ไฟล์วีดีโอรายà¸à¸²à¸£à¸—ี่จะà¹à¸ªà¸”ง:ศัพท์เฉพาะป้ายชื่อภาษาขนาดใหà¸à¹ˆà¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸¥à¹ˆà¸²à¸ªà¸¸à¸”ดูเพิ่มเติมดูเพิ่มเติมใส่ความเห็นส่งความเห็นที่ %sใส่ความเห็นซ้ายสว่างจำà¸à¸±à¸”ความà¸à¸§à¹‰à¸²à¸‡à¹„ปที่ %1$s pixels สำหรับวีดีโอ รูปภาพขนาดใหà¸à¹ˆ à¹à¸¥à¸°à¹‚ค้ดสั้นอื่น ๆ (ข้อมูลเพิ่มเติม)ดูà¹à¸šà¸šà¹€à¸ªà¸¡à¸·à¸­à¸™à¸ˆà¸£à¸´à¸‡à¸à¸³à¸¥à¸±à¸‡à¹‚หลดข้อมูล…à¸à¸³à¸¥à¸±à¸‡à¹‚หลด...ล๊อà¸à¸­à¸´à¸™à¸£à¸¹à¸›à¹‚ลโà¸à¹‰M j, Y @ G:iด้านข้างหลัà¸à¹„ฟล์สื่อไฟล์สื่อขนาดà¸à¸¥à¸²à¸‡à¹€à¸¡à¸™à¸¹à¸«à¸±à¸§à¸‚้อเมนูเรียงลำดับรายà¸à¸²à¸£à¹€à¸¡à¸™à¸¹à¹ƒà¸«à¸¡à¹ˆà¸­à¸±à¸›à¹€à¸”ตรายà¸à¸²à¸£à¹€à¸¡à¸™à¸¹à¹à¸¥à¹‰à¸§ เปิดดูรายà¸à¸²à¸£à¸‚้อความส่งข้อความข้อความMetadataตารางเวลาผิดพลาดความเข้าà¸à¸±à¸™à¹„ด้à¸à¸±à¸šà¸¡à¸·à¸­à¸–ือ:โหมด:คลังเà¸à¹‡à¸šà¸£à¸²à¸¢à¹€à¸”ือน: %sของเà¸à¹ˆà¸²à¸£à¸²à¸¢à¹€à¸”ือนเพิ่มเติมข้อมูลเพิ่มเติมชื่อโปรเจ็คใหม่ความเห็นที่ใหม่à¸à¸§à¹ˆà¸² →ล่าสุดต่อไปต่อไปไม่ไม่พบโปรเจ็คไม่พบโปรเจ็คในถังขยะไม่พบปลั๊à¸à¸­à¸´à¸™à¹„ม่มีคำà¹à¸™à¸°à¸™à¸³à¹„ม่พบป้ายà¸à¸³à¸à¸±à¸šà¹„ม่พบธีมไม่พบข้อผิดพลาดในบทความไม่มีไม่พบสิ่งใดข่าวถึงคุณตà¸à¸¥à¸‡à¹€à¸à¹ˆà¸²à¸à¸§à¹ˆà¸² %sไม่มีส่วนย่อยเปิดใช้เปิดลิงà¸à¹Œà¹ƒà¸™à¸«à¸™à¹‰à¸²à¸•่างหรือà¹à¸—็บใหม่ตัวเลือà¸à¸ªà¸µà¸ªà¹‰à¸¡à¸ˆà¸±à¸”ลำดับหน้า %sหน้า:à¸à¸£à¸£à¸¡à¸§à¸²à¸ˆà¸ (ผู้ถูà¸à¸à¸£à¸°à¸—ำ)Pathลิงà¸à¹Œà¸–าวรไป %sโทรศัพท์:วลีที่หลีà¸à¹€à¸¥à¸µà¹ˆà¸¢à¸‡Pingback:สีชมพูปลั๊à¸à¸­à¸´à¸™à¹€à¸”่นสุดส่งความเห็นโพสต์ผ่านอีเมลเมนูนำทางเรื่องà¹à¸ªà¸”งความเห็นโดยโพสต์โดย %s เขียนใน %sเรื่องหน้าเรื่องPress Thisดูà¸à¹ˆà¸­à¸™à¹€à¸¡à¸™à¸¹à¸«à¸¥à¸±à¸à¸žà¸´à¸¡à¸žà¹Œà¸ªà¹ˆà¸§à¸™à¸•ัวนโยบายความเป็นส่วนตัวโปรเจ็คประเภทของโปรเจ็คประเภทของโปรเจ็คอัปเดตà¸à¹‚ปรเจคà¹à¸¥à¹‰à¸§ ดูรายà¸à¸²à¸£à¹‚ครงà¸à¸²à¸£à¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸­à¸±à¸à¸©à¸£à¸šà¸—ความà¸à¸²à¸£à¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸­à¸±à¸à¸©à¸£à¸ à¸¹à¸¡à¸´à¹ƒà¸ˆà¸™à¸³à¹€à¸ªà¸™à¸­à¹‚ดย %sประชาสัมพันธ์เผยà¹à¸žà¸£à¹ˆà¹€à¸œà¸¢à¹à¸žà¸£à¹ˆà¸ªà¸µà¸¡à¹ˆà¸§à¸‡à¸ˆà¸±à¸”อันดับเรื่องล่าสุดสีà¹à¸”งวลีที่ซ้ำซ้อนโพสที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้องโพสที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้องคำที่ซ้ำà¸à¸±à¸™à¹à¸—นที่ theme's CSS (ขั้นสูง)à¹à¸—นที่ส่วนที่เลือà¸à¸”้วย:à¸à¸²à¸£à¹à¸—นที่ตอบà¸à¸¥à¸±à¸š à¸à¸¹à¹‰à¸„ืนà¸à¸¹à¹‰à¸„ืนสิ่งนี้จาà¸à¸–ังขยะขวาบันทึà¸à¸šà¸±à¸™à¸—ึà¸à¹à¸¥à¸°à¸‹à¸·à¹‰à¸­à¸à¸²à¸£à¸­à¸±à¸›à¹€à¸à¸£à¸”บันทึà¸à¸à¸²à¸£à¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸ˆà¸±à¸”ตารางเวลาค้นหาค้นหาความเห็นค้นหาทุà¸à¸­à¸¢à¹ˆà¸²à¸‡à¸„้นหาสื่อค้นหารายà¸à¸²à¸£à¹€à¸¡à¸™à¸¹à¸„้นหาปลั๊à¸à¸­à¸´à¸™à¸„้นหาโปรเจ็คผลลัพท์à¸à¸²à¸£à¸„้นหาสำหรับ: %sà¹à¸žà¸¥à¸•ฟอร์มà¸à¸²à¸£à¹€à¸œà¸¢à¹à¸žà¸£à¹ˆà¸„วามหมายส่วนบุคคลส่งมาจาà¸à¸œà¸¹à¹‰à¹€à¸¢à¸µà¹ˆà¸¢à¸¡à¸Šà¸¡à¹€à¸§à¹‡à¸šà¸‚องคุณ (คนนี้่ยังไม่เคยผ่านà¸à¸²à¸£à¸•รวจสอบ)à¹à¸¢à¸à¸›à¹‰à¸²à¸¢à¸à¸³à¸à¸±à¸šà¸”้วยคอมม่า (,)ตั้งค่าà¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¹à¸šà¹ˆà¸‡à¸›à¸±à¸™à¹à¸ªà¸”งà¹à¸ªà¸”งà¹à¸œà¸™à¸—ี่à¹à¸ªà¸”ง:สีเงินรูปไอคอนเว็บชื่อเว็บเว็บไซต์ข้ามไปยังเนื้อหาหลัà¸à¹€à¸£à¸µà¸¢à¸‡à¹‚ดย:สà¹à¸›à¸¡à¸à¸²à¸£à¸ªà¸°à¸à¸”สถิติบันทึภStylesheet เรียบร้อยà¹à¸¥à¹‰à¸§.ชื่อเรื่องส่งสมัครรับข้อมูลช่วยเหลือชื่อป้ายà¸à¸³à¸à¸±à¸šà¸›à¹‰à¸²à¸¢à¸à¸³à¸à¸±à¸šà¹€à¸‡à¸·à¹ˆà¸­à¸™à¹„ขà¸à¸²à¸£à¸šà¸£à¸´à¸à¸²à¸£à¸‚้อความตัวพิสูจน์อัà¸à¸©à¸£à¸¡à¸µà¸„ำà¹à¸™à¸°à¸™à¸³à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸£à¸·à¹ˆà¸­à¸‡à¸™à¸µà¹‰ คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸£à¸¶à¹€à¸›à¸¥à¹ˆà¸²à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸­à¸±à¸›à¹€à¸”ตมัน? à¸à¸” OK เพื่อเผยà¹à¸žà¸£à¹ˆà¹€à¸£à¸·à¹ˆà¸­à¸‡à¸‚องคุณ หรือà¸à¸” Cancel เพื่อดูคำà¹à¸™à¸°à¸™à¸³à¹à¸¥à¹‰à¸§à¹à¸à¹‰à¹„ขเรื่องของคุณ ตัวพิสูจน์อัà¸à¸©à¸£à¸¡à¸µà¸„ำà¹à¸™à¸°à¸™à¸³à¸ªà¸³à¸«à¸£à¸±à¸šà¹€à¸£à¸·à¹ˆà¸­à¸‡à¸™à¸µà¹‰ คุณà¹à¸™à¹ˆà¹ƒà¸ˆà¸£à¸¶à¹€à¸›à¸¥à¹ˆà¸²à¸§à¹ˆà¸²à¸•้องà¸à¸²à¸£à¸­à¸±à¸›à¹€à¸”ตมัน? à¸à¸” OK เพื่ออัปเิดตเรื่องของคุณ หรือà¸à¸” Cancel เพื่อดูคำà¹à¸™à¸°à¸™à¸³à¹à¸¥à¹‰à¸§à¹à¸à¹‰à¹„ขเรื่องของคุณมีปัà¸à¸«à¸²à¹ƒà¸™à¸à¸²à¸£à¸”ึงข้อมูลที่อยู่นี้มาà¹à¸ªà¸”งบนà¹à¸œà¸™à¸—ี่ à¸à¸£à¸¸à¸“าโหลดหน้าจอเบราว์เซอร์ใหม่à¹à¸¥à¹‰à¸§à¸¥à¸­à¸‡à¸­à¸µà¸à¸„รั้งมีความผิดพลาดในà¸à¸²à¸£à¸ªà¸·à¹ˆà¸­à¸ªà¸²à¸£à¸à¸±à¸šà¸šà¸£à¸´à¸à¸²à¸£à¸žà¸´à¸ªà¸¹à¸ˆà¸™à¹Œà¸•ัวอัà¸à¸©à¸£à¸„ลังรูปนี้ประà¸à¸­à¸šà¸”้วย รูป %2$sà¸à¸£à¸°à¸—ู้นี้ถูà¸à¸›à¹‰à¸­à¸‡à¸à¸±à¸™à¸”้วยรหัสผ่าน.เรื่องนี้มีรหัสผ่านป้องà¸à¸±à¸™ ใส่รหัสผ่านเพื่อดูความเห็นใด ๆรูปขนาดเล็à¸à¹€à¸§à¸¥à¸²à¸«à¸±à¸§à¸‚้อหัวข้อ:เรื่องยอดนิยมถังขยะTumblrชนิดชนิดURLไม่มีหมวดหมู่ยังไม่เผยà¹à¸žà¸£à¹ˆà¹€à¸›à¸¥à¸µà¹ˆà¸¢à¸™à¹à¸›à¸¥à¸‡à¸•ัวเลือภ%s เป็น "%s"อัปโหลดรูปภาพà¸à¸³à¸¥à¸±à¸‡à¸­à¸±à¸›à¹‚หลด...ใช้à¸à¸²à¸£à¸•รวจจับภาษาอัตโนมัติเพื่อพิสูจน์อัà¸à¸©à¸£à¹€à¸£à¸·à¹ˆà¸­à¸‡à¹à¸¥à¸°à¸«à¸™à¹‰à¸²à¸Šà¸·à¹ˆà¸­à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰à¸„่าบริà¸à¸²à¸£à¸¢à¸·à¸™à¸¢à¸±à¸™à¸•ัวดูทั้งหมดดูโปรเจ็คเว็บไซท์สีขาวY/m/dY/m/d g:i:s Aคลังเà¸à¹‡à¸šà¹à¸šà¸šà¸›à¸µ: %sคุณสามารถใส่อีเมลล์ได้หลายอันที่นี่à¹à¸¥à¸°à¹à¸¢à¸à¹à¸•่ละอีเมลล์ด้วยลูà¸à¸™à¹‰à¸³ (,) อีเมลล์ประà¸à¸²à¸¨à¸ˆà¸°à¸–ูà¸à¸ªà¹ˆà¸‡à¹„ปที่à¹à¸•่ละอีเมลล์ให้เองใช่คุณไม่มีสิทธิ์ย้ายสิ้งนี้ออà¸à¸ˆà¸²à¸à¸–ังขยะคุณไม่มีสิทธิ์ย้ายรายà¸à¸²à¸£à¸™à¸µà¹‰à¹„ปถังขยะคุณไม่ได้รับอนุà¸à¸²à¸•ให้สวิตช์ไปใช้ธีมนี้ได้คุณจะต้องระบุปลั๊à¸à¸­à¸´à¸™à¸—ี่ต้องà¸à¸²à¸£à¹€à¸›à¸´à¸”ใช้งานคุณไม่มีสิทธิ์เข้าถึงหน้านี้ชื่อของคุณความเห็นของคุณà¸à¸³à¸¥à¸±à¸‡à¸£à¸­à¸•รวจสอบเผยà¹à¸žà¸£à¹ˆà¹€à¸£à¸·à¹ˆà¸­à¸‡à¸«à¸£à¸·à¸­à¸«à¸™à¹‰à¸²à¸„รั้งà¹à¸£à¸à¹à¸¥à¹‰à¸§à¸­à¸±à¸›à¹€à¸”ตเรื่องหรือหน้าà¹à¸¥à¹‰à¸§à¹à¸¥à¸°à¸¢à¸à¹€à¸¥à¸´à¸à¸„ลิ้à¸à¸—ี่นี่วันà¹à¸à¹‰à¹„ขà¹à¸à¹‰à¹„ขข้อความhttp://th.wordpress.org/à¸à¸³à¸¥à¸±à¸‡à¹‚หลดข้อมูล…เดือนความเห็นพิสูจน์อัà¸à¸©à¸£à¸„้นหาทุà¸à¸­à¸¢à¹ˆà¸²à¸‡à¸ªà¸±à¸›à¸”าห์จำนวนคำplugins/jetpack/languages/jetpack-es_CL.mo0000755000312500031250000000131512651056012021166 0ustar eacbforgeacbforgÞ•L |¨)© Óô60ìg5T<ŠÇÉËNotify me of follow-up comments by email.Notify me of new posts by email.Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... PO-Revision-Date: 2015-08-31 09:44:09+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: GlotPress/1.0-alpha-1100 Project-Id-Version: dev Notifícame sobre respuestas por correo electrónico.Notifícame sobre nuevos artículos por correo electrónico. plugins/jetpack/languages/jetpack-gd.mo0000755000312500031250000013716712651056012020612 0ustar eacbforgeacbforgÞ•ž ‹ü)(8)8@8|S8 Ð8 Ý8ë8ò899 )9 49?9N9W9^9b9 s99 ‰9—9¬9¼9Ð9å9ù9 ::.:7:J:Z:c:i: m:x:Š:›: ­:º:Ë:Ü:ï: ; ;;,;*<;g;p;w;‡;š;­;k¾;*< 0<:<?< S<`<d<2k<(ž<Ç< Î<Û<ä<í<ö< ý< ==+=:= C= Q=r= ‘=#œ=À=Û=ô= >&>@> F>S>CY>,>"Ê> í>\ú>?W?—?*¦?Ñ?Ø?à?ñ? ú?@ @5@O@`@ p@{@@”@ª@¿@Õ@ ë@ù@ AA8A=ALAQA VAaAGiAq±A#B*B=B ZB fBqB„BŒB B/¸B$èB3 C5AC$wC6œCSÓC%'DMD VD`DvDŸ}DE"E +E6EEE WEdEuE‡E˜EªE¾E ÄEÒEäEøE FF#F43FhF‡F§FÀFÚFùFG*G5AG8wG °G»GÒGÛGíGöGHH H 4H ?H LH YHeH uHE€HÆHÜHäHéH îHùHIIII &I*3I^I cI„I‰II ¤I°I µI ÁI ËIÖIÜIíI J J J&J 6J BJ MJZJbJ kJxJ‰J‘J¢J²J»J?ÁJ=KG?K\‡KfäKKLQRL¤L­L ³LÁL ÑL ÜLçL MM$M)M/M 4M?MEMYMjM|M…M.ŽM½MQÜM .N;NLN \NgN lN yN†N¤N¾NÇN2ØN O O O)O0O 5O ?O LO/ZOŠO›O®O ¶OÃOÌOÕO åOñOPP P"P 'P1P HPTPiPP‡P —P¡P ¨PµP ¸PÃPÓP ìP öP Q QQ ,Q9QOQnQ €QŒQžQ­Q¼QÍQ ÒQ àQ îQ3üQF0R0wR)¨R3ÒRSS:SKS TS_S!sSF•SÜSùST+T3T:T@THTOTcTxTŒT¡T¦T¶TÅT ÌTÖT%ÛT U"U4UHUPUWU_UtU-‡U µU ÂU ÎUÜU ìU ÷U VVV (V 3V>VFV3OVƒV ‰V–VœV ¤V²V ºV ÆV ÓV àVLîV0;W$lW‘W` WCXEX+VX‚X ‹X •X X ¨X²X<¹XöX üX Y YY"Y)Y 1Y?Y EYOYmY6‹YÂY ÊYëYôYúY ÿY ZZ+Z ;ZEZ LZZZjZ|Z ŒZ™Z®Z½ZÑZæZöZ [[ 5[@[\[ v[(ƒ[ ¬[¸[Á[Ú[à[ò[ \ \\"\ 3\ ?\ M\W\h\m\€\\¤\O¸\] ]$] -]N]d]„]˜]³].¹]'è] ^^ %^ 2^ <^ F^Q^o^ u^^…^^@’^Ó^Ü^Iá^+_4_ I_V_\_c_u_}_ „_ ’_œ_¬_´_½_Â_Û_ ì_ø_`1`OH`8˜`(Ñ`ú`h aKvaÂa6×a bb b 3b =b GbQb™Zb]ôb RcB_cr¢cYd%od •dI¶d^e#_e ƒeeœe ¬e¹e¿eÏeÕe Üeæeeüe bfof†fŒf“f›f¬f¾fÃfÉfÌf Ðf Þf êf öfgg(g;g Og \gig!„g(¦g:ÏgH hHShœh¥h «h¶h ÈhÔh æh òhýh ii*i9iKi\inii ‘iœiµi&Æi&íi¼jÑjJÙj $kEkXk ^kJik ´k ÂkÎkêkþkl l%l¤5lÚl(Þl(m70m3hm;œmsØmîLnQ;oo§o ºo_Äo6$p$[p%€p[¦pqqq %q/q3q8qWq ]q ~q'‹qQ³q rr!r0rBrRrdrtrˆr—r§r·r ÈrÕrär õr ss&s1=s-os#tÁtŒÙt futu ƒuŽužu®u Ìu Ùuåuþu vv"v=vYvkv"†v©vÁv$ßvww.wEw\w&rw™w ®w¸w¾wÇwÞwýwx6xJxZxqxx §xµxÏxêx6y7y @yMy!cy…yžy°y@zEzTzYzpz„zˆz=z,Íz úz{ {&{ /{={D{_{|{—{¯{ ¾{4Ì{4| 6|?C|*ƒ|(®|×|õ|)}=}C}U}og}X×}:0~(k~‰”~c&‚S©ý€ €:€C€ L€Z€7r€ª€È€Ù€é€ $.+S'§º Õ%à‚ ‚"‚ )‚3‚ C‚N‚W‚ i‚s‚…‚ ¢‚ ®‚¼‚ Ò‚ß‚ü‚4ƒ:JƒA…ƒ8ǃ4„:5„ep„+Ö„……&)…P…ÜW…4†=†M†k†"І­†Ćᆇ‡3‡L‡S‡ k‡Œ‡£‡‡Ö‡ò‡=ˆCˆ'bˆ.Šˆ"¹ˆ܈!ûˆ ‰:'‰Gb‰ª‰ ³‰!¾‰à‰é‰ ÿ‰ Š!Š6Š)FŠpŠŠ“ХР¸Š ÆŠVÔŠ+‹I‹R‹b‹d‹ v‹‚‹‰‹›‹¡‹ ¨‹(µ‹Þ‹0æ‹ Œ!Œ3ŒOŒ _ŒlŒ„ŒšŒ°Œ·Œ5ÏŒ%9P`o ‹› ¯ÐØ éöŽ ŽŽ Ž&Ž /Ž ;ŽcFŽªŽ±Ž¶ŽÐŽïŽ"> MY^goˆ/ž'Îö A$)fr‘‘+‘@‘ P‘ ]‘#i‘7‘6Å‘ü‘’?’W’_’p’ ƒ’Ž’’³’Í’Fé’,0“)]“‡“–“°“Á“Ê“"è“ ” ”)”@”O”T”"j””œ”&¼” ã”í”ü”••!• *•"5•6X••Ÿ• ®•º•$Ô•ù•$–/7– g–&ˆ–¯–È–Ø–ø– — — +—8—@—H— P—Z— _—l—*o—š— ­—¹—Ï—.ì— ˜%˜*)˜ T˜ u˜˜ˆ˜ ˜ œ˜#¨˜$̘"ñ˜#™8™?™V™n™ t™~™0ƒ™&´™!Û™!ý™š'š/š#HšlšQƒšÕšäš÷š ›#›6›K›e›k›~› › ›› ¥›W³› œœ )œ5œEœ Zœeœyœ“œªœaÇœI)4s#¨{ÌUHžžž>¾ž ýž ŸŸ +Ÿ 5ŸAŸZJŸ ¥Ÿ³Ÿ Ÿ ÍŸØŸÞŸåŸôŸ   % ' ) + 1  L X ] f „  ¸ Í Ý â ÿ ¡ 0¡>¡'Q¡y¡'Š¡(²¡Û¡ñ¡¢0¢L¢'a¢‰¢¨¢ »¢Æ¢ á¢#í¢££0£ D£R£ b£o£‹£££ ·£Á£Û£ ᣤ¤ 6¤iW¤Á¤Õ¤ ñ¤.ÿ¤.¥(K¥t¥)’¥¼¥Ã¥CÆ¥ ¦¦%¦6¦O¦h¦9¦ ¹¦ŦÞ¦ã¦ë¦Zó¦N§b§—h§ ¨ ¨#¨9¨ ?¨'I¨q¨ y¨…¨ ˜¨¤¨¶¨ »¨ ȨÓ¨ê¨ ©"©02© c©a„©Jæ©41ª#fª{ŠªU«\«E|« «Ï«Ö«ö« ¬¬ #¬³/¬k㬠O­]]­ˆ»­ D®*P®({®c¤®¯4™¯ ίۯ卽° °7°>°F°Y°Žt°±± .±8±?±G± [±i± q±±„±ˆ±š±­±ȱر!ð±².²M²f²!{²,²)ʲ ô²ÿ²³ ³³ %³0³ F³S³ e³ q³|³‹³¦³ųݳý³´4´H´ \´%j´´>«´:ê´Û%µ ¶‡¶+–¶¶Û¶ à¶ î¶ø¶ · ·6·J·]· c·q·›ˆ·$¸$(¸0M¸7~¸5¶¸F측3¹Õ¹bÙº.<»k»‹»‚“»6¼/M¼ }¼†ž¼%½*½ 1½=½F½L½ U½a½ g½s½z½€½ ‡½‘½¯½¶½¿½ƽϽ Ö½ á½í½ô½û½¾ ¾¾4¾ N¾ X¾b¾h¾×6vÈvðUа$LE¨ˆcܸCw½žz%¸Ø ²__ ZÝ~ k‰ŽÏ ÷ÖˆßfÏ)tf`3%ÙJ‘’ pmWZ'=*º–u­¦S~þi·÷ â2›§`#D0.9ïîMH!»&X9ó\x.nÎ"(|„¥PI±nµGÄÜ©O!k{9]Âgn &EBþ7ØÄšâsCŸÚ-q(Ó6\?1û<(¤kJl0ÚOéçdÑÌ,ÍÒ ê¾xPœAí‹Ë€™mwÀ]Åßi‹*Ã-ò„ŠgåÈeV•†R‘Žá'‡lÌa—Á•bùµÊ5í†:†"UŪa1oWà“ÕEÊM³¥´r¡ÉSu¬6¡qu gÍ|'zZÇ›˜ôÆãdpº?€Fq I‰mVŽ–eF3= —Ðì+ƒá "™@…¨’}ø+‘ž[4˜[Ð[Œ·;dj´s#³‚“¦šTfø) h^L{‚¯öü¶R¼U¿ÿrïY¹ŠA²Hª+>ˆxó— ¼@èɱ›yD¬AwM`^RBF ƒeàö_yÛ„ûv矇šh)lCÎ ”j’|¢ñÒ¯8°–IôÔ«&©‡XzÑ3ÂJ50o/b€:4Ëj{.…oÿ/£/L<å‹¢i2:K®ÆPãõ¤Û ­NÀQ,ÞY~>“bQK!#ë¿Á¶a]=}‚«YD”œ;O*\¾ct£ž2§»cÙQ…”H‰rý8<õéò5T˜@$ìGWæ8 T™1ùÇt>ýëü B;ŒN½æs}úVèGêƒKÕ7úו$Þ,pÓ䜹ÖðÔ ñî®^%häNÝS?Œ7yÃ-4X (Opens in new window)# of Tweets Shown:%1$s = "Feedback" in an HTML linkYep, you can read your feedback at any time by clicking the "%1$s" link in the admin menu.%1$s at %2$s%s (Required)%s ago%s is required« Previous— Select —(no title)(required)404 error pageActivateActiveAddAdd Contact FormAdd Menu ItemAdd NewAdd New ComicAdd New Menu SectionAdd New ProjectAdd New Project TagAdd New Project TypeAdd New TestimonialAdd a new fieldAdd a new serviceAdd another optionAdd logoAdd or remove tagsAdd to section:Address:AlbumAllAll ComicsAll Menu SectionsAll Project TagsAll Project TypesAll ProjectsAll TestimonialsAll author pagesAll category pagesAll date archivesAll postsAll tag pagesAll taxonomy pagesAlternate text:An error occurred. Please try again later.ApertureArtistAttachment PageAvailable ServicesBack to Top ↑Background colorBefore you hit Publish, please refresh the following connection(s) to make sure we can Publicize your post:BlackBlog URL:BlueBorder Color (hex):Button styleCSSCameraCan I send a notification to more than one person?Can I view my feedback within WordPress?CancelCancel replyCaption:CarouselCategoryCenterChange logoChart stats byCheatin’ uh?Check for SpamCheckboxChoose ImagesChoose from the most used LabelsChoose from the most used tagsClick hereClick to autoplay the presentation!Click to share on LinkedInClick to share on PocketClick to share on RedditClick to share on TumblrClick to share on TwitterCloseColor SchemeComicComic draft updated. Preview comicComic published. View comicComic restored to revision from %sComic saved.Comic scheduled for: %1$s. Preview comicComic submitted. Preview comicComic updated.Comic updated. View comicComicsCommentCommenting as %sCommentsConfigureConnectContact InfoContinue reading →Convert to ComicConvert to PostCrop ImageCurrently ReadingCustomCustom CSS StylesheetCustom Email AddressCustom field deleted.Custom field updated.Customer NameCustomer TestimonialsCustomizeCustomize Testimonials ArchiveDOWNDaily archivesDarkDateDeactivateDefaultDefault label for new HTML form field in contact form builderNew FieldDefault label for the first option to be included in a user-created dropdown in contact form builderFirst optionDeleteDelete PermanentlyDelete this item permanentlyDescriptionDisconnectDisconnect JetpackDismissDisplay Header TextDisplay WordPress PostsDisplay a mini version of your Gravatar ProfileDisplay a photo gallery or slideshowDisplay all your gallery pictures in a cool mosaic.Display an official Twitter Embedded Timeline widget.Display tag content in all listings.Display your location, hours, and contact information.Displays a list of recent posts from another WordPress.com or Jetpack-enabled blog.Don't show the Reblog button on postsDownloadDrop downDrop images to uploadE-mailEasily feature all posts with the "featured" tag or a tag of your choice. Your theme supports up to %2$s posts in its featured content area.EditEdit CSSEdit ComicEdit Menu ItemEdit Menu SectionEdit ProjectEdit Project TagEdit Project TypeEdit TestimonialEdit Your ProfileEdit this new fieldEmailEmail AddressEmail me wheneverEmail notificationsEmail settingsEmpty SpamEnabled ServicesEnglish OptionsEnter a WordPress.com or Jetpack WordPress site URL.Enter the customer's name hereEnter the menu item's name hereEnter your email addressError in moving to Trash.Error in restoring from Trash.Error loading profileError!Error: please enter a valid email address.Error: please fill the required fields (name, email).Example: The user is looking at a page, not a post.PageExplain...Export feedback as CSVFacebookFacebook Page URLFeaturedFeatured ContentFeatured ImagesFeedbackFeedback discarded.Field typeFirst optionFocal LengthFollow BlogFollow CommentsFood MenusFor example, spicy, favorite, etc.
        Separate Labels with commasFor more information:Format:FreeFromFront pageGalleryGoogleGravatar ProfileGreenHeightHeight (px):Here’s what your form will look likeHideHide related content after postsHomeHours:How does this work?IP Address:IconIcon + textIcon onlyIgnore allImageImage Alignment:Image Gallery SlideshowImage GridImage LinkImage ListImage Settings:Image Size:Image URL:Image title:Images:InactiveInsert VideoInvalid usernameJetpackJetpack CommentsJetpack SupportJump to:LabelLabel for HTML form "Email" field in contact form builderEmailLabel for HTML form "Name" field in contact form builderNameLabel for HTML form "URL/Website" field in contact form builderWebsiteLabel for an option to be included in a user-created dropdown in contact form builderOptionLabel for the set of options to be included in a user-created dropdown in contact form builderOptionsLabelsLabels: spicy, favorite, etc. Separate Labels with commasLanguageLargeLast ModifiedLayout Options:Learn MoreLearn moreLearn more about Markdown.Leave a ReplyLeave a Reply to %sLeftLightLikeLike this:LikesLikes NotificationsLikes and SharesLink Color (hex):Link To:LinkedInLinks to services that you use across the web.Links to your blog's RSS feedsLinks to your websites, blogs, or any other sites that help describe who you are.Live PreviewLoading …Loading…Loading...LogoM j, Y @ G:iMark as SpamMark this message as NOT spamMark this message as spamMarkdownMarkdown contentMaximum number of posts to show (no more than 10):MediaMedia FileMedia Width:MediumMenuMenu ItemMenu SectionMenu SectionsMenu item published. View itemMenu item saved.Menu item updated.MessageMessage SentMessagesMetadataMissed scheduleMobile AppsMonthly archivesMoreMore informationMy TweetsNameNew ComicNew Menu Sections NameNew ProjectNew Project Tag NameNew Project Type NameNew RowNew TestimonialNew fieldNewestNext »NoNo BordersNo Comics foundNo Comics found in TrashNo FooterNo HeaderNo LabelsNo Labels foundNo Projects foundNo ScrollbarNo Testimonials foundNo Testimonials found in TrashNo feedback foundNo logo setNo plugins found.No suggestionsNo tags found.No themes found.NoneNot ConnectedNot connectedNotificationsNoun, as in: "The author of this post is..."AuthorNoun, as in: "The user role of that can access this widget is..."RoleNoun, as in: "This page is a date archive."DateNoun, as in: "This post has one tag."TagNoun, as in: "This post has one taxonomy."TaxonomyNova label separator, Number of Posts to Display:Official buttonsOlder %sOmnisearchOn for all commentsOnly images can be uploaded here.Open Sans font: add new subset (greek, cyrillic, vietnamese)no-subsetOpen Sans font: on or offonOpen link in a new window/tabOpens in new windowOptionsOrangeOrderPage %sPages:Parent Menu SectionParent Menu Section:Parent Project TypeParent Project Type:PathPermalink to %sPersonal LinksPhone:Pingback:PinkPlease provide a valid email address.Please provide an email address.Plugin activated.Plugin deactivated.PluginsPocketPopularPopular Project TagsPortfolio ProjectsPortfolio pages display at most %1$s projectsPost CommentPost by %s.Post by EmailPost navigationPost type:Posted by %sPosted in %sPostsPosts & CommentsPosts pagePress ThisPreviewPreview:Preview: changes must be saved or they will be lostPricePrimary MenuPrintPrivacyProcessing...ProjectProject TagProject TagsProject TypeProject TypesProject item draft updated. Preview projectProject published. View projectProject restored to revision from %sProject saved.Project scheduled for: %1$s. Preview projectProject submitted. Preview projectProject updated.Project updated. View itemProjectsPublicizePublicize:PublishPublishedPurplePut your mouse over your Gravatar to check out your profile.RadioRandom Order:RatingRecent PostsRedRedditRelatedRepeated WordReplyRequired?Resetting Jetpack Options... Resetting default modules... Resetting the jetpack options stored in wp_options... RestoreRestore this item from the TrashResults:RightSaveSave ChangesSave New OrderSave StylesheetSave this fieldScheduledSearchSearch ComicsSearch CommentsSearch EverythingSearch FeedbackSearch MediaSearch Menu SectionsSearch PluginsSearch Project TagsSearch Project TypesSearch ProjectsSearch TestimonialsSearch resultsSelect feedback to downloadSend EmailSent by a verified %s user.Separate tags with commasService nameService: Account connected as%1$s: %2$sSet as logoSettingsSettings have been savedShareShare on FacebookShare on TumblrShare this:Shared PostSharingSharing SettingsSharing URLSharing labelShortcodeShortcode EmbedsShowShow Account LinksShow Excerpts:Show Featured Image:Show Personal LinksShow a "Related" header to more clearly separate the related section from postsShow buttons onShow likes.Show mapShow related content after postsShow sharing buttons.Show the Reblog button on postsShow top posts overShow top search terms overShow:Shown between widget visibility conditions.orShows your most viewed posts and pages.Shutter SpeedSilverSimilar postSite IconSite LogoSite StatsSite Title, Tagline, and LogoSitesSlideshowSmallSnippetSnowSorry, your browser isn't supported. Upgrade at browsehappy.com.Sort by:SpamSpam (%s)Spam (%s)SpellingSpelling and GrammarStatic page:StatsStyle:Stylesheet saved.SubjectSubmitSubmit »SubscribeSubscribe to %sSupportTag nameTagsTake WordPress with you.Terms of ServiceTestimonialTestimonial Page ContentTestimonial Page Featured ImageTestimonial Page TitleTestimonial draft updated. Preview testimonialTestimonial published. View testimonialTestimonial restored to revision from %sTestimonial saved.Testimonial scheduled for: %1$s. Preview testimonialTestimonial submitted. Preview testimonialTestimonial updated.Testimonial updated. View testimonialTestimonialsTextText & Image LinksText LinkText ListText onlyTextareaThe proofreader supports English, French, German, Portuguese, and Spanish. Your user interface language (see above) is the default proofreading language.The settings for Featured Content have moved to Appearance → Customize.Theme: %1$s.There are no posts to display. Want more traffic?There was a problem getting the data to display this address on a map. Please refresh your browser and try again.This HTML form field is marked as required by the user in contact form builder(required)This connection is working correctly.This post is password protected.This post is password protected. Enter the password to view any comments.This slideshow could not be started. Try refreshing the page or viewing it in another browser.This slideshow requires JavaScript.ThumbnailThumbnail GridTiled GalleriesTiled MosaicTime:Timeline Theme:TitleTitle:Top PostsTop Posts & PagesTop Posts & Pages by views are calculated from 24-48 hours of stats. They take a while to change.Top SearchesTransparent BackgroundTrashTumblrTwitterTwitter TimelineTwitter username:TypeTypesUPURLUncategorizedUnpublishedUnsubscribeUntitled PostUpcoming EventsUpdate Menu SectionUpdate Project TagUpdate Project TypeUpload ImageUploading...Use Markdown for comments.Use Markdown for posts and pages.Use a large and visually striking layoutUsed as the default option in a dropdown list-- Select --Used in the "%s if:" translation for the widget visibility dropdownHideUsed in the "%s if:" translation for the widget visibility dropdownShowUsernameValueVaultPressVerified ServicesVideo on %sVideo post by %s.Video post.VideoPressView AllView ComicView Full Profile →View Full SiteView Menu SectionView Project TagView Project TypeView TestimonialView on InstagramVisibilityVisit the post for more.WP.me ShortlinksWe cannot display posts for this blog.We cannot load blog data at this time.We’ve changed this option to a click-to-scroll version for you since you have footer widgets in Appearance → Widgets, or your theme uses click-to-scroll as the default behavior.WebsiteWelcome to Custom CSS! To learn how this works, see http://wp.me/PEmnE-BtWhat should the subject line be?What's a Gravatar?WhiteWidget ID:Widget Visibility: {Rule Major [Page]} is {Rule Minor [Search results]}isWidget title:Width (px):WordPress.com Reblog ButtonWordPress.com StatsWrite a Comment...Y/m/dY/m/d g:i:s AYearly archivesYep. You can enter multiple email addresses in the Email address field, and separate them with commas. A notification email will then be sent to each email address.YesYou are not allowed to make this change.You are not allowed to manage this item.You are not allowed to move this item out of the Trash.You are not allowed to move this item to the Trash.You do not have sufficient permissions to access this page.You have chosen not to connect your blog. Please click 'accept' when prompted if you wish to connect your accounts.You need to create a widget at Twitter.com, and then enter your widget id (the long number found in the URL of your widget's config page) in the field below. Read more.You need to select what to show in this Gravatar Profile widget.Your Custom Content TypesYour Email AddressYour NameYour Portfolio Archive currently has no entries. You can start creating them on your dashboard.Your blog does not currently have any published posts.Your comment is awaiting moderation.Your new field was saved successfullyYour upload didn't complete; try again later or cross your fingers and try again right now.andas sharing sourceEmailcancelconfiguredayeditin {category/tag name}In "%s"monthmy list of books to readTo ReadnounCommentpast participle: books I have readReadplaceholder: dropdown menu to select widget visibility; hide if or show if%s if:proofreadsearch everythingshare toEmailshare toFacebookshare toGoogleshare toLinkedInshare toPocketshare toPress Thisshare toPrintshare toRedditshare toTumblrshare toTwitterthe past daythe past monththe past quarterthe past weekthe past yearweekword count: words or characters?words{$date_format} \a\t {$time_format}%1$s \a\t %2$sPO-Revision-Date: 2015-07-20 01:42:08+0000 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3; X-Generator: GlotPress/1.0-alpha-1000 Project-Id-Version: 3.6.1 (Fosglaidh seo ann an uinneag ùr)# de Tweets a chithear:Seadh, 's urrainn dhut na beachdan agad a leughadh uair sam bith 's tu a' briogadh air a' cheangal "%1$s" ann an clàr-taice nan rianairean.%1$s aig %2$s%s (Riatanach)%s air aisTha feum air %s« Air ais— Dèan taghadh —(gun tiotal)(riatanach)Duilleag na mearachd 404Cuir an gnìomhGnìomhachCuir risCuir foirm conaltraidh risCuir ball clàir-thaice risCuir fear ùr risCuir pàipear-èibhinn risCuir earrann clàir-thaice ùr risCuir pròiseact ùr risCuir taga pròiseict ùr ris Cuir seòrsa ùr de phròiseact ris Cuir teisteanas ùr risCuir raon ùr risCuir seirbheis ùr risCuir roghainn eile risCuir suaicheantas risCuir ris no thoir air falbh tagaicheanCuir ris an earrann:Seòladh:AlbamA h-uileGach pàipear-èibhinnGach earrann a' chlàir-thaiceA h-uile taga pròiseictA h-uile seòrsa de phròiseactA h-uile pròiseactGach teisteanasGach duilleag ùghdairGach duilleag roinn-seòrsaGach tasg-lann cheann-làA h-uile postGach duilleag thagaicheanGach duilleag tacsonamaidhRoghainn teacsa eile:Thachair mearachd. Feuch ris a-rithist an ceann greis.ApertureNeach-ciùilDuilleag ceanglachainSeirbheisean a tha ri am faighinnAir ais gun bharr ↑Dath a' chùlaibhMus briog thu air "Foillsich", ath-nuadhaich na ceanglaichean a leanas gus dèanamh cinnteach gun urrainn dhuinn am post agad Publicize-igeadh:DubhURL a' bhloga:GormDath an iomaill (hex):Stoidhle a' phutainCSSCamaraAn urrainn dhomh brath a chur gu iomadh duine aig an aon àm?Am faic mi mo bheachdan am broinn WordPress?Sguir dhethSguir dhen fhreagairtCaipsean:Carouselroinn-seòrsaCenterAtharraich an suaicheantasStadastaireachd na cairte leRi cealgaireachd, a bheil?Sgrùdaich airson spamaBogsa-cromaigeTagh dealbhanTagh o na leubailean air a bheil an fhèill as mothaTagh o na tagaichean air a bheil an fhèill as mothaBriog an-seoDèan briogadh gus an taisbeanadh a chluich gu fèin-obrachail!Briog air gus a cho-roinneadh air LinkedInBriog air gus a cho-roinneadh air PocketBriog gus co-roinn air RedditBriog gus co-roinn air TumblrBriog air gus a cho-roinneadh air TwitterDùinSgeama nan dathanPàipear-èibhinnChaidh dreachd a' phàipeir-èibhinn ùrachadh. Ro-sheall am pàipear-èibhinnTha am pàipear-èibhinn air fhoillseachadh. Seall am pàipear-èibhinnChaidh am pàipear-èibhinn aiseag dhan ath-sgrùdadh o %sChaidh am pàipear-èibhinn shàbhaladh.Tha am pàipear-èibhinn air an sgeideal airson: %1$s. Ro-sheall am pàipear-èibhinnChaidh am pàipear-èibhinn a chur. Ro-sheall am pàipear-èibhinnChaidh am pàipear-èibhinn ùrachadh.Tha am pàipear-èibhinn air ùrachadh. Seall am pàipear-èibhinnPàipearan-èibhinnbheachdA' toirt seachad beachdan mar %sBeachdanRèitichDèan ceangalFiosrachadh conaltraidhCum ort a leughadh →Dèan pàipear-èibhinn dhethDèan post dhethBearr an dealbh'Ga leughadh an-dràstaGnàthaichteSiota-stoidhle CSS gnàthaichteSeòladh puist-dhealain gnàthaichteChaidh an raon gnàthaichte a sguabadh às.Tha an raon gnàthaichte air ùrachadh.Ainm a' chustamairTeisteanasan chustamaireanGnàthaichGnàthaich tasg-lann nan teisteanasanSÃŒOSTasg-lannan làitheilDorchaCeann-làCuir à gnìomhBunaiteachRaon ùrA' chiad roghainnSguab àsSguab às gu buanSguab às an nì seo gu buanTuairisgeulDì-cheangailDì-cheangail JetpackLeig seachadSeall teacsa a' bhanna-chinnTaisbean puist WordPressSeall meanbh-thionndadh dhen phròifil Gravatar agadTaisbean gailearaidh dhealbhan no taisbeanadh-shleamhnaganSeall na dealbhan uile agad sa ghailearaidh mar mosaic sgoinneil.Taisbean widget loidhne-ama Twitter leabaichte oifigeil.Taisbean susbaint nan tagaichean anns gach liostadh.Nochd d' ionad, uairean obrach is fiosrachadh conaltraidh.Taisbeanaidh seo liosta de phuist ùra o bloga WordPress.com eile no fear a tha comasach air Jetpack.Na seall am putan "Ath-bhlogaich" air puistLuchdadh a-nuasClàr-taice tèarnaidhLeig às dealbhan gus an luchdadh suasPost-dTha e furasta post sam bith a bhrosnachadh leis an taga "brosnaichte" no taga eile a tha iomchaidh 'nad bheachd. Tha suas ri %2$s puist ceadaichte ann an raon na susbainte bhrosnaichte san ùrlar agad.DeasaichDeasaich an CSSDeasaich am pàipear-èibhinnDeasaich nì a' chlàir-thaiceDeasaich earrann a' chlàir-thaiceDeasaich am pròiseactDeasaich taga a' phròiseictDeasaich seòrsa a' phròiseictDeasaich an teisteanasDeasaich a' phròifil agadDeasaich an raon ùr seoPost-dSeòladh puist-dhealainCuir post-d thugam uair sam bithBrathan puist-dhealainRoghainnean a' phuist-dhealainFalamhaich an spamaSeirbheisean a tha an comasRoghainnean BeurlaCuir a-steach URL WordPress.com no làrach Jetpack WordPress.Cuir ainm a' chustamair an-seoCuir ainm ball a' chlàir-thaice an-seoCuir a-steach seòladh a' phuist-dhealain agadMearachd 'ga ghluasad dhan sgudal.Mearachd 'ga aiseag on sgudal.Mearachd le luchdadh na pròifil.Mearachd!Mearachd: Cuir a-steach seòladh puist-dhealain dligheach.Mearachd: cuir a-steach am fiosrachadh air a bheil feum (ainm, post-d).DuilleagMìnich...Às-phortaich na beachdan mar CSVFacebookURL duilleag FacebookBrosnaichteSusbaint bhrosnaichteDealbhan brosnaichteDè do bheachd?Chaidh do bheachdan a thilgeil air falbh.Seòrsa an raoinA' chiad roghainnAn leud fòcasachLean ris a' bhlogaLean beachdanClàir-bhìdhMar eisimpleir, spìosrach, annsachd is msaa.
        Cuir cromagan eadar na leubaileanAirson barrachd fiosrachaidh:Fòrmat:Saor an-asgaidhOAn duilleag mhòrGailearaidhGooglePròifil GravatarUaineÀirdeÀirde (px):Seo an coltas a bhios air an fhoirm agadFalaichFalaich susbaint cho-cheangailte an dèidh phostDhachaighUairean a thìde:Ciamar a dh'obraicheas seo?An seòladh IP:ÃŒomhaigheagÃŒomhaigheag â” teacsaÃŒomhaigheag a-mhàinLeig seachad a h-uileDealbhCo-thaobhadh an deilbh:Taisbeanadh-shleamhnagan de dhealbhan a' ghailearaidhGriod nan dealbhCeangal deilbhLiosta nan dealbhanRoghainnean an deilbh:Meud an deilbh:URL an deilbh:Tiotal an deilbh:Dealbhan:Neo-ghnìomhachCuir a-steach videoAinm cleachdaiche mì-dhligheachJetpackBeachdan JetpackTaic JetpackGearr leum gu:LeubailPost-dAinmLàrach-lìnRoghainnRoghainneanLeubaileanLeubailean: spìosrach, annsachd is msaa. Cuir cromagan eadar na leubaileanCànanMòrAtharrachadh mu dheireadhRoghainnean na co-dhealbhachd:Barrachd fiosrachaidhBarrachd fiosrachaidhBarrachd fiosrachaidh mu Markdown.Fàg freagairtFreagair %sClìSoilleir'S toilInnis gur toil leat seo:Daoine as toil leothaBrathan mu dhaoine a thuirt gur toil leotha rudDaoine 's toil leotha e 's co-roinneadhDath a' cheangail (hex):Ceangal ri:LinkedInCeanglaichean do sheirbheisean a chleachdas tu air feadh an lìn.Ceangail ri inbhirean RSS a' bhloga agad.Ceanglaichean dha na làraichean-lìn, blogaichean is làraichean eile agad a bheir tuairisgeul air cò tha annad.Ro-shealladh beò'Ga luchdadh …'Ga luchdadh…'Ga luchdadh...Suaicheantasj M Y @ G:iCuir comharra gur e spama a tha annCuir comharra NACH E spama a tha san teachdaireachd seoCuir comharra gur e spama a tha san teachdaireachd seoMarkdownSusbaint MarkdownUiread as motha a phuist a sheallar (10 air a' char as fhaide):MeadhanFaidhle meadhainMeud a' mheadhain:MeadhanachAn clàr-taiceNì a' chlàir-thaiceEarrann a' chlàir-thaiceEarrannan a' chlàir-thaiceChaidh ball a' chlàir-thaice fhoillseachadh. Seall eChaidh ball a' chlàir-thaice a shàbhaladh.Chaidh ball a' chlàir-thaice a chur ris.TeachdaireachdTeachdaireachd air a churTeachdaireachdanMetadataSgeideal dhe na dh'fhalbh ortAplacaidean do dh'innealan-làimheTasg-lannan mìosailBarrachdBarrachd fiosrachaidh Na tweets agamAinmPàipear-èibhinn ùrAinm earrann ùr a' chlàir-thaicePròiseact ùrAinm airson taga pròiseict ùrAinm airson seòrsa ùr de phròiseactRàgh ùrTeisteanas ùrRaon ùrAs ùireAir adhart »Chan eilGun iomallCha deach pàipear-èibhinn a lorgCha deach pàipear-èibhinn sam bith a lorg san sgudalGun bhann-coiseGun bhann-cinnGun leubailCha deach leubail a lorg.Cha deach pròiseact sam bith a lorgAs aonais bàr-sgrolaidhCha deach teisteanas sam bith a lorgCha deach teisteanas sam bith a lorg san sgudalCha deach beachd sam bith a lorgCha deach suaicheantas a shuidheachadhCha deach plugan a lorg.Gun mholaidheanCha deach taga sam bith a lorg.Cha deach ùrlar a lorg.Chan eil ginGun cheangalGun cheangalBrathanÙghdarDreuchdCeann-làTagaTacsonamaidh, Àireamh de phuist a thèid a shealltainn:Na putain oifigeilNas sine %sLorg uile-choitcheannAir (airson a h-uile beachd)Cha ghabh ach dealbhan a luchdadh suas an-seo.no-subsetairFosgail an ceangal ann an uinneag/taba ùrFosglaidh seo ann an uinneag ùrRoghainneanOrainsÃ’rdughDuilleag %sDuilleagan:Earrann a' chlàir-thaice phàraintEarrann a' chlàir-thaice phàraint:Seòrsa de phàrant a' phròiseictSeòrsa de phàrant a' phròiseict:SligheAm buan-cheangal gu %sCeanglaichean pearsantaFòn:Pingback:PincCuir a-steach seòladh puist-dhealain dligheach.Cuir a-steach seòladh puist-dhealain.Chaidh am plugan a chur an comas.Chaidh am plugan a chur à comas.PlugainPòcaidAir a bheil fèill mhòrTagaichean phròiseactan fèillmhorPròiseactan portfolioGabhaidh duilleagan portfolio a thaisbeanadh air cuid mhòr de phròiseactan %1$sCuir am beachdTha am post le %s.Postaich le post-dSeòladaireachd nam postSeòrsa a' phuist:Air a phostadh le %sAir a phostadh ann an: %sPuistPuist â” beachdanDuilleag nam postPress ThisRo-sheallRo-shealladh:Ro-shealladh: feumaidh tu na dh'atharraich thu a shàbhaladh air neo thèid e air challPrìsAm prìomh-chlàr-taiceClò-bhuailPrìobhaideachd'Ga phròiseasadh...PròiseactTaga a' phròiseictTagaichean a' phròiseictSeòrsa a' phròiseictSeòrsachan de phròiseactanChaidh dreachd a' phròiseict ùrachadh. Ro-sheall am pròiseactChaidh am pròiseact fhoillseachadh. Seall am pròiseactChaidh am pròiseact aiseag dhan ath-sgrùdadh on %sChaidh am pròiseact a shàbhaladh.Tha am pròiseact air an sgeideal airson: %1$s. Ro-sheall am pròiseactChaidh am pròiseact a chur. Ro-sheall am pròiseactChaidh am pròiseact ùrachadh.Tha am pròiseact air ùrachadh. Seall an nìPròiseactanSgaoil am facalSgaoil am facal:FoillsichFoillsichtePurpaidhGluais an luchag agad os cionn a' Ghravatar agad gus sùil a thoirt air a' phròifil agad.Putan rèidioAir thuaiream:RangachadhPuist ùraDeargRedditCo-cheangailteFacal a tha ann iomadh turasFreagairRiatanach? AisigAisig an nì seo on sgudalToraidhean:DeasSàbhailSàbhail na dh'atharraich thuSàbhail an t-òrdan ùrSàbhail an siota-stoidhleSàbhail an raon seoAir an sgeidealLorgLorg sna pàipearan-èibhinnLorg sna beachdanDèan lorg air feadh an àite Lorg beachdanLorg sna meadhananLorg ann an earrannan a' chlàir-thaiceLorg sna plugainLorg am measg tagaichean a' phròiseictLorg am measg seòrsachan nam pròiseactLorg sna pròiseactanLorg sna teisteanasanToraidhean an luirgTagh na beachdan a bu mhath leat luchdadh a-nuasCuir am post-dealainAir a chur le cleachdaiche %s dearbhte.Sgar na tagaichean le cromaganAinm na seirbheise%1$s: %2$sSuidhich mar shuaicheantasRoghainneanChaidh na roghainnean a shàbhaladhCo-roinnCo-roinn air FacebookCo-roinn air TumblrCo-roinn seo:Post co-roinnteCo-roinneadhRoghainnean a' cho-roinnidhURL airson co-roinneadhLeubail co-roinnidhShortcodeLeabachadh chòdan goiridSeallSeall ceanglaichean a' chunntaisSeall na h-às-earrannan:Seall dealbh brosnaichte:Seall na ceanglaichean pearsantaSeall bann-cinn "Co-cheangailte" gus earrann nan rudan co-cheangailte a sgaradh gu follaiseach o na puistSeall na putain airSeall cò 's toil leotha e.Seall am mapaSeall susbaint cho-cheangailte an dèidh phostSeall na putain co-roinnidh.Seall am putan "Ath-bhlogaich" air puistSeall na sàr-phuist os cionnSeall na faclan-luirg as cumanta os cionnSeall:noSeallaidh seo na puist is duilleagan a chaidh tadhal orra as trice.Astar an t-siutairAirgeadPost coltach risÃŒomhaigheag na làraichSuaicheantas na làraichStats na làraich agadTiotal na làraich, suaicheantas teacsa agus suaicheantasLàraicheanTaisbeanadh shleamhnaganBeagSnippetSneachdTha sinn duilich ach chan eil taic ris a' bhrabhsair agad. Àrdaich e aig browsehappy.com.Seòrsaich a-rèir:SpamaSpama (%s)Spama (%s)Spama (%s)Spama (%s)LitreachadhLitreachadh is gràmarDuilleag stadaigeach:StatsStoidhle:Chaidh an siota-stoidhle a shàbhaladh.CuspairCuir a-nullCuir a-null »Fo-sgrìobhFo-sgrìobh gu %sTaicAinm an tagaTagaicheanThoirt Wordpress leat.Teirmichean na SeirbheiseTeisteanasSusbaint duilleag nan teisteanasanDealbh brosnaichte air duilleag nan teisteanasanTiotal duilleag nan teisteanasanChaidh dreachd an teisteanais ùrachadh. Ro-sheall an teisteanasTha an teisteanas air fhoillseachadh. Seall an teisteanasChaidh an teisteanas aiseag dhan ath-sgrùdadh on %sChaidh an teisteanas a shàbhaladh.Tha an teisteanas air an sgeideal airson: %1$s. Ro-sheall an teisteanasChaidh an teisteanas a chur. Ro-sheall an teisteanasChaidh an teisteanas ùrachadh.Tha an teisteanas air ùrachadh. Seall an teisteanasTeisteanasanTeacsaCeanglaichean teacsa â” deilbhCeangal teacsaLiosta teacsaTeacsa a-mhàinRaon teacsaTha an dearbhair comasach air Beurla, Fraingis, Gearmailtis, Portagailis is Spàinntis. 'S e cànan na h-eadar-aghaidh agad (faic gu h-àrd) an cànan bunaiteach airson dearbhadh.Chaidh na roghainnean airson susbaint bhrosnaichte a ghluasad gu Coltas → Gnàthaich.Ùrlar: %1$s.Chan eil puist ann ri shealltainn. A bheil thu ag iarraidh barrachd trafaig?Cha b' urrainn dhuinn an dàta fhaighinn gus an seòladh a shealltainn air mapa. Ath-nuadhaich am brabhsair agad is feuch ris a-rithist.(riatanach)Tha an ceangal seo ag obair mar bu chòir.Tha am post seo fo dhìon facail-fhaire.Tha am post seo fo dhìon facail-fhaire. Cuir a-steach am facal-faire gus coimhead air na beachdan.Cha b' urrainn dhuinn an taisbeanadh-shleamhnagan seo a thòiseachadh. Feuch is ath-nuadhaich an duilleag no coimhead air ann am brabhsair eile.Feumaidh an taisbeanadh-shleamhnagan seo JavaScript.ÃŒomhaigheagGriod nan dealbhaganGailearaidhean leacaichteMaois leacaichteÀm:Ùrlar na loidhne-ama:TiotalTiotal:Na puist as fhearrSàr-phuist â” duilleaganTha gràinnean-mullaich nam post â” nan duilleagan stèidhichte air na stats thairis air 24-48 uair a thìde. Bidh e greis mu atharraich iad.Lorgan as cumantaCùlaibh trìd-shoilleirAn sgudalTumblrTwitterLoidhne-ama TwitterAinm Twitter:SeòrsaSeòrsaicheanSUASURLGun roinn-seòrsaGun fhoillseachadhSguir dhen fho-sgrìobhadhPost gun tiotalTachartasan ri thighinnÙraich earrann a' chlàir-thaiceÙraich taga a' phròiseictÙraich seòrsa a' phròiseictLuchdaich suas an dealbh'Ga luchdadh suas...Cleachd Markdown airson beachdan.Cleachd Markdown airson puist is duilleagan.Cleachd co-dhealbhachd mòr is greannmhor-- Tagh --FalaichSeallAinm-cleachdaicheLuachVaultPressSeirbheisean dearbhteVideo air %sPost video le %s.Post video.VideoPressSeall a h-uileSeall am pàipear-èibhinnSeall an làn phròifil →Seall an làrach shlànSeall earrann a' chlàir-thaiceSeall taga a' phròiseictSeall seòrsa a' phròiseictSeall an teisteanasSeall air InstagramFaicsinneachdTadhail air a' phost airson barrachd.Ceanglaichean goirid WP.meChan urrainn dhuinn puist a thaisbeanadh airson a' bhloga seo.Chan urrainn dhuinn dàta bloga a luchdadh aig an àm seo.Rinn sinn "briog airson sgroladh" dhen roghainn seo a chionn 's gu bheil widgets banna-choise agad ann an "Coltas → Widgets" no a chionn 's gu bheil an t-ùrlar agad a' cleachdadh "briog airson sgroladh" a ghnàth.Làrach-lìnFàilte gu CSS gnàthaichte! Gheibh thu fiosrachadh air an làrach a leanas a dh'innseas mar a dh'obraicheas seo http://wp.me/PEmnE-BtDè chuireas mi ann an loidhne a' chuspair?Dè tha ann an Gravatar?GealID a' widget:a tha 'naTiotal a' widget:Leud (px):Putan ath-bhlogadh WordPress.comStats WordPress.comSgrìobh beachd...d/m/Yd/m/Y g:i:s ATasg-lannan bliadhnail'S urrainn. 'S urrainn dhut iomadh post-d a chur do raon nan seòlaidhean puist-d is an sgaradh le cromagan. Thèid brath a chur do gach post-d an uairsin.ThaChan eil cead agad seo atharrachadh.Chan eil cead agad an nì seo a stiùireadh às.Chan eil cead agad an nì seo a ghluasad às an sgudal.Chan eil cead agad an nì seo a ghluasad dhan sgudal.Chan eil cead gu leòr agad inntrigeadh a dhèanamh dhan duilleag seo.Chuir thu romhad gun bhith a' ceangal am bloga agad ris. Briog air "Gabh ris" nuair a dh'fhaighnichear dhìot ma tha thu airson na cunntasan agad a cheangal ris.Feumaidh tu widget a chruthachadh air Twitter.com agus ID a' widget a chur a-steach (an àireamh fhada ann an URL duilleag rèiteachadh a' widget agad) san raon gu h-ìosal. Leugh barrachd.Feumaidh tu taghadh dè thèid a shealltainn ann am widget pròifil Gravatar seo.Na seòrsachan de shusbaint ghnàthaichte agadAn seòladh puist-dhealain agadD' ainmChan eil innteart sam bith ann an tasg-lann a' phortfolio agad. 'S urrainn dhut feadhainn a thòiseachadh air an deas-bhòrd agad.Cha deach post sam bith fhoillseachadh sa bhloga agad.Tha do bheachd a' feitheamh ri modarataireachd.Chaidh an raon ùr a shàbhaladhCha deach a luchdadh suas buileach; feuch ris a-rithist an ceann greis no bi beò an dòchas is feuch ris a-rithist an-dràsta fhèin.agusPost-dSguir dhethRèitichlathadeasaichAnn an "%s"mìosRi leughadhBeachdLeugh%s ma:ceartaichdèan lorg air feadh an àitePost-dFacebookGoogleLinkedInPocketPress ThisClò-bhuailRedditTumblrTwitteran-dèam mìos seo chaidhan ràithe seo chaidhan t-seachdain seo chaidhan-uiridhseachdainwords%1$s \a\t %2$splugins/jetpack/json-endpoints/0000755000312500031250000000000012654411246017235 5ustar eacbforgeacbforgplugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-v1-1-endpoint.php0000644000312500031250000000155012651056012027747 0ustar eacbforgeacbforg $blog_id, $post_id // /sites/%s/posts/slug:%s -> $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); if ( false === strpos( $path, '/posts/slug:' ) ) { $get_by = 'ID'; } else { $get_by = 'name'; } $return = $this->get_post_by( $get_by, $post_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-roles-endpoint.php0000644000312500031250000000351512654411246027632 0ustar eacbforgeacbforg '(array:role) Array of role objects', ); static function role_sort( $a, $b ) { $core_role_names = array( 'administrator', 'editor', 'author', 'contributor', 'subscriber' ); $a_is_core_role = in_array( $a->name, $core_role_names ); $b_is_core_role = in_array( $b->name, $core_role_names ); // if $a is a core_role and $b is not, $a always comes first if ( $a_is_core_role && ! $b_is_core_role ) { return -1; } // if $b is a core_role and $a is not, $b always comes first if ( $b_is_core_role && ! $a_is_core_role ) { return 1; } // otherwise the one with the > number of capabilities comes first $a_cap_count = count( $a->capabilities ); $b_cap_count = count( $b->capabilities ); if ( $a_cap_count === $b_cap_count ) { return 0; } return ( $a_cap_count > $b_cap_count ) ? -1 : 1; } // /sites/%s/roles/ -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'list_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot view roles for specified site', 403 ); } $roles = array(); global $wp_roles; $wp_roles->reinit(); $role_names = $wp_roles->get_names(); $role_keys = array_keys( $role_names ); foreach ( (array) $role_keys as $role_key ) { $role_details = get_role( $role_key ); $role_details->display_name = $role_names[$role_key]; $roles[] = $role_details; } // Sort the array so roles with the most number of capabilities comes first, then the next role, and so on usort( $roles, array( 'self', 'role_sort' ) ); return array( 'roles' => $roles ); } }plugins/jetpack/json-endpoints/class.wpcom-json-api-sharing-buttons-endpoint.php0000644000312500031250000003232312654410420030654 0ustar eacbforgeacbforgsharing_service = new Sharing_Service(); if ( ! current_user_can( 'manage_options' ) ) { return new WP_Error( 'forbidden', 'You do not have the capability to manage sharing buttons for this site', 403 ); } else if ( ! class_exists( 'Sharing_Service' ) || ! class_exists( 'Sharing_Source' ) || ( method_exists( 'Jetpack', 'is_module_active' ) && ! Jetpack::is_module_active( 'sharedaddy' ) ) ) { return new WP_Error( 'missing_jetpack_module', 'The Sharing module must be activated in order to use this endpoint', 400 ); } } public function format_sharing_button( $button ) { $response = array( 'ID' => $button->get_id(), 'name' => $button->get_name(), 'shortname' => $button->shortname, 'custom' => is_a( $button, 'Share_Custom' ), 'enabled' => $this->is_button_enabled( $button ), ); if ( $response['enabled'] ) { // Status is either "disabled" or the visibility value $response['visibility'] = $this->get_button_visibility( $button ); } if ( ! empty( $button->genericon ) ) { // Only pre-defined sharing buttons include genericon $response['genericon'] = $button->genericon; } if ( method_exists( $button, 'get_options' ) ) { // merge get_options() values into response, primarily to account // for custom sharing button values foreach ( $button->get_options() as $key => $value ) { // Capitalize URL property if ( 'url' === strtolower( $key ) ) { $key = strtoupper( $key ); } $response[ $key ] = $value; } } return $response; } public function get_button_visibility( $button ) { $services = $this->sharing_service->get_blog_services(); $visibilities = self::$all_visibilities; $button_id = $button->get_id(); foreach ( $visibilities as $visibility ) { if ( isset( $services[ $visibility ][ $button_id ] ) ) { return $visibility; } } return false; } public function is_button_enabled( $button ) { return false !== $this->get_button_visibility( $button ); } protected function is_button_input_for_custom( $button ) { return ( isset( $button['custom'] ) && $button['custom'] ) || ( isset( $button['ID'] ) && 1 === preg_match( '/^custom-/', $button['ID'] ) ) || ! empty( $button['name'] ) || ! empty( $button['URL'] ) || ! empty( $button['icon'] ); } protected function validate_button_input( $button, $is_new = false ) { if ( ! empty( $button['visibility'] ) && ! in_array( $button['visibility'], self::$all_visibilities ) ) { return new WP_Error( 'invalid_visibility', sprintf( 'The visibility field must be one of the following values: %s', implode( ', ', self::$all_visibilities ) ), 400 ); } else if ( $is_new && empty( $button['URL'] ) ) { return new WP_Error( 'invalid_request', 'The URL field is required', 400 ); } else if ( $is_new && empty( $button['icon'] ) ) { return new WP_Error( 'invalid_request', 'The icon field is required', 400 ); } } public function create_custom_button( $button ) { // Default visibility to 'visible' if enabled if ( empty( $button['visibility'] ) && true === $button['enabled'] ) { $button['visibility'] = 'visible'; } $updated_service = $this->sharing_service->new_service( $button['name'], $button['URL'], $button['icon'] ); if ( false !== $updated_service && ( true === $button['enabled'] || ! empty( $button['visibility'] ) ) ) { $blog_services = $this->sharing_service->get_blog_services(); $blog_services[ $button['visibility'] ][ (string) $updated_service->get_id() ] = $updated_service; $this->sharing_service->set_blog_services( array_keys( $blog_services['visible'] ), array_keys( $blog_services['hidden'] ) ); } return $updated_service; } public function update_button( $button_id, $button ) { $blog_services = $this->sharing_service->get_blog_services(); // Find existing button $all_buttons = $this->sharing_service->get_all_services_blog(); if ( ! array_key_exists( $button_id, $all_buttons ) ) { // Button doesn't exist return new WP_Error( 'not_found', 'The specified sharing button was not found', 404 ); } $updated_service = $all_buttons[ $button_id ]; $service_id = $updated_service->get_id(); if ( is_a( $all_buttons[ $button_id ], 'Share_Custom' ) ) { // Replace options for existing custom button $options = $updated_service->get_options(); $name = isset( $button['name'] ) ? $button['name'] : $options['name']; $url = isset( $button['URL'] ) ? $button['URL'] : $options['url']; $icon = isset( $button['icon'] ) ? $button['icon'] : $options['icon']; $updated_service = new Share_Custom( $service_id, array( 'name' => $name, 'url' => $url, 'icon' => $icon ) ); $this->sharing_service->set_service( $button_id, $updated_service ); } // Default visibility to 'visible' if enabled if ( empty( $button['visibility'] ) && true === $button['enabled'] ) { $button['visibility'] = 'visible'; } else if ( false === $button['enabled'] ) { unset( $button['visibility'] ); } // Update button visibility and enabled status $visibility_changed = ( isset( $button['visibility'] ) || true === $button['enabled'] ) && ! array_key_exists( $service_id, $blog_services[ $button['visibility'] ] ); $is_disabling = false === $button['enabled']; if ( $visibility_changed || $is_disabling ) { // Remove from all other visibilities foreach ( $blog_services as $service_visibility => $services ) { if ( $service_visibility !== $button['visibility'] || $is_disabling ) { unset( $blog_services[ $service_visibility ][ $service_id ] ); } } if ( $visibility_changed ) { $blog_services[ $button['visibility'] ][ $service_id ] = $updated_service; } $this->sharing_service->set_blog_services( array_keys( $blog_services['visible'] ), array_keys( $blog_services['hidden'] ) ); } return $updated_service; } } class WPCOM_JSON_API_Get_Sharing_Buttons_Endpoint extends WPCOM_JSON_API_Sharing_Button_Endpoint { // GET /sites/%s/sharing-buttons -> $blog_id public function callback( $path = '', $blog_id = 0 ) { $args = $this->query_args(); // Validate request $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $continue = $this->setup(); if ( is_wp_error( $continue ) ) { return $continue; } if ( ! empty( $args['visibility'] ) && ! in_array( $args['visibility'], self::$all_visibilities ) ) { return new WP_Error( 'invalid_visibility', sprintf( 'The visibility field must be one of the following values: %s', implode( ', ', self::$all_visibilities ) ), 400 ); } // Determine which visibilities to include based on request $visibilities = empty( $args['visibility'] ) ? self::$all_visibilities : array( $args['visibility'] ); // Discover enabled services $buttons = array(); $enabled_services = $this->sharing_service->get_blog_services(); $all_services = $this->sharing_service->get_all_services_blog(); // Include buttons of desired visibility foreach ( $visibilities as $visibility ) { $buttons = array_merge( $buttons, $enabled_services[ $visibility ] ); } // Unless `enabled_only` or `visibility` is specified, append the // remaining buttons to the end of the array if ( ( ! isset( $args['enabled_only'] ) || ! $args['enabled_only'] ) && empty( $args['visibility'] ) ) { foreach ( $all_services as $id => $button ) { if ( ! array_key_exists( $id, $buttons ) ) { $buttons[ $id ] = $button; } } } // Format each button in the response $response = array(); foreach ( $buttons as $button ) { $response[] = $this->format_sharing_button( $button ); } return array( 'found' => count( $response ), 'sharing_buttons' => $response ); } } class WPCOM_JSON_API_Get_Sharing_Button_Endpoint extends WPCOM_JSON_API_Sharing_Button_Endpoint { // GET /sites/%s/sharing-buttons/%s -> $blog_id, $button_id public function callback( $path = '', $blog_id = 0, $button_id = 0 ) { // Validate request $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $continue = $this->setup(); if ( is_wp_error( $continue ) ) { return $continue; } // Search existing services for button $all_buttons = $this->sharing_service->get_all_services_blog(); if ( ! array_key_exists( $button_id, $all_buttons ) ) { return new WP_Error( 'not_found', 'The specified sharing button was not found', 404 ); } else { return $this->format_sharing_button( $all_buttons[ $button_id ] ); } } } class WPCOM_JSON_API_Update_Sharing_Buttons_Endpoint extends WPCOM_JSON_API_Sharing_Button_Endpoint { // POST /sites/%s/sharing-buttons -> $blog_id public function callback( $path = '', $blog_id = 0 ) { $input = $this->input(); // Validate request $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $continue = $this->setup(); if ( is_wp_error( $continue ) ) { return $continue; } $all_buttons = $this->sharing_service->get_all_services_blog(); // We do a first pass of all buttons to verify that no validation // issues exist before continuing to update foreach ( $input['sharing_buttons'] as $button ) { $button_exists = isset( $button['ID'] ) && array_key_exists( $button['ID'], $all_buttons ); $is_custom = $this->is_button_input_for_custom( $button ); // If neither custom nor existing, bail if ( ! $button_exists && ! $is_custom ) { return new WP_Error( 'not_found', 'The specified sharing button was not found', 404 ); } // Validate input, only testing custom values if the button doesn't // already exist $validation_error = $this->validate_button_input( $button, ! $button_exists ); if ( is_wp_error( $validation_error ) ) { return $validation_error; } } // Reset all existing buttons $this->sharing_service->set_blog_services( array(), array() ); // Finally, we iterate over each button and update or create $success = true; $updated = array(); foreach ( $input['sharing_buttons'] as $button ) { $button_exists = isset( $button['ID'] ) && array_key_exists( $button['ID'], $all_buttons ); if ( $button_exists ) { $updated_service = $this->update_button( $button['ID'], $button ); } else { $updated_service = $this->create_custom_button( $button ); } // We'll allow the request to continue if a failure occurred, but // log it for the response if ( false === $updated_service ) { $success = false; } else { $updated[] = $this->format_sharing_button( $updated_service ); } } return array( 'success' => $success, 'updated' => $updated ); } } class WPCOM_JSON_API_Update_Sharing_Button_Endpoint extends WPCOM_JSON_API_Sharing_Button_Endpoint { // POST /sites/%s/sharing-buttons/new -> $blog_id // POST /sites/%s/sharing-buttons/%s -> $blog_id, $button_id public function callback( $path = '', $blog_id = 0, $button_id = 0 ) { $new = $this->api->ends_with( $path, '/new' ); $input = $this->input(); // Validate request $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $continue = $this->setup(); if ( is_wp_error( $continue ) ) { return $continue; } $validation_error = $this->validate_button_input( $input, $new ); if ( is_wp_error( $validation_error ) ) { return $validation_error; } // Update or create button if ( $new ) { $updated_service = $this->create_custom_button( $input ); } else { $updated_service = $this->update_button( $button_id, $input ); } if ( false === $updated_service ) { return new WP_Error( 'invalid_request', sprintf( 'The sharing button was not %s', $new ? 'created' : 'updated' ), 400 ); } else if ( is_wp_error( $updated_service ) ) { return $updated_service; } else { return $this->format_sharing_button( $updated_service ); } } } class WPCOM_JSON_API_Delete_Sharing_Button_Endpoint extends WPCOM_JSON_API_Sharing_Button_Endpoint { // POST /sites/%s/sharing-buttons/%s/delete -> $blog_id, $button_id public function callback( $path = '', $blog_id = 0, $button_id = 0 ) { // Validate request $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $continue = $this->setup(); if ( is_wp_error( $continue ) ) { return $continue; } // Find existing button $all_buttons = $this->sharing_service->get_all_services_blog(); if ( ! array_key_exists( $button_id, $all_buttons ) ) { // Button doesn't exist return new WP_Error( 'not_found', 'The specified sharing button was not found', 404 ); } // Verify button is custom if ( ! is_a( $all_buttons[ $button_id ], 'Share_Custom' ) ) { return new WP_error( 'invalid_request', 'Only custom sharing buttons can be deleted', 400 ); } $success = $this->sharing_service->delete_service( $button_id ); return array( 'ID' => $button_id, 'success' => $success ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-endpoint.php0000644000312500031250000000352712654410420030072 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'upload_files' ) ) { return new WP_Error( 'unauthorized', 'User cannot upload media.', 403 ); } $input = $this->input( true ); $has_media = isset( $input['media'] ) && $input['media'] ? count( $input['media'] ) : false; $has_media_urls = isset( $input['media_urls'] ) && $input['media_urls'] ? count( $input['media_urls'] ) : false; $media_ids = $files = $errors = array(); if ( $has_media ) { $this->api->trap_wp_die( 'upload_error' ); foreach ( $input['media'] as $index => $media_item ) { $_FILES['.api.media.item.'] = $media_item; // check for WP_Error if we ever actually need $media_id $media_id = media_handle_upload( '.api.media.item.', 0 ); if ( is_wp_error( $media_id ) ) { if ( 1 === count( $input['media'] ) && ! $has_media_urls ) { unset( $_FILES['.api.media.item.'] ); return $media_id; } $errors[ $index ]['error'] = $media_id->get_error_code(); $errors[ $index ]['message'] = $media_id->get_error_message(); } else { $media_ids[ $index ] = $media_id; } $files[] = $media_item; } $this->api->trap_wp_die( null ); unset( $_FILES['.api.media.item.'] ); } if ( $has_media_urls ) { foreach ( $input['media_urls'] as $url ) { $id = $this->handle_media_sideload( $url ); if ( ! empty( $id ) && is_int( $id ) ) $media_ids[] = $id; } } $results = array(); foreach ( $media_ids as $media_id ) { $results[] = $this->get_media_item( $media_id ); } return array( 'media' => $results, 'errors' => $errors ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-users-endpoint.php0000644000312500031250000000640312654411246027646 0ustar eacbforgeacbforg '(int) The total number of authors found that match the request (ignoring limits and offsets).', 'users' => '(array:author) Array of user objects', ); // /sites/%s/users/ -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); $authors_only = ( ! empty( $args['authors_only'] ) ); if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } if ( $authors_only ) { if ( empty( $args['type'] ) ) $args['type'] = 'post'; if ( ! $this->is_post_type_allowed( $args['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } $post_type_object = get_post_type_object( $args['type'] ); if ( ! $post_type_object || ! current_user_can( $post_type_object->cap->edit_others_posts ) ) { return new WP_Error( 'unauthorized', 'User cannot view authors for specified post type', 403 ); } } elseif ( ! current_user_can( 'list_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot view users for specified site', 403 ); } $query = array( 'number' => $args['number'], 'offset' => $args['offset'], 'order' => $args['order'], 'orderby' => $args['order_by'], 'fields' => 'ID', ); if ( $authors_only ) $query['who'] = 'authors'; if ( ! empty( $args['search'] ) ) { $query['search'] = $args['search']; } if ( ! empty( $args['search_columns'] ) ) { // this `user_search_columns` filter is necessary because WP_User_Query does not allow `display_name` as a search column $this->search_columns = array_intersect( $args['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename', 'display_name' ) ); add_filter( 'user_search_columns', array( $this, 'api_user_override_search_columns' ), 10, 3 ); } if ( ! empty( $args['role'] ) ) { $query['role'] = $args['role']; } $user_query = new WP_User_Query( $query ); remove_filter( 'user_search_columns', array( $this, 'api_user_override_search_columns' ) ); $return = array(); foreach ( array_keys( $this->response_format ) as $key ) { switch ( $key ) { case 'found' : $return[$key] = (int) $user_query->get_total(); break; case 'users' : $users = array(); $is_multisite = is_multisite(); foreach ( $user_query->get_results() as $u ) { $the_user = $this->get_author( $u, true ); if ( $the_user && ! is_wp_error( $the_user ) ) { $userdata = get_userdata( $u ); $the_user->roles = ! is_wp_error( $userdata ) ? $userdata->roles : array(); if ( $is_multisite ) { $the_user->is_super_admin = user_can( $the_user->ID, 'manage_network' ); } $users[] = $the_user; } } $return[$key] = $users; break; } } return $return; } function api_user_override_search_columns( $search_columns, $search ) { return $this->search_columns; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-counts-v1-1-endpoint.php0000644000312500031250000000552012654410420031261 0ustar eacbforgeacbforgposts} "; $query .= "WHERE post_type = %s "; if ( isset( $user_id ) ) { $query .= "AND post_author = %d "; } $query .= "GROUP BY status"; return $wpdb->prepare( $query, $post_type, $user_id ); } /** * Retrive counts using wp_cache * * @param {String} $post_type * @param {Number} [$id] */ private function retrieveCounts( $post_type, $id = null) { if ( ! isset( $id ) ) { $counts = array(); foreach( (array) wp_count_posts( $post_type ) as $status => $count ) { if ( in_array( $status, $this->whitelist ) && $count > 0 ) { $counts[ $status ] = (int) $count; } }; return $counts; } global $wpdb; $key = 'rest-api-' . $id . '-' . _count_posts_cache_key( $post_type ); $counts = wp_cache_get( $key, 'counts' ); if ( false === $counts ) { $results = $wpdb->get_results( $this->buildCountsQuery( $post_type, $id ) ); $counts = $this->filterStatusesByWhiteslist( $results ); wp_cache_set( $key, $counts, 'counts' ); } return $counts; } private function filterStatusesByWhiteslist( $in ) { $return = array(); foreach( $in as $result) { if ( in_array( $result->status, $this->whitelist ) ) { $return[ $result->status ] = (int) $result->count; } }; return $return; } public function callback( $path = '', $blog_id = 0, $post_type = 'post' ) { if ( ! get_current_user_id() ) { return new WP_Error( 'authorization_required', __( 'An active access token must be used to retrieve post counts.', 'jetpack' ), 403 ); } $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ), false ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! post_type_exists( $post_type ) ) { return new WP_Error( 'unknown_post_type', __( 'Unknown post type requested.', 'jetpack' ), 404 ); } $args = $this->query_args(); $mine_ID = get_current_user_id(); if ( current_user_can( 'edit_posts' ) ) { array_push( $this->whitelist, 'draft', 'future', 'pending', 'private', 'trash' ); } $return = array( 'counts' => (array) array( 'all' => (object) $this->retrieveCounts( $post_type ), 'mine' => (object) $this->retrieveCounts( $post_type, $mine_ID ), ) ); // AUTHOR if ( isset( $args['author'] ) ) { $author_ID = $args['author']; $return['counts']['author'] = (object) $this->retrieveCounts( $post_type, $author_ID ); } return (object) $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-post-endpoint.php0000644000312500031250000005705312654410420026521 0ustar eacbforgeacbforg '(int) The post ID.', 'site_ID' => '(int) The site ID.', 'author' => '(object>author) The author of the post.', 'date' => "(ISO 8601 datetime) The post's creation time.", 'modified' => "(ISO 8601 datetime) The post's most recent update time.", 'title' => '(HTML) context dependent.', 'URL' => '(URL) The full permalink URL to the post.', 'short_URL' => '(URL) The wp.me short URL.', 'content' => '(HTML) context dependent.', 'excerpt' => '(HTML) context dependent.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'guid' => '(string) The GUID for the post.', 'status' => array( 'publish' => 'The post is published.', 'draft' => 'The post is saved as a draft.', 'pending' => 'The post is pending editorial approval.', 'private' => 'The post is published privately', 'future' => 'The post is scheduled for future publishing.', 'trash' => 'The post is in the trash.', 'auto-draft' => 'The post is a placeholder for a new post.', ), 'sticky' => '(bool) Is the post sticky?', 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(object>post_reference|false) A reference to the post's parent, if it has one.", 'type' => "(string) The post's post_type. Post types besides post, page and revision need to be whitelisted using the rest_api_allowed_post_types filter.", 'comments_open' => '(bool) Is the post open for comments?', 'pings_open' => '(bool) Is the post open for pingbacks, trackbacks?', 'likes_enabled' => "(bool) Is the post open to likes?", 'sharing_enabled' => "(bool) Should sharing buttons show on this post?", 'comment_count' => '(int) The number of comments for this post.', 'like_count' => '(int) The number of likes for this post.', 'i_like' => '(bool) Does the current user like this post?', 'is_reblogged' => '(bool) Did the current user reblog this post?', 'is_following' => '(bool) Is the current user following this blog?', 'global_ID' => '(string) A unique WordPress.com-wide representation of a post.', 'featured_image' => '(URL) The URL to the featured image for this post if it has one.', 'post_thumbnail' => '(object>attachment) The attachment object for the featured image if it has one.', 'format' => array(), // see constructor 'geo' => '(object>geo|false)', 'menu_order' => '(int) (Pages Only) The order pages should appear in.', 'publicize_URLs' => '(array:URL) Array of Twitter and Facebook URLs published by this post.', 'tags' => '(object:tag) Hash of tags (keyed by tag name) applied to the post.', 'categories' => '(object:category) Hash of categories (keyed by category name) applied to the post.', 'attachments' => '(object:attachment) Hash of post attachments (keyed by attachment ID).', 'metadata' => '(array) Array of post metadata keys and values. All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are available for authenticated requests with access. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.', 'meta' => '(object) API result meta data', 'current_user_can' => '(object) List of permissions. Note, deprecated in favor of `capabilities`', 'capabilities' => '(object) List of post-specific permissions for the user; publish_post, edit_post, delete_post', ); // public $response_format =& $this->post_object_format; function __construct( $args ) { if ( is_array( $this->post_object_format ) && isset( $this->post_object_format['format'] ) ) { $this->post_object_format['format'] = get_post_format_strings(); } if ( !$this->response_format ) { $this->response_format =& $this->post_object_format; } parent::__construct( $args ); } function is_metadata_public( $key ) { if ( empty( $key ) ) return false; // Default whitelisted meta keys. $whitelisted_meta = array( '_thumbnail_id' ); /** * Filters the meta keys accessible by the REST API. * @see https://developer.wordpress.com/2013/04/26/custom-post-type-and-metadata-support-in-the-rest-api/ * * @module json-api * * @since 2.2.3 * * @param array $whitelisted_meta Array of metadata that is accessible by the REST API. */ if ( in_array( $key, apply_filters( 'rest_api_allowed_public_metadata', $whitelisted_meta ) ) ) return true; if ( 0 === strpos( $key, 'geo_' ) ) return true; if ( 0 === strpos( $key, '_wpas_' ) ) return true; return false; } function the_password_form() { return __( 'This post is password protected.', 'jetpack' ); } /** * Get a post by a specified field and value * * @param string $field * @param string $field_value * @param string $context Post use context (e.g. 'display') * @return array Post **/ function get_post_by( $field, $field_value, $context = 'display' ) { global $blog_id; /** This filter is documented in class.json-api-endpoints.php */ $is_jetpack = true === apply_filters( 'is_jetpack_site', false, $blog_id ); if ( defined( 'GEO_LOCATION__CLASS' ) && class_exists( GEO_LOCATION__CLASS ) ) { $geo = call_user_func( array( GEO_LOCATION__CLASS, 'init' ) ); } else { $geo = false; } if ( 'display' === $context ) { $args = $this->query_args(); if ( isset( $args['content_width'] ) && $args['content_width'] ) { $GLOBALS['content_width'] = (int) $args['content_width']; } } if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'wp-windows8' ) ) { remove_shortcode( 'gallery', 'gallery_shortcode' ); add_shortcode( 'gallery', array( &$this, 'win8_gallery_shortcode' ) ); } switch ( $field ) { case 'name' : $post_id = $this->get_post_id_by_name( $field_value ); if ( is_wp_error( $post_id ) ) { return $post_id; } break; default : $post_id = (int) $field_value; break; } $post = get_post( $post_id, OBJECT, $context ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! $this->is_post_type_allowed( $post->post_type ) && ( ! function_exists( 'is_post_freshly_pressed' ) || ! is_post_freshly_pressed( $post->ID ) ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } // Permissions $capabilities = $this->get_current_user_capabilities( $post ); switch ( $context ) { case 'edit' : if ( ! $capabilities['edit_post'] ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } break; case 'display' : break; default : return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); } $can_view = $this->user_can_view_post( $post->ID ); if ( !$can_view || is_wp_error( $can_view ) ) { return $can_view; } $GLOBALS['post'] = $post; if ( 'display' === $context ) { setup_postdata( $post ); } $response = array(); $fields = null; if ( 'display' === $context && ! empty( $this->api->query['fields'] ) ) { $fields = array_fill_keys( array_map( 'trim', explode( ',', $this->api->query['fields'] ) ), true ); } foreach ( array_keys( $this->post_object_format ) as $key ) { if ( $fields !== null && ! isset( $fields[$key] ) ) { continue; } switch ( $key ) { case 'ID' : // explicitly cast all output $response[$key] = (int) $post->ID; break; case 'site_ID' : $response[$key] = (int) $this->api->get_blog_id_for_output(); break; case 'author' : $response[$key] = (object) $this->get_author( $post, 'edit' === $context && $capabilities['edit_post'] ); break; case 'date' : $response[$key] = (string) $this->format_date( $post->post_date_gmt, $post->post_date ); break; case 'modified' : $response[$key] = (string) $this->format_date( $post->post_modified_gmt, $post->post_modified ); break; case 'title' : if ( 'display' === $context ) { $response[$key] = (string) get_the_title( $post->ID ); } else { $response[$key] = (string) htmlspecialchars_decode( $post->post_title, ENT_QUOTES ); } break; case 'URL' : if ( 'revision' === $post->post_type ) { $response[$key] = (string) esc_url_raw( get_permalink( $post->post_parent ) ); } else { $response[$key] = (string) esc_url_raw( get_permalink( $post->ID ) ); } break; case 'short_URL' : $response[$key] = (string) esc_url_raw( wp_get_shortlink( $post->ID ) ); break; case 'content' : if ( 'display' === $context ) { add_filter( 'the_password_form', array( $this, 'the_password_form' ) ); $response[$key] = (string) $this->get_the_post_content_for_display(); remove_filter( 'the_password_form', array( $this, 'the_password_form' ) ); } else { $response[$key] = (string) $post->post_content; } break; case 'excerpt' : if ( 'display' === $context ) { add_filter( 'the_password_form', array( $this, 'the_password_form' ) ); ob_start(); the_excerpt(); $response[$key] = (string) ob_get_clean(); remove_filter( 'the_password_form', array( $this, 'the_password_form' ) ); } else { $response[$key] = htmlspecialchars_decode( (string) $post->post_excerpt, ENT_QUOTES ); } break; case 'status' : $response[$key] = (string) get_post_status( $post->ID ); break; case 'sticky' : $response[$key] = (bool) is_sticky( $post->ID ); break; case 'slug' : $response[$key] = (string) $post->post_name; break; case 'guid' : $response[$key] = (string) $post->guid; break; case 'password' : $response[$key] = (string) $post->post_password; if ( 'edit' === $context ) { $response[$key] = htmlspecialchars_decode( (string) $response[$key], ENT_QUOTES ); } break; case 'parent' : // (object|false) if ( $post->post_parent ) { $parent = get_post( $post->post_parent ); if ( 'display' === $context ) { $parent_title = (string) get_the_title( $parent->ID ); } else { $parent_title = (string) htmlspecialchars_decode( $post->post_title, ENT_QUOTES ); } $response[$key] = (object) array( 'ID' => (int) $parent->ID, 'type' => (string) $parent->post_type, 'link' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $parent->ID ), 'title' => $parent_title, ); } else { $response[$key] = false; } break; case 'type' : $response[$key] = (string) $post->post_type; break; case 'comments_open' : $response[$key] = (bool) comments_open( $post->ID ); break; case 'pings_open' : $response[$key] = (bool) pings_open( $post->ID ); break; case 'likes_enabled' : /** This filter is documented in modules/likes.php */ $sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ); $post_likes_switched = (bool) get_post_meta( $post->ID, 'switch_like_status', true ); $post_likes_enabled = $sitewide_likes_enabled; if ( $post_likes_switched ) { $post_likes_enabled = ! $post_likes_enabled; } $response[$key] = (bool) $post_likes_enabled; break; case 'sharing_enabled' : $show = true; /** This filter is documented in modules/sharedaddy/sharing-service.php */ $show = apply_filters( 'sharing_show', $show, $post ); $switched_status = get_post_meta( $post->ID, 'sharing_disabled', false ); if ( !empty( $switched_status ) ) $show = false; $response[$key] = (bool) $show; break; case 'comment_count' : $response[$key] = (int) $post->comment_count; break; case 'like_count' : $response[$key] = (int) $this->api->post_like_count( $blog_id, $post->ID ); break; case 'i_like' : $response[$key] = (int) $this->api->is_liked( $blog_id, $post->ID ); break; case 'is_reblogged': $response[$key] = (int) $this->api->is_reblogged( $blog_id, $post->ID ); break; case 'is_following': $response[$key] = (int) $this->api->is_following( $blog_id ); break; case 'global_ID': $response[$key] = (string) $this->api->add_global_ID( $blog_id, $post->ID ); break; case 'featured_image' : if ( $is_jetpack && ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) { $response[ $key ] = get_post_meta( $post->ID, '_jetpack_featured_image', true ); } else { $image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); if ( is_array( $image_attributes ) && isset( $image_attributes[0] ) ) { $response[ $key ] = (string) $image_attributes[0]; } else { $response[ $key ] = ''; } } break; case 'post_thumbnail' : $response[$key] = null; $thumb_id = get_post_thumbnail_id( $post->ID ); if ( ! empty( $thumb_id ) ) { $attachment = get_post( $thumb_id ); if ( ! empty( $attachment ) ) $featured_image_object = $this->get_attachment( $attachment ); if ( ! empty( $featured_image_object ) ) { $response[$key] = (object) $featured_image_object; } } break; case 'format' : $response[$key] = (string) get_post_format( $post->ID ); if ( !$response[$key] ) { $response[$key] = 'standard'; } break; case 'geo' : // (object|false) if ( !$geo ) { $response[$key] = false; } else { $geo_data = $geo->get_geo( 'post', $post->ID ); $response[$key] = false; if ( $geo_data ) { $geo_data = array_intersect_key( $geo_data, array( 'latitude' => true, 'longitude' => true, 'address' => true, 'public' => true ) ); if ( $geo_data ) { $response[$key] = (object) array( 'latitude' => isset( $geo_data['latitude'] ) ? (float) $geo_data['latitude'] : 0, 'longitude' => isset( $geo_data['longitude'] ) ? (float) $geo_data['longitude'] : 0, 'address' => isset( $geo_data['address'] ) ? (string) $geo_data['address'] : '', ); } else { $response[$key] = false; } // Private if ( !isset( $geo_data['public'] ) || !$geo_data['public'] ) { if ( 'edit' !== $context || ! $capabilities['edit_post'] ) { // user can't access $response[$key] = false; } } } } break; case 'menu_order': $response[$key] = (int) $post->menu_order; break; case 'publicize_URLs' : $publicize_URLs = array(); $publicize = get_post_meta( $post->ID, 'publicize_results', true ); if ( $publicize ) { foreach ( $publicize as $service => $data ) { switch ( $service ) { case 'twitter' : foreach ( $data as $datum ) { $publicize_URLs[] = esc_url_raw( "https://twitter.com/{$datum['user_id']}/status/{$datum['post_id']}" ); } break; case 'fb' : foreach ( $data as $datum ) { $publicize_URLs[] = esc_url_raw( "https://www.facebook.com/permalink.php?story_fbid={$datum['post_id']}&id={$datum['user_id']}" ); } break; } } } $response[$key] = (array) $publicize_URLs; break; case 'tags' : $response[$key] = array(); $terms = wp_get_post_tags( $post->ID ); foreach ( $terms as $term ) { if ( !empty( $term->name ) ) { $response[$key][$term->name] = $this->format_taxonomy( $term, 'post_tag', 'display' ); } } $response[$key] = (object) $response[$key]; break; case 'categories': $response[$key] = array(); $terms = wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'all' ) ); foreach ( $terms as $term ) { if ( !empty( $term->name ) ) { $response[$key][$term->name] = $this->format_taxonomy( $term, 'category', 'display' ); } } $response[$key] = (object) $response[$key]; break; case 'attachments': $response[$key] = array(); $_attachments = get_posts( array( 'post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'posts_per_page' => 100 ) ); foreach ( $_attachments as $attachment ) { $response[$key][$attachment->ID] = $this->get_attachment( $attachment ); } $response[$key] = (object) $response[$key]; break; case 'metadata' : // (array|false) $metadata = array(); foreach ( (array) has_meta( $post_id ) as $meta ) { // Don't expose protected fields. $show = false; if ( $this->is_metadata_public( $meta['meta_key'] ) ) $show = true; if ( current_user_can( 'edit_post_meta', $post_id , $meta['meta_key'] ) ) $show = true; if ( !$show ) continue; $metadata[] = array( 'id' => $meta['meta_id'], 'key' => $meta['meta_key'], 'value' => maybe_unserialize( $meta['meta_value'] ), ); } if ( ! empty( $metadata ) ) { $response[$key] = $metadata; } else { $response[$key] = false; } break; case 'meta' : $response[$key] = (object) array( 'links' => (object) array( 'self' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID ), 'help' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'help' ), 'site' => (string) $this->get_site_link( $this->api->get_blog_id_for_output() ), // 'author' => (string) $this->get_user_link( $post->post_author ), // 'via' => (string) $this->get_post_link( $reblog_origin_blog_id, $reblog_origin_post_id ), 'replies' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'replies/' ), 'likes' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'likes/' ), ), ); break; case 'current_user_can' : $response[$key] = $capabilities; break; case 'capabilities' : $response[$key] = $capabilities; break; } } // WPCOM_JSON_API_Post_Endpoint::find_featured_worthy_media( $post ); // $response['featured_media'] = self::find_featured_media( $response ); unset( $GLOBALS['post'] ); return $response; } // No Blog ID parameter. No Post ID parameter. Depends on globals. // Expects setup_postdata() to already have been run function get_the_post_content_for_display() { global $pages, $page; $old_pages = $pages; $old_page = $page; $content = join( "\n\n", $pages ); $content = preg_replace( '//', '', $content ); $pages = array( $content ); $page = 1; ob_start(); the_content(); $return = ob_get_clean(); $pages = $old_pages; $page = $old_page; return $return; } function get_blog_post( $blog_id, $post_id, $context = 'display' ) { $blog_id = $this->api->get_blog_id( $blog_id ); if ( !$blog_id || is_wp_error( $blog_id ) ) { return $blog_id; } switch_to_blog( $blog_id ); $post = $this->get_post_by( 'ID', $post_id, $context ); restore_current_blog(); return $post; } /** * Supporting featured media in post endpoints. Currently on for wpcom blogs * since it's calling WPCOM_JSON_API_Read_Endpoint methods which presently * rely on wpcom specific functionality. * * @param WP_Post $post * @return object list of featured media */ public static function find_featured_media( &$post ) { if ( class_exists( 'WPCOM_JSON_API_Read_Endpoint' ) ) { return WPCOM_JSON_API_Read_Endpoint::find_featured_worthy_media( (array) $post ); } else { return (object) array(); } } function win8_gallery_shortcode( $attr ) { global $post; static $instance = 0; $instance++; $output = ''; // We're trusting author input, so let's at least make sure it looks like a valid orderby statement if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract( shortcode_atts( array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'include' => '', 'exclude' => '', 'slideshow' => false ), $attr, 'gallery' ) ); // Custom image size and always use it add_image_size( 'win8app-column', 480 ); $size = 'win8app-column'; $id = intval( $id ); if ( 'RAND' === $order ) $orderby = 'none'; if ( !empty( $include ) ) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array( 'include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty( $exclude ) ) { $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); } else { $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); } if ( ! empty( $attachments ) ) { foreach ( $attachments as $id => $attachment ) { $link = isset( $attr['link'] ) && 'file' === $attr['link'] ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false ); if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= "
        $link

        " . wptexturize($attachment->post_excerpt) . "

        "; } else { $output .= $link . ' '; } } } } /** * Returns attachment object. * * @param $attachment attachment row * * @return (object) */ function get_attachment( $attachment ) { $metadata = wp_get_attachment_metadata( $attachment->ID ); $result = array( 'ID' => (int) $attachment->ID, 'URL' => (string) wp_get_attachment_url( $attachment->ID ), 'guid' => (string) $attachment->guid, 'mime_type' => (string) $attachment->post_mime_type, 'width' => (int) isset( $metadata['width'] ) ? $metadata['width'] : 0, 'height' => (int) isset( $metadata['height'] ) ? $metadata['height'] : 0, ); if ( isset( $metadata['duration'] ) ) { $result['duration'] = (int) $metadata['duration']; } /** This filter is documented in class.jetpack-sync.php */ return (object) apply_filters( 'get_attachment', $result ); } /** * Get post-specific user capabilities * @param WP_Post $post post object * @return array array of post-level permissions; 'publish_post', 'delete_post', 'edit_post' */ function get_current_user_capabilities( $post ) { return array( 'publish_post' => current_user_can( 'publish_post', $post ), 'delete_post' => current_user_can( 'delete_post', $post ), 'edit_post' => current_user_can( 'edit_post', $post ) ); } /** * Get post ID by name * * Attempts to match name on post title and page path * * @param string $name * * @return int|object Post ID on success, WP_Error object on failure **/ protected function get_post_id_by_name( $name ) { $name = sanitize_title( $name ); if ( ! $name ) { return new WP_Error( 'invalid_post', 'Invalid post', 400 ); } $posts = get_posts( array( 'name' => $name ) ); if ( ! $posts || ! isset( $posts[0]->ID ) || ! $posts[0]->ID ) { $page = get_page_by_path( $name ); if ( ! $page ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } $post_id = $page->ID; } else { $post_id = (int) $posts[0]->ID; } return $post_id; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomies-endpoint.php0000644000312500031250000000372512654410420030474 0ustar eacbforgeacbforg $blog_id // /sites/%s/categories -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); $args = $this->process_args( $args ); if ( preg_match( '#/tags#i', $path ) ) { return $this->tags( $args ); } else { return $this->categories( $args ); } } function process_args( $args ) { if ( $args['number'] < 1 ) { $args['number'] = 100; } elseif ( 1000 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 1000.', 400 ); } if ( isset( $args['page'] ) ) { if ( $args['page'] < 1 ) { $args['page'] = 1; } $args['offset'] = ( $args['page'] - 1 ) * $args['number']; unset( $args['page'] ); } if ( $args['offset'] < 0 ) { $args['offset'] = 0; } $args['orderby'] = $args['order_by']; unset( $args['order_by'] ); unset( $args['context'], $args['pretty'], $args['http_envelope'], $args['fields'] ); return $args; } function categories( $args ) { $args['get'] = 'all'; $cats = get_categories( $args ); unset( $args['offset'] ); $found = wp_count_terms( 'category', $args ); $cats_obj = array(); foreach ( $cats as $cat ) { $cats_obj[] = $this->format_taxonomy( $cat, 'category', 'display' ); } return array( 'found' => (int) $found, 'categories' => $cats_obj ); } function tags( $args ) { $args['get'] = 'all'; $tags = (array) get_tags( $args ); unset( $args['offset'] ); $found = wp_count_terms( 'post_tag', $args ); $tags_obj = array(); foreach ( $tags as $tag ) { $tags_obj[] = $this->format_taxonomy( $tag, 'post_tag', 'display' ); } return array( 'found' => (int) $found, 'tags' => $tags_obj ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-autosave-v1-1-endpoint.php0000644000312500031250000000277512651056012030623 0ustar eacbforgeacbforg $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $post = get_post( $post_id ); if ( ! $post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! current_user_can( 'edit_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } $autosave = wp_get_post_autosave( $post->ID ); if ( $autosave ) { $preview_url = add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ); $nonce = wp_create_nonce( 'post_preview_' . $post->ID ); $preview_url = add_query_arg( array( 'preview_id' => $auto_ID, 'preview_nonce' => $nonce ), $preview_url ); return array( 'ID' => $autosave->ID, 'author_ID' => $autosave->post_author, 'post_ID' => $autosave->post_parent, 'title' => $autosave->post_title, 'content' => $autosave->post_content, 'excerpt' => $autosave->post_excerpt, 'preview_URL' => $preview_url, 'modified' => $this->format_date( $autosave->post_modified ) ); } else { return new WP_Error( 'not_found', 'No autosaves exist for this post', 404 ); } } } plugins/jetpack/json-endpoints/class.wpcom-json-api-menus-v1-1-endpoint.php0000644000312500031250000004642012654410420027341 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } if ( ! current_user_can( 'edit_theme_options' ) ) { return new WP_Error( 'unauthorised', 'User cannot edit theme options on this site.', 403 ); } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } return $site_id; } protected function get_locations() { $locations = array(); $menus = get_registered_nav_menus(); if ( !empty( $menus ) ) { foreach( $menus as $name => $description ) { $locations[] = array( 'name' => $name, 'description' => $description ); } } $locations = array_merge( $locations, WPCOM_JSON_API_Menus_Widgets::get() ); // Primary (first) location should have defaultState -> default, // all other locations (including widgets) should have defaultState -> empty. for ( $i = 0; $i < count( $locations ); $i++ ) { $locations[ $i ]['defaultState'] = $i ? 'empty' : 'default'; } return $locations; } protected function simplify( $data ) { $simplifier = new WPCOM_JSON_API_Menus_Simplifier( $data ); return $simplifier->translate(); } protected function complexify( $data ) { $complexifier = new WPCOM_JSON_API_Menus_Complexify( $data ); return $complexifier->translate(); } } abstract class WPCOM_JSON_API_Menus_Translator { protected $filter = ''; protected $filters = array(); public function __construct( $menus ) { $this->is_single_menu = ! is_array( $menus ); $this->menus = is_array( $menus ) ? $menus : array( $menus ); } public function translate() { $result = $this->menus; foreach ( $this->filters as $f ) { $result = call_user_func( array( $this, $f ), $result ); if ( is_wp_error($result ) ) { return $result; } } return $this->maybe_extract( $result ); } protected function maybe_extract( $menus ) { return $this->is_single_menu ? $menus[0] : $menus; } public function whitelist_and_rename_with( $object, $dict ) { $keys = array_keys( $dict ); $return = array(); foreach ( (array) $object as $k => $v ) { if ( in_array( $k, $keys ) ) { if ( is_array( $dict[ $k ] ) ) { settype( $v, $dict[ $k ]['type'] ); $return[ $dict[ $k ]['name'] ] = $v; } else { $new_k = $dict[ $k ]; $return[ $new_k ] = $v; } } } return $return; } } class WPCOM_JSON_API_Menus_Simplifier extends WPCOM_JSON_API_Menus_Translator { protected $filter = 'wpcom_menu_api_translator_simplify'; protected $filters = array( 'whitelist_and_rename_keys', 'add_locations', 'treeify', 'add_widget_locations', ); protected $menu_whitelist = array( 'term_id' => array( 'name' => 'id', 'type' => 'int' ), 'name' => array( 'name' => 'name', 'type' => 'string' ), 'description' => array( 'name' => 'description', 'type' => 'string' ), 'items' => array( 'name' => 'items', 'type' => 'array' ), ); protected $menu_item_whitelist = array( 'db_id' => array( 'name' => 'id', 'type' => 'int' ), 'object_id' => array( 'name' => 'content_id', 'type' => 'int' ), 'object' => array( 'name' => 'type', 'type' => 'string' ), 'type' => array( 'name' => 'type_family', 'type' => 'string' ), 'type_label' => array( 'name' => 'type_label', 'type' => 'string' ), 'title' => array( 'name' => 'name', 'type' => 'string' ), 'menu_order' => array( 'name' => 'order', 'type' => 'int' ), 'menu_item_parent' => array( 'name' => 'parent', 'type' => 'int' ), 'url' => array( 'name' => 'url', 'type' => 'string' ), 'target' => array( 'name' => 'link_target', 'type' => 'string' ), 'attr_title' => array( 'name' => 'link_title', 'type' => 'string' ), 'description' => array( 'name' => 'description', 'type' => 'string' ), 'classes' => array( 'name' => 'classes', 'type' => 'array' ), 'xfn' => array( 'name' => 'xfn', 'type' => 'string' ), ); /************************** * Filters methods **************************/ public function treeify( $menus ) { return array_map( array( $this, 'treeify_menu' ), $menus ); } // turn the flat item list into a tree of items protected function treeify_menu( $menu ) { $indexed_nodes = array(); $tree = array(); foreach( $menu['items'] as &$item ) { $indexed_nodes[ $item['id'] ] = &$item; } foreach( $menu['items'] as &$item ) { if ( $item['parent'] && isset( $indexed_nodes[ $item['parent'] ] ) ) { $parent_node = &$indexed_nodes[ $item['parent'] ]; if ( !isset( $parent_node['items'] ) ) { $parent_node['items'] = array(); } $parent_node['items'][ $item['order'] ] = &$item; } else { $tree[ $item['order'] ] = &$item; } unset( $item['order'] ); unset( $item['parent'] ); } $menu['items'] = $tree; $this->remove_item_keys( $menu ); return $menu; } // recursively ensure item lists are contiguous protected function remove_item_keys( &$item ) { if ( ! isset( $item['items'] ) || ! is_array( $item['items'] ) ) { return; } foreach( $item['items'] as &$it ) { $this->remove_item_keys( $it ); } $item['items'] = array_values( $item['items'] ); } protected function whitelist_and_rename_keys( $menus ) { $transformed_menus = array(); foreach ( $menus as $menu ) { $menu = $this->whitelist_and_rename_with( $menu, $this->menu_whitelist ); if ( isset( $menu['items'] ) ) { foreach ( $menu['items'] as &$item ) { $item = $this->whitelist_and_rename_with( $item, $this->menu_item_whitelist ); } } $transformed_menus[] = $menu; } return $transformed_menus; } protected function add_locations( $menus ) { $menus_with_locations = array(); foreach( $menus as $menu ) { $menu['locations'] = array_keys( get_nav_menu_locations(), $menu['id'] ); $menus_with_locations[] = $menu; } return $menus_with_locations; } protected function add_widget_locations( $menus ) { $nav_menu_widgets = WPCOM_JSON_API_Menus_Widgets::get(); if ( ! is_array( $nav_menu_widgets ) ) { return $menus; } foreach ( $menus as &$menu ) { $widget_locations = array(); foreach ( $nav_menu_widgets as $key => $widget ) { if ( is_array( $widget ) && isset( $widget['nav_menu'] ) && $widget['nav_menu'] === $menu['id'] ) { $widget_locations[] = 'nav_menu_widget-' . $key; } } $menu['locations'] = array_merge( $menu['locations'], $widget_locations ); } return $menus; } } class WPCOM_JSON_API_Menus_Complexify extends WPCOM_JSON_API_Menus_Translator { protected $filter = 'wpcom_menu_api_translator_complexify'; protected $filters = array( 'untreeify', 'set_locations', 'whitelist_and_rename_keys', ); protected $menu_whitelist = array( 'id' => 'term_id', 'name' => 'menu-name', 'description' => 'description', 'items' => 'items', ); protected $menu_item_whitelist = array( 'id' => 'menu-item-db-id', 'content_id' => 'menu-item-object-id', 'type' => 'menu-item-object', 'type_family' => 'menu-item-type', 'type_label' => 'menu-item-type-label', 'name' => 'menu-item-title', 'order' => 'menu-item-position', 'parent' => 'menu-item-parent-id', 'url' => 'menu-item-url', 'link_target' => 'menu-item-target', 'link_title' => 'menu-item-attr-title', 'status' => 'menu-item-status', 'tmp_id' => 'tmp_id', 'tmp_parent' => 'tmp_parent', 'description' => 'menu-item-description', 'classes' => 'menu-item-classes', 'xfn' => 'menu-item-xfn', ); /************************** * Filters methods **************************/ public function untreeify( $menus ) { return array_map( array( $this, 'untreeify_menu' ), $menus ); } // convert the tree of menu items to a flat list suitable for // the nav_menu APIs protected function untreeify_menu( $menu ) { if ( empty( $menu['items'] ) ) { return $menu; } $items_list = array(); $counter = 1; foreach ( $menu['items'] as &$item ) { $item[ 'parent' ] = 0; } $this->untreeify_items( $menu['items'], $items_list, $counter ); $menu['items'] = $items_list; return $menu; } /** * Recurse the items tree adding each item to a flat list and restoring * `order` and `parent` fields. * * @param array $items item tree * @param array &$items_list output flat list of items * @param int &$counter for creating temporary IDs */ protected function untreeify_items( $items, &$items_list, &$counter ) { foreach( $items as $index => $item ) { $item['order'] = $index + 1; if( ! isset( $item['id'] ) ) { $this->set_tmp_id( $item, $counter++ ); } if ( isset( $item['items'] ) && is_array( $item['items'] ) ) { foreach ( $item['items'] as &$i ) { $i['parent'] = $item['id']; } $this->untreeify_items( $item[ 'items' ], $items_list, $counter ); unset( $item['items'] ); } $items_list[] = $item; } } /** * Populate `tmp_id` field for a new item, and `tmp_parent` field * for all its children, to maintain the hierarchy. * These fields will be used when creating * new items with wp_update_nav_menu_item(). */ private function set_tmp_id( &$item, $tmp_id ) { $item['tmp_id'] = $tmp_id; if ( ! isset( $item['items'] ) || ! is_array( $item['items'] ) ) { return; } foreach ( $item['items'] as &$child ) { $child['tmp_parent'] = $tmp_id; } } protected function whitelist_and_rename_keys( $menus ) { $transformed_menus = array(); foreach ( $menus as $menu ) { $menu = $this->whitelist_and_rename_with( $menu, $this->menu_whitelist ); if ( isset( $menu['items'] ) ) { $menu['items'] = array_map( array( $this, 'whitelist_and_rename_item_keys' ), $menu['items'] ); } $transformed_menus[] = $menu; } return $transformed_menus; } protected function whitelist_and_rename_item_keys( $item ) { $item = $this->implode_array_fields( $item ); $item = $this->whitelist_and_rename_with( $item, $this->menu_item_whitelist ); return $item; } // all item fields are set as strings protected function implode_array_fields( $menu_item ) { return array_map( array( $this, 'implode_array_field' ), $menu_item ); } protected function implode_array_field( $field ) { if ( is_array( $field ) ) { return implode( ' ', $field ); } return $field; } protected function set_locations( $menus ) { foreach ( $menus as $menu ) { if ( isset( $menu['locations'] ) ) { if ( true !== $this->locations_are_valid( $menu['locations'] ) ) { return $this->locations_are_valid( $menu['locations'] ); } } } return array_map( array( $this, 'set_location' ), $menus ); } protected function set_location( $menu ) { $this->set_menu_at_locations( $menu['locations'], $menu['id'] ); return $menu; } protected function set_menu_at_locations( $locations, $menu_id ) { $location_map = get_nav_menu_locations(); $this->remove_menu_from_all_locations( $menu_id, $location_map ); if ( is_array( $locations ) ) { foreach ( $locations as $location ) { $location_map[ $location ] = $menu_id; } } set_theme_mod( 'nav_menu_locations', $location_map ); $this->set_widget_menu_at_locations( $locations, $menu_id ); } protected function remove_menu_from_all_locations( $menu_id, &$location_map ) { foreach ( get_nav_menu_locations() as $existing_location => $existing_menu_id) { if ( $existing_menu_id == $menu_id ) { unset( $location_map[$existing_location] ); } } } protected function set_widget_menu_at_locations( $locations, $menu_id ) { $nav_menu_widgets = get_option( 'widget_nav_menu' ); if ( ! is_array( $nav_menu_widgets ) ) { return; } // Remove menus from all custom menu widget locations foreach ( $nav_menu_widgets as &$widget ) { if ( is_array( $widget ) && $widget['nav_menu'] == $menu_id ) { $widget['nav_menu'] = 0; } } if ( is_array( $locations ) ) { foreach ( $locations as $location ) { if ( preg_match( '/^nav_menu_widget-(\d+)/', $location, $matches ) ) { if ( isset( $matches[1] ) ) { $nav_menu_widgets[$matches[1]]['nav_menu'] = $menu_id; } } } } update_option( 'widget_nav_menu', $nav_menu_widgets ); } protected function locations_are_valid( $locations ) { if ( is_int( $locations ) ) { if ( $locations != 0) { return new WP_Error( 'locations-int', 'Locations int must be 0.', 400 ); } else { return true; } } elseif ( is_array( $locations ) ) { foreach ( $locations as $location_name ) { if ( ! $this->location_name_exists( $location_name ) ) { return new WP_Error( 'locations-array', sprintf( "Location '%s' does not exist.", $location_name ), 404 ); } } return true; } return new WP_Error( 'locations', 'Locations must be array or integer.', 400 ); } protected function location_name_exists( $location_name ) { $widget_location_names = wp_list_pluck( WPCOM_JSON_API_Menus_Widgets::get(), 'name' ); if ( ! is_array( get_registered_nav_menus() ) ) { return false; } return array_key_exists( $location_name, get_registered_nav_menus() ) || in_array( $location_name, $widget_location_names ); } } class WPCOM_JSON_API_Menus_New_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint { function callback( $path = '', $site = 0 ) { $site_id = $this->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } $data = $this->input(); $id = wp_create_nav_menu( $data['name'] ); if ( is_wp_error( $id ) ) { return $id; } return array( 'id' => $id ); } } class WPCOM_JSON_API_Menus_Update_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint { function callback( $path = '', $site = 0, $menu_id = 0 ) { $site_id = $this->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } if ( $menu_id <= 0 ) { return new WP_Error( 'menu-id', 'Menu ID must be greater than 0.', 400 ); } $data = $this->input( true, false ); $data['id'] = $menu_id; $data = $this->complexify( array( $data ) ); if ( is_wp_error( $data ) ) { return $data; } $data = $data[0]; // Avoid special-case handling of an unset 'items' field in empty menus $data['items'] = isset( $data['items'] ) ? $data['items'] : array(); $data = $this->create_new_items( $data, $menu_id ); $result = wp_update_nav_menu_object( $menu_id, array( 'menu-name' => $data['menu-name'] ) ); if ( is_wp_error( $result ) ) { return $result; } $delete_status = $this->delete_items_not_present( $menu_id, $data['items'] ); if( is_wp_error( $delete_status ) ) { return $delete_status; } foreach ( $data['items'] as $item ) { $item_id = isset( $item['menu-item-db-id'] ) ? $item['menu-item-db-id'] : 0; $result = wp_update_nav_menu_item( $menu_id, $item_id, $item ); if ( is_wp_error( $result ) ) { return $result; } } $items = wp_get_nav_menu_items( $menu_id, array( 'update_post_term_cache' => false ) ); if ( is_wp_error( $items ) ) { return $items; } $menu = wp_get_nav_menu_object( $menu_id ); $menu->items = $items; return array( 'menu' => $this->simplify( $menu ) ); } /** * New items can have a 'tmp_id', allowing them to * be used as parent items before they have been created. * * This function will create items that have a 'tmp_id' set, and * update any items with a 'tmp_parent' to use the * newly created item as a parent. */ function create_new_items( $data, $menu_id ) { $tmp_to_actual_ids = array(); foreach ( $data['items'] as &$item ) { if ( isset( $item['tmp_id'] ) ) { $actual_id = wp_update_nav_menu_item( $menu_id, 0, $item ); $tmp_to_actual_ids[ $item['tmp_id'] ] = $actual_id; unset( $item['tmp_id'] ); $item['menu-item-db-id'] = $actual_id; } } foreach ( $data['items'] as &$item ) { if ( isset( $item['tmp_parent'] ) ) { $item['menu-item-parent-id'] = $tmp_to_actual_ids[ $item['tmp_parent'] ]; unset( $item['tmp_parent'] ); } } return $data; } /** * remove any existing menu items not present in the supplied array. * returns wp_error if an item cannot be deleted. */ function delete_items_not_present( $menu_id, $menu_items ) { $existing_items = wp_get_nav_menu_items( $menu_id, array( 'update_post_term_cache' => false ) ); if ( ! is_array( $existing_items ) ) { return true; } $existing_ids = wp_list_pluck( $existing_items, 'db_id' ); $ids_to_keep = wp_list_pluck( $menu_items, 'menu-item-db-id' ); $ids_to_remove = array_diff( $existing_ids, $ids_to_keep ); foreach ( $ids_to_remove as $id ) { if ( false === wp_delete_post( $id, true ) ) { return new WP_Error( 'menu-item', sprintf( 'Failed to delete menu item with id: %d.', $id ), 400 ); } } return true; } } class WPCOM_JSON_API_Menus_List_Menus_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint { function callback( $path = '', $site = 0 ) { $site_id = $this->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } $menus = wp_get_nav_menus( array( 'orderby' => 'term_id' ) ); if ( is_wp_error( $menus ) ) { return $menus; } foreach ( $menus as $m ) { $items = wp_get_nav_menu_items( $m->term_id, array( 'update_post_term_cache' => false ) ); if ( is_wp_error( $items ) ) { return $items; } $m->items = $items; } $menus = $this->simplify( $menus ); if ( is_wp_error( $this->get_locations() ) ) { return $this->get_locations(); } return array( 'menus' => $menus, 'locations' => $this->get_locations() ); } } class WPCOM_JSON_API_Menus_Get_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint { function callback( $path = '', $site = 0, $menu_id = 0 ) { $site_id = $this->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } if ( $menu_id <= 0 ) { return new WP_Error( 'menu-id', 'Menu ID must be greater than 0.', 400 ); } $menu = get_term( $menu_id, 'nav_menu' ); if ( is_wp_error( $menu ) ) { return $menu; } $items = wp_get_nav_menu_items( $menu_id, array( 'update_post_term_cache' => false ) ); if ( is_wp_error( $items ) ) { return $items; } $menu->items = $items; return array( 'menu' => $this->simplify( $menu ) ); } } class WPCOM_JSON_API_Menus_Delete_Menu_Endpoint extends WPCOM_JSON_API_Menus_Abstract_Endpoint { function callback( $path = '', $site = 0, $menu_id = 0 ) { $site_id = $this->switch_to_blog_and_validate_user( $this->api->get_blog_id( $site ) ); if ( is_wp_error( $site_id ) ) { return $site_id; } if ( $menu_id <= 0 ) { return new WP_Error( 'menu-id', 'Menu ID must be greater than 0.', 400 ); } $result = wp_delete_nav_menu( $menu_id ); if ( ! is_wp_error( $result ) ) { $result = array( 'deleted' => $result ); } return $result; } } class WPCOM_JSON_API_Menus_Widgets { static function get() { $locations = array(); $nav_menu_widgets = get_option( 'widget_nav_menu' ); if ( ! is_array( $nav_menu_widgets ) ) { return $locations; } foreach ( $nav_menu_widgets as $k => $v ) { if ( is_array( $v ) && isset( $v['title'] ) ) { $locations[$k] = array( 'name' => 'nav_menu_widget-' . $k, 'description' => $v['title'] ); } } return $locations; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-1-endpoint.php0000644000312500031250000006420212654410420030455 0ustar eacbforgeacbforgapi->ends_with( $this->path, '/delete' ) ) { $this->post_object_format['status']['deleted'] = 'The post has been deleted permanently.'; } } // /sites/%s/posts/new -> $blog_id // /sites/%s/posts/%d -> $blog_id, $post_id // /sites/%s/posts/%d/delete -> $blog_id, $post_id // /sites/%s/posts/%d/restore -> $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( $this->api->ends_with( $path, '/delete' ) ) { return $this->delete_post( $path, $blog_id, $post_id ); } elseif ( $this->api->ends_with( $path, '/restore' ) ) { return $this->restore_post( $path, $blog_id, $post_id ); } else { return $this->write_post( $path, $blog_id, $post_id ); } } // /sites/%s/posts/new -> $blog_id // /sites/%s/posts/%d -> $blog_id, $post_id function write_post( $path, $blog_id, $post_id ) { $new = $this->api->ends_with( $path, '/new' ); $args = $this->query_args(); // unhook publicize, it's hooked again later -- without this, skipping services is impossible if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { remove_action( 'save_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ), 100, 2 ); add_action( 'rest_api_inserted_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ) ); } // 'future' is an alias for 'publish' for now if ( 'future' === $input['status'] ) { $input['status'] = 'publish'; } if ( $new ) { $input = $this->input( true ); if ( 'revision' === $input['type'] ) { if ( ! isset( $input['parent'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $input['status'] = 'inherit'; // force inherit for revision type $input['slug'] = $input['parent'] . '-autosave-v1'; } elseif ( !isset( $input['title'] ) && !isset( $input['content'] ) && !isset( $input['excerpt'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } // default to post if ( empty( $input['type'] ) ) $input['type'] = 'post'; $post_type = get_post_type_object( $input['type'] ); if ( ! $this->is_post_type_allowed( $input['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } if ( ! empty( $input['author'] ) ) { $author_id = $this->parse_and_set_author( $input['author'], $input['type'] ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( 'publish' === $input['status'] ) { if ( ! current_user_can( $post_type->cap->publish_posts ) ) { if ( current_user_can( $post_type->cap->edit_posts ) ) { $input['status'] = 'pending'; } else { return new WP_Error( 'unauthorized', 'User cannot publish posts', 403 ); } } } else { if ( !current_user_can( $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'User cannot edit posts', 403 ); } } } else { $input = $this->input( false ); if ( !is_array( $input ) || !$input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $post = get_post( $post_id ); $_post_type = ( ! empty( $input['type'] ) ) ? $input['type'] : $post->post_type; $post_type = get_post_type_object( $_post_type ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( !current_user_can( 'edit_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } if ( ! empty( $input['author'] ) ) { $author_id = $this->parse_and_set_author( $input['author'], $_post_type ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( ( isset( $input['status'] ) && 'publish' === $input['status'] ) && 'publish' !== $post->post_status && !current_user_can( 'publish_post', $post->ID ) ) { $input['status'] = 'pending'; } $last_status = $post->post_status; $new_status = isset( $input['status'] ) ? $input['status'] : $last_status; // Make sure that drafts get the current date when transitioning to publish if not supplied in the post. $date_in_past = ( strtotime($post->post_date_gmt) < time() ); if ( 'publish' === $new_status && 'draft' === $last_status && ! isset( $input['date_gmt'] ) && $date_in_past ) { $input['date_gmt'] = gmdate( 'Y-m-d H:i:s' ); } } // If date is set, $this->input will set date_gmt, date still needs to be adjusted for the blog's offset if ( isset( $input['date_gmt'] ) ) { $gmt_offset = get_option( 'gmt_offset' ); $time_with_offset = strtotime( $input['date_gmt'] ) + $gmt_offset * HOUR_IN_SECONDS; $input['date'] = date( 'Y-m-d H:i:s', $time_with_offset ); } if ( ! empty( $author_id ) && get_current_user_id() != $author_id ) { if ( ! current_user_can( $post_type->cap->edit_others_posts ) ) { return new WP_Error( 'unauthorized', "User is not allowed to publish others' posts.", 403 ); } elseif ( ! user_can( $author_id, $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'Assigned author cannot publish post.', 403 ); } } if ( !is_post_type_hierarchical( $post_type->name ) && 'revision' !== $post_type->name ) { unset( $input['parent'] ); } $tax_input = array(); foreach ( array( 'categories' => 'category', 'tags' => 'post_tag' ) as $key => $taxonomy ) { if ( ! isset( $input[ $key ] ) ) { continue; } $tax_input[ $taxonomy ] = array(); $is_hierarchical = is_taxonomy_hierarchical( $taxonomy ); if ( is_array( $input[$key] ) ) { $terms = $input[$key]; } else { $terms = explode( ',', $input[$key] ); } foreach ( $terms as $term ) { /** * `curl --data 'category[]=123'` should be interpreted as a category ID, * not a category whose name is '123'. * * Consequence: To add a category/tag whose name is '123', the client must * first look up its ID. */ if ( ctype_digit( $term ) ) { $term = (int) $term; } $term_info = term_exists( $term, $taxonomy ); if ( ! $term_info ) { // A term ID that doesn't already exist. Ignore it: we don't know what name to give it. if ( is_int( $term ) ){ continue; } // only add a new tag/cat if the user has access to $tax = get_taxonomy( $taxonomy ); // see https://core.trac.wordpress.org/ticket/26409 if ( 'category' === $taxonomy && ! current_user_can( $tax->cap->edit_terms ) ) { continue; } else if ( ! current_user_can( $tax->cap->assign_terms ) ) { continue; } $term_info = wp_insert_term( $term, $taxonomy ); } if ( ! is_wp_error( $term_info ) ) { if ( $is_hierarchical ) { // Categories must be added by ID $tax_input[$taxonomy][] = (int) $term_info['term_id']; } else { // Tags must be added by name if ( is_int( $term ) ) { $term = get_term( $term, $taxonomy ); $tax_input[$taxonomy][] = $term->name; } else { $tax_input[$taxonomy][] = $term; } } } } } if ( isset( $input['categories'] ) && empty( $tax_input['category'] ) && 'revision' !== $post_type->name ) { $tax_input['category'][] = get_option( 'default_category' ); } unset( $input['tags'], $input['categories'] ); $insert = array(); if ( !empty( $input['slug'] ) ) { $insert['post_name'] = $input['slug']; unset( $input['slug'] ); } if ( isset( $input['discussion'] ) ) { $discussion = (array) $input['discussion']; foreach ( array( 'comment', 'ping' ) as $discussion_type ) { $discussion_open = sprintf( '%ss_open', $discussion_type ); $discussion_status = sprintf( '%s_status', $discussion_type ); if ( isset( $discussion[ $discussion_open ] ) ) { $is_open = WPCOM_JSON_API::is_truthy( $discussion[ $discussion_open ] ); $discussion[ $discussion_status ] = $is_open ? 'open' : 'closed'; } if ( in_array( $discussion[ $discussion_status ], array( 'open', 'closed' ) ) ) { $insert[ $discussion_status ] = $discussion[ $discussion_status ]; } } } unset( $input['discussion'] ); if ( isset( $input['menu_order'] ) ) { $insert['menu_order'] = $input['menu_order']; unset( $input['menu_order'] ); } $publicize = isset( $input['publicize'] ) ? $input['publicize'] : null; unset( $input['publicize'] ); $publicize_custom_message = isset( $input['publicize_message'] ) ? $input['publicize_message'] : null; unset( $input['publicize_message'] ); if ( isset( $input['featured_image'] ) ) { $featured_image = trim( $input['featured_image'] ); $delete_featured_image = empty( $featured_image ); unset( $input['featured_image'] ); } $metadata = isset( $input['metadata'] ) ? $input['metadata'] : null; unset( $input['metadata'] ); $likes = isset( $input['likes_enabled'] ) ? $input['likes_enabled'] : null; unset( $input['likes_enabled'] ); $sharing = isset( $input['sharing_enabled'] ) ? $input['sharing_enabled'] : null; unset( $input['sharing_enabled'] ); $sticky = isset( $input['sticky'] ) ? $input['sticky'] : null; unset( $input['sticky'] ); foreach ( $input as $key => $value ) { $insert["post_$key"] = $value; } if ( ! empty( $author_id ) ) { $insert['post_author'] = absint( $author_id ); } if ( ! empty( $tax_input ) ) { $insert['tax_input'] = $tax_input; } $has_media = ! empty( $input['media'] ) ? count( $input['media'] ) : false; $has_media_by_url = ! empty( $input['media_urls'] ) ? count( $input['media_urls'] ) : false; if ( $new ) { if ( isset( $input['content'] ) && ! has_shortcode( $input['content'], 'gallery' ) && ( $has_media || $has_media_by_url ) ) { switch ( ( $has_media + $has_media_by_url ) ) { case 0 : // No images - do nothing. break; case 1 : // 1 image - make it big $insert['post_content'] = $input['content'] = "[gallery size=full columns=1]\n\n" . $input['content']; break; default : // Several images - 3 column gallery $insert['post_content'] = $input['content'] = "[gallery]\n\n" . $input['content']; break; } } $post_id = wp_insert_post( add_magic_quotes( $insert ), true ); } else { $insert['ID'] = $post->ID; // wp_update_post ignores date unless edit_date is set // See: http://codex.wordpress.org/Function_Reference/wp_update_post#Scheduling_posts // See: https://core.trac.wordpress.org/browser/tags/3.9.2/src/wp-includes/post.php#L3302 if ( isset( $input['date_gmt'] ) || isset( $input['date'] ) ) { $insert['edit_date'] = true; } $post_id = wp_update_post( (object) $insert ); } if ( !$post_id || is_wp_error( $post_id ) ) { return $post_id; } // make sure this post actually exists and is not an error of some kind (ie, trying to load media in the posts endpoint) $post_check = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( is_wp_error( $post_check ) ) { return $post_check; } if ( $has_media || $has_media_by_url ) { $media_files = ! empty( $input['media'] ) ? $input['media'] : array(); $media_urls = ! empty( $input['media_urls'] ) ? $input['media_urls'] : array(); $media_attrs = ! empty( $input['media_attrs'] ) ? $input['media_attrs'] : array(); $force_parent_id = $post_id; $media_results = $this->handle_media_creation_v1_1( $media_files, $media_urls, $media_attrs, $force_parent_id ); } // set page template for this post.. if ( isset( $input['page_template'] ) && 'page' == $post_type->name ) { $page_template = $input['page_template']; $page_templates = wp_get_theme()->get_page_templates( get_post( $post_id ) ); if ( empty( $page_template ) || 'default' == $page_template || isset( $page_templates[ $page_template ] ) ) { update_post_meta( $post_id, '_wp_page_template', $page_template ); } } // Set like status for the post /** This filter is documented in modules/likes.php */ $sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ); if ( $new ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } else { if ( isset( $likes ) ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( true === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } } // Set sharing status of the post if ( $new ) { $sharing_enabled = isset( $sharing ) ? (bool) $sharing : true; if ( false === $sharing_enabled ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } else { if ( isset( $sharing ) && true === $sharing ) { delete_post_meta( $post_id, 'sharing_disabled' ); } else if ( isset( $sharing ) && false == $sharing ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } if ( isset( $sticky ) ) { if ( true === $sticky ) { stick_post( $post_id ); } else { unstick_post( $post_id ); } } // WPCOM Specific (Jetpack's will get bumped elsewhere // Tracks how many posts are published and sets meta // so we can track some other cool stats (like likes & comments on posts published) if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { if ( ( $new && 'publish' == $input['status'] ) || ( ! $new && isset( $last_status ) && 'publish' != $last_status && isset( $new_status ) && 'publish' == $new_status ) ) { /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'api-insights-posts', $this->api->token_details['client_id'] ); update_post_meta( $post_id, '_rest_api_published', 1 ); update_post_meta( $post_id, '_rest_api_client_id', $this->api->token_details['client_id'] ); } } // We ask the user/dev to pass Publicize services he/she wants activated for the post, but Publicize expects us // to instead flag the ones we don't want to be skipped. proceed with said logic. // any posts coming from Path (client ID 25952) should also not publicize if ( $publicize === false || ( isset( $this->api->token_details['client_id'] ) && 25952 == $this->api->token_details['client_id'] ) ) { // No publicize at all, skip all by ID foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); if ( ! $service_connections ) { continue; } foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } } else if ( is_array( $publicize ) && ( count ( $publicize ) > 0 ) ) { foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { /* * We support both indexed and associative arrays: * * indexed are to pass entire services * * associative are to pass specific connections per service * * We do support mixed arrays: mixed integer and string keys (see 3rd example below). * * EG: array( 'twitter', 'facebook') will only publicize to those, ignoring the other available services * Form data: publicize[]=twitter&publicize[]=facebook * EG: array( 'twitter' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3', 'facebook' => (int) $pub_conn_id_7 ) will publicize to two Twitter accounts, and one Facebook connection, of potentially many. * Form data: publicize[twitter]=$pub_conn_id_0,$pub_conn_id_3&publicize[facebook]=$pub_conn_id_7 * EG: array( 'twitter', 'facebook' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3' ) will publicize to all available Twitter accounts, but only 2 of potentially many Facebook connections * Form data: publicize[]=twitter&publicize[facebook]=$pub_conn_id_0,$pub_conn_id_3 */ // Delete any stale SKIP value for the service by name. We'll add it back by ID. delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); // Get the user's connections $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); // if the user doesn't have any connections for this service, move on if ( ! $service_connections ) { continue; } if ( !in_array( $name, $publicize ) && !array_key_exists( $name, $publicize ) ) { // Skip the whole service by adding each connection ID foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } else if ( !empty( $publicize[ $name ] ) ) { // Seems we're being asked to only push to [a] specific connection[s]. // Explode the list on commas, which will also support a single passed ID $requested_connections = explode( ',', ( preg_replace( '/[\s]*/', '', $publicize[ $name ] ) ) ); // Flag the connections we can't match with the requested list to be skipped. foreach ( $service_connections as $service_connection ) { if ( !in_array( $service_connection->meta['connection_data']->id, $requested_connections ) ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } else { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } else { // delete all SKIP values; it's okay to publish to all connected IDs for this service foreach ( $service_connections as $service_connection ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } } if ( ! is_null( $publicize_custom_message ) ) { if ( empty( $publicize_custom_message ) ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS ); } else { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS, trim( $publicize_custom_message ) ); } } if ( ! empty( $insert['post_format'] ) ) { if ( 'default' !== strtolower( $insert['post_format'] ) ) { set_post_format( $post_id, $insert['post_format'] ); } else { set_post_format( $post_id, get_option( 'default_post_format' ) ); } } if ( isset( $featured_image ) ) { $this->parse_and_set_featured_image( $post_id, $delete_featured_image, $featured_image ); } if ( ! empty( $metadata ) ) { foreach ( (array) $metadata as $meta ) { $meta = (object) $meta; $existing_meta_item = new stdClass; if ( empty( $meta->operation ) ) $meta->operation = 'update'; if ( ! empty( $meta->value ) ) { if ( 'true' == $meta->value ) $meta->value = true; if ( 'false' == $meta->value ) $meta->value = false; } if ( ! empty( $meta->id ) ) { $meta->id = absint( $meta->id ); $existing_meta_item = get_metadata_by_mid( 'post', $meta->id ); } $unslashed_meta_key = wp_unslash( $meta->key ); // should match what the final key will be $meta->key = wp_slash( $meta->key ); $unslashed_existing_meta_key = wp_unslash( $existing_meta_item->meta_key ); $existing_meta_item->meta_key = wp_slash( $existing_meta_item->meta_key ); // make sure that the meta id passed matches the existing meta key if ( ! empty( $meta->id ) && ! empty( $meta->key ) ) { $meta_by_id = get_metadata_by_mid( 'post', $meta->id ); if ( $meta_by_id->meta_key !== $meta->key ) { continue; // skip this meta } } switch ( $meta->operation ) { case 'delete': if ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_existing_meta_key ) ) { delete_metadata_by_mid( 'post', $meta->id ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key ); } break; case 'add': if ( ! empty( $meta->id ) || ! empty( $meta->previous_value ) ) { continue; } elseif ( ! empty( $meta->key ) && ! empty( $meta->value ) && ( current_user_can( 'add_post_meta', $post_id, $unslashed_meta_key ) ) || $this->is_metadata_public( $meta->key ) ) { add_post_meta( $post_id, $meta->key, $meta->value ); } break; case 'update': if ( ! isset( $meta->value ) ) { continue; } elseif ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_existing_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_metadata_by_mid( 'post', $meta->id, $meta->value ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key,$meta->value, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key, $meta->value ); } break; } } } /** This action is documented in json-endpoints/class.wpcom-json-api-update-post-endpoint.php */ do_action( 'rest_api_inserted_post', $post_id, $insert, $new ); $return = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } if ( isset( $input['type'] ) && 'revision' === $input['type'] ) { $return['preview_nonce'] = wp_create_nonce( 'post_preview_' . $input['parent'] ); } if ( isset( $sticky ) ) { // workaround for sticky test occasionally failing, maybe a race condition with stick_post() above $return['sticky'] = ( true === $sticky ); } if ( ! empty( $media_results['errors'] ) ) $return['media_errors'] = $media_results['errors']; if ( 'publish' !== $post->post_status ) { $return['other_URLs'] = (object) $this->get_post_permalink_suggestions( $post_id, $input['title'] ); } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); return $return; } // /sites/%s/posts/%d/delete -> $blog_id, $post_id function delete_post( $path, $blog_id, $post_id ) { $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! $this->is_post_type_allowed( $post->post_type ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } if ( !current_user_can( 'delete_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot delete posts', 403 ); } $args = $this->query_args(); $return = $this->get_post_by( 'ID', $post->ID, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); wp_delete_post( $post->ID ); $status = get_post_status( $post->ID ); if ( false === $status ) { $return['status'] = 'deleted'; return $return; } return $this->get_post_by( 'ID', $post->ID, $args['context'] ); } // /sites/%s/posts/%d/restore -> $blog_id, $post_id function restore_post( $path, $blog_id, $post_id ) { $args = $this->query_args(); $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( !current_user_can( 'delete_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot restore trashed posts', 403 ); } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); wp_untrash_post( $post->ID ); return $this->get_post_by( 'ID', $post->ID, $args['context'] ); } protected function parse_and_set_featured_image( $post_id, $delete_featured_image, $featured_image ) { if ( $delete_featured_image ) { delete_post_thumbnail( $post_id ); return; } $featured_image = (string) $featured_image; // if we got a post ID, we can just set it as the thumbnail if ( ctype_digit( $featured_image ) && 'attachment' == get_post_type( $featured_image ) ) { set_post_thumbnail( $post_id, $featured_image ); return $featured_image; } $featured_image_id = $this->handle_media_sideload( $featured_image, $post_id ); if ( empty( $featured_image_id ) || ! is_int( $featured_image_id ) ) return false; set_post_thumbnail( $post_id, $featured_image_id ); return $featured_image_id; } protected function parse_and_set_author( $author = null, $post_type = 'post' ) { if ( empty( $author ) || ! post_type_supports( $post_type, 'author' ) ) return get_current_user_id(); if ( ctype_digit( $author ) ) { $_user = get_user_by( 'id', $author ); if ( ! $_user || is_wp_error( $_user ) ) return new WP_Error( 'invalid_author', 'Invalid author provided' ); return $_user->ID; } $_user = get_user_by( 'login', $author ); if ( ! $_user || is_wp_error( $_user ) ) return new WP_Error( 'invalid_author', 'Invalid author provided' ); return $_user->ID; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-customcss.php0000644000312500031250000000243012651056012027206 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'edit_theme_options' ) ) { return new WP_Error( 'unauthorized', 'User is not authorized to access custom css', 403 ); } $args = $this->input(); if ( empty( $args ) || ! is_array( $args ) ) { return new WP_Error( 'no_data', 'No data was provided.', 400 ); } $save_args = array( 'css' => $args['css'], 'preprocessor' => $args['preprocessor'], 'add_to_existing' => $args['add_to_existing'], ); Jetpack_Custom_CSS::save( $save_args ); $current = array( 'css' => Jetpack_Custom_CSS::get_css(), 'preprocessor' => Jetpack_Custom_CSS::get_preprocessor_key(), 'add_to_existing' => ! Jetpack_Custom_CSS::skip_stylesheet(), ); $defaults = array( 'css' => '', 'preprocessor' => '', 'add_to_existing' => true, ); return wp_parse_args( $current, $defaults ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-render-endpoint.php0000644000312500031250000000765212654410420027013 0ustar eacbforgeacbforgdone; $initial_styles = $wp_styles->done; // actually render the shortcode, get the result, and do the resource loading again so we can subtract.. ob_start(); wp_head(); ob_end_clean(); $result = call_user_func( $callback, $callback_arg ); ob_start(); wp_footer(); ob_end_clean(); // find the difference (the new resource files) $loaded_scripts = array_diff( $wp_scripts->done, $initial_scripts ); $loaded_styles = array_diff( $wp_styles->done, $initial_styles ); return array( 'result' => $result, 'loaded_scripts' => $loaded_scripts, 'loaded_styles' => $loaded_styles, ); } /** * Takes the list of styles and scripts and adds them to the JSON response */ function add_assets( $return, $loaded_scripts, $loaded_styles ) { global $wp_scripts, $wp_styles; // scripts first, just cuz if ( count( $loaded_scripts ) > 0 ) { $scripts = array(); foreach ( $loaded_scripts as $handle ) { if ( !isset( $wp_scripts->registered[ $handle ] ) ) continue; $src = $wp_scripts->registered[ $handle ]->src; // attach version and an extra query parameters $ver = $this->get_version( $wp_scripts->registered[ $handle ]->ver, $wp_scripts->default_version ); if ( isset( $wp_scripts->args[ $handle ] ) ) { $ver = $ver ? $ver . '&' . $wp_scripts->args[$handle] : $wp_scripts->args[$handle]; } $src = add_query_arg( 'ver', $ver, $src ); // add to an aray so we can return all this info $scripts[ $handle ] = array( 'src' => $src, ); $extra = $wp_scripts->print_extra_script( $handle, false ); if ( !empty( $extra ) ) { $scripts[$handle]['extra'] = $extra; } } $return['scripts'] = $scripts; } // now styles if ( count( $loaded_styles ) > 0 ) { $styles = array(); foreach ( $loaded_styles as $handle ) { if ( !isset( $wp_styles->registered[ $handle ] ) ) continue; $src = $wp_styles->registered[ $handle ]->src; // attach version and an extra query parameters $ver = $this->get_version( $wp_styles->registered[ $handle ]->ver, $wp_styles->default_version ); if ( isset( $wp_styles->args[ $handle ] ) ) { $ver = $ver ? $ver . '&' . $wp_styles->args[$handle] : $wp_styles->args[$handle]; } $src = add_query_arg( 'ver', $ver, $src ); // is there a special media (print, screen, etc) for this? if not, default to 'all' $media = 'all'; if ( isset( $wp_styles->registered[ $handle ]->args ) ) { $media = esc_attr( $wp_styles->registered[ $handle ]->args ); } // add to an aray so we can return all this info $styles[ $handle ] = array ( 'src' => $src, 'media' => $media, ); } $return['styles'] = $styles; } return $return; } /** * Returns the 'version' string set by the shortcode so different versions of scripts/styles can be loaded */ function get_version( $this_scripts_version, $default_version ) { if ( null === $this_scripts_version ) { $ver = ''; } else { $ver = $this_scripts_version ? $this_scripts_version : $default_version; } return $ver; } }plugins/jetpack/json-endpoints/class.wpcom-json-api-get-taxonomy-endpoint.php0000644000312500031250000000162112651056012030155 0ustar eacbforgeacbforg $blog_id, $tag_id // /sites/%s/categories/slug:%s -> $blog_id, $tag_id function callback( $path = '', $blog_id = 0, $taxonomy_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); if ( preg_match( '#/tags/#i', $path ) ) { $taxonomy_type = "post_tag"; } else { $taxonomy_type = "category"; } $return = $this->get_taxonomy( $taxonomy_id, $taxonomy_type, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'taxonomies' ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-taxonomy-endpoint.php0000644000312500031250000001301112654410420030654 0ustar eacbforgeacbforg $blog_id // /sites/%s/tags|categories/slug:%s -> $blog_id, $taxonomy_id // /sites/%s/tags|categories/slug:%s/delete -> $blog_id, $taxonomy_id function callback( $path = '', $blog_id = 0, $object_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( preg_match( '#/tags/#i', $path ) ) { $taxonomy_type = "post_tag"; } else { $taxonomy_type = "category"; } if ( $this->api->ends_with( $path, '/delete' ) ) { return $this->delete_taxonomy( $path, $blog_id, $object_id, $taxonomy_type ); } elseif ( $this->api->ends_with( $path, '/new' ) ) { return $this->new_taxonomy( $path, $blog_id, $taxonomy_type ); } return $this->update_taxonomy( $path, $blog_id, $object_id, $taxonomy_type ); } // /sites/%s/tags|categories/new -> $blog_id function new_taxonomy( $path, $blog_id, $taxonomy_type ) { $args = $this->query_args(); $input = $this->input(); if ( !is_array( $input ) || !$input || !strlen( $input['name'] ) ) { return new WP_Error( 'invalid_input', 'Unknown data passed', 400 ); } $user = wp_get_current_user(); if ( !$user || is_wp_error( $user ) || !$user->ID ) { return new WP_Error( 'authorization_required', 'An active access token must be used to manage taxonomies.', 403 ); } $tax = get_taxonomy( $taxonomy_type ); if ( !current_user_can( $tax->cap->edit_terms ) ) { return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); } if ( 'category' !== $taxonomy_type || ! isset( $input['parent'] ) ) $input['parent'] = 0; if ( $term = get_term_by( 'name', $input['name'], $taxonomy_type ) ) { // get_term_by is not case-sensitive, but a name with different casing is allowed // also, the exact same name is allowed as long as the parents are different if ( $input['name'] === $term->name && $input['parent'] === $term->parent ) { return new WP_Error( 'duplicate', 'A taxonomy with that name already exists', 400 ); } } $data = wp_insert_term( addslashes( $input['name'] ), $taxonomy_type, array( 'description' => addslashes( $input['description'] ), 'parent' => $input['parent'] ) ); if ( is_wp_error( $data ) ) return $data; $taxonomy = get_term_by( 'id', $data['term_id'], $taxonomy_type ); $return = $this->get_taxonomy( $taxonomy->slug, $taxonomy_type, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'taxonomies' ); return $return; } // /sites/%s/tags|categories/slug:%s -> $blog_id, $taxonomy_id function update_taxonomy( $path, $blog_id, $object_id, $taxonomy_type ) { $taxonomy = get_term_by( 'slug', $object_id, $taxonomy_type ); $tax = get_taxonomy( $taxonomy_type ); if ( !current_user_can( $tax->cap->edit_terms ) ) return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); if ( !$taxonomy || is_wp_error( $taxonomy ) ) { return new WP_Error( 'unknown_taxonomy', 'Unknown taxonomy', 404 ); } if ( false === term_exists( $object_id, $taxonomy_type ) ) { return new WP_Error( 'unknown_taxonomy', 'That taxonomy does not exist', 404 ); } $args = $this->query_args(); $input = $this->input( false ); if ( !is_array( $input ) || !$input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $update = array(); if ( 'category' === $taxonomy_type && !empty( $input['parent'] ) ) $update['parent'] = $input['parent']; if ( !empty( $input['description'] ) ) $update['description'] = addslashes( $input['description'] ); if ( !empty( $input['name'] ) ) $update['name'] = addslashes( $input['name'] ); $data = wp_update_term( $taxonomy->term_id, $taxonomy_type, $update ); $taxonomy = get_term_by( 'id', $data['term_id'], $taxonomy_type ); $return = $this->get_taxonomy( $taxonomy->slug, $taxonomy_type, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'taxonomies' ); return $return; } // /sites/%s/tags|categories/%s/delete -> $blog_id, $taxonomy_id function delete_taxonomy( $path, $blog_id, $object_id, $taxonomy_type ) { $taxonomy = get_term_by( 'slug', $object_id, $taxonomy_type ); $tax = get_taxonomy( $taxonomy_type ); if ( !current_user_can( $tax->cap->delete_terms ) ) return new WP_Error( 'unauthorized', 'User cannot edit taxonomy', 403 ); if ( !$taxonomy || is_wp_error( $taxonomy ) ) { return new WP_Error( 'unknown_taxonomy', 'Unknown taxonomy', 404 ); } if ( false === term_exists( $object_id, $taxonomy_type ) ) { return new WP_Error( 'unknown_taxonomy', 'That taxonomy does not exist', 404 ); } $args = $this->query_args(); $return = $this->get_taxonomy( $taxonomy->slug, $taxonomy_type, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'taxonomies' ); wp_delete_term( $taxonomy->term_id, $taxonomy_type ); return array( 'slug' => (string) $taxonomy->slug, 'success' => 'true', ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-v1-1-endpoint.php0000644000312500031250000003157712654410420030342 0ustar eacbforgeacbforg '(int) The total number of posts found that match the request (ignoring limits, offsets, and pagination).', 'posts' => '(array:post) An array of post objects.', 'meta' => '(object) Meta data', ); // /sites/%s/posts/ -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); $is_eligible_for_page_handle = true; if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } if ( isset( $args['type'] ) && ! $this->is_post_type_allowed( $args['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } // Normalize post_type if ( isset( $args['type'] ) && 'any' == $args['type'] ) { if ( version_compare( $this->api->version, '1.1', '<' ) ) { $args['type'] = array( 'post', 'page' ); } else { // 1.1+ $args['type'] = $this->_get_whitelisted_post_types(); } } // determine statuses $status = ( ! empty( $args['status'] ) ) ? explode( ',', $args['status'] ) : array( 'publish' ); if ( is_user_logged_in() ) { $statuses_whitelist = array( 'publish', 'pending', 'draft', 'future', 'private', 'trash', 'any', ); $status = array_intersect( $status, $statuses_whitelist ); } else { // logged-out users can see only published posts $statuses_whitelist = array( 'publish', 'any' ); $status = array_intersect( $status, $statuses_whitelist ); if ( empty( $status ) ) { // requested only protected statuses? nothing for you here return array( 'found' => 0, 'posts' => array() ); } // clear it (AKA published only) because "any" includes protected $status = array(); } if ( isset( $args['type'] ) && ! in_array( $args['type'], array( 'post', 'page', 'revision', 'any' ) ) && defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } // let's be explicit about defaulting to 'post' $args['type'] = isset( $args['type'] ) ? $args['type'] : 'post'; // make sure the user can read or edit the requested post type(s) if ( is_array( $args['type'] ) ) { $allowed_types = array(); foreach ( $args['type'] as $post_type ) { if ( $this->current_user_can_access_post_type( $post_type, $args['context'] ) ) { $allowed_types[] = $post_type; } } if ( empty( $allowed_types ) ) { return array( 'found' => 0, 'posts' => array() ); } $args['type'] = $allowed_types; } else { if ( ! $this->current_user_can_access_post_type( $args['type'], $args['context'] ) ) { return array( 'found' => 0, 'posts' => array() ); } } $query = array( 'posts_per_page' => $args['number'], 'order' => $args['order'], 'orderby' => $args['order_by'], 'post_type' => $args['type'], 'post_status' => $status, 'post_parent' => isset( $args['parent_id'] ) ? $args['parent_id'] : null, 'author' => isset( $args['author'] ) && 0 < $args['author'] ? $args['author'] : null, 's' => isset( $args['search'] ) ? $args['search'] : null, 'fields' => 'ids', ); if ( ! is_user_logged_in () ) { $query['has_password'] = false; } if ( isset( $args['meta_key'] ) ) { $show = false; if ( $this->is_metadata_public( $args['meta_key'] ) ) $show = true; if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) ) $show = true; if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show ) return new WP_Error( 'invalid_meta_key', 'Invalid meta key', 404 ); $meta = array( 'key' => $args['meta_key'] ); if ( isset( $args['meta_value'] ) ) $meta['value'] = $args['meta_value']; $query['meta_query'] = array( $meta ); } if ( $args['sticky'] === 'include' ) { $query['ignore_sticky_posts'] = 1; } else if ( $args['sticky'] === 'exclude' ) { $sticky = get_option( 'sticky_posts' ); if ( is_array( $sticky ) ) { $query['post__not_in'] = $sticky; } } else if ( $args['sticky'] === 'require' ) { $sticky = get_option( 'sticky_posts' ); if ( is_array( $sticky ) && ! empty( $sticky ) ) { $query['post__in'] = $sticky; } else { // no sticky posts exist return array( 'found' => 0, 'posts' => array() ); } } if ( isset( $args['exclude'] ) ) { $excluded_ids = (array) $args['exclude']; $query['post__not_in'] = isset( $query['post__not_in'] ) ? array_merge( $query['post__not_in'], $excluded_ids ) : $excluded_ids; } if ( isset( $args['exclude_tree'] ) && is_post_type_hierarchical( $args['type'] ) ) { // get_page_children is a misnomer; it supports all hierarchical post types $page_args = array( 'child_of' => $args['exclude_tree'], 'post_type' => $args['type'], // since we're looking for things to exclude, be aggressive 'post_status' => 'publish,draft,pending,private,future,trash', ); $post_descendants = get_pages( $page_args ); $exclude_tree = array( $args['exclude_tree'] ); foreach ( $post_descendants as $child ) { $exclude_tree[] = $child->ID; } $query['post__not_in'] = isset( $query['post__not_in'] ) ? array_merge( $query['post__not_in'], $exclude_tree ) : $exclude_tree; } if ( isset( $args['category'] ) ) { $category = get_term_by( 'slug', $args['category'], 'category' ); if ( $category === false) { $query['category_name'] = $args['category']; } else { $query['cat'] = $category->term_id; } } if ( isset( $args['tag'] ) ) { $query['tag'] = $args['tag']; } if ( isset( $args['page'] ) ) { if ( $args['page'] < 1 ) { $args['page'] = 1; } $query['paged'] = $args['page']; if ( $query['paged'] !== 1 ) { $is_eligible_for_page_handle = false; } } else { if ( $args['offset'] < 0 ) { $args['offset'] = 0; } $query['offset'] = $args['offset']; if ( $query['offset'] !== 0 ) { $is_eligible_for_page_handle = false; } } if ( isset( $args['before'] ) ) { $this->date_range['before'] = $args['before']; } if ( isset( $args['after'] ) ) { $this->date_range['after'] = $args['after']; } if ( isset( $args['modified_before_gmt'] ) ) { $this->modified_range['before'] = $args['modified_before_gmt']; } if ( isset( $args['modified_after_gmt'] ) ) { $this->modified_range['after'] = $args['modified_after_gmt']; } if ( $this->date_range ) { add_filter( 'posts_where', array( $this, 'handle_date_range' ) ); } if ( $this->modified_range ) { add_filter( 'posts_where', array( $this, 'handle_modified_range' ) ); } if ( isset( $args['page_handle'] ) ) { $page_handle = wp_parse_args( $args['page_handle'] ); if ( isset( $page_handle['value'] ) && isset( $page_handle['id'] ) ) { // we have a valid looking page handle $this->page_handle = $page_handle; add_filter( 'posts_where', array( $this, 'handle_where_for_page_handle' ) ); } } /** * 'column' necessary for the me/posts endpoint (which extends sites/$site/posts). * Would need to be added to the sites/$site/posts definition if we ever want to * use it there. */ $column_whitelist = array( 'post_modified_gmt' ); if ( isset( $args['column'] ) && in_array( $args['column'], $column_whitelist ) ) { $query['column'] = $args['column']; } $this->performed_query = $query; add_filter( 'posts_orderby', array( $this, 'handle_orderby_for_page_handle' ) ); $wp_query = new WP_Query( $query ); remove_filter( 'posts_orderby', array( $this, 'handle_orderby_for_page_handle' ) ); if ( $this->date_range ) { remove_filter( 'posts_where', array( $this, 'handle_date_range' ) ); $this->date_range = array(); } if ( $this->modified_range ) { remove_filter( 'posts_where', array( $this, 'handle_modified_range' ) ); $this->modified_range = array(); } if ( $this->page_handle ) { remove_filter( 'posts_where', array( $this, 'handle_where_for_page_handle' ) ); } $return = array(); $excluded_count = 0; foreach ( array_keys( $this->response_format ) as $key ) { switch ( $key ) { case 'found' : $return[$key] = (int) $wp_query->found_posts; break; case 'posts' : $posts = array(); foreach ( $wp_query->posts as $post_ID ) { $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] ); if ( $the_post && ! is_wp_error( $the_post ) ) { $posts[] = $the_post; } else { $excluded_count++; } } if ( $posts ) { /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) ); } $return[$key] = $posts; break; case 'meta' : if ( ! is_array( $args['type'] ) ) { $return[$key] = (object) array( 'links' => (object) array( 'counts' => (string) $this->get_site_link( $blog_id, 'post-counts/' . $args['type'] ), ) ); } if ( $is_eligible_for_page_handle && $return['posts'] ) { $last_post = end( $return['posts'] ); reset( $return['posts'] ); if ( ( $return['found'] > count( $return['posts'] ) ) && $last_post ) { if ( ! isset( $return[$key] ) ) { $return[$key] = (object) array(); } $return[$key]->next_page = $this->build_page_handle( $last_post, $query ); } } break; } } $return['found'] -= $excluded_count; return $return; } function build_page_handle( $post, $query ) { $column = $query['orderby']; if ( ! $column ) { $column = 'date'; } return build_query( array( 'value' => urlencode($post[$column]), 'id' => $post['ID'] ) ); } function _build_date_range_query( $column, $range, $where ) { global $wpdb; switch ( count( $range ) ) { case 2 : $where .= $wpdb->prepare( " AND `$wpdb->posts`.$column >= CAST( %s AS DATETIME ) AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ", $range['after'], $range['before'] ); break; case 1 : if ( isset( $range['before'] ) ) { $where .= $wpdb->prepare( " AND `$wpdb->posts`.$column < CAST( %s AS DATETIME ) ", $range['before'] ); } else { $where .= $wpdb->prepare( " AND `$wpdb->posts`.$column > CAST( %s AS DATETIME ) ", $range['after'] ); } break; } return $where; } function handle_date_range( $where ) { return $this->_build_date_range_query( 'post_date', $this->date_range, $where ); } function handle_modified_range( $where ) { return $this->_build_date_range_query( 'post_modified_gmt', $this->modified_range, $where ); } function handle_where_for_page_handle( $where ) { global $wpdb; $column = $this->performed_query['orderby']; if ( ! $column ) { $column = 'date'; } $order = $this->performed_query['order']; if ( ! $order ) { $order = 'DESC'; } if ( ! in_array( $column, array( 'ID', 'title', 'date', 'modified', 'comment_count' ) ) ) { return $where; } if ( ! in_array( $order, array( 'DESC', 'ASC' ) ) ) { return $where; } $db_column = ''; $db_value = ''; switch( $column ) { case 'ID': $db_column = 'ID'; $db_value = '%d'; break; case 'title': $db_column = 'post_title'; $db_value = '%s'; break; case 'date': $db_column = 'post_date'; $db_value = 'CAST( %s as DATETIME )'; break; case 'modified': $db_column = 'post_modified'; $db_value = 'CAST( %s as DATETIME )'; break; case 'comment_count': $db_column = 'comment_count'; $db_value = '%d'; break; } if ( 'DESC'=== $order ) { $db_order = '<'; } else { $db_order = '>'; } // Add a clause that limits the results to items beyond the passed item, or equivalent to the passed item // but with an ID beyond the passed item. When we're ordering by the ID already, we only ask for items // beyond the passed item. $where .= $wpdb->prepare( " AND ( ( `$wpdb->posts`.`$db_column` $db_order $db_value ) ", $this->page_handle['value'] ); if ( $db_column !== 'ID' ) { $where .= $wpdb->prepare( "OR ( `$wpdb->posts`.`$db_column` = $db_value AND `$wpdb->posts`.ID $db_order %d )", $this->page_handle['value'], $this->page_handle['id'] ); } $where .= ' )'; return $where; } function handle_orderby_for_page_handle( $orderby ) { global $wpdb; if ( $this->performed_query['orderby'] === 'ID' ) { // bail if we're already ordering by ID return $orderby; } if ( $orderby ) { $orderby .= ' ,'; } $order = $this->performed_query['order']; if ( ! $order ) { $order = 'DESC'; } $orderby .= " `$wpdb->posts`.ID $order"; return $orderby; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-endpoint.php0000644000312500031250000000202712651056012030062 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( !current_user_can( 'upload_files', $media_id ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } $item = $this->get_media_item( $media_id ); if ( is_wp_error( $item ) ) { return new WP_Error( 'unknown_media', 'Unknown Media', 404 ); } $input = $this->input( true ); $insert = array(); if ( !empty( $input['title'] ) ) { $insert['post_title'] = $input['title']; } if ( !empty( $input['caption'] ) ) $insert['post_excerpt'] = $input['caption']; if ( !empty( $input['description'] ) ) $insert['post_content'] = $input['description']; $insert['ID'] = $media_id; wp_update_post( (object) $insert ); $item = $this->get_media_item( $media_id ); return $item; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-site-endpoint.php0000644000312500031250000005216212654411246027260 0ustar eacbforgeacbforg '(int) Site ID', 'name' => '(string) Title of site', 'description' => '(string) Tagline or description of site', 'URL' => '(string) Full URL to the site', 'jetpack' => '(bool) Whether the site is a Jetpack site or not', 'post_count' => '(int) The number of posts the site has', 'subscribers_count' => '(int) The number of subscribers the site has', 'lang' => '(string) Primary language code of the site', 'icon' => '(array) An array of icon formats for the site', 'logo' => '(array) The site logo, set in the Customizer', 'visible' => '(bool) If this site is visible in the user\'s site list', 'is_private' => '(bool) If the site is a private site or not', 'is_following' => '(bool) If the current user is subscribed to this site in the reader', 'options' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site. Note: Post formats is deprecated, please see /sites/$id/post-formats/', 'updates' => '(array) An array of available updates for plugins, themes, wordpress, and languages.', 'meta' => '(object) Meta data', ); // /sites/mine // /sites/%s -> $blog_id function callback( $path = '', $blog_id = 0 ) { global $wpdb; if ( 'mine' === $blog_id ) { $api = WPCOM_JSON_API::init(); if ( !$api->token_details || empty( $api->token_details['blog_id'] ) ) { return new WP_Error( 'authorization_required', 'An active access token must be used to query information about the current blog.', 403 ); } $blog_id = $api->token_details['blog_id']; } $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $response = $this->build_current_site_response(); /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'sites' ); return $response; } /** * Collects the necessary information to return for a site's response. * * @return (array) */ public function build_current_site_response( ) { global $wpdb, $wp_version; $response_format = self::$site_format; $is_user_logged_in = is_user_logged_in(); $visible = array(); if ( $is_user_logged_in ) { $current_user = wp_get_current_user(); $visible = get_user_meta( $current_user->ID, 'blog_visibility', true ); if ( !is_array( $visible ) ) $visible = array(); } $blog_id = (int) $this->api->get_blog_id_for_output(); /** This filter is documented in class.json-api-endpoints.php */ $is_jetpack = true === apply_filters( 'is_jetpack_site', false, $blog_id ); $site_url = get_option( 'siteurl' ); if ( $is_jetpack ) { remove_filter( 'option_stylesheet', 'fix_theme_location' ); if ( 'https' !== parse_url( $site_url, PHP_URL_SCHEME ) ) { add_filter( 'set_url_scheme', array( $this, 'force_http' ), 10, 3 ); } } foreach ( array_keys( $response_format ) as $key ) { switch ( $key ) { case 'ID' : $response[$key] = $blog_id; break; case 'name' : $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ); break; case 'description' : $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'description' ), ENT_QUOTES ); break; case 'URL' : $response[$key] = (string) home_url(); break; case 'jetpack' : $response[$key] = $is_jetpack; // jetpack magic affects this value break; case 'is_private' : if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $public_setting = get_option( 'blog_public' ); if ( -1 == $public_setting ) $response[$key] = true; else $response[$key] = false; } else { $response[$key] = false; // magic } break; case 'visible' : if ( $is_user_logged_in ){ $is_visible = true; if ( isset( $visible[$blog_id] ) ) { $is_visible = (bool) $visible[$blog_id]; } // null and true are visible $response[$key] = $is_visible; } break; case 'post_count' : if ( $is_user_logged_in ) $response[$key] = (int) $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish'"); break; case 'lang' : if ( $is_user_logged_in ) $response[$key] = (string) get_bloginfo( 'language' ); break; case 'icon' : if ( function_exists( 'blavatar_domain' ) && function_exists( 'blavatar_exists' ) && function_exists( 'blavatar_url' ) ) { $domain = blavatar_domain( home_url() ); if ( blavatar_exists( $domain ) ) { $response[ $key ] = array( 'img' => (string) remove_query_arg( 's', blavatar_url( $domain, 'img' ) ), 'ico' => (string) remove_query_arg( 's', blavatar_url( $domain, 'ico' ) ), ); } else { // This is done so that we can access the updated blavatar on .com via the /me/sites endpoint if( is_jetpack_site() ) { $site_icon_url = get_option( 'jetpack_site_icon_url' ); if( $site_icon_url ) { $response[ $key ] = array( 'img' => (string) jetpack_photon_url( $site_icon_url, array() , 'https' ), 'ico' => (string) jetpack_photon_url( $site_icon_url, array( 'w' => 16 ), 'https' ) ); } } } } elseif ( function_exists( 'jetpack_site_icon_url' ) && function_exists( 'jetpack_photon_url' ) ) { $response[ $key ] = array( 'img' => (string) jetpack_photon_url( jetpack_site_icon_url( get_current_blog_id() , 80 ), array( 'w' => 80 ), 'https' ), 'ico' => (string) jetpack_photon_url( jetpack_site_icon_url( get_current_blog_id() , 16 ), array( 'w' => 16 ), 'https' ), ); } break; case 'logo' : // Set an empty response array. $response[$key] = array( 'id' => (int) 0, 'sizes' => array(), 'url' => '', ); // Get current site logo values. $logo = get_option( 'site_logo' ); // Update the response array if there's a site logo currenty active. if ( $logo && 0 != $logo['id'] ) { $response[$key]['id'] = $logo['id']; $response[$key]['url'] = $logo['url']; foreach ( $logo['sizes'] as $size => $properties ) { $response[$key]['sizes'][$size] = $properties; } } break; case 'subscribers_count' : if ( function_exists( 'wpcom_subs_total_wpcom_subscribers' ) ) { $total_wpcom_subs = wpcom_subs_total_wpcom_subscribers( array( 'blog_id' => $blog_id, ) ); $response[$key] = $total_wpcom_subs; } else { $response[$key] = 0; // magic } break; case 'is_following': $response[$key] = (bool) $this->api->is_following( $blog_id ); break; case 'options': // Figure out if the blog supports VideoPress, have to do some extra checking for JP blogs $has_videopress = false; if ( get_option( 'video_upgrade' ) == '1' ) { $has_videopress = true; } else { if ( class_exists( 'Jetpack_Options' ) ) { $videopress = Jetpack_Options::get_option( 'videopress', array() ); if ( isset( $videopress['blog_id'] ) && $videopress['blog_id'] > 0 ) { $has_videopress = true; } } } // deprecated - see separate endpoint. get a list of supported post formats $all_formats = get_post_format_strings(); $supported = get_theme_support( 'post-formats' ); $supported_formats = array(); if ( isset( $supported[0] ) ) { foreach ( $supported[0] as $format ) { $supported_formats[ $format ] = $all_formats[ $format ]; } } // determine if sharing buttons should be visible by default $default_sharing_status = false; if ( class_exists( 'Sharing_Service' ) ) { $ss = new Sharing_Service(); $blog_services = $ss->get_blog_services(); $default_sharing_status = ! empty( $blog_services['visible'] ); } $is_mapped_domain = false; if ( function_exists( 'get_primary_redirect' ) ) { $primary_redirect = strtolower( get_primary_redirect() ); if ( false === strpos( $primary_redirect, '.wordpress.com' ) ) { $is_mapped_domain = true; } } $is_redirect = false; if ( function_exists( 'get_primary_domain_mapping_record' ) ) { if ( get_primary_domain_mapping_record()->type == 1 ) { $is_redirect = true; } } if ( function_exists( 'get_mime_types' ) ) { $allowed_file_types = get_mime_types(); } else { // http://codex.wordpress.org/Uploading_Files $mime_types = get_allowed_mime_types(); foreach ( $mime_types as $type => $mime_type ) { $extras = explode( '|', $type ); foreach ( $extras as $extra ) { $allowed_file_types[] = $extra; } } } if ( function_exists( 'get_blog_details' ) ) { $blog_details = get_blog_details(); if ( ! empty( $blog_details->registered ) ) { $registered_date = $blog_details->registered; } } $upgraded_filetypes_enabled = false; if ( $is_jetpack || get_option( 'use_upgraded_upload_filetypes' ) ) { $upgraded_filetypes_enabled = true; } $wordads = false; if ( function_exists( 'has_any_blog_stickers' ) ) { $wordads = has_any_blog_stickers( array( 'wordads-approved', 'wordads-approved-misfits' ), $blog_id ); } $publicize_permanently_disabled = false; if ( function_exists( 'is_publicize_permanently_disabled' ) ) { $publicize_permanently_disabled = is_publicize_permanently_disabled( $blog_id ); } $response[$key] = array( 'timezone' => (string) get_option( 'timezone_string' ), 'gmt_offset' => (float) get_option( 'gmt_offset' ), 'videopress_enabled' => $has_videopress, 'upgraded_filetypes_enabled' => $upgraded_filetypes_enabled, 'login_url' => wp_login_url(), 'admin_url' => get_admin_url(), 'is_mapped_domain' => $is_mapped_domain, 'is_redirect' => $is_redirect, 'unmapped_url' => get_site_url( $blog_id ), 'featured_images_enabled' => current_theme_supports( 'post-thumbnails' ), 'theme_slug' => get_option( 'stylesheet' ), 'header_image' => get_theme_mod( 'header_image_data' ), 'background_color' => get_theme_mod( 'background_color' ), 'image_default_link_type' => get_option( 'image_default_link_type' ), 'image_thumbnail_width' => (int) get_option( 'thumbnail_size_w' ), 'image_thumbnail_height' => (int) get_option( 'thumbnail_size_h' ), 'image_thumbnail_crop' => get_option( 'thumbnail_crop' ), 'image_medium_width' => (int) get_option( 'medium_size_w' ), 'image_medium_height' => (int) get_option( 'medium_size_h' ), 'image_large_width' => (int) get_option( 'large_size_w' ), 'image_large_height' => (int) get_option( 'large_size_h' ), 'permalink_structure' => get_option( 'permalink_structure' ), 'post_formats' => $supported_formats, 'default_post_format' => get_option( 'default_post_format' ), 'default_category' => (int) get_option( 'default_category' ), 'allowed_file_types' => $allowed_file_types, 'show_on_front' => get_option( 'show_on_front' ), /** This filter is documented in modules/likes.php */ 'default_likes_enabled' => (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ), 'default_sharing_status' => (bool) $default_sharing_status, 'default_comment_status' => ( 'closed' == get_option( 'default_comment_status' ) ? false : true ), 'default_ping_status' => ( 'closed' == get_option( 'default_ping_status' ) ? false : true ), 'software_version' => $wp_version, 'created_at' => ! empty( $registered_date ) ? $this->format_date( $registered_date ) : '0000-00-00T00:00:00+00:00', 'wordads' => $wordads, 'publicize_permanently_disabled' => $publicize_permanently_disabled, ); if ( 'page' === get_option( 'show_on_front' ) ) { $response['options']['page_on_front'] = (int) get_option( 'page_on_front' ); $response['options']['page_for_posts'] = (int) get_option( 'page_for_posts' ); } if ( $is_jetpack ) { $response['options']['jetpack_version'] = get_option( 'jetpack_version' ); if ( get_option( 'jetpack_main_network_site' ) ) { $response['options']['main_network_site'] = (string) rtrim( get_option( 'jetpack_main_network_site' ), '/' ); } if ( is_array( Jetpack_Options::get_option( 'active_modules' ) ) ) { $response['options']['active_modules'] = (array) array_values( Jetpack_Options::get_option( 'active_modules' ) ); } if ( $jetpack_wp_version = get_option( 'jetpack_wp_version' ) ) { $response['options']['software_version'] = (string) $jetpack_wp_version; } else if ( $jetpack_update = get_option( 'jetpack_updates' ) ) { if ( is_array( $jetpack_update ) && isset( $jetpack_update['wp_version'] ) ) { $response['options']['software_version'] = (string) $jetpack_update['wp_version']; } else { $response[ 'options' ][ 'software_version' ] = null; } } else { $response['options']['software_version'] = null; } $response['options']['max_upload_size'] = get_option( 'jetpack_max_upload_size', false ); // Sites have to prove that they are not main_network site. // If the sync happends right then we should be able to see that we are not dealing with a network site $response['options']['is_multi_network'] = (bool) get_option( 'jetpack_is_main_network', true ); $response['options']['is_multi_site'] = (bool) get_option( 'jetpack_is_multi_site', true ); $file_mod_denied_reason = array(); $file_mod_denied_reason['automatic_updater_disabled'] = (bool) get_option( 'jetpack_constant_AUTOMATIC_UPDATER_DISABLED' ); // WP AUTO UPDATE CORE defaults to minor, '1' if true and '0' if set to false. $file_mod_denied_reason['wp_auto_update_core_disabled'] = ! ( (bool) get_option( 'jetpack_constant_WP_AUTO_UPDATE_CORE', 'minor' ) ); $file_mod_denied_reason['is_version_controlled'] = (bool) get_option( 'jetpack_is_version_controlled' ); // By default we assume that site does have system write access if the value is not set yet. $file_mod_denied_reason['has_no_file_system_write_access'] = ! (bool)( get_option( 'jetpack_has_file_system_write_access', true ) ); $file_mod_denied_reason['disallow_file_mods'] = (bool) get_option( 'jetpack_constant_DISALLOW_FILE_MODS' ); $file_mod_disabled_reasons = array(); foreach( $file_mod_denied_reason as $reason => $set ) { if ( $set ) { $file_mod_disabled_reasons[] = $reason; } } $response['options']['file_mod_disabled'] = empty( $file_mod_disabled_reasons ) ? false : $file_mod_disabled_reasons; } if ( ! current_user_can( 'edit_posts' ) ) unset( $response[$key] ); break; case 'meta' : /** * Filters the URL scheme used when querying your site's REST API endpoint. * * @module json-api * * @since 3.2.0 * * @param string parse_url( get_option( 'home' ), PHP_URL_SCHEME ) URL scheme parsed from home URL. */ $xmlrpc_scheme = apply_filters( 'wpcom_json_api_xmlrpc_scheme', parse_url( get_option( 'home' ), PHP_URL_SCHEME ) ); $xmlrpc_url = site_url( 'xmlrpc.php', $xmlrpc_scheme ); $response[$key] = (object) array( 'links' => (object) array( 'self' => (string) $this->get_site_link( $blog_id ), 'help' => (string) $this->get_site_link( $blog_id, 'help' ), 'posts' => (string) $this->get_site_link( $blog_id, 'posts/' ), 'comments' => (string) $this->get_site_link( $blog_id, 'comments/' ), 'xmlrpc' => (string) $xmlrpc_url, ), ); break; } } if ( $is_jetpack ) { // Add the updates only make them visible if the user has manage options permission. $jetpack_update = (array) get_option( 'jetpack_updates' ); if ( ! empty( $jetpack_update ) && current_user_can( 'manage_options' ) ) { if ( isset( $jetpack_update['wp_version'] ) ) { // In previous version of Jetpack 3.4, 3.5, 3.6 we synced the wp_version into to jetpack_updates unset( $jetpack_update['wp_version'] ); } if ( isset( $jetpack_update['site_is_version_controlled'] ) ) { // In previous version of Jetpack 3.4, 3.5, 3.6 we synced the site_is_version_controlled into to jetpack_updates unset( $jetpack_update['site_is_version_controlled'] ); } $response['updates'] = (array) $jetpack_update; } add_filter( 'option_stylesheet', 'fix_theme_location' ); if ( 'https' !== parse_url( $site_url, PHP_URL_SCHEME ) ) { remove_filter( 'set_url_scheme', array( $this, 'force_http' ), 10, 3 ); } } return $response; } function force_http( $url, $scheme, $orig_scheme ) { return preg_replace('/^https:\/\//', 'http://', $url, 1 ); } } class WPCOM_JSON_API_List_Post_Formats_Endpoint extends WPCOM_JSON_API_Endpoint { // /sites/%s/post-formats -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } // Get a list of supported post formats. $all_formats = get_post_format_strings(); $supported = get_theme_support( 'post-formats' ); $supported_formats = $response['formats'] = array(); if ( isset( $supported[0] ) ) { foreach ( $supported[0] as $format ) { $supported_formats[ $format ] = $all_formats[ $format ]; } } $response['formats'] = (object) $supported_formats; return $response; } } class WPCOM_JSON_API_List_Page_Templates_Endpoint extends WPCOM_JSON_API_Endpoint { // /sites/%s/page-templates -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } $response = array(); $page_templates = array(); $templates = get_page_templates(); ksort( $templates ); foreach ( array_keys( $templates ) as $label ) { $page_templates[] = array( 'label' => $label, 'file' => $templates[ $label ] ); } $response['templates'] = $page_templates; return $response; } } class WPCOM_JSON_API_List_Post_Types_Endpoint extends WPCOM_JSON_API_Endpoint { static $post_type_keys_to_include = array( 'name' => 'name', 'label' => 'label', 'labels' => 'labels', 'description' => 'description', 'map_meta_cap' => 'map_meta_cap', 'cap' => 'capabilities', ); // /sites/%s/post-types -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } $args = $this->query_args(); $queryable_only = isset( $args['api_queryable'] ) && $args['api_queryable']; // Get a list of available post types $post_types = get_post_types( array( 'public' => true ) ); $formatted_post_type_objects = array(); // Retrieve post type object for each post type foreach ( $post_types as $post_type ) { // Skip non-queryable if filtering on queryable only $is_queryable = $this->is_post_type_allowed( $post_type ); if ( $queryable_only && ! $is_queryable ) { continue; } $post_type_object = get_post_type_object( $post_type ); $formatted_post_type_object = array(); // Include only the desired keys in the response foreach ( self::$post_type_keys_to_include as $key => $value ) { $formatted_post_type_object[ $value ] = $post_type_object->{ $key }; } $formatted_post_type_object['api_queryable'] = $is_queryable; $formatted_post_type_object['supports'] = get_all_post_type_supports( $post_type ); if ( $this->post_type_supports_tags( $post_type ) ) { $formatted_post_type_object['supports']['tags'] = true; } $formatted_post_type_objects[] = $formatted_post_type_object; } return array( 'found' => count( $formatted_post_type_objects ), 'post_types' => $formatted_post_type_objects ); } function post_type_supports_tags( $post_type ) { if ( in_array( 'post_tag', get_object_taxonomies( $post_type ) ) ) { return true; } // the featured content module adds post_tag support // to the post types that are registered for it // however it does so in a way that isn't available // to get_object_taxonomies $featured_content = get_theme_support( 'featured-content' ); if ( ! $featured_content || empty( $featured_content[0] ) || empty( $featured_content[0]['post_types'] ) ) { return false; } return in_array( $post_type, $featured_content[0]['post_types'] ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-v1-1-endpoint.php0000644000312500031250000000127612651056012030531 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'upload_files', $media_id ) ) { return new WP_Error( 'unauthorized', 'User is not authorized delete media', 403 ); } $item = $this->get_media_item_v1_1( $media_id ); if ( is_wp_error( $item ) ) { return new WP_Error( 'unknown_media', 'Unknown Media', 404 ); } wp_delete_post( $media_id, true ); $item->status = 'deleted'; return $item; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-comment-endpoint.php0000644000312500031250000000130712651056012027742 0ustar eacbforgeacbforg $blog_id, $comment_id function callback( $path = '', $blog_id = 0, $comment_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); $return = $this->get_comment( $comment_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'comments' ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-embeds-endpoint.php0000644000312500031250000000207412651056012027735 0ustar eacbforgeacbforg $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } // permissions check if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to post on this blog.', 403 ); } // list em $output = array( 'embeds' => array() ); if ( ! function_exists( '_wp_oembed_get_object' ) ) { require_once( ABSPATH . WPINC . '/class-oembed.php' ); } global $wp_embed; $oembed = _wp_oembed_get_object(); foreach( $wp_embed->handlers as $priority => $handlers ) { foreach( $handlers as $handler ) { if ( ! empty( $handler['regex'] ) ) $output['embeds'][] = $handler['regex']; } } foreach ( $oembed->providers as $regex => $oembed_info ) { if ( ! empty( $regex ) ) $output['embeds'][] = $regex; } return $output; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-site-settings-endpoint.php0000644000312500031250000003500012654410420030322 0ustar eacbforgeacbforg '(int) Site ID', 'name' => '(string) Title of site', 'description' => '(string) Tagline or description of site', 'URL' => '(string) Full URL to the site', 'lang' => '(string) Primary language code of the site', 'settings' => '(array) An array of options/settings for the blog. Only viewable by users with post editing rights to the site.', ); // GET /sites/%s/settings // POST /sites/%s/settings function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } if ( ! is_user_logged_in() ) { return new WP_Error( 'Unauthorized', 'You must be logged-in to manage settings.', 401 ); } else if ( ! current_user_can( 'manage_options' ) ) { return new WP_Error( 'Forbidden', 'You do not have the capability to manage settings for this site.', 403 ); } if ( 'GET' === $this->api->method ) { /** * Fires on each GET request to a specific endpoint. * * @module json-api * * @since 3.2.0 * * @param string sites. */ do_action( 'wpcom_json_api_objects', 'sites' ); return $this->get_settings_response(); } else if ( 'POST' === $this->api->method ) { return $this->update_settings(); } else { return new WP_Error( 'bad_request', 'An unsupported request method was used.' ); } } /** * Determines whether jetpack_relatedposts is supported * * @return (bool) */ public function jetpack_relatedposts_supported() { $wpcom_related_posts_theme_blacklist = array( 'Expound', 'Traveler', 'Opti', 'Currents', ); return ( ! in_array( wp_get_theme()->get( 'Name' ), $wpcom_related_posts_theme_blacklist ) ); } /** * Returns category details * * @return (array) */ public function get_category_details( $category ) { return array( 'value' => $category->term_id, 'name' => $category->name ); } /** * Collects the necessary information to return for a get settings response. * * @return (array) */ public function get_settings_response() { $response_format = self::$site_format; $blog_id = (int) $this->api->get_blog_id_for_output(); /** This filter is documented in class.json-api-endpoints.php */ $is_jetpack = true === apply_filters( 'is_jetpack_site', false, $blog_id ); foreach ( array_keys( $response_format ) as $key ) { switch ( $key ) { case 'ID' : $response[$key] = $blog_id; break; case 'name' : $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ); break; case 'description' : $response[$key] = (string) htmlspecialchars_decode( get_bloginfo( 'description' ), ENT_QUOTES ); break; case 'URL' : $response[$key] = (string) home_url(); break; case 'lang' : $response[$key] = (string) get_bloginfo( 'language' ); break; case 'settings': $jetpack_relatedposts_options = Jetpack_Options::get_option( 'relatedposts' ); if ( method_exists( 'Jetpack', 'is_module_active' ) ) { $jetpack_relatedposts_options[ 'enabled' ] = Jetpack::is_module_active( 'related-posts' ); } // array_values() is necessary to ensure the array starts at index 0. $post_categories = array_values( array_map( array( $this, 'get_category_details' ), get_categories( array( 'hide_empty' => false ) ) ) ); $eventbrite_api_token = (int) get_option( 'eventbrite_api_token' ); if ( 0 === $eventbrite_api_token ) { $eventbrite_api_token = null; } $holiday_snow = false; if ( function_exists( 'jetpack_holiday_snow_option_name' ) ) { $holiday_snow = (bool) get_option( jetpack_holiday_snow_option_name() ); } $response[$key] = array( // also exists as "options" 'admin_url' => get_admin_url(), 'default_ping_status' => (bool) ( 'closed' != get_option( 'default_ping_status' ) ), 'default_comment_status' => (bool) ( 'closed' != get_option( 'default_comment_status' ) ), // new stuff starts here 'blog_public' => (int) get_option( 'blog_public' ), 'jetpack_sync_non_public_post_stati' => (bool) Jetpack_Options::get_option( 'sync_non_public_post_stati' ), 'jetpack_relatedposts_allowed' => (bool) $this->jetpack_relatedposts_supported(), 'jetpack_relatedposts_enabled' => (bool) $jetpack_relatedposts_options[ 'enabled' ], 'jetpack_relatedposts_show_headline' => (bool) $jetpack_relatedposts_options[ 'show_headline' ], 'jetpack_relatedposts_show_thumbnails' => (bool) $jetpack_relatedposts_options[ 'show_thumbnails' ], 'default_category' => (int) get_option('default_category'), 'post_categories' => (array) $post_categories, 'default_post_format' => get_option( 'default_post_format' ), 'default_pingback_flag' => (bool) get_option( 'default_pingback_flag' ), 'require_name_email' => (bool) get_option( 'require_name_email' ), 'comment_registration' => (bool) get_option( 'comment_registration' ), 'close_comments_for_old_posts' => (bool) get_option( 'close_comments_for_old_posts' ), 'close_comments_days_old' => (int) get_option( 'close_comments_days_old' ), 'thread_comments' => (bool) get_option( 'thread_comments' ), 'thread_comments_depth' => (int) get_option( 'thread_comments_depth' ), 'page_comments' => (bool) get_option( 'page_comments' ), 'comments_per_page' => (int) get_option( 'comments_per_page' ), 'default_comments_page' => get_option( 'default_comments_page' ), 'comment_order' => get_option( 'comment_order' ), 'comments_notify' => (bool) get_option( 'comments_notify' ), 'moderation_notify' => (bool) get_option( 'moderation_notify' ), 'social_notifications_like' => ( "on" == get_option( 'social_notifications_like' ) ), 'social_notifications_reblog' => ( "on" == get_option( 'social_notifications_reblog' ) ), 'social_notifications_subscribe' => ( "on" == get_option( 'social_notifications_subscribe' ) ), 'comment_moderation' => (bool) get_option( 'comment_moderation' ), 'comment_whitelist' => (bool) get_option( 'comment_whitelist' ), 'comment_max_links' => (int) get_option( 'comment_max_links' ), 'moderation_keys' => get_option( 'moderation_keys' ), 'blacklist_keys' => get_option( 'blacklist_keys' ), 'lang_id' => get_option( 'lang_id' ), 'wga' => get_option( 'wga' ), 'disabled_likes' => (bool) get_option( 'disabled_likes' ), 'disabled_reblogs' => (bool) get_option( 'disabled_reblogs' ), 'jetpack_comment_likes_enabled' => (bool) get_option( 'jetpack_comment_likes_enabled', false ), 'twitter_via' => (string) get_option( 'twitter_via' ), 'jetpack-twitter-cards-site-tag' => (string) get_option( 'jetpack-twitter-cards-site-tag' ), 'eventbrite_api_token' => $eventbrite_api_token, 'holidaysnow' => $holiday_snow ); if ( class_exists( 'Sharing_Service' ) ) { $ss = new Sharing_Service(); $sharing = $ss->get_global_options(); $response[ $key ]['sharing_button_style'] = (string) $sharing['button_style']; $response[ $key ]['sharing_label'] = (string) $sharing['sharing_label']; $response[ $key ]['sharing_show'] = (array) $sharing['show']; $response[ $key ]['sharing_open_links'] = (string) $sharing['open_links']; } if ( function_exists( 'jetpack_protect_format_whitelist' ) ) { $response[ $key ]['jetpack_protect_whitelist'] = jetpack_protect_format_whitelist(); } if ( ! current_user_can( 'edit_posts' ) ) unset( $response[$key] ); break; } } return $response; } /** * Updates site settings for authorized users * * @return (array) */ public function update_settings() { // $this->input() retrieves posted arguments whitelisted and casted to the $request_format // specs that get passed in when this class is instantiated /** * Filters the settings to be updated on the site. * * @module json-api * * @since 3.6.0 * * @param array $input Associative array of site settings to be updated. */ $input = apply_filters( 'rest_api_update_site_settings', $this->input() ); $jetpack_relatedposts_options = array(); $sharing_options = array(); $updated = array(); foreach ( $input as $key => $value ) { if ( ! is_array( $value ) ) { $value = trim( $value ); } $value = wp_unslash( $value ); switch ( $key ) { case 'default_ping_status': case 'default_comment_status': // settings are stored as closed|open $coerce_value = ( $value ) ? 'open' : 'closed'; if ( update_option( $key, $coerce_value ) ) { $updated[ $key ] = $value; }; break; case 'jetpack_protect_whitelist': if ( function_exists( 'jetpack_protect_save_whitelist' ) ) { $result = jetpack_protect_save_whitelist( $value ); if ( is_wp_error( $result ) ) { return $result; } $updated[ $key ] = jetpack_protect_format_whitelist(); } break; case 'jetpack_sync_non_public_post_stati': Jetpack_Options::update_option( 'sync_non_public_post_stati', $value ); break; case 'jetpack_relatedposts_enabled': case 'jetpack_relatedposts_show_thumbnails': case 'jetpack_relatedposts_show_headline': if ( ! $this->jetpack_relatedposts_supported() ) { break; } if ( 'jetpack_relatedposts_enabled' === $key && method_exists( 'Jetpack', 'is_module_active' ) && $this->jetpack_relatedposts_supported() ) { $before_action = Jetpack::is_module_active('related-posts'); if ( $value ) { Jetpack::activate_module( 'related-posts', false, false ); } else { Jetpack::deactivate_module( 'related-posts' ); } $after_action = Jetpack::is_module_active('related-posts'); if ( $after_action == $before_action ) { break; } } $just_the_key = substr( $key, 21 ); $jetpack_relatedposts_options[ $just_the_key ] = $value; break; case 'social_notifications_like': case 'social_notifications_reblog': case 'social_notifications_subscribe': // settings are stored as on|off $coerce_value = ( $value ) ? 'on' : 'off'; if ( update_option( $key, $coerce_value ) ) { $updated[ $key ] = $value; } break; case 'wga': if ( ! isset( $value['code'] ) || ! preg_match( '/^$|^UA-[\d-]+$/i', $value['code'] ) ) { return new WP_Error( 'invalid_code', 'Invalid UA ID' ); } $wga = get_option( 'wga', array() ); $wga['code'] = $value['code']; // maintain compatibility with wp-google-analytics if ( update_option( 'wga', $wga ) ) { $updated[ $key ] = $value; } $enabled_or_disabled = $wga['code'] ? 'enabled' : 'disabled'; /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'google-analytics', $enabled_or_disabled ); $business_plugins = WPCOM_Business_Plugins::instance(); $business_plugins->activate_plugin( 'wp-google-analytics' ); break; case 'jetpack_comment_likes_enabled': // settings are stored as 1|0 $coerce_value = (int) $value; if ( update_option( $key, $coerce_value ) ) { $updated[ $key ] = $value; } break; // Sharing options case 'sharing_button_style': case 'sharing_show': case 'sharing_open_links': $sharing_options[ preg_replace( '/^sharing_/', '', $key ) ] = $value; break; case 'sharing_label': $sharing_options[ $key ] = $value; break; // Keyring token option case 'eventbrite_api_token': // These options can only be updated for sites hosted on WordPress.com if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { if ( empty( $value ) || WPCOM_JSON_API::is_falsy( $value ) ) { if ( delete_option( $key ) ) { $updated[ $key ] = null; } } else if ( update_option( $key, $value ) ) { $updated[ $key ] = (int) $value; } } break; case 'holidaysnow': if ( empty( $value ) || WPCOM_JSON_API::is_falsy( $value ) ) { if ( function_exists( 'jetpack_holiday_snow_option_name' ) && delete_option( jetpack_holiday_snow_option_name() ) ) { $updated[ $key ] = false; } } else if ( function_exists( 'jetpack_holiday_snow_option_name' ) && update_option( jetpack_holiday_snow_option_name(), 'letitsnow' ) ) { $updated[ $key ] = true; } break; // no worries, we've already whitelisted and casted arguments above default: if ( update_option( $key, $value ) ) { $updated[ $key ] = $value; } } } if ( count( $jetpack_relatedposts_options ) ) { // track new jetpack_relatedposts options against old $old_relatedposts_options = Jetpack_Options::get_option( 'relatedposts' ); if ( Jetpack_Options::update_option( 'relatedposts', $jetpack_relatedposts_options ) ) { foreach( $jetpack_relatedposts_options as $key => $value ) { if ( $value !== $old_relatedposts_options[ $key ] ) { $updated[ 'jetpack_relatedposts_' . $key ] = $value; } } } } if ( ! empty( $sharing_options ) && class_exists( 'Sharing_Service' ) ) { $ss = new Sharing_Service(); // Merge current values with updated, since Sharing_Service expects // all values to be included when updating $current_sharing_options = $ss->get_global_options(); foreach ( $current_sharing_options as $key => $val ) { if ( ! isset( $sharing_options[ $key ] ) ) { $sharing_options[ $key ] = $val; } } $updated_social_options = $ss->set_global_options( $sharing_options ); if ( isset( $input['sharing_button_style'] ) ) { $updated['sharing_button_style'] = (string) $updated_social_options['button_style']; } if ( isset( $input['sharing_label'] ) ) { // Sharing_Service won't report label as updated if set to default $updated['sharing_label'] = (string) $sharing_options['sharing_label']; } if ( isset( $input['sharing_show'] ) ) { $updated['sharing_show'] = (array) $updated_social_options['show']; } if ( isset( $input['sharing_open_links'] ) ) { $updated['sharing_open_links'] = (string) $updated_social_options['open_links']; } } return array( 'updated' => $updated ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-render-shortcode-endpoint.php0000644000312500031250000000336312651056012030776 0ustar eacbforgeacbforg $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to post on this blog.', 403 ); } $args = $this->query_args(); $shortcode = trim( $args['shortcode'] ); // Quick validation - shortcodes should always be enclosed in brackets [] if ( ! wp_startswith( $shortcode, '[' ) || ! wp_endswith( $shortcode, ']' ) ) { return new WP_Error( 'invalid_shortcode', 'The shortcode parameter must begin and end with square brackets.', 400 ); } // Make sure only one shortcode is being rendered at a time $pattern = get_shortcode_regex(); preg_match_all( "/$pattern/s", $shortcode, $matches ); if ( count( $matches[0] ) > 1 ) { return new WP_Error( 'invalid_shortcode', 'Only one shortcode can be rendered at a time.', 400 ); } $render = $this->process_render( array( $this, 'do_shortcode' ), $shortcode ); // if nothing happened, then the shortcode does not exist. if ( $shortcode == $render['result'] ) { return new WP_Error( 'invalid_shortcode', 'The requested shortcode does not exist.', 400 ); } // our output for this endpoint.. $return['shortcode'] = $shortcode; $return['result'] = $render['result']; $return = $this->add_assets( $return, $render['loaded_scripts'], $render['loaded_styles'] ); return $return; } function do_shortcode( $shortcode ) { $result = do_shortcode( $shortcode ); return $result; } }plugins/jetpack/json-endpoints/class.wpcom-json-api-publicize-endpoint.php0000644000312500031250000001567612651056012027527 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ), false ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $current_user = wp_get_current_user(); if ( ! $current_user->ID ) { return new WP_Error( 'authorization_required', 'An active access token must be used to query information about the current user.', 403 ); } // Parse query arguments to determine if filtering is requested $args = $this->query_args(); $service_filter = false; if ( ! empty( $args['service'] ) ) { $service_filter = $args['service']; } // Iterate over connected services $publicize = new Publicize(); $connected_services = $publicize->get_services( 'connected' ); $output = array(); foreach( $connected_services as $service => $connections ) { if ( false != $service_filter && $service_filter != $service ) { continue; } foreach ( $connections as $connection_id => $connection ) { $output[] = WPCOM_JSON_API_Get_Connection_Endpoint::get_connection( $service, $connection ); } } return array( 'connections' => $output ); } } class WPCOM_JSON_API_Get_Connection_Endpoint extends WPCOM_JSON_API_Endpoint { function get_connection_by_id( $connection_id ) { $publicize = new Publicize(); $connected_services = $publicize->get_services( 'connected' ); foreach ( $connected_services as $service => $connections ) { foreach ( $connections as $c => $connection ) { if ( $connection_id == $publicize->get_connection_id( $connection ) ) { return WPCOM_JSON_API_Get_Connection_Endpoint::get_connection( $service, $connections[ $c ] ); } } } return false; } function get_connection( $service, $connection ) { $publicize = new Publicize(); $connection_id = $publicize->get_connection_id( $connection ); if ( method_exists( $connection, 'get_meta' ) ) { $connection_meta = $connection->get_meta(); $connection_data = (array) $connection->get_meta( 'connection_data' ); } else { $connection_meta = $connection; $connection_data = $connection['connection_data']; } return array( 'ID' => (int) $connection_id, 'token_ID' => (int) $connection_data['token_id'], 'conn_ID' => (int) $connection_id, 'site_ID' => (int) $connection_data['blog_id'], 'user_ID' => (int) $connection_data['user_id'], 'shared' => ( 0 == (int) $connection_data['user_id'] ) ? true : false, 'service' => $service, 'label' => $publicize->get_service_label( $service ), 'issued' => $connection_meta['issued'], 'expires' => $connection_meta['expires'], 'external_ID' => $connection_meta['external_id'], 'external_name' => $connection_meta['external_name'], 'external_display' => $publicize->get_display_name( $service, $connection ), 'URL' => $publicize->get_profile_link( $service, $connection ), 'status' => ( method_exists( $connection, 'is_expired' ) && $connection->is_expired( HOUR_IN_SECONDS ) ) ? 'broken' : 'ok', 'refresh_url' => $publicize->refresh_url( $service ), 'meta' => maybe_unserialize( $connection_data['meta'] ), ); } // /sites/%s/connections/$connection_id function callback( $path = '', $blog_id = 0, $connection_id = 0 ) { // Verify required Publicize Jetpack module is active if ( ! class_exists( 'Publicize' ) || ( method_exists( 'Jetpack', 'is_module_active' ) && ! Jetpack::is_module_active( 'publicize' ) ) ) { return new WP_Error( 'missing_jetpack_module', 'The Publicize module must be activated in order to use this endpoint.', 400 ); } $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ), false ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $current_user = wp_get_current_user(); if ( ! $current_user->ID ) { return new WP_Error( 'authorization_required', 'An active access token must be used to query information about the current user.', 403 ); } // Attempt to find connection $connection = WPCOM_JSON_API_Get_Connection_Endpoint::get_connection_by_id( $connection_id ); // Verify that user has permission to view this connection if ( $current_user->ID != $connection['user_ID'] && 0 != $connection['user_ID'] ) { return new WP_Error( 'authorization_required', 'You do not have permission to access this resource.', 403 ); } if ( empty( $connection ) ) { return new WP_Error( 'unknown_connection', 'Connection not found.', 404 ); } return $connection; } } class WPCOM_JSON_API_Delete_Connection_Endpoint extends WPCOM_JSON_API_Endpoint { // /sites/%s/connections/$connection_id/delete function callback( $path = '', $blog_id = 0 , $connection_id = 0 ) { // Verify required Publicize Jetpack module is active if ( ! class_exists( 'Publicize' ) || ( method_exists( 'Jetpack', 'is_module_active' ) && ! Jetpack::is_module_active( 'publicize' ) ) ) { return new WP_Error( 'missing_jetpack_module', 'The Publicize module must be activated in order to use this endpoint.', 400 ); } $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ), false ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $current_user = wp_get_current_user(); if ( ! $current_user->ID ) { return new WP_Error( 'authorization_required', 'An active access token must be used to query information about the current user.', 403 ); } // Attempt to find connection $connection = WPCOM_JSON_API_Get_Connection_Endpoint::get_connection_by_id( $connection_id ); if ( empty( $connection ) ) { return new WP_Error( 'unknown_connection', 'Connection not found.', 404 ); } // Verify that user has permission to view this connection if ( $current_user->ID != $connection['user_ID'] && 0 != $connection['user_ID'] ) { return new WP_Error( 'authorization_required', 'You do not have permission to access this resource.', 403 ); } // Remove publicize connections related to the connection $publicize = new Publicize(); $is_deleted = ( false !== $publicize->disconnect( $connection['service'], $connection_id ) ); if ( $is_deleted ) { /** * Fires when a Publicize connection is deleted. * * @module json-api * * @since 3.2.0 * * @param int $connection_id Publicize connection ID. */ do_action( 'rest_api_delete_publicize_connection', $connection_id ); } return array( 'ID' => (int) $connection_id, 'deleted' => $is_deleted ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-endpoint.php0000644000312500031250000000242212651056012027552 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } //upload_files can probably be used for other endpoints but we want contributors to be able to use media too if ( !current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } $args = $this->query_args(); if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } $media = get_posts( array( 'post_type' => 'attachment', 'post_parent' => $args['parent_id'], 'offset' => $args['offset'], 'numberposts' => $args['number'], 'post_mime_type' => $args['mime_type'] ) ); $response = array(); foreach ( $media as $item ) { $response[] = $this->get_media_item( $item->ID ); } $_num = (array) wp_count_attachments(); $_total_media = array_sum( $_num ) - $_num['trash']; $return = array( 'found' => $_total_media, 'media' => $response ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-customcss.php0000644000312500031250000000143612651056012026510 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = array( 'css' => Jetpack_Custom_CSS::get_css(), 'preprocessor' => Jetpack_Custom_CSS::get_preprocessor_key(), 'add_to_existing' => ! Jetpack_Custom_CSS::skip_stylesheet(), ); $defaults = array( 'css' => '', 'preprocessor' => '', 'add_to_existing' => true, ); return wp_parse_args( $args, $defaults ); } } plugins/jetpack/json-endpoints/jetpack/0000755000312500031250000000000012654410420020647 5ustar eacbforgeacbforgplugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-endpoint.php0000644000312500031250000001160312654410420030725 0ustar eacbforgeacbforg '(string) The theme\'s ID.', 'screenshot' => '(string) A theme screenshot URL', 'name' => '(string) The name of the theme.', 'theme_uri' => '(string) The URI of the theme\'s webpage.', 'description' => '(string) A description of the theme.', 'author' => '(string) The author of the theme.', 'author_uri' => '(string) The website of the theme author.', 'tags' => '(array) Tags indicating styles and features of the theme.', 'log' => '(array) An array of log strings', 'autoupdate' => '(bool) Whether the theme is automatically updated', ); protected function result() { $themes = $this->get_themes(); if ( ! $this->bulk && ! empty( $themes ) ) { return array_pop( $themes ); } return array( 'themes' => $themes ); } /** * Walks through either the submitted theme or list of themes and creates the global array * @param $theme * * @return bool */ protected function validate_input( $theme ) { $args = $this->input(); // lets set what themes were requested, and validate them if ( ! isset( $theme ) || empty( $theme ) ) { if ( ! $args['themes'] || empty( $args['themes'] ) ) { return new WP_Error( 'missing_theme', __( 'You are required to specify a theme to update.', 'jetpack' ), 400 ); } if ( is_array( $args['themes'] ) ) { $this->themes = $args['themes']; } else { $this->themes[] = $args['themes']; } } else { $this->themes[] = urldecode( $theme ); $this->bulk = false; } if ( is_wp_error( $error = $this->validate_themes() ) ) { return error; } return parent::validate_input( $theme ); } /** * Walks through submitted themes to make sure they are valid * @return bool|WP_Error */ protected function validate_themes() { foreach ( $this->themes as $theme ) { if ( is_wp_error( $error = wp_get_theme( $theme )->errors() ) ) { return new WP_Error( 'unknown_theme', $error->get_error_messages() , 404 ); } } return true; } /** * Format a theme for the public API * @param object $theme WP_Theme object * @return array Named array of theme info used by the API */ protected function format_theme( $theme ) { if ( ! ( $theme instanceof WP_Theme ) ) { $theme = wp_get_theme( $theme ); } $fields = array( 'name' => 'Name', 'theme_uri' => 'ThemeURI', 'description' => 'Description', 'author' => 'Author', 'author_uri' => 'AuthorURI', 'tags' => 'Tags', 'version' => 'Version' ); $id = $theme->get_stylesheet(); $formatted_theme = array( 'id' => $id, 'screenshot' => jetpack_photon_url( $theme->get_screenshot(), array(), 'network_path' ), 'active' => $id === $this->current_theme_id, ); foreach( $fields as $key => $field ) { $formatted_theme[ $key ] = $theme->get( $field ); } $update_themes = get_site_transient( 'update_themes' ); $formatted_theme['update'] = ( isset( $update_themes->response[ $id ] ) ) ? $update_themes->response[ $id ] : null; $autoupdate_themes = Jetpack_Options::get_option( 'autoupdate_themes', array() ); $autoupdate = in_array( $id, $autoupdate_themes ); $formatted_theme['autoupdate'] = $autoupdate; if( isset( $this->log[ $id ] ) ) { $formatted_theme['log'] = $this->log[ $id ]; } return $formatted_theme; } /** * Checks the query_args our collection endpoint was passed to ensure that it's in the proper bounds. * @return bool|WP_Error a WP_Error object if the args are out of bounds, true if things are good. */ protected function check_query_args() { $args = $this->query_args(); if ( $args['offset'] < 0 ) return new WP_Error( 'invalid_offset', __( 'Offset must be greater than or equal to 0.', 'jetpack' ), 400 ); if ( $args['limit'] < 0 ) return new WP_Error( 'invalid_limit', __( 'Limit must be greater than or equal to 0.', 'jetpack' ), 400 ); return true; } /** * Format a list of themes for public display, using the supplied offset and limit args * @uses WPCOM_JSON_API_Endpoint::query_args() * @return array Public API theme objects */ protected function get_themes() { // ditch keys $themes = array_values( $this->themes ); // do offset & limit - we've already returned a 400 error if they're bad numbers $args = $this->query_args(); if ( isset( $args['offset'] ) ) $themes = array_slice( $themes, (int) $args['offset'] ); if ( isset( $args['limit'] ) ) $themes = array_slice( $themes, 0, (int) $args['limit'] ); $this->current_theme_id = wp_get_theme()->get_stylesheet(); return array_map( array( $this, 'format_theme' ), $themes ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-install-endpoint.php0000644000312500031250000000431212654410420032370 0ustar eacbforgeacbforgthemes as $theme ) { $skin = new Automatic_Upgrader_Skin(); $upgrader = new Theme_Upgrader( $skin ); $result = $upgrader->install( $this->download_links[ $theme ] ); if ( ! $this->bulk && is_wp_error( $result ) ) { return $result; } if ( ! $result ) { $error = $this->log[ $theme ]['error'] = __( 'An unknown error occurred during installation', 'jetpack' ); } elseif ( ! self::is_installed_theme( $theme ) ) { $error = $this->log[ $theme ]['error'] = __( 'There was an error installing your theme', 'jetpack' ); } else { $this->log[ $theme ][] = $upgrader->skin->get_upgrade_messages(); } } if ( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'install_error', $error, 400 ); } return true; } protected function validate_themes() { if ( empty( $this->themes ) || ! is_array( $this->themes ) ) { return new WP_Error( 'missing_themes', __( 'No themes found.', 'jetpack' ) ); } foreach( $this->themes as $index => $theme ) { if ( self::is_installed_theme( $theme ) ) { return new WP_Error( 'theme_already_installed', __( 'The theme is already installed', 'jetpack' ) ); } $params = (object) array( 'slug' => $theme ); $url = 'https://api.wordpress.org/themes/info/1.0/'; $args = array( 'body' => array( 'action' => 'theme_information', 'request' => serialize( $params ), ) ); $response = wp_remote_post( $url, $args ); $theme_data = unserialize( $response['body'] ); if ( is_wp_error( $theme_data ) ) { return $theme_data; } $this->download_links[ $theme ] = $theme_data->download_link; } return true; } protected static function is_installed_theme( $theme ) { $wp_theme = wp_get_theme( $theme ); return $wp_theme->exists(); } } plugins/jetpack/json-endpoints/jetpack/json-api-jetpack-endpoints.php0000644000312500031250000006106612651056012026531 0ustar eacbforgeacbforg 'Get the active theme of your blog', 'stat' => 'themes:mine', 'method' => 'GET', 'path' => '/sites/%s/themes/mine', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine' ) ); new Jetpack_JSON_API_Themes_Active_Endpoint( array( 'description' => 'Change the active theme of your blog', 'method' => 'POST', 'path' => '/sites/%s/themes/mine', 'stat' => 'themes:mine', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'query_parameters' => array( 'context' => false ), 'request_format' => array( 'theme' => '(string) The ID of the theme that should be activated' ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'theme' => 'twentytwelve' ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/mine' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-list-endpoint.php' ); new Jetpack_JSON_API_Themes_List_Endpoint( array( 'description' => 'Get WordPress.com Themes allowed on your blog', 'group' => '__do_not_document', 'stat' => 'themes', 'method' => 'GET', 'path' => '/sites/%s/themes', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'found' => '(int) The total number of themes found.', 'themes' => '(array) An array of theme objects.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-get-endpoint.php' ); new Jetpack_JSON_API_Themes_Get_Endpoint( array( 'description' => 'Get a single theme on a jetpack blog', 'group' => '__do_not_document', 'stat' => 'themes:get:1', 'method' => 'POST', 'path' => '/sites/%s/themes/%s', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$theme' => '(string) The theme slug', ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-modify-endpoint.php' ); new Jetpack_JSON_API_Themes_Modify_Endpoint( array( 'description' => 'Modify a single theme on a jetpack blog', 'group' => '__do_not_document', 'stat' => 'themes:modify:1', 'method' => 'POST', 'path' => '/sites/%s/themes/%s', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$theme' => '(string) The theme slug', ), 'request_format' => array( 'action' => '(string) Only possible value is \'update\'. More to follow.', 'autoupdate' => '(bool) Whether or not to automatically update the theme.', ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'action' => 'update', ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen' ) ); new Jetpack_JSON_API_Themes_Modify_Endpoint( array( 'description' => 'Modify a list of themes on a jetpack blog', 'group' => '__do_not_document', 'stat' => 'themes:modify', 'method' => 'POST', 'path' => '/sites/%s/themes', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', ), 'request_format' => array( 'action' => '(string) Only possible value is \'update\'. More to follow.', 'autoupdate' => '(bool) Whether or not to automatically update the theme.', 'themes' => '(array) A list of theme slugs', ), 'response_format' => array( 'themes' => '(array:theme) A list of theme objects', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'action' => 'autoupdate_on', 'themes' => array( 'twentytwelve', 'twentyfourteen', ), ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-install-endpoint.php' ); // POST /sites/%s/themes/%s/install new Jetpack_JSON_API_Themes_Install_Endpoint( array( 'description' => 'Install a theme to your jetpack blog', 'group' => '__do_not_document', 'stat' => 'themes:1:install', 'method' => 'POST', 'path' => '/sites/%s/themes/%s/install', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$theme' => '(int|string) The theme slug to install', ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/install' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-themes-delete-endpoint.php' ); // POST /sites/%s/themes/%s/delete new Jetpack_JSON_API_Themes_Delete_Endpoint( array( 'description' => 'Delete/Uninstall a theme from your jetpack blog', 'group' => '__do_not_document', 'stat' => 'themes:1:delete', 'method' => 'POST', 'path' => '/sites/%s/themes/%s/delete', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$theme' => '(string) The slug of the theme to delete', ), 'response_format' => Jetpack_JSON_API_Themes_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/themes/twentyfourteen/delete' ) ); // PLUGINS require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-endpoint.php' ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-get-endpoint.php' ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-list-endpoint.php' ); new Jetpack_JSON_API_Plugins_List_Endpoint( array( 'description' => 'Get installed Plugins on your blog', 'method' => 'GET', 'path' => '/sites/%s/plugins', 'stat' => 'plugins', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'plugins' => '(array) An array of plugin objects.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins' ) ); new Jetpack_JSON_API_Plugins_Get_Endpoint( array( 'description' => 'Get the Plugin data.', 'method' => 'GET', 'path' => '/sites/%s/plugins/%s/', 'stat' => 'plugins:1', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$plugin' => '(string) The plugin ID', ), 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-modify-endpoint.php' ); new Jetpack_JSON_API_Plugins_Modify_Endpoint( array( 'description' => 'Activate/Deactivate a Plugin on your Jetpack Site, or set automatic updates', 'method' => 'POST', 'path' => '/sites/%s/plugins/%s', 'stat' => 'plugins:1:modify', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$plugin' => '(string) The plugin ID', ), 'request_format' => array( 'action' => '(string) Possible values are \'update\'', 'autoupdate' => '(bool) Whether or not to automatically update the plugin', 'active' => '(bool) Activate or deactivate the plugin', 'network_wide' => '(bool) Do action network wide (default value: false)', ), 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'action' => 'update', ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello' ) ); new Jetpack_JSON_API_Plugins_Modify_Endpoint( array( 'description' => 'Activate/Deactivate a list of plugins on your Jetpack Site, or set automatic updates', 'method' => 'POST', 'path' => '/sites/%s/plugins', 'stat' => 'plugins:modify', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', ), 'request_format' => array( 'action' => '(string) Possible values are \'update\'', 'autoupdate' => '(bool) Whether or not to automatically update the plugin', 'active' => '(bool) Activate or deactivate the plugin', 'network_wide' => '(bool) Do action network wide (default value: false)', 'plugins' => '(array) A list of plugin ids to modify', ), 'response_format' => array( 'plugins' => '(array:plugin) An array of plugin objects.', 'updated' => '(array) A list of plugin ids that were updated. Only present if action is update.', 'not_updated' => '(array) A list of plugin ids that were not updated. Only present if action is update.', 'log' => '(array) Update log. Only present if action is update.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'active' => true, 'plugins' => array( 'jetpack/jetpack', 'akismet/akismet', ), ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-install-endpoint.php' ); // POST /sites/%s/plugins/%s/install new Jetpack_JSON_API_Plugins_Install_Endpoint( array( 'description' => 'Install a plugin to your jetpack blog', 'group' => '__do_not_document', 'stat' => 'plugins:1:install', 'method' => 'POST', 'path' => '/sites/%s/plugins/%s/install', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$plugin' => '(int|string) The plugin slug to install', ), 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet/install' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-plugins-delete-endpoint.php' ); // POST /sites/%s/plugins/%s/delete new Jetpack_JSON_API_Plugins_Delete_Endpoint( array( 'description' => 'Delete/Uninstall a plugin from your jetpack blog', 'group' => '__do_not_document', 'stat' => 'plugins:1:delete', 'method' => 'POST', 'path' => '/sites/%s/plugins/%s/delete', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$plugin' => '(int|string) The plugin slug to delete', ), 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/akismet%2Fakismet/delete' ) ); new Jetpack_JSON_API_Plugins_Modify_Endpoint( array( 'description' => 'Update a Plugin on your Jetpack Site', 'method' => 'POST', 'path' => '/sites/%s/plugins/%s/update/', 'stat' => 'plugins:1:update', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$plugin' => '(string) The plugin ID', ), 'response_format' => Jetpack_JSON_API_Plugins_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/plugins/hello-dolly%20hello/update' ) ); // Jetpack Modules require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-endpoint.php' ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-get-endpoint.php' ); new Jetpack_JSON_API_Modules_Get_Endpoint( array( 'description' => 'Get the info about a Jetpack Module on your Jetpack Site', 'method' => 'GET', 'path' => '/sites/%s/jetpack/modules/%s/', 'stat' => 'jetpack:modules:1', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$module' => '(string) The module name', ), 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-modify-endpoint.php' ); new Jetpack_JSON_API_Modules_Modify_Endpoint( array( 'description' => 'Modify the status of a Jetpack Module on your Jetpack Site', 'method' => 'POST', 'path' => '/sites/%s/jetpack/modules/%s/', 'stat' => 'jetpack:modules:1', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain', '$module' => '(string) The module name', ), 'request_format' => array( 'active' => '(bool) The module activation status', ), 'response_format' => Jetpack_JSON_API_Modules_Endpoint::$_response_format, 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'active' => true, ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules/stats' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-modules-list-endpoint.php' ); new Jetpack_JSON_API_Modules_List_Endpoint( array( 'description' => 'Get the list of available Jetpack modules on your site', 'method' => 'GET', 'path' => '/sites/%s/jetpack/modules', 'stat' => 'jetpack:modules', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'found' => '(int) The total number of modules found.', 'modules' => '(array) An array of module objects.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/jetpack/modules' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-updates-status-endpoint.php' ); new Jetpack_JSON_API_Updates_Status( array( 'description' => 'Get counts for available updates', 'method' => 'GET', 'path' => '/sites/%s/updates', 'stat' => 'updates', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'plugins' => '(int) The total number of plugins updates.', 'themes' => '(int) The total number of themes updates.', 'wordpress' => '(int) The total number of core updates.', 'translations' => '(int) The total number of translation updates.', 'total' => '(int) The total number of updates.', 'wp_version' => '(safehtml) The wp_version string.', 'wp_update_version' => '(safehtml) The wp_version to update string.', 'jp_version' => '(safehtml) The site Jetpack version.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/updates' ) ); // Jetpack Extras require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-check-capabilities-endpoint.php' ); new Jetpack_JSON_API_Check_Capabilities_Endpoint( array( 'description' => 'Check if the current user has a certain capability over a Jetpack site', 'method' => 'GET', 'path' => '/sites/%s/me/capability', 'stat' => 'me:capabulity', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => '(bool) True if the user has the queried capability.', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'capability' => 'A single capability or an array of capabilities' ) ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/me/capability' ) ); // CORE require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-core-endpoint.php' ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-core-modify-endpoint.php' ); new Jetpack_JSON_API_Core_Endpoint( array( 'description' => 'Gets info about a Jetpack blog\'s core installation', 'method' => 'GET', 'path' => '/sites/%s/core', 'stat' => 'core', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'version' => '(string) The current version', 'autoupdate' => '(bool) Whether or not we automatically update core' ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/core' ) ); new Jetpack_JSON_API_Core_Modify_Endpoint( array( 'description' => 'Update WordPress installation on a Jetpack blog', 'method' => 'POST', 'path' => '/sites/%s/core/update', 'stat' => 'core:update', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'request_format' => array( 'version' => '(string) The core version to update', ), 'response_format' => array( 'version' => '(string) The core version after the upgrade has run.', 'log' => '(array:safehtml) An array of log strings.', ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/core/update' ) ); new Jetpack_JSON_API_Core_Endpoint( array( 'description' => 'Toggle automatic core updates for a Jetpack blog', 'method' => 'POST', 'path' => '/sites/%s/core', 'stat' => 'core', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'request_format' => array( 'autoupdate' => '(bool) Whether or not we automatically update core', ), 'response_format' => array( 'version' => '(string) The current version', 'autoupdate' => '(bool) Whether or not we automatically update core' ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'autoupdate' => true, ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/example.wordpress.org/core' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-sync-endpoint.php' ); new Jetpack_JSON_API_Sync_Endpoint( array( 'description' => 'Force sync of all options and constants', 'method' => 'POST', 'path' => '/sites/%s/sync', 'stat' => 'sync', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'scheduled' => '(bool) Whether or not the synchronisation was scheduled' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/sync' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-log-endpoint.php' ); new Jetpack_JSON_API_Jetpack_Log_Endpoint( array( 'description' => 'Get the Jetpack log', 'method' => 'GET', 'path' => '/sites/%s/jetpack-log', 'stat' => 'log', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'request_format' => array( 'event' => '(string) The event to filter by, by default all entries are returned', 'num' => '(int) The number of entries to get, by default all entries are returned' ), 'response_format' => array( 'log' => '(array) An array of jetpack log entries' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/jetpack-log' ) ); require_once( $json_jetpack_endpoints_dir . 'class.jetpack-json-api-maybe-auto-update-endpoint.php' ); new Jetpack_JSON_API_Maybe_Auto_Update_Endpoint( array( 'description' => 'Maybe Auto Update Core, Plugins, Themes and Languages', 'method' => 'POST', 'path' => '/sites/%s/maybe-auto-update', 'stat' => 'maybe-auto-update', 'path_labels' => array( '$site' => '(int|string) The site ID, The site domain' ), 'response_format' => array( 'log' => '(array) Results of running the update job' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/example.wordpress.org/maybe-auto-update' ) ); // Options require_once( $json_jetpack_endpoints_dir . 'class.wpcom-json-api-get-option-endpoint.php' ); new WPCOM_JSON_API_Get_Option_Endpoint( array ( 'method' => 'GET', 'description' => 'Fetches an option.', 'group' => '__do_not_document', 'stat' => 'option', 'path' => '/sites/%s/option', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'option_name' => '(string) The name of the option to fetch.', 'site_option' => '(bool=false) True if the option is a site option.', ), 'response_format' => array( 'option_value' => '(string|object) The value of the option.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option?option_name=blogname', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); require_once( $json_jetpack_endpoints_dir . 'class.wpcom-json-api-update-option-endpoint.php' ); new WPCOM_JSON_API_Update_Option_Endpoint( array ( 'method' => 'POST', 'description' => 'Updates an option.', 'group' => '__do_not_document', 'stat' => 'option:update', 'path' => '/sites/%s/option', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'option_name' => '(string) The name of the option to fetch.', 'site_option' => '(bool=false) True if the option is a site option.', 'is_array' => '(bool=false) True if the value should be converted to an array before saving.', ), 'request_format' => array( 'option_value' => '(string|object) The new value of the option.', ), 'response_format' => array( 'option_value' => '(string|object) The value of the updated option.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/option', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'option_value' => 'My new blog name' ), ), ) ); plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-update-option-endpoint.php0000644000312500031250000000170112654410420031732 0ustar eacbforgeacbforgsite_option ) { update_site_option( $this->option_name, $this->option_value ); } else { update_option( $this->option_name, $this->option_value ); } return parent::result(); } function validate_input( $object ) { $input = $this->input(); $query_args = $this->query_args(); if ( ! isset( $input['option_value'] ) || is_array( $input['option_value'] ) ) { return new WP_Error( 'option_value_not_set', __( 'You must specify an option_value', 'jetpack' ) ); } if ( $query_args['is_array'] ) { // When converted back from JSON, the value is an object. // Cast it to an array for options that expect arrays. $this->option_value = (array) $input['option_value']; } else { $this->option_value = $input['option_value']; } return parent::validate_input( $object ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-modify-endpoint.php0000644000312500031250000000350412654410420032376 0ustar eacbforgeacbforginput(); if ( isset( $args['active'] ) && is_bool( $args['active'] ) ) { if ( $args['active'] ) { return $this->activate_module(); } else { return $this->deactivate_module(); } } return true; } protected function activate_module() { foreach ( $this->modules as $module ) { if ( Jetpack::is_module_active( $module ) ) { $error = $this->log[ $module ][] = __( 'The Jetpack Module is already activated.', 'jetpack' ); continue; } $result = Jetpack::activate_module( $module, false, false ); if ( false === $result || ! Jetpack::is_module_active( $module ) ) { $error = $this->log[ $module ][] = __( 'There was an error while activating the module.', 'jetpack' ); } } if ( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'activation_error', $error, 400 ); } return true; } protected function deactivate_module() { foreach ( $this->modules as $module ) { if ( ! Jetpack::is_module_active( $module ) ) { $error = $this->log[ $module ][] = __( 'The Jetpack Module is already deactivated.', 'jetpack' ); continue; } $result = Jetpack::deactivate_module( $module ); if ( false === $result || Jetpack::is_module_active( $module ) ) { $error = $this->log[ $module ][] = __( 'There was an error while deactivating the module.', 'jetpack' ); } } if ( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'deactivation_error', $error, 400 ); } return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-get-endpoint.php0000644000312500031250000000030312651056012031660 0ustar eacbforgeacbforgplugins as $index => $slug ) { $skin = new Jetpack_Automatic_Plugin_Install_Skin(); $upgrader = new Plugin_Upgrader( $skin ); $zip_url = self::generate_wordpress_org_plugin_download_link( $slug ); $result = $upgrader->install( $zip_url ); if ( ! $this->bulk && is_wp_error( $result ) ) { return $result; } $plugin = self::get_plugin_id_by_slug( $slug ); $error_code = 'install_error'; if ( ! $plugin ) { $error = $this->log[ $slug ]['error'] = __( 'There was an error installing your plugin', 'jetpack' ); } if ( ! $this->bulk && ! $result ) { $error_code = $upgrader->skin->get_main_error_code(); $message = $upgrader->skin->get_main_error_message(); $error = $this->log[ $slug ]['error'] = $message ? $message : __( 'An unknown error occurred during installation' , 'jetpack' ); } $this->log[ $plugin ][] = $upgrader->skin->get_upgrade_messages(); } if ( ! $this->bulk && isset( $error ) ) { if ( 'download_failed' === $error_code ) { // For backwards compatibility: versions prior to 3.9 would return no_package instead of download_failed. $error_code = 'no_package'; } return new WP_Error( $error_code, $this->log[ $slug ]['error'], 400 ); } // replace the slug with the actual plugin id $this->plugins[ $index ] = $plugin; return true; } protected function validate_plugins() { if ( empty( $this->plugins ) || ! is_array( $this->plugins ) ) { return new WP_Error( 'missing_plugins', __( 'No plugins found.', 'jetpack' ) ); } foreach( $this->plugins as $index => $slug ) { // make sure it is not already installed if ( self::get_plugin_id_by_slug( $slug ) ) { return new WP_Error( 'plugin_already_installed', __( 'The plugin is already installed', 'jetpack' ) ); } } return true; } protected static function generate_wordpress_org_plugin_download_link( $plugin_slug ) { return "https://downloads.wordpress.org/plugin/{$plugin_slug}.latest-stable.zip"; } protected static function get_plugin_id_by_slug( $slug ) { $plugins = get_plugins(); if ( ! is_array( $plugins ) ) { return false; } foreach( $plugins as $plugin_file => $plugin_data ) { if ( self::get_slug_from_file_path( $plugin_file ) === $slug ) { return $plugin_file; } } return false; } protected static function get_slug_from_file_path( $plugin_file ) { // Simular to get_plugin_slug() method. $slug = dirname( $plugin_file ); if ( '.' === $slug ) { $slug = preg_replace("/(.+)\.php$/", "$1", $plugin_file ); } return $slug; } } /** * Allows us to capture that the site doesn't have proper file system access. * In order to update the plugin. */ class Jetpack_Automatic_Plugin_Install_Skin extends Automatic_Upgrader_Skin { /** * Stores the last error key; **/ protected $main_error_code = 'install_error'; /** * Stores the last error message. **/ protected $main_error_message = 'An unknown error occurred during installation'; /** * Overwrites the set_upgrader to be able to tell if we e ven have the ability to write to the files. * * @param WP_Upgrader $upgrader * */ public function set_upgrader( &$upgrader ) { parent::set_upgrader( $upgrader ); // Check if we even have permission to. $result = $upgrader->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) ); if ( ! $result ) { // set the string here since they are not available just yet $upgrader->generic_strings(); $this->feedback( 'fs_unavailable' ); } } /** * Overwrites the error function */ public function error( $error ) { if ( is_wp_error( $error ) ) { $this->feedback( $error ); } } private function set_main_error_code( $code ) { // Don't set the process_failed as code since it is not that helpful unless we don't have one already set. $this->main_error_code = ( $code === 'process_failed' && $this->main_error_code ? $this->main_error_code : $code ); } private function set_main_error_message( $message, $code ) { // Don't set the process_failed as message since it is not that helpful unless we don't have one already set. $this->main_error_message = ( $code === 'process_failed' && $this->main_error_code ? $this->main_error_code : $message ); } public function get_main_error_code() { return $this->main_error_code; } public function get_main_error_message() { return $this->main_error_message; } /** * Overwrites the feedback function */ public function feedback( $data ) { $current_error = null; if ( is_wp_error( $data ) ) { $this->set_main_error_code( $data->get_error_code() ); $string = $data->get_error_message(); } elseif ( is_array( $data ) ) { return; } else { $string = $data; } if ( ! empty( $this->upgrader->strings[ $string ] ) ) { $this->set_main_error_code( $string ); $current_error = $string; $string = $this->upgrader->strings[ $string ]; } if ( strpos( $string, '%' ) !== false ) { $args = func_get_args(); $args = array_splice( $args, 1 ); if ( ! empty( $args ) ) $string = vsprintf( $string, $args ); } $string = trim( $string ); $string = wp_kses( $string, array( 'a' => array( 'href' => true ), 'br' => true, 'em' => true, 'strong' => true, ) ); $this->set_main_error_message( $string, $current_error ); $this->messages[] = $string; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-list-endpoint.php0000644000312500031250000000045412651056012031700 0ustar eacbforgeacbforgthemes = wp_get_themes( array( 'allowed' => true ) ); return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-delete-endpoint.php0000644000312500031250000000150612654410420032362 0ustar eacbforgeacbforgplugins as $plugin ) { if ( Jetpack::is_plugin_active( $plugin ) ) { $error = $this->log[ $plugin ][] ='You cannot delete a plugin while it is active on the main site.'; continue; } $result = delete_plugins ( array( $plugin ) ); if ( is_wp_error( $result ) ) { $error = $this->log[ $plugin ][] = $result->get_error_message(); } else { $this->log[ $plugin ][] = 'Plugin deleted'; } } if( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'delete_plugin_error', $error, 400 ); } return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-log-endpoint.php0000644000312500031250000000070012654410420030215 0ustar eacbforgeacbforginput(); $event = ( isset( $args['event'] ) && is_string( $args['event'] ) ) ? $code : false; $num = ( isset( $args['num'] ) ) ? intval( $num ) : false; return array( 'log' => Jetpack::get_log( $event, $num ) ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-get-endpoint.php0000644000312500031250000000026512651056012031700 0ustar eacbforgeacbforg ( empty( $this->new_version ) ) ? $wp_version : $this->new_version, 'autoupdate' => Jetpack_Options::get_option( 'autoupdate_core', false ), 'log' => $this->log, ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-delete-endpoint.php0000644000312500031250000000203112654410420032160 0ustar eacbforgeacbforgthemes as $theme ) { // Don't delete an active child theme if ( is_child_theme() && $theme == get_stylesheet() ) { $error = $this->log[ $theme ]['error'] = 'You cannot delete a theme while it is active on the main site.'; continue; } if( $theme == get_template() ) { $error = $this->log[ $theme ]['error'] = 'You cannot delete a theme while it is active on the main site.'; continue; } $result = delete_theme( $theme ); if ( is_wp_error( $result ) ) { $error = $this->log[ $theme ]['error'] = $result->get_error_messages; } else { $this->log[ $theme ][] = 'Theme deleted'; } } if( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'delete_theme_error', $error, 400 ); } return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-updates-status-endpoint.php0000644000312500031250000000163212654410420032427 0ustar eacbforgeacbforgresponse ) && $cur->response === 'upgrade' ) { $result['wp_update_version'] = $cur->current; } } $result['jp_version'] = JETPACK__VERSION; return $result; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-list-endpoint.php0000644000312500031250000000047412651056012032076 0ustar eacbforgeacbforgplugins = array_keys( get_plugins() ); return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-active-endpoint.php0000644000312500031250000000255212654410420032201 0ustar eacbforgeacbforg current theme // POST /sites/%s/themes/mine => switch theme public function callback( $path = '', $blog_id = 0 ) { if ( is_wp_error( $error = $this->validate_call( $blog_id, 'switch_themes', true ) ) ) { return $error; } if ( 'POST' === $this->api->method ) return $this->switch_theme(); else return $this->get_current_theme(); } protected function switch_theme() { $args = $this->input(); if ( ! isset( $args['theme'] ) || empty( $args['theme'] ) ) { return new WP_Error( 'missing_theme', __( 'You are required to specify a theme to switch to.', 'jetpack' ), 400 ); } $theme_slug = $args['theme']; if ( ! $theme_slug ) { return new WP_Error( 'theme_not_found', __( 'Theme is empty.', 'jetpack' ), 404 ); } $theme = wp_get_theme( $theme_slug ); if ( ! $theme->exists() ) { return new WP_Error( 'theme_not_found', __( 'The specified theme was not found.', 'jetpack' ), 404 ); } if ( ! $theme->is_allowed() ) { return new WP_Error( 'theme_not_found', __( 'You are not allowed to switch to this theme', 'jetpack' ), 403 ); } switch_theme( $theme_slug ); return $this->get_current_theme(); } protected function get_current_theme() { return $this->format_theme( wp_get_theme() ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-modify-endpoint.php0000644000312500031250000000335612654410420032220 0ustar eacbforgeacbforginput(); if ( isset( $args['autoupdate'] ) && is_bool( $args['autoupdate'] ) ) { if ( $args['autoupdate'] ) { $this->autoupdate_on(); } else { $this->autoupdate_off(); } } return true; } function autoupdate_on() { $autoupdate_themes = Jetpack_Options::get_option( 'autoupdate_themes', array() ); $autoupdate_themes = array_unique( array_merge( $autoupdate_themes, $this->themes ) ); Jetpack_Options::update_option( 'autoupdate_themes', $autoupdate_themes ); } function autoupdate_off() { $autoupdate_themes = Jetpack_Options::get_option( 'autoupdate_themes', array() ); $autoupdate_themes = array_diff( $autoupdate_themes, $this->themes ); Jetpack_Options::update_option( 'autoupdate_themes', $autoupdate_themes ); } function update() { include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // Clear the cache. wp_update_themes(); foreach ( $this->themes as $theme ) { // Objects created inside the for loop to clean the messages for each theme $skin = new Automatic_Upgrader_Skin(); $upgrader = new Theme_Upgrader( $skin ); $upgrader->init(); $result = $upgrader->upgrade( $theme ); $this->log[ $theme ][] = $upgrader->skin->get_upgrade_messages(); } if ( ! $this->bulk && ! $result ) { return new WP_Error( 'update_fail', __( 'There was an error updating your theme', 'jetpack' ), 400 ); } return true; } }plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-endpoint.php0000644000312500031250000000737612654410420031124 0ustar eacbforgeacbforg '(string) The module\'s ID', 'active' => '(boolean) The module\'s status.', 'name' => '(string) The module\'s name.', 'description' => '(safehtml) The module\'s description.', 'sort' => '(int) The module\'s display order.', 'introduced' => '(string) The Jetpack version when the module was introduced.', 'changed' => '(string) The Jetpack version when the module was changed.', 'free' => '(boolean) The module\'s Free or Paid status.', 'module_tags' => '(array) The module\'s tags.' ); protected function result() { $modules = $this->get_modules(); if ( ! $this->bulk && ! empty( $modules ) ) { return array_pop( $modules ); } return array( 'modules' => $modules ); } /** * Walks through either the submitted modules or list of themes and creates the global array * @param $theme * * @return bool */ protected function validate_input( $module) { $args = $this->input(); // lets set what modules were requested, and validate them if ( ! isset( $module ) || empty( $module ) ) { if ( ! $args['modules'] || empty( $args['modules'] ) ) { return new WP_Error( 'missing_module', __( 'You are required to specify a module.', 'jetpack' ), 400 ); } if ( is_array( $args['modules'] ) ) { $this->modules = $args['modules']; } else { $this->modules[] = $args['modules']; } } else { $this->modules[] = urldecode( $module ); $this->bulk = false; } if ( is_wp_error( $error = $this->validate_modules() ) ) { return $error; } return parent::validate_input( $module ); } /** * Walks through submitted themes to make sure they are valid * @return bool|WP_Error */ protected function validate_modules() { foreach ( $this->modules as $module ) { if ( ! Jetpack::is_module( $module ) ) { return new WP_Error( 'unknown_jetpack_module', sprintf( __( 'Module not found: `%s`.', 'jetpack' ), $module ), 404 ); } } return true; } protected static function format_module( $module_slug ) { $module_data = Jetpack::get_module( $module_slug ); $module = array(); $module['id'] = $module_slug; $module['active'] = Jetpack::is_module_active( $module_slug ); $module['name'] = $module_data['name']; $module['short_description'] = $module_data['description']; $module['sort'] = $module_data['sort']; $module['introduced'] = $module_data['introduced']; $module['changed'] = $module_data['changed']; $module['free'] = $module_data['free']; $module['module_tags'] = $module_data['module_tags']; // Fetch the HTML formatted long description ob_start(); /** This action is documented in class.jetpack-modules-list-table.php */ do_action( 'jetpack_module_more_info_' . $module_slug ); $module['description'] = ob_get_clean(); return $module; } /** * Format a list of modules for public display, using the supplied offset and limit args * @uses WPCOM_JSON_API_Endpoint::query_args() * @return array Public API modules objects */ protected function get_modules() { $modules = array_values( $this->modules ); // do offset & limit - we've already returned a 400 error if they're bad numbers $args = $this->query_args(); if ( isset( $args['offset'] ) ) $modules = array_slice( $modules, (int) $args['offset'] ); if ( isset( $args['limit'] ) ) $modules = array_slice( $modules, 0, (int) $args['limit'] ); return array_map( array( $this, 'format_module' ), $modules ); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-themes-get-endpoint.php0000644000312500031250000000026112651056012031500 0ustar eacbforgeacbforgvalidate_call( $_blog_id, 'read', false ) ) ) { return $error; } $args = $this->input(); if ( ! isset( $args['capability'] ) || empty( $args['capability'] ) ) { return new WP_Error( 'missing_capability', __( 'You are required to specify a capability to check.', 'jetpack' ), 400 ); } $capability = $args['capability']; if ( is_array( $capability ) ) { $results = array_map( 'current_user_can', $capability ); return array_combine( $capability, $results ); } else { return current_user_can( $capability ); } } } plugins/jetpack/json-endpoints/jetpack/class.wpcom-json-api-get-option-endpoint.php0000644000312500031250000000241512654410420031232 0ustar eacbforgeacbforgsite_option ) { return array( 'option_value' => get_site_option( $this->option_name ) ); } return array( 'option_value' => get_option( $this->option_name ) ); } function validate_input( $object ) { $query_args = $this->query_args(); $this->option_name = isset( $query_args['option_name'] ) ? $query_args['option_name'] : false; if ( ! $this->option_name ) { return new WP_Error( 'option_name_not_set', __( 'You must specify an option_name', 'jetpack' ) ); } $this->site_option = isset( $query_args['site_option'] ) ? $query_args['site_option'] : false; /** * Filter the list of options that are manageable via the JSON API. * * @module json-api * * @since 3.8.2 * * @param array The default list of site options. * @param bool Is the option a site option. */ if ( ! in_array( $this->option_name, apply_filters( 'jetpack_options_whitelist', array(), $this->site_option ) ) ) { return new WP_Error( 'option_name_not_in_whitelist', __( 'You must specify a whitelisted option_name', 'jetpack' ) ); } return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-core-modify-endpoint.php0000644000312500031250000000413012654410420031652 0ustar eacbforgeacbforginput(); if ( isset( $args['autoupdate'] ) && is_bool( $args['autoupdate'] ) ) { Jetpack_Options::update_option( 'autoupdate_core', $args['autoupdate'] ); } return true; } protected function update( $version, $locale ) { $args = $this->input(); $version = isset( $args['version'] ) ? $args['version'] : false; $locale = isset( $args['locale'] ) ? $args['locale'] : get_locale(); include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; delete_site_transient( 'update_core' ); wp_version_check( array(), true ); if ( $version ) { $update = find_core_update( $version, $locale ); } else { $update = $this->find_latest_update_offer(); } $skin = new Automatic_Upgrader_Skin(); $upgrader = new Core_Upgrader( $skin ); $this->new_version = $upgrader->upgrade( $update ); $this->log = $upgrader->skin->get_upgrade_messages(); if ( is_wp_error( $this->new_version ) ) { return $this->new_version; } return $this->new_version; } protected function find_latest_update_offer() { // Select the latest update. // Remove filters to bypass automattic updates. add_filter( 'request_filesystem_credentials', '__return_true' ); add_filter( 'automatic_updates_is_vcs_checkout', '__return_false' ); add_filter( 'allow_major_auto_core_updates', '__return_true' ); add_filter( 'send_core_update_notification_email', '__return_false' ); $update = find_core_auto_update(); remove_filter( 'request_filesystem_credentials', '__return_true' ); remove_filter( 'automatic_updates_is_vcs_checkout', '__return_false' ); remove_filter( 'allow_major_auto_core_updates', '__return_true' ); remove_filter( 'send_core_update_notification_email', '__return_false' ); return $update; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-sync-endpoint.php0000644000312500031250000000056312651056012030417 0ustar eacbforgeacbforg '(safehtml) The plugin\'s ID', 'slug' => '(safehtml) The plugin\'s .org slug', 'active' => '(boolean) The plugin status.', 'update' => '(object) The plugin update info.', 'name' => '(safehtml) The name of the plugin.', 'plugin_url' => '(url) Link to the plugin\'s web site.', 'version' => '(safehtml) The plugin version number.', 'description' => '(safehtml) Description of what the plugin does and/or notes from the author', 'author' => '(safehtml) The author\'s name', 'author_url' => '(url) The authors web site address', 'network' => '(boolean) Whether the plugin can only be activated network wide.', 'autoupdate' => '(boolean) Whether the plugin is automatically updated', 'next_autoupdate' => '(string) Y-m-d H:i:s for next scheduled update event', 'log' => '(array:safehtml) An array of update log strings.', 'uninstallable' => '(boolean) Whether the plugin is unistallable.', ); protected function result() { $plugins = $this->get_plugins(); if ( ! $this->bulk && ! empty( $plugins ) ) { return array_pop( $plugins ); } return array( 'plugins' => $plugins ); } protected function validate_input( $plugin ) { if ( is_wp_error( $error = parent::validate_input( $plugin ) ) ) { return $error; } if ( is_wp_error( $error = $this->validate_network_wide() ) ) { return $error; } $args = $this->input(); // find out what plugin, or plugins we are dealing with // validate the requested plugins if ( ! isset( $plugin ) || empty( $plugin ) ) { if ( ! $args['plugins'] || empty( $args['plugins'] ) ) { return new WP_Error( 'missing_plugin', __( 'You are required to specify a plugin.', 'jetpack' ), 400 ); } if ( is_array( $args['plugins'] ) ) { $this->plugins = $args['plugins']; } else { $this->plugins[] = $args['plugins']; } } else { $this->bulk = false; $this->plugins[] = urldecode( $plugin ); } if ( is_wp_error( $error = $this->validate_plugins() ) ) { return $error; }; return true; } /** * Walks through submitted plugins to make sure they are valid * @return bool|WP_Error */ protected function validate_plugins() { if ( empty( $this->plugins ) || ! is_array( $this->plugins ) ) { return new WP_Error( 'missing_plugins', __( 'No plugins found.', 'jetpack' )); } foreach( $this->plugins as $index => $plugin ) { if ( ! preg_match( "/\.php$/", $plugin ) ) { $plugin = $plugin . '.php'; $this->plugins[ $index ] = $plugin; } if ( is_wp_error( $error = $this->validate_plugin( $plugin ) ) ) { return $error; } } return true; } protected function format_plugin( $plugin_file, $plugin_data ) { $plugin = array(); $plugin['id'] = preg_replace("/(.+)\.php$/", "$1", $plugin_file ); $plugin['slug'] = $this->get_plugin_slug( $plugin_file ); $plugin['active'] = Jetpack::is_plugin_active( $plugin_file ); $plugin['name'] = $plugin_data['Name']; $plugin['plugin_url'] = $plugin_data['PluginURI']; $plugin['version'] = $plugin_data['Version']; $plugin['description'] = $plugin_data['Description']; $plugin['author'] = $plugin_data['Author']; $plugin['author_url'] = $plugin_data['AuthorURI']; $plugin['network'] = $plugin_data['Network']; $plugin['update'] = $this->get_plugin_updates( $plugin_file ); $plugin['next_autoupdate'] = date( 'Y-m-d H:i:s', wp_next_scheduled( 'wp_maybe_auto_update' ) ); $plugin['autoupdate'] = in_array( $plugin_file, Jetpack_Options::get_option( 'autoupdate_plugins', array() ) ); $plugin['uninstallable'] = is_uninstallable_plugin( $plugin_file ); if ( ! empty ( $this->log[ $plugin_file ] ) ) { $plugin['log'] = $this->log[ $plugin_file ]; } return $plugin; } protected function get_plugins() { $plugins = array(); $installed_plugins = get_plugins(); foreach( $this->plugins as $plugin ) { if ( ! isset( $installed_plugins[ $plugin ] ) ) continue; $plugins[] = $this->format_plugin( $plugin, $installed_plugins[ $plugin ] ); } $args = $this->query_args(); if ( isset( $args['offset'] ) ) { $plugins = array_slice( $plugins, (int) $args['offset'] ); } if ( isset( $args['limit'] ) ) { $plugins = array_slice( $plugins, 0, (int) $args['limit'] ); } return $plugins; } protected function validate_network_wide() { $args = $this->input(); if ( isset( $args['network_wide'] ) && $args['network_wide'] ) { $this->network_wide = true; } if ( $this->network_wide && ! current_user_can( 'manage_network_plugins' ) ) { return new WP_Error( 'unauthorized', __( 'This user is not authorized to manage plugins network wide.', 'jetpack' ), 403 ); } return true; } protected function validate_plugin( $plugin ) { if ( ! isset( $plugin) || empty( $plugin ) ) { return new WP_Error( 'missing_plugin', __( 'You are required to specify a plugin to activate.', 'jetpack' ), 400 ); } if ( is_wp_error( $error = validate_plugin( urldecode( $plugin ) ) ) ) { return new WP_Error( 'unknown_plugin', $error->get_error_messages() , 404 ); } return true; } protected function get_plugin_updates( $plugin_file ) { $plugin_updates = get_plugin_updates(); if ( isset( $plugin_updates[ $plugin_file ] ) ){ return $plugin_updates[ $plugin_file ]->update; } return null; } protected function get_plugin_slug( $plugin_file ) { $update_plugins = get_site_transient( 'update_plugins' ); if ( isset( $update_plugins->no_update ) ) { if ( isset( $update_plugins->no_update[ $plugin_file ] ) ) { $slug = $update_plugins->no_update[ $plugin_file ]->slug; } } if ( empty( $slug ) && isset( $update_plugins->response ) ) { if ( isset( $update_plugins->response[ $plugin_file ] ) ) { $slug = $update_plugins->response[ $plugin_file ]->slug; } } // Try to infer from the plugin file if not cached if ( empty( $slug) ) { $slug = dirname( $plugin_file ); if ( '.' === $slug ) { $slug = preg_replace("/(.+)\.php$/", "$1", $plugin_file ); } } return $slug; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-endpoint.php0000644000312500031250000000664212654410420027451 0ustar eacbforgeacbforgvalidate_call( $blog_id, $this->needed_capabilities ) ) ) { return $error; } if ( is_wp_error( $error = $this->validate_input( $object ) ) ) { return $error; } if ( ! empty( $this->action ) ) { if( is_wp_error( $error = call_user_func( array( $this, $this->action ) ) ) ) { return $error; } } return $this->result(); } abstract protected function result(); protected function validate_input( $object ) { $args = $this->input(); if( isset( $args['action'] ) && $args['action'] == 'update' ) { $this->action = 'update'; } if ( preg_match( "/\/update\/?$/", $this->path ) ) { $this->action = 'update'; } elseif( preg_match( "/\/install\/?$/", $this->path ) ) { $this->action = 'install'; } elseif( ! empty( $args['action'] ) ) { if( ! in_array( $args['action'], $this->expected_actions ) ) { return new WP_Error( 'invalid_action', __( 'You must specify a valid action', 'jetpack' ) ); } $this->action = $args['action']; } return true; } /** * Switches to the blog and checks current user capabilities. * @return bool|WP_Error a WP_Error object or true if things are good. */ protected function validate_call( $_blog_id, $capability, $check_manage_active = true ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $_blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( is_wp_error( $error = $this->check_capability( $capability ) ) ) { return $error; } if ( $check_manage_active && 'GET' !== $this->method && ! Jetpack::is_module_active( 'manage' ) ) { return new WP_Error( 'unauthorized_full_access', __( 'Full management mode is off for this site.', 'jetpack' ), 403 ); } return true; } /** * @param $capability * * @return bool|WP_Error */ protected function check_capability( $capability ) { if ( is_array( $capability ) ) { // the idea is that the we can pass in an array of capabilitie that the user needs to have before we allowing them to do something $capabilities = ( isset( $capability['capabilities'] ) ? $capability['capabilities'] : $capability ); // We can pass in the number of conditions we must pass by default it is all. $must_pass = ( isset( $capability['must_pass'] ) && is_int( $capability['must_pass'] ) ? $capability['must_pass'] : count( $capabilities ) ); $failed = array(); // store the failed capabilities $passed = 0; // foreach ( $capabilities as $cap ) { if ( current_user_can( $cap ) ) { $passed ++; } else { $failed[] = $cap; } } // Check that must have conditions is less then if ( $passed < $must_pass ) { return new WP_Error( 'unauthorized', sprintf( __( 'This user is not authorized to %s on this blog.', 'jetpack' ), implode( ', ', $failed ), 403 ) ); } } else { if ( !current_user_can( $capability ) ) { return new WP_Error( 'unauthorized', sprintf( __( 'This user is not authorized to %s on this blog.', 'jetpack' ), $capability ), 403 ); } } return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-modules-list-endpoint.php0000644000312500031250000000046712651056012032067 0ustar eacbforgeacbforgmodules = Jetpack::get_available_modules(); return true; } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-plugins-modify-endpoint.php0000644000312500031250000001302612654410420032407 0ustar eacbforgeacbforgaction ) { case 'update' : $this->needed_capabilities = 'update_plugins'; break; case 'install' : $this->needed_capabilities = 'install_plugins'; break; } if ( isset( $args['autoupdate'] ) ) { $this->needed_capabilities = 'update_plugins'; } return parent::callback( $path, $blog_id, $object ); } public function default_action() { $args = $this->input(); if ( isset( $args['autoupdate'] ) && is_bool( $args['autoupdate'] ) ) { if ( $args['autoupdate'] ) { $this->autoupdate_on(); } else { $this->autoupdate_off(); } } if ( isset( $args['active'] ) && is_bool( $args['active'] ) ) { if ( $args['active'] ) { return $this->activate(); } else { return $this->deactivate(); } } return true; } protected function autoupdate_on() { $autoupdate_plugins = Jetpack_Options::get_option( 'autoupdate_plugins', array() ); $autoupdate_plugins = array_unique( array_merge( $autoupdate_plugins, $this->plugins ) ); Jetpack_Options::update_option( 'autoupdate_plugins', $autoupdate_plugins ); } protected function autoupdate_off() { $autoupdate_plugins = Jetpack_Options::get_option( 'autoupdate_plugins', array() ); $autoupdate_plugins = array_diff( $autoupdate_plugins, $this->plugins ); Jetpack_Options::update_option( 'autoupdate_plugins', $autoupdate_plugins ); } protected function activate() { foreach ( $this->plugins as $plugin ) { if ( ( ! $this->network_wide && Jetpack::is_plugin_active( $plugin ) ) || is_plugin_active_for_network( $plugin ) ) { $this->log[ $plugin ]['error'] = __( 'The Plugin is already active.', 'jetpack' ); $has_errors = true; continue; } if ( ! $this->network_wide && is_network_only_plugin( $plugin ) && is_multisite() ) { $this->log[ $plugin ]['error'] = __( 'Plugin can only be Network Activated', 'jetpack' ); $has_errors = true; continue; } $result = activate_plugin( $plugin, '', $this->network_wide ); if ( is_wp_error( $result ) ) { $this->log[ $plugin ]['error'] = $result->get_error_messages(); $has_errors = true; continue; } $success = Jetpack::is_plugin_active( $plugin ); if ( $success && $this->network_wide ) { $success &= is_plugin_active_for_network( $plugin ); } if ( ! $success ) { $this->log[ $plugin ]['error'] = $result->get_error_messages; $has_errors = true; continue; } $this->log[ $plugin ][] = __( 'Plugin activated.', 'jetpack' ); } if ( ! $this->bulk && isset( $has_errors ) ) { $plugin = $this->plugins[0]; return new WP_Error( 'activation_error', $this->log[ $plugin ]['error'] ); } } protected function deactivate() { foreach ( $this->plugins as $plugin ) { if ( ! Jetpack::is_plugin_active( $plugin ) ) { $error = $this->log[ $plugin ]['error'] = __( 'The Plugin is already deactivated.', 'jetpack' ); continue; } deactivate_plugins( $plugin, false, $this->network_wide ); $success = ! Jetpack::is_plugin_active( $plugin ); if ( $success && $this->network_wide ) { $success &= ! is_plugin_active_for_network( $plugin ); } if ( ! $success ) { $error = $this->log[ $plugin ]['error'] = __( 'There was an error deactivating your plugin', 'jetpack' ); continue; } $this->log[ $plugin ][] = __( 'Plugin deactivated.', 'jetpack' ); } if ( ! $this->bulk && isset( $error ) ) { return new WP_Error( 'deactivation_error', $error ); } } protected function update() { wp_clean_plugins_cache(); ob_start(); wp_update_plugins(); // Check for Plugin updates ob_end_clean(); $update_plugins = get_site_transient( 'update_plugins' ); if ( isset( $update_plugins->response ) ) { $plugin_updates_needed = array_keys( $update_plugins->response ); } else { $plugin_updates_needed = array(); } $update_attempted = false; include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; // unhook this functions that output things before we send our response header. remove_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async_upgrade' ), 20 ); remove_action( 'upgrader_process_complete', 'wp_version_check' ); remove_action( 'upgrader_process_complete', 'wp_update_themes' ); foreach ( $this->plugins as $plugin ) { if ( ! in_array( $plugin, $plugin_updates_needed ) ) { $this->log[ $plugin ][] = __( 'No update needed', 'jetpack' ); continue; } $update_attempted = true; // Object created inside the for loop to clean the messages for each plugin $skin = new Automatic_Upgrader_Skin(); // The Automatic_Upgrader_Skin skin shouldn't output anything. $upgrader = new Plugin_Upgrader( $skin ); $upgrader->init(); // This avoids the plugin to be deactivated. defined( 'DOING_CRON' ) or define( 'DOING_CRON', true ); $result = $upgrader->upgrade( $plugin ); $this->log[ $plugin ][] = $upgrader->skin->get_upgrade_messages(); } if ( ! $this->bulk && ! $result && $update_attempted ) { return new WP_Error( 'update_fail', __( 'There was an error updating your plugin', 'jetpack' ), 400 ); } return $this->default_action(); } } plugins/jetpack/json-endpoints/jetpack/class.jetpack-json-api-maybe-auto-update-endpoint.php0000644000312500031250000000144112651056012032762 0ustar eacbforgeacbforgupdate_results; if ( empty( $result['log'] ) ) { $possible_reasons_for_failure = Jetpack_Autoupdate::get_possible_failures(); if ( $possible_reasons_for_failure ) { $result['log']['error'] = $possible_reasons_for_failure; } } return $result; } public function get_update_results( $results ) { $this->update_results = $results; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-endpoint.php0000644000312500031250000006233512654410420030000 0ustar eacbforgeacbforgapi->ends_with( $this->path, '/delete' ) ) { $this->post_object_format['status']['deleted'] = 'The post has been deleted permanently.'; } } // /sites/%s/posts/new -> $blog_id // /sites/%s/posts/%d -> $blog_id, $post_id // /sites/%s/posts/%d/delete -> $blog_id, $post_id // /sites/%s/posts/%d/restore -> $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( $this->api->ends_with( $path, '/delete' ) ) { return $this->delete_post( $path, $blog_id, $post_id ); } elseif ( $this->api->ends_with( $path, '/restore' ) ) { return $this->restore_post( $path, $blog_id, $post_id ); } else { return $this->write_post( $path, $blog_id, $post_id ); } } // /sites/%s/posts/new -> $blog_id // /sites/%s/posts/%d -> $blog_id, $post_id function write_post( $path, $blog_id, $post_id ) { $new = $this->api->ends_with( $path, '/new' ); $args = $this->query_args(); // unhook publicize, it's hooked again later -- without this, skipping services is impossible if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { remove_action( 'save_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ), 100, 2 ); add_action( 'rest_api_inserted_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ) ); } if ( $new ) { $input = $this->input( true ); if ( 'revision' === $input['type'] ) { if ( ! isset( $input['parent'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $input['status'] = 'inherit'; // force inherit for revision type $input['slug'] = $input['parent'] . '-autosave-v1'; } elseif ( !isset( $input['title'] ) && !isset( $input['content'] ) && !isset( $input['excerpt'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } // default to post if ( empty( $input['type'] ) ) $input['type'] = 'post'; $post_type = get_post_type_object( $input['type'] ); if ( ! $this->is_post_type_allowed( $input['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } if ( ! empty( $input['author'] ) ) { $author_id = $this->parse_and_set_author( $input['author'], $input['type'] ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( 'publish' === $input['status'] ) { if ( ! current_user_can( $post_type->cap->publish_posts ) ) { if ( current_user_can( $post_type->cap->edit_posts ) ) { $input['status'] = 'pending'; } else { return new WP_Error( 'unauthorized', 'User cannot publish posts', 403 ); } } } else { if ( !current_user_can( $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'User cannot edit posts', 403 ); } } } else { $input = $this->input( false ); if ( !is_array( $input ) || !$input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $post = get_post( $post_id ); $_post_type = ( ! empty( $input['type'] ) ) ? $input['type'] : $post->post_type; $post_type = get_post_type_object( $_post_type ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( !current_user_can( 'edit_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } if ( ! empty( $input['author'] ) ) { $author_id = $this->parse_and_set_author( $input['author'], $_post_type ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( ( isset( $input['status'] ) && 'publish' === $input['status'] ) && 'publish' !== $post->post_status && !current_user_can( 'publish_post', $post->ID ) ) { $input['status'] = 'pending'; } $last_status = $post->post_status; $new_status = isset( $input['status'] ) ? $input['status'] : $last_status; // Make sure that drafts get the current date when transitioning to publish if not supplied in the post. $date_in_past = ( strtotime($post->post_date_gmt) < time() ); if ( 'publish' === $new_status && 'draft' === $last_status && ! isset( $input['date_gmt'] ) && $date_in_past ) { $input['date_gmt'] = gmdate( 'Y-m-d H:i:s' ); } } // If date is set, $this->input will set date_gmt, date still needs to be adjusted for the blog's offset if ( isset( $input['date_gmt'] ) ) { $gmt_offset = get_option( 'gmt_offset' ); $time_with_offset = strtotime( $input['date_gmt'] ) + $gmt_offset * HOUR_IN_SECONDS; $input['date'] = date( 'Y-m-d H:i:s', $time_with_offset ); } if ( ! empty( $author_id ) && get_current_user_id() != $author_id ) { if ( ! current_user_can( $post_type->cap->edit_others_posts ) ) { return new WP_Error( 'unauthorized', "User is not allowed to publish others' posts.", 403 ); } elseif ( ! user_can( $author_id, $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'Assigned author cannot publish post.', 403 ); } } if ( !is_post_type_hierarchical( $post_type->name ) && 'revision' !== $post_type->name ) { unset( $input['parent'] ); } $tax_input = array(); foreach ( array( 'categories' => 'category', 'tags' => 'post_tag' ) as $key => $taxonomy ) { if ( ! isset( $input[ $key ] ) ) { continue; } $tax_input[ $taxonomy ] = array(); $is_hierarchical = is_taxonomy_hierarchical( $taxonomy ); if ( is_array( $input[$key] ) ) { $terms = $input[$key]; } else { $terms = explode( ',', $input[$key] ); } foreach ( $terms as $term ) { /** * `curl --data 'category[]=123'` should be interpreted as a category ID, * not a category whose name is '123'. * * Consequence: To add a category/tag whose name is '123', the client must * first look up its ID. */ if ( ctype_digit( $term ) ) { $term = (int) $term; } $term_info = term_exists( $term, $taxonomy ); if ( ! $term_info ) { // A term ID that doesn't already exist. Ignore it: we don't know what name to give it. if ( is_int( $term ) ){ continue; } // only add a new tag/cat if the user has access to $tax = get_taxonomy( $taxonomy ); // see https://core.trac.wordpress.org/ticket/26409 if ( 'category' === $taxonomy && ! current_user_can( $tax->cap->edit_terms ) ) { continue; } else if ( ! current_user_can( $tax->cap->assign_terms ) ) { continue; } $term_info = wp_insert_term( $term, $taxonomy ); } if ( ! is_wp_error( $term_info ) ) { if ( $is_hierarchical ) { // Categories must be added by ID $tax_input[$taxonomy][] = (int) $term_info['term_id']; } else { // Tags must be added by name if ( is_int( $term ) ) { $term = get_term( $term, $taxonomy ); $tax_input[$taxonomy][] = $term->name; } else { $tax_input[$taxonomy][] = $term; } } } } } if ( isset( $input['categories'] ) && empty( $tax_input['category'] ) && 'revision' !== $post_type->name ) { $tax_input['category'][] = get_option( 'default_category' ); } unset( $input['tags'], $input['categories'] ); $insert = array(); if ( !empty( $input['slug'] ) ) { $insert['post_name'] = $input['slug']; unset( $input['slug'] ); } if ( isset( $input['comments_open'] ) ) { $insert['comment_status'] = ( true === $input['comments_open'] ) ? 'open' : 'closed'; } if ( isset( $input['pings_open'] ) ) { $insert['ping_status'] = ( true === $input['pings_open'] ) ? 'open' : 'closed'; } unset( $input['comments_open'], $input['pings_open'] ); if ( isset( $input['menu_order'] ) ) { $insert['menu_order'] = $input['menu_order']; unset( $input['menu_order'] ); } $publicize = isset( $input['publicize'] ) ? $input['publicize'] : null; unset( $input['publicize'] ); $publicize_custom_message = isset( $input['publicize_message'] ) ? $input['publicize_message'] : null; unset( $input['publicize_message'] ); if ( isset( $input['featured_image'] ) ) { $featured_image = trim( $input['featured_image'] ); $delete_featured_image = empty( $featured_image ); unset( $input['featured_image'] ); } $metadata = isset( $input['metadata'] ) ? $input['metadata'] : null; unset( $input['metadata'] ); $likes = isset( $input['likes_enabled'] ) ? $input['likes_enabled'] : null; unset( $input['likes_enabled'] ); $sharing = isset( $input['sharing_enabled'] ) ? $input['sharing_enabled'] : null; unset( $input['sharing_enabled'] ); $sticky = isset( $input['sticky'] ) ? $input['sticky'] : null; unset( $input['sticky'] ); foreach ( $input as $key => $value ) { $insert["post_$key"] = $value; } if ( ! empty( $author_id ) ) { $insert['post_author'] = absint( $author_id ); } if ( ! empty( $tax_input ) ) { $insert['tax_input'] = $tax_input; } $has_media = isset( $input['media'] ) && $input['media'] ? count( $input['media'] ) : false; $has_media_by_url = isset( $input['media_urls'] ) && $input['media_urls'] ? count( $input['media_urls'] ) : false; if ( $new ) { if ( isset( $input['content'] ) && ! has_shortcode( $input['content'], 'gallery' ) && ( $has_media || $has_media_by_url ) ) { switch ( ( $has_media + $has_media_by_url ) ) { case 0 : // No images - do nothing. break; case 1 : // 1 image - make it big $insert['post_content'] = $input['content'] = "[gallery size=full columns=1]\n\n" . $input['content']; break; default : // Several images - 3 column gallery $insert['post_content'] = $input['content'] = "[gallery]\n\n" . $input['content']; break; } } $post_id = wp_insert_post( add_magic_quotes( $insert ), true ); } else { $insert['ID'] = $post->ID; // wp_update_post ignores date unless edit_date is set // See: http://codex.wordpress.org/Function_Reference/wp_update_post#Scheduling_posts // See: https://core.trac.wordpress.org/browser/tags/3.9.2/src/wp-includes/post.php#L3302 if ( isset( $input['date_gmt'] ) || isset( $input['date'] ) ) { $insert['edit_date'] = true; } $post_id = wp_update_post( (object) $insert ); } if ( !$post_id || is_wp_error( $post_id ) ) { return $post_id; } // make sure this post actually exists and is not an error of some kind (ie, trying to load media in the posts endpoint) $post_check = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( is_wp_error( $post_check ) ) { return $post_check; } if ( $has_media ) { $this->api->trap_wp_die( 'upload_error' ); foreach ( $input['media'] as $media_item ) { $_FILES['.api.media.item.'] = $media_item; // check for WP_Error if we ever actually need $media_id $media_id = media_handle_upload( '.api.media.item.', $post_id ); } $this->api->trap_wp_die( null ); unset( $_FILES['.api.media.item.'] ); } if ( $has_media_by_url ) { foreach ( $input['media_urls'] as $url ) { $this->handle_media_sideload( $url, $post_id ); } } // Set like status for the post /** This filter is documented in modules/likes.php */ $sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ); if ( $new ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } else { if ( isset( $likes ) ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( true === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } } // Set sharing status of the post if ( $new ) { $sharing_enabled = isset( $sharing ) ? (bool) $sharing : true; if ( false === $sharing_enabled ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } else { if ( isset( $sharing ) && true === $sharing ) { delete_post_meta( $post_id, 'sharing_disabled' ); } else if ( isset( $sharing ) && false == $sharing ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } if ( isset( $sticky ) ) { if ( true === $sticky ) { stick_post( $post_id ); } else { unstick_post( $post_id ); } } // WPCOM Specific (Jetpack's will get bumped elsewhere // Tracks how many posts are published and sets meta // so we can track some other cool stats (like likes & comments on posts published) if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { if ( ( $new && 'publish' == $input['status'] ) || ( ! $new && isset( $last_status ) && 'publish' != $last_status && isset( $new_status ) && 'publish' == $new_status ) ) { /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'api-insights-posts', $this->api->token_details['client_id'] ); update_post_meta( $post_id, '_rest_api_published', 1 ); update_post_meta( $post_id, '_rest_api_client_id', $this->api->token_details['client_id'] ); } } // We ask the user/dev to pass Publicize services he/she wants activated for the post, but Publicize expects us // to instead flag the ones we don't want to be skipped. proceed with said logic. // any posts coming from Path (client ID 25952) should also not publicize if ( $publicize === false || ( isset( $this->api->token_details['client_id'] ) && 25952 == $this->api->token_details['client_id'] ) ) { // No publicize at all, skip all by ID foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); if ( ! $service_connections ) { continue; } foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } } else if ( is_array( $publicize ) && ( count ( $publicize ) > 0 ) ) { foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { /* * We support both indexed and associative arrays: * * indexed are to pass entire services * * associative are to pass specific connections per service * * We do support mixed arrays: mixed integer and string keys (see 3rd example below). * * EG: array( 'twitter', 'facebook') will only publicize to those, ignoring the other available services * Form data: publicize[]=twitter&publicize[]=facebook * EG: array( 'twitter' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3', 'facebook' => (int) $pub_conn_id_7 ) will publicize to two Twitter accounts, and one Facebook connection, of potentially many. * Form data: publicize[twitter]=$pub_conn_id_0,$pub_conn_id_3&publicize[facebook]=$pub_conn_id_7 * EG: array( 'twitter', 'facebook' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3' ) will publicize to all available Twitter accounts, but only 2 of potentially many Facebook connections * Form data: publicize[]=twitter&publicize[facebook]=$pub_conn_id_0,$pub_conn_id_3 */ // Delete any stale SKIP value for the service by name. We'll add it back by ID. delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); // Get the user's connections $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); // if the user doesn't have any connections for this service, move on if ( ! $service_connections ) { continue; } if ( !in_array( $name, $publicize ) && !array_key_exists( $name, $publicize ) ) { // Skip the whole service by adding each connection ID foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } else if ( !empty( $publicize[ $name ] ) ) { // Seems we're being asked to only push to [a] specific connection[s]. // Explode the list on commas, which will also support a single passed ID $requested_connections = explode( ',', ( preg_replace( '/[\s]*/', '', $publicize[ $name ] ) ) ); // Flag the connections we can't match with the requested list to be skipped. foreach ( $service_connections as $service_connection ) { if ( !in_array( $service_connection->meta['connection_data']->id, $requested_connections ) ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } else { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } else { // delete all SKIP values; it's okay to publish to all connected IDs for this service foreach ( $service_connections as $service_connection ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } } if ( ! is_null( $publicize_custom_message ) ) { if ( empty( $publicize_custom_message ) ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS ); } else { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS, trim( $publicize_custom_message ) ); } } if ( ! empty( $insert['post_format'] ) ) { if ( 'default' !== strtolower( $insert['post_format'] ) ) { set_post_format( $post_id, $insert['post_format'] ); } else { set_post_format( $post_id, get_option( 'default_post_format' ) ); } } if ( isset( $featured_image ) ) { $this->parse_and_set_featured_image( $post_id, $delete_featured_image, $featured_image ); } if ( ! empty( $metadata ) ) { foreach ( (array) $metadata as $meta ) { $meta = (object) $meta; $existing_meta_item = new stdClass; if ( empty( $meta->operation ) ) $meta->operation = 'update'; if ( ! empty( $meta->value ) ) { if ( 'true' == $meta->value ) $meta->value = true; if ( 'false' == $meta->value ) $meta->value = false; } if ( ! empty( $meta->id ) ) { $meta->id = absint( $meta->id ); $existing_meta_item = get_metadata_by_mid( 'post', $meta->id ); } $unslashed_meta_key = wp_unslash( $meta->key ); // should match what the final key will be $meta->key = wp_slash( $meta->key ); $unslashed_existing_meta_key = wp_unslash( $existing_meta_item->meta_key ); $existing_meta_item->meta_key = wp_slash( $existing_meta_item->meta_key ); // make sure that the meta id passed matches the existing meta key if ( ! empty( $meta->id ) && ! empty( $meta->key ) ) { $meta_by_id = get_metadata_by_mid( 'post', $meta->id ); if ( $meta_by_id->meta_key !== $meta->key ) { continue; // skip this meta } } switch ( $meta->operation ) { case 'delete': if ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_existing_meta_key ) ) { delete_metadata_by_mid( 'post', $meta->id ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key ); } break; case 'add': if ( ! empty( $meta->id ) || ! empty( $meta->previous_value ) ) { continue; } elseif ( ! empty( $meta->key ) && ! empty( $meta->value ) && ( current_user_can( 'add_post_meta', $post_id, $unslashed_meta_key ) ) || $this->is_metadata_public( $meta->key ) ) { add_post_meta( $post_id, $meta->key, $meta->value ); } break; case 'update': if ( ! isset( $meta->value ) ) { continue; } elseif ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_existing_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_metadata_by_mid( 'post', $meta->id, $meta->value ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key,$meta->value, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key, $meta->value ); } break; } } } /** * Fires when a post is created via the REST API. * * @module json-api * * @since 2.3.0 * * @param int $post_id Post ID. * @param array $insert Data used to build the post. * @param string $new New post URL suffix. */ do_action( 'rest_api_inserted_post', $post_id, $insert, $new ); $return = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } if ( isset( $input['type'] ) && 'revision' === $input['type'] ) { $return['preview_nonce'] = wp_create_nonce( 'post_preview_' . $input['parent'] ); } if ( isset( $sticky ) ) { // workaround for sticky test occasionally failing, maybe a race condition with stick_post() above $return['sticky'] = ( true === $sticky ); } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); return $return; } // /sites/%s/posts/%d/delete -> $blog_id, $post_id function delete_post( $path, $blog_id, $post_id ) { $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! $this->is_post_type_allowed( $post->post_type ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } if ( !current_user_can( 'delete_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot delete posts', 403 ); } $args = $this->query_args(); $return = $this->get_post_by( 'ID', $post->ID, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); wp_delete_post( $post->ID ); $status = get_post_status( $post->ID ); if ( false === $status ) { $return['status'] = 'deleted'; return $return; } return $this->get_post_by( 'ID', $post->ID, $args['context'] ); } // /sites/%s/posts/%d/restore -> $blog_id, $post_id function restore_post( $path, $blog_id, $post_id ) { $args = $this->query_args(); $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( !current_user_can( 'delete_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot restore trashed posts', 403 ); } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); wp_untrash_post( $post->ID ); return $this->get_post_by( 'ID', $post->ID, $args['context'] ); } private function parse_and_set_featured_image( $post_id, $delete_featured_image, $featured_image ) { if ( $delete_featured_image ) { delete_post_thumbnail( $post_id ); return; } $featured_image = (string) $featured_image; // if we got a post ID, we can just set it as the thumbnail if ( ctype_digit( $featured_image ) && 'attachment' == get_post_type( $featured_image ) ) { set_post_thumbnail( $post_id, $featured_image ); return $featured_image; } $featured_image_id = $this->handle_media_sideload( $featured_image, $post_id ); if ( empty( $featured_image_id ) || ! is_int( $featured_image_id ) ) return false; set_post_thumbnail( $post_id, $featured_image_id ); return $featured_image_id; } private function parse_and_set_author( $author = null, $post_type = 'post' ) { if ( empty( $author ) || ! post_type_supports( $post_type, 'author' ) ) return get_current_user_id(); if ( ctype_digit( $author ) ) { $_user = get_user_by( 'id', $author ); if ( ! $_user || is_wp_error( $_user ) ) return new WP_Error( 'invalid_author', 'Invalid author provided' ); return $_user->ID; } $_user = get_user_by( 'login', $author ); if ( ! $_user || is_wp_error( $_user ) ) return new WP_Error( 'invalid_author', 'Invalid author provided' ); return $_user->ID; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-v1-1-endpoint.php0000644000312500031250000000126512651056012030044 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } //upload_files can probably be used for other endpoints but we want contributors to be able to use media too if ( ! current_user_can( 'edit_posts', $media_id ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } return $this->get_media_item_v1_1( $media_id ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-upload-media-v1-1-endpoint.php0000644000312500031250000000311312651056012030543 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'upload_files' ) ) { return new WP_Error( 'unauthorized', 'User cannot upload media.', 403 ); } $input = $this->input( true ); $media_files = ! empty( $input['media'] ) ? $input['media'] : array(); $media_urls = ! empty( $input['media_urls'] ) ? $input['media_urls'] : array(); $media_attrs = ! empty( $input['attrs'] ) ? $input['attrs'] : array(); if ( empty( $media_files ) && empty( $media_urls ) ) { return new WP_Error( 'invalid_input', 'No media provided in input.' ); } $create_media = $this->handle_media_creation_v1_1( $media_files, $media_urls, $media_attrs ); $media_ids = $create_media['media_ids']; $errors = $create_media['errors']; $results = array(); if ( count( $media_ids ) <= 0 ) { $this->api->output_early( 400, array( 'errors' => $errors ) ); } else { foreach ( $media_ids as $media_id ) { $result = $this->get_media_item_v1_1( $media_id ); if ( is_wp_error( $result ) ) { $errors[] = array( 'file' => $media_id, 'error' => $result->get_error_code(), 'message' => $result->get_error_message() ); } else { $results[] = $result; } } if ( count( $errors ) > 0 ) { return array( 'media' => $results, 'errors' => $errors ); } else { return array( 'media' => $results ); } } } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-invites-endpoint.php0000644000312500031250000000657012654411246030173 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! is_multisite() ) { return new WP_Error( 'forbidden', 'To query invites, site must be on a multisite installation.', 403 ); } if ( ! current_user_can( 'promote_users' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to promote users on this blog.', 401 ); } $this->blog_id = $blog_id; $this->args = $this->query_args(); $this->is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM; $this->found = $this->get_found(); return array( 'found' => $this->found, 'invites' => $this->get_invites(), ); } /** * Returns the total number of invites, ignoring limits and offsets. * @return int */ function get_found() { global $wpdb, $wpcom_invite_users; $total = 0; if ( $this->is_wpcom ) { $total = $wpcom_invite_users->count_blog_invitiations( $this->blog_id, null, 'pending' == $this->args['status'] ); } else { $total = $invites = $wpdb->get_var( $wpdb->prepare( "SELECT count( option_id ) FROM $wpdb->options WHERE option_name LIKE %s", 'new_user_%' ) ); } return intval( $total ); } /** * Returns the invitations for a given site. * @return array */ function get_invites() { global $wpdb, $wpcom_invite_users; $invites = array(); if ( $this->is_wpcom ) { $invites = $wpcom_invite_users->get_blog_invitations( $this->blog_id, null, array( 'offset' => intval( $this->args['offset'] ), 'per_page' => intval( $this->args['number'] ), 'pending_only' => ( 'pending' == $this->args['status'] ), ) ); } else { $invites = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name LIKE %s ORDER BY option_id DESC LIMIT %d, %d", 'new_user_%', intval( $this->args['offset'] ), intval( $this->args['number'] ) ) ); } return empty( $invites ) ? array() : array_map( array( $this, 'build_invite' ), $invites ); } /** * Given an invite, returns an array with expected shape. * @param array $invite * @return array */ function build_invite( $invite ) { $invite_key = $this->is_wpcom ? $invite->invite_slug : $invite->option_name; $invite = $this->is_wpcom ? (array) $invite : (array) unserialize( $invite->option_value ); return array( 'invite_key' => $invite_key, 'role' => $this->is_wpcom ? $invite['meta']['role'] : $invite['role'], 'user' => $this->get_user( $invite ), ); } /** * Given an invite, returns a user object using the get_author() method in class.json-api-endpoints.php. * @param array $invite * @return array|string */ function get_user( $invite ) { if ( ! $this->is_wpcom ) { return $this->get_author( $invite['user_id'] ); } $user = get_user_by( 'login', $invite['meta']['sent_to'] ); // If a user did not exist, mock a user to pass to get_author() $no_user = false === $user; if( $no_user ) { $user = new stdClass(); $user->comment_author = ''; $user->comment_author_url = ''; $user->comment_author_email = $invite['meta']['sent_to']; } return $this->get_author( $user, $no_user ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-post-endpoint.php0000644000312500031250000000171712651056012027272 0ustar eacbforgeacbforg $blog_id, $post_id // /sites/%s/posts/name:%s -> $blog_id, $post_id // not documented // /sites/%s/posts/slug:%s -> $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); if ( false === strpos( $path, '/posts/slug:' ) && false === strpos( $path, '/posts/name:' ) ) { $get_by = 'ID'; } else { $get_by = 'name'; } $return = $this->get_post_by( $get_by, $post_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-media-v1-1-endpoint.php0000644000312500031250000001473112654410420030242 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } //upload_files can probably be used for other endpoints but we want contributors to be able to use media too if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } $args = $this->query_args(); $is_eligible_for_page_handle = true; if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $this->load_theme_functions(); } if ( isset( $args['before'] ) ) { $this->date_range['before'] = $args['before']; } if ( isset( $args['after'] ) ) { $this->date_range['after'] = $args['after']; } $query = array( 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_parent' => isset( $args['post_ID'] ) ? $args['post_ID'] : null, 'offset' => isset( $args['offset'] ) ? $args['offset'] : null, 'posts_per_page' => $args['number'], 'post_mime_type' => isset( $args['mime_type'] ) ? $args['mime_type'] : null, 'order' => isset( $args['order'] ) ? $args['order'] : 'DESC', 'orderby' => isset( $args['order_by'] ) ? $args['order_by'] : 'date', 's' => isset( $args['search'] ) ? $args['search'] : null, ); if ( isset( $args['page'] ) ) { if ( $args['page'] < 1 ) { $args['page'] = 1; } $query['paged'] = $args['page']; if ( $query['paged'] !== 1 ) { $is_eligible_for_page_handle = false; } } else { if ( $args['offset'] < 0 ) { $args['offset'] = 0; } $query['offset'] = $args['offset']; if ( $query['offset'] !== 0 ) { $is_eligible_for_page_handle = false; } } if ( isset( $args['page_handle'] ) ) { $page_handle = wp_parse_args( $args['page_handle'] ); if ( isset( $page_handle['value'] ) && isset( $page_handle['id'] ) ) { // we have a valid looking page handle $this->page_handle = $page_handle; add_filter( 'posts_where', array( $this, 'handle_where_for_page_handle' ) ); } } if ( $this->date_range ) { add_filter( 'posts_where', array( $this, 'handle_date_range' ) ); } $this->performed_query = $query; add_filter( 'posts_orderby', array( $this, 'handle_orderby_for_page_handle' ) ); $media = new WP_Query( $query ); remove_filter( 'posts_orderby', array( $this, 'handle_orderby_for_page_handle' ) ); if ( $this->date_range ) { remove_filter( 'posts_where', array( $this, 'handle_date_range' ) ); $this->date_range = array(); } if ( $this->page_handle ) { remove_filter( 'posts_where', array( $this, 'handle_where_for_page_handle' ) ); } $response = array(); foreach ( $media->posts as $item ) { $response[] = $this->get_media_item_v1_1( $item->ID ); } $return = array( 'found' => (int) $media->found_posts, 'media' => $response ); if ( $is_eligible_for_page_handle && $return['media'] ) { $last_post = end( $return['media'] ); reset( $return['media'] ); if ( ( $return['found'] > count( $return['media'] ) ) && $last_post ) { $return['meta'] = array(); $return['meta']['next_page'] = $this->build_page_handle( $last_post, $query ); } } return $return; } function build_page_handle( $post, $query ) { $column = $query['orderby']; if ( ! $column ) { $column = 'date'; } return build_query( array( 'value' => urlencode( $post->$column ), 'id' => $post->ID ) ); } function handle_where_for_page_handle( $where ) { global $wpdb; $column = $this->performed_query['orderby']; if ( ! $column ) { $column = 'date'; } $order = $this->performed_query['order']; if ( ! $order ) { $order = 'DESC'; } if ( ! in_array( $column, array( 'ID', 'title', 'date', 'modified', 'comment_count' ) ) ) { return $where; } if ( ! in_array( $order, array( 'DESC', 'ASC' ) ) ) { return $where; } $db_column = ''; $db_value = ''; switch( $column ) { case 'ID': $db_column = 'ID'; $db_value = '%d'; break; case 'title': $db_column = 'post_title'; $db_value = '%s'; break; case 'date': $db_column = 'post_date'; $db_value = 'CAST( %s as DATETIME )'; break; case 'modified': $db_column = 'post_modified'; $db_value = 'CAST( %s as DATETIME )'; break; case 'comment_count': $db_column = 'comment_count'; $db_value = '%d'; break; } if ( 'DESC'=== $order ) { $db_order = '<'; } else { $db_order = '>'; } // Add a clause that limits the results to items beyond the passed item, or equivalent to the passed item // but with an ID beyond the passed item. When we're ordering by the ID already, we only ask for items // beyond the passed item. $where .= $wpdb->prepare( " AND ( ( `$wpdb->posts`.`$db_column` $db_order $db_value ) ", $this->page_handle['value'] ); if ( $db_column !== 'ID' ) { $where .= $wpdb->prepare( "OR ( `$wpdb->posts`.`$db_column` = $db_value AND `$wpdb->posts`.ID $db_order %d )", $this->page_handle['value'], $this->page_handle['id'] ); } $where .= ' )'; return $where; } function handle_date_range( $where ) { global $wpdb; switch ( count( $this->date_range ) ) { case 2 : $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date BETWEEN CAST( %s AS DATETIME ) AND CAST( %s AS DATETIME ) ", $this->date_range['after'], $this->date_range['before'] ); break; case 1 : if ( isset( $this->date_range['before'] ) ) { $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date <= CAST( %s AS DATETIME ) ", $this->date_range['before'] ); } else { $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date >= CAST( %s AS DATETIME ) ", $this->date_range['after'] ); } break; } return $where; } function handle_orderby_for_page_handle( $orderby ) { global $wpdb; if ( $this->performed_query['orderby'] === 'ID' ) { // bail if we're already ordering by ID return $orderby; } if ( $orderby ) { $orderby .= ' ,'; } $order = $this->performed_query['order']; if ( ! $order ) { $order = 'DESC'; } $orderby .= " `$wpdb->posts`.ID $order"; return $orderby; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-media-v1-1-endpoint.php0000644000312500031250000000365412654410420030553 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'upload_files', $media_id ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } $item = $this->get_media_item_v1_1( $media_id ); if ( is_wp_error( $item ) ) { return new WP_Error( 'unknown_media', 'Unknown Media', 404 ); } $input = $this->input( true ); $insert = array(); if ( isset( $input['title'] ) ) { $insert['post_title'] = $input['title']; } if ( isset( $input['caption'] ) ) { $insert['post_excerpt'] = $input['caption']; } if ( isset( $input['description'] ) ) { $insert['post_content'] = $input['description']; } if ( isset( $input['parent_id'] ) ) { $insert['post_parent'] = $input['parent_id']; } if ( isset( $input['alt'] ) ) { $alt = wp_strip_all_tags( $input['alt'], true ); update_post_meta( $media_id, '_wp_attachment_image_alt', $alt ); } // audio only artist/album info if ( 0 === strpos( $item->mime_type, 'audio/' ) ) { $changed = false; $id3data = wp_get_attachment_metadata( $media_id ); if ( ! is_array( $id3data ) ) { $changed = true; $id3data = array(); } $id3_keys = array( 'artist' => __( 'Artist', 'jetpack' ), 'album' => __( 'Album', 'jetpack' ) ); foreach ( $id3_keys as $key => $label ) { if ( isset( $input[ $key ] ) ) { $changed = true; $id3data[ $key ] = wp_strip_all_tags( $input[ $key ], true ); } } if ( $changed ) { wp_update_attachment_metadata( $media_id, $id3data ); } } $insert['ID'] = $media_id; wp_update_post( (object) $insert ); $item = $this->get_media_item_v1_1( $media_id ); return $item; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-autosave-post-v1-1-endpoint.php0000644000312500031250000000442312651056012031021 0ustar eacbforgeacbforg $blog_id, $post_id function callback( $path = '', $blog_id = 0, $post_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); $input = $this->input( false ); if ( ! is_array( $input ) || ! $input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $post = get_post( $post_id ); if ( ! $post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! current_user_can( 'edit_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } $post_data = array ( 'post_ID' => $post_id, 'post_title' => $input['title'], 'post_content' => $input['content'], 'post_excerpt' => $input['excerpt'], ); $preview_url = add_query_arg( 'preview', 'true', get_permalink( $post->ID ) ); if ( ! wp_check_post_lock( $post->ID ) && get_current_user_id() == $post->post_author && ( 'auto-draft' == $post->post_status || 'draft' == $post->post_status ) ) { // Drafts and auto-drafts are just overwritten by autosave for the same user if the post is not locked $auto_ID = edit_post( wp_slash( $post_data ) ); } else { // Non drafts or other users drafts are not overwritten. The autosave is stored in a special post revision for each user. $auto_ID = wp_create_post_autosave( wp_slash( $post_data ) ); $nonce = wp_create_nonce( 'post_preview_' . $post->ID ); $preview_url = add_query_arg( array( 'preview_id' => $auto_ID, 'preview_nonce' => $nonce ), $preview_url ); } $updated_post = get_post( $auto_ID ); if ( $updated_post && $updated_post->ID && $updated_post->post_modified ) { return array( 'ID' => $auto_ID, 'post_ID' => $post->ID, 'modified' => $this->format_date( $updated_post->post_modified ), 'preview_URL' => $preview_url ); } else { return new WP_Error( 'autosave_error', __( 'Autosave encountered an unexpected error', 'jetpack' ), 500 ); } } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-posts-endpoint.php0000644000312500031250000001755512654410420027660 0ustar eacbforgeacbforg '(int) The total number of posts found that match the request (ignoring limits, offsets, and pagination).', 'posts' => '(array:post) An array of post objects.', ); // /sites/%s/posts/ -> $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } if ( isset( $args['type'] ) && ! $this->is_post_type_allowed( $args['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } // Normalize post_type if ( isset( $args['type'] ) && 'any' == $args['type'] ) { if ( version_compare( $this->api->version, '1.1', '<' ) ) { $args['type'] = array( 'post', 'page' ); } else { // 1.1+ $args['type'] = $this->_get_whitelisted_post_types(); } } // determine statuses $status = $args['status']; $status = ( $status ) ? explode( ',', $status ) : array( 'publish' ); if ( is_user_logged_in() ) { $statuses_whitelist = array( 'publish', 'pending', 'draft', 'future', 'private', 'trash', 'any', ); $status = array_intersect( $status, $statuses_whitelist ); } else { // logged-out users can see only published posts $statuses_whitelist = array( 'publish', 'any' ); $status = array_intersect( $status, $statuses_whitelist ); if ( empty( $status ) ) { // requested only protected statuses? nothing for you here return array( 'found' => 0, 'posts' => array() ); } // clear it (AKA published only) because "any" includes protected $status = array(); } // let's be explicit about defaulting to 'post' $args['type'] = isset( $args['type'] ) ? $args['type'] : 'post'; // make sure the user can read or edit the requested post type(s) if ( is_array( $args['type'] ) ) { $allowed_types = array(); foreach ( $args['type'] as $post_type ) { if ( $this->current_user_can_access_post_type( $post_type, $args['context'] ) ) { $allowed_types[] = $post_type; } } if ( empty( $allowed_types ) ) { return array( 'found' => 0, 'posts' => array() ); } $args['type'] = $allowed_types; } else { if ( ! $this->current_user_can_access_post_type( $args['type'], $args['context'] ) ) { return array( 'found' => 0, 'posts' => array() ); } } $query = array( 'posts_per_page' => $args['number'], 'order' => $args['order'], 'orderby' => $args['order_by'], 'post_type' => $args['type'], 'post_status' => $status, 'post_parent' => isset( $args['parent_id'] ) ? $args['parent_id'] : null, 'author' => isset( $args['author'] ) && 0 < $args['author'] ? $args['author'] : null, 's' => isset( $args['search'] ) ? $args['search'] : null, 'fields' => 'ids', ); if ( ! is_user_logged_in () ) { $query['has_password'] = false; } if ( isset( $args['meta_key'] ) ) { $show = false; if ( $this->is_metadata_public( $args['meta_key'] ) ) $show = true; if ( current_user_can( 'edit_post_meta', $query['post_type'], $args['meta_key'] ) ) $show = true; if ( is_protected_meta( $args['meta_key'], 'post' ) && ! $show ) return new WP_Error( 'invalid_meta_key', 'Invalid meta key', 404 ); $meta = array( 'key' => $args['meta_key'] ); if ( isset( $args['meta_value'] ) ) $meta['value'] = $args['meta_value']; $query['meta_query'] = array( $meta ); } if ( isset( $args['sticky'] ) && ( $sticky = get_option( 'sticky_posts' ) ) && is_array( $sticky ) ) { if ( $args['sticky'] ) { $query['post__in'] = $sticky; } else { $query['post__not_in'] = $sticky; $query['ignore_sticky_posts'] = 1; } } else { $query['post__not_in'] = $sticky; $query['ignore_sticky_posts'] = 1; } if ( isset( $args['exclude'] ) ) { $query['post__not_in'] = array_merge( $query['post__not_in'], (array) $args['exclude'] ); } if ( isset( $args['exclude_tree'] ) && is_post_type_hierarchical( $args['type'] ) ) { // get_page_children is a misnomer; it supports all hierarchical post types $page_args = array( 'child_of' => $args['exclude_tree'], 'post_type' => $args['type'], // since we're looking for things to exclude, be aggressive 'post_status' => 'publish,draft,pending,private,future,trash', ); $post_descendants = get_pages( $page_args ); $exclude_tree = array( $args['exclude_tree'] ); foreach ( $post_descendants as $child ) { $exclude_tree[] = $child->ID; } $query['post__not_in'] = isset( $query['post__not_in'] ) ? array_merge( $query['post__not_in'], $exclude_tree ) : $exclude_tree; } if ( isset( $args['category'] ) ) { $category = get_term_by( 'slug', $args['category'], 'category' ); if ( $category === false) { $query['category_name'] = $args['category']; } else { $query['cat'] = $category->term_id; } } if ( isset( $args['tag'] ) ) { $query['tag'] = $args['tag']; } if ( isset( $args['page'] ) ) { if ( $args['page'] < 1 ) { $args['page'] = 1; } $query['paged'] = $args['page']; } else { if ( $args['offset'] < 0 ) { $args['offset'] = 0; } $query['offset'] = $args['offset']; } if ( isset( $args['before'] ) ) { $this->date_range['before'] = $args['before']; } if ( isset( $args['after'] ) ) { $this->date_range['after'] = $args['after']; } if ( $this->date_range ) { add_filter( 'posts_where', array( $this, 'handle_date_range' ) ); } /** * 'column' necessary for the me/posts endpoint (which extends sites/$site/posts). * Would need to be added to the sites/$site/posts definition if we ever want to * use it there. */ $column_whitelist = array( 'post_modified_gmt' ); if ( isset( $args['column'] ) && in_array( $args['column'], $column_whitelist ) ) { $query['column'] = $args['column']; } $wp_query = new WP_Query( $query ); if ( $this->date_range ) { remove_filter( 'posts_where', array( $this, 'handle_date_range' ) ); $this->date_range = array(); } $return = array(); $excluded_count = 0; foreach ( array_keys( $this->response_format ) as $key ) { switch ( $key ) { case 'found' : $return[$key] = (int) $wp_query->found_posts; break; case 'posts' : $posts = array(); foreach ( $wp_query->posts as $post_ID ) { $the_post = $this->get_post_by( 'ID', $post_ID, $args['context'] ); if ( $the_post && ! is_wp_error( $the_post ) ) { $posts[] = $the_post; } else { $excluded_count++; } } if ( $posts ) { /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts', count( $posts ) ); } $return[$key] = $posts; break; } } $return['found'] -= $excluded_count; return $return; } function handle_date_range( $where ) { global $wpdb; switch ( count( $this->date_range ) ) { case 2 : $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date BETWEEN CAST( %s AS DATETIME ) AND CAST( %s AS DATETIME ) ", $this->date_range['after'], $this->date_range['before'] ); break; case 1 : if ( isset( $this->date_range['before'] ) ) { $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date <= CAST( %s AS DATETIME ) ", $this->date_range['before'] ); } else { $where .= $wpdb->prepare( " AND `$wpdb->posts`.post_date >= CAST( %s AS DATETIME ) ", $this->date_range['after'] ); } break; } return $where; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-taxonomy-endpoint.php0000644000312500031250000000212712651056012027402 0ustar eacbforgeacbforg '(int) The category ID.', 'name' => "(string) The name of the category.", 'slug' => "(string) The slug of the category.", 'description' => '(string) The description of the category.', 'post_count' => "(int) The number of posts using this category.", 'parent' => "(int) The parent ID for the category.", 'meta' => '(object) Meta data', ); public $tag_object_format = array( 'ID' => '(int) The tag ID.', 'name' => "(string) The name of the tag.", 'slug' => "(string) The slug of the tag.", 'description' => '(string) The description of the tag.', 'post_count' => "(int) The number of posts using this t.", 'meta' => '(object) Meta data', ); function __construct( $args ) { parent::__construct( $args ); if ( preg_match( '#/tags/#i', $this->path ) ) $this->response_format =& $this->tag_object_format; else $this->response_format =& $this->category_object_format; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-post-v1-2-endpoint.php0000644000312500031250000005603012654410420030456 0ustar eacbforgeacbforg $blog_id // /sites/%s/posts/%d -> $blog_id, $post_id function write_post( $path, $blog_id, $post_id ) { $new = $this->api->ends_with( $path, '/new' ); $args = $this->query_args(); // unhook publicize, it's hooked again later -- without this, skipping services is impossible if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { remove_action( 'save_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ), 100, 2 ); add_action( 'rest_api_inserted_post', array( $GLOBALS['publicize_ui']->publicize, 'async_publicize_post' ) ); } // 'future' is an alias for 'publish' for now if ( isset( $input['status'] ) && 'future' === $input['status'] ) { $input['status'] = 'publish'; } if ( $new ) { $input = $this->input( true ); if ( 'revision' === $input['type'] ) { if ( ! isset( $input['parent'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $input['status'] = 'inherit'; // force inherit for revision type $input['slug'] = $input['parent'] . '-autosave-v1'; } elseif ( !isset( $input['title'] ) && !isset( $input['content'] ) && !isset( $input['excerpt'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } // default to post if ( empty( $input['type'] ) ) $input['type'] = 'post'; $post_type = get_post_type_object( $input['type'] ); if ( ! $this->is_post_type_allowed( $input['type'] ) ) { return new WP_Error( 'unknown_post_type', 'Unknown post type', 404 ); } if ( ! empty( $input['author'] ) ) { $author_id = parent::parse_and_set_author( $input['author'], $input['type'] ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( 'publish' === $input['status'] ) { if ( ! current_user_can( $post_type->cap->publish_posts ) ) { if ( current_user_can( $post_type->cap->edit_posts ) ) { $input['status'] = 'pending'; } else { return new WP_Error( 'unauthorized', 'User cannot publish posts', 403 ); } } } else { if ( !current_user_can( $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'User cannot edit posts', 403 ); } } } else { $input = $this->input( false ); if ( !is_array( $input ) || !$input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $post = get_post( $post_id ); $_post_type = ( ! empty( $input['type'] ) ) ? $input['type'] : $post->post_type; $post_type = get_post_type_object( $_post_type ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( !current_user_can( 'edit_post', $post->ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } if ( ! empty( $input['author'] ) ) { $author_id = parent::parse_and_set_author( $input['author'], $_post_type ); unset( $input['author'] ); if ( is_wp_error( $author_id ) ) return $author_id; } if ( ( isset( $input['status'] ) && 'publish' === $input['status'] ) && 'publish' !== $post->post_status && !current_user_can( 'publish_post', $post->ID ) ) { $input['status'] = 'pending'; } $last_status = $post->post_status; $new_status = isset( $input['status'] ) ? $input['status'] : $last_status; // Make sure that drafts get the current date when transitioning to publish if not supplied in the post. $date_in_past = ( strtotime($post->post_date_gmt) < time() ); if ( 'publish' === $new_status && 'draft' === $last_status && ! isset( $input['date_gmt'] ) && $date_in_past ) { $input['date_gmt'] = gmdate( 'Y-m-d H:i:s' ); } } // If date is set, $this->input will set date_gmt, date still needs to be adjusted for the blog's offset if ( isset( $input['date_gmt'] ) ) { $gmt_offset = get_option( 'gmt_offset' ); $time_with_offset = strtotime( $input['date_gmt'] ) + $gmt_offset * HOUR_IN_SECONDS; $input['date'] = date( 'Y-m-d H:i:s', $time_with_offset ); } if ( ! empty( $author_id ) && get_current_user_id() != $author_id ) { if ( ! current_user_can( $post_type->cap->edit_others_posts ) ) { return new WP_Error( 'unauthorized', "User is not allowed to publish others' posts.", 403 ); } elseif ( ! user_can( $author_id, $post_type->cap->edit_posts ) ) { return new WP_Error( 'unauthorized', 'Assigned author cannot publish post.', 403 ); } } if ( !is_post_type_hierarchical( $post_type->name ) && 'revision' !== $post_type->name ) { unset( $input['parent'] ); } /* add taxonomies by name */ $tax_input = array(); foreach ( array( 'categories' => 'category', 'tags' => 'post_tag' ) as $key => $taxonomy ) { if ( ! isset( $input[ $key ] ) ) { continue; } $tax_input[ $taxonomy ] = array(); $is_hierarchical = is_taxonomy_hierarchical( $taxonomy ); if ( is_array( $input[$key] ) ) { $terms = $input[$key]; } else { $terms = explode( ',', $input[$key] ); } foreach ( $terms as $term ) { /** * We assume these are names, not IDs, even if they are numeric. * Note: A category named "0" will not work right. * https://core.trac.wordpress.org/ticket/9059 */ $term_info = get_term_by( 'name', $term, $taxonomy, ARRAY_A ); if ( ! $term_info ) { // only add a new tag/cat if the user has access to $tax = get_taxonomy( $taxonomy ); // see https://core.trac.wordpress.org/ticket/26409 if ( 'category' === $taxonomy && ! current_user_can( $tax->cap->edit_terms ) ) { continue; } else if ( ! current_user_can( $tax->cap->assign_terms ) ) { continue; } $term_info = wp_insert_term( $term, $taxonomy ); } if ( ! is_wp_error( $term_info ) ) { if ( $is_hierarchical ) { // Categories must be added by ID $tax_input[$taxonomy][] = (int) $term_info['term_id']; } else { // Tags must be added by name $tax_input[$taxonomy][] = $term; } } } } /* add taxonomies by ID */ foreach ( array( 'categories_by_id' => 'category', 'tags_by_id' => 'post_tag' ) as $key => $taxonomy ) { if ( ! isset( $input[ $key ] ) ) { continue; } // combine with any previous selections if ( ! isset( $tax_input[ $taxonomy ] ) || ! is_array( $tax_input[ $taxonomy ] ) ) { $tax_input[ $taxonomy ] = array(); } $is_hierarchical = is_taxonomy_hierarchical( $taxonomy ); if ( is_array( $input[$key] ) ) { $terms = $input[$key]; } else { $terms = explode( ',', $input[$key] ); } foreach ( $terms as $term ) { if ( ! ctype_digit( $term ) ) { // skip anything that doesn't look like an ID continue; } $term = (int) $term; $term_info = get_term_by( 'id', $term, $taxonomy, ARRAY_A ); if ( $term_info && ! is_wp_error( $term_info ) ) { if ( $is_hierarchical ) { // Categories must be added by ID $tax_input[$taxonomy][] = $term; } else { // Tags must be added by name $tax_input[$taxonomy][] = $term_info['name']; } } } } if ( ( isset( $input['categories'] ) || isset( $input['categories_by_id'] ) ) && empty( $tax_input['category'] ) && 'revision' !== $post_type->name ) { $tax_input['category'][] = get_option( 'default_category' ); } unset( $input['tags'], $input['categories'], $input['tags_by_id'], $input['categories_by_id'] ); $insert = array(); if ( !empty( $input['slug'] ) ) { $insert['post_name'] = $input['slug']; unset( $input['slug'] ); } if ( isset( $input['discussion'] ) ) { $discussion = (array) $input['discussion']; foreach ( array( 'comment', 'ping' ) as $discussion_type ) { $discussion_open = sprintf( '%ss_open', $discussion_type ); $discussion_status = sprintf( '%s_status', $discussion_type ); if ( isset( $discussion[ $discussion_open ] ) ) { $is_open = WPCOM_JSON_API::is_truthy( $discussion[ $discussion_open ] ); $discussion[ $discussion_status ] = $is_open ? 'open' : 'closed'; } if ( in_array( $discussion[ $discussion_status ], array( 'open', 'closed' ) ) ) { $insert[ $discussion_status ] = $discussion[ $discussion_status ]; } } } unset( $input['discussion'] ); if ( isset( $input['menu_order'] ) ) { $insert['menu_order'] = $input['menu_order']; unset( $input['menu_order'] ); } $publicize = isset( $input['publicize'] ) ? $input['publicize'] : null; unset( $input['publicize'] ); $publicize_custom_message = isset( $input['publicize_message'] ) ? $input['publicize_message'] : null; unset( $input['publicize_message'] ); if ( isset( $input['featured_image'] ) ) { $featured_image = trim( $input['featured_image'] ); $delete_featured_image = empty( $featured_image ); unset( $input['featured_image'] ); } $metadata = isset( $input['metadata'] ) ? $input['metadata'] : null; unset( $input['metadata'] ); $likes = isset( $input['likes_enabled'] ) ? $input['likes_enabled'] : null; unset( $input['likes_enabled'] ); $sharing = isset( $input['sharing_enabled'] ) ? $input['sharing_enabled'] : null; unset( $input['sharing_enabled'] ); $sticky = isset( $input['sticky'] ) ? $input['sticky'] : null; unset( $input['sticky'] ); foreach ( $input as $key => $value ) { $insert["post_$key"] = $value; } if ( ! empty( $author_id ) ) { $insert['post_author'] = absint( $author_id ); } if ( ! empty( $tax_input ) ) { $insert['tax_input'] = $tax_input; } $has_media = ! empty( $input['media'] ) ? count( $input['media'] ) : false; $has_media_by_url = ! empty( $input['media_urls'] ) ? count( $input['media_urls'] ) : false; if ( $new ) { if ( isset( $input['content'] ) && ! has_shortcode( $input['content'], 'gallery' ) && ( $has_media || $has_media_by_url ) ) { switch ( ( $has_media + $has_media_by_url ) ) { case 0 : // No images - do nothing. break; case 1 : // 1 image - make it big $insert['post_content'] = $input['content'] = "[gallery size=full columns=1]\n\n" . $input['content']; break; default : // Several images - 3 column gallery $insert['post_content'] = $input['content'] = "[gallery]\n\n" . $input['content']; break; } } $post_id = wp_insert_post( add_magic_quotes( $insert ), true ); } else { $insert['ID'] = $post->ID; // wp_update_post ignores date unless edit_date is set // See: http://codex.wordpress.org/Function_Reference/wp_update_post#Scheduling_posts // See: https://core.trac.wordpress.org/browser/tags/3.9.2/src/wp-includes/post.php#L3302 if ( isset( $input['date_gmt'] ) || isset( $input['date'] ) ) { $insert['edit_date'] = true; } $post_id = wp_update_post( (object) $insert ); } if ( !$post_id || is_wp_error( $post_id ) ) { return $post_id; } // make sure this post actually exists and is not an error of some kind (ie, trying to load media in the posts endpoint) $post_check = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( is_wp_error( $post_check ) ) { return $post_check; } if ( $has_media || $has_media_by_url ) { $media_files = ! empty( $input['media'] ) ? $input['media'] : array(); $media_urls = ! empty( $input['media_urls'] ) ? $input['media_urls'] : array(); $media_attrs = ! empty( $input['media_attrs'] ) ? $input['media_attrs'] : array(); $force_parent_id = $post_id; $media_results = $this->handle_media_creation_v1_1( $media_files, $media_urls, $media_attrs, $force_parent_id ); } // set page template for this post.. if ( isset( $input['page_template'] ) && 'page' == $post_type->name ) { $page_template = $input['page_template']; $page_templates = wp_get_theme()->get_page_templates( get_post( $post_id ) ); if ( empty( $page_template ) || 'default' == $page_template || isset( $page_templates[ $page_template ] ) ) { update_post_meta( $post_id, '_wp_page_template', $page_template ); } } // Set like status for the post /** This filter is documented in modules/likes.php */ $sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ); if ( $new ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } else { if ( isset( $likes ) ) { if ( $sitewide_likes_enabled ) { if ( false === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } else { if ( true === $likes ) { update_post_meta( $post_id, 'switch_like_status', 1 ); } else { delete_post_meta( $post_id, 'switch_like_status' ); } } } } // Set sharing status of the post if ( $new ) { $sharing_enabled = isset( $sharing ) ? (bool) $sharing : true; if ( false === $sharing_enabled ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } else { if ( isset( $sharing ) && true === $sharing ) { delete_post_meta( $post_id, 'sharing_disabled' ); } else if ( isset( $sharing ) && false == $sharing ) { update_post_meta( $post_id, 'sharing_disabled', 1 ); } } if ( isset( $sticky ) ) { if ( true === $sticky ) { stick_post( $post_id ); } else { unstick_post( $post_id ); } } // WPCOM Specific (Jetpack's will get bumped elsewhere // Tracks how many posts are published and sets meta // so we can track some other cool stats (like likes & comments on posts published) if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { if ( ( $new && 'publish' == $input['status'] ) || ( !$new && isset( $last_status ) && 'publish' != $last_status && isset( $new_status ) && 'publish' == $new_status ) ) { /** This action is documented in modules/widgets/social-media-icons.php */ do_action( 'jetpack_bump_stats_extras', 'api-insights-posts', $this->api->token_details['client_id'] ); update_post_meta( $post_id, '_rest_api_published', 1 ); update_post_meta( $post_id, '_rest_api_client_id', $this->api->token_details['client_id'] ); } } // We ask the user/dev to pass Publicize services he/she wants activated for the post, but Publicize expects us // to instead flag the ones we don't want to be skipped. proceed with said logic. // any posts coming from Path (client ID 25952) should also not publicize if ( $publicize === false || ( isset( $this->api->token_details['client_id'] ) && 25952 == $this->api->token_details['client_id'] ) ) { // No publicize at all, skip all by ID foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); if ( ! $service_connections ) { continue; } foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } } else if ( is_array( $publicize ) && ( count ( $publicize ) > 0 ) ) { foreach ( $GLOBALS['publicize_ui']->publicize->get_services( 'all' ) as $name => $service ) { /* * We support both indexed and associative arrays: * * indexed are to pass entire services * * associative are to pass specific connections per service * * We do support mixed arrays: mixed integer and string keys (see 3rd example below). * * EG: array( 'twitter', 'facebook') will only publicize to those, ignoring the other available services * Form data: publicize[]=twitter&publicize[]=facebook * EG: array( 'twitter' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3', 'facebook' => (int) $pub_conn_id_7 ) will publicize to two Twitter accounts, and one Facebook connection, of potentially many. * Form data: publicize[twitter]=$pub_conn_id_0,$pub_conn_id_3&publicize[facebook]=$pub_conn_id_7 * EG: array( 'twitter', 'facebook' => '(int) $pub_conn_id_0, (int) $pub_conn_id_3' ) will publicize to all available Twitter accounts, but only 2 of potentially many Facebook connections * Form data: publicize[]=twitter&publicize[facebook]=$pub_conn_id_0,$pub_conn_id_3 */ // Delete any stale SKIP value for the service by name. We'll add it back by ID. delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $name ); // Get the user's connections $service_connections = $GLOBALS['publicize_ui']->publicize->get_connections( $name ); // if the user doesn't have any connections for this service, move on if ( ! $service_connections ) { continue; } if ( !in_array( $name, $publicize ) && !array_key_exists( $name, $publicize ) ) { // Skip the whole service by adding each connection ID foreach ( $service_connections as $service_connection ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } } else if ( !empty( $publicize[ $name ] ) ) { // Seems we're being asked to only push to [a] specific connection[s]. // Explode the list on commas, which will also support a single passed ID $requested_connections = explode( ',', ( preg_replace( '/[\s]*/', '', $publicize[ $name ] ) ) ); // Flag the connections we can't match with the requested list to be skipped. foreach ( $service_connections as $service_connection ) { if ( !in_array( $service_connection->meta['connection_data']->id, $requested_connections ) ) { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id, 1 ); } else { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } else { // delete all SKIP values; it's okay to publish to all connected IDs for this service foreach ( $service_connections as $service_connection ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_SKIP . $service_connection->unique_id ); } } } } if ( ! is_null( $publicize_custom_message ) ) { if ( empty( $publicize_custom_message ) ) { delete_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS ); } else { update_post_meta( $post_id, $GLOBALS['publicize_ui']->publicize->POST_MESS, trim( $publicize_custom_message ) ); } } if ( ! empty( $insert['post_format'] ) ) { if ( 'default' !== strtolower( $insert['post_format'] ) ) { set_post_format( $post_id, $insert['post_format'] ); } else { set_post_format( $post_id, get_option( 'default_post_format' ) ); } } if ( isset( $featured_image ) ) { parent::parse_and_set_featured_image( $post_id, $delete_featured_image, $featured_image ); } if ( ! empty( $metadata ) ) { foreach ( (array) $metadata as $meta ) { $meta = (object) $meta; $existing_meta_item = new stdClass; if ( empty( $meta->operation ) ) $meta->operation = 'update'; if ( ! empty( $meta->value ) ) { if ( 'true' == $meta->value ) $meta->value = true; if ( 'false' == $meta->value ) $meta->value = false; } if ( ! empty( $meta->id ) ) { $meta->id = absint( $meta->id ); $existing_meta_item = get_metadata_by_mid( 'post', $meta->id ); } $unslashed_meta_key = wp_unslash( $meta->key ); // should match what the final key will be $meta->key = wp_slash( $meta->key ); $unslashed_existing_meta_key = wp_unslash( $existing_meta_item->meta_key ); $existing_meta_item->meta_key = wp_slash( $existing_meta_item->meta_key ); // make sure that the meta id passed matches the existing meta key if ( ! empty( $meta->id ) && ! empty( $meta->key ) ) { $meta_by_id = get_metadata_by_mid( 'post', $meta->id ); if ( $meta_by_id->meta_key !== $meta->key ) { continue; // skip this meta } } switch ( $meta->operation ) { case 'delete': if ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_existing_meta_key ) ) { delete_metadata_by_mid( 'post', $meta->id ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && current_user_can( 'delete_post_meta', $post_id, $unslashed_meta_key ) ) { delete_post_meta( $post_id, $meta->key ); } break; case 'add': if ( ! empty( $meta->id ) || ! empty( $meta->previous_value ) ) { continue; } elseif ( ! empty( $meta->key ) && ! empty( $meta->value ) && ( current_user_can( 'add_post_meta', $post_id, $unslashed_meta_key ) ) || $this->is_metadata_public( $meta->key ) ) { add_post_meta( $post_id, $meta->key, $meta->value ); } break; case 'update': if ( ! isset( $meta->value ) ) { continue; } elseif ( ! empty( $meta->id ) && ! empty( $existing_meta_item->meta_key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_existing_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_metadata_by_mid( 'post', $meta->id, $meta->value ); } elseif ( ! empty( $meta->key ) && ! empty( $meta->previous_value ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key,$meta->value, $meta->previous_value ); } elseif ( ! empty( $meta->key ) && ( current_user_can( 'edit_post_meta', $post_id, $unslashed_meta_key ) || $this->is_metadata_public( $meta->key ) ) ) { update_post_meta( $post_id, $meta->key, $meta->value ); } break; } } } /** This action is documented in json-endpoints/class.wpcom-json-api-update-post-endpoint.php */ do_action( 'rest_api_inserted_post', $post_id, $insert, $new ); $return = $this->get_post_by( 'ID', $post_id, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } if ( isset( $input['type'] ) && 'revision' === $input['type'] ) { $return['preview_nonce'] = wp_create_nonce( 'post_preview_' . $input['parent'] ); } if ( isset( $sticky ) ) { // workaround for sticky test occasionally failing, maybe a race condition with stick_post() above $return['sticky'] = ( true === $sticky ); } if ( ! empty( $media_results['errors'] ) ) $return['media_errors'] = $media_results['errors']; if ( 'publish' !== $post->post_status && isset( $input['title'] )) { $return['other_URLs'] = (object) $this->get_post_permalink_suggestions( $post_id, $input['title'] ); } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'posts' ); return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-get-media-endpoint.php0000644000312500031250000000112612651056012027356 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } //upload_files can probably be used for other endpoints but we want contributors to be able to use media too if ( !current_user_can( 'edit_posts', $media_id ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } return $this->get_media_item( $media_id ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-comments-endpoint.php0000644000312500031250000002046512654410420030327 0ustar eacbforgeacbforg 'comment_parent', 'id' => 'comment_ID' ); public function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) { $output[] = $object->comment_ID; } /** * Taken from WordPress's Walker_Comment::display_element() * * This function is designed to enhance Walker::display_element() to * display children of higher nesting levels than selected inline on * the highest depth level displayed. This prevents them being orphaned * at the end of the comment list. * * Example: max_depth = 2, with 5 levels of nested content. * 1 * 1.1 * 1.1.1 * 1.1.1.1 * 1.1.1.1.1 * 1.1.2 * 1.1.2.1 * 2 * 2.2 * * @see Walker_Comment::display_element() * @see Walker::display_element() * @see wp_list_comments() */ public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) { if ( !$element ) return; $id_field = $this->db_fields['id']; $id = $element->$id_field; parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output ); // If we're at the max depth, and the current element still has children, loop over those and display them at this level // This is to prevent them being orphaned to the end of the list. if ( $max_depth <= $depth + 1 && isset( $children_elements[$id]) ) { foreach ( $children_elements[ $id ] as $child ) $this->display_element( $child, $children_elements, $max_depth, $depth, $args, $output ); unset( $children_elements[ $id ] ); } } } // @todo permissions class WPCOM_JSON_API_List_Comments_Endpoint extends WPCOM_JSON_API_Comment_Endpoint { public $response_format = array( 'found' => '(int) The total number of comments found that match the request (ignoring limits, offsets, and pagination).', 'site_ID' => '(int) The site ID', 'comments' => '(array:comment) An array of comment objects.', ); function __construct( $args ) { parent::__construct( $args ); $this->query = array_merge( $this->query, array( 'number' => '(int=20) The number of comments to return. Limit: 100. When using hierarchical=1, number refers to the number of top-level comments returned.', 'offset' => '(int=0) 0-indexed offset. Not available if using hierarchical=1.', 'page' => '(int) Return the Nth 1-indexed page of comments. Takes precedence over the offset parameter. When using hierarchical=1, pagination is a bit different. See the note on the number parameter.', 'order' => array( 'DESC' => 'Return comments in descending order from newest to oldest.', 'ASC' => 'Return comments in ascending order from oldest to newest.', ), 'hierarchical' => array( 'false' => '', 'true' => '(BETA) Order the comment list hierarchically.', ), 'after' => '(ISO 8601 datetime) Return comments dated on or after the specified datetime. Not available if using hierarchical=1.', 'before' => '(ISO 8601 datetime) Return comments dated on or before the specified datetime. Not available if using hierarchical=1.', 'type' => array( 'any' => 'Return all comments regardless of type.', 'comment' => 'Return only regular comments.', 'trackback' => 'Return only trackbacks.', 'pingback' => 'Return only pingbacks.', 'pings' => 'Return both trackbacks and pingbacks.', ), 'status' => array( 'approved' => 'Return only approved comments.', 'unapproved' => 'Return only comments in the moderation queue.', 'spam' => 'Return only comments marked as spam.', 'trash' => 'Return only comments in the trash.', 'all' => 'Return comments of all statuses.', ), ) ); } // /sites/%s/comments/ -> $blog_id // /sites/%s/posts/%d/replies/ -> $blog_id, $post_id // /sites/%s/comments/%d/replies/ -> $blog_id, $comment_id function callback( $path = '', $blog_id = 0, $object_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } $args = $this->query_args(); if ( $args['number'] < 1 ) { $args['number'] = 20; } elseif ( 100 < $args['number'] ) { return new WP_Error( 'invalid_number', 'The NUMBER parameter must be less than or equal to 100.', 400 ); } if ( false !== strpos( $path, '/posts/' ) ) { // We're looking for comments of a particular post $post_id = $object_id; $comment_id = 0; } else { // We're looking for comments for the whole blog, or replies to a single comment $comment_id = $object_id; $post_id = 0; } // We can't efficiently get the number of replies to a single comment $count = false; $found = -1; if ( !$comment_id ) { // We can get comment counts for the whole site or for a single post, but only for certain queries if ( 'any' === $args['type'] && !isset( $args['after'] ) && !isset( $args['before'] ) ) { $count = wp_count_comments( $post_id ); } } switch ( $args['status'] ) { case 'approved' : $status = 'approve'; if ( $count ) { $found = $count->approved; } break; default : if ( !current_user_can( 'moderate_comments' ) ) { return new WP_Error( 'unauthorized', 'User cannot read non-approved comments', 403 ); } if ( 'unapproved' === $args['status'] ) { $status = 'hold'; $count_status = 'moderated'; } elseif ( 'all' === $args['status'] ) { $status = 'all'; $count_status = 'total_comments'; } else { $status = $count_status = $args['status']; } if ( $count ) { $found = $count->$count_status; } } $query = array( 'order' => $args['order'], 'type' => 'any' === $args['type'] ? false : $args['type'], 'status' => $status, ); if ( isset( $args['page'] ) ) { if ( $args['page'] < 1 ) { $args['page'] = 1; } } else { if ( $args['offset'] < 0 ) { $args['offset'] = 0; } } if ( ! $args['hierarchical'] ) { $query['number'] = $args['number']; if ( isset( $args['page'] ) ) { $query['offset'] = ( $args['page'] - 1 ) * $args['number']; } else { $query['offset'] = $args['offset']; } $is_before = isset( $args['before_gmt'] ); $is_after = isset( $args['after_gmt'] ); if ( $is_before || $is_after ) { $query['date_query'] = array( 'column' => 'comment_date_gmt', 'inclusive' => true, ); if ( $is_before ) { $query['date_query']['before'] = $args['before_gmt']; } if ( $is_after ) { $query['date_query']['after'] = $args['after_gmt']; } } } if ( $post_id ) { $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } $query['post_id'] = $post->ID; if ( $this->api->ends_with( $this->path, '/replies' ) ) { $query['parent'] = 0; } } elseif ( $comment_id ) { $comment = get_comment( $comment_id ); if ( !$comment || is_wp_error( $comment ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } $query['parent'] = $comment_id; } $comments = get_comments( $query ); update_comment_cache( $comments ); if ( $args['hierarchical'] ) { $walker = new WPCOM_JSON_API_List_Comments_Walker; $comment_ids = $walker->paged_walk( $comments, get_option( 'thread_comments_depth', -1 ), isset( $args['page'] ) ? $args['page'] : 1 , $args['number'] ); $comments = array_map( 'get_comment', $comment_ids ); } $return = array(); foreach ( array_keys( $this->response_format ) as $key ) { switch ( $key ) { case 'found' : $return[ $key ] = (int) $found; break; case 'site_ID' : $return[ $key ] = (int) $blog_id; break; case 'comments' : $return_comments = array(); foreach ( $comments as $comment ) { $the_comment = $this->get_comment( $comment->comment_ID, $args['context'] ); if ( $the_comment && !is_wp_error( $the_comment ) ) { $return_comments[] = $the_comment; } } if ( $return_comments ) { /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'comments', count( $return_comments ) ); } $return[ $key ] = $return_comments; break; } } return $return; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-post-v1-1-endpoint.php0000644000312500031250000006154712654410420027206 0ustar eacbforgeacbforg '(int) The post ID.', 'site_ID' => '(int) The site ID.', 'author' => '(object>author) The author of the post.', 'date' => "(ISO 8601 datetime) The post's creation time.", 'modified' => "(ISO 8601 datetime) The post's most recent update time.", 'title' => '(HTML) context dependent.', 'URL' => '(URL) The full permalink URL to the post.', 'short_URL' => '(URL) The wp.me short URL.', 'content' => '(HTML) context dependent.', 'excerpt' => '(HTML) context dependent.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'guid' => '(string) The GUID for the post.', 'status' => array( 'publish' => 'The post is published.', 'draft' => 'The post is saved as a draft.', 'pending' => 'The post is pending editorial approval.', 'private' => 'The post is published privately', 'future' => 'The post is scheduled for future publishing.', 'trash' => 'The post is in the trash.', 'auto-draft' => 'The post is a placeholder for a new post.', ), 'sticky' => '(bool) Is the post sticky?', 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(object>post_reference|false) A reference to the post's parent, if it has one.", 'type' => "(string) The post's post_type. Post types besides post, page and revision need to be whitelisted using the rest_api_allowed_post_types filter.", 'discussion' => '(object) Hash of discussion options for the post', 'likes_enabled' => "(bool) Is the post open to likes?", 'sharing_enabled' => "(bool) Should sharing buttons show on this post?", 'like_count' => '(int) The number of likes for this post.', 'i_like' => '(bool) Does the current user like this post?', 'is_reblogged' => '(bool) Did the current user reblog this post?', 'is_following' => '(bool) Is the current user following this blog?', 'global_ID' => '(string) A unique WordPress.com-wide representation of a post.', 'featured_image' => '(URL) The URL to the featured image for this post if it has one.', 'post_thumbnail' => '(object>attachment) The attachment object for the featured image if it has one.', 'format' => array(), // see constructor 'geo' => '(object>geo|false)', 'menu_order' => '(int) (Pages Only) The order pages should appear in.', 'page_template' => '(string) (Pages Only) The page template this page is using.', 'publicize_URLs' => '(array:URL) Array of Twitter and Facebook URLs published by this post.', 'tags' => '(object:tag) Hash of tags (keyed by tag name) applied to the post.', 'categories' => '(object:category) Hash of categories (keyed by category name) applied to the post.', 'attachments' => '(object:attachment) Hash of post attachments (keyed by attachment ID). Returns the most recent 20 attachments. Use the `/sites/$site/media` endpoint to query the attachments beyond the default of 20 that are returned here.', 'attachment_count' => '(int) The total number of attachments for this post. Use the `/sites/$site/media` endpoint to query the attachments beyond the default of 20 that are returned here.', 'metadata' => '(array) Array of post metadata keys and values. All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are available for authenticated requests with access. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.', 'meta' => '(object) API result meta data', 'capabilities' => '(object) List of post-specific permissions for the user; publish_post, edit_post, delete_post', 'other_URLs' => '(object) List of URLs for this post. Permalink and slug suggestions.', ); // public $response_format =& $this->post_object_format; function __construct( $args ) { if ( is_array( $this->post_object_format ) && isset( $this->post_object_format['format'] ) ) { $this->post_object_format['format'] = get_post_format_strings(); } if ( !$this->response_format ) { $this->response_format =& $this->post_object_format; } parent::__construct( $args ); } function is_metadata_public( $key ) { if ( empty( $key ) ) return false; // Default whitelisted meta keys. $whitelisted_meta = array( '_thumbnail_id' ); // whitelist of metadata that can be accessed /** This filter is documented in json-endpoints/class.wpcom-json-api-post-endpoint.php */ if ( in_array( $key, apply_filters( 'rest_api_allowed_public_metadata', $whitelisted_meta ) ) ) return true; if ( 0 === strpos( $key, 'geo_' ) ) return true; if ( 0 === strpos( $key, '_wpas_' ) ) return true; return false; } function the_password_form() { return __( 'This post is password protected.', 'jetpack' ); } /** * Get a post by a specified field and value * * @param string $field * @param string $field_value * @param string $context Post use context (e.g. 'display') * @return array Post **/ function get_post_by( $field, $field_value, $context = 'display' ) { global $blog_id; /** This filter is documented in class.json-api-endpoints.php */ $is_jetpack = true === apply_filters( 'is_jetpack_site', false, $blog_id ); if ( defined( 'GEO_LOCATION__CLASS' ) && class_exists( GEO_LOCATION__CLASS ) ) { $geo = call_user_func( array( GEO_LOCATION__CLASS, 'init' ) ); } else { $geo = false; } if ( 'display' === $context ) { $args = $this->query_args(); if ( isset( $args['content_width'] ) && $args['content_width'] ) { $GLOBALS['content_width'] = (int) $args['content_width']; } } if ( strpos( $_SERVER['HTTP_USER_AGENT'], 'wp-windows8' ) ) { remove_shortcode( 'gallery', 'gallery_shortcode' ); add_shortcode( 'gallery', array( &$this, 'win8_gallery_shortcode' ) ); } switch ( $field ) { case 'name' : $post_id = $this->get_post_id_by_name( $field_value ); if ( is_wp_error( $post_id ) ) { return $post_id; } break; default : $post_id = (int) $field_value; break; } $post = get_post( $post_id, OBJECT, $context ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( ! $this->is_post_type_allowed( $post->post_type ) && ( ! function_exists( 'is_post_freshly_pressed' ) || ! is_post_freshly_pressed( $post->ID ) ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } // Permissions $capabilities = $this->get_current_user_capabilities( $post ); switch ( $context ) { case 'edit' : if ( ! $capabilities['edit_post'] ) { return new WP_Error( 'unauthorized', 'User cannot edit post', 403 ); } break; case 'display' : break; default : return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); } $can_view = $this->user_can_view_post( $post->ID ); if ( !$can_view || is_wp_error( $can_view ) ) { return $can_view; } $GLOBALS['post'] = $post; if ( 'display' === $context ) { setup_postdata( $post ); } $response = array(); foreach ( array_keys( $this->post_object_format ) as $key ) { switch ( $key ) { case 'ID' : // explicitly cast all output $response[$key] = (int) $post->ID; break; case 'site_ID' : $response[$key] = (int) $this->api->get_blog_id_for_output(); break; case 'author' : $response[$key] = (object) $this->get_author( $post, 'edit' === $context && $capabilities['edit_post'] ); break; case 'date' : $response[$key] = (string) $this->format_date( $post->post_date_gmt, $post->post_date ); break; case 'modified' : $response[$key] = (string) $this->format_date( $post->post_modified_gmt, $post->post_modified ); break; case 'title' : if ( 'display' === $context ) { $response[$key] = (string) get_the_title( $post->ID ); } else { $response[$key] = (string) htmlspecialchars_decode( $post->post_title, ENT_QUOTES ); } break; case 'URL' : if ( 'revision' === $post->post_type ) { $response[$key] = (string) esc_url_raw( get_permalink( $post->post_parent ) ); } else { $response[$key] = (string) esc_url_raw( get_permalink( $post->ID ) ); } break; case 'short_URL' : $response[$key] = (string) esc_url_raw( wp_get_shortlink( $post->ID ) ); break; case 'content' : if ( 'display' === $context ) { add_filter( 'the_password_form', array( $this, 'the_password_form' ) ); $response[$key] = (string) $this->get_the_post_content_for_display(); remove_filter( 'the_password_form', array( $this, 'the_password_form' ) ); } else { $response[$key] = (string) $post->post_content; } break; case 'excerpt' : if ( 'display' === $context ) { add_filter( 'the_password_form', array( $this, 'the_password_form' ) ); ob_start(); the_excerpt(); $response[$key] = (string) ob_get_clean(); remove_filter( 'the_password_form', array( $this, 'the_password_form' ) ); } else { $response[$key] = htmlspecialchars_decode( (string) $post->post_excerpt, ENT_QUOTES ); } break; case 'status' : $response[$key] = (string) get_post_status( $post->ID ); break; case 'sticky' : $response[$key] = (bool) is_sticky( $post->ID ); break; case 'slug' : $response[$key] = (string) $post->post_name; break; case 'guid' : $response[$key] = (string) $post->guid; break; case 'password' : $response[$key] = (string) $post->post_password; if ( 'edit' === $context ) { $response[$key] = htmlspecialchars_decode( (string) $response[$key], ENT_QUOTES ); } break; case 'parent' : // (object|false) if ( $post->post_parent ) { $parent = get_post( $post->post_parent ); if ( 'display' === $context ) { $parent_title = (string) get_the_title( $parent->ID ); } else { $parent_title = (string) htmlspecialchars_decode( $post->post_title, ENT_QUOTES ); } $response[$key] = (object) array( 'ID' => (int) $parent->ID, 'type' => (string) $parent->post_type, 'link' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $parent->ID ), 'title' => $parent_title, ); } else { $response[$key] = false; } break; case 'type' : $response[$key] = (string) $post->post_type; break; case 'discussion' : $response[$key] = array( 'comments_open' => (bool) comments_open( $post->ID ), 'comment_status' => (string) $post->comment_status, 'pings_open' => (bool) pings_open( $post->ID ), 'ping_status' => (string) $post->ping_status, 'comment_count' => (int) $post->comment_count, ); break; case 'likes_enabled' : /** This filter is documented in modules/likes.php */ $sitewide_likes_enabled = (bool) apply_filters( 'wpl_is_enabled_sitewide', ! get_option( 'disabled_likes' ) ); $post_likes_switched = (bool) get_post_meta( $post->ID, 'switch_like_status', true ); $post_likes_enabled = $sitewide_likes_enabled; if ( $post_likes_switched ) { $post_likes_enabled = ! $post_likes_enabled; } $response[$key] = (bool) $post_likes_enabled; break; case 'sharing_enabled' : $show = true; /** This filter is documented in modules/sharedaddy/sharing-service.php */ $show = apply_filters( 'sharing_show', $show, $post ); $switched_status = get_post_meta( $post->ID, 'sharing_disabled', false ); if ( !empty( $switched_status ) ) $show = false; $response[$key] = (bool) $show; break; case 'like_count' : $response[$key] = (int) $this->api->post_like_count( $blog_id, $post->ID ); break; case 'i_like' : $response[$key] = (int) $this->api->is_liked( $blog_id, $post->ID ); break; case 'is_reblogged': $response[$key] = (int) $this->api->is_reblogged( $blog_id, $post->ID ); break; case 'is_following': $response[$key] = (int) $this->api->is_following( $blog_id ); break; case 'global_ID': $response[$key] = (string) $this->api->add_global_ID( $blog_id, $post->ID ); break; case 'featured_image' : if ( $is_jetpack && ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) { $response[ $key ] = get_post_meta( $post->ID, '_jetpack_featured_image', true ); } else { $image_attributes = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); if ( is_array( $image_attributes ) && isset( $image_attributes[0] ) ) { $response[ $key ] = (string) $image_attributes[0]; } else { $response[ $key ] = ''; } } break; case 'post_thumbnail' : $response[$key] = null; $thumb_id = get_post_thumbnail_id( $post->ID ); if ( ! empty( $thumb_id ) ) { $attachment = get_post( $thumb_id ); if ( ! empty( $attachment ) ) $featured_image_object = $this->get_attachment( $attachment ); if ( ! empty( $featured_image_object ) ) { $response[$key] = (object) $featured_image_object; } } break; case 'format' : $response[$key] = (string) get_post_format( $post->ID ); if ( !$response[$key] ) { $response[$key] = 'standard'; } break; case 'geo' : // (object|false) if ( !$geo ) { $response[$key] = false; } else { $geo_data = $geo->get_geo( 'post', $post->ID ); $response[$key] = false; if ( $geo_data ) { $geo_data = array_intersect_key( $geo_data, array( 'latitude' => true, 'longitude' => true, 'address' => true, 'public' => true ) ); if ( $geo_data ) { $response[$key] = (object) array( 'latitude' => isset( $geo_data['latitude'] ) ? (float) $geo_data['latitude'] : 0, 'longitude' => isset( $geo_data['longitude'] ) ? (float) $geo_data['longitude'] : 0, 'address' => isset( $geo_data['address'] ) ? (string) $geo_data['address'] : '', ); } else { $response[$key] = false; } // Private if ( !isset( $geo_data['public'] ) || !$geo_data['public'] ) { if ( 'edit' !== $context || ! $capabilities['edit_post'] ) { // user can't access $response[$key] = false; } } } } break; case 'menu_order': $response[$key] = (int) $post->menu_order; break; case 'page_template': $response[$key] = (string) get_post_meta( $post->ID, '_wp_page_template', true ); break; case 'publicize_URLs' : $publicize_URLs = array(); $publicize = get_post_meta( $post->ID, 'publicize_results', true ); if ( $publicize ) { foreach ( $publicize as $service => $data ) { switch ( $service ) { case 'twitter' : foreach ( $data as $datum ) { $publicize_URLs[] = esc_url_raw( "https://twitter.com/{$datum['user_id']}/status/{$datum['post_id']}" ); } break; case 'fb' : foreach ( $data as $datum ) { $publicize_URLs[] = esc_url_raw( "https://www.facebook.com/permalink.php?story_fbid={$datum['post_id']}&id={$datum['user_id']}" ); } break; } } } $response[$key] = (array) $publicize_URLs; break; case 'tags' : $response[$key] = array(); $terms = wp_get_post_tags( $post->ID ); foreach ( $terms as $term ) { if ( !empty( $term->name ) ) { $response[$key][$term->name] = $this->format_taxonomy( $term, 'post_tag', 'display' ); } } $response[$key] = (object) $response[$key]; break; case 'categories': $response[$key] = array(); $terms = wp_get_object_terms( $post->ID, 'category', array( 'fields' => 'all' ) ); foreach ( $terms as $term ) { if ( !empty( $term->name ) ) { $response[$key][$term->name] = $this->format_taxonomy( $term, 'category', 'display' ); } } $response[$key] = (object) $response[$key]; break; case 'attachments': $response[$key] = array(); $_attachments = new WP_Query( array( 'post_parent' => $post->ID, 'post_status' => 'inherit', 'post_type' => 'attachment', 'posts_per_page' => '20' ) ); foreach ( $_attachments->posts as $attachment ) { $response[$key][$attachment->ID] = $this->get_media_item_v1_1( $attachment->ID ); } $response['attachment_count'] = $_attachments->found_posts; $response[$key] = (object) $response[$key]; break; case 'metadata' : // (array|false) $metadata = array(); foreach ( (array) has_meta( $post_id ) as $meta ) { // Don't expose protected fields. $show = false; if ( $this->is_metadata_public( $meta['meta_key'] ) ) $show = true; if ( current_user_can( 'edit_post_meta', $post_id , $meta['meta_key'] ) ) $show = true; if ( !$show ) continue; $metadata[] = array( 'id' => $meta['meta_id'], 'key' => $meta['meta_key'], 'value' => maybe_unserialize( $meta['meta_value'] ), ); } if ( ! empty( $metadata ) ) { $response[$key] = $metadata; } else { $response[$key] = false; } break; case 'meta' : $response[$key] = (object) array( 'links' => (object) array( 'self' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID ), 'help' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'help' ), 'site' => (string) $this->get_site_link( $this->api->get_blog_id_for_output() ), // 'author' => (string) $this->get_user_link( $post->post_author ), // 'via' => (string) $this->get_post_link( $reblog_origin_blog_id, $reblog_origin_post_id ), 'replies' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'replies/' ), 'likes' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID, 'likes/' ), ), ); // add autosave link if a more recent autosave exists if ( 'edit' === $context ) { $autosave = wp_get_post_autosave( $post_id ); if ( $autosave && $autosave->post_modified > $post->post_modified ) $response[$key]->links->autosave = (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID ) . '/autosave'; } break; case 'capabilities' : $response[$key] = $capabilities; break; case 'other_URLs' : $other_urls = array(); if ( 'publish' !== $post->post_status ) { $other_urls = $this->get_post_permalink_suggestions( $post->ID, $post->post_title ); } $response[$key] = (object) $other_urls; break; } } // WPCOM_JSON_API_Post_Endpoint::find_featured_worthy_media( $post ); // $response['featured_media'] = self::find_featured_media( $response ); unset( $GLOBALS['post'] ); return $response; } // No Blog ID parameter. No Post ID parameter. Depends on globals. // Expects setup_postdata() to already have been run function get_the_post_content_for_display() { global $pages, $page; $old_pages = $pages; $old_page = $page; $content = join( "\n\n", $pages ); $content = preg_replace( '//', '', $content ); $pages = array( $content ); $page = 1; ob_start(); the_content(); $return = ob_get_clean(); $pages = $old_pages; $page = $old_page; return $return; } function get_blog_post( $blog_id, $post_id, $context = 'display' ) { $blog_id = $this->api->get_blog_id( $blog_id ); if ( !$blog_id || is_wp_error( $blog_id ) ) { return $blog_id; } switch_to_blog( $blog_id ); $post = $this->get_post_by( 'ID', $post_id, $context ); restore_current_blog(); return $post; } /** * Supporting featured media in post endpoints. Currently on for wpcom blogs * since it's calling WPCOM_JSON_API_Read_Endpoint methods which presently * rely on wpcom specific functionality. * * @param WP_Post $post * @return object list of featured media */ public static function find_featured_media( &$post ) { if ( class_exists( 'WPCOM_JSON_API_Read_Endpoint' ) ) { return WPCOM_JSON_API_Read_Endpoint::find_featured_worthy_media( (array) $post ); } else { return (object) array(); } } function win8_gallery_shortcode( $attr ) { global $post; static $instance = 0; $instance++; $output = ''; // We're trusting author input, so let's at least make sure it looks like a valid orderby statement if ( isset( $attr['orderby'] ) ) { $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); if ( !$attr['orderby'] ) unset( $attr['orderby'] ); } extract( shortcode_atts( array( 'order' => 'ASC', 'orderby' => 'menu_order ID', 'id' => $post->ID, 'include' => '', 'exclude' => '', 'slideshow' => false ), $attr, 'gallery' ) ); // Custom image size and always use it add_image_size( 'win8app-column', 480 ); $size = 'win8app-column'; $id = intval( $id ); if ( 'RAND' === $order ) $orderby = 'none'; if ( !empty( $include ) ) { $include = preg_replace( '/[^0-9,]+/', '', $include ); $_attachments = get_posts( array( 'include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); $attachments = array(); foreach ( $_attachments as $key => $val ) { $attachments[$val->ID] = $_attachments[$key]; } } elseif ( !empty( $exclude ) ) { $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); $attachments = get_children( array( 'post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); } else { $attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby ) ); } if ( ! empty( $attachments ) ) { foreach ( $attachments as $id => $attachment ) { $link = isset( $attr['link'] ) && 'file' === $attr['link'] ? wp_get_attachment_link( $id, $size, false, false ) : wp_get_attachment_link( $id, $size, true, false ); if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= "
        $link

        " . wptexturize($attachment->post_excerpt) . "

        "; } else { $output .= $link . ' '; } } } } /** * Returns attachment object. * * @param $attachment attachment row * * @return (object) */ function get_attachment( $attachment ) { $metadata = wp_get_attachment_metadata( $attachment->ID ); $result = array( 'ID' => (int) $attachment->ID, 'URL' => (string) wp_get_attachment_url( $attachment->ID ), 'guid' => (string) $attachment->guid, 'mime_type' => (string) $attachment->post_mime_type, 'width' => (int) isset( $metadata['width'] ) ? $metadata['width'] : 0, 'height' => (int) isset( $metadata['height'] ) ? $metadata['height'] : 0, ); if ( isset( $metadata['duration'] ) ) { $result['duration'] = (int) $metadata['duration']; } /** This filter is documented in class.jetpack-sync.php */ return (object) apply_filters( 'get_attachment', $result ); } /** * Get post-specific user capabilities * @param WP_Post $post post object * @return array array of post-level permissions; 'publish_post', 'delete_post', 'edit_post' */ function get_current_user_capabilities( $post ) { return array( 'publish_post' => current_user_can( 'publish_post', $post ), 'delete_post' => current_user_can( 'delete_post', $post ), 'edit_post' => current_user_can( 'edit_post', $post ) ); } /** * Get extra post permalink suggestions * @param int $postID * @param string $title * @return array array of permalink suggestions: 'permalink_URL', 'suggested_slug' */ function get_post_permalink_suggestions( $postID, $title ) { $suggestions = array(); list( $suggestions['permalink_URL'], $suggestions['suggested_slug'] ) = get_sample_permalink( $postID, $title ); return $suggestions; } /** * Get post ID by name * * Attempts to match name on post title and page path * * @param string $name * * @return int|object Post ID on success, WP_Error object on failure **/ protected function get_post_id_by_name( $name ) { $name = sanitize_title( $name ); if ( ! $name ) { return new WP_Error( 'invalid_post', 'Invalid post', 400 ); } $posts = get_posts( array( 'name' => $name ) ); if ( ! $posts || ! isset( $posts[0]->ID ) || ! $posts[0]->ID ) { $page = get_page_by_path( $name ); if ( ! $page ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } $post_id = $page->ID; } else { $post_id = (int) $posts[0]->ID; } return $post_id; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-list-shortcodes-endpoint.php0000644000312500031250000000136612651056012030656 0ustar eacbforgeacbforg $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } // permissions check if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to post on this blog.', 403 ); } // list em global $shortcode_tags; $output = array( 'shortcodes' => array() ); foreach ( $shortcode_tags as $tag => $class ) { if ( '__return_false' == $class ) continue; $output['shortcodes'][] = $tag; } return $output; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-site-user-endpoint.php0000644000312500031250000000647012654410420027451 0ustar eacbforgeacbforg '(int) The ID of the user', 'login' => '(string) The login username of the user', 'email' => '(string) The email of the user', 'name' => '(string) The name to display for the user', 'first_name' => '(string) The first name of the user', 'last_name' => '(string) The last name of the user', 'nice_name' => '(string) The nice_name to display for the user', 'URL' => '(string) The primary blog of the user', 'avatar_URL' => '(url) Gravatar image URL', 'profile_URL' => '(url) Gravatar Profile URL', 'site_ID' => '(int) ID of the user\'s primary blog', 'roles' => '(array) The roles of the user', ); // /sites/%s/users/%d -> $blog_id, $user_id function callback( $path = '', $blog_id = 0, $user_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can_for_blog( $blog_id, 'list_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot view users for specified site', 403 ); } // Get the user by ID or login $get_by = false !== strpos( $path, '/users/login:' ) ? 'login' : 'id'; $user = get_user_by( $get_by, $user_id ); if ( ! $user ) { return new WP_Error( 'unknown_user', 'Unknown user', 404 ); } if ( ! is_user_member_of_blog( $user->ID, $blog_id ) ) { return new WP_Error( 'unknown_user_for_site', 'Unknown user for site', 404 ); } if ( 'GET' === $this->api->method ) { return $this->get_user( $user->ID ); } else if ( 'POST' === $this->api->method ) { if ( ! current_user_can_for_blog( $blog_id, 'promote_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot promote users for specified site', 403 ); } if ( get_current_user_id() == $user_id ) { return new WP_Error( 'unauthorized', 'You cannot change your own role', 403 ); } return $this->update_user( $user_id ); } else { return new WP_Error( 'bad_request', 'An unsupported request method was used.' ); } } public function get_user( $user_id ) { $the_user = $this->get_author( $user_id, true ); if ( $the_user && ! is_wp_error( $the_user ) ) { $userdata = get_userdata( $user_id ); $the_user->roles = ! is_wp_error( $userdata ) ? $userdata->roles : array(); } return $the_user; } /** * Updates user data * * @return (array) */ public function update_user( $user_id ) { $input = $this->input(); $user['ID'] = $user_id; if ( ! ( defined( 'IS_WPCOM' ) && IS_WPCOM ) ) { foreach ( $input as $key => $value ) { if ( ! is_array( $value ) ) { $value = trim( $value ); } $value = wp_unslash( $value ); switch ( $key ) { case 'first_name': case 'last_name': $user[ $key ] = $value; break; case 'display_name': case 'name': $user[ 'display_name' ] = $value; break; } } } if ( isset( $input[ 'roles' ] ) ) { if ( is_array( $input['roles'] ) ) { $user['role'] = $input['roles'][0]; } else { $user['role'] = $input['roles']; } } $result = wp_update_user( $user ); if ( is_wp_error( $result ) ) { return $result; } return $this->get_user( $user_id ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-reversal-endpoint.php0000644000312500031250000000555412651056012031705 0ustar eacbforgeacbforg $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to post on this blog.', 403 ); } $is_shortcode = $is_embed = false; $input = $this->input( true ); $maybe_embed = trim( $input['maybe_embed'] ); if ( empty( $maybe_embed ) ) { return new WP_Error( 'empty_embed', 'Please provide an embed code to process.', 400 ); } $ksesed_content = trim( wp_strip_all_tags( wp_kses_post( $maybe_embed ), true ) ); if ( empty( $ksesed_content ) ) { return new WP_Error( 'invalid_embed', 'Invalid or empty embed provided.', 400 ); } $shortcode_pattern = get_shortcode_regex(); $url_pattern = '/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(\/.*)?$/i'; preg_match_all( "/$shortcode_pattern/s", $ksesed_content, $shortcode_matches ); preg_match_all( "$url_pattern", $ksesed_content, $url_matches ); if ( empty( $shortcode_matches[0] ) && empty( $url_matches[0] ) ) return new WP_Error( 'invalid_embed', 'The provided embed is not supported.', 400 ); if ( ( count( $shortcode_matches[0] ) + count( $url_matches[0] ) ) > 1 ) { return new WP_Error( 'invalid_embed', 'Only one embed/shortcode reversal can be rendered at a time.', 400 ); } if ( ! empty( $shortcode_matches[0] ) ) { $is_shortcode = true; } elseif ( ! empty( $url_matches[0] ) ) { $is_embed = true; } $render = $this->process_render( array( $this, 'render_shortcode_reversal' ), array( 'shortcode_reversal' => $ksesed_content, 'is_shortcode' => $is_shortcode, 'is_embed' => $is_embed ) ); // if nothing happened, then the shortcode does not exist. global $wp_embed; if ( empty( $render ) || empty( $render['result'] ) || $ksesed_content == $render['result'] || $wp_embed->maybe_make_link( $maybe_embed ) == $render['result'] ) { return new WP_Error( 'invalid_embed', 'The provided embed is not supported.', 400 ); } // our output for this endpoint.. $return['maybe_embed'] = $maybe_embed; $return['result'] = $ksesed_content; $return['reversal_type'] = ( $is_embed ) ? 'embed' : 'shortcode'; $return['render_result'] = $render['result']; $return = $this->add_assets( $return, $render['loaded_scripts'], $render['loaded_styles'] ); return $return; } function render_shortcode_reversal( $args ) { if ( $args['is_shortcode'] ) { return call_user_func( array( $this, 'do_shortcode' ), $args['shortcode_reversal'] ); } else if ( $args['is_embed'] ) { return call_user_func( array( $this, 'do_embed' ), $args['shortcode_reversal'] ); } return false; } }plugins/jetpack/json-endpoints/class.wpcom-json-api-update-user-endpoint.php0000644000312500031250000000567212654410420027772 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { if ( wpcom_get_blog_owner( $blog_id ) == $user_id ) { return new WP_Error( 'forbidden', 'A site owner can not be removed through this endpoint.', 403 ); } } if ( $this->api->ends_with( $path, '/delete' ) ) { return $this->delete_or_remove_user( $user_id ); } return false; } /** * Checks if a user exists by checking to see if a WP_User object exists for a user ID. * @param int $user_id * @return bool */ function user_exists( $user_id ) { $user = get_user_by( 'id', $user_id ); return false != $user && is_a( $user, 'WP_User' ); } /** * Validates user input and then decides whether to remove or delete a user. * @param int $user_id * @return array|WP_Error */ function delete_or_remove_user( $user_id ) { if ( 0 == $user_id ) { return new WP_Error( 'invalid_input', 'A valid user ID must be specified.', 400 ); } if ( get_current_user_id() == $user_id ) { return new WP_Error( 'invalid_input', 'User can not remove or delete self through this endpoint.', 400 ); } if ( ! $this->user_exists( $user_id ) ) { return new WP_Error( 'invalid_input', 'A user does not exist with that ID.', 400 ); } return is_multisite() ? $this->remove_user( $user_id ) : $this->delete_user( $user_id ); } /** * Removes a user from the current site. * @param int $user_id * @return array|WP_Error */ function remove_user( $user_id ) { if ( ! current_user_can( 'remove_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot remove users for specified site.', 403 ); } if ( ! is_user_member_of_blog( $user_id, get_current_blog_id() ) ) { return new WP_Error( 'invalid_input', 'User is not a member of the specified site.', 400 ); } return array( 'success' => remove_user_from_blog( $user_id, get_current_blog_id() ) ); } /** * Deletes a user and optionally reassigns posts to another user. * @param int $user_id * @return array|WP_Error */ function delete_user( $user_id ) { if ( ! current_user_can( 'delete_users' ) ) { return new WP_Error( 'unauthorized', 'User cannot delete users for specified site.', 403 ); } $input = (array) $this->input(); if ( isset( $input['reassign'] ) ) { if ( $user_id == $input['reassign'] ) { return new WP_Error( 'invalid_input', 'Can not reassign posts to user being deleted.', 400 ); } if ( ! $this->user_exists( $input['reassign'] ) ) { return new WP_Error( 'invalid_input', 'User specified in reassign argument is not a member of the specified site.', 400 ); } } return array( 'success' => wp_delete_user( $user_id, intval( $input['reassign'] ) ), ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-render-embed-endpoint.php0000644000312500031250000000414412651056012030056 0ustar eacbforgeacbforg $blog_id function callback( $path = '', $blog_id = 0 ) { $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! current_user_can( 'edit_posts' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to post on this blog.', 403 ); } $args = $this->query_args(); $embed_url = trim( $args['embed_url'] ); // quick validation if ( ! preg_match_all( '|^\s*(https?://[^\s"]+)\s*$|im', $embed_url, $matches ) ) { return new WP_Error( 'invalid_embed_url', 'The embed_url parameter must be a valid URL.', 400 ); } if ( count( $matches[1] ) > 1 ) { return new WP_Error( 'invalid_embed', 'Only one embed can be rendered at a time.', 400 ); } $embed_url = array_shift( $matches[1] ); $parts = parse_url( $embed_url ); if ( ! $parts ) { return new WP_Error( 'invalid_embed_url', 'The embed_url parameter must be a valid URL.', 400 ); } // in order for oEmbed to fire in the `$wp_embed->shortcode` method, we need to set a post as the current post $_posts = get_posts( array( 'posts_per_page' => 1, 'suppress_filters' => false ) ); if ( ! empty( $_posts ) ) { global $post; $post = array_shift( $_posts ); } global $wp_embed; $render = $this->process_render( array( $this, 'do_embed' ), $embed_url ); // if nothing happened, then the shortcode does not exist. $is_an_embed = ( $embed_url != $render['result'] && $wp_embed->maybe_make_link( $embed_url ) != $render['result'] ); if ( ! $is_an_embed ) { return new WP_Error( 'invalid_embed', 'The requested URL is not an embed.', 400 ); } // our output for this endpoint.. $return['embed_url'] = $embed_url; $return['result'] = $render['result']; $return = $this->add_assets( $return, $render['loaded_scripts'], $render['loaded_styles'] ); return $return; } function do_embed( $embed_url ) { global $wp_embed; return $wp_embed->shortcode( array(), $embed_url ); } }plugins/jetpack/json-endpoints/class.wpcom-json-api-comment-endpoint.php0000644000312500031250000001630312654410420027167 0ustar eacbforgeacbforg '(int) The comment ID.', 'post' => "(object>post_reference) A reference to the comment's post.", 'author' => '(object>author) The author of the comment.', 'date' => "(ISO 8601 datetime) The comment's creation time.", 'URL' => '(URL) The full permalink URL to the comment.', 'short_URL' => '(URL) The wp.me short URL.', 'content' => '(HTML) context dependent.', 'status' => array( 'approved' => 'The comment has been approved.', 'unapproved' => 'The comment has been held for review in the moderation queue.', 'spam' => 'The comment has been marked as spam.', 'trash' => 'The comment is in the trash.', ), 'parent' => "(object>comment_reference|false) A reference to the comment's parent, if it has one.", 'type' => array( 'comment' => 'The comment is a regular comment.', 'trackback' => 'The comment is a trackback.', 'pingback' => 'The comment is a pingback.', ), 'like_count' => '(int) The number of likes for this comment.', 'i_like' => '(bool) Does the current user like this comment?', 'meta' => '(object) Meta data', ); // public $response_format =& $this->comment_object_format; function __construct( $args ) { if ( !$this->response_format ) { $this->response_format =& $this->comment_object_format; } parent::__construct( $args ); } function get_comment( $comment_id, $context ) { global $blog_id; $comment = get_comment( $comment_id ); if ( !$comment || is_wp_error( $comment ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } $types = array( '', 'comment', 'pingback', 'trackback' ); if ( !in_array( $comment->comment_type, $types ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } $post = get_post( $comment->comment_post_ID ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } $status = wp_get_comment_status( $comment->comment_ID ); // Permissions switch ( $context ) { case 'edit' : if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit comment', 403 ); } $GLOBALS['post'] = $post; $comment = get_comment_to_edit( $comment->comment_ID ); foreach ( array( 'comment_author', 'comment_author_email', 'comment_author_url' ) as $field ) { $comment->$field = htmlspecialchars_decode( $comment->$field, ENT_QUOTES ); } break; case 'display' : if ( 'approved' !== $status ) { $current_user_id = get_current_user_id(); $user_can_read_coment = false; if ( $current_user_id && $comment->user_id && $current_user_id == $comment->user_id ) { $user_can_read_coment = true; } elseif ( $comment->comment_author_email && $comment->comment_author && isset( $this->api->token_details['user'] ) && $this->api->token_details['user']['user_email'] === $comment->comment_author_email && $this->api->token_details['user']['display_name'] === $comment->comment_author ) { $user_can_read_coment = true; } else { $user_can_read_coment = current_user_can( 'edit_comment', $comment->comment_ID ); } if ( !$user_can_read_coment ) { return new WP_Error( 'unauthorized', 'User cannot read unapproved comment', 403 ); } } $GLOBALS['post'] = $post; setup_postdata( $post ); break; default : return new WP_Error( 'invalid_context', 'Invalid API CONTEXT', 400 ); } $can_view = $this->user_can_view_post( $post->ID ); if ( !$can_view || is_wp_error( $can_view ) ) { return $can_view; } $GLOBALS['comment'] = $comment; $response = array(); foreach ( array_keys( $this->comment_object_format ) as $key ) { switch ( $key ) { case 'ID' : // explicitly cast all output $response[$key] = (int) $comment->comment_ID; break; case 'post' : $response[$key] = (object) array( 'ID' => (int) $post->ID, 'title' => (string) get_the_title( $post->ID ), 'type' => (string) $post->post_type, 'link' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $post->ID ), ); break; case 'author' : $response[$key] = (object) $this->get_author( $comment, 'edit' === $context && current_user_can( 'edit_comment', $comment->comment_ID ) ); break; case 'date' : $response[$key] = (string) $this->format_date( $comment->comment_date_gmt, $comment->comment_date ); break; case 'URL' : $response[$key] = (string) esc_url_raw( get_comment_link( $comment->comment_ID ) ); break; case 'short_URL' : // @todo - pagination $response[$key] = (string) esc_url_raw( wp_get_shortlink( $post->ID ) . "%23comment-{$comment->comment_ID}" ); break; case 'content' : if ( 'display' === $context ) { ob_start(); comment_text(); $response[$key] = (string) ob_get_clean(); } else { $response[$key] = (string) $comment->comment_content; } break; case 'status' : $response[$key] = (string) $status; break; case 'parent' : // (object|false) if ( $comment->comment_parent ) { $parent = get_comment( $comment->comment_parent ); $response[$key] = (object) array( 'ID' => (int) $parent->comment_ID, 'type' => (string) ( $parent->comment_type ? $parent->comment_type : 'comment' ), 'link' => (string) $this->get_comment_link( $blog_id, $parent->comment_ID ), ); } else { $response[$key] = false; } break; case 'type' : $response[$key] = (string) ( $comment->comment_type ? $comment->comment_type : 'comment' ); break; case 'like_count' : if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $response[ $key ] = (int) $this->api->comment_like_count( $blog_id, $post->ID, $comment->comment_ID ); } break; case 'i_like' : if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $response[ $key ] = (bool) Likes::comment_like_current_user_likes( $blog_id, $comment->comment_ID ); } break; case 'meta' : $response[$key] = (object) array( 'links' => (object) array( 'self' => (string) $this->get_comment_link( $this->api->get_blog_id_for_output(), $comment->comment_ID ), 'help' => (string) $this->get_comment_link( $this->api->get_blog_id_for_output(), $comment->comment_ID, 'help' ), 'site' => (string) $this->get_site_link( $this->api->get_blog_id_for_output() ), 'post' => (string) $this->get_post_link( $this->api->get_blog_id_for_output(), $comment->comment_post_ID ), 'replies' => (string) $this->get_comment_link( $this->api->get_blog_id_for_output(), $comment->comment_ID, 'replies/' ), // 'author' => (string) $this->get_user_link( $comment->user_id ), // 'via' => (string) $this->get_post_link( $ping_origin_blog_id, $ping_origin_post_id ), // Ping/trackbacks 'likes' => (string) $this->get_comment_link( $this->api->get_blog_id_for_output(), $comment->comment_ID, 'likes/' ), ), ); break; } } unset( $GLOBALS['comment'], $GLOBALS['post'] ); return $response; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-comment-endpoint.php0000644000312500031250000002152512654410420030451 0ustar eacbforgeacbforgapi->ends_with( $this->path, '/delete' ) ) { $this->comment_object_format['status']['deleted'] = 'The comment has been deleted permanently.'; } } // /sites/%s/posts/%d/replies/new -> $blog_id, $post_id // /sites/%s/comments/%d/replies/new -> $blog_id, $comment_id // /sites/%s/comments/%d -> $blog_id, $comment_id // /sites/%s/comments/%d/delete -> $blog_id, $comment_id function callback( $path = '', $blog_id = 0, $object_id = 0 ) { if ( $this->api->ends_with( $path, '/new' ) ) $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ), false ); else $blog_id = $this->api->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( $this->api->ends_with( $path, '/delete' ) ) { return $this->delete_comment( $path, $blog_id, $object_id ); } elseif ( $this->api->ends_with( $path, '/new' ) ) { if ( false !== strpos( $path, '/posts/' ) ) { return $this->new_comment( $path, $blog_id, $object_id, 0 ); } else { return $this->new_comment( $path, $blog_id, 0, $object_id ); } } return $this->update_comment( $path, $blog_id, $object_id ); } // /sites/%s/posts/%d/replies/new -> $blog_id, $post_id // /sites/%s/comments/%d/replies/new -> $blog_id, $comment_id function new_comment( $path, $blog_id, $post_id, $comment_parent_id ) { if ( !$post_id ) { $comment_parent = get_comment( $comment_parent_id ); if ( !$comment_parent_id || !$comment_parent || is_wp_error( $comment_parent ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } $post_id = $comment_parent->comment_post_ID; } $post = get_post( $post_id ); if ( !$post || is_wp_error( $post ) ) { return new WP_Error( 'unknown_post', 'Unknown post', 404 ); } if ( -1 == get_option( 'blog_public' ) && /** * Filter allowing non-registered users on the site to comment. * * @module json-api * * @since 3.4.0 * * @param bool is_user_member_of_blog() Is the user member of the site. */ ! apply_filters( 'wpcom_json_api_user_is_member_of_blog', is_user_member_of_blog() ) && ! is_super_admin() ) { return new WP_Error( 'unauthorized', 'User cannot create comments', 403 ); } if ( !comments_open( $post->ID ) ) { return new WP_Error( 'unauthorized', 'Comments on this post are closed', 403 ); } $can_view = $this->user_can_view_post( $post->ID ); if ( !$can_view || is_wp_error( $can_view ) ) { return $can_view; } $post_status = get_post_status_object( get_post_status( $post ) ); if ( !$post_status->public && !$post_status->private ) { return new WP_Error( 'unauthorized', 'Comments on drafts are not allowed', 403 ); } $args = $this->query_args(); $input = $this->input(); if ( !is_array( $input ) || !$input || !strlen( $input['content'] ) ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $user = wp_get_current_user(); if ( !$user || is_wp_error( $user ) || !$user->ID ) { $auth_required = false; if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { $auth_required = true; } elseif ( isset( $this->api->token_details['user'] ) ) { $user = (object) $this->api->token_details['user']; foreach ( array( 'display_name', 'user_email', 'user_url' ) as $user_datum ) { if ( !isset( $user->$user_datum ) ) { $auth_required = true; } } if ( !isset( $user->ID ) ) { $user->ID = 0; } } else { $auth_required = true; } if ( $auth_required ) { return new WP_Error( 'authorization_required', 'An active access token must be used to comment.', 403 ); } } $insert = array( 'comment_post_ID' => $post->ID, 'user_ID' => $user->ID, 'comment_author' => $user->display_name, 'comment_author_email' => $user->user_email, 'comment_author_url' => $user->user_url, 'comment_content' => $input['content'], 'comment_parent' => $comment_parent_id, 'comment_type' => '', ); if ( $comment_parent_id ) { if ( $comment_parent->comment_approved === '0' && current_user_can( 'edit_comment', $comment_parent->comment_ID ) ) { wp_set_comment_status( $comment_parent->comment_ID, 'approve' ); } } $this->api->trap_wp_die( 'comment_failure' ); $comment_id = wp_new_comment( add_magic_quotes( $insert ) ); $this->api->trap_wp_die( null ); $return = $this->get_comment( $comment_id, $args['context'] ); if ( !$return ) { return new WP_Error( 400, __( 'Comment cache problem?', 'jetpack' ) ); } if ( is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'comments' ); return $return; } // /sites/%s/comments/%d -> $blog_id, $comment_id function update_comment( $path, $blog_id, $comment_id ) { $comment = get_comment( $comment_id ); if ( !$comment || is_wp_error( $comment ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) { return new WP_Error( 'unauthorized', 'User cannot edit comment', 403 ); } $args = $this->query_args(); $input = $this->input( false ); if ( !is_array( $input ) || !$input ) { return new WP_Error( 'invalid_input', 'Invalid request input', 400 ); } $update = array(); foreach ( $input as $key => $value ) { $update["comment_$key"] = $value; } $comment_status = wp_get_comment_status( $comment->comment_ID ); if ( $comment_status !== $update['status'] && !current_user_can( 'moderate_comments' ) ) { return new WP_Error( 'unauthorized', 'User cannot moderate comments', 403 ); } if ( isset( $update['comment_status'] ) ) { if ( count( $update ) === 1 ) { // We are only here to update the comment status so let's respond ASAP add_action( 'wp_set_comment_status', array( $this, 'output_comment' ), 0, 1 ); } switch ( $update['comment_status'] ) { case 'approved' : if ( 'approve' !== $comment_status ) { wp_set_comment_status( $comment->comment_ID, 'approve' ); } break; case 'unapproved' : if ( 'hold' !== $comment_status ) { wp_set_comment_status( $comment->comment_ID, 'hold' ); } break; case 'spam' : if ( 'spam' !== $comment_status ) { wp_spam_comment( $comment->comment_ID ); } break; case 'unspam' : if ( 'spam' === $comment_status ) { wp_unspam_comment( $comment->comment_ID ); } break; case 'trash' : if ( ! EMPTY_TRASH_DAYS ) { return new WP_Error( 'trash_disabled', 'Cannot trash comment', 403 ); } if ( 'trash' !== $comment_status ) { wp_trash_comment( $comment_id ); } break; case 'untrash' : if ( 'trash' === $comment_status ) { wp_untrash_comment( $comment->comment_ID ); } break; default: $update['comment_approved'] = 1; break; } unset( $update['comment_status'] ); } if ( ! empty( $update ) ) { $update['comment_ID'] = $comment->comment_ID; wp_update_comment( add_magic_quotes( $update ) ); } $return = $this->get_comment( $comment->comment_ID, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'comments' ); return $return; } // /sites/%s/comments/%d/delete -> $blog_id, $comment_id function delete_comment( $path, $blog_id, $comment_id ) { $comment = get_comment( $comment_id ); if ( !$comment || is_wp_error( $comment ) ) { return new WP_Error( 'unknown_comment', 'Unknown comment', 404 ); } if ( !current_user_can( 'edit_comment', $comment->comment_ID ) ) { // [sic] There is no delete_comment cap return new WP_Error( 'unauthorized', 'User cannot delete comment', 403 ); } $args = $this->query_args(); $return = $this->get_comment( $comment->comment_ID, $args['context'] ); if ( !$return || is_wp_error( $return ) ) { return $return; } /** This action is documented in json-endpoints/class.wpcom-json-api-site-settings-endpoint.php */ do_action( 'wpcom_json_api_objects', 'comments' ); wp_delete_comment( $comment->comment_ID ); $status = wp_get_comment_status( $comment->comment_ID ); if ( false === $status ) { $return['status'] = 'deleted'; return $return; } return $this->get_comment( $comment->comment_ID, $args['context'] ); } function output_comment( $comment_id ) { $args = $this->query_args(); $output = $this->get_comment( $comment_id, $args['context'] ); $this->api->output_early( 200, $output ); } } plugins/jetpack/json-endpoints/class.wpcom-json-api-delete-media-endpoint.php0000644000312500031250000000124012651056012030036 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( !current_user_can( 'upload_files', $media_id ) ) { return new WP_Error( 'unauthorized', 'User cannot view media', 403 ); } $item = $this->get_media_item( $media_id ); if ( is_wp_error( $item ) ) { return new WP_Error( 'unknown_media', 'Unknown Media', 404 ); } wp_delete_post( $media_id ); $item->status = 'deleted'; return $item; } } plugins/jetpack/json-endpoints/class.wpcom-json-api-update-invites-endpoint.php0000644000312500031250000001014312651056012030462 0ustar eacbforgeacbforgapi->switch_to_blog_and_validate_user( $this->api->get_blog_id( $blog_id ) ); if ( is_wp_error( $blog_id ) ) { return $blog_id; } if ( ! is_multisite() ) { return new WP_Error( 'forbidden', 'To modify invites, site must be on a multisite installation.', 403 ); } if ( ! current_user_can( 'promote_users' ) ) { return new WP_Error( 'unauthorized', 'Your token must have permission to promote users on this blog.', 401 ); } $this->blog_id = $blog_id; $this->invite_id = $invite_id; $this->is_wpcom = defined( 'IS_WPCOM' ) && IS_WPCOM; $invite = $this->get_invite(); if ( false === $invite ) { return new WP_Error( 'unknown_invite', 'Requested invite was not found.', 404 ); } $this->invite = $invite; $returnValue = false; if ( $this->api->ends_with( $this->path, '/delete' ) ) { $returnValue = array( 'invite_key' => $invite_id, 'deleted' => $this->delete_invite(), ); } else { $returnValue = array( 'result' => $this->is_wpcom ? $this->resend_wpcom_invite() : $this->resend_self_hosted_invite() ); } return $returnValue; } /** * Returns an invite if found or false if not found. * * @return bool|object */ function get_invite() { global $wpdb, $wpcom_invite_users; $invite = false; if ( $this->is_wpcom ) { $invite = $wpcom_invite_users->get_invitation( $this->invite_id ); } else { $query = $wpdb->prepare( "SELECT * FROM $wpdb->options WHERE option_name = %s LIMIT 1", $this->invite_id ); $invite = $wpdb->get_results( $query ); $invite = empty( $invite ) ? false : $invite; } return $invite; } /** * Deletes an invitation. * * @return bool Whether the invite was deleted successfully. */ function delete_invite() { global $wpdb, $wpcom_invite_users; if ( $this->is_wpcom ) { return (bool) $wpcom_invite_users->delete_invitation( $this->invite_id ); } else { $query = $wpdb->prepare( "DELETE FROM $wpdb->options WHERE option_name = %s", $this->invite_id ); return 0 < $wpdb->query( $query ); } } /** * Sends an invitation email to a user to join a self-hosted site. * * This method duplicates the invitation email functionality that is present * in wp-admin/user-new.php. Ideally, we should factor out the functionality * in wp-admin/user-new.php that actually invites a user and sends the invite * from the data validation checks that expect $_POST and $_REQUEST. * * @return bool Whether the email was sent successfully. */ function resend_self_hosted_invite() { $invite = (array) unserialize( $this->invite[0]->option_value ); $roles = get_editable_roles(); $role = $roles[ $invite['role'] ]; $newuser_key = str_replace( 'new_user_', '', $this->invite_id ); /* translators: 1: Site title 2: Site URL 3: Role name 4: URL to accept invitation */ $message = __( 'Hi, You\'ve been invited to join \'%1$s\' at %2$s with the role of %3$s. Please click the following link to confirm the invite: %4$s', 'jetpack' ); return wp_mail( $invite['email'], sprintf( __( '[%s] Joining confirmation', 'jetpack' ), wp_specialchars_decode( get_option( 'blogname' ) ) ), sprintf( $message, get_option( 'blogname' ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ), home_url( "/newbloguser/$newuser_key/" ) ) ); } /** * Sends an invitation email to a user to join a WordPress.com site. * * @return bool Whether the invitation was sent successfully. */ function resend_wpcom_invite() { global $wpcom_invite_users; $wpcom_invite_users->update_invitation( $this->invite->invite_slug, array( 'invite_date' => gmdate( 'Y-m-d H:i:s' ) ) ); if ( 'follower' == $this->invite->meta['role'] && ! is_private_blog() ) { $wpcom_invite_users->invite_followers( $this->invite->meta['sent_to'] ); } else { $wpcom_invite_users->send_invitation( $this->invite->invite_slug ); } return true; } } plugins/jetpack/json-api-config.php0000644000312500031250000000037712651056012017757 0ustar eacbforgeacbforg $post ) { $lang_information = wpml_get_language_information( $post['post_id'] ); $post_language = substr( $lang_information['locale'], 0, 2 ); if ( $post_language !== $sitepress->get_current_language() ) { unset( $posts[ $k ] ); } } return $posts; } add_filter( 'grunion_contact_form_field_html', 'grunion_contact_form_field_html_filter', 10, 3 ); function grunion_contact_form_field_html_filter( $r, $field_label, $id ){ global $sitepress; if ( function_exists( 'icl_translate' ) ) { if ( $sitepress->get_current_language() !== $sitepress->get_default_language() ) { $label_translation = icl_translate( 'jetpack ', $field_label . '_label', $field_label ); $r = str_replace( $field_label, $label_translation, $r ); } } return $r; } endif; plugins/jetpack/3rd-party/buddypress.php0000644000312500031250000000026412651056012021000 0ustar eacbforgeacbforgog_tags(); } elseif ( isset( $GLOBALS['posts'] ) && $GLOBALS['posts'][0]->ID > 0 ) { printf( " \n", esc_attr( $GLOBALS['bitly']->get_bitly_link_for_post_id( $GLOBALS['posts'][0]->ID ) ) ); } } plugins/jetpack/functions.gallery.php0000644000312500031250000000440612651056012020437 0ustar eacbforgeacbforggallery_types = apply_filters( 'jetpack_gallery_types', array( 'default' => __( 'Thumbnail Grid', 'jetpack' ) ) ); // Enqueue the media UI only if needed. if ( count( $this->gallery_types ) > 1 ) { add_action( 'wp_enqueue_media', array( $this, 'wp_enqueue_media' ) ); add_action( 'print_media_templates', array( $this, 'print_media_templates' ) ); } } /** * Registers/enqueues the gallery settings admin js. */ function wp_enqueue_media() { if ( ! wp_script_is( 'jetpack-gallery-settings', 'registered' ) ) { /** * This only happens if we're not in Jetpack, but on WPCOM instead. * This is the correct path for WPCOM. */ wp_register_script( 'jetpack-gallery-settings', plugins_url( 'gallery-settings/gallery-settings.js', __FILE__ ), array( 'media-views' ), '20121225' ); } wp_enqueue_script( 'jetpack-gallery-settings' ); } /** * Outputs a view template which can be used with wp.media.template */ function print_media_templates() { /** * Filter the default gallery type. * * @module tiled-gallery * * @since 2.5.1 * * @param string $value A string of the gallery type. Default is ‘default’. * */ $default_gallery_type = apply_filters( 'jetpack_default_gallery_type', 'default' ); ?> Jetpack::xmlrpc_api_url(), 'user_id' => 0, ); $args = wp_parse_args( $args, $defaults ); $this->jetpack_args = $args; $this->IXR_Client( $args['url'], $path, $port, $timeout ); } function query() { $args = func_get_args(); $method = array_shift( $args ); $request = new IXR_Request( $method, $args ); $xml = trim( $request->getXml() ); $response = Jetpack_Client::remote_request( $this->jetpack_args, $xml ); if ( is_wp_error( $response ) ) { $this->error = new IXR_Error( -10520, sprintf( 'Jetpack: [%s] %s', $response->get_error_code(), $response->get_error_message() ) ); return false; } if ( !$response ) { $this->error = new IXR_Error( -10520, 'Jetpack: Unknown Error' ); return false; } if ( 200 != wp_remote_retrieve_response_code( $response ) ) { $this->error = new IXR_Error( -32300, 'transport error - HTTP status code was not 200' ); return false; } $content = wp_remote_retrieve_body( $response ); // Now parse what we've got back $this->message = new IXR_Message( $content ); if ( !$this->message->parse() ) { // XML error $this->error = new IXR_Error( -32700, 'parse error. not well formed' ); return false; } // Is the message a fault? if ( $this->message->messageType == 'fault' ) { $this->error = new IXR_Error( $this->message->faultCode, $this->message->faultString ); return false; } // Message must be OK return true; } function get_jetpack_error( $fault_code = null, $fault_string = null ) { if ( is_null( $fault_code ) ) { $fault_code = $this->error->code; } if ( is_null( $fault_string ) ) { $fault_string = $this->error->message; } if ( preg_match( '#jetpack:\s+\[(\w+)\]\s*(.*)?$#i', $fault_string, $match ) ) { $code = $match[1]; $message = $match[2]; $status = $fault_code; return new Jetpack_Error( $code, $message, $status ); } return new Jetpack_Error( "IXR_{$fault_code}", $fault_string ); } } /** * IXR_ClientMulticall * * @package IXR * @since 1.5 */ class Jetpack_IXR_ClientMulticall extends Jetpack_IXR_Client { public $calls = array(); function __construct( $args = array(), $path = false, $port = 80, $timeout = 15 ) { parent::__construct( $args, $path, $port, $timeout ); } function addCall() { $args = func_get_args(); $methodName = array_shift( $args ); $struct = array( 'methodName' => $methodName, 'params' => $args ); $this->calls[] = $struct; } function query() { usort( $this->calls, array( $this, 'sort_calls' ) ); // Prepare multicall, then call the parent::query() method return parent::query( 'system.multicall', $this->calls ); } // Make sure syncs are always done first function sort_calls( $a, $b ) { if ( 'jetpack.syncContent' == $a['methodName'] ) { return -1; } if ( 'jetpack.syncContent' == $b['methodName'] ) { return 1; } return 0; } } plugins/jetpack/class.jetpack-autoupdate.php0000644000312500031250000001545312654410420021673 0ustar eacbforgeacbforg array(), 'theme' => array(), ); private $failed = array( 'plugin' => array(), 'theme' => array(), ); private static $instance = null; static function init() { if ( is_null( self::$instance ) ) { self::$instance = new Jetpack_Autoupdate; } return self::$instance; } private function __construct() { if ( Jetpack::is_module_active( 'manage' ) ) { add_filter( 'auto_update_plugin', array( $this, 'autoupdate_plugin' ), 10, 2 ); add_filter( 'auto_update_theme', array( $this, 'autoupdate_theme' ), 10, 2 ); add_filter( 'auto_update_core', array( $this, 'autoupdate_core' ), 10, 2 ); add_action( 'automatic_updates_complete', array( $this, 'automatic_updates_complete' ), 999, 1 ); } } public function autoupdate_plugin( $update, $item ) { $autoupdate_plugin_list = Jetpack_Options::get_option( 'autoupdate_plugins', array() ); if ( in_array( $item->plugin, $autoupdate_plugin_list ) ) { $this->expect( $item->plugin, 'plugin' ); return true; } return $update; } public function autoupdate_theme( $update, $item ) { $autoupdate_theme_list = Jetpack_Options::get_option( 'autoupdate_themes', array() ); if ( in_array( $item->theme , $autoupdate_theme_list) ) { $this->expect( $item->theme, 'theme' ); return true; } return $update; } public function autoupdate_core( $update, $item ) { $autoupdate_core = Jetpack_Options::get_option( 'autoupdate_core', false ); if ( $autoupdate_core ) { return $autoupdate_core; } return $update; } /** * Stores the an item identifier to the expected array. * * @param string $item Example: 'jetpack/jetpack.php' for type 'plugin' or 'twentyfifteen' for type 'theme' * @param string $type 'plugin' or 'theme' */ private function expect( $item, $type ) { if ( ! isset( $this->expected[ $type ] ) ) { $this->expected[ $type ] = array(); } $this->expected[ $type ][] = $item; } /** * On completion of an automatic update, let's store the results. * * @param $results - Sent by WP_Automatic_Updater after it completes an autoupdate action. Results may be empty. */ public function automatic_updates_complete( $results ) { if ( empty( $this->expected ) ) { return; } $this->results = empty( $results ) ? self::get_possible_failures() : $results; add_action( 'shutdown', array( $this, 'bump_stats' ) ); Jetpack::init(); $items_to_log = array( 'plugin', 'theme' ); foreach( $items_to_log as $items ) { $this->log_items( $items ); } Jetpack::log( 'autoupdates', $this->get_log() ); } public function get_log() { return array( 'results' => $this->results, 'failed' => $this->failed, 'success' => $this->success ); } /** * Iterates through expected items ( plugins or themes ) and compares them to actual results. * * @param $items 'plugin' or 'theme' */ private function log_items( $items ) { if ( ! isset( $this->expected[ $items ] ) ) { return; } $item_results = $this->get_successful_updates( $items ); if ( is_array( $this->expected[ $items ] ) ) { foreach( $this->expected[ $items ] as $item ) { if ( in_array( $item, $item_results ) ) { $this->success[ $items ][] = $item; } else { $this->failed[ $items ][] = $item; } } } } public function bump_stats() { $instance = Jetpack::init(); $log = array(); // Bump numbers if ( ! empty( $this->success['plugin'] ) ) { $instance->stat( 'autoupdates/plugin-success', count( $this->success['plugin'] ) ); $log['plugins_success'] = $this->success['plugin']; } if ( ! empty( $this->failed['plugin'] ) ) { $instance->stat( 'autoupdates/plugin-fail', count( $this->failed['plugin'] ) ); $log['plugins_failed'] = $this->failed['plugin']; } if ( ! empty( $this->success['theme'] ) ) { $instance->stat( 'autoupdates/theme-success', count( $this->success['theme'] ) ); $log['themes_success'] = $this->success['theme']; } if ( ! empty( $this->failed['theme'] ) ) { $instance->stat( 'autoupdates/theme-fail', count( $this->failed['theme'] ) ); $log['themes_failed'] = $this->failed['theme']; } $instance->do_stats( 'server_side' ); // Send a more detailed log to logstash if ( ! empty( $log ) ) { Jetpack::load_xml_rpc_client(); $xml = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id() ) ); $log['blog_id'] = Jetpack_Options::get_option( 'id' ); $xml->query( 'jetpack.debug_autoupdate', $log ); } } /** * Parses the autoupdate results generated by WP_Automatic_Updater and returns a simple array of successful items * * @param string $type 'plugin' or 'theme' * * @return array */ private function get_successful_updates( $type ) { $successful_updates = array(); if ( ! isset( $this->results[ $type ] ) ) { return $successful_updates; } foreach( $this->results[ $type ] as $result ) { if ( $result->result ) { switch( $type ) { case 'theme': $successful_updates[] = $result->item->theme; break; case 'plugin': $successful_updates[] = $result->item->plugin; } } } return $successful_updates; } static function get_possible_failures() { $result = array(); // Lets check some reasons why it might not be working as expected include_once( ABSPATH . '/wp-admin/includes/admin.php' ); include_once( ABSPATH . '/wp-admin/includes/class-wp-upgrader.php' ); $upgrader = new WP_Automatic_Updater; if ( $upgrader->is_disabled() ) { $result[] = 'autoupdates-disabled'; } if ( ! is_main_site() ) { $result[] = 'is-not-main-site'; } if ( ! is_main_network() ) { $result[] = 'is-not-main-network'; } if ( $upgrader->is_vcs_checkout( ABSPATH ) ) { $result[] = 'site-on-vcs'; } if ( $upgrader->is_vcs_checkout( WP_PLUGIN_DIR ) ) { $result[] = 'plugin-directory-on-vcs'; } if ( $upgrader->is_vcs_checkout( WP_CONTENT_DIR ) ) { $result[] = 'content-directory-on-vcs'; } $lock = get_option( 'auto_updater.lock' ); if ( $lock > ( time() - HOUR_IN_SECONDS ) ) { $result[] = 'lock-is-set'; } $skin = new Automatic_Upgrader_Skin; include_once( ABSPATH . 'wp-admin/includes/file.php' ); include_once( ABSPATH . 'wp-admin/includes/template.php' ); if ( ! $skin->request_filesystem_credentials( false, ABSPATH, false ) ) { $result[] = 'no-system-write-access'; } if ( ! $skin->request_filesystem_credentials( false, WP_PLUGIN_DIR, false ) ) { $result[] = 'no-plugin-directory-write-access'; } if ( ! $skin->request_filesystem_credentials( false, WP_CONTENT_DIR, false ) ) { $result[] = 'no-wp-content-directory-write-access'; } return $result; } } Jetpack_Autoupdate::init(); plugins/jetpack/class.jetpack-modules-list-table.php0000644000312500031250000002743612654411246023241 0ustar eacbforgeacbforg=' ) && $this->compat_fields && is_array( $this->compat_fields ) ) { array_push( $this->compat_fields, 'all_items' ); } $this->items = $this->all_items = Jetpack_Admin::init()->get_modules(); $this->items = $this->filter_displayed_table_items( $this->items ); /** * Filters the list of modules available to be displayed in the Jetpack Settings screen. * * @since 3.0.0 * * @param array $this->items Array of Jetpack modules. */ $this->items = apply_filters( 'jetpack_modules_list_table_items', $this->items ); $this->_column_headers = array( $this->get_columns(), array(), array(), 'name' ); $modal_info = isset( $_GET['info'] ) ? $_GET['info'] : false; wp_register_script( 'models.jetpack-modules', plugins_url( '_inc/jetpack-modules.models.js', JETPACK__PLUGIN_FILE ), array( 'backbone', 'underscore' ), JETPACK__VERSION ); wp_register_script( 'views.jetpack-modules', plugins_url( '_inc/jetpack-modules.views.js', JETPACK__PLUGIN_FILE ), array( 'backbone', 'underscore', 'wp-util' ), JETPACK__VERSION ); wp_register_script( 'jetpack-modules-list-table', plugins_url( '_inc/jetpack-modules.js', JETPACK__PLUGIN_FILE ), array( 'views.jetpack-modules', 'models.jetpack-modules', 'jquery', ), JETPACK__VERSION, true ); wp_localize_script( 'jetpack-modules-list-table', 'jetpackModulesData', array( 'modules' => $this->all_items, 'i18n' => array( 'search_placeholder' => __( 'Search Modules…', 'jetpack' ), ), 'modalinfo' => $this->module_info_check( $modal_info, $this->all_items ), 'nonces' => array( 'bulk' => wp_create_nonce( 'bulk-jetpack_page_jetpack_modules' ), ), 'coreIconAvailable' => Jetpack::jetpack_site_icon_available_in_core(), ) ); wp_enqueue_script( 'jetpack-modules-list-table' ); /** * Filters the js_templates callback value. * * @since 3.6.0 * * @param array array( $this, 'js_templates' ) js_templates callback. */ add_action( 'admin_footer', apply_filters( 'jetpack_modules_list_table_js_template_callback', array( $this, 'js_templates' ) ), 9 ); } function js_templates() { ?> get_modules(); $array_of_module_tags = wp_list_pluck( $modules, 'module_tags' ); $module_tags = call_user_func_array( 'array_merge', $array_of_module_tags ); $module_tags_unique = array_count_values( $module_tags ); ksort( $module_tags_unique ); $format = '%1$s (%2$s)'; $title = __( 'All', 'jetpack' ); $count = count( $modules ); $url = esc_url( remove_query_arg( 'module_tag' ) ); $current = empty( $_GET['module_tag'] ) ? ' class="current all"' : ' class="all"'; $views = array( 'all' => sprintf( $format, $title, $count, $url, $current ), ); foreach ( $module_tags_unique as $title => $count ) { if ( 'Jumpstart' == $title ) { continue; } $key = sanitize_title( $title ); $display_title = esc_html( wptexturize( $title ) ); $url = esc_url( add_query_arg( 'module_tag', urlencode( $title ) ) ); $current = ''; if ( ! empty( $_GET['module_tag'] ) && $title == $_GET['module_tag'] ) $current = ' class="current"'; $views[ $key ] = sprintf( $format, $display_title, $count, $url, $current ); } return $views; } function views() { $views = $this->get_views(); echo "
          \n"; foreach ( $views as $class => $view ) { $views[ $class ] = "\t
        • $view
        • "; } echo implode( "\n", $views ) . "\n"; echo "
        "; } function filter_displayed_table_items( $modules ) { return array_filter( $modules, array( $this, 'is_module_displayed' ) ); } static function is_module_available( $module ) { if ( ! is_array( $module ) || empty( $module ) ) return false; if ( Jetpack::is_development_mode() ) { return ! ( $module['requires_connection'] ); } else { return Jetpack::is_active(); } } static function is_module_displayed( $module ) { // Handle module tag based filtering. if ( ! empty( $_REQUEST['module_tag'] ) ) { $module_tag = sanitize_text_field( $_REQUEST['module_tag'] ); if ( ! in_array( $module_tag, $module['module_tags'] ) ) return false; } // If nothing rejected it, include it! return true; } static function sort_requires_connection_last( $module1, $module2 ) { if ( $module1['requires_connection'] == $module2['requires_connection'] ) return 0; if ( $module1['requires_connection'] ) return 1; if ( $module2['requires_connection'] ) return -1; return 0; } function get_columns() { $columns = array( 'cb' => '', 'name' => __( 'Name', 'jetpack' ), ); return $columns; } function get_bulk_actions() { $actions = array( 'bulk-activate' => __( 'Activate', 'jetpack' ), 'bulk-deactivate' => __( 'Deactivate', 'jetpack' ), ); return $actions; } function single_row( $item ) { static $i = 0; $row_class = ( ++$i % 2 ) ? ' alternate' : ''; if ( ! empty( $item['activated'] ) ) $row_class .= ' active'; if ( ! $this->is_module_available( $item ) ) $row_class .= ' unavailable'; echo '
        \n"; $text .= "\n"; $text .= "\n"; foreach ($headers as $n => $header) $text .= " ".$this->runSpanGamut(trim($header))."\n"; $text .= "\n"; $text .= "\n"; # Split content by row. $rows = explode("\n", trim($content, "\n")); $text .= "\n"; foreach ($rows as $row) { # Parsing span elements, including code spans, character escapes, # and inline HTML tags, so that pipes inside those gets ignored. $row = $this->parseSpan($row); # Split row by cell. $row_cells = preg_split('/ *[|] */', $row, $col_count); $row_cells = array_pad($row_cells, $col_count, ''); $text .= "\n"; foreach ($row_cells as $n => $cell) $text .= " ".$this->runSpanGamut(trim($cell))."\n"; $text .= "\n"; } $text .= "\n"; $text .= "
        "; return $this->hashBlock($text) . "\n"; } function doDefLists($text) { # # Form HTML definition lists. # $less_than_tab = $this->tab_width - 1; # Re-usable pattern to match any entire dl list: $whole_list_re = '(?> ( # $1 = whole list ( # $2 [ ]{0,'.$less_than_tab.'} ((?>.*\S.*\n)+) # $3 = defined term \n? [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition ) (?s:.+?) ( # $4 \z | \n{2,} (?=\S) (?! # Negative lookahead for another term [ ]{0,'.$less_than_tab.'} (?: \S.*\n )+? # defined term \n? [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition ) (?! # Negative lookahead for another definition [ ]{0,'.$less_than_tab.'}:[ ]+ # colon starting definition ) ) ) )'; // mx $text = preg_replace_callback('{ (?>\A\n?|(?<=\n\n)) '.$whole_list_re.' }mx', array(&$this, '_doDefLists_callback'), $text); return $text; } function _doDefLists_callback($matches) { # Re-usable patterns to match list item bullets and number markers: $list = $matches[1]; # Turn double returns into triple returns, so that we can make a # paragraph for the last item in a list, if necessary: $result = trim($this->processDefListItems($list)); $result = "
        \n" . $result . "\n
        "; return $this->hashBlock($result) . "\n\n"; } function processDefListItems($list_str) { # # Process the contents of a single definition list, splitting it # into individual term and definition list items. # $less_than_tab = $this->tab_width - 1; # trim trailing blank lines: $list_str = preg_replace("/\n{2,}\\z/", "\n", $list_str); # Process definition terms. $list_str = preg_replace_callback('{ (?>\A\n?|\n\n+) # leading line ( # definition terms = $1 [ ]{0,'.$less_than_tab.'} # leading whitespace (?!\:[ ]|[ ]) # negative lookahead for a definition # mark (colon) or more whitespace. (?> \S.* \n)+? # actual term (not whitespace). ) (?=\n?[ ]{0,3}:[ ]) # lookahead for following line feed # with a definition mark. }xm', array(&$this, '_processDefListItems_callback_dt'), $list_str); # Process actual definitions. $list_str = preg_replace_callback('{ \n(\n+)? # leading line = $1 ( # marker space = $2 [ ]{0,'.$less_than_tab.'} # whitespace before colon \:[ ]+ # definition mark (colon) ) ((?s:.+?)) # definition text = $3 (?= \n+ # stop at next definition mark, (?: # next term or end of text [ ]{0,'.$less_than_tab.'} \:[ ] |
        | \z ) ) }xm', array(&$this, '_processDefListItems_callback_dd'), $list_str); return $list_str; } function _processDefListItems_callback_dt($matches) { $terms = explode("\n", trim($matches[1])); $text = ''; foreach ($terms as $term) { $term = $this->runSpanGamut(trim($term)); $text .= "\n
        " . $term . "
        "; } return $text . "\n"; } function _processDefListItems_callback_dd($matches) { $leading_line = $matches[1]; $marker_space = $matches[2]; $def = $matches[3]; if ($leading_line || preg_match('/\n{2,}/', $def)) { # Replace marker with the appropriate whitespace indentation $def = str_repeat(' ', strlen($marker_space)) . $def; $def = $this->runBlockGamut($this->outdent($def . "\n\n")); $def = "\n". $def ."\n"; } else { $def = rtrim($def); $def = $this->runSpanGamut($this->outdent($def)); } return "\n
        " . $def . "
        \n"; } function doFencedCodeBlocks($text) { # # Adding the fenced code block syntax to regular Markdown: # # ~~~ # Code block # ~~~ # $less_than_tab = $this->tab_width; $text = preg_replace_callback('{ (?:\n|\A) # 1: Opening marker ( (?:~{3,}|`{3,}) # 3 or more tildes/backticks. ) [ ]* (?: \.?([-_:a-zA-Z0-9]+) # 2: standalone class name | '.$this->id_class_attr_catch_re.' # 3: Extra attributes )? [ ]* \n # Whitespace and newline following marker. # 4: Content ( (?> (?!\1 [ ]* \n) # Not a closing marker. .*\n+ )+ ) # Closing marker. \1 [ ]* (?= \n ) }xm', array(&$this, '_doFencedCodeBlocks_callback'), $text); return $text; } function _doFencedCodeBlocks_callback($matches) { $classname =& $matches[2]; $attrs =& $matches[3]; $codeblock = $matches[4]; $codeblock = htmlspecialchars($codeblock, ENT_NOQUOTES); $codeblock = preg_replace_callback('/^\n+/', array(&$this, '_doFencedCodeBlocks_newlines'), $codeblock); if ($classname != "") { if ($classname{0} == '.') $classname = substr($classname, 1); $attr_str = ' class="'.$this->code_class_prefix.$classname.'"'; } else { $attr_str = $this->doExtraAttributes($this->code_attr_on_pre ? "pre" : "code", $attrs); } $pre_attr_str = $this->code_attr_on_pre ? $attr_str : ''; $code_attr_str = $this->code_attr_on_pre ? '' : $attr_str; $codeblock = "$codeblock
        "; return "\n\n".$this->hashBlock($codeblock)."\n\n"; } function _doFencedCodeBlocks_newlines($matches) { return str_repeat("empty_element_suffix", strlen($matches[0])); } # # Redefining emphasis markers so that emphasis by underscore does not # work in the middle of a word. # public $em_relist = array( '' => '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? '(?:(? '(?<=\S|^)(? '(?<=\S|^)(? tags # # Strip leading and trailing lines: $text = preg_replace('/\A\n+|\n+\z/', '', $text); $grafs = preg_split('/\n{2,}/', $text, -1, PREG_SPLIT_NO_EMPTY); # # Wrap

        tags and unhashify HTML blocks # foreach ($grafs as $key => $value) { $value = trim($this->runSpanGamut($value)); # Check if this should be enclosed in a paragraph. # Clean tag hashes & block tag hashes are left alone. $is_p = !preg_match('/^B\x1A[0-9]+B|^C\x1A[0-9]+C$/', $value); if ($is_p) { $value = "

        $value

        "; } $grafs[$key] = $value; } # Join grafs in one text, then unhash HTML tags. $text = implode("\n\n", $grafs); # Finish by removing any tag hashes still present in $text. $text = $this->unhash($text); return $text; } ### Footnotes function stripFootnotes($text) { # # Strips link definitions from text, stores the URLs and titles in # hash references. # $less_than_tab = $this->tab_width - 1; # Link defs are in the form: [^id]: url "optional title" $text = preg_replace_callback('{ ^[ ]{0,'.$less_than_tab.'}\[\^(.+?)\][ ]?: # note_id = $1 [ ]* \n? # maybe *one* newline ( # text = $2 (no blank lines allowed) (?: .+ # actual text | \n # newlines but (?!\[\^.+?\]:\s)# negative lookahead for footnote marker. (?!\n+[ ]{0,3}\S)# ensure line is not blank and followed # by non-indented content )* ) }xm', array(&$this, '_stripFootnotes_callback'), $text); return $text; } function _stripFootnotes_callback($matches) { $note_id = $this->fn_id_prefix . $matches[1]; $this->footnotes[$note_id] = $this->outdent($matches[2]); return ''; # String that will replace the block } function doFootnotes($text) { # # Replace footnote references in $text [^id] with a special text-token # which will be replaced by the actual footnote marker in appendFootnotes. # if (!$this->in_anchor) { $text = preg_replace('{\[\^(.+?)\]}', "F\x1Afn:\\1\x1A:", $text); } return $text; } function appendFootnotes($text) { # # Append footnote list to text. # $text = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}', array(&$this, '_appendFootnotes_callback'), $text); if (!empty($this->footnotes_ordered)) { $text .= "\n\n"; $text .= "
        \n"; $text .= "empty_element_suffix ."\n"; $text .= "
          \n\n"; $attr = " rev=\"footnote\""; if ($this->fn_backlink_class != "") { $class = $this->fn_backlink_class; $class = $this->encodeAttribute($class); $attr .= " class=\"$class\""; } if ($this->fn_backlink_title != "") { $title = $this->fn_backlink_title; $title = $this->encodeAttribute($title); $attr .= " title=\"$title\""; } $num = 0; while (!empty($this->footnotes_ordered)) { $footnote = reset($this->footnotes_ordered); $note_id = key($this->footnotes_ordered); unset($this->footnotes_ordered[$note_id]); $ref_count = $this->footnotes_ref_count[$note_id]; unset($this->footnotes_ref_count[$note_id]); unset($this->footnotes[$note_id]); $footnote .= "\n"; # Need to append newline before parsing. $footnote = $this->runBlockGamut("$footnote\n"); $footnote = preg_replace_callback('{F\x1Afn:(.*?)\x1A:}', array(&$this, '_appendFootnotes_callback'), $footnote); $attr = str_replace("%%", ++$num, $attr); $note_id = $this->encodeAttribute($note_id); # Prepare backlink, multiple backlinks if multiple references $backlink = "↩"; for ($ref_num = 2; $ref_num <= $ref_count; ++$ref_num) { $backlink .= " ↩"; } # Add backlink to last paragraph; create new paragraph if needed. if (preg_match('{

          $}', $footnote)) { $footnote = substr($footnote, 0, -4) . " $backlink

          "; } else { $footnote .= "\n\n

          $backlink

          "; } $text .= "
        1. \n"; $text .= $footnote . "\n"; $text .= "
        2. \n\n"; } $text .= "
        \n"; $text .= "
        "; } return $text; } function _appendFootnotes_callback($matches) { $node_id = $this->fn_id_prefix . $matches[1]; # Create footnote marker only if it has a corresponding footnote *and* # the footnote hasn't been used by another marker. if (isset($this->footnotes[$node_id])) { $num =& $this->footnotes_numbers[$node_id]; if (!isset($num)) { # Transfer footnote content to the ordered list and give it its # number $this->footnotes_ordered[$node_id] = $this->footnotes[$node_id]; $this->footnotes_ref_count[$node_id] = 1; $num = $this->footnote_counter++; $ref_count_mark = ''; } else { $ref_count_mark = $this->footnotes_ref_count[$node_id] += 1; } $attr = " rel=\"footnote\""; if ($this->fn_link_class != "") { $class = $this->fn_link_class; $class = $this->encodeAttribute($class); $attr .= " class=\"$class\""; } if ($this->fn_link_title != "") { $title = $this->fn_link_title; $title = $this->encodeAttribute($title); $attr .= " title=\"$title\""; } $attr = str_replace("%%", $num, $attr); $node_id = $this->encodeAttribute($node_id); return "". "$num". ""; } return "[^".$matches[1]."]"; } ### Abbreviations ### function stripAbbreviations($text) { # # Strips abbreviations from text, stores titles in hash references. # $less_than_tab = $this->tab_width - 1; # Link defs are in the form: [id]*: url "optional title" $text = preg_replace_callback('{ ^[ ]{0,'.$less_than_tab.'}\*\[(.+?)\][ ]?: # abbr_id = $1 (.*) # text = $2 (no blank lines allowed) }xm', array(&$this, '_stripAbbreviations_callback'), $text); return $text; } function _stripAbbreviations_callback($matches) { $abbr_word = $matches[1]; $abbr_desc = $matches[2]; if ($this->abbr_word_re) $this->abbr_word_re .= '|'; $this->abbr_word_re .= preg_quote($abbr_word); $this->abbr_desciptions[$abbr_word] = trim($abbr_desc); return ''; # String that will replace the block } function doAbbreviations($text) { # # Find defined abbreviations in text and wrap them in elements. # if ($this->abbr_word_re) { // cannot use the /x modifier because abbr_word_re may // contain significant spaces: $text = preg_replace_callback('{'. '(?abbr_word_re.')'. '(?![\w\x1A])'. '}', array(&$this, '_doAbbreviations_callback'), $text); } return $text; } function _doAbbreviations_callback($matches) { $abbr = $matches[0]; if (isset($this->abbr_desciptions[$abbr])) { $desc = $this->abbr_desciptions[$abbr]; if (empty($desc)) { return $this->hashPart("$abbr"); } else { $desc = $this->encodeAttribute($desc); return $this->hashPart("$abbr"); } } else { return $matches[0]; } } } /* PHP Markdown Extra ================== Description ----------- This is a PHP port of the original Markdown formatter written in Perl by John Gruber. This special "Extra" version of PHP Markdown features further enhancements to the syntax for making additional constructs such as tables and definition list. Markdown is a text-to-HTML filter; it translates an easy-to-read / easy-to-write structured text format into HTML. Markdown's text format is mostly similar to that of plain text email, and supports features such as headers, *emphasis*, code blocks, blockquotes, and links. Markdown's syntax is designed not as a generic markup language, but specifically to serve as a front-end to (X)HTML. You can use span-level HTML tags anywhere in a Markdown document, and you can use block level HTML tags (like
        and as well). For more information about Markdown's syntax, see: Bugs ---- To file bug reports please send email to: Please include with your report: (1) the example input; (2) the output you expected; (3) the output Markdown actually produced. Version History --------------- See the readme file for detailed release notes for this version. Copyright and License --------------------- PHP Markdown & Extra Copyright (c) 2004-2013 Michel Fortin All rights reserved. Based on Markdown Copyright (c) 2003-2006 John Gruber All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name "Markdown" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. */ ?>plugins/jetpack/_inc/lib/markdown/README.md0000755000312500031250000000213312654411246021044 0ustar eacbforgeacbforg# Markdown parsing library Contains two libraries: * `/extra` - Gives you `MardownExtra_Parser` and `Markdown_Parser` - Docs at http://michelf.ca/projects/php-markdown/extra/ * `/gfm` -- Github Flavored MArkdown - Gives you `WPCom_GHF_Markdown_Parser` - It has the same interface as `MarkdownExtra_Parser` - Adds support for fenced code blocks: https://help.github.com/articles/github-flavored-markdown#fenced-code-blocks - By default it replaces them with a code shortcode - You can change this using the `$use_code_shortcode` member variable - You can change the code shortcode wrapping with `$shortcode_start` and `$shortcode_end` member variables - The `$preserve_shortcodes` member variable will preserve all registered shortcodes untouched. Requires WordPress to be loaded for `get_shortcode_regex()` - The `$preserve_latex` member variable will preserve oldskool $latex yer-latex$ codes untouched. - The `$strip_paras` member variable will strip

        tags because that's what WordPress likes. - See `WPCom_GHF_Markdown_Parser::__construct()` for how the above member variable defaults are set. plugins/jetpack/_inc/lib/markdown/0-load.php0000644000312500031250000000021112651056012021333 0ustar eacbforgeacbforgload_view( 'admin/my-jetpack-page.php' ); //My Jetpack view tracking, send to MC Stats Jetpack::init()->stat( 'admin', 'my-jetpack' ); Jetpack::init()->do_stats( 'server_side' ); } /* * Handle the change in master user */ function jetpack_my_jetpack_change_user() { if ( ! isset( $_POST['_my_jetpack_nonce'] ) || ! wp_verify_nonce( $_POST['_my_jetpack_nonce'], 'jetpack_change_primary_user' ) ) { wp_die( __( 'Failed permissions, please try again.', 'jetpack' ) ); exit; } if ( isset( $_POST['jetpack-new-master'] ) ) { $old_master_user = Jetpack_Options::get_option( 'master_user' ); $new_master_user = $_POST['jetpack-new-master']; $user_token = Jetpack_Data::get_access_token( $new_master_user ); $is_user_connected = $user_token && ! is_wp_error( $user_token ); if ( current_user_can( 'manage_options' ) && $is_user_connected ) { Jetpack::log( 'switch_master_user', array( 'old_master' => $old_master_user, 'new_master' => $new_master_user ) ); Jetpack_Options::update_option( 'master_user', $new_master_user ); Jetpack::state( 'message', 'switch_master' ); //My Jetpack primary user successfully changed, send to MC Stats Jetpack::init()->stat( 'admin', 'change-primary-successful' ); Jetpack::init()->do_stats( 'server_side' ); // Change the blog owner dotcom side $this->wpcom_switch_blog_owner( $new_master_user ); } } } /* * Tell wpcom that the master user has switched * so we can update the 'wpcom_blog_owner' */ function wpcom_switch_blog_owner( $new_master ) { $request = array( 'new_blog_owner' => $new_master ); // Tell wpcom about the change Jetpack::load_xml_rpc_client(); $xml = new Jetpack_IXR_Client( array( 'user_id' => get_current_user_id(), ) ); $xml->query( 'jetpack.switchBlogOwner', $request ); } /* * Checks to see if there are any other users available to become primary * Users must both: * - Be linked to wpcom * - Be an admin * * @return bool */ function jetpack_are_other_users_linked_and_admin() { // If only one admin $all_users = count_users(); if ( 2 > $all_users['avail_roles']['administrator'] ) { return false; } $users = get_users(); $available = array(); // If no one else is linked to dotcom foreach ( $users as $user ) { if ( isset( $user->caps['administrator'] ) && Jetpack::is_user_connected( $user->ID ) ) { $available[] = $user->ID; } } if ( 2 > count( $available ) ) { return false; } return true; } /* * All the data we'll need about the Master User * for the My Jetpack page template * * @return array */ function jetpack_master_user_data() { // If the master user has disappeared, none of this is useful. // @todo throw up a warning and offer a solution $master = Jetpack_Options::get_option( 'master_user' ); if ( ! get_user_by( 'id', $master ) ) { return false; } $master_user = get_userdata( $master ); $master_user_data_com = Jetpack::get_connected_user_data( $master_user->ID ); $gravatar = sprintf( '%s', get_edit_user_link( $master_user->ID ), get_avatar( $master_user->ID, 40 ) ); $master_user_data = array( 'masterUser' => $master_user, 'masterDataCom' => $master_user_data_com, 'gravatar' => $gravatar, ); return $master_user_data; } /* * All the data we'll need about the Current User * * @return array */ function jetpack_current_user_data() { global $current_user; $is_master_user = $current_user->ID == Jetpack_Options::get_option( 'master_user' ); $dotcom_data = Jetpack::get_connected_user_data(); $current_user_data = array( 'isUserConnected' => Jetpack::is_user_connected( $current_user->ID ), 'isMasterUser' => $is_master_user, 'adminUsername' => $current_user->user_login, 'userComData' => $dotcom_data, 'gravatar' => sprintf( '%s', get_edit_user_link( $current_user->ID ), get_avatar( $current_user->ID, 40 ) ), ); return $current_user_data; } /* * Build an array of My Jetpack stats urls. * requires the build URL args passed as an array * * @param array $my_jetpack_stats * @return (array) of built stats urls */ function build_my_jetpack_stats_urls( $my_jetpack_stats ) { $my_jetpack_urls = array(); foreach ( $my_jetpack_stats as $value ) { $my_jetpack_urls[ $value ] = Jetpack::build_stats_url( array( 'x_jetpack-admin' => $value ) ); } return $my_jetpack_urls; } // Load up admin scripts function page_admin_scripts() { wp_enqueue_script( 'jp-connection-js', plugins_url( '_inc/jp-my-jetpack.js', JETPACK__PLUGIN_FILE ), array( 'jquery', 'wp-util' ), JETPACK__VERSION . 'yep' ); wp_localize_script( 'jp-connection-js', 'jpConnection', array( 'jetpackIsActive' => Jetpack::is_active(), 'isAdmin' => current_user_can( 'jetpack_manage_modules' ), 'otherAdminsLinked' => $this->jetpack_are_other_users_linked_and_admin(), 'masterUser' => $this->jetpack_master_user_data(), 'currentUser' => $this->jetpack_current_user_data(), 'my_jetpack_stats_urls' => $this->build_my_jetpack_stats_urls( array( 'change_primary', 'disconnect_site', 'confirm_disconnect', 'support_no_disconnect', 'cancel_disconnect' ) ), 'alertText' => __( 'You must link another admin account before switching primary account holders.', 'jetpack' ), ) ); } } plugins/jetpack/_inc/lib/admin-pages/class.jetpack-settings-page.php0000644000312500031250000001034512651056012026130 0ustar eacbforgeacbforg

        unprotected_display_tablenav( 'top' ); ?>
        search_box( __( 'Search', 'jetpack' ), 'srch-term' ); ?>

        views(); ?>
        display_rows_or_placeholder(); ?>
        $new_count_i18n
        "; $title = sprintf( $format, $update_markup ); } // Add the main admin Jetpack menu with possible information about new // modules add_menu_page( 'Jetpack', $title, 'jetpack_admin_page', 'jetpack', array( $this, 'render' ), 'div' ); // also create the submenu return add_submenu_page( 'jetpack', $title, $title, 'jetpack_admin_page', 'jetpack' ); } function add_page_actions( $hook ) { // Add landing page specific underscore templates /** * Filters the js_templates callback value * * @since 3.6.0 * * @param array array( $this, 'js_templates' ) js_templates callback. * @param string $hook Specific admin page. */ add_action( "admin_footer-$hook", apply_filters( 'jetpack_landing_page_js_templates_callback', array( $this, 'js_templates' ), $hook ) ); /** This action is documented in class.jetpack.php */ do_action( 'jetpack_admin_menu', $hook ); // Place the Jetpack menu item on top and others in the order they // appear add_filter( 'custom_menu_order', '__return_true' ); add_filter( 'menu_order', array( $this, 'jetpack_menu_order' ) ); add_action( 'jetpack_notices_update_settings', array( $this, 'show_notices_update_settings' ), 10, 1 ); } /* * Build an array of a specific module tag. * * @param string Name of the module tag * @return array The module slug, config url, and name of each Jump Start module */ function jumpstart_module_tag( $tag ) { $modules = Jetpack_Admin::init()->get_modules(); $module_info = array(); foreach ( $modules as $module => $value ) { if ( in_array( $tag, $value['feature'] ) ) { $module_info[] = array( 'module_slug' => $value['module'], 'module_name' => $value['name'], 'configure_url' => $value['configure_url'], ); } } return $module_info; } /* * Only show Jump Start on first activation. * Any option 'jumpstart' other than 'new connection' will hide it. * * The option can be of 4 things, and will be stored as such: * new_connection : Brand new connection - Show * jumpstart_activated : Jump Start has been activated - dismiss * jetpack_action_taken: Manual activation of a module already happened - dismiss * jumpstart_dismissed : Manual dismissal of Jump Start - dismiss * * @return bool | show or hide */ function jetpack_show_jumpstart() { $jumpstart_option = Jetpack_Options::get_option( 'jumpstart' ); $hide_options = array( 'jumpstart_activated', 'jetpack_action_taken', 'jumpstart_dismissed' ); if ( ! $jumpstart_option || in_array( $jumpstart_option, $hide_options ) ) { return false; } return true; } /* * List of recommended modules for the Jump Start paragraph text. * Will only show up in the paragraph if they are not active. * * @return string | comma-separated recommended modules that are not active */ function jumpstart_list_modules() { $jumpstart_recommended = $this->jumpstart_module_tag( 'Jumpstart' ); $module_name = array(); foreach ( $jumpstart_recommended as $module => $val ) { if ( ! Jetpack::is_module_active( $val['module_slug'] ) ) { $module_name[] = $val['module_name']; } } return $module_name; } function jetpack_menu_order( $menu_order ) { $jp_menu_order = array(); foreach ( $menu_order as $index => $item ) { if ( $item != 'jetpack' ) $jp_menu_order[] = $item; if ( $index == 0 ) $jp_menu_order[] = 'jetpack'; } return $jp_menu_order; } function js_templates() { Jetpack::init()->load_view( 'admin/landing-page-templates.php' ); } function page_render() { // Handle redirects to configuration pages if ( ! empty( $_GET['configure'] ) ) { return $this->render_nojs_configurable(); } global $current_user; $is_connected = Jetpack::is_active(); $user_token = Jetpack_Data::get_access_token( $current_user->ID ); $is_user_connected = $user_token && ! is_wp_error( $user_token ); $is_master_user = $current_user->ID == Jetpack_Options::get_option( 'master_user' ); if ( Jetpack::is_development_mode() ) { $is_connected = true; $is_user_connected = true; $is_master_user = false; } // Set template data for the admin page template $data = array( 'is_connected' => $is_connected, 'is_user_connected' => $is_user_connected, 'is_master_user' => $is_master_user, 'show_jumpstart' => $this->jetpack_show_jumpstart(), 'jumpstart_list' => $this->jumpstart_list_modules(), 'recommended_list' => $this->jumpstart_module_tag( 'Recommended' ), ); Jetpack::init()->load_view( 'admin/admin-page.php', $data ); } /** * Shows a notice message to users after they save Module config settings * @param string $module_id * @return null */ function show_notices_update_settings( $module_id ) { $state = Jetpack::state( 'message' ); switch( $state ) { case 'module_activated' : if ( $module = Jetpack::get_module( Jetpack::state( 'module' ) ) ) { $message = sprintf( __( '%s Activated! You can change the setting of it here.', 'jetpack' ), $module['name'] ); } break; case 'module_configured': $message = __( 'Module settings were saved. ', 'jetpack' ); break; case 'no_message' : break; } if ( isset( $message ) ) { ?>

        array(), 'a' => array( 'href' => true ), 'br' => true ) ); ?>

        '; echo '
        '; $module_name = preg_replace( '/[^\da-z\-]+/', '', $_GET['configure'] ); if ( Jetpack::is_module( $module_name ) && current_user_can( 'jetpack_configure_modules' ) ) { Jetpack::admin_screen_configure_module( $module_name ); } else { echo '

        ' . esc_html__( 'Error, bad module.', 'jetpack' ) . '

        '; } echo '
        '; } /* * Build an array of Jump Start stats urls. * requires the build URL args passed as an array * * @param array $jumpstart_stats * @return (array) of built stats urls */ function build_jumpstart_stats_urls( $jumpstart_stats ) { $jumpstart_urls = array(); foreach ( $jumpstart_stats as $value) { $jumpstart_urls[$value] = Jetpack::build_stats_url( array( 'x_jetpack-jumpstart' => $value ) ); } return $jumpstart_urls; } /* * Build an array of NUX admin stats urls. * requires the build URL args passed as an array * * @param array $nux_admin_stats * @return (array) of built stats urls */ function build_nux_admin_stats_urls( $nux_admin_stats ) { $nux_admin_urls = array(); foreach ( $nux_admin_stats as $value) { $nux_admin_urls[ $value ] = Jetpack::build_stats_url( array( 'x_jetpack-nux' => $value ) ); } return $nux_admin_urls; } function page_admin_scripts() { // Enqueue jp.js and localize it wp_enqueue_script( 'jetpack-js', plugins_url( '_inc/jp.js', JETPACK__PLUGIN_FILE ), array( 'jquery', 'wp-util' ), JETPACK__VERSION . '-20121111' ); wp_localize_script( 'jetpack-js', 'jetpackL10n', array( 'ays_disconnect' => __( "This will deactivate all Jetpack modules.\nAre you sure you want to disconnect?", 'jetpack' ), 'ays_unlink' => __( "This will prevent user-specific modules such as Publicize, Notifications and Post By Email from working.\nAre you sure you want to unlink?", 'jetpack' ), 'ays_dismiss' => __( "This will deactivate Jetpack.\nAre you sure you want to deactivate Jetpack?", 'jetpack' ), 'view_all_features' => __( 'View all Jetpack features', 'jetpack' ), 'no_modules_found' => sprintf( __( 'Sorry, no modules were found for the search term "%s"', 'jetpack' ), '{term}' ), 'modules' => array_values( Jetpack_Admin::init()->get_modules() ), 'currentVersion' => JETPACK__VERSION, 'ajaxurl' => admin_url( 'admin-ajax.php' ), 'jumpstart_modules' => $this->jumpstart_module_tag( 'Jumpstart' ), 'show_jumpstart' => $this->jetpack_show_jumpstart(), 'activate_nonce' => wp_create_nonce( 'jetpack-jumpstart-nonce' ), 'admin_nonce' => wp_create_nonce( 'jetpack-admin-nonce' ), 'jumpstart_stats_urls' => $this->build_jumpstart_stats_urls( array( 'dismiss', 'jumpstarted', 'learnmore', 'viewed', 'manual' ) ), 'admin_stats_urls' => $this->build_nux_admin_stats_urls( array( 'enabled', 'deactivated', 'learnmore' ) ), 'site_url_manage' => Jetpack::build_raw_urls( get_site_url() ), ) ); } } plugins/jetpack/_inc/lib/admin-pages/class.jetpack-admin-page.php0000644000312500031250000000677212654410420025371 0ustar eacbforgeacbforgjetpack = Jetpack::init(); } function add_actions() { /** * Don't add in the modules page unless modules are available! */ if ( $this->dont_show_if_not_active && ! Jetpack::is_active() && ! Jetpack::is_development_mode() ) { return; } // Initialize menu item for the page in the admin $hook = $this->get_page_hook(); // Attach hooks common to all Jetpack admin pages based on the created // hook add_action( "load-$hook", array( $this, 'admin_help' ) ); add_action( "load-$hook", array( $this, 'admin_page_load' ) ); add_action( "admin_head-$hook", array( $this, 'admin_head' ) ); add_action( "admin_footer-$hook", array( $this, 'module_modal_js_template' ) ); add_action( "admin_print_styles-$hook", array( $this, 'admin_styles' ) ); add_action( "admin_print_scripts-$hook", array( $this, 'admin_scripts' ) ); // Attach page specific actions in addition to the above $this->add_page_actions( $hook ); } function admin_head() { if ( isset( $_GET['configure'] ) && Jetpack::is_module( $_GET['configure'] ) && current_user_can( 'manage_options' ) ) { /** * Fires in the of a particular Jetpack configuation page. * * The dynamic portion of the hook name, `$_GET['configure']`, * refers to the slug of module, such as 'stats', 'sso', etc. * A complete hook for the latter would be * 'jetpack_module_configuation_head_sso'. * * @since 3.0.0 */ do_action( 'jetpack_module_configuration_head_' . $_GET['configure'] ); } } // Render the page with a common top and bottom part, and page specific // content function render() { $this->admin_page_top(); $this->page_render(); $this->admin_page_bottom(); } function admin_help() { $this->jetpack->admin_help(); } function admin_page_load() { // This is big. For the moment, just call the existing one. $this->jetpack->admin_page_load(); } // Load underscore template for the landing page and settings page modal function module_modal_js_template() { Jetpack::init()->load_view( 'admin/module-modal-template.php' ); } function admin_page_top() { include_once( JETPACK__PLUGIN_DIR . '_inc/header.php' ); } function admin_page_bottom() { include_once( JETPACK__PLUGIN_DIR . '_inc/footer.php' ); } // Add page specific scripts and jetpack stats for all menu pages function admin_scripts() { $this->page_admin_scripts(); // Delegate to inheriting class add_action( 'admin_footer', array( $this->jetpack, 'do_stats' ) ); } // Enqueue the Jetpack admin stylesheet function admin_styles() { $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; wp_enqueue_style( 'jetpack-google-fonts', '//fonts.googleapis.com/css?family=Open+Sans:400italic,400,700,600,800' ); wp_enqueue_style( 'jetpack-admin', plugins_url( "css/jetpack-admin{$min}.css", JETPACK__PLUGIN_FILE ), array( 'genericons' ), JETPACK__VERSION . '-20121016' ); wp_style_add_data( 'jetpack-admin', 'rtl', 'replace' ); wp_style_add_data( 'jetpack-admin', 'suffix', $min ); } } plugins/jetpack/_inc/gallery-settings.js0000644000312500031250000000173512654411246021034 0ustar eacbforgeacbforg/** * Jetpack Gallery Settings */ (function($) { var media = wp.media; // Wrap the render() function to append controls. media.view.Settings.Gallery = media.view.Settings.Gallery.extend({ render: function() { var $el = this.$el; media.view.Settings.prototype.render.apply( this, arguments ); // Append the type template and update the settings. $el.append( media.template( 'jetpack-gallery-settings' ) ); media.gallery.defaults.type = 'default'; // lil hack that lets media know there's a type attribute. this.update.apply( this, ['type'] ); // Hide the Columns setting for all types except Default $el.find( 'select[name=type]' ).on( 'change', function () { var columnSetting = $el.find( 'select[name=columns]' ).closest( 'label.setting' ); if ( 'default' === $( this ).val() || 'thumbnails' === $( this ).val() ) { columnSetting.show(); } else { columnSetting.hide(); } } ).change(); return this; } }); })(jQuery); plugins/jetpack/_inc/genericons/0000755000312500031250000000000012651056012017320 5ustar eacbforgeacbforgplugins/jetpack/_inc/genericons/genericons.css0000644000312500031250000000023212651056012022163 0ustar eacbforgeacbforg@import url('genericons/genericons.css'); /* This file location is deprecated Please link to the genericons.css file in the font folder instead */plugins/jetpack/_inc/genericons/font/0000755000312500031250000000000012651056012020266 5ustar eacbforgeacbforgplugins/jetpack/_inc/genericons/LICENSE.txt0000644000312500031250000004325412651056012021153 0ustar eacbforgeacbforg GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. plugins/jetpack/_inc/genericons/genericons/0000755000312500031250000000000012654411246021463 5ustar eacbforgeacbforgplugins/jetpack/_inc/genericons/genericons/Genericons.woff0000755000312500031250000003324412651056012024444 0ustar eacbforgeacbforgwOFF6¤ V¬FFTM6ˆuëº(OS/2 E`d,uÅcmapˆ–²©r³¡cvt  Dgasp6€ÿÿglyfT.ÀHªìIÎhead0/6 `BWhhea`$¸hmtxèŸ8XðSrloca$00ˋݮmaxp€ éname397R†Ÿpost4P0èö"—¿xÚc`d``b¥-Zòñü6_¸9@à’bÕZýÿ'Xœƒ D& xÚc`d`à`‚ ÿÙl Œ ¨€DîÖ—è@.xÚc`aÿÌ8•Õ˜u&£„f¾ÎÆ$ÄÀÀÄÀÊÌŒ æšÂÐÀ ðUœÄÝÁUƒ¤DûÓÄxÚ-O±ÂP{‡°³³‰yáÃwàì‘æ·tO`‡pxXf`N#–?®U¿'²³wú•xÕ/+òX0®ˆßIoéq2º£ºÖ_Í„Ÿ¡ÉÀ/ûâÛÂ0¦wqFïÉh‘’´tC«‘øâ‚6é™.T•—dç8Um—ÙÑæÞð¡ÍTþ· -âxÚc```f€`FXä1‚ù, €´²€èœŸ8?I~RûÌñ…ó‹äÍ/–_<¿D~ÉüRöUüÿ° †O Ÿ>)|føÂðEà‹Âƒ/_¾$|)øÊðÿÿÿÇü,||||L¼šlò˜ü“g´à¦åp7½TžyæÑÑÒÛ„E Qˆ¬ñ|³I>±!à±yd›'*G=6ÀÃa^"‘>"h)M$@R†H?¾*kéý„_(DL£âóµ`YnÉ\ Hîr¡ÀLêc‘€W±Š5ð3XxäÝC/¢{Ž×ïØq|‡JÎÅ,d)úŽì`¯¦jІÙ:H1Šu•Yó,Rß"DB‚7O°º@´ÉQRï›5OðyC‰Éš@¾ÁÆâ…>xpßúqãÖïÓ/ýýDøÅÛ;Â3¯9k{G6¦O5 ÈYm »ˆß,H쥽Ûg¼rf¸cûÛY}bÜØw&`•ØÁ~æÕ§õ{0šŒgÞS~fö°8…µM Ä(`_kgñ.…?|ÆßþÌÅ„VE5ɦD#1·]Ön[ÓOÖÜv ZNÉÚ†W*RŸhÂݯlØsê|KacÀÆëcÍŸ©>…sAà˜n>½¥k‡ P¬5ç-§7ÙÑ5(HVO^—"aãj·™°FÑXÔÄo6¬›)âÀþÇ'î†[ ncìõ,YP< Y‡»:kv¯Ittõvt¦_®ëhà*9¼‘j wîjlmÊš5S¨ÖÞxW`÷BÐ6žÄ Õ6>¼´ÄÚYE˜†ò4€iXÏ‘^•Õ­€ø°½õ¼n•`OÜíGøp„|^V¯XXѺvìèÒh‚Ð`ËžS”ßãm‚l2‹¢ èÕNí´s·;ºCD„̸ÉXª‹ÍV¸Ø8cÑHƒl¢‘@¥æc¯Iù±¦¦ØÜd f/^<»³¦Õ?eœŒÏâ!ÄnÝuktn²« ŸÏùŒö}6§³fÍc/=<‹ÀvVpæ‘+ùÊr f›UP$U à¤`Å´(Xp‹† OPAE ‰ù¸8ŠÍê’Šš'„ ’‚C1ÞîpI—·Ú­6« ”°¶æA\ vÈ:ùümËŸ¥ônŸ‚®èœÅ“&Ô–,WŒÆ|‹”Wß¼8~ÕÍ7__4"”•Uo0JËKjÇO^4'ɵ‡ÆëŒ¥ÞX©”Sd49Ec©Ó› ŠÃ»¨|¾»hêÙåm7>Ò@Ø™~µå!úúÙëUw¡ô›é£8KyýäE›fì½<¿büÅu Êæ:¿Àë¯3)‚P1µ!^’ݳgúæE“ëýf%Ô™•'D«¥\_q¡ f;Í º†y¤Ü!®¡yY¦ò)uY…n%üÂYhxh ov"*BxŸˆ‰”"¶Ô“™Jˆ¿>.ˆ Qíþ˜9^.»ÀŒ¸bvÄH<ÌÖ½.Á“°DåqÁâU|vK‹T["{q0à“ÈÞ'ÿL7u½+ŽßõV!=Mç5vž¹ïŠ?‚Ç>.HÐèyù¸ƒÿ×l/ *ÀÄ«g_¢¯y ¾¼eëãnÍ}Éo•½“¶,r-=D¯‚]°,?ÿ9ýœn¤Kðøüç?‹6ªàÆ6zôµÞ½+ ½7*¾›þVØœxˆþnýÛ›T«uÔû w¹JÃí9¥JáŸ3éáöñ!pB¬`Ý'4º[Z˯ý©vAæX /”u W!@ðFQí¸’äsûíáz\ò8½0€—á8¿^Åí’gh‹®·;bñ ¥‹(4ÏúäåÐ*[÷É“–_ôÓÙU”¦ªØá,Aè| ¤Þœæ8ü#+vñÚѧi_ªaG—ŒO8¶c¹òÇX®›áƒÈ+#Ò"aO”èååŠÒn˜O_¥½þ³£züE×¶Å»œNuþ’ŠˆÓ(}Mö'@ ‘³ÆÇJQ¤™üÕ^Q0DŸLÛ,ˆÌ²„¬âØ`7³AñyqE˜c€3¨Ç¹› v Xbñ1a@`@è×;å>¯¤¨õáú؈ÙUQÁ""ŽÄösq~jUŒ™£± VÀÄ/¶ìÙ÷ò'W¤û¿Ø¶í ú§3oÓ·\/ _ÿ£û/à›*HyÕQh‡l–ó$U˜ÜÆUôÓ{o¡ýGÆùWø¼6KžµªüO]ÛnÍ·Z7N \æóa¤­RðÉÿ:ôžªaîû^ýÉËûzFnû&òÒSy§é†%Ré}}5!YJôH{ûvCŽ’SW76\šõ ~ƒ;»$¿Ð–ÝÐKº;X% "”yEYè»K0ÁlUðº!+©VTÞ¼3ÕÐ=ïas] ·Â?Q–n%ud8E»Þ¯!!3¡Õ‡‘A,Î~1îñ‡m>›/ꋆ£aá=!³äšÓ×½·ûâE÷¿{ùÚ7Zw V£½ Èîr•›—>ºdÉ£KGvIt¿¸OgT’ OßqÍ’1‹w¿·níû»/ž<ñÈUs ÙªQ?úÛG—ÇÆ4½Í“c=Ew)Ï#'1c]9# 2qdžáÅ>FEØT…²ÇôØZ|&Ø„ùô ´=(L[ºlF¼½ ª:äzhZG帡¹Ùô$Á„l›ÛSn-Ÿ¾yYñ¿n^4¡maõ¤ºÚI¡³;óò+ýawq,õŸâõó·šJ|ÅÅ–ìøe¯f\)=?Ët“æA+0½Ô?± ˜‰„ÕŽ¼š‚õØ l*Ö:λÚfÒW%[x(†ô›FOƒ©­£¦O)5=´©~Ú0oý †,oƒwÌÈÌ2Õ—ä"õ},nœÒØŠÂaÊ…©¬Æ.Iö@PÀ• Ä-lÄX¥¬¬?ÙÁUBÞ™‡I‘©yì/Èç‰,Õ­ûãÛDªg\µãà’ÅOz'xçß©–þLʳo½dÆì@sžãê%kŸ]4æ†×4ÿÑ›WMÎ0«ªhTŸ}æºxùÄwýò/_´iïù>|q×Êæù úÁ° Ûc_-2l*6šnŸuûLºá4lº¤iÖŽ7z&ݰÐßÓM=ôýt\[î¬ÙPýŒÉ|/ýôu×½!wêÍd´3Í@ï2¬]}ýãwôOŸ×`›½ý­î±›ÖÖc[³H®hºuC¸úÚ;SY£nÖ3ÔWâM^ûäá²[&Y›Z–_vÍú߸<Óçw~˜ W[ƒÃ,œY\Y¦fç9ㆠm÷8<AÈqš‹Ûüþ“]a•”M(uy¨ôùÚƒVÓ"‹ÊÜsjG^2匹hu4Ò^m°çÕ /ohžrU4?gå}7ýÖM7®=zïeV÷Ê­Óî¢O¬ßÐ]êü¯=»`å=÷þÁ% 9·¼Kÿ¼{ýÃû×ÿÿÄu™>÷cu¸z=¹o\¸òä*H¦<Î|r ±8Š'—ˆúx,¤ø‚Þ@&—XjHÂÅÒ"ºD‡¼[-š0föè&g^YåŠÕWv_:+a6#ìLV·?RYÕ>ÆlñŒ5¬†)ÖĈٓ¦¨ËÊ[¦wΛ1Òb‘ ‘äØãÆ—‰&g‘ÑxJu4)Í?jÌÃ=õ³»7ÌsªCÄœ¡õ3çß°íТ9›gÄ-rn®ªÐÿT»Ãíò¹J³ÍB‘+' ½•yåÕâ3©9[’-Õ£.3ñúζ*o¾!IÉ/¬'««L›ØX•“ý†Ñ½|Õƒ÷¿:oòåMn!¯¤(+=†ˆAW  !×aïØUn 2¨‘P,2æ&¢¾Ç”Ùff© þa¦ÚÓ‚}à9&›¬ƒdˆ5-óžÛ2t ¦Ž ä,¹j唉—¿ÿ+¤«¦Quëõʶ±‹^xp{ÏŒ*zI“×7¼©}úò—»Üm)ˆÄ;Uõ”8Šj">o‘sذ3»·-_1¬!휽q^Ë0¯§¥õÒÉÕ¡B§ÃVRVóúb‘YW¼gU·Øºìò%n˜Ô˜7|Å®gßëiŸyùÆ©w®ï¬KæTÍèÙþà ‹æÓß¶_:{xsE°Øé°æ|Ì#ä-w»[B6{yyu¨¾©ˆ38dBÛ‚KF·%V³Éãª1´Ênóx¢µ…E¨%'M¬ qþŒ¬ˆ(ÌîaqW×ð¬T"Ká%$T‚‰£8ïxfFÁî©·+š=XdgG2š`¬&F^1nîP­·nÕ¨ˆž9c ØMJ¤¸®Üà êgLÝ•¬¨­´‹îÿz³lªö”´ïœ>s¯?Ô)ýÛ°U «=Ü¢$µdzÌf¬e «¥[‰Ž`-ÓZ¢½œ©3 »óÇ8Wí(X[¬v ¬Ž3—(Ä«0³nÄbÕí?€Žó®Œ^„é,(¦r bë Ô‚~Ñî`÷.^ÏêÊïxöpG¾khþ°Û~BÿÖ  µÂèy­­óZOeÃ격-‚ï‘Gè>F?xäð¥>¬¨™YZ5¤Q®ÆQ½oX(ïŠWèôý╵¥•EëfÔÍ(9ôßód³Ù …ÓëÚ–/o«™R'Ò3“þüdÉÌúؼ˜hÈwUæwtäWºò‡jÅâ[[õs(4¼¬vHCpxjY×ËVìê:xâ`—poMÉÄáå B{¨%TH=ï,®¯[úìÆ)S6þj)êᑾëª ð†=;G?¤nùË«'…šéµ9 *B±yl}"¿fzºF|$ŽãÁŒ0Líù–…0<6Ý\λÍaSeOFÇ Fqý¡4Íî·{kæÝ7Œ6/jÍèùµ-[^—îC¡ÎÛ=þîy°ü>Œ–ŽÎ³ûm!/-›{ÏœhçF=â©©ñÀÇ›žqÓeÕ?>Ú¹k gñD¯#Û?ÀyOÊ3|›oâèú:ÛÆA~Èörw!©Ž;dÆ™ý$Öï’]~ú}Ïß• ÀrÙÔ0ºÁ$«Ü¬~Tßâ9Êìè©},}üü…R©ÏW*Ý®õr©Ö=!FÑd̉یu·ÁšÔçt;¬,ÂV¦þ.äÓí©Ïa ½.ßú"õÅnµ•¾EAyêYðÑ_Ñ· ãéô!q/ýL€ÈÙoèÛËzèKÐÒ³Œ·] „*s°í.2†·]5Ob*„ y k8L2¾…ë›íoÄÍȰ˜r¡³0¦™pË¢hùÕÙÖÈYV¬E5®3Y¥Wæ ug[ËòËš+„S^ÙiI­²•ÊÿtZKË>°‹‚K”\ú÷bŸ¯FdÛ T²h¥´ÅjµUØÌ‚6䊲ZY!ÛUU%tõ/íensŸA‘qžæ9ó »r­>oq°Ø“cá8ÅöGØ~Ð`íoÐfùÞÍônÇ:g-ßSb{¨ü9<6zÅÞ~Â4DLžâò<¥!ÖúIf.aÉ cÇ9Ü*e„ÌF „K!E(ßìb€¦`0EØ>S’Ý“Ì Ÿ‡eÄŸ¶kfØ43k껈Mx'YL¨l™Ä:pü\w÷sô,ýž}~õêçᎵïÜÛÙyï;kwѯv?ÁÐNú´JV?¯'bÉ‘çã‹ÏŸ]ݹóÄg'vvî¤_Ñ×1¹Dè\úŸ0ÞÓçÖ‰ð½HÞ{ŽÚ­"ëUëL©‹ïfjLk>µGÒø&ýìÔž~ìˆ=§Ü®lRLªt[É Ûð°0ã—>­¸þš/6T>VXXF¡sMÀÎNFû¸Æ)â9ÕëD¦HàÙ©hgÙÒ´³˜Œ%H±³p ऄ=‡^Ly~]\d(iĺԢ¦¬ŠŒGÅ-z‰ž&¨­£Qu?TU ËRBáuż ´)‡››&¿³ÆÒo@0¨X£âœP2aO:ŒÕfú¡žÎ¼{n;›Õ˜_¿§”èiØ3~Ðô5sÈw5¢ú¦9_3a¦zµz5¶Ç@­E€8¨o>ߣS!n¯° Êæ¦N•75½9ÖaÂ×û…²þ®ÀB³¹pêä†ýÂ0žÊ_Sšg …§KÏHÜï÷(jm-< ”að ¿k`mrœ/ %Øw* ”f;õånÉŒìŽ ÏGC …ØG4jºûÙôúaµsußêõG¾<²žü·Õ™'¸tv={7¼™~¸~ý€}:]oéÅ‘tQ¨^Ø-QM6Áß¾Ufjì@žAWSӷʥߜ«•a°mœ¯·RÁmW6¶ã‰28úzˆ8Œ8Plé ÿ¦:J&!¾’ú7õâò@¥(ï\¬S)¢[5ÛÿgÐ4B «"w¼˜¶CU#ÆŽç]ˆŸ2œ¥òú%òž/—RÎ,… 9~XK·NzåÝ—'Ò[áòI¯¬XñÊ”af®Sô¥…[e|“Ê—ôô,ƒ3pfYOO_%\=“gLŸLo¥[ñ /íÑ_8%D9:ŸWgæ‡á㫎€7Œ5²º#­Œ3Kx‚ã¬!¨KdðÞÏ™#6(®óM‰y`¿rJXÀ[rç/vm¿¨}Å+IXûÇÐugÉumäͺóÿÞHmáÕ€·»n{xoZËš§ö¬@Èýž¢=§„“t/kÓ”íÞé“áŠwáCž¼Ê¸7õoøW]Ëy_Z³`%ch龨ÿÌì…õ3 £^Hh´—öjà'HÈÜk,Mz‘ÛÑÏÏÃ@úzÅ„Ö×Û׫‰ ~ê÷KÃæ¨––+ij(óp±U¢~Î"ì*ëA†UˆTrxÀø>÷“‰8šŽ=É( Ð0àìO¾¦ƒžBቊ èâ_oŠ« ^3ç Pмa1²õjÁ?‹A%´üõSÿ!Z.LÜ¿_ú1=˜ú&Òý‚Ú@p¤>eØ¢ó »6‹¯vÞ 3£Ô×´>¢‰¸`˜”¨S½ÐKçø1ã Fî“dü3y‹HáOÄß sš^vbU%ï¿^¥ß3<ÆtŒ[ÝŠAõã|Ä>êíÓhBÔR/f¤öj  4˜„á –Þ§A/¶œ=ë[ÀŸå²Giþ„¹³!6fÜ|Tä9Œö %RüMVèŒ79¸¶9ƒæ¾žˆPî3Õ£sÞdA  |f¦¡˜¢ï9´õ“#t÷ïÂ6˜%¯®ê'óüœ~L<ѽ·ÿ䌻ÄïaÑ‘¬z•þ•>I/?ú$¡èóçõi<—íýß1(ê‹ØNî£âByÂuR\¢-È,–f1x,ê[•y‘+f|sºuY³Ãᾮ쾼»’þ_wŒÐÂÂܱÚü¸/1³k˜ôÎØ Æž9ÊWDÙžLfŸÁ†ØÖy CÔ]â\ßäH† †èëaÐ`w°ÆÕ p¥x™Çým’þæ¥YnmÔ Ñ-“˜ƒ¨¾&aøK×2‡ÅƒoÆâ/yc%œJµ7jþØðSBÛÈxìø’9,ÊëKi-ï=Ýߊû1Uf¼˜òÀË8=.+»›»3ù¼NK|­qšÌ—8‚k,´fÊÔn\7»2×¥”v5Ãö«60?%A›²¦{jšl½L›Ù@6²u?QØÜÈ#…º‚§Ê°>1£ QÀŠ/°‹å\rÌ™J—ÓåSçì„}7>÷ܘ³J˜4Y{ À]S­ÝY)çs`xŽ9S1<[ÀðL>É–’ Ä2ç%ô¤vR>¹ E`¯Ö‹c…sÔ@¸)ÂÁbãÅ®ò5Ñ6“q™â‘â¢pg°!˜GWu³ ;L8ˆ¬ Ìâð˜Êp‚qN}øË_퓚Ñþ?>tóéG­—7 [:ö/)ÍòÎø©KžXÅâ”R¼ÿ$Ô½qÌÓôoUôŒ}ó« Þº ìtò¥¯><ß·¼3ö×—®=²­|HSL'±­’Æ[Ö¥ÆüîÒõdøÃ:µÏD:ÅYTOúð½>ÂÝÒÌÖg*×3ËØ*çü }‡”Þï3§×‹0Œþ ¶kÔk¥Óî¾Q81Ø0ü}÷š5»×È÷Ó2Ä'"ìIÒ¯- ÙSœ>ôð–äËð…»’ ^™2÷CU ¯<·‰Ó±"w ¼ ËŠË”tަי2IãŽù‚«?íý©3e]üÈ\ðx¸BµɳÏÄÒû¸ðüiçFæG™C4¡«üœÀʱç8ü Ð_¤úeŸNŒ%N›™DÒs=Ë5Jæ„Ê#âDeºh ×guq‰5AÚŽÅmLÜ>9h³OUol]Wzîò=§ %Âõ²ež‡ÃÕK7œÚÓÒÊצ¦‚*§ýaíVÆ¿ƒla‘l'MDZ®L&?m;š¤ ô$¼mmŸ&·ÍÞÛOöÊ»’ÇðŒ§ àfŽã][jÇ^ É.™Ñ(õ\ÿ‹zEd½Bܦøùå'¸¬°ð¨$ŸSË,˜Å\Té/äÇ©…Z:`–³¸ØM×<’[$µ™EÁ¼PaÖ,j‘ï ¿Àw;às®Ë'VÆè˜€„ˆTo YM¯Ìd±€Ô&ÁÓ1,I°tX#&ãV!? l ¦z| D¬óÆÄ,rwÚ>>W(VM†s›-Ò̳4O5î’LŒ"«¼ÆH›g‰ ;s_ÀndMù¶þç#AœÙ5(sâ\$}ñ°Í7ø>íÂÀ€tÆú{B¼kná¶ Vçoíbg…ᘬdøY·0C ³žõñ8‰9³héÕ.â£4Žðü~.È?Ì®ÍTŽeŠ0œ+Jci™9+cVÀL™¨á1Åø\Á˜ŠÛ¯Û2vp†3Å:3y.§¯à± #€!D|‡7ˆ_úpoúô'ýä'ŸÞ¤pàà–pýšzónú¯_–ÒBné/!›ÑD¢¯{%­Å1|NC«Á à‚°zÌõpÞðÖbãt‡_E9¼±ª}\© VMÇ.`f&Gðâvo<ì¨t¥1âö”`^ï+=íIH2uЇõü’9éÐùe Ü_Ÿñ*#·à™ØÖ–Gåò1-ó.gú'3G¤Þ›+è\ÅuÇ-r(À÷ñçÙ°ò™˜(åÎxòE¹ï:0¨Å4ýŒe³a¹JM±ÕÈò”›úºM¹‰8“MÈjÓ³™Õ-‰sEáªE"3uûˆX__ßw„Ù£ØTÒôù|K‹ÿ4Î4MÑrº@]@ªøÎŠêWT‹dD1h å ÓãÁ¸‹‹q¢rÜ!Ú~‡jDZæ“Û^¯.h¤¿«i¶oyc„³å-¶¦Zú»ÆO †O¡®¶É¶å‘Ö‘oÜjoª…:M7qøNßjo®9—RÏ 7;94×èI?Ñ3¾õu̸Œc7¹ÀÆ`E}þ¼/€ùUˆùùÎi” ¿ê7ŸÞ²iƒpx|á¡Ô˜ñßú "udËéÍãSc6lbWáð†oñ‡âsr¥<£W  ²ÕÏ–»¬s‡”~a,a˜°I#áìÑcõÅý&“ÁluŸ›+:2é,‘ÅfD½Lt¨fÜz€sñ”ìËýë‘o28¯»‰øð +ždð~ÐþC&-’! ›žúw z‰). ¾Ÿ ƒ¾ŸÀÒÒßOˆÀ¼ ß‹¹dæêFð4Ö¥A;Ç€xF_±xþ:º¼ª"Ç#–¿‚ÚÃ\Ž©ÆóŠñ¤ƒŠÒà*  ¼Ú¸ô3Eó/Q°ÿE-S<¾„íf­¨Æ…óÎrἓ2›tÈ×<¶02· ç°LGû½´WÛû­ WÏ‹éK2h¡i9v^yŽïþ‡qÖo}å“Ì[/(èì‘óôÈóÊwúÎ5®*ß®f@Ë~¥Žr¨ï)^ô··ß±ÿçónZRQä,,ŠŒ.v¾e2™þ}u§u'F^´\AA‰¯¤Ø;´ºjdƒ·Ôj«Ž¤}áuWŸÕì§â¼a† ޹'©‡Í '/HËYÚ޼D˜Áž¥ėº™=#caLÇLìøFƒ° ÏoAÍ.\Ì‚ £)–y´Óÿ9Q©¥>ëà¶H­cÞɼ.܎ɦüîÿÄúä*ÛØNÓ@[{Ä[À…Ò+¿~BSðÆg_˜pÿý^øÕÆŠæ 8e—ŽùÍk÷¶ s÷Ýc†¶ÜûúKcØœ —ÀIu§âƬ Åì_"¨ÑÁ ÚAá²ô(Ôœ8*=qôè ¨9Ûõ5¯å†mÈ¡¶A¼¶¾F_ۯѲ‰´0Œë§i;PÛý1 Q´¨Å}Ë8ʵ4D¹°I7)ˆ*¬}(ª¬îQ&ßu­Ìa„Yóð„Tö\ nÓ0ú~»¥?\Û—Ÿúw%kä;Ê,û2-(þƒê•Ú/Ï¥;tþPÉ8}^îd‰Š¦ç¨Œr Ë5æ´` ¢cö4“À­ž €E‚rhGÛsKú9Ë f¥½| ³Êèñm©¦ß§ý%t\Ïã>Õƒs•/È‹|Çûçl"듌,òreÑgªç=$>ÉÇ®N&W·¢%Üàó5„[VŒã1À{JÆ•Ç4Rvˆ¡AÇùQ6³Ò@Äy‰Ì¿Ùä[õÀ-# ¸%-¬†aÝ)Òí15/ÅÅ£ÄçQIn¯YS>÷âzm0wⶆ ‡”9º±sdO”Z§pE¸Ÿ7ŸûéÍl—y‡tÞjº'ªÆé&Ó7"ÏÂ6'÷×õp”TTwAñy˜)ŽAh%éAʤe_®^½pêÊ…ý äú%sêê.]»}é‚·mì˜{–ݘ§Ý´ú¾§…_ ×ZZJ[èñISo#i;:‘3ûÃ>1¬zâa‹/î‘gk_h4QÁ.¨^r…ŠKδÍ[ãÜ"›aëçŒc ˜‚Ì“³ 8–Ç8q{û9VJ:]é{SHô¦€›M#÷³fýÊxƒ‘äpgŽ Ê~‹Éca°Ù6@· «~# J¯éÊ hßð1ÓÍ- ›˜µo4N„ñ^NcŠ¥g /l„Aã,Jãj3¶içËI3ùóe˜#¨¨#¸»e0^#äC0BuŒ€2Ô@¾Žxp„ªüËY"¼EYGxæ ãùBÆa  ò!®–Ï7+ñÆÇ %‡Z#+Ì]ÓQ#8ðmIŤ"æèÈÇYw¡ˆÌÅ,ÙäÈËhSò}E…Ã"AYväZrýâQÎÂ\‡œWêp† ÅÜC¡­"bdõH6Có¤f¥ 'dwq]¶è'µn_K)É®M–ÇsƒÅ^‹Çc,Ͷ&cCå¼ìP³,ÏçÌr; …¡`RÚ˜?$X… £ r– N×5ïn’²²G¹³Ô<ƒ!ßšÛò-£ë¼FƒÇPS[&8Jê+ÊM‚Gú-Áý/I± Ãî›üǧ²ÂE‹M,¹ãªÙ—guú Kõg5ÇdU°û²NÑî4Ú³×'“œ%³|¥Í›Õd0ÿfÈ1Õ,:ä"ÛÐ|s‰7à0™³âV‹=ÇT Z,r¾Éb-t6;k+*Ý®J§Ñ<¥¶ Õ”eÊq”‡Ïø í¦<ç–­ÃJ ¢-r¶QÍ5©v¯E®3dK–Æ‘£Ë:e‡É©pºWt« ¤Œ ò[<~€Ïû~}à ¿¾A_¤“7ðë ¿´Ÿ$³»ô2TÇ9o _kb¯8`¯Á[+$j±Q¿/ÁÞ‘|/ ã‘kðXéKp;N"½Ï%pþ¢õ<Û*H-¦¯¬{.!'óèß-§¿–1!c‹ ‡tTyzÁKib‡HÓÈ¿Fî'c™.ܸú¦®<ܧïE É´ÃÈØµÞ˜ÜèÒ$Ÿw݆|¡ŽVµÛÑõ€wíXŒ°ó´2„YÐ-Îÿö=-K2›;™ï¸èÒ¤0^DNyŒÈ@‚iNxP’ çaz˜ã[œc€Frõý£ˆ:1[$¾cêó! (ù 0_.‡nn,ƒs&ŸbÿôûÁÜËOüm Û£ÎNÿD—?_ÐòýÊw&´§¢@Ô¯jÔ´3×߀rQ¶›¾ñ NLvÅ MK8ó1±þV†:‰Ô¿ð%”Áߎ&I;™G–ð=£´O` Ä™S Ç4Ã|lÙðŠˆrå`´™Õ¯Pðü¹àª u2šö±ý(ñÒA¶›“2'š”> úÒjÚù—ùú¸ó‰ð’ªÒ÷cÖyÁ—Œ>ž'xûÀžS™68“è§ö¤ÅÊ™ä e8™™;öÉ)5¡ôòý4¢ïˇ‚ˆl×Á¶G3kV~Ä·¦UÌhw¿Î$éñÿÇ=ð§oDÉ=Ñ¡ï¤Àgªƒ³z¶1“»~–ÞÁ`®©Ÿâšòð½÷ˆ»Àab׃:Ù¶ùL-éf™Þ±Œ>@—ЖÝ1ö•MK÷¦õ¼B¤wÓ‘9þöÍGæ´]biœë…4šmY*¦ÒÒs‚É8t‹W%ûæ×\ ¬­Ã!d[|åAe Â}º5,˜x-ñ¡Kp·Ì/ŽÝ¨v›ßêÞ Ž¼]úØç }þØR î*Ii;SÃçþcSçã?iªØòk¾©0²míßÊóKœxôÊ[6_ùØqýn+À² ­˜dê‚# èq×cV˜åõúí?ÒÙ¡ýbó•áÎÄÜ[&gl]Ú ½lÁ“F YÓMzlÝ3ž"qÆÀÆ2€À¸=lòVÉB-ÁêPíÄ!¿~ß½GéåôIú×WW ¤ëùK þ°S²êU(i°íèç'žšþm:¯Ã«8ùÿQÊýÎ8Wä$Ú+3¯„`Øî˜4uÏš5S"sÂÏöZ¿|ºŸ<ý¥µ×ñµ5S2eMxN„’©‡èCèP0 m>t(íÓ,bKï©É$½§vî;jGƂà Ÿ¦Áa5Ý'ƒÎœ@eÎŒ:}W<¤ßËè ¼¿³3ß™é?æ.Àð–ÙÒ±ÖC¬¿ù7n„×ÍÈvÑ@ôÈ¢ÿ<" 1î¹à‘È:ºªÖ¡¹ªèÖuÇ„ÇS3:‘:ñNêáqùczÏèž÷߇…Q ¡×¤n„[è:á¸1óÝ{¦ŒŒ?„§P…”ɱc¨îz1½7¸~ùƒßy%/ÌãX¦ŠßÎŒV°úÁ²´ï×ÕìÈð+™ýɈ³‹ífsœöpos6ïÔ@a™=…ú¸ÝÁlÖ Ó~®vu±Áà¹ã‡Ìºa¾ëÛGô;ʸ12.–¤ÿÓ¦kuêñ”‡áÂïõªÉ²è;½6õဇ}‹ÌvíáX˜oÜÙãºRRžþLÙjwÔóG’£ÞnxÆŸ„3Oìâx膉Ûºõot?½îg!±ËâÊ7æçýþ5võÄÑ&“©ÈéÌýå%?þâ¢\­¤<¸‰>óȸ[§Œ‡Ê§ÒóËŸC +Ç©¹jÂwÐëßé{$ä»åÇ~}f_]¤jƒ³†‰¼¸³Ëò‘æ©[Mf“!»Ølså:›r>ªq5X'ÏÆMÍ%‘¬Ü`Û¨\pFüaç¼YaÛ˜@870%™s^_‰Ü›´ˆÍvÿOøf¼èË0[gï.¡dWßÅÊpZMïÿ쯔(KΜ…‹?…ÇäÇh5c?û<ňôzj”8çìŽcÇ8¥mIéýåÁÚ&ϺÂsžg&WuØÊä1üüÿ݆®xÚ±jÃ0†%NJ3”~u)I‰l0$ÙÒB§ éŒj)Xö(]ûû}³¼CÏŠJ—B+îÓݯ»ßp…O0œ× 3 ð⸃ ¼;îâ'ÇìÎq×ìÉqŸò¯¤dÞ%Ýîí«–|<;îÐÜ7Ç]<âñŸùŽ{à,qܧ|48¢B‰jp ‘aD1†@„câé$Ñ{4t›ÁBŽU™5f#‹(ó•–ŠÏ;1F’di•ÒNɨ“¢·XJ%«2ÓŠxMÅœšî°%Ö2ov[‚ÔŠk+RHk+$c3Ú¿5>W"L`Jûû3jU§ºÊ%CÁgüÇ]¢I0 Zóÿp»±ECem‰°BØÈÊ”Zq!¢PÁÿîùíVZ±xÚmÒg“U…áû  ‚’…ÛçìÓ=ƒ† ’³(frPrFÉ J®âç Å}‡OtU×úÔOõ^µZ]­·Ïÿ­ÖáÖûžWo^Z]­at1ŒáŒ`$£ÍÆòãÏ&ò!“˜Ì¦òÓ˜ÎÇÌ`&³˜Í'Ìa.Ÿòó˜Ï²ˆÅ,ás–²Œ/ø’嬠ME"jºéa%_ñ5«XÍÖÒË:úèg€A¾a=ØÈ&6³…­lc;;ØÉ.vó-{øŽïÙËüÈOüÌ/üÊoìc?8È!s„£ã8¿ó'8É)Ns†³œã<¸È%.s…«üÉ_\ã:7¸É-ns‡»Üãoîó€‡üÃ#þå?ó„§<ã9/x9êÂÉcƒU»mVf2³f1k³1»Íž·™ô’^ÒKzI/é%½¤—ôÒWéUz•^¥WéUz•^¥WéUzI/é%½¤—ô’^êxÙ»²weïÊÞ•½+{Wn}טÿРРРЉwNçž°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°Ÿ°ŸHzI/ée½¬—õ²^ÖËzY/ëe½¬z¡z¡z¡z¡z¡WôŠ^Ñ+zE¯è½¢WôŠ^­WëÕzµ^­WëÕzµ^­Wë5z^£×è5z^ÓñŠ;+³âΊ;+‡¾kÌn³Çì5×™}f¿9`vÒ]wYÜeq—Å]wYÜe©š×„q;ÿÿxÚc```d‚‹+ŽœÑ—«ÖÂhSÎ@plugins/jetpack/_inc/genericons/genericons/genericons.css0000644000312500031250000006715212654411246024344 0ustar eacbforgeacbforg/** Genericons */ /* IE8 and below use EOT and allow cross-site embedding. IE9 uses WOFF which is base64 encoded to allow cross-site embedding. So unfortunately, IE9 will throw a console error, but it'll still work. When the font is base64 encoded, cross-site embedding works in Firefox */ @font-face { font-family: "Genericons"; src: url("./Genericons.eot"); src: url("./Genericons.eot?") format("embedded-opentype"); font-weight: normal; font-style: normal; } @font-face { font-family: "Genericons"; src: url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkSHja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q02qxIMlAewtuYWQVwLdsg6+fyNbcufpfRunw+CruicxZMm1JYsV4zGfIuUV9+8OH7VzTdfFV80IpSVVZBvMErLS2rHT140JxrJtYfGjRjrFIyl3liplFNkNDlFY6nTmwuKwx0fu6gZfL67aOrZ5W03Pn/SQNiZfrXlIfr62RfrVXeh9JvpoxY4FUt5/eRFm2bsvTy/YvzFdSDK5jq/F8DrrzMpglAxtSFekt2zZ/rmRZPr/WYl1JmVJxdEq6VcX3GhoGY7zaAUuoZ5pNwhrqF5WabyKXVZhW4l/MJZaHhoC28cdiIDKkJ4nxqIiZQittSTBJlKiL8+LogKUe3+mDleLrvAjLhidsRIPBDMAda9LsERkxwCsETlccHiVXx2S4sUD1SBWyIIewRxjzDgk8iBw54n/0w3db0rjt/1ViE9TY/nNXaeue+KFT+Cxz4uSNCP6Bp5+biD/9dsLw0qj8DEq51nG1+if695Cb68Zevjbs19yW+VvZO2LB9yLT1Er4JdsAEsP/85/ZxupEvw+PznPweLNhWq4MY2evS13r0roL03FCq+m/5W2Jx4iP5u/dsQm1SrddTDuw0Xd7lKw+05HqUYSuGfM+nhE/bxIXBCrGAf3Sc0ultay6/9qXZB5lggL5R1FyAeVyEef0Aa8EZR7Qi4kuRz++3helzyOL0wgJfhOL8YXsXtkgNnaIsQrrc7YvE8UGOqllwpVM/Vnvo9pdvoEdpfVTXzgZ+MuPJ5n99dV/vjhyfPTs6uvwVu+TCrcfGm5OQt4R+tsLY3rFJquycX25Yff/vwfT0jH5QDY+vEbavV3KI3b5QrxfqfXbS445E3s4dUtm1a3Dg8XpRILPfm6vUlKD9UjQQH0MGHKG3xDEcZEXbEAz4UIKUIiyg0zwMI+hHk5dCPKlv3yZOWX/TT2VWUpqrYAxUR4SxB6HwNpN6c5jj8Iyt28drRp2lfqmFHl4xPOLZjufLHWK6b4YPIBAMrI9IiYU+Ugejl5YrSbpiQT1+lvX/+s6N6/EXXtsW7nE51/pKKiNMofU2P9h0SJ0ANCJEFs8bHShVRpB+Z/NVeUTASRJ9M2yyIzB6yhKzi2GA3s0HxeXFFF5hjgDMXFKjHuZsNdgtYYvEWMRphQGBA6AjXOwLlPq+kqPXh+tgIiNkVVVHBIiKOxBz2c3F+HGpVjJmjEbENVsDEL7aN7Nn38idXH6T7v9i27Qv6pzNv0x+PFQO3XC8JX/+j+y/gmypIBXkW1VFoBYdslvMkVZjcCMZV9NN7b6H9R8YXF/lX+Lw2S561qhb8T13bbs23WjdOCVzm82GkrVLwycO/OvSeqmHu+w9e/cnL+3pGbvsCJvLSU3mn6YYlUul9fTUhWREeSo30SHv7dkOOklNXNzZcGJoT9Qp+gzu7JL/Qlt3QAUu6Ox9YJQsilHlFWei7SzDBbFXwuiErE6lWVN68M9XQBT3vH2FzXSC3wj9Rlm4ldWQ4G0W73q8hITOh1ZARh5FBLM5+Me7xh20+my/qi4ajYeE9IZAbGLPkmh3T1723++JF9797+do3WncKVqO9oMjucpWblz66ZMmjS0d2j48VSXS/uE9nVJIWDE/fcc2SMYGLd7+3bu37uy+ePPEeyFVzDdmqURIXP/rbRxeXx8Y0Fb3Nk2M9RZ13Kc8jJzFjXTkjCTJxx4YX4R/FPkZF2FQHFYWyxxz02FoUfCbYhPn0ILQ9KExbumxGvL0KqjrkAnpoWkfluKG52fSQJMGEbJvbUxNuLZ++eVkDEPG/bl40oW1h9aS62kmhszsF8/Ir/WF3cSz1n+L187eaSnzFxZbs+GWPr2ZcKT0/Gct0k+ZBKzC91Bg/saCYDoEPiYTVjhG8moIa9dgLbCrWOs672mbSVyVbeCiGHfSbG0ZPg6mto6ZPGyk1PbSpftowbwH9GgAMhixvg3fMyMwy1ZfkGSIW9X0sbpzS2DxpclPjlL4N8NqTB4sqg4XdHtpz4CAcrrQ5h5Re3E5nY2c+isJhGsqFqazGLkkf9kBQwJURDMQtbALEWKWsrD/ZGsFVEULemYdJkQSpeewvyOeJLNWt++MT2xZEqmdctePgksVPeicUeOffqZb+TMqzb71kxuxAc57j6iVrn1005obXfzT/0ZtXTQjOMKuqaBVUn33munj5xBV3/fIvBhJftGnvgfkbPnxx18rm+Qn6wbAN22MPXy08ZfQsj9x6+LLp4e3/0bD49l9B3cFLn76uLTSt+6a7p965yOYszJmSVWgy+u54rnvS7nu3rp9Vr+N4RvYtzvCJAiFPwGYGY3ELn8/AGiXqjbI77AgbEI8Fgmk0x6nD2CRS7TinOWxuYboywE5yBMiFXCIt5+/YliwZX7J12lW/u31a0+W73u5Zd3T3tVOGdC0zl8iCSZDlvNHjtN41Sx/oGjZ1x0XRdn9Odp1r3KjY3GiBwbjG4pAP0NO7BjMH+hn9iuU/dP1icEaTlx0G8c7Ox+9YnYhfdM3td7bdcmyoIc9iSGRZbaYpVy185uZpzctvm7n96zujndGaXVcObZ01+upk5TSLhfpnLNo8BRyw7sgAQRDIXmGBukDei4srn/PeAuS2BeXpq2yF2V9+SR/+MnVFOiDvZecv03d41eUlUW9Xc4gXbyQR+bkP0TuIkwWpYhx/FrPDjCITQxhlVjaAtSAHlaGfpu5bsco7bZ71qvaN1z0152hdxNo8YdiabkPBpsSYG1VioA/SFB1Oh0AZ3HYtlLWvuKLnboOV/p7+agr9+1NPzbu7FB5nbcjoT/mIDd9af0ZBIag27OnjZ+CanoKsl/J7Ac99nL0SgHeJplTgWvbqWgUqEw47kw9xEwoHnDaMeEZNvihvVFwaBb+gs0wF1c0TN93cM3/+ig0XXzSqNfJqVzIZqjapGm2iH9PIrqoqZ/ls+lHMbi8ra2i8boOwNuVLJObO2cKm52D8cJBqjsEX1J+4lQK7O1aANeKr0c05B9bNHkb2b8J5WQlepRSs9iaojw2GELGMvnSKqVBIzf/XvPk0/ez0ZjP932RUJtFkMqqlT+ejCCWn9Lf6TolkbCMqSKg7NY1JsVekA5l3knxp9QOooPSTbeSnZAe5h9xH7icPkoeZNodNsNUq7M+q1KHOoNQpqpWdFBsDFOxOJR9A8QahtgYCwdpANKB3byAYCfIVGIhiZAS7IFobi8bqIqzPo/VxftV/I6A2DrF6B9Ta62rtYbtj4GdjRy37szqsdXYwyXEjOPyyLQ4mv+qPB1UjBGV/VFVx1Pk/Af+E9BkvqVZThSnVCiLgdBZZrADn/RNgIDGKVuEFTC68AAIM5JHOCDArcH2cujJ19mNwpV59EO6kH34sjPv000+hUpA/ph8KjQ9K/5AlWi2oAkjsHVaowIpM54D5A63OzoFjLPt0TUX+HC+AL+GLEhyTZAFkEPCWHew1ngE7H8vOptXpFop6jqwMlgzfgCn07Rd3wmz68M4X9/5pVeoFiLx47+Rdu3ZhaPbOF+//06rz56oF5dwL5GM2V5GJFaCO5uaqVQsSYVTXBJQPDrsUV9I8AjEVgXUEMEzFFKiHWTgDUxiRRmStjdQhVQuUsyj+aoyBcAgUPUI4B8whIRjggocnY1Qcc2MP2T0TSiIqi0GO1w6XiLfsjfStAPXlOINQiAVZlojhEpYZDJjjMYyPK5KCcG+2SxI5yJgfI2T0Dkb8OAc8tpueWLlyidW075r14N4wIbn6rTtmlSdC2KNGEUb+/OVlD4Brodt/KX3/dnHo0I4tV6xrn7vgyWuT2V3tl9AvV14xvCXLsHPlqv9qanEkQxs3RTsstnBBVbS0am4gEDEYzEUFlfXFzki1udghK5VlFTWh8bmohxlt9jGBwFirTTYbi70V9spOj9cvCh0bW8Mza3Js5qmXrBtWPjJsKjaaHRsebp91+0y64TRsuqRp1o43eibdsNAZG9/TTQ899BD9dFxb7qzZUP2MyXwv/fSNdde9DyGdd+rNZLQzzUDvMqxdfRn945139E8Yn9dgm739re6xm9bWY1uzBEiuaLp1Q7j62jtTWaNuGtYz1FfiTV775ALhshdbJlmbWpZfds3637g80+d3fpgMV1uDwxcsnFlcWaZm5zkc44YMbfc4PBZByHGai9v8/haTXYFhlQKUTSh1eQSo9Pnag1aP0yIZi8rcc2pHXhYy5Yy5aHU00l5tsOfVDC+Pb2ieclU0P2flA303f/3WTTeuPXrvZVb3yq3T7qJPrN/QXer8rz27YOU99/7BJQk5t7xL/7x7H/3D+9f//8R1mT73Y3W4ej25BG9cuAjy5BAqSKY8A858HnIJsTiKJ5eI+ngspPiC3kAeJgOXWAZqSMLF0iK6RIe8Wy2aMGb26CZnXlnlitVXdl86K2E2I+waTFa3P1IaWdU+xmzxjB41rACGKdbEiNmTpo+oyxLKW6Z3zpsx0mKRCsKR5NgZ48aXFBeJJmeR0XhKdTQOKc0eP2rMww899bO7N8xzqkPEnKH1M+ffsO3QojmbZ8Qtcm6uqtD/EVS7w+3yuUqzzUKRKycXCr2VeeXV4jOpjwQ5W5It1aMuGzPx+s62Km++ASFJyS+sCCerqxdMm9hYlZP9htG9fNWD9786b/LlTW4hr6QoKz2GiEFXIAYNIddh79hVbgwNMqiRUCwy5iaivseUAtlmBWapCgz+YRqmD9rTgn3gORITJpusg2SINS3zB57bMnQgpo4Mw6QbDiy5auWUiZe//yukq6ZRdZ3r75y69cq2sYteeHB7z4wqekmT1ze8qX368g6Xu9xtKYjEOxdVDvWUOIpqIj5vkXPYsBkzu7ctXzGsIR7tnL1xXsswr6el9dLJ1aFCp8NWUlYV8/pikVlXHrxnVbfYuuzyJQdumNSYN3zFrmff62mfefnGqXeu76xL5lTN6Nn+4AuL5tPftl86e3hzRbDY6bAYjeZ8zCPkLXe7W0I2e3l5dai+FqmIMzhkQtuCS0a3BgMlVrPJ46ofMbTKbvN4orWFRagDJSdNrBkRCnH+jKyIKMzuGGESHXFX1wbwrFQiS+EcJSRUgomjOO94Zp1Gwe6ptyuaPVhkZ0cymmCsgSZGXjFu7lCtt27VwgSoiACeOWMLDAbYG01KpLiu3OAJ6mdM3ZWsqK0QtIvu/3qzbKr2lLTvnD5zrz+Q1Cn927BVDas93KIVJLVkBBmPesxmrGUMq6UPWwSJAY4VYC3TWqK9nKkzCrvzxzidV+0oE1iQWwesdgmsjhgzlyjEqzCzbsRi1e0/gBKO866MXoTpLCimHHILYgXrCtQSgn7R7mD3LpBezx/qyu949nBHvmto/rDbfkL/1hoKjRwZCrXC6HmtrfNaBU9lw5DqshmpLY+C75FH6AePPkY/eOQR8KU+rKiZWVo1pFGuxoEYUb1vWCjvilfoF/QE/eKVtQWllUXrZtTNKDn03/Nks9kGDYXT69qWL2+rmVIn0jOT/vxkycz62LyYaMh3VeZ3dORXuvKHgRJqxeJbW/VzKDS8rHZIQ3B4alnXgctWHOzqOnjiYJdwb03JxOHlDUJ7qCVUnUg9Fe8srq9b+uzGKVM2/mop6n/hkb4Z66oDC43whj07Rx4/pG75HcurJ4Wa6bU5CypCsXlsfSK/Znq6RnwkjuPBjDBM7RX5loUwHDw23VzOu81hU2VPRscKRh1x/aE0ze63e2sA5t03f4w2LwZqzega+bUtW16X7kMaoc7bPX/+7nmw/D6Mlo7Os/ttIS8tm3vPnGjnj0YfPeKpqfHAx5uef3HTZdU/Ptq5a+6cnZ1/qA0dZ/FEryPbP8B5nU/KM3ybb+Lo+jrbxkF+yPZyHBB3IamOOxRkxpn9GyTW7wWSXX76Hn3P35UMwHLZ1DC6wSSr3Kx+VN/iOcrs6Kl9LAF9H/z8hR1Sqc9XKhHdrvUCcqnWgT0WByFG0WTMiduMEHUIt8Ga1Od0O6wULBTDggVWpv4u5NPtqc9hDb0dLt+d+iL1xW61lb5FD0F56lnw0V/RtyAC4+kH9CFxL/0TTIDI2W/o28t66EvQ0rOMt10ghCpzsO0uMoa3XRUFNU9iKoQKeaBrOEwcMr6F65vtb8TNyLCYcqGzMKaZcMuiBxVo+dXZjdbIHFlWrEU1rjMGWaVX5g11Z1vL8suaK4RTXtlpSa2ylcr/dFpLyz6wFouCS5RcFvr3Yp+vGEZk2wtUsmgRpbTFarVV2MyCgTYU5IqyWlkh2xxVVSV09S/tZW5zn0GRcZ4U5jnzDLtyrT5vcbDYk2PhOMX2R9h+0GDtb9BmCPnezY/0bgfHOgFnLd9TYnsdqPw5PDaPGBZ6xd5+wjRETJ7i8jylIRPW+klmLmHJCmPHOdwqZYTMRqCESyFFKBHf7GKApmAwRdg+U5Ldk8weC5+HZcSftmtm2DQza+q7f4hNeCdZTKhsmcQ6cIH8XHf3c/Qs/ZCefX716ufhjrXv3NvZee87a3fRr3buhKw/wdBO+rRKVj+vJ2LJkefji8+fXd2588RnJ3Z27qRf0dcxuUToXPqfnTAV3tPnB9aJ8L1IE957GY7arSLrVQ/rTKmL72ZqTGs+tUfS+B4m/ezUnn7siD2nCBncrmxSTKp0W53JEw3b8LAw45c+rbj+mh4vNlQ+VlhYRqFzBg9NwM5ORvu4xiniOdXrRKYcSODZqWhn2RLStLOYjCVIsbNwIOCkhD2HXkx5fl1cZChpxLrUoqasioxHxS16iZ4mqK0PowJRAnU/VFUJy1JC4RJ1xRO8DMK0KYebmya/s8bSb0AwqFij4pxQETyNVRLcDtTnDn9X5QnJGajr4H3rYpwblaQJZdwohqdhm5g+MmFPOowc1Wb6oZ7OvHtuO5vVmF+/pwGU6GnYM37Q9DVzFsh3NQWi+qY5Xx8zYaZ6tXo1tseNCAcOQB2tRYA4qAFvPt+jUyFurx+BsAt/Fsrmpk6VNzUGvTnWYcLX+4WyA/6uwIFCs7lwf+rkgQCG/cIwnspfU5pnDIWnS88dSJ3c7/cfKGptLTwglGHwoL9rYG1ynC8gJdh3KqCUZjv15W7JjOyOIM9HBEMJhdhHNGq6+9n0+oFhkLVzdd/q9Ue+PLKenQAb/LfVmSe4dHY9eze8mX64fv2AfTpdFm/pBcWRdFGoXtgtUY9NNsHfvlVmauxAngZBE1dT07fKpd+cq5VhsG2cr7cSUsFtVza2FeOJMjj6gXqIOIw4UGzpCv+mOkomIb6S+jf14vKNQKWBKO+QXKxTKaJbNdv/Z9AWNEIMqyIagXe8EZi2FUNVI8aNjgLnXYifMpyl8hL6JfKeL5dSBc4shRwYCjl+WEu3Tnrl3Zcn0lvh8kmvrFjxypQUYWauU/SlhRxbZXyTypf09CyDM3BmWU9PXyVcAT2TZ0yfTG+lW/EKL+3RXzglRDk6n1dn5ofh46uOgDcIjDWyuiOtjDNLeByCFgcE46whqEtk8N7PmSM2KK7zTYkUeWC/ckoAWMBbcucvdm2/qH3FK0lY+8fQdWfJdRpt5M268//eSG3h1YC3u257eAVvWsuaEaf2rEDIgf2eoj2nhJN0L2vTlO3e6ZPhinfhQ54DvMoauDf1Fm/4V13LeRNfWrNgJQdjEBho6b4S2P/M7IX1MwIKo15IaLSX9mqQ4CdIyBfcayxNen+R29HPz8NA+nrFhNbX29eriQl+EhPqBfcaS8PmqJaWKxbEsyjzcLFVGqJ+ziLsKutBhlWIVHJ4wPgZPveTiQ44mo49ySgg0DCB4OxPA76mg4+eQuGJEYoOIOjiX2+KqyACXjMH5w1QirxhBzGy9WrBP5CLQSW0/BD1U/8hWi5M3L9f+jE9mPoUJtL9ggPaQHCkPmXYovMFDbs2i692BN4gMxqj1Ne0PqKJuGAUBpiUGahTvdBLE+f4MeMLRu6TZAT8M3kYi0jhT8TfGQxzF5pedmJVJRLvv16lF98zkDzGdIwCW90OHIoaQfXjfMQ+6u3TaELUUo8vEGak9moLEgs0mIThBQqW3qdBL7acPetbwJ/lskdp/oS5syE2Ztx8VOQ5jPYgDCVS/E1WFegdjDc5uLY5g+a+Gp6IUO4z1aMYcwLeZEGgCnxmphyhmAWi7zm09ZMjdPfvj8I2mAYlr67qJ/Me/Jx+TA880b23G//kjLvE72HREZGsepX+lT5JLz/6BCSh6PMH5/VpPB2X7f3fADEo6ovYG07uo+JCecJ1UlyiLcgsBpZmMXgs6luVeZErZnxzunVZs8PhE76u7L68u5L+H193f4zQj8LC3LHa/LgvMbNrmPTO2AkTxp45ylcVRNmeAQ5MZp/BhtgQ1nkNQwXUXeJc3+RIhqCG6Oth0GB3sMYH1ZAgcBqleJnHFv1tkv7mpVkPbm0E1AoC0S2TmIMOHqi+JmH4S9d/MofFg2/G4i95YyWcSo8dD7U3AWoT/tjwU0IZ28h47PiSOSwCyutLaS3vPd3fivsxVWa8mPLAyzg9Liu7m7sz+bwDTkt8rXGazJ2XOIJrLLRmytRuXDcauzLXpZR2NcP2qxk2MD8lQZuypntqmmy9TJvZnUA2snUBP1HY3Mgjhbp/HIKnyrA+GjGjClHAii+wi+VccsyZSpfT5VPn7IR9Nz733I2Ys0qYNFl7DB/AXVOPrd0FWSnnc2B4jjlTMTxbwPBMPsmWEJIJH8QdMucl9KR2Uj65IEVgr9aLY4Vz1EAGuBQpwsFi48WuBvI10Q82k3GZ4pHionAQZ7CQIZhHEFd1HrMLO0w4iKwJzALi8JjKcIJxDwMTTn34y18E7ZOa0f4/PnTz6UcXrZc3DVs69i8pzfLO+KlLnljF4pRSvP8k1L1xzNP0b1X0jH3zqyDeugvsdPKlrz48Dt+3vDP215euPbKtFBR8SFNMJxGxrZLGW8OWpcb87tL1ZPjDOoG1j89EfzrFWVRP+vC9PsKd3RjSzBASBtZnKtczy9gq5/wgfQGHlN7vM6fXizCM/gu2a9QCa6UH04HuvlE4Mdgw/H33mjW718j30zLEJyLsSZ3Sry0L2VOcPvTwGpbkPG6icj7L8IW7kg1emTL3HUNVCa+QPLceEYnTsSJ3IBu8GAnLisuUdN4ZphzXmTJJ4475gqs/7f2pM2Vd/Mhc8Hi4EEK1Ecmzz8TSCPu48Bj8B2nnRuZHmRFDNKGrA/ycwMqx5zgI/A3QX6T6ZZ9OjCVOm5lE0nM9yzVK5oTKCB0j4kRlumgJ12d1cRiJNUHajsVtTNw+OWizT1UPb2xdVxV67vI9pwolwvWyHWWejYfD1Us3nNrT0srXpqaCKqf9Ye1Wxr+DbGEEA5ERbCdNRFquHEwmP207mqQN9CS8Bm1tnyaPt83e20/2yruSx/ARjKcN4GaPjuNdW2rHXiAMkIHJLpnRKPVc/4t6RWS9Qtym+Af5f+UnuKwRsPCoByQCn1PLLJjFXFTpL+THqYVaOmCWBrO4HRIX2B8UTX8H1zySWyS1EplFf8G8UGHWLGqRH++gv8B3O+BzrssnFFYPxuiYgASEiFRvCllNr8xksYDUJsHTMSxJsHRYFyMm41YCIYE/jQlsDKZ6B3wJRKwe88bEGSxyd9o+Pg8BVyhWTX+Gc5st0syzNE+QNe6STIwiq7zGSBmbAWeJoDsecx5fwG5kTfm2/ucjQZzZNShz4lwTJBl9jx3xsM03+D48SB/8vnthgEylMqE+7cLAgAN0xgP6e0K8awRuB+G2DFbnb+1iZ5CF4ZisG2T4WbeNMEMJs5718TiJObNo6dUu4qM0jvD8GX4FLsg/zASuzRcdVI4YZYownCtKYxlpmQI5K2NWwEyZqOExxfhcwQeYituv2xAydnCGM8U6FjN5Lqev4LEKCiOAIRBEfIc3iF/6cJBv+vQn/eQnn96kcODglnD9mnrzbvqvX5bSf0Ju6S8hm9FEoq97Ja3FMXxOAwBDq8Eg4IIBFJCwesz1FnDe8NZi43SHX0U5vLGqfVypDgoCVk3HLmBmGyZH8OJ2bzzsqHSlMeIc9pQPYI9ej+8rPe1JSDJ10If1/JI5HOnQ+R1lCtxfn/EqI7fgmdjWlkfl8hqBGDECFy3zLmf6JzNHpN6bKwToXIGNEMV1xy1yKMD38Qfn2bDymZgo5c4cePJFue86MKjFNP2MZbNhuUpNsdXI8gaUm/q6TY+5iY84kxBNyGrTs5nVLRCJc41F4apFIjN1+4hYX1/fd4TZo9hU0vT5fBZLi/80zjRNAdFyj7pAXUCq+M6K6ldUixpkRDFoCQTlINMf48G4HIuLcQeictwh2h1+h2rHseaT216vLmikv6tptm95Y4Sz5Y0ttqZa+rvGTwyGTxqhrrbJtuWNkdaRb9xqb6qFOhZNN3H4FU7fam+uOZdSzyA3O4E5NNfoST/RM771dcy4jGM3ucDGYEV9/rwvH4Ab+VWI+fnOaRyUC7+BkOo3n96yaYNweHwf4aHUmPHf+iAidWTL6c3jU2M2bGJX4fCGb/GH4nNypTyjVyCgstXPlrusc4eUfmEsCGGYsEkj4ezRY/XF/SaTwWx1n5srOo8y6SyRxWZEvUx0qGbceoBz8ZTsyxH965GBbxIyOK+7D4n48AwrnmTwftD+QyYtkiELm576dyB6iSkuIAa+nyCDvp/A0tLfT4jAHbwN34u5ZBDm6kbwNNalQRc7x4AAeEZfsXj+OgO6vKoixyOWv4LaFcNcjqnG84rxpH+DihPS4CoMFAm82rj0M0XzL1Gw/0UtUzy+hO1mrR+oxoXzznLhvJMym3TI1zy2MDK3C+edsExH+720V9v7rQlXz4vpSzJooWk5dl55ju/+wodx1m995ZMazFsvKOjskfP0yPPKCH93GfrONa4qB9+uZkDLfqUQjnIPqO8pH170t7ffsf/n825aUlHkLCyKjC52vmUyj5n+fXUSGhqndSdGXrR/XEFBia+k2Du0umpkg7fUaquOpH3hdZ1Xn9Xsp+K8YYYKjrknqRuHzQ0nL0jLEhpZ2hSOvESYwZ6lZcyHupk9I2MHYUzHTOz4RhgVg7AFj6DPb0HNLlzMggqjGimWeQe00/85UamlPuvgtkitYwTeybwu3I7JE6bDvO7/xPrkKtvYTgbTQFsEexnEW8CF0horv35CU/DGZ1+YcP/9E1741caK5gk4ZZeO+c1r97YMHXP33WOGttz7+ktj2Jwgl8BJdafixhWsfw3F7F8iqBbRwQzaQeGyE/Qo1Jw4Kh09cfToCag52/U1kK/lhm3IoRu2QQO8to2+Rl/bBq/RshaJtDCdjOunaTtQEdv9MQpRFLSoxX3LgTjKtTREubBJNxIpiCqsnX0oqges7lEm33UTrcxhhFnz8IRU9lwKbtMfMPp+ux6lP1wP2w+Xn/p3JWvkO8os+4EyLSj+g+oPldoHL8+lOw50/lDJOH1e7mSJGIqm56iMcgzLNRkF5rRgCqIIY/Y0k8CtngyARYJyaEfbc0v6OR7LCWYdpb18CrMPyujxHW0Tqabfp/0ldFzP4z7Vg3OVL8iLfMf752wPIuuTjCzycgdl0Weq5w4WHD0kPsnHrk4mV48dt6Il3ODzNYRbVozjMcB7SsaVxzRSdogDoUEYx/lRNrPSQBrEeYnMv9kT5Fv1wC0jDLgljS2shmHdKdLtDxcxNS/FxaPE51EfSW6Nr1lTPvfiem0wd+K2hguHlDkEurFzZE+Uf1qncEW4j583nwb76c1slxR5h3TeGGq6J6rG6SbTNwQiz8I2FBAn99f1cJRUVBt3QfF5mCmOQWglFOlBH8qkZV+uXr1w6sqFf/0NnQbk+iVz6uouXbt96YK3FG3smHuW3ZinFt20+r6nhV8NH9daWkpb6PFJU28jaTs6kTP7wz4xrHriYYsv7pFna19oFTRRwS6oXnKFikvOtM1b49wim2EQ6+eMYwmYgswRk7MLOJCWxzhxe/s5Vko6Xel7U0j0phaAm00QI/ezZv3KeIOR5HB/ZxuOIMp+i8ljYR8asNk2BEC3DKt+I6BKr+nKDWjf8DHTzS2gm5i1bzROhPFeThNjiqVnDC9shEHjLErjagYztmnny0kz+Y/zZZgjqKgjuLtlMF4j5EONMEJ1jIAyCNRAvhQcAY54cIQQCKoO/MsXWSK8RVkXR3jmCeP5QhnGYaAM8iGuloEazzcEK/HGEccMJYdaIyvMXdNRI48QkDiPEPBtScWkIuboyMdZd6GIzBPFLNnkEsjLkGhT8n1FhcMiFUEAWXbkWnL9geJRzsJch5xX6nCGC8XcGkOhrSJ/Yo9k9Ug2Q/OkZqUgJ2R3j3FdtuidJwO1bl+NSynJrk2Wx3ODxV6Lx2MszbYmY0PlvOxQgbMsz+fMcjsNhaFgnVLamD8kWIUKowEMcpYMTtc1726SsrJHubPUPIMh35rbHBTyLaPrvEaDx1BTWyY4Suoryk2CRxr6LcH9L0mxIMPum/zHp7LCRQaLTSyNueOq2ZdndfogS/VnNcdkVbD7so0VTtHuNNqz1ycFk5wlGLN8pc0em9VkMIH/ZsgxGBTVLDrkItvQfHOJN+AwmbPiVos9x1SgWixyvsliLXQ2O2srKt2uSqfRPKW2oNWUZcpxlIcWz/gJ7X+mPOeWEa3DSgqiLXK2Uc01Fxepdq9FrjMWZEuWxpGjyzplh8mpcBm6V3SrC6SMDfJbPH6Az/t+fcMNv75BFAdfpJM38Ougv7SfJLO79DJUxzlvIF9rYq84YK/BGwNbKyRqArEXUb8vwd6REnwvC+ORa/BYA+lLcDtOIr3PJXD+wqL1PAfbACpILRmmf6+sey4hJ/Po3y2nv5YxIWOLDYd0VHl6wUtpYodI08i/Ru4njWOZLtwYuPqmrh083KfvRQrJtMPI2LXeB5jc6NIkn3fdGIZ8oY5WB7WP29H1gHftWIyw87QHMoRZGdAtzv/2PS1LMps7me+4gejSpI8wBV5EAU55jMhAgmlOeFCSCQHnYXqY41ucY4BGcvX9EKOIOjEEWyS+Y+rzBiEaDCj5oDBfLodubiyDcyYaAp9igf/0+8EP3MtP/G0M2xGjBxPOTv9Ef5c/X9Dy/RjKdya0p6KBQNSvatSBtDPX3xWAclG2jZu+8QyNTkx2xaBNSzjzMbH+VheGOp2J1L/wJX+UkMHfEo4mE0k7mUeW8D2jtE9gC8SZU6DHNBDDfGzZ8A6KiHLlf2C0mdUHrxlQH/D8ueCqDgx1Mpoe9rGN/Sjx0kG2m5MOMiealD4N+tJq2vmX+fq484nwAJKqD9L3Y9Z5wZeMPpCeJ3j7wJ5TkJk2OJPoB6f2pMXKmeQgZTiZmTsC9skpNaH08v00ou/Lh42CiGzXwbZHM2tWfsS3plXMFmh3v84k6fH/Hsc9A/Cnb0TJPdEWoe+kwGcPqoOzerYxkxi7F36W3sETYBWuqZ/imvLwvRYH9w6Iu8BhYh7XgzrZFrb5TC2Q6WaZ3rGMPkCX0AeW3TH2lR5NS/edpvW8Qn+kd9OROY/+9s1H5rRdYoF/aQ+c64UHNJptWSqm0o0W0nOCkMk4H3SLVyX75tdcCqytwyESZFt85UFlIMIcDwR9ujUsEg+YeC3xoUtwtwjML47dFah2m98bCOreoI48QeWbBG/neucuCkQC18+lX+28h/5rzg14s3iOJ+9t9rS39D68XfrY5yB9/thSDO4qSWk7U8Pn/mNT5+M/aarY8mu+qTCybRnt38rzS5x49MpbNl/52HH9bivAsgmtmGTqgiMg6HHXY1aY5fX6He0/0tmh/WLzwpXhzsTcWyZnbF3aoL1swZNGC1nTTXps3TOeInHGwMaQMgSAAQ7AuI09bPJWAclCLcHqUO3EIb9+371H6eX0SfrXV1cJpOv5S6D+sBgOU7LqVSiBabDt6Ocnnn+a/m06r8OrOBca+f8FUcr9zjhX5CTaGg8rAjOvBoRg2AXumDR1z5o1UyJzws/2Wr98up88/aW11/EOFB8XtTVTBDJlTXhOhJKpBYfoF0PoF1AwBAoObT50KO3TLGJLB++pySS9p3buO2pHxoLDDZ+mwWE13SeDzpxAZc6MOn1XPKTfy+gJvL+zM9+Z6T/mLsDwltnSGbHWQ6y/+TduhNfNyHbRQPTIoh//PCIKMe654JHIOroVqtahHh25Eqro1nXHhMdT77yTOpE68U7qHeFx+WN6zx/onvffh4V/EFENodekboRb6DrhGrgx8917poyMP4SnGFCFH5TJsWOo7g96Mb0ZN7h++YPfFnklL8zjWKaK386MVrD6wbK07x7X1ezI8CuZ/cmIs4vtZnOc9nBvczbv1EAQYZk9hfq43cFs1gof036udnWxweCBueOHzLphj77r20f0O8q4MQcyLpaBpP/TkKZrF3Xq8ZSH4cLv9arJBLLoO7029Z3hgId9i8x2j+3hWJhv3NnjulJSnv5M2Wp31PNHkqPebhl4xp+EM0/s4njohol/27r1b3Q/vZ3uZyGxy+LKN+bn/Z3+NXb1xNEmk6nI6cz95SU//uKiXK2kPLiJPvPIuFunjA6HyhSn0vPLn0OgK8epuWrCd9Dr3+l7JBEO5Lvlx359GGZfXaRqg7OGiby4s8vykRcX5qlbTWaTIbvYbHPlOpsacj6qcTVYJ8/GEk3NJZGs3GDbqFxwRvxh57xZYduYQDg3MCWZc15fidybtIjNdh//TwL4ZrzoyzARWxxn7y6hZFffxcpwWk3v/+yvlChLzpyFiz+Fx+THaDUcYwccP/s8HcUIiPR6apQ45+yOY8c4DqVtSen95cHaJhPPusJznmcmV3XYyuQx/Pz/AAfdhq542o2QsWrDMBCGfyVOSjOUDn4AdSlJiY1sMCTZ0hQHQqcM6RyMahsSKVj2EChd+wgd+wZ9s7xDz4pKl0IrkO7T3a+73wZwhU8wnNcNHhwzDPDiuIMLvDvu4hYnxx4G7M5xD9fsyXGf8q+kZN4l3e7tq5YZfDw77tDcN8ddPOLDsQef+Y574Cxx3Kd8gQU0DjiiQokcBWpwDJFhRDGGQIQEY+IV6SQU0RwGezR0GpvBQh+OVZkXNR9mIx6LKBnzlZaKz82+MUaSZGmV0k7JqJOit1hKJasy04p4TcWcmu6wJRHWMm92W4LUimsbK1JIayskYxwz2r81PlciTBBgSvv7M5BqVae6yiWPQ8Fn/McAXaJJMA1a8/9wu7FFQ2Vtf4mwE0IbW2fYyMqUWnEholAIwf/u+QXtVlqxAAAAeNpt0meTFVUUheH7DhkJEgQJgpIFhdvn7NM9gxKGCZKzKGZyUHJGySAgSq7i5wrFfYdPdFXX+tRP9V61Wl2tt8//rdbh1vueV29eWl2tYXQxjOGMYCSjGM0YxvIB4xjPBCbyIZOYzBSm8hHTmM7HzGAms5jNJ8xhLp/yGfOYzwIWsojFLOFzlrKML/iS5aygTUUiExRqGrrpYSVf8TWrWM0a1tLLOvroZ4BBvmE9G9jIJjazha1sYzs72MkudvMte/iO79nLD/zIT/zML/zKb+xjPwc4yCEOc4SjHOM4v/MHJzjJKU5zhrOc4zwXuMglLnOFq/zJX1zjOje4yS1uc4e73ONv7vOAh/zDI/7lPx7zhKc84zkveDnqwsljg1W7bVZmMrMZZjFrszG7zZ63mfSSXtJLekkv6SW9pJf00pBX6VV6lV6lV+lVepVepVfpVXpJL+klvaSX9JJe6njZu7J3Ze/K3pW9K3tXbg9915id/wid0Amd0Amd0Amd0Il3TueesJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn0h6SS/pZb2sl/WyXtbLelkv62W9rBd6oRd6oRd6oRd6oRd6oVf0il7RK3pFr+gVvaJX9IperVfr1Xq1Xq1X69V6tV6tV+s1eo1eo9foNXqNXtPxijsr7qy4s+LOijsr7qy0h75rzG6zx+w115l9Zr85YA520l0Wd1ncZXGXxV0Wd1ncZama1x+EcTsAAAAB//8AAnjaY2BgYGQAgosrjpwF0ZcUq9bCaABTzgdAAAA=") format("woff"), url("./Genericons.ttf") format("truetype"), url("./Genericons.svg#Genericons") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: "Genericons"; src: url("./Genericons.svg#Genericons") format("svg"); } } /** * All Genericons */ .genericon { font-size: 16px; vertical-align: top; text-align: center; -moz-transition: color .1s ease-in 0; -webkit-transition: color .1s ease-in 0; display: inline-block; font-family: "Genericons"; font-style: normal; font-weight: normal; font-variant: normal; line-height: 1; text-decoration: inherit; text-transform: none; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; speak: none; } /** * Helper classes */ .genericon-rotate-90 { -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); } .genericon-rotate-180 { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); } .genericon-rotate-270 { -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); } .genericon-flip-horizontal { -webkit-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -o-transform: scale(-1, 1); transform: scale(-1, 1); } .genericon-flip-vertical { -webkit-transform: scale(1, -1); -moz-transform: scale(1, -1); -ms-transform: scale(1, -1); -o-transform: scale(1, -1); transform: scale(1, -1); } /** * Individual icons */ .genericon-404:before { content: "\f423"; } .genericon-activity:before { content: "\f508"; } .genericon-anchor:before { content: "\f509"; } .genericon-aside:before { content: "\f101"; } .genericon-attachment:before { content: "\f416"; } .genericon-audio:before { content: "\f109"; } .genericon-bold:before { content: "\f471"; } .genericon-book:before { content: "\f444"; } .genericon-bug:before { content: "\f50a"; } .genericon-cart:before { content: "\f447"; } .genericon-category:before { content: "\f301"; } .genericon-chat:before { content: "\f108"; } .genericon-checkmark:before { content: "\f418"; } .genericon-close:before { content: "\f405"; } .genericon-close-alt:before { content: "\f406"; } .genericon-cloud:before { content: "\f426"; } .genericon-cloud-download:before { content: "\f440"; } .genericon-cloud-upload:before { content: "\f441"; } .genericon-code:before { content: "\f462"; } .genericon-codepen:before { content: "\f216"; } .genericon-cog:before { content: "\f445"; } .genericon-collapse:before { content: "\f432"; } .genericon-comment:before { content: "\f300"; } .genericon-day:before { content: "\f305"; } .genericon-digg:before { content: "\f221"; } .genericon-document:before { content: "\f443"; } .genericon-dot:before { content: "\f428"; } .genericon-downarrow:before { content: "\f502"; } .genericon-download:before { content: "\f50b"; } .genericon-draggable:before { content: "\f436"; } .genericon-dribbble:before { content: "\f201"; } .genericon-dropbox:before { content: "\f225"; } .genericon-dropdown:before { content: "\f433"; } .genericon-dropdown-left:before { content: "\f434"; } .genericon-edit:before { content: "\f411"; } .genericon-ellipsis:before { content: "\f476"; } .genericon-expand:before { content: "\f431"; } .genericon-external:before { content: "\f442"; } .genericon-facebook:before { content: "\f203"; } .genericon-facebook-alt:before { content: "\f204"; } .genericon-fastforward:before { content: "\f458"; } .genericon-feed:before { content: "\f413"; } .genericon-flag:before { content: "\f468"; } .genericon-flickr:before { content: "\f211"; } .genericon-foursquare:before { content: "\f226"; } .genericon-fullscreen:before { content: "\f474"; } .genericon-gallery:before { content: "\f103"; } .genericon-github:before { content: "\f200"; } .genericon-googleplus:before { content: "\f206"; } .genericon-googleplus-alt:before { content: "\f218"; } .genericon-handset:before { content: "\f50c"; } .genericon-heart:before { content: "\f461"; } .genericon-help:before { content: "\f457"; } .genericon-hide:before { content: "\f404"; } .genericon-hierarchy:before { content: "\f505"; } .genericon-home:before { content: "\f409"; } .genericon-image:before { content: "\f102"; } .genericon-info:before { content: "\f455"; } .genericon-instagram:before { content: "\f215"; } .genericon-italic:before { content: "\f472"; } .genericon-key:before { content: "\f427"; } .genericon-leftarrow:before { content: "\f503"; } .genericon-link:before { content: "\f107"; } .genericon-linkedin:before { content: "\f207"; } .genericon-linkedin-alt:before { content: "\f208"; } .genericon-location:before { content: "\f417"; } .genericon-lock:before { content: "\f470"; } .genericon-mail:before { content: "\f410"; } .genericon-maximize:before { content: "\f422"; } .genericon-menu:before { content: "\f419"; } .genericon-microphone:before { content: "\f50d"; } .genericon-minimize:before { content: "\f421"; } .genericon-minus:before { content: "\f50e"; } .genericon-month:before { content: "\f307"; } .genericon-move:before { content: "\f50f"; } .genericon-next:before { content: "\f429"; } .genericon-notice:before { content: "\f456"; } .genericon-paintbrush:before { content: "\f506"; } .genericon-path:before { content: "\f219"; } .genericon-pause:before { content: "\f448"; } .genericon-phone:before { content: "\f437"; } .genericon-picture:before { content: "\f473"; } .genericon-pinned:before { content: "\f308"; } .genericon-pinterest:before { content: "\f209"; } .genericon-pinterest-alt:before { content: "\f210"; } .genericon-play:before { content: "\f452"; } .genericon-plugin:before { content: "\f439"; } .genericon-plus:before { content: "\f510"; } .genericon-pocket:before { content: "\f224"; } .genericon-polldaddy:before { content: "\f217"; } .genericon-portfolio:before { content: "\f460"; } .genericon-previous:before { content: "\f430"; } .genericon-print:before { content: "\f469"; } .genericon-quote:before { content: "\f106"; } .genericon-rating-empty:before { content: "\f511"; } .genericon-rating-full:before { content: "\f512"; } .genericon-rating-half:before { content: "\f513"; } .genericon-reddit:before { content: "\f222"; } .genericon-refresh:before { content: "\f420"; } .genericon-reply:before { content: "\f412"; } .genericon-reply-alt:before { content: "\f466"; } .genericon-reply-single:before { content: "\f467"; } .genericon-rewind:before { content: "\f459"; } .genericon-rightarrow:before { content: "\f501"; } .genericon-search:before { content: "\f400"; } .genericon-send-to-phone:before { content: "\f438"; } .genericon-send-to-tablet:before { content: "\f454"; } .genericon-share:before { content: "\f415"; } .genericon-show:before { content: "\f403"; } .genericon-shuffle:before { content: "\f514"; } .genericon-sitemap:before { content: "\f507"; } .genericon-skip-ahead:before { content: "\f451"; } .genericon-skip-back:before { content: "\f450"; } .genericon-skype:before { content: "\f220"; } .genericon-spam:before { content: "\f424"; } .genericon-spotify:before { content: "\f515"; } .genericon-standard:before { content: "\f100"; } .genericon-star:before { content: "\f408"; } .genericon-status:before { content: "\f105"; } .genericon-stop:before { content: "\f449"; } .genericon-stumbleupon:before { content: "\f223"; } .genericon-subscribe:before { content: "\f463"; } .genericon-subscribed:before { content: "\f465"; } .genericon-summary:before { content: "\f425"; } .genericon-tablet:before { content: "\f453"; } .genericon-tag:before { content: "\f302"; } .genericon-time:before { content: "\f303"; } .genericon-top:before { content: "\f435"; } .genericon-trash:before { content: "\f407"; } .genericon-tumblr:before { content: "\f214"; } .genericon-twitch:before { content: "\f516"; } .genericon-twitter:before { content: "\f202"; } .genericon-unapprove:before { content: "\f446"; } .genericon-unsubscribe:before { content: "\f464"; } .genericon-unzoom:before { content: "\f401"; } .genericon-uparrow:before { content: "\f500"; } .genericon-user:before { content: "\f304"; } .genericon-video:before { content: "\f104"; } .genericon-videocamera:before { content: "\f517"; } .genericon-vimeo:before { content: "\f212"; } .genericon-warning:before { content: "\f414"; } .genericon-website:before { content: "\f475"; } .genericon-week:before { content: "\f306"; } .genericon-wordpress:before { content: "\f205"; } .genericon-xpost:before { content: "\f504"; } .genericon-youtube:before { content: "\f213"; } .genericon-zoom:before { content: "\f402"; } plugins/jetpack/_inc/genericons/genericons/Genericons.eot0000755000312500031250000005354612651056012024301 0ustar eacbforgeacbforgfW¬VLP*´"GenericonsRegular Version 001.000 Genericons €PFFTMuëº(VOS/2d,uÅX`cmap©r³¡ð²cvt D¤gaspÿÿVˆglyfªìIÎØHhead `BWÜ6hhea¸$hmtxXðSr¸8locaˋݮ¨0maxpé8 nameR†ŸNh7postö"—¿P è"´*_<õ Ò!z­Ò!z­ÿù¸ÿù—è@.ó3™3™×fPfEd€ õ¸ ìDªÈ€€€€€€€Œ€« €€Ø€ÿ€Œ€Œ€Í€€U€€€€€ÿú€€`€€S€€€€€€€€€€€€ €€€óf€€€€€ €€@€7€Tn€€Æ€€€€€€€€¬  ñ ò òò&óô ôô)ô9ôIôYôiôvõÿÿ ñòòò óôôô ô0ô@ôPô`ôpõÿÿÿã ) 2 , &     D,,,,Z„ÌòF”βL¤àÂb¾0Âä$H‚àØ 8 Œ  Ð  ê < ~ º$Fb€Êì2ˆò0f¤îH²Ôö@^z–ÄÜ Xªê.Jž´ò Œ¸èú,@VdrˆæTˆÊ,N|ÖBXf|’ ÐJ|Òèþ0T~Âü:hˆ¼ìVp˜Þö .:HVªà 8 È!!B!Ä!à"":"H"|"–"È"æ##Z#ð$$$HDdU.±/<²í2±Ü<²í2±/<²í2²ü<²í23!%!!D þ$˜þhUú«DÍ€ !!!55!5!%!55!ü€ý€ý€€ýÿ€€€€€€€€ÿ€€€€€þ€€€   $264&"/¢aÎÎþŸþ^þŸÎÎÈÔ––Ô–ÎþŸþ^þŸÎÎa¢aüΖԖ–Ô€€€€*!%!2>4."52#".46€ù€þ¥¶¦xGGx¦¶¦xGGxÿÿ©®“V3UwAW“VV€€ü€€€û€Gx¦¶¦xGGx¦¶¦xù`@ þÀV“WAwU3V“®“€€ !!!!!!€€ü€ü€þ€€ü€€€ü€€þ€þ€þ€€þ€€€€ €û€€ý€ý€€€€ .546 €qÿqá>á€{Å(ý耘(Å{Ÿáဠ!#265!#265!€‰ì‹j–€‰ì‹j–þ€€€ý€‹ì‰–j€ý€‹ì‰–j€€4 5654&".54 &54>72654'» »jV@qžq@VjÀVj»þö»1V9@qžq@»…þ€až&—:T€OqqOþ€T:—&ža€…à&žaþ€…»»…€@uW—:Tþ€OqqO€T:À€#2+!7!2652#!#"&5463€j––j€þ@þµ€‹Ÿáþ€j––jþ@þ@€j––j–jþ€j–þ@À€áŸ€–jþ€j–þ@À–j€j–€€€!!'654''>54&'€€þ€þ€6;;6ZKKXccX[/B%OG€û€6ŒœŒ5ZKjjKYêþüêY[/q„Fh»G-w &54654&'>54'>&'.&'..'.'*7'&$&54>u ངJi¹þþ˜##'5YcMI0i 27&,  $µ»!¯ÞþˆjØHœÌþìþÔ:[útl}¬ç@þæþqiG¶÷<'ªLzû:Âþñ/ÂôŠ­ € fÊ M‹i)~þ·þyœ{¤¤þíþ…þdþ…þí¤¤€P,„JþÑÇÀ lTÀ..˜þʉ@§þÏxÍ6M0€V2Ø9_j3T !óUþ»ÖH.6¦þ¦: >B$~’€¤þíþ…þdþ…þí¤¤{œ{€,€Ý9# %32>7.'327.=.547&54>32676€Km-Z€°ÐþþŽþÎþÿ,,U£‘?w½#% 10¨NXKX2ŠŠâ :cˆKN‹3}lT9n0pNiÔÍ»sA¥&F1Žo Ë„+2¢^cVªË )+Jˆc:=7@@i" €€€€'2#!!!=4637&#"#3!"&5463€j––jþæ þæ+B¦Mi^’X,þþý,j––j€–jûj–ÇÀ <7ò 6_uDìþüý9–jj–€€ç€ !!!#34>32"#"žIþÆþÀÞÞ-H^~J7j]d(4 øþÑü·I/4`WH6þæ%-" €€€€!dn #"$&627&' 67>54.'.54632&$#"2326?6'.6326?6%654JlLðŽAs¦Äèz¶þ´ðŽŽðþÜúÍþF&Š‚øòpã#PN: nþ雊þÿÎH%l#",0%°~T…O&k##+#=ö·Ú€Žðþ´¶zèĦsAŽðLlLðýìþ{dü/.§ýA! üž  11F3.Y5"%  9Vdp[£n"ü—X"  "(+‡šý9jsÛÎŒó1=!#".54>32. #"32>7!%3##5#5353Ú& &Ed|–RvÚž_b¡ØruÉBš $e«dd«eApH6þ´¦€€€€€€€'3R–|dE&_žÚvuÛž_NL™    c«Ê«c$6E;Í€€€€€½1!!'#"&54632!4&#"!'!>32]þ¶J¥QegS7T,,Vþ·QV+G* þ·I  !/3B$R‰g9߇bIJa-M10M.ûšiw%3 6ýׂ]# 7k­o€€€€ <2#!"&5463!265.#"34&#"5!!47>32€j––jûj––jþùƒDQPBCRQA;§ˆ2Q8"þø "9"EA€–jûj––jj–úüç…O:1vÙ®Ž`4-Sy–¶dc¯"I"]•¢fSX&<zdu¹bEƒÈ}]«‡nI'S#Uv7$Ll—³ã7bˆ µ]{⿜m<]@þÝ8{“6¨z° !i4Œ»kR3“Á9c¸1¶h±J.Qp†˜P•b O  #”¼pMž›xW2c #"'6732>54.#"67>76&'&54>32#".7>54&#"&54>u ངJJ„½àþö‹”ŽKHQyÏQ;rœÍsvÑž~O)jgDG€Àqe£j8P–^5T% 1GC6Z5 qµþìœJ„½àJ„½àþöþêþöངJ*xc5Kk»•[­”o@7^|•JŠÓ*@ Oya²‡Qá€þî‰ìþêì‰þîK55KK5€5KK5€5K€–jûj––jj–þáþÂáá>üáF:‹ì‰‰ì‹;Eý5KKµ€5KK5€5KKÿÿŽ’–™¡¥¨00111#"'0/&'0&5&'&'.5&'4'&'&54&50&54545065614767652747676767676?076201030017 %7%%7' '%5ýB(ýB¾(¾ýBçýwýûçýÆ¥•þâçGééé+çþâ:¥òþ-þ- ÓÓÓ þ-OþÍ¿šXþ¨š¿ Üný¾4¿›Nœœœý¾Xš¿¡Ün€€€€<¾ç2 $&54>&7#".54>767>?>32&'&$'32>5041.'&$676&'.67>76&'.'&7.'&'&67>&'.7>'.'.7>2$7654.''&$'&76$767¶LðŽŽðþ´þ”þ´ðŽAs¦ÄèÓžþÖmmd¦|x {IKoÌ”W$@. A¤Äg£a %hþÛ**V‹tvTZ`¯~K jTfþômt=> šmnß;>K.…ˆ5V3,5,Z&&4+24-+(/.H  E&&F "(+[!"%V…B3U/ Pfv8$A3 {¨TWUþ{ìˆf;W–ÉsMƒa6Hspþ·§§þéGJ WX-²›þéÉvÛ.€Žðþ´þ”þ´ðŽŽðL¶zèĦsA—uokþÙ•”ÿIH9X“ÌpFˆu2 Kl;Œ{3-~•ý C†8s*#"K~¯`k¿>M;>ik|xÃ!R][âK3-'=`aU+ G)*T!! J%%>8+I!+##T'!  Y0Ak. E^o54T-/=$7{32. #"32>7!%3##5#5353Ú& &Ed|–RvÚž_b¡ØruÉBš $e«dd«eApH6þ´¦€€€€€€€'3R–|dE&_žÚvuÛž_NL™    c«Ê«c$6E;Í€€€€€€=‚f././67!>76.#'"&.>7>žIEXD;+lowphW@ %44nTE!DC88@?XMR?1 $>R[\SA34KFSGH á:) HCE¨§°¢˜{\) *2U]ƒŽ·bY‰S7 þë #  "+$-²ýæ -CkEL‚[J,"(3K--`QL:, É in¥¡Æ\Nr;  Œ€t€)#"'#".547&54>32632654'&'&'&'&'&'&'&547632327654'&'&'&#"#"'&'&'&'&#"3276A3MƒµdymOLrÛ¸œm<C1[x•PwJFb¾¥“sS,þf;"#=;TRiV $ 47[b+*!/4#"88SUpŽil8975[X…\>8"!>BhN-.,6"#64Ww¶™npBgrdµƒM:=lœ¹ÚsTUr…P•x[1K ,Ss“¥¾b]þÊThX=<(' ."$ >.$$-.20,,')IJ`fDB'&!2?*,!!50 !/KML/?..€€4+2#!".+32>54>32!2€''K5@5KK5þ@AtGZ*€À1na@ !YF 5K1$!'1$!'5KKjK(0(€^¡ø‰-!TšRU %&KÍ3s'0?HP‰62#"'&46232#"&54632$2"&54%654&#"2$654&$#"67&#""264 $.547.5463267676>32#".'%>32È*V¹»V*8‘þïB..AA..BD\BB\B!+9)-Sý‹«#ªªþÝ«¬þݪª#ýâ(/U,):-?..?-¦8.tÅþðþÖþðÅu+vS1S·å\9R1JiiJ/O1þúMÞ¯U26\6+VV+8.BB..BBBB..BB..=0)9'=ýgjµkl¶jj¶Ö¶j›/L=$9T.>.-@ý°7[21e¹…OO…¸e263A#Sv-&a É H)1i”i-M.<þ~ `(.6\€#754.#"#".=!265>32!#".'57265Q%"/\]E€\6/D/Ç‹‹È?\ž]]ž\i/D/Ñ\%."þZ™Y5[}DÑÎ!//!爽¿ˆk-Ñ[œZYš[Ò0.Ô!//!€$2 $546364&" &"7267j–ÎþŸþ^þŸÎ–jÚ&Kj%þÚþÚ%jK&i9D9–jþ€ÑþŸÎÎaÑ€j–ý¦%jK&þÛ%&Kj%þ–##€¾€B   7 5qýíþ“mþqmýñþ“ýíqþržýðýðžBþÌþ·$ý¹#þ¸þÌ4HþÝþ§ þÜI4ûùþÍgsþÂ>sgþYE2+"&'.54>376&#!"77>;267>76&#!"&=463!2>ÆX:4Y/úþw* <(á"ýnóÝþñ##? bbþþþ>(þ9 +(,,þo³ ü#"œ #"'! À2#!#"&5463j––jþ@þ@€j––j–jþ€j–þ@À–j€j–€€ !!!!!3ÀÀÿü€@Àý€€€€ý€€€ÿ ! 264&"ýþËjKKjKþý€KjKKj€€%  $&62>4.#"1¼pp¼þûþâþû½oo½”uÕ›[[›Õuœþöšš Ü*[þ±o½þûþâþû¼pp¼½ûo[šÖêÖš[šþöþÈþöšþZþ×[PÚ€€"&4622!463jÔ––Ô–€Ÿáüៀ–Ô––ÔþêáŸÿŸá€€ ,!!!53!534&#!"3!262"&5#"&463€ú€€€€€K5ü€5KK5€5KýÀ&&4&@&&€û€€€û€€5KK5ý€5KKµ&þ&&À&4&€€*:0.7#"&463!;0231!!!53!534&#!"3!26€€.3l®&& ú€€€€€K5ü€5KK5€5KÃþ .±&4& »û€€€û€€5KK5ý€5KK €€ +;?C5353535353!5353353!!!53!534&#!"3!265353€€€€€þ€€€€€€þ€€€€ú€€€€€K5ü€5KK5€5Kþ€€€€€€€€€€þ€€€€€€€€€€û€€€û€€5KK5ý€5KK5€€ÿ€€UUzz >7&"72?64ÞZýá$;:'" 8ø´µ%j&µ´ýàµ&j&µ%8Zýá%/ .3R¼µýà´%%µBBµ´%%¶%j#"$$ 2>4."€þ˜¹œþöšš 8 šoüoxÎôÎxxÎô΀€ïoš 8 ššþöœ¹˜ËôÎxxÎôÎxx #"$$ 2>4."5!ï€þ˜¹œþöšš 8 šýFôÎxxÎôÎxx€oþ€ïoš 8 ššþöœ¹þùxÎôÎxxÎô΀€ (!!#!5! #"$$ 2>4."€ÿ€ÿï€þ˜¹œþöšš 8 šýFôÎxxÎôÎxxÿ€ÿ€ýoþ€ïoš 8 ššþöœ¹þùxÎôÎxxÎôÎ+Õ %-  $' 6$  ." 3266  264&"ûþdþôþÖþôeþúe * %uþMÅØÄLþŒrMÅllÅOýá>ááþÂaKjKKjûþþfssgúúgssü+tsNSRNþŒþNSRŸ>ááþÂá5jKKjK+Õ#+;"' #"'73267''7 6$32264&"%7&#" 7&54632!´á`þdþô•©œ“^TlÅKuÙ.û€þ:úe •÷Éý‹jKKjKÍj¨lÄLþŒ>q?áŸl€´!Ÿáàþ þfsO“"RNtØâû€Æúgs ýÌKjKKjöjiRNþŒþÂq`mŸá€€  ' 7 þÀ@€þÀþÀ€@þÀ€@@€þÀþÀ€@þÀ€@@€þÀ@€€  ' 7 üÀ@€üÀüÀ€@üÀ€@@€üÀüÀ€@üÀ€@@€üÀ@€€€5+5%463!2264&#!"33#!"&5333333€€€€€€€€€K5€5KÀ&&ÿ&&À€K5ý€5K€€€€€€€€€€5KKµ&4&&4&Àý@5KK5Àý@Àý@Àý@–  þ$·þ%þ%·þ$L´´þ¶ýéLþ´Jý退€ !'!€€ü€ÿ€þ€þ€ýÀÀþ@ !  !ýýú€þ€€Àþ€€ý@€€ÀÀ !  7/%'Àü€þ@€ý­`Sý €`@`€M`S`Àþ@ü€ÀÀý­`Sü`€`@`€ `S`À€À !!€ý€ü€€@ý€ÀÀ€ý@À $2!4$#2 !4 &,#2"&4‹ ངJÿÎþžÐÑŽQÆnÿ\¥íþçþµ®p pp pJ„½àþö‹ÐbÎnÆþäþ¯þrÑ®Kí¥\ü€p pp ÿù¿#!".67>2264&"!Ì+4tSùìBg<#ø+prp+þ÷jKKjKÙ4þæ3ZF€]7#@Uj8ÕFIIFúÑKjKKj5€ý€€€€€+3!!#".'7&462326"!!6$32"'.462"€þÊKþÃÂW¥:&Kj&5‹MŸáþ€Ÿáþ6K=‚èY&Kj&#Scôp pp ÿ¬Ô.T;%jK%6=á៬ÔdY%jK%$2þ0 pp p€€+ ".53 654&#"2653#"&54» »xÎôÎx€» »qOPp&4&€qOPp»…ý€zÎxxÎz@þÀ…»»…€OqpPþ&&Äþ54.'ãã€è/D%Ù§‡ì«bxˆ8eFãý€ÕHPd®n‡ì«bãý€è.p…E±þï,þú‰ÆŒœþNhƨGã€ÕFºhuÎŽ‰Æþý€€€!€€€ÿ€!!%!€€û€ü€ü€€ý€S@à !#! !#!  &264&"8þõ“€þu¥“€þupüC »»þö»ñžqqžq¡þþ€Ÿýáþ€Ÿ>a»þö»» þ»qžqqž !264&"!€€þ€ýþ€€KjKKjKÙ4þæ3þ€ýþ€€€ûKjKKj5€ý€ €€+7?C2"&42"&42"&4%5!5!!!!463!2"3!264&##!5#5!¦4&&4&&4&&4&&4&&4&€þ€€û€K5€5Kþ@&&&&@€ý€€€€&4&&4&&4&&4þ&&4&&4¦€€ÿ€€û5KK5&4&&4&û€€€ü€€€€€2#!"&46;&54632>32€j––jûj––j»…Bv,.¼rŸá–Ô––Ô–!…»3-e{áŸ>B€€'!'&4?627¶KKéJÑKþ9þàÇJJéKÔJX ÿ œKÓKéJHþ9 ÇJÔKéJJý–  2"&4–Ô––Ô––Ô––Ô€Òî® '!5!íþWWü€€þ©­þþVW€WÒ€®!!Wþ©€ü€WWþ­Vþ©€þ©Ví€@ 7€€ýÀýÀ€À€ýÀ@€þ@€€@ ' €þ@þ@€@@€Àþ@€@ýÀ€€!€ü€€ü€€€!€€€ü€€€€ !!€€€ûû€ý€€€€€ #'+/37;?5335335373#533533533535335335335353353353353€€€€€€€€ý€€€€€€€ü€€€€€€€€ü€€€€€€€€€€€€€€€€€ÿ€€€€€€€€ÿ€€€€€€€€ÿ€€€€€€€€2#!"&5463264&"!j––jþj––jËjKKjKý–jüj––jj–ú€KjKKj5ý&2#!"&53!!#5463264&"5!!5j––jþj–€ý€–jËjKKjK€þ€–jüj––j€€€€j–ú€KjKKjµ€€ÿ€€!462!462!!.€ÿKjKÿKjKü†é‘ÿ‘醀þ€€5KK5þ€€5KKý˘þõ³þó ³ €€(! !2#!!!"&46;&54632>32€þ€þ€j––jþ€þþ€j––j»…,TG.¼rŸá€ÿþ€€€–Ô–ÿ–Ô– …»+e{áŸ>B€€$2#!! !!"&46;&54632>32€j––jþþ€þ€þj––j»…,TG.¼rŸá–Ô–€þ€ÿ–Ô– …»+e{áŸ>B€€ 7!!!!#'!€ü€€ÿ€€€ýÚZ&þZ€€þ€€ý€ý€¦ýÚZ&€€ !!!#5!€€ü€ÿ€þ€€þ€yýû€€€ü€€";!"&5463!!&47!"@5KK5@üj––jü222üÎ5KK€KjK€–jj–û€ÿ7’7KjK Ÿ``,4%'"''&''7&547'7677627%4&"2`:þÏ/<‹É?>É‹;0þÏ:èè:10;‹ÉAAÉŒ;01:èþˆ–Ô––ÔìŒÔ––Ô–   $4.#"6%327/¢aÎÎþŸþ^þŸÎÎ2‰ì‹ˆ{»Hü‰ì‹ˆ{ýEHÎþŸþ^þŸÎÎa¢aý΋ì‰HýE{ˆ‹ì‰H»{2"&4$2"&4!!!!5!!KjKKjKýKjKKjKü€€üÿ€€KjKKjKKjKKjË€€€ÿ€€!!!€€þ€€ûû!ü€€ !!ú€€ûû€€!!€€þ€€ý€€û€€ ü€ý€ý€2#!"&5463264&"!j––jüj––jËjKKjK€ü–júj––jj–ø€KjKKj5û€&5!!5 2#!"&5!!!!463264&"€þ€j––jüj–üÿ–jËjKKjK€€€ÿ€–júj––j€þ€þ€€j–ø€KjKKj   $"2645#!3#/¢aÎÎþŸþ^þŸÎÎgjKKjK€ þÀ€ ÎþŸþ^þŸÎÎa¢a2KjKKjüK€€þ€€   $264&"!/¢aÎÎþŸþ^þŸÎÎýjKKjKÙ4þæ3ÎþŸþ^þŸÎÎa¢aûÎKjKKj5€ý€ 3  $264&"654'&#"6323547676/¢aÎÎþŸþ^þŸÎÎýjKKjK¿%TT”´¤\†d(4DÌERÎþŸþ^þŸÎÎa¢aûÎKjKKj9:Qp@A^´G#"*-,A9"-4€€€€ €üýý€àþ þ à€€€€ €ýü€ûàþ €€þ  3!3!3'#%#33'#€€ÿý€VTþëÖ+€ýêVÿ€ÿ€V?Ö+€ýÿ€€ÿýÿ€ó€ Ž .>7>ýxI;'„¹¾I¡¡I¾¸…(*E˜˜E*>›ÈÂEfàš  ' 7 'kÖþÑ/ÖÑÑÖÑÑÖ/ûjøø9Žþ9þ9Ž9ÇŽþÇþÇŽÇþ>> % 5! %!2#!"&54635!#!!3ýýúü€5KK5ý€5KK5€ÿ€ÿ€€þ€€€þÀþ€€þ@€K5ý€5KK5€5Kþ€ÿ€ÿ  5! %!2#!"&54635!ýýúü€5KK5ý€5KK5€ý€€þ€€€þÀþ€€þ@€K5ý€5KK5€5Kþ€€  5! %!2#!"&5463''ýýúü€5KK5ý€5KK5üÄZþ–µ[€þ€€€þÀþ€€þ@€K5ý€5KK5€5KýÄ[þ–µ[€€€  2'.#! €þÀ@ý€€‹ì‰–J¼dÿý€€@þÀþÀþÀ€€þ€‰ì‹þÔ–JLþ€€€þ€€€€2'.#! ‹ì‰–J¼dÿý€€‰ì‹þÔ–JLþ€€€þ€!!!".#"#2>32ÿFoKKoFGl>39##93>lGFoKKoú€ý&&&&&&&&€ !!!!!!'.=!ÿüÿ€ý98pýp%3ý€þ€€ÿüK7qq$Z_2€€€2#!"&546354> !54&"5KK5ü5KK5‰ìì‰ý–Ô–€K5ý€5KK5€5K€‹ì‰‰ì‹€€j––jW€"!2#!32654'&+32654#gôooaPmaäÃþQ‚dY11hu“e`Ì€FE™g„†o±¸=GBþ>þÔMP€€ #3!73#7!X€ð€(þ@(€ð€(À€ý€€€€€€€ !!"264'€ûµjKKjK€€þ@Àÿ€ûKjKKjüË@Àý` þ€ €€ !!! )  % 7€€€€€ù€þ€€€þ€€þ€€€ù€€ÿ€€€€üþþ€ýþ€€þ€€€€üÿ€€þ€€€þ€ Á  $'?2$7'7//??&/'?7'?&'''7/?&#"77?7?777'+7///?''?77'2/¢aÎÎþŸþ^þŸÎÎ Ä@J#84('  %&C 3 /(Ls!  "1  :AD[  `à2"&4$2"&4$2"&4#ºƒƒºƒºƒƒºƒºƒƒºƒàƒºƒƒºƒƒºƒƒºƒƒºƒƒº€À)ø€ÀÀ€À5À€€ü@€@!€€ü@ü@@€ü@ø€À€€(08#"!.54626326=.5462$"264264&"€F:‰ì‹j–ÿ:F–Ô– :&z†j–:F–Ô–ü5jKKjKKjKKjKFu"£‹ì‰–j€#"vEj––j.VBþG–j£"uFj––KjKKjµKjKKj€€ !!!!!!!!üþ€ý€þ€€ÿÿþÿÿýÿÿ7€ +3 &47'>#"'5'&"/3264&"éý€þó%%%-!Ê6jKK6þ¶@[%L%j%€%%L%@€°5&&5%€þý€ %j&$GR…úþ5LKj6J€@%L%%€%j%L%[@ýõ&5%%5€€€€DLT\d"&54>754&#!"&5467!""&54675463!.5462!2"264264&"264&"264&":F–Ô– :&K5ÿ:F–Ô–F:ÿ5K:F–Ô–F:áŸ:F–Ô–F:Ÿáý5jKKjKüËjKKjKËjKKjKËjKKjK]"uFj––j.VB£5KþÝ"uFj––jEv"#K5£"vEj––jEv"£Ÿá#"vEj––jFu"þÝáŸKjKKjúKKjKKjKKjKKjKKjKKjTá@À3263  7 2"&4ª#qB þpÿÿ€ÿþÔåG€0 pp ps5>üàþþWsŽÿþ¢p pp n’!) $'7#535.54623#>"264þ”gþ£þdþ£g”FÅs€€:F–Ô–F:€€sÅþ}jKKjKÎY«Ê˪YJfõ€£"vEj––jFu"£€þ eýKjKKj€€€N\2+"&=4'#"$'"&=47&'#"&46;47&5462 >=462%"&'>32@&&Í "Zb&4&‚Zþöš™þõYƒ&4&cY!Í&&À&4&e¬íí¬e&4&œý€šý=Zòˆ[­‘;(‹º&4&AJgþÿ@&&@Ö«wЉw¬Ô@&&@gIB&4&P`Î@&&@‚í¬ee¬í‚@&&@þÿÎ[V€©‰am3[@ZŠN€€€€ !!!!€þ€þ€ýû€þ€€þþÿ3", 5!È›Ñþrþ¯þäÆnj½f2»33þnÆQŽÑíÖ½±þïRÆ: "&5463273!&'3 6PŸqqO4Y3¹Àô±ÿ±ôÀÕÔ€qOOq3Y4þP·þð)þð)·‰··€€€€!€€ÿ€€€€ !! !! !! !!€þ€þ€þ€þ€þ€þ€€€ÿ€€ÿ€þ€þ€þ€€€ÿ€€ÿ€€þ€þ€€€€€ !!!!!€þÿþ€ÿþþ€€€ !%%!! !vþ,v34w,þvÓ­ýÕÕýÖýÖÕýÕ­çþ™ÒþŸÛÛaÒý€þ|ý„Šþv|„€€€  !€ýÕÕýÖýÖÕýÕ­ÓÓþ|ý„Šþv|„€ý€€€€   !%!€ýÕÕýÖýÖÕýÕ­ÓÓÓ4w,þvþ|ý„Šþv|„€ý€þ(ÛaÒg€€€"+5 5!".54&#!!23"&'63!5 527#!€ÿÿ‹ì‰–jþ€€‹ì‰–jZH)WƒŸÿüZH)WƒŸþ€€ÿÿ€‰ì‹j–‰ì‹j–;~b[€ÿÿ€þ;~b[€€€€-Ib  $&62>54.'&!"36363272654'&$#"26363222654'&$#"3263632HpLïïþ´þþ´ïïj ñþä6zLD ³fð^ €$'ˆþ²ªGŒOD3.s³¤&j €/3”þ‚Õüª@3& ¬º»Xz€ïþ´þþ´ïïLpLïûg   ;9 æ/9NX<4 'JC 4%3\W3E&3 &OK €€€€#!#!!#!!!7!œœü_=þ-þ¡êäþdúû_鬬þ-Óþ-ÓÔû½þCÿÈýCYû–ÓÓ #!"&5463!2€€þ€K5ü€5KK5€5K€€ü€ÿ5KK55KK5®!D |—&í *W ~ B f ‡ LŸ   5 hCopyright (c) 2015, Joen AsmussenCopyright (c) 2015, Joen AsmussenGenericonsGenericonsRegularRegularFontForge 2.0 : Genericons : 18-9-2015FontForge 2.0 : Genericons : 18-9-2015GenericonsGenericonsVersion 001.000 Version 001.000 GenericonsGenericonsÿf—      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF200uniF201uniF202uniF203uniF204uniF205uniF206uniF207uniF208uniF209uniF210uniF211uniF212uniF213uniF214uniF215uniF216uniF217uniF218uniF219uniF220uniF221uniF222uniF223uniF224uniF225uniF226uniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF307uniF308uniF400uniF401uniF402uniF403uniF404uniF405uniF406uniF407uniF408uniF409uniF410uniF411uniF412uniF413uniF414uniF415uniF416uniF417uniF418uniF419uniF420uniF421uniF422uniF423uniF424uniF425uniF426uniF427uniF428uniF429uniF430uniF431uniF432uniF433uniF434uniF435uniF436uniF437uniF438uniF439uniF440uniF441uniF442uniF443uniF444uniF445uniF446uniF447uniF448uniF449uniF450uniF451uniF452uniF453uniF454uniF455uniF456uniF457uniF458uniF459uniF460uniF461uniF462uniF463uniF464uniF465uniF466uniF467uniF468uniF469uniF470uniF471uniF472uniF473uniF474uniF475uniF476uniF500uniF501uniF502uniF503uniF504uniF505uniF506uniF507uniF508uniF509uniF50AuniF50BuniF50CuniF50DuniF50EuniF50FuniF510uniF511uniF512uniF513uniF514uniF515uniF516uniF517ÿÿѨÄÍÒ!z­Ò!z­plugins/jetpack/_inc/genericons/genericons/rtl/0000755000312500031250000000000012654411246022264 5ustar eacbforgeacbforgplugins/jetpack/_inc/genericons/genericons/rtl/genericons-rtl.css0000644000312500031250000006727612654411246025753 0ustar eacbforgeacbforg/* This file was automatically generated on Sep 30 2015 12:24:15 */ /** Genericons */ /* IE8 and below use EOT and allow cross-site embedding. IE9 uses WOFF which is base64 encoded to allow cross-site embedding. So unfortunately, IE9 will throw a console error, but it'll still work. When the font is base64 encoded, cross-site embedding works in Firefox */ @font-face { font-family: "Genericons"; src: url(".././Genericons.eot"); src: url(".././Genericons.eot?") format("embedded-opentype"); font-weight: normal; font-style: normal; } @font-face { font-family: "Genericons"; src: url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkSHja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q02qxIMlAewtuYWQVwLdsg6+fyNbcufpfRunw+CruicxZMm1JYsV4zGfIuUV9+8OH7VzTdfFV80IpSVVZBvMErLS2rHT140JxrJtYfGjRjrFIyl3liplFNkNDlFY6nTmwuKwx0fu6gZfL67aOrZ5W03Pn/SQNiZfrXlIfr62RfrVXeh9JvpoxY4FUt5/eRFm2bsvTy/YvzFdSDK5jq/F8DrrzMpglAxtSFekt2zZ/rmRZPr/WYl1JmVJxdEq6VcX3GhoGY7zaAUuoZ5pNwhrqF5WabyKXVZhW4l/MJZaHhoC28cdiIDKkJ4nxqIiZQittSTBJlKiL8+LogKUe3+mDleLrvAjLhidsRIPBDMAda9LsERkxwCsETlccHiVXx2S4sUD1SBWyIIewRxjzDgk8iBw54n/0w3db0rjt/1ViE9TY/nNXaeue+KFT+Cxz4uSNCP6Bp5+biD/9dsLw0qj8DEq51nG1+if695Cb68Zevjbs19yW+VvZO2LB9yLT1Er4JdsAEsP/85/ZxupEvw+PznPweLNhWq4MY2evS13r0roL03FCq+m/5W2Jx4iP5u/dsQm1SrddTDuw0Xd7lKw+05HqUYSuGfM+nhE/bxIXBCrGAf3Sc0ultay6/9qXZB5lggL5R1FyAeVyEef0Aa8EZR7Qi4kuRz++3helzyOL0wgJfhOL8YXsXtkgNnaIsQrrc7YvE8UGOqllwpVM/Vnvo9pdvoEdpfVTXzgZ+MuPJ5n99dV/vjhyfPTs6uvwVu+TCrcfGm5OQt4R+tsLY3rFJquycX25Yff/vwfT0jH5QDY+vEbavV3KI3b5QrxfqfXbS445E3s4dUtm1a3Dg8XpRILPfm6vUlKD9UjQQH0MGHKG3xDEcZEXbEAz4UIKUIiyg0zwMI+hHk5dCPKlv3yZOWX/TT2VWUpqrYAxUR4SxB6HwNpN6c5jj8Iyt28drRp2lfqmFHl4xPOLZjufLHWK6b4YPIBAMrI9IiYU+Ugejl5YrSbpiQT1+lvX/+s6N6/EXXtsW7nE51/pKKiNMofU2P9h0SJ0ANCJEFs8bHShVRpB+Z/NVeUTASRJ9M2yyIzB6yhKzi2GA3s0HxeXFFF5hjgDMXFKjHuZsNdgtYYvEWMRphQGBA6AjXOwLlPq+kqPXh+tgIiNkVVVHBIiKOxBz2c3F+HGpVjJmjEbENVsDEL7aN7Nn38idXH6T7v9i27Qv6pzNv0x+PFQO3XC8JX/+j+y/gmypIBXkW1VFoBYdslvMkVZjcCMZV9NN7b6H9R8YXF/lX+Lw2S561qhb8T13bbs23WjdOCVzm82GkrVLwycO/OvSeqmHu+w9e/cnL+3pGbvsCJvLSU3mn6YYlUul9fTUhWREeSo30SHv7dkOOklNXNzZcGJoT9Qp+gzu7JL/Qlt3QAUu6Ox9YJQsilHlFWei7SzDBbFXwuiErE6lWVN68M9XQBT3vH2FzXSC3wj9Rlm4ldWQ4G0W73q8hITOh1ZARh5FBLM5+Me7xh20+my/qi4ajYeE9IZAbGLPkmh3T1723++JF9797+do3WncKVqO9oMjucpWblz66ZMmjS0d2j48VSXS/uE9nVJIWDE/fcc2SMYGLd7+3bu37uy+ePPEeyFVzDdmqURIXP/rbRxeXx8Y0Fb3Nk2M9RZ13Kc8jJzFjXTkjCTJxx4YX4R/FPkZF2FQHFYWyxxz02FoUfCbYhPn0ILQ9KExbumxGvL0KqjrkAnpoWkfluKG52fSQJMGEbJvbUxNuLZ++eVkDEPG/bl40oW1h9aS62kmhszsF8/Ir/WF3cSz1n+L187eaSnzFxZbs+GWPr2ZcKT0/Gct0k+ZBKzC91Bg/saCYDoEPiYTVjhG8moIa9dgLbCrWOs672mbSVyVbeCiGHfSbG0ZPg6mto6ZPGyk1PbSpftowbwH9GgAMhixvg3fMyMwy1ZfkGSIW9X0sbpzS2DxpclPjlL4N8NqTB4sqg4XdHtpz4CAcrrQ5h5Re3E5nY2c+isJhGsqFqazGLkkf9kBQwJURDMQtbALEWKWsrD/ZGsFVEULemYdJkQSpeewvyOeJLNWt++MT2xZEqmdctePgksVPeicUeOffqZb+TMqzb71kxuxAc57j6iVrn1005obXfzT/0ZtXTQjOMKuqaBVUn33munj5xBV3/fIvBhJftGnvgfkbPnxx18rm+Qn6wbAN22MPXy08ZfQsj9x6+LLp4e3/0bD49l9B3cFLn76uLTSt+6a7p965yOYszJmSVWgy+u54rnvS7nu3rp9Vr+N4RvYtzvCJAiFPwGYGY3ELn8/AGiXqjbI77AgbEI8Fgmk0x6nD2CRS7TinOWxuYboywE5yBMiFXCIt5+/YliwZX7J12lW/u31a0+W73u5Zd3T3tVOGdC0zl8iCSZDlvNHjtN41Sx/oGjZ1x0XRdn9Odp1r3KjY3GiBwbjG4pAP0NO7BjMH+hn9iuU/dP1icEaTlx0G8c7Ox+9YnYhfdM3td7bdcmyoIc9iSGRZbaYpVy185uZpzctvm7n96zujndGaXVcObZ01+upk5TSLhfpnLNo8BRyw7sgAQRDIXmGBukDei4srn/PeAuS2BeXpq2yF2V9+SR/+MnVFOiDvZecv03d41eUlUW9Xc4gXbyQR+bkP0TuIkwWpYhx/FrPDjCITQxhlVjaAtSAHlaGfpu5bsco7bZ71qvaN1z0152hdxNo8YdiabkPBpsSYG1VioA/SFB1Oh0AZ3HYtlLWvuKLnboOV/p7+agr9+1NPzbu7FB5nbcjoT/mIDd9af0ZBIag27OnjZ+CanoKsl/J7Ac99nL0SgHeJplTgWvbqWgUqEw47kw9xEwoHnDaMeEZNvihvVFwaBb+gs0wF1c0TN93cM3/+ig0XXzSqNfJqVzIZqjapGm2iH9PIrqoqZ/ls+lHMbi8ra2i8boOwNuVLJObO2cKm52D8cJBqjsEX1J+4lQK7O1aANeKr0c05B9bNHkb2b8J5WQlepRSs9iaojw2GELGMvnSKqVBIzf/XvPk0/ez0ZjP932RUJtFkMqqlT+ejCCWn9Lf6TolkbCMqSKg7NY1JsVekA5l3knxp9QOooPSTbeSnZAe5h9xH7icPkoeZNodNsNUq7M+q1KHOoNQpqpWdFBsDFOxOJR9A8QahtgYCwdpANKB3byAYCfIVGIhiZAS7IFobi8bqIqzPo/VxftV/I6A2DrF6B9Ta62rtYbtj4GdjRy37szqsdXYwyXEjOPyyLQ4mv+qPB1UjBGV/VFVx1Pk/Af+E9BkvqVZThSnVCiLgdBZZrADn/RNgIDGKVuEFTC68AAIM5JHOCDArcH2cujJ19mNwpV59EO6kH34sjPv000+hUpA/ph8KjQ9K/5AlWi2oAkjsHVaowIpM54D5A63OzoFjLPt0TUX+HC+AL+GLEhyTZAFkEPCWHew1ngE7H8vOptXpFop6jqwMlgzfgCn07Rd3wmz68M4X9/5pVeoFiLx47+Rdu3ZhaPbOF+//06rz56oF5dwL5GM2V5GJFaCO5uaqVQsSYVTXBJQPDrsUV9I8AjEVgXUEMEzFFKiHWTgDUxiRRmStjdQhVQuUsyj+aoyBcAgUPUI4B8whIRjggocnY1Qcc2MP2T0TSiIqi0GO1w6XiLfsjfStAPXlOINQiAVZlojhEpYZDJjjMYyPK5KCcG+2SxI5yJgfI2T0Dkb8OAc8tpueWLlyidW075r14N4wIbn6rTtmlSdC2KNGEUb+/OVlD4Brodt/KX3/dnHo0I4tV6xrn7vgyWuT2V3tl9AvV14xvCXLsHPlqv9qanEkQxs3RTsstnBBVbS0am4gEDEYzEUFlfXFzki1udghK5VlFTWh8bmohxlt9jGBwFirTTYbi70V9spOj9cvCh0bW8Mza3Js5qmXrBtWPjJsKjaaHRsebp91+0y64TRsuqRp1o43eibdsNAZG9/TTQ899BD9dFxb7qzZUP2MyXwv/fSNdde9DyGdd+rNZLQzzUDvMqxdfRn945139E8Yn9dgm739re6xm9bWY1uzBEiuaLp1Q7j62jtTWaNuGtYz1FfiTV775ALhshdbJlmbWpZfds3637g80+d3fpgMV1uDwxcsnFlcWaZm5zkc44YMbfc4PBZByHGai9v8/haTXYFhlQKUTSh1eQSo9Pnag1aP0yIZi8rcc2pHXhYy5Yy5aHU00l5tsOfVDC+Pb2ieclU0P2flA303f/3WTTeuPXrvZVb3yq3T7qJPrN/QXer8rz27YOU99/7BJQk5t7xL/7x7H/3D+9f//8R1mT73Y3W4ej25BG9cuAjy5BAqSKY8A858HnIJsTiKJ5eI+ngspPiC3kAeJgOXWAZqSMLF0iK6RIe8Wy2aMGb26CZnXlnlitVXdl86K2E2I+waTFa3P1IaWdU+xmzxjB41rACGKdbEiNmTpo+oyxLKW6Z3zpsx0mKRCsKR5NgZ48aXFBeJJmeR0XhKdTQOKc0eP2rMww899bO7N8xzqkPEnKH1M+ffsO3QojmbZ8Qtcm6uqtD/EVS7w+3yuUqzzUKRKycXCr2VeeXV4jOpjwQ5W5It1aMuGzPx+s62Km++ASFJyS+sCCerqxdMm9hYlZP9htG9fNWD9786b/LlTW4hr6QoKz2GiEFXIAYNIddh79hVbgwNMqiRUCwy5iaivseUAtlmBWapCgz+YRqmD9rTgn3gORITJpusg2SINS3zB57bMnQgpo4Mw6QbDiy5auWUiZe//yukq6ZRdZ3r75y69cq2sYteeHB7z4wqekmT1ze8qX368g6Xu9xtKYjEOxdVDvWUOIpqIj5vkXPYsBkzu7ctXzGsIR7tnL1xXsswr6el9dLJ1aFCp8NWUlYV8/pikVlXHrxnVbfYuuzyJQdumNSYN3zFrmff62mfefnGqXeu76xL5lTN6Nn+4AuL5tPftl86e3hzRbDY6bAYjeZ8zCPkLXe7W0I2e3l5dai+FqmIMzhkQtuCS0a3BgMlVrPJ46ofMbTKbvN4orWFRagDJSdNrBkRCnH+jKyIKMzuGGESHXFX1wbwrFQiS+EcJSRUgomjOO94Zp1Gwe6ptyuaPVhkZ0cymmCsgSZGXjFu7lCtt27VwgSoiACeOWMLDAbYG01KpLiu3OAJ6mdM3ZWsqK0QtIvu/3qzbKr2lLTvnD5zrz+Q1Cn927BVDas93KIVJLVkBBmPesxmrGUMq6UPWwSJAY4VYC3TWqK9nKkzCrvzxzidV+0oE1iQWwesdgmsjhgzlyjEqzCzbsRi1e0/gBKO866MXoTpLCimHHILYgXrCtQSgn7R7mD3LpBezx/qyu949nBHvmto/rDbfkL/1hoKjRwZCrXC6HmtrfNaBU9lw5DqshmpLY+C75FH6AePPkY/eOQR8KU+rKiZWVo1pFGuxoEYUb1vWCjvilfoF/QE/eKVtQWllUXrZtTNKDn03/Nks9kGDYXT69qWL2+rmVIn0jOT/vxkycz62LyYaMh3VeZ3dORXuvKHgRJqxeJbW/VzKDS8rHZIQ3B4alnXgctWHOzqOnjiYJdwb03JxOHlDUJ7qCVUnUg9Fe8srq9b+uzGKVM2/mop6n/hkb4Z66oDC43whj07Rx4/pG75HcurJ4Wa6bU5CypCsXlsfSK/Znq6RnwkjuPBjDBM7RX5loUwHDw23VzOu81hU2VPRscKRh1x/aE0ze63e2sA5t03f4w2LwZqzega+bUtW16X7kMaoc7bPX/+7nmw/D6Mlo7Os/ttIS8tm3vPnGjnj0YfPeKpqfHAx5uef3HTZdU/Ptq5a+6cnZ1/qA0dZ/FEryPbP8B5nU/KM3ybb+Lo+jrbxkF+yPZyHBB3IamOOxRkxpn9GyTW7wWSXX76Hn3P35UMwHLZ1DC6wSSr3Kx+VN/iOcrs6Kl9LAF9H/z8hR1Sqc9XKhHdrvUCcqnWgT0WByFG0WTMiduMEHUIt8Ga1Od0O6wULBTDggVWpv4u5NPtqc9hDb0dLt+d+iL1xW61lb5FD0F56lnw0V/RtyAC4+kH9CFxL/0TTIDI2W/o28t66EvQ0rOMt10ghCpzsO0uMoa3XRUFNU9iKoQKeaBrOEwcMr6F65vtb8TNyLCYcqGzMKaZcMuiBxVo+dXZjdbIHFlWrEU1rjMGWaVX5g11Z1vL8suaK4RTXtlpSa2ylcr/dFpLyz6wFouCS5RcFvr3Yp+vGEZk2wtUsmgRpbTFarVV2MyCgTYU5IqyWlkh2xxVVSV09S/tZW5zn0GRcZ4U5jnzDLtyrT5vcbDYk2PhOMX2R9h+0GDtb9BmCPnezY/0bgfHOgFnLd9TYnsdqPw5PDaPGBZ6xd5+wjRETJ7i8jylIRPW+klmLmHJCmPHOdwqZYTMRqCESyFFKBHf7GKApmAwRdg+U5Ldk8weC5+HZcSftmtm2DQza+q7f4hNeCdZTKhsmcQ6cIH8XHf3c/Qs/ZCefX716ufhjrXv3NvZee87a3fRr3buhKw/wdBO+rRKVj+vJ2LJkefji8+fXd2588RnJ3Z27qRf0dcxuUToXPqfnTAV3tPnB9aJ8L1IE957GY7arSLrVQ/rTKmL72ZqTGs+tUfS+B4m/ezUnn7siD2nCBncrmxSTKp0W53JEw3b8LAw45c+rbj+mh4vNlQ+VlhYRqFzBg9NwM5ORvu4xiniOdXrRKYcSODZqWhn2RLStLOYjCVIsbNwIOCkhD2HXkx5fl1cZChpxLrUoqasioxHxS16iZ4mqK0PowJRAnU/VFUJy1JC4RJ1xRO8DMK0KYebmya/s8bSb0AwqFij4pxQETyNVRLcDtTnDn9X5QnJGajr4H3rYpwblaQJZdwohqdhm5g+MmFPOowc1Wb6oZ7OvHtuO5vVmF+/pwGU6GnYM37Q9DVzFsh3NQWi+qY5Xx8zYaZ6tXo1tseNCAcOQB2tRYA4qAFvPt+jUyFurx+BsAt/Fsrmpk6VNzUGvTnWYcLX+4WyA/6uwIFCs7lwf+rkgQCG/cIwnspfU5pnDIWnS88dSJ3c7/cfKGptLTwglGHwoL9rYG1ynC8gJdh3KqCUZjv15W7JjOyOIM9HBEMJhdhHNGq6+9n0+oFhkLVzdd/q9Ue+PLKenQAb/LfVmSe4dHY9eze8mX64fv2AfTpdFm/pBcWRdFGoXtgtUY9NNsHfvlVmauxAngZBE1dT07fKpd+cq5VhsG2cr7cSUsFtVza2FeOJMjj6gXqIOIw4UGzpCv+mOkomIb6S+jf14vKNQKWBKO+QXKxTKaJbNdv/Z9AWNEIMqyIagXe8EZi2FUNVI8aNjgLnXYifMpyl8hL6JfKeL5dSBc4shRwYCjl+WEu3Tnrl3Zcn0lvh8kmvrFjxypQUYWauU/SlhRxbZXyTypf09CyDM3BmWU9PXyVcAT2TZ0yfTG+lW/EKL+3RXzglRDk6n1dn5ofh46uOgDcIjDWyuiOtjDNLeByCFgcE46whqEtk8N7PmSM2KK7zTYkUeWC/ckoAWMBbcucvdm2/qH3FK0lY+8fQdWfJdRpt5M268//eSG3h1YC3u257eAVvWsuaEaf2rEDIgf2eoj2nhJN0L2vTlO3e6ZPhinfhQ54DvMoauDf1Fm/4V13LeRNfWrNgJQdjEBho6b4S2P/M7IX1MwIKo15IaLSX9mqQ4CdIyBfcayxNen+R29HPz8NA+nrFhNbX29eriQl+EhPqBfcaS8PmqJaWKxbEsyjzcLFVGqJ+ziLsKutBhlWIVHJ4wPgZPveTiQ44mo49ySgg0DCB4OxPA76mg4+eQuGJEYoOIOjiX2+KqyACXjMH5w1QirxhBzGy9WrBP5CLQSW0/BD1U/8hWi5M3L9f+jE9mPoUJtL9ggPaQHCkPmXYovMFDbs2i692BN4gMxqj1Ne0PqKJuGAUBpiUGahTvdBLE+f4MeMLRu6TZAT8M3kYi0jhT8TfGQxzF5pedmJVJRLvv16lF98zkDzGdIwCW90OHIoaQfXjfMQ+6u3TaELUUo8vEGak9moLEgs0mIThBQqW3qdBL7acPetbwJ/lskdp/oS5syE2Ztx8VOQ5jPYgDCVS/E1WFegdjDc5uLY5g+a+Gp6IUO4z1aMYcwLeZEGgCnxmphyhmAWi7zm09ZMjdPfvj8I2mAYlr67qJ/Me/Jx+TA880b23G//kjLvE72HREZGsepX+lT5JLz/6BCSh6PMH5/VpPB2X7f3fADEo6ovYG07uo+JCecJ1UlyiLcgsBpZmMXgs6luVeZErZnxzunVZs8PhE76u7L68u5L+H193f4zQj8LC3LHa/LgvMbNrmPTO2AkTxp45ylcVRNmeAQ5MZp/BhtgQ1nkNQwXUXeJc3+RIhqCG6Oth0GB3sMYH1ZAgcBqleJnHFv1tkv7mpVkPbm0E1AoC0S2TmIMOHqi+JmH4S9d/MofFg2/G4i95YyWcSo8dD7U3AWoT/tjwU0IZ28h47PiSOSwCyutLaS3vPd3fivsxVWa8mPLAyzg9Liu7m7sz+bwDTkt8rXGazJ2XOIJrLLRmytRuXDcauzLXpZR2NcP2qxk2MD8lQZuypntqmmy9TJvZnUA2snUBP1HY3Mgjhbp/HIKnyrA+GjGjClHAii+wi+VccsyZSpfT5VPn7IR9Nz733I2Ys0qYNFl7DB/AXVOPrd0FWSnnc2B4jjlTMTxbwPBMPsmWEJIJH8QdMucl9KR2Uj65IEVgr9aLY4Vz1EAGuBQpwsFi48WuBvI10Q82k3GZ4pHionAQZ7CQIZhHEFd1HrMLO0w4iKwJzALi8JjKcIJxDwMTTn34y18E7ZOa0f4/PnTz6UcXrZc3DVs69i8pzfLO+KlLnljF4pRSvP8k1L1xzNP0b1X0jH3zqyDeugvsdPKlrz48Dt+3vDP215euPbKtFBR8SFNMJxGxrZLGW8OWpcb87tL1ZPjDOoG1j89EfzrFWVRP+vC9PsKd3RjSzBASBtZnKtczy9gq5/wgfQGHlN7vM6fXizCM/gu2a9QCa6UH04HuvlE4Mdgw/H33mjW718j30zLEJyLsSZ3Sry0L2VOcPvTwGpbkPG6icj7L8IW7kg1emTL3HUNVCa+QPLceEYnTsSJ3IBu8GAnLisuUdN4ZphzXmTJJ4475gqs/7f2pM2Vd/Mhc8Hi4EEK1Ecmzz8TSCPu48Bj8B2nnRuZHmRFDNKGrA/ycwMqx5zgI/A3QX6T6ZZ9OjCVOm5lE0nM9yzVK5oTKCB0j4kRlumgJ12d1cRiJNUHajsVtTNw+OWizT1UPb2xdVxV67vI9pwolwvWyHWWejYfD1Us3nNrT0srXpqaCKqf9Ye1Wxr+DbGEEA5ERbCdNRFquHEwmP207mqQN9CS8Bm1tnyaPt83e20/2yruSx/ARjKcN4GaPjuNdW2rHXiAMkIHJLpnRKPVc/4t6RWS9Qtym+Af5f+UnuKwRsPCoByQCn1PLLJjFXFTpL+THqYVaOmCWBrO4HRIX2B8UTX8H1zySWyS1EplFf8G8UGHWLGqRH++gv8B3O+BzrssnFFYPxuiYgASEiFRvCllNr8xksYDUJsHTMSxJsHRYFyMm41YCIYE/jQlsDKZ6B3wJRKwe88bEGSxyd9o+Pg8BVyhWTX+Gc5st0syzNE+QNe6STIwiq7zGSBmbAWeJoDsecx5fwG5kTfm2/ucjQZzZNShz4lwTJBl9jx3xsM03+D48SB/8vnthgEylMqE+7cLAgAN0xgP6e0K8awRuB+G2DFbnb+1iZ5CF4ZisG2T4WbeNMEMJs5718TiJObNo6dUu4qM0jvD8GX4FLsg/zASuzRcdVI4YZYownCtKYxlpmQI5K2NWwEyZqOExxfhcwQeYituv2xAydnCGM8U6FjN5Lqev4LEKCiOAIRBEfIc3iF/6cJBv+vQn/eQnn96kcODglnD9mnrzbvqvX5bSf0Ju6S8hm9FEoq97Ja3FMXxOAwBDq8Eg4IIBFJCwesz1FnDe8NZi43SHX0U5vLGqfVypDgoCVk3HLmBmGyZH8OJ2bzzsqHSlMeIc9pQPYI9ej+8rPe1JSDJ10If1/JI5HOnQ+R1lCtxfn/EqI7fgmdjWlkfl8hqBGDECFy3zLmf6JzNHpN6bKwToXIGNEMV1xy1yKMD38Qfn2bDymZgo5c4cePJFue86MKjFNP2MZbNhuUpNsdXI8gaUm/q6TY+5iY84kxBNyGrTs5nVLRCJc41F4apFIjN1+4hYX1/fd4TZo9hU0vT5fBZLi/80zjRNAdFyj7pAXUCq+M6K6ldUixpkRDFoCQTlINMf48G4HIuLcQeictwh2h1+h2rHseaT216vLmikv6tptm95Y4Sz5Y0ttqZa+rvGTwyGTxqhrrbJtuWNkdaRb9xqb6qFOhZNN3H4FU7fam+uOZdSzyA3O4E5NNfoST/RM771dcy4jGM3ucDGYEV9/rwvH4Ab+VWI+fnOaRyUC7+BkOo3n96yaYNweHwf4aHUmPHf+iAidWTL6c3jU2M2bGJX4fCGb/GH4nNypTyjVyCgstXPlrusc4eUfmEsCGGYsEkj4ezRY/XF/SaTwWx1n5srOo8y6SyRxWZEvUx0qGbceoBz8ZTsyxH965GBbxIyOK+7D4n48AwrnmTwftD+QyYtkiELm576dyB6iSkuIAa+nyCDvp/A0tLfT4jAHbwN34u5ZBDm6kbwNNalQRc7x4AAeEZfsXj+OgO6vKoixyOWv4LaFcNcjqnG84rxpH+DihPS4CoMFAm82rj0M0XzL1Gw/0UtUzy+hO1mrR+oxoXzznLhvJMym3TI1zy2MDK3C+edsExH+720V9v7rQlXz4vpSzJooWk5dl55ju/+wodx1m995ZMazFsvKOjskfP0yPPKCH93GfrONa4qB9+uZkDLfqUQjnIPqO8pH170t7ffsf/n825aUlHkLCyKjC52vmUyj5n+fXUSGhqndSdGXrR/XEFBia+k2Du0umpkg7fUaquOpH3hdZ1Xn9Xsp+K8YYYKjrknqRuHzQ0nL0jLEhpZ2hSOvESYwZ6lZcyHupk9I2MHYUzHTOz4RhgVg7AFj6DPb0HNLlzMggqjGimWeQe00/85UamlPuvgtkitYwTeybwu3I7JE6bDvO7/xPrkKtvYTgbTQFsEexnEW8CF0horv35CU/DGZ1+YcP/9E1741caK5gk4ZZeO+c1r97YMHXP33WOGttz7+ktj2Jwgl8BJdafixhWsfw3F7F8iqBbRwQzaQeGyE/Qo1Jw4Kh09cfToCag52/U1kK/lhm3IoRu2QQO8to2+Rl/bBq/RshaJtDCdjOunaTtQEdv9MQpRFLSoxX3LgTjKtTREubBJNxIpiCqsnX0oqges7lEm33UTrcxhhFnz8IRU9lwKbtMfMPp+ux6lP1wP2w+Xn/p3JWvkO8os+4EyLSj+g+oPldoHL8+lOw50/lDJOH1e7mSJGIqm56iMcgzLNRkF5rRgCqIIY/Y0k8CtngyARYJyaEfbc0v6OR7LCWYdpb18CrMPyujxHW0Tqabfp/0ldFzP4z7Vg3OVL8iLfMf752wPIuuTjCzycgdl0Weq5w4WHD0kPsnHrk4mV48dt6Il3ODzNYRbVozjMcB7SsaVxzRSdogDoUEYx/lRNrPSQBrEeYnMv9kT5Fv1wC0jDLgljS2shmHdKdLtDxcxNS/FxaPE51EfSW6Nr1lTPvfiem0wd+K2hguHlDkEurFzZE+Uf1qncEW4j583nwb76c1slxR5h3TeGGq6J6rG6SbTNwQiz8I2FBAn99f1cJRUVBt3QfF5mCmOQWglFOlBH8qkZV+uXr1w6sqFf/0NnQbk+iVz6uouXbt96YK3FG3smHuW3ZinFt20+r6nhV8NH9daWkpb6PFJU28jaTs6kTP7wz4xrHriYYsv7pFna19oFTRRwS6oXnKFikvOtM1b49wim2EQ6+eMYwmYgswRk7MLOJCWxzhxe/s5Vko6Xel7U0j0phaAm00QI/ezZv3KeIOR5HB/ZxuOIMp+i8ljYR8asNk2BEC3DKt+I6BKr+nKDWjf8DHTzS2gm5i1bzROhPFeThNjiqVnDC9shEHjLErjagYztmnny0kz+Y/zZZgjqKgjuLtlMF4j5EONMEJ1jIAyCNRAvhQcAY54cIQQCKoO/MsXWSK8RVkXR3jmCeP5QhnGYaAM8iGuloEazzcEK/HGEccMJYdaIyvMXdNRI48QkDiPEPBtScWkIuboyMdZd6GIzBPFLNnkEsjLkGhT8n1FhcMiFUEAWXbkWnL9geJRzsJch5xX6nCGC8XcGkOhrSJ/Yo9k9Ug2Q/OkZqUgJ2R3j3FdtuidJwO1bl+NSynJrk2Wx3ODxV6Lx2MszbYmY0PlvOxQgbMsz+fMcjsNhaFgnVLamD8kWIUKowEMcpYMTtc1726SsrJHubPUPIMh35rbHBTyLaPrvEaDx1BTWyY4Suoryk2CRxr6LcH9L0mxIMPum/zHp7LCRQaLTSyNueOq2ZdndfogS/VnNcdkVbD7so0VTtHuNNqz1ycFk5wlGLN8pc0em9VkMIH/ZsgxGBTVLDrkItvQfHOJN+AwmbPiVos9x1SgWixyvsliLXQ2O2srKt2uSqfRPKW2oNWUZcpxlIcWz/gJ7X+mPOeWEa3DSgqiLXK2Uc01Fxepdq9FrjMWZEuWxpGjyzplh8mpcBm6V3SrC6SMDfJbPH6Az/t+fcMNv75BFAdfpJM38Ougv7SfJLO79DJUxzlvIF9rYq84YK/BGwNbKyRqArEXUb8vwd6REnwvC+ORa/BYA+lLcDtOIr3PJXD+wqL1PAfbACpILRmmf6+sey4hJ/Po3y2nv5YxIWOLDYd0VHl6wUtpYodI08i/Ru4njWOZLtwYuPqmrh083KfvRQrJtMPI2LXeB5jc6NIkn3fdGIZ8oY5WB7WP29H1gHftWIyw87QHMoRZGdAtzv/2PS1LMps7me+4gejSpI8wBV5EAU55jMhAgmlOeFCSCQHnYXqY41ucY4BGcvX9EKOIOjEEWyS+Y+rzBiEaDCj5oDBfLodubiyDcyYaAp9igf/0+8EP3MtP/G0M2xGjBxPOTv9Ef5c/X9Dy/RjKdya0p6KBQNSvatSBtDPX3xWAclG2jZu+8QyNTkx2xaBNSzjzMbH+VheGOp2J1L/wJX+UkMHfEo4mE0k7mUeW8D2jtE9gC8SZU6DHNBDDfGzZ8A6KiHLlf2C0mdUHrxlQH/D8ueCqDgx1Mpoe9rGN/Sjx0kG2m5MOMiealD4N+tJq2vmX+fq484nwAJKqD9L3Y9Z5wZeMPpCeJ3j7wJ5TkJk2OJPoB6f2pMXKmeQgZTiZmTsC9skpNaH08v00ou/Lh42CiGzXwbZHM2tWfsS3plXMFmh3v84k6fH/Hsc9A/Cnb0TJPdEWoe+kwGcPqoOzerYxkxi7F36W3sETYBWuqZ/imvLwvRYH9w6Iu8BhYh7XgzrZFrb5TC2Q6WaZ3rGMPkCX0AeW3TH2lR5NS/edpvW8Qn+kd9OROY/+9s1H5rRdYoF/aQ+c64UHNJptWSqm0o0W0nOCkMk4H3SLVyX75tdcCqytwyESZFt85UFlIMIcDwR9ujUsEg+YeC3xoUtwtwjML47dFah2m98bCOreoI48QeWbBG/neucuCkQC18+lX+28h/5rzg14s3iOJ+9t9rS39D68XfrY5yB9/thSDO4qSWk7U8Pn/mNT5+M/aarY8mu+qTCybRnt38rzS5x49MpbNl/52HH9bivAsgmtmGTqgiMg6HHXY1aY5fX6He0/0tmh/WLzwpXhzsTcWyZnbF3aoL1swZNGC1nTTXps3TOeInHGwMaQMgSAAQ7AuI09bPJWAclCLcHqUO3EIb9+371H6eX0SfrXV1cJpOv5S6D+sBgOU7LqVSiBabDt6Ocnnn+a/m06r8OrOBca+f8FUcr9zjhX5CTaGg8rAjOvBoRg2AXumDR1z5o1UyJzws/2Wr98up88/aW11/EOFB8XtTVTBDJlTXhOhJKpBYfoF0PoF1AwBAoObT50KO3TLGJLB++pySS9p3buO2pHxoLDDZ+mwWE13SeDzpxAZc6MOn1XPKTfy+gJvL+zM9+Z6T/mLsDwltnSGbHWQ6y/+TduhNfNyHbRQPTIoh//PCIKMe654JHIOroVqtahHh25Eqro1nXHhMdT77yTOpE68U7qHeFx+WN6zx/onvffh4V/EFENodekboRb6DrhGrgx8917poyMP4SnGFCFH5TJsWOo7g96Mb0ZN7h++YPfFnklL8zjWKaK386MVrD6wbK07x7X1ezI8CuZ/cmIs4vtZnOc9nBvczbv1EAQYZk9hfq43cFs1gof036udnWxweCBueOHzLphj77r20f0O8q4MQcyLpaBpP/TkKZrF3Xq8ZSH4cLv9arJBLLoO7029Z3hgId9i8x2j+3hWJhv3NnjulJSnv5M2Wp31PNHkqPebhl4xp+EM0/s4njohol/27r1b3Q/vZ3uZyGxy+LKN+bn/Z3+NXb1xNEmk6nI6cz95SU//uKiXK2kPLiJPvPIuFunjA6HyhSn0vPLn0OgK8epuWrCd9Dr3+l7JBEO5Lvlx359GGZfXaRqg7OGiby4s8vykRcX5qlbTWaTIbvYbHPlOpsacj6qcTVYJ8/GEk3NJZGs3GDbqFxwRvxh57xZYduYQDg3MCWZc15fidybtIjNdh//TwL4ZrzoyzARWxxn7y6hZFffxcpwWk3v/+yvlChLzpyFiz+Fx+THaDUcYwccP/s8HcUIiPR6apQ45+yOY8c4DqVtSen95cHaJhPPusJznmcmV3XYyuQx/Pz/AAfdhq542o2QsWrDMBCGfyVOSjOUDn4AdSlJiY1sMCTZ0hQHQqcM6RyMahsSKVj2EChd+wgd+wZ9s7xDz4pKl0IrkO7T3a+73wZwhU8wnNcNHhwzDPDiuIMLvDvu4hYnxx4G7M5xD9fsyXGf8q+kZN4l3e7tq5YZfDw77tDcN8ddPOLDsQef+Y574Cxx3Kd8gQU0DjiiQokcBWpwDJFhRDGGQIQEY+IV6SQU0RwGezR0GpvBQh+OVZkXNR9mIx6LKBnzlZaKz82+MUaSZGmV0k7JqJOit1hKJasy04p4TcWcmu6wJRHWMm92W4LUimsbK1JIayskYxwz2r81PlciTBBgSvv7M5BqVae6yiWPQ8Fn/McAXaJJMA1a8/9wu7FFQ2Vtf4mwE0IbW2fYyMqUWnEholAIwf/u+QXtVlqxAAAAeNpt0meTFVUUheH7DhkJEgQJgpIFhdvn7NM9gxKGCZKzKGZyUHJGySAgSq7i5wrFfYdPdFXX+tRP9V61Wl2tt8//rdbh1vueV29eWl2tYXQxjOGMYCSjGM0YxvIB4xjPBCbyIZOYzBSm8hHTmM7HzGAms5jNJ8xhLp/yGfOYzwIWsojFLOFzlrKML/iS5aygTUUiExRqGrrpYSVf8TWrWM0a1tLLOvroZ4BBvmE9G9jIJjazha1sYzs72MkudvMte/iO79nLD/zIT/zML/zKb+xjPwc4yCEOc4SjHOM4v/MHJzjJKU5zhrOc4zwXuMglLnOFq/zJX1zjOje4yS1uc4e73ONv7vOAh/zDI/7lPx7zhKc84zkveDnqwsljg1W7bVZmMrMZZjFrszG7zZ63mfSSXtJLekkv6SW9pJf00pBX6VV6lV6lV+lVepVepVfpVXpJL+klvaSX9JJe6njZu7J3Ze/K3pW9K3tXbg9915id/wid0Amd0Amd0Amd0Il3TueesJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn0h6SS/pZb2sl/WyXtbLelkv62W9rBd6oRd6oRd6oRd6oRd6oVf0il7RK3pFr+gVvaJX9IperVfr1Xq1Xq1X69V6tV6tV+s1eo1eo9foNXqNXtPxijsr7qy4s+LOijsr7qy0h75rzG6zx+w115l9Zr85YA520l0Wd1ncZXGXxV0Wd1ncZama1x+EcTsAAAAB//8AAnjaY2BgYGQAgosrjpwF0ZcUq9bCaABTzgdAAAA=") format("woff"), url(".././Genericons.ttf") format("truetype"), url(".././Genericons.svg#Genericons") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: "Genericons"; src: url(".././Genericons.svg#Genericons") format("svg"); } } /** * All Genericons */ .genericon { font-size: 16px; vertical-align: top; text-align: center; -moz-transition: color .1s ease-in 0; -webkit-transition: color .1s ease-in 0; display: inline-block; font-family: "Genericons"; font-style: normal; font-weight: normal; font-variant: normal; line-height: 1; text-decoration: inherit; text-transform: none; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; speak: none; } /** * Helper classes */ .genericon-rotate-90 { -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); } .genericon-rotate-180 { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); } .genericon-rotate-270 { -webkit-transform: rotate(270deg); -moz-transform: rotate(270deg); -ms-transform: rotate(270deg); -o-transform: rotate(270deg); transform: rotate(270deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); } .genericon-flip-horizontal { -webkit-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -o-transform: scale(-1, 1); transform: scale(-1, 1); } .genericon-flip-vertical { -webkit-transform: scale(1, -1); -moz-transform: scale(1, -1); -ms-transform: scale(1, -1); -o-transform: scale(1, -1); transform: scale(1, -1); } /** * Individual icons */ .genericon-404:before { content: "\f423"; } .genericon-activity:before { content: "\f508"; } .genericon-anchor:before { content: "\f509"; } .genericon-aside:before { content: "\f101"; } .genericon-attachment:before { content: "\f416"; } .genericon-audio:before { content: "\f109"; } .genericon-bold:before { content: "\f471"; } .genericon-book:before { content: "\f444"; } .genericon-bug:before { content: "\f50a"; } .genericon-cart:before { content: "\f447"; } .genericon-category:before { content: "\f301"; } .genericon-chat:before { content: "\f108"; } .genericon-checkmark:before { content: "\f418"; } .genericon-close:before { content: "\f405"; } .genericon-close-alt:before { content: "\f406"; } .genericon-cloud:before { content: "\f426"; } .genericon-cloud-download:before { content: "\f440"; } .genericon-cloud-upload:before { content: "\f441"; } .genericon-code:before { content: "\f462"; } .genericon-codepen:before { content: "\f216"; } .genericon-cog:before { content: "\f445"; } .genericon-collapse:before { content: "\f432"; } .genericon-comment:before { content: "\f300"; } .genericon-day:before { content: "\f305"; } .genericon-digg:before { content: "\f221"; } .genericon-document:before { content: "\f443"; } .genericon-dot:before { content: "\f428"; } .genericon-downarrow:before { content: "\f502"; } .genericon-download:before { content: "\f50b"; } .genericon-draggable:before { content: "\f436"; } .genericon-dribbble:before { content: "\f201"; } .genericon-dropbox:before { content: "\f225"; } .genericon-dropdown:before { content: "\f433"; } .genericon-dropdown-left:before { content: "\f434"; } .genericon-edit:before { content: "\f411"; } .genericon-ellipsis:before { content: "\f476"; } .genericon-expand:before { content: "\f431"; } .genericon-external:before { content: "\f442"; } .genericon-facebook:before { content: "\f203"; } .genericon-facebook-alt:before { content: "\f204"; } .genericon-fastforward:before { content: "\f458"; } .genericon-feed:before { content: "\f413"; } .genericon-flag:before { content: "\f468"; } .genericon-flickr:before { content: "\f211"; } .genericon-foursquare:before { content: "\f226"; } .genericon-fullscreen:before { content: "\f474"; } .genericon-gallery:before { content: "\f103"; } .genericon-github:before { content: "\f200"; } .genericon-googleplus:before { content: "\f206"; } .genericon-googleplus-alt:before { content: "\f218"; } .genericon-handset:before { content: "\f50c"; } .genericon-heart:before { content: "\f461"; } .genericon-help:before { content: "\f457"; } .genericon-hide:before { content: "\f404"; } .genericon-hierarchy:before { content: "\f505"; } .genericon-home:before { content: "\f409"; } .genericon-image:before { content: "\f102"; } .genericon-info:before { content: "\f455"; } .genericon-instagram:before { content: "\f215"; } .genericon-italic:before { content: "\f472"; } .genericon-key:before { content: "\f427"; } .genericon-leftarrow:before { content: "\f503"; } .genericon-link:before { content: "\f107"; } .genericon-linkedin:before { content: "\f207"; } .genericon-linkedin-alt:before { content: "\f208"; } .genericon-location:before { content: "\f417"; } .genericon-lock:before { content: "\f470"; } .genericon-mail:before { content: "\f410"; } .genericon-maximize:before { content: "\f422"; } .genericon-menu:before { content: "\f419"; } .genericon-microphone:before { content: "\f50d"; } .genericon-minimize:before { content: "\f421"; } .genericon-minus:before { content: "\f50e"; } .genericon-month:before { content: "\f307"; } .genericon-move:before { content: "\f50f"; } .genericon-next:before { content: "\f429"; } .genericon-notice:before { content: "\f456"; } .genericon-paintbrush:before { content: "\f506"; } .genericon-path:before { content: "\f219"; } .genericon-pause:before { content: "\f448"; } .genericon-phone:before { content: "\f437"; } .genericon-picture:before { content: "\f473"; } .genericon-pinned:before { content: "\f308"; } .genericon-pinterest:before { content: "\f209"; } .genericon-pinterest-alt:before { content: "\f210"; } .genericon-play:before { content: "\f452"; } .genericon-plugin:before { content: "\f439"; } .genericon-plus:before { content: "\f510"; } .genericon-pocket:before { content: "\f224"; } .genericon-polldaddy:before { content: "\f217"; } .genericon-portfolio:before { content: "\f460"; } .genericon-previous:before { content: "\f430"; } .genericon-print:before { content: "\f469"; } .genericon-quote:before { content: "\f106"; } .genericon-rating-empty:before { content: "\f511"; } .genericon-rating-full:before { content: "\f512"; } .genericon-rating-half:before { content: "\f513"; } .genericon-reddit:before { content: "\f222"; } .genericon-refresh:before { content: "\f420"; } .genericon-reply:before { content: "\f412"; } .genericon-reply-alt:before { content: "\f466"; } .genericon-reply-single:before { content: "\f467"; } .genericon-rewind:before { content: "\f459"; } .genericon-rightarrow:before { content: "\f501"; } .genericon-search:before { content: "\f400"; } .genericon-send-to-phone:before { content: "\f438"; } .genericon-send-to-tablet:before { content: "\f454"; } .genericon-share:before { content: "\f415"; } .genericon-show:before { content: "\f403"; } .genericon-shuffle:before { content: "\f514"; } .genericon-sitemap:before { content: "\f507"; } .genericon-skip-ahead:before { content: "\f451"; } .genericon-skip-back:before { content: "\f450"; } .genericon-skype:before { content: "\f220"; } .genericon-spam:before { content: "\f424"; } .genericon-spotify:before { content: "\f515"; } .genericon-standard:before { content: "\f100"; } .genericon-star:before { content: "\f408"; } .genericon-status:before { content: "\f105"; } .genericon-stop:before { content: "\f449"; } .genericon-stumbleupon:before { content: "\f223"; } .genericon-subscribe:before { content: "\f463"; } .genericon-subscribed:before { content: "\f465"; } .genericon-summary:before { content: "\f425"; } .genericon-tablet:before { content: "\f453"; } .genericon-tag:before { content: "\f302"; } .genericon-time:before { content: "\f303"; } .genericon-top:before { content: "\f435"; } .genericon-trash:before { content: "\f407"; } .genericon-tumblr:before { content: "\f214"; } .genericon-twitch:before { content: "\f516"; } .genericon-twitter:before { content: "\f202"; } .genericon-unapprove:before { content: "\f446"; } .genericon-unsubscribe:before { content: "\f464"; } .genericon-unzoom:before { content: "\f401"; } .genericon-uparrow:before { content: "\f500"; } .genericon-user:before { content: "\f304"; } .genericon-video:before { content: "\f104"; } .genericon-videocamera:before { content: "\f517"; } .genericon-vimeo:before { content: "\f212"; } .genericon-warning:before { content: "\f414"; } .genericon-website:before { content: "\f475"; } .genericon-week:before { content: "\f306"; } .genericon-wordpress:before { content: "\f205"; } .genericon-xpost:before { content: "\f504"; } .genericon-youtube:before { content: "\f213"; } .genericon-zoom:before { content: "\f402"; } plugins/jetpack/_inc/genericons/genericons/Genericons.ttf0000755000312500031250000005325412651056012024303 0ustar eacbforgeacbforg €PFFTMuëº(VOS/2d,uÅX`cmap©r³¡ð²cvt D¤gaspÿÿVˆglyfªìIÎØHhead `BWÜ6hhea¸$hmtxXðSr¸8locaˋݮ¨0maxpé8 nameR†ŸNh7postö"—¿P è"´*_<õ Ò!z­Ò!z­ÿù¸ÿù—è@.ó3™3™×fPfEd€ õ¸ ìDªÈ€€€€€€€Œ€« €€Ø€ÿ€Œ€Œ€Í€€U€€€€€ÿú€€`€€S€€€€€€€€€€€€ €€€óf€€€€€ €€@€7€Tn€€Æ€€€€€€€€¬  ñ ò òò&óô ôô)ô9ôIôYôiôvõÿÿ ñòòò óôôô ô0ô@ôPô`ôpõÿÿÿã ) 2 , &     D,,,,Z„ÌòF”βL¤àÂb¾0Âä$H‚àØ 8 Œ  Ð  ê < ~ º$Fb€Êì2ˆò0f¤îH²Ôö@^z–ÄÜ Xªê.Jž´ò Œ¸èú,@VdrˆæTˆÊ,N|ÖBXf|’ ÐJ|Òèþ0T~Âü:hˆ¼ìVp˜Þö .:HVªà 8 È!!B!Ä!à"":"H"|"–"È"æ##Z#ð$$$HDdU.±/<²í2±Ü<²í2±/<²í2²ü<²í23!%!!D þ$˜þhUú«DÍ€ !!!55!5!%!55!ü€ý€ý€€ýÿ€€€€€€€€ÿ€€€€€þ€€€   $264&"/¢aÎÎþŸþ^þŸÎÎÈÔ––Ô–ÎþŸþ^þŸÎÎa¢aüΖԖ–Ô€€€€*!%!2>4."52#".46€ù€þ¥¶¦xGGx¦¶¦xGGxÿÿ©®“V3UwAW“VV€€ü€€€û€Gx¦¶¦xGGx¦¶¦xù`@ þÀV“WAwU3V“®“€€ !!!!!!€€ü€ü€þ€€ü€€€ü€€þ€þ€þ€€þ€€€€ €û€€ý€ý€€€€ .546 €qÿqá>á€{Å(ý耘(Å{Ÿáဠ!#265!#265!€‰ì‹j–€‰ì‹j–þ€€€ý€‹ì‰–j€ý€‹ì‰–j€€4 5654&".54 &54>72654'» »jV@qžq@VjÀVj»þö»1V9@qžq@»…þ€až&—:T€OqqOþ€T:—&ža€…à&žaþ€…»»…€@uW—:Tþ€OqqO€T:À€#2+!7!2652#!#"&5463€j––j€þ@þµ€‹Ÿáþ€j––jþ@þ@€j––j–jþ€j–þ@À€áŸ€–jþ€j–þ@À–j€j–€€€!!'654''>54&'€€þ€þ€6;;6ZKKXccX[/B%OG€û€6ŒœŒ5ZKjjKYêþüêY[/q„Fh»G-w &54654&'>54'>&'.&'..'.'*7'&$&54>u ངJi¹þþ˜##'5YcMI0i 27&,  $µ»!¯ÞþˆjØHœÌþìþÔ:[útl}¬ç@þæþqiG¶÷<'ªLzû:Âþñ/ÂôŠ­ € fÊ M‹i)~þ·þyœ{¤¤þíþ…þdþ…þí¤¤€P,„JþÑÇÀ lTÀ..˜þʉ@§þÏxÍ6M0€V2Ø9_j3T !óUþ»ÖH.6¦þ¦: >B$~’€¤þíþ…þdþ…þí¤¤{œ{€,€Ý9# %32>7.'327.=.547&54>32676€Km-Z€°ÐþþŽþÎþÿ,,U£‘?w½#% 10¨NXKX2ŠŠâ :cˆKN‹3}lT9n0pNiÔÍ»sA¥&F1Žo Ë„+2¢^cVªË )+Jˆc:=7@@i" €€€€'2#!!!=4637&#"#3!"&5463€j––jþæ þæ+B¦Mi^’X,þþý,j––j€–jûj–ÇÀ <7ò 6_uDìþüý9–jj–€€ç€ !!!#34>32"#"žIþÆþÀÞÞ-H^~J7j]d(4 øþÑü·I/4`WH6þæ%-" €€€€!dn #"$&627&' 67>54.'.54632&$#"2326?6'.6326?6%654JlLðŽAs¦Äèz¶þ´ðŽŽðþÜúÍþF&Š‚øòpã#PN: nþ雊þÿÎH%l#",0%°~T…O&k##+#=ö·Ú€Žðþ´¶zèĦsAŽðLlLðýìþ{dü/.§ýA! üž  11F3.Y5"%  9Vdp[£n"ü—X"  "(+‡šý9jsÛÎŒó1=!#".54>32. #"32>7!%3##5#5353Ú& &Ed|–RvÚž_b¡ØruÉBš $e«dd«eApH6þ´¦€€€€€€€'3R–|dE&_žÚvuÛž_NL™    c«Ê«c$6E;Í€€€€€½1!!'#"&54632!4&#"!'!>32]þ¶J¥QegS7T,,Vþ·QV+G* þ·I  !/3B$R‰g9߇bIJa-M10M.ûšiw%3 6ýׂ]# 7k­o€€€€ <2#!"&5463!265.#"34&#"5!!47>32€j––jûj––jþùƒDQPBCRQA;§ˆ2Q8"þø "9"EA€–jûj––jj–úüç…O:1vÙ®Ž`4-Sy–¶dc¯"I"]•¢fSX&<zdu¹bEƒÈ}]«‡nI'S#Uv7$Ll—³ã7bˆ µ]{⿜m<]@þÝ8{“6¨z° !i4Œ»kR3“Á9c¸1¶h±J.Qp†˜P•b O  #”¼pMž›xW2c #"'6732>54.#"67>76&'&54>32#".7>54&#"&54>u ངJJ„½àþö‹”ŽKHQyÏQ;rœÍsvÑž~O)jgDG€Àqe£j8P–^5T% 1GC6Z5 qµþìœJ„½àJ„½àþöþêþöངJ*xc5Kk»•[­”o@7^|•JŠÓ*@ Oya²‡Qá€þî‰ìþêì‰þîK55KK5€5KK5€5K€–jûj––jj–þáþÂáá>üáF:‹ì‰‰ì‹;Eý5KKµ€5KK5€5KKÿÿŽ’–™¡¥¨00111#"'0/&'0&5&'&'.5&'4'&'&54&50&54545065614767652747676767676?076201030017 %7%%7' '%5ýB(ýB¾(¾ýBçýwýûçýÆ¥•þâçGééé+çþâ:¥òþ-þ- ÓÓÓ þ-OþÍ¿šXþ¨š¿ Üný¾4¿›Nœœœý¾Xš¿¡Ün€€€€<¾ç2 $&54>&7#".54>767>?>32&'&$'32>5041.'&$676&'.67>76&'.'&7.'&'&67>&'.7>'.'.7>2$7654.''&$'&76$767¶LðŽŽðþ´þ”þ´ðŽAs¦ÄèÓžþÖmmd¦|x {IKoÌ”W$@. A¤Äg£a %hþÛ**V‹tvTZ`¯~K jTfþômt=> šmnß;>K.…ˆ5V3,5,Z&&4+24-+(/.H  E&&F "(+[!"%V…B3U/ Pfv8$A3 {¨TWUþ{ìˆf;W–ÉsMƒa6Hspþ·§§þéGJ WX-²›þéÉvÛ.€Žðþ´þ”þ´ðŽŽðL¶zèĦsA—uokþÙ•”ÿIH9X“ÌpFˆu2 Kl;Œ{3-~•ý C†8s*#"K~¯`k¿>M;>ik|xÃ!R][âK3-'=`aU+ G)*T!! J%%>8+I!+##T'!  Y0Ak. E^o54T-/=$7{32. #"32>7!%3##5#5353Ú& &Ed|–RvÚž_b¡ØruÉBš $e«dd«eApH6þ´¦€€€€€€€'3R–|dE&_žÚvuÛž_NL™    c«Ê«c$6E;Í€€€€€€=‚f././67!>76.#'"&.>7>žIEXD;+lowphW@ %44nTE!DC88@?XMR?1 $>R[\SA34KFSGH á:) HCE¨§°¢˜{\) *2U]ƒŽ·bY‰S7 þë #  "+$-²ýæ -CkEL‚[J,"(3K--`QL:, É in¥¡Æ\Nr;  Œ€t€)#"'#".547&54>32632654'&'&'&'&'&'&'&547632327654'&'&'&#"#"'&'&'&'&#"3276A3MƒµdymOLrÛ¸œm<C1[x•PwJFb¾¥“sS,þf;"#=;TRiV $ 47[b+*!/4#"88SUpŽil8975[X…\>8"!>BhN-.,6"#64Ww¶™npBgrdµƒM:=lœ¹ÚsTUr…P•x[1K ,Ss“¥¾b]þÊThX=<(' ."$ >.$$-.20,,')IJ`fDB'&!2?*,!!50 !/KML/?..€€4+2#!".+32>54>32!2€''K5@5KK5þ@AtGZ*€À1na@ !YF 5K1$!'1$!'5KKjK(0(€^¡ø‰-!TšRU %&KÍ3s'0?HP‰62#"'&46232#"&54632$2"&54%654&#"2$654&$#"67&#""264 $.547.5463267676>32#".'%>32È*V¹»V*8‘þïB..AA..BD\BB\B!+9)-Sý‹«#ªªþÝ«¬þݪª#ýâ(/U,):-?..?-¦8.tÅþðþÖþðÅu+vS1S·å\9R1JiiJ/O1þúMÞ¯U26\6+VV+8.BB..BBBB..BB..=0)9'=ýgjµkl¶jj¶Ö¶j›/L=$9T.>.-@ý°7[21e¹…OO…¸e263A#Sv-&a É H)1i”i-M.<þ~ `(.6\€#754.#"#".=!265>32!#".'57265Q%"/\]E€\6/D/Ç‹‹È?\ž]]ž\i/D/Ñ\%."þZ™Y5[}DÑÎ!//!爽¿ˆk-Ñ[œZYš[Ò0.Ô!//!€$2 $546364&" &"7267j–ÎþŸþ^þŸÎ–jÚ&Kj%þÚþÚ%jK&i9D9–jþ€ÑþŸÎÎaÑ€j–ý¦%jK&þÛ%&Kj%þ–##€¾€B   7 5qýíþ“mþqmýñþ“ýíqþržýðýðžBþÌþ·$ý¹#þ¸þÌ4HþÝþ§ þÜI4ûùþÍgsþÂ>sgþYE2+"&'.54>376&#!"77>;267>76&#!"&=463!2>ÆX:4Y/úþw* <(á"ýnóÝþñ##? bbþþþ>(þ9 +(,,þo³ ü#"œ #"'! À2#!#"&5463j––jþ@þ@€j––j–jþ€j–þ@À–j€j–€€ !!!!!3ÀÀÿü€@Àý€€€€ý€€€ÿ ! 264&"ýþËjKKjKþý€KjKKj€€%  $&62>4.#"1¼pp¼þûþâþû½oo½”uÕ›[[›Õuœþöšš Ü*[þ±o½þûþâþû¼pp¼½ûo[šÖêÖš[šþöþÈþöšþZþ×[PÚ€€"&4622!463jÔ––Ô–€Ÿáüៀ–Ô––ÔþêáŸÿŸá€€ ,!!!53!534&#!"3!262"&5#"&463€ú€€€€€K5ü€5KK5€5KýÀ&&4&@&&€û€€€û€€5KK5ý€5KKµ&þ&&À&4&€€*:0.7#"&463!;0231!!!53!534&#!"3!26€€.3l®&& ú€€€€€K5ü€5KK5€5KÃþ .±&4& »û€€€û€€5KK5ý€5KK €€ +;?C5353535353!5353353!!!53!534&#!"3!265353€€€€€þ€€€€€€þ€€€€ú€€€€€K5ü€5KK5€5Kþ€€€€€€€€€€þ€€€€€€€€€€û€€€û€€5KK5ý€5KK5€€ÿ€€UUzz >7&"72?64ÞZýá$;:'" 8ø´µ%j&µ´ýàµ&j&µ%8Zýá%/ .3R¼µýà´%%µBBµ´%%¶%j#"$$ 2>4."€þ˜¹œþöšš 8 šoüoxÎôÎxxÎô΀€ïoš 8 ššþöœ¹˜ËôÎxxÎôÎxx #"$$ 2>4."5!ï€þ˜¹œþöšš 8 šýFôÎxxÎôÎxx€oþ€ïoš 8 ššþöœ¹þùxÎôÎxxÎô΀€ (!!#!5! #"$$ 2>4."€ÿ€ÿï€þ˜¹œþöšš 8 šýFôÎxxÎôÎxxÿ€ÿ€ýoþ€ïoš 8 ššþöœ¹þùxÎôÎxxÎôÎ+Õ %-  $' 6$  ." 3266  264&"ûþdþôþÖþôeþúe * %uþMÅØÄLþŒrMÅllÅOýá>ááþÂaKjKKjûþþfssgúúgssü+tsNSRNþŒþNSRŸ>ááþÂá5jKKjK+Õ#+;"' #"'73267''7 6$32264&"%7&#" 7&54632!´á`þdþô•©œ“^TlÅKuÙ.û€þ:úe •÷Éý‹jKKjKÍj¨lÄLþŒ>q?áŸl€´!Ÿáàþ þfsO“"RNtØâû€Æúgs ýÌKjKKjöjiRNþŒþÂq`mŸá€€  ' 7 þÀ@€þÀþÀ€@þÀ€@@€þÀþÀ€@þÀ€@@€þÀ@€€  ' 7 üÀ@€üÀüÀ€@üÀ€@@€üÀüÀ€@üÀ€@@€üÀ@€€€5+5%463!2264&#!"33#!"&5333333€€€€€€€€€K5€5KÀ&&ÿ&&À€K5ý€5K€€€€€€€€€€5KKµ&4&&4&Àý@5KK5Àý@Àý@Àý@–  þ$·þ%þ%·þ$L´´þ¶ýéLþ´Jý退€ !'!€€ü€ÿ€þ€þ€ýÀÀþ@ !  !ýýú€þ€€Àþ€€ý@€€ÀÀ !  7/%'Àü€þ@€ý­`Sý €`@`€M`S`Àþ@ü€ÀÀý­`Sü`€`@`€ `S`À€À !!€ý€ü€€@ý€ÀÀ€ý@À $2!4$#2 !4 &,#2"&4‹ ངJÿÎþžÐÑŽQÆnÿ\¥íþçþµ®p pp pJ„½àþö‹ÐbÎnÆþäþ¯þrÑ®Kí¥\ü€p pp ÿù¿#!".67>2264&"!Ì+4tSùìBg<#ø+prp+þ÷jKKjKÙ4þæ3ZF€]7#@Uj8ÕFIIFúÑKjKKj5€ý€€€€€+3!!#".'7&462326"!!6$32"'.462"€þÊKþÃÂW¥:&Kj&5‹MŸáþ€Ÿáþ6K=‚èY&Kj&#Scôp pp ÿ¬Ô.T;%jK%6=á៬ÔdY%jK%$2þ0 pp p€€+ ".53 654&#"2653#"&54» »xÎôÎx€» »qOPp&4&€qOPp»…ý€zÎxxÎz@þÀ…»»…€OqpPþ&&Äþ54.'ãã€è/D%Ù§‡ì«bxˆ8eFãý€ÕHPd®n‡ì«bãý€è.p…E±þï,þú‰ÆŒœþNhƨGã€ÕFºhuÎŽ‰Æþý€€€!€€€ÿ€!!%!€€û€ü€ü€€ý€S@à !#! !#!  &264&"8þõ“€þu¥“€þupüC »»þö»ñžqqžq¡þþ€Ÿýáþ€Ÿ>a»þö»» þ»qžqqž !264&"!€€þ€ýþ€€KjKKjKÙ4þæ3þ€ýþ€€€ûKjKKj5€ý€ €€+7?C2"&42"&42"&4%5!5!!!!463!2"3!264&##!5#5!¦4&&4&&4&&4&&4&&4&€þ€€û€K5€5Kþ@&&&&@€ý€€€€&4&&4&&4&&4þ&&4&&4¦€€ÿ€€û5KK5&4&&4&û€€€ü€€€€€2#!"&46;&54632>32€j––jûj––j»…Bv,.¼rŸá–Ô––Ô–!…»3-e{áŸ>B€€'!'&4?627¶KKéJÑKþ9þàÇJJéKÔJX ÿ œKÓKéJHþ9 ÇJÔKéJJý–  2"&4–Ô––Ô––Ô––Ô€Òî® '!5!íþWWü€€þ©­þþVW€WÒ€®!!Wþ©€ü€WWþ­Vþ©€þ©Ví€@ 7€€ýÀýÀ€À€ýÀ@€þ@€€@ ' €þ@þ@€@@€Àþ@€@ýÀ€€!€ü€€ü€€€!€€€ü€€€€ !!€€€ûû€ý€€€€€ #'+/37;?5335335373#533533533535335335335353353353353€€€€€€€€ý€€€€€€€ü€€€€€€€€ü€€€€€€€€€€€€€€€€€ÿ€€€€€€€€ÿ€€€€€€€€ÿ€€€€€€€€2#!"&5463264&"!j––jþj––jËjKKjKý–jüj––jj–ú€KjKKj5ý&2#!"&53!!#5463264&"5!!5j––jþj–€ý€–jËjKKjK€þ€–jüj––j€€€€j–ú€KjKKjµ€€ÿ€€!462!462!!.€ÿKjKÿKjKü†é‘ÿ‘醀þ€€5KK5þ€€5KKý˘þõ³þó ³ €€(! !2#!!!"&46;&54632>32€þ€þ€j––jþ€þþ€j––j»…,TG.¼rŸá€ÿþ€€€–Ô–ÿ–Ô– …»+e{áŸ>B€€$2#!! !!"&46;&54632>32€j––jþþ€þ€þj––j»…,TG.¼rŸá–Ô–€þ€ÿ–Ô– …»+e{áŸ>B€€ 7!!!!#'!€ü€€ÿ€€€ýÚZ&þZ€€þ€€ý€ý€¦ýÚZ&€€ !!!#5!€€ü€ÿ€þ€€þ€yýû€€€ü€€";!"&5463!!&47!"@5KK5@üj––jü222üÎ5KK€KjK€–jj–û€ÿ7’7KjK Ÿ``,4%'"''&''7&547'7677627%4&"2`:þÏ/<‹É?>É‹;0þÏ:èè:10;‹ÉAAÉŒ;01:èþˆ–Ô––ÔìŒÔ––Ô–   $4.#"6%327/¢aÎÎþŸþ^þŸÎÎ2‰ì‹ˆ{»Hü‰ì‹ˆ{ýEHÎþŸþ^þŸÎÎa¢aý΋ì‰HýE{ˆ‹ì‰H»{2"&4$2"&4!!!!5!!KjKKjKýKjKKjKü€€üÿ€€KjKKjKKjKKjË€€€ÿ€€!!!€€þ€€ûû!ü€€ !!ú€€ûû€€!!€€þ€€ý€€û€€ ü€ý€ý€2#!"&5463264&"!j––jüj––jËjKKjK€ü–júj––jj–ø€KjKKj5û€&5!!5 2#!"&5!!!!463264&"€þ€j––jüj–üÿ–jËjKKjK€€€ÿ€–júj––j€þ€þ€€j–ø€KjKKj   $"2645#!3#/¢aÎÎþŸþ^þŸÎÎgjKKjK€ þÀ€ ÎþŸþ^þŸÎÎa¢a2KjKKjüK€€þ€€   $264&"!/¢aÎÎþŸþ^þŸÎÎýjKKjKÙ4þæ3ÎþŸþ^þŸÎÎa¢aûÎKjKKj5€ý€ 3  $264&"654'&#"6323547676/¢aÎÎþŸþ^þŸÎÎýjKKjK¿%TT”´¤\†d(4DÌERÎþŸþ^þŸÎÎa¢aûÎKjKKj9:Qp@A^´G#"*-,A9"-4€€€€ €üýý€àþ þ à€€€€ €ýü€ûàþ €€þ  3!3!3'#%#33'#€€ÿý€VTþëÖ+€ýêVÿ€ÿ€V?Ö+€ýÿ€€ÿýÿ€ó€ Ž .>7>ýxI;'„¹¾I¡¡I¾¸…(*E˜˜E*>›ÈÂEfàš  ' 7 'kÖþÑ/ÖÑÑÖÑÑÖ/ûjøø9Žþ9þ9Ž9ÇŽþÇþÇŽÇþ>> % 5! %!2#!"&54635!#!!3ýýúü€5KK5ý€5KK5€ÿ€ÿ€€þ€€€þÀþ€€þ@€K5ý€5KK5€5Kþ€ÿ€ÿ  5! %!2#!"&54635!ýýúü€5KK5ý€5KK5€ý€€þ€€€þÀþ€€þ@€K5ý€5KK5€5Kþ€€  5! %!2#!"&5463''ýýúü€5KK5ý€5KK5üÄZþ–µ[€þ€€€þÀþ€€þ@€K5ý€5KK5€5KýÄ[þ–µ[€€€  2'.#! €þÀ@ý€€‹ì‰–J¼dÿý€€@þÀþÀþÀ€€þ€‰ì‹þÔ–JLþ€€€þ€€€€2'.#! ‹ì‰–J¼dÿý€€‰ì‹þÔ–JLþ€€€þ€!!!".#"#2>32ÿFoKKoFGl>39##93>lGFoKKoú€ý&&&&&&&&€ !!!!!!'.=!ÿüÿ€ý98pýp%3ý€þ€€ÿüK7qq$Z_2€€€2#!"&546354> !54&"5KK5ü5KK5‰ìì‰ý–Ô–€K5ý€5KK5€5K€‹ì‰‰ì‹€€j––jW€"!2#!32654'&+32654#gôooaPmaäÃþQ‚dY11hu“e`Ì€FE™g„†o±¸=GBþ>þÔMP€€ #3!73#7!X€ð€(þ@(€ð€(À€ý€€€€€€€ !!"264'€ûµjKKjK€€þ@Àÿ€ûKjKKjüË@Àý` þ€ €€ !!! )  % 7€€€€€ù€þ€€€þ€€þ€€€ù€€ÿ€€€€üþþ€ýþ€€þ€€€€üÿ€€þ€€€þ€ Á  $'?2$7'7//??&/'?7'?&'''7/?&#"77?7?777'+7///?''?77'2/¢aÎÎþŸþ^þŸÎÎ Ä@J#84('  %&C 3 /(Ls!  "1  :AD[  `à2"&4$2"&4$2"&4#ºƒƒºƒºƒƒºƒºƒƒºƒàƒºƒƒºƒƒºƒƒºƒƒºƒƒº€À)ø€ÀÀ€À5À€€ü@€@!€€ü@ü@@€ü@ø€À€€(08#"!.54626326=.5462$"264264&"€F:‰ì‹j–ÿ:F–Ô– :&z†j–:F–Ô–ü5jKKjKKjKKjKFu"£‹ì‰–j€#"vEj––j.VBþG–j£"uFj––KjKKjµKjKKj€€ !!!!!!!!üþ€ý€þ€€ÿÿþÿÿýÿÿ7€ +3 &47'>#"'5'&"/3264&"éý€þó%%%-!Ê6jKK6þ¶@[%L%j%€%%L%@€°5&&5%€þý€ %j&$GR…úþ5LKj6J€@%L%%€%j%L%[@ýõ&5%%5€€€€DLT\d"&54>754&#!"&5467!""&54675463!.5462!2"264264&"264&"264&":F–Ô– :&K5ÿ:F–Ô–F:ÿ5K:F–Ô–F:áŸ:F–Ô–F:Ÿáý5jKKjKüËjKKjKËjKKjKËjKKjK]"uFj––j.VB£5KþÝ"uFj––jEv"#K5£"vEj––jEv"£Ÿá#"vEj––jFu"þÝáŸKjKKjúKKjKKjKKjKKjKKjKKjTá@À3263  7 2"&4ª#qB þpÿÿ€ÿþÔåG€0 pp ps5>üàþþWsŽÿþ¢p pp n’!) $'7#535.54623#>"264þ”gþ£þdþ£g”FÅs€€:F–Ô–F:€€sÅþ}jKKjKÎY«Ê˪YJfõ€£"vEj––jFu"£€þ eýKjKKj€€€N\2+"&=4'#"$'"&=47&'#"&46;47&5462 >=462%"&'>32@&&Í "Zb&4&‚Zþöš™þõYƒ&4&cY!Í&&À&4&e¬íí¬e&4&œý€šý=Zòˆ[­‘;(‹º&4&AJgþÿ@&&@Ö«wЉw¬Ô@&&@gIB&4&P`Î@&&@‚í¬ee¬í‚@&&@þÿÎ[V€©‰am3[@ZŠN€€€€ !!!!€þ€þ€ýû€þ€€þþÿ3", 5!È›Ñþrþ¯þäÆnj½f2»33þnÆQŽÑíÖ½±þïRÆ: "&5463273!&'3 6PŸqqO4Y3¹Àô±ÿ±ôÀÕÔ€qOOq3Y4þP·þð)þð)·‰··€€€€!€€ÿ€€€€ !! !! !! !!€þ€þ€þ€þ€þ€þ€€€ÿ€€ÿ€þ€þ€þ€€€ÿ€€ÿ€€þ€þ€€€€€ !!!!!€þÿþ€ÿþþ€€€ !%%!! !vþ,v34w,þvÓ­ýÕÕýÖýÖÕýÕ­çþ™ÒþŸÛÛaÒý€þ|ý„Šþv|„€€€  !€ýÕÕýÖýÖÕýÕ­ÓÓþ|ý„Šþv|„€ý€€€€   !%!€ýÕÕýÖýÖÕýÕ­ÓÓÓ4w,þvþ|ý„Šþv|„€ý€þ(ÛaÒg€€€"+5 5!".54&#!!23"&'63!5 527#!€ÿÿ‹ì‰–jþ€€‹ì‰–jZH)WƒŸÿüZH)WƒŸþ€€ÿÿ€‰ì‹j–‰ì‹j–;~b[€ÿÿ€þ;~b[€€€€-Ib  $&62>54.'&!"36363272654'&$#"26363222654'&$#"3263632HpLïïþ´þþ´ïïj ñþä6zLD ³fð^ €$'ˆþ²ªGŒOD3.s³¤&j €/3”þ‚Õüª@3& ¬º»Xz€ïþ´þþ´ïïLpLïûg   ;9 æ/9NX<4 'JC 4%3\W3E&3 &OK €€€€#!#!!#!!!7!œœü_=þ-þ¡êäþdúû_鬬þ-Óþ-ÓÔû½þCÿÈýCYû–ÓÓ #!"&5463!2€€þ€K5ü€5KK5€5K€€ü€ÿ5KK55KK5®!D |—&í *W ~ B f ‡ LŸ   5 hCopyright (c) 2015, Joen AsmussenCopyright (c) 2015, Joen AsmussenGenericonsGenericonsRegularRegularFontForge 2.0 : Genericons : 18-9-2015FontForge 2.0 : Genericons : 18-9-2015GenericonsGenericonsVersion 001.000 Version 001.000 GenericonsGenericonsÿf—      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”uniF100uniF101uniF102uniF103uniF104uniF105uniF106uniF107uniF108uniF109uniF200uniF201uniF202uniF203uniF204uniF205uniF206uniF207uniF208uniF209uniF210uniF211uniF212uniF213uniF214uniF215uniF216uniF217uniF218uniF219uniF220uniF221uniF222uniF223uniF224uniF225uniF226uniF300uniF301uniF302uniF303uniF304uniF305uniF306uniF307uniF308uniF400uniF401uniF402uniF403uniF404uniF405uniF406uniF407uniF408uniF409uniF410uniF411uniF412uniF413uniF414uniF415uniF416uniF417uniF418uniF419uniF420uniF421uniF422uniF423uniF424uniF425uniF426uniF427uniF428uniF429uniF430uniF431uniF432uniF433uniF434uniF435uniF436uniF437uniF438uniF439uniF440uniF441uniF442uniF443uniF444uniF445uniF446uniF447uniF448uniF449uniF450uniF451uniF452uniF453uniF454uniF455uniF456uniF457uniF458uniF459uniF460uniF461uniF462uniF463uniF464uniF465uniF466uniF467uniF468uniF469uniF470uniF471uniF472uniF473uniF474uniF475uniF476uniF500uniF501uniF502uniF503uniF504uniF505uniF506uniF507uniF508uniF509uniF50AuniF50BuniF50CuniF50DuniF50EuniF50FuniF510uniF511uniF512uniF513uniF514uniF515uniF516uniF517ÿÿѨÄÍÒ!z­Ò!z­plugins/jetpack/_inc/genericons/genericons/Genericons.svg0000755000312500031250000022626412651056012024310 0ustar eacbforgeacbforg Created by FontForge 20150618 at Fri Sep 18 10:24:13 2015 By Joen Asmussen Copyright (c) 2015, Joen Asmussen plugins/jetpack/_inc/genericons/rtl/0000755000312500031250000000000012651056012020121 5ustar eacbforgeacbforgplugins/jetpack/_inc/genericons/README.md0000755000312500031250000002460612651056012020612 0ustar eacbforgeacbforg# Genericons Genericons are vector icons embedded in a webfont designed to be clean and simple keeping with a generic aesthetic. Use genericons for instant HiDPI, to change icon colors on the fly, or even with CSS effects such as drop-shadows or gradients! ## Usage To use it, place the `genericons` folder in your stylesheet directory and enqueue the genericons.css file. Now you can create an icon like this: ``` .my-icon:before { content: '\f101'; font: normal 16px/1 'Genericons'; display: inline-block; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } ``` This will output a comment icon before every element with the class "my-icon". The `content: '\f101';` part of this CSS is easily copied from the helper tool at http://genericons.com/, or `example.html` in the `font` directory. You can also use the bundled example.css if you'd rather insert the icons using HTML tags. ## Building your own Genericons In the `source` directory, you'll find all Genericons source icons in SVG format. This will allow you to bake your own flavor of Genericons using a tool such as FontCustom (http://fontcustom.com) or Fontello (http://fontello.com). Perhaps you need more logos than are available in the base Genericons package? Just add those logos and bake your own expanded set. Maybe you need just a few of the icons Genericons provides, but would like to trim the fat? Remove the ones you won't need! ### FontCustom instructions FontCustom is a powerful commandline tool which which bakes icon fonts from the SVG source files. It's the tool Genericons is built on, and it provides highly accurate and perfectly crisp icons, *provided all SVGs have the same pixel height*. It's not that hard to use, and once it's installed you'll never think of icon-fonts the same way again. Seriously, you should try it. Icon fonts for everyone! 1. Install FontCustom. Follow the instructions on the website: http://fontcustom.com/ 2. In the `source` directory from the Genericons download, open the file called `fontcustom.yml` in a text editor. Customize the `font_name` and `css_selector`. 3. Open a terminal. Browse to the `source` directory. Type `fontcustom compile`. You'll now receive a brand new subdirectory called `fontcustom-webfont`. Inside here you'll find your very own flavor of Genericons, with only the icons you want, including a handy example page that'll help you copy/paste the necessary glyphs or CSS values. *Please note*: In the source directory, there's a hidden file called `.fontcustom-manifest.json`. This file is auto-generated by the FontCustom tool, and holds codepoints (unicode addresses) for every glyph, so its address doesn't change when you add or remove icons. If you feel the need to "start fresh" with the unicode addresses, you should delete this file. ### Fontello instructions Fontello is very easy to use. Just drop the SVG files of the icons you want onto their website and download the font. The downside is that Fontello seems to ignore the 16px pixelgrid, so you'll end up with fuzzy icons. Buyer beware. ## Notes **Photoshop mockups** The `Genericons.ttf` file can be placed in your system fonts folder and used Photoshop or other graphics apps if you like. If you're using Genericons in your Photoshop mockups, please remember to delete the old version of the font from Font Book, and grab the new one from the zip file. This also affects using it in your webdesigns: if you have an old version of the font installed locally, that's the font that'll be used in your website as well, so if you're missing icons, check for old versions of the font on your system. **Pixel grid** Genericons has been designed for a 16x16px grid. That means it'll look sharp at font-size: 16px exactly. It'll also be crisp at multiples thereof, such as 32px or 64px. It'll look reasonably crisp at in-between font sizes such as 24px or 48px, but not quite as crisp as 16 or 32. Please don't set the font-size to 17px, though, that'll just look terrible blurry. **Antialiasing** If you keep intact the `-webkit-font-smoothing: antialiased;` and `-moz-osx-font-smoothing: grayscale;` CSS properties. That'll make the icons look their best possible, in Firefox and WebKit based browsers. **optimizeLegibility** Note: On Android browsers with version 4.2, 4.3, and probably later, Genericons will simply not show up if you're using the CSS property "text-rendering" set to "optimizeLegibility. **Updates** We don't often update icons, but do very carefully when we get good feedback suggesting improvements. Please be mindful if you upgrade, and check that the updated icons behave as you intended. **Base64 encoding** By default, Genericons ships with a stylesheet that includes a base64 encoded version of the font. This is to sidestep issues with cross-origin requests for fonts, that happen when a stylesheet loads a font that's stored on a different domain or subdomain. This is very common when using caching plugins. Base64 encoding comes with a 25% filesize overhead compared to just loading the WOFF file directly. If you know that you won't be loading fonts across domains, or have the ability to edit your server config files to allow it, you can get slightly faster performance by loading Genericons without the base64 encoding. Simply edit `genericons.css` and edit the `@font-face` declaration to match this: ``` @font-face { font-family: 'Genericons'; src: url('Genericons.woff') format('woff'), url('Genericons.ttf') format('truetype'), url('Genericons.svg#genericonsregular') format('svg'); font-weight: normal; font-style: normal; } ``` ## Changelog **3.4.1** * IE8 support restored. **3.4** * Updated: Update Google Plus icon to new geometric version. This also *retires* the "alt" version, so *please be mindful if you choose to update, make sure you use the `f206` glyph, not the `f218` glyph, as it no longer exists! * New: Added helper rotation classes to the base CSS, thanks to geminorum. Apply `genericon-rotate-90` to rotate 90 degrees, -180, -270. Or `genericon-flip-horizontal` or -vertical. *Again, it is important if you choose to update to this version, make sure you're not using `genericon-googleplus-alt` or unicode character `f218`, as that has been retired! Use `genericon-googleplus` and glyph `f206` instead!* **3.3.1** Security Hardening: Remove Genericons example.html file. Please visit genericons.com instead. **3.3** The Open Source release. You can now build your own flavors of Genericons with all the SVGs provided. **3.2** A number of new icons and a couple of quick updates. * New: Activity * New: HTML anchor * New: Bug * New: Download * New: Handset * New: Microphone * New: Minus * New: Plus * New: Move * New: Rating stars, empty, half, full * New: Shuffle * New: video camera * New: Spotify * New: Twitch * Update: Fixed geometry in Edit icon * Update: Updated Foursquare icon * IE8 bugfix, slipstreamed into this. Twitch and Spotify mark the last social icons that will be added to Genericons. Future social icons will have to happen in a separate font. **3.1** Genericons is now generated using a commandline tool called FontCustom. This makes it far easier to add new icons to the font, but the switch means the download zip now has a different layout, fonts have different filenames, there's now no .otf font included (but the .ttf should suffice), and the font now has slightly different metrics. I've taken great care to ensure this new version should work as a drop-in replacement, but please be mindful and test carefully if you choose to upgrade. * Per feedback, the baked-in 16px width and height has been removed from the helper CSS. It wasn't really necessary (the glyph itself has these dimensions naturally), and it caused some headaches. * Base64 encoding is now included by default in the helper CSS. This makes it drop-in easy to get Genericons working in Firefox even when using a CDN. * Title attribute on website tool. * New: Website. * New: Ellipsis. * New: Foursquare. * New: X-post. * New: Sitemap. * New: Hierarchy. * New: Paintbrush. * Updated: Show and Hide icons were updated for clarity. **3.0.3** Bunch of updates mostly. * Two new icons, Dropbox and Fullscreen. * Updates to all icons containing an exclamation mark. * Updates to Image and Quote. * Nicer "Share" icon. * Bigger default Linkedin icon. **3.0.2** A slew of new stuff and updates. * Social icons: Skype, Digg, Reddit, Stumbleupon, Pocket. * New generic icons: heart, lock and print. * New editing icons: code, bold, italic, image * New interaction icons: subscribe, unsubscribe, subscribed, reply all, reply, flag. * The hyperlink icon has been updated to be clearer, chunkier. * The "home" icon has been updated for style, size and clarity. * The email icon has been updated for style and clarity, and to fit with the new subscribe icons. * The document icon has been updated for style. * The "pin" icon has been updated for style and clarity. * The Twitter icon has been scaled down to fit with the other social icons. **3.0.1** Mostly maintenance. * Fixed an issue with the example page that showed an old "top" icon instead of the actual NEW "refresh" icon. * Added inverse Google+ and Path. * Replaced tabs with spaces in the helper CSS. * Changed the Genericons.com copy/paste tool to serve span's instead of div's for casual icon insertion. It's being converted to "inline-block" anyway. **3.0** Mainly maintenance and a few new icons. * Fast forward, rewind, PollDaddy, Notice, Info, Help, Portfolio * Updated the feed icon. It's a bit smaller now for consistency, the previous one was rather big. * So, the previous version numbering, 2.09, wasn't very PHP version compare friendly. So from now on it'll be 3.0, 3.1 etc. Props Ipstenu. * Genericons.com now has a mini release blog. * The CSS has prettier formatting, props Konstantin Obenland. **2.09** Updated Facebook icon to new version. Updated Instagram logo to use new one-color version. Updated Google+ icon to use same radius as Instagram and Facebook. Added a bunch of new icons, cog, unapprove, cart, media player buttons, tablet, send to tablet. **2.06** Included Base64 encoded version. This is necessary for Genericons to work with CDNs in Firefox. Firefox blocks fonts linked from a different domain. A CDN (typically s.example.com) usually puts the font on a subdomain, and is hence blocked in Firefox. **2.05** Added a bunch of new icons, including upload to cloud, download to cloud, many more. **2.0** Initial public release plugins/jetpack/_inc/genericons/COPYING.txt0000644000312500031250000000262012651056012021171 0ustar eacbforgeacbforgGenericons is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The fonts are distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. As a special exception, if you create a document which uses this font, and embed this font or unaltered portions of this font into the document, this font does not by itself cause the resulting document to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the document might be covered by the GNU General Public License. If you modify this font, you may extend this exception to your version of the font, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. This license does not convey any intellectual property rights to third party trademarks that may be included in the icon font; such marks remain subject to all rights and guidelines of use of their owner.plugins/jetpack/_inc/header.php0000644000312500031250000000304012651056012017122 0ustar eacbforgeacbforg
        • >
        plugins/jetpack/_inc/jetpack-modules.models.js0000644000312500031250000000411312654411246022101 0ustar eacbforgeacbforg this.jetpackModules = this.jetpackModules || {}; window.jetpackModules.models = (function( window, $, _, Backbone ) { 'use strict'; var models = {}; models.Modules = Backbone.Model.extend({ visibles : {}, /** * Updates modules.items dataset to be a reflection of both the current * modules.raw data, as well as any filters or sorting that may be in effect. */ filter_and_sort : function() { var subsubsub = $('.subsubsub .current'), items = this.get( 'raw' ), m_filter = $('.button-group.filter-active .active'), m_sort = $('.button-group.sort .active'), m_search = $('#srch-term-search-input').val().toLowerCase(), groups; // If a module filter has been selected, filter it! if ( ! subsubsub.closest('li').hasClass( 'all' ) ) { items = _.filter( items, function( item ) { return _.contains( item.module_tags, subsubsub.data( 'title' ) ); } ); } if ( m_filter.data('filter-by') ) { items = _.filter( items, function( item ) { return item[ m_filter.data('filter-by') ] === m_filter.data('filter-value'); } ); } if ( m_search.length ) { items = _.filter( items, function( item ) { var search_text = item.name + ' ' + item.description + ' ' + item.long_description + ' ' + item.search_terms + ' ' + item.jumpstart_desc + ' ' + item.module_tags; return ( -1 !== search_text.toLowerCase().indexOf( m_search ) ); } ); } if ( m_sort.data('sort-by') ) { items = _.sortBy( items, m_sort.data('sort-by') ); if ( 'reverse' === m_sort.data('sort-order') ) { items.reverse(); } } // Sort unavailable modules to the end if the user is running in local mode. groups = _.groupBy( items, 'available' ); if ( _.has( groups, 'false' ) ) { items = [].concat( groups[true], groups[false] ); } // Now shove it back in. this.set( 'items', items ); return this; }, initialize : function() { var items = this.get( 'items' ); this.set( 'raw', items ); } }); return models; })( this, jQuery, _, Backbone ); plugins/jetpack/_inc/jetpack-modules.js0000644000312500031250000001130612654411246020621 0ustar eacbforgeacbforg ( function( window, $, items, models, views, i18n, modalinfo, nonces ) { 'use strict'; var modules, list_table, handle_module_tag_click, $the_table, $the_filters, $the_search, $jp_frame, $bulk_button, show_modal, hide_modal, set_modal_tab, originPoint; $the_table = $( '.wp-list-table.jetpack-modules' ); $the_filters = $( '.navbar-form' ); $the_search = $( '#srch-term-search-input' ); $jp_frame = $( '.jp-frame' ); $bulk_button = $( '#doaction' ); modules = new models.Modules( { items : items } ); list_table = new views.List_Table( { el : '#the-list', model : modules } ); // Kick off an initial redraw. modules.trigger( 'change' ); // Handle the filtering of modules. handle_module_tag_click = function( event ) { // Switch the item in the subsubsub list that's flagged as current. $( '.subsubsub' ).find( 'a[data-title="' + $(this).data('title') + '"]' ).addClass( 'current' ) .closest( 'li' ).siblings().find( 'a.current' ).removeClass( 'current' ); event.preventDefault(); modules.trigger( 'change' ); }; $( '.subsubsub a' ).on( 'click', { modules : modules }, handle_module_tag_click ); /** * Attach event listener for ESC key to close modal */ $( window ).on( 'keydown', function( e ) { // If pressing ESC close the modal if ( 27 === e.keyCode ) { hide_modal(); } }); /** * The modal details. */ show_modal = function( module ) { $jp_frame.children( '.modal, .shade' ).show(); $( '.modal ').empty().html( wp.template( 'modal' )( items[ module ] ) ); $( '.modal' )[0].setAttribute( 'tabindex', '0' ); $( '.modal' ).focus(); $( 'body' ).css( 'overflow', 'hidden' ); }; /** * If modalinfo is defined, auto popup the modal */ $( document ).ready(function() { if ( modalinfo ) { show_modal( modalinfo ); } }); hide_modal = function() { $jp_frame.children( '.modal, .shade' ).hide(); $jp_frame.children( '.modal' ).data( 'current-module', '' ); set_modal_tab( null ); originPoint.focus(); $( '.modal' )[0].removeAttribute( 'tabindex' ); $( 'body' ).css( 'overflow', 'auto' ); event.preventDefault(); }; set_modal_tab = function( tab ) { $jp_frame.find( '.modal .active' ).removeClass( 'active' ); switch ( tab ) { case 'learn-more': $jp_frame.find( '.modal .learn-more a' ).addClass( 'active' ); $jp_frame.children( '.modal' ).trigger( 'learn-more' ); break; case 'config': $jp_frame.find( '.modal .config a' ).addClass( 'active' ); $jp_frame.children( '.modal' ).trigger( 'config' ); break; default: break; } }; $jp_frame.on( 'click', '.modal .close, .shade', hide_modal ); $jp_frame.children( '.modal' ).on( 'learn-more', function() { var current_module = $jp_frame.children( '.modal' ).data( 'current-module' ); $(this).find('.content').html( items[ current_module ].long_description ); } ); $jp_frame.children( '.modal' ).on( 'config', function() { var current_module = $jp_frame.children( '.modal' ).data( 'current-module' ); // Hack. Until we import the form to the modal, just redirect to where it would have gone. hide_modal(); window.location.href = items[ current_module ].configure_url; // $(this).find('.content').html( items[ current_module ].configure_form ); } ); $the_table.on( 'click', '.info a', { modules : modules }, function( event ) { event.preventDefault(); originPoint = this; show_modal( $(this).closest('.jetpack-module').attr('id'), 'learn-more' ); } ); $the_filters.on( 'click', '.button-group .button', { modules : modules }, function( event ) { event.preventDefault(); $(this).addClass('active').siblings('.active').removeClass('active'); modules.trigger( 'change' ); } ); $the_search.on( 'keyup search', function( e ) { // Don't trigger change on tab, since it's only used for accessibility // anyway, and will remove all checked boxes if ( e.keyCode !== 9 ) { modules.trigger( 'change' ); } } ); $the_search.prop( 'placeholder', i18n.search_placeholder ); $bulk_button.on( 'click', function( event ) { var selectedModules = $('.jetpack-modules-list-table-form').serialize(), selectedAction = $(this).siblings('select').val(), url; if ( selectedModules.length && '-1' !== selectedAction ) { url = 'admin.php?page=jetpack&action=' + encodeURIComponent( selectedAction ); url += '&' + selectedModules; url += '&_wpnonce=' + encodeURIComponent( nonces.bulk ); window.location.href = url; } else { // Possibly add in an alert here explaining why nothing's happening? } event.preventDefault(); } ); } ) ( this, jQuery, window.jetpackModulesData.modules, this.jetpackModules.models, this.jetpackModules.views, window.jetpackModulesData.i18n, window.jetpackModulesData.modalinfo, window.jetpackModulesData.nonces ); plugins/jetpack/_inc/jetpack.js0000644000312500031250000002626412654411246017164 0ustar eacbforgeacbforg/* global jetpack: true, isRtl, jetpackL10n, userSettings, confirm */ // ScrollTo Plugin 1.4.2 | Copyright (c) 2007-2009 Ariel Flesler | GPL/MIT License /* jshint ignore:start */ ;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); /* jshint ignore:end */ jetpack = { numModules: 0, container: null, arrow: null, linkClicked: null, resizeTimeout: null, resizeTimer: null, shadowTimer: null, statusText: null, isRTL: !( 'undefined' === typeof isRtl || !isRtl ), didDebug: false, init: function() { jetpack.numModules = jQuery( 'div.jetpack-module' ).not( '.placeholder' ).size(); jetpack.container = jQuery( 'div.module-container' ); jetpack.level_modules(); jetpack.level_placeholders(); jetpack.level_placeholders_on_resize(); jQuery( 'a.more-info-link', 'div.jetpack-module' ).bind( 'click', function(e) { e.preventDefault(); jetpack.hide_shadows(); if ( jetpack.linkClicked && jetpack.linkClicked.parents( 'div.jetpack-module' ).attr( 'id' ) === jQuery(this).parents( 'div.jetpack-module' ).attr( 'id' ) ) { jetpack.close_learn_more( function() { jetpack.show_shadows(); } ); } else { jetpack.linkClicked = jQuery(this); jetpack.insert_learn_more( jQuery(this).parents( 'div.jetpack-module' ), function() { jetpack.show_shadows(); } ); jQuery( 'a.jetpack-deactivate-button' ).hide(); jQuery( 'a.jetpack-configure-button' ).show(); jetpack.linkClicked.parents( 'div.jetpack-module' ).children( '.jetpack-module-actions' ).children( 'a.jetpack-deactivate-button' ).show(); jetpack.linkClicked.parents( 'div.jetpack-module' ).children( '.jetpack-module-actions' ).children( 'a.jetpack-configure-button' ).hide(); } } ); jQuery( window ).bind( 'resize', function() { jetpack.hide_shadows(); clearTimeout( jetpack.shadowTimer ); jetpack.shadowTimer = setTimeout( function() { jetpack.show_shadows(); }, 200 ); }); jQuery( 'a#jp-debug' ).bind( 'click', function(e) { e.preventDefault(); if ( !jetpack.didDebug ) { jetpack.didDebug = true; jQuery( '#jetpack-configuration' ).load( this.href, function() { jQuery.scrollTo( 'max', 'fast' ); } ); } jetpack.toggle_debug(); }); jQuery( '#jp-disconnect a' ).click( function() { if ( confirm( jetpackL10n.ays_disconnect ) ) { jQuery( this ).addClass( 'clicked' ).css( { 'background-image': 'url( ' + userSettings.url + 'wp-includes/images/spinner-2x.gif )', 'background-position': '9px 5px', 'background-size': '16px 16px' } ).unbind( 'click' ).click( function() { return false; } ); } else { return false; } } ); jQuery( '#jp-unlink a' ).click( function() { if ( confirm( jetpackL10n.ays_unlink ) ) { jQuery( this ).css( { 'background-image': 'url( ' + userSettings.url + 'wp-includes/images/spinner-2x.gif )', 'background-position': '9px 5px', 'background-size': '16px 16px' } ).unbind( 'click' ).click( function() { return false; } ); } else { return false; } } ); jQuery( '#screen-meta, #screen-meta-links' ).wrapAll( '
        ' ); }, level_modules: function() { var max_height = 0; // Get the tallest module card and set them all to be that tall. jQuery( 'div.jetpack-module', 'div.module-container' ).each( function() { max_height = Math.max( max_height, jQuery(this).height() ); } ).height( max_height ); }, level_placeholders: function() { jQuery( 'div.placeholder' ).show(); var containerWidth = jetpack.container.width(), needed = 5 * parseInt( containerWidth / 242, 10 ) - jetpack.numModules; if ( jetpack.numModules * 242 > containerWidth ) { jQuery( 'div.placeholder' ).slice( needed ).hide(); } else { jQuery( 'div.placeholder' ).hide(); } }, level_placeholders_on_resize: function() { jQuery( window ).bind( 'resize', function() { if ( jetpack.resizeTimer ) { return; } jetpack.resizeTimer = setTimeout( function() { jetpack.resizeTimer = false; jetpack.level_placeholders(); jetpack.level_placeholders_on_resize(); }, 100 ); } ); }, insert_learn_more: function( card, callback ) { var perRow = parseInt( jetpack.container.width() / 242, 10 ), cardPosition = 0, cardRow = 0, learnMoreOffset = jetpack.isRTL ? 144 : 28; // Get the position of the card clicked. jQuery( 'div.jetpack-module', 'div.module-container' ).each( function( i, el ) { if ( jQuery(el).attr('id') === jQuery(card).attr('id') ) { cardPosition = i; } } ); cardRow = 1 + parseInt( cardPosition / perRow, 10 ); // Insert the more info box after the last item of the row. jQuery( 'div.jetpack-module', 'div.module-container' ).each( function( i, el ) { if ( i + 1 === ( perRow * cardRow ) ) { // More info box already exists. if ( jQuery( 'div.more-info' ).length ) { if ( jQuery( el ).next().hasClass( 'more-info' ) ) { jQuery( 'div.more-info div.jp-content' ).fadeOut( 100 ); jetpack.learn_more_content( jQuery(card).attr( 'id' ) ); jQuery( window ).scrollTo( ( jQuery( 'div.more-info' ).prev().offset().top ) - 70, 600, function() { if ( typeof callback === 'function' ) { callback.call( this ); } } ); } else { jQuery( 'div.more-info div.jp-content' ).hide(); jQuery( 'div.more-info' ).css( { height: '230px', minHeight: 0 } ).slideUp( 200, function() { var $this = jQuery(this); $this.detach().insertAfter( el ); jQuery( 'div.more-info div.jp-content' ).hide(); jetpack.learn_more_content( jQuery(card).attr( 'id' ) ); $this.css( { height: '230px', minHeight: 0 } ).slideDown( 300, function() { $this.css( { height: 'auto', minHeight: '230px' } ); } ); jQuery( window ).scrollTo( ( $this.prev().offset().top ) - 70, 600, function() { if ( typeof callback === 'function' ) { callback.call( this ); } } ); } ); } // More info box does not exist. } else { // Insert the box. jQuery( el ).after( '
        ×
        ' ); // Show the box jQuery( 'div.more-info' ).css( { height: '230px', minHeight: 0 } ); jQuery( 'div.more-info', 'div.module-container' ).hide().slideDown( 400, function() { jQuery( 'div.more-info' ).css( { height: 'auto', minHeight: '230px' } ); // Load the content and scroll to it jetpack.learn_more_content( jQuery(card).attr( 'id' ) ); jQuery( window ).scrollTo( ( jQuery( 'div.more-info' ).prev().offset().top ) - 70, 600 ); if ( typeof callback === 'function' ) { callback.call( this ); } } ); jQuery( 'div.more-info' ).children( 'div.arrow' ).animate( { left: jQuery(card).offset().left - jetpack.container.offset().left + learnMoreOffset + 'px' }, 300 ); } jQuery( 'div.more-info' ).children( 'div.arrow' ).animate( { left: jQuery(card).offset().left - jetpack.container.offset().left + learnMoreOffset + 'px' }, 300 ); return; } } ); // Listen for resize jQuery( window ).bind( 'resize', function() { jetpack.reposition_learn_more( card ); jetpack.level_placeholders_on_resize(); } ); // Listen for close. jQuery( 'div.more-info div.jp-close' ).unbind( 'click' ).bind( 'click', function() { jetpack.close_learn_more(); } ); }, reposition_learn_more: function( card ) { var perRow = parseInt( jetpack.container.width() / 242, 10 ), cardPosition = 0, cardRow; // Get the position of the card clicked. jQuery( 'div.jetpack-module', 'div.module-container' ).each( function( i, el ) { if ( jQuery(el).attr('id') === jQuery(card).attr('id') ) { cardPosition = i; } } ); cardRow = 1 + parseInt( cardPosition / perRow, 10 ); jQuery( 'div.jetpack-module', 'div.module-container' ).each( function( i, el ) { if ( i + 1 === ( perRow * cardRow ) ) { jQuery( 'div.more-info' ).detach().insertAfter( el ); jQuery( 'div.more-info' ).children( 'div.arrow' ).css( { left: jQuery(card).offset().left - jetpack.container.offset().left + 28 + 'px' }, 300 ); } } ); }, learn_more_content: function( module_id ) { var response = jQuery( '#jp-more-info-' + module_id ).html(); jQuery( 'div.more-info div.jp-content' ).html( response ).hide().fadeIn( 300 ); }, close_learn_more: function( callback ) { jQuery( 'div.more-info div.jp-content' ).hide(); jQuery( 'div.more-info' ).css( { height: '230px', minHeight: 0 } ).slideUp( 200, function() { jQuery( this ).remove(); jQuery( 'a.jetpack-deactivate-button' ).hide(); jetpack.linkClicked.parents( 'div.jetpack-module' ).children( '.jetpack-module-actions' ).children( 'a.jetpack-configure-button' ).show(); jetpack.linkClicked = null; if ( typeof callback === 'function' ) { callback.call( this ); } } ); }, toggle_debug: function() { jQuery('div#jetpack-configuration').toggle( 0, function() { if ( jQuery( this ).is( ':visible' ) ) { jQuery.scrollTo( 'max', 'fast' ); } } ); }, hide_shadows: function() { jQuery( 'div.jetpack-module, div.more-info' ).css( { '-webkit-box-shadow': 'none' } ); }, show_shadows: function() { jQuery( 'div.jetpack-module' ).css( { '-webkit-box-shadow': 'inset 0 1px 0 #fff, inset 0 0 20px rgba(0,0,0,0.05), 0 1px 2px rgba( 0,0,0,0.1 )' } ); jQuery( 'div.more-info' ).css( { '-webkit-box-shadow': 'inset 0 0 20px rgba(0,0,0,0.05), 0 1px 2px rgba( 0,0,0,0.1 )' } ); } }; jQuery( function() { jetpack.init(); } ); plugins/jetpack/_inc/jquery.spin.js0000644000312500031250000000640212654411246020022 0ustar eacbforgeacbforg/** * Copyright (c) 2011-2013 Felix Gnass * Licensed under the MIT license */ /* Basic Usage: ============ $('#el').spin(); // Creates a default Spinner using the text color of #el. $('#el').spin({ ... }); // Creates a Spinner using the provided options. $('#el').spin(false); // Stops and removes the spinner. Using Presets: ============== $('#el').spin('small'); // Creates a 'small' Spinner using the text color of #el. $('#el').spin('large', '#fff'); // Creates a 'large' white Spinner. Adding a custom preset: ======================= $.fn.spin.presets.flower = { lines: 9 length: 10 width: 20 radius: 0 } $('#el').spin('flower', 'red'); */ (function(factory) { if (typeof exports == 'object') { // CommonJS factory(require('jquery'), require('spin')) } else if (typeof define == 'function' && define.amd) { // AMD, register as anonymous module define(['jquery', 'spin'], factory) } else { // Browser globals if (!window.Spinner) throw new Error('Spin.js not present') factory(window.jQuery, window.Spinner) } }(function($, Spinner) { $.fn.spin = function(opts, color) { return this.each(function() { var $this = $(this), data = $this.data(); if (data.spinner) { data.spinner.stop(); delete data.spinner; } if (opts !== false) { opts = $.extend( { color: color || $this.css('color') }, $.fn.spin.presets[opts] || opts ) // Begin WordPress Additions // To use opts.right, you need to have specified a length, width, and radius. if ( typeof opts.right !== 'undefined' && typeof opts.length !== 'undefined' && typeof opts.width !== 'undefined' && typeof opts.radius !== 'undefined' ) { var pad = $this.css( 'padding-left' ); pad = ( typeof pad === 'undefined' ) ? 0 : parseInt( pad, 10 ); opts.left = $this.outerWidth() - ( 2 * ( opts.length + opts.width + opts.radius ) ) - pad - opts.right; delete opts.right; } // End WordPress Additions data.spinner = new Spinner(opts).spin(this) } }) } $.fn.spin.presets = { tiny: { lines: 8, length: 2, width: 2, radius: 3 }, small: { lines: 8, length: 4, width: 3, radius: 5 }, large: { lines: 10, length: 8, width: 4, radius: 8 } } })); // Jetpack Presets Overrides: (function($){ $.fn.spin.presets.wp = { trail: 60, speed: 1.3 }; $.fn.spin.presets.small = $.extend( { lines: 8, length: 2, width: 2, radius: 3 }, $.fn.spin.presets.wp ); $.fn.spin.presets.medium = $.extend( { lines: 8, length: 4, width: 3, radius: 5 }, $.fn.spin.presets.wp ); $.fn.spin.presets.large = $.extend( { lines: 10, length: 6, width: 4, radius: 7 }, $.fn.spin.presets.wp ); $.fn.spin.presets['small-left'] = $.extend( { left: 5 }, $.fn.spin.presets.small ); $.fn.spin.presets['small-right'] = $.extend( { right: 5 }, $.fn.spin.presets.small ); $.fn.spin.presets['medium-left'] = $.extend( { left: 5 }, $.fn.spin.presets.medium ); $.fn.spin.presets['medium-right'] = $.extend( { right: 5 }, $.fn.spin.presets.medium ); $.fn.spin.presets['large-left'] = $.extend( { left: 5 }, $.fn.spin.presets.large ); $.fn.spin.presets['large-right'] = $.extend( { right: 5 }, $.fn.spin.presets.large ); })(jQuery); plugins/jetpack/_inc/jetpack-icons/0000755000312500031250000000000012651056012017716 5ustar eacbforgeacbforgplugins/jetpack/_inc/jetpack-icons/font/0000755000312500031250000000000012651056012020664 5ustar eacbforgeacbforgplugins/jetpack/_inc/jquery.jetpack-sync.js0000644000312500031250000000303112654411246021437 0ustar eacbforgeacbforg/* global ajaxurl */ jQuery( document ).ready( function($) { var update = function( cooldown ) { var self = $( '.jetpack_sync_reindex_control' ), data; self .find( '.jetpack_sync_reindex_control_action' ) .attr( 'disabled', true ); self .find( '.jetpack_sync_reindex_control_status' ) .html( '…' ); if ( 'DONE' === self.data( 'status' ) ) { data = { action:'jetpack-sync-reindex-trigger' }; } else { data = { action:'jetpack-sync-reindex-status' }; } $.getJSON( ajaxurl, data, function( response ) { var self = $( '.jetpack_sync_reindex_control' ), strings, status; if ( 0 === self.length ) { return; } strings = self.data( 'strings' ); status = strings[response.status].status; if ( 'INDEXING' === response.status ) { status += ' (' + Math.floor( 100 * response.posts.imported / response.posts.total ) + '%)'; } self .data( 'status', response.status ); self .find( '.jetpack_sync_reindex_control_action' ) .val( strings[response.status].action ); self .find( '.jetpack_sync_reindex_control_status' ) .text( status ); setTimeout( function() { $( '.jetpack_sync_reindex_control' ) .find( '.jetpack_sync_reindex_control_action' ) .attr( 'disabled', false ); }, cooldown ); } ); }; $( '.jetpack_sync_reindex_control' ) .find( '.jetpack_sync_reindex_control_action' ) .live( 'click', function( event ) { event.preventDefault(); update( 5000 ); } ); update( 1000 ); } ); plugins/jetpack/_inc/genericons.php0000644000312500031250000000071412651056012020033 0ustar eacbforgeacbforg 'Get information about a site.', 'group' => 'sites', 'stat' => 'sites:X', 'allowed_if_flagged' => true, 'method' => 'GET', 'path' => '/sites/%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'context' => false, ), 'response_format' => WPCOM_JSON_API_GET_Site_Endpoint::$site_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/', ) ); new WPCOM_JSON_API_GET_Post_Counts_V1_1_Endpoint( array( 'description' => 'Get number of posts in the post type groups by post status', 'group' => '__do_not_document', 'stat' => 'sites:X:post-counts:X', 'force' => 'wpcom', 'method' => 'GET', 'min_version' => '1.1', 'max_version' => '1.2', 'path' => '/sites/%s/post-counts/%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_type' => '(string) Post Type', ), 'query_parameters' => array( 'context' => false, 'author' => '(int) author ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/en.blog.wordpress.com/post-counts/page', 'response_format' => array( 'counts' => array( 'all' => '(array) Number of posts by any author in the post type grouped by post status', 'mine' => '(array) Number of posts by the current user in the post type grouped by post status' ) ) ) ); new WPCOM_JSON_API_List_Post_Formats_Endpoint( array( 'description' => 'Get a list of post formats supported by a site.', 'group' => '__do_not_document', 'stat' => 'sites:X:post-formats', 'method' => 'GET', 'path' => '/sites/%s/post-formats', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'context' => false, ), 'response_format' => array( 'formats' => '(array) A list of supported post formats. id => label.', ) ) ); new WPCOM_JSON_API_List_Page_Templates_Endpoint( array( 'description' => 'Get a list of page templates supported by a site.', 'group' => 'sites', 'stat' => 'sites:X:post-templates', 'method' => 'GET', 'path' => '/sites/%s/page-templates', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'context' => false, ), 'response_format' => array( 'templates' => '(array) A list of supported page templates. Contains label and file.', ) ) ); new WPCOM_JSON_API_List_Post_Types_Endpoint( array ( 'description' => 'Get a list of post types available for a site.', 'group' => '__do_not_document', 'stat' => 'sites:X:post-types', 'method' => 'GET', 'path' => '/sites/%s/post-types', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'api_queryable' => '(bool) If true, only queryable post types are returned', ), 'response_format' => array( 'found' => '(int) The number of post types found', 'post_types' => '(array) A list of available post types', ) ) ); /* * Shortcode endpoints */ new WPCOM_JSON_API_List_Shortcodes_Endpoint( array( 'description' => "Get a list of shortcodes available on a site. Note: The current user must have publishing access.", 'group' => 'sites', 'stat' => 'shortcodes', 'method' => 'GET', 'path' => '/sites/%s/shortcodes', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'response_format' => array( 'shortcodes' => '(array) A list of supported shortcodes by their handle.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/shortcodes', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_Render_Shortcode_Endpoint( array( 'description' => "Get a rendered shortcode for a site. Note: The current user must have publishing access.", 'group' => 'sites', 'stat' => 'shortcodes:render', 'method' => 'GET', 'path' => '/sites/%s/shortcodes/render', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'shortcode' => '(string) The query-string encoded shortcode string to render. Required. Only accepts one at a time.', ), 'response_format' => array( 'shortcode' => '(string) The shortcode that was passed in for rendering.', 'result' => '(html) The rendered HTML result of the shortcode.', 'scripts' => '(array) An array of JavaScript files needed to render the shortcode. Returned in the format of { "script-slug" : { "src": "http://example.com/file.js", "extra" : "" } } where extra contains any neccessary extra JS for initializing the source file and src contains the script to load. Omitted if no scripts are neccessary.', 'styles' => '(array) An array of CSS files needed to render the shortcode. Returned in the format of { "style-slug" : { "src": "http://example.com/file.css", "media" : "all" } }. Omitted if no styles are neccessary.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/shortcodes/render?shortcode=%5Bgallery%20ids%3D%22729%2C732%2C731%2C720%22%5D', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); /* * embed endpoints */ new WPCOM_JSON_API_List_Embeds_Endpoint( array( 'description' => "Get a list of embeds available on a site. Note: The current user must have publishing access.", 'group' => 'sites', 'stat' => 'embeds', 'method' => 'GET', 'path' => '/sites/%s/embeds', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'response_format' => array( 'embeds' => '(array) A list of supported embeds by their regex pattern.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/embeds', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_Render_Embed_Endpoint( array( 'description' => "Get a rendered embed for a site. Note: The current user must have publishing access.", 'group' => 'sites', 'stat' => 'embeds:render', 'method' => 'GET', 'path' => '/sites/%s/embeds/render', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'embed_url' => '(string) The query-string encoded embed URL to render. Required. Only accepts one at a time.', ), 'response_format' => array( 'embed_url' => '(string) The embed_url that was passed in for rendering.', 'result' => '(html) The rendered HTML result of the embed.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/apiexamples.wordpress.com/embeds/render?embed_url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DSQEQr7c0-dw', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_Render_Embed_Reversal_Endpoint( array( 'description' => "Determines if the given embed code can be reversed into a single line embed or a shortcode, and if so returns the embed or shortcode. Note: The current user must have publishing access.", //'group' => 'sites', 'group' => '__do_not_document', 'stat' => 'embeds:reversal', 'method' => 'POST', 'path' => '/sites/%s/embeds/reversal', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'maybe_embed' => '(string) The embed code to reverse. Required. Only accepts one at a time.', ), 'response_format' => array( 'maybe_embed' => '(string) The original embed code that was passed in for rendering.', 'reversal_type' => '(string) The type of reversal. Either an embed or a shortcode.', 'render_result' => '(html) The rendered HTML result of the embed or shortcode.', 'result' => '(string) The reversed content. Either a single line embed or a shortcode.', 'scripts' => '(array) An array of JavaScript files needed to render the embed or shortcode. Returned in the format of { "script-slug" : { "src": "http://example.com/file.js", "extra" : "" } } where extra contains any neccessary extra JS for initializing the source file and src contains the script to load. Omitted if no scripts are neccessary.', 'styles' => '(array) An array of CSS files needed to render the embed or shortcode. Returned in the format of { "style-slug" : { "src": "http://example.com/file.css", "media" : "all" } }. Omitted if no styles are neccessary.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/shortcode-reversals/render/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'maybe_embed' => '', ) ), ) ); /* * Post endpoints */ new WPCOM_JSON_API_List_Posts_Endpoint( array( 'description' => 'Get a list of matching posts.', 'new_version' => '1.1', 'max_version' => '1', 'group' => 'posts', 'stat' => 'posts', 'method' => 'GET', 'path' => '/sites/%s/posts/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=20) The number of posts to return. Limit: 100.', 'offset' => '(int=0) 0-indexed offset.', 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the offset parameter.', 'order' => array( 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.', 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.', ), 'order_by' => array( 'date' => 'Order by the created time of each post.', 'modified' => 'Order by the modified time of each post.', 'title' => "Order lexicographically by the posts' titles.", 'comment_count' => 'Order by the number of comments for each post.', 'ID' => 'Order by post ID.', ), 'after' => '(ISO 8601 datetime) Return posts dated on or after the specified datetime.', 'before' => '(ISO 8601 datetime) Return posts dated on or before the specified datetime.', 'tag' => '(string) Specify the tag name or slug.', 'category' => '(string) Specify the category name or slug.', 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.', 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response', 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.', 'status' => array( 'publish' => 'Return only published posts.', 'private' => 'Return only private posts.', 'draft' => 'Return only draft posts.', 'pending' => 'Return only posts pending editorial approval.', 'future' => 'Return only posts scheduled for future publishing.', 'trash' => 'Return only posts in the trash.', 'any' => 'Return all posts regardless of status.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'author' => "(int) Author's user ID", 'search' => '(string) Search query', 'meta_key' => '(string) Metadata key that the post should contain', 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/?number=5' ) ); new WPCOM_JSON_API_List_Posts_v1_1_Endpoint( array( 'description' => 'Get a list of matching posts.', 'min_version' => '1.1', 'max_version' => '1.1', 'group' => 'posts', 'stat' => 'posts', 'method' => 'GET', 'path' => '/sites/%s/posts/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=20) The number of posts to return. Limit: 100.', 'offset' => '(int=0) 0-indexed offset.', 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the offset parameter.', 'page_handle' => '(string) A page handle, returned from a previous API call as a meta.next_page property. This is the most efficient way to fetch the next page of results.', 'order' => array( 'DESC' => 'Return posts in descending order. For dates, that means newest to oldest.', 'ASC' => 'Return posts in ascending order. For dates, that means oldest to newest.', ), 'order_by' => array( 'date' => 'Order by the created time of each post.', 'modified' => 'Order by the modified time of each post.', 'title' => "Order lexicographically by the posts' titles.", 'comment_count' => 'Order by the number of comments for each post.', 'ID' => 'Order by post ID.', ), 'after' => '(ISO 8601 datetime) Return posts dated after the specified datetime.', 'before' => '(ISO 8601 datetime) Return posts dated before the specified datetime.', 'modified_after' => '(ISO 8601 datetime) Return posts modified after the specified datetime.', 'modified_before' => '(ISO 8601 datetime) Return posts modified before the specified datetime.', 'tag' => '(string) Specify the tag name or slug.', 'category' => '(string) Specify the category name or slug.', 'type' => "(string) Specify the post type. Defaults to 'post', use 'any' to query for both posts and pages. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'parent_id' => '(int) Returns only posts which are children of the specified post. Applies only to hierarchical post types.', 'exclude' => '(array:int|int) Excludes the specified post ID(s) from the response', 'exclude_tree' => '(int) Excludes the specified post and all of its descendants from the response. Applies only to hierarchical post types.', 'status' => '(string) Comma-separated list of statuses for which to query, including any of: "publish", "private", "draft", "pending", "future", and "trash", or simply "any". Defaults to "publish"', 'sticky' => array( 'include' => 'Sticky posts are not excluded from the list.', 'exclude' => 'Sticky posts are excluded from the list.', 'require' => 'Only include sticky posts', ), 'author' => "(int) Author's user ID", 'search' => '(string) Search query', 'meta_key' => '(string) Metadata key that the post should contain', 'meta_value' => '(string) Metadata value that the post should contain. Will only be applied if a `meta_key` is also given', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/?number=2' ) ); new WPCOM_JSON_API_Get_Post_Endpoint( array( 'description' => 'Get a single post (by ID).', 'group' => 'posts', 'stat' => 'posts:1', 'new_version' => '1.1', 'max_version' => '1', 'method' => 'GET', 'path' => '/sites/%s/posts/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/7' ) ); new WPCOM_JSON_API_Get_Post_v1_1_Endpoint( array( 'description' => 'Get a single post (by ID).', 'min_version' => '1.1', 'max_version' => '1.1', 'group' => 'posts', 'stat' => 'posts:1', 'method' => 'GET', 'path' => '/sites/%s/posts/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/7' ) ); new WPCOM_JSON_API_Get_Post_Endpoint( array( 'description' => 'Get a single post (by name)', 'group' => '__do_not_document', 'stat' => 'posts:name', 'method' => 'GET', 'path' => '/sites/%s/posts/name:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_name' => '(string) The post name (a.k.a. slug)', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/name:blogging-and-stuff?pretty=1', ) ); new WPCOM_JSON_API_Get_Post_Endpoint( array( 'description' => 'Get a single post (by slug).', 'group' => 'posts', 'stat' => 'posts:slug', 'new_version' => '1.1', 'max_version' => '1', 'method' => 'GET', 'path' => '/sites/%s/posts/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_slug' => '(string) The post slug (a.k.a. sanitized name)', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/slug:blogging-and-stuff', ) ); new WPCOM_JSON_API_Get_Post_v1_1_Endpoint( array( 'description' => 'Get a single post (by slug).', 'min_version' => '1.1', 'max_version' => '1.1', 'group' => 'posts', 'stat' => 'posts:slug', 'method' => 'GET', 'path' => '/sites/%s/posts/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_slug' => '(string) The post slug (a.k.a. sanitized name)', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/en.blog.wordpress.com/posts/slug:blogging-and-stuff', ) ); new WPCOM_JSON_API_Update_Post_Endpoint( array( 'description' => 'Create a post.', 'group' => 'posts', 'stat' => 'posts:new', 'new_version' => '1.1', 'max_version' => '1', 'method' => 'POST', 'path' => '/sites/%s/posts/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( // explicitly document all input 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'pending' => 'Mark the post as pending editorial approval.', 'auto-draft' => 'Save a placeholder for a newly created post, with no content.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'type' => "(string) The post type. Defaults to 'post'. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'categories' => "(array|string) Comma-separated list or array of categories (name or id)", 'tags' => "(array|string) Comma-separated list or array of tags (name or id)", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options response of the site endpoint.

        Example:
        " . "curl \
        --form 'title=Image' \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post.", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are avaiable for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", 'comments_open' => "(bool) Should the post be open to comments? Defaults to the blog's preference.", 'pings_open' => "(bool) Should the post be open to comments? Defaults to the blog's preference.", 'likes_enabled' => "(bool) Should the post be open to likes? Defaults to the blog's preference.", 'sharing_enabled' => "(bool) Should sharing buttons show on this post? Defaults to true.", 'menu_order' => "(int) (Pages Only) the order pages should appear in. Use 0 to maintain alphabetical order.", ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World', 'content' => 'Hello. I am a test post. I was created by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_1_Endpoint( array( 'description' => 'Create a post.', 'group' => 'posts', 'stat' => 'posts:new', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/posts/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( // explicitly document all input 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'pending' => 'Mark the post as pending editorial approval.', 'future' => 'Schedule the post (alias for publish; you must also set a future date).', 'auto-draft' => 'Save a placeholder for a newly created post, with no content.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'type' => "(string) The post type. Defaults to 'post'. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'categories' => "(array|string) Comma-separated list or array of categories (name or id)", 'tags' => "(array|string) Comma-separated list or array of tags (name or id)", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options response of the site endpoint. Errors produced by media uploads, if any, will be in `media_errors` in the response.

        Example:
        " . "curl \
        --form 'title=Image Post' \
        --form 'media[0]=@/path/to/file.jpg' \
        --form 'media_attrs[0][caption]=My Great Photo' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post. Errors produced by media sideloading, if any, will be in `media_errors` in the response.", 'media_attrs' => "(array) An array of attributes (`title`, `description` and `caption`) are supported to assign to the media uploaded via the `media` or `media_urls` properties. You must use a numeric index for the keys of `media_attrs` which follow the same sequence as `media` and `media_urls`.

        Example:
        " . "curl \
        --form 'title=Gallery Post' \
        --form 'media[]=@/path/to/file1.jpg' \
        --form 'media_urls[]=http://exapmple.com/file2.jpg' \
        \
        --form 'media_attrs[0][caption]=This will be the caption for file1.jpg' \
        --form 'media_attrs[1][title]=This will be the title for file2.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are avaiable for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", 'discussion' => '(object) A hash containing one or more of the following boolean values, which default to the blog\'s discussion preferences: `comments_open`, `pings_open`', 'likes_enabled' => "(bool) Should the post be open to likes? Defaults to the blog's preference.", 'sharing_enabled' => "(bool) Should sharing buttons show on this post? Defaults to true.", 'menu_order' => "(int) (Pages Only) the order pages should appear in. Use 0 to maintain alphabetical order.", 'page_template' => '(string) (Pages Only) The page template this page should use.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World', 'content' => 'Hello. I am a test post. I was created by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_2_Endpoint( array( 'description' => 'Create a post.', 'group' => 'posts', 'stat' => 'posts:new', 'min_version' => '1.2', 'max_version' => '1.2', 'method' => 'POST', 'path' => '/sites/%s/posts/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( // explicitly document all input 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'pending' => 'Mark the post as pending editorial approval.', 'future' => 'Schedule the post (alias for publish; you must also set a future date).', 'auto-draft' => 'Save a placeholder for a newly created post, with no content.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'type' => "(string) The post type. Defaults to 'post'. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'categories' => "(array|string) Comma-separated list or array of category names", 'tags' => "(array|string) Comma-separated list or array of tag names", 'categories_by_id' => "(array|string) Comma-separated list or array of category IDs", 'tags_by_id' => "(array|string) Comma-separated list or array of tag IDs", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options response of the site endpoint. Errors produced by media uploads, if any, will be in `media_errors` in the response.

        Example:
        " . "curl \
        --form 'title=Image Post' \
        --form 'media[0]=@/path/to/file.jpg' \
        --form 'media_attrs[0][caption]=My Great Photo' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post. Errors produced by media sideloading, if any, will be in `media_errors` in the response.", 'media_attrs' => "(array) An array of attributes (`title`, `description` and `caption`) are supported to assign to the media uploaded via the `media` or `media_urls` properties. You must use a numeric index for the keys of `media_attrs` which follow the same sequence as `media` and `media_urls`.

        Example:
        " . "curl \
        --form 'title=Gallery Post' \
        --form 'media[]=@/path/to/file1.jpg' \
        --form 'media_urls[]=http://exapmple.com/file2.jpg' \
        \
        --form 'media_attrs[0][caption]=This will be the caption for file1.jpg' \
        --form 'media_attrs[1][title]=This will be the title for file2.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are avaiable for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", 'discussion' => '(object) A hash containing one or more of the following boolean values, which default to the blog\'s discussion preferences: `comments_open`, `pings_open`', 'likes_enabled' => "(bool) Should the post be open to likes? Defaults to the blog's preference.", 'sharing_enabled' => "(bool) Should sharing buttons show on this post? Defaults to true.", 'menu_order' => "(int) (Pages Only) the order pages should appear in. Use 0 to maintain alphabetical order.", 'page_template' => '(string) (Pages Only) The page template this page should use.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/82974409/posts/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World', 'content' => 'Hello. I am a test post. I was created by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_Endpoint( array( 'description' => 'Edit a post.', 'group' => 'posts', 'stat' => 'posts:1:POST', 'new_version' => '1.1', 'max_version' => '1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'request_format' => array( 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'pending' => 'Mark the post as pending editorial approval.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'categories' => "(array|string) Comma-separated list or array of categories (name or id)", 'tags' => "(array|string) Comma-separated list or array of tags (name or id)", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'comments_open' => '(bool) Should the post be open to comments?', 'pings_open' => '(bool) Should the post be open to comments?', 'likes_enabled' => "(bool) Should the post be open to likes?", 'menu_order' => "(int) (Pages Only) the order pages should appear in. Use 0 to maintain alphabetical order.", 'sharing_enabled' => "(bool) Should sharing buttons show on this post?", 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options resposne of the site endpoint.

        Example:
        " . "curl \
        --form 'title=Image' \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post.", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are available for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/881', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World (Again)', 'content' => 'Hello. I am an edited post. I was edited by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_1_Endpoint( array( 'description' => 'Edit a post.', 'group' => 'posts', 'stat' => 'posts:1:POST', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'request_format' => array( 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'future' => 'Schedule the post (alias for publish; you must also set a future date).', 'pending' => 'Mark the post as pending editorial approval.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'categories' => "(array|string) Comma-separated list or array of categories (name or id)", 'tags' => "(array|string) Comma-separated list or array of tags (name or id)", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'discussion' => '(object) A hash containing one or more of the following boolean values, which default to the blog\'s discussion preferences: `comments_open`, `pings_open`', 'likes_enabled' => "(bool) Should the post be open to likes?", 'menu_order' => "(int) (Pages only) the order pages should appear in. Use 0 to maintain alphabetical order.", 'page_template' => '(string) (Pages Only) The page template this page should use.', 'sharing_enabled' => "(bool) Should sharing buttons show on this post?", 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options resposne of the site endpoint.

        Example:
        " . "curl \
        --form 'title=Image' \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post.", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are available for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/881', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World (Again)', 'content' => 'Hello. I am an edited post. I was edited by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_2_Endpoint( array( 'description' => 'Edit a post.', 'group' => 'posts', 'stat' => 'posts:1:POST', 'min_version' => '1.2', 'max_version' => '1.2', 'method' => 'POST', 'path' => '/sites/%s/posts/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'request_format' => array( 'date' => "(ISO 8601 datetime) The post's creation time.", 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) An optional post excerpt.', 'slug' => '(string) The name (slug) for the post, used in URLs.', 'author' => '(string) The username or ID for the user to assign the post to.', 'publicize' => '(array|bool) True or false if the post be publicized to external services. An array of services if we only want to publicize to a select few. Defaults to true.', 'publicize_message' => '(string) Custom message to be publicized to external services.', 'status' => array( 'publish' => 'Publish the post.', 'private' => 'Privately publish the post.', 'draft' => 'Save the post as a draft.', 'future' => 'Schedule the post (alias for publish; you must also set a future date).', 'pending' => 'Mark the post as pending editorial approval.', ), 'sticky' => array( 'false' => 'Post is not marked as sticky.', 'true' => 'Stick the post to the front page.', ), 'password' => '(string) The plaintext password protecting the post, or, more likely, the empty string if the post is not password protected.', 'parent' => "(int) The post ID of the new post's parent.", 'categories' => "(array|string) Comma-separated list or array of category names", 'categories_by_id' => "(array|string) Comma-separated list or array of category IDs", 'tags' => "(array|string) Comma-separated list or array of tag names", 'tags_by_id' => "(array|string) Comma-separated list or array of tag IDs", 'format' => array_merge( array( 'default' => 'Use default post format' ), get_post_format_strings() ), 'discussion' => '(object) A hash containing one or more of the following boolean values, which default to the blog\'s discussion preferences: `comments_open`, `pings_open`', 'likes_enabled' => "(bool) Should the post be open to likes?", 'menu_order' => "(int) (Pages only) the order pages should appear in. Use 0 to maintain alphabetical order.", 'page_template' => '(string) (Pages Only) The page template this page should use.', 'sharing_enabled' => "(bool) Should sharing buttons show on this post?", 'featured_image' => "(string) The post ID of an existing attachment to set as the featured image. Pass an empty string to delete the existing image.", 'media' => "(media) An array of files to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Multiple media items will be displayed in a gallery. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options resposne of the site endpoint.

        Example:
        " . "curl \
        --form 'title=Image' \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", 'media_urls' => "(array) An array of URLs for images to attach to a post. Sideloads the media in for a post.", 'metadata' => "(array) Array of metadata objects containing the following properties: `key` (metadata key), `id` (meta ID), `previous_value` (if set, the action will only occur for the provided previous value), `value` (the new value to set the meta to), `operation` (the operation to perform: `update` or `add`; defaults to `update`). All unprotected meta keys are available by default for read requests. Both unprotected and protected meta keys are available for authenticated requests with proper capabilities. Protected meta keys can be made available with the rest_api_allowed_public_metadata filter.", ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.2/sites/82974409/posts/881', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Hello World (Again)', 'content' => 'Hello. I am an edited post. I was edited by the API', 'tags' => 'tests', 'categories' => 'API' ) ) ) ); new WPCOM_JSON_API_Update_Post_Endpoint( array( 'description' => 'Delete a post. Note: If the post object is of type post or page and the trash is enabled, this request will send the post to the trash. A second request will permanently delete the post.', 'group' => 'posts', 'stat' => 'posts:1:delete', 'new_version' => '1.1', 'max_version' => '1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/$post_ID/delete/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_1_Endpoint( array( 'description' => 'Delete a post. Note: If the post object is of type post or page and the trash is enabled, this request will send the post to the trash. A second request will permanently delete the post.', 'group' => 'posts', 'stat' => 'posts:1:delete', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/$post_ID/delete/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Update_Post_Endpoint( array( 'description' => 'Restore a post or page from the trash to its previous status.', 'group' => 'posts', 'stat' => 'posts:1:restore', 'method' => 'POST', 'new_version' => '1.1', 'max_version' => '1', 'path' => '/sites/%s/posts/%d/restore', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/$post_ID/restore/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Update_Post_v1_1_Endpoint( array( 'description' => 'Restore a post or page from the trash to its previous status.', 'group' => 'posts', 'stat' => 'posts:1:restore', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d/restore', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/$post_ID/restore/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Get_Autosave_v1_1_Endpoint( array( 'description' => 'Get the most recent autosave for a post.', 'group' => '__do_not_document', 'stat' => 'posts:autosave', 'min_version' => '1.1', 'method' => 'GET', 'path' => '/sites/%s/posts/%d/autosave', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'response_format' => array( 'ID' => '(int) autodraft post ID', 'post_ID' => '(int) post ID', 'author_ID' => '(int) author ID', 'title' => '(HTML) The post title.', 'content' => '(HTML) The post content.', 'excerpt' => '(HTML) The post excerpt.', 'preview_URL' => '(string) preview URL for the post', 'modified' => '(ISO 8601 datetime) modified time', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave', ) ); new WPCOM_JSON_API_Autosave_Post_v1_1_Endpoint( array( 'description' => 'Create a post autosave.', 'group' => '__do_not_document', 'stat' => 'posts:autosave', 'min_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/posts/%d/autosave', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'request_format' => array( 'content' => '(HTML) The post content.', 'title' => '(HTML) The post title.', 'excerpt' => '(HTML) The post excerpt.', ), 'response_format' => array( 'ID' => '(int) autodraft post ID', 'post_ID' => '(int) post ID', 'preview_URL' => '(string) preview URL for the post', 'modified' => '(ISO 8601 datetime) modified time', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/posts/1/autosave', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Howdy', 'content' => 'Hello. I am a test post. I was created by the API', ) ) ) ); /* * Media Endpoints */ new WPCOM_JSON_API_List_Media_Endpoint( array( 'description' => 'Get a list of items in the media library.', 'group' => 'media', 'stat' => 'media', 'method' => 'GET', 'path' => '/sites/%s/media/', 'deprecated' => true, 'new_version' => '1.1', 'max_version' => '1', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=20) The number of media items to return. Limit: 100.', 'offset' => '(int=0) 0-indexed offset.', 'parent_id' => '(int) Default is showing all items. The post where the media item is attached. 0 shows unattached media items.', 'mime_type' => "(string) Default is empty. Filter by mime type (e.g., 'image/jpeg', 'application/pdf'). Partial searches also work (e.g. passing 'image' will search for all image files).", ), 'response_format' => array( 'media' => '(array) Array of media', 'found' => '(int) The number of total results found' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/media/?number=2', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_List_Media_v1_1_Endpoint( array( 'description' => 'Get a list of items in the media library.', 'group' => 'media', 'stat' => 'media', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'GET', 'path' => '/sites/%s/media/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=20) The number of media items to return. Limit: 100.', 'offset' => '(int=0) 0-indexed offset.', 'page' => '(int) Return the Nth 1-indexed page of posts. Takes precedence over the offset parameter.', 'page_handle' => '(string) A page handle, returned from a previous API call as a meta.next_page property. This is the most efficient way to fetch the next page of results.', 'order' => array( 'DESC' => 'Return files in descending order. For dates, that means newest to oldest.', 'ASC' => 'Return files in ascending order. For dates, that means oldest to newest.', ), 'order_by' => array( 'date' => 'Order by the uploaded time of each file.', 'title' => "Order lexicographically by file titles.", 'ID' => 'Order by media ID.', ), 'search' => '(string) Search query.', 'post_ID' => '(int) Default is showing all items. The post where the media item is attached. 0 shows unattached media items.', 'mime_type' => "(string) Default is empty. Filter by mime type (e.g., 'image/jpeg', 'application/pdf'). Partial searches also work (e.g. passing 'image' will search for all image files).", 'after' => '(ISO 8601 datetime) Return media items uploaded after the specified datetime.', 'before' => '(ISO 8601 datetime) Return media items uploaded before the specified datetime.', ), 'response_format' => array( 'media' => '(array) Array of media objects', 'found' => '(int) The number of total results found' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Get_Media_Endpoint( array( 'description' => 'Get a single media item (by ID).', 'group' => 'media', 'stat' => 'media:1', 'method' => 'GET', 'path' => '/sites/%s/media/%d', 'deprecated' => true, 'new_version' => '1.1', 'max_version' => '1', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The ID of the media item', ), 'response_format' => array( 'id' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'parent' => '(int) ID of the post this media is attached to', 'link' => '(string) URL to the file', 'title' => '(string) Filename', 'caption' => '(string) User-provided caption of the file', 'description' => '(string) Description of the file', 'metadata' => '(array) Array of metadata about the file, such as Exif data or sizes', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/media/934', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Get_Media_v1_1_Endpoint( array( 'description' => 'Get a single media item (by ID).', 'group' => 'media', 'stat' => 'media:1', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'GET', 'path' => '/sites/%s/media/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The ID of the media item', ), 'response_format' => array( 'ID' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'post_ID' => '(int) ID of the post this media is attached to', 'URL' => '(string) URL to the file', 'guid' => '(string) Unique identifier', 'file' => '(string) Filename', 'extension' => '(string) File extension', 'mime_type' => '(string) File MIME type', 'title' => '(string) Filename', 'caption' => '(string) User-provided caption of the file', 'description' => '(string) Description of the file', 'alt' => '(string) Alternative text for image files.', 'thumbnails' => '(object) Media item thumbnail URL options', 'height' => '(int) (Image & video only) Height of the media item', 'width' => '(int) (Image & video only) Width of the media item', 'length' => '(int) (Video & audio only) Duration of the media item, in seconds', 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item', 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress', 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/934', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Upload_Media_Endpoint( array( 'description' => 'Upload a new media item.', 'group' => 'media', 'stat' => 'media:new', 'method' => 'POST', 'path' => '/sites/%s/media/new', 'deprecated' => true, 'new_version' => '1.1', 'max_version' => '1', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'media' => "(media) An array of media to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Accepts images (image/gif, image/jpeg, image/png) only at this time.

        Example:
        " . "curl \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/media/new'
        ", 'media_urls' => "(array) An array of URLs to upload to the post." ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/media/new/', 'response_format' => array( 'media' => '(array) Array of uploaded media', 'errors' => '(array) Array of error messages of uploading media failures' ), 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'media_urls' => "https://s.w.org/about/images/logos/codeispoetry-rgb.png" ) ) ) ); new WPCOM_JSON_API_Upload_Media_v1_1_Endpoint( array( 'description' => 'Upload a new piece of media.', 'group' => 'media', 'stat' => 'media:new', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/media/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'media' => "(media) An array of media to attach to the post. To upload media, the entire request should be multipart/form-data encoded. Accepts jpg, jpeg, png, gif, pdf, doc, ppt, odt, pptx, docx, pps, ppsx, xls, xlsx, key. Audio and Video may also be available. See allowed_file_types in the options response of the site endpoint.

        Example:
        " . "curl \
        --form 'media[]=@/path/to/file.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/media/new'
        ", 'media_urls' => "(array) An array of URLs to upload to the post. Errors produced by media uploads, if any, will be in `media_errors` in the response.", 'attrs' => "(array) An array of attributes (`title`, `description`, `caption` `alt` for images, `artist` for audio, `album` for audio, and `parent_id`) are supported to assign to the media uploaded via the `media` or `media_urls` properties. You must use a numeric index for the keys of `attrs` which follows the same sequence as `media` and `media_urls`.

        Example:
        " . "curl \
        --form 'media[]=@/path/to/file1.jpg' \
        --form 'media_urls[]=http://example.com/file2.jpg' \
        \
        --form 'attrs[0][caption]=This will be the caption for file1.jpg' \
        --form 'attrs[1][title]=This will be the title for file2.jpg' \
        -H 'Authorization: BEARER your-token' \
        'https://public-api.wordpress.com/rest/v1/sites/123/posts/new'
        ", ), 'response_format' => array( 'media' => '(array) Array of uploaded media objects', 'errors' => '(array) Array of error messages of uploading media failures' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/new', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'media_urls' => "https://s.w.org/about/images/logos/codeispoetry-rgb.png" ) ) ) ); new WPCOM_JSON_API_Update_Media_Endpoint( array( 'description' => 'Edit basic information about a media item.', 'group' => 'media', 'stat' => 'media:1:POST', 'method' => 'POST', 'path' => '/sites/%s/media/%d', 'deprecated' => true, 'new_version' => '1.1', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The ID of the media item', ), 'request_format' => array( 'title' => '(string) The file name.', 'caption' => '(string) File caption.', 'description' => '(HTML) Description of the file.', ), 'response_format' => array( 'id' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'parent' => '(int) ID of the post this media is attached to', 'link' => '(string) URL to the file', 'title' => '(string) File name', 'caption' => '(string) User provided caption of the file', 'description' => '(string) Description of the file', 'metadata' => '(array) Array of metadata about the file, such as Exif data or sizes', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/446', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Updated Title' ) ) ) ); new WPCOM_JSON_API_Update_Media_v1_1_Endpoint( array( 'description' => 'Edit basic information about a media item.', 'group' => 'media', 'stat' => 'media:1:POST', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/media/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The ID of the media item', ), 'request_format' => array( 'parent_id' => '(int) ID of the post this media is attached to', 'title' => '(string) The file name.', 'caption' => '(string) File caption.', 'description' => '(HTML) Description of the file.', 'alt' => "(string) Alternative text for image files.", 'artist' => "(string) Audio Only. Artist metadata for the audio track.", 'album' => "(string) Audio Only. Album metadata for the audio track.", ), 'response_format' => array( 'ID' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'post_ID' => '(int) ID of the post this media is attached to', 'URL' => '(string) URL to the file', 'guid' => '(string) Unique identifier', 'file' => '(string) File name', 'extension' => '(string) File extension', 'mime_type' => '(string) File mime type', 'title' => '(string) File name', 'caption' => '(string) User provided caption of the file', 'description' => '(string) Description of the file', 'alt' => '(string) Alternative text for image files.', 'thumbnails' => '(object) Media item thumbnail URL options', 'height' => '(int) (Image & video only) Height of the media item', 'width' => '(int) (Image & video only) Width of the media item', 'length' => '(int) (Video & audio only) Duration of the media item, in seconds', 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item', 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress', 'videopress_processing_done' => '(bool) (Video only) If the video is uploaded on a blog with VideoPress, this will return the status of processing on the video.' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/446', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'title' => 'Updated Title' ) ) ) ); new WPCOM_JSON_API_Delete_Media_Endpoint( array( 'description' => 'Delete a piece of media.', 'group' => 'media', 'stat' => 'media:1:delete', 'method' => 'POST', 'path' => '/sites/%s/media/%d/delete', 'deprecated' => true, 'new_version' => '1.1', 'max_version' => '1', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The media ID', ), 'response_format' => array( 'status' => '(string) Returns deleted if the media was successfully deleted', 'id' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'parent' => '(int) ID of the post this media is attached to', 'link' => '(string) URL to the file', 'title' => '(string) File name', 'caption' => '(string) User provided caption of the file', 'description' => '(string) Description of the file', 'metadata' => '(array) Misc array of information about the file, such as exif data or sizes', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/$media_ID/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); new WPCOM_JSON_API_Delete_Media_v1_1_Endpoint( array( 'description' => 'Delete a piece of media. Note: Media is deleted and not trashed.', 'group' => 'media', 'stat' => 'media:1:delete', 'min_version' => '1.1', 'max_version' => '1.1', 'method' => 'POST', 'path' => '/sites/%s/media/%d/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$media_ID' => '(int) The media ID', ), 'response_format' => array( 'status' => '(string) Returns deleted if the media was successfully deleted', 'ID' => '(int) The ID of the media item', 'date' => '(ISO 8601 datetime) The date the media was uploaded', 'post_ID' => '(int) ID of the post this media is attached to', 'URL' => '(string) URL to the file', 'guid' => '(string) Unique identifier', 'file' => '(string) File name', 'extension' => '(string) File extension', 'mime_type' => '(string) File mime type', 'title' => '(string) File name', 'caption' => '(string) User-provided caption of the file', 'description' => '(string) Description of the file', 'alt' => '(string) Alternative text for image files.', 'thumbnails' => '(object) Media item thumbnail URL options', 'height' => '(int) (Image & video only) Height of the media item', 'width' => '(int) (Image & video only) Width of the media item', 'length' => '(int) (Video & audio only) Duration of the media item, in seconds', 'exif' => '(array) (Image & audio only) Exif (meta) information about the media item', 'videopress_guid' => '(string) (Video only) VideoPress GUID of the video when uploaded on a blog with VideoPress', 'videopress_processing_done' => '(bool) (Video only) If the video is Uuploaded on a blog with VideoPress, this will return the status of processing on the Video' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/media/$media_ID/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); /* * Comment endpoints */ new WPCOM_JSON_API_List_Comments_Endpoint( array( 'description' => 'Get a list of recent comments.', 'group' => 'comments', 'stat' => 'comments', 'method' => 'GET', 'path' => '/sites/%s/comments/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/comments/?number=2' ) ); new WPCOM_JSON_API_List_Comments_Endpoint( array( 'description' => 'Get a list of recent comments on a post.', 'group' => 'comments', 'stat' => 'posts:1:replies', 'method' => 'GET', 'path' => '/sites/%s/posts/%d/replies/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/posts/7/replies/?number=2' ) ); new WPCOM_JSON_API_Get_Comment_Endpoint( array( 'description' => 'Get a single comment.', 'group' => 'comments', 'stat' => 'comments:1', 'method' => 'GET', 'path' => '/sites/%s/comments/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$comment_ID' => '(int) The comment ID' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/comments/147564' ) ); new WPCOM_JSON_API_Update_Comment_Endpoint( array( 'description' => 'Create a comment on a post.', 'group' => 'comments', 'stat' => 'posts:1:replies:new', 'method' => 'POST', 'path' => '/sites/%s/posts/%d/replies/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$post_ID' => '(int) The post ID' ), 'request_format' => array( // explicitly document all input 'content' => '(HTML) The comment text.', // @todo Should we open this up to unauthenticated requests too? // 'author' => '(author object) The author of the comment.', ), 'pass_wpcom_user_details' => true, 'can_use_user_details_instead_of_blog_membership' => true, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/posts/843/replies/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'content' => 'Your reply is very interesting. This is a reply.' ) ) ) ); new WPCOM_JSON_API_Update_Comment_Endpoint( array( 'description' => 'Create a comment as a reply to another comment.', 'group' => 'comments', 'stat' => 'comments:1:replies:new', 'method' => 'POST', 'path' => '/sites/%s/comments/%d/replies/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$comment_ID' => '(int) The comment ID' ), 'request_format' => array( 'content' => '(HTML) The comment text.', // @todo Should we open this up to unauthenticated requests too? // 'author' => '(author object) The author of the comment.', ), 'pass_wpcom_user_details' => true, 'can_use_user_details_instead_of_blog_membership' => true, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/comments/29/replies/new', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'content' => 'This reply is very interesting. This is editing a comment reply via the API.', ) ) ) ); new WPCOM_JSON_API_Update_Comment_Endpoint( array( 'description' => 'Edit a comment.', 'group' => 'comments', 'stat' => 'comments:1:POST', 'method' => 'POST', 'path' => '/sites/%s/comments/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$comment_ID' => '(int) The comment ID' ), 'request_format' => array( 'date' => "(ISO 8601 datetime) The comment's creation time.", 'content' => '(HTML) The comment text.', 'status' => array( 'approved' => 'Approve the comment.', 'unapproved' => 'Remove the comment from public view and send it to the moderation queue.', 'spam' => 'Mark the comment as spam.', 'unspam' => 'Unmark the comment as spam. Will attempt to set it to the previous status.', 'trash' => 'Send a comment to the trash if trashing is enabled (see constant: EMPTY_TRASH_DAYS).', 'untrash' => 'Untrash a comment. Only works when the comment is in the trash.', ), ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/comments/29', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'content' => 'This reply is now edited via the API.', 'status' => 'approved', ) ) ) ); new WPCOM_JSON_API_Update_Comment_Endpoint( array( 'description' => 'Delete a comment.', 'group' => 'comments', 'stat' => 'comments:1:delete', 'method' => 'POST', 'path' => '/sites/%s/comments/%d/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$comment_ID' => '(int) The comment ID' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/comments/$comment_ID/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ) ) ) ); /** * Taxonomy Management Endpoints */ new WPCOM_JSON_API_Get_Taxonomy_Endpoint( array( 'description' => 'Get information about a single category.', 'group' => 'taxonomy', 'stat' => 'categories:1', 'method' => 'GET', 'path' => '/sites/%s/categories/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$category' => '(string) The category slug' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/categories/slug:community' ) ); new WPCOM_JSON_API_Get_Taxonomies_Endpoint( array( 'description' => "Get a list of a site's categories.", 'group' => 'taxonomy', 'stat' => 'categories', 'method' => 'GET', 'path' => '/sites/%s/categories', 'path_labels' => array( '$site' => '(int|string) Site ID or domain' ), 'query_parameters' => array( 'number' => '(int=100) The number of categories to return. Limit: 1000.', 'offset' => '(int=0) 0-indexed offset.', 'page' => '(int) Return the Nth 1-indexed page of categories. Takes precedence over the offset parameter.', 'search' => '(string) Limit response to include only categories whose names or slugs match the provided search query.', 'order' => array( 'ASC' => 'Return categories in ascending order.', 'DESC' => 'Return categories in decending order.', ), 'order_by' => array( 'name' => 'Order by the name of each category.', 'count' => 'Order by the number of posts in each category.', ), ), 'response_format' => array( 'found' => '(int) The number of categories returned.', 'categories' => '(array) Array of category objects.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/categories/?number=5' ) ); new WPCOM_JSON_API_Get_Taxonomies_Endpoint( array( 'description' => "Get a list of a site's tags.", 'group' => 'taxonomy', 'stat' => 'tags', 'method' => 'GET', 'path' => '/sites/%s/tags', 'path_labels' => array( '$site' => '(int|string) Site ID or domain' ), 'query_parameters' => array( 'number' => '(int=100) The number of tags to return. Limit: 1000.', 'offset' => '(int=0) 0-indexed offset.', 'page' => '(int) Return the Nth 1-indexed page of tags. Takes precedence over the offset parameter.', 'search' => '(string) Limit response to include only tags whose names or slugs match the provided search query.', 'order' => array( 'ASC' => 'Return tags in ascending order.', 'DESC' => 'Return tags in decending order.', ), 'order_by' => array( 'name' => 'Order by the name of each tag.', 'count' => 'Order by the number of posts in each tag.', ), ), 'response_format' => array( 'found' => '(int) The number of tags returned.', 'tags' => '(array) Array of tag objects.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/tags/?number=5' ) ); new WPCOM_JSON_API_Get_Taxonomy_Endpoint( array( 'description' => 'Get information about a single tag.', 'group' => 'taxonomy', 'stat' => 'tags:1', 'method' => 'GET', 'path' => '/sites/%s/tags/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$tag' => '(string) The tag slug' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/tags/slug:wordpresscom' ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Create a new category.', 'group' => 'taxonomy', 'stat' => 'categories:new', 'method' => 'POST', 'path' => '/sites/%s/categories/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'name' => '(string) Name of the category', 'description' => '(string) A description of the category', 'parent' => '(int) ID of the parent category', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/categories/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'name' => 'Puppies', ) ) ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Create a new tag.', 'group' => 'taxonomy', 'stat' => 'tags:new', 'method' => 'POST', 'path' => '/sites/%s/tags/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'name' => '(string) Name of the tag', 'description' => '(string) A description of the tag', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/tags/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'name' => 'Kitties' ) ) ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Edit a tag.', 'group' => 'taxonomy', 'stat' => 'tags:1:POST', 'method' => 'POST', 'path' => '/sites/%s/tags/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$tag' => '(string) The tag slug', ), 'request_format' => array( 'name' => '(string) Name of the tag', 'description' => '(string) A description of the tag', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/tags/slug:testing-tag', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'description' => 'Kitties are awesome!' ) ) ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Edit a category.', 'group' => 'taxonomy', 'stat' => 'categories:1:POST', 'method' => 'POST', 'path' => '/sites/%s/categories/slug:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$category' => '(string) The category slug', ), 'request_format' => array( 'name' => '(string) Name of the category', 'description' => '(string) A description of the category', 'parent' => '(int) ID of the parent category', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/categories/slug:testing-category', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'description' => 'Puppies are great!' ) ) ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Delete a category.', 'group' => 'taxonomy', 'stat' => 'categories:1:delete', 'method' => 'POST', 'path' => '/sites/%s/categories/slug:%s/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$category' => '(string) The category slug', ), 'response_format' => array( 'slug' => '(string) The slug of the deleted category', 'success' => '(bool) Was the operation successful?', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/categories/slug:$category/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_Update_Taxonomy_Endpoint( array( 'description' => 'Delete a tag.', 'group' => 'taxonomy', 'stat' => 'tags:1:delete', 'method' => 'POST', 'path' => '/sites/%s/tags/slug:%s/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$tag' => '(string) The tag slug', ), 'response_format' => array( 'slug' => '(string) The slug of the deleted tag', 'success' => '(bool) Was the operation successful?', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/tags/slug:$tag/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_List_Roles_Endpoint( array( 'description' => 'List the user roles of a site.', 'group' => '__do_not_document', 'stat' => 'roles:list', 'method' => 'GET', 'path' => '/sites/%s/roles', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( ), 'response_format' => array( 'roles' => '(array:role) Array of role objects.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/roles', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_List_Users_Endpoint( array( 'description' => 'List the users of a site.', 'group' => 'users', 'stat' => 'users:list', 'method' => 'GET', 'path' => '/sites/%s/users', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=20) Limit the total number of authors returned.', 'offset' => '(int=0) The first n authors to be skipped in the returned array.', 'order' => array( 'DESC' => 'Return authors in descending order.', 'ASC' => 'Return authors in ascending order.', ), 'order_by' => array( 'ID' => 'Order by ID (default).', 'login' => 'Order by username.', 'nicename' => "Order by nicename.", 'email' => 'Order by author email address.', 'url' => 'Order by author URL.', 'registered' => 'Order by registered date.', 'display_name' => 'Order by display name.', 'post_count' => 'Order by number of posts published.', ), 'authors_only' => '(bool) Set to true to fetch authors only', 'type' => "(string) Specify the post type to query authors for. Only works when combined with the `authors_only` flag. Defaults to 'post'. Post types besides post and page need to be whitelisted using the rest_api_allowed_post_types filter.", 'search' => '(string) Find matching users.', 'search_columns' => "(array) Specify which columns to check for matching users. Can be any of 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename', and 'display_name'. Only works when combined with `search` parameter.", 'role' => '(string) Specify a specific user role to fetch.', ), 'response_format' => array( 'found' => '(int) The total number of authors found that match the request (ignoring limits and offsets).', 'authors' => '(array:author) Array of author objects.', ), 'example_response' => '{ "found": 1, "users": [ { "ID": 78972699, "login": "apiexamples", "email": "justin+apiexamples@a8c.com", "name": "apiexamples", "first_name": "", "last_name": "", "nice_name": "apiexamples", "URL": "http://apiexamples.wordpress.com", "avatar_URL": "https://1.gravatar.com/avatar/a2afb7b6c0e23e5d363d8612fb1bd5ad?s=96&d=identicon&r=G", "profile_URL": "http://en.gravatar.com/apiexamples", "site_ID": 82974409, "roles": [ "administrator" ], "is_super_admin": false } ] }', 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/users', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_Update_User_Endpoint( array( 'description' => 'Deletes or removes a user of a site.', 'group' => 'users', 'stat' => 'users:delete', 'method' => 'POST', 'path' => '/sites/%s/users/%d/delete', 'path_labels' => array( '$site' => '(int|string) The site ID or domain.', '$user_ID' => '(int) The user\'s ID' ), 'request_format' => array( 'reassign' => '(int) An optional id of a user to reassign posts to.', ), 'response_format' => array( 'success' => '(bool) Was the deletion of user successful?', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/users/1/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ) ) ); new WPCOM_JSON_API_List_Invites_Endpoint( array( 'description' => 'List the invites of a site.', 'group' => '__do_not_document', 'stat' => 'invites:list', 'method' => 'GET', 'path' => '/sites/%s/invites', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'number' => '(int=25) Limit the total number of invites to be returned.', 'offset' => '(int=0) The first n invites to be skipped in the returned array.', 'status' => array( 'pending' => 'Return only pending invites.', 'all' => 'Return all invites, pending and accepted, that have not been deleted.', ) ), 'response_format' => array( 'found' => '(int) The total number of invites found that match the request (ignoring limits and offsets).', 'invites' => '(array) Array of invites.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/82974409/invites', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Get details of a user of a site by ID.', 'group' => '__do_not_document', //'users' 'stat' => 'sites:1:user', 'method' => 'GET', 'path' => '/sites/%s/users/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$user_id' => '(int) User ID', ), 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/23', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Get details of a user of a site by login.', 'group' => '__do_not_document', //'users' 'stat' => 'sites:1:user', 'method' => 'GET', 'path' => '/sites/%s/users/login:%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$user_id' => '(string) User login', ), 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/login:binarysmash', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Update details of a users of a site.', 'group' => '__do_not_document', //'users' 'stat' => 'sites:1:user', 'method' => 'POST', 'path' => '/sites/%s/users/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$user_id' => '(int) User ID', ), 'request_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/23', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'roles' => array( array( 'administrator', ) ), 'first_name' => 'Rocco', 'last_name' => 'Tripaldi', ) ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Update_Invites_Endpoint( array( 'description' => 'Delete an invite for a user to join a site.', 'group' => '__do_not_document', 'stat' => 'invites:1:delete', 'method' => 'POST', 'path' => '/sites/%s/invites/%s/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$invite_id' => '(string) The ID of the invite' ), 'response_format' => array( 'invite_key' => '(string) Identifier for the deleted invite', 'deleted' => '(bool) Was the invitation removed?' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/invites/123523562/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Update_Invites_Endpoint( array( 'description' => 'Resend invitation for a user to join a site.', 'group' => '__do_not_document', 'stat' => 'invites:1', 'method' => 'POST', 'path' => '/sites/%s/invites/%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$invite_id' => '(string) The ID of the invite' ), 'response_format' => array( 'result' => '(bool) Was the invitation resent?' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/invites/123523562', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Get details of a user of a site by ID.', 'group' => 'users', 'stat' => 'sites:1:user', 'method' => 'GET', 'path' => '/sites/%s/users/%d', 'path_labels' => array( '$site' => '(int|string) The site ID or domain.', '$user_id' => '(int) The user\'s ID.', ), 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/23', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Get details of a user of a site by login.', 'group' => 'users', 'stat' => 'sites:1:user', 'method' => 'GET', 'path' => '/sites/%s/users/login:%s', 'path_labels' => array( '$site' => '(int|string) The site ID or domain.', '$user_id' => '(string) The user\'s login.', ), 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/login:binarysmash', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Site_User_Endpoint( array( 'description' => 'Update details of a user of a site.', 'group' => 'users', 'stat' => 'sites:1:user', 'method' => 'POST', 'path' => '/sites/%s/users/%d', 'path_labels' => array( '$site' => '(int|string) The site ID or domain.', '$user_id' => '(int) The user\'s ID.', ), 'request_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'response_format' => WPCOM_JSON_API_Site_User_Endpoint::$user_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/user/23', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'roles' => array( array( 'administrator', ) ), 'first_name' => 'Rocco', 'last_name' => 'Tripaldi', ) ), 'example_response' => '{ "ID": 18342963, "login": "binarysmash" "email": false, "name": "binarysmash", "URL": "http:\/\/binarysmash.wordpress.com", "avatar_URL": "http:\/\/0.gravatar.com\/avatar\/a178ebb1731d432338e6bb0158720fcc?s=96&d=identicon&r=G", "profile_URL": "http:\/\/en.gravatar.com\/binarysmash", "roles": [ "administrator" ] }' ) ); new WPCOM_JSON_API_Update_Invites_Endpoint( array( 'description' => 'Delete an invite for a user to join a site.', 'group' => '__do_not_document', 'stat' => 'invites:1:delete', 'method' => 'POST', 'path' => '/sites/%s/invites/%s/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$invite_id' => '(string) The ID of the invite' ), 'response_format' => array( 'invite_key' => '(string) Identifier for the deleted invite', 'deleted' => '(bool) Was the invitation removed?' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/invites/123523562/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Update_Invites_Endpoint( array( 'description' => 'Resend invitation for a user to join a site.', 'group' => '__do_not_document', 'stat' => 'invites:1', 'method' => 'POST', 'path' => '/sites/%s/invites/%s/resend', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$invite_id' => '(string) The ID of the invite' ), 'response_format' => array( 'result' => '(bool) Was the invitation resent?' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/invites/123523562', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Site_Settings_Endpoint( array( 'description' => 'Get detailed settings information about a site.', 'group' => '__do_not_document', 'stat' => 'sites:X', 'method' => 'GET', 'path' => '/sites/%s/settings', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'context' => false, ), 'response_format' => WPCOM_JSON_API_Site_Settings_Endpoint::$site_format, 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings?pretty=1', ) ); new WPCOM_JSON_API_Site_Settings_Endpoint( array( 'description' => 'Update settings for a site.', 'group' => '__do_not_document', 'stat' => 'sites:X', 'method' => 'POST', 'path' => '/sites/%s/settings', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'blogname' => '(string) Blog name', 'blogdescription' => '(string) Blog description', 'default_pingback_flag' => '(bool) Notify blogs linked from article?', 'default_ping_status' => '(bool) Allow link notifications from other blogs?', 'default_comment_status' => '(bool) Allow comments on new articles?', 'blog_public' => '(string) Site visibility; -1: private, 0: discourage search engines, 1: allow search engines', 'jetpack_sync_non_public_post_stati' => '(bool) allow sync of post and pages with non-public posts stati', 'jetpack_relatedposts_enabled' => '(bool) Enable related posts?', 'jetpack_relatedposts_show_headline' => '(bool) Show headline in related posts?', 'jetpack_relatedposts_show_thumbnails' => '(bool) Show thumbnails in related posts?', 'jetpack_protect_whitelist' => '(array) List of IP addresses to whitelist', 'infinite_scroll' => '(bool) Support infinite scroll of posts?', 'default_category' => '(int) Default post category', 'default_post_format' => '(string) Default post format', 'require_name_email' => '(bool) Require comment authors to fill out name and email?', 'comment_registration' => '(bool) Require users to be registered and logged in to comment?', 'close_comments_for_old_posts' => '(bool) Automatically close comments on old posts?', 'close_comments_days_old' => '(int) Age at which to close comments', 'thread_comments' => '(bool) Enable threaded comments?', 'thread_comments_depth' => '(int) Depth to thread comments', 'page_comments' => '(bool) Break comments into pages?', 'comments_per_page' => '(int) Number of comments to display per page', 'default_comments_page' => '(string) newest|oldest Which page of comments to display first', 'comment_order' => '(string) asc|desc Order to display comments within page', 'comments_notify' => '(bool) Email me when someone comments?', 'moderation_notify' => '(bool) Email me when a comment is helf for moderation?', 'social_notifications_like' => '(bool) Email me when someone likes my post?', 'social_notifications_reblog' => '(bool) Email me when someone reblogs my post?', 'social_notifications_subscribe' => '(bool) Email me when someone follows my blog?', 'comment_moderation' => '(bool) Moderate comments for manual approval?', 'comment_whitelist' => '(bool) Moderate comments unless author has a previously-approved comment?', 'comment_max_links' => '(int) Moderate comments that contain X or more links', 'moderation_keys' => '(string) Words or phrases that trigger comment moderation, one per line', 'blacklist_keys' => '(string) Words or phrases that mark comment spam, one per line', 'lang_id' => '(int) ID for language blog is written in', 'wga' => '(array) Google Analytics Settings', 'disabled_likes' => '(bool) Are likes globally disabled (they can still be turned on per post)?', 'disabled_reblogs' => '(bool) Are reblogs disabled on posts?', 'jetpack_comment_likes_enabled' => '(bool) Are comment likes enabled for all comments?', 'sharing_button_style' => '(string) Style to use for sharing buttons (icon-text, icon, text, or official)', 'sharing_label' => '(string) Label to use for sharing buttons, e.g. "Share this:"', 'sharing_show' => '(string|array:string) Post type or array of types where sharing buttons are to be displayed', 'sharing_open_links' => '(string) Link target for sharing buttons (same or new)', 'twitter_via' => '(string) Twitter username to include in tweets when people share using the Twitter button', 'jetpack-twitter-cards-site-tag' => '(string) The Twitter username of the owner of the site\'s domain.', 'eventbrite_api_token' => '(int) The Keyring token ID for an Eventbrite token to associate with the site', 'holidaysnow' => '(bool) Enable snowfall on frontend of site?' ), 'response_format' => array( 'updated' => '(array)' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/en.blog.wordpress.com/settings?pretty=1', ) ); /** * Sharing Button Endpoints */ new WPCOM_JSON_API_Get_Sharing_Buttons_Endpoint( array( 'description' => 'Get a list of a site\'s sharing buttons.', 'group' => 'sharing', 'stat' => 'sharing-buttons', 'method' => 'GET', 'path' => '/sites/%s/sharing-buttons/', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'query_parameters' => array( 'enabled_only' => '(bool) If true, only enabled sharing buttons are included in the response', 'visibility' => '(string) The type of enabled sharing buttons to filter by, either "visible" or "hidden"', ), 'response_format' => array( 'found' => '(int) The total number of sharing buttons found that match the request.', 'sharing_buttons' => '(array:object) Array of sharing button objects', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "found": 1, "sharing_buttons": [ { "ID": "facebook", "name": "Facebook" "shortname": "facebook", "custom": false, "enabled": true, "visibility": "visible", "genericon": "\\f204" } ] }' ) ); new WPCOM_JSON_API_Get_Sharing_Button_Endpoint( array( 'description' => 'Get information about a single sharing button.', 'group' => '__do_not_document', 'stat' => 'sharing-buttons:1', 'method' => 'GET', 'path' => '/sites/%s/sharing-buttons/%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$button_id' => '(string) The button ID', ), 'response_format' => array( 'ID' => '(int) Sharing button ID', 'name' => '(string) Sharing button name, used as a label on the button itself', 'shortname' => '(string) A generated short name for the sharing button', 'URL' => '(string) The URL pattern defined for a custom sharing button', 'icon' => '(string) URL to the 16x16 icon defined for a custom sharing button', 'genericon' => '(string) Icon character in Genericons icon set', 'custom' => '(bool) Is the button a user-created custom sharing button?', 'enabled' => '(bool) Is the button currently enabled for the site?', 'visibility' => '(string) If enabled, the current visibility of the sharing button, either "visible" or "hidden"', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons/facebook', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": "facebook", "name": "Facebook" "shortname": "facebook", "custom": false, "enabled": true, "visibility": "visible", "genericon": "\\f204" }' ) ); new WPCOM_JSON_API_Update_Sharing_Buttons_Endpoint( array( 'description' => 'Edit all sharing buttons for a site.', 'group' => 'sharing', 'stat' => 'sharing-buttons:X:POST', 'method' => 'POST', 'path' => '/sites/%s/sharing-buttons', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'sharing_buttons' => '(array:sharing_button) An array of sharing button objects', ), 'response_format' => array( 'success' => '(bool) Confirmation that all sharing buttons were updated as specified', 'updated' => '(array) An array of updated sharing buttons', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN', ), 'body' => array( 'sharing_buttons' => array( array( 'ID' => 'facebook', 'visibility' => 'hidden', ) ) ) ), 'example_response' => '{ "success": true, "updated": [ { "ID": "facebook" "name": "Facebook" "shortname": "facebook" "custom": false "enabled": true, "visibility": "hidden", "genericon": "\f204" } ] }' ) ); new WPCOM_JSON_API_Update_Sharing_Button_Endpoint( array( 'description' => 'Create a new custom sharing button.', 'group' => '__do_not_document', 'stat' => 'sharing-buttons:new', 'method' => 'POST', 'path' => '/sites/%s/sharing-buttons/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'name' => '(string) The name for your custom sharing button, used as a label on the button itself', 'URL' => '(string) The URL to use for share links, including optional placeholders (%post_title%, %post_url%, %post_full_url%, %post_excerpt%, %post_tags%)', 'icon' => '(string) The full URL to a 16x16 icon to display on the sharing button', 'enabled' => '(bool) Is the button currently enabled for the site?', 'visibility' => '(string) If enabled, the visibility of the sharing button, either "visible" (default) or "hidden"', ), 'response_format' => array( 'ID' => '(string) Sharing button ID', 'name' => '(string) Sharing button name, used as a label on the button itself', 'shortname' => '(string) A generated short name for the sharing button', 'URL' => '(string) The URL pattern defined for a custom sharing button', 'icon' => '(string) URL to the 16x16 icon defined for a custom sharing button', 'genericon' => '(string) Icon character in Genericons icon set', 'custom' => '(bool) Is the button a user-created custom sharing button?', 'enabled' => '(bool) Is the button currently enabled for the site?', 'visibility' => '(string) If enabled, the current visibility of the sharing button, either "visible" or "hidden"', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons/new/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'name' => 'Custom', 'URL' => 'https://www.wordpress.com/%post_name%', 'icon' => 'https://en.wordpress.com/i/stats-icon.gif', 'enabled' => true, 'visibility' => 'visible' ) ), 'example_response' => '{ "ID": "custom-123456789", "name": "Custom" "shortname": "ustom", "url": "https://www.wordpress.com/%post_name%", "icon": "https://en.wordpress.com/i/stats-icon.gif", "custom": true, "enabled": true, "visibility": "visible" }' ) ); new WPCOM_JSON_API_Update_Sharing_Button_Endpoint( array( 'description' => 'Edit a sharing button.', 'group' => '__do_not_document', 'stat' => 'sharing-buttons:1:POST', 'method' => 'POST', 'path' => '/sites/%s/sharing-buttons/%s', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$button_id' => '(string) The button ID', ), 'request_format' => array( 'name' => '(string) Only if a custom sharing button, a new name used as a label on the button itself', 'URL' => '(string) Only if a custom sharing button, the URL to use for share links, including optional placeholders (%post_title%, %post_url%, %post_full_url%, %post_excerpt%, %post_tags%)', 'icon' => '(string) Only if a custom sharing button, the full URL to a 16x16 icon to display on the sharing button', 'enabled' => '(bool) Is the button currently enabled for the site?', 'visibility' => '(string) If enabled, the visibility of the sharing button, either "visible" (default) or "hidden"', ), 'response_format' => array( 'ID' => '(string) Sharing button ID', 'name' => '(string) Sharing button name, used as a label on the button itself', 'shortname' => '(string) A generated short name for the sharing button', 'URL' => '(string) The URL pattern defined for a custom sharing button', 'icon' => '(string) URL to the 16x16 icon defined for a custom sharing button', 'genericon' => '(string) Icon character in Genericons icon set', 'custom' => '(bool) Is the button a user-created custom sharing button?', 'enabled' => '(bool) Is the button currently enabled for the site?', 'visibility' => '(string) If enabled, the current visibility of the sharing button, either "visible" or "hidden"', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons/custom-123456789/', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'enabled' => false, ) ), 'example_response' => '{ "ID": "custom-123456789", "name": "Custom" "shortname": "ustom", "custom": true, "enabled": false, "icon": "https://en.wordpress.com/i/stats-icon.gif", "url": "https://www.wordpress.com/%post_name%" }' ) ); new WPCOM_JSON_API_Delete_Sharing_Button_Endpoint( array( 'description' => 'Delete a custom sharing button.', 'group' => '__do_not_document', 'stat' => 'sharing-buttons:1:delete', 'method' => 'POST', 'path' => '/sites/%s/sharing-buttons/%s/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$button_id' => '(string) The button ID', ), 'response_format' => array( 'ID' => '(int) The ID of the deleted sharing button', 'success' => '(bool) Confirmation that the sharing button has been removed' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1/sites/30434183/sharing-buttons/custom-123456789/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), 'example_response' => '{ "ID": "custom-123456789", "success": "true" }' ) ); /* * Custom CSS endpoints */ new WPCOM_JSON_API_Get_CustomCss_Endpoint( array ( 'description' => 'Retrieve custom-css data for a site.', 'group' => '__do_not_document', 'stat' => 'customcss:1:get', 'method' => 'GET', 'min_version' => '1.1', 'path' => '/sites/%s/customcss', 'path_labels' => array( '$site' => '(string) Site ID or domain.', ), 'response_format' => array( 'css' => '(string) The raw CSS.', 'preprocessor' => '(string) The name of the preprocessor if any.', 'add_to_existing' => '(bool) False to skip the existing styles.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/12345678/customcss', 'example_response' => array( array( 'css' => '.stie-title { color: #fff; }', 'preprocessor' => 'sass', 'add_to_existing' => 'true', ) ) ) ); new WPCOM_JSON_API_Update_CustomCss_Endpoint( array ( 'description' => 'Set custom-css data for a site.', 'group' => '__do_not_document', 'stat' => 'customcss:1:update', 'method' => 'POST', 'min_version' => '1.1', 'path' => '/sites/%s/customcss', 'path_labels' => array( '$site' => '(string) Site ID or domain.', ), 'request_format' => array( 'css' => '(string) Optional. The raw CSS.', 'preprocessor' => '(string) Optional. The name of the preprocessor if any.', 'add_to_existing' => '(bool) Optional. False to skip the existing styles.', ), 'response_format' => array( 'css' => '(string) The raw CSS.', 'preprocessor' => '(string) The name of the preprocessor if any.', 'add_to_existing' => '(bool) False to skip the existing styles.', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/12345678/customcss', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'css' => '.stie-title { color: #fff; }', 'preprocessor' => 'sass' ), ), 'example_response' => array( array( 'css' => '.stie-title { color: #fff; }', 'preprocessor' => 'sass', 'add_to_existing' => 'true', ) ) ) ); /* * Custom Menus endpoints */ new WPCOM_JSON_API_Menus_New_Menu_Endpoint( array ( 'method' => 'POST', 'description' => 'Create a new navigation menu.', 'group' => 'menus', 'stat' => 'menus:new-menu', 'path' => '/sites/%s/menus/new', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'request_format' => array( 'name' => '(string) Name of menu', ), 'response_format' => array( 'id' => '(int) Newly created menu ID', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/menus/new', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'name' => 'Menu 1' ) ), ) ); new WPCOM_JSON_API_Menus_Update_Menu_Endpoint( array ( 'method' => 'POST', 'description' => 'Update a navigation menu.', 'group' => 'menus', 'stat' => 'menus:update-menu', 'path' => '/sites/%s/menus/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$menu_id' => '(int) Menu ID', ), 'request_format' => array( 'name' => '(string) Name of menu', 'items' => '(array) A list of menu item objects.

        Item objects contain fields relating to that item, e.g. id, type, content_id, but they can also contain other items objects - this nesting represents parents and child items in the item tree.' ), 'response_format' => array( 'menu' => '(object) Updated menu object', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/menus/347757165', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), 'body' => array( 'name' => 'Menu 1' ), ), ) ); new WPCOM_JSON_API_Menus_List_Menus_Endpoint( array ( 'method'=> 'GET', 'description' => 'Get a list of all navigation menus.', 'group' => 'menus', 'stat' => 'menus:list-menu', 'path' => '/sites/%s/menus', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', ), 'response_format' => array( 'menus' => '(array) A list of menu objects.

        A menu object contains a name, items, locations, etc. Check the example response for the full structure.

        Item objects contain fields relating to that item, e.g. id, type, content_id, but they can also contain other items objects - this nesting represents parents and child items in the item tree.', 'locations' => '(array) Locations where menus can be placed. List of objects, one per location.' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/menus', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Menus_Get_Menu_Endpoint( array ( 'method'=> 'GET', 'description' => 'Get a single navigation menu.', 'group' => 'menus', 'stat' => 'menus:get-menu', 'path' => '/sites/%s/menus/%d', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$menu_id' => '(int) Menu ID', ), 'response_format' => array( 'menu' => '(object) A menu object.

        A menu object contains a name, items, locations, etc. Check the example response for the full structure.

        Item objects contain fields relating to that item, e.g. id, type, content_id, but they can also contain other items objects - this nesting represents parents and child items in the item tree.' ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/menus/347757165', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); new WPCOM_JSON_API_Menus_Delete_Menu_Endpoint( array ( 'method' => 'POST', 'description' => 'Delete a navigation menu', 'group' => 'menus', 'stat' => 'menus:delete-menu', 'path' => '/sites/%s/menus/%d/delete', 'path_labels' => array( '$site' => '(int|string) Site ID or domain', '$menu_id' => '(int) Menu ID', ), 'response_format' => array( 'deleted' => '(bool) Has the menu been deleted?', ), 'example_request' => 'https://public-api.wordpress.com/rest/v1.1/sites/82974409/menus/$menu_id/delete', 'example_request_data' => array( 'headers' => array( 'authorization' => 'Bearer YOUR_API_TOKEN' ), ), ) ); plugins/jetpack/class.jetpack-network.php0000644000312500031250000005470612654411246021224 0ustar eacbforgeacbforg Settings page * * @since 2.9 * @var array */ private $setting_defaults = array( 'auto-connect' => 0, 'sub-site-connection-override' => 1, //'manage_auto_activated_modules' => 0, ); /** * Constructor * * @since 2.9 */ private function __construct() { require_once( ABSPATH . '/wp-admin/includes/plugin.php' ); // For the is_plugin... check require_once( JETPACK__PLUGIN_DIR . 'modules/protect/shared-functions.php' ); // For managing the global whitelist /* * Sanity check to ensure the install is Multisite and we * are in Network Admin */ if ( is_multisite() && is_network_admin() ) { add_action( 'network_admin_menu', array( $this, 'add_network_admin_menu' ) ); add_action( 'network_admin_edit_jetpack-network-settings', array( $this, 'save_network_settings_page' ), 10, 0 ); add_filter( 'admin_body_class', array( $this, 'body_class' ) ); if ( isset( $_GET['page'] ) && 'jetpack' == $_GET['page'] ) { add_action( 'admin_init', array( $this, 'jetpack_sites_list' ) ); } } /* * Things that should only run on multisite */ if ( is_multisite() && is_plugin_active_for_network( 'jetpack/jetpack.php' ) ) { add_action( 'wp_before_admin_bar_render', array( $this, 'add_to_menubar' ) ); /* * If admin wants to automagically register new sites set the hook here * * This is a hacky way because xmlrpc is not available on wpmu_new_blog */ if ( $this->get_option( 'auto-connect' ) == 1 ) { add_action( 'wpmu_new_blog', array( $this, 'do_automatically_add_new_site' ) ); } } // Remove the toggles for 2.9, re-evaluate how they're done and added for a 3.0 release. They don't feel quite right yet. // add_filter( 'jetpack_get_default_modules', array( $this, 'set_auto_activated_modules' ) ); } /** * Sets which modules get activated by default on subsite connection. * Modules can be set in Network Admin > Jetpack > Settings * * @since 2.9 * * @param array $modules * * @return array **/ public function set_auto_activated_modules( $modules ) { return $modules; /* Remove the toggles for 2.9, re-evaluate how they're done and added for a 3.0 release. They don't feel quite right yet. if( 1 == $this->get_option( 'manage_auto_activated_modules' ) ) { return (array) $this->get_option( 'modules' ); } else { return $modules; } */ } /** * Registers new sites upon creation * * @since 2.9 * @uses wpmu_new_blog * * @param int $blog_id **/ public function do_automatically_add_new_site( $blog_id ) { $this->do_subsiteregister( $blog_id ); } /** * Adds .network-admin class to the body tag * Helps distinguish network admin JP styles from regular site JP styles * * @since 2.9 */ public function body_class( $classes ) { return trim( $classes ) . ' network-admin '; } /** * Provides access to an instance of Jetpack_Network * * This is how the Jetpack_Network object should *always* be accessed * * @since 2.9 * @return Jetpack_Network */ public static function init() { if ( ! self::$instance || ! is_a( self::$instance, 'Jetpack_Network' ) ) { self::$instance = new Jetpack_Network; } return self::$instance; } /** * Registers the Multisite admin bar menu item shortcut. * This shortcut helps users quickly and easily navigate to the Jetpack Network Admin * menu from anywhere in their network. * * @since 2.9 */ public function register_menubar() { add_action( 'wp_before_admin_bar_render', array( $this, 'add_to_menubar' ) ); } /** * Runs when Jetpack is deactivated from the network admin plugins menu. * Each individual site will need to have Jetpack::disconnect called on it. * Site that had Jetpack individually enabled will not be disconnected as * on Multisite individually activated plugins are still activated when * a plugin is deactivated network wide. * * @since 2.9 **/ public function deactivate() { // Only fire if in network admin if ( ! is_network_admin() ) { return; } $sites = $this->wp_get_sites(); foreach ( $sites as $s ) { switch_to_blog( $s->blog_id ); $active_plugins = get_option( 'active_plugins' ); /* * If this plugin was activated in the subsite individually * we do not want to call disconnect. Plugins activated * individually (before network activation) stay activated * when the network deactivation occurs */ if ( ! in_array( 'jetpack/jetpack.php', $active_plugins ) ) { Jetpack::disconnect(); } } restore_current_blog(); } /** * Adds a link to the Jetpack Network Admin page in the network admin menu bar. * * @since 2.9 **/ public function add_to_menubar() { global $wp_admin_bar; // Don't show for logged out users or single site mode. if ( ! is_user_logged_in() || ! is_multisite() ) { return; } $wp_admin_bar->add_node( array( 'parent' => 'network-admin', 'id' => 'network-admin-jetpack', 'title' => __( 'Jetpack', 'jetpack' ), 'href' => $this->get_url( 'network_admin_page' ), ) ); } /** * Returns various URL strings. Factory like * * $args can be a string or an array. * If $args is an array there must be an element called name for the switch statement * * Currently supports: * - subsiteregister: Pass array( 'name' => 'subsiteregister', 'site_id' => SITE_ID ) * - network_admin_page: Provides link to /wp-admin/network/JETPACK * - subsitedisconnect: Pass array( 'name' => 'subsitedisconnect', 'site_id' => SITE_ID ) * * @since 2.9 * * @param Mixed $args * * @return String **/ public function get_url( $args ) { $url = null; // Default url value if ( is_string( $args ) ) { $name = $args; } else { $name = $args['name']; } switch ( $name ) { case 'subsiteregister': if ( ! isset( $args['site_id'] ) ) { break; // If there is not a site id present we cannot go further } $url = network_admin_url( 'admin.php?page=jetpack&action=subsiteregister&site_id=' . $args['site_id'] ); break; case 'network_admin_page': $url = network_admin_url( 'admin.php?page=jetpack' ); break; case 'subsitedisconnect': if ( ! isset( $args['site_id'] ) ) { break; // If there is not a site id present we cannot go further } $url = network_admin_url( 'admin.php?page=jetpack&action=subsitedisconnect&site_id=' . $args['site_id'] ); break; } return $url; } /** * Adds the Jetpack menu item to the Network Admin area * * @since 2.9 */ public function add_network_admin_menu() { add_menu_page( __( 'Jetpack', 'jetpack' ), __( 'Jetpack', 'jetpack' ), 'jetpack_network_admin_page', 'jetpack', array( $this, 'network_admin_page' ), 'div', 3 ); add_submenu_page( 'jetpack', __( 'Jetpack Sites', 'jetpack' ), __( 'Sites', 'jetpack' ), 'jetpack_network_sites_page', 'jetpack', array( $this, 'network_admin_page' ) ); add_submenu_page( 'jetpack', __( 'Settings', 'jetpack' ), __( 'Settings', 'jetpack' ), 'jetpack_network_settings_page', 'jetpack-settings', array( $this, 'render_network_admin_settings_page' ) ); /** * As jetpack_register_genericons is by default fired off a hook, * the hook may have already fired by this point. * So, let's just trigger it manually. */ require_once( JETPACK__PLUGIN_DIR . '_inc/genericons.php' ); jetpack_register_genericons(); if ( ! wp_style_is( 'jetpack-icons', 'registered' ) ) { wp_register_style( 'jetpack-icons', plugins_url( 'css/jetpack-icons.min.css', JETPACK__PLUGIN_FILE ), false, JETPACK__VERSION ); } add_action( 'admin_enqueue_scripts', array( $this, 'admin_menu_css' ) ); } /** * Adds JP menu icon * * @since 2.9 **/ function admin_menu_css() { wp_enqueue_style( 'jetpack-icons' ); } /** * Provides functionality for the Jetpack > Sites page. * Does not do the display! * * @since 2.9 */ public function jetpack_sites_list() { Jetpack::init(); if ( isset( $_GET['action'] ) ) { switch ( $_GET['action'] ) { case 'subsiteregister': /* * @todo check_admin_referer( 'jetpack-subsite-register' ); */ Jetpack::log( 'subsiteregister' ); // If !$_GET['site_id'] stop registration and error if ( ! isset( $_GET['site_id'] ) || empty( $_GET['site_id'] ) ) { // Log error to state cookie for display later /** * @todo Make state messages show on Jetpack NA pages **/ Jetpack::state( 'missing_site_id', 'Site ID must be provided to register a sub-site' ); break; } // Send data to register endpoint and retrieve shadow blog details $result = $this->do_subsiteregister(); $url = $this->get_url( 'network_admin_page' ); if ( is_wp_error( $result ) ) { $url = add_query_arg( 'action', 'connection_failed', $url ); } else { $url = add_query_arg( 'action', 'connected', $url ); } wp_safe_redirect( $url ); break; case 'subsitedisconnect': Jetpack::log( 'subsitedisconnect' ); if ( ! isset( $_GET['site_id'] ) || empty( $_GET['site_id'] ) ) { Jetpack::state( 'missing_site_id', 'Site ID must be provided to disconnect a sub-site' ); break; } $this->do_subsitedisconnect(); break; case 'connected': case 'connection_failed': add_action( 'jetpack_notices', array( $this, 'show_jetpack_notice' ) ); break; } } } public function show_jetpack_notice() { if ( isset( $_GET['action'] ) && 'connected' == $_GET['action'] ) { $notice = __( 'Site successfully connected.', 'jetpack' ); } else if ( isset( $_GET['action'] ) && 'connection_failed' == $_GET['action'] ) { $notice = __( 'Site connection failed', 'jetpack' ); } Jetpack::init()->load_view( 'admin/network-admin-alert.php', array( 'notice' => $notice ) ); } /** * Disconnect functionality for an individual site * * @since 2.9 * @see Jetpack_Network::jetpack_sites_list() */ public function do_subsitedisconnect( $site_id = null ) { if ( ! current_user_can( 'jetpack_disconnect' ) ) { return; } $site_id = ( is_null( $site_id ) ) ? $_GET['site_id'] : $site_id; switch_to_blog( $site_id ); Jetpack::disconnect(); restore_current_blog(); } /** * Registers a subsite with the Jetpack servers * * @since 2.9 * @todo Break apart into easier to manage chunks that can be unit tested * @see Jetpack_Network::jetpack_sites_list(); */ public function do_subsiteregister( $site_id = null ) { if ( ! current_user_can( 'jetpack_disconnect' ) ) { return; } if ( Jetpack::is_development_mode() ) { return; } $jp = Jetpack::init(); // Figure out what site we are working on $site_id = ( is_null( $site_id ) ) ? $_GET['site_id'] : $site_id; // Build secrets to sent to wpcom for verification $secrets = $jp->generate_secrets(); // Remote query timeout limit $timeout = $jp->get_remote_query_timeout_limit(); // The blog id on WordPress.com of the primary network site $network_wpcom_blog_id = Jetpack_Options::get_option( 'id' ); /* * Here we need to switch to the subsite * For the registration process we really only hijack how it * works for an individual site and pass in some extra data here */ switch_to_blog( $site_id ); // Save the secrets in the subsite so when the wpcom server does a pingback it // will be able to validate the connection Jetpack_Options::update_option( 'register', $secrets[0] . ':' . $secrets[1] . ':' . $secrets[2] ); // Gra info for gmt offset $gmt_offset = get_option( 'gmt_offset' ); if ( ! $gmt_offset ) { $gmt_offset = 0; } /* * Get the stats_option option from the db. * It looks like the server strips this out so maybe it is not necessary? * Does it match the Jetpack site with the old stats plugin id? * * @todo Find out if sending the stats_id is necessary */ $stat_options = get_option( 'stats_options' ); $stat_id = $stat_options = isset( $stats_options['blog_id'] ) ? $stats_options['blog_id'] : null; $args = array( 'method' => 'POST', 'body' => array( 'network_url' => $this->get_url( 'network_admin_page' ), 'network_wpcom_blog_id' => $network_wpcom_blog_id, 'siteurl' => site_url(), 'home' => home_url(), 'gmt_offset' => $gmt_offset, 'timezone_string' => (string) get_option( 'timezone_string' ), 'site_name' => (string) get_option( 'blogname' ), 'secret_1' => $secrets[0], 'secret_2' => $secrets[1], 'site_lang' => get_locale(), 'timeout' => $timeout, 'stats_id' => $stat_id, // Is this still required? 'user_id' => get_current_user_id(), ), 'headers' => array( 'Accept' => 'application/json', ), 'timeout' => $timeout, ); // Attempt to retrieve shadow blog details $response = Jetpack_Client::_wp_remote_request( Jetpack::fix_url_for_bad_hosts( Jetpack::api_url( 'subsiteregister' ) ), $args, true ); /* * $response should either be invalid or contain: * - jetpack_id => id * - jetpack_secret => blog_token * - jetpack_public * * Store the wpcom site details */ $valid_response = $jp->validate_remote_register_response( $response ); if ( is_wp_error( $valid_response ) || ! $valid_response ) { restore_current_blog(); return $valid_response; } // Grab the response values to work with $code = wp_remote_retrieve_response_code( $response ); $entity = wp_remote_retrieve_body( $response ); if ( $entity ) { $json = json_decode( $entity ); } else { $json = false; } if ( empty( $json->jetpack_secret ) || ! is_string( $json->jetpack_secret ) ) { restore_current_blog(); return new Jetpack_Error( 'jetpack_secret', '', $code ); } if ( isset( $json->jetpack_public ) ) { $jetpack_public = (int) $json->jetpack_public; } else { $jetpack_public = false; } Jetpack_Options::update_options( array( 'id' => (int) $json->jetpack_id, 'blog_token' => (string) $json->jetpack_secret, 'public' => $jetpack_public, ) ); /* * Update the subsiteregister method on wpcom so that it also sends back the * token in this same request */ $is_master_user = ! Jetpack::is_active(); Jetpack::update_user_token( get_current_user_id(), sprintf( '%s.%d', $json->token->secret, get_current_user_id() ), $is_master_user ); Jetpack::activate_default_modules(); restore_current_blog(); } /** * Handles the displaying of all sites on the network that are * dis/connected to Jetpack * * @since 2.9 * @see Jetpack_Network::jetpack_sites_list() */ function network_admin_page() { global $current_site; $this->network_admin_page_header(); $jp = Jetpack::init(); // We should be, but ensure we are on the main blog switch_to_blog( $current_site->blog_id ); $main_active = $jp->is_active(); restore_current_blog(); // If we are in dev mode, just show the notice and bail if ( Jetpack::is_development_mode() ) { Jetpack::show_development_mode_notice(); return; } /* * Ensure the main blog is connected as all other subsite blog * connections will feed off this one */ if ( ! $main_active ) { $url = $this->get_url( array( 'name' => 'subsiteregister', 'site_id' => 1, ) ); $data = array( 'url' => $jp->build_connect_url() ); Jetpack::init()->load_view( 'admin/must-connect-main-blog.php', $data ); return; } require_once( 'class.jetpack-network-sites-list-table.php' ); $myListTable = new Jetpack_Network_Sites_List_Table(); echo '

        ' . __( 'Sites', 'jetpack' ) . '

        '; echo '
        '; $myListTable->prepare_items(); $myListTable->display(); echo '
        '; $this->network_admin_page_footer(); } /** * Stylized JP header formatting * * @since 2.9 */ function network_admin_page_header() { global $current_user; $is_connected = Jetpack::is_active(); $data = array( 'is_connected' => $is_connected ); Jetpack::init()->load_view( 'admin/network-admin-header.php', $data ); } /** * Stylized JP footer formatting * * @since 2.9 */ function network_admin_page_footer() { Jetpack::init()->load_view( 'admin/network-admin-footer.php' ); } /** * Fires when the Jetpack > Settings page is saved. * * @since 2.9 */ public function save_network_settings_page() { if ( ! wp_verify_nonce( $_POST['_wpnonce'], 'jetpack-network-settings' ) ) { // no nonce, push back to settings page wp_safe_redirect( add_query_arg( array( 'page' => 'jetpack-settings' ), network_admin_url( 'admin.php' ) ) ); exit(); } // try to save the Protect whitelist before anything else, since that action can result in errors $whitelist = str_replace( ' ', '', $_POST['global-whitelist'] ); $whitelist = explode( PHP_EOL, $whitelist ); $result = jetpack_protect_save_whitelist( $whitelist, $global = true ); if ( is_wp_error( $result ) ) { wp_safe_redirect( add_query_arg( array( 'page' => 'jetpack-settings', 'error' => 'jetpack_protect_whitelist' ), network_admin_url( 'admin.php' ) ) ); exit(); } /* * Fields * * auto-connect - Checkbox for global Jetpack connection * sub-site-connection-override - Allow sub-site admins to (dis)reconnect with their own Jetpack account */ $auto_connect = 0; if ( isset( $_POST['auto-connect'] ) ) { $auto_connect = 1; } $sub_site_connection_override = 0; if ( isset( $_POST['sub-site-connection-override'] ) ) { $sub_site_connection_override = 1; } /* Remove the toggles for 2.9, re-evaluate how they're done and added for a 3.0 release. They don't feel quite right yet. $manage_auto_activated_modules = 0; if ( isset( $_POST['manage_auto_activated_modules'] ) ) { $manage_auto_activated_modules = 1; } $modules = array(); if ( isset( $_POST['modules'] ) ) { $modules = $_POST['modules']; } */ $data = array( 'auto-connect' => $auto_connect, 'sub-site-connection-override' => $sub_site_connection_override, //'manage_auto_activated_modules' => $manage_auto_activated_modules, //'modules' => $modules, ); update_site_option( $this->settings_name, $data ); wp_safe_redirect( add_query_arg( array( 'page' => 'jetpack-settings', 'updated' => 'true' ), network_admin_url( 'admin.php' ) ) ); exit(); } public function render_network_admin_settings_page() { $this->network_admin_page_header(); $options = wp_parse_args( get_site_option( $this->settings_name ), $this->setting_defaults ); $modules = array(); $module_slugs = Jetpack::get_available_modules(); foreach ( $module_slugs as $slug ) { $module = Jetpack::get_module( $slug ); $module['module'] = $slug; $modules[] = $module; } usort( $modules, array( 'Jetpack', 'sort_modules' ) ); if ( ! isset( $options['modules'] ) ) { $options['modules'] = $modules; } $data = array( 'modules' => $modules, 'options' => $options, 'jetpack_protect_whitelist' => jetpack_protect_format_whitelist(), ); Jetpack::init()->load_view( 'admin/network-settings.php', $data ); $this->network_admin_page_footer(); } /** * Updates a site wide option * * @since 2.9 * * @param string $key * @param mixed $value * * @return boolean **/ public function update_option( $key, $value ) { $options = get_site_option( $this->settings_name, $this->setting_defaults ); $options[ $key ] = $value; return update_site_option( $this->settings_name, $options ); } /** * Retrieves a site wide option * * @since 2.9 * * @param string $name - Name of the option in the database **/ public function get_option( $name ) { $options = get_site_option( $this->settings_name, $this->setting_defaults ); $options = wp_parse_args( $options, $this->setting_defaults ); if ( ! isset( $options[ $name ] ) ) { $options[ $name ] = null; } return $options[ $name ]; } /** * Return an array of sites on the specified network. If no network is specified, * return all sites, regardless of network. * * @todo REMOVE THIS FUNCTION! This function is moving to core. Use that one in favor of this. WordPress::wp_get_sites(). http://codex.wordpress.org/Function_Reference/wp_get_sites NOTE, This returns an array instead of stdClass. Be sure to update class.network-sites-list-table.php * @since 2.9 * @deprecated 2.4.5 * * @param array|string $args Optional. Specify the status of the sites to return. * * @return array An array of site data */ public function wp_get_sites( $args = array() ) { global $wpdb; if ( wp_is_large_network() ) { return; } $defaults = array( 'network_id' => $wpdb->siteid ); $args = wp_parse_args( $args, $defaults ); $query = "SELECT * FROM $wpdb->blogs WHERE 1=1 "; if ( isset( $args['network_id'] ) && ( is_array( $args['network_id'] ) || is_numeric( $args['network_id'] ) ) ) { $network_ids = array_map( 'intval', (array) $args['network_id'] ); $network_ids = implode( ',', $network_ids ); $query .= "AND site_id IN ($network_ids) "; } if ( isset( $args['public'] ) ) { $query .= $wpdb->prepare( "AND public = %s ", $args['public'] ); } if ( isset( $args['archived'] ) ) { $query .= $wpdb->prepare( "AND archived = %s ", $args['archived'] ); } if ( isset( $args['mature'] ) ) { $query .= $wpdb->prepare( "AND mature = %s ", $args['mature'] ); } if ( isset( $args['spam'] ) ) { $query .= $wpdb->prepare( "AND spam = %s ", $args['spam'] ); } if ( isset( $args['deleted'] ) ) { $query .= $wpdb->prepare( "AND deleted = %s ", $args['deleted'] ); } if ( isset( $args['exclude_blogs'] ) ) { $query .= "AND blog_id NOT IN (" . implode( ',', $args['exclude_blogs'] ) . ")"; } $key = 'wp_get_sites:' . md5( $query ); if ( ! $site_results = wp_cache_get( $key, 'site-id-cache' ) ) { $site_results = (array) $wpdb->get_results( $query ); wp_cache_set( $key, $site_results, 'site-id-cache' ); } return $site_results; } } // end class plugins/jetpack/css/0000755000312500031250000000000012654411246015053 5ustar eacbforgeacbforgplugins/jetpack/css/dashboard-widget-rtl.css0000644000312500031250000001312112651056012021563 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ /* * Button mixin- creates 3d-ish button effect with correct * highlights/shadows, based on a base color. */ #jetpack_summary_widget * { -moz-box-sizing: border-box; box-sizing: border-box; } #jetpack_summary_widget .inside { margin: 0; padding: 0; font-family: "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; } #jetpack_summary_widget .stats, #jetpack_summary_widget .widgets, #jetpack_summary_widget .wpcom-connect { padding: .75em; } #jetpack_summary_widget .wpcom-connect { background: #fafafa; text-align: center; } #jetpack_summary_widget .wpcom-connect .jp-emblem { padding: 5px 0 0 0; } #jetpack_summary_widget .wpcom-connect svg { width: 40px; height: 40px; } #jetpack_summary_widget .wpcom-connect svg path { fill: #81a844; } #jetpack_summary_widget .wpcom-connect .jp-emblem, #jetpack_summary_widget .wpcom-connect h3, #jetpack_summary_widget .wpcom-connect p { width: 100%; } #jetpack_summary_widget .wpcom-connect h3 { font-size: 1.25em; font-weight: 400; } #jetpack_summary_widget .wpcom-connect p { color: #777; margin-top: 0; padding: 0 15px; } #jetpack_summary_widget .wpcom-connect .actions { text-align: center; padding: 15px 0 10px 0; } #jetpack_summary_widget .wpcom-connect .actions small { display: block; } #jetpack_summary_widget .wpcom-connect .actions small a { color: #999; } #jetpack_summary_widget .button-jetpack { background: #81a844; border-color: #658435; color: white; box-shadow: inset 0 1px 0 #a5c672, 0 1px 0 rgba(0, 0, 0, 0.15); } #jetpack_summary_widget .button-jetpack:hover, #jetpack_summary_widget .button-jetpack:focus { background: #73963d; border-color: #57722e; color: white; box-shadow: inset 0 1px 0 #9abf60; } #jetpack_summary_widget .button-jetpack:focus { box-shadow: inset 0 1px 0 #9abf60, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); } #jetpack_summary_widget .button-jetpack:active { background: #658435; border-color: #57722e; color: white; box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); } #jetpack_summary_widget .button-jetpack[disabled], #jetpack_summary_widget .button-jetpack:disabled, #jetpack_summary_widget .button-jetpack.button-primary-disabled, #jetpack_summary_widget .button-jetpack.disabled { color: #cdd1c7 !important; background: #6b8b38 !important; border-color: #57722e !important; text-shadow: none !important; } #jetpack_summary_widget footer { background: #fafafa; padding: .75em; overflow: hidden; border-top: 1px solid #ccc; } #jetpack_summary_widget footer .protect, #jetpack_summary_widget footer .akismet { width: 50%; float: right; text-align: right; } #jetpack_summary_widget footer h3 { font-size: 1.5em; font-weight: normal; margin: 0; padding: 0; } #jetpack_summary_widget footer p { margin: 0; padding: 0; } #jetpack_summary_widget footer section { margin: 0; padding: 0; text-align: center; } /*# sourceMappingURL=dashboard-widget.css.map */ #jetpack_summary_widget *{-moz-box-sizing:border-box;box-sizing:border-box}#jetpack_summary_widget .inside{margin:0;padding:0;font-family:"proxima-nova", "Open Sans", Helvetica, Arial, sans-serif}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#fafafa;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#81a844}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#777;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#81a844;border-color:#658435;color:#fff;box-shadow:inset 0 1px 0 #a5c672,0 1px 0 rgba(0,0,0,0.15)}#jetpack_summary_widget .button-jetpack:hover,#jetpack_summary_widget .button-jetpack:focus{background:#73963d;border-color:#57722e;color:#fff;box-shadow:inset 0 1px 0 #9abf60}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #9abf60,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack:active{background:#658435;border-color:#57722e;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack[disabled],#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled{color:#cdd1c7 !important;background:#6b8b38 !important;border-color:#57722e !important;text-shadow:none !important}#jetpack_summary_widget footer{background:#fafafa;padding:.75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .protect,#jetpack_summary_widget footer .akismet{width:50%;float:right;text-align:right}#jetpack_summary_widget footer h3{font-size:1.5em;font-weight:normal;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center} /*# sourceMappingURL=dashboard-widget.min.css.map */plugins/jetpack/css/jetpack-admin-jitm.css.map0000755000312500031250000000233112651056012022004 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/jetpack-admin-jitm.scss","jetpack-admin-jitm.css"],"names":[],"mappings":"AAEA;;;GAGC;ACDD;EDGC,oBAAmB;EACnB,iBAAQ;EACR,2BAAkB;ECDjB,gBAAe;EDIhB,qBAAA;EACC,2BAAW;EACX,oBAAc;ECFf;ADIA;EACC,aAAW;ECFX,gBAAe;EDKhB;ACHD;EACE,aAAY;EDMb;ACJD;EACE,6BAA4B;EDM7B;ACJD;EDME,kBAAY;ECJb;AACD;EDOC,aAAI;EACH,cAAW;EACX,0BAAY;ECLb;ADQA;EACC,aAAM;ECNN,cAAa;EDSd;ACPD;EDSE,eAAA;ECPD;AACD;EDQE,WAAA;EACC,uBAAW;EACX,cAAM;ECNR;AACD;EDUC,aAAE;EACD,4BAAc;EACd,kBAAiB;ECRlB;ADWA;EACC,gBAAe;EACf,mBAAY;ECTb;AACD;EDYC,iBAAM;EACL,cAAa;ECVb,aAAY;EDab;ACXD;EACE,eAAc;EDcf;ACZD;EACE,iBDaY;ECZb;AACD;EACE;IDcA,aAAA;IACC;yBACY;ICZZ;EACD;IDcA,aAAE;IACD,cAAQ;ICZP,oBAAmB;IDcrB;ECZA;IDcC,uBAAU;ICZV;EDcD;IACC,WAAU;ICZT,YAAW;IACZ;EDeF;IA7FD,eAAS;ICiFN;EACF;AACD;EACE;IDcC,+BAAkB;ICZlB;EACD;IDeD,mBAAA;IACC,oBAAW;ICbV;EACF;AACD;EACE;IDmBD,2BAA2B;IAD5B;ECfC;;AAED;EACE;IDiBF,wBAAA;IACC;ECfA;;ADoBA;EAEC,UAAA;EClBD;;AAED;EACE;IDoBC,gBAAA;IACC,uBAAQ;IClBR,qBAAoB;IDqBrB;ECnBD;IDqBE,0BAAgB;ICnBjB;EACD;IDsBC,YAAA;IACC,kBAAY;IACZ,kBAAW;ICpBZ;EACD;IDyBD,oBAAA;IAEC,aAAA;ICxBC;EACF;AACD;EACE;ID0BC,eAAA;IACC,iBAAgB;IAChB,mBAAU;ICxBX;EACD;IACE,kBAAiB;ID4BnB,YAAA;IACC,mBAAc;IC1Bb,oBAAmB;IACpB;EACD;IACE,gBAAe;IAChB;EACF","file":"jetpack-admin-jitm.css"}plugins/jetpack/css/jetpack-icons.css.map0000755000312500031250000000064312651056012021072 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/atoms/icons/_jetpack.scss","jetpack-icons.css","../scss/jetpack-icons.scss"],"names":[],"mappings":"AAIA;;;GAGC;ACHD;EDQC,wBAAkB;ECNjB,+CAA8C;EDShD,yQAAqD;EACpD,qBAGC;ECVA,oBDQa;ECPd;AACD;EACE;ICNF,wBAAA;IACC,qEAAiC;IACjC;EDQA;AACD;ECPA,mCAAA;EACC,kBAAa;EDSb;;AAED;ECRA,mCAAA;EACC,kBAAY;EDUZ;;AAED;ECTA,6BAAyB;EACxB,8BAAA;EDWA;;AAED;EACE;IACE,cAAa;IACd;EACF","file":"jetpack-icons.css"}plugins/jetpack/css/jetpack-icons.min.css.map0000755000312500031250000000055412651056012021655 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/atoms/icons/_jetpack.scss","../scss/jetpack-icons.scss"],"names":[],"mappings":"AAIA,WACC,sBACA,CAAA,4CACA,CAAA,mQAIA,CAAA,kBACA,CAAA,iBAGD,CAAA,qDACC,WACC,sBACA,CAAA,kEAAmE,CAAA,ACZrE,CAAA,8CACC,iCACA,CAAA,eAED,CAAA,0CACC,iCACA,CAAA,eAED,CAAA,iDACC,2BACA,CAAA,2BAED,CAAA,yBACC,8CACC,YAAY,CAAA,CAAA","file":"jetpack-icons.min.css"}plugins/jetpack/css/dashboard-widget.css0000644000312500031250000000607212651056012020773 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ /* * Button mixin- creates 3d-ish button effect with correct * highlights/shadows, based on a base color. */ #jetpack_summary_widget * { -moz-box-sizing: border-box; box-sizing: border-box; } #jetpack_summary_widget .inside { margin: 0; padding: 0; font-family: "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; } #jetpack_summary_widget .stats, #jetpack_summary_widget .widgets, #jetpack_summary_widget .wpcom-connect { padding: .75em; } #jetpack_summary_widget .wpcom-connect { background: #fafafa; text-align: center; } #jetpack_summary_widget .wpcom-connect .jp-emblem { padding: 5px 0 0 0; } #jetpack_summary_widget .wpcom-connect svg { width: 40px; height: 40px; } #jetpack_summary_widget .wpcom-connect svg path { fill: #81a844; } #jetpack_summary_widget .wpcom-connect .jp-emblem, #jetpack_summary_widget .wpcom-connect h3, #jetpack_summary_widget .wpcom-connect p { width: 100%; } #jetpack_summary_widget .wpcom-connect h3 { font-size: 1.25em; font-weight: 400; } #jetpack_summary_widget .wpcom-connect p { color: #777; margin-top: 0; padding: 0 15px; } #jetpack_summary_widget .wpcom-connect .actions { text-align: center; padding: 15px 0 10px 0; } #jetpack_summary_widget .wpcom-connect .actions small { display: block; } #jetpack_summary_widget .wpcom-connect .actions small a { color: #999; } #jetpack_summary_widget .button-jetpack { background: #81a844; border-color: #658435; color: white; box-shadow: inset 0 1px 0 #a5c672, 0 1px 0 rgba(0, 0, 0, 0.15); } #jetpack_summary_widget .button-jetpack:hover, #jetpack_summary_widget .button-jetpack:focus { background: #73963d; border-color: #57722e; color: white; box-shadow: inset 0 1px 0 #9abf60; } #jetpack_summary_widget .button-jetpack:focus { box-shadow: inset 0 1px 0 #9abf60, 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); } #jetpack_summary_widget .button-jetpack:active { background: #658435; border-color: #57722e; color: white; box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5), 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8); } #jetpack_summary_widget .button-jetpack[disabled], #jetpack_summary_widget .button-jetpack:disabled, #jetpack_summary_widget .button-jetpack.button-primary-disabled, #jetpack_summary_widget .button-jetpack.disabled { color: #cdd1c7 !important; background: #6b8b38 !important; border-color: #57722e !important; text-shadow: none !important; } #jetpack_summary_widget footer { background: #fafafa; padding: .75em; overflow: hidden; border-top: 1px solid #ccc; } #jetpack_summary_widget footer .protect, #jetpack_summary_widget footer .akismet { width: 50%; float: left; text-align: left; } #jetpack_summary_widget footer h3 { font-size: 1.5em; font-weight: normal; margin: 0; padding: 0; } #jetpack_summary_widget footer p { margin: 0; padding: 0; } #jetpack_summary_widget footer section { margin: 0; padding: 0; text-align: center; } /*# sourceMappingURL=dashboard-widget.css.map */plugins/jetpack/css/jetpack-admin-jitm.min.css.map0000755000312500031250000000202712651056012022570 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/jetpack-admin-jitm.scss"],"names":[],"mappings":"AAEA,SACC,kBACA,CAAA,cACA,CAAA,wBACA,CAAA,aACA,CAAA,kBACA,CAAA,wBACA,CAAA,iBAGA,CAAA,8BACC,WACA,CAAA,aAED,CAAA,cACC,WAGD,CAAA,2BACE,2BAGF,CAAA,kBACC,gBAED,CAAA,mBACC,WACA,CAAA,WACA,CAAA,uBAGD,CAAA,YACC,WACA,CAAA,WAGD,CAAA,aACC,aAGD,CAAA,iBACC,SACA,CAAA,oBACA,CAAA,WACA,CAAA,wBACC,WACA,CAAA,yBACA,CAAA,eAIF,CAAA,UACC,cACA,CAAA,gBAGD,CAAA,mBACC,eACA,CAAA,WACA,CAAA,UAGD,CAAA,cACC,aAGD,CAAA,sCACC,eAGD,CAAA,yBACC,+BACC,WAID,CAAA,mBACC,WACA,CAAA,WACA,CAAA,iBAED,CAAA,UACC,qBAED,CAAA,YACC,SACA,CAAA,SAED,CAAA,kBACC,aAAa,CAAA,AAIf,CAAA,0BA7FD,SA8FE,6BAEA,CAAA,sCACC,iBACA,CAAA,iBAAkB,CAAA,AAIpB,CAAA,yBACC,oBACC,yBAAyB,CAAA,AAQ3B,CAAA,0BADD,0BAC8B,sBAAsB,CAAA,AAIpD,CAAA,gEACC,QAKA,CAAA,yCAEC,qBACC,cACA,CAAA,oBACA,CAAA,kBAEA,CAAA,+BACC,wBAGD,CAAA,yBACC,UACA,CAAA,eACA,CAAA,eAGD,CAAA,2BACC,kBACA,CAAA,UAAW,CAAA,AAMd,CAAA,yCAEC,qBACC,aACA,CAAA,cACA,CAAA,gBAEA,CAAA,yBACC,gBACA,CAAA,SACA,CAAA,gBACA,CAAA,iBAIF,CAAA,4BACC,cAAc,CAAA,CAAA","file":"jetpack-admin-jitm.min.css"}plugins/jetpack/css/jetpack-banners-rtl.min.css.map0000755000312500031250000000423112651056012022765 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/atoms/_buttons.scss","../scss/_utilities/mixins/_breakpoint.scss","../scss/organisms/_banners.scss"],"names":[],"mappings":"AAIA,0BAEC,uCAED,CAAA,8BACQ,CAAA,+BAEP,qBAAS,CAAA,iBACT,CAAA,qCACM,CAAA,aAAA,CAAA,4DAEN,CAAA,qCAGA,CAAA,kBAAA,CAAA,iBAAA,CAAA,+CAGA,cAAA,CAAA,uFAKA,WAAA,CAAA,kBAAA,CAAA,6CAKD,mBAEC,CAAA,WAAmB,CAAA,oBAGnB,mBAAA,CAAA,aACQ,CAAA,4BAER,cAAA,CAAA,qDAKA,mBAAU,CAAA,UACC,CAAA,4BAEV,mBACC,CAAA,UAAA,CAAA,iEAMM,CAAA,yDACC,CAAA,iBAET,qBAAM,CAAA,iBAAA,CAAA,oDAEI,CAAA,UACV,CAAA,iEAKA,CAAA,kBAAA,CAAA,SACQ,CAAA,iBAER,CAAA,4DAGa,CAAA,oDAEX,CAAA,yBAGO,WAER,CAAA,+CAIA,WAAA,CAAA,kBAEC,CAAA,4DAKQ,CAAA,oDAIT,CAAA,wBAEA,QAAA,CAAA,wDACY,CAAA,gDAGb,CAAA,8BAGC,SAAU,CAAA,wBAGH,WACD,CAAA,oBC7EL,CAAA,iBDuBH,CAAA,QAAA,CAAA,gBAyDa,CAAA,UAEX,CAAA,WAAA,CAAA,qBAEQ,CAAA,oEAMP,CAAA,iCAnEH,CAAA,oBAuEE,CAAA,uBACA,WAEA,CAAA,iBAAA,CAAA,KACC,CAAA,OACA,CAAA,UAAY,CAAA,WACZ,CAAA,0BAAiB,kBAAA,mBAAA,CAAA,wBAAA,SAAA,CAAA,UAAA,CAAA,WAAA,CAAA,CAAA,yBAAA,yBAAA,MAAA,CAAA,CAAA,yBAAA,kBAAA,mBAAA,CAAA,eAAA,CAAA,wBAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,CAAA;AAIpB,cACC,qBACA,CAAA,WACA,CAAA,iBACA,CAAA,iCACA,CAAA,aACA,CAAA,mDACA,CAAA,qCACA,CAAA,kBACA,CAAA,YACA,CAAA,iBAEA,CAAA,qBACC,cAED,CAAA,uCAEC,WACA,CAAA,kBAED,CAAA,oBACC,YE1JF,CAAA,mBACC,mBACA,CAAA,WACA,CAAA,UACA,CAAA,eACA,CAAA,kBACA,CAAA,iBACA,CAAA,iBAEA,CAAA,yBACC,SACA,CAAA,UACA,CAAA,mEAAqE,CAAA,WACzD,CAAA,mBACQ,CAAA,iBACF,CAAA,WACX,CAAA,UACA,CAAA,SACE,CAAA,qBAGV,WACQ,CAAA,sBAER,SACS,CAAA,SACC,CAAA,8CAGV,YACY,CAAA,eACK,CAAA,sDAER,SACE,CAAA,gEAEQ,gBACD,CAAA,iBACE,CAAA,kEACiD,CAAA,eACnD,CAAA,4DAMhB,CAAA,oDAAA,CAAA,6IAOA,6DAAA,CAAA,oDAIE,CAAA,uEAID,aAAA,CAAA,OAAA,CAAA,wDAKD,CAAA,gDAEC,CAAA,6EAMH,SACC,CAAA,uEAKC,SAAA,CAAA,gBACC,CAAA,UACA,CAAA,WAAS,CAAA,mDAGV,UAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,4DAGA,cAAA,CAAA,eAEC,CAAA,8BAIH,CAAA,2DAGa,YAEZ,CAAA,4DAIC,UAAA,CAAA,YAAA,CAAA,2CAEC,cACA,CAAA,WACA,CAAA,eAKJ,CAAA,6CAEE,SAAA,CAAA,SAAA,CAAA,oDAGA,WACC,CAAA,aACA,CAAA,cACA,CAAA,kBAEA,CAAA,0BAAA,+CAGC,WAAc,CAAA,2CAEd,WACC,CAAA,eACA,CAAA,iBAOL,CAAA,6CAEE,YAAA,CAAA,cAAA,CAAA,eAA6C,CAAA,oDAGnC,eACG,CAAA,gBAGZ,CAAA,CAAA,yBAAA,iEACc,eAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,uEAAA,aAAA,CAAA,CAAA","file":"jetpack-banners-rtl.min.css"}plugins/jetpack/css/jetpack-banners.min.css0000644000312500031250000001371412651056012021415 0ustar eacbforgeacbforg#message.jp-identity-crisis{display:table;padding:0;background:#d94f4f;border:none;color:#fff}#message.jp-identity-crisis .service-mark{display:table-cell;vertical-align:middle;padding:0 20px}#message.jp-identity-crisis .service-mark:before{font-family:"jetpack" !important;content:"\f102";font-size:40px;line-height:1;color:#fff}#message.jp-identity-crisis .jp-id-banner__content{display:table;padding:10px 10px 10px 0}#message.jp-identity-crisis .jp-id-banner__content .success-notice{color:#fff}#message.jp-identity-crisis .jp-id-banner__content .banner-content{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .banner-content p{margin:0;font-size:13px;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content p strong{text-decoration:none;font-weight:600;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content a{display:inline-block;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a{display:inline-block;margin:10px 0 0 0;padding:0 0 1px 0;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a:hover{color:#fff;border-bottom:1px solid rgba(255,255,255,0.8)}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group .idc-separator{margin:0 6px}#message.jp-banner{position:relative;margin-bottom:26px;padding:17px 44px 17px 0;border:none;background:#81a844;color:#fff;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box}#message.jp-banner:after{content:'';position:absolute;bottom:0;right:-100px;width:100%;height:50px;background:url("../images/the-footcloud.svg") right bottom no-repeat;pointer-events:none;z-index:1}@media (max-width: 830px){#message.jp-banner:after{display:none}}#message.jp-banner a{color:#fff}#message.jp-banner h2{display:block;margin:0;padding:0;color:#fff;font-size:20px;line-height:1.3;font-weight:normal}#message.jp-banner h2+p{margin-top:10px}.jp-banner a{padding:0}#message .jp-banner__content{color:#dfffcc;padding:0 0 0 20px;-moz-box-sizing:border-box;box-sizing:border-box;width:50%}@media (max-width: 768px){#message .jp-banner__content{width:100%}#message .jp-banner__content.is-connection{width:100%}}#message .jp-banner__content a{text-decoration:underline}#message .jp-banner__content p{margin:0;padding:0;line-height:1.5}#message .jp-banner__action-container{position:absolute;top:0;right:0;padding-left:20px;width:50%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box}@media (max-width: 768px){#message .jp-banner__action-container{position:static;margin:14px 0 9px;width:100%}}#message .jp-banner__action-container.is-full-width{position:static;margin:14px 0 9px;width:100%;height:auto}@media (max-width: 768px){#message .jp-banner__action-container.is-connection{width:100%}}#message.is-opt-in .jp-banner__content{width:60%}#message.is-opt-in .jp-banner__action-container{width:40%}@media (max-width: 768px){#message.is-opt-in .jp-banner__content,#message.is-opt-in .jp-banner__action-container{width:100%}}#message .jp-banner__button{display:inline-block;position:absolute;top:50%;right:125px;margin-top:-23px;padding:0.57143em 0.85714em 0.38095em 0.57143em;border-radius:6px;-moz-box-sizing:border-box;box-sizing:border-box;background:#518d2a;box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2);font:400 1.5em/1 'Open Sans', Helvetica, sans-serif;transition:all .1s ease-in-out}@media (max-width: 1175px){#message .jp-banner__button{font-size:1.25em;right:110px}}@media (max-width: 830px){#message .jp-banner__button{right:45px}}@media (max-width: 768px){#message .jp-banner__button{position:static;margin:0}}@media (max-width: 420px){#message .jp-banner__button{display:block;width:100%;text-align:center;font-size:1.1em;right:0}}#message .jp-banner__button:hover,#message .jp-banner__button:focus{box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2)}#message .jp-banner__button:active{outline:none;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px);box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.2)}#message .jp-banner__button:active:after{top:-2px}#message .jp-banner__button:before{content:'';display:inline-block;position:relative;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%;top:-2px;margin-right:13px;width:22px;height:22px}@media (max-width: 420px){#message .jp-banner__button:before{display:none}}#message .is-full-width .jp-banner__button{position:static;margin:0}#message .is-opt-in .jp-banner__button:before{content:"\f147";width:20px;height:20px;background:none;font:normal 20px/1 Dashicons}#message .jp-banner__dismiss{position:absolute;top:0;right:0;width:44px;height:44px;text-align:center;z-index:99}#message .jp-banner__dismiss:before{color:#a7c979;content:'\f158';font:normal 20px/44px 'dashicons'}#message .jp-banner__dismiss:hover{opacity:0.8}#message .jp-banner__dismiss:active{opacity:1;outline:none}#message.jp-banner.protect-error{background:#fff;border-left:4px #d94f4f solid}#message.jp-banner.protect-error .jp-banner__content{color:#444}#message.jp-banner.protect-error .jp-banner__content h2,#message.jp-banner.protect-error .jp-banner__content a{color:#d94f4f}#message.jp-banner.protect-error .jp-banner__content a:hover{color:#d43a3a}#message.jp-banner.protect-error .jp-banner__button{background:#d94f4f;box-shadow:none;color:#fff}#message.jp-banner.protect-error .jp-banner__button:hover,#message.jp-banner.protect-error .jp-banner__button:focus,#message.jp-banner.protect-error .jp-banner__button:active{box-shadow:none}#message.jp-banner.protect-error .jp-banner__button:hover{background:#d43a3a}#message.jp-banner.protect-error .jp-banner__dismiss:before{color:#a0a5aa} /*# sourceMappingURL=jetpack-banners.min.css.map */plugins/jetpack/css/jetpack-banners-rtl.min.css0000644000312500031250000001370512651056012022214 0ustar eacbforgeacbforg#message.jp-identity-crisis{display:table;padding:0;background:#d94f4f;border:none;color:#fff}#message.jp-identity-crisis .service-mark{display:table-cell;vertical-align:middle;padding:0 20px}#message.jp-identity-crisis .service-mark:before{font-family:"jetpack" !important;content:"\f102";font-size:40px;line-height:1;color:#fff}#message.jp-identity-crisis .jp-id-banner__content{display:table;padding:10px 0 10px 10px}#message.jp-identity-crisis .jp-id-banner__content .success-notice{color:#fff}#message.jp-identity-crisis .jp-id-banner__content .banner-content{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .banner-content p{margin:0;font-size:13px;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content p strong{text-decoration:none;font-weight:600;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content a{display:inline-block;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a{display:inline-block;margin:10px 0 0 0;padding:0 0 1px 0;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a:hover{color:#fff;border-bottom:1px solid rgba(255,255,255,0.8)}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group .idc-separator{margin:0 6px}#message.jp-banner{position:relative;margin-bottom:26px;padding:17px 0 17px 44px;border:none;background:#81a844;color:#fff;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box}#message.jp-banner:after{content:'';position:absolute;bottom:0;left:-100px;width:100%;height:50px;background:url("../images/the-footcloud.svg") left bottom no-repeat;pointer-events:none;z-index:1}@media (max-width: 830px){#message.jp-banner:after{display:none}}#message.jp-banner a{color:#fff}#message.jp-banner h2{display:block;margin:0;padding:0;color:#fff;font-size:20px;line-height:1.3;font-weight:normal}#message.jp-banner h2+p{margin-top:10px}.jp-banner a{padding:0}#message .jp-banner__content{color:#dfffcc;padding:0 20px 0 0;-moz-box-sizing:border-box;box-sizing:border-box;width:50%}@media (max-width: 768px){#message .jp-banner__content{width:100%}#message .jp-banner__content.is-connection{width:100%}}#message .jp-banner__content a{text-decoration:underline}#message .jp-banner__content p{margin:0;padding:0;line-height:1.5}#message .jp-banner__action-container{position:absolute;top:0;left:0;padding-right:20px;width:50%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box}@media (max-width: 768px){#message .jp-banner__action-container{position:static;margin:14px 0 9px;width:100%}}#message .jp-banner__action-container.is-full-width{position:static;margin:14px 0 9px;width:100%;height:auto}@media (max-width: 768px){#message .jp-banner__action-container.is-connection{width:100%}}#message.is-opt-in .jp-banner__content{width:60%}#message.is-opt-in .jp-banner__action-container{width:40%}@media (max-width: 768px){#message.is-opt-in .jp-banner__content,#message.is-opt-in .jp-banner__action-container{width:100%}}#message .jp-banner__button{display:inline-block;position:absolute;top:50%;left:125px;margin-top:-23px;padding:0.57143em 0.57143em 0.38095em 0.85714em;border-radius:6px;-moz-box-sizing:border-box;box-sizing:border-box;background:#518d2a;box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2);font:400 1.5em/1 'Open Sans', Helvetica, sans-serif;transition:all .1s ease-in-out}@media (max-width: 1175px){#message .jp-banner__button{font-size:1.25em;left:110px}}@media (max-width: 830px){#message .jp-banner__button{left:45px}}@media (max-width: 768px){#message .jp-banner__button{position:static;margin:0}}@media (max-width: 420px){#message .jp-banner__button{display:block;width:100%;text-align:center;font-size:1.1em;left:0}}#message .jp-banner__button:hover,#message .jp-banner__button:focus{box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2)}#message .jp-banner__button:active{outline:none;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px);box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.2)}#message .jp-banner__button:active:after{top:-2px}#message .jp-banner__button:before{content:'';display:inline-block;position:relative;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%;top:-2px;margin-left:13px;width:22px;height:22px}@media (max-width: 420px){#message .jp-banner__button:before{display:none}}#message .is-full-width .jp-banner__button{position:static;margin:0}#message .is-opt-in .jp-banner__button:before{content:"\f147";width:20px;height:20px;background:none;font:normal 20px/1 Dashicons}#message .jp-banner__dismiss{position:absolute;top:0;left:0;width:44px;height:44px;text-align:center;z-index:99}#message .jp-banner__dismiss:before{color:#a7c979;content:'\f158';font:normal 20px/44px 'dashicons'}#message .jp-banner__dismiss:hover{opacity:0.8}#message .jp-banner__dismiss:active{opacity:1;outline:none}#message.jp-banner.protect-error{background:#fff;border-right:4px #d94f4f solid}#message.jp-banner.protect-error .jp-banner__content{color:#444}#message.jp-banner.protect-error .jp-banner__content h2,#message.jp-banner.protect-error .jp-banner__content a{color:#d94f4f}#message.jp-banner.protect-error .jp-banner__content a:hover{color:#d43a3a}#message.jp-banner.protect-error .jp-banner__button{background:#d94f4f;box-shadow:none;color:#fff}#message.jp-banner.protect-error .jp-banner__button:hover,#message.jp-banner.protect-error .jp-banner__button:focus,#message.jp-banner.protect-error .jp-banner__button:active{box-shadow:none}#message.jp-banner.protect-error .jp-banner__button:hover{background:#d43a3a}#message.jp-banner.protect-error .jp-banner__dismiss:before{color:#a0a5aa} /*# sourceMappingURL=jetpack-banners.min.css.map */plugins/jetpack/css/jetpack-admin-jitm.min.css0000644000312500031250000000363212651056012022014 0ustar eacbforgeacbforg.jp-jitm{border-radius:2px;max-width:100%;margin:2em auto 1em auto;padding:.85em;background:#fcfcfc;border:1px solid #dedede;text-align:center}.jp-jitm:before,.jp-jitm:after{content:"";display:table}.jp-jitm:after{clear:both}#screen-meta-links+.jp-jitm{margin:3em 1.5385em 0 auto}.jp-jitm .activate{margin-top:.5em}.jp-jitm .jp-emblem{width:25px;height:25px;margin:.40em 1em 0 auto}.jp-jitm svg{width:100%;height:100%}.jp-jitm path{fill:#8cc258}.jp-jitm .dismiss{margin:0;text-decoration:none;float:right}.jp-jitm .dismiss:before{color:#666;font:400 15px/1 dashicons;content:'\f158'}.jp-jitm p{font-size:1em;line-height:165%}.jp-jitm .j-spinner{margin:8px 0 0;height:17px;width:17px}.jp-jitm .hide{display:none}form[name=post]>.jp-jitm:first-of-type{margin-top:1em}@media (min-width: 800px){.jp-jitm .jp-emblem,.jp-jitm p{float:left}.jp-jitm .jp-emblem{width:20px;height:20px;margin-right:.5em}.jp-jitm p{margin:.40em 1em 0 0}.jp-jitm p+p{margin:0;padding:0}.jp-jitm .activate{margin-top:0}}@media (max-width: 1100px){.jp-jitm{margin:2.5em .75em .5em .5em}form[name=post]>.jp-jitm:first-of-type{margin-left:auto;margin-right:auto}}@media (max-width: 800px){.jp-jitm .jp-emblem{margin:.40em auto 0 auto}}@media (min-width: 1100px){.update-core-php .jp-jitm{margin:3em 2em 0 auto}}.jetpack-connected .media-modal-content .uploader-inline-content{top:20%}@media only screen and (min-width: 800px){.media-menu .jp-jitm{margin:10px 0;padding:5px 5px 15px;border-width:1px 0}.media-menu .jp-jitm .jp-emblem{margin:20px 10px 0 15px}.media-menu .jp-jitm .msg{width:75%;text-align:left;margin:0 0 10px}.media-menu .jp-jitm .msg+p{text-align:center;width:100%}}@media only screen and (max-width: 900px){.media-menu .jp-jitm{display:none;margin:.5em 3%;border-width:1px}.media-menu .jp-jitm .msg{margin-top:20px;width:88%;margin-left:auto;margin-right:auto}.media-menu.visible .jp-jitm{display:block}} /*# sourceMappingURL=jetpack-admin-jitm.min.css.map */plugins/jetpack/css/jetpack-icons.css0000644000312500031250000000221412651056012020307 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.eot"); src: url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/jetpack/jetpack.woff") format("woff"), url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"), url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio: 0) { @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); } } li.toplevel_page_jetpack .wp-menu-image:before { font-family: 'jetpack' !important; content: '\f102'; } #menu-posts-feedback .wp-menu-image:before { font-family: dashicons !important; content: '\f175'; } #adminmenu #menu-posts-feedback div.wp-menu-image { background: none !important; background-repeat: no-repeat; } @media (max-width: 900px) { .auto-fold #adminmenu a.toplevel_page_jetpack { height: auto; } } /*# sourceMappingURL=jetpack-icons.css.map */plugins/jetpack/css/jetpack-admin.min.css0000644000312500031250000014574212651056012021064 0ustar eacbforgeacbforg.j-row{width:100%;margin:0 auto}.j-row:before,.j-row:after{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:0.85em;width:100%;float:left;position:relative}@media only screen{.j-sm-1{width:8.33333%}.j-sm-2{width:16.66667%}.j-sm-3{width:25%}.j-sm-4{width:33.33333%}.j-sm-5{width:41.66667%}.j-sm-6{width:50%}.j-sm-7{width:58.33333%}.j-sm-8{width:66.66667%}.j-sm-9{width:75%}.j-sm-10{width:83.33333%}.j-sm-11{width:91.66667%}.j-sm-12{width:100%}}@media (min-width: 530px){.j-md-1{width:8.33333%}.j-md-2{width:16.66667%}.j-md-3{width:25%}.j-md-4{width:33.33333%}.j-md-5{width:41.66667%}.j-md-6{width:50%}.j-md-7{width:58.33333%}.j-md-8{width:66.66667%}.j-md-9{width:75%}.j-md-10{width:83.33333%}.j-md-11{width:91.66667%}.j-md-12{width:100%}}@media (min-width: 782px){.j-lrg-1{width:8.33333%}.j-lrg-2{width:16.66667%}.j-lrg-3{width:25%}.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-9{width:75%}.j-lrg-10{width:83.33333%}.j-lrg-11{width:91.66667%}.j-lrg-12{width:100%}}body,button,input,select,textarea{color:#222;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:#222;clear:both}a{color:#0d72b2;transition:color .2s;text-decoration:none}a:visited{color:#0d72b2}a:hover{color:#0f92e5}a:focus{outline:thin dotted}address{margin:0 0 1.5em}abbr[title],acronym{cursor:help}ins{background:#eee;text-decoration:none}dt{font-weight:700}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:middle}@-webkit-keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}@keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#efefef;font:800 0.9285714286em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 1px 1px rgba(0,0,0,0.2);background:#6f7476;border-radius:3px}.jp-button:visited,.jp-button--settings:visited{color:#efefef}.jp-button:hover,.jp-button--settings:hover,.jp-button:focus,.jp-button--settings:focus{color:#fff;background:#57972d}.jp-button:active,.jp-button--settings:active{background:#57972d;opacity:0.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:hover,.jp-button--settings:focus{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365A1F, inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:0.64286em 0.85714em 0.53571em;color:#fff;font:400 20px/1 "proxima-nova", 'Open Sans', Helvetica, sans-serif;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:visited{color:#fff}.download-jetpack:hover,.download-jetpack:focus{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:active{top:6px;box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:'';display:inline-block;position:relative;top:-2px;margin-right:13px;width:30px;height:30px;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%}.download-jetpack:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%}@media (max-width: 1147px){.download-jetpack{font-size:1.28571em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width: 900px){.download-jetpack:active{top:0}}@media (max-width: 530px){.download-jetpack{font-size:1.21429em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-right:9px}}#searchsubmit{display:inline-block;border:none;position:relative;padding:0.71429em 1.5em;color:#efefef;font:800 0.8em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 1px 1px rgba(0,0,0,0.2);background:#6f7476;outline:none;border-radius:3px}#searchsubmit:visited{color:#efefef}#searchsubmit:hover,#searchsubmit:focus{color:#fff;background:#2aa0d5}#searchsubmit:active{opacity:0.7}@font-face{font-family:'automatticons';src:url("../_inc/fonts/automatticons/automatticons.eot");src:url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/automatticons/automatticons.woff") format("woff"),url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"),url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.eot");src:url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/jetpack/jetpack.woff") format("woff"),url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"),url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio: 0){@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg")}}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:left}.nav-horizontal ul{margin:0;padding:0}*,*:before,*:after{-moz-box-sizing:border-box;box-sizing:border-box}::-moz-selection{background:#91bd51;color:#fff;text-shadow:none}::selection{background:#91bd51;color:#fff;text-shadow:none}#wpbody-content{padding-bottom:0}#wpcontent{margin-left:160px;padding:0}ul#adminmenu a.toplevel_page_jetpack:after{border-right-color:#81a844}.folded #wpcontent{margin-left:36px}.jp-content{background:#f9f9f9;margin:0;height:auto;min-height:100%;width:100%;width:100%;-webkit-font-smoothing:antialiased}.jp-content .wrapper{background:#f9f9f9}@media (max-width: 900px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-left:36px;padding-left:0}}@media (max-width: 782px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-left:0}}@media (max-width: 782px){.configure .frame.top.fixed{padding-left:0}}.wrap.inner,.page-content{max-width:950px;margin:0 auto}.wrap.inner li,.page-content li{line-height:23px}@media (max-width: 530px){.page-content{margin-top:0}}@media (max-width: 1147px){.wrap.inner{background:#f9f9f9;padding:15px}}@media (max-width: 530px){.wrap.inner{margin-top:1.71429em}}.jetpack_page_jetpack_modules .header-nav{margin:0}.jetpack_page_jetpack_modules .page-content{max-width:1200px;min-height:500px;margin:0}.page-content.about{position:relative;z-index:10}@media (max-width: 1147px){.page-content.about{background:#f9f9f9;padding:15px}}@media (max-width: 1147px){.page-content.configure{background:#f9f9f9}}.footer nav{max-width:550px;margin:0 auto}.header{left:0;right:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 0.71429em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-right:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:normal}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-left:15px}.main-nav{float:left}.main-nav li{margin:0}@media (max-width: 900px){.main-nav{font-size:13px}}.user-nav{float:right}.user-nav li{margin:0}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #screen-options-link-wrap,.jetpack-pagestyles #contextual-help-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.masthead{position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #8eb74e)}.masthead.hasbutton .flyer{bottom:-270px}.masthead.hasbutton .subhead{margin-top:175px}@media (max-width: 530px){.masthead.hasbutton .subhead{margin-top:105px;padding:0}}.masthead h1,.masthead h2{margin:0 auto}.masthead h1{padding:2.5em 0 1.11111em;max-width:21.94444em;color:#fff;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;text-shadow:0 1px 1px rgba(0,0,0,0.12);z-index:3}.masthead h1+.flyby{margin-top:180px}@media (max-width: 1147px){.masthead h1{padding-top:1.83333em;font-size:2.14286em}}@media (max-width: 782px){.masthead h1{max-width:600px;font-size:28px}}@media (max-width: 530px){.masthead h1{margin:0 15px;padding:31px 0 15px 0;font-size:21px;font-weight:400}}.jetpack-connected .masthead h1{margin-bottom:33px;max-width:600px}.flyer{position:absolute;bottom:-200px;left:4%;z-index:1;-webkit-animation:flyer 3.4s 2s ease-in-out;animation:flyer 3.4s 2s ease-in-out}.flyer:nth-child(2){left:49%;width:120px;height:131px;-webkit-animation-delay:4.6s;animation-delay:4.6s;-webkit-animation-duration:2.4s;animation-duration:2.4s}.flyer:nth-child(3){left:23%;width:60px;height:66px;-webkit-animation-delay:5.8s;animation-delay:5.8s;-webkit-animation-duration:4.5s;animation-duration:4.5s}.subhead{position:relative;margin-top:105px;padding:4em 0;background:#f9f9f9;z-index:2}.subhead h2{max-width:460px;color:#5d6d74;font:400 1.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 1px #fff}@media (max-width: 900px){.subhead h2{max-width:428px;font-size:20px}}@media (max-width: 530px){.subhead h2{display:none}}.subhead:after{content:'';position:absolute;bottom:100%;left:0;margin-bottom:-1px;width:100%;height:228px;background:url("../images/the-cloud.svg") center bottom repeat-x;pointer-events:none;z-index:-1}@media (max-width: 1147px){.subhead{margin-top:122px;padding:70px 0 49px}.subhead:after{background-size:160% auto}}@media (max-width: 900px){.subhead{margin-top:122px;padding:70px 0 49px}}@media (max-width: 530px){.subhead{margin-top:83px;padding:47px 15px 39px}}.clouds-sm{height:100px;position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #89b348)}.clouds-sm:after{content:'';position:absolute;bottom:0;left:0;margin-bottom:-1px;width:100%;height:137px;background:url("../images/the-cloud-sm.svg") center bottom repeat-x;pointer-events:none;z-index:2}@media (max-width: 530px){.clouds-sm{height:90px}}.featured{border-top:1px solid #d6d6d6;border-bottom:1px solid #d6d6d6;background:#fff;position:relative;padding:2.0em 1em 4.6em 1em;text-align:center;z-index:1}.featured:before{content:"";display:block;position:absolute;top:0;height:100%;z-index:-1}.featured .features,.featured .modules{margin:0 auto;display:inline-block}@media (max-width: 530px){.featured{display:none}}.featured h2,.module-grid h2{margin-top:1em;color:#5d6d74;font:300 2em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-align:center}@media (max-width: 900px){.featured h2,.module-grid h2{font-size:30px}}@media (max-width: 782px){.featured h2,.module-grid h2{font-size:28px}}.features,.modules{margin:0 -5px}.feature,.module{position:relative;float:left;margin:0 5px 10px;width:310px;transition:all .2s ease-in-out}@media (max-width: 1147px){.feature,.module{margin:.75% 0 .75% 1.5%;width:32.333333%;transition:none}.feature:nth-child(3n+1),.module:nth-child(3n+1){margin-left:0}.feature:hover,.module:hover{top:0;box-shadow:none}}.feature{-webkit-transform:translateZ(0);transform:translateZ(0)}.feature h3{margin:0 0 0.58824em;color:#697b84;font-size:1.21429em;line-height:1em;font-weight:800}.feature p{margin:0;color:#6e818a}.feature:before{content:'';position:absolute;bottom:0;left:0;width:100%;height:10px;background:rgba(0,0,0,0.02);z-index:-1;-webkit-transform:translateZ(0);transform:translateZ(0);transition:all .2s ease-in-out}.feature:hover{-webkit-transform:translateY(-5px);-ms-transform:translateY(-5px);transform:translateY(-5px)}.feature:hover h3{color:#1a8dba}.feature:hover .feature-img{border:1px solid #ccc;border-bottom:none}.feature:hover .no-border{border:none}.feature:hover:before{-webkit-transform:translateY(5px);-ms-transform:translateY(5px);transform:translateY(5px)}@media (max-width: 1147px){.feature:hover h3{color:#6e818a}.feature:hover .feature-img{border:1px solid #ddd;border-bottom:none}.feature:hover .no-border{border:none}}.feature .feature-img{padding-top:52%;width:100%;height:auto;border:1px solid #ddd;border-bottom:none}.feature .feature-img.custom-css{background:url("../images/custom-css.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.custom-css{background-image:url("../images/custom-css@2x.jpg")}}.feature .feature-img.wordpress-connect{background:url("../images/wordpress-connect.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-connect{background-image:url("../images/wordpress-connect@2x.jpg")}}.feature .feature-img.wordpress-stats{background:url("../images/wordpress-stats.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-stats{background-image:url("../images/wordpress-stats@2x.jpg")}}.feature .feature-img.no-border{border:none;padding-bottom:1px}.feature-description{display:block;padding:1em 1.07143em 1.07143em;border:1px solid #ddd;background:#f5f5f5}.feature:hover .feature-description{background:#fff;border-color:#ccc}@media (max-width: 1147px){.feature:hover .feature-description{border:1px solid #ddd;background:#f5f5f5}}@media (max-width: 900px){.feature-description{min-height:115px}}.cat{clear:both;margin-bottom:23px}.cat h3{font-size:24px;font-weight:300;margin:0 0 13px 6px;text-align:left}.cat .clear{clear:both}.module-grid{text-align:center}.module-grid h2{margin:1em 0}@media (max-width: 530px){.module-grid h2{padding-top:16px;margin-top:0;font-size:25px}}#module-search{position:relative;width:100%;max-width:40.71429em;margin:0 auto 1.07143em;overflow:hidden}#jetpack-search{margin:0;padding:11px 16px 11px 16px;width:100%;border:1px solid #c9ced0;border-radius:3px;background:#fff;color:#5c6671;line-height:1.3}#jetpack-search:focus{color:#5c6671;outline:none}#jetpack-search:focus+label{background:transparent;opacity:0}#jetpack-search::-webkit-input-placeholder{color:#a8acae}#jetpack-search :-moz-placeholder{color:#a8acae}#jetpack-search::-moz-placeholder{color:#a8acae}#jetpack-search:-ms-input-placeholder{color:#a8acae}#jetpack-search+label{position:absolute;top:1px;right:1px;bottom:1px;width:48px;color:#abafb1;text-indent:-9999px;pointer-events:none;border-radius:3px;transition:all .2s ease-in-out}#jetpack-search+label:after{content:'\f400';position:absolute;right:11px;text-align:right;top:4px;font-size:1.71429em;font-weight:normal;font-family:"genericons"}.jp-filter{margin-bottom:2.85714em;color:#6f7476}.jp-filter a{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#aaa;font:600 0.92857em/1 "Open Sans", Helvetica, Arial, sans-serif;text-shadow:0 1px 1px rgba(255,255,255,0.2);background:#eee;border-radius:3px;background-clip:padding-box}.jp-filter a.selected,.jp-filter a:hover,.jp-filter a:focus{color:#efefef;text-shadow:0 1px 1px rgba(0,0,0,0.2);background:#6f7476}@media (max-width: 530px){.jp-filter a{padding:0.76em 1em}}.module{display:block;padding:0.71429em 1.07143em 1em;text-align:left;border:1px solid #dae0e2;background:#fff;box-shadow:0 0 0 rgba(0,0,0,0.03);transition:opacity 2s ease-in}.module:hover{border-color:#8ac9e8;background:#f8fcfe}.module h3{cursor:pointer;margin:0 0 0.5em;color:#1a8dba;font-size:1.14286em;line-height:1.4em;font-weight:700}.module p{margin:0;color:#686f72;font-size:0.85714em}.module:hover,.module:focus{border-color:#8ac9e8;background:#f8fcfe}.module.active{border-color:#2ea2cc;box-shadow:inset 4px 0 0 #2ea2cc}.module.active:hover{border-color:#69bedd;box-shadow:inset 4px 0 0 #69bedd}.module .button,.module .button-primary{margin-top:15px}@media (max-width: 530px){.module .configure,.module .activate{display:block;width:100%;text-align:center}.module .button,.module .button-primary{width:50%}.module .button-primary{line-height:normal;padding:6px 14px;height:auto;font-size:14px}}@media screen and (max-width: 450px){.module .button,.module .button-primary{margin:20px auto 0 auto}.module .button.alignright,.module .button-primary.alignright{float:none}}@media (max-width: 1147px){.cat .module:nth-child(3n+1){margin:.75% 0 .75% 1.5%}.cat .module:nth-child(3n - 1){margin-left:0}}@media (max-width: 900px){.cat .module{margin:1% 0 1% 2%}.cat .module:nth-child(2n+1){margin:1% 0 1% 2%}.cat .module:nth-child(2n+0){margin-left:0}}@media (max-width: 530px){.cat .module{margin:5px 0}.cat .module:nth-child(2n+1){margin-left:0}.cat .module:nth-child(2n+0){margin-left:0}}@media (max-width: 900px){.module{margin:1% 0 1% 2%;width:49%}.module:nth-child(3n+1){margin-left:2%}.module:nth-child(2n+1){margin-left:0}}@media (max-width: 530px){.module{margin:5px 0;width:100%}.module:nth-child(3n+1){margin-left:0}.module:nth-child(2n+1){margin-left:0}}.new{position:relative}.new:after{content:'NEW';position:absolute;top:-8px;right:-8px;padding-top:10px;width:32px;height:32px;color:#fff;font-size:8px;font-weight:800;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background:url("../images/new-badge.svg") center center no-repeat;background-size:100%;border-radius:50%}.paid{display:inline-block;position:relative;top:5px;margin-left:10px;padding:1px 6px 0 4px;height:13px;color:#fff;font:700 10px/1 "Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 0 rgba(0,0,0,0.05);background:#d0d0d0;vertical-align:top}.paid:before,.paid:after{position:absolute;top:0;right:100%;font:normal 14px/14px "genericons"}.paid:before{content:'\f503';color:#d0d0d0;text-shadow:none}.paid:after{content:'\f428';margin-right:-5px;font-size:11px}.rtl .paid:before{content:'\f501'}.load-more{margin:2.71429em 0 6.15385em}.set{display:none}.show.set{display:block}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;right:20px;left:20px;margin-left:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1);z-index:500}.modal .close{position:absolute;top:0;right:0;font:300 1.71429em "genericons" !important;color:#777;content:'\f405';display:inline-block;padding:0.28571em 0.71429em 0.42857em;z-index:5}.modal .close:hover{background:#eee;opacity:0.8}.modal .close:active{background:#eee;opacity:0.4}.modal #jp-post-flair{display:none}.modal .content-container{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;padding:2.14286em}.modal .content{margin:0 auto;max-width:900px;text-align:left}.modal h2{text-align:left;margin-top:0;color:#5d6d74;font:300 32px "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 1px #fff}@media (max-width: 530px){.modal h2{font-size:26px}}.modal h5{clear:left}.modal p{font-size:1.23077em}.modal footer{position:absolute;left:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #ddd;background:#fff;text-align:right}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-secondary,.modal .button-primary:active{vertical-align:baseline}@media (max-width: 900px){.modal{bottom:5%;margin-left:36px;font-size:80%}.modal .content{top:38px}}@media (max-width: 782px){.modal{top:66px;margin-left:0}}@media (max-width: 600px){.modal{top:10px;right:10px;bottom:10px;left:10px}}.jp-info-img{float:right;margin:0 0 30px 30px}.jp-info-img img{border:1px solid #ddd;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width: 782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;left:0;opacity:0.2;position:fixed;right:0;top:0;z-index:11}.entry-title,.page-template-default h1{margin-top:0.61111em;color:#5d6d74;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 1px #fff}@media (max-width: 530px){.entry-title,.page-template-default h1{font-size:2em}}.blog h3,.single h3,.page-template-default h2{margin-top:0.61111em;color:#5d6d74;font:300 1.9em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 1px #fff}@media (max-width: 530px){.blog h3,.single h3,.page-template-default h2{font-size:1.4em}}.page-template-default p{line-height:1.71429em}.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{float:left;width:70%}.footer{margin-top:1.42857em;position:relative;padding:10em 0 4.28571em;text-align:center}.footer:before,.footer:after{content:'';position:absolute;left:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width: 1147px){.footer{padding-bottom:35px}}@media (max-width: 1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width: 900px){.footer{padding-top:146px}}@media (max-width: 782px){.footer{margin-top:0}}@media (max-width: 530px){.footer{margin-top:0;padding-top:135px}}@media (max-width: 320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81A844}@media (max-width: 1147px){.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81a844}}@media (max-width: 530px){.footer nav li{display:block;float:none;margin:0;text-align:left}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #eee}.secondary-footer{margin:0 auto}.secondary-footer li{margin-right:5px}@media (min-width: 782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary-footer{margin-bottom:0}}@media (max-width: 782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width: 530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #eee}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:0.78571em;font-family:"Gill Sans","Gill Sans MT","Open Sans",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;right:9999px;outline:0}.footer .a8c-attribution a:after{content:'A';position:absolute;top:2px;right:-9999px;height:100%;color:#999;font-size:1.54545em;font-family:"automatticons";text-align:center}.footer .a8c-attribution a:hover:after{-webkit-animation:candy .4s ease-in-out;animation:candy .4s ease-in-out}@media (min-width: 782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:transparent;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:0.7}.jetpack-message .squeezer{padding:23px 23px 23px 80px;position:relative;text-align:left}.jetpack-message .squeezer:before{color:#fff;content:'\f418';font-family:'Genericons';font-size:33px;height:33px;left:25px;opacity:0.6;position:absolute;top:23px;top:calc( 50% - 22px )}@media (max-width: 530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#FFF;border-bottom:1px solid #D5E4BD}.jetpack-message .squeezer a:hover{border-bottom:1px solid #F1F6E9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:'\f414'}.configure-module .jetpack-message{max-width:100%}.jetpack-modules #site-icon-deprecated .info,.modules h3.icon,.jetpack-modules .info a{width:auto}.jetpack-modules #site-icon-deprecated .info:before,.modules h3.icon:before,.jetpack-modules .info a:before{display:inline-block;position:relative;top:1px;left:-3px;margin-right:2px;opacity:0.8;font:normal 20px "genericons";vertical-align:top}.jetpack-modules .info a:before{margin-top:1px}.latex:before,.jetpack-modules #latex .info a:before{content:'\f408'}.carousel:before,.jetpack-modules #carousel .info a:before{content:'\f102'}.modules h3.contact-form:before,.jetpack-modules #contact-form .info a:before{content:'\f175';font:normal 20px "dashicons"}.modules h3.custom-css:before,.jetpack-modules #custom-css .info a:before{content:'\f100';font:normal 20px "dashicons"}.modules h3.enhanced-distribution:before,.jetpack-modules #enhanced-distribution .info a:before{content:'\f237';font:normal 20px "dashicons"}.modules h3.widgets:before,.jetpack-modules #widgets .info a:before{content:'\f116';font:normal 20px "dashicons"}.modules h3.gravatar-hovercards:before,.jetpack-modules #gravatar-hovercards .info a:before{content:'G';font-family:"automatticons"}.infinite-scroll:before,.jetpack-modules #infinite-scroll .info a:before{content:'\f408'}.comments:before,.jetpack-modules #comments .info a:before{content:'\f108'}.sso:before,.jetpack-modules #sso .info a:before{content:'\f205'}.json-api:before,.jetpack-modules #json-api .info a:before{content:'\f415'}.likes:before,.jetpack-modules #likes .info a:before{content:'\f408'}.markdown:before,.jetpack-modules #markdown .info a:before{content:'\f462'}.minileven:before,.jetpack-modules #minileven .info a:before{content:'\f453'}.manage:before,.jetpack-modules #manage .info a:before{content:'\f205'}.monitor:before,.jetpack-modules #monitor .info a:before{content:'\f468'}.notes:before,.jetpack-modules #notes .info a:before{content:'\f300'}.omnisearch:before,.jetpack-modules #omnisearch .info a:before{content:'\f400'}.photon:before,.jetpack-modules #photon .info a:before{content:'\f403'}.post-by-email:before,.jetpack-modules #post-by-email .info a:before{content:'\f410'}.protect:before,.jetpack-modules #protect .info a:before{content:'\f470';position:relative;top:-1px}.modules h3.publicize:before,.jetpack-modules #publicize .info a:before{content:'\f237';font:normal 20px "dashicons"}.related-posts:before,.jetpack-modules #related-posts .info a:before{content:'\f420'}.sharedaddy:before,.jetpack-modules #sharedaddy .info a:before{content:'\f415'}.shortcodes:before,.jetpack-modules #shortcodes .info a:before{content:'\f100'}.verification-tools:before,.jetpack-modules #verification-tools .info a:before{content:'\f425'}.after-the-deadline:before,.jetpack-modules #after-the-deadline .info a:before{content:'\f411'}.subscriptions:before,.jetpack-modules #subscriptions .info a:before{content:'\f410'}.tiled-gallery:before,.jetpack-modules #tiled-gallery .info a:before{content:'\f103'}.modules h3.vaultpress:before,.jetpack-modules #vaultpress .info a:before{content:'V';font-family:"automatticons"}.videopress:before,.jetpack-modules #videopress .info a:before{content:'\f104'}.modules h3.widget-visibility:before,.jetpack-modules #widget-visibility .info a:before{content:'\f116';font:normal 20px "dashicons"}.stats:before,.jetpack-modules #stats .info a:before{content:'\f205'}.shortlinks:before,.jetpack-modules #shortlinks .info a:before{content:'\f107'}.modules h3.custom-content-types:before,.jetpack-modules #custom-content-types .info a:before{content:'\f498';font:normal 20px "dashicons"}.modules h3.site-icon:before,.jetpack-modules #site-icon .info a:before{content:'\f475'}.jetpack-modules #site-icon-deprecated .info:before{content:'\f475'}.jetpack-modules #sitemaps .info a:before{content:'\f507'}@media (max-width: 782px){.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{width:100%}}@media (max-width: 600px){.clouds-sm{display:none}}@media (max-width: 530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-right:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width: 515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:right;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:left}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}@media (max-width: 320px){.jetpack_page_jetpack_modules .wrap{padding:0 0 1em}}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}.configure .frame.top.fixed{background:#f9f9f9;border-bottom:1px solid #e9e9e9;padding-left:160px;margin-top:-6px;position:fixed;right:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #eee}@media (max-width: 782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}}@media (max-width: 600px){.configure .frame.top.fixed{top:0}}.configure .frame.top .tablenav.top{float:left}@media (max-width: 900px){.configure .frame.top .tablenav.top .actions{display:block}}@media (max-width: 782px){.configure .frame.top .tablenav.top .actions{margin-top:6px}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:right;margin-top:10px}@media (max-width: 782px){.filter-search{display:block}}@media (max-width: 530px){.filter-search{display:none}}.module-actions.landing-page{float:right;margin-right:15px}.module-actions.landing-page a{font-size:0.6em}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-left:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.active th,.table-bordered.jetpack-modules tr.jetpack-module.active td{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-left:4px solid #2ea2cc;padding-left:0px}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-left:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable{opacity:0.3}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module#vaultpress{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-right:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module th,.table-bordered.jetpack-modules tr.jetpack-module td{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 10px 8px 14px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-left:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:right;padding:0 0 1px;visibility:visible}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-left:5px}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a{opacity:0}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a:focus{opacity:1}@media (max-width: 530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width: 782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-left:10px;visibility:visible}}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}@media (max-width: 782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width: 782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width: 900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width: 782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:left;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width: 782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:right;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:bold;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:left}.wrap .manage-right .bumper{margin-left:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type='search']{padding:0 8px;width:90%;line-height:initial}@media (max-width: 782px){.wrap .manage-right p.search-box input[type='search']{float:left;padding:9px 8px}}.wrap .manage-right p.search-box input[type="submit"]{display:none}.wrap .manage-right .button-group .button{outline:none}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-left:-5px;background:#0D72B2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#BCD7E7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:left}@media (max-width: 782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;right:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width: 782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.jetpack_page_jetpack_modules #doaction{padding:7px 14px}.jetpack_page_jetpack_modules .fixed-top thead .check-column{padding:28px 10px 0 10px}.jetpack_page_jetpack_modules .filter-search{margin-top:28px}.jetpack_page_jetpack_modules .filter-search .button{padding:7px 14px}.manage-right.show .subsubsub li{padding:5px}}@media (max-width: 650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-left:18px}}@media (max-width: 430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.success,.configure-module p.error{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #ddd solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}#non-editable-whitelist{margin-top:15px}.protect-whitelist textarea{width:100%;min-height:150px}#editable-whitelist .whitelist-table{width:100%}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:bold}.whitelist-table{border-top:1px solid;border-right:1px solid;border-color:#ddd;background-color:#fff}.whitelist-table td,.whitelist-table th{padding:10px;margin:0;border-bottom:1px solid;border-left:1px solid;border-color:#ddd;font-size:14px}.whitelist-table th.heading{font-weight:bold;color:#5d6d74;text-align:left;background-color:#eee}.whitelist-table td.item-actions{border-left:none;text-align:right}.whitelist-table .toolbar{padding:0}.whitelist-table .add-btn{text-align:center;width:10%;border-left:1px #ddd solid}.ip-address,.enter-ip{width:90%;text-align:left;vertical-align:middle}.delete-ip-address{text-align:center;border:0;background:transparent;color:#6f7476;box-shadow:none;font-size:20px;margin:0;padding:0;cursor:pointer;border-radius:2px}.delete-ip-address:hover{background:#eee}.toolbar div{float:left;padding:10px}@media only screen and (min-width: 1100px){#non-editable-whitelist{width:28%;float:right;margin-top:0}.protect-whitelist{width:65%;float:left}}@media only screen and (max-width: 1130px){.enter-ip input[type="text"]{max-width:175px}}@media only screen and (max-width: 1250px) and (min-width: 1065px), (max-width: 730px) and (min-width: 600px){.enter-ip{width:85%}.add-btn{width:15%}}@media only screen and (max-width: 782px){.add-btn{text-align:right}.add-btn .ip-add{margin-top:4px;margin-bottom:3px}}@media only screen and (max-width: 730px){.add-btn{text-align:center}}@media only screen and (max-width: 665px) and (min-width: 600px){.enter-ip input[type="text"]{max-width:165px}}@media only screen and (max-width: 600px){.toolbar div{width:100%}.add-btn{border-top:1px #ddd solid}.enter-ip{text-align:center}.enter-ip strong{display:block;margin-bottom:5px}.enter-ip input[type="text"]{width:100%;max-width:100%}.add-btn input,.enter-ip .button{width:50%;margin:0 auto}.enter-ip .button{margin-top:10px}}@media only screen and (max-width: 400px){.protect-status strong{font-size:12px;overflow:auto}.add-btn input,.enter-ip .button{width:100%}}.my-jetpack-actions{margin:0 0 40px 0}.my-jetpack-actions .j-col{padding:0;text-align:center}.my-jetpack-actions #user-list{height:30px;margin-top:-1px;margin-left:-3px}#jetpack-disconnect-content{display:none;text-align:center}#jetpack-disconnect-content .cancel-disconnect{display:block;margin-top:10px}.connection-details{border:1px #ddd solid}.connection-details.local-user{margin-bottom:10px}.connection-details .user-01,.connection-details .wpuser-02,.connection-details .action-btns{padding:10px}.connection-details .user-01 .button,.connection-details .user-01 select,.connection-details .wpuser-02 .button,.connection-details .wpuser-02 select,.connection-details .action-btns .button,.connection-details .action-btns select{margin-top:5px}.connection-details .wpuser-02{margin-top:10px}.connection-details h3{padding:10px;margin:0;background:#eee;border-bottom:1px #ddd solid;font-size:14px}.jp-user img{margin-right:10px;border-radius:50%}.jp-user div,.wp-user div,.wp-action div{display:inline-block;width:100%}.j-col.jp-user,.j-col.wp-user,.j-col.wp-action{padding:0}.my-jetpack-actions select{max-width:150px}.j-actions .button:nth-child(3){margin-right:5px}.j-row.disconnect{text-align:center}.j-row.disconnect .button{margin:0 auto}a.what-is-primary{color:#b4b9be;margin-left:4px}@media (max-width: 782px){.wp-action{border-top:1px #ddd solid}.wp-action h3{display:none}}@media screen and (max-width: 500px){.connection-details{font-size:11px}.connection-details h3{font-size:12px;padding:5px}.connection-details .user-01,.connection-details .wpuser-02{padding:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.connection-details .action-btns{text-align:center}}@media (max-width: 530px){.connection-details .wpuser-02{margin-top:0;padding:12px}}@media screen and (max-width: 450px){.j-actions .button{width:100%;margin-bottom:5px;text-align:center}.j-actions .button.alignright{float:none}}@media screen and (max-width: 350px){.user-01,.wpuser-02{max-width:100px}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81A944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:normal}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .pointer{cursor:pointer}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}.wpcom-connect .connect-desc{padding-right:25px}.wpcom-connect .connect-btn{text-align:center}.module-grid h2{color:#000;font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif}.download-jetpack{margin-top:1em !important}#jump-start-area{margin-top:35px;padding-left:60px;padding-right:60px;background:#fefefe;border:1px #dae0e2 solid;padding-bottom:20px;text-align:center}#jump-start-area .connect-btn{text-align:center}#jump-start-area #jumpstart-cta,#jump-start-area .jumpstart-desc{padding:0}#jump-start-area p{font-size:14px;line-height:185%}#jump-start-area .spinner{float:none;margin:0 auto;position:absolute;bottom:0;height:100%;width:100%;background-position:50% 56%;background-color:rgba(254,254,254,0.99);display:block;opacity:.9}.jumpstart-message p{padding-right:25px}.jumpstart-desc{text-align:left}#jumpstart-cta{text-align:center;display:inline-block;float:none}.dismiss-jumpstart{color:#999;font-size:14px}#jumpstart-cta .button,#jumpstart-cta .button-primary{margin:1em;font-size:18px;height:45px !important;padding:8px 15px 1px}#jumpstart-cta .button-primary{display:block;margin:35px 20px 5px 20px}#jp-config-list{position:relative;padding-top:15px;padding-bottom:15px;margin-left:-15px;margin-right:-15px}#jp-config-list .j-col{padding:15px}#jp-config-list strong{display:inline-block}#jp-config-list small{display:block;margin-top:5px;line-height:150%}#jp-config-list .close{position:absolute;top:10px;right:0;text-transform:uppercase;font-weight:bold;display:block;z-index:5}.jp-config-status{text-transform:uppercase;font-size:10px;font-weight:bold;line-height:100%;color:#fff;background:#9fbd72;border-radius:2px;padding:2px 4px;display:inline-block}.nux-intro h3{background:#81a844;color:#fff;font-weight:600;padding:.75em;margin:0}.nux-intro h4{margin:0 0 2px 0}.nux-intro p{text-align:center;font-size:1.24em;line-height:175%}.nux-intro a{transition:all .4s ease}.nux-intro .j-col{padding:0 0.5em}.nux-intro .j-col:first-of-type{padding-left:0}.nux-intro .j-col:last-of-type{padding-right:0}.nux-intro .nux-in{background:#ececec;-webkit-border-bottom-right-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.nux-intro .nux-in h3{font-size:1.10em;-webkit-border-top-left-radius:6px;-webkit-border-top-right-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-left-radius:6px;border-top-right-radius:6px}.nux-intro .nux-in h3 .dashicons{float:right;color:#658435;font-size:1.25em;padding-left:0}.nux-intro .nux-in h3 .dashicons:hover{color:#57722e}.nux-intro .nux-in p{font-size:.9em;line-height:150%;margin:0;text-align:left;color:#686f72}.nux-intro .nux-in .j-row{border-bottom:1px #f9f9f9 solid;padding:5px 0;position:relative;min-height:70px}.nux-intro .nux-in .j-row:hover{background:#e0e0e0}.nux-intro .nux-in .unavailable{opacity:0.5}.nux-intro .nux-in .unavailable .act{display:none}.nux-intro .nux-in .paid{top:4px;margin-left:12px}.nux-intro .nux-in .dashicons{color:#81a844;font-size:1em;position:relative;top:3px;padding-left:6px}.nux-intro .nux-in .dashicons:hover{color:#57722e}.nux-intro .nux-in .dashicons-external{font-size:1.5em;top:2px;padding-left:3px}.nux-intro .nux-in .lmore{font-size:11px;color:#81a844}.nux-intro .nux-in .lmore:hover{color:#57722e}.nux-intro .feat.j-col{padding:10px 2px 10px 10px}.nux-intro .feat .dashicons{display:none}.nux-intro .activated .feat .dashicons{display:inline-block}.nux-intro .act{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%);right:8px;float:right}.nux-intro .act.j-col{padding:5px;text-align:right}.nux-intro .module-action{text-transform:uppercase;font-size:.85em;font-weight:600}.nux-intro .wpcom h3{background:#0087be}.nux-intro .wpcom h3 .dashicons{color:#00638b}.nux-intro .wpcom h3 .dashicons:hover{color:#005172}.nux-intro .wpcom .j-col{padding:10px}.nux-intro .wpcom .goto{text-align:center;padding:1em}.nux-intro .wpcom .goto:hover{background:#ececec}.nux-intro .wpcom .goto .j-col{padding:0 5px}.nux-intro .wpcom .goto a{width:100%;padding:.25em;height:auto}.nux-intro .wpcom .goto .button{height:auto;min-height:28px;line-height:18px;white-space:normal;max-width:200px;margin-bottom:0;padding-top:4px;padding-bottom:5px}.nux-intro .wpcom .goto .feat{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%)}.nux-intro .nux-foot .j-col{padding:1em}.nux-foot{margin-top:2em;background:#ececec;border-radius:6px}.nux-foot .j-col{min-height:75px;padding:1em}@media (max-width: 650px){.nux-foot .j-col{width:100%}}.nux-foot .j-col+.j-col{border-left:1px #f9f9f9 solid}@media (max-width: 650px){.nux-foot .j-col+.j-col{border-left:none;border-top:1px #f9f9f9 solid}}.nux-foot .actions{margin-top:1em}.nux-foot a{text-decoration:underline}.nux-foot img{float:right;margin-left:1em;width:75px;border-radius:4px}.nux-foot p{font-size:.9em;text-align:left;font-weight:600;margin-top:0}.nux-foot p+p{font-weight:400;margin-bottom:0}.nux-foot ul{font-size:.9em;margin-bottom:0}.nux-foot ul li{margin-right:.875em;margin-bottom:0;line-height:175%;display:inline-block;vertical-align:middle}.form-toggle[type="checkbox"]{opacity:0;position:absolute}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;-moz-box-sizing:border-box;box-sizing:border-box;padding:2px;width:40px;height:24px;background:#b9b9b9;vertical-align:middle;outline:0;cursor:pointer;transition:all .4s ease}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{left:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.form-toggle__switch:hover{background:#bdd597}.form-toggle__label{cursor:pointer}.plugin-action__label{padding-right:5px;top:-1px;position:relative;color:#8e9598}.activated .plugin-action__label{color:#81a844}.form-toggle:focus+.form-toggle__label .form-toggle__switch,.form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #0087be}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{left:16px}.form-toggle:checked:hover+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle:disabled+.form-toggle__label .form-toggle__switch,.form-toggle:disabled:hover+.form-toggle__label .form-toggle__switch{background:#e9eff3}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{left:8px}@media (max-width: 1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}.nux-intro .main-col{width:50%;margin-bottom:2em}.nux-intro .main-col.wpcom{width:100%}.nux-intro .main-col+.main-col{padding-right:0}.nux-intro .wpcom{padding:0}.nux-intro .wpcom .j-row{width:50%;float:left;border-bottom:1px #f9f9f9 solid;border-right:1px #f9f9f9 solid}.nux-intro .wpcom .j-row:last-of-type{width:100%;float:none;clear:both;border:none;border-top:1px #f9f9f9 solid;position:relative;top:-1px}.nux-intro .wpcom .goto .feat a{float:left}.nux-foot .j-col{border:none}}@media (max-width: 900px){.nux-intro .main-col{width:100%;padding:0;margin-bottom:2em}.nux-intro .wpcom .j-row{width:100%;float:none}}@media (max-width: 782px){#jumpstart-cta .button-primary{margin:10px 0 5px 0}#jump-start-area .spinner{background-position:50% 35%}}@media (max-width: 600px){.nux-intro h1{font-size:1.75em}.nux-intro p{font-size:1em}}@media (max-width: 530px){.jp-content .landing{padding:0 .5em}#jump-start-area{padding:0 1em}.jumpstart-message p{padding-right:0}#jumpstart-cta .button-primary{margin:0 0 5px 0;padding-bottom:10px}.footer .a8c-attribution a:after{top:6px}}.nav-horizontal:before,.features:before,.modules:before,.load-more:before,.nav-horizontal:after,.features:after,.modules:after,.load-more:after{content:"";display:table}.nav-horizontal:after,.features:after,.modules:after,.load-more:after{clear:both} /*# sourceMappingURL=jetpack-admin.min.css.map */plugins/jetpack/css/jetpack-admin-jitm-rtl.min.css0000644000312500031250000000363212651056012022613 0ustar eacbforgeacbforg.jp-jitm{border-radius:2px;max-width:100%;margin:2em auto 1em auto;padding:.85em;background:#fcfcfc;border:1px solid #dedede;text-align:center}.jp-jitm:before,.jp-jitm:after{content:"";display:table}.jp-jitm:after{clear:both}#screen-meta-links+.jp-jitm{margin:3em auto 0 1.5385em}.jp-jitm .activate{margin-top:.5em}.jp-jitm .jp-emblem{width:25px;height:25px;margin:.40em auto 0 1em}.jp-jitm svg{width:100%;height:100%}.jp-jitm path{fill:#8cc258}.jp-jitm .dismiss{margin:0;text-decoration:none;float:left}.jp-jitm .dismiss:before{color:#666;font:400 15px/1 dashicons;content:'\f158'}.jp-jitm p{font-size:1em;line-height:165%}.jp-jitm .j-spinner{margin:8px 0 0;height:17px;width:17px}.jp-jitm .hide{display:none}form[name=post]>.jp-jitm:first-of-type{margin-top:1em}@media (min-width: 800px){.jp-jitm .jp-emblem,.jp-jitm p{float:right}.jp-jitm .jp-emblem{width:20px;height:20px;margin-left:.5em}.jp-jitm p{margin:.40em 0 0 1em}.jp-jitm p+p{margin:0;padding:0}.jp-jitm .activate{margin-top:0}}@media (max-width: 1100px){.jp-jitm{margin:2.5em .5em .5em .75em}form[name=post]>.jp-jitm:first-of-type{margin-right:auto;margin-left:auto}}@media (max-width: 800px){.jp-jitm .jp-emblem{margin:.40em auto 0 auto}}@media (min-width: 1100px){.update-core-php .jp-jitm{margin:3em auto 0 2em}}.jetpack-connected .media-modal-content .uploader-inline-content{top:20%}@media only screen and (min-width: 800px){.media-menu .jp-jitm{margin:10px 0;padding:5px 5px 15px;border-width:1px 0}.media-menu .jp-jitm .jp-emblem{margin:20px 15px 0 10px}.media-menu .jp-jitm .msg{width:75%;text-align:right;margin:0 0 10px}.media-menu .jp-jitm .msg+p{text-align:center;width:100%}}@media only screen and (max-width: 900px){.media-menu .jp-jitm{display:none;margin:.5em 3%;border-width:1px}.media-menu .jp-jitm .msg{margin-top:20px;width:88%;margin-right:auto;margin-left:auto}.media-menu.visible .jp-jitm{display:block}} /*# sourceMappingURL=jetpack-admin-jitm.min.css.map */plugins/jetpack/css/jetpack-admin-rtl.css.map0000755000312500031250000003772012651056012021654 0ustar eacbforgeacbforg{"version":3,"sources":["jetpack-admin-rtl.css"],"names":[],"mappings":"AAAA;;;GAGE;AACF;;;;;EAKC,gBAAA;EACA,wDAAA;EACC,iBAAA;EACF,kBAAA;EACC,qCAAA;EACA;;AAED;;;;;;EAMC,aAAA;EACC,aAAA;EACD;;AAED;EACE,gBAAA;EACF,+BAAA;EACE,uBAAA;EACF,uBAAA;EACC;AACD;EACA,gBAAA;EACC;AACD;EACE,gBAAA;EACD;AACD;EACE,sBAAA;EACD;;AAED;EACE,mBAAA;EACD;;AAED;;EAEA,cAAA;EACC;;AAED;EACA,kBAAA;EACE,uBAAA;EACD;;AAED;EACA,kBAAA;EACC;;AAED;EACE,WAAA;EACF,WAAA;EACE,YAAA;EACD;;AAED;EACE,kBAAA;EACD;;AAED;EACA,gBAAA;EACE,aAAA;EACD,WAAA;EACC,4BAAA;EACF,eAAA;EACE,YAAA;EACD;;AAED;EACE,wBAAA;EACD;;AAED;EACE;IACD,+BAAA;IACG,uBAAA;IACD;;EAED;IACA,gCAAA;IACE,wBAAA;IACD;;EAEF;IACG,6BAAA;IACJ,qBAAA;IACG;EACF;;AAED;EACE;IACA,+BAAA;IACF,uBAAA;IACG;;EAED;IACD,gCAAA;IACG,wBAAA;IACD;;EAEF;IACD,6BAAA;IACC,qBAAA;IACE;EACF;AACD;EACE;IACA,6BAAA;IACE,qBAAA;IACD;;EAED;IACD,gCAAA;IACG,wBAAA;IACD;;EAED;IACD,gCAAA;IACC,wBAAA;IACC;;EAEF;IACD,6BAAA;IACA,qBAAA;IACG;EACF;AACD;EACE;IACD,6BAAA;IACG,qBAAA;IACD;;EAED;IACA,gCAAA;IACF,wBAAA;IACG;;EAED;IACA,gCAAA;IACF,wBAAA;IACG;;EAEF;IACD,6BAAA;IACA,qBAAA;IACG;EACF;AACD;EACE;IACF,+CAAA;IACC,uCAAA;IACE;;EAEF;IACD,oDAAA;IACA,4CAAA;IACG;EACF;AACD;EACE;IACD,+CAAA;IACG,uCAAA;IACD;;EAEF;IACD,oDAAA;IACI,4CAAA;IACD;EACF;AACD;;EAEA,yCAAA;EACE,iCAAA;EACD;;AAED;EACE,uBAAA;EACF,oBAAA;EACE,8BAAA;EACA,gBAAA;EACD,+DAAA;EACD,2CAAA;EACC,qBAAA;EACA,oBAAA;EACA;AACD;EACC,gBAAA;EACA;AACD;EACA,aAAA;EACE,qBAAA;EACD;AACD;EACA,qBAAA;EACA,cAAA;EACC;;AAED;EACE,qBAAA;EACD,gBAAA;EACA;AACD;EACC,gBAAA;EACA;AACD;EACC,qBAAA;EACD,aAAA;EACC;AACD;EACC,qBAAA;EACD,aAAA;EACC,oEAAA;EACC,4DAAA;EACD;;AAED;EACE,uBAAA;EACA,oBAAA;EACA,wCAAA;EACA,aAAA;EACD,oEAAA;EACD,qBAAA;EACE,YAAA;EACD,oBAAA;EACA,mEAAA;EACD,2DAAA;EACC;AACD;EACA,aAAA;EACC;AACD;EACE,aAAA;EACA,qBAAA;EACD,mEAAA;EACD,2DAAA;EACC;AACD;EACC,UAAA;EACA,+DAAA;EACD,uDAAA;EACC;AACD;EACA,WAAA;EACC;AACD;EACC,aAAA;EACD,uBAAA;EACE,oBAAA;EACA,WAAA;EACA,mBAAA;EACD,aAAA;EACD,cAAA;EACE,wBAAA;EACA,uEAAA;EACD,oCAAA;EACD,uBAAA;EACC;AACD;EACC,aAAA;EACC,oBAAA;EACF,QAAA;EACE,UAAA;EACD,aAAA;EACD,cAAA;EACC;AACD;EACE;IACD,kBAAA;IACE;EACD;IACA,WAAA;IACC,aAAA;IACF,cAAA;IACE;EACF;AACD;EACE;IACD,QAAA;IACE;EACF;AACD;EACE;IACC,sBAAA;IACH,kBAAA;IACG;EACD;IACF,aAAA;IACG,cAAA;IACF,kBAAA;IACE;EACF;;AAED;EACC,uBAAA;EACD,cAAA;EACC,oBAAA;EACC,0BAAA;EACD,gBAAA;EACD,sDAAA;EACE,2CAAA;EACD,qBAAA;EACA,eAAA;EACD,oBAAA;EACC;AACD;EACA,gBAAA;EACC;AACD;EACC,aAAA;EACD,qBAAA;EACC;AACD;EACE,cAAA;EACD;;AAED;EACA,8BAAA;EACA,2DAAA;EACE,sUAAA;EACD,qBAAA;EACD,oBAAA;EACC;AACD;EACC,wBAAA;EACA,+CAAA;EACD,yQAAA;EACC,qBAAA;EACD,oBAAA;EACC;AACD;EACE;IACC,wBAAA;IACF,qDAAA;IACE;EACF;AACD;EACA,uBAAA;EACC;AACD;EACC,oBAAA;EACD,cAAA;EACC;AACD;EACC,WAAA;EACC,YAAA;EACD;;AAED;;;EAGE,gCAAA;EACD,6BAAA;EACC,wBAAA;EACD;;AAED;EACC,qBAAA;EACA,aAAA;EACC,mBAAA;EACD;;AAED;EACA,qBAAA;EACC,aAAA;EACC,mBAAA;EACD;;AAED;EACE,mBAAA;EACD;;AAED;EACE,qBAAA;EACD;;AAED;EACE,oBAAA;EACD;;AAED;EACE,eAAA;EACD;;AAED;EACE,qBAAA;EACA,WAAA;EACA,cAAA;EACA,kBAAA;EACD,aAAA;EACA,aAAA;EACD,qCAAA;EACC;AACD;EACE,qBAAA;EACD;;AAED;EACE;;;;;IAKC,oBAAA;IACF,kBAAA;IACE;EACF;AACD;EACE;;;;;IAKD,iBAAA;IACE;EACF;;AAED;EACE;IACD,kBAAA;IACE;EACF;;AAED;;EAEC,kBAAA;EACD,gBAAA;EACC;AACD;;EAEE,mBAAA;EACD;;AAED;EACE;IACD,eAAA;IACE;EACF;;AAED;EACE;IACC,qBAAA;IACF,eAAA;IACE;EACF;AACD;EACE;IACD,uBAAA;IACE;EACF;;AAED;EACC,iBAAA;EACD,WAAA;EACC;AACD;EACA,mBAAA;EACC,mBAAA;EACC,WAAA;EACD;;AAED;EACC,oBAAA;EACD,aAAA;EACC;AACD;EACE;IACC,qBAAA;IACF,eAAA;IACE;EACF;;AAED;EACE;IACD,qBAAA;IACE;EACF;;AAED;EACC,kBAAA;EACC,gBAAA;EACD;;AAED;EACC,UAAA;EACC,SAAA;EACD;;AAED;EACA,mBAAA;EACC;AACD;EACC,sBAAA;EACD,mBAAA;EACC;AACD;EACE,uBAAA;EACF,oBAAA;EACC,cAAA;EACA,kBAAA;EACA,qCAAA;EACA,6BAAA;EACD,aAAA;EACA,mBAAA;EACC,qBAAA;EACD,sBAAA;EACC;AACD;EACC,aAAA;EACD,oBAAA;EACA,QAAA;EACE,UAAA;EACD,aAAA;EACA,cAAA;EACC,qEAAA;EACF,2EAAA;EACC,qCAAA;EACC,6BAAA;EACD;;AAED;EACA,cAAA;EACC;AACD;EACA,WAAA;EACC;AACD;EACE;IACD,iBAAA;IACE;EACF;;AAED;EACA,aAAA;EACC;AACD;EACE,WAAA;EACD;;AAED;EACA,WAAA;EACC;AACD;EACA,YAAA;EACC;AACD;EACA,cAAA;EACC;AACD;EACE,eAAA;EACD;;AAED;EADA,oBAAA;EAGE,oBAAA;EAAA,YAAA;EACD,2BAAA;EACD,iGAAA;EAAA,kEAAA;EAEC,+FAAA;EAAA,0DAAA;EAEA;AACD;EAAA,gBAAA;EAEC;AACD;EAAA,mBAAA;EAEC;AACD;EAAA;IAAA,mBAAA;IAAA,YAAA;IAIG;EACF;AACD;;EAEE,gBAAe;EAChB;AACD;EAAA,4BAAA;EAAA,uBAAA;EAAA,aAAA;EAAA,qFAAA;EAAA,oBAAA;EAAA,4CAAA;EAAA,YAAA;EAQC;AACD;EAAA,mBAAA;EAEC;AACD;EAAA;IAAA,wBAAA;IAAA,sBAAA;IAIG;EACF;AACD;EAAA;IAAA,kBAAA;IAAA,iBAAA;IAIG;EACF;AACD;EAAA;IAAA,gBAAA;IAAA,wBAAA;IAAA,iBAAA;IAAA,kBAAA;IAMG;EACF;;AAED;EAAA,qBAAA;EAAA,kBAAA;EAGC;;AAED;EAAA,oBAAA;EAAA,mBAAA;EAAA,gBAAA;EAIC;AACD;EAAA;IAAA,eAAA;IAGG;EACF;;AAED;EAAA,oBAAA;EAAA,gBAAA;EAAA,WAAA;EAAA,YAAA;EAAA,8CAAA;EAAA,sCAAA;EAOC;AACD;EAAA,YAAA;EAAA,cAAA;EAAA,eAAA;EAAA,+BAAA;EAAA,uBAAA;EAAA,kCAAA;EAAA,0BAAA;EAQC;AACD;EAAA,YAAA;EAAA,aAAA;EAAA,cAAA;EAAA,+BAAA;EAAA,uBAAA;EAAA,kCAAA;EAAA,0BAAA;EAQC;;AAED;EAAA,oBAAA;EAAA,mBAAA;EAAA,gBAAA;EAAA,qBAAA;EAAA,YAAA;EAMC;AACD;EAAA,kBAAA;EAAA,gBAAA;EAAA,qFAAA;EAAA,6BAAA;EAKC;AACD;EAAA;IAAA,kBAAA;IAAA,iBAAA;IAIG;EACF;AACD;EAAA;IAAA,eAAA;IAGG;EACF;AACD;EAAA,aAAA;EAAA,oBAAA;EAAA,cAAA;EAAA,UAAA;EAAA,qBAAA;EAAA,aAAA;EAAA,eAAA;EAAA,mEAAA;EAAA,sBAAA;EAAA,aAAA;EAWC;AACD;EAAA;IAAA,mBAAA;IAAA,sBAAA;IAIG;EACD;IAAA,oCAAA;IAAA,4BAAA;IAGC;EACF;AACD;EAAA;IAAA,mBAAA;IAAA,sBAAA;IAIG;EACF;AACD;EAAA;IAAA,kBAAA;IAAA,yBAAA;IAIG;EACF;;AAED;EAAA,eAAA;EAAA,oBAAA;EAAA,oBAAA;EAAA,YAAA;EAAA,2BAAA;EAAA,iGAAA;EAAA,kEAAA;EAAA,+FAAA;EAAA,0DAAA;EASC;AACD;EADC,aAAA;EACD,oBAAA;EADC,WAAA;EACD,UAAA;EADC,qBAAA;EACD,aAAA;EADC,eAAA;EACD,sEAAA;EADC,sBAAA;EACD,YAAA;EAWC;AACD;EADC;IACD,YAAA;IADC;EAKA;;AAED;EACE,+BAA8B;EADhC,kCAAA;EACE,kBAAA;EADF,oBAAA;EACE,8BAAA;EADF,oBAAA;EACE,YAAA;EAOD;AACD;EADC,aAAA;EACD,gBAAA;EADC,oBAAA;EACD,QAAA;EADC,cAAA;EACD,aAAA;EAOC;AACD;EADC,gBAAA;EACD,uBAAA;EAGC;AACD;EADC;IACD,eAAA;IADC;EAKA;;AAED;;EAAA,uBAAA;EAGE,gBAAe;EAHjB,qFAAA;EAGE,oBAAe;EAHjB,6BAAA;EAOC;AACD;EADC;;IAAA,iBAAA;IAKE;EACF;AACD;EADC;;IAAA,iBAAA;IAKE;EACF;;AAED;EACE,gBAAe;EADjB;;AAIA;;EAAA,oBAAA;EAGE,cAAa;EAHf,oBAAA;EAGE,cAAA;EAHF,yCAAA;EAGE,iCAAA;EAKD;AACD;EADC;;IAAA,0BAAA;IAKG,mBAAkB;IALrB,0BAAA;IAKG,kBAAA;IAGD;EACD;;IAAA,iBAAA;IAGC;EACD;;IAAA,QAAA;IAGE,0BAAyB;IAH3B,kBAAA;IAKC;EACF;;AAED;EACE,kCAAiC;EADnC,0BAAA;EAGC;AACD;EADC,uBAAA;EACD,gBAAA;EADC,sBAAA;EACD,kBAAA;EADC,kBAAA;EAOA;AACD;EADC,WAAA;EACD,gBAAA;EAGC;AACD;EADC,aAAA;EACD,oBAAA;EADC,WAAA;EACD,UAAA;EADC,aAAA;EACD,cAAA;EADC,iCAAA;EACD,aAAA;EADC,kCAAA;EACD,0BAAA;EADC,yCAAA;EACD,iCAAA;EAaC;AACD;EADC,qCAAA;EACD,iCAAA;EADC,6BAAA;EAKA;AACD;EADC,gBAAA;EACD;AAGA;EAHA,wBAAA;EAGA,qBAAA;EAGC;AACD;EADC,cAAA;EACD;AAGA;EAHA,oCAAA;EAGA,gCAAA;EAHA,4BAAA;EAOC;AACD;EADC;IACD,gBAAA;IADC;EAKC;IALD,wBAAA;IAKC,qBAAA;IAGC;EACD;IADC,cAAA;IACD;EAGD;AACD;EADC,kBAAA;EACD,aAAA;EADC,cAAA;EACD,wBAAA;EADC,qBAAA;EAOA;AACD;EADC,uDAAA;EACD,oCAAA;EADC,4BAAA;EAKA;AACD;EADC;IACD,sDAAA;IADC;EAKA;AACD;EADC,8DAAA;EACD,oCAAA;EADC,4BAAA;EAKA;AACD;EADC;IACD,6DAAA;IADC;EAKA;AACD;EADC,4DAAA;EACD,oCAAA;EADC,4BAAA;EAKA;AACD;EADC;IACD,2DAAA;IADC;EAKA;AACD;EADC,cAAA;EACD,qBAAA;EAGC;;AAED;EACE,gBAAe;EADjB,kCAAA;EACE,wBAAe;EADjB,qBAAA;EAKC;AACD;EADC,kBAAA;EACD,oBAAA;EAGC;AACD;EADC;IACD,wBAAA;IADC,qBAAA;IAKE;EACF;AACD;EADC;IACD,mBAAA;IADC;EAKA;;AAED;EACE,aAAY;EADd,qBAAA;EAGC;AACD;EADC,iBAAA;EACD,kBAAA;EADC,sBAAA;EACD,mBAAA;EAKC;AACD;EADC,aAAA;EACD;;AAIA;EACE,oBAAmB;EADrB;AAGA;EAHA,4BAAA;EAGA;AAGA;EAHA;IAGA,kBAAA;IAHA,iBAAA;IAOG;EACF;;AAED;EACE,oBAAmB;EADrB,aAAA;EACE,uBAAmB;EADrB,0BAAA;EACE,kBAAA;EAKD;;AAED;EACE,WAAU;EADZ,8BAAA;EACE,aAAU;EADZ,2BAAA;EACE,oBAAU;EADZ,kBAAA;EAfC,gBAAA;EAeA,kBAAA;EASA;AACD;EADC,gBAAA;EACD,eAAA;EAGC;AACD;EADC,yBAAA;EACD,YAAA;EAGC;AACD;EADC,gBAAA;EACD;AAGA;EAHA,gBAAA;EAGA;AAGA;EAHA,gBAAA;EAGA;AAGA;EAHA,gBAAA;EAGA;AAGA;EAHA,oBAAA;EAGA,UAAA;EAHA,WAAA;EAGA,aAAA;EADC,aAAA;EACD,gBAAA;EAHA,sBAAA;EADA,sBAAA;EAKC,oBAAA;EADD,yCAAA;EADA,iCAAA;EAaC;AACD;EADC,kBAAA;EACD,oBAAA;EADC,YAAA;EACD,kBAAA;EADC,UAAA;EACD,sBAAA;EAzCA,qBAAA;EA+BC,2BAAA;EAmBA;;AAED;EACE,0BAAyB;EAD3B,gBAAA;EAGC;AACD;EADC,uBAAA;EACD,oBAAA;EADC,8BAAA;EACD,aAAA;EADC,iEAAA;EAHD,iDAAA;EADA,kBAAA;EATC,oBAAA;EAeA,sCAAA;EADD,8BAAA;EAWC;AACD;EADC,gBAAA;EACD,2CAAA;EADC,qBAAA;EAKA;AACD;EADC;IACD,qBAAA;IADC;EAKA;;AAED;EACE,iBAAgB;EADlB,gBAAA;EACE,kCAAgB;EADlB,mBAAA;EACE,2BAAA;EADF,kBAAA;EACE,+CAAA;EADD,uCAAA;EAGC,wCAAA;EAHF,gCAAA;EAWC;AACD;EADC,uBAAA;EACD,qBAAA;EAGC;AACD;EADC,eAAA;EACD;AAGA;EAHA,mBAAA;EAGA,gBAAA;EAPA,sBAAA;EAOA,oBAAA;EADC,kBAAA;EAOA;AACD;EADC,WAAA;EACD,gBAAA;EADC,sBAAA;EAKA;AACD;EADC;IACD,0BAAA;IADC;EAKC;IATF,iBAAA;IASE;EAGD;AACD;EADC;IACD,oBAAA;IADC;EAKC;IALD,oBAAA;IAKC;EAGA;IAHA,iBAAA;IAGA;EAGD;AACD;EADC;IACD,eAAA;IADC;EAKC;IALD,iBAAA;IAKC;EAGA;IAHA,iBAAA;IAGA;EAGD;AACD;EADC;IACD,oBAAA;IADC,YAAA;IAKE;EACD;IADC,kBAAA;IACD;EAGA;IAHA,iBAAA;IAGA;EAGD;AACD;EADC;IACD,eAAA;IADC,aAAA;IAKE;EACD;IADC,iBAAA;IACD;EAGA;IAHA,iBAAA;IAGA;EAGD;;AAED;EACE,oBAAmB;EADrB;AAGA;EAHA,gBAAA;EAGA,oBAAA;EAHA,WAAA;EAGA,YAAA;EADC,mBAAA;EACD,aAAA;EAHA,cAAA;EADA,aAAA;EAKC,gBAAA;EADD,kBAAA;EADA,oBAAA;EAnBC,0CAAA;EAGC,oEAAA;EADF,oCAAA;EACE,uBAAA;EAeD,oBAAA;EAmBA;;AAED;EACE,uBAAsB;EADxB,oBAAA;EACE,UAAA;EADF,oBAAA;EACE,wBAAA;EADF,cAAA;EAfC,aAAA;EAeA,4DAAA;EAGC,2CAAA;EAHF,qBAAA;EADA,qBAAA;EAaC;AACD;EADC,oBAAA;EACD,QAAA;EADC,YAAA;EACD,qCAAA;EAKC;AACD;EADC,kBAAA;EACD,gBAAA;EADC,mBAAA;EAKA;AACD;EADC,kBAAA;EACD,mBAAA;EADC,iBAAA;EAKA;;AAED;EACE,kBAAiB;EADnB;;AAIA;EACE,+BAA8B;EADhC;;AAIA;EACE,eAAc;EADhB;;AAIA;EACE,gBAAe;EADjB;;AAIA;EACE,aAAY;EADd,oBAAA;EACE,UAAA;EADF,aAAA;EAKC;AACD;EADC,aAAA;EACD;;AAIA;EACE,kBAAiB;EADnB,iBAAA;EACE,WAAA;EADF,cAAA;EACE,YAAA;EALF,aAAA;EADA,qBAAA;EAKC,eAAA;EAGC,uDAAU;EAHZ,+CAAA;EADA,cAAA;EAaC;AACD;EADC,oBAAA;EACD,QAAA;EADC,SAAA;EACD,6CAAA;EADC,aAAA;EACD,kBAAA;EArCA,uBAAA;EAuBC,wCAAA;EAeA,YAAA;EASA;AACD;EADC,kBAAA;EACD,cAAA;EAGC;AACD;EADC,kBAAA;EACD,cAAA;EAGC;AACD;EADC,eAAA;EACD;AAGA;EAHA,oBAAA;EAGA,QAAA;EAPA,SAAA;EAOA,WAAA;EADC,UAAA;EACD,gBAAA;EAHA,oBAAA;EAWC;AACD;EADC,gBAAA;EACD,kBAAA;EADC,mBAAA;EAKA;AACD;EADC,mBAAA;EACD,eAAA;EADC,gBAAA;EACD,0EAAA;EALA,6BAAA;EAWC;AACD;EADC;IACD,iBAAA;IADC;EAKA;AACD;EADC,sBAAA;EACD;AAGA;EAHA,oBAAA;EAGA,UAAA;EAHA,WAAA;EAGA,aAAA;EADC,oBAAA;EACD,4BAAA;EAHA,kBAAA;EADA,kBAAA;EAaC;AACD;EADC,WAAA;EACD;AAGA;EAHA,uBAAA;EAGA,WAAA;EAGC;AACD;EADC,0BAAA;EACD;AAGA;EAHA;IAGA,YAAA;IAPA,oBAAA;IAOA,gBAAA;IAKG;EACD;IADC,WAAA;IACD;EAGD;AACD;EADC;IACD,WAAA;IADC,iBAAA;IAKE;EACF;AACD;EADC;IACD,WAAA;IADC,YAAA;IACD,cAAA;IADC,aAAA;IAOE;EACF;;AAED;EACE,aAAY;EADd,uBAAA;EAGC;AACD;EADC,wBAAA;EACD,iBAAA;EADC,cAAA;EAKA;AACD;EADC,eAAA;EACD;AAGA;EAHA;IAGA,aAAA;IAHA,kBAAA;IAOG;EACF;;AAED;EACE,cAAa;EADf;;AAIA;EACE,kBAAiB;EADnB,WAAA;EACE,iBAAA;EADF,eAAA;EACE,UAAA;EALF,cAAA;EADA,iBAAA;EAKC,SAAA;EAGC,QAAA;EAHF,aAAA;EAWC;;AAED;;EAAA,uBAAA;EAGE,gBAAe;EAHjB,qFAAA;EAGE,6BAAe;EAGhB;AACD;EADC;;IAAA,gBAAA;IAKE;EACF;;AAED;;;EAGE,uBAAsB;EACtB,gBAAe;EADf,2EAAsB;EACtB,6BAAe;EAGhB;AACD;EADC;;;IAKG,kBAAiB;IAClB;EACF;;AAED;EACE,wBAAuB;EADzB;;AAIA;;;;EAIE,cAAa;EACb,YAAW;EACZ;;AAED;EACE,uBAAsB;EADxB,oBAAA;EACE,2BAAsB;EADxB,oBAAA;EACE,2BAAA;EADF,iGAAA;EAfC,kEAAA;EAeA,+FAAA;EAAA,0DAAA;EASA;AACD;EAVA,aAAA;EASC,oBAAA;EACD,UAAA;EAzBA,sBAAA;EA8BC;AACD;EAlCE,QAAA;EAiCD,kBAAA;EACD,aAAA;EAjBC,eAAA;EAgBA,qEAAA;EAOA;AACD;EAXA,WAAA;EAUC,aAAA;EACD,cAAA;EAdA,wEAAA;EAaC,oCAAA;EACD,4BAAA;EALA,YAAA;EAaC;AACD;EAjBA,qBAAA;EAmBC;AAFD;EARC;IAUA,oBAAA;IAFD,mBAAA;IAXC;EAmBC;IARF,oCAAA;IAjBC,4BAAA;IAyBC;EAIA;IAXD,eAAA;IAaE;EAFD;IARD,aAAA;IAUE,kBAAA;IAFD;EAOD;AACD;EACE;IAFD,oBAAA;IACD;EAIC;AACD;EACE;IAFD,eAAA;IACD;EAIC;AACD;EACE;IAFD,eAAA;IACD,oBAAA;IACE;EAID;AACD;EACE;IAFD,mBAAA;IACD;EAIC;;AAED;EAFC,iBAAA;EAIC,gBAAe;EAFjB;AAIA;;EAJA,kBAAA;EAIA,gBAAA;EAIC;AACD;;;EAAA,aAAA;EAIC;AACD;EALA;IAIC,cAAA;IACD,YAAA;IARA;EAaE;;;IAAA,aAAA;IAIC;EACF;AACD;EACE;IAFD,gBAAA;IACD,aAAA;IACE,WAAA;IAFD,mBAAA;IAOE;EACD;IARD,gBAAA;IAOE,iBAAA;IACD,mBAAA;IAIC;EACF;;AAED;EAFC,8BAAA;EAIC,kCAAiC;EAFnC;;AAKA;EALA,gBAAA;EAOC;AAFD;EALA,kBAAA;EAUC;AALD;EAFC;IAOA,gBAAA;IARD,wBAAA;IAFA;EAgBC;AACD;EACE;IAFD,WAAA;IACD,YAAA;IACE,cAAA;IAFD,kBAAA;IAOE;EACD;IAXF,+BAAA;IAaG;EACF;;AAED;EAFC,wBAAA;EAIC,gBAAe;EAFjB,sBAAA;EAFC,qFAAA;EAIC,2BAAe;EAIhB;AACD;EALE,uBAAA;EAID,oBAAA;EACD,mBAAA;EALE,cAAA;EAID,YAAA;EAOA;AACD;EARC,cAAA;EAOA,oBAAA;EACD,UAAA;EAjBC,eAAA;EAgBA,cAAA;EACD,aAAA;EALA,sBAAA;EAIC,8BAAA;EACD,oBAAA;EAUC;AACD;EApBA,0CAAA;EAmBC,kCAAA;EACD;AAIA;EALC;IACD,eAAA;IAIA;EAIC;;AAED;EAFC,2BAAA;EAIC,+BAA8B;EAFhC;;AAKA;EALA,qBAAA;EAOE,2BAA0B;EAF5B,qBAAA;EALA,gBAAA;EAOE,oBAAA;EAFF,YAAA;EAOC;AACD;EAXA,aAAA;EAUC,WAAA;EACD;AAIA;EALC,aAAA;EACD,WAAA;EAIA,cAAA;EAIC;AACD;EALA,8BAAA;EAIC,oBAAA;EACD,mBAAA;EAIC;AACD;EALA,aAAA;EAIC,kBAAA;EACD,2BAAA;EARA,iBAAA;EAOC,cAAA;EACD,aAAA;EAdA,cAAA;EAaC,oBAAA;EAFD,WAAA;EAFA,yBAAA;EAgBC;AACD;EAXC;IAUA,eAAA;IACD;EAdC;IAaA,eAAA;IAOE;EACF;AACD;EACE,kBAHC;EAIF;;AAED;;EAEE,aAAY;EAFd;AAIA;;EAJA,uBAAA;EAIA,oBAAA;EAIE,UAAS;EARX,aAAA;EAIA,kBAAA;EAIE,cAAS;EALV,gCAAA;EACD,qBAAA;EAUC;;AAED;EAFC,iBAAA;EAIA;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,cAAa;EAFf,8BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,cAAa;EAFf,8BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB;;AAKA;;EAEE,kBAAiB;EAFnB,+BAAA;EAIC;;AAED;EAFC;;;;IAOG,aAAY;IACb;EACF;AACD;EACE;IAFD,aAAA;IACD;EACE;IAFD,gBAAA;IACD,aAAA;IACE;EAOA;IARF,aAAA;IAUG;EACF;AACD;EACE;IAFD,kBAAA;IACD;EAIC;;AAED;EAFC,eAAA;EAIA;;AAED;EAFC,cAAA;EAIC,0BAAyB;EAF3B,kBAAA;EAFC,wBAAA;EAIC,oBAAA;EAFF,WAAA;EAOC;AACD;EARA,qBAAA;EAOC,kCAAA;EACD,sBAAA;EARC,kBAAA;EAOA,iBAAA;EACD,SAAA;EARA,WAAA;EAOC,aAAA;EACD,YAAA;EAvBC,yCAAA;EAaA,iCAAA;EAsBA;AACD;EAXA;IAUC,cAAA;IACD,0BAAA;IAdA,kBAAA;IAaC,wBAAA;IACD,oBAAA;IApBC,WAAA;IA4BE;EACF;AACD;EACE;IAFD,QAAA;IACD;EAIC;AACD;EACE,cANF;EAOC;AAFD;EACE;IACD,gBAAA;IAFD;EAOC;AACD;EACE;IAFD,iBAAA;IACD;EAIC;;AAED;EAFC,mBAAA;EAIA;;AAED;EAFC,eAAA;EAIC,aAAY;EAFd,kBAAA;EAIC;AACD;EALA;IAIC,gBAAA;IACD;EAIC;AACD;EACE;IAFD,eAAA;IACD;EAIC;;AAED;EAFC,aAAA;EAIC,mBAAkB;EAFpB;AAIA;EAFE,kBAAA;EAID;;AAED;EAFC,cAAA;EAIC,kBAAiB;EAFnB;AAIA;EAFE,iBAAA;EAFF,qBAAA;EAIA;AAIA;EARA,gBAAA;EAUC;AAFD;EALC,uBAAA;EAUA;AALD;EARA,YAAA;EAgBC;AARD;;EAQC,qBAAA;EALD;AAUA;EALC,iCAAA;EAFD,oBAAA;EAOA;AAIA;EARA,iCAAA;EAUC;AAFD;EALC,cAAA;EAUA;AALD;EAFE,eAAA;EAUD;AARD;;EAQC,kBAAA;EALD,WAAA;EAUE,uDAAsD;EALvD,+CAAA;EAOA;AACD;EAXA,6BAAA;EAUC,mBAAA;EACD;AAIA;EALC,8BAAA;EAOA;AAFD;EALC,aAAA;EAOA,kBAAA;EAFD,qBAAA;EAOC;AACD;EARA,mBAAA;EAUC;AAFD;EALA,YAAA;EAUC;AALD;EARA,YAAA;EAgBC;AAXD;EAFA;IAaC,eAAA;IALD;EAUC;AACD;EACE;IAFD,gBAAA;IACD,qBAAA;IACE,qBAAA;IAIC;EACF;AACD;EACE,WAHC;EACF,wBAAA;EACD;AAIA;EALC,iBAAA;EAOA;AAFD;EALC;IAOA,kBAAA;IAFD;EAOC;AACD;EACE,kBATF;EAUC;AAFD;EACE,eAAA;EAID;AALD;EACE;IAID,mBAAA;IARD;EAaC;AACD;EACE,iBATF;EAUC;AAFD;EACE,iBAAA;EAID;AALD;EACE,aAAA;EAID,eAAA;EARD,mBAAA;EAaC;AACD;EARA;IAOC,uBAAA;IACD;EAIC;AACD;EACE,aANF;EAOC;AAFD;EACE,aAAA;EAID;AALD;EACE;IAID,aAAA;IARD;EAaC;;AAED;EAFC,0BAAA;EAIC,cAAa;EAFf;;AAKA;EALA,WAAA;EAOE,sBAAqB;EAFvB,kBAAA;EAIC;AACD;EALA,iBAAA;EAIC,kBAAA;EACD;AAIA;EALC,cAAA;EACD,WAAA;EAIA,YAAA;EALC,YAAA;EAUA;AACD;EAdE,aAAA;EAgBD;AAFD;EARA;IAUC,aAAA;IAFD;EAOC;AACD;EACE,WATF;EAOC,YAAA;EACD,oBAAA;EACE,SAAA;EAFD,YAAA;EACD,YAAA;EAOC;AACD;EAXA,iBAAA;EAUC,mBAAA;EACD,aAAA;EALE,kBAAA;EAID,2BAAA;EACD,qBAAA;EARA,cAAA;EAgBC;AACD;EA7BE,oBAAA;EA+BD;AAFD;EARC,gBAAA;EAUA,iBAAA;EAFD,kBAAA;EAXC,oBAAA;EAaA,oBAAA;EAOA;AACD;EARC,qBAAA;EAOA,kBAAA;EACD;AAIA;EALC,aAAA;EACD,cAAA;EAIA,kBAAA;EALC,oBAAA;EAUA;AACD;EApBC,gBAAA;EAmBA,YAAA;EACD,sBAAA;EAIC;AACD;EALA;IAIC,cAAA;IACD,kBAAA;IALA;EAUC;AACD;EACE,eArBF;EAsBC;AAFD;EACE,eAAA;EAID;AALD;EACE,WAAA;EAID,YAAA;EALD;AAUA;EALC,YAAA;EAFD,sBAAA;EAOA;AAIA;EARA,kBAAA;EAIA,oBAAA;EAIA,oBAAA;EALC,qBAAA;EACD,aAAA;EAUC;AACD;EARC,gBAAA;EAOA,kBAAA;EACD;AAIA;EALC,gBAAA;EACD,mBAAA;EAIA;AAIA;EARA;IAIA,kBAAA;IAIA,WAAA;IALC,eAAA;IACD,kBAAA;IAIA,iBAAA;IARA,SAAA;IAOC,QAAA;IACD,aAAA;IAFA,uDAAA;IAFA,+CAAA;IAgBG;EACD;IAXF,cAAA;IAaG;EAFD;IAdF,WAAA;IAgBG,YAAA;IAFD;EAOD;;AAED;EAFC,aAAA;EAIC,gBAAe;EAFjB;AAIA;EAFE,aAAA;EAID","file":"jetpack-admin-rtl.css"}plugins/jetpack/css/dashboard-widget.css.map0000755000312500031250000000213512651056012021546 0ustar eacbforgeacbforg{"version":3,"sources":["dashboard-widget.css","../scss/templates/_dashboard-widget.scss","../scss/atoms/colors/_colors.scss","../scss/_utilities/mixins/_button.scss"],"names":[],"mappings":"AAAA;;;GAGE;ACDD;;;IAIA;ADED;ECAE,6BAAU;EAAV,wBAAU;EDEX;AACD;ECCC,WAAA;EDCC,YAAW;EACX,wECAc;EDCf;AACD;;;ECIE,gBAAY;EDAb;ACEC;EACC,qBAAkB;EDAnB,oBAAmB;ECGnB;ADDF;ECGG,oBAAY;EDDd;ACEE;EACC,aC1BI;EF0BN,cAAa;ECIb;ADFF;EACE,eAAc;EACf;AACD;;;ECOG,aAAW;EDHb;ACMC;EACC,mBAAW;EACX,kBAAa;EDJf;AACD;ECOE,aAAA;EACC,eAAY;EACZ,iBAAS;EDLX;ACME;EACC,oBAAc;EDJhB,wBAAuB;ECKrB;ADHJ;EACE,gBAAe;ECShB;ADPD;EGhDC,aAAY;EHkDZ;AACD;EACE,qBAAoB;EGhDrB,uBAAA;EAEC,cAAY;EACZ,gEAA0C;EHiD3C;AACD;EACE,qBAAoB;EG9CrB,uBAAA;EACC,cAAY;EHgDZ,mCAAkC;EG3CnC;AH6CD;EG3CE,2FAA0C;EH6C3C;AACD;EACE,qBAAoB;EGxCrB,uBAAA;EAIC,cAAO;EACP,6GAAkD;EHuCnD;AACD;EACE,2BAA0B;ECd3B,gCAAO;EACN,kCAAmB;EACnB,8BAAc;EDgBf;AACD;EACE,qBAAoB;ECdpB,gBAAA;EDgBA,kBAAiB;ECdhB,4BAAU;EDgBZ;AACD;;ECZE,YAAA;EACC,aAAW;EACX,kBAAa;EDef;AACD;EACE,kBAAiB;ECZjB,qBAAA;EACC,WAAS;EACT,YAAU;EDcZ;ACXC;EACC,WAAS;EACT,YAAU;EDaZ;AACD;EACE,WAAU;EACV,YAAW;EACX,oBAAmB;EACpB","file":"dashboard-widget.css"}plugins/jetpack/css/jetpack-admin-rtl.css0000644000312500031250000034350312651056012021074 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ .j-row { width: 100%; margin: 0 auto; } .j-row:before, .j-row:after { content: " "; display: table; } .j-row:after { clear: both; } .j-col { padding: 0.85em; width: 100%; float: right; position: relative; } @media only screen { .j-sm-1 { width: 8.33333%; } .j-sm-2 { width: 16.66667%; } .j-sm-3 { width: 25%; } .j-sm-4 { width: 33.33333%; } .j-sm-5 { width: 41.66667%; } .j-sm-6 { width: 50%; } .j-sm-7 { width: 58.33333%; } .j-sm-8 { width: 66.66667%; } .j-sm-9 { width: 75%; } .j-sm-10 { width: 83.33333%; } .j-sm-11 { width: 91.66667%; } .j-sm-12 { width: 100%; } } @media (min-width: 530px) { .j-md-1 { width: 8.33333%; } .j-md-2 { width: 16.66667%; } .j-md-3 { width: 25%; } .j-md-4 { width: 33.33333%; } .j-md-5 { width: 41.66667%; } .j-md-6 { width: 50%; } .j-md-7 { width: 58.33333%; } .j-md-8 { width: 66.66667%; } .j-md-9 { width: 75%; } .j-md-10 { width: 83.33333%; } .j-md-11 { width: 91.66667%; } .j-md-12 { width: 100%; } } @media (min-width: 782px) { .j-lrg-1 { width: 8.33333%; } .j-lrg-2 { width: 16.66667%; } .j-lrg-3 { width: 25%; } .j-lrg-4 { width: 33.33333%; } .j-lrg-5 { width: 41.66667%; } .j-lrg-6 { width: 50%; } .j-lrg-7 { width: 58.33333%; } .j-lrg-8 { width: 66.66667%; } .j-lrg-9 { width: 75%; } .j-lrg-10 { width: 83.33333%; } .j-lrg-11 { width: 91.66667%; } .j-lrg-12 { width: 100%; } } body, button, input, select, textarea { color: #222; font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.4; -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, h6 { color: #222; clear: both; } a { color: #0d72b2; transition: color .2s; text-decoration: none; } a:visited { color: #0d72b2; } a:hover { color: #0f92e5; } a:focus { outline: thin dotted; } address { margin: 0 0 1.5em; } abbr[title], acronym { cursor: help; } ins { background: #eee; text-decoration: none; } dt { font-weight: 700; } fieldset { border: 0; margin: 0; padding: 0; } textarea { resize: vertical; } hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } img { vertical-align: middle; } @-webkit-keyframes "grow" { 0% { -webkit-transform: scale(0.3); transform: scale(0.3); } 60% { -webkit-transform: scale(1.15); transform: scale(1.15); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes "grow" { 0% { -webkit-transform: scale(0.3); transform: scale(0.3); } 60% { -webkit-transform: scale(1.15); transform: scale(1.15); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes "candy" { 0% { -webkit-transform: scale(1); transform: scale(1); } 20% { -webkit-transform: scale(1.15); transform: scale(1.15); } 60% { -webkit-transform: scale(0.95); transform: scale(0.95); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes "candy" { 0% { -webkit-transform: scale(1); transform: scale(1); } 20% { -webkit-transform: scale(1.15); transform: scale(1.15); } 60% { -webkit-transform: scale(0.95); transform: scale(0.95); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes "flyer" { 0% { -webkit-transform: translate3d(0px, 0px, 0px); transform: translate3d(0px, 0px, 0px); } 100% { -webkit-transform: translate3d(680px, -680px, 0px); transform: translate3d(680px, -680px, 0px); } } @keyframes "flyer" { 0% { -webkit-transform: translate3d(0px, 0px, 0px); transform: translate3d(0px, 0px, 0px); } 100% { -webkit-transform: translate3d(680px, -680px, 0px); transform: translate3d(680px, -680px, 0px); } } .button, .download-jetpack { transition: all .1s ease-in-out; } .jp-button, .jp-button--settings { display: inline-block; position: relative; padding: 0.76923em 1.46154em; color: #efefef; font: 800 0.9285714286em/1 'Open Sans', Helvetica, sans-serif; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; border-radius: 3px; } .jp-button:visited, .jp-button--settings:visited { color: #efefef; } .jp-button:hover, .jp-button--settings:hover, .jp-button:focus, .jp-button--settings:focus { color: #fff; background: #57972d; } .jp-button:active, .jp-button--settings:active { background: #57972d; opacity: 0.8; } .jp-button--settings { background: #93b45f; color: #e8eedf; } .jp-button--settings:visited { color: #e8eedf; } .jp-button--settings:hover, .jp-button--settings:focus { background: #9fbd72; color: #fff; } .jp-button--settings.current { background: #3c6621; color: #fff; box-shadow: inset 0 2px 0 #365A1F, inset 0 1px 3px #3c6621; } .download-jetpack { display: inline-block; position: relative; padding: 0.64286em 0.85714em 0.53571em; color: #fff; font: 400 20px/1 "proxima-nova", 'Open Sans', Helvetica, sans-serif; background: #518d2a; z-index: 3; border-radius: 6px; box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4); } .download-jetpack:visited { color: #fff; } .download-jetpack:hover, .download-jetpack:focus { color: #fff; background: #57972d; box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4); } .download-jetpack:active { top: 6px; box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.4); } .download-jetpack:active:after { top: -6px; } .download-jetpack:before { content: ''; display: inline-block; position: relative; top: -2px; margin-left: 13px; width: 30px; height: 30px; vertical-align: middle; background: url("../images/connect-plug.svg") center center no-repeat; background-size: 100%; } .download-jetpack:after { content: ''; position: absolute; top: 0; right: 0; width: 100%; height: 100%; } @media (max-width: 1147px) { .download-jetpack { font-size: 1.28571em; } .download-jetpack:before { top: -1px; width: 23px; height: 23px; } } @media (max-width: 900px) { .download-jetpack:active { top: 0; } } @media (max-width: 530px) { .download-jetpack { font-size: 1.21429em; font-weight: 600; } .download-jetpack:before { width: 19px; height: 19px; margin-left: 9px; } } #searchsubmit { display: inline-block; border: none; position: relative; padding: 0.71429em 1.5em; color: #efefef; font: 800 0.8em/1 'Open Sans', Helvetica, sans-serif; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; outline: none; border-radius: 3px; } #searchsubmit:visited { color: #efefef; } #searchsubmit:hover, #searchsubmit:focus { color: #fff; background: #2aa0d5; } #searchsubmit:active { opacity: 0.7; } @font-face { font-family: 'automatticons'; src: url("../_inc/fonts/automatticons/automatticons.eot"); src: url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/automatticons/automatticons.woff") format("woff"), url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"), url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg"); font-weight: normal; font-style: normal; } @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.eot"); src: url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/jetpack/jetpack.woff") format("woff"), url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"), url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio: 0) { @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); } } .nav-horizontal a { display: inline-block; } .nav-horizontal li { position: relative; float: right; } .nav-horizontal ul { margin: 0; padding: 0; } *, *:before, *:after { -moz-box-sizing: border-box; box-sizing: border-box; } ::-moz-selection { background: #91bd51; color: #fff; text-shadow: none; } ::selection { background: #91bd51; color: #fff; text-shadow: none; } #wpbody-content { padding-bottom: 0; } #wpcontent { margin-right: 160px; padding: 0; } ul#adminmenu a.toplevel_page_jetpack:after { border-left-color: #81a844; } .folded #wpcontent { margin-right: 36px; } .jp-content { background: #f9f9f9; margin: 0; height: auto; min-height: 100%; width: 100%; width: 100%; -webkit-font-smoothing: antialiased; } .jp-content .wrapper { background: #f9f9f9; } @media (max-width: 900px) { #wpcontent, .auto-fold #wpcontent, .auto-fold #wpfooter, .modal, .configure .frame.top.fixed { margin-right: 36px; padding-right: 0; } } @media (max-width: 782px) { #wpcontent, .auto-fold #wpcontent, .auto-fold #wpfooter, .modal, .configure .frame.top.fixed { margin-right: 0; } } @media (max-width: 782px) { .configure .frame.top.fixed { padding-right: 0; } } .wrap.inner, .page-content { max-width: 950px; margin: 0 auto; } .wrap.inner li, .page-content li { line-height: 23px; } @media (max-width: 530px) { .page-content { margin-top: 0; } } @media (max-width: 1147px) { .wrap.inner { background: #f9f9f9; padding: 15px; } } @media (max-width: 530px) { .wrap.inner { margin-top: 1.71429em; } } .jetpack_page_jetpack_modules .header-nav { margin: 0; } .jetpack_page_jetpack_modules .page-content { max-width: 1200px; min-height: 500px; margin: 0; } .page-content.about { position: relative; z-index: 10; } @media (max-width: 1147px) { .page-content.about { background: #f9f9f9; padding: 15px; } } @media (max-width: 1147px) { .page-content.configure { background: #f9f9f9; } } .footer nav { max-width: 550px; margin: 0 auto; } .header { right: 0; left: 0; background: #81a844; } .header-nav li { line-height: 60px; } .header-nav a { padding: 0 0.71429em; line-height: 24px; } .header-nav .jetpack-logo a { display: inline-block; position: relative; width: 214px; margin-left: 6px; background: url(../images/jetpack-logo.png) center center no-repeat; background: url(../images/jetpack-logo.svg) center center no-repeat, none; background-size: 183px auto; color: #fff; line-height: 60px; font-weight: normal; } .header-nav .jetpack-logo a span { text-indent: -9999px; visibility: hidden; } .header-nav .jetpack-logo a:before { content: ''; position: absolute; top: 0; right: 0; width: 100%; height: 100%; background-size: 183px 32px; } .header-nav .jetpack-modules + .jetpack-modules { margin-right: 15px; } .main-nav { float: right; } .main-nav li { margin: 0; } @media (max-width: 900px) { .main-nav { font-size: 13px; } } .user-nav { float: left; } .user-nav li { margin: 0; } .jetpack-pagestyles #screen-meta { margin: 0; } .jetpack-pagestyles #screen-meta-links .screen-meta-toggle { z-index: 2; } .jetpack-pagestyles #screen-options-link-wrap, .jetpack-pagestyles #contextual-help-link-wrap { border: none; } .jetpack-pagestyles .update-nag { display: none; } .masthead { position: relative; text-align: center; z-index: 1; background-color: #81a844; background-image: linear-gradient(top, #81a844, #8eb74e); } .masthead.hasbutton .flyer { bottom: -270px; } .masthead.hasbutton .subhead { margin-top: 175px; } @media (max-width: 530px) { .masthead.hasbutton .subhead { margin-top: 105px; padding: 0; } } .masthead h1, .masthead h2 { margin: 0 auto; } .masthead h1 { padding: 2.5em 0 1.11111em; max-width: 21.94444em; color: #fff; font: 300 2.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; position: relative; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.12); z-index: 3; } .masthead h1 + .flyby { margin-top: 180px; } @media (max-width: 1147px) { .masthead h1 { padding-top: 1.83333em; font-size: 2.14286em; } } @media (max-width: 782px) { .masthead h1 { max-width: 600px; font-size: 28px; } } @media (max-width: 530px) { .masthead h1 { margin: 0 15px; padding: 31px 0 15px 0; font-size: 21px; font-weight: 400; } } .jetpack-connected .masthead h1 { margin-bottom: 33px; max-width: 600px; } .flyer { position: absolute; bottom: -200px; right: 4%; z-index: 1; -webkit-animation: flyer 3.4s 2s ease-in-out; animation: flyer 3.4s 2s ease-in-out; } .flyer:nth-child(2) { right: 49%; width: 120px; height: 131px; -webkit-animation-delay: 4.6s; animation-delay: 4.6s; -webkit-animation-duration: 2.4s; animation-duration: 2.4s; } .flyer:nth-child(3) { right: 23%; width: 60px; height: 66px; -webkit-animation-delay: 5.8s; animation-delay: 5.8s; -webkit-animation-duration: 4.5s; animation-duration: 4.5s; } .subhead { position: relative; margin-top: 105px; padding: 4em 0; background: #f9f9f9; z-index: 2; } .subhead h2 { max-width: 460px; color: #5d6d74; font: 400 1.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 1px #fff; } @media (max-width: 900px) { .subhead h2 { max-width: 428px; font-size: 20px; } } @media (max-width: 530px) { .subhead h2 { display: none; } } .subhead:after { content: ''; position: absolute; bottom: 100%; right: 0; margin-bottom: -1px; width: 100%; height: 228px; background: url("../images/the-cloud.svg") center bottom repeat-x; pointer-events: none; z-index: -1; } @media (max-width: 1147px) { .subhead { margin-top: 122px; padding: 70px 0 49px; } .subhead:after { background-size: 160% auto; } } @media (max-width: 900px) { .subhead { margin-top: 122px; padding: 70px 0 49px; } } @media (max-width: 530px) { .subhead { margin-top: 83px; padding: 47px 15px 39px; } } .clouds-sm { height: 100px; position: relative; text-align: center; z-index: 1; background-color: #81a844; background-image: linear-gradient(top, #81a844, #89b348); } .clouds-sm:after { content: ''; position: absolute; bottom: 0; right: 0; margin-bottom: -1px; width: 100%; height: 137px; background: url("../images/the-cloud-sm.svg") center bottom repeat-x; pointer-events: none; z-index: 2; } @media (max-width: 530px) { .clouds-sm { height: 90px; } } .featured { border-top: 1px solid #d6d6d6; border-bottom: 1px solid #d6d6d6; background: #fff; position: relative; padding: 2.0em 1em 4.6em 1em; text-align: center; z-index: 1; } .featured:before { content: ""; display: block; position: absolute; top: 0; height: 100%; z-index: -1; } .featured .features, .featured .modules { margin: 0 auto; display: inline-block; } @media (max-width: 530px) { .featured { display: none; } } .featured h2, .module-grid h2 { margin-top: 1em; color: #5d6d74; font: 300 2em/1em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-align: center; } @media (max-width: 900px) { .featured h2, .module-grid h2 { font-size: 30px; } } @media (max-width: 782px) { .featured h2, .module-grid h2 { font-size: 28px; } } .features, .modules { margin: 0 -5px; } .feature, .module { position: relative; float: right; margin: 0 5px 10px; width: 310px; transition: all .2s ease-in-out; } @media (max-width: 1147px) { .feature, .module { margin: .75% 1.5% .75% 0; width: 32.333333%; transition: none; } .feature:nth-child(3n + 1), .module:nth-child(3n + 1) { margin-right: 0; } .feature:hover, .module:hover { top: 0; box-shadow: none; } } .feature { -webkit-transform: translateZ(0); transform: translateZ(0); } .feature h3 { margin: 0 0 0.58824em; color: #697b84; font-size: 1.21429em; line-height: 1em; font-weight: 800; } .feature p { margin: 0; color: #6e818a; } .feature:before { content: ''; position: absolute; bottom: 0; right: 0; width: 100%; height: 10px; background: rgba(0, 0, 0, 0.02); z-index: -1; -webkit-transform: translateZ(0); transform: translateZ(0); transition: all .2s ease-in-out; } .feature:hover { -webkit-transform: translateY(-5px); -ms-transform: translateY(-5px); transform: translateY(-5px); } .feature:hover h3 { color: #1a8dba; } .feature:hover .feature-img { border: 1px solid #ccc; border-bottom: none; } .feature:hover .no-border { border: none; } .feature:hover:before { -webkit-transform: translateY(5px); -ms-transform: translateY(5px); transform: translateY(5px); } @media (max-width: 1147px) { .feature:hover h3 { color: #6e818a; } .feature:hover .feature-img { border: 1px solid #ddd; border-bottom: none; } .feature:hover .no-border { border: none; } } .feature .feature-img { padding-top: 52%; width: 100%; height: auto; border: 1px solid #ddd; border-bottom: none; } .feature .feature-img.custom-css { background: url("../images/custom-css.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.custom-css { background-image: url("../images/custom-css@2x.jpg"); } } .feature .feature-img.wordpress-connect { background: url("../images/wordpress-connect.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.wordpress-connect { background-image: url("../images/wordpress-connect@2x.jpg"); } } .feature .feature-img.wordpress-stats { background: url("../images/wordpress-stats.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.wordpress-stats { background-image: url("../images/wordpress-stats@2x.jpg"); } } .feature .feature-img.no-border { border: none; padding-bottom: 1px; } .feature-description { display: block; padding: 1em 1.07143em 1.07143em; border: 1px solid #ddd; background: #f5f5f5; } .feature:hover .feature-description { background: #fff; border-color: #ccc; } @media (max-width: 1147px) { .feature:hover .feature-description { border: 1px solid #ddd; background: #f5f5f5; } } @media (max-width: 900px) { .feature-description { min-height: 115px; } } .cat { clear: both; margin-bottom: 23px; } .cat h3 { font-size: 24px; font-weight: 300; margin: 0 6px 13px 0; text-align: right; } .cat .clear { clear: both; } .module-grid { text-align: center; } .module-grid h2 { margin: 1em 0; } @media (max-width: 530px) { .module-grid h2 { padding-top: 16px; margin-top: 0; font-size: 25px; } } #module-search { position: relative; width: 100%; max-width: 40.71429em; margin: 0 auto 1.07143em; overflow: hidden; } #jetpack-search { margin: 0; padding: 11px 16px 11px 16px; width: 100%; border: 1px solid #c9ced0; border-radius: 3px; background: #fff; color: #5c6671; line-height: 1.3; } #jetpack-search:focus { color: #5c6671; outline: none; } #jetpack-search:focus + label { background: transparent; opacity: 0; } #jetpack-search::-webkit-input-placeholder { color: #a8acae; } #jetpack-search :-moz-placeholder { color: #a8acae; } #jetpack-search::-moz-placeholder { color: #a8acae; } #jetpack-search:-ms-input-placeholder { color: #a8acae; } #jetpack-search + label { position: absolute; top: 1px; left: 1px; bottom: 1px; width: 48px; color: #abafb1; text-indent: -9999px; pointer-events: none; border-radius: 3px; transition: all .2s ease-in-out; } #jetpack-search + label:after { content: '\f400'; position: absolute; left: 11px; text-align: left; top: 4px; font-size: 1.71429em; font-weight: normal; font-family: "genericons"; } .jp-filter { margin-bottom: 2.85714em; color: #6f7476; } .jp-filter a { display: inline-block; position: relative; padding: 0.76923em 1.46154em; color: #aaa; font: 600 0.92857em/1 "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 1px rgba(255, 255, 255, 0.2); background: #eee; border-radius: 3px; background-clip: padding-box; } .jp-filter a.selected, .jp-filter a:hover, .jp-filter a:focus { color: #efefef; text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; } @media (max-width: 530px) { .jp-filter a { padding: 0.76em 1em; } } .module { display: block; padding: 0.71429em 1.07143em 1em; text-align: right; border: 1px solid #dae0e2; background: #fff; box-shadow: 0 0 0 rgba(0, 0, 0, 0.03); transition: opacity 2s ease-in; } .module:hover { border-color: #8ac9e8; background: #f8fcfe; } .module h3 { cursor: pointer; margin: 0 0 0.5em; color: #1a8dba; font-size: 1.14286em; line-height: 1.4em; font-weight: 700; } .module p { margin: 0; color: #686f72; font-size: 0.85714em; } .module:hover, .module:focus { border-color: #8ac9e8; background: #f8fcfe; } .module.active { border-color: #2ea2cc; box-shadow: inset -4px 0 0 #2ea2cc; } .module.active:hover { border-color: #69bedd; box-shadow: inset -4px 0 0 #69bedd; } .module .button, .module .button-primary { margin-top: 15px; } @media (max-width: 530px) { .module .configure, .module .activate { display: block; width: 100%; text-align: center; } .module .button, .module .button-primary { width: 50%; } .module .button-primary { line-height: normal; padding: 6px 14px; height: auto; font-size: 14px; } } @media screen and (max-width: 450px) { .module .button, .module .button-primary { margin: 20px auto 0 auto; } .module .button.alignright, .module .button-primary.alignright { float: none; } } @media (max-width: 1147px) { .cat .module:nth-child(3n + 1) { margin: .75% 1.5% .75% 0; } .cat .module:nth-child(3n - 1) { margin-right: 0; } } @media (max-width: 900px) { .cat .module { margin: 1% 2% 1% 0; } .cat .module:nth-child(2n + 1) { margin: 1% 2% 1% 0; } .cat .module:nth-child(2n + 0) { margin-right: 0; } } @media (max-width: 530px) { .cat .module { margin: 5px 0; } .cat .module:nth-child(2n + 1) { margin-right: 0; } .cat .module:nth-child(2n + 0) { margin-right: 0; } } @media (max-width: 900px) { .module { margin: 1% 2% 1% 0; width: 49%; } .module:nth-child(3n + 1) { margin-right: 2%; } .module:nth-child(2n + 1) { margin-right: 0; } } @media (max-width: 530px) { .module { margin: 5px 0; width: 100%; } .module:nth-child(3n + 1) { margin-right: 0; } .module:nth-child(2n + 1) { margin-right: 0; } } .new { position: relative; } .new:after { content: 'NEW'; position: absolute; top: -8px; left: -8px; padding-top: 10px; width: 32px; height: 32px; color: #fff; font-size: 8px; font-weight: 800; text-align: center; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); background: url("../images/new-badge.svg") center center no-repeat; background-size: 100%; border-radius: 50%; } .paid { display: inline-block; position: relative; top: 5px; margin-right: 10px; padding: 1px 4px 0 6px; height: 13px; color: #fff; font: 700 10px/1 "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.05); background: #d0d0d0; vertical-align: top; } .paid:before, .paid:after { position: absolute; top: 0; left: 100%; font: normal 14px/14px "genericons"; } .paid:before { content: '\f503'; color: #d0d0d0; text-shadow: none; } .paid:after { content: '\f428'; margin-left: -5px; font-size: 11px; } .rtl .paid:before { content: '\f501'; } .load-more { margin: 2.71429em 0 6.15385em; } .set { display: none; } .show.set { display: block; } .loading { bottom: 50%; position: absolute; top: 50%; width: 100%; } .loading span { color: #999; } .modal { background: #fff; position: fixed; top: 52px; bottom: 20px; left: 20px; right: 20px; margin-right: 160px; display: none; box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); z-index: 500; } .modal .close { position: absolute; top: 0; left: 0; font: 300 1.71429em "genericons" !important; color: #777; content: '\f405'; display: inline-block; padding: 0.28571em 0.71429em 0.42857em; z-index: 5; } .modal .close:hover { background: #eee; opacity: 0.8; } .modal .close:active { background: #eee; opacity: 0.4; } .modal #jp-post-flair { display: none; } .modal .content-container { position: absolute; top: 0; left: 0; bottom: 0; right: 0; overflow: auto; padding: 2.14286em; } .modal .content { margin: 0 auto; max-width: 900px; text-align: right; } .modal h2 { text-align: right; margin-top: 0; color: #5d6d74; font: 300 32px "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 1px #fff; } @media (max-width: 530px) { .modal h2 { font-size: 26px; } } .modal h5 { clear: right; } .modal p { font-size: 1.23077em; } .modal footer { position: absolute; right: 0; bottom: 0; width: 100%; padding: 12px 20px; border-top: 1px solid #ddd; background: #fff; text-align: left; } .modal footer ul { margin: 0; } .modal footer li { display: inline-block; margin: 0; } .modal .button-secondary, .modal .button-primary:active { vertical-align: baseline; } @media (max-width: 900px) { .modal { bottom: 5%; margin-right: 36px; font-size: 80%; } .modal .content { top: 38px; } } @media (max-width: 782px) { .modal { top: 66px; margin-right: 0; } } @media (max-width: 600px) { .modal { top: 10px; left: 10px; bottom: 10px; right: 10px; } } .jp-info-img { float: left; margin: 0 30px 30px 0; } .jp-info-img img { border: 1px solid #ddd; max-width: 100%; height: auto; } .jp-info-img img:first-child { margin-top: 0; } @media (max-width: 782px) { .jp-info-img { float: none; margin: 0 0 15px; } } .content-container.modal-footer { bottom: 53px; } .shade { background: #000; bottom: 0; cursor: pointer; display: none; right: 0; opacity: 0.2; position: fixed; left: 0; top: 0; z-index: 11; } .entry-title, .page-template-default h1 { margin-top: 0.61111em; color: #5d6d74; font: 300 2.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 1px #fff; } @media (max-width: 530px) { .entry-title, .page-template-default h1 { font-size: 2em; } } .blog h3, .single h3, .page-template-default h2 { margin-top: 0.61111em; color: #5d6d74; font: 300 1.9em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 1px #fff; } @media (max-width: 530px) { .blog h3, .single h3, .page-template-default h2 { font-size: 1.4em; } } .page-template-default p { line-height: 1.71429em; } .blog .type-post, .page-template-default .type-page, .single .type-post, .single .type-jetpack_support { float: right; width: 70%; } .footer { margin-top: 1.42857em; position: relative; padding: 10em 0 4.28571em; text-align: center; } .footer:before, .footer:after { content: ''; position: absolute; right: 0; pointer-events: none; } .footer:before { top: 0; margin-top: -1px; width: 100%; height: 195px; } .footer:after { display: none; } .footer .download-jetpack { margin-bottom: 33px; } @media (min-width: 1147px) { .footer { padding-bottom: 35px; } } @media (max-width: 1147px) { .footer { padding-top: 165px; padding-bottom: 0; /*&:after { display: none; }*/ } .footer:before { background-size: 160% auto; } .footer ul { float: none; overflow: hidden; } } @media (max-width: 900px) { .footer { padding-top: 146px; } } @media (max-width: 782px) { .footer { margin-top: 0; } } @media (max-width: 530px) { .footer { margin-top: 0; padding-top: 135px; } } @media (max-width: 320px) { .footer { padding-top: 76px; } } .footer nav { max-width: 100%; } .footer nav a, .footer nav a:visited { padding: 4px 6px; color: #999; } .footer nav a:hover, .footer nav a:focus, .footer nav a:visited:hover, .footer nav a:visited:focus { color: #81A844; } @media (max-width: 1147px) { .footer nav a:hover, .footer nav a:focus, .footer nav a:visited:hover, .footer nav a:visited:focus { color: #81a844; } } @media (max-width: 530px) { .footer nav li { display: block; float: none; margin: 0; text-align: right; } .footer nav a { display: block; padding: 0 16px; line-height: 44px; } } .primary { padding: 25px 15px 10px 15px; border-bottom: 1px solid #eee; } .secondary-footer { margin: 0 auto; } .secondary-footer li { margin-left: 5px; } @media (min-width: 782px) { .secondary-footer { padding: 8px 15px 10px; margin-bottom: 30px; border-bottom: 1px solid #eee; } } @media (min-width: 1147px) { .secondary-footer { margin-bottom: 0; } } @media (max-width: 782px) { .secondary-footer { padding: 8px 15px 8px; border-bottom: none; } } @media (max-width: 530px) { .secondary-footer { margin: 0; padding: 0; border: none; font-weight: 400; } .secondary-footer a { border-top: 1px solid #eee; } } .footer .a8c-attribution { margin: 0; padding: 0 6px; color: #bbb; font-size: 0.78571em; font-family: "Gill Sans", "Gill Sans MT", "Open Sans", Helvetica, Arial, sans-serif; text-transform: uppercase; } .footer .a8c-attribution a { display: inline-block; position: relative; padding: 4px 16px; left: 9999px; outline: 0; } .footer .a8c-attribution a:after { content: 'A'; position: absolute; top: 2px; left: -9999px; height: 100%; color: #999; font-size: 1.54545em; font-family: "automatticons"; text-align: center; } .footer .a8c-attribution a:hover:after { -webkit-animation: candy .4s ease-in-out; animation: candy .4s ease-in-out; } @media (min-width: 782px) { .secondary { padding: 0 15px 10px 15px; border-bottom: 1px solid #eee; } } @media (min-width: 1147px) { .secondary { padding: 0 15px 10px 15px; border-bottom: none; } } .jetpack-message { background: #8eb74e; border: 1px solid #73963d; margin: 33px auto 0; max-width: 90%; position: relative; z-index: 2; } .jetpack-message.is-opt-in { margin: 50px 0 0; max-width: 100%; padding: 10px 15px; background: #fff; border: 0; box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1); font-size: 13px; text-align: center; } .subhead .jetpack-message.is-opt-in { margin: 0; padding-bottom: 0; background: transparent; box-shadow: none; } .subhead .jetpack-message.is-opt-in .jp-button, .subhead .jetpack-message.is-opt-in .jp-button--settings { display: inline-block; } .jetpack-message.is-opt-in p { color: #3c4549; } .jetpack-message.is-opt-in .jp-button, .jetpack-message.is-opt-in .jp-button--settings { margin-top: 15px; display: none; } .jetpack-message .squeezer h2 { font-size: 1em; } .jetpack-message h2 { color: #fff; margin: 0; } .jetpack-message p { color: #fff; margin: 0; opacity: 0.7; } .jetpack-message .squeezer { padding: 23px 80px 23px 23px; position: relative; text-align: right; } .jetpack-message .squeezer:before { color: #fff; content: '\f418'; font-family: 'Genericons'; font-size: 33px; height: 33px; right: 25px; opacity: 0.6; position: absolute; top: 23px; top: calc( 50% - 22px ); } @media (max-width: 530px) { .jetpack-message .squeezer { padding: 23px; } .jetpack-message .squeezer:before { display: none; } } .jetpack-message .squeezer a { color: #FFF; border-bottom: 1px solid #D5E4BD; } .jetpack-message .squeezer a:hover { border-bottom: 1px solid #F1F6E9; } .jetpack-message.error .squeezer:before, .jetpack-message.jetpack-err .squeezer:before { content: '\f414'; } .configure-module .jetpack-message { max-width: 100%; } .jetpack-modules #site-icon-deprecated .info, .modules h3.icon, .jetpack-modules .info a { width: auto; } .jetpack-modules #site-icon-deprecated .info:before, .modules h3.icon:before, .jetpack-modules .info a:before { display: inline-block; position: relative; top: 1px; right: -3px; margin-left: 2px; opacity: 0.8; font: normal 20px "genericons"; vertical-align: top; } .jetpack-modules .info a:before { margin-top: 1px; } .latex:before, .jetpack-modules #latex .info a:before { content: '\f408'; } .carousel:before, .jetpack-modules #carousel .info a:before { content: '\f102'; } .modules h3.contact-form:before, .jetpack-modules #contact-form .info a:before { content: '\f175'; font: normal 20px "dashicons"; } .modules h3.custom-css:before, .jetpack-modules #custom-css .info a:before { content: '\f100'; font: normal 20px "dashicons"; } .modules h3.enhanced-distribution:before, .jetpack-modules #enhanced-distribution .info a:before { content: '\f237'; font: normal 20px "dashicons"; } .modules h3.widgets:before, .jetpack-modules #widgets .info a:before { content: '\f116'; font: normal 20px "dashicons"; } .modules h3.gravatar-hovercards:before, .jetpack-modules #gravatar-hovercards .info a:before { content: 'G'; font-family: "automatticons"; } .infinite-scroll:before, .jetpack-modules #infinite-scroll .info a:before { content: '\f408'; } .comments:before, .jetpack-modules #comments .info a:before { content: '\f108'; } .sso:before, .jetpack-modules #sso .info a:before { content: '\f205'; } .json-api:before, .jetpack-modules #json-api .info a:before { content: '\f415'; } .likes:before, .jetpack-modules #likes .info a:before { content: '\f408'; } .markdown:before, .jetpack-modules #markdown .info a:before { content: '\f462'; } .minileven:before, .jetpack-modules #minileven .info a:before { content: '\f453'; } .manage:before, .jetpack-modules #manage .info a:before { content: '\f205'; } .monitor:before, .jetpack-modules #monitor .info a:before { content: '\f468'; } .notes:before, .jetpack-modules #notes .info a:before { content: '\f300'; } .omnisearch:before, .jetpack-modules #omnisearch .info a:before { content: '\f400'; } .photon:before, .jetpack-modules #photon .info a:before { content: '\f403'; } .post-by-email:before, .jetpack-modules #post-by-email .info a:before { content: '\f410'; } .protect:before, .jetpack-modules #protect .info a:before { content: '\f470'; position: relative; top: -1px; } .modules h3.publicize:before, .jetpack-modules #publicize .info a:before { content: '\f237'; font: normal 20px "dashicons"; } .related-posts:before, .jetpack-modules #related-posts .info a:before { content: '\f420'; } .sharedaddy:before, .jetpack-modules #sharedaddy .info a:before { content: '\f415'; } .shortcodes:before, .jetpack-modules #shortcodes .info a:before { content: '\f100'; } .verification-tools:before, .jetpack-modules #verification-tools .info a:before { content: '\f425'; } .after-the-deadline:before, .jetpack-modules #after-the-deadline .info a:before { content: '\f411'; } .subscriptions:before, .jetpack-modules #subscriptions .info a:before { content: '\f410'; } .tiled-gallery:before, .jetpack-modules #tiled-gallery .info a:before { content: '\f103'; } .modules h3.vaultpress:before, .jetpack-modules #vaultpress .info a:before { content: 'V'; font-family: "automatticons"; } .videopress:before, .jetpack-modules #videopress .info a:before { content: '\f104'; } .modules h3.widget-visibility:before, .jetpack-modules #widget-visibility .info a:before { content: '\f116'; font: normal 20px "dashicons"; } .stats:before, .jetpack-modules #stats .info a:before { content: '\f205'; } .shortlinks:before, .jetpack-modules #shortlinks .info a:before { content: '\f107'; } .modules h3.custom-content-types:before, .jetpack-modules #custom-content-types .info a:before { content: '\f498'; font: normal 20px "dashicons"; } .modules h3.site-icon:before, .jetpack-modules #site-icon .info a:before { content: '\f475'; } .jetpack-modules #site-icon-deprecated .info:before { content: '\f475'; } .jetpack-modules #sitemaps .info a:before { content: '\f507'; } @media (max-width: 782px) { .blog .type-post, .page-template-default .type-page, .single .type-post, .single .type-jetpack_support { width: 100%; } } @media (max-width: 600px) { .clouds-sm { display: none; } } @media (max-width: 530px) { .wrap.inner.jp-support .jp-support-column-left { width: 100%; } .wrap.inner.jp-support .jp-support-column-left .widget-text { margin-left: 0; width: 100%; } .wrap.inner.jp-support .jp-support-column-right { width: 100%; } } @media screen and (max-width: 515px) { .jp-frame .header-nav { padding-bottom: 10px; } .jp-frame .header-nav li { line-height: 30px; } .jp-frame .header-nav .jetpack-logo { width: 100%; text-align: center; } .jp-frame .header-nav .jetpack-modules { margin: 0; width: 50%; text-align: left; padding: 0 5px; } .jp-frame .header-nav .jetpack-modules + .jetpack-modules { text-align: right; } .jp-frame .header-nav .jetpack-modules:nth-child(4) { text-align: center; margin: 0 auto; width: 100%; } .jp-frame .header-nav .jetpack-modules:nth-child(4) a { padding: 0 10px; } } @media (max-width: 320px) { .jetpack_page_jetpack_modules .wrap { padding: 0 0 1em; } } .page-content.configure { margin-top: 0; } .configure .frame.top { border: none; box-shadow: none; padding-top: 1.42857em; position: relative; top: auto; } .configure .frame.top.fixed { background: #f9f9f9; border-bottom: 1px solid #e9e9e9; padding-right: 160px; margin-top: -6px; position: fixed; left: 0; top: 32px; width: 100%; z-index: 4; box-shadow: 0 2px 2px -2px #eee; } @media (max-width: 782px) { .configure .frame.top.fixed { border: none; box-shadow: none; padding-top: 1.42857em; position: relative; top: auto; } } @media (max-width: 600px) { .configure .frame.top.fixed { top: 0; } } .configure .frame.top .tablenav.top { float: right; } @media (max-width: 900px) { .configure .frame.top .tablenav.top .actions { display: block; } } @media (max-width: 782px) { .configure .frame.top .tablenav.top .actions { margin-top: 6px; } } .jp-frame-top-fixed .configure { padding-top: 94px; } .filter-search { display: none; float: left; margin-top: 10px; } @media (max-width: 782px) { .filter-search { display: block; } } @media (max-width: 530px) { .filter-search { display: none; } } .module-actions.landing-page { float: left; margin-left: 15px; } .module-actions.landing-page a { font-size: 0.6em; } .table-bordered.jetpack-modules { border: none; margin-bottom: 0; } .table-bordered.jetpack-modules tr.jetpack-module th { border-right: 0; padding: 14px 4px 0; } .table-bordered.jetpack-modules tr.jetpack-module th input { display: block; } .table-bordered.jetpack-modules tr.jetpack-module:hover .genericon { display: inline-block; } .table-bordered.jetpack-modules tr.jetpack-module:hover td .row-actions span a { opacity: 1; } .table-bordered.jetpack-modules tr.jetpack-module.active th, .table-bordered.jetpack-modules tr.jetpack-module.active td { background: #f7fcfe; } .table-bordered.jetpack-modules tr.jetpack-module.active th { border-right: 4px solid #2ea2cc; padding-right: 0px; } .table-bordered.jetpack-modules tr.jetpack-module.active td:first-child { border-right: 4px solid #2ea2cc; } .table-bordered.jetpack-modules tr.jetpack-module.unavailable { opacity: 0.3; } .table-bordered.jetpack-modules tr.jetpack-module.unavailable input { display: none; } .table-bordered.jetpack-modules tr.jetpack-module#vaultpress { opacity: 1; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated span { color: #888; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg { margin-left: 10px; color: #555; } .table-bordered.jetpack-modules tr.jetpack-module th, .table-bordered.jetpack-modules tr.jetpack-module td { background: #fff; margin: 0; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); } .table-bordered.jetpack-modules tr.jetpack-module td { padding: 10px 14px 8px 10px; line-height: 25px; } .table-bordered.jetpack-modules tr.jetpack-module td:first-child { border-right: 4px solid #fff; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { float: left; padding: 0 0 1px; visibility: visible; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span { margin-right: 5px; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a { opacity: 0; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a:focus { opacity: 1; } @media (max-width: 530px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: none; } } @media (max-width: 782px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: block; padding-right: 10px; visibility: visible; } } .table-bordered.jetpack-modules > thead > tr > th { border: 0; vertical-align: middle; } .table-bordered.jetpack-modules > thead > tr > th:last-child { padding-left: 0; } @media (max-width: 782px) { .table-bordered.jetpack-modules > thead > tr > th:last-child { padding-right: 0; } } .table-bordered.jetpack-modules td { background: #fff; } .table-bordered.jetpack-modules #doaction { margin-top: 0; } @media (max-width: 782px) { .table-bordered.jetpack-modules #doaction { padding: 10px 7px; } } .table-bordered.jetpack-modules .checkall { margin-top: 1px; } .table-bordered.jetpack-modules .filter-search { margin-top: 8px; } .table-bordered.jetpack-modules .genericon { color: #999; display: none; margin: 7px 3px 0; } @media (max-width: 900px) { .table-bordered.jetpack-modules .genericon { display: inline-block; } } .table-bordered.jetpack-modules .med { width: 70px; } .table-bordered.jetpack-modules .sm { width: 30px; } @media (max-width: 782px) { .table-bordered.jetpack-modules .check-column { width: 50px; } } .fixed-top .check-column { padding: 8px 10px 0 10px; width: 2.2em; } .wrap { margin: 0; padding: 0 1.5em 1em; overflow: hidden; } .wrap h2 { font-size: 24px; font-weight: 400; } .wrap .manage-left { float: right; margin: 0; padding: 0; width: 63%; } .wrap .manage-left table { width: 100%; } .wrap .manage-left th { font-weight: 400; } @media (max-width: 782px) { .wrap .manage-left { width: 100%; } } .wrap .manage-right { margin: 0; padding: 0; /*position: absolute; right: 0;*/ float: left; width: 35%; z-index: 1; } .wrap .manage-right p { font-size: 12px; font-weight: bold; color: #bbb; padding-top: 2px; text-transform: uppercase; letter-spacing: 1px; clear: right; } .wrap .manage-right .bumper { margin-right: 33px; } .wrap .manage-right.show { display: block; overflow-y: auto; overflow-x: hidden; position: absolute; z-index: 100000; } .wrap .manage-right .search-bar { margin-bottom: 18px; max-width: 300px; } .wrap .manage-right p.search-box { float: none; height: auto; margin-bottom: 0; position: relative; } .wrap .manage-right p.search-box input[type='search'] { padding: 0 8px; width: 90%; line-height: initial; } @media (max-width: 782px) { .wrap .manage-right p.search-box input[type='search'] { float: right; padding: 9px 8px; } } .wrap .manage-left p.search-box input[type="submit"] { display: none; } .wrap .manage-right .button-group .button { outline: none; } .wrap .manage-right .subsubsub { margin: 0; padding: 0; } .wrap .manage-right .subsubsub a { padding: 0; line-height: inherit; } .wrap .manage-right .subsubsub .current { padding: 1px 5px; border-radius: 2px; margin-right: -5px; background: #0D72B2; color: #fff; } .wrap .manage-right .subsubsub .current .count { color: #BCD7E7; font-weight: 200; } .wrap .manage-right .subsubsub li { display: block; text-align: right; } @media (max-width: 782px) { .wrap .manage-right { background: #fff; bottom: 0; display: none; min-width: 300px; position: fixed; left: 0; top: 0; z-index: 13; box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); } .wrap .manage-right .bumper { margin: 13px; } .wrap .manage-right .navbar-form { margin: 0; padding: 0; } } @media (max-width: 782px) { .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column) { padding: 11px 10px; display: block; } .jetpack_page_jetpack_modules #doaction { padding: 7px 14px; } .jetpack_page_jetpack_modules .fixed-top thead .check-column { padding: 28px 10px 0 10px; } .jetpack_page_jetpack_modules .filter-search { margin-top: 28px; } .jetpack_page_jetpack_modules .filter-search .button { padding: 7px 14px; } .manage-right.show .subsubsub li { padding: 5px; } } @media (max-width: 650px) { .table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions { float: none; padding-right: 18px; } } @media (max-width: 430px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: none; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions { display: block; } } /* 'Pages' is a temporary location for these styles, until we can break them up into their proper atmoic locations */ .configure-module p { font-size: 14px; } .configure-module p.success, .configure-module p.error { color: #fff; padding: 10px; } .configure-module p.success { background-color: #81a844; } .configure-module p.error { background-color: #d94f4f; } .protect-status p { font-size: 16px; } .protect-status strong { display: inline-block; margin-top: 10px; background: #fff; padding: 10px; border: 1px #ddd solid; font-size: 16px; color: #000; max-width: 100%; } .protect-status.attn { color: #d94f4f; } .protect-status.working { color: #81a844; } /* Whitelisting */ #non-editable-whitelist { margin-top: 15px; } .protect-whitelist textarea { width: 100%; min-height: 150px; } #editable-whitelist .whitelist-table { width: 100%; } /* btns + inputs */ .configure-module input[disabled] { opacity: .5; } .configure-module input.button-primary { font-weight: bold; } /* whitelist table */ .whitelist-table { border-top: 1px solid; border-left: 1px solid; border-color: #ddd; background-color: #fff; } .whitelist-table td, .whitelist-table th { padding: 10px; margin: 0; border-bottom: 1px solid; border-right: 1px solid; border-color: #ddd; font-size: 14px; } .whitelist-table th.heading { font-weight: bold; color: #5d6d74; text-align: right; background-color: #eee; } .whitelist-table td.item-actions { border-right: none; text-align: left; } .whitelist-table .toolbar { padding: 0; } .whitelist-table .add-btn { text-align: center; width: 10%; border-right: 1px #ddd solid; } .ip-address, .enter-ip { width: 90%; text-align: right; vertical-align: middle; } .delete-ip-address { text-align: center; border: 0; background: transparent; color: #6f7476; box-shadow: none; font-size: 20px; margin: 0; padding: 0; cursor: pointer; border-radius: 2px; } .delete-ip-address:hover { background: #eee; } .toolbar div { float: right; padding: 10px; } @media only screen and (min-width: 1100px) { #non-editable-whitelist { width: 28%; float: left; margin-top: 0; } .protect-whitelist { width: 65%; float: right; } } /* end > 1065px */ @media only screen and (max-width: 1130px) { .enter-ip input[type="text"] { max-width: 175px; } } /* end < 1130px */ @media only screen and (max-width: 1250px) and (min-width: 1065px), (max-width: 730px) and (min-width: 600px) { .enter-ip { width: 85%; } .add-btn { width: 15%; } } /* end < 1250px & > 1065px */ @media only screen and (max-width: 782px) { .add-btn { text-align: left; } .add-btn .ip-add { margin-top: 4px; margin-bottom: 3px; } } /* end < 782px */ @media only screen and (max-width: 730px) { .add-btn { text-align: center; } } /* end < 730px */ @media only screen and (max-width: 665px) and (min-width: 600px) { .enter-ip input[type="text"] { max-width: 165px; } } /* end < 665px & > 600px */ @media only screen and (max-width: 600px) { .toolbar div { width: 100%; } .add-btn { border-top: 1px #ddd solid; } .enter-ip { text-align: center; } .enter-ip strong { display: block; margin-bottom: 5px; } .enter-ip input[type="text"] { width: 100%; max-width: 100%; } .add-btn input, .enter-ip .button { width: 50%; margin: 0 auto; } .enter-ip .button { margin-top: 10px; } } /* end > 600px */ @media only screen and (max-width: 400px) { .protect-status strong { font-size: 12px; overflow: auto; } .add-btn input, .enter-ip .button { width: 100%; } } /* end < 400px */ .my-jetpack-actions { margin: 0 0 40px 0; } .my-jetpack-actions .j-col { padding: 0; text-align: center; } .my-jetpack-actions #user-list { height: 30px; margin-top: -1px; margin-right: -3px; } #jetpack-disconnect-content { display: none; text-align: center; } #jetpack-disconnect-content .cancel-disconnect { display: block; margin-top: 10px; } .connection-details { border: 1px #ddd solid; } .connection-details.local-user { margin-bottom: 10px; } .connection-details .user-01, .connection-details .wpuser-02, .connection-details .action-btns { padding: 10px; } .connection-details .user-01 .button, .connection-details .user-01 select, .connection-details .wpuser-02 .button, .connection-details .wpuser-02 select, .connection-details .action-btns .button, .connection-details .action-btns select { margin-top: 5px; } .connection-details .wpuser-02 { margin-top: 10px; } .connection-details h3 { padding: 10px; margin: 0; background: #eee; border-bottom: 1px #ddd solid; font-size: 14px; } .jp-user img { margin-left: 10px; border-radius: 50%; } .jp-user div, .wp-user div, .wp-action div { display: inline-block; width: 100%; } .j-col.jp-user, .j-col.wp-user, .j-col.wp-action { padding: 0; } .my-jetpack-actions select { max-width: 150px; } .j-actions .button:nth-child(3) { margin-left: 5px; } .j-row.disconnect { text-align: center; } .j-row.disconnect .button { margin: 0 auto; } a.what-is-primary { color: #b4b9be; margin-right: 4px; } @media (max-width: 782px) { .wp-action { border-top: 1px #ddd solid; } .wp-action h3 { display: none; } } @media screen and (max-width: 500px) { .connection-details { font-size: 11px; } .connection-details h3 { font-size: 12px; padding: 5px; } .connection-details .user-01, .connection-details .wpuser-02 { padding: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; } .connection-details .action-btns { text-align: center; } } @media (max-width: 530px) { .connection-details .wpuser-02 { margin-top: 0; padding: 12px; } } @media screen and (max-width: 450px) { .j-actions .button { width: 100%; margin-bottom: 5px; text-align: center; } .j-actions .button.alignright { float: none; } } @media screen and (max-width: 350px) { .user-01, .wpuser-02 { max-width: 100px; } } .manage__icon { width: 155px; height: 155px; margin: 20px auto; } .manage-page .manage__description { max-width: 600px; text-align: center; font-size: 22px; color: #999; margin: 20px auto; } .manage-page .manage__button { font-size: 16px; padding: 0 20px; height: 40px; line-height: 40px; } .manage__title .genericon { font-size: 38px; color: #81A944; } .manage__link { font-size: 16px; padding: 0 20px; height: 40px; line-height: 40px; font-weight: normal; } .manage__link .genericon { font-size: 28px; vertical-align: middle; margin-top: -6px; } .jp-content .hide { display: none; } .jp-content .pointer { cursor: pointer; } .jp-content .landing { margin: 0 auto; z-index: 2; position: relative; } .jp-content h1 { font: 300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif; position: relative; z-index: 3; width: 100%; text-align: center; } .jp-content h1.success { color: #81a844; } .jp-content .footer { padding-top: 0; margin-top: 0; background-image: none; } .jp-content .footer:before { height: inherit; } .jp-content .more-info:before { content: none; } .landing .wpcom-connect { min-height: 400px; } .wpcom-connect .j-col { padding: 0; } .wpcom-connect .connect-desc { padding-left: 25px; } .wpcom-connect .connect-btn { text-align: center; } .module-grid h2 { color: #000; font: 300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif; } .download-jetpack { margin-top: 1em !important; } #jump-start-area { margin-top: 35px; padding-right: 60px; padding-left: 60px; background: #fefefe; border: 1px #dae0e2 solid; padding-bottom: 20px; text-align: center; } #jump-start-area .connect-btn { text-align: center; } #jump-start-area #jumpstart-cta, #jump-start-area .jumpstart-desc { padding: 0; } #jump-start-area p { font-size: 14px; line-height: 185%; } #jump-start-area .spinner { float: none; margin: 0 auto; position: absolute; bottom: 0; height: 100%; width: 100%; background-position: 50% 56%; background-color: rgba(254, 254, 254, 0.99); display: block; opacity: .9; } .jumpstart-message p { padding-left: 25px; } .jumpstart-desc { text-align: right; } #jumpstart-cta { text-align: center; display: inline-block; float: none; } .dismiss-jumpstart { color: #999; font-size: 14px; } #jumpstart-cta .button, #jumpstart-cta .button-primary { margin: 1em; font-size: 18px; height: 45px !important; padding: 8px 15px 1px; } #jumpstart-cta .button-primary { display: block; margin: 35px 20px 5px 20px; } #jp-config-list { position: relative; padding-top: 15px; padding-bottom: 15px; margin-right: -15px; margin-left: -15px; } #jp-config-list .j-col { padding: 15px; } #jp-config-list strong { display: inline-block; } #jp-config-list small { display: block; margin-top: 5px; line-height: 150%; } #jp-config-list .close { position: absolute; top: 10px; left: 0; text-transform: uppercase; font-weight: bold; display: block; z-index: 5; } .jp-config-status { text-transform: uppercase; font-size: 10px; font-weight: bold; line-height: 100%; color: #fff; background: #9fbd72; border-radius: 2px; padding: 2px 4px; display: inline-block; } .nux-intro h3 { background: #81a844; color: #fff; font-weight: 600; padding: .75em; margin: 0; } .nux-intro h4 { margin: 0 0 2px 0; } .nux-intro p { text-align: center; font-size: 1.24em; line-height: 175%; } .nux-intro a { transition: all .4s ease; } .nux-intro .j-col { padding: 0 0.5em; } .nux-intro .j-col:first-of-type { padding-right: 0; } .nux-intro .j-col:last-of-type { padding-left: 0; } .nux-intro .nux-in { background: #ececec; -webkit-border-bottom-left-radius: 6px; -webkit-border-bottom-right-radius: 6px; -moz-border-radius-bottomright: 6px; -moz-border-radius-bottomleft: 6px; border-bottom-left-radius: 6px; border-bottom-right-radius: 6px; } .nux-intro .nux-in h3 { font-size: 1.10em; -webkit-border-top-right-radius: 6px; -webkit-border-top-left-radius: 6px; -moz-border-radius-topleft: 6px; -moz-border-radius-topright: 6px; border-top-right-radius: 6px; border-top-left-radius: 6px; } .nux-intro .nux-in h3 .dashicons { float: left; color: #658435; font-size: 1.25em; padding-right: 0; } .nux-intro .nux-in h3 .dashicons:hover { color: #57722e; } .nux-intro .nux-in p { font-size: .9em; line-height: 150%; margin: 0; text-align: right; color: #686f72; } .nux-intro .nux-in .j-row { border-bottom: 1px #f9f9f9 solid; padding: 5px 0; position: relative; min-height: 70px; } .nux-intro .nux-in .j-row:hover { background: #e0e0e0; } .nux-intro .nux-in .unavailable { opacity: 0.5; } .nux-intro .nux-in .unavailable .act { display: none; } .nux-intro .nux-in .paid { top: 4px; margin-right: 12px; } .nux-intro .nux-in .dashicons { color: #81a844; font-size: 1em; position: relative; top: 3px; padding-right: 6px; } .nux-intro .nux-in .dashicons:hover { color: #57722e; } .nux-intro .nux-in .dashicons-external { font-size: 1.5em; top: 2px; padding-right: 3px; } .nux-intro .nux-in .lmore { font-size: 11px; color: #81a844; } .nux-intro .nux-in .lmore:hover { color: #57722e; } .nux-intro .feat.j-col { padding: 10px 10px 10px 2px; } .nux-intro .feat .dashicons { display: none; } .nux-intro .activated .feat .dashicons { display: inline-block; } .nux-intro .act { position: absolute; top: 50%; -ms-transform: translate(0, -50%); -webkit-transform: translate(0, -50%); transform: translate(0, -50%); left: 8px; float: left; } .nux-intro .act.j-col { padding: 5px; text-align: left; } .nux-intro .module-action { text-transform: uppercase; font-size: .85em; font-weight: 600; } .nux-intro .wpcom h3 { background: #0087be; } .nux-intro .wpcom h3 .dashicons { color: #00638b; } .nux-intro .wpcom h3 .dashicons:hover { color: #005172; } .nux-intro .wpcom .j-col { padding: 10px; } .nux-intro .wpcom .goto { text-align: center; padding: 1em; } .nux-intro .wpcom .goto:hover { background: #ececec; } .nux-intro .wpcom .goto .j-col { padding: 0 5px; } .nux-intro .wpcom .goto a { width: 100%; padding: .25em; height: auto; } .nux-intro .wpcom .goto .button { height: auto; min-height: 28px; line-height: 18px; white-space: normal; max-width: 200px; margin-bottom: 0; padding-top: 4px; padding-bottom: 5px; } .nux-intro .wpcom .goto .feat { position: absolute; top: 50%; -ms-transform: translate(0, -50%); -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } .nux-intro .nux-foot .j-col { padding: 1em; } .nux-foot { margin-top: 2em; background: #ececec; border-radius: 6px; } .nux-foot .j-col { min-height: 75px; padding: 1em; } @media (max-width: 650px) { .nux-foot .j-col { width: 100%; } } .nux-foot .j-col + .j-col { border-right: 1px #f9f9f9 solid; } @media (max-width: 650px) { .nux-foot .j-col + .j-col { border-right: none; border-top: 1px #f9f9f9 solid; } } .nux-foot .actions { margin-top: 1em; } .nux-foot a { text-decoration: underline; } .nux-foot img { float: left; margin-right: 1em; width: 75px; border-radius: 4px; } .nux-foot p { font-size: .9em; text-align: right; font-weight: 600; margin-top: 0; } .nux-foot p + p { font-weight: 400; margin-bottom: 0; } .nux-foot ul { font-size: .9em; margin-bottom: 0; } .nux-foot ul li { margin-left: .875em; margin-bottom: 0; line-height: 175%; display: inline-block; vertical-align: middle; } .form-toggle[type="checkbox"] { opacity: 0; position: absolute; } .form-toggle__switch { position: relative; display: inline-block; border-radius: 12px; -moz-box-sizing: border-box; box-sizing: border-box; padding: 2px; width: 40px; height: 24px; background: #b9b9b9; vertical-align: middle; outline: 0; cursor: pointer; transition: all .4s ease; } .form-toggle__switch:before, .form-toggle__switch:after { position: relative; display: block; content: ""; width: 20px; height: 20px; } .form-toggle__switch:after { right: 0; border-radius: 50%; background: #fff; transition: all .2s ease; } .form-toggle__switch:before { display: none; } .form-toggle__switch:hover { background: #bdd597; } .form-toggle__label { cursor: pointer; } .plugin-action__label { padding-left: 5px; top: -1px; position: relative; color: #8e9598; } .activated .plugin-action__label { color: #81a844; } .form-toggle:focus + .form-toggle__label .form-toggle__switch, .form-toggle:focus:checked + .form-toggle__label .form-toggle__switch { box-shadow: 0 0 0 2px #0087be; } .form-toggle:checked + .form-toggle__label .form-toggle__switch { background: #81a844; } .form-toggle:checked + .form-toggle__label .form-toggle__switch:after { right: 16px; } .form-toggle:checked:hover + .form-toggle__label .form-toggle__switch { background: #bdd597; } .form-toggle:disabled + .form-toggle__label .form-toggle__switch, .form-toggle:disabled:hover + .form-toggle__label .form-toggle__switch { background: #e9eff3; } .form-toggle.is-toggling + .form-toggle__label .form-toggle__switch { background: #81a844; } .form-toggle.is-toggling:checked + .form-toggle__label .form-toggle__switch { background: #bdd597; } .form-toggle.is-compact + .form-toggle__label .form-toggle__switch { border-radius: 8px; width: 24px; height: 16px; } .form-toggle.is-compact + .form-toggle__label .form-toggle__switch:before, .form-toggle.is-compact + .form-toggle__label .form-toggle__switch:after { width: 12px; height: 12px; } .form-toggle.is-compact:checked + .form-toggle__label .form-toggle__switch:after { right: 8px; } @media (max-width: 1147px) { .jp-content .landing { padding: 0 2em; } .jp-content .footer { padding-top: 1.5em; } .nux-intro .main-col { width: 50%; margin-bottom: 2em; } .nux-intro .main-col.wpcom { width: 100%; } .nux-intro .main-col + .main-col { padding-left: 0; } .nux-intro .wpcom { padding: 0; } .nux-intro .wpcom .j-row { width: 50%; float: right; border-bottom: 1px #f9f9f9 solid; border-left: 1px #f9f9f9 solid; } .nux-intro .wpcom .j-row:last-of-type { width: 100%; float: none; clear: both; border: none; border-top: 1px #f9f9f9 solid; position: relative; top: -1px; } .nux-intro .wpcom .goto .feat a { float: right; } .nux-foot .j-col { border: none; } } @media (max-width: 900px) { .nux-intro .main-col { width: 100%; padding: 0; margin-bottom: 2em; } .nux-intro .wpcom .j-row { width: 100%; float: none; } } @media (max-width: 782px) { #jumpstart-cta .button-primary { margin: 10px 0 5px 0; } #jump-start-area .spinner { background-position: 50% 35%; } } @media (max-width: 600px) { .nux-intro h1 { font-size: 1.75em; } .nux-intro p { font-size: 1em; } } @media (max-width: 530px) { .jp-content .landing { padding: 0 .5em; } #jump-start-area { padding: 0 1em; } .jumpstart-message p { padding-left: 0; } #jumpstart-cta .button-primary { margin: 0 0 5px 0; padding-bottom: 10px; } .footer .a8c-attribution a:after { top: 6px; } } .nav-horizontal:before, .features:before, .modules:before, .load-more:before, .nav-horizontal:after, .features:after, .modules:after, .load-more:after { content: ""; display: table; } .nav-horizontal:after, .features:after, .modules:after, .load-more:after { clear: both; } /*# sourceMappingURL=jetpack-admin.css.map */ .j-row{width:100%;margin:0 auto}.j-row:before,.j-row:after{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:0.85em;width:100%;float:right;position:relative}@media only screen{.j-sm-1{width:8.33333%}.j-sm-2{width:16.66667%}.j-sm-3{width:25%}.j-sm-4{width:33.33333%}.j-sm-5{width:41.66667%}.j-sm-6{width:50%}.j-sm-7{width:58.33333%}.j-sm-8{width:66.66667%}.j-sm-9{width:75%}.j-sm-10{width:83.33333%}.j-sm-11{width:91.66667%}.j-sm-12{width:100%}}@media (min-width: 530px){.j-md-1{width:8.33333%}.j-md-2{width:16.66667%}.j-md-3{width:25%}.j-md-4{width:33.33333%}.j-md-5{width:41.66667%}.j-md-6{width:50%}.j-md-7{width:58.33333%}.j-md-8{width:66.66667%}.j-md-9{width:75%}.j-md-10{width:83.33333%}.j-md-11{width:91.66667%}.j-md-12{width:100%}}@media (min-width: 782px){.j-lrg-1{width:8.33333%}.j-lrg-2{width:16.66667%}.j-lrg-3{width:25%}.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-9{width:75%}.j-lrg-10{width:83.33333%}.j-lrg-11{width:91.66667%}.j-lrg-12{width:100%}}body,button,input,select,textarea{color:#222;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:#222;clear:both}a{color:#0d72b2;transition:color .2s;text-decoration:none}a:visited{color:#0d72b2}a:hover{color:#0f92e5}a:focus{outline:thin dotted}address{margin:0 0 1.5em}abbr[title],acronym{cursor:help}ins{background:#eee;text-decoration:none}dt{font-weight:700}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:middle}@-webkit-keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}@keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#efefef;font:800 0.9285714286em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476;border-radius:3px}.jp-button:visited,.jp-button--settings:visited{color:#efefef}.jp-button:hover,.jp-button--settings:hover,.jp-button:focus,.jp-button--settings:focus{color:#fff;background:#57972d}.jp-button:active,.jp-button--settings:active{background:#57972d;opacity:0.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:hover,.jp-button--settings:focus{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365A1F, inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:0.64286em 0.85714em 0.53571em;color:#fff;font:400 20px/1 "proxima-nova", 'Open Sans', Helvetica, sans-serif;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:visited{color:#fff}.download-jetpack:hover,.download-jetpack:focus{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:active{top:6px;box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:'';display:inline-block;position:relative;top:-2px;margin-left:13px;width:30px;height:30px;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%}.download-jetpack:after{content:'';position:absolute;top:0;right:0;width:100%;height:100%}@media (max-width: 1147px){.download-jetpack{font-size:1.28571em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width: 900px){.download-jetpack:active{top:0}}@media (max-width: 530px){.download-jetpack{font-size:1.21429em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-left:9px}}#searchsubmit{display:inline-block;border:none;position:relative;padding:0.71429em 1.5em;color:#efefef;font:800 0.8em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476;outline:none;border-radius:3px}#searchsubmit:visited{color:#efefef}#searchsubmit:hover,#searchsubmit:focus{color:#fff;background:#2aa0d5}#searchsubmit:active{opacity:0.7}@font-face{font-family:'automatticons';src:url("../_inc/fonts/automatticons/automatticons.eot");src:url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/automatticons/automatticons.woff") format("woff"),url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"),url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.eot");src:url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/jetpack/jetpack.woff") format("woff"),url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"),url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio: 0){@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg")}}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:right}.nav-horizontal ul{margin:0;padding:0}*,*:before,*:after{-moz-box-sizing:border-box;box-sizing:border-box}::-moz-selection{background:#91bd51;color:#fff;text-shadow:none}::selection{background:#91bd51;color:#fff;text-shadow:none}#wpbody-content{padding-bottom:0}#wpcontent{margin-right:160px;padding:0}ul#adminmenu a.toplevel_page_jetpack:after{border-left-color:#81a844}.folded #wpcontent{margin-right:36px}.jp-content{background:#f9f9f9;margin:0;height:auto;min-height:100%;width:100%;width:100%;-webkit-font-smoothing:antialiased}.jp-content .wrapper{background:#f9f9f9}@media (max-width: 900px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-right:36px;padding-right:0}}@media (max-width: 782px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-right:0}}@media (max-width: 782px){.configure .frame.top.fixed{padding-right:0}}.wrap.inner,.page-content{max-width:950px;margin:0 auto}.wrap.inner li,.page-content li{line-height:23px}@media (max-width: 530px){.page-content{margin-top:0}}@media (max-width: 1147px){.wrap.inner{background:#f9f9f9;padding:15px}}@media (max-width: 530px){.wrap.inner{margin-top:1.71429em}}.jetpack_page_jetpack_modules .header-nav{margin:0}.jetpack_page_jetpack_modules .page-content{max-width:1200px;min-height:500px;margin:0}.page-content.about{position:relative;z-index:10}@media (max-width: 1147px){.page-content.about{background:#f9f9f9;padding:15px}}@media (max-width: 1147px){.page-content.configure{background:#f9f9f9}}.footer nav{max-width:550px;margin:0 auto}.header{right:0;left:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 0.71429em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-left:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:normal}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:'';position:absolute;top:0;right:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-right:15px}.main-nav{float:right}.main-nav li{margin:0}@media (max-width: 900px){.main-nav{font-size:13px}}.user-nav{float:left}.user-nav li{margin:0}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #screen-options-link-wrap,.jetpack-pagestyles #contextual-help-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.masthead{position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #8eb74e)}.masthead.hasbutton .flyer{bottom:-270px}.masthead.hasbutton .subhead{margin-top:175px}@media (max-width: 530px){.masthead.hasbutton .subhead{margin-top:105px;padding:0}}.masthead h1,.masthead h2{margin:0 auto}.masthead h1{padding:2.5em 0 1.11111em;max-width:21.94444em;color:#fff;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;text-shadow:0 -1px 1px rgba(0,0,0,0.12);z-index:3}.masthead h1+.flyby{margin-top:180px}@media (max-width: 1147px){.masthead h1{padding-top:1.83333em;font-size:2.14286em}}@media (max-width: 782px){.masthead h1{max-width:600px;font-size:28px}}@media (max-width: 530px){.masthead h1{margin:0 15px;padding:31px 0 15px 0;font-size:21px;font-weight:400}}.jetpack-connected .masthead h1{margin-bottom:33px;max-width:600px}.flyer{position:absolute;bottom:-200px;right:4%;z-index:1;-webkit-animation:flyer 3.4s 2s ease-in-out;animation:flyer 3.4s 2s ease-in-out}.flyer:nth-child(2){right:49%;width:120px;height:131px;-webkit-animation-delay:4.6s;animation-delay:4.6s;-webkit-animation-duration:2.4s;animation-duration:2.4s}.flyer:nth-child(3){right:23%;width:60px;height:66px;-webkit-animation-delay:5.8s;animation-delay:5.8s;-webkit-animation-duration:4.5s;animation-duration:4.5s}.subhead{position:relative;margin-top:105px;padding:4em 0;background:#f9f9f9;z-index:2}.subhead h2{max-width:460px;color:#5d6d74;font:400 1.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 900px){.subhead h2{max-width:428px;font-size:20px}}@media (max-width: 530px){.subhead h2{display:none}}.subhead:after{content:'';position:absolute;bottom:100%;right:0;margin-bottom:-1px;width:100%;height:228px;background:url("../images/the-cloud.svg") center bottom repeat-x;pointer-events:none;z-index:-1}@media (max-width: 1147px){.subhead{margin-top:122px;padding:70px 0 49px}.subhead:after{background-size:160% auto}}@media (max-width: 900px){.subhead{margin-top:122px;padding:70px 0 49px}}@media (max-width: 530px){.subhead{margin-top:83px;padding:47px 15px 39px}}.clouds-sm{height:100px;position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #89b348)}.clouds-sm:after{content:'';position:absolute;bottom:0;right:0;margin-bottom:-1px;width:100%;height:137px;background:url("../images/the-cloud-sm.svg") center bottom repeat-x;pointer-events:none;z-index:2}@media (max-width: 530px){.clouds-sm{height:90px}}.featured{border-top:1px solid #d6d6d6;border-bottom:1px solid #d6d6d6;background:#fff;position:relative;padding:2.0em 1em 4.6em 1em;text-align:center;z-index:1}.featured:before{content:"";display:block;position:absolute;top:0;height:100%;z-index:-1}.featured .features,.featured .modules{margin:0 auto;display:inline-block}@media (max-width: 530px){.featured{display:none}}.featured h2,.module-grid h2{margin-top:1em;color:#5d6d74;font:300 2em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-align:center}@media (max-width: 900px){.featured h2,.module-grid h2{font-size:30px}}@media (max-width: 782px){.featured h2,.module-grid h2{font-size:28px}}.features,.modules{margin:0 -5px}.feature,.module{position:relative;float:right;margin:0 5px 10px;width:310px;transition:all .2s ease-in-out}@media (max-width: 1147px){.feature,.module{margin:.75% 1.5% .75% 0;width:32.333333%;transition:none}.feature:nth-child(3n+1),.module:nth-child(3n+1){margin-right:0}.feature:hover,.module:hover{top:0;box-shadow:none}}.feature{-webkit-transform:translateZ(0);transform:translateZ(0)}.feature h3{margin:0 0 0.58824em;color:#697b84;font-size:1.21429em;line-height:1em;font-weight:800}.feature p{margin:0;color:#6e818a}.feature:before{content:'';position:absolute;bottom:0;right:0;width:100%;height:10px;background:rgba(0,0,0,0.02);z-index:-1;-webkit-transform:translateZ(0);transform:translateZ(0);transition:all .2s ease-in-out}.feature:hover{-webkit-transform:translateY(-5px);-ms-transform:translateY(-5px);transform:translateY(-5px)}.feature:hover h3{color:#1a8dba}.feature:hover .feature-img{border:1px solid #ccc;border-bottom:none}.feature:hover .no-border{border:none}.feature:hover:before{-webkit-transform:translateY(5px);-ms-transform:translateY(5px);transform:translateY(5px)}@media (max-width: 1147px){.feature:hover h3{color:#6e818a}.feature:hover .feature-img{border:1px solid #ddd;border-bottom:none}.feature:hover .no-border{border:none}}.feature .feature-img{padding-top:52%;width:100%;height:auto;border:1px solid #ddd;border-bottom:none}.feature .feature-img.custom-css{background:url("../images/custom-css.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.custom-css{background-image:url("../images/custom-css@2x.jpg")}}.feature .feature-img.wordpress-connect{background:url("../images/wordpress-connect.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-connect{background-image:url("../images/wordpress-connect@2x.jpg")}}.feature .feature-img.wordpress-stats{background:url("../images/wordpress-stats.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-stats{background-image:url("../images/wordpress-stats@2x.jpg")}}.feature .feature-img.no-border{border:none;padding-bottom:1px}.feature-description{display:block;padding:1em 1.07143em 1.07143em;border:1px solid #ddd;background:#f5f5f5}.feature:hover .feature-description{background:#fff;border-color:#ccc}@media (max-width: 1147px){.feature:hover .feature-description{border:1px solid #ddd;background:#f5f5f5}}@media (max-width: 900px){.feature-description{min-height:115px}}.cat{clear:both;margin-bottom:23px}.cat h3{font-size:24px;font-weight:300;margin:0 6px 13px 0;text-align:right}.cat .clear{clear:both}.module-grid{text-align:center}.module-grid h2{margin:1em 0}@media (max-width: 530px){.module-grid h2{padding-top:16px;margin-top:0;font-size:25px}}#module-search{position:relative;width:100%;max-width:40.71429em;margin:0 auto 1.07143em;overflow:hidden}#jetpack-search{margin:0;padding:11px 16px 11px 16px;width:100%;border:1px solid #c9ced0;border-radius:3px;background:#fff;color:#5c6671;line-height:1.3}#jetpack-search:focus{color:#5c6671;outline:none}#jetpack-search:focus+label{background:transparent;opacity:0}#jetpack-search::-webkit-input-placeholder{color:#a8acae}#jetpack-search :-moz-placeholder{color:#a8acae}#jetpack-search::-moz-placeholder{color:#a8acae}#jetpack-search:-ms-input-placeholder{color:#a8acae}#jetpack-search+label{position:absolute;top:1px;left:1px;bottom:1px;width:48px;color:#abafb1;text-indent:-9999px;pointer-events:none;border-radius:3px;transition:all .2s ease-in-out}#jetpack-search+label:after{content:'\f400';position:absolute;left:11px;text-align:left;top:4px;font-size:1.71429em;font-weight:normal;font-family:"genericons"}.jp-filter{margin-bottom:2.85714em;color:#6f7476}.jp-filter a{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#aaa;font:600 0.92857em/1 "Open Sans", Helvetica, Arial, sans-serif;text-shadow:0 -1px 1px rgba(255,255,255,0.2);background:#eee;border-radius:3px;background-clip:padding-box}.jp-filter a.selected,.jp-filter a:hover,.jp-filter a:focus{color:#efefef;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476}@media (max-width: 530px){.jp-filter a{padding:0.76em 1em}}.module{display:block;padding:0.71429em 1.07143em 1em;text-align:right;border:1px solid #dae0e2;background:#fff;box-shadow:0 0 0 rgba(0,0,0,0.03);transition:opacity 2s ease-in}.module:hover{border-color:#8ac9e8;background:#f8fcfe}.module h3{cursor:pointer;margin:0 0 0.5em;color:#1a8dba;font-size:1.14286em;line-height:1.4em;font-weight:700}.module p{margin:0;color:#686f72;font-size:0.85714em}.module:hover,.module:focus{border-color:#8ac9e8;background:#f8fcfe}.module.active{border-color:#2ea2cc;box-shadow:inset -4px 0 0 #2ea2cc}.module.active:hover{border-color:#69bedd;box-shadow:inset -4px 0 0 #69bedd}.module .button,.module .button-primary{margin-top:15px}@media (max-width: 530px){.module .configure,.module .activate{display:block;width:100%;text-align:center}.module .button,.module .button-primary{width:50%}.module .button-primary{line-height:normal;padding:6px 14px;height:auto;font-size:14px}}@media screen and (max-width: 450px){.module .button,.module .button-primary{margin:20px auto 0 auto}.module .button.alignright,.module .button-primary.alignright{float:none}}@media (max-width: 1147px){.cat .module:nth-child(3n+1){margin:.75% 1.5% .75% 0}.cat .module:nth-child(3n - 1){margin-right:0}}@media (max-width: 900px){.cat .module{margin:1% 2% 1% 0}.cat .module:nth-child(2n+1){margin:1% 2% 1% 0}.cat .module:nth-child(2n+0){margin-right:0}}@media (max-width: 530px){.cat .module{margin:5px 0}.cat .module:nth-child(2n+1){margin-right:0}.cat .module:nth-child(2n+0){margin-right:0}}@media (max-width: 900px){.module{margin:1% 2% 1% 0;width:49%}.module:nth-child(3n+1){margin-right:2%}.module:nth-child(2n+1){margin-right:0}}@media (max-width: 530px){.module{margin:5px 0;width:100%}.module:nth-child(3n+1){margin-right:0}.module:nth-child(2n+1){margin-right:0}}.new{position:relative}.new:after{content:'NEW';position:absolute;top:-8px;left:-8px;padding-top:10px;width:32px;height:32px;color:#fff;font-size:8px;font-weight:800;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,0.2);background:url("../images/new-badge.svg") center center no-repeat;background-size:100%;border-radius:50%}.paid{display:inline-block;position:relative;top:5px;margin-right:10px;padding:1px 4px 0 6px;height:13px;color:#fff;font:700 10px/1 "Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 0 rgba(0,0,0,0.05);background:#d0d0d0;vertical-align:top}.paid:before,.paid:after{position:absolute;top:0;left:100%;font:normal 14px/14px "genericons"}.paid:before{content:'\f503';color:#d0d0d0;text-shadow:none}.paid:after{content:'\f428';margin-left:-5px;font-size:11px}.rtl .paid:before{content:'\f501'}.load-more{margin:2.71429em 0 6.15385em}.set{display:none}.show.set{display:block}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;left:20px;right:20px;margin-right:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1);z-index:500}.modal .close{position:absolute;top:0;left:0;font:300 1.71429em "genericons" !important;color:#777;content:'\f405';display:inline-block;padding:0.28571em 0.71429em 0.42857em;z-index:5}.modal .close:hover{background:#eee;opacity:0.8}.modal .close:active{background:#eee;opacity:0.4}.modal #jp-post-flair{display:none}.modal .content-container{position:absolute;top:0;left:0;bottom:0;right:0;overflow:auto;padding:2.14286em}.modal .content{margin:0 auto;max-width:900px;text-align:right}.modal h2{text-align:right;margin-top:0;color:#5d6d74;font:300 32px "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.modal h2{font-size:26px}}.modal h5{clear:right}.modal p{font-size:1.23077em}.modal footer{position:absolute;right:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #ddd;background:#fff;text-align:left}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-secondary,.modal .button-primary:active{vertical-align:baseline}@media (max-width: 900px){.modal{bottom:5%;margin-right:36px;font-size:80%}.modal .content{top:38px}}@media (max-width: 782px){.modal{top:66px;margin-right:0}}@media (max-width: 600px){.modal{top:10px;left:10px;bottom:10px;right:10px}}.jp-info-img{float:left;margin:0 30px 30px 0}.jp-info-img img{border:1px solid #ddd;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width: 782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;right:0;opacity:0.2;position:fixed;left:0;top:0;z-index:11}.entry-title,.page-template-default h1{margin-top:0.61111em;color:#5d6d74;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.entry-title,.page-template-default h1{font-size:2em}}.blog h3,.single h3,.page-template-default h2{margin-top:0.61111em;color:#5d6d74;font:300 1.9em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.blog h3,.single h3,.page-template-default h2{font-size:1.4em}}.page-template-default p{line-height:1.71429em}.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{float:right;width:70%}.footer{margin-top:1.42857em;position:relative;padding:10em 0 4.28571em;text-align:center}.footer:before,.footer:after{content:'';position:absolute;right:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width: 1147px){.footer{padding-bottom:35px}}@media (max-width: 1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width: 900px){.footer{padding-top:146px}}@media (max-width: 782px){.footer{margin-top:0}}@media (max-width: 530px){.footer{margin-top:0;padding-top:135px}}@media (max-width: 320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81A844}@media (max-width: 1147px){.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81a844}}@media (max-width: 530px){.footer nav li{display:block;float:none;margin:0;text-align:right}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #eee}.secondary-footer{margin:0 auto}.secondary-footer li{margin-left:5px}@media (min-width: 782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary-footer{margin-bottom:0}}@media (max-width: 782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width: 530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #eee}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:0.78571em;font-family:"Gill Sans","Gill Sans MT","Open Sans",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;left:9999px;outline:0}.footer .a8c-attribution a:after{content:'A';position:absolute;top:2px;left:-9999px;height:100%;color:#999;font-size:1.54545em;font-family:"automatticons";text-align:center}.footer .a8c-attribution a:hover:after{-webkit-animation:candy .4s ease-in-out;animation:candy .4s ease-in-out}@media (min-width: 782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:transparent;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:0.7}.jetpack-message .squeezer{padding:23px 80px 23px 23px;position:relative;text-align:right}.jetpack-message .squeezer:before{color:#fff;content:'\f418';font-family:'Genericons';font-size:33px;height:33px;right:25px;opacity:0.6;position:absolute;top:23px;top:calc( 50% - 22px )}@media (max-width: 530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#FFF;border-bottom:1px solid #D5E4BD}.jetpack-message .squeezer a:hover{border-bottom:1px solid #F1F6E9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:'\f414'}.configure-module .jetpack-message{max-width:100%}.jetpack-modules #site-icon-deprecated .info,.modules h3.icon,.jetpack-modules .info a{width:auto}.jetpack-modules #site-icon-deprecated .info:before,.modules h3.icon:before,.jetpack-modules .info a:before{display:inline-block;position:relative;top:1px;right:-3px;margin-left:2px;opacity:0.8;font:normal 20px "genericons";vertical-align:top}.jetpack-modules .info a:before{margin-top:1px}.latex:before,.jetpack-modules #latex .info a:before{content:'\f408'}.carousel:before,.jetpack-modules #carousel .info a:before{content:'\f102'}.modules h3.contact-form:before,.jetpack-modules #contact-form .info a:before{content:'\f175';font:normal 20px "dashicons"}.modules h3.custom-css:before,.jetpack-modules #custom-css .info a:before{content:'\f100';font:normal 20px "dashicons"}.modules h3.enhanced-distribution:before,.jetpack-modules #enhanced-distribution .info a:before{content:'\f237';font:normal 20px "dashicons"}.modules h3.widgets:before,.jetpack-modules #widgets .info a:before{content:'\f116';font:normal 20px "dashicons"}.modules h3.gravatar-hovercards:before,.jetpack-modules #gravatar-hovercards .info a:before{content:'G';font-family:"automatticons"}.infinite-scroll:before,.jetpack-modules #infinite-scroll .info a:before{content:'\f408'}.comments:before,.jetpack-modules #comments .info a:before{content:'\f108'}.sso:before,.jetpack-modules #sso .info a:before{content:'\f205'}.json-api:before,.jetpack-modules #json-api .info a:before{content:'\f415'}.likes:before,.jetpack-modules #likes .info a:before{content:'\f408'}.markdown:before,.jetpack-modules #markdown .info a:before{content:'\f462'}.minileven:before,.jetpack-modules #minileven .info a:before{content:'\f453'}.manage:before,.jetpack-modules #manage .info a:before{content:'\f205'}.monitor:before,.jetpack-modules #monitor .info a:before{content:'\f468'}.notes:before,.jetpack-modules #notes .info a:before{content:'\f300'}.omnisearch:before,.jetpack-modules #omnisearch .info a:before{content:'\f400'}.photon:before,.jetpack-modules #photon .info a:before{content:'\f403'}.post-by-email:before,.jetpack-modules #post-by-email .info a:before{content:'\f410'}.protect:before,.jetpack-modules #protect .info a:before{content:'\f470';position:relative;top:-1px}.modules h3.publicize:before,.jetpack-modules #publicize .info a:before{content:'\f237';font:normal 20px "dashicons"}.related-posts:before,.jetpack-modules #related-posts .info a:before{content:'\f420'}.sharedaddy:before,.jetpack-modules #sharedaddy .info a:before{content:'\f415'}.shortcodes:before,.jetpack-modules #shortcodes .info a:before{content:'\f100'}.verification-tools:before,.jetpack-modules #verification-tools .info a:before{content:'\f425'}.after-the-deadline:before,.jetpack-modules #after-the-deadline .info a:before{content:'\f411'}.subscriptions:before,.jetpack-modules #subscriptions .info a:before{content:'\f410'}.tiled-gallery:before,.jetpack-modules #tiled-gallery .info a:before{content:'\f103'}.modules h3.vaultpress:before,.jetpack-modules #vaultpress .info a:before{content:'V';font-family:"automatticons"}.videopress:before,.jetpack-modules #videopress .info a:before{content:'\f104'}.modules h3.widget-visibility:before,.jetpack-modules #widget-visibility .info a:before{content:'\f116';font:normal 20px "dashicons"}.stats:before,.jetpack-modules #stats .info a:before{content:'\f205'}.shortlinks:before,.jetpack-modules #shortlinks .info a:before{content:'\f107'}.modules h3.custom-content-types:before,.jetpack-modules #custom-content-types .info a:before{content:'\f498';font:normal 20px "dashicons"}.modules h3.site-icon:before,.jetpack-modules #site-icon .info a:before{content:'\f475'}.jetpack-modules #site-icon-deprecated .info:before{content:'\f475'}.jetpack-modules #sitemaps .info a:before{content:'\f507'}@media (max-width: 782px){.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{width:100%}}@media (max-width: 600px){.clouds-sm{display:none}}@media (max-width: 530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-left:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width: 515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:left;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:right}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}@media (max-width: 320px){.jetpack_page_jetpack_modules .wrap{padding:0 0 1em}}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}.configure .frame.top.fixed{background:#f9f9f9;border-bottom:1px solid #e9e9e9;padding-right:160px;margin-top:-6px;position:fixed;left:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #eee}@media (max-width: 782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}}@media (max-width: 600px){.configure .frame.top.fixed{top:0}}.configure .frame.top .tablenav.top{float:right}@media (max-width: 900px){.configure .frame.top .tablenav.top .actions{display:block}}@media (max-width: 782px){.configure .frame.top .tablenav.top .actions{margin-top:6px}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:left;margin-top:10px}@media (max-width: 782px){.filter-search{display:block}}@media (max-width: 530px){.filter-search{display:none}}.module-actions.landing-page{float:left;margin-left:15px}.module-actions.landing-page a{font-size:0.6em}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-right:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.active th,.table-bordered.jetpack-modules tr.jetpack-module.active td{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-right:4px solid #2ea2cc;padding-right:0px}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-right:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable{opacity:0.3}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module#vaultpress{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-left:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module th,.table-bordered.jetpack-modules tr.jetpack-module td{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 14px 8px 10px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-right:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:left;padding:0 0 1px;visibility:visible}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-right:5px}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a{opacity:0}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a:focus{opacity:1}@media (max-width: 530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width: 782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-right:10px;visibility:visible}}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}@media (max-width: 782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width: 782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width: 900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width: 782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:right;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width: 782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:left;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:bold;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:right}.wrap .manage-right .bumper{margin-right:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type='search']{padding:0 8px;width:90%;line-height:initial}@media (max-width: 782px){.wrap .manage-right p.search-box input[type='search']{float:right;padding:9px 8px}}.wrap .manage-left p.search-box input[type="submit"]{display:none}.wrap .manage-right .button-group .button{outline:none}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-right:-5px;background:#0D72B2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#BCD7E7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:right}@media (max-width: 782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;left:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width: 782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.jetpack_page_jetpack_modules #doaction{padding:7px 14px}.jetpack_page_jetpack_modules .fixed-top thead .check-column{padding:28px 10px 0 10px}.jetpack_page_jetpack_modules .filter-search{margin-top:28px}.jetpack_page_jetpack_modules .filter-search .button{padding:7px 14px}.manage-right.show .subsubsub li{padding:5px}}@media (max-width: 650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-right:18px}}@media (max-width: 430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.success,.configure-module p.error{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #ddd solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}#non-editable-whitelist{margin-top:15px}.protect-whitelist textarea{width:100%;min-height:150px}#editable-whitelist .whitelist-table{width:100%}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:bold}.whitelist-table{border-top:1px solid;border-left:1px solid;border-color:#ddd;background-color:#fff}.whitelist-table td,.whitelist-table th{padding:10px;margin:0;border-bottom:1px solid;border-right:1px solid;border-color:#ddd;font-size:14px}.whitelist-table th.heading{font-weight:bold;color:#5d6d74;text-align:right;background-color:#eee}.whitelist-table td.item-actions{border-right:none;text-align:left}.whitelist-table .toolbar{padding:0}.whitelist-table .add-btn{text-align:center;width:10%;border-right:1px #ddd solid}.ip-address,.enter-ip{width:90%;text-align:right;vertical-align:middle}.delete-ip-address{text-align:center;border:0;background:transparent;color:#6f7476;box-shadow:none;font-size:20px;margin:0;padding:0;cursor:pointer;border-radius:2px}.delete-ip-address:hover{background:#eee}.toolbar div{float:right;padding:10px}@media only screen and (min-width: 1100px){#non-editable-whitelist{width:28%;float:left;margin-top:0}.protect-whitelist{width:65%;float:right}}@media only screen and (max-width: 1130px){.enter-ip input[type="text"]{max-width:175px}}@media only screen and (max-width: 1250px) and (min-width: 1065px), (max-width: 730px) and (min-width: 600px){.enter-ip{width:85%}.add-btn{width:15%}}@media only screen and (max-width: 782px){.add-btn{text-align:left}.add-btn .ip-add{margin-top:4px;margin-bottom:3px}}@media only screen and (max-width: 730px){.add-btn{text-align:center}}@media only screen and (max-width: 665px) and (min-width: 600px){.enter-ip input[type="text"]{max-width:165px}}@media only screen and (max-width: 600px){.toolbar div{width:100%}.add-btn{border-top:1px #ddd solid}.enter-ip{text-align:center}.enter-ip strong{display:block;margin-bottom:5px}.enter-ip input[type="text"]{width:100%;max-width:100%}.add-btn input,.enter-ip .button{width:50%;margin:0 auto}.enter-ip .button{margin-top:10px}}@media only screen and (max-width: 400px){.protect-status strong{font-size:12px;overflow:auto}.add-btn input,.enter-ip .button{width:100%}}.my-jetpack-actions{margin:0 0 40px 0}.my-jetpack-actions .j-col{padding:0;text-align:center}.my-jetpack-actions #user-list{height:30px;margin-top:-1px;margin-right:-3px}#jetpack-disconnect-content{display:none;text-align:center}#jetpack-disconnect-content .cancel-disconnect{display:block;margin-top:10px}.connection-details{border:1px #ddd solid}.connection-details.local-user{margin-bottom:10px}.connection-details .user-01,.connection-details .wpuser-02,.connection-details .action-btns{padding:10px}.connection-details .user-01 .button,.connection-details .user-01 select,.connection-details .wpuser-02 .button,.connection-details .wpuser-02 select,.connection-details .action-btns .button,.connection-details .action-btns select{margin-top:5px}.connection-details .wpuser-02{margin-top:10px}.connection-details h3{padding:10px;margin:0;background:#eee;border-bottom:1px #ddd solid;font-size:14px}.jp-user img{margin-left:10px;border-radius:50%}.jp-user div,.wp-user div,.wp-action div{display:inline-block;width:100%}.j-col.jp-user,.j-col.wp-user,.j-col.wp-action{padding:0}.my-jetpack-actions select{max-width:150px}.j-actions .button:nth-child(3){margin-left:5px}.j-row.disconnect{text-align:center}.j-row.disconnect .button{margin:0 auto}a.what-is-primary{color:#b4b9be;margin-right:4px}@media (max-width: 782px){.wp-action{border-top:1px #ddd solid}.wp-action h3{display:none}}@media screen and (max-width: 500px){.connection-details{font-size:11px}.connection-details h3{font-size:12px;padding:5px}.connection-details .user-01,.connection-details .wpuser-02{padding:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.connection-details .action-btns{text-align:center}}@media (max-width: 530px){.connection-details .wpuser-02{margin-top:0;padding:12px}}@media screen and (max-width: 450px){.j-actions .button{width:100%;margin-bottom:5px;text-align:center}.j-actions .button.alignright{float:none}}@media screen and (max-width: 350px){.user-01,.wpuser-02{max-width:100px}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81A944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:normal}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .pointer{cursor:pointer}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}.wpcom-connect .connect-desc{padding-left:25px}.wpcom-connect .connect-btn{text-align:center}.module-grid h2{color:#000;font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif}.download-jetpack{margin-top:1em !important}#jump-start-area{margin-top:35px;padding-right:60px;padding-left:60px;background:#fefefe;border:1px #dae0e2 solid;padding-bottom:20px;text-align:center}#jump-start-area .connect-btn{text-align:center}#jump-start-area #jumpstart-cta,#jump-start-area .jumpstart-desc{padding:0}#jump-start-area p{font-size:14px;line-height:185%}#jump-start-area .spinner{float:none;margin:0 auto;position:absolute;bottom:0;height:100%;width:100%;background-position:50% 56%;background-color:rgba(254,254,254,0.99);display:block;opacity:.9}.jumpstart-message p{padding-left:25px}.jumpstart-desc{text-align:right}#jumpstart-cta{text-align:center;display:inline-block;float:none}.dismiss-jumpstart{color:#999;font-size:14px}#jumpstart-cta .button,#jumpstart-cta .button-primary{margin:1em;font-size:18px;height:45px !important;padding:8px 15px 1px}#jumpstart-cta .button-primary{display:block;margin:35px 20px 5px 20px}#jp-config-list{position:relative;padding-top:15px;padding-bottom:15px;margin-right:-15px;margin-left:-15px}#jp-config-list .j-col{padding:15px}#jp-config-list strong{display:inline-block}#jp-config-list small{display:block;margin-top:5px;line-height:150%}#jp-config-list .close{position:absolute;top:10px;left:0;text-transform:uppercase;font-weight:bold;display:block;z-index:5}.jp-config-status{text-transform:uppercase;font-size:10px;font-weight:bold;line-height:100%;color:#fff;background:#9fbd72;border-radius:2px;padding:2px 4px;display:inline-block}.nux-intro h3{background:#81a844;color:#fff;font-weight:600;padding:.75em;margin:0}.nux-intro h4{margin:0 0 2px 0}.nux-intro p{text-align:center;font-size:1.24em;line-height:175%}.nux-intro a{transition:all .4s ease}.nux-intro .j-col{padding:0 0.5em}.nux-intro .j-col:first-of-type{padding-right:0}.nux-intro .j-col:last-of-type{padding-left:0}.nux-intro .nux-in{background:#ececec;-webkit-border-bottom-left-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.nux-intro .nux-in h3{font-size:1.10em;-webkit-border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;border-top-left-radius:6px}.nux-intro .nux-in h3 .dashicons{float:left;color:#658435;font-size:1.25em;padding-right:0}.nux-intro .nux-in h3 .dashicons:hover{color:#57722e}.nux-intro .nux-in p{font-size:.9em;line-height:150%;margin:0;text-align:right;color:#686f72}.nux-intro .nux-in .j-row{border-bottom:1px #f9f9f9 solid;padding:5px 0;position:relative;min-height:70px}.nux-intro .nux-in .j-row:hover{background:#e0e0e0}.nux-intro .nux-in .unavailable{opacity:0.5}.nux-intro .nux-in .unavailable .act{display:none}.nux-intro .nux-in .paid{top:4px;margin-right:12px}.nux-intro .nux-in .dashicons{color:#81a844;font-size:1em;position:relative;top:3px;padding-right:6px}.nux-intro .nux-in .dashicons:hover{color:#57722e}.nux-intro .nux-in .dashicons-external{font-size:1.5em;top:2px;padding-right:3px}.nux-intro .nux-in .lmore{font-size:11px;color:#81a844}.nux-intro .nux-in .lmore:hover{color:#57722e}.nux-intro .feat.j-col{padding:10px 10px 10px 2px}.nux-intro .feat .dashicons{display:none}.nux-intro .activated .feat .dashicons{display:inline-block}.nux-intro .act{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%);left:8px;float:left}.nux-intro .act.j-col{padding:5px;text-align:left}.nux-intro .module-action{text-transform:uppercase;font-size:.85em;font-weight:600}.nux-intro .wpcom h3{background:#0087be}.nux-intro .wpcom h3 .dashicons{color:#00638b}.nux-intro .wpcom h3 .dashicons:hover{color:#005172}.nux-intro .wpcom .j-col{padding:10px}.nux-intro .wpcom .goto{text-align:center;padding:1em}.nux-intro .wpcom .goto:hover{background:#ececec}.nux-intro .wpcom .goto .j-col{padding:0 5px}.nux-intro .wpcom .goto a{width:100%;padding:.25em;height:auto}.nux-intro .wpcom .goto .button{height:auto;min-height:28px;line-height:18px;white-space:normal;max-width:200px;margin-bottom:0;padding-top:4px;padding-bottom:5px}.nux-intro .wpcom .goto .feat{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%)}.nux-intro .nux-foot .j-col{padding:1em}.nux-foot{margin-top:2em;background:#ececec;border-radius:6px}.nux-foot .j-col{min-height:75px;padding:1em}@media (max-width: 650px){.nux-foot .j-col{width:100%}}.nux-foot .j-col+.j-col{border-right:1px #f9f9f9 solid}@media (max-width: 650px){.nux-foot .j-col+.j-col{border-right:none;border-top:1px #f9f9f9 solid}}.nux-foot .actions{margin-top:1em}.nux-foot a{text-decoration:underline}.nux-foot img{float:left;margin-right:1em;width:75px;border-radius:4px}.nux-foot p{font-size:.9em;text-align:right;font-weight:600;margin-top:0}.nux-foot p+p{font-weight:400;margin-bottom:0}.nux-foot ul{font-size:.9em;margin-bottom:0}.nux-foot ul li{margin-left:.875em;margin-bottom:0;line-height:175%;display:inline-block;vertical-align:middle}.form-toggle[type="checkbox"]{opacity:0;position:absolute}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;-moz-box-sizing:border-box;box-sizing:border-box;padding:2px;width:40px;height:24px;background:#b9b9b9;vertical-align:middle;outline:0;cursor:pointer;transition:all .4s ease}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{right:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.form-toggle__switch:hover{background:#bdd597}.form-toggle__label{cursor:pointer}.plugin-action__label{padding-left:5px;top:-1px;position:relative;color:#8e9598}.activated .plugin-action__label{color:#81a844}.form-toggle:focus+.form-toggle__label .form-toggle__switch,.form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #0087be}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:hover+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle:disabled+.form-toggle__label .form-toggle__switch,.form-toggle:disabled:hover+.form-toggle__label .form-toggle__switch{background:#e9eff3}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}@media (max-width: 1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}.nux-intro .main-col{width:50%;margin-bottom:2em}.nux-intro .main-col.wpcom{width:100%}.nux-intro .main-col+.main-col{padding-left:0}.nux-intro .wpcom{padding:0}.nux-intro .wpcom .j-row{width:50%;float:right;border-bottom:1px #f9f9f9 solid;border-left:1px #f9f9f9 solid}.nux-intro .wpcom .j-row:last-of-type{width:100%;float:none;clear:both;border:none;border-top:1px #f9f9f9 solid;position:relative;top:-1px}.nux-intro .wpcom .goto .feat a{float:right}.nux-foot .j-col{border:none}}@media (max-width: 900px){.nux-intro .main-col{width:100%;padding:0;margin-bottom:2em}.nux-intro .wpcom .j-row{width:100%;float:none}}@media (max-width: 782px){#jumpstart-cta .button-primary{margin:10px 0 5px 0}#jump-start-area .spinner{background-position:50% 35%}}@media (max-width: 600px){.nux-intro h1{font-size:1.75em}.nux-intro p{font-size:1em}}@media (max-width: 530px){.jp-content .landing{padding:0 .5em}#jump-start-area{padding:0 1em}.jumpstart-message p{padding-left:0}#jumpstart-cta .button-primary{margin:0 0 5px 0;padding-bottom:10px}.footer .a8c-attribution a:after{top:6px}}.nav-horizontal:before,.features:before,.modules:before,.load-more:before,.nav-horizontal:after,.features:after,.modules:after,.load-more:after{content:"";display:table}.nav-horizontal:after,.features:after,.modules:after,.load-more:after{clear:both} /*# sourceMappingURL=jetpack-admin.min.css.map */plugins/jetpack/css/jetpack-admin-rtl.min.css.map0000755000312500031250000003544212654411246022444 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/atoms/typography/_typography.scss","../scss/atoms/_media.scss","../scss/atoms/_animations.scss","../scss/atoms/_buttons.scss","../scss/_utilities/mixins/_breakpoint.scss","../scss/atoms/icons/_automatticons.scss","../scss/atoms/icons/_jetpack.scss","../scss/molecules/_nav-horizontal.scss","../scss/templates/_main.scss","../scss/atoms/colors/_colors.scss","../scss/atoms/typography/_variables.scss","../scss/_utilities/mixins/_gradient--vertical.scss","../scss/templates/_settings.scss","../scss/_utilities/_clearings.scss"],"names":[],"mappings":"AAQA,kCAKC,WACA,CAAA,kDACA,CAAA,cACA,CAAA,eACA,CAAA,kCAQD,CAAA,iBAMC,WACA,CAAA,UAQD,CAAA,CACC,cACA,CAAA,4BACA,CAAA,oBAEA,CAAA,oBAGA,CAAA,SACQ,cAEA,CAAA,OACA,cAST,CAAA,OACC,oBAOD,CAAA,OAAA,iBAES,CAAA,mBAII,YACZ,CAAA,GAAA,gBAQA,CAAA,oBASA,CAAA,EAAA,gBAEA,CAAA,QAID,SACC,CAAA,QAAQ,CAAA,SAKR,CAAA,QAAS,gBAET,CAAA,EAAA,cACA,CAAA,UAAY,CAAA,QACZ,CAAA,yBCvGA,CAAA,YAAgB,CAAA,SCDjB,CAAA,GAAA,sBAEE,CAAA,yBAGS,GAAE,6BAGA,CAAA,oBAIb,CAAA,GACC,8BAIC,CAAA,qBAGA,CAAA,IAAA,2BAGA,CAAA,kBAIF,CAAA,CAAA,iBAEE,GAAA,6BAAW,CAAA,oBAGA,CAAA,GAAA,8BCjCb,CAAA,qBACkB,CAAA,IACjB,2BAED,CAAA,kBAAA,CAAA,CAAA,0BACU,GAAA,2BAET,CAAA,kBAAS,CAAA,GACT,8BACM,CAAA,qBAAA,CAAA,GAAA,8BACO,CAAA,qBAAA,CAAA,IACb,2BACA,CAAA,kBAEA,CAAA,CAAA,kBAAA,GAAA,2BACQ,CAAA,kBAER,CAAA,GAAA,8BAAA,CAAA,qBAAA,CAAA,GAAA,8BAGC,CAAA,qBAED,CAAA,IAAA,2BAAA,CAAA,kBACa,CAAA,CAAA,0BAId,GAAA,6CAKC,CAAA,oCAGA,CAAA,IAAA,kDAEC,CAAA,yCAGD,CAAA,CAAA,kBACC,GAAA,6CAGC,CAAA,oCAIH,CAAA,IAAA,kDAGC,CAAA,yCACA,CAAA,AAAK,CAAA,yBACC,uCAAA,CAAA,8BAEN,CAAA,+BAEA,qBACC,CAAA,iBAAA,CAAA,2BAGD,CAAA,aAGA,CAAA,4DAGC,CAAA,qCAEC,CAAA,kBAAA,CAAA,iBAGF,CAAA,+CAGE,cAAA,CAAA,uFASQ,WACA,CAAA,kBACT,CAAA,6CAGO,mBAEP,CAAA,WAAgB,CAAA,oBACJ,mBAAA,CAAA,aAAA,CAAA,4BACZ,cAED,CAAA,qDAIC,mBAEO,CAAA,UACC,CAAA,4BC7EP,mBDuBH,CAAA,UAyDW,CAAA,iEChFR,CAAA,yDAAA,CAAA,iBAAA,qBDuBH,CAAA,iBAuEa,CAAA,qCAGX,CAAA,UACC,CAAA,iEAEiB,CAAA,kBAAA,CAAA,SAAA,CAAA,iBAAA,CAAA,4DAAA,CAAA,oDAAA,CAAA,yBAAA,WAAA,CAAA,+CAAA,WAAA,CAAA,kBAAA,CAAA,4DAAA,CAAA,oDAAA,CAAA,wBAAA,QAAA,CAAA,wDAAA,CAAA,gDAAA,CAAA,8BAAA,SAAA,CAAA,wBAAA,WAAA,CAAA,oBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,oEAAA,CAAA,iCAAA,CAAA,oBAAA,CAAA,uBAAA,WAAA,CAAA,iBAAA,CAAA,KAAA,CAAA,OAAA,CAAA,UAAA,CAAA,WAAA,CAAA,0BAAA,kBAAA,gBAAA,CAAA,wBAAA,SAAA,CAAA,UAAA,CAAA,WAAA,CAAA,CAAA,yBAAA,yBAAA,MAAA,CAAA,CAAA,yBAAA,kBAAA,oBAAA,CAAA,eAAA,CAAA,wBAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,CAAA;AAIpB,cACC,qBACA,CAAA,WACA,CAAA,iBACA,CAAA,uBACA,CAAA,aACA,CAAA,mDACA,CAAA,qCACA,CAAA,kBACA,CAAA,YACA,CAAA,iBAEA,CAAA,qBACC,cAED,CAAA,uCAEC,WACA,CAAA,kBAED,CAAA,oBACC,YEjJF,CAAA,UACC,4BACA,CAAA,wDACA,CAAA,gUAIA,CAAA,kBACA,CAAA,iBCbD,CAAA,UACC,sBACA,CAAA,4CACA,CAAA,mQAIA,CAAA,kBACA,CAAA,iBAGD,CAAA,qDACC,WACC,sBACA,CAAA,kDAAmD,CAAA,ACXpD,CAAA,iBACC,qBAED,CAAA,kBACC,kBACA,CAAA,WAED,CAAA,kBACC,SACA,CAAA,SCdF,CAAA,kBAGC,8BAID,CAAA,0BAEM,CAAA,qBACY,CAAA,gBAOjB,mBAED,CAAA,UACC,CAAA,gBAED,CAAA,WAAA,mBACc,CAAA,UAEd,CAAA,gBAIA,CAAA,eACC,iBACA,CAAA,UACA,mBACY,CAAA,kBAEZ,kBACA,CAAA,SAAA,aAAmC,CAAA,WAEnC,mBACC,CAAA,QCpCc,CAAA,WLwBb,CAAA,eIgBH,CAAA,UAAA,CAAA,UAAA,CAAA,kCAAA,CAAA,oBAAA,mBAME,CAAA,yBJtBC,yFIgBH,kBAAA,CAAA,eAUE,CAAA,AAAW,CAAA,yBAAG,yFAAA,eAAA,CAAA,CAAA;AJ1Bb,0BI8BH,4BAEE,gBAAe,CAAA,CAAA;AAUjB,0BAEC,gBACA,CAAA,aAEA,CAAA,+BACC,iBJhDC,CAAA,yBIoDH,cAEE,aAAa,CAAA,CAAA;AJtDZ,2BI0DH,YAEE,mBACA,CAAA,YAAa,CJ7DZ,AI6DY,CJ7DZ,yBI0DH,YAME,qBAAoB,CAAA,CAAA;AAKrB,0CACC,eACA,CAAA,QAED,CAAA,2CACC,iBACA,CAAA,gBACA,CAAA,QAIF,CAAA,mBACC,kBACA,CAAA,UJlFE,CAAA,0BIgFH,oBAKE,mBACA,CAAA,YAAa,CAAA,CAAA;AJtFZ,2BI0FH,wBAEE,mBAAmB,CAAA,CAAA;AAIrB,YACC,gBACA,CAAA,aAQD,CAAA,OACC,QACA,CAAA,MAGA,CAAA,cACC,iBAED,CAAA,aACC,oBACA,CAAA,gBAGA,CAAA,2BACC,qBACA,CAAA,iBACA,CAAA,WACA,CAAA,eAAiB,CAAA,kCAEV,CAAA,0BAEP,CAAA,UAAa,CAAA,gBACA,CAAA,kBAEb,CAAA,mBAAS,CAAA,kCAGF,WAEN,CAAA,iBACQ,CAAA,KACR,CAAA,OAAY,CAAA,UAAA,CAAA,WAAA,CAAA,kEACA,CAAA,uEAOhB,CAAA,kCJjJG,CAAA,0BIiJH,CAAA,SAOE,YAAW,CAAA,YAAI,SAAA,CAAA,yBAAA,UAAA,eAAA,CAAA,CAAA;AAIjB,UACC,WAAY,CAAA,YAET,SACO,CAAA,gCAMG,SACH,CAAA,0DAE6B,UAC5B,CAAA,4FAE2C,YACzC,CAAA,+BAED,aACE,CAAA,SAQL,kBAKS,CAAA,iBACA,CAAA,SACR,CAAA,wBANI,CAAA,8FAYJ,CAAA,+DJrMR,CAAA,4FAAA,CI2MkB,uDAAA,CAAA,0BAKpB,cAEC,CAAA,4BAGA,iBAAS,CAAA,yBAET,6BACM,iBAAA,CAAA,SAAA,CAAA,CAAA,yBAAA,cACE,CAAA,YACR,0BAAa,CAAA,oBAGb,CAAA,UAAA,CAAA,8EAIc,CAAA,iBACF,CAAA,sCAdb,CAAA,SAAG,CAAA,mBAkBD,iBJtOA,CAAA,0BIoNF,aAqBE,sBACS,CAAA,mBACE,CAAA,CAAA,yBACK,aAAA,gBAAA,CAAA,cAAA,CAAA,CAAA,yBAAA,aAAA,cAAA,CAAA,qBAAA,CAAA,cAAA,CAAA,eAAA,CAAA,CAAA;AAInB,gCACC,mBACA,CAAA,eAED,CAAA,MACC,kBACA,CAAA,gBACA,CAAA,aJvPE,CAAA,yBIoPH,OAME,aAAa,CAAA,CAAA;AAGf,OACC,kBACA,CAAA,aACA,CAAA,QACA,CAAA,SACA,CAAA,2CAEA,CAAA,mCAGC,CAAA,mBACA,UACA,CAAA,WAAA,CAAA,YAED,CAAA,4BAEC,CAAA,oBACY,CAAA,+BAEZ,CAAA,uBAID,CAAA,mBACA,UAAY,CAAA,UACL,CAAA,WACP,CAAA,4BAGA,CAAA,oBACY,CAAA,+BAEL,CAAA,uBAAA,CAAA,QAAA,kBAAA,CAAA,gBACN,CAAA,aAAa,CAAA,kBJ9RZ,CAAA,SAAA,CAAA,WI0RF,gBAOa,CAAA,aACF,CAAA,8EAOV,CAAA,0BAEA,CAAA,yBAEA,YACA,gBACQ,CAAA,cACE,CAAA,AAAE,CAAA,yBAAA,YAAA,aAAA,CAAA,CAAA,cACZ,WACA,CAAA,iBJlTC,CAAA,WAAA,CAAA,OImRH,CAAA,kBAkCc,CAAA,UACH,CAAA,YAET,CAAA,gEJxTC,CAAA,mBI6TD,CAAA,UACA,CAAA,0BJ9TC,SAAA,iBIiUD,CAAA,mBACA,CAAA,cAAS,kCAAc,CAAA,yBAAA,CAAA,CAAA,yBAAA,SAAA,iBAAA,CAAA,mBAAA,CAAA,CAAA,yBAAA,SAAA,gBAAA,CAAA,sBAAA,CAAA,CAAA;AAGzB,WAIC,aACA,CAAA,iBACA,CAAA,iBACA,CAAA,SACA,CAAA,wBACA,CAAA,8FACA,CAAA,+DACA,CAAA,4FAAA,CAAkB,uDAAA,CAAA,gBAClB,WAAkB,CAAA,iBAAA,CAAA,QAAA,CAAA,OAClB,CAAA,kBAAkB,CAAA,UAAA,CAAA,YAAA,CAAA,mEACA,CAAA,mBAEV,CAAA,SACE,CAAA,yBAEH,WAEN,UAAA,CAAA,CAAA;AAgBF,UACC,6BACA,CAAA,+BACA,CAAA,eACA,CAAA,iBACA,CAAA,2BACA,CAAA,iBACA,CAAA,SAGA,CAAA,gBACC,WACA,CAAA,aACA,CAAA,iBACA,CAAA,KACA,CAAA,WACA,CAAA,UAED,CAAA,sCACC,cACA,CAAA,oBJ9XC,CAAA,yBI0WH,UAuBE,aAAa,CAAA,CAAA;AAGf,6BAEC,qBACA,CAAA,aACA,CAAA,8EACA,CAAA,iBACA,CAAA,0BJ1YE,CAAA,yBIoYH,6BASE,eAAe,CJ7Yd,AI6Yc,CJ7Yd,yBIoYH,6BAYE,eAAe,CAAA,CAAA;AAGjB,mBACC,cAGD,CAAA,gBAEC,kBACA,CAAA,WACA,CAAA,iBACA,CAAA,WACA,CAAA,sCJ7ZE,CAAA,8BIuZH,CAAA,0BAS0B,iBACP,wBAGjB,CAAA,gBAAA,CAAA,uBAAoB,CAAA,eAGpB,CAAA,gDAEiB,eAAA,CAAA,4BAAA,MAAA,CAAA,uBAAA,CAAA,eAAA,CAAA,CAAA;AAInB,SACC,gCAEA,CAAA,uBAC2B,CAAA,WACnB,qBACI,CAAA,aACE,CAAA,mBAGd,CAAA,eACC,CAAA,eACO,CAAA,UAER,SACC,CAAA,aACA,CAAA,eACA,WACM,CAAA,iBAEN,CAAA,QACA,CAAA,OAAU,CAAA,UAAE,CAAA,WACZ,CAAA,2BACW,CAAA,UACX,CAAA,+BAGD,CAAA,uBACY,CAAA,sCAGI,CAAA,8BAGd,CAAA,cAAQ,mCAGT,CAAA,8BAGA,CAAA,0BACU,CAAA,iBJtdT,cAAA,CAAA,2BIydA,sBAGA,CAAA,kBAAA,CAAA,yBAEC,YAAa,CAAA,qBAEd,kCAMF,CAAA,6BAEC,CAAA,yBAEM,CAAA,0BACN,kBAEA,cAAA,CAAA,2BACa,sBAAA,CAAA,kBACZ,CAAA,yBAEA,YAAA,CAAA,CAAA,qBAAA,gBAAA,CAAA,UAAA,CAAA,WAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,gCAJD,qDASoB,CAAA,iCAGpB,CAAA,yBAAA,CAAA,uJAIC,iCAAA,oDAAA,CAAA,CAAA,uCAJD,4DASoB,CAAA,iCAGpB,CAAA,yBACa,CAAA,uJAGZ,wCAAA,2DAJD,CAAA,CAAA,qCASoB,0DAGpB,CAAA,iCAIoB,CAAA,yBAKrB,CAAA,uJAOmB,sCAFnB,yDAME,CAAA,AAAU,CAAA,+BJriBV,YIyhBH,CAAA,kBAgBE,CAAA,oBAAiB,cAAA,CAAA,+BAAA,CAAA,qBAAA,CAAA,kBAAA,CAAA,mCAAA,gBAAA,CAAA,iBAAA,CAAA,0BAAA,oCAAA,sBAAA,CAAA,kBAAA,CAAA,CAAA,yBAAA,qBAAA,iBAAA,CAAA,CAAA;AAQnB,KACC,WACA,CAAA,kBAEA,CAAA,OACC,eACA,CAAA,eACA,CAAA,mBACA,CAAA,gBAED,CAAA,WACC,WAGF,CAAA,YACC,kBAEA,CAAA,eAEC,0BJpkBC,CAAA,yBIkkBF,gBAKE,gBACA,CAAA,cAAe,CAAA,CAAA;AAIlB,eACC,kBACA,CAAA,UACA,CAAA,oBACA,CAAA,uBACA,CAAA,eAED,CAAA,eACC,SACA,CAAA,2BACA,CAAA,UACA,CAAA,wBACA,CAAA,iBACA,CAAA,eACA,CAAA,aACA,CAAA,eAEA,CAAA,qBACC,cACA,CAAA,YAEA,CAAA,2BACC,uBACA,CAAA,SAGF,CAAA,0CACC,cAED,CAAA,iCACC,cAED,CAAA,iCACC,cAED,CAAA,qCACC,cAED,CAAA,qBACC,kBACA,CAAA,OACA,CAAA,QAAU,CAAA,UACC,CAAA,UACA,CAAA,aACG,CAAA,mBACM,CAAA,mBACA,CAAA,iBACF,CAAA,sCAGlB,CAAA,8BACU,CAAA,2BAET,gBACA,CAAA,iBAEA,CAAA,SAAW,CAAA,eACX,CAAA,OAAa,CAAA,mBEnoBH,CAAA,kBFyoBZ,CAAA,wBACA,CAAA,UAAO,wBAGG,CAAA,aACT,CAAA,YAAU,qBACD,CAAA,iBACF,CAAA,2BACD,CAAA,UAAA,CAAA,8DACO,CAAA,2CAEb,CAAA,eACA,CAAA,iBACA,CAAA,mCACA,CAAA,2BACA,CAAA,2DAEA,cAAA,CAAA,qCAIc,CAAA,kBACb,CAAA,yBJjqBA,aAAA,mBIoqBA,CAAA,CAAA;AAQH,QACC,eACA,CAAA,aACA,CAAA,+BACA,CAAA,gBACA,CAAA,wBACA,CAAA,eACA,CAAA,yCACA,CAAA,iCAEQ,CAAA,qCAEK,CAAA,6BAGZ,CAAA,aAED,qBACS,CAAA,kBAER,CAAA,yBACA,aACA,CAAA,UAAa,iBAGb,CAAA,aACO,CAAA,mBACI,CAAA,iBJvsBV,CAAA,eI2sBA,CAAA,SAAA,SAAA,CAAA,aACC,CAAA,mBAED,CAAA,0BAAA,6BJ9sBA,wBIysBF,CAAA,8BAYE,eAAA,CAAA,CAAA,yBAGA,aAAA,kBACC,CAAA,4BJztBD,kBIysBK,CAAA,4BAsBL,eACC,CAAA,CAAA,yBAED,aAAA,aACY,CAAA,4BJnuB0C,eIwuBjD,CAAA,4BAGN,eAAA,CAAA,AAAoB,CAAA,yBAGpB,QAAA,kBACc,CAAA,SJ/uBb,CAAA,uBI4qBH,gBAwEE,CAAA,uBAEA,eACC,CAAA,CAAA,yBAED,QACC,aAAc,CAAA,UAAA,CAAA,uBAAA,eAAA,CAAA,uBAAA,eAAA,CAAA,CAAA;AAIjB,KAGC,kBAEA,CAAA,UACC,cACA,CAAA,iBACA,CAAA,QACA,CAAA,SAAW,CAAA,gBACM,CAAA,UATP,CAAA,WAAA,CAAA,UAYC,CAAA,aACG,CAAA,eACE,CAAA,iBACE,CAAA,oCACkB,CAAA,iEAC8B,CAAA,iCAElE,CAAA,oBAIQ,CAAA,iBACT,CAAA,KAAU,qBAEV,CAAA,iBACS,CAAA,OAAA,CAAA,iBAET,CAAA,qBACM,CAAA,WAAA,CAAA,UAAA,CAAA,sDACO,CAAA,qCAEG,CAAA,kBAEhB,CAAA,kBAEW,CAAA,wBAEC,kBACL,CAAA,KAAA,CAAA,SAAA,CAAA,kCAIN,CAAA,YACA,gBAED,CAAA,aACC,CAAA,gBACA,CAAA,WAAkB,gBAIpB,CAAA,gBAAkB,CAAA,cACR,CAAA,iBAKT,gBAAQ,CAAA,UAIT,6BAIC,CAAA,IAAS,aAOD,CAAA,SACA,cACE,CAAA,QACP,WACI,CAAA,iBAEF,CAAA,OACG,CAAA,UAIR,CAAA,aAAY,WACF,CAAA,MACV,gBACQ,CAAA,cAER,CAAA,QAAU,CAAA,WACC,CAAA,SACX,CAAA,UACA,CAAA,kBAAY,CAAA,YAAA,CAAA,iDAID,CAAA,yCAGJ,CAAA,WAAA,CAAA,aACC,kBACS,CAAA,KAChB,CAAA,MAAS,CAAA,0CACA,CAAA,UACF,CAAA,eAEP,CAAA,oBACa,CAAA,qCAIZ,CAAA,SAAY,CAAA,mBAId,gBAAe,CAAA,WACL,CAAA,oBAEV,gBACW,CAAA,WACP,CAAA,qBAGH,aACQ,CAAA,yBAGT,kBACC,CAAA,KAAQ,CAAA,MACR,CAAA,QAAW,CAAA,OACX,CAAA,aAED,CAAA,iBACW,CAAA,eACA,cACH,CAAA,eACD,CAAA,gBAAA,CAAA,SAAA,iBAAA,CAAA,YACN,CAAA,aAAa,CAAA,mEAMd,CAAA,0BAGA,CAAA,yBACW,UAEV,eACO,CAAA,CAAA,QACP,oBACA,CAAA,aAAY,kBACA,CAAA,OACZ,CAAA,QAAY,CAAA,UAEZ,CAAA,iBAGA,CAAA,yBACU,CAAA,eACT,CAAA,eAGF,CAAA,gBACC,SAAA,CAAA,gBJr6BC,qBIm1BH,CAAA,QAqFE,CAAA,wBAEA,wBAEA,CAAA,yBJ56BC,OAAA,UIm1BH,CAAA,iBA+FE,CAAA,aJl7BC,CAAA,eAAA,SIm1BH,CAAA,CAAA,yBAoGE,OAAQ,SACF,CAAA,cAAI,CAAA,CAAA,yBAAA,OAAA,SAAA,CAAA,SAAA,CAAA,WAAA,CAAA,UAAA,CAAA,CAAA;AAGZ,aACC,WAAY,CAAA,oBACS,CAAA,gBAEjB,sBACmB,CAAA,cACP,CAAA,WACH,CAAA,4BAEE,aACA,CAAA,yBJr8ByC,aI27B5C,WAcA,CAAA,eACK,CAAA,CAAA;AAGlB,gCACC,YAED,CAAA,MACC,gBACA,CAAA,QACA,CAAA,cACA,CAAA,YACA,CAAA,OACA,CAAA,WACA,CAAA,cACA,CAAA,MACA,CAAA,KACA,CAAA,UAOD,CAAA,sCAEC,qBACA,CAAA,aACA,CAAA,8EACA,CAAA,0BJt+BE,CAAA,yBIi+BH,uCAQE,cAAc,CAAA,CAAA;AAIhB,8CAGC,qBACA,CAAA,aACA,CAAA,oEACA,CAAA,0BJn/BE,CAAA,yBI6+BH,8CASE,gBAAgB,CAAA,CAAA;AAIlB,yBACC,sBAGD,CAAA,mGAIC,YACA,CAAA,SAQD,CAAA,OACC,qBACA,CAAA,iBACA,CAAA,wBACA,CAAA,iBGviCA,CAAA,wBACA,CAAA,8FH4iCC,CAAA,+DAKK,CAAA,4FAAA,CAIO,uDAAA,CAAA,4BAAA,WAAA,CAAA,iBAEb,CAAA,OAAQ,CAAA,mBAEI,CAAA,cAEX,MAAA,CAAA,eAAY,CAAA,UAAA,CAAA,YAAA,CAAA,kEAIb,CAAA,aAAA,SACC,CAAA,UAAe,CAAA,WJziCd,CAAA,qEI+iCD,CAAA,iCAGA,CAAA,yBAGA,CAAA,SACC,CAAA,yBACgB,mBJvjChB,CAAA,0BI2jCU,QJ3jCV,kBAAA,CAAA,gBI8jCD,CAAA,cJ9jCC,kCIikCD,CAAA,yBACa,CAAA,aJlkCZ,aAAA,CAAA,UIqkCD,WAAW,CAAA,eAAM,CAAA,CAAA,yBAAA,QAAA,kBAAA,CAAA,CAAA,yBAAA,QAAA,aAAA,CAAA,CAAA,yBAAA,QAAA,aAAA,CAAA,iBAAA,CAAA,CAAA,yBAAA,QAAA,iBAAA,CAAA,CAAA;AAGnB,YACC,eACA,CAAA,aAEA,CAAA,mCAEC,gBACA,CAAA,aAEA,CAAA,+FAEC,WJnlCA,CAAA,0BIwkCH,YAeE,YACA,CAAA,SAIC,CAAA,+FAEC,WAAW,CJ9lCZ,AI8lCY,CJ9lCZ,yBImmCD,eACC,cACA,CAAA,UACA,CAAA,QACA,CAAA,gBAED,CAAA,aACC,cACA,CAAA,cACA,CAAA,gBAAiB,CAAA,CAAA;AAIpB,SACC,4BACA,CAAA,+BAED,CAAA,iBACC,cAEA,CAAA,oBACC,gBAAiB,CAAA,0BJxnCsC,kBIonCvC,cAOF,CAAA,qBACQ,CAAA,CAAA,yBJ5nCiC,kBIonCvC,SAWP,CAAA,SACC,CAAA,WACE,CAAA,eACI,CAAA,mBAEd,6BACuC,CAAA,CAAA;AAI3C,yBACC,sBACA,CAAA,aACA,CAAA,mBACA,CAAA,6EACA,CAAA,wBAEA,CAAA,0BAIC,qBACA,CAAA,iBACA,CAAA,gBACA,CAAA,WAAa,CAAA,SACH,CAAA,gCAEF,YACK,CAAA,iBACM,CAAA,OACV,CAAA,YACD,CAAA,WACC,CAAA,UACD,CAAA,mBACI,CAAA,2BHxrCE,CAAA,iBG0rCD,CAAA,sCAGZ,wCJtqCA,CAAA,+BIyoCH,CAAA,0BAmCe,yBAAA,aAAA,CAAA,CAAA;AAGf,WACC,yBACA,CAAA,4BAQD,CAAA,gBACC,mBACA,CAAA,wBACA,CAAA,kBACA,CAAA,aACA,CAAA,iBACA,CAAA,SAEA,CAAA,mBACC,WACA,CAAA,QAED,CAAA,kBACC,WACA,CAAA,QACA,CAAA,WAED,CAAA,0BACC,4BACA,CAAA,iBACA,CAAA,gBAEA,CAAA,iCACC,WACA,CAAA,eACA,CAAA,wBACA,CAAA,cACA,CAAA,WACA,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,QACA,CAAA,sBJztCA,CAAA,yBI0sCF,2BAkBE,aAEA,CAAA,iCACC,aAIH,CAAA,CAAA,qFAEC,gBAQF,CAAA,yCAEC,WAEA,CAAA,uDACC,qBACA,CAAA,iBACA,CAAA,OACA,CAAA,UACA,CAAA,eACA,CAAA,WACA,CAAA,6BACA,CAAA,kBAIF,CAAA,+BACC,eAGD,CAAA,oDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,6EAEC,gBACA,CAAA,4BAED,CAAA,yEAEC,gBACA,CAAA,4BAED,CAAA,+FAEC,gBACA,CAAA,4BAED,CAAA,mEAEC,gBACA,CAAA,4BAED,CAAA,0EAEC,gBAED,CAAA,2FAEC,YACA,CAAA,2BAED,CAAA,wEAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,gDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,oDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,4DAEC,gBAED,CAAA,wDAEC,gBAED,CAAA,oDAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,sDAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,uEAEC,gBACA,CAAA,4BAED,CAAA,oEAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,8EAEC,gBAED,CAAA,8EAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,yEAEC,YACA,CAAA,2BAED,CAAA,8DAEC,gBAED,CAAA,uFAEC,gBACA,CAAA,4BAED,CAAA,oDAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,6FAEC,gBACA,CAAA,4BJh5CE,CAAA,yBIy5CF,oGAIC,WJ75CC,CAAA,CAAA,yBIm6CD,+CACC,WAEA,CAAA,2DACC,cACA,CAAA,UAGF,CAAA,+CACC,WJ56CA,CAAA,CAAA,yBQxBF,oCAEE,gBAAgB,CAAA,CAAA;AAKnB,wBACC,aAKA,CAAA,qBACC,YACA,CAAA,uBACA,CAAA,eACA,CAAA,qBACK,CAAA,iBAEL,CAAA,QAAA,CAAA,2BAEC,mBAAe,CAAA,+BAEf,CAAA,mBACU,CAAA,eAEV,CAAA,cACO,CAAA,MACP,CAAA,QACA,CAAA,UAAY,CAAA,SAAA,CAAA,sCAVb,CAAA,8BAaU,CAAA,yBAER,4BACU,YACL,CAAA,uBAEN,CAAA,eAnBD,CAAA,qBAoBQ,CAAA,iBAIR,CAAA,QAAA,CAAA,CAAA,yBAIE,4BADD,MAAA,CAAA,CAAA,mCAEE,YAED,CAAA,yBAJD,6CAKE,cAAe,CAAA,CAAA,yBAAA,6CAAA,eAAA,CAAA,CAAA;AAOpB,+BACC,iBAGD,CAAA,cACC,aACA,CAAA,UAAY,CAAA,eACI,CAAA,yBACU,eAJZ,cAKC,CAAA,CAAA,yBAEW,eAPZ,aAQA,CAAA,CAAA;AAIf,6BACC,WAAY,CAAA,gBACE,CAAA,8BAEd,gBACY,CAAA,+BAIb,YACS,CAAA,eACO,CAAA,oDAGd,eACe,CAAA,kBACK,CAAA,0DACb,cACS,CAAA,kEAIJ,qBACW,CAAA,8EAEC,UACZ,CAAA,uHAKR,mBACiB,CAAA,2DAEjB,+BAEF,CAAA,iBAGA,CAAA,uEACC,+BAIH,CAAA,6DACC,YACA,CAAA,mEACC,aAGF,CAAA,yGAEC,gBACA,CAAA,QACA,CAAA,iDACA,CAAA,yCAGD,CAAA,oDACC,2BACA,CAAA,gBAEA,CAAA,gEACC,4BAED,CAAA,iEACC,WACA,CAAA,eACA,CAAA,kBAEA,CAAA,sEACC,iBACA,CAAA,wEACC,UACA,CAAA,8EACC,UAKH,CAAA,yBAfD,kEAgBE,aRpIF,CAAA,CAAA,yBQoHA,kEAmBE,cACA,CAAA,kBACA,CAAA,kBAMJ,CAAA,CAAA,2CACC,SACA,CAAA,qBAEA,CAAA,sDACC,eRpJA,CAAA,yBQmJD,uDAIE,gBAIH,CAAA,CAAA,kCACC,gBAED,CAAA,yCACC,aAEA,CAAA,yBAHD,0CAIE,iBAGF,CAAA,CAAA,yCACC,eAED,CAAA,8CACC,eAED,CAAA,0CACC,WACA,CAAA,YACA,CAAA,gBR9KC,CAAA,yBQ2KF,2CAME,qBAGF,CAAA,CAAA,oCACC,WAED,CAAA,mCACC,WAED,CAAA,yBACC,8CACC,WAAW,CAAA,CAAA;AAId,yBACC,wBACA,CAAA,WAED,CAAA,KACC,SACA,CAAA,mBACA,CAAA,eAEA,CAAA,QACC,eACA,CAAA,eAED,CAAA,kBACC,YACA,CAAA,QACA,CAAA,SACA,CAAA,SAEA,CAAA,wBACC,WAGD,CAAA,yBAVD,mBAWE,WAGF,CAAA,CAAA,mBACC,SACA,CAAA,SACA,CAAA,iBACA,CAAA,MACA,CAAA,SACA,CAAA,SAEA,CAAA,qBACC,eACA,CAAA,gBACA,CAAA,UACA,CAAA,eACA,CAAA,wBACA,CAAA,kBACA,CAAA,WAED,CAAA,2BACC,kBAED,CAAA,wBACC,cACA,CAAA,cACA,CAAA,eACA,CAAA,iBACA,CAAA,iBAED,CAAA,+BACC,mBACA,CAAA,eAED,CAAA,gCACC,WACA,CAAA,WACA,CAAA,eACA,CAAA,iBAEA,CAAA,oDACC,cACA,CAAA,SACA,CAAA,mBAEA,CAAA,yBALD,qDAME,YACA,CAAA,eAGF,CAAA,CAAA,oDACC,aAID,CAAA,yCACC,aAGF,CAAA,8BACC,SACA,CAAA,SAEA,CAAA,gCACC,UACA,CAAA,mBAED,CAAA,uCACC,gBACA,CAAA,iBACA,CAAA,iBACA,CAAA,kBACA,CAAA,UAEA,CAAA,8CACC,cACA,CAAA,eAIF,CAAA,iCACC,cACA,CAAA,gBAIF,CAAA,yBAnFD,oBAoFE,gBACA,CAAA,QACA,CAAA,YACA,CAAA,eACA,CAAA,cACA,CAAA,MACA,CAAA,KACA,CAAA,UACA,CAAA,iDAEA,CAAA,yCAGA,CAAA,2BACO,YACI,CAAA,gCAAA,SAAA,CAAA,SAAA,CAAA,CAAA;AClVb,gJACC,WACA,CAAA,aAED,CAAA,qEACC,WAAW,CAAA","file":"jetpack-admin-rtl.min.css"}plugins/jetpack/css/jetpack-rtl.css0000644000312500031250000015767112651056012020017 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is concatenated from individual module CSS files. */ .jp-carousel-wrap *{line-height:inherit}.jp-carousel-overlay{background:#000}div.jp-carousel-fadeaway{position:fixed;bottom:0;z-index:2147483647;width:100%;height:15px}.jp-carousel-next-button span,.jp-carousel-previous-button span{background:url(../modules/carousel/images/arrows.png) center center/200px 126px no-repeat}.jp-carousel-msg{font-family:"Open Sans",sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.jp-carousel-next-button span,.jp-carousel-previous-button span{background-image:url(../modules/carousel/images/arrows-2x.png)}}.jp-carousel-wrap{font-family:"Helvetica Neue",sans-serif!important}.jp-carousel-info{position:absolute;bottom:0;text-align:right!important;-webkit-font-smoothing:subpixel-antialiased!important}.jp-carousel-info ::selection{background:#68c9e8;color:#fff}.jp-carousel-info ::-moz-selection{background:#68c9e8;color:#fff}.jp-carousel-photo-info{position:relative;right:25%;width:50%}.jp-carousel-transitions .jp-carousel-photo-info{transition:400ms ease-out}.jp-carousel-info h2{background:none!important;border:none!important;color:#999;display:block!important;font:400 13px/1.25em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;margin:7px 0 0!important;padding:10px 0 0!important;overflow:hidden;text-align:right;text-shadow:none!important;text-transform:none!important;-webkit-font-smoothing:subpixel-antialiased}.jp-carousel-next-button,.jp-carousel-previous-button{text-indent:-9999px;overflow:hidden;cursor:pointer}.jp-carousel-next-button span,.jp-carousel-previous-button span{position:absolute;top:0;bottom:0;width:82px;zoom:1;filter:alpha(opacity=20);opacity:.2}.jp-carousel-transitions .jp-carousel-next-button span,.jp-carousel-transitions .jp-carousel-previous-button span{transition:500ms opacity ease-out}.jp-carousel-next-button:hover span,.jp-carousel-previous-button:hover span{filter:alpha(opacity=60);opacity:.6}.jp-carousel-next-button span{background-position:-110px center;left:0}.jp-carousel-previous-button span{background-position:-10px center;right:0}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:#999;font:400 11px/1.2em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;padding:5px 0 5px 2px;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:#68c9e8;border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-next-button,.jp-carousel-previous-button,.jp-carousel-slide,.jp-carousel-slide img{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.jp-carousel-slide{position:fixed;width:0;bottom:0;background-color:#000;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}.jp-carousel-slide.selected{position:absolute!important;filter:alpha(opacity=100);opacity:1}.jp-carousel-slide{filter:alpha(opacity=25);opacity:.25}.jp-carousel-slide img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;background:none!important;border:none!important;padding:0!important;box-shadow:0 2px 8px rgba(0,0,0,.1);zoom:1}.jp-carousel-transitions .jp-carousel-slide{transition:opacity 400ms linear}.jp-carousel-close-hint{color:#999;cursor:default;letter-spacing:0!important;padding:.35em 0 0;position:absolute;text-align:right;width:90%}.jp-carousel-transitions .jp-carousel-close-hint{transition:color 200ms linear}.jp-carousel-close-hint span{cursor:pointer;background-color:#000;background-color:rgba(0,0,0,.8);display:block;height:22px;font:400 24px/1 "Helvetica Neue",sans-serif!important;line-height:22px;margin:0 .4em 0 0;text-align:center;vertical-align:middle;width:22px;border-radius:4px}.jp-carousel-transitions .jp-carousel-close-hint span{transition:border-color 200ms linear}.jp-carousel-close-hint:hover{cursor:default;color:#fff}.jp-carousel-close-hint:hover span{border-color:#fff}a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-like,div.jp-carousel-buttons a.jp-carousel-reblog{background:url(../modules/carousel/images/carousel-sprite.png?5) 0 0/16px 200px no-repeat}div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{margin:0 0 0 14px!important}div.jp-carousel-buttons a.jp-carousel-like.liked,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#303030;padding-left:8px!important;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{margin:0 -12px 0 2px!important}div.jp-carousel-buttons a.jp-carousel-reblog,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{background-position:6px -36px;padding-left:auto!important;padding-right:26px!important;color:#999}div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -156px;padding-right:19px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{cursor:default}div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:6px -56px;color:#68c9e8}div.jp-carousel-buttons a.jp-carousel-like{background-position:5px 5px;padding-right:24px!important}div.jp-carousel-buttons a.jp-carousel-like:hover{background-position:5px -15px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-like,div.jp-carousel-buttons a.jp-carousel-reblog{background-image:url(../modules/carousel/images/carousel-sprite-2x.png?5)}}div#carousel-reblog-box{background:#222;padding:3px 0 0;display:none;margin:5px auto 0;border-radius:2px;box-shadow:0 0 20px rgba(0,0,0,.9);height:74px;width:565px}#carousel-reblog-box textarea{background:#999;font:13px/1.4 "Helvetica Neue",sans-serif!important;color:#444;padding:3px 6px;width:370px;height:48px;float:right;margin:6px 9px 0;border:1px solid #666;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px}#carousel-reblog-box textarea:focus{background:#ccc;color:#222}#carousel-reblog-box label{color:#aaa;font-size:11px;padding-left:2px;padding-right:2px;display:inline;font-weight:400}#carousel-reblog-box select{width:110px;padding:0;font-size:12px;font-family:"Helvetica Neue",sans-serif!important;background:#333;color:#eee;border:1px solid #444;margin-top:5px}#carousel-reblog-box .submit,#wrapper #carousel-reblog-box p.response{float:right;width:154px;padding-top:0;padding-right:1px;overflow:hidden;height:34px;margin:3px 2px 0 0!important}#wrapper #carousel-reblog-box p.response{font-size:13px;clear:none;padding-right:2px;height:34px;color:#aaa}#carousel-reblog-box input#carousel-reblog-submit,#jp-carousel-comment-form-button-submit{font:13px/24px "Helvetica Neue",sans-serif!important;margin-top:8px;padding:0 10px!important;border-radius:1em;height:24px;color:#333;cursor:pointer;font-weight:400;background:#aaa;border:1px solid #444}#carousel-reblog-box input#carousel-reblog-submit:hover,#jp-carousel-comment-form-button-submit:hover{background:#ccc}#carousel-reblog-box .canceltext{color:#aaa;font-size:11px;line-height:24px}#carousel-reblog-box .canceltext a{color:#fff}.jp-carousel-titleanddesc{border-top:1px solid #222;color:#999;font-size:15px;padding-top:24px;margin-bottom:20px;font-weight:400}.jp-carousel-titleanddesc-title{font:300 1.5em/1.1 "Helvetica Neue",sans-serif!important;text-transform:none!important;color:#fff;margin:0 0 15px;padding:0}.jp-carousel-titleanddesc-desc p{color:#999;line-height:1.4;margin-bottom:.75em}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-titleanddesc p a{color:#fff!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-titleanddesc p b,.jp-carousel-titleanddesc p strong{font-weight:700;color:#999}.jp-carousel-titleanddesc p em,.jp-carousel-titleanddesc p i{font-style:italic;color:#999}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-titleanddesc p a:hover{color:#68c9e8!important}.jp-carousel-titleanddesc p:empty{display:none}.jp-carousel-left-column-wrapper h1:after,.jp-carousel-left-column-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-image-meta{background:#111;border:1px solid #222;color:#fff;font:12px/1.4 "Helvetica Neue",sans-serif!important;overflow:hidden;padding:18px 20px;width:209px!important}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:"Helvetica Neue",sans-serif!important;position:inherit!important;top:auto!important;left:auto!important;right:auto!important;bottom:auto!important;background:none!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;float:right!important;margin:0 0 15px 2%!important;color:#fff!important;font-size:13px!important}.jp-carousel-image-meta h5{color:#999!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{padding-right:23px;display:inline-block;clear:both;color:#999;line-height:1;font-weight:400;font-size:13px;text-decoration:none;background-position:0 -82px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-right:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 2px 0 1px}a.jp-carousel-image-download:hover{background-position:0 -122px;color:#68c9e8;border:none!important}.jp-carousel-image-map{position:relative;margin:-20px -20px 20px;border-bottom:1px solid rgba(255,255,255,.17);height:154px}.jp-carousel-image-map img.gmap-main{border-top-right-radius:6px;border-left:1px solid rgba(255,255,255,.17)}.jp-carousel-image-map div.gmap-topright{width:94px;height:154px;position:absolute;top:0;left:0}.jp-carousel-image-map div.imgclip{overflow:hidden;border-top-left-radius:6px}.jp-carousel-image-map div.gmap-topright img{margin-right:-40px}.jp-carousel-image-map img.gmap-bottomright{position:absolute;top:96px;left:0}.jp-carousel-comments{font:15px/1.7 "Helvetica Neue",sans-serif!important;font-weight:400;background:none}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:#68c9e8!important}.jp-carousel-comment{background:none;color:#999;margin-bottom:20px;clear:right;overflow:auto;width:100%}.jp-carousel-comment p{color:#999!important}.jp-carousel-comment .comment-author{font-size:13px;font-weight:400;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:#fff}.jp-carousel-comment .comment-gravatar{float:right}.jp-carousel-comment .comment-content{border:none;margin-right:85px;padding:0}.jp-carousel-comment .avatar{margin:0 0 0 20px;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important}.jp-carousel-comment .comment-date{color:#999;margin-top:4px;font-size:11px;display:inline;float:left}#jp-carousel-comment-form{margin:0 0 10px!important;float:right;width:100%}textarea#jp-carousel-comment-form-comment-field{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:15px/1.4 "Helvetica Neue",sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:3px;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:#ccc;color:#222}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#aaa}#jp-carousel-comment-form-spinner{color:#fff;margin:22px 10px 0 0;display:block;width:20px;height:20px;float:right}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:13px/1.4 "Helvetica Neue",sans-serif!important;padding:3px 6px;float:right;box-shadow:inset -2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:#ccc;color:#222}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:22px 0 0;float:right}#jp-carousel-comment-form-commenting-as fieldset{float:right;border:none;margin:20px 0 0;padding:0;clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:0 0 3px 20px;float:right;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;float:left}#jp-carousel-comment-form-container,#js-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(0,0,0,.7);border-radius:2px;font:13px/1.4 "Helvetica Neue",sans-serif!important;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 5px 5px rgba(0,0,0,1)}.jp-carousel-comment-post-error{color:#DF4926}#jp-carousel-comments-closed{display:none;color:#999}#jp-carousel-comments-loading{font:400 15px/1.7 "Helvetica Neue",sans-serif!important;display:none;color:#999;text-align:right;margin-bottom:20px}.jp-carousel-light .jp-carousel-overlay{background:#fff}.jp-carousel-light .jp-carousel-next-button:hover span,.jp-carousel-light .jp-carousel-previous-button:hover span{opacity:.8}.jp-carousel-light .jp-carousel-close-hint:hover,.jp-carousel-light .jp-carousel-titleanddesc div{color:#000!important}.jp-carousel-light .jp-carousel-comment .comment-author a,.jp-carousel-light .jp-carousel-comments p a,.jp-carousel-light .jp-carousel-info h2 a,.jp-carousel-light .jp-carousel-titleanddesc p a{color:#1e8cbe!important}.jp-carousel-light .jp-carousel-comment .comment-author a:hover,.jp-carousel-light .jp-carousel-comments p a:hover,.jp-carousel-light .jp-carousel-info h2 a:hover,.jp-carousel-light .jp-carousel-titleanddesc p a:hover{color:#f1831e!important}.jp-carousel-light .jp-carousel-comment,.jp-carousel-light .jp-carousel-comment p,.jp-carousel-light .jp-carousel-info h2,.jp-carousel-light .jp-carousel-titleanddesc,.jp-carousel-light .jp-carousel-titleanddesc p,.jp-carousel-light .jp-carousel-titleanddesc p b,.jp-carousel-light .jp-carousel-titleanddesc p em,.jp-carousel-light .jp-carousel-titleanddesc p i,.jp-carousel-light .jp-carousel-titleanddesc p strong,.jp-carousel-light div.jp-carousel-buttons a{color:#666}.jp-carousel-light .jp-carousel-buttons{border-bottom-color:#f0f0f0;background:#f5f5f5}.jp-carousel-light div.jp-carousel-buttons a:hover{text-decoration:none;color:#f1831e}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:4px -56px;padding-right:24px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#2ea2cc;color:#fff}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -176px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like:hover{background-position:5px -15px;padding-right:23px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-position:5px -36px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked{background-position:5px 5px}.jp-carousel-light div#carousel-reblog-box{background:#eee;box-shadow:0 2px 10px rgba(0,0,0,.1);border:1px solid #ddd}.jp-carousel-light #carousel-reblog-box textarea{color:#666;border:1px solid #cfcfcf;background:#fff}.jp-carousel-light #carousel-reblog-box .canceltext{color:#888}.jp-carousel-light #carousel-reblog-box .canceltext a{color:#666}.jp-carousel-light #carousel-reblog-box select{background:#eee;color:#333;border:1px solid #aaa}#jp-carousel-comment-form-button-submit,.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit{color:#333;background:#fff;border:1px solid #aaa}.jp-carousel-light .jp-carousel-image-meta{background:#fafafa;border:1px solid #eee;border-top-color:#f5f5f5;border-right-color:#f5f5f5;color:#333}.jp-carousel-light .jp-carousel-image-meta li{color:#000!important}.jp-carousel-light .jp-carousel-close-hint{color:#ccc}.jp-carousel-light .jp-carousel-close-hint span{background-color:#fff;border-color:#ccc}.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#aaa}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus{color:#333}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#ddd}.jp-carousel-light a.jp-carousel-image-download{background-position:0 -122px}.jp-carousel-light a.jp-carousel-image-download:hover{background-position:0 -122px;color:#f1831e}.jp-carousel-light textarea#jp-carousel-comment-form-comment-field{background:#fbfbfb;color:#333;border:1px solid #dfdfdf;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input{background:#fbfbfb;border:1px solid #dfdfdf;color:#333;box-shadow:inset -2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus{background:#fbfbfb;color:#333}.jp-carousel-light #jp-carousel-comment-post-results span{background:#f7f7f7;border:1px solid #dfdfdf;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.jp-carousel-light .jp-carousel-slide{background-color:#fff}.jp-carousel-light .jp-carousel-titleanddesc{border-top:1px solid #eee}@media only screen and (max-width:760px){.jp-carousel-info{margin:0 10px!important}.jp-carousel-buttons,.jp-carousel-next-button,.jp-carousel-previous-button{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;-moz-box-sizing:border-box;box-sizing:border-box}.jp-carousel-close-hint{font-weight:800!important;font-size:26px!important;position:fixed!important;top:-10px}.jp-carousel-slide img{filter:alpha(opacity=100);opacity:1}.jp-carousel-wrap{background-color:#000}.jp-carousel-fadeaway{display:none}#jp-carousel-comment-form-container{display:none!important}.jp-carousel-titleanddesc{padding-top:0!important;border:none!important}.jp-carousel-titleanddesc-title{font-size:1em!important}.jp-carousel-left-column-wrapper{padding:0;width:100%!important}.jp-carousel-photo-info{right:0!important;width:100%!important}}.contact-form .clear-form{clear:both}.contact-form input[type=email],.contact-form input[type=text]{width:300px;max-width:98%;margin-bottom:13px}.contact-form select{margin-bottom:13px}.contact-form textarea{height:200px;width:80%;float:none;margin-bottom:13px}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin-bottom:13px}.contact-form label{margin-bottom:3px;float:none;font-weight:700;display:block}.contact-form label.checkbox,.contact-form label.radio{margin-bottom:3px;float:none;font-weight:700;display:inline-block}.contact-form label span{color:#AAA;margin-right:4px;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=text],.textwidget .contact-form textarea{width:250px;max-width:100%;-moz-box-sizing:border-box;box-sizing:border-box}#jetpack-check-feedback-spam{margin:1px 0 0 8px}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}.infinite-loader{color:#000;display:block;height:28px;text-indent:-9999px}#infinite-handle span{background:#333;border-radius:1px;color:#eee;cursor:pointer;font-size:13px;padding:6px 16px}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:0 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;right:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;-moz-box-sizing:border-box;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{-moz-box-sizing:border-box;box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:right;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:left;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:left}#infinite-footer .blog-credits a{color:#666}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{-moz-box-sizing:border-box;box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-likes-widget-wrapper.slim-likes-widget{width:1px;min-height:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:right;margin:0 0 5px 5px}#likes-other-gravatars ul.wpl-avatars li a{margin:0 0 0 2px;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:0 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.post-likes-widget-placeholder .button{display:none}.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.slim-likes-widget .post-likes-widget{width:auto;float:none}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em;display:inline-block;float:right;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:right;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-left:20px;filter:alpha(opacity=80);-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{filter:alpha(opacity=100);-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;right:0;left:0;display:block}#jp-relatedposts .jp-relatedposts-items p{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;filter:alpha(opacity=100);-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt,.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:right}#jp-relatedposts .jp-relatedposts-items-visual{margin-left:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}}#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-content ul{padding:0!important;margin:0 0 .7em!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-block.sd-gplus{margin:0 0 .5em}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button >a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;margin:0 0 5px 5px;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#777!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 5px 0 8px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button >a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px;top:0}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#fafafa;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:400 16px/1 Genericons;vertical-align:top;position:relative;top:3px;text-align:center}.sd-content ul li{margin:0!important;padding:0}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-right:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-right:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-right:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:2px}.sd-social-icon .sd-content ul li a.share-more span{margin-right:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f214'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f209'}.sd-content ul li.share-google-plus-1 div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-google-plus-1 a:before,.sd-social-icon-text .sd-content li.share-google-plus-1 a:before,.sd-social-text .sd-content ul li.share-google-plus-1 a:before{content:'\f218'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f204'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px}.sd-social-official .sd-content ul>li{display:block;float:right;margin:0 0 5px 10px!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.sd-social-official .sd-content .skypeShare{width:55px}.googleplus1_button .g-plus{vertical-align:top!important}.reddit_button iframe{margin-top:1px}.googleplus1_button iframe,.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-right:0;padding:0 19px 0 0;display:inline-block;height:16px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-right:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0;height:0}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;right:20px;width:0;height:0;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-right:6px solid transparent;border-left:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:8px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-right:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-right:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;left:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#3b5998;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#1e8cbe;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-google-plus-1 a.sd-button{background:#dd4b39;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00AFF0;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:right}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px;text-align:right;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;right:-9000px}#sharing_email .sharing_cancel{padding:0 1em 0 0;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em}.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{-moz-box-sizing:content-box;box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;right:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 -1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;right:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;-ms-filter:"alpha(Opacity=50)";opacity:.5;direction:rtl;transition:300ms opacity ease-out}.slideshow-window:hover .slideshow-controls{-ms-filter:"alpha(Opacity=100)";opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;-khtml-border-radius:10em!important;border-radius:10em!important;transition:300ms border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a.running,body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;left:0!important;bottom:0!important;right:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:gray;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #e5e5e5;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{right:0;background-position:4px 50%}.presentation .nav-arrow-right{left:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;left:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#e5e5e5;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}#subscribe-email input{width:95%;padding:1px 2px}.comment-subscription-form .subscribe-label{display:inline!important}.jetpack-video-wrapper{margin-bottom:1.6em}.jetpack-video-wrapper>.wp-video,.jetpack-video-wrapper>embed,.jetpack-video-wrapper>iframe,.jetpack-video-wrapper>object{margin-bottom:0}.jetpack-social-navigation ul{display:block;margin:0 0 1.5em;padding:0}.jetpack-social-navigation li{display:inline-block;margin:0;line-height:1}.jetpack-social-navigation a{border:0;height:1em;text-decoration:none;width:1em}.jetpack-social-navigation a:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:Genericons;font-size:1em;font-style:normal;font-weight:400;height:1em;line-height:1;speak:none;text-decoration:inherit;vertical-align:top;width:1em;content:"\f415"}.jetpack-social-navigation a[href*="codepen.io"]:before{content:"\f216"}.jetpack-social-navigation a[href*="digg.com"]:before{content:"\f221"}.jetpack-social-navigation a[href*="dribbble.com"]:before{content:"\f201"}.jetpack-social-navigation a[href*="dropbox.com"]:before{content:"\f225"}.jetpack-social-navigation a[href*="mailto:"]:before{content:"\f410"}.jetpack-social-navigation a[href*="facebook.com"]:before{content:"\f203"}.jetpack-social-navigation a[href*="flickr.com"]:before{content:"\f211"}.jetpack-social-navigation a[href*="foursquare.com"]:before{content:"\f226"}.jetpack-social-navigation a[href*="github.com"]:before{content:"\f200"}.jetpack-social-navigation a[href*="plus.google.com"]:before{content:"\f206"}.jetpack-social-navigation a[href*="instagram.com"]:before{content:"\f215"}.jetpack-social-navigation a[href*="linkedin.com"]:before{content:"\f208"}.jetpack-social-navigation a[href*="path.com"]:before{content:"\f219"}.jetpack-social-navigation a[href*="pinterest.com"]:before{content:"\f210"}.jetpack-social-navigation a[href*="getpocket.com"]:before{content:"\f224"}.jetpack-social-navigation a[href*="polldaddy.com"]:before{content:"\f217"}.jetpack-social-navigation a[href*="reddit.com"]:before{content:"\f222"}.jetpack-social-navigation a[href$="/feed/"]:before{content:"\f413"}.jetpack-social-navigation a[href*="skype:"]:before{content:"\f220"}.jetpack-social-navigation a[href*="spotify.com"]:before{content:"\f515"}.jetpack-social-navigation a[href*="stumbleupon.com"]:before{content:"\f223"}.jetpack-social-navigation a[href*="tumblr.com"]:before{content:"\f214"}.jetpack-social-navigation a[href*="twitch.tv"]:before{content:"\f516"}.jetpack-social-navigation a[href*="twitter.com"]:before{content:"\f202"}.jetpack-social-navigation a[href*="vimeo.com"]:before{content:"\f212"}.jetpack-social-navigation a[href*="vine.co"]:before{content:"\f517"}.jetpack-social-navigation a[href*="wordpress.com"]:before,.jetpack-social-navigation a[href*="wordpress.org"]:before{content:"\f205"}.jetpack-social-navigation a[href*="youtube.com"]:before{content:"\f213"}.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:right;position:relative}.tiled-gallery .tiled-gallery-item{float:right;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:0 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:0 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#eee;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;right:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important}.tiled-gallery.type-circle .tiled-gallery-caption{display:none;opacity:0}.jetpack-display-remote-posts{margin:5px 0 20px}.jetpack-display-remote-posts h4{font-size:90%;margin:5px 0;padding:0}.jetpack-display-remote-posts h4 a{text-decoration:none}.jetpack-display-remote-posts p{margin:0!important;padding:0;line-height:1.4em!important;font-size:90%}.jetpack-display-remote-posts img{max-width:100%}.widget-grofile h4{margin:1em 0 .5em}.widget-grofile ul.grofile-urls{margin-right:0;overflow:hidden}.widget-grofile ul.grofile-accounts li{list-style:none;display:inline}.widget-grofile ul.grofile-accounts li::before{content:""!important}.widget-grofile .grofile-accounts-logo{background-image:url(//0.gravatar.com/images/grav-share-sprite.png);background-repeat:no-repeat;width:16px;height:16px;float:right;margin-left:8px;margin-bottom:8px}.rtl .widget-grofile .grofile-accounts-logo{margin-right:8px;margin-left:0}.grofile-thumbnail{width:500px;max-width:100%}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.widget-grofile .grofile-accounts-logo{background-image:url(//0.gravatar.com/images/grav-share-sprite-2x.png);background-size:16px 784px}}div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px;background-color:#FFF;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #aaa}div[class^=gr_custom_book_container]{float:left;overflow:hidden;height:60px;margin-right:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-right:0}.widget_wpcom_social_media_icons_widget li{border:0;display:inline;margin-left:.5em}.widget_wpcom_social_media_icons_widget li a{border:0;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;right:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.widgets-grid-layout{width:100%}.widgets-grid-layout:after,.widgets-grid-layout:before{content:" ";display:table}.widgets-grid-layout:after{clear:both}.widget-grid-view-image{float:right;max-width:50%}.widget-grid-view-image a{display:block;margin:0 0 4px 2px}.widget-grid-view-image:image:nth-child(even){float:left}.widget-grid-view-image:nth-child(even) a{margin:0 2px 4px 0}.widgets-grid-layout .widget-grid-view-image img{max-width:100%;height:auto}.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widgets-list-layout{padding:0;margin:0;list-style-type:none}.widgets-list-layout li:after,.widgets-list-layout li:before{content:"";display:table}.widgets-list-layout li:after{clear:both}.widgets-list-layout li{zoom:1;margin-bottom:1em;list-style-type:none!important}.widgets-list-layout .widgets-list-layout-blavatar{float:right;width:21.276596%;max-width:40px;height:auto}.widgets-list-layout-links{float:left;width:73.404255%}.widgets-list-layout span{opacity:.5}.widgets-list-layout span:hover{opacity:.8}plugins/jetpack/css/jetpack-admin.min.css.map0000755000312500031250000005527412651056012021643 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/_utilities/_grid.scss","../scss/_utilities/mixins/_breakpoint.scss","../scss/atoms/typography/_typography.scss","../scss/atoms/_media.scss","../scss/atoms/_animations.scss","../scss/atoms/_buttons.scss","../scss/atoms/icons/_automatticons.scss","../scss/atoms/icons/_jetpack.scss","../scss/molecules/_nav-horizontal.scss","../scss/templates/_main.scss","../scss/atoms/colors/_colors.scss","../scss/templates/_settings.scss","../scss/pages/_protect.scss","../scss/pages/_connection.scss","../scss/pages/_manage.scss","../scss/templates/_nux-landing-2015.scss","../scss/_utilities/_clearings.scss"],"names":[],"mappings":"AAKA,OACC,WACA,CAAA,aACA,CAAA,0BAEC,YACA,CAAA,aAGD,CAAA,YACC,WAIF,CAAA,MACC,eACA,CAAA,UACA,CAAA,UACA,CAAA,iBAID,CAAA,kBACC,QAAU,eACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,OAAU,gBACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,OAAU,gBACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,QAAU,gBACV,CAAA,QAAU,gBACV,CAAA,QAAU,WAAW,CAAA,ACCnB,CAAA,yBDKF,QAAU,eACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,OAAU,gBACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,OAAU,gBACV,CAAA,OAAU,gBACV,CAAA,OAAU,UACV,CAAA,QAAU,gBACV,CAAA,QAAU,gBACV,CAAA,QAAU,WAAW,CAAA,AChBnB,CAAA,yBDsBF,SAAU,eACV,CAAA,QAAU,gBACV,CAAA,QAAU,UACV,CAAA,QAAU,gBACV,CAAA,QAAU,gBACV,CAAA,QAAU,UACV,CAAA,QAAU,gBACV,CAAA,QAAU,gBACV,CAAA,QAAU,UACV,CAAA,SAAW,gBACX,CAAA,SAAW,gBACX,CAAA,SAAW,WAAW,CAAA,AEjEvB,CAAA,iCAKC,WACA,CAAA,kDACA,CAAA,cACA,CAAA,eACA,CAAA,kCAQD,CAAA,iBAMC,WACA,CAAA,UAQD,CAAA,CACC,cACA,CAAA,oBACA,CAAA,oBAEA,CAAA,SACC,cAED,CAAA,OACC,cAED,CAAA,OACC,oBASF,CAAA,OACC,iBAOD,CAAA,mBAEC,YAGD,CAAA,GACC,gBACA,CAAA,oBAOD,CAAA,EACC,gBAQD,CAAA,QACC,SACA,CAAA,QACA,CAAA,SAID,CAAA,QACC,gBAID,CAAA,EACC,cACA,CAAA,UACA,CAAA,QACA,CAAA,yBACA,CAAA,YACA,CAAA,SCzGD,CAAA,GACC,sBCDD,CAAA,yBACC,GACC,6BAAA,CAED,oBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,IACC,2BAAA,CAAmB,kBAAA,CARrB,AAQqB,CAIrB,iBAXC,GACC,6BAAA,CAED,oBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,IACC,2BAAA,CAAmB,kBAAA,CAAA,AAIrB,CAAA,0BACC,GACC,2BAAA,CAED,kBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,IACC,2BAAA,CAAmB,kBAAA,CAXrB,AAWqB,CAIrB,kBAdC,GACC,2BAAA,CAED,kBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,GACC,8BAAA,CAED,qBAAA,CAAA,IACC,2BAAA,CAAmB,kBAAA,CAAA,AAIrB,CAAA,0BACE,GACA,6CAAA,CAED,oCAAA,CAAA,IACC,kDAAA,CAA0C,yCAAA,CAL5C,AAK4C,CCjC5C,kBD6BE,GACA,6CAAA,CAED,oCAAA,CAAA,IACC,kDAAA,CAA0C,yCAAA,CAAA,ACjC5C,CAAA,yBAEC,+BAED,CAAA,+BACC,qBACA,CAAA,iBACA,CAAA,2BACA,CAAA,aACA,CAAA,4DACA,CAAA,qCACA,CAAA,kBACA,CAAA,iBAEA,CAAA,+CACC,cAED,CAAA,uFAEC,WACA,CAAA,kBAED,CAAA,6CACC,mBACA,CAAA,WAGF,CAAA,oBAEC,mBACA,CAAA,aAEA,CAAA,4BACC,cAED,CAAA,qDAEC,mBACA,CAAA,UAED,CAAA,4BACC,mBACA,CAAA,UACA,CAAA,yDAKF,CAAA,iBACC,qBACA,CAAA,iBACA,CAAA,qCACA,CAAA,UACA,CAAA,kEACA,CAAA,kBACA,CAAA,SACA,CAAA,iBACA,CAAA,oDAIA,CAAA,yBACC,WAED,CAAA,+CAEC,WACA,CAAA,kBACA,CAAA,oDAID,CAAA,wBACC,QACA,CAAA,gDAIA,CAAA,8BAEC,SAGF,CAAA,wBACC,WACA,CAAA,oBACA,CAAA,iBACA,CAAA,QACA,CAAA,iBACA,CAAA,UACA,CAAA,WACA,CAAA,qBACA,CAAA,oEACA,CAAA,oBAED,CAAA,uBAEC,WACA,CAAA,iBACA,CAAA,KACA,CAAA,MACA,CAAA,UACA,CAAA,WJ7EC,CAAA,0BIuBH,kBAyDE,oBAEA,CAAA,wBACC,SACA,CAAA,UACA,CAAA,WAAY,CJrFZ,AIqFY,CJrFZ,yBIyFD,yBACC,MAAM,CJ1FN,AI0FM,CJ1FN,yBIuBH,kBAuEE,oBACA,CAAA,eAEA,CAAA,wBACC,WACA,CAAA,WACA,CAAA,gBAAiB,CAAA,AAIpB,CAAA,aACC,qBACA,CAAA,WACA,CAAA,iBACA,CAAA,uBACA,CAAA,aACA,CAAA,mDACA,CAAA,qCACA,CAAA,kBACA,CAAA,YACA,CAAA,iBAEA,CAAA,qBACC,cAED,CAAA,uCAEC,WACA,CAAA,kBAED,CAAA,oBACC,YCjJF,CAAA,UACC,4BACA,CAAA,wDACA,CAAA,gUAIA,CAAA,kBACA,CAAA,iBCbD,CAAA,UACC,sBACA,CAAA,4CACA,CAAA,mQAIA,CAAA,kBACA,CAAA,iBAGD,CAAA,qDACC,WACC,sBACA,CAAA,kEAAmE,CAAA,ACXpE,CAAA,iBACC,qBAED,CAAA,kBACC,kBACA,CAAA,UAED,CAAA,kBACC,SACA,CAAA,SCdF,CAAA,kBAGC,2BAAA,CAID,qBAAA,CAAA,gBACC,mBACA,CAAA,UACA,CAAA,gBAHD,AASA,CAAA,WARC,mBACA,CAAA,UACA,CAAA,gBAMD,CAAA,eACC,iBAED,CAAA,UACC,kBACA,CAAA,SAGD,CAAA,0CACC,2BAGD,CAAA,kBACC,iBAGD,CAAA,WACC,mBACA,CAAA,QACA,CAAA,WACA,CAAA,eACA,CAAA,UACA,CAAA,UACA,CAAA,kCAEA,CAAA,oBACC,mBRfC,CAAA,yBQmBH,yFAME,iBACA,CAAA,cAAe,CR1Bd,AQ0Bc,CR1Bd,yBQmBH,yFAUE,cAAc,CR7Bb,AQ6Ba,CR7Bb,yBQiCH,4BAEE,eAAe,CAAA,AAUjB,CAAA,yBAEC,gBACA,CAAA,aAEA,CAAA,+BACC,iBRnDC,CAAA,yBQuDH,cAEE,aAAa,CRzDZ,AQyDY,CRzDZ,0BQ6DH,YAEE,mBACA,CAAA,YAAa,CRhEZ,AQgEY,CRhEZ,yBQ6DH,YAME,qBAAoB,CAAA,AAKrB,CAAA,yCAEC,SAED,CAAA,2CACC,iBACA,CAAA,gBACA,CAAA,QAIF,CAAA,mBACC,kBACA,CAAA,URrFE,CAAA,0BQmFH,oBAKE,mBACA,CAAA,YAAa,CRzFZ,AQyFY,CRzFZ,0BQ6FH,wBAEE,mBC9Gc,CAAA,ADkHhB,CAAA,WACC,gBACA,CAAA,aAQD,CAAA,OACC,OACA,CAAA,OACA,CAAA,kBAGA,CAAA,cACC,iBAGD,CAAA,aACC,oBACA,CAAA,gBAGA,CAAA,2BACC,qBACA,CAAA,iBACA,CAAA,WACA,CAAA,gBACA,CAAA,kEACA,CAAA,uEACA,CAAA,0BACA,CAAA,UACA,CAAA,gBACA,CAAA,kBAEA,CAAA,gCACC,oBACA,CAAA,iBAID,CAAA,kCACC,WACA,CAAA,iBACA,CAAA,KACA,CAAA,MACA,CAAA,UACA,CAAA,WAEA,CAAA,0BAIH,CAAA,6CACC,iBAIF,CAAA,SACC,WAEA,CAAA,YACC,SRnKC,CAAA,yBQ+JH,UAOE,eAAe,CAAA,AAIjB,CAAA,SACC,YAEA,CAAA,YACC,SAMD,CAAA,gCACC,SAED,CAAA,0DACC,UAED,CAAA,4FACC,YAED,CAAA,+BACC,aAQF,CAAA,SAKC,kBACA,CAAA,iBACA,CAAA,SACA,CAAA,wBACA,CAAA,uDAGC,CAAA,0BACC,cAED,CAAA,4BACC,iBRtNA,CAAA,yBQqND,6BAIE,iBACA,CAAA,SAAU,CAAA,AAIb,CAAA,yBAEC,cAED,CAAA,YACC,0BACA,CAAA,oBACA,CAAA,UACA,CAAA,8EACA,CAAA,iBACA,CAAA,sCACA,CAAA,SAEA,CAAA,mBACC,iBR5OA,CAAA,0BQkOF,aAaE,sBACA,CAAA,mBAAmB,CRhPnB,AQgPmB,CRhPnB,yBQkOF,aAiBE,gBACA,CAAA,cAAe,CRpPf,AQoPe,CRpPf,yBQkOF,aAqBE,cACA,CAAA,qBACA,CAAA,cACA,CAAA,eAAgB,CAAA,AAInB,CAAA,+BACC,mBACA,CAAA,eAGD,CAAA,MACC,kBACA,CAAA,aACA,CAAA,OACA,CAAA,SACA,CAAA,2CAAA,CAEA,mCAAA,CAAA,mBACC,SACA,CAAA,WACA,CAAA,YACA,CAAA,4BAAA,CACA,oBAAA,CAAA,+BAAA,CAED,uBAAA,CAAA,mBACC,SACA,CAAA,UACA,CAAA,WACA,CAAA,4BAAA,CACA,oBAAA,CAAA,+BAAA,CAGF,uBAAA,CAAA,QACC,kBACA,CAAA,gBACA,CAAA,aACA,CAAA,kBACA,CAAA,SAEA,CAAA,WACC,gBACA,CAAA,aACA,CAAA,8EACA,CAAA,0BRpSC,CAAA,yBQgSF,YAOE,gBACA,CAAA,cAAe,CRxSf,AQwSe,CRxSf,yBQgSF,YAWE,aAAa,CAAA,AAGf,CAAA,cACC,WACA,CAAA,iBACA,CAAA,WACA,CAAA,MACA,CAAA,kBACA,CAAA,UACA,CAAA,YACA,CAAA,gEACA,CAAA,mBACA,CAAA,URxTC,CAAA,0BQyRH,SAkCE,iBACA,CAAA,mBAEA,CAAA,cACC,0BAA0B,CR/T1B,AQ+T0B,CR/T1B,yBQyRH,SA0CE,iBACA,CAAA,mBAAoB,CRpUnB,AQoUmB,CRpUnB,yBQyRH,SA8CE,gBACA,CAAA,sBAAuB,CAAA,AAGzB,CAAA,UAIC,aACA,CAAA,iBACA,CAAA,iBACA,CAAA,SACA,CAAA,wBAMA,CALA,uDAOA,CAAA,gBACC,WACA,CAAA,iBACA,CAAA,QACA,CAAA,MACA,CAAA,kBACA,CAAA,UACA,CAAA,YACA,CAAA,mEACA,CAAA,mBACA,CAAA,SRrWC,CAAA,yBQ2UH,WA6BE,YAAY,CAAA,AAQd,CAAA,SACC,6BACA,CAAA,+BACA,CAAA,eACA,CAAA,iBACA,CAAA,2BACA,CAAA,iBACA,CAAA,SAGA,CAAA,gBACC,WACA,CAAA,aACA,CAAA,iBACA,CAAA,KACA,CAAA,WACA,CAAA,UAED,CAAA,sCACC,cACA,CAAA,oBRpYC,CAAA,yBQgXH,UAuBE,aAAa,CAAA,AAGf,CAAA,4BAEC,eACA,CAAA,aACA,CAAA,sEACA,CAAA,iBR/YE,CAAA,yBQ0YH,6BASE,eAAe,CRnZd,AQmZc,CRnZd,yBQ0YH,6BAYE,eAAe,CAAA,AAGjB,CAAA,kBACC,cAGD,CAAA,gBAEC,kBACA,CAAA,UACA,CAAA,iBACA,CAAA,WACA,CAAA,8BRnaE,CAAA,0BQ6ZH,iBASE,wBACA,CAAA,gBACA,CAAA,eAEA,CAAA,gDACC,cAED,CAAA,4BACC,MACA,CAAA,eAAgB,CAAA,AAInB,CAAA,QACC,gCAAA,CAEA,uBAAA,CAAA,WACC,qBACA,CAAA,aACA,CAAA,mBACA,CAAA,eACA,CAAA,eAED,CAAA,UACC,SACA,CAAA,aAED,CAAA,eACC,WACA,CAAA,iBACA,CAAA,QACA,CAAA,MACA,CAAA,UACA,CAAA,WACA,CAAA,2BACA,CAAA,UACA,CAAA,+BAAA,CACA,uBAAA,CAAA,8BAGD,CAAA,cACC,mCAAA,CAEA,8BAFA,CAEA,0BAAA,CAAA,iBACC,cAED,CAAA,2BACC,sBACA,CAAA,kBAED,CAAA,yBACC,YAED,CAAA,qBACC,kCAAA,CR5dA,6BQ4dA,CR5dA,yBAAA,CAAA,0BQ+dA,kBACC,cAED,CAAA,2BACC,sBACA,CAAA,kBAED,CAAA,yBACC,YAAY,CAAA,AAKf,CAAA,qBACC,gBACA,CAAA,UACA,CAAA,WACA,CAAA,qBACA,CAAA,kBAEA,CAAA,gCACC,qDACA,CAAA,yBAEA,CAAA,uJAJD,iCASE,oDAAoD,CAAA,AAGtD,CAAA,uCACC,4DACA,CAAA,yBAEA,CAAA,uJAJD,wCASE,2DAA2D,CAAA,AAG7D,CAAA,qCACC,0DACA,CAAA,yBAEA,CAAA,uJAJD,sCASE,yDAAyD,CAAA,AAG3D,CAAA,+BAGC,YACA,CAAA,kBAIH,CAAA,oBACC,cACA,CAAA,+BACA,CAAA,qBACA,CAAA,kBAEA,CAAA,mCACC,gBACA,CAAA,iBRviBC,CAAA,0BQqiBF,oCAKE,sBACA,CAAA,kBAAmB,CR3iBnB,AQ2iBmB,CR3iBnB,yBQ+hBH,qBAgBE,iBAAiB,CAAA,AAQnB,CAAA,IACC,WACA,CAAA,kBAEA,CAAA,OACC,eACA,CAAA,eACA,CAAA,mBACA,CAAA,eAED,CAAA,WACC,WAGF,CAAA,YACC,kBAEA,CAAA,eAEC,aR1kBC,CAAA,yBQwkBF,gBAKE,iBACA,CAAA,YACA,CAAA,cAAe,CAAA,AAIlB,CAAA,cACC,kBACA,CAAA,UACA,CAAA,oBACA,CAAA,uBACA,CAAA,eAED,CAAA,eACC,SACA,CAAA,2BACA,CAAA,UACA,CAAA,wBACA,CAAA,iBACA,CAAA,eACA,CAAA,aACA,CAAA,eAEA,CAAA,qBACC,cACA,CAAA,YAEA,CAAA,2BACC,uBACA,CAAA,SAGF,CAAA,0CACC,cAED,CAAA,iCACC,cAED,CAAA,iCACC,cAED,CAAA,qCACC,cAED,CAAA,qBACC,kBACA,CAAA,OACA,CAAA,SACA,CAAA,UACA,CAAA,UACA,CAAA,aACA,CAAA,mBACA,CAAA,mBACA,CAAA,iBACA,CAAA,8BAEA,CAAA,2BACC,gBACA,CAAA,iBACA,CAAA,UACA,CAAA,gBACA,CAAA,OACA,CAAA,mBACA,CAAA,kBACA,CAAA,wBAIH,CAAA,UACC,wBACA,CAAA,aAEA,CAAA,YACC,qBACA,CAAA,iBACA,CAAA,2BACA,CAAA,UACA,CAAA,8DACA,CAAA,2CACA,CAAA,eAEA,CADA,iBAIA,CAFA,2BAIA,CAAA,2DAGC,cACA,CAAA,qCACA,CAAA,kBRxqBA,CAAA,yBQqpBF,aAsBE,mBAAmB,CAAA,AAQtB,CAAA,OACC,cACA,CAAA,+BACA,CAAA,eACA,CAAA,wBACA,CAAA,eACA,CAAA,iCACA,CAAA,6BAEA,CAAA,aACC,qBACA,CAAA,kBAED,CAAA,UACC,eACA,CAAA,gBACA,CAAA,aACA,CAAA,mBACA,CAAA,iBACA,CAAA,eAED,CAAA,SACC,SACA,CAAA,aACA,CAAA,mBAED,CAAA,2BACC,qBACA,CAAA,kBAGD,CAAA,cACC,qBACA,CAAA,gCAEA,CAAA,oBACC,qBACA,CAAA,gCAIF,CAAA,uCAEC,gBR9tBC,CAAA,yBQkuBD,qCACC,cACA,CAAA,UACA,CAAA,iBAED,CAAA,uCAEC,UAED,CAAA,uBAEC,mBACA,CAAA,gBACA,CAAA,WACA,CAAA,cAAe,CAAA,AAIjB,CAAA,oCACC,wCAEC,wBAEA,CAAA,6DACC,WAAW,CR1vBZ,AQ0vBY,CR1vBZ,0BQiwBA,6BACC,wBAED,CAAA,8BACC,cAAc,CRrwBf,AQqwBe,CRrwBf,yBQ+vBF,aAUE,kBAEA,CAAA,4BACC,kBAED,CAAA,4BACC,cAAc,CR/wBf,AQ+wBe,CR/wBf,yBQ+vBF,aAoBE,aAEA,CAAA,4BACC,cAED,CAAA,4BACC,cAAc,CRzxBf,AQyxBe,CRzxBf,yBQmrBH,QA2GE,kBACA,CAAA,SAEA,CAAA,uBACC,eAED,CAAA,uBACC,cAAc,CRryBd,AQqyBc,CRryBd,yBQmrBH,QAsHE,aACA,CAAA,UAEA,CAAA,uBACC,cAED,CAAA,uBACC,cAAc,CAAA,AAIjB,CAAA,IAGC,kBAEA,CAAA,UACC,cACA,CAAA,iBACA,CAAA,QACA,CAAA,UACA,CAAA,gBACA,CAAA,UACA,CAAA,WACA,CAAA,UACA,CAAA,aACA,CAAA,eACA,CAAA,iBACA,CAAA,oCACA,CAAA,iEACA,CAAA,oBACA,CAAA,iBAGF,CAAA,KACC,qBACA,CAAA,iBACA,CAAA,OACA,CAAA,gBACA,CAAA,qBACA,CAAA,WACA,CAAA,UACA,CAAA,sDACA,CAAA,qCACA,CAAA,kBACA,CAAA,kBAEA,CAAA,wBAEC,kBACA,CAAA,KACA,CAAA,UACA,CAAA,kCAED,CAAA,YACC,gBACA,CAAA,aACA,CAAA,gBAED,CAAA,WACC,gBACA,CAAA,iBACA,CAAA,cAGF,CAAA,iBACC,gBAED,CAAA,UAGC,6BAID,CAAA,IACC,aAED,CAAA,SACC,cAOD,CAAA,QACC,WACA,CAAA,iBACA,CAAA,OACA,CAAA,UAEA,CAAA,aACC,WAGF,CAAA,MACC,gBACA,CAAA,cACA,CAAA,QACA,CAAA,WACA,CAAA,UACA,CAAA,SACA,CAAA,iBACA,CAAA,YACA,CAAA,yCACA,CAAA,WAEA,CAAA,aACC,kBACA,CAAA,KACA,CAAA,OACA,CAAA,0CACA,CAAA,UACA,CAAA,eACA,CAAA,oBACA,CAAA,qCACA,CAAA,SAEA,CAAA,mBACC,gBACA,CAAA,WAED,CAAA,oBACC,gBACA,CAAA,WAGF,CAAA,qBACC,aAED,CAAA,yBACC,kBACA,CAAA,KACA,CAAA,OACA,CAAA,QACA,CAAA,MACA,CAAA,aACA,CAAA,iBAED,CAAA,eACC,cACA,CAAA,eACA,CAAA,eAED,CAAA,SACC,gBACA,CAAA,YACA,CAAA,aACA,CAAA,mEACA,CAAA,0BR/7BC,CAAA,yBQ07BF,UAQE,eAAe,CAAA,AAGjB,CAAA,SACC,WAED,CAAA,QACC,oBAED,CAAA,aACC,kBACA,CAAA,MACA,CAAA,QACA,CAAA,UACA,CAAA,iBACA,CAAA,yBACA,CAAA,eACA,CAAA,gBAEA,CAAA,gBACC,SAED,CAAA,gBACC,qBACA,CAAA,QAGF,CAAA,sDAGC,wBRh+BC,CAAA,yBQy4BH,OA0FE,UACA,CAAA,gBACA,CAAA,aAEA,CAAA,eACC,SAAS,CRx+BT,AQw+BS,CRx+BT,yBQy4BH,OAmGE,SACA,CAAA,aAAc,CR7+Bb,AQ6+Ba,CR7+Bb,yBQy4BH,OAuGE,SACA,CAAA,UACA,CAAA,WACA,CAAA,SAAU,CAAA,AAGZ,CAAA,YACC,YACA,CAAA,oBAEA,CAAA,gBACC,sBACA,CAAA,cACA,CAAA,WAEA,CAAA,4BACC,aRhgCA,CAAA,yBQs/BH,aAcE,WACA,CAAA,eAAgB,CAAA,AAGlB,CAAA,+BACC,YAED,CAAA,MACC,gBACA,CAAA,QACA,CAAA,cACA,CAAA,YACA,CAAA,MACA,CAAA,WACA,CAAA,cACA,CAAA,OACA,CAAA,KACA,CAAA,UAOD,CAAA,sCAEC,qBACA,CAAA,aACA,CAAA,8EACA,CAAA,0BRjiCE,CAAA,yBQ4hCH,uCAQE,cAAc,CAAA,AAIhB,CAAA,6CAGC,qBACA,CAAA,aACA,CAAA,oEACA,CAAA,0BR9iCE,CAAA,yBQwiCH,8CASE,gBAAgB,CAAA,AAIlB,CAAA,wBACC,sBAGD,CAAA,mGAIC,WACA,CAAA,SAQD,CAAA,OACC,qBACA,CAAA,iBACA,CAAA,wBACA,CAAA,iBAEA,CAAA,4BAEC,WACA,CAAA,iBACA,CAAA,MACA,CAAA,mBAED,CAAA,cACC,MACA,CAAA,eACA,CAAA,UACA,CAAA,YAED,CAAA,aACC,aAED,CAAA,yBACC,mBRllCC,CAAA,0BQ2jCH,QA0BG,oBAAoB,CRhmCpB,AQgmCoB,CRhmCpB,0BQskCH,QA6BE,kBACA,CAAA,gBAEA,CAAA,cACC,0BAKD,CAAA,UACC,WACA,CAAA,eAAgB,CR9mChB,AQ8mCgB,CR9mChB,yBQskCH,QA4CE,kBAAkB,CRlnCjB,AQknCiB,CRlnCjB,yBQskCH,QA+CE,aAAa,CRrnCZ,AQqnCY,CRrnCZ,yBQskCH,QAkDE,aACA,CAAA,iBAAkB,CRznCjB,AQynCiB,CRznCjB,yBQskCH,QAsDE,iBAAiB,CAAA,AAGnB,CAAA,WACC,eAEA,CAAA,mCAEC,gBAEA,CAAA,UAEA,CAAA,+FAEC,cR1oCA,CAAA,0BQipCA,gGAEC,cAv0BW,CR5UZ,AQ4UY,CR5UZ,yBQwpCD,eACC,cACA,CAAA,UACA,CAAA,QACA,CAAA,eAED,CAAA,aACC,cACA,CAAA,cACA,CAAA,gBAAiB,CAAA,AAIpB,CAAA,QACC,4BACA,CAAA,4BAED,CAAA,iBACC,cAEA,CAAA,oBACC,iBRlqCC,CAAA,yBQ8pCH,kBAOE,sBACA,CAAA,kBACA,CAAA,4BAA6B,CRvqC5B,AQuqC4B,CRvqC5B,0BQ8pCH,kBAYG,gBAAgB,CRrrChB,AQqrCgB,CRrrChB,yBQyqCH,kBAeE,qBACA,CAAA,kBAAmB,CRzrClB,AQyrCkB,CRzrClB,yBQyqCH,kBAmBE,SACA,CAAA,SACA,CAAA,WACA,CAAA,eAEA,CAAA,mBACC,0BAA0B,CAAA,AAI7B,CAAA,wBACC,SACA,CAAA,aACA,CAAA,UACA,CAAA,mBACA,CAAA,6EACA,CAAA,wBAEA,CAAA,0BAIC,qBACA,CAAA,iBACA,CAAA,gBACA,CAAA,YACA,CAAA,SAEA,CAAA,gCACC,YACA,CAAA,iBACA,CAAA,OACA,CAAA,aACA,CAAA,WACA,CAAA,UACA,CAAA,mBACA,CAAA,2BACA,CAAA,iBAGA,CAAA,sCACC,wCAAA,CR1tCD,+BAAA,CAAA,yBQ+tCH,WAEG,yBACA,CAAA,4BAA6B,CRluC7B,AQkuC6B,CRluC7B,0BQ+tCH,WAMG,yBACA,CAAA,kBAAmB,CAAA,AAStB,CAAA,gBACC,mBACA,CAAA,wBACA,CAAA,kBACA,CAAA,aACA,CAAA,iBACA,CAAA,SAEA,CAAA,0BACC,gBACA,CAAA,cACA,CAAA,iBACA,CAAA,eACA,CAAA,QACA,CAAA,sCACA,CAAA,cACA,CAAA,iBAGA,CAAA,mCACC,SACA,CAAA,gBACA,CAAA,sBACA,CAAA,eAEA,CAAA,uGACC,qBAGF,CAAA,4BACC,cAED,CAAA,qFACC,gBACA,CAAA,YAID,CAAA,6BACC,cAGF,CAAA,mBACC,WACA,CAAA,QAED,CAAA,kBACC,WACA,CAAA,QACA,CAAA,WAED,CAAA,0BACC,4BACA,CAAA,iBACA,CAAA,eAEA,CAAA,iCACC,WACA,CAAA,eACA,CAAA,wBACA,CAAA,cACA,CAAA,WACA,CAAA,SACA,CAAA,WACA,CAAA,iBACA,CAAA,QACA,CAAA,sBR5zCA,CAAA,yBQ6yCF,2BAkBE,aAEA,CAAA,iCACC,aAAa,CAAA,AAGf,CAAA,4BACC,WACA,CAAA,+BACC,CAAA,kCACD,gCAGF,CAAA,qFAEC,gBAIF,CAAA,kCACC,eAOD,CAAA,sFAGC,WAEA,CAAA,2GACC,qBACA,CAAA,iBACA,CAAA,OACA,CAAA,SACA,CAAA,gBACA,CAAA,WACA,CAAA,6BACA,CAAA,kBAIF,CAAA,+BACC,eAGD,CAAA,oDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,6EAEC,gBACA,CAAA,4BAED,CAAA,yEAEC,gBACA,CAAA,4BAED,CAAA,+FAEC,gBACA,CAAA,4BAED,CAAA,mEAEC,gBACA,CAAA,4BAED,CAAA,2FAEC,YACA,CAAA,2BAED,CAAA,wEAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,gDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,oDAEC,gBAED,CAAA,0DAEC,gBAED,CAAA,4DAEC,gBAED,CAAA,sDAEE,gBAEF,CAAA,wDAEC,gBAED,CAAA,oDAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,sDAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,wDAEC,gBACA,CAAA,iBACA,CAAA,QAED,CAAA,uEAEC,gBACA,CAAA,4BAED,CAAA,oEAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,8EAEC,gBAED,CAAA,8EAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,oEAEC,gBAED,CAAA,yEAEC,YACA,CAAA,2BAGD,CAAA,8DAEC,gBAED,CAAA,uFAEC,gBACA,CAAA,4BAED,CAAA,oDAEC,gBAED,CAAA,8DAEC,gBAED,CAAA,6FAEC,gBACA,CAAA,4BAGD,CAAA,uEAEC,gBAGD,CAAA,mDACC,gBAGD,CAAA,yCACC,gBRlhDE,CAAA,yBQ2hDF,oGAIC,WAAW,CR/hDV,AQ+hDU,CR/hDV,yBQsiDF,WACC,aAAa,CRviDZ,AQuiDY,CRviDZ,yBQ6iDD,+CACC,WAEA,CAAA,2DACC,eACA,CAAA,UAGF,CAAA,+CACC,WAAW,CAAA,AASd,CAAA,oCAEE,sBACC,oBAEA,CAAA,wBACC,iBAED,CAAA,mCACC,WACA,CAAA,iBAED,CAAA,sCACC,SACA,CAAA,SACA,CAAA,gBACA,CAAA,aAED,CAAA,uDACC,gBAED,CAAA,mDACC,kBACA,CAAA,aACA,CAAA,UACA,CAAA,qDACC,eAAe,CRzlDjB,AQylDiB,CRzlDjB,yBUxBF,oCAEE,gBAAgB,CAAA,AAKnB,CAAA,uBACC,aAKA,CAAA,qBACC,YACA,CAAA,eACA,CAAA,qBACA,CAAA,iBACA,CAAA,QAEA,CAAA,2BACC,mBACA,CAAA,+BACA,CAAA,kBACA,CAAA,eACA,CAAA,cACA,CAAA,OACA,CAAA,QACA,CAAA,UACA,CAAA,SACA,CAAA,8BAEA,CAAA,yBAZD,4BAaE,YACA,CAAA,eACA,CAAA,qBACA,CAAA,iBACA,CAAA,QAAS,CAAA,AAEV,CAAA,yBAnBD,4BAoBE,MAAM,CAAA,AAIR,CAAA,mCACC,WAGC,CAAA,yBADD,6CAEE,cAAc,CAAA,AAEf,CAAA,yBAJD,6CAKE,eAAe,CAAA,AAOpB,CAAA,8BACC,iBAGD,CAAA,cACC,aACA,CAAA,WACA,CAAA,eACA,CAAA,yBAJD,eAKE,cAAc,CAAA,AAEf,CAAA,yBAPD,eAQE,aAAa,CAAA,AAIf,CAAA,4BACC,YACA,CAAA,iBAEA,CAAA,8BACC,gBAIF,CAAA,+BACC,YACA,CAAA,eAGC,CAAA,oDACC,cACA,CAAA,kBACA,CAAA,0DACC,cAID,CAAA,kEACC,qBAED,CAAA,8EACC,UAID,CAAA,uHAEC,mBAED,CAAA,2DACC,8BACA,CAAA,gBAGA,CAAA,uEACC,8BAIH,CAAA,6DACC,YACA,CAAA,mEACC,aAGF,CAAA,4DACC,UAGA,CAAA,iEACC,WAED,CAAA,qEACC,kBACA,CAAA,UAGF,CAAA,yGAEC,gBACA,CAAA,QAEA,CADA,yCAID,CAAA,oDACC,2BACA,CAAA,gBAEA,CAAA,gEACC,2BAED,CAAA,iEACC,YACA,CAAA,eACA,CAAA,kBAEA,CAAA,sEACC,gBACA,CAAA,wEACC,UACA,CAAA,8EACC,UAKH,CAAA,yBAfD,kEAgBE,aAAa,CVhJf,AUgJe,CVhJf,yBUgIA,kEAmBE,cACA,CAAA,iBACA,CAAA,kBAAmB,CAAA,AAMvB,CAAA,2CACC,SACA,CAAA,qBAEA,CAAA,sDACC,gBVhKA,CAAA,yBU+JD,uDAIE,eAAe,CAAA,AAIlB,CAAA,kCACC,gBAED,CAAA,yCACC,aAEA,CAAA,yBAHD,0CAIE,iBAAiB,CAAA,AAGnB,CAAA,yCACC,eAED,CAAA,8CACC,eAED,CAAA,0CACC,WACA,CAAA,YACA,CAAA,gBV1LC,CAAA,yBUuLF,2CAME,qBAAqB,CAAA,AAGvB,CAAA,oCACC,WAED,CAAA,mCACC,WAED,CAAA,yBACC,8CACC,WAAW,CAAA,AAId,CAAA,wBACC,wBACA,CAAA,WAED,CAAA,KACC,SACA,CAAA,mBACA,CAAA,eAEA,CAAA,QACC,eACA,CAAA,eAED,CAAA,kBACC,WACA,CAAA,QACA,CAAA,SACA,CAAA,SAEA,CAAA,wBACC,WAED,CAAA,qBACC,gBAGD,CAAA,yBAbD,mBAcE,WAAW,CAAA,AAGb,CAAA,mBACC,SACA,CAAA,SAGA,CAAA,WACA,CAAA,SACA,CAAA,SAEA,CAAA,qBACC,eACA,CAAA,gBACA,CAAA,UACA,CAAA,eACA,CAAA,wBACA,CAAA,kBACA,CAAA,UAED,CAAA,2BACC,iBAED,CAAA,wBACC,cAEA,CAAA,eACA,CAAA,iBACA,CAAA,iBACA,CAAA,cAED,CAAA,+BACC,mBACA,CAAA,eAED,CAAA,gCACC,WACA,CAAA,WACA,CAAA,eACA,CAAA,iBAEA,CAAA,qDACC,cACA,CAAA,SACA,CAAA,mBAEA,CAAA,yBALD,sDAME,WACA,CAAA,eAAgB,CAAA,AAGlB,CAAA,qDACC,aAID,CAAA,yCACC,aAGF,CAAA,8BACC,SACA,CAAA,SAEA,CAAA,gCACC,UACA,CAAA,mBAED,CAAA,uCACC,gBACA,CAAA,iBACA,CAAA,gBACA,CAAA,kBACA,CAAA,UAEA,CAAA,8CACC,cACA,CAAA,eAIF,CAAA,iCACC,cACA,CAAA,eAIF,CAAA,yBArFD,oBAsFE,gBACA,CAAA,QACA,CAAA,YACA,CAAA,eACA,CAAA,cACA,CAAA,OACA,CAAA,KACA,CAAA,UACA,CAAA,yCAEA,CAAA,2BACC,YAED,CAAA,gCACC,SACA,CAAA,SAAU,CAAA,AAMd,CAAA,yBAGE,kGACC,kBACA,CAAA,aAIA,CAAA,uCACC,iBAED,CAAA,4DACC,yBAED,CAAA,4CACC,gBACA,CAAA,oDACC,iBAIH,CAAA,gCACE,YAAY,CAAA,AAKhB,CAAA,yBAEC,6EACC,WACA,CAAA,iBAAkB,CAAA,AAIpB,CAAA,yBAGE,kEACC,aAGD,CAAA,4EACC,cAAc,CCvZjB,ADuZiB,CCvZjB,mBACC,eAEA,CAAA,qDACC,WACA,CAAA,YAGD,CAAA,2BACC,yBAGD,CAAA,yBACC,yBAMD,CAAA,iBACC,eAGD,CAAA,sBACC,qBACA,CAAA,eACA,CAAA,eACA,CAAA,YACA,CAAA,qBACA,CAAA,cACA,CAAA,UACA,CAAA,cAGD,CAAA,oBACC,cAGD,CAAA,uBACC,cAKF,CAAA,uBACC,gBAKA,CAAA,2BACC,WACA,CAAA,gBAIF,CAAA,oCACC,WAOA,CAAA,iCACC,WAGD,CAAA,sCACC,iBAMF,CAAA,gBACC,qBACA,CAAA,sBACA,CAAA,iBACA,CAAA,qBAEA,CAAA,uCACC,aACA,CAAA,QACA,CAAA,uBACA,CAAA,qBACA,CAAA,iBACA,CAAA,cAGD,CAAA,2BACC,iBACA,CAAA,aACA,CAAA,eACA,CAAA,qBAGD,CAAA,gCACC,iBACA,CAAA,gBAGD,CAAA,yBACC,UAGD,CAAA,yBACC,kBACA,CAAA,SACA,CAAA,0BAIF,CAAA,qBACC,UACA,CAAA,eACA,CAAA,qBAGD,CAAA,kBACC,kBACA,CAAA,QACA,CAAA,sBACA,CAAA,aACA,CAAA,eACA,CAAA,cACA,CAAA,QACA,CAAA,SACA,CAAA,cACA,CAAA,iBAEA,CAAA,wBACC,gBAIF,CAAA,YACC,WACA,CAAA,YAGD,CAAA,0CAEC,wBACC,UACA,CAAA,WACA,CAAA,YAGD,CAAA,kBACC,UACA,CAAA,UAAW,CAAA,AAKb,CAAA,0CAEC,6BACC,gBAAgB,CAAA,AAKlB,CAAA,6GAEC,UACC,UAGD,CAAA,QACC,UAAU,CAAA,AAKZ,CAAA,yCAEC,SACC,iBAGD,CAAA,gBACC,eACA,CAAA,iBAAkB,CAAA,AAKpB,CAAA,yCAEC,SACC,kBAAkB,CAAA,AAKpB,CAAA,gEAEC,6BACC,gBAAgB,CAAA,AAKlB,CAAA,yCAEC,aACC,WAGD,CAAA,QACC,0BAGD,CAAA,SACC,kBAGD,CAAA,gBACC,cACA,CAAA,iBAGD,CAAA,4BACC,WACA,CAAA,cAGD,CAAA,gCAEC,UACA,CAAA,aAGD,CAAA,iBACC,gBAAgB,CAAA,AAKlB,CAAA,yCAEC,uBACC,eACA,CAAA,aAGD,CAAA,gCAEC,WAAW,CC7Pb,AD6Pa,CC7Pb,mBACC,kBAEA,CAAA,0BACC,UACA,CAAA,iBAGD,CAAA,8BACC,YACA,CAAA,eACA,CAAA,gBAIF,CAAA,2BACC,aACA,CAAA,iBACA,CAAA,8CACC,cACA,CAAA,eAIF,CAAA,mBACC,sBAEA,CAAA,8BACC,mBAGD,CAAA,4FAGC,aAEA,CAAA,sOACC,eAIF,CAAA,8BACC,gBAGD,CAAA,sBACC,aACA,CAAA,QACA,CAAA,eACA,CAAA,4BACA,CAAA,cAKD,CAAA,YACC,kBACA,CAAA,iBAOD,CAAA,wCACC,qBACA,CAAA,UAIF,CAAA,8CAGC,UAGD,CAAA,0BACC,gBAGD,CAAA,+BACC,iBAGD,CAAA,iBACC,kBACA,CAAA,yBACC,cAIF,CAAA,iBACC,cACA,CAAA,eZpEE,CAAA,yBYwEF,WACC,0BACA,CAAA,aACC,aAAa,CAAA,AAKhB,CAAA,oCAEC,oBACC,eAEA,CAAA,sBACC,eACA,CAAA,WAGD,CAAA,2DAEC,YACA,CAAA,kBACA,CAAA,eACA,CAAA,sBACA,CAAA,eAGD,CAAA,gCACC,kBAAkB,CZpGlB,AYoGkB,CZpGlB,yBY0GF,+BACC,aACA,CAAA,YAAa,CAAA,AAIf,CAAA,oCAEC,mBACC,WACA,CAAA,iBACA,CAAA,iBAEA,CAAA,6BACC,WAAW,CAAA,AAKd,CAAA,oCACC,oBAEC,gBAAgB,CAAA,AC5JlB,CAAA,aACC,YACA,CAAA,YACA,CAAA,gBAIA,CAAA,iCACC,gBACA,CAAA,iBACA,CAAA,cACA,CAAA,UACA,CAAA,gBAED,CAAA,4BACC,eACA,CAAA,cACA,CAAA,WACA,CAAA,gBAGF,CAAA,yBACC,eACA,CAAA,aAGD,CAAA,aACC,eACA,CAAA,cACA,CAAA,WACA,CAAA,gBACA,CAAA,kBAEC,CAAA,wBACA,eACA,CAAA,qBACA,CAAA,eC/BD,CAAA,iBACC,aAED,CAAA,oBACC,eAED,CAAA,oBACC,cACA,CAAA,SACA,CAAA,iBAED,CAAA,cACC,6EACA,CAAA,iBACA,CAAA,SACA,CAAA,UACA,CAAA,iBACA,CAAA,sBACC,cAGF,CAAA,mBACC,cACA,CAAA,YACA,CAAA,qBACA,CAAA,0BACC,eAGF,CAAA,6BACC,aAKD,CAAA,uBACC,iBAKD,CAAA,qBACC,UAED,CAAA,4BACC,mBAED,CAAA,2BACC,kBAIF,CAAA,eACC,WACA,CAAA,4EAID,CAAA,iBACC,0BAID,CAAA,gBACC,gBACA,CAAA,iBACA,CAAA,kBACA,CAAA,kBACA,CAAA,wBACA,CAAA,mBACA,CAAA,iBAEA,CAAA,6BACC,kBAGD,CAAA,gEAEC,UAED,CAAA,kBACC,eACA,CAAA,gBAED,CAAA,yBACC,WACA,CAAA,aACA,CAAA,iBACA,CAAA,QACA,CAAA,WACA,CAAA,UACA,CAAA,2BACA,CAAA,uCACA,CAAA,aACA,CAAA,UAKD,CAAA,oBACC,mBAIF,CAAA,eACC,gBAGD,CAAA,cACC,kBACA,CAAA,oBACA,CAAA,UAGD,CAAA,kBACC,WACA,CAAA,cAID,CAAA,qDAEC,WACA,CAAA,cACA,CAAA,sBACA,CAAA,oBAGD,CAAA,8BACC,cACA,CAAA,yBAGD,CAAA,eACC,kBACA,CAAA,gBACA,CAAA,mBACA,CAAA,iBACA,CAAA,kBAEA,CAAA,sBACC,aAED,CAAA,sBACC,qBAED,CAAA,qBACC,cACA,CAAA,cACA,CAAA,gBAED,CAAA,sBACC,kBACA,CAAA,QACA,CAAA,OACA,CAAA,wBACA,CAAA,gBACA,CAAA,aACA,CAAA,SAIF,CAAA,iBACC,yBACA,CAAA,cACA,CAAA,gBACA,CAAA,gBACA,CAAA,UACA,CAAA,kBACA,CAAA,iBACA,CAAA,eACA,CAAA,oBAeA,CAAA,aACC,mBACA,CAAA,UACA,CAAA,eACA,CAAA,aACA,CAAA,QAGD,CAAA,aACC,iBAGD,CAAA,YACC,kBACA,CAAA,gBACA,CAAA,gBAGD,CAAA,YACC,wBAGD,CAAA,iBACC,gBACA,CAAA,+BACC,eAED,CAAA,8BACC,gBAIF,CAAA,kBACC,mBACA,CAAA,sCACA,CAAA,qCACA,CAAA,kCACA,CAAA,iCACA,CAAA,8BACA,CAAA,6BAEA,CAAA,qBACC,iBACA,CAAA,kCACA,CAAA,mCACA,CAAA,8BACA,CAAA,+BACA,CAAA,0BACA,CAAA,2BAEA,CAAA,gCACC,YACA,CAAA,aACA,CAAA,gBACA,CAAA,cACA,CAAA,sCACC,cAKH,CAAA,oBACC,eACA,CAAA,gBACA,CAAA,QACA,CAAA,eACA,CAAA,aAGD,CAAA,yBACC,gCACA,CAAA,aACA,CAAA,iBACA,CAAA,eACA,CAAA,+BACC,mBAIF,CAAA,+BACC,YAEA,CAAA,oCACC,aAIF,CAAA,wBACC,QACA,CAAA,gBAGD,CAAA,6BACC,cACA,CAAA,aACA,CAAA,iBACA,CAAA,OACA,CAAA,gBACA,CAAA,mCACC,cAIF,CAAA,sCACC,gBACA,CAAA,OACA,CAAA,gBAGD,CAAA,yBACC,eACA,CAAA,aACA,CAAA,+BACC,cAOF,CAAA,sBACC,2BAED,CAAA,2BACC,aAKD,CAAA,sCACC,qBAIF,CAAA,eA/IC,kBACA,CAAA,OACA,CAAA,gCACA,CAAA,oCACA,CAAA,4BA6IA,CAAA,SACA,CAAA,WAEA,CAAA,qBACC,YACA,CAAA,gBAIF,CAAA,yBACC,yBACA,CAAA,eACG,CAAA,eAKH,CAAA,oBACC,mBACA,CAAA,+BACC,cACA,CAAA,qCACC,cAKH,CAAA,wBACC,aAGD,CAAA,uBACC,kBACA,CAAA,WAEA,CAAA,6BACC,mBAGD,CAAA,8BACC,cAGA,CAAA,yBACC,WACD,CAAA,aACA,CAAA,WAGD,CAAA,+BACC,YACA,CAAA,eACA,CAAA,gBACA,CAAA,kBACA,CAAA,eACA,CAAA,eACA,CAAA,eACA,CAAA,kBAED,CAAA,6BA5MD,kBACA,CAAA,OACA,CAAA,gCACA,CAAA,oCACA,CAAA,4BA+MA,CAAA,2BACC,YAMH,CAAA,SACC,eACA,CAAA,kBACA,CAAA,iBAEA,CAAA,gBACC,gBACA,CAAA,WACA,CAAA,yBAHD,iBAG6B,WAAW,CAAA,AAGxC,CAAA,uBACC,8BACA,CAAA,yBAFD,wBAE6B,iBAAmB,CAAA,4BAA6B,CAAA,AAG7E,CAAA,kBACC,eAGD,CAAA,WACC,0BAGD,CAAA,aACC,YACA,CAAA,eACA,CAAA,UACA,CAAA,iBAGD,CAAA,WACC,eACA,CAAA,eACA,CAAA,eACA,CAAA,YAGD,CAAA,aACC,gBACA,CAAA,eAGD,CAAA,YACC,eACA,CAAA,eAEA,CAAA,eACC,oBACA,CAAA,eACA,CAAA,gBACA,CAAA,oBACA,CAAA,qBAMH,CAAA,6BACC,UACA,CAAA,iBAGD,CAAA,oBACC,kBACA,CAAA,oBACA,CAAA,kBACA,CAAA,0BAAA,CACA,qBAAA,CAAA,WACA,CAAA,UACA,CAAA,WACA,CAAA,kBACA,CAAA,qBACA,CAAA,SACA,CAAA,cACA,CAAA,uBAEA,CAAA,sDACC,kBACA,CAAA,aACA,CAAA,UACA,CAAA,UACA,CAAA,WAGD,CAAA,0BACC,OACA,CAAA,iBACA,CAAA,eACA,CAAA,uBAGD,CAAA,2BACC,aAGD,CAAA,0BACC,mBAIF,CAAA,mBACC,eAGD,CAAA,qBACC,kBACA,CAAA,QACG,CAAA,iBACA,CAAA,aAGJ,CAAA,gCACE,cAGF,CAAA,+HAEC,6BAGD,CAAA,6DACC,mBACC,CAAA,mEACC,UAIH,CAAA,mEACC,mBAID,CAAA,mIAEC,mBAGD,CAAA,iEACC,mBAGD,CAAA,yEACC,mBAGD,CAAA,gEACC,kBACA,CAAA,UACA,CAAA,WACA,CAAA,8IACC,WACA,CAAA,WAIF,CAAA,8EACC,SdjhBE,CAAA,0Bc4hBD,qBACC,cAED,CAAA,mBACC,kBAKD,CAAA,oBACC,UACA,CAAA,iBACA,CAAA,0BACC,WAGF,CAAA,8BACC,gBAED,CAAA,iBACC,UAEA,CAAA,wBACC,UACA,CAAA,UACA,CAAA,+BACA,CAAA,8BACA,CAAA,qCACC,WACA,CAAA,UACA,CAAA,UACA,CAAA,WACA,CAAA,4BACA,CAAA,iBACA,CAAA,QAID,CAAA,+BACC,WAOH,CAAA,gBACC,YAAY,Cd3kBZ,Ac2kBY,Cd3kBZ,yBcqlBD,qBACC,WACA,CAAA,SACA,CAAA,iBAGA,CAAA,wBACC,WACA,CAAA,UAAW,Cd7lBZ,Ac6lBY,Cd7lBZ,yBcsmBF,+BACC,oBAGD,CAAA,yBACC,4BAA4B,Cd3mB3B,Ac2mB2B,Cd3mB3B,yBcmnBD,cACC,iBAED,CAAA,YACC,cAAc,CdvnBd,AcunBc,CdvnBd,yBcgoBD,qBACC,eAIF,CAAA,gBACC,cAIA,CAAA,oBACC,gBAIF,CAAA,8BACC,iBACA,CAAA,mBAGD,CAAA,gCACC,QAAQ,CCzqBT,ADyqBS,CCzqBT,+IACC,WACA,CAAA,aAED,CAAA,qEACC,WAAW,CAAA","file":"jetpack-admin.min.css"}plugins/jetpack/css/jp-benefits.css0000644000312500031250000000005412651056012017763 0ustar eacbforgeacbforg /*# sourceMappingURL=jp-benefits.css.map */plugins/jetpack/css/dashboard-widget.min.css0000644000312500031250000000502212651056012021547 0ustar eacbforgeacbforg#jetpack_summary_widget *{-moz-box-sizing:border-box;box-sizing:border-box}#jetpack_summary_widget .inside{margin:0;padding:0;font-family:"proxima-nova", "Open Sans", Helvetica, Arial, sans-serif}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#fafafa;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#81a844}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#777;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#81a844;border-color:#658435;color:#fff;box-shadow:inset 0 1px 0 #a5c672,0 1px 0 rgba(0,0,0,0.15)}#jetpack_summary_widget .button-jetpack:hover,#jetpack_summary_widget .button-jetpack:focus{background:#73963d;border-color:#57722e;color:#fff;box-shadow:inset 0 1px 0 #9abf60}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #9abf60,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack:active{background:#658435;border-color:#57722e;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack[disabled],#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled{color:#cdd1c7 !important;background:#6b8b38 !important;border-color:#57722e !important;text-shadow:none !important}#jetpack_summary_widget footer{background:#fafafa;padding:.75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .protect,#jetpack_summary_widget footer .akismet{width:50%;float:left;text-align:left}#jetpack_summary_widget footer h3{font-size:1.5em;font-weight:normal;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center} /*# sourceMappingURL=dashboard-widget.min.css.map */plugins/jetpack/css/dashboard-widget-rtl.min.css0000644000312500031250000000502412651056012022350 0ustar eacbforgeacbforg#jetpack_summary_widget *{-moz-box-sizing:border-box;box-sizing:border-box}#jetpack_summary_widget .inside{margin:0;padding:0;font-family:"proxima-nova", "Open Sans", Helvetica, Arial, sans-serif}#jetpack_summary_widget .stats,#jetpack_summary_widget .widgets,#jetpack_summary_widget .wpcom-connect{padding:.75em}#jetpack_summary_widget .wpcom-connect{background:#fafafa;text-align:center}#jetpack_summary_widget .wpcom-connect .jp-emblem{padding:5px 0 0 0}#jetpack_summary_widget .wpcom-connect svg{width:40px;height:40px}#jetpack_summary_widget .wpcom-connect svg path{fill:#81a844}#jetpack_summary_widget .wpcom-connect .jp-emblem,#jetpack_summary_widget .wpcom-connect h3,#jetpack_summary_widget .wpcom-connect p{width:100%}#jetpack_summary_widget .wpcom-connect h3{font-size:1.25em;font-weight:400}#jetpack_summary_widget .wpcom-connect p{color:#777;margin-top:0;padding:0 15px}#jetpack_summary_widget .wpcom-connect .actions{text-align:center;padding:15px 0 10px 0}#jetpack_summary_widget .wpcom-connect .actions small{display:block}#jetpack_summary_widget .wpcom-connect .actions small a{color:#999}#jetpack_summary_widget .button-jetpack{background:#81a844;border-color:#658435;color:#fff;box-shadow:inset 0 1px 0 #a5c672,0 1px 0 rgba(0,0,0,0.15)}#jetpack_summary_widget .button-jetpack:hover,#jetpack_summary_widget .button-jetpack:focus{background:#73963d;border-color:#57722e;color:#fff;box-shadow:inset 0 1px 0 #9abf60}#jetpack_summary_widget .button-jetpack:focus{box-shadow:inset 0 1px 0 #9abf60,0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack:active{background:#658435;border-color:#57722e;color:#fff;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,0.8)}#jetpack_summary_widget .button-jetpack[disabled],#jetpack_summary_widget .button-jetpack:disabled,#jetpack_summary_widget .button-jetpack.button-primary-disabled,#jetpack_summary_widget .button-jetpack.disabled{color:#cdd1c7 !important;background:#6b8b38 !important;border-color:#57722e !important;text-shadow:none !important}#jetpack_summary_widget footer{background:#fafafa;padding:.75em;overflow:hidden;border-top:1px solid #ccc}#jetpack_summary_widget footer .protect,#jetpack_summary_widget footer .akismet{width:50%;float:right;text-align:right}#jetpack_summary_widget footer h3{font-size:1.5em;font-weight:normal;margin:0;padding:0}#jetpack_summary_widget footer p{margin:0;padding:0}#jetpack_summary_widget footer section{margin:0;padding:0;text-align:center} /*# sourceMappingURL=dashboard-widget.min.css.map */plugins/jetpack/css/jetpack-banners-rtl.css.map0000755000312500031250000000442112651056012022204 0ustar eacbforgeacbforg{"version":3,"sources":["jetpack-banners-rtl.css"],"names":[],"mappings":"AAAA;;;GAGE;AACF;;EAEE,yCAAA;EACA,iCAAA;EACD;;AAED;EACE,uBAAA;EACD,oBAAA;EACC,wCAAA;EACF,gBAAA;EACE,+DAAA;EACA,2CAAA;EACA,qBAAA;EACA,oBAAA;EACD;AACD;EACC,gBAAA;EACA;AACD;EACC,aAAA;EACD,qBAAA;EACC;AACD;EACC,qBAAA;EACD,cAAA;EACC;;AAED;EACE,qBAAA;EACF,gBAAA;EACC;AACD;EACC,gBAAA;EACA;AACD;EACC,qBAAA;EACD,aAAA;EACC;AACD;EACC,qBAAA;EACD,aAAA;EACC,oEAAA;EACC,4DAAA;EACD;;AAED;EACC,uBAAA;EACC,oBAAA;EACF,uDAAA;EACA,aAAA;EACA,oEAAA;EACA,qBAAA;EACA,YAAA;EACA,oBAAA;EACC,mEAAA;EACD,2DAAA;EACC;AACD;EACA,aAAA;EACC;AACD;EACC,aAAA;EACD,qBAAA;EACC,mEAAA;EACD,2DAAA;EACC;AACD;EACC,UAAA;EACA,+DAAA;EACD,uDAAA;EACC;AACD;EACA,WAAA;EACC;AACD;EACC,aAAA;EACD,uBAAA;EACA,oBAAA;EACC,WAAA;EACD,mBAAA;EACA,aAAA;EACA,cAAA;EACA,wBAAA;EACE,uEAAA;EACD,oCAAA;EACD,uBAAA;EACC;AACD;EACC,aAAA;EACD,oBAAA;EACC,QAAA;EACA,UAAA;EACA,aAAA;EACD,cAAA;EACC;AACD;EACE;IACA,qBAAA;IACC;EACD;IACA,WAAA;IACC,aAAA;IACF,cAAA;IACE;EACF;AACD;EACE;IACD,QAAA;IACE;EACF;AACD;EACE;IACC,qBAAA;IACH,kBAAA;IACG;EACD;IACF,aAAA;IACG,cAAA;IACF,kBAAA;IACE;EACF;;AAED;EACC,uBAAA;EACD,cAAA;EACC,oBAAA;EACC,oCAAA;EACD,gBAAA;EACD,sDAAA;EACA,2CAAA;EACC,qBAAA;EACA,eAAA;EACD,oBAAA;EACC;AACD;EACA,gBAAA;EACC;AACD;EACC,aAAA;EACD,qBAAA;EACC;AACD;EACE,cAAA;EACD;;AAED;EACC,qBAAA;EACD,cAAA;EACA,aAAA;EACC,kBAAA;EACD,qBAAA;EACC,oBAAA;EACD,oBAAA;EACC;AACD;EACA,WAAA;EACC,aAAA;EACA,sEAAA;EACA,cAAA;EACD,sBAAA;EACC,oBAAA;EACD,cAAA;EACC,aAAA;EACD,YAAA;EACC;AACD;EACA,aAAA;EACC;AACD;EACC,WAAA;EACD,YAAA;EACC;AACD;EACC,cAAA;EACD,kBAAA;EACC;AACD;EACA,WAAA;EACC;AACD;EACA,kBAAA;EACC,oBAAA;EACD,qEAAA;EACC,kBAAA;EACA,mEAAA;EACD,2DAAA;EACC;AACD;EACC,mEAAA;EACD,2DAAA;EACC;AACD;EACC,eAAA;EACD,UAAA;EACC,+DAAA;EACD,uDAAA;EACC;AACD;EACA,WAAA;EACC;AACD;EACA,WAAA;EACC,mBAAA;EACA,aAAA;EACD,cAAA;EACC;AACD;EACC,YAAA;EACA,oBAAA;EACD,WAAA;EACC;AACD;EACA,gBAAA;EACC,kBAAA;EACD,iCAAA;EACC;AACD;EACA,cAAA;EACC;AACD;EACC,YAAA;EACD,eAAA;EACC;AACD;EACC,gBAAA;EACA,cAAA;EACD,kBAAA;EACC;AACD;EACC,WAAA;EACD,YAAA;EACC;AACD;EACE,aAAA;EACA,gBAAA;EACD,iBAAA;EACC,qBAAA;EACD;;AAED;EACE;IACA,aAAA;IACC;EACD;IACD,aAAA;IACE,kBAAA;IACD,oBAAA;IACC;EACD;IACE,cAAA;IACD,iBAAA;IACD,kBAAA;IACC;EACD;IACC,iBAAA;IACF,mBAAA;IACE;EACF;AACD;EACE;IACE,iBAAA;IACA,yBAAA;IACA,kBAAA;IACD,oBAAA;IACD,YAAA;IACC;EACD;IACD,eAAA;IACE;EACF","file":"jetpack-banners-rtl.css"}plugins/jetpack/css/jetpack-banners.min.css.map0000755000312500031250000000457112651056012022175 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/organisms/_banners.scss"],"names":[],"mappings":"AAAA,4BACC,cACA,CAAA,SACA,CAAA,kBACA,CAAA,WACA,CAAA,UAEA,CAAA,yCACC,mBACA,CAAA,qBACA,CAAA,cACA,CAAA,gDACC,iCACA,CAAA,eACA,CAAA,cACA,CAAA,aACA,CAAA,UAGF,CAAA,kDACC,cACA,CAAA,wBAEA,CAAA,kEACC,WAGD,CAAA,kEACC,kBAEA,CAAA,oEACC,SACA,CAAA,cACA,CAAA,UACA,CAAA,WAEA,CAAA,2EACC,qBACA,CAAA,eACA,CAAA,UACA,CAAA,WAIF,CAAA,oEACC,qBACA,CAAA,2BACA,CAAA,6CACA,CAAA,oBACA,CAAA,6BAGF,CAAA,gEACC,kBAEA,CAAA,kEACC,qBACA,CAAA,iBACA,CAAA,iBACA,CAAA,2BACA,CAAA,6CACA,CAAA,oBACA,CAAA,6BAEA,CAAA,wEACC,WACA,CAAA,6CAIF,CAAA,+EACC,aAMJ,CAAA,kBACC,kBACA,CAAA,kBACA,CAAA,wBACA,CAAA,WACA,CAAA,kBACA,CAAA,UACA,CAAA,eACA,CAAA,0BAAA,CAEA,qBAAA,CAAA,wBACC,WACA,CAAA,iBACA,CAAA,QACA,CAAA,YACA,CAAA,UACA,CAAA,WACA,CAAA,oEACA,CAAA,mBACA,CAAA,SAEA,CAAA,yBAXD,yBAYE,aAAa,CAAA,AAGf,CAAA,oBACC,WAED,CAAA,qBACC,cACA,CAAA,QACA,CAAA,SACA,CAAA,UACA,CAAA,cACA,CAAA,eACA,CAAA,kBAEA,CAAA,uBACC,gBAKH,CAAA,YACC,UAGD,CAAA,4BACC,cACA,CAAA,kBACA,CAAA,0BAAA,CACA,qBAAA,CAAA,SAEA,CAAA,yBAND,6BAOE,WAEA,CAAA,0CACC,WAAW,CAAA,AAIb,CAAA,8BACC,0BAcD,CAAA,8BACC,SACA,CAAA,SACA,CAAA,eAIF,CAAA,qCACC,kBACA,CAAA,KACA,CAAA,OACA,CAAA,iBACA,CAAA,SACA,CAAA,WACA,CAAA,0BAAA,CAEA,qBAAA,CAAA,yBATD,sCAUE,gBACA,CAAA,iBACA,CAAA,UAAW,CAAA,AAEZ,CAAA,mDACC,gBACA,CAAA,iBACA,CAAA,UACA,CAAA,WAIA,CAAA,yBAFD,oDAGE,WAAW,CAAA,AAQZ,CAAA,sCACC,UAED,CAAA,+CACC,UAGD,CAAA,yBACC,uFACC,WAAW,CAAA,AAMf,CAAA,2BACC,qBACA,CAAA,iBACC,CAAA,OACA,CAAA,WACD,CAAA,gBACA,CAAA,+CACA,CAAA,iBACA,CAAA,0BAAA,CACA,qBAAA,CAAA,kBACA,CAAA,oDAGA,CAAA,mDACA,CAAA,8BAEA,CAAA,0BAhBD,4BAiBE,iBACA,CAAA,WAAY,CAAA,AAGb,CAAA,yBArBD,4BAsBE,WAAW,CAAA,AAGZ,CAAA,yBAzBD,4BA0BE,gBACA,CAAA,QAAS,CAAA,AAEV,CAAA,yBA7BD,4BA8BE,cACA,CAAA,UACA,CAAA,iBACA,CAAA,eACA,CAAA,OAAQ,CAAA,AAET,CAAA,mEAEC,qDAID,CAAA,kCACC,aACA,CAAA,iCAAA,CACA,6BADA,CACA,yBAAA,CAAA,gDAIA,CAAA,wCAEC,SAGF,CAAA,kCACC,WACA,CAAA,oBACA,CAAA,iBACA,CAAA,qBACA,CAAA,oEACA,CAAA,oBACA,CAAA,QACA,CAAA,iBACA,CAAA,UACA,CAAA,WAEA,CAAA,yBAZD,mCAaE,aAAa,CAAA,AAKhB,CAAA,0CACC,gBACA,CAAA,QAID,CAAA,6CACC,gBACA,CAAA,UACA,CAAA,WACA,CAAA,eACA,CAAA,4BAGD,CAAA,4BACC,kBACC,CAAA,KACA,CAAA,OACD,CAAA,UACA,CAAA,WACA,CAAA,iBACA,CAAA,UAEA,CAAA,mCACC,cACA,CAAA,eACA,CAAA,iCAED,CAAA,kCACC,YAED,CAAA,mCACC,UACA,CAAA,YAMF,CAAA,gCACC,gBACA,CAAA,6BAEA,CAAA,oDACC,WACA,CAAA,8GACC,cAED,CAAA,4DACC,cAIF,CAAA,mDACC,mBACA,CAAA,eACA,CAAA,UAEA,CAAA,8KAGC,gBAED,CAAA,yDACC,mBAIF,CAAA,2DACC,cAAc,CAAA","file":"jetpack-banners.min.css"}plugins/jetpack/css/jetpack-admin-jitm-rtl.css0000644000312500031250000001074212651056012022031 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ .jp-jitm { border-radius: 2px; max-width: 100%; margin: 2em auto 1em auto; padding: .85em; background: #fcfcfc; border: 1px solid #dedede; text-align: center; } .jp-jitm:before, .jp-jitm:after { content: ""; display: table; } .jp-jitm:after { clear: both; } #screen-meta-links + .jp-jitm { margin: 3em auto 0 1.5385em; } .jp-jitm .activate { margin-top: .5em; } .jp-jitm .jp-emblem { width: 25px; height: 25px; margin: .40em auto 0 1em; } .jp-jitm svg { width: 100%; height: 100%; } .jp-jitm path { fill: #8cc258; } .jp-jitm .dismiss { margin: 0; text-decoration: none; float: left; } .jp-jitm .dismiss:before { color: #666; font: 400 15px/1 dashicons; content: '\f158'; } .jp-jitm p { font-size: 1em; line-height: 165%; } .jp-jitm .j-spinner { margin: 8px 0 0; height: 17px; width: 17px; } .jp-jitm .hide { display: none; } form[name=post] > .jp-jitm:first-of-type { margin-top: 1em; } @media (min-width: 800px) { .jp-jitm .jp-emblem, .jp-jitm p { float: right; /* margin: .5em 1em 0 .5em; padding-top: 4px; */ } .jp-jitm .jp-emblem { width: 20px; height: 20px; margin-left: .5em; } .jp-jitm p { margin: .40em 0 0 1em; } .jp-jitm p + p { margin: 0; padding: 0; } .jp-jitm .activate { margin-top: 0; } } @media (max-width: 1100px) { .jp-jitm { margin: 2.5em .5em .5em .75em; } form[name=post] > .jp-jitm:first-of-type { margin-right: auto; margin-left: auto; } } @media (max-width: 800px) { .jp-jitm .jp-emblem { margin: .40em auto 0 auto; } } @media (min-width: 1100px) { .update-core-php .jp-jitm { margin: 3em auto 0 2em; } } .jetpack-connected .media-modal-content .uploader-inline-content { top: 20%; } @media only screen and (min-width: 800px) { .media-menu .jp-jitm { margin: 10px 0; padding: 5px 5px 15px; border-width: 1px 0; } .media-menu .jp-jitm .jp-emblem { margin: 20px 15px 0 10px; } .media-menu .jp-jitm .msg { width: 75%; text-align: right; margin: 0 0 10px; } .media-menu .jp-jitm .msg + p { text-align: center; width: 100%; } } @media only screen and (max-width: 900px) { .media-menu .jp-jitm { display: none; margin: .5em 3%; border-width: 1px; } .media-menu .jp-jitm .msg { margin-top: 20px; width: 88%; margin-right: auto; margin-left: auto; } .media-menu.visible .jp-jitm { display: block; } } /*# sourceMappingURL=jetpack-admin-jitm.css.map */ .jp-jitm{border-radius:2px;max-width:100%;margin:2em auto 1em auto;padding:.85em;background:#fcfcfc;border:1px solid #dedede;text-align:center}.jp-jitm:before,.jp-jitm:after{content:"";display:table}.jp-jitm:after{clear:both}#screen-meta-links+.jp-jitm{margin:3em auto 0 1.5385em}.jp-jitm .activate{margin-top:.5em}.jp-jitm .jp-emblem{width:25px;height:25px;margin:.40em auto 0 1em}.jp-jitm svg{width:100%;height:100%}.jp-jitm path{fill:#8cc258}.jp-jitm .dismiss{margin:0;text-decoration:none;float:left}.jp-jitm .dismiss:before{color:#666;font:400 15px/1 dashicons;content:'\f158'}.jp-jitm p{font-size:1em;line-height:165%}.jp-jitm .j-spinner{margin:8px 0 0;height:17px;width:17px}.jp-jitm .hide{display:none}form[name=post]>.jp-jitm:first-of-type{margin-top:1em}@media (min-width: 800px){.jp-jitm .jp-emblem,.jp-jitm p{float:right}.jp-jitm .jp-emblem{width:20px;height:20px;margin-left:.5em}.jp-jitm p{margin:.40em 0 0 1em}.jp-jitm p+p{margin:0;padding:0}.jp-jitm .activate{margin-top:0}}@media (max-width: 1100px){.jp-jitm{margin:2.5em .5em .5em .75em}form[name=post]>.jp-jitm:first-of-type{margin-right:auto;margin-left:auto}}@media (max-width: 800px){.jp-jitm .jp-emblem{margin:.40em auto 0 auto}}@media (min-width: 1100px){.update-core-php .jp-jitm{margin:3em auto 0 2em}}.jetpack-connected .media-modal-content .uploader-inline-content{top:20%}@media only screen and (min-width: 800px){.media-menu .jp-jitm{margin:10px 0;padding:5px 5px 15px;border-width:1px 0}.media-menu .jp-jitm .jp-emblem{margin:20px 15px 0 10px}.media-menu .jp-jitm .msg{width:75%;text-align:right;margin:0 0 10px}.media-menu .jp-jitm .msg+p{text-align:center;width:100%}}@media only screen and (max-width: 900px){.media-menu .jp-jitm{display:none;margin:.5em 3%;border-width:1px}.media-menu .jp-jitm .msg{margin-top:20px;width:88%;margin-right:auto;margin-left:auto}.media-menu.visible .jp-jitm{display:block}} /*# sourceMappingURL=jetpack-admin-jitm.min.css.map */plugins/jetpack/css/jetpack.css0000644000312500031250000015760412651056012017214 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is concatenated from individual module CSS files. */ .jp-carousel-wrap *{line-height:inherit}.jp-carousel-overlay{background:#000}div.jp-carousel-fadeaway{position:fixed;bottom:0;z-index:2147483647;width:100%;height:15px}.jp-carousel-next-button span,.jp-carousel-previous-button span{background:url(../modules/carousel/images/arrows.png) center center/200px 126px no-repeat}.jp-carousel-msg{font-family:"Open Sans",sans-serif;font-style:normal;display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:center;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.jp-carousel-next-button span,.jp-carousel-previous-button span{background-image:url(../modules/carousel/images/arrows-2x.png)}}.jp-carousel-wrap{font-family:"Helvetica Neue",sans-serif!important}.jp-carousel-info{position:absolute;bottom:0;text-align:left!important;-webkit-font-smoothing:subpixel-antialiased!important}.jp-carousel-info ::selection{background:#68c9e8;color:#fff}.jp-carousel-info ::-moz-selection{background:#68c9e8;color:#fff}.jp-carousel-photo-info{position:relative;left:25%;width:50%}.jp-carousel-transitions .jp-carousel-photo-info{transition:400ms ease-out}.jp-carousel-info h2{background:none!important;border:none!important;color:#999;display:block!important;font:400 13px/1.25em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;margin:7px 0 0!important;padding:10px 0 0!important;overflow:hidden;text-align:left;text-shadow:none!important;text-transform:none!important;-webkit-font-smoothing:subpixel-antialiased}.jp-carousel-next-button,.jp-carousel-previous-button{text-indent:-9999px;overflow:hidden;cursor:pointer}.jp-carousel-next-button span,.jp-carousel-previous-button span{position:absolute;top:0;bottom:0;width:82px;zoom:1;filter:alpha(opacity=20);opacity:.2}.jp-carousel-transitions .jp-carousel-next-button span,.jp-carousel-transitions .jp-carousel-previous-button span{transition:500ms opacity ease-out}.jp-carousel-next-button:hover span,.jp-carousel-previous-button:hover span{filter:alpha(opacity=60);opacity:.6}.jp-carousel-next-button span{background-position:-110px center;right:0}.jp-carousel-previous-button span{background-position:-10px center;left:0}.jp-carousel-buttons{margin:-18px -20px 15px;padding:8px 10px;border-bottom:1px solid #222;background:#222;text-align:center}div.jp-carousel-buttons a{border:none!important;color:#999;font:400 11px/1.2em "Helvetica Neue",sans-serif!important;letter-spacing:0!important;padding:5px 2px 5px 0;text-decoration:none!important;text-shadow:none!important;vertical-align:middle;-webkit-font-smoothing:subpixel-antialiased}div.jp-carousel-buttons a:hover{color:#68c9e8;border:none!important}.jp-carousel-transitions div.jp-carousel-buttons a:hover{transition:none!important}.jp-carousel-next-button,.jp-carousel-previous-button,.jp-carousel-slide,.jp-carousel-slide img{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.jp-carousel-slide{position:fixed;width:0;bottom:0;background-color:#000;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}.jp-carousel-slide.selected{position:absolute!important;filter:alpha(opacity=100);opacity:1}.jp-carousel-slide{filter:alpha(opacity=25);opacity:.25}.jp-carousel-slide img{display:block;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;background:none!important;border:none!important;padding:0!important;box-shadow:0 2px 8px rgba(0,0,0,.1);zoom:1}.jp-carousel-transitions .jp-carousel-slide{transition:opacity 400ms linear}.jp-carousel-close-hint{color:#999;cursor:default;letter-spacing:0!important;padding:.35em 0 0;position:absolute;text-align:left;width:90%}.jp-carousel-transitions .jp-carousel-close-hint{transition:color 200ms linear}.jp-carousel-close-hint span{cursor:pointer;background-color:#000;background-color:rgba(0,0,0,.8);display:block;height:22px;font:400 24px/1 "Helvetica Neue",sans-serif!important;line-height:22px;margin:0 0 0 .4em;text-align:center;vertical-align:middle;width:22px;border-radius:4px}.jp-carousel-transitions .jp-carousel-close-hint span{transition:border-color 200ms linear}.jp-carousel-close-hint:hover{cursor:default;color:#fff}.jp-carousel-close-hint:hover span{border-color:#fff}a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-like,div.jp-carousel-buttons a.jp-carousel-reblog{background:url(../modules/carousel/images/carousel-sprite.png?5) 0 0/16px 200px no-repeat}div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-reblog{margin:0 14px 0 0!important}div.jp-carousel-buttons a.jp-carousel-like.liked,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#303030;padding-right:8px!important;border-radius:2px;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{margin:0 2px 0 -12px!important}div.jp-carousel-buttons a.jp-carousel-reblog,div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{background-position:6px -36px;padding-right:auto!important;padding-left:26px!important;color:#999}div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -156px;padding-left:19px!important}div.jp-carousel-buttons a.jp-carousel-reblog.reblogged:hover{cursor:default}div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:6px -56px;color:#68c9e8}div.jp-carousel-buttons a.jp-carousel-like{background-position:5px 5px;padding-left:24px!important}div.jp-carousel-buttons a.jp-carousel-like:hover{background-position:5px -15px}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){a.jp-carousel-image-download,div.jp-carousel-buttons a.jp-carousel-commentlink,div.jp-carousel-buttons a.jp-carousel-like,div.jp-carousel-buttons a.jp-carousel-reblog{background-image:url(../modules/carousel/images/carousel-sprite-2x.png?5)}}div#carousel-reblog-box{background:#222;padding:3px 0 0;display:none;margin:5px auto 0;border-radius:2px;box-shadow:0 0 20px rgba(0,0,0,.9);height:74px;width:565px}#carousel-reblog-box textarea{background:#999;font:13px/1.4 "Helvetica Neue",sans-serif!important;color:#444;padding:3px 6px;width:370px;height:48px;float:left;margin:6px 9px 0;border:1px solid #666;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:2px}#carousel-reblog-box textarea:focus{background:#ccc;color:#222}#carousel-reblog-box label{color:#aaa;font-size:11px;padding-right:2px;padding-left:2px;display:inline;font-weight:400}#carousel-reblog-box select{width:110px;padding:0;font-size:12px;font-family:"Helvetica Neue",sans-serif!important;background:#333;color:#eee;border:1px solid #444;margin-top:5px}#carousel-reblog-box .submit,#wrapper #carousel-reblog-box p.response{float:left;width:154px;padding-top:0;padding-left:1px;overflow:hidden;height:34px;margin:3px 0 0 2px!important}#wrapper #carousel-reblog-box p.response{font-size:13px;clear:none;padding-left:2px;height:34px;color:#aaa}#carousel-reblog-box input#carousel-reblog-submit,#jp-carousel-comment-form-button-submit{font:13px/24px "Helvetica Neue",sans-serif!important;margin-top:8px;padding:0 10px!important;border-radius:1em;height:24px;color:#333;cursor:pointer;font-weight:400;background:#aaa;border:1px solid #444}#carousel-reblog-box input#carousel-reblog-submit:hover,#jp-carousel-comment-form-button-submit:hover{background:#ccc}#carousel-reblog-box .canceltext{color:#aaa;font-size:11px;line-height:24px}#carousel-reblog-box .canceltext a{color:#fff}.jp-carousel-titleanddesc{border-top:1px solid #222;color:#999;font-size:15px;padding-top:24px;margin-bottom:20px;font-weight:400}.jp-carousel-titleanddesc-title{font:300 1.5em/1.1 "Helvetica Neue",sans-serif!important;text-transform:none!important;color:#fff;margin:0 0 15px;padding:0}.jp-carousel-titleanddesc-desc p{color:#999;line-height:1.4;margin-bottom:.75em}.jp-carousel-comments p a,.jp-carousel-info h2 a,.jp-carousel-titleanddesc p a{color:#fff!important;border:none!important;text-decoration:underline!important;font-weight:400!important;font-style:normal!important}.jp-carousel-titleanddesc p b,.jp-carousel-titleanddesc p strong{font-weight:700;color:#999}.jp-carousel-titleanddesc p em,.jp-carousel-titleanddesc p i{font-style:italic;color:#999}.jp-carousel-comments p a:hover,.jp-carousel-info h2 a:hover,.jp-carousel-titleanddesc p a:hover{color:#68c9e8!important}.jp-carousel-titleanddesc p:empty{display:none}.jp-carousel-left-column-wrapper h1:after,.jp-carousel-left-column-wrapper h1:before,.jp-carousel-photo-info h1:after,.jp-carousel-photo-info h1:before{content:none!important}.jp-carousel-image-meta{background:#111;border:1px solid #222;color:#fff;font:12px/1.4 "Helvetica Neue",sans-serif!important;overflow:hidden;padding:18px 20px;width:209px!important}.jp-carousel-image-meta h5,.jp-carousel-image-meta li{font-family:"Helvetica Neue",sans-serif!important;position:inherit!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;background:none!important;border:none!important;font-weight:400!important;line-height:1.3em!important}.jp-carousel-image-meta ul{margin:0!important;padding:0!important;list-style:none!important}.jp-carousel-image-meta li{width:48%!important;float:left!important;margin:0 2% 15px 0!important;color:#fff!important;font-size:13px!important}.jp-carousel-image-meta h5{color:#999!important;text-transform:uppercase!important;font-size:10px!important;margin:0 0 2px!important;letter-spacing:.1em!important}a.jp-carousel-image-download{padding-left:23px;display:inline-block;clear:both;color:#999;line-height:1;font-weight:400;font-size:13px;text-decoration:none;background-position:0 -82px}a.jp-carousel-image-download span.photo-size{font-size:11px;border-radius:1em;margin-left:2px;display:inline-block}a.jp-carousel-image-download span.photo-size-times{padding:0 1px 0 2px}a.jp-carousel-image-download:hover{background-position:0 -122px;color:#68c9e8;border:none!important}.jp-carousel-image-map{position:relative;margin:-20px -20px 20px;border-bottom:1px solid rgba(255,255,255,.17);height:154px}.jp-carousel-image-map img.gmap-main{border-top-left-radius:6px;border-right:1px solid rgba(255,255,255,.17)}.jp-carousel-image-map div.gmap-topright{width:94px;height:154px;position:absolute;top:0;right:0}.jp-carousel-image-map div.imgclip{overflow:hidden;border-top-right-radius:6px}.jp-carousel-image-map div.gmap-topright img{margin-left:-40px}.jp-carousel-image-map img.gmap-bottomright{position:absolute;top:96px;right:0}.jp-carousel-comments{font:15px/1.7 "Helvetica Neue",sans-serif!important;font-weight:400;background:none}.jp-carousel-comments p a:active,.jp-carousel-comments p a:focus,.jp-carousel-comments p a:hover{color:#68c9e8!important}.jp-carousel-comment{background:none;color:#999;margin-bottom:20px;clear:left;overflow:auto;width:100%}.jp-carousel-comment p{color:#999!important}.jp-carousel-comment .comment-author{font-size:13px;font-weight:400;padding:0;width:auto;display:inline;float:none;border:none;margin:0}.jp-carousel-comment .comment-author a{color:#fff}.jp-carousel-comment .comment-gravatar{float:left}.jp-carousel-comment .comment-content{border:none;margin-left:85px;padding:0}.jp-carousel-comment .avatar{margin:0 20px 0 0;border-radius:4px;border:none!important;padding:0!important;background-color:transparent!important}.jp-carousel-comment .comment-date{color:#999;margin-top:4px;font-size:11px;display:inline;float:right}#jp-carousel-comment-form{margin:0 0 10px!important;float:left;width:100%}textarea#jp-carousel-comment-form-comment-field{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:15px/1.4 "Helvetica Neue",sans-serif!important;width:100%;padding:10px 10px 5px;margin:0;float:none;height:147px;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:3px;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box}textarea#jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#555}textarea#jp-carousel-comment-form-comment-field:focus{background:#ccc;color:#222}textarea#jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#aaa}#jp-carousel-comment-form-spinner{color:#fff;margin:22px 0 0 10px;display:block;width:20px;height:20px;float:left}#jp-carousel-comment-form-submit-and-info-wrapper{display:none;overflow:hidden;width:100%}#jp-carousel-comment-form-commenting-as input{background:rgba(34,34,34,.9);border:1px solid #3a3a3a;color:#aaa;font:13px/1.4 "Helvetica Neue",sans-serif!important;padding:3px 6px;float:left;box-shadow:inset 2px 2px 2px rgba(0,0,0,.2);border-radius:2px;width:285px}#jp-carousel-comment-form-commenting-as input:focus{background:#ccc;color:#222}#jp-carousel-comment-form-commenting-as p{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:22px 0 0;float:left}#jp-carousel-comment-form-commenting-as fieldset{float:left;border:none;margin:20px 0 0;padding:0;clear:both}#jp-carousel-comment-form-commenting-as label{font:400 13px/1.7 "Helvetica Neue",sans-serif!important;margin:0 20px 3px 0;float:left;width:100px}#jp-carousel-comment-form-button-submit{margin-top:20px;float:right}#jp-carousel-comment-form-container,#js-carousel-comment-form-container{margin-bottom:15px;overflow:auto;width:100%}#jp-carousel-comment-post-results{display:none;overflow:auto;width:100%}#jp-carousel-comment-post-results span{display:block;text-align:center;margin-top:20px;width:100%;overflow:auto;padding:1em 0;-moz-box-sizing:border-box;box-sizing:border-box;background:rgba(0,0,0,.7);border-radius:2px;font:13px/1.4 "Helvetica Neue",sans-serif!important;border:1px solid rgba(255,255,255,.17);box-shadow:inset 0 0 5px 5px rgba(0,0,0,1)}.jp-carousel-comment-post-error{color:#DF4926}#jp-carousel-comments-closed{display:none;color:#999}#jp-carousel-comments-loading{font:400 15px/1.7 "Helvetica Neue",sans-serif!important;display:none;color:#999;text-align:left;margin-bottom:20px}.jp-carousel-light .jp-carousel-overlay{background:#fff}.jp-carousel-light .jp-carousel-next-button:hover span,.jp-carousel-light .jp-carousel-previous-button:hover span{opacity:.8}.jp-carousel-light .jp-carousel-close-hint:hover,.jp-carousel-light .jp-carousel-titleanddesc div{color:#000!important}.jp-carousel-light .jp-carousel-comment .comment-author a,.jp-carousel-light .jp-carousel-comments p a,.jp-carousel-light .jp-carousel-info h2 a,.jp-carousel-light .jp-carousel-titleanddesc p a{color:#1e8cbe!important}.jp-carousel-light .jp-carousel-comment .comment-author a:hover,.jp-carousel-light .jp-carousel-comments p a:hover,.jp-carousel-light .jp-carousel-info h2 a:hover,.jp-carousel-light .jp-carousel-titleanddesc p a:hover{color:#f1831e!important}.jp-carousel-light .jp-carousel-comment,.jp-carousel-light .jp-carousel-comment p,.jp-carousel-light .jp-carousel-info h2,.jp-carousel-light .jp-carousel-titleanddesc,.jp-carousel-light .jp-carousel-titleanddesc p,.jp-carousel-light .jp-carousel-titleanddesc p b,.jp-carousel-light .jp-carousel-titleanddesc p em,.jp-carousel-light .jp-carousel-titleanddesc p i,.jp-carousel-light .jp-carousel-titleanddesc p strong,.jp-carousel-light div.jp-carousel-buttons a{color:#666}.jp-carousel-light .jp-carousel-buttons{border-bottom-color:#f0f0f0;background:#f5f5f5}.jp-carousel-light div.jp-carousel-buttons a:hover{text-decoration:none;color:#f1831e}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog:hover{background-position:4px -56px;padding-left:24px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-color:#2ea2cc;color:#fff}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-commentlink{background-position:0 -176px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like,.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like:hover{background-position:5px -15px;padding-left:23px!important}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-reblog.reblogged{background-position:5px -36px}.jp-carousel-light div.jp-carousel-buttons a.jp-carousel-like.liked{background-position:5px 5px}.jp-carousel-light div#carousel-reblog-box{background:#eee;box-shadow:0 2px 10px rgba(0,0,0,.1);border:1px solid #ddd}.jp-carousel-light #carousel-reblog-box textarea{color:#666;border:1px solid #cfcfcf;background:#fff}.jp-carousel-light #carousel-reblog-box .canceltext{color:#888}.jp-carousel-light #carousel-reblog-box .canceltext a{color:#666}.jp-carousel-light #carousel-reblog-box select{background:#eee;color:#333;border:1px solid #aaa}#jp-carousel-comment-form-button-submit,.jp-carousel-light #carousel-reblog-box input#carousel-reblog-submit{color:#333;background:#fff;border:1px solid #aaa}.jp-carousel-light .jp-carousel-image-meta{background:#fafafa;border:1px solid #eee;border-top-color:#f5f5f5;border-left-color:#f5f5f5;color:#333}.jp-carousel-light .jp-carousel-image-meta li{color:#000!important}.jp-carousel-light .jp-carousel-close-hint{color:#ccc}.jp-carousel-light .jp-carousel-close-hint span{background-color:#fff;border-color:#ccc}.jp-carousel-light #jp-carousel-comment-form-comment-field::-webkit-input-placeholder{color:#aaa}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus{color:#333}.jp-carousel-light #jp-carousel-comment-form-comment-field:focus::-webkit-input-placeholder{color:#ddd}.jp-carousel-light a.jp-carousel-image-download{background-position:0 -122px}.jp-carousel-light a.jp-carousel-image-download:hover{background-position:0 -122px;color:#f1831e}.jp-carousel-light textarea#jp-carousel-comment-form-comment-field{background:#fbfbfb;color:#333;border:1px solid #dfdfdf;box-shadow:inset 2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input{background:#fbfbfb;border:1px solid #dfdfdf;color:#333;box-shadow:inset 2px 2px 2px rgba(0,0,0,.1)}.jp-carousel-light #jp-carousel-comment-form-commenting-as input:focus{background:#fbfbfb;color:#333}.jp-carousel-light #jp-carousel-comment-post-results span{background:#f7f7f7;border:1px solid #dfdfdf;box-shadow:inset 0 0 5px rgba(0,0,0,.05)}.jp-carousel-light .jp-carousel-slide{background-color:#fff}.jp-carousel-light .jp-carousel-titleanddesc{border-top:1px solid #eee}@media only screen and (max-width:760px){.jp-carousel-info{margin:0 10px!important}.jp-carousel-buttons,.jp-carousel-next-button,.jp-carousel-previous-button{display:none!important}.jp-carousel-image-meta{float:none!important;width:100%!important;-moz-box-sizing:border-box;box-sizing:border-box}.jp-carousel-close-hint{font-weight:800!important;font-size:26px!important;position:fixed!important;top:-10px}.jp-carousel-slide img{filter:alpha(opacity=100);opacity:1}.jp-carousel-wrap{background-color:#000}.jp-carousel-fadeaway{display:none}#jp-carousel-comment-form-container{display:none!important}.jp-carousel-titleanddesc{padding-top:0!important;border:none!important}.jp-carousel-titleanddesc-title{font-size:1em!important}.jp-carousel-left-column-wrapper{padding:0;width:100%!important}.jp-carousel-photo-info{left:0!important;width:100%!important}}.contact-form .clear-form{clear:both}.contact-form input[type=email],.contact-form input[type=text]{width:300px;max-width:98%;margin-bottom:13px}.contact-form select{margin-bottom:13px}.contact-form textarea{height:200px;width:80%;float:none;margin-bottom:13px}.contact-form input[type=checkbox],.contact-form input[type=radio]{float:none;margin-bottom:13px}.contact-form label{margin-bottom:3px;float:none;font-weight:700;display:block}.contact-form label.checkbox,.contact-form label.radio{margin-bottom:3px;float:none;font-weight:700;display:inline-block}.contact-form label span{color:#AAA;margin-left:4px;font-weight:400}.contact-form-submission{margin-bottom:4em;padding:1.5em 1em}.contact-form-submission p{margin:0 auto}.form-errors .form-error-message{color:red}.textwidget .contact-form input[type=email],.textwidget .contact-form input[type=text],.textwidget .contact-form textarea{width:250px;max-width:100%;-moz-box-sizing:border-box;box-sizing:border-box}#jetpack-check-feedback-spam{margin:1px 8px 0 0}.jetpack-check-feedback-spam-spinner{display:inline-block;margin-top:7px}.infinite-loader{color:#000;display:block;height:28px;text-indent:-9999px}#infinite-handle span{background:#333;border-radius:1px;color:#eee;cursor:pointer;font-size:13px;padding:6px 16px}#infinite-handle span button,#infinite-handle span button:focus,#infinite-handle span button:hover{display:inline;position:static;padding:0;margin:0;border:none;line-height:inherit;background:0 0;color:inherit;cursor:inherit;font-size:inherit;font-weight:inherit;font-family:inherit}#infinite-handle span button::-moz-focus-inner{margin:0;padding:0;border:none}@media (max-width:800px){#infinite-handle span:before{display:none}#infinite-handle span{display:block}}#infinite-footer{position:fixed;bottom:-50px;left:0;width:100%}#infinite-footer a{text-decoration:none}#infinite-footer .blog-credits a:hover,#infinite-footer .blog-info a:hover{color:#444;text-decoration:underline}#infinite-footer .container{background:rgba(255,255,255,.8);border-color:#ccc;border-color:rgba(0,0,0,.1);border-style:solid;border-width:1px 0 0;-moz-box-sizing:border-box;box-sizing:border-box;margin:0 auto;overflow:hidden;padding:1px 20px;width:780px}#infinite-footer .blog-credits,#infinite-footer .blog-info{-moz-box-sizing:border-box;box-sizing:border-box;line-height:25px}#infinite-footer .blog-info{float:left;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:40%}#infinite-footer .blog-credits{font-weight:400;float:right;width:60%}#infinite-footer .blog-info a{color:#111;font-size:14px;font-weight:700}#infinite-footer .blog-credits{color:#888;font-size:12px;text-align:right}#infinite-footer .blog-credits a{color:#666}.infinity-end.neverending #infinite-footer{display:none}@media (max-width:640px){#infinite-footer .container{-moz-box-sizing:border-box;box-sizing:border-box;width:100%}#infinite-footer .blog-info{width:30%}#infinite-footer .blog-credits{width:70%}#infinite-footer .blog-credits,#infinite-footer .blog-info a{font-size:10px}}@media (max-width:640px){#infinite-footer{position:static}}#wpadminbar li#wp-admin-bar-admin-bar-likes-widget{width:61px;overflow:hidden}#wpadminbar iframe.admin-bar-likes-widget{width:61px;height:28px;min-height:28px;border-width:0;position:absolute;top:0}div.jetpack-likes-widget-wrapper{width:100%;min-height:50px;position:relative}div.jetpack-likes-widget-wrapper .sd-link-color{font-size:12px}div.jetpack-likes-widget-wrapper.slim-likes-widget{width:1px;min-height:0}#likes-other-gravatars{display:none;position:absolute;padding:10px 10px 12px;background-color:#2e4453;border-width:0;box-shadow:0 0 10px #2e4453;box-shadow:0 0 10px rgba(46,68,83,.6);min-width:130px;z-index:1000}#likes-other-gravatars *{line-height:normal}#likes-other-gravatars .likes-text{color:#fff;font-size:12px;padding-bottom:8px}#likes-other-gravatars li,#likes-other-gravatars ul{margin:0;padding:0;text-indent:0;list-style-type:none}#likes-other-gravatars li::before{content:""}#likes-other-gravatars ul.wpl-avatars{overflow:auto;display:block;max-height:190px}#likes-other-gravatars ul.wpl-avatars li{width:32px;height:32px;float:left;margin:0 5px 5px 0}#likes-other-gravatars ul.wpl-avatars li a{margin:0 2px 0 0;border-bottom:none!important;display:block}#likes-other-gravatars ul.wpl-avatars li a img{background:0 0;border:none;margin:0!important;padding:0!important;position:static}div.sd-box{border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.13)}.comment-likes-widget,.entry-content .post-likes-widget,.post-likes-widget{margin:0;border-width:0;display:block}.post-likes-widget-placeholder{margin:0;border-width:0;position:relative}.post-likes-widget-placeholder .button{display:none}.post-likes-widget-placeholder .loading{color:#999;font-size:12px}.slim-likes-widget .post-likes-widget{width:auto;float:none}div.sharedaddy.sd-like-enabled .sd-like h3{display:none}div.sharedaddy.sd-like-enabled .sd-like .post-likes-widget{width:100%;float:none;position:absolute;top:0}.comment-likes-widget{width:100%}.pd-rating{display:block!important}.sd-gplus .sd-title{display:none}#jp-relatedposts{display:none;padding-top:1em;margin:1em 0;position:relative;clear:both}.jp-relatedposts:after{content:'';display:block;clear:both}#jp-relatedposts h3.jp-relatedposts-headline{margin:0 0 1em;display:inline-block;float:left;font-size:9pt;font-weight:700;font-family:inherit}#jp-relatedposts h3.jp-relatedposts-headline em:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}#jp-relatedposts h3.jp-relatedposts-headline em{font-style:normal;font-weight:700}#jp-relatedposts .jp-relatedposts-items{clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:-20px}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{float:left;width:33%;margin:0 0 1em;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post{padding-right:20px;filter:alpha(opacity=80);-moz-opacity:.8;opacity:.8}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4),#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4){clear:both}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover{filter:alpha(opacity=100);-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items p,#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{font-size:14px;line-height:20px;margin:0}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs{position:relative}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay{position:absolute;top:0;bottom:0;left:0;right:0;display:block}#jp-relatedposts .jp-relatedposts-items p{margin-bottom:0}#jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title{text-transform:none;margin:0;font-family:inherit;display:block;max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a{font-size:inherit;font-weight:400;text-decoration:none;filter:alpha(opacity=100);-moz-opacity:1;opacity:1}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover{text-decoration:underline}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span{display:block;max-width:90%;overflow:hidden;text-overflow:ellipsis}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img,#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span{max-width:100%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context,#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{opacity:.6}#jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt,.jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date{display:none}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt{overflow:hidden}#jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span{margin-bottom:1em}@media only screen and (max-width:640px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:50%}#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n){clear:left}#jp-relatedposts .jp-relatedposts-items-visual{margin-right:20px}}@media only screen and (max-width:320px){#jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post{width:100%;clear:both;margin:0 0 1em}}#jp-post-flair{padding-top:.5em}#content div.sharedaddy,#main div.sharedaddy,div.sharedaddy{clear:both}div.sharedaddy h3.sd-title{margin:0 0 1em;display:inline-block;line-height:1.2;font-size:9pt;font-weight:700}div.sharedaddy h3.sd-title:before{content:"";display:block;width:100%;min-width:30px;border-top:1px solid #ddd;margin-bottom:1em}body.highlander-light h3.sd-title:before{border-top:1px solid rgba(0,0,0,.2)}body.highlander-dark h3.sd-title:before{border-top:1px solid rgba(255,255,255,.4)}.sd-content ul{padding:0!important;margin:0 0 .7em!important;list-style:none!important}.sd-content ul li{display:inline-block}.sd-block.sd-gplus{margin:0 0 .5em}.sd-gplus .sd-content{font-size:12px}#sharing_email .sharing_send,.sd-content ul li .option a.share-ustom,.sd-content ul li a.sd-button,.sd-content ul li.advanced a.share-more,.sd-content ul li.preview-item div.option.option-smart-off a,.sd-social-icon .sd-content ul li a.sd-button,.sd-social-icon-text .sd-content ul li a.sd-button,.sd-social-official .sd-content>ul>li .digg_button >a,.sd-social-official .sd-content>ul>li>a.sd-button,.sd-social-text .sd-content ul li a.sd-button{text-decoration:none!important;display:inline-block;margin:0 5px 5px 0;font-size:12px;font-family:"Open Sans",sans-serif;font-weight:400;border-radius:3px;color:#777!important;background:#f8f8f8;border:1px solid #ccc;box-shadow:0 1px 0 rgba(0,0,0,.08);text-shadow:none;line-height:23px;padding:1px 8px 0 5px}.sd-content ul li .option a.share-ustom span,.sd-content ul li a.sd-button>span,.sd-content ul li.advanced a.share-more span,.sd-content ul li.preview-item div.option.option-smart-off a span,.sd-social-icon-text .sd-content ul li a.sd-button>span,.sd-social-official .sd-content>ul>li .digg_button >a span,.sd-social-official .sd-content>ul>li>a.sd-button span,.sd-social-text .sd-content ul li a.sd-button span{line-height:23px}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button,.sd-social-official .sd-content>ul>li .digg_button>a,.sd-social-official .sd-content>ul>li>a.sd-button{line-height:17px;box-shadow:none;vertical-align:top}.sd-social-official .sd-content .sharing-hidden .inner>ul>li .digg_button>a:before,.sd-social-official .sd-content .sharing-hidden .inner>ul>li>a.sd-button:before,.sd-social-official .sd-content>ul>li .digg_button>a:before,.sd-social-official .sd-content>ul>li>a.sd-button:before{margin-bottom:-1px;top:0}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon .sd-content ul li a.sd-button:hover,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:hover,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li .digg_button>a:hover,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-official .sd-content>ul>li>a.sd-button:hover,.sd-social-text .sd-content ul li a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:hover{color:#555;background:#fafafa;border:1px solid #999}.sd-social-icon .sd-content ul li a.sd-button:active,.sd-social-icon-text .sd-content ul li a.sd-button:active,.sd-social-official .sd-content>ul>li .digg_button>a:active,.sd-social-official .sd-content>ul>li>a.sd-button:active,.sd-social-text .sd-content ul li a.sd-button:active{box-shadow:inset 0 1px 0 rgba(0,0,0,.16)}.sd-content ul li a.sd-button:before{display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font:400 16px/1 Genericons;vertical-align:top;position:relative;top:3px;text-align:center}.sd-content ul li{margin:0!important;padding:0}.sd-content ul li.preview-item a.sd-button span,.sd-social-icon-text .sd-content ul li a span,.sd-social-official .sd-content ul li a.sd-button span{margin-left:3px}.sd-content ul li.preview-item.no-icon a.sd-button span{margin-left:0}.sd-content ul li.no-icon a:before,.sd-social-text .sd-content ul li a:before{display:none}body .sd-content ul li.share-custom.no-icon a span,body .sd-social-text .sd-content ul li.share-custom a span{background-image:none;background-position:-500px -500px!important;background-repeat:no-repeat!important;padding-left:0;height:0;line-height:inherit}.sd-social-icon .sd-content ul li a.share-more{position:relative;top:2px}.sd-social-icon .sd-content ul li a.share-more span{margin-left:3px}.sd-content ul li.share-print div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-print a:before,.sd-social-icon-text .sd-content li.share-print a:before,.sd-social-official .sd-content li.share-print a:before,.sd-social-text .sd-content ul li.share-print a:before{content:'\f469'}.sd-content ul li.share-email div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-email a:before,.sd-social-icon-text .sd-content li.share-email a:before,.sd-social-official .sd-content li.share-email a:before,.sd-social-text .sd-content ul li.share-email a:before{content:'\f410'}.sd-content ul li.share-linkedin div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-linkedin a:before,.sd-social-icon-text .sd-content li.share-linkedin a:before,.sd-social-text .sd-content ul li.share-linkedin a:before{content:'\f207'}.sd-content ul li.share-twitter div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-twitter a:before,.sd-social-icon-text .sd-content li.share-twitter a:before,.sd-social-text .sd-content ul li.share-twitter a:before{content:'\f202'}.sd-content ul li.share-reddit div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-reddit a:before,.sd-social-icon-text .sd-content li.share-reddit a:before,.sd-social-text .sd-content ul li.share-reddit a:before{content:'\f222'}.sd-content ul li.share-tumblr div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-tumblr a:before,.sd-social-icon-text .sd-content li.share-tumblr a:before,.sd-social-text .sd-content ul li.share-tumblr a:before{content:'\f214'}.sd-content ul li.share-pocket div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pocket a:before,.sd-social-icon-text .sd-content li.share-pocket a:before,.sd-social-text .sd-content ul li.share-pocket a:before{content:'\f224'}.sd-content ul li.share-skype div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-skype a:before,.sd-social-icon-text .sd-content li.share-skype a:before,.sd-social-text .sd-content ul li.share-skype a:before{content:'\f220'}.sd-content ul li.share-pinterest div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-pinterest a:before,.sd-social-icon-text .sd-content li.share-pinterest a:before,.sd-social-text .sd-content ul li.share-pinterest a:before{content:'\f209'}.sd-content ul li.share-google-plus-1 div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-google-plus-1 a:before,.sd-social-icon-text .sd-content li.share-google-plus-1 a:before,.sd-social-text .sd-content ul li.share-google-plus-1 a:before{content:'\f218'}.sd-content ul li.share-facebook div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-facebook a:before,.sd-social-icon-text .sd-content li.share-facebook a:before,.sd-social-text .sd-content ul li.share-facebook a:before{content:'\f204'}.sd-content ul li.share-press-this div.option.option-smart-off a:before,.sd-social-icon .sd-content ul li.share-press-this a:before,.sd-social-icon-text .sd-content li.share-press-this a:before,.sd-social-official .sd-content li.share-press-this a:before,.sd-social-text .sd-content ul li.share-press-this a:before{content:'\f205'}.sd-social-official .sd-content li.share-press-this a:before{color:#2ba1cb}.sd-content ul li.advanced a.share-more:before,.sd-social-icon .sd-content ul a.share-more:before,.sd-social-icon-text .sd-content a.share-more:before,.sd-social-official .sd-content a.share-more:before,.sd-social-text .sd-content ul a.share-more:before{content:'\f415'}.sd-social-official .sd-content a.share-more:before{color:#2ba1cb}.sd-social .sd-button .share-count{background:#2ea2cc;color:#fff;border-radius:10px;display:inline-block;text-align:center;font-size:10px;padding:1px 3px;line-height:1}.sd-social-official .sd-content ul,.sd-social-official .sd-content ul li{line-height:25px!important}.sd-social-official .sd-content>ul>li>a.sd-button span{line-height:1}.sd-social-official .sd-content ul:after{content:".";display:block;height:0;clear:both;visibility:hidden}.sd-social-official .sd-content li.share-press-this a{margin:0 0 5px}.sd-social-official .sd-content ul>li{display:block;float:left;margin:0 10px 5px 0!important;height:25px}.sd-social-official .fb-share-button>span{vertical-align:top!important}.sd-social-official .sd-content .pocket_button iframe{width:98px}.sd-social-official .sd-content .skypeShare{width:55px}.googleplus1_button .g-plus{vertical-align:top!important}.reddit_button iframe{margin-top:1px}.googleplus1_button iframe,.linkedin_button>span,.pinterest_button,.pocket_button iframe,.twitter_button{margin:0!important}body .sd-social-official li a.share-more,body .sd-social-official li.share-custom a,body .sd-social-official li.share-digg a,body .sd-social-official li.share-email a,body .sd-social-official li.share-press-this a,body .sd-social-official li.share-print{position:relative;top:0}body .sd-social-icon .sd-content li.share-custom>a{padding:2px 3px 0;position:relative;top:4px}body .sd-content ul li.share-custom a.share-icon span,body .sd-social-icon .sd-content li.share-custom a span,body .sd-social-icon-text .sd-content li.share-custom a span,body .sd-social-official .sd-content li.share-custom a span,body .sd-social-text .sd-content li.share-custom a span{background-size:16px 16px;background-repeat:no-repeat;margin-left:0;padding:0 0 0 19px;display:inline-block;height:16px;line-height:16px}body .sd-social-icon .sd-content li.share-custom a span{width:0}body .sd-social-icon .sd-content li.share-custom a span{padding-left:16px!important}.sharing-hidden .inner{position:absolute;z-index:2;border:1px solid #ccc;padding:10px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);border-radius:2px;margin-top:5px;max-width:400px}.sharing-hidden .inner ul{margin:0!important}.sd-social-official .sd-content .sharing-hidden ul>li.share-end{clear:both;margin:0;height:0}.sharing-hidden .inner:after,.sharing-hidden .inner:before{position:absolute;z-index:1;top:-8px;left:20px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #ccc;content:"";display:block}.sharing-hidden .inner:after{z-index:2;top:-7px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:8px solid #fff}.sharing-hidden ul{margin:0}.sd-social-icon .sd-content ul li[class*=share-] a,.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a{border-radius:50%;-webkit-border-radius:50%;border:0;box-shadow:none;padding:8px;position:relative;top:-2px;line-height:1;width:auto;height:auto;margin-bottom:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button>span,.sd-social-icon .sd-content ul li[class*=share-] div.option a span{line-height:1}.sd-social-icon .sd-content ul li[class*=share-] a:hover,.sd-social-icon .sd-content ul li[class*=share-] div.option a:hover{border:none;opacity:.6}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button:before{top:0}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button.share-custom{padding:8px 8px 6px;top:5px}.sd-social-icon .sd-content ul li a.sd-button.share-more{margin-left:10px}.sd-social-icon .sd-content ul li:first-child a.sd-button.share-more{margin-left:0}.sd-social-icon .sd-button span.share-count{position:absolute;bottom:0;right:0;border-radius:0;background:#555;font-size:9px}.sd-social-icon .sd-content ul li[class*=share-] a.sd-button{background:#e9e9e9;margin-top:2px;text-indent:0}.sd-social-icon .sd-content ul li[class*=share-].share-tumblr a.sd-button{background:#2c4762;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-facebook a.sd-button{background:#3b5998;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-twitter a.sd-button{background:#00acee;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pinterest a.sd-button{background:#ca1f27;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-digg a.sd-button{color:#555!important}.sd-social-icon .sd-content ul li[class*=share-].share-press-this a.sd-button{background:#1e8cbe;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-linkedin a.sd-button{background:#0077b5;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-google-plus-1 a.sd-button{background:#dd4b39;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-pocket a.sd-button{background:#ee4056;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-skype a.sd-button{background:#00AFF0;color:#fff!important}.sd-social-icon .sd-content ul li[class*=share-].share-reddit a.sd-button{background:#cee3f8;color:#555!important}.sharing-screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.sharing-screen-reader-text:active,.sharing-screen-reader-text:focus,.sharing-screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}#sharing_email{width:342px;position:absolute;z-index:1001;border:1px solid #ccc;padding:15px;background:#fff;box-shadow:0 5px 20px rgba(0,0,0,.2);text-align:left}div.sharedaddy.sharedaddy-dark #sharing_email{border-color:#fff}#sharing_email .errors{color:#fff;background-color:#771a09;font-size:12px;padding:5px 8px;line-height:1;margin:10px 0 0}#sharing_email label{font-size:12px;color:#333;font-weight:700;display:block;padding:0 0 4px;text-align:left;text-shadow:none}#sharing_email form{margin:0}#sharing_email input[type=email],#sharing_email input[type=text]{width:100%;box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;border:1px solid #ccc;margin-bottom:1em;background:#fff;font-size:12px;color:#333;max-width:none;padding:1px 3px}#jetpack-source_f_name{display:none!important;position:absolute!important;left:-9000px}#sharing_email .sharing_cancel{padding:0 0 0 1em;font-size:12px;text-shadow:none}#sharing_email .recaptcha{width:312px;height:123px;margin:0 0 1em}.slideshow-window{background-color:#222;border:20px solid #222;border-radius:10px;height:0;margin-bottom:20px;overflow:hidden;padding-top:30px!important;padding-bottom:56.25%!important;position:relative;z-index:1}.slideshow-window.slideshow-white{background-color:#fff;border-color:#fff}.slideshow-window,.slideshow-window *{-moz-box-sizing:content-box;box-sizing:content-box}.slideshow-loading{height:100%;text-align:center;margin:auto}body div.slideshow-window * img{background-color:transparent!important;background-image:none!important;border-width:0!important;display:block;margin:0 auto;max-width:100%;max-height:100%;padding:0!important;position:relative;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);top:50%}.slideshow-loading img{vertical-align:middle}.slideshow-slide{display:none;height:100%!important;left:0;margin:auto;position:absolute;text-align:center;top:0;width:100%!important}.slideshow-slide img{vertical-align:middle}.slideshow-line-height-hack{overflow:hidden;width:0;font-size:0}.slideshow-slide-caption{font-size:13px;font-family:"Helvetica Neue",sans-serif;color:#f7f7f7;text-shadow:#222 1px 1px 2px;line-height:25px;height:25px;position:absolute;bottom:5px;left:0;z-index:100;width:100%;text-align:center}.slideshow-controls{z-index:1000;position:absolute;bottom:30px;margin:auto;text-align:center;width:100%;-ms-filter:"alpha(Opacity=50)";opacity:.5;direction:ltr;transition:300ms opacity ease-out}.slideshow-window:hover .slideshow-controls{-ms-filter:"alpha(Opacity=100)";opacity:1}body div div.slideshow-controls a,body div div.slideshow-controls a:hover{border:2px solid rgba(255,255,255,.1)!important;background-color:#000!important;background-color:rgba(0,0,0,.6)!important;background-image:url(../modules/shortcodes/img/slideshow-controls.png)!important;background-repeat:no-repeat;background-size:142px 16px!important;background-position:-34px 8px!important;color:#222!important;margin:0 5px!important;padding:0!important;display:inline-block!important;zoom:1;height:32px!important;width:32px!important;line-height:32px!important;text-align:center!important;-khtml-border-radius:10em!important;border-radius:10em!important;transition:300ms border-color ease-out}@media only screen and (-webkit-min-device-pixel-ratio:1.5){body div div.slideshow-controls a,body div div.slideshow-controls a:hover{background-image:url(../modules/shortcodes/img/slideshow-controls-2x.png)!important}}body div div.slideshow-controls a:hover{border-color:rgba(255,255,255,1)!important}body div div.slideshow-controls a:first-child{background-position:-76px 8px!important}body div div.slideshow-controls a:last-child{background-position:-117px 8px!important}body div div.slideshow-controls a.running,body div div.slideshow-controls a:nth-child(2){background-position:-34px 8px!important}body div div.slideshow-controls a.paused{background-position:9px 8px!important}.slideshow-controls a img{border:50px dotted #f0f}body.presentation-wrapper-fullscreen-parent,html.presentation-wrapper-fullscreen-parent{overflow:hidden!important}.presentation-wrapper-fullscreen-parent #wpadminbar{display:none}.presentation-wrapper-fullscreen,.presentation-wrapper-fullscreen-parent{min-width:100%!important;min-height:100%!important;position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;margin:0!important;padding:0!important;z-index:10000!important}.presentation-wrapper-fullscreen{background-color:gray;border:none!important}.presentation-wrapper-fullscreen .nav-arrow-left,.presentation-wrapper-fullscreen .nav-arrow-right{z-index:20001}.presentation-wrapper-fullscreen .nav-fullscreen-button{z-index:20002}.presentation-wrapper{margin:20px auto;border:1px solid #e5e5e5;overflow:hidden;line-height:normal}.presentation{position:relative;margin:0;overflow:hidden;outline:0}.presentation,.presentation .step{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.presentation .step.fade:not(.active){opacity:0}.presentation .slide-content{padding:30px}.presentation .nav-arrow-left,.presentation .nav-arrow-right,.presentation .nav-fullscreen-button{position:absolute;width:34px;background-repeat:no-repeat;z-index:2;opacity:0;transition:opacity .25s}.presentation .nav-arrow-left,.presentation .nav-arrow-right{height:100%;background-image:url(../modules/shortcodes/images/slide-nav.png);background-size:450% 61px}.presentation .nav-arrow-left{left:0;background-position:4px 50%}.presentation .nav-arrow-right{right:0;background-position:-120px 50%}.presentation .nav-fullscreen-button{width:32px;height:32px;margin:4px;bottom:0;right:0;z-index:3;background-image:url(../modules/shortcodes/images/expand.png);background-size:100% 100%}.presentation:hover .nav-arrow-left,.presentation:hover .nav-arrow-right{opacity:1}.presentation:hover .nav-fullscreen-button{opacity:.8}.presentation-wrapper-fullscreen .nav-fullscreen-button{background-image:url(../modules/shortcodes/images/collapse.png)}.presentation .autoplay-overlay{height:15%;width:80%;margin:30% 10%;position:relative;z-index:100;display:table;border-radius:50px;background-color:#e5e5e5;background-color:rgba(0,0,0,.75);transition:opacity .5s}.presentation .autoplay-overlay .overlay-msg{position:relative;display:table-cell;text-align:center;vertical-align:middle;color:#fff}.presentation .will-fade{opacity:0}.presentation .do-fade{opacity:1;transition:opacity .5s}#subscribe-email input{width:95%;padding:1px 2px}.comment-subscription-form .subscribe-label{display:inline!important}.jetpack-video-wrapper{margin-bottom:1.6em}.jetpack-video-wrapper>.wp-video,.jetpack-video-wrapper>embed,.jetpack-video-wrapper>iframe,.jetpack-video-wrapper>object{margin-bottom:0}.jetpack-social-navigation ul{display:block;margin:0 0 1.5em;padding:0}.jetpack-social-navigation li{display:inline-block;margin:0;line-height:1}.jetpack-social-navigation a{border:0;height:1em;text-decoration:none;width:1em}.jetpack-social-navigation a:before{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:Genericons;font-size:1em;font-style:normal;font-weight:400;height:1em;line-height:1;speak:none;text-decoration:inherit;vertical-align:top;width:1em;content:"\f415"}.jetpack-social-navigation a[href*="codepen.io"]:before{content:"\f216"}.jetpack-social-navigation a[href*="digg.com"]:before{content:"\f221"}.jetpack-social-navigation a[href*="dribbble.com"]:before{content:"\f201"}.jetpack-social-navigation a[href*="dropbox.com"]:before{content:"\f225"}.jetpack-social-navigation a[href*="mailto:"]:before{content:"\f410"}.jetpack-social-navigation a[href*="facebook.com"]:before{content:"\f203"}.jetpack-social-navigation a[href*="flickr.com"]:before{content:"\f211"}.jetpack-social-navigation a[href*="foursquare.com"]:before{content:"\f226"}.jetpack-social-navigation a[href*="github.com"]:before{content:"\f200"}.jetpack-social-navigation a[href*="plus.google.com"]:before{content:"\f206"}.jetpack-social-navigation a[href*="instagram.com"]:before{content:"\f215"}.jetpack-social-navigation a[href*="linkedin.com"]:before{content:"\f208"}.jetpack-social-navigation a[href*="path.com"]:before{content:"\f219"}.jetpack-social-navigation a[href*="pinterest.com"]:before{content:"\f210"}.jetpack-social-navigation a[href*="getpocket.com"]:before{content:"\f224"}.jetpack-social-navigation a[href*="polldaddy.com"]:before{content:"\f217"}.jetpack-social-navigation a[href*="reddit.com"]:before{content:"\f222"}.jetpack-social-navigation a[href$="/feed/"]:before{content:"\f413"}.jetpack-social-navigation a[href*="skype:"]:before{content:"\f220"}.jetpack-social-navigation a[href*="spotify.com"]:before{content:"\f515"}.jetpack-social-navigation a[href*="stumbleupon.com"]:before{content:"\f223"}.jetpack-social-navigation a[href*="tumblr.com"]:before{content:"\f214"}.jetpack-social-navigation a[href*="twitch.tv"]:before{content:"\f516"}.jetpack-social-navigation a[href*="twitter.com"]:before{content:"\f202"}.jetpack-social-navigation a[href*="vimeo.com"]:before{content:"\f212"}.jetpack-social-navigation a[href*="vine.co"]:before{content:"\f517"}.jetpack-social-navigation a[href*="wordpress.com"]:before,.jetpack-social-navigation a[href*="wordpress.org"]:before{content:"\f205"}.jetpack-social-navigation a[href*="youtube.com"]:before{content:"\f213"}.tiled-gallery{clear:both;margin:0 0 20px;overflow:hidden}.tiled-gallery img{margin:2px!important}.tiled-gallery .gallery-group{float:left;position:relative}.tiled-gallery .tiled-gallery-item{float:left;margin:0;position:relative;width:inherit}.tiled-gallery .gallery-row{overflow:hidden}.tiled-gallery .tiled-gallery-item a{background:0 0;border:none;color:inherit;margin:0;padding:0;text-decoration:none;width:auto}.tiled-gallery .tiled-gallery-item img,.tiled-gallery .tiled-gallery-item img:hover{background:0 0;border:none;box-shadow:none;max-width:100%;padding:0;vertical-align:middle}.tiled-gallery-caption{background:#eee;background:rgba(255,255,255,.8);color:#333;font-size:13px;font-weight:400;overflow:hidden;padding:10px 0;position:absolute;bottom:0;text-indent:10px;text-overflow:ellipsis;width:100%;white-space:nowrap}.tiled-gallery .tiled-gallery-item-small .tiled-gallery-caption{font-size:11px}.widget-gallery .tiled-gallery-unresized{visibility:hidden;height:0;overflow:hidden}.tiled-gallery .tiled-gallery-item img.grayscale{position:absolute;left:0;top:0}.tiled-gallery .tiled-gallery-item img.grayscale:hover{opacity:0}.tiled-gallery.type-circle .tiled-gallery-item img{border-radius:50%!important}.tiled-gallery.type-circle .tiled-gallery-caption{display:none;opacity:0}.jetpack-display-remote-posts{margin:5px 0 20px}.jetpack-display-remote-posts h4{font-size:90%;margin:5px 0;padding:0}.jetpack-display-remote-posts h4 a{text-decoration:none}.jetpack-display-remote-posts p{margin:0!important;padding:0;line-height:1.4em!important;font-size:90%}.jetpack-display-remote-posts img{max-width:100%}.widget-grofile h4{margin:1em 0 .5em}.widget-grofile ul.grofile-urls{margin-left:0;overflow:hidden}.widget-grofile ul.grofile-accounts li{list-style:none;display:inline}.widget-grofile ul.grofile-accounts li::before{content:""!important}.widget-grofile .grofile-accounts-logo{background-image:url(//0.gravatar.com/images/grav-share-sprite.png);background-repeat:no-repeat;width:16px;height:16px;float:left;margin-right:8px;margin-bottom:8px}.rtl .widget-grofile .grofile-accounts-logo{margin-left:8px;margin-right:0}.grofile-thumbnail{width:500px;max-width:100%}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (min--moz-device-pixel-ratio:1.5),only screen and (min-device-pixel-ratio:1.5){.widget-grofile .grofile-accounts-logo{background-image:url(//0.gravatar.com/images/grav-share-sprite-2x.png);background-size:16px 784px}}div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding:10px 5px;background-color:#FFF;color:#000}div[class^=gr_custom_container] a{color:#000}h2[class^=gr_custom_header]{display:none}div[class^=gr_custom_each_container]{width:100%;clear:both;margin-bottom:10px;overflow:auto;padding-bottom:4px;border-bottom:1px solid #aaa}div[class^=gr_custom_book_container]{float:right;overflow:hidden;height:60px;margin-left:4px;width:39px}div[class^=gr_custom_author]{font-size:10px}div[class^=gr_custom_tags]{font-size:10px;color:gray}div[class^=gr_custom_rating]{display:none}.widget_wpcom_social_media_icons_widget ul{list-style-type:none;margin-left:0}.widget_wpcom_social_media_icons_widget li{border:0;display:inline;margin-right:.5em}.widget_wpcom_social_media_icons_widget li a{border:0;text-decoration:none}.widget_wpcom_social_media_icons_widget .genericon{font-family:Genericons}.widget_wpcom_social_media_icons_widget .screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}.widget_wpcom_social_media_icons_widget .screen-reader-text:active,.widget_wpcom_social_media_icons_widget .screen-reader-text:focus,.widget_wpcom_social_media_icons_widget .screen-reader-text:hover{background-color:#f1f1f1;border-radius:3px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:#21759b;display:block;font-size:14px;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}.widgets-grid-layout{width:100%}.widgets-grid-layout:after,.widgets-grid-layout:before{content:" ";display:table}.widgets-grid-layout:after{clear:both}.widget-grid-view-image{float:left;max-width:50%}.widget-grid-view-image a{display:block;margin:0 2px 4px 0}.widget-grid-view-image:image:nth-child(even){float:right}.widget-grid-view-image:nth-child(even) a{margin:0 0 4px 2px}.widgets-grid-layout .widget-grid-view-image img{max-width:100%;height:auto}.widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widgets-list-layout{padding:0;margin:0;list-style-type:none}.widgets-list-layout li:after,.widgets-list-layout li:before{content:"";display:table}.widgets-list-layout li:after{clear:both}.widgets-list-layout li{zoom:1;margin-bottom:1em;list-style-type:none!important}.widgets-list-layout .widgets-list-layout-blavatar{float:left;width:21.276596%;max-width:40px;height:auto}.widgets-list-layout-links{float:right;width:73.404255%}.widgets-list-layout span{opacity:.5}.widgets-list-layout span:hover{opacity:.8}plugins/jetpack/css/jp-benefits.css.map0000755000312500031250000000011412651056012020537 0ustar eacbforgeacbforg{"version":3,"sources":[],"names":[],"mappings":"","file":"jp-benefits.css"}plugins/jetpack/css/jetpack-admin-jitm.css0000644000312500031250000000510712651056012021231 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ .jp-jitm { border-radius: 2px; max-width: 100%; margin: 2em auto 1em auto; padding: .85em; background: #fcfcfc; border: 1px solid #dedede; text-align: center; } .jp-jitm:before, .jp-jitm:after { content: ""; display: table; } .jp-jitm:after { clear: both; } #screen-meta-links + .jp-jitm { margin: 3em 1.5385em 0 auto; } .jp-jitm .activate { margin-top: .5em; } .jp-jitm .jp-emblem { width: 25px; height: 25px; margin: .40em 1em 0 auto; } .jp-jitm svg { width: 100%; height: 100%; } .jp-jitm path { fill: #8cc258; } .jp-jitm .dismiss { margin: 0; text-decoration: none; float: right; } .jp-jitm .dismiss:before { color: #666; font: 400 15px/1 dashicons; content: '\f158'; } .jp-jitm p { font-size: 1em; line-height: 165%; } .jp-jitm .j-spinner { margin: 8px 0 0; height: 17px; width: 17px; } .jp-jitm .hide { display: none; } form[name=post] > .jp-jitm:first-of-type { margin-top: 1em; } @media (min-width: 800px) { .jp-jitm .jp-emblem, .jp-jitm p { float: left; /* margin: .5em 1em 0 .5em; padding-top: 4px; */ } .jp-jitm .jp-emblem { width: 20px; height: 20px; margin-right: .5em; } .jp-jitm p { margin: .40em 1em 0 0; } .jp-jitm p + p { margin: 0; padding: 0; } .jp-jitm .activate { margin-top: 0; } } @media (max-width: 1100px) { .jp-jitm { margin: 2.5em .75em .5em .5em; } form[name=post] > .jp-jitm:first-of-type { margin-left: auto; margin-right: auto; } } @media (max-width: 800px) { .jp-jitm .jp-emblem { margin: .40em auto 0 auto; } } @media (min-width: 1100px) { .update-core-php .jp-jitm { margin: 3em 2em 0 auto; } } .jetpack-connected .media-modal-content .uploader-inline-content { top: 20%; } @media only screen and (min-width: 800px) { .media-menu .jp-jitm { margin: 10px 0; padding: 5px 5px 15px; border-width: 1px 0; } .media-menu .jp-jitm .jp-emblem { margin: 20px 10px 0 15px; } .media-menu .jp-jitm .msg { width: 75%; text-align: left; margin: 0 0 10px; } .media-menu .jp-jitm .msg + p { text-align: center; width: 100%; } } @media only screen and (max-width: 900px) { .media-menu .jp-jitm { display: none; margin: .5em 3%; border-width: 1px; } .media-menu .jp-jitm .msg { margin-top: 20px; width: 88%; margin-left: auto; margin-right: auto; } .media-menu.visible .jp-jitm { display: block; } } /*# sourceMappingURL=jetpack-admin-jitm.css.map */plugins/jetpack/css/dashboard-widget.min.css.map0000755000312500031250000000157312651056012022335 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/templates/_dashboard-widget.scss","../scss/_utilities/mixins/_button.scss"],"names":[],"mappings":"AAEC,0BACC,2BAAA,CAGD,qBAAA,CAAA,+BACC,SACA,CAAA,SACA,CAAA,qEAGD,CAAA,sGAGC,cAGD,CAAA,sCACC,mBACA,CAAA,iBAEA,CAAA,iDACC,kBAGD,CAAA,0CACC,WACA,CAAA,WACA,CAAA,+CACC,aAIF,CAAA,oIAGC,WAGD,CAAA,yCACC,iBACA,CAAA,eAGD,CAAA,wCACC,WACA,CAAA,YACA,CAAA,cAGD,CAAA,+CACC,kBACA,CAAA,qBACA,CAAA,qDACC,cACA,CAAA,uDACC,WAMJ,CAAA,uCCxDA,mBACA,CAAA,oBACA,CAAA,UACA,CAAA,yDAEA,CAAA,2FAEC,mBACA,CAAA,oBACA,CAAA,UACA,CAAA,gCAGD,CAAA,6CACC,oFAKD,CAAA,8CACC,mBACA,CAAA,oBACA,CAAA,UACA,CAAA,kGAKD,CAAA,mNAIC,yBACA,CAAA,6BACA,CAAA,+BACA,CAAA,2BDyBD,CAAA,8BACC,mBACA,CAAA,aACA,CAAA,eACA,CAAA,yBAEA,CAAA,+EAEC,UACA,CAAA,UACA,CAAA,eAGD,CAAA,iCACC,gBACA,CAAA,kBACA,CAAA,QACA,CAAA,SAGD,CAAA,gCACC,SACA,CAAA,SAGD,CAAA,sCACC,SACA,CAAA,SACA,CAAA,iBAAkB,CAAA","file":"dashboard-widget.min.css"}plugins/jetpack/css/jetpack-icons.min.css0000644000312500031250000000167712651056012021105 0ustar eacbforgeacbforg@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.eot");src:url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/jetpack/jetpack.woff") format("woff"),url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"),url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio: 0){@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg")}}li.toplevel_page_jetpack .wp-menu-image:before{font-family:'jetpack' !important;content:'\f102'}#menu-posts-feedback .wp-menu-image:before{font-family:dashicons !important;content:'\f175'}#adminmenu #menu-posts-feedback div.wp-menu-image{background:none !important;background-repeat:no-repeat}@media (max-width: 900px){.auto-fold #adminmenu a.toplevel_page_jetpack{height:auto}} /*# sourceMappingURL=jetpack-icons.min.css.map */plugins/jetpack/css/jetpack-admin-rtl.min.css0000644000312500031250000014602012651056012021651 0ustar eacbforgeacbforg.j-row{width:100%;margin:0 auto}.j-row:before,.j-row:after{content:" ";display:table}.j-row:after{clear:both}.j-col{padding:0.85em;width:100%;float:right;position:relative}@media only screen{.j-sm-1{width:8.33333%}.j-sm-2{width:16.66667%}.j-sm-3{width:25%}.j-sm-4{width:33.33333%}.j-sm-5{width:41.66667%}.j-sm-6{width:50%}.j-sm-7{width:58.33333%}.j-sm-8{width:66.66667%}.j-sm-9{width:75%}.j-sm-10{width:83.33333%}.j-sm-11{width:91.66667%}.j-sm-12{width:100%}}@media (min-width: 530px){.j-md-1{width:8.33333%}.j-md-2{width:16.66667%}.j-md-3{width:25%}.j-md-4{width:33.33333%}.j-md-5{width:41.66667%}.j-md-6{width:50%}.j-md-7{width:58.33333%}.j-md-8{width:66.66667%}.j-md-9{width:75%}.j-md-10{width:83.33333%}.j-md-11{width:91.66667%}.j-md-12{width:100%}}@media (min-width: 782px){.j-lrg-1{width:8.33333%}.j-lrg-2{width:16.66667%}.j-lrg-3{width:25%}.j-lrg-4{width:33.33333%}.j-lrg-5{width:41.66667%}.j-lrg-6{width:50%}.j-lrg-7{width:58.33333%}.j-lrg-8{width:66.66667%}.j-lrg-9{width:75%}.j-lrg-10{width:83.33333%}.j-lrg-11{width:91.66667%}.j-lrg-12{width:100%}}body,button,input,select,textarea{color:#222;font-family:"Open Sans",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.4;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{color:#222;clear:both}a{color:#0d72b2;transition:color .2s;text-decoration:none}a:visited{color:#0d72b2}a:hover{color:#0f92e5}a:focus{outline:thin dotted}address{margin:0 0 1.5em}abbr[title],acronym{cursor:help}ins{background:#eee;text-decoration:none}dt{font-weight:700}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}img{vertical-align:middle}@-webkit-keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "grow"{0%{-webkit-transform:scale(0.3);transform:scale(0.3)}60%{-webkit-transform:scale(1.15);transform:scale(1.15)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes "candy"{0%{-webkit-transform:scale(1);transform:scale(1)}20%{-webkit-transform:scale(1.15);transform:scale(1.15)}60%{-webkit-transform:scale(0.95);transform:scale(0.95)}100%{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}@keyframes "flyer"{0%{-webkit-transform:translate3d(0px, 0px, 0px);transform:translate3d(0px, 0px, 0px)}100%{-webkit-transform:translate3d(680px, -680px, 0px);transform:translate3d(680px, -680px, 0px)}}.button,.download-jetpack{transition:all .1s ease-in-out}.jp-button,.jp-button--settings{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#efefef;font:800 0.9285714286em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476;border-radius:3px}.jp-button:visited,.jp-button--settings:visited{color:#efefef}.jp-button:hover,.jp-button--settings:hover,.jp-button:focus,.jp-button--settings:focus{color:#fff;background:#57972d}.jp-button:active,.jp-button--settings:active{background:#57972d;opacity:0.8}.jp-button--settings{background:#93b45f;color:#e8eedf}.jp-button--settings:visited{color:#e8eedf}.jp-button--settings:hover,.jp-button--settings:focus{background:#9fbd72;color:#fff}.jp-button--settings.current{background:#3c6621;color:#fff;box-shadow:inset 0 2px 0 #365A1F, inset 0 1px 3px #3c6621}.download-jetpack{display:inline-block;position:relative;padding:0.64286em 0.85714em 0.53571em;color:#fff;font:400 20px/1 "proxima-nova", 'Open Sans', Helvetica, sans-serif;background:#518d2a;z-index:3;border-radius:6px;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:visited{color:#fff}.download-jetpack:hover,.download-jetpack:focus{color:#fff;background:#57972d;box-shadow:0 6px 0 #3e6c20,0 6px 3px rgba(0,0,0,0.4)}.download-jetpack:active{top:6px;box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.4)}.download-jetpack:active:after{top:-6px}.download-jetpack:before{content:'';display:inline-block;position:relative;top:-2px;margin-left:13px;width:30px;height:30px;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%}.download-jetpack:after{content:'';position:absolute;top:0;right:0;width:100%;height:100%}@media (max-width: 1147px){.download-jetpack{font-size:1.28571em}.download-jetpack:before{top:-1px;width:23px;height:23px}}@media (max-width: 900px){.download-jetpack:active{top:0}}@media (max-width: 530px){.download-jetpack{font-size:1.21429em;font-weight:600}.download-jetpack:before{width:19px;height:19px;margin-left:9px}}#searchsubmit{display:inline-block;border:none;position:relative;padding:0.71429em 1.5em;color:#efefef;font:800 0.8em/1 'Open Sans', Helvetica, sans-serif;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476;outline:none;border-radius:3px}#searchsubmit:visited{color:#efefef}#searchsubmit:hover,#searchsubmit:focus{color:#fff;background:#2aa0d5}#searchsubmit:active{opacity:0.7}@font-face{font-family:'automatticons';src:url("../_inc/fonts/automatticons/automatticons.eot");src:url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/automatticons/automatticons.woff") format("woff"),url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"),url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg");font-weight:normal;font-style:normal}@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.eot");src:url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"),url("../_inc/fonts/jetpack/jetpack.woff") format("woff"),url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"),url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg");font-weight:normal;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio: 0){@font-face{font-family:"jetpack";src:url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg")}}.nav-horizontal a{display:inline-block}.nav-horizontal li{position:relative;float:right}.nav-horizontal ul{margin:0;padding:0}*,*:before,*:after{-moz-box-sizing:border-box;box-sizing:border-box}::-moz-selection{background:#91bd51;color:#fff;text-shadow:none}::selection{background:#91bd51;color:#fff;text-shadow:none}#wpbody-content{padding-bottom:0}#wpcontent{margin-right:160px;padding:0}ul#adminmenu a.toplevel_page_jetpack:after{border-left-color:#81a844}.folded #wpcontent{margin-right:36px}.jp-content{background:#f9f9f9;margin:0;height:auto;min-height:100%;width:100%;width:100%;-webkit-font-smoothing:antialiased}.jp-content .wrapper{background:#f9f9f9}@media (max-width: 900px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-right:36px;padding-right:0}}@media (max-width: 782px){#wpcontent,.auto-fold #wpcontent,.auto-fold #wpfooter,.modal,.configure .frame.top.fixed{margin-right:0}}@media (max-width: 782px){.configure .frame.top.fixed{padding-right:0}}.wrap.inner,.page-content{max-width:950px;margin:0 auto}.wrap.inner li,.page-content li{line-height:23px}@media (max-width: 530px){.page-content{margin-top:0}}@media (max-width: 1147px){.wrap.inner{background:#f9f9f9;padding:15px}}@media (max-width: 530px){.wrap.inner{margin-top:1.71429em}}.jetpack_page_jetpack_modules .header-nav{margin:0}.jetpack_page_jetpack_modules .page-content{max-width:1200px;min-height:500px;margin:0}.page-content.about{position:relative;z-index:10}@media (max-width: 1147px){.page-content.about{background:#f9f9f9;padding:15px}}@media (max-width: 1147px){.page-content.configure{background:#f9f9f9}}.footer nav{max-width:550px;margin:0 auto}.header{right:0;left:0;background:#81a844}.header-nav li{line-height:60px}.header-nav a{padding:0 0.71429em;line-height:24px}.header-nav .jetpack-logo a{display:inline-block;position:relative;width:214px;margin-left:6px;background:url(../images/jetpack-logo.png) center center no-repeat;background:url(../images/jetpack-logo.svg) center center no-repeat,none;background-size:183px auto;color:#fff;line-height:60px;font-weight:normal}.header-nav .jetpack-logo a span{text-indent:-9999px;visibility:hidden}.header-nav .jetpack-logo a:before{content:'';position:absolute;top:0;right:0;width:100%;height:100%;background-size:183px 32px}.header-nav .jetpack-modules+.jetpack-modules{margin-right:15px}.main-nav{float:right}.main-nav li{margin:0}@media (max-width: 900px){.main-nav{font-size:13px}}.user-nav{float:left}.user-nav li{margin:0}.jetpack-pagestyles #screen-meta{margin:0}.jetpack-pagestyles #screen-meta-links .screen-meta-toggle{z-index:2}.jetpack-pagestyles #screen-options-link-wrap,.jetpack-pagestyles #contextual-help-link-wrap{border:none}.jetpack-pagestyles .update-nag{display:none}.masthead{position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #8eb74e)}.masthead.hasbutton .flyer{bottom:-270px}.masthead.hasbutton .subhead{margin-top:175px}@media (max-width: 530px){.masthead.hasbutton .subhead{margin-top:105px;padding:0}}.masthead h1,.masthead h2{margin:0 auto}.masthead h1{padding:2.5em 0 1.11111em;max-width:21.94444em;color:#fff;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;text-shadow:0 -1px 1px rgba(0,0,0,0.12);z-index:3}.masthead h1+.flyby{margin-top:180px}@media (max-width: 1147px){.masthead h1{padding-top:1.83333em;font-size:2.14286em}}@media (max-width: 782px){.masthead h1{max-width:600px;font-size:28px}}@media (max-width: 530px){.masthead h1{margin:0 15px;padding:31px 0 15px 0;font-size:21px;font-weight:400}}.jetpack-connected .masthead h1{margin-bottom:33px;max-width:600px}.flyer{position:absolute;bottom:-200px;right:4%;z-index:1;-webkit-animation:flyer 3.4s 2s ease-in-out;animation:flyer 3.4s 2s ease-in-out}.flyer:nth-child(2){right:49%;width:120px;height:131px;-webkit-animation-delay:4.6s;animation-delay:4.6s;-webkit-animation-duration:2.4s;animation-duration:2.4s}.flyer:nth-child(3){right:23%;width:60px;height:66px;-webkit-animation-delay:5.8s;animation-delay:5.8s;-webkit-animation-duration:4.5s;animation-duration:4.5s}.subhead{position:relative;margin-top:105px;padding:4em 0;background:#f9f9f9;z-index:2}.subhead h2{max-width:460px;color:#5d6d74;font:400 1.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 900px){.subhead h2{max-width:428px;font-size:20px}}@media (max-width: 530px){.subhead h2{display:none}}.subhead:after{content:'';position:absolute;bottom:100%;right:0;margin-bottom:-1px;width:100%;height:228px;background:url("../images/the-cloud.svg") center bottom repeat-x;pointer-events:none;z-index:-1}@media (max-width: 1147px){.subhead{margin-top:122px;padding:70px 0 49px}.subhead:after{background-size:160% auto}}@media (max-width: 900px){.subhead{margin-top:122px;padding:70px 0 49px}}@media (max-width: 530px){.subhead{margin-top:83px;padding:47px 15px 39px}}.clouds-sm{height:100px;position:relative;text-align:center;z-index:1;background-color:#81a844;background-image:linear-gradient(top, #81a844, #89b348)}.clouds-sm:after{content:'';position:absolute;bottom:0;right:0;margin-bottom:-1px;width:100%;height:137px;background:url("../images/the-cloud-sm.svg") center bottom repeat-x;pointer-events:none;z-index:2}@media (max-width: 530px){.clouds-sm{height:90px}}.featured{border-top:1px solid #d6d6d6;border-bottom:1px solid #d6d6d6;background:#fff;position:relative;padding:2.0em 1em 4.6em 1em;text-align:center;z-index:1}.featured:before{content:"";display:block;position:absolute;top:0;height:100%;z-index:-1}.featured .features,.featured .modules{margin:0 auto;display:inline-block}@media (max-width: 530px){.featured{display:none}}.featured h2,.module-grid h2{margin-top:1em;color:#5d6d74;font:300 2em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-align:center}@media (max-width: 900px){.featured h2,.module-grid h2{font-size:30px}}@media (max-width: 782px){.featured h2,.module-grid h2{font-size:28px}}.features,.modules{margin:0 -5px}.feature,.module{position:relative;float:right;margin:0 5px 10px;width:310px;transition:all .2s ease-in-out}@media (max-width: 1147px){.feature,.module{margin:.75% 1.5% .75% 0;width:32.333333%;transition:none}.feature:nth-child(3n+1),.module:nth-child(3n+1){margin-right:0}.feature:hover,.module:hover{top:0;box-shadow:none}}.feature{-webkit-transform:translateZ(0);transform:translateZ(0)}.feature h3{margin:0 0 0.58824em;color:#697b84;font-size:1.21429em;line-height:1em;font-weight:800}.feature p{margin:0;color:#6e818a}.feature:before{content:'';position:absolute;bottom:0;right:0;width:100%;height:10px;background:rgba(0,0,0,0.02);z-index:-1;-webkit-transform:translateZ(0);transform:translateZ(0);transition:all .2s ease-in-out}.feature:hover{-webkit-transform:translateY(-5px);-ms-transform:translateY(-5px);transform:translateY(-5px)}.feature:hover h3{color:#1a8dba}.feature:hover .feature-img{border:1px solid #ccc;border-bottom:none}.feature:hover .no-border{border:none}.feature:hover:before{-webkit-transform:translateY(5px);-ms-transform:translateY(5px);transform:translateY(5px)}@media (max-width: 1147px){.feature:hover h3{color:#6e818a}.feature:hover .feature-img{border:1px solid #ddd;border-bottom:none}.feature:hover .no-border{border:none}}.feature .feature-img{padding-top:52%;width:100%;height:auto;border:1px solid #ddd;border-bottom:none}.feature .feature-img.custom-css{background:url("../images/custom-css.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.custom-css{background-image:url("../images/custom-css@2x.jpg")}}.feature .feature-img.wordpress-connect{background:url("../images/wordpress-connect.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-connect{background-image:url("../images/wordpress-connect@2x.jpg")}}.feature .feature-img.wordpress-stats{background:url("../images/wordpress-stats.jpg") no-repeat;background-size:100% auto}@media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi){.feature .feature-img.wordpress-stats{background-image:url("../images/wordpress-stats@2x.jpg")}}.feature .feature-img.no-border{border:none;padding-bottom:1px}.feature-description{display:block;padding:1em 1.07143em 1.07143em;border:1px solid #ddd;background:#f5f5f5}.feature:hover .feature-description{background:#fff;border-color:#ccc}@media (max-width: 1147px){.feature:hover .feature-description{border:1px solid #ddd;background:#f5f5f5}}@media (max-width: 900px){.feature-description{min-height:115px}}.cat{clear:both;margin-bottom:23px}.cat h3{font-size:24px;font-weight:300;margin:0 6px 13px 0;text-align:right}.cat .clear{clear:both}.module-grid{text-align:center}.module-grid h2{margin:1em 0}@media (max-width: 530px){.module-grid h2{padding-top:16px;margin-top:0;font-size:25px}}#module-search{position:relative;width:100%;max-width:40.71429em;margin:0 auto 1.07143em;overflow:hidden}#jetpack-search{margin:0;padding:11px 16px 11px 16px;width:100%;border:1px solid #c9ced0;border-radius:3px;background:#fff;color:#5c6671;line-height:1.3}#jetpack-search:focus{color:#5c6671;outline:none}#jetpack-search:focus+label{background:transparent;opacity:0}#jetpack-search::-webkit-input-placeholder{color:#a8acae}#jetpack-search :-moz-placeholder{color:#a8acae}#jetpack-search::-moz-placeholder{color:#a8acae}#jetpack-search:-ms-input-placeholder{color:#a8acae}#jetpack-search+label{position:absolute;top:1px;left:1px;bottom:1px;width:48px;color:#abafb1;text-indent:-9999px;pointer-events:none;border-radius:3px;transition:all .2s ease-in-out}#jetpack-search+label:after{content:'\f400';position:absolute;left:11px;text-align:left;top:4px;font-size:1.71429em;font-weight:normal;font-family:"genericons"}.jp-filter{margin-bottom:2.85714em;color:#6f7476}.jp-filter a{display:inline-block;position:relative;padding:0.76923em 1.46154em;color:#aaa;font:600 0.92857em/1 "Open Sans", Helvetica, Arial, sans-serif;text-shadow:0 -1px 1px rgba(255,255,255,0.2);background:#eee;border-radius:3px;background-clip:padding-box}.jp-filter a.selected,.jp-filter a:hover,.jp-filter a:focus{color:#efefef;text-shadow:0 -1px 1px rgba(0,0,0,0.2);background:#6f7476}@media (max-width: 530px){.jp-filter a{padding:0.76em 1em}}.module{display:block;padding:0.71429em 1.07143em 1em;text-align:right;border:1px solid #dae0e2;background:#fff;box-shadow:0 0 0 rgba(0,0,0,0.03);transition:opacity 2s ease-in}.module:hover{border-color:#8ac9e8;background:#f8fcfe}.module h3{cursor:pointer;margin:0 0 0.5em;color:#1a8dba;font-size:1.14286em;line-height:1.4em;font-weight:700}.module p{margin:0;color:#686f72;font-size:0.85714em}.module:hover,.module:focus{border-color:#8ac9e8;background:#f8fcfe}.module.active{border-color:#2ea2cc;box-shadow:inset -4px 0 0 #2ea2cc}.module.active:hover{border-color:#69bedd;box-shadow:inset -4px 0 0 #69bedd}.module .button,.module .button-primary{margin-top:15px}@media (max-width: 530px){.module .configure,.module .activate{display:block;width:100%;text-align:center}.module .button,.module .button-primary{width:50%}.module .button-primary{line-height:normal;padding:6px 14px;height:auto;font-size:14px}}@media screen and (max-width: 450px){.module .button,.module .button-primary{margin:20px auto 0 auto}.module .button.alignright,.module .button-primary.alignright{float:none}}@media (max-width: 1147px){.cat .module:nth-child(3n+1){margin:.75% 1.5% .75% 0}.cat .module:nth-child(3n - 1){margin-right:0}}@media (max-width: 900px){.cat .module{margin:1% 2% 1% 0}.cat .module:nth-child(2n+1){margin:1% 2% 1% 0}.cat .module:nth-child(2n+0){margin-right:0}}@media (max-width: 530px){.cat .module{margin:5px 0}.cat .module:nth-child(2n+1){margin-right:0}.cat .module:nth-child(2n+0){margin-right:0}}@media (max-width: 900px){.module{margin:1% 2% 1% 0;width:49%}.module:nth-child(3n+1){margin-right:2%}.module:nth-child(2n+1){margin-right:0}}@media (max-width: 530px){.module{margin:5px 0;width:100%}.module:nth-child(3n+1){margin-right:0}.module:nth-child(2n+1){margin-right:0}}.new{position:relative}.new:after{content:'NEW';position:absolute;top:-8px;left:-8px;padding-top:10px;width:32px;height:32px;color:#fff;font-size:8px;font-weight:800;text-align:center;text-shadow:0 1px 0 rgba(0,0,0,0.2);background:url("../images/new-badge.svg") center center no-repeat;background-size:100%;border-radius:50%}.paid{display:inline-block;position:relative;top:5px;margin-right:10px;padding:1px 4px 0 6px;height:13px;color:#fff;font:700 10px/1 "Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 1px 0 rgba(0,0,0,0.05);background:#d0d0d0;vertical-align:top}.paid:before,.paid:after{position:absolute;top:0;left:100%;font:normal 14px/14px "genericons"}.paid:before{content:'\f503';color:#d0d0d0;text-shadow:none}.paid:after{content:'\f428';margin-left:-5px;font-size:11px}.rtl .paid:before{content:'\f501'}.load-more{margin:2.71429em 0 6.15385em}.set{display:none}.show.set{display:block}.loading{bottom:50%;position:absolute;top:50%;width:100%}.loading span{color:#999}.modal{background:#fff;position:fixed;top:52px;bottom:20px;left:20px;right:20px;margin-right:160px;display:none;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1);z-index:500}.modal .close{position:absolute;top:0;left:0;font:300 1.71429em "genericons" !important;color:#777;content:'\f405';display:inline-block;padding:0.28571em 0.71429em 0.42857em;z-index:5}.modal .close:hover{background:#eee;opacity:0.8}.modal .close:active{background:#eee;opacity:0.4}.modal #jp-post-flair{display:none}.modal .content-container{position:absolute;top:0;left:0;bottom:0;right:0;overflow:auto;padding:2.14286em}.modal .content{margin:0 auto;max-width:900px;text-align:right}.modal h2{text-align:right;margin-top:0;color:#5d6d74;font:300 32px "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.modal h2{font-size:26px}}.modal h5{clear:right}.modal p{font-size:1.23077em}.modal footer{position:absolute;right:0;bottom:0;width:100%;padding:12px 20px;border-top:1px solid #ddd;background:#fff;text-align:left}.modal footer ul{margin:0}.modal footer li{display:inline-block;margin:0}.modal .button-secondary,.modal .button-primary:active{vertical-align:baseline}@media (max-width: 900px){.modal{bottom:5%;margin-right:36px;font-size:80%}.modal .content{top:38px}}@media (max-width: 782px){.modal{top:66px;margin-right:0}}@media (max-width: 600px){.modal{top:10px;left:10px;bottom:10px;right:10px}}.jp-info-img{float:left;margin:0 30px 30px 0}.jp-info-img img{border:1px solid #ddd;max-width:100%;height:auto}.jp-info-img img:first-child{margin-top:0}@media (max-width: 782px){.jp-info-img{float:none;margin:0 0 15px}}.content-container.modal-footer{bottom:53px}.shade{background:#000;bottom:0;cursor:pointer;display:none;right:0;opacity:0.2;position:fixed;left:0;top:0;z-index:11}.entry-title,.page-template-default h1{margin-top:0.61111em;color:#5d6d74;font:300 2.57143em/1.4em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.entry-title,.page-template-default h1{font-size:2em}}.blog h3,.single h3,.page-template-default h2{margin-top:0.61111em;color:#5d6d74;font:300 1.9em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;text-shadow:0 -1px 1px #fff}@media (max-width: 530px){.blog h3,.single h3,.page-template-default h2{font-size:1.4em}}.page-template-default p{line-height:1.71429em}.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{float:right;width:70%}.footer{margin-top:1.42857em;position:relative;padding:10em 0 4.28571em;text-align:center}.footer:before,.footer:after{content:'';position:absolute;right:0;pointer-events:none}.footer:before{top:0;margin-top:-1px;width:100%;height:195px}.footer:after{display:none}.footer .download-jetpack{margin-bottom:33px}@media (min-width: 1147px){.footer{padding-bottom:35px}}@media (max-width: 1147px){.footer{padding-top:165px;padding-bottom:0}.footer:before{background-size:160% auto}.footer ul{float:none;overflow:hidden}}@media (max-width: 900px){.footer{padding-top:146px}}@media (max-width: 782px){.footer{margin-top:0}}@media (max-width: 530px){.footer{margin-top:0;padding-top:135px}}@media (max-width: 320px){.footer{padding-top:76px}}.footer nav{max-width:100%}.footer nav a,.footer nav a:visited{padding:4px 6px;color:#999}.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81A844}@media (max-width: 1147px){.footer nav a:hover,.footer nav a:focus,.footer nav a:visited:hover,.footer nav a:visited:focus{color:#81a844}}@media (max-width: 530px){.footer nav li{display:block;float:none;margin:0;text-align:right}.footer nav a{display:block;padding:0 16px;line-height:44px}}.primary{padding:25px 15px 10px 15px;border-bottom:1px solid #eee}.secondary-footer{margin:0 auto}.secondary-footer li{margin-left:5px}@media (min-width: 782px){.secondary-footer{padding:8px 15px 10px;margin-bottom:30px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary-footer{margin-bottom:0}}@media (max-width: 782px){.secondary-footer{padding:8px 15px 8px;border-bottom:none}}@media (max-width: 530px){.secondary-footer{margin:0;padding:0;border:none;font-weight:400}.secondary-footer a{border-top:1px solid #eee}}.footer .a8c-attribution{margin:0;padding:0 6px;color:#bbb;font-size:0.78571em;font-family:"Gill Sans","Gill Sans MT","Open Sans",Helvetica,Arial,sans-serif;text-transform:uppercase}.footer .a8c-attribution a{display:inline-block;position:relative;padding:4px 16px;left:9999px;outline:0}.footer .a8c-attribution a:after{content:'A';position:absolute;top:2px;left:-9999px;height:100%;color:#999;font-size:1.54545em;font-family:"automatticons";text-align:center}.footer .a8c-attribution a:hover:after{-webkit-animation:candy .4s ease-in-out;animation:candy .4s ease-in-out}@media (min-width: 782px){.secondary{padding:0 15px 10px 15px;border-bottom:1px solid #eee}}@media (min-width: 1147px){.secondary{padding:0 15px 10px 15px;border-bottom:none}}.jetpack-message{background:#8eb74e;border:1px solid #73963d;margin:33px auto 0;max-width:90%;position:relative;z-index:2}.jetpack-message.is-opt-in{margin:50px 0 0;max-width:100%;padding:10px 15px;background:#fff;border:0;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);font-size:13px;text-align:center}.subhead .jetpack-message.is-opt-in{margin:0;padding-bottom:0;background:transparent;box-shadow:none}.subhead .jetpack-message.is-opt-in .jp-button,.subhead .jetpack-message.is-opt-in .jp-button--settings{display:inline-block}.jetpack-message.is-opt-in p{color:#3c4549}.jetpack-message.is-opt-in .jp-button,.jetpack-message.is-opt-in .jp-button--settings{margin-top:15px;display:none}.jetpack-message .squeezer h2{font-size:1em}.jetpack-message h2{color:#fff;margin:0}.jetpack-message p{color:#fff;margin:0;opacity:0.7}.jetpack-message .squeezer{padding:23px 80px 23px 23px;position:relative;text-align:right}.jetpack-message .squeezer:before{color:#fff;content:'\f418';font-family:'Genericons';font-size:33px;height:33px;right:25px;opacity:0.6;position:absolute;top:23px;top:calc( 50% - 22px )}@media (max-width: 530px){.jetpack-message .squeezer{padding:23px}.jetpack-message .squeezer:before{display:none}}.jetpack-message .squeezer a{color:#FFF;border-bottom:1px solid #D5E4BD}.jetpack-message .squeezer a:hover{border-bottom:1px solid #F1F6E9}.jetpack-message.error .squeezer:before,.jetpack-message.jetpack-err .squeezer:before{content:'\f414'}.configure-module .jetpack-message{max-width:100%}.jetpack-modules #site-icon-deprecated .info,.modules h3.icon,.jetpack-modules .info a{width:auto}.jetpack-modules #site-icon-deprecated .info:before,.modules h3.icon:before,.jetpack-modules .info a:before{display:inline-block;position:relative;top:1px;right:-3px;margin-left:2px;opacity:0.8;font:normal 20px "genericons";vertical-align:top}.jetpack-modules .info a:before{margin-top:1px}.latex:before,.jetpack-modules #latex .info a:before{content:'\f408'}.carousel:before,.jetpack-modules #carousel .info a:before{content:'\f102'}.modules h3.contact-form:before,.jetpack-modules #contact-form .info a:before{content:'\f175';font:normal 20px "dashicons"}.modules h3.custom-css:before,.jetpack-modules #custom-css .info a:before{content:'\f100';font:normal 20px "dashicons"}.modules h3.enhanced-distribution:before,.jetpack-modules #enhanced-distribution .info a:before{content:'\f237';font:normal 20px "dashicons"}.modules h3.widgets:before,.jetpack-modules #widgets .info a:before{content:'\f116';font:normal 20px "dashicons"}.modules h3.gravatar-hovercards:before,.jetpack-modules #gravatar-hovercards .info a:before{content:'G';font-family:"automatticons"}.infinite-scroll:before,.jetpack-modules #infinite-scroll .info a:before{content:'\f408'}.comments:before,.jetpack-modules #comments .info a:before{content:'\f108'}.sso:before,.jetpack-modules #sso .info a:before{content:'\f205'}.json-api:before,.jetpack-modules #json-api .info a:before{content:'\f415'}.likes:before,.jetpack-modules #likes .info a:before{content:'\f408'}.markdown:before,.jetpack-modules #markdown .info a:before{content:'\f462'}.minileven:before,.jetpack-modules #minileven .info a:before{content:'\f453'}.manage:before,.jetpack-modules #manage .info a:before{content:'\f205'}.monitor:before,.jetpack-modules #monitor .info a:before{content:'\f468'}.notes:before,.jetpack-modules #notes .info a:before{content:'\f300'}.omnisearch:before,.jetpack-modules #omnisearch .info a:before{content:'\f400'}.photon:before,.jetpack-modules #photon .info a:before{content:'\f403'}.post-by-email:before,.jetpack-modules #post-by-email .info a:before{content:'\f410'}.protect:before,.jetpack-modules #protect .info a:before{content:'\f470';position:relative;top:-1px}.modules h3.publicize:before,.jetpack-modules #publicize .info a:before{content:'\f237';font:normal 20px "dashicons"}.related-posts:before,.jetpack-modules #related-posts .info a:before{content:'\f420'}.sharedaddy:before,.jetpack-modules #sharedaddy .info a:before{content:'\f415'}.shortcodes:before,.jetpack-modules #shortcodes .info a:before{content:'\f100'}.verification-tools:before,.jetpack-modules #verification-tools .info a:before{content:'\f425'}.after-the-deadline:before,.jetpack-modules #after-the-deadline .info a:before{content:'\f411'}.subscriptions:before,.jetpack-modules #subscriptions .info a:before{content:'\f410'}.tiled-gallery:before,.jetpack-modules #tiled-gallery .info a:before{content:'\f103'}.modules h3.vaultpress:before,.jetpack-modules #vaultpress .info a:before{content:'V';font-family:"automatticons"}.videopress:before,.jetpack-modules #videopress .info a:before{content:'\f104'}.modules h3.widget-visibility:before,.jetpack-modules #widget-visibility .info a:before{content:'\f116';font:normal 20px "dashicons"}.stats:before,.jetpack-modules #stats .info a:before{content:'\f205'}.shortlinks:before,.jetpack-modules #shortlinks .info a:before{content:'\f107'}.modules h3.custom-content-types:before,.jetpack-modules #custom-content-types .info a:before{content:'\f498';font:normal 20px "dashicons"}.modules h3.site-icon:before,.jetpack-modules #site-icon .info a:before{content:'\f475'}.jetpack-modules #site-icon-deprecated .info:before{content:'\f475'}.jetpack-modules #sitemaps .info a:before{content:'\f507'}@media (max-width: 782px){.blog .type-post,.page-template-default .type-page,.single .type-post,.single .type-jetpack_support{width:100%}}@media (max-width: 600px){.clouds-sm{display:none}}@media (max-width: 530px){.wrap.inner.jp-support .jp-support-column-left{width:100%}.wrap.inner.jp-support .jp-support-column-left .widget-text{margin-left:0;width:100%}.wrap.inner.jp-support .jp-support-column-right{width:100%}}@media screen and (max-width: 515px){.jp-frame .header-nav{padding-bottom:10px}.jp-frame .header-nav li{line-height:30px}.jp-frame .header-nav .jetpack-logo{width:100%;text-align:center}.jp-frame .header-nav .jetpack-modules{margin:0;width:50%;text-align:left;padding:0 5px}.jp-frame .header-nav .jetpack-modules+.jetpack-modules{text-align:right}.jp-frame .header-nav .jetpack-modules:nth-child(4){text-align:center;margin:0 auto;width:100%}.jp-frame .header-nav .jetpack-modules:nth-child(4) a{padding:0 10px}}@media (max-width: 320px){.jetpack_page_jetpack_modules .wrap{padding:0 0 1em}}.page-content.configure{margin-top:0}.configure .frame.top{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}.configure .frame.top.fixed{background:#f9f9f9;border-bottom:1px solid #e9e9e9;padding-right:160px;margin-top:-6px;position:fixed;left:0;top:32px;width:100%;z-index:4;box-shadow:0 2px 2px -2px #eee}@media (max-width: 782px){.configure .frame.top.fixed{border:none;box-shadow:none;padding-top:1.42857em;position:relative;top:auto}}@media (max-width: 600px){.configure .frame.top.fixed{top:0}}.configure .frame.top .tablenav.top{float:right}@media (max-width: 900px){.configure .frame.top .tablenav.top .actions{display:block}}@media (max-width: 782px){.configure .frame.top .tablenav.top .actions{margin-top:6px}}.jp-frame-top-fixed .configure{padding-top:94px}.filter-search{display:none;float:left;margin-top:10px}@media (max-width: 782px){.filter-search{display:block}}@media (max-width: 530px){.filter-search{display:none}}.module-actions.landing-page{float:left;margin-left:15px}.module-actions.landing-page a{font-size:0.6em}.table-bordered.jetpack-modules{border:none;margin-bottom:0}.table-bordered.jetpack-modules tr.jetpack-module th{border-right:0;padding:14px 4px 0}.table-bordered.jetpack-modules tr.jetpack-module th input{display:block}.table-bordered.jetpack-modules tr.jetpack-module:hover .genericon{display:inline-block}.table-bordered.jetpack-modules tr.jetpack-module:hover td .row-actions span a{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.active th,.table-bordered.jetpack-modules tr.jetpack-module.active td{background:#f7fcfe}.table-bordered.jetpack-modules tr.jetpack-module.active th{border-right:4px solid #2ea2cc;padding-right:0px}.table-bordered.jetpack-modules tr.jetpack-module.active td:first-child{border-right:4px solid #2ea2cc}.table-bordered.jetpack-modules tr.jetpack-module.unavailable{opacity:0.3}.table-bordered.jetpack-modules tr.jetpack-module.unavailable input{display:none}.table-bordered.jetpack-modules tr.jetpack-module#vaultpress{opacity:1}.table-bordered.jetpack-modules tr.jetpack-module.deprecated span{color:#888}.table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg{margin-left:10px;color:#555}.table-bordered.jetpack-modules tr.jetpack-module th,.table-bordered.jetpack-modules tr.jetpack-module td{background:#fff;margin:0;box-shadow:inset 0 -1px 0 rgba(0,0,0,0.1)}.table-bordered.jetpack-modules tr.jetpack-module td{padding:10px 14px 8px 10px;line-height:25px}.table-bordered.jetpack-modules tr.jetpack-module td:first-child{border-right:4px solid #fff}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{float:left;padding:0 0 1px;visibility:visible}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span{margin-right:5px}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a{opacity:0}.table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a:focus{opacity:1}@media (max-width: 530px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}}@media (max-width: 782px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:block;padding-right:10px;visibility:visible}}.table-bordered.jetpack-modules>thead>tr>th{border:0;vertical-align:middle}.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-left:0}@media (max-width: 782px){.table-bordered.jetpack-modules>thead>tr>th:last-child{padding-right:0}}.table-bordered.jetpack-modules td{background:#fff}.table-bordered.jetpack-modules #doaction{margin-top:0}@media (max-width: 782px){.table-bordered.jetpack-modules #doaction{padding:10px 7px}}.table-bordered.jetpack-modules .checkall{margin-top:1px}.table-bordered.jetpack-modules .filter-search{margin-top:8px}.table-bordered.jetpack-modules .genericon{color:#999;display:none;margin:7px 3px 0}@media (max-width: 900px){.table-bordered.jetpack-modules .genericon{display:inline-block}}.table-bordered.jetpack-modules .med{width:70px}.table-bordered.jetpack-modules .sm{width:30px}@media (max-width: 782px){.table-bordered.jetpack-modules .check-column{width:50px}}.fixed-top .check-column{padding:8px 10px 0 10px;width:2.2em}.wrap{margin:0;padding:0 1.5em 1em;overflow:hidden}.wrap h2{font-size:24px;font-weight:400}.wrap .manage-left{float:right;margin:0;padding:0;width:63%}.wrap .manage-left table{width:100%}.wrap .manage-left th{font-weight:400}@media (max-width: 782px){.wrap .manage-left{width:100%}}.wrap .manage-right{margin:0;padding:0;float:left;width:35%;z-index:1}.wrap .manage-right p{font-size:12px;font-weight:bold;color:#bbb;padding-top:2px;text-transform:uppercase;letter-spacing:1px;clear:right}.wrap .manage-right .bumper{margin-right:33px}.wrap .manage-right.show{display:block;overflow-y:auto;overflow-x:hidden;position:absolute;z-index:100000}.wrap .manage-right .search-bar{margin-bottom:18px;max-width:300px}.wrap .manage-right p.search-box{float:none;height:auto;margin-bottom:0;position:relative}.wrap .manage-right p.search-box input[type='search']{padding:0 8px;width:90%;line-height:initial}@media (max-width: 782px){.wrap .manage-right p.search-box input[type='search']{float:right;padding:9px 8px}}.wrap .manage-left p.search-box input[type="submit"]{display:none}.wrap .manage-right .button-group .button{outline:none}.wrap .manage-right .subsubsub{margin:0;padding:0}.wrap .manage-right .subsubsub a{padding:0;line-height:inherit}.wrap .manage-right .subsubsub .current{padding:1px 5px;border-radius:2px;margin-right:-5px;background:#0D72B2;color:#fff}.wrap .manage-right .subsubsub .current .count{color:#BCD7E7;font-weight:200}.wrap .manage-right .subsubsub li{display:block;text-align:right}@media (max-width: 782px){.wrap .manage-right{background:#fff;bottom:0;display:none;min-width:300px;position:fixed;left:0;top:0;z-index:13;box-shadow:0 1px 20px 5px rgba(0,0,0,0.1)}.wrap .manage-right .bumper{margin:13px}.wrap .manage-right .navbar-form{margin:0;padding:0}}@media (max-width: 782px){.wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column){padding:11px 10px;display:block}.jetpack_page_jetpack_modules #doaction{padding:7px 14px}.jetpack_page_jetpack_modules .fixed-top thead .check-column{padding:28px 10px 0 10px}.jetpack_page_jetpack_modules .filter-search{margin-top:28px}.jetpack_page_jetpack_modules .filter-search .button{padding:7px 14px}.manage-right.show .subsubsub li{padding:5px}}@media (max-width: 650px){.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{float:none;padding-right:18px}}@media (max-width: 430px){.table-bordered.jetpack-modules tr.jetpack-module td .row-actions{display:none}.table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions{display:block}}.configure-module p{font-size:14px}.configure-module p.success,.configure-module p.error{color:#fff;padding:10px}.configure-module p.success{background-color:#81a844}.configure-module p.error{background-color:#d94f4f}.protect-status p{font-size:16px}.protect-status strong{display:inline-block;margin-top:10px;background:#fff;padding:10px;border:1px #ddd solid;font-size:16px;color:#000;max-width:100%}.protect-status.attn{color:#d94f4f}.protect-status.working{color:#81a844}#non-editable-whitelist{margin-top:15px}.protect-whitelist textarea{width:100%;min-height:150px}#editable-whitelist .whitelist-table{width:100%}.configure-module input[disabled]{opacity:.5}.configure-module input.button-primary{font-weight:bold}.whitelist-table{border-top:1px solid;border-left:1px solid;border-color:#ddd;background-color:#fff}.whitelist-table td,.whitelist-table th{padding:10px;margin:0;border-bottom:1px solid;border-right:1px solid;border-color:#ddd;font-size:14px}.whitelist-table th.heading{font-weight:bold;color:#5d6d74;text-align:right;background-color:#eee}.whitelist-table td.item-actions{border-right:none;text-align:left}.whitelist-table .toolbar{padding:0}.whitelist-table .add-btn{text-align:center;width:10%;border-right:1px #ddd solid}.ip-address,.enter-ip{width:90%;text-align:right;vertical-align:middle}.delete-ip-address{text-align:center;border:0;background:transparent;color:#6f7476;box-shadow:none;font-size:20px;margin:0;padding:0;cursor:pointer;border-radius:2px}.delete-ip-address:hover{background:#eee}.toolbar div{float:right;padding:10px}@media only screen and (min-width: 1100px){#non-editable-whitelist{width:28%;float:left;margin-top:0}.protect-whitelist{width:65%;float:right}}@media only screen and (max-width: 1130px){.enter-ip input[type="text"]{max-width:175px}}@media only screen and (max-width: 1250px) and (min-width: 1065px), (max-width: 730px) and (min-width: 600px){.enter-ip{width:85%}.add-btn{width:15%}}@media only screen and (max-width: 782px){.add-btn{text-align:left}.add-btn .ip-add{margin-top:4px;margin-bottom:3px}}@media only screen and (max-width: 730px){.add-btn{text-align:center}}@media only screen and (max-width: 665px) and (min-width: 600px){.enter-ip input[type="text"]{max-width:165px}}@media only screen and (max-width: 600px){.toolbar div{width:100%}.add-btn{border-top:1px #ddd solid}.enter-ip{text-align:center}.enter-ip strong{display:block;margin-bottom:5px}.enter-ip input[type="text"]{width:100%;max-width:100%}.add-btn input,.enter-ip .button{width:50%;margin:0 auto}.enter-ip .button{margin-top:10px}}@media only screen and (max-width: 400px){.protect-status strong{font-size:12px;overflow:auto}.add-btn input,.enter-ip .button{width:100%}}.my-jetpack-actions{margin:0 0 40px 0}.my-jetpack-actions .j-col{padding:0;text-align:center}.my-jetpack-actions #user-list{height:30px;margin-top:-1px;margin-right:-3px}#jetpack-disconnect-content{display:none;text-align:center}#jetpack-disconnect-content .cancel-disconnect{display:block;margin-top:10px}.connection-details{border:1px #ddd solid}.connection-details.local-user{margin-bottom:10px}.connection-details .user-01,.connection-details .wpuser-02,.connection-details .action-btns{padding:10px}.connection-details .user-01 .button,.connection-details .user-01 select,.connection-details .wpuser-02 .button,.connection-details .wpuser-02 select,.connection-details .action-btns .button,.connection-details .action-btns select{margin-top:5px}.connection-details .wpuser-02{margin-top:10px}.connection-details h3{padding:10px;margin:0;background:#eee;border-bottom:1px #ddd solid;font-size:14px}.jp-user img{margin-left:10px;border-radius:50%}.jp-user div,.wp-user div,.wp-action div{display:inline-block;width:100%}.j-col.jp-user,.j-col.wp-user,.j-col.wp-action{padding:0}.my-jetpack-actions select{max-width:150px}.j-actions .button:nth-child(3){margin-left:5px}.j-row.disconnect{text-align:center}.j-row.disconnect .button{margin:0 auto}a.what-is-primary{color:#b4b9be;margin-right:4px}@media (max-width: 782px){.wp-action{border-top:1px #ddd solid}.wp-action h3{display:none}}@media screen and (max-width: 500px){.connection-details{font-size:11px}.connection-details h3{font-size:12px;padding:5px}.connection-details .user-01,.connection-details .wpuser-02{padding:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.connection-details .action-btns{text-align:center}}@media (max-width: 530px){.connection-details .wpuser-02{margin-top:0;padding:12px}}@media screen and (max-width: 450px){.j-actions .button{width:100%;margin-bottom:5px;text-align:center}.j-actions .button.alignright{float:none}}@media screen and (max-width: 350px){.user-01,.wpuser-02{max-width:100px}}.manage__icon{width:155px;height:155px;margin:20px auto}.manage-page .manage__description{max-width:600px;text-align:center;font-size:22px;color:#999;margin:20px auto}.manage-page .manage__button{font-size:16px;padding:0 20px;height:40px;line-height:40px}.manage__title .genericon{font-size:38px;color:#81A944}.manage__link{font-size:16px;padding:0 20px;height:40px;line-height:40px;font-weight:normal}.manage__link .genericon{font-size:28px;vertical-align:middle;margin-top:-6px}.jp-content .hide{display:none}.jp-content .pointer{cursor:pointer}.jp-content .landing{margin:0 auto;z-index:2;position:relative}.jp-content h1{font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif;position:relative;z-index:3;width:100%;text-align:center}.jp-content h1.success{color:#81a844}.jp-content .footer{padding-top:0;margin-top:0;background-image:none}.jp-content .footer:before{height:inherit}.jp-content .more-info:before{content:none}.landing .wpcom-connect{min-height:400px}.wpcom-connect .j-col{padding:0}.wpcom-connect .connect-desc{padding-left:25px}.wpcom-connect .connect-btn{text-align:center}.module-grid h2{color:#000;font:300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif}.download-jetpack{margin-top:1em !important}#jump-start-area{margin-top:35px;padding-right:60px;padding-left:60px;background:#fefefe;border:1px #dae0e2 solid;padding-bottom:20px;text-align:center}#jump-start-area .connect-btn{text-align:center}#jump-start-area #jumpstart-cta,#jump-start-area .jumpstart-desc{padding:0}#jump-start-area p{font-size:14px;line-height:185%}#jump-start-area .spinner{float:none;margin:0 auto;position:absolute;bottom:0;height:100%;width:100%;background-position:50% 56%;background-color:rgba(254,254,254,0.99);display:block;opacity:.9}.jumpstart-message p{padding-left:25px}.jumpstart-desc{text-align:right}#jumpstart-cta{text-align:center;display:inline-block;float:none}.dismiss-jumpstart{color:#999;font-size:14px}#jumpstart-cta .button,#jumpstart-cta .button-primary{margin:1em;font-size:18px;height:45px !important;padding:8px 15px 1px}#jumpstart-cta .button-primary{display:block;margin:35px 20px 5px 20px}#jp-config-list{position:relative;padding-top:15px;padding-bottom:15px;margin-right:-15px;margin-left:-15px}#jp-config-list .j-col{padding:15px}#jp-config-list strong{display:inline-block}#jp-config-list small{display:block;margin-top:5px;line-height:150%}#jp-config-list .close{position:absolute;top:10px;left:0;text-transform:uppercase;font-weight:bold;display:block;z-index:5}.jp-config-status{text-transform:uppercase;font-size:10px;font-weight:bold;line-height:100%;color:#fff;background:#9fbd72;border-radius:2px;padding:2px 4px;display:inline-block}.nux-intro h3{background:#81a844;color:#fff;font-weight:600;padding:.75em;margin:0}.nux-intro h4{margin:0 0 2px 0}.nux-intro p{text-align:center;font-size:1.24em;line-height:175%}.nux-intro a{transition:all .4s ease}.nux-intro .j-col{padding:0 0.5em}.nux-intro .j-col:first-of-type{padding-right:0}.nux-intro .j-col:last-of-type{padding-left:0}.nux-intro .nux-in{background:#ececec;-webkit-border-bottom-left-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;border-bottom-right-radius:6px}.nux-intro .nux-in h3{font-size:1.10em;-webkit-border-top-right-radius:6px;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;border-top-left-radius:6px}.nux-intro .nux-in h3 .dashicons{float:left;color:#658435;font-size:1.25em;padding-right:0}.nux-intro .nux-in h3 .dashicons:hover{color:#57722e}.nux-intro .nux-in p{font-size:.9em;line-height:150%;margin:0;text-align:right;color:#686f72}.nux-intro .nux-in .j-row{border-bottom:1px #f9f9f9 solid;padding:5px 0;position:relative;min-height:70px}.nux-intro .nux-in .j-row:hover{background:#e0e0e0}.nux-intro .nux-in .unavailable{opacity:0.5}.nux-intro .nux-in .unavailable .act{display:none}.nux-intro .nux-in .paid{top:4px;margin-right:12px}.nux-intro .nux-in .dashicons{color:#81a844;font-size:1em;position:relative;top:3px;padding-right:6px}.nux-intro .nux-in .dashicons:hover{color:#57722e}.nux-intro .nux-in .dashicons-external{font-size:1.5em;top:2px;padding-right:3px}.nux-intro .nux-in .lmore{font-size:11px;color:#81a844}.nux-intro .nux-in .lmore:hover{color:#57722e}.nux-intro .feat.j-col{padding:10px 10px 10px 2px}.nux-intro .feat .dashicons{display:none}.nux-intro .activated .feat .dashicons{display:inline-block}.nux-intro .act{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%);left:8px;float:left}.nux-intro .act.j-col{padding:5px;text-align:left}.nux-intro .module-action{text-transform:uppercase;font-size:.85em;font-weight:600}.nux-intro .wpcom h3{background:#0087be}.nux-intro .wpcom h3 .dashicons{color:#00638b}.nux-intro .wpcom h3 .dashicons:hover{color:#005172}.nux-intro .wpcom .j-col{padding:10px}.nux-intro .wpcom .goto{text-align:center;padding:1em}.nux-intro .wpcom .goto:hover{background:#ececec}.nux-intro .wpcom .goto .j-col{padding:0 5px}.nux-intro .wpcom .goto a{width:100%;padding:.25em;height:auto}.nux-intro .wpcom .goto .button{height:auto;min-height:28px;line-height:18px;white-space:normal;max-width:200px;margin-bottom:0;padding-top:4px;padding-bottom:5px}.nux-intro .wpcom .goto .feat{position:absolute;top:50%;-ms-transform:translate(0, -50%);-webkit-transform:translate(0, -50%);transform:translate(0, -50%)}.nux-intro .nux-foot .j-col{padding:1em}.nux-foot{margin-top:2em;background:#ececec;border-radius:6px}.nux-foot .j-col{min-height:75px;padding:1em}@media (max-width: 650px){.nux-foot .j-col{width:100%}}.nux-foot .j-col+.j-col{border-right:1px #f9f9f9 solid}@media (max-width: 650px){.nux-foot .j-col+.j-col{border-right:none;border-top:1px #f9f9f9 solid}}.nux-foot .actions{margin-top:1em}.nux-foot a{text-decoration:underline}.nux-foot img{float:left;margin-right:1em;width:75px;border-radius:4px}.nux-foot p{font-size:.9em;text-align:right;font-weight:600;margin-top:0}.nux-foot p+p{font-weight:400;margin-bottom:0}.nux-foot ul{font-size:.9em;margin-bottom:0}.nux-foot ul li{margin-left:.875em;margin-bottom:0;line-height:175%;display:inline-block;vertical-align:middle}.form-toggle[type="checkbox"]{opacity:0;position:absolute}.form-toggle__switch{position:relative;display:inline-block;border-radius:12px;-moz-box-sizing:border-box;box-sizing:border-box;padding:2px;width:40px;height:24px;background:#b9b9b9;vertical-align:middle;outline:0;cursor:pointer;transition:all .4s ease}.form-toggle__switch:before,.form-toggle__switch:after{position:relative;display:block;content:"";width:20px;height:20px}.form-toggle__switch:after{right:0;border-radius:50%;background:#fff;transition:all .2s ease}.form-toggle__switch:before{display:none}.form-toggle__switch:hover{background:#bdd597}.form-toggle__label{cursor:pointer}.plugin-action__label{padding-left:5px;top:-1px;position:relative;color:#8e9598}.activated .plugin-action__label{color:#81a844}.form-toggle:focus+.form-toggle__label .form-toggle__switch,.form-toggle:focus:checked+.form-toggle__label .form-toggle__switch{box-shadow:0 0 0 2px #0087be}.form-toggle:checked+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle:checked+.form-toggle__label .form-toggle__switch:after{right:16px}.form-toggle:checked:hover+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle:disabled+.form-toggle__label .form-toggle__switch,.form-toggle:disabled:hover+.form-toggle__label .form-toggle__switch{background:#e9eff3}.form-toggle.is-toggling+.form-toggle__label .form-toggle__switch{background:#81a844}.form-toggle.is-toggling:checked+.form-toggle__label .form-toggle__switch{background:#bdd597}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch{border-radius:8px;width:24px;height:16px}.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:before,.form-toggle.is-compact+.form-toggle__label .form-toggle__switch:after{width:12px;height:12px}.form-toggle.is-compact:checked+.form-toggle__label .form-toggle__switch:after{right:8px}@media (max-width: 1147px){.jp-content .landing{padding:0 2em}.jp-content .footer{padding-top:1.5em}.nux-intro .main-col{width:50%;margin-bottom:2em}.nux-intro .main-col.wpcom{width:100%}.nux-intro .main-col+.main-col{padding-left:0}.nux-intro .wpcom{padding:0}.nux-intro .wpcom .j-row{width:50%;float:right;border-bottom:1px #f9f9f9 solid;border-left:1px #f9f9f9 solid}.nux-intro .wpcom .j-row:last-of-type{width:100%;float:none;clear:both;border:none;border-top:1px #f9f9f9 solid;position:relative;top:-1px}.nux-intro .wpcom .goto .feat a{float:right}.nux-foot .j-col{border:none}}@media (max-width: 900px){.nux-intro .main-col{width:100%;padding:0;margin-bottom:2em}.nux-intro .wpcom .j-row{width:100%;float:none}}@media (max-width: 782px){#jumpstart-cta .button-primary{margin:10px 0 5px 0}#jump-start-area .spinner{background-position:50% 35%}}@media (max-width: 600px){.nux-intro h1{font-size:1.75em}.nux-intro p{font-size:1em}}@media (max-width: 530px){.jp-content .landing{padding:0 .5em}#jump-start-area{padding:0 1em}.jumpstart-message p{padding-left:0}#jumpstart-cta .button-primary{margin:0 0 5px 0;padding-bottom:10px}.footer .a8c-attribution a:after{top:6px}}.nav-horizontal:before,.features:before,.modules:before,.load-more:before,.nav-horizontal:after,.features:after,.modules:after,.load-more:after{content:"";display:table}.nav-horizontal:after,.features:after,.modules:after,.load-more:after{clear:both} /*# sourceMappingURL=jetpack-admin.min.css.map */plugins/jetpack/css/jetpack-banners.css.map0000755000312500031250000000540312651056012021406 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/organisms/_banners.scss","jetpack-banners.css"],"names":[],"mappings":"AAAA;;;GAGC;ACCD;EDCC,gBAAW;ECCV,YAAW;EDCZ,qBAAA;EACC,cAAS;EACT,aAAA;ECCD;AACD;EDAE,qBAAA;EACC,wBAAa;EACb,iBAAgB;ECElB;AACD;EDAG,mCAAW;ECEZ,kBAAiB;EDClB,iBAAA;EACC,gBAAc;EACd,aAAS;ECCV;ADCC;EACC,gBAAW;ECCZ,2BAA0B;EDE1B;ACAF;EACE,aAAY;EDEX;ACAH;EDEI,oBAAe;ECAlB;AACD;EACE,WAAU;EDER,iBAAA;EACC,aAAA;EACA,cAAa;ECAjB;AACD;EACE,uBAAsB;EDIrB,kBAAA;EACC,aAAS;EACT,cAAO;ECFV;AACD;EDII,uBAAmB;ECFrB,iCAAgC;EDKhC,mDAAA;EACC,uBAAkB;ECHnB,gCAA+B;EDK9B;ACHH;EDKI,oBAAkB;ECHrB;AACD;EDKI,uBAAe;EACf,oBAAiB;EACjB,oBAAmB;ECHrB,iCAAgC;EDK9B,mDAAA;EACC,uBAA+B;EAC/B,gCAAe;ECHnB;ADOE;EACC,cAAa;ECLf,mDAAkD;EACnD;ADUD;EACC,eAAU;ECRV;;AAED;EDUC,oBAAmB;EACnB,qBAAW;EACX,2BAAgB;EAChB,cAAY;ECRX,qBAAoB;EDUrB,aAAA;EACC,kBAAW;EACX,6BAAkB;EAAlB,wBAAkB;ECRnB;AACD;EDUE,aAAW;EACX,oBAAY;EACZ,WAAU;EACV,eAAc;EACd,aAAU;ECRV,cAAa;EDUb,uEAA4B;EAX7B,sBAAA;ECIC,YDQU;ECPX;AACD;EDSC;IACC,eAAW;ICPV;EDSF;ACPD;EDSE,aAAS;ECPV;AACD;EDSE,gBAAe;EACf,WAAA;EACA,YAAW;ECPX,aAAY;EDSZ,iBAAA;EACC,kBAAgB;ECPjB,qBAAoB;EACrB;ADWD;EACC,kBAAU;ECTV;;ADYD;EACC,YAAO;ECTP;;AAED;EACE,gBAAe;EDWhB,qBAAA;EAND,6BAAA;EAAA,wBAAA;ECFE,YDSO;ECRR;AACD;EACE;IACE,aAAY;IACb;EDWF;IACC,aAAA;ICTC;EACF;AACD;EACE,4BAA2B;IACzB;;;;;;;;;;;ODqBF;ECTD;AACD;EACE,WAAU;EDYZ,YAAA;EACC,kBAAU;ECVV;;AAED;EDYC,oBAAU;EACV,QAAM;EACN,UAAA;ECVC,oBAAmB;EDYpB,YAAA;EATD,cAAA;ECAE,6BDUgB;ECVhB,wBDUgB;ECTjB;AACD;EACE;IACE,kBAAiB;IDUpB,oBAAA;IACC,aAAU;IACV;ECRD;AACD;EACE,kBAAiB;EDYjB,oBAAA;EAFD,aAAA;ECPC,cDUY;ECTb;AACD;EACE;IDeA,aAAA;IACC;ECbF;;AAED;EACE,YAAW;EDgBX;ACdF;EACE,YDeS;ECdV;AACD;EACE;IDkBF,aAAA;IACC;EChBA;;AAED;EDkBC,uBAAiB;EACjB,oBAAS;EACT,UAAA;EACA,cAAY;EACZ,mBAAY;EACZ,kDACC;EAED,oBAAM;EACN,6BAAY;EAAZ,wBAAY;EClBX,qBAAoB;EDoBrB,2DAA4B;EAhB7B,sDAA4B;ECD1B,iCDkBiB;ECjBlB;AACD;EACE;IDmBD,mBAAA;IArBD,cAAA;ICKG;EACF;AACD;EDkBC;IAzBD,aAAA;ICUG;EACF;AACD;EACE;IDgBD,kBAAA;IA7BD,WAAA;ICgBG;EACF;AACD;EACE;IDeA,gBAAQ;ICbN,aAAY;IACZ,oBAAmB;IDctB,kBAAA;IAEC,UAAU;ICbT;EDiBF;ACfD;EDiBE,2DAA0B;ECf3B;AACD;EDmBE,eAAA;EAEC,oCAAS;EAAT,gCAAS;EAAT,4BAAS;EClBV,uDAAsD;EDqBvD;ACnBD;EDqBE,WAAS;ECnBV;AACD;EDqBE,aAAY;EACZ,uBAAqB;EACrB,oBAAS;EACT,wBAAkB;EAClB,uEAAW;EACX,uBAAY;ECnBZ,WAAU;EDqBV,oBAAA;EAZD,aAAA;ECNC,cDmBU;EClBX;AACD;EACE;IDqBF,eAAA;IACC;ECnBA;;AAED;EDsBA,kBAAA;EACC,WAAS;ECpBT;;AAED;EDsBC,kBAAM;ECpBL,aAAY;EACZ,cAAa;EDsBf,kBAAA;EACC,+BAAkB;ECpBlB;;AAED;EDsBC,oBAAY;EACZ,QAAA;EACA,UAAS;ECpBR,aAAY;EDsBb,cAAA;EACC,oBAAc;EACd,aAAS;ECpBV;AACD;EDsBC,gBAAA;EACC,kBAAY;ECpBZ,oCAAmC;EDsBpC;ACpBD;EDsBE,cAAa;ECpBd;AACD;EDyBA,YAAA;EACC,eAAY;ECvBZ;;AD0BA;EACC,kBAAW;ECvBX,gCAA+B;EDwB/B;ACtBF;EACE,aAAY;EDwBZ;ACtBF;EACE,gBAAe;ED0BhB;ACxBD;ED0BE,gBAAY;ECxBb;AACD;ED0BE,qBAAA;EAGC,kBAAgB;EC1BjB,aAAY;ED4BZ;AC1BF;EACE,kBAAiB;ED8BlB;AC5BD;EACE,qBAAoB;EACrB;AACD;EACE,gBAAe;EAChB","file":"jetpack-banners.css"}plugins/jetpack/css/jetpack-banners-rtl.css0000644000312500031250000003312112651056012021424 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ #message.jp-identity-crisis { display: table; padding: 0; background: #d94f4f; border: none; color: #fff; } #message.jp-identity-crisis .service-mark { display: table-cell; vertical-align: middle; padding: 0 20px; } #message.jp-identity-crisis .service-mark:before { font-family: "jetpack" !important; content: "\f102"; font-size: 40px; line-height: 1; color: #fff; } #message.jp-identity-crisis .jp-id-banner__content { display: table; padding: 10px 0 10px 10px; } #message.jp-identity-crisis .jp-id-banner__content .success-notice { color: #fff; } #message.jp-identity-crisis .jp-id-banner__content .banner-content { display: table-row; } #message.jp-identity-crisis .jp-id-banner__content .banner-content p { margin: 0; font-size: 13px; color: #fff; opacity: 1.0; } #message.jp-identity-crisis .jp-id-banner__content .banner-content p strong { text-decoration: none; font-weight: 600; color: #fff; opacity: 1.0; } #message.jp-identity-crisis .jp-id-banner__content .banner-content a { display: inline-block; color: rgba(255, 255, 255, 0.8); border-bottom: 1px solid rgba(255, 255, 255, 0.5); text-decoration: none; -webkit-transform: all 1s ease; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group { display: table-row; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a { display: inline-block; margin: 10px 0 0 0; padding: 0 0 1px 0; color: rgba(255, 255, 255, 0.8); border-bottom: 1px solid rgba(255, 255, 255, 0.5); text-decoration: none; -webkit-transform: all 1s ease; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a:hover { color: white; border-bottom: 1px solid rgba(255, 255, 255, 0.8); } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group .idc-separator { margin: 0 6px; } #message.jp-banner { position: relative; margin-bottom: 26px; padding: 17px 0 17px 44px; border: none; background: #81a844; color: #fff; overflow: hidden; -moz-box-sizing: border-box; box-sizing: border-box; } #message.jp-banner:after { content: ''; position: absolute; bottom: 0; left: -100px; width: 100%; height: 50px; background: url("../images/the-footcloud.svg") left bottom no-repeat; pointer-events: none; z-index: 1; } @media (max-width: 830px) { #message.jp-banner:after { display: none; } } #message.jp-banner a { color: #fff; } #message.jp-banner h2 { display: block; margin: 0; padding: 0; color: #fff; font-size: 20px; line-height: 1.3; font-weight: normal; } #message.jp-banner h2 + p { margin-top: 10px; } .jp-banner a { padding: 0; } #message .jp-banner__content { color: #dfffcc; padding: 0 20px 0 0; -moz-box-sizing: border-box; box-sizing: border-box; width: 50%; } @media (max-width: 768px) { #message .jp-banner__content { width: 100%; } #message .jp-banner__content.is-connection { width: 100%; } } #message .jp-banner__content a { text-decoration: underline; /* Medium.com text underline hack - doesn't work well on small mobile devices... reverting to traditional underline background-image: linear-gradient(to bottom, rgba(0,0,0,0) 75%, #fff 50%); background-repeat: repeat-x; background-size: 2px 2px; background-position: 0 95%; display: inline-block; @media not all, only screen and (min-resolution: 2dppx), only screen and (-webkit-min-device-pixel-ratio: 2) { background-image: linear-gradient(to bottom, rgba(0,0,0,0) 75%, #fff 75%); background-repeat: repeat-x; } */ } #message .jp-banner__content p { margin: 0; padding: 0; line-height: 1.5; } #message .jp-banner__action-container { position: absolute; top: 0; left: 0; padding-right: 20px; width: 50%; height: 100%; -moz-box-sizing: border-box; box-sizing: border-box; } @media (max-width: 768px) { #message .jp-banner__action-container { position: static; margin: 14px 0 9px; width: 100%; } } #message .jp-banner__action-container.is-full-width { position: static; margin: 14px 0 9px; width: 100%; height: auto; } @media (max-width: 768px) { #message .jp-banner__action-container.is-connection { width: 100%; } } #message.is-opt-in .jp-banner__content { width: 60%; } #message.is-opt-in .jp-banner__action-container { width: 40%; } @media (max-width: 768px) { #message.is-opt-in .jp-banner__content, #message.is-opt-in .jp-banner__action-container { width: 100%; } } #message .jp-banner__button { display: inline-block; position: absolute; top: 50%; left: 125px; margin-top: -23px; padding: 0.57143em 0.57143em 0.38095em 0.85714em; border-radius: 6px; -moz-box-sizing: border-box; box-sizing: border-box; background: #518d2a; box-shadow: 0 4px 0 #3e6c20, 0 2px 3px rgba(0, 0, 0, 0.2); font: 400 1.5em/1 'Open Sans', Helvetica, sans-serif; transition: all .1s ease-in-out; } @media (max-width: 1175px) { #message .jp-banner__button { font-size: 1.25em; left: 110px; } } @media (max-width: 830px) { #message .jp-banner__button { left: 45px; } } @media (max-width: 768px) { #message .jp-banner__button { position: static; margin: 0; } } @media (max-width: 420px) { #message .jp-banner__button { display: block; width: 100%; text-align: center; font-size: 1.1em; left: 0; } } #message .jp-banner__button:hover, #message .jp-banner__button:focus { box-shadow: 0 4px 0 #3e6c20, 0 2px 3px rgba(0, 0, 0, 0.2); } #message .jp-banner__button:active { outline: none; -webkit-transform: translateY(2px); -ms-transform: translateY(2px); transform: translateY(2px); box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.2); } #message .jp-banner__button:active:after { top: -2px; } #message .jp-banner__button:before { content: ''; display: inline-block; position: relative; vertical-align: middle; background: url("../images/connect-plug.svg") center center no-repeat; background-size: 100%; top: -2px; margin-left: 13px; width: 22px; height: 22px; } @media (max-width: 420px) { #message .jp-banner__button:before { display: none; } } #message .is-full-width .jp-banner__button { position: static; margin: 0; } #message .is-opt-in .jp-banner__button:before { content: "\f147"; width: 20px; height: 20px; background: none; font: normal 20px/1 Dashicons; } #message .jp-banner__dismiss { position: absolute; top: 0; left: 0; width: 44px; height: 44px; text-align: center; z-index: 99; } #message .jp-banner__dismiss:before { color: #a7c979; content: '\f158'; font: normal 20px/44px 'dashicons'; } #message .jp-banner__dismiss:hover { opacity: 0.8; } #message .jp-banner__dismiss:active { opacity: 1; outline: none; } #message.jp-banner.protect-error { background: #fff; border-right: 4px #d94f4f solid; } #message.jp-banner.protect-error .jp-banner__content { color: #444; } #message.jp-banner.protect-error .jp-banner__content h2, #message.jp-banner.protect-error .jp-banner__content a { color: #d94f4f; } #message.jp-banner.protect-error .jp-banner__content a:hover { color: #d43a3a; } #message.jp-banner.protect-error .jp-banner__button { background: #d94f4f; box-shadow: none; color: #fff; } #message.jp-banner.protect-error .jp-banner__button:hover, #message.jp-banner.protect-error .jp-banner__button:focus, #message.jp-banner.protect-error .jp-banner__button:active { box-shadow: none; } #message.jp-banner.protect-error .jp-banner__button:hover { background: #d43a3a; } #message.jp-banner.protect-error .jp-banner__dismiss:before { color: #a0a5aa; } /*# sourceMappingURL=jetpack-banners.css.map */ #message.jp-identity-crisis{display:table;padding:0;background:#d94f4f;border:none;color:#fff}#message.jp-identity-crisis .service-mark{display:table-cell;vertical-align:middle;padding:0 20px}#message.jp-identity-crisis .service-mark:before{font-family:"jetpack" !important;content:"\f102";font-size:40px;line-height:1;color:#fff}#message.jp-identity-crisis .jp-id-banner__content{display:table;padding:10px 0 10px 10px}#message.jp-identity-crisis .jp-id-banner__content .success-notice{color:#fff}#message.jp-identity-crisis .jp-id-banner__content .banner-content{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .banner-content p{margin:0;font-size:13px;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content p strong{text-decoration:none;font-weight:600;color:#fff;opacity:1.0}#message.jp-identity-crisis .jp-id-banner__content .banner-content a{display:inline-block;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group{display:table-row}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a{display:inline-block;margin:10px 0 0 0;padding:0 0 1px 0;color:rgba(255,255,255,0.8);border-bottom:1px solid rgba(255,255,255,0.5);text-decoration:none;-webkit-transform:all 1s ease}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a:hover{color:#fff;border-bottom:1px solid rgba(255,255,255,0.8)}#message.jp-identity-crisis .jp-id-banner__content .jp-btn-group .idc-separator{margin:0 6px}#message.jp-banner{position:relative;margin-bottom:26px;padding:17px 0 17px 44px;border:none;background:#81a844;color:#fff;overflow:hidden;-moz-box-sizing:border-box;box-sizing:border-box}#message.jp-banner:after{content:'';position:absolute;bottom:0;left:-100px;width:100%;height:50px;background:url("../images/the-footcloud.svg") left bottom no-repeat;pointer-events:none;z-index:1}@media (max-width: 830px){#message.jp-banner:after{display:none}}#message.jp-banner a{color:#fff}#message.jp-banner h2{display:block;margin:0;padding:0;color:#fff;font-size:20px;line-height:1.3;font-weight:normal}#message.jp-banner h2+p{margin-top:10px}.jp-banner a{padding:0}#message .jp-banner__content{color:#dfffcc;padding:0 20px 0 0;-moz-box-sizing:border-box;box-sizing:border-box;width:50%}@media (max-width: 768px){#message .jp-banner__content{width:100%}#message .jp-banner__content.is-connection{width:100%}}#message .jp-banner__content a{text-decoration:underline}#message .jp-banner__content p{margin:0;padding:0;line-height:1.5}#message .jp-banner__action-container{position:absolute;top:0;left:0;padding-right:20px;width:50%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box}@media (max-width: 768px){#message .jp-banner__action-container{position:static;margin:14px 0 9px;width:100%}}#message .jp-banner__action-container.is-full-width{position:static;margin:14px 0 9px;width:100%;height:auto}@media (max-width: 768px){#message .jp-banner__action-container.is-connection{width:100%}}#message.is-opt-in .jp-banner__content{width:60%}#message.is-opt-in .jp-banner__action-container{width:40%}@media (max-width: 768px){#message.is-opt-in .jp-banner__content,#message.is-opt-in .jp-banner__action-container{width:100%}}#message .jp-banner__button{display:inline-block;position:absolute;top:50%;left:125px;margin-top:-23px;padding:0.57143em 0.57143em 0.38095em 0.85714em;border-radius:6px;-moz-box-sizing:border-box;box-sizing:border-box;background:#518d2a;box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2);font:400 1.5em/1 'Open Sans', Helvetica, sans-serif;transition:all .1s ease-in-out}@media (max-width: 1175px){#message .jp-banner__button{font-size:1.25em;left:110px}}@media (max-width: 830px){#message .jp-banner__button{left:45px}}@media (max-width: 768px){#message .jp-banner__button{position:static;margin:0}}@media (max-width: 420px){#message .jp-banner__button{display:block;width:100%;text-align:center;font-size:1.1em;left:0}}#message .jp-banner__button:hover,#message .jp-banner__button:focus{box-shadow:0 4px 0 #3e6c20,0 2px 3px rgba(0,0,0,0.2)}#message .jp-banner__button:active{outline:none;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px);box-shadow:0 0px 0 #3e6c20,0 0 0 rgba(0,0,0,0.2)}#message .jp-banner__button:active:after{top:-2px}#message .jp-banner__button:before{content:'';display:inline-block;position:relative;vertical-align:middle;background:url("../images/connect-plug.svg") center center no-repeat;background-size:100%;top:-2px;margin-left:13px;width:22px;height:22px}@media (max-width: 420px){#message .jp-banner__button:before{display:none}}#message .is-full-width .jp-banner__button{position:static;margin:0}#message .is-opt-in .jp-banner__button:before{content:"\f147";width:20px;height:20px;background:none;font:normal 20px/1 Dashicons}#message .jp-banner__dismiss{position:absolute;top:0;left:0;width:44px;height:44px;text-align:center;z-index:99}#message .jp-banner__dismiss:before{color:#a7c979;content:'\f158';font:normal 20px/44px 'dashicons'}#message .jp-banner__dismiss:hover{opacity:0.8}#message .jp-banner__dismiss:active{opacity:1;outline:none}#message.jp-banner.protect-error{background:#fff;border-right:4px #d94f4f solid}#message.jp-banner.protect-error .jp-banner__content{color:#444}#message.jp-banner.protect-error .jp-banner__content h2,#message.jp-banner.protect-error .jp-banner__content a{color:#d94f4f}#message.jp-banner.protect-error .jp-banner__content a:hover{color:#d43a3a}#message.jp-banner.protect-error .jp-banner__button{background:#d94f4f;box-shadow:none;color:#fff}#message.jp-banner.protect-error .jp-banner__button:hover,#message.jp-banner.protect-error .jp-banner__button:focus,#message.jp-banner.protect-error .jp-banner__button:active{box-shadow:none}#message.jp-banner.protect-error .jp-banner__button:hover{background:#d43a3a}#message.jp-banner.protect-error .jp-banner__dismiss:before{color:#a0a5aa} /*# sourceMappingURL=jetpack-banners.min.css.map */plugins/jetpack/css/jetpack-admin.css.map0000755000312500031250000007153212654411246021063 0ustar eacbforgeacbforg{"version":3,"sources":["../scss/_utilities/_grid.scss","jetpack-admin.css","../scss/_utilities/mixins/_breakpoint.scss","../scss/atoms/typography/_typography.scss","../scss/atoms/typography/_variables.scss","../scss/atoms/_media.scss","../scss/atoms/_animations.scss","../scss/atoms/_buttons.scss","../scss/atoms/icons/_automatticons.scss","../scss/atoms/icons/_jetpack.scss","../scss/molecules/_nav-horizontal.scss","../scss/templates/_main.scss","../scss/atoms/colors/_colors.scss","../scss/templates/_settings.scss","../scss/pages/_protect.scss","../scss/pages/_connection.scss","../scss/pages/_manage.scss","../scss/templates/_nux-landing-2015.scss","../scss/_utilities/_clearings.scss"],"names":[],"mappings":"AAKA;;;GCFE;ADKD;EAEC,aAAY;EACZ,gBAAc;ECJf;ADOA;EACC,cAAW;ECLX,gBAAe;EAChB;ADQD;EACC,aAAS;ECNT;;AAED;EACE,iBAAgB;EAChB,aAAY;EDSd,aAAA;EACC,oBAAS;ECPT;;AAED;EDMC;IAAU,iBAAgB;ICHxB;;EDIF;IAAU,kBAAU;ICAlB;;EDCF;IAAU,YAAO;ICGf;;EDFF;IAAU,kBAAgB;ICMxB;;EDLF;IAAU,kBAAU;ICSlB;;EDRF;IAAU,YAAO;ICYf;;EDXF;IAAU,kBAAgB;ICexB;;EDdF;IAAU,kBAAU;ICkBlB;;EDjBF;IAAU,YAAO;ICqBf;;EDpBF;IAAU,kBAAgB;ICwBxB;;EDvBF;IAAU,kBAAW;IC2BnB;;EC1BA;IFKF,aAAS;ICyBP;EACF;AACD;ED1BC;IAAU,iBAAgB;IC6BxB;;ED5BF;IAAU,kBAAU;ICgClB;;ED/BF;IAAU,YAAO;ICmCf;;EDlCF;IAAU,kBAAgB;ICsCxB;;EDrCF;IAAU,kBAAU;ICyClB;;EDxCF;IAAU,YAAO;IC4Cf;;ED3CF;IAAU,kBAAgB;IC+CxB;;ED9CF;IAAU,kBAAU;ICkDlB;;EDjDF;IAAU,YAAO;ICqDf;;EDpDF;IAAU,kBAAgB;ICwDxB;;EDvDF;IAAU,kBAAW;IC2DnB;;EC3EA;IFsBF,aAAS;ICyDP;EACF;AACD;ED1DC;IAAU,iBAAgB;IC6DxB;;ED5DF;IAAU,kBAAU;ICgElB;;ED/DF;IAAU,YAAO;ICmEf;;EDlEF;IAAU,kBAAgB;ICsExB;;EDrEF;IAAU,kBAAU;ICyElB;;EDxEF;IAAU,YAAO;IC4Ef;;ED3EF;IAAU,kBAAgB;IC+ExB;;ED9EF;IAAU,kBAAU;ICkFlB;;EDjFF;IAAW,YAAO;ICqFhB;;EDpFF;IAAW,kBAAgB;ICwFzB;;EDvFF;IAAW,kBAAW;IC2FpB;;EE5JH;IF+JI,aAAY;IACb;EACF;AACD;;;;;EEzJC,aAAA;EF+JC,wDAAuD;EACvD,iBAAgB;EExJlB,kBAAA;EF0JE,qCAAoC;EACrC;;AAED;;;;;;EE9IE,aAAA;EACD,aAAO;EFqJP;;AAED;EEnJC,gBAAU;EACT,uBAAc;EFqJd,uBAAsB;EEnJvB;AFqJD;EACE,gBAAe;EEnJhB;AFqJD;EACE,gBAAe;EAChB;AE7ID;EACC,sBAAiB;EF+IjB;;AExID;EF2IE,mBE1IM;EF2IP;;AAED;;EExIC,cAAY;EF2IZ;;AAED;EErIG,kBAAA;EACF,uBC/ES;EHsNT;;AE/HD;EACC,kBAAS;EFkIT;;AAED;EACE,WAAU;EE/HZ,WAAS;EACR,YAAQ;EFiIR;;AE7HD;EACC,kBAAc;EFgId;;AAED;EE9HC,gBAAa;EACb,aAAU;EFgIT,WAAU;EACV,4BAA2B;EI1O7B,eAAI;EACH,YAAA;EJ4OA;;AK7OD;EACC,wBAAG;ELgPH;;AAED;EACE;IACE,+BAAsB;IAAtB,uBAAsB;IK9OzB;ELgPC;IACE,gCAAuB;IAAvB,wBAAuB;IACxB;EK7OH;IACI,6BAAA;IAAA,qBAAA;IL+OD;EACF;;AAVD;EACE;IACE,+BAAsB;IAAtB,uBAAsB;IK9OzB;ELgPC;IACE,gCAAuB;IAAvB,wBAAuB;IACxB;EK7OH;IACI,6BAAA;IAAA,qBAAA;IL+OD;EACF;AACD;EACE;IACE,6BAAoB;IAApB,qBAAoB;IK7OvB;EL+OC;IACE,gCAAuB;IAAvB,wBAAuB;IK7O1B;EL+OC;IACE,gCAAuB;IAAvB,wBAAuB;IACxB;EK5OH;IACK,6BAAA;IAAA,qBAAA;IL8OF;EACF;AAbD;EACE;IACE,6BAAoB;IAApB,qBAAoB;IK7OvB;EL+OC;IACE,gCAAuB;IAAvB,wBAAuB;IK7O1B;EL+OC;IACE,gCAAuB;IAAvB,wBAAuB;IACxB;EK5OH;IACK,6BAAA;IAAA,qBAAA;IL8OF;EACF;AACD;EACE;IACE,+CAAsC;IAAtC,uCAAsC;IACvC;EMhRH;INkRI,oDMjRc;INiRd,4CMjRc;IACjB;ENkRA;AAPD;EACE;IACE,+CAAsC;IAAtC,uCAAsC;IACvC;EMhRH;INkRI,oDMjRc;INiRd,4CMjRc;IACjB;ENkRA;AACD;;EMhRC,iCAAqB;ENmRrB;;AAED;EMjRC,uBAAM;EACN,oBAAa;EACb,8BAAmB;EACnB,gBAAe;ENmRd,+DAA8D;EMjR/D,2CAAA;EACC,qBAAc;ENmRd,oBAAmB;EMjRpB;ANmRD;EMhRE,gBAAY;ENkRb;AMhRA;EACC,aAAY;EACZ,qBAAY;ENkRb;AACD;EMhRA,qBAAqB;EAEpB,cAAY;ENiRZ;;AM9QA;EACC,qBAAc;ENiRd,gBAAe;EM/QhB;ANiRD;EM9QE,gBAAW;ENgRZ;AM9QA;EACC,qBAAmB;EACnB,aAAW;ENgRZ;AACD;EACE,qBAAoB;EM5QtB,aAAA;EACC,4DAAqB;EN8QrB;;AAED;EM5QC,uBAAM;EACN,oBAAmB;EACnB,wCAAU;EACV,aAAA;EACA,qEAEyB;EN4QxB,qBAAoB;EM1QrB,YAAA;EACC,oBAAW;EN4QX,2DAA0D;EM1Q3D;AN4QD;EMzQE,aAAY;EN2Qb;AACD;EMvQC,aAAA;EACC,qBAAQ;EACR,2DAEqB;ENuQtB;AMrQC;EAEC,UAAS;ENsQV,uDAAsD;EMnQvD;ANqQD;EMnQE,WAAS;ENqQV;AACD;EMnQE,aAAY;EACZ,uBAAW;EACX,oBAAY;EACZ,WAAA;EACA,oBAAY;EACZ,aAAA;ENqQA,cAAa;EMnQd,wBAAQ;EAEP,uEAAW;EACX,uBAAkB;ENoQnB;AACD;EMlQE,aAAW;EACX,oBAAY;ENoQZ,QAAO;ECjVN,SAAA;EKuBH,aAAA;EN6TE,cMpQW;ENqQZ;AACD;EACE;IMnQC,sBAAW;INqQX;EACD;IACE,WAAU;IC3VX,aAAA;IKyFD,cAAA;INqQC;EACF;AACD;EChWG;IKuBH,QAAA;IN4UG;EACF;AACD;EMpQE;IACC,sBAAW;IACX,kBAAY;INsQZ;EACD;IACE,aAAY;IACZ,cAAa;IMpQjB,mBAAc;IACb;ENsQA;;AAED;EMpQC,uBAAc;EACd,cAAM;EACN,oBAAa;EACb,0BAAmB;EACnB,gBAAa;EACb,sDAAkB;ENsQjB,2CAA0C;EMpQ3C,qBAAU;EACT,eAAc;ENsQd,oBAAmB;EMpQpB;ANsQD;EMnQE,gBAAY;ENqQb;AMnQA;EACC,aAAY;ENqQZ,qBAAoB;EACrB;AOvZD;EACC,cAAa;EPyZb;;AAED;EOpZC,8BAAkB;EPsZjB,2DAA0D;EQna5D,sUASC;EARA,qBAAa;EACb,oBAAK;ERqaL;AACD;EQhaC,wBAAkB;ERkajB,+CAA8C;EQ/ZhD,yQAAqD;EACpD,qBAGC;ER8ZA,oBQhaa;ERiad;AACD;EACE;IS7aD,wBAAE;IACD,qEAAqB;IT+apB;ES7aF;AT+aD;ES7aE,uBAAW;ET+aZ;AS7aA;EACC,oBAAS;EACT,aAAU;ET+aX;AACD;EU9bA,WAAA;EVgcE,YAAW;EACZ;;AAED;;;EU3bC,6BAAmB;EAAnB,wBAAmB;EV+bnB;;AAED;EACE,qBAAoB;EU1btB,aAAA;EACC,mBAAiB;EV4bjB;;AAJD;EACE,qBAAoB;EU1btB,aAAA;EACC,mBAAiB;EV4bjB;;AU1bD;EACC,mBAAkB;EV6blB;;AAED;EU3bA,oBAAA;EACC,YAAA;EV6bA;;AU1bD;EACC,6BAAiB;EV6bjB;;AU1bD;EACC,mBCrBQ;EXkdR;;AAED;EU3bC,qBAAW;EACX,WAAO;EACP,cAAA;EV6bC,kBAAiB;EU3blB,aAAA;EACC,aC9BO;EX2dP,qCAAoC;EACrC;AC7cE;ESmBH,qBAAA;EV6bC;;AAED;EACE;;;;;ICndC,mBAAA;ISmBH,iBAAA;IVucG;EACF;AACD;EACE;;;;;IC7dC,gBAAA;ISiCH;EVmcC;;AAED;EACE;IU1bF,iBAAA;IV4bG;EACF;;AAED;;EAEE,kBU5bE;EACF,gBAAa;EV6bd;AACD;;EU1bA,mBAAc;EV6bb;;AAED;EACE;ICvfC,eAAA;IS6DH;EV6bC;;AAED;EACE;IC7fC,qBAAA;IS6DH,eAAY;IVmcT;EACF;AACD;EACE;IU3bD,uBAAA;IAEC;EV4bD;;AAED;EU1bE,WAAU;EV4bX;AACD;EACE,mBAAkB;EUzbpB,mBAAoB;EACnB,WAAU;EV2bV;;AC/gBE;ESmFH,oBAAoB;EVgclB,aU3bU;EV4bX;AACD;EACE;IACE,qBAAoB;ICvhBrB,eAAA;IS6FH;EV6bC;;AAED;EACE;IU1bF,qBAAY;IACX;EV4bA;;AAED;EUrbA,kBAAQ;EACP,gBAAO;EVubP;;AAED;EACE,SAAQ;EUrbT,UAAA;EACC,qBAAiB;EVublB;;AAED;EUpbE,mBAAiB;EVsblB;AUnbC;EACC,sBAAqB;EACrB,mBAAkB;EVqbpB;AACD;EUnbG,uBAAY;EACZ,oBAAY;EACZ,cAAA;EACA,mBAAW;EACX,qEAAiB;EACjB,2EAAmB;EVqbpB,6BAA4B;EUnb3B,aAAA;EACC,mBAAa;EACb,qBAAkB;EVqbrB;AUjbE;EACC,sBAAW;EACX,oBAAkB;EVmbrB;AACD;EUjbI,aAAW;EACX,oBAAY;EAEZ,QAAA;EVkbF,SAAQ;EU9aT,aAAA;EACC,cAAa;EVgbb,6BAA4B;EAC7B;AU7aD;EACC,mBAAW;EV+aX;;AAED;EACE,aAAY;ECllBX;ADolBH;EACE,WU/aA;EVgbD;AACD;EACE;IU9aF,iBAAU;IACT;EVgbA;;AAED;EACE,cAAa;EACd;AU3aA;EACC,WAAS;EV6aV;;AAED;EACE,WAAU;EU3aX;AV6aD;EACE,YAAW;EU3aZ;AV6aD;EACE,cAAa;EACd;AUtaD;EAKC,eAAU;EVoaV;;AAED;EUlaC,oBAAkB;EVoajB,oBAAmB;EUjanB,YAAA;EACC,2BAAc;EVmaf,0DAAyD;EUjazD;AVmaF;EACE,gBAAe;ECznBd;AD2nBH;EACE,mBUnac;EVoaf;AACD;EACE;IUjaD,mBAAA;IVmaG,YUlaA;IACF;EVmaD;AUjaA;;EAEC,gBAAW;EVmaZ;AACD;EUjaE,4BAAkB;EAClB,uBAAa;EACb,aAAU;EVmaV,qFAAoF;EUjapF,oBAAS;EACR,4CAAiB;EVmalB,YAAW;EC/oBV;ADipBH;EACE,mBUnac;EVoaf;AACD;EACE;ICrpBC,wBAAsD;ISkOxD,sBAAG;IVsbD;EACF;AACD;EACE;IC3pBC,kBAAA;ISkOF,iBAAG;IV4bD;EACF;AACD;EACE;IACE,gBAAe;IACf,wBAAuB;IACvB,iBAAgB;IUtapB,kBAAA;IACC;EVwaA;;AAED;EUtaA,qBAAO;EACN,kBAAU;EVwaV;;AAED;EUtaC,oBAAW;EVwaV,gBAAe;EUtahB,UAAA;EACC,YAAS;EACT,8CAAY;EAAZ,sCAAY;EVwab;AACD;EUtaE,WAAA;EVwaA,cAAa;EUtad,eAAA;EACC,+BAAS;EAAT,uBAAS;EACT,kCAAW;EAAX,0BAAW;EVwaZ;AACD;EUtaE,WAAA;EVwaA,aAAY;EACZ,cAAa;EUtaf,+BAAS;EAAT,uBAAS;EACR,kCAAkB;EAAlB,0BAAkB;EVwalB;;AAED;EUtaC,oBAAU;EVwaT,mBAAkB;EUtanB,gBAAG;EACF,qBAAgB;EAChB,YAAO;EVwaR;AACD;EACE,kBAAiB;EC5sBhB,gBAAA;ESgSF,qFAAG;EV+aF,6BUxaiB;EVyalB;AACD;EACE;ICltBC,kBAAA;ISgSF,iBAAG;IVqbD;EACF;AACD;EUzaC;IACC,eAAW;IACX;EV2aD;AACD;EUzaE,aAAA;EACA,oBAAW;EACX,cAAa;EACb,SAAA;EACA,qBAAoB;EACpB,aAAW;EV2aX,eAAc;ECnuBb,mEAAsD;ESyRzD,sBAAS;EV6cP,aU3aU;EV4aX;AACD;EU1aE;IACC,mBAAiB;IV4ahB,sBAAqB;IACtB;EC5uBA;ISyRH,4BAAS;IVsdN;EACF;AACD;EACE;IClvBC,mBAAA;ISyRH,sBAAS;IV4dN;EACF;AACD;EACE;IACE,kBAAiB;IU9arB,yBAAW;IAIV;EV6aA;;AAED;EU3aC,eAAA;EACA,oBAAkB;EAClB,oBAAkB;EAClB,YAAA;EACA,2BAAkB;EAMjB,0DAAkB;EV6anB;AACD;EU3aE,aAAA;EACA,oBAAW;EACX,WAAQ;EACR,SAAA;EACA,qBAAoB;EACpB,aAAU;EV6aV,eAAc;EClxBb,sEAAsD;ES2UzD,sBAAW;EV0cT,YU7aQ;EV8aT;AACD;EACE;IUxaF,cAAU;IACT;EV0aA;;AAED;EUxaC,+BAA4B;EAC5B,kCAAkB;EAClB,kBAAU;EV0aT,oBAAmB;EUvapB,8BAAS;EACR,oBAAW;EACX,YAAS;EVyaV;AACD;EUvaE,aAAY;EACZ,gBAAW;EVyaX,oBAAmB;EUvapB,QAAA;EACC,cAAQ;EACR,aAAS;EVyaV;AC7yBE;ESgXH,gBAAU;EVgcR,uBUzaa;EV0ad;AACD;EACE;IUzaF,eAAA;IV2aG;EACF;;AAED;;EAEE,iBAAgB;EC1zBf,gBAAA;ES0YH,6EAAA;EVmbE,oBUlbc;EVmbf;AACD;EACE;;IUtbF,iBAAA;IVybG;EACF;AACD;EACE;;IU7aF,iBAAU;IACT;EVgbA;;AU7aD;EVgbE,gBU/aM;EVgbP;;AAED;;EU7aC,oBAAY;EVgbX,aAAY;ECn1BX,oBAAA;ES6ZH,cAAA;EVybE,iCUxbM;EVybP;AACD;EACE;;IU/aA,0BAAA;IVkbE,mBAAkB;IUjbnB,kBAAc;IVmbd;EUjbD;;IACC,gBAAM;IVobN;EACD;;IAEE,QAAO;IUlbX,kBAAS;IACR;EVobA;;AAED;EUlbE,kCAAc;EAAd,0BAAc;EVobf;AACD;EUlbE,uBAAgB;EVobhB,gBAAe;EUlbhB,sBAAE;EACD,kBAAS;EACT,kBAAc;EVobf;AUlbA;EACC,WAAS;EACT,gBAAU;EVobX;AACD;EUlbE,aAAW;EACX,oBAAY;EACZ,WAAU;EACV,SAAO;EACP,aAAW;EACX,cAAY;EVobZ,iCAAgC;EUjbjC,aAAQ;EACP,kCAAW;EAAX,0BAAW;EVmbX,iCAAgC;EUjbhC;AVmbF;EACE,qCAA4B;EAA5B,iCAA4B;EAA5B,6BAA4B;EUjb5B;AVmbF;EUjbG,gBAAe;EVmbjB;AUjbC;EACC,wBAAY;EVmbb,qBAAoB;EUjbpB;AVmbF;EACE,cAAa;EC/4BZ;ADi5BH;EACE,oCUlbgB;EVkbhB,gCUlbgB;EVkbhB,4BUlbgB;EVmbjB;AACD;EACE;IUjbE,gBAAe;IVmbhB;EUjbA;IACC,wBAAY;IVmbZ,qBAAoB;IACrB;EU/aF;IACC,cAAa;IACb;EVibD;AACD;EU/aE,kBAAe;EVibf,aAAY;EU/aZ,cAAA;EACC,wBAAY;EACZ,qBAAiB;EVibnB;AU/aE;EAJD,uDAAa;EVsbb,4BU7aoB;EV8arB;AACD;EU5aE;IACC,sDAAY;IACZ;EV8aF;AU5aE;EAJD,8DAAoB;EVmbpB,4BU1aoB;EV2arB;AACD;EUzaE;IACC,6DAA0D;IAC1D;EV2aF;AUzaE;EAJD,4DAAkB;EVgblB,4BUvaoB;EVwarB;AACD;EUtaE;IAGC,2DAAY;IACZ;EVsaF;AACD;EUnaA,cAAA;EACC,qBAAc;EVqad;;AAED;EACE,gBAAe;EUnahB,kCAAiB;EAChB,wBAAgB;EAChB,qBAAkB;EVqanB;AC58BE;ESqiBF,kBAAA;EV0aC,oBUraS;EVsaV;AACD;EACE;ICl9BC,wBAAsD;IS+hBzD,qBAAqB;IVsblB;EACF;AACD;EACE;IUjaG,mBAAA;IACJ;EVmaA;;AUhaA;EACC,aAAW;EACX,qBAAgB;EVmajB;AACD;EACE,iBAAgB;EUjajB,kBAAO;EACN,sBAAW;EVmaX,kBAAiB;EAClB;AUjaD;EACC,aAAY;EVmaZ;;AAED;EACE,oBAAmB;EC5+BlB;AD8+BH;EACE,eUlaY;EVmab;AACD;EACE;IACE,mBAAkB;IAClB,eAAc;IUjalB,iBAAe;IACd;EVmaA;;AAED;EUjaC,oBAAgB;EVmaf,aAAY;EACZ,uBAAsB;EUlaxB,0BAAgB;EACf,kBAAS;EVoaT;;AAED;EUlaC,WAAA;EACA,8BAAgB;EAChB,aAAO;EACP,2BAAe;EVoad,oBAAmB;EUlapB,kBAAA;EACC,gBAAc;EACd,kBAAa;EVoad;AUlaC;EACC,gBAAY;EACZ,eAAU;EVoaZ;AUjaA;EACC,yBAAc;EVmad,YAAW;EUjaZ;AVmaD;EACE,gBAAe;EUjahB;AVmaD;EACE,gBAAe;EUjahB;AVmaD;EACE,gBAAe;EUjahB;AVmaD;EUjaE,gBAAQ;EVmaT;AACD;EUjaE,oBAAW;EACX,UAAO;EACP,YAAW;EACX,aAAA;EACA,aAAA;EACA,gBAAY;EVmaZ,sBAAqB;EUjarB,sBAAA;EACC,oBAAgB;EAChB,iCAAkB;EVmapB;AACD;EUjaG,kBAAQ;EACR,oBAAW;EACX,aAAW;EACX,mBP3oBU;EH8iCX,UAAS;EACT,sBAAqB;EUhavB,qBAAW;EACV,2BAAuB;EVkavB;;AU/ZA;EACC,0BAAqB;EACrB,gBAAU;EVkaX;AACD;EUhaE,uBAAM;EACN,oBAAa;EACb,8BAAgB;EAChB,aAAA;EACA,iEAAkB;EAClB,iDAAoC;EACpC,kBAAA;EVmaA,oBAAmB;EU5ZlB,8BAAa;EVgaf;AACD;ECxkCG,gBAAA;ESqpBF,2CAAE;EVsbD,qBUhaU;EViaX;AACD;EACE;IU3ZF,qBAAQ;IACP;EV6ZA;;AAED;EU3ZC,gBAAY;EACZ,kCAAY;EACZ,kBAAY;EV6ZX,2BAA0B;EU3Z3B,kBAAQ;EACP,uCAAqB;EACrB,gCAAmB;EV6ZpB;AU3ZA;EACC,uBAAe;EACf,qBAAmB;EV6ZpB;AACD;EU3ZE,iBAAa;EACb,mBAAgB;EV6ZhB,gBAAe;EU3ZhB,sBAAE;EACD,oBAAS;EACT,kBAAc;EV6Zf;AACD;EU3ZC,WAAA;EACC,gBAAc;EACd,sBAAmB;EV6ZpB;AU1ZA;EACC,uBCvuBiB;EDwuBjB,qBAAY;EV4Zb;AU1ZC;EACC,uBAAwC;EACxC,mCAAoD;EV4ZtD;AUxZA;EV0ZC,uBUzZe;EACf,mCAAgB;EV0ZjB;ACxnCE;;ED2nCD,kBUxZe;EVyZhB;AACD;EACE;IUvZA,gBAAA;IVyZE,aAAY;IUvZb,oBAAU;IVyZV;EUvZD;;IAGC,YAAS;IVwZT;EACD;IACE,qBAAoB;IACpB,mBAAkB;IUrZrB,cAAA;IACC,iBAAA;IVuZC;EACF;AACD;EUrZG;;IACC,0BAAW;IVwZZ;EACD;;IUlZC,aAAA;IVqZA;EACF;AACD;EACE;IACE,0BAAyB;IAC1B;EC3pCA;IS+vBF,gBAAO;IV+ZL;EACF;AACD;EACE;IACE,oBAAmB;IUpZpB;EVsZD;IACE,oBAAmB;IACpB;ECtqCA;IS+vBF,gBAAO;IV0aL;EACF;AACD;EACE;IACE,eAAc;IUrZf;EVuZD;IACE,gBAAe;IAChB;ECjrCA;ISmrBH,gBAAQ;IVigBL;EACF;AACD;EUrZE;IACC,oBAAe;IVuZd,YAAW;IUrZb;EVuZA;IACE,iBAAgB;IACjB;EC7rCA;ISmrBH,gBAAQ;IV6gBL;EACF;AACD;EUtZE;IACC,eAAc;IVwZb,aAAY;IUtZd;EVwZA;IACE,gBAAe;IAChB;EACD;IUtZG,gBAAA;IAGJ;EVsZA;;AAED;EUpZE,oBAAkB;EVsZnB;AACD;EUpZE,gBAAa;EACb,oBAVU;EAWV,WAXM;EAYN,aAAW;EACX,mBAAc;EACd,aAAW;EACX,cAAY;EACZ,aAAW;EACX,gBAAY;EACZ,kBAAiB;EACjB,oBAAkB;EVsZlB,0CAAyC;EACzC,oEAAmE;EUpZrE,uBAAM;EACL,oBAAS;EVsZT;;AAED;EUpZC,uBAAsB;EACtB,oBAAY;EACZ,UAAO;EACP,mBAAM;EACN,wBAAa;EACb,cAAY;EACZ,aAAA;EVsZC,4DAA2D;EUpZ5D,2CACQ;EACP,qBAAkB;EAClB,qBAAM;EVqZP;AACD;EACE,oBAAmB;EUnZpB,QAAA;EACC,aAAS;EACT,qCAAc;EVqZf;AACD;EUnZC,kBAAQ;EACP,gBAAS;EACT,mBAAkB;EVqZnB;AACD;EACE,kBAAiB;EUnZnB,oBAAkB;EACjB,iBAAgB;EVqZhB;;AUnZD;EAGC,kBAAQ;EVoZR;;AUhZD;EACC,+BAAa;EVmZb;;AUjZD;EACC,eAAc;EVoZd;;AU7YD;EACC,gBAAW;EVgZX;;AAED;EACE,aAAY;EU9Yb,oBAAK;EACJ,UAAO;EVgZP,aAAY;EACb;AU9YD;EACC,aAAY;EVgZZ;;AAED;EU9YC,kBAAW;EACX,iBAAU;EACV,WAAA;EACA,cAAa;EACb,aAAY;EACZ,YAAS;EVgZR,oBAAmB;EU9YpB,eAAO;EACN,+CAAkB;EAClB,cAAM;EVgZP;AACD;EU9YE,oBAAW;EACX,QAAO;EACP,UAAS;EACT,6CAAiC;EACjC,aAAU;EVgZV,kBAAiB;EU9YjB,uBAAQ;EACP,wCAAgB;EAChB,YAAS;EVgZX;AU9YC;EACC,kBAAgB;EAChB,cAAY;EVgZd;AU7YA;EACC,kBAAa;EV+Yb,cAAa;EU7Yd;AV+YD;EU7YE,eAAM;EV+YP;AACD;EU7YE,oBAAO;EACP,QAAA;EACA,UAAS;EV+YT,WAAU;EU7YX,SAAA;EACC,gBAAc;EACd,oBAAgB;EV+YjB;AACD;EU7YC,gBAAG;EACF,kBAAgB;EAChB,kBAAa;EV+Yd;AACD;EU7YE,kBAAa;EV+Yb,eAAc;EC90Cb,gBAAA;ES07BF,0EAAG;EVuZF,6BU/YgB;EVgZjB;AACD;EU9YC;IACC,iBAAW;IVgZV;EU9YF;AVgZD;EACE,aAAY;EU9Yb;AVgZD;EU9YE,sBAAO;EVgZR;AACD;EU9YE,oBAAkB;EAClB,SAAA;EACA,WAAU;EACV,aAAY;EVgZZ,oBAAmB;EU9YnB,4BAAG;EACF,kBAAS;EVgZV,mBAAkB;EU9YlB;AVgZF;EU9YG,WAAS;EVgZX;AU7YA;EV+YC,uBAAsB;EU5YtB,WAAA;EV8YD;AC92CE;;EDi3CD,0BU9YU;EV+YX;AACD;EACE;IU7YA,YAAA;IACC,mBAAS;IV+YR,gBAAe;IAChB;ECx3CA;ISy4BH,WAAO;IVkfJ;EACF;AACD;EACE;IC93CC,WAAA;ISy4BH,gBAAO;IVwfJ;EACF;AACD;EACE;IACE,WAAU;IACV,aAAY;IACZ,cAAa;IUjZjB,YAAa;IACZ;EVmZA;;AUhZA;EACC,cAAQ;EACR,uBAAe;EVmZhB;AACD;EUjZE,wBAAA;EACC,iBAAa;EVmZd,cAAa;ECn5CZ;ADq5CH;EACE,eUlZW;EVmZZ;AACD;EACE;IACE,aAAY;IUlZhB,kBAAA;IACC;EVoZA;;AUlZD;EACC,cAAY;EVqZZ;;AAED;EUnZC,kBAAO;EACP,WAAS;EACT,iBAAe;EACf,eAAQ;EACR,SAAM;EACN,cAAW;EVqZV,iBAAgB;EAChB,UAAS;EU/YX,QAAA;EViZE,aAAY;EACb;;AAED;;EAEE,uBAAsB;ECl7CrB,gBAAA;ES4hCH,qFAAA;EVyZE,6BUxZwB;EVyZzB;AACD;EACE;;IUhZF,gBAAA;IVmZG;EACF;;AAED;;;EAGE,uBAAsB;ECj8CrB,gBAAA;ESwiCH,2EAAA;EV4ZE,6BAA4B;EAC7B;AACD;EACE;;;IUlZF,kBAAA;IACC;EVsZA;;AUnZD;EVsZE,wBAAuB;EACxB;;AAED;;;;EU5YA,aAAQ;EACP,YAAU;EViZV;;AAED;EACE,uBAAsB;EU/YvB,oBAAA;EAEC,2BAAW;EACX,oBAAkB;EVgZnB;AACD;EACE,aAAY;EU9Yb,oBAAS;EACR,SAAM;EACN,sBAAgB;EVgZjB;AACD;EACE,QAAO;EU9YR,kBAAQ;EACP,aAAS;EVgZT,eAAc;EU9Yf;AVgZD;EACE,eAAc;ECl+Cb;ADo+CH;EACE,qBUhZiB;EViZlB;AACD;ECl/CG;ISskCH,sBAAQ;IV+aL;EACF;AACD;EACE;IACE,oBAAmB;IACnB,mBAAkB;IUpZpB;;QVuZK;IUjZL;EVmZA;IUjZC,4BAAgB;IVmZhB;EACD;IClgDC,aAAA;ISskCH,kBAAQ;IV+bL;EACF;AACD;ECvgDG;ISskCH,oBAAQ;IVocL;EACF;AACD;EC5gDG;ISskCH,eAAQ;IVycL;EACF;AACD;EACE;IClhDC,eAAA;ISskCH,oBAAQ;IV+cL;EACF;AACD;EACE;IUzZF,mBAAY;IACX;EV2ZA;;AAED;EUzZE,iBAAgB;EV2ZjB;AACD;;EAEE,kBAAiB;EACjB,aAAY;EACb;AACD;;;EAGE,gBAAe;EAChB;AACD;EACE;;;IUnZA,gBAAG;IVuZF;EACF;AACD;EACE;IACE,gBAAe;IUrZjB,aAAE;IACD,WAAS;IACT,kBAAe;IVuZf;EACD;IACE,gBAAe;IACf,iBAAgB;IUrZpB,mBAAS;IACR;EVuZA;;AAED;EUtZA,8BAAkB;EACjB,+BAAc;EVwZd;;AAED;EACE,gBAAe;EC1jDd;AD4jDH;EACE,mBUxZS;EVyZV;AACD;EACE;IACE,wBAAuB;ICjkDxB,qBAAA;IS8pCH,+BAAkB;IVsaf;EACF;AACD;ECjlDG;ISyqCH,kBAAkB;IV2af;EACF;AACD;EACE;ICvlDC,uBAAsD;ISyqCzD,qBAAkB;IVibf;EACF;AACD;EACE;IACE,WAAU;IU7ZZ,YAAA;IACC,cAAY;IV+ZX,kBAAiB;IAClB;EACD;IU7ZF,4BAAyB;IACxB;EV+ZA;;AAED;EU7ZC,WAAA;EACA,gBAAc;EV+Zb,aAAY;EU7Zb,sBAAA;EAIC,qFAAqB;EACrB,2BAAkB;EV4ZnB;AACD;EU1ZE,uBAAU;EV4ZV,oBAAmB;EU1ZnB,mBAAA;EACC,eAAY;EACZ,YAAU;EV4ZZ;AACD;EU1ZG,cAAY;EACZ,oBAAW;EACX,UAAS;EACT,gBHvvCa;EGwvCb,cAAY;EV4Zb,aAAY;EUzZX,sBAAA;EACC,8BAAW;EV2Zb,oBAAmB;EACpB;ACtnDE;ES+tCH,0CAAW;EAAX,kCAAW;EV0ZV;;AAED;EACE;IC5nDC,2BAAsD;IS+tCzD,+BAAW;IVgaR;EACF;AACD;EACE;IACE,2BAA0B;IUpZ9B,qBAAiB;IAChB;EVsZA;;AAED;EUpZC,qBAAkB;EAClB,2BAAU;EVsZT,qBAAoB;EUpZrB,gBAAA;EACC,oBAAgB;EAChB,YAAW;EVsZZ;AACD;EUpZE,kBAAS;EACT,iBAAY;EACZ,oBAAe;EACf,kBAAY;EVsZZ,WAAU;EUnZV,4CAAW;EACV,iBAAS;EACT,oBAAiB;EVqZnB;AACD;EACE,WAAU;EUnZT,mBAAA;EACC,yBAAqB;EVqZvB,kBAAiB;EUlZjB;AVoZF;EACE,uBAAsB;EUlZtB;AVoZF;EUlZG,gBAAa;EVoZf;AUhZC;EACC,kBAAc;EVkZf,eAAc;EU/Yf;AViZD;EU/YE,gBAAS;EViZV;AU/YA;EACC,aAAW;EACX,WAAS;EViZV;AACD;EU/YC,aAAA;EACC,WAAS;EACT,cAAU;EViZX;AACD;EU/YE,8BAAA;EACC,oBAAW;EACX,kBAAgB;EViZlB;AACD;EU/YG,aAAY;EACZ,kBAAU;EACV,2BAAY;EACZ,iBAAU;EACV,cAAS;EACT,YAAK;EViZN,cAAa;EC7sDZ,oBAAA;ES6yCF,WAAA;EVmaC,yBUjZc;EVkZf;AACD;EACE;IACE,eAAc;IACf;EUhZD;IACC,eAAU;IACV;EVkZF;AUjZG;EACD,aAAA;EVmZD,kCAAiC;EUhZlC;AVkZD;EACE,kCAAiC;EAClC;AU9YD;EACC,kBAAc;EVgZd;;AUzYD;EV4YE,iBAAgB;EACjB;;AAED;;;EAGE,aAAY;EACb;AACD;;;EU1YE,uBAAiB;EACjB,oBAAY;EACZ,UAAM;EACN,YAAA;EV8YA,mBAAkB;EAClB,cAAa;EU3Yf,gCAAgC;EAC/B,qBAAe;EV6Yf;;AU1YD;EV6YE,iBAAgB;EACjB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EU7YA,kBAAA;EVgZE,+BAA8B;EAC/B;;AAED;;EU9YA,kBAAA;EViZE,+BAA8B;EAC/B;;AAED;;EU/YA,kBAAA;EVkZE,+BAA8B;EAC/B;;AAED;;EUhZA,kBAAA;EVmZE,+BAA8B;EAC/B;;AAED;;EUjZA,cAAA;EVoZE,8BAA6B;EAC9B;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EUhanB,oBAAA;EVkaE,WAAU;EACX;;AAED;;EUhaA,kBAAA;EVmaE,+BAA8B;EAC/B;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EUvaA,cAAA;EV0aE,8BAA6B;EAC9B;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EUzaA,kBAAA;EV4aE,+BAA8B;EAC/B;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EAEE,kBAAiB;EAClB;;AAED;;EU3aA,kBAAA;EV8aE,+BAA8B;EAC/B;;AAED;;EU3aC,kBAAgB;EV8ahB;;AU3aD;EACC,kBAAgB;EV8ahB;;ACh8DE;ES2hDF,kBAAA;EVyaA;;AAED;EACE;;;;IUjaD,aAAW;IVsaT;EACF;AACD;EC98DG;IS6iDD,eAAA;IVoaC;EACF;AACD;EACE;IUlaE,aAAW;IVoaZ;EUjaD;IACC,iBAAW;IVmaV,aAAY;IACb;EU3ZH;IAEE,aAAA;IV4ZC;EACF;AACD;EACE;IACE,sBAAqB;IU1ZtB;EV4ZD;IU1ZE,mBAAkB;IV4ZnB;EU1ZA;IACC,aAAS;IACT,oBAAU;IV4ZX;EACD;IACE,WAAU;IU1ZX,YAAA;IACC,mBAAgB;IV4ZhB,gBAAe;IU1ZhB;EV4ZD;IU1ZE,kBAAc;IV4Zf;EACD;IU3ZE,oBAAA;IACC,gBAAe;IV6ZhB,aAAY;IACb;ECv/DA;IWxBF,iBAAA;IZkhEE;EACF;AACD;EACE;IY9gEF,kBAAA;IACC;EZghEA;;AY3gEA;EACC,eAAY;EZ8gEb;;AAED;EY5gEE,cAAS;EZ8gET,kBAAiB;EY5gEjB,wBAAA;EACC,oBAAmB;EACnB,WAAA;EZ8gEF;AACD;EY5gEG,qBAAe;EACf,kCAAQ;EACR,qBAAS;EACT,kBAAW;EACX,iBAAU;EACV,UAAA;EZ8gED,WAAU;EY5gET,aAAA;EAZD,YAAA;EZ2hEA,iCY9gEc;EZ+gEf;AACD;EACE;IY7gEE,cAAS;IZ+gET,kBAAiB;IACjB,wBAAuB;IY9gExB,oBAAA;IAnBD,WAAA;IZoiEC;EACF;AACD;EY9gEE;IACC,QAAO;IZghEP;EY7gEC;AZ+gEJ;EACE,aY/gEY;EZghEb;AACD;EY/gEI;IAJD,gBAAA;IZshEA;EACF;AACD;EACE;IY7gEF,iBAAA;IACC;EZ+gEA;;AY5gED;EACC,mBAAa;EZ+gEb;;AAED;EY9gEC,eAAA;EAJD,cAAA;EZqhEE,kBYhhEc;EZihEf;AACD;EYhhEC;IAPD,gBAAe;IZ0hEZ;EACF;AACD;EACE;IYjhEF,eAAA;IACC;EZmhEA;;AYhhEA;EACC,cAAW;EZmhEX,oBAAmB;EACpB;AYhhED;EACC,kBAAY;EZkhEZ;;AY9gEC;EACC,cAAa;EACb,kBAAS;EZihEX;AYhhEE;EACC,gBAAc;EZkhEhB,qBAAoB;EY9gEnB;AZghEH;EACE,gBAAe;EY9gEd;AZghEH;EACE,uBAAsB;EY5gErB;AZ8gEH;EY5gEI,YAAU;EZ8gEb;AY5gEE;;EAEC,qBAAiB;EZ8gEpB;AY3gEG;EACC,gCAA8B;EZ6gEjC,mBAAkB;EYzgElB;AZ2gEF;EACE,gCAA+B;EY1gE9B;AZ4gEH;EACE,cAAa;EYzgEb;AZ2gEF;EACE,eAAc;EYxgEb;AZ0gEH;EACE,YAAW;EYxgEV;AZ0gEH;EYxgEI,aAAW;EZ0gEd;AYvgEC;EZygEA,oBAAmB;EYvgElB,aAAY;EZygEd;AACD;;EAEE,kBAAiB;EYtgEjB,WAAA;EAEC,+CAAiB;EZwgEnB;AYtgEE;EACC,6BAA2B;EZwgE7B,mBAAkB;EYtgEjB;AZwgEH;EYtgEI,6BAAgB;EZwgEnB;AACD;EYtgEI,cAAA;EACC,kBAAgB;EZwgEnB,qBAAoB;EYvgEjB;AZygEL;EACE,kBAAiB;EYxgEb;AZ0gEN;EACE,YAAW;EYrgET;AZugEJ;EACE,YYvgEY;EZwgEb;AACD;ECzpEG;IWgIA,eAAA;IZ4hEA;EACF;AACD;EACE;IACE,gBAAe;IYrgElB,oBAAA;IACC,qBAAS;IACT;EZugED;AYrgEC;EACC,WAAA;EZugED,wBAAuB;ECvqEtB;ADyqEH;EACE,kBYvgEiB;EZwgElB;AACD;EYrgEC;IACC,iBAAgB;IZugEf;EYrgEF;AZugED;EACE,kBAAiB;EYrgEjB;AZugEF;EACE,eYvgEU;EZwgEX;AACD;EYtgEC;IACC,mBAAe;IZwgEd;EYtgEF;AZwgED;EACE,iBAAgB;EYtgEjB;AZwgED;EYtgEE,iBAAa;EZwgEd;AACD;EClsEG,aAAA;EWuLF,eAAA;EZ8gEC,mBYxgEU;EZygEX;AACD;EYvgEC;IACC,uBAAW;IZygEV;EYvgEF;AZygED;EACE,aAAY;EYvgEb;AZygED;EACE,aYxgEQ;EZygET;AACD;EACE;IYvgEF,aAAA;IACC;EZygEA;;AAED;EYxgEA,0BAAM;EACL,cAAS;EZ0gET;;AAED;EYxgEC,WAAG;EACF,sBAAe;EACf,kBAAgB;EZ0gEjB;AYxgEA;EACC,iBAAW;EACX,kBAAS;EZ0gEV;AACD;EACE,aAAY;EYxgEZ,WAAA;EACC,YAAW;EZ0gEZ,YAAW;EYxgEX;AZ0gEF;EACE,aAAY;EYvgEZ;AZygEF;EACE,kBYzgEY;EZ0gEb;AACD;EYxgEC;IACC,aAAS;IACT;EZ0gED;AACD;EYxgEE,WAAO;EACP,YAAU;EACV;cZ0gEW;EYxgEX,cAAA;EACC,YAAW;EACX,YAAW;EZ0gEb;AACD;EYxgEG,iBAAgB;EAChB,mBAAgB;EAChB,aAAW;EZ0gEZ,kBAAiB;EYxgEjB,2BAAQ;EACP,qBAAiB;EZ0gElB,aAAY;EYxgEZ;AZ0gEF;EYvgEG,mBAAgB;EZygElB;AACD;EYvgEG,gBAAe;EZygEhB,kBAAiB;EYvgEjB,oBAAA;EACC,oBAAmB;EACnB,iBAAgB;EZygElB;AYvgEC;EACC,qBAAW;EACX,kBAAY;EZygEd;AACD;EACE,aAAY;EYvgEX,cAAA;EACC,kBAAc;EACd,oBAAU;EZygEb;AACD;EYvgEI,gBAAA;EALD,YAAA;EZ+gED,sBYzgEc;EZ0gEf;AACD;EACE;IYxgEC,aAAA;IACC,kBAAa;IZ0gEd;EYtgEA;AZwgEH;EACE,eAAc;EYrgEd;AZugEF;EYrgEG,eAAU;EZugEZ;AYrgEE;EACC,WAAU;EACV,YAAW;EZugEd;AYrgEE;EACC,YAAQ;EACR,sBAAiB;EZugEpB;AACD;EYrgEI,kBAAW;EZugEb,oBAAmB;EYrgEjB,mBAAA;EACC,qBAAc;EACd,aAAW;EZugEf;AYngEE;EACC,gBAAc;EACd,kBAAgB;EZqgEnB;AYjgEC;EArFD,gBAAA;EZylEC,kBYngEa;EZogEd;AACD;EACE;IYlgEC,kBAAe;IACf,WAAQ;IACR,eAAM;IACN,kBAAW;IACX,iBAAY;IZogEX,UAAS;IYlgEV,QAAA;IACC,aAAY;IZogEZ,+CAA8C;IYlgE/C;EZogED;IYlgEE,cAAU;IZogEX;EACD;IACE,WAAU;IYhgEd,YAAA;IAGE;EZggED;;AAED;EACE;IY7/DC,oBAAA;IACC,gBAAS;IZ+/DV;;EAED;IACE,mBAAkB;IY7/DnB;EZ+/DD;IACE,2BAA0B;IY9/D1B;EZggEF;IACE,kBAAiB;IAClB;EY7/DD;IACE,mBAAY;IZ+/Db;;EY1/DH;IAEC,cAAA;IZ4/DE;EACF;AACD;EACE;IYz/DF,aAAA;IAGE,oBAAA;IZy/DC;EACF;AACD;EYv/DE;IACC,eAAc;IZy/Dd;;EAED;Ial5EF,gBAAoB;IACnB;Ebo5EA;Aal5EA,sHAAmB;Abo5EpB;Eal5EE,iBAAa;Ebo5Ed;Aaj5EA;EACC,aAAA;Ebm5EA,eAAc;Eah5Ef;Abk5ED;EACE,2BAA0B;EAC3B;Aa74EA;EACC,2BAAe;Eb+4EhB;;AAED;Ea54EE,iBAAgB;Eb84EjB;AACD;Ea54EE,uBAAsB;EACtB,kBAAe;EACf,kBAAW;EACX,eAAW;Eb84EX,wBAAuB;Ea34ExB,iBAAA;EACC,aFpCI;EXi7EJ,iBAAgB;Ea14EjB;Ab44ED;EACE,gBAAe;EAChB;AACD;Eaz4EA,gBAAA;Eb24EC;;AAED,mBAAkB;Aav4EjB;EACC,kBAAW;Eby4EZ;;AAED;Eat4EA,aAAA;EACC,mBAAW;Ebw4EX;;AAED;Ean4EC,aAAA;Ebq4EA;;Aaj4EA,oBAAA;Abo4ED;EACE,aAAY;EACb;AACD;Eah4EA,mBAAiB;Ebk4EhB;;AAED,sBaj4EmB;Abk4EnB;EACE,uBAAsB;Eah4EvB,yBAAA;EACC,oBAAa;EACb,wBAAS;Ebk4EV;AACD;Eah4EE,eAAc;EACd,WAAS;Ebk4ET,0BAAyB;Ea/3E1B,wBAAA;EACC,oBAAiB;EACjB,iBAAc;Ebi4Ef;AACD;EACE,mBAAkB;Ea93EnB,gBAAA;EACC,kBAAiB;EACjB,wBAAiB;Ebg4ElB;Aa73EA;EACC,mBAAU;Eb+3EV,mBAAkB;Ea53EnB;Ab83ED;Ea53EE,YAAU;Eb83EX;AACD;EACE,oBAAmB;Ea33ErB,YAAA;EACC,6BAAU;Eb63EV;;AAED;EACE,YAAW;Ea33Eb,kBAAmB;EAClB,wBAAkB;Eb63ElB;;AAED;Ea33EC,oBAAgB;EAChB,WAAS;EACT,yBAAS;EACT,gBAAU;EACV,kBAAe;EACf,iBAAe;Eb63Ed,WAAU;Ea33EX,YAAA;EACC,iBAAgB;Eb63EhB,oBAAmB;EACpB;Aa13ED;EACC,kBAAW;Eb43EX;;AAED;Ea13EA,aAAA;EAEC,eAAA;Eb23EA;;AAED;EACE;IACE,YAAW;Iaz3Ed,cAAA;IACC,eAAU;Ib23ET;;EAED;IACE,YAAW;Iax3Ef,aAAA;IAEC;Eby3EA;AACD,mBAAkB;AAClB;EACE;Iat3EF,kBAAA;IAEC;Ebu3EA;AACD,mBAAkB;AAClB;Ear3EC;IACC,YAAU;Ibu3ET;;EAED;Iap3EF,YAAA;IAEC;Ebq3EA;AACD,8BAA6B;AAC7B;Ean3EC;IACC,mBAAe;Ibq3Ed;;EAED;IACE,iBAAgB;Ial3EpB,oBAAA;IAEC;Ebm3EA;AACD,kBAAiB;AACjB;EACE;Iah3EF,oBAAA;IAEC;Ebi3EA;AACD,kBAAiB;AACjB;EACE;Ia92EF,kBAAA;IAEC;Eb+2EA;AACD,4BAA2B;AAC3B;Ea72EC;IACC,aAAY;Ib+2EX;;Ea52EF;IACC,4BAAkB;Ib+2EjB;;Ea52EF;IACC,oBAAc;Ib+2Eb;;EAED;Ia72ED,gBAAA;IACC,oBAAW;Ib+2EV;;EAED;Ia72ED,aAAA;Ib+2EG,iBa92Ee;Ib+2EhB;;EAED;;Ia52ED,YAAA;IACC,gBAAY;Ib+2EX;;EAED;Ia52EF,kBAAA;IAEC;Eb62EA;AACD,kBa52EY;Ab62EZ;EACE;Ia32ED,iBAAA;Ib62EG,gBa52Ee;Ib62EhB;;EAED;;Ic3mFF,aAAA;IACC;Ed8mFA;Ac5mFA,kBAAA;Ad8mFD;Ec5mFE,oBAAkB;Ed8mFnB;Ac3mFA;EACC,YAAQ;EACR,oBAAgB;Ed6mFjB;AACD;EACE,cAAa;Ec1mFf,kBAAA;EACC,mBAAa;Ed4mFb;;Ac1mFA;EACC,eAAc;EACd,oBAAgB;Ed6mFjB;AACD;Ec1mFA,gBAAA;EACC,kBAAQ;Ed4mFR;;AAED;EACE,wBAAuB;EczmFxB;Ad2mFD;EACE,qBAAoB;EACrB;AACD;;;EAGE,eAAc;EACf;AACD;;;;;EAKE,iBAAgB;Ec1mFjB;Ad4mFD;Ec1mFE,kBAAS;Ed4mFV;AACD;Ec1mFE,eAAW;Ed4mFX,WAAU;EACV,kBAAiB;EcxmFlB,+BAAI;EACH,iBAAc;Ed0mFf;;AAED;EcpmFC,oBAAA;EdsmFC,oBAAmB;EACpB;;AAED;;;EcnmFA,uBAAA;EdumFE,aAAY;EACb;;AAED;;;EcnmFC,YAAW;EdumFX;;AcpmFD;EACC,kBAAiB;EdumFjB;;AcpmFD;EACC,mBAAkB;EdumFlB;;AAED;EACE,oBAAmB;EACpB;AcrmFD;EACC,gBAAc;EdumFd;;AAED;EC5qFG,gBAAA;EawEF,kBAAW;EdumFX;;AAED;EACE;IACE,4BAA2B;IAC5B;EcpmFH;IAEC,eAAA;IdqmFE;EACF;AACD;EACE;IcnmFC,iBAAY;IdqmFZ;EclmFD;IdomFE,iBAAgB;IclmFjB,cAAY;IdomFZ;EACD;;IcjmFC,cAAW;IdomFV,qBAAoB;IcjmFtB,kBAAA;IACC,yBAAkB;IdmmFjB,kBAAiB;IAClB;ECxsFA;Ia0GF,oBAAA;IdimFE;EACF;AACD;EACE;Ic9lFF,eAAA;IAEC,eAAA;Id+lFE;EACF;AACD;EACE;Ic7lFA,aAAA;IACC,oBAAW;Id+lFV,oBAAmB;IACpB;Ec3lFH;IACC,aAAA;Id6lFE;EACF;AACD;EACE;;IezvFD,kBAAY;IACZ;Ef4vFA;AACD;EACE,cAAa;EezvFd,eAAA;EACC,mBAAgB;Ef2vFjB;;AAED;EezvFE,kBAAiB;Ef2vFjB,oBAAmB;EezvFpB,iBAAA;EACC,aAAU;EACV,mBAAe;Ef2vFhB;AACD;EACE,iBAAgB;EAChB,iBAAgB;EezvFlB,cAAA;EACC,mBAAe;Ef2vFf;;AAED;EezvFA,iBAAc;EACb,gBAAe;Ef2vFf;;AAED;EezvFC,iBAAa;Ef2vFZ,iBAAgB;EezvFhB,cAAA;EACA,mBAAe;EACf,qBAAgB;Ef2vFjB;AACD;EACE,iBAAgB;EgB3xFjB,wBAAM;EACL,kBAAa;EhB6xFd;;AAED;EACE,eAAc;EgB3xFf;AhB6xFD;EgB3xFE,iBAAU;EhB6xFX;AACD;EgB3xFC,gBAAG;EACF,YAAM;EACN,oBAAkB;EhB6xFnB;AACD;EgB3xFE,+EAAkB;EhB6xFlB,oBAAmB;EgB5xFnB,YAAA;EACC,aNiVM;EV68EP,oBAAmB;EgB3xFpB;AhB6xFD;EgB3xFE,gBAAa;EhB6xFd;AACD;EgB5xFE,gBAAA;EACC,eAAQ;EhB8xFT,wBAAuB;EgB3xFxB;AhB6xFD;EACE,iBAAgB;EACjB;AgBzxFA;EACC,eAAY;EhB2xFb;;AgBtxFA;EACC,mBAAU;EhByxFX;;AAED;EACE,YAAW;EgBvxFZ;AhByxFD;EACE,qBAAoB;EACrB;AgBtxFD;EACC,oBAAW;EhBwxFX;;AAED;EgBrxFA,aAAA;EACC,+EAAyB;EhBuxFzB;;AgBnxFD;EACC,4BAAgB;EhBsxFhB;;AAED;EgBpxFC,kBAAQ;EACR,oBAAgB;EAChB,qBAAiB;EhBsxFhB,qBAAoB;EgBpxFrB,2BAAA;EACC,sBAAiB;EhBsxFjB,oBAAmB;EgBnxFpB;AhBqxFD;EgBnxFE,oBAAU;EhBqxFX;AgBnxFA;;EAEC,YAAW;EhBqxFZ;AgBnxFA;EACC,iBAAW;EACX,mBAAc;EhBqxFf;AACD;EgBnxFE,aAAY;EACZ,gBAAW;EACX,oBAAmB;EACnB,WAAA;EACA,cAAS;EACT,aAAW;EhBqxFX,8BAA6B;EAC7B,6CAA4C;EgBjxF7C,gBAAA;EACC,aAAA;EhBmxFD;;AgB/wFD;EACC,qBAAgB;EhBkxFhB;;AgB/wFD;EACC,kBAAY;EhBkxFZ;;AAED;EACE,oBAAmB;EgBhxFrB,uBAAmB;EAClB,aAAW;EhBkxFX;;AAED;EgB/wFA,aAAA;EhBixFE,iBAAgB;EACjB;;AAED;;EAEE,aAAY;EACZ,iBAAgB;EgB/wFlB,yBAAA;EACC,uBAAc;EhBixFd;;AAED;EgB/wFA,gBAAgB;EACf,4BAAkB;EhBixFlB;;AAED;EgB/wFC,oBAAmB;EhBixFlB,mBAAkB;EgB/wFnB,sBAAO;EACN,oBAAa;EhBixFb,qBAAoB;EgB/wFrB;AhBixFD;EACE,eAAc;EgB/wFf;AhBixFD;EgB/wFE,uBAAe;EhBixFhB;AACD;EgB/wFC,gBAAA;EACC,iBAAU;EACV,mBAAS;EhBixFV;AACD;EgB/wFE,oBAAiB;EACjB,WAAS;EACT,UAAS;EhBixFT,2BAA0B;EAC1B,mBAAkB;EgB9wFpB,gBAAkB;EACjB,YAAA;EhBgxFA;;AAED;EgB9wFC,2BAAW;EACX,iBAAY;EACZ,mBAAkB;EAClB,mBAAgB;EAChB,aAAS;EhBgxFR,qBAAoB;EACpB,oBAAmB;EgBlwFpB,kBAAG;EACF,uBNwKa;EV4lFd;;AAED;EgBlwFE,qBAAS;EhBowFT,aAAY;EgBjwFb,kBAAG;EACF,gBAAQ;EhBmwFR,WAAU;EgBhwFX;AhBkwFD;EgBhwFE,mBAAiB;EhBkwFlB;AACD;EgB/vFC,oBAAE;EACD,mBAAY;EhBiwFZ,mBAAkB;EgB9vFnB;AhBgwFD;EACE,0BAAyB;EgB/vFzB;AhBiwFF;EACE,kBAAiB;EgB/vFjB;AhBiwFF;EACE,iBAAgB;EgB7vFjB;AhB+vFD;EgB7vFE,kBAAA;EhB+vFD;AACD;EgB7vFE,qBAAA;EACA,yCAA+B;EAC/B,wCAA8B;EhB+vF9B,qCAAoC;EgB7vFpC,oCAAG;EACF,iCAAiB;EACjB,gCAA8B;EhB+vFhC;AACD;EgB7vFG,mBAAA;EACA,qCAA2B;EAC3B,sCAA4B;EhB+vF7B,iCAAgC;EgB7vF/B,kCAAW;EACV,6BAAY;EACZ,8BAA0B;EhB+vF7B;AACD;EACE,cAAa;EgB9vFX,gBAAA;EACC,mBAA0B;EhBgwF7B,iBAAgB;EgB3vFhB;AhB6vFF;EgB3vFG,gBAAa;EhB6vFf;AACD;EgB3vFG,iBLnPe;EXg/FhB,mBAAkB;EgB1vFlB,WAAA;EACC,kBAAe;EACf,gBAAc;EhB4vFhB;AACD;EACE,kCAAiC;EgB3vFhC,gBAAA;EACC,oBAAgC;EhB6vFlC,kBAAiB;EgBzvFjB;AhB2vFF;EACE,qBAAoB;EgBzvFnB;AhB2vFH;EACE,cAAa;EgBvvFb;AhByvFF;EgBvvFG,eAAa;EhByvFf;AgBtvFC;EACC,UN4EM;EM3EN,mBAAc;EhBwvFhB;AACD;EgBtvFG,gBAAc;EhBwvFf,gBAAe;EgBvvFd,oBAAA;EACC,UAAO;EhByvFT,mBAAkB;EgBrvFlB;AhBuvFF;EgBrvFG,gBAAQ;EhBuvFV;AACD;EgBpvFE,kBAAA;EACC,UAAS;EACT,mBN0DY;EV4rFd;AgBrvFE;EACC,iBAA0B;EhBuvF5B,gBAAe;EgBhvFf;AhBkvFF;EACE,gBAAe;EgBhvFf;AhBkvFF;EACE,6BAA4B;EgB7uF5B;AhB+uFF;EACE,eAAc;EgB3uFf;AhB6uFD;EgB33FE,uBAAQ;EhB63FT;AACD;EgB33FE,oBAAW;EA6IX,UAAO;EACP,mCAAY;EhBivFZ,uCAAsC;EgB/uFtC,+BAAQ;EACP,YAAS;EACT,cAAY;EhBivFd;AgB7uFA;EACC,cAAA;EACA,mBAAgB;EhB+uFjB;AACD;EgB1uFE,2BAAG;EACF,kBLhVK;EX4jGN,kBAAiB;EgB3uFhB;AhB6uFH;EACE,qBAAoB;EgB5uFlB;AhB8uFJ;EACE,gBAAe;EgBzuFf;AhB2uFF;EACE,gBAAe;EgBxuFf;AhB0uFF;EgBxuFG,eAAY;EhB0uFd;AgBxuFE;EACC,oBAA+B;EhB0uFjC,cAAa;EgBvuFZ;AhByuFH;EACE,qBAAoB;EgBtuFlB;AhBwuFJ;EgBtuFI,gBAAc;EhBwuFjB;AACD;EgBruFG,aAAA;EACC,gBAAY;EACZ,cAAY;EhBuuFf;AACD;EgBruFI,cAAW;EACX,kBAAgB;EAChB,mBAAgB;EAChB,qBAAmB;EhBuuFrB,kBAAiB;EgBruFhB,kBAAA;EA5MD,kBAAU;EACV,qBAAQ;EhBo7FT;AACD;EgBl7FE,oBAAW;EhBo7FX,UAAS;EgBruFT,mCAAO;EACN,uCAAY;EhBuuFb,+BAA8B;EAC/B;AgBluFD;EACC,cAAY;EhBouFZ;;AAED;EgBluFC,iBAAO;EACN,qBAAgB;EAChB,oBAAY;EhBouFb;AgBnuFC;EAHD,kBAAO;EhByuFN,cgBtuFuC;EhBuuFxC;AACD;EgBruFC;IACC,aAAa;IhBuuFZ;EgBtuFD;AhBwuFF;EACE,gCgBzuF6C;EhB0uF9C;AACD;EACE;IgBzuFD,mBAAS;IACR,+BAAe;IhB2uFd;EgBxuFF;AhB0uFD;EACE,iBAAgB;EgBvuFjB;AhByuFD;EgBvuFE,4BAAgB;EhByuFjB;AACD;EACE,cAAa;EgBtuFd,kBAAE;EACD,aAAW;EACX,oBAAgB;EhBwuFjB;AACD;EACE,iBAAgB;EgBruFjB,kBAAM;EACL,kBAAgB;EAChB,eAAa;EhBuuFd;AgBpuFA;EACC,kBAAe;EACf,kBAAgB;EhBsuFjB;AgBpuFC;EACC,iBAAc;EACd,kBAAgB;EhBsuFlB;AACD;EgBpuFG,sBAAgB;EhBsuFjB,kBAAiB;EACjB,mBAAkB;EgBjuFpB,uBAAA;EACC,wBAAU;EhBmuFV;;AAED;EgBjuFA,YAAA;EACC,oBAAkB;EhBmuFlB;;AAED;EgBjuFC,oBAAY;EACZ,uBAAW;EACX,qBAAY;EACZ,6BAAgC;EAAhC,wBAAgC;EAChC,cAAA;EACA,aAAU;EACV,cAAQ;EACR,qBAAY;EhBmuFX,wBAAuB;EgBjuFxB,YAAA;EACC,iBAAU;EACV,0BAAc;EhBmuFf;AACD;EgBjuFE,oBAAY;EhBmuFZ,gBAAe;EgBhuFhB,aAAA;EACC,aAAO;EACP,cAAa;EhBkuFd;AACD;EACE,SAAQ;EgB/tFT,oBAAA;EACC,kBAAa;EhBiuFb,0BAAyB;EgB9tF1B;AhBguFD;EACE,eAAc;EACf;AgB7tFD;EACC,qBAAe;EhB+tFf;;AgB5tFD;EACC,iBAAe;EhB+tFf;;AAED;EACE,oBAAmB;EACnB,WAAU;EgB7tFZ,oBAAA;EACE,gBNzJa;EVw3Fd;;AgB5tFD;EhB+tFE,gBAAe;EAChB;;AAED;;EgB5tFC,+BNlKc;EVi4Fd;;AAED;EACE,qBAAoB;EACrB;AgB7tFD;EACC,YAAU;EhB+tFV;;AgB3tFD;EhB8tFE,qBAAoB;EACrB;;AAED;;EgB3tFC,qBNnLc;EVi5Fd;;AgB3tFD;EACC,qBAAgC;EhB8tFhC;;AgB3tFD;EACC,qBAAkB;EhB8tFlB;;AAED;EgB7tFC,oBAAA;EACC,aAAW;EACX,cAAY;EhB+tFb;AACD;EgB5tFA,aAAA;EACC,cAAS;EhB8tFT;;AC/uGE;Ee4hBD,WAAA;EhButFD;;AAED;EACE;IACE,gBAAe;IAChB;EgBntFD;IACC,oBAAU;IhBqtFV;;EgBntFA;IACC,YAAW;IhBstFX,oBAAmB;IgBntFrB;EhBqtFA;IACE,aAAY;IgBntFd;EhBqtFA;IACE,kBAAiB;IgBntFlB;EhBqtFD;IgBntFE,YAAW;IhBqtFZ;EACD;IACE,YAAW;IgBptFX,aAAA;IACC,kCAAW;IACX,iCAAW;IhBstFb;EACD;IgBptFG,aAAY;IACZ,aAAU;IACV,aAAS;IhBstFV,cAAa;IgBltFb,+BAAQ;IACP,oBAAW;IhBotFZ,WAAU;IACX;EgB9sFD;IACC,aAAY;IhBgtFZ;;EC3xGA;IeqlBD,cAAA;IhB0sFC;EACF;AACD;EACE;IgBvsFC,aAAA;IACC,YAAW;IACX,oBAAW;IhBysFZ;EACD;ICvyGC,aAAA;IesmBF,aAAA;IhBosFE;EACF;AACD;EgBlsFC;IACC,sBAAqB;IhBosFpB;;EC/yGA;IemnBD,8BAAG;IhBgsFF;EACF;AACD;EACE;IACE,mBAAkB;IACnB;ECxzGA;IegoBD,gBAAA;IhB2rFC;EACF;AACD;EgBxrFC;IACC,iBAAc;IhB0rFb;;EgBtrFD;IACC,gBAAe;IhByrFf;;EgBrrFF;IACC,kBAAiB;IhBwrFhB;;EAED;IgBtrFD,mBAAA;IACC,sBAAQ;IhBwrFP;;EiBj2GF;IACC,UAAW;IACX;EjBo2GD;AiBl2GA;EACC,aAAW;EjBo2GX,gBAAe;EAChB;AACD;EACE,aAAY;EACb","file":"jetpack-admin.css"}plugins/jetpack/css/jetpack-banners.css0000644000312500031250000001722212651056012020631 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ #message.jp-identity-crisis { display: table; padding: 0; background: #d94f4f; border: none; color: #fff; } #message.jp-identity-crisis .service-mark { display: table-cell; vertical-align: middle; padding: 0 20px; } #message.jp-identity-crisis .service-mark:before { font-family: "jetpack" !important; content: "\f102"; font-size: 40px; line-height: 1; color: #fff; } #message.jp-identity-crisis .jp-id-banner__content { display: table; padding: 10px 10px 10px 0; } #message.jp-identity-crisis .jp-id-banner__content .success-notice { color: #fff; } #message.jp-identity-crisis .jp-id-banner__content .banner-content { display: table-row; } #message.jp-identity-crisis .jp-id-banner__content .banner-content p { margin: 0; font-size: 13px; color: #fff; opacity: 1.0; } #message.jp-identity-crisis .jp-id-banner__content .banner-content p strong { text-decoration: none; font-weight: 600; color: #fff; opacity: 1.0; } #message.jp-identity-crisis .jp-id-banner__content .banner-content a { display: inline-block; color: rgba(255, 255, 255, 0.8); border-bottom: 1px solid rgba(255, 255, 255, 0.5); text-decoration: none; -webkit-transform: all 1s ease; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group { display: table-row; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a { display: inline-block; margin: 10px 0 0 0; padding: 0 0 1px 0; color: rgba(255, 255, 255, 0.8); border-bottom: 1px solid rgba(255, 255, 255, 0.5); text-decoration: none; -webkit-transform: all 1s ease; } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group a:hover { color: white; border-bottom: 1px solid rgba(255, 255, 255, 0.8); } #message.jp-identity-crisis .jp-id-banner__content .jp-btn-group .idc-separator { margin: 0 6px; } #message.jp-banner { position: relative; margin-bottom: 26px; padding: 17px 44px 17px 0; border: none; background: #81a844; color: #fff; overflow: hidden; -moz-box-sizing: border-box; box-sizing: border-box; } #message.jp-banner:after { content: ''; position: absolute; bottom: 0; right: -100px; width: 100%; height: 50px; background: url("../images/the-footcloud.svg") right bottom no-repeat; pointer-events: none; z-index: 1; } @media (max-width: 830px) { #message.jp-banner:after { display: none; } } #message.jp-banner a { color: #fff; } #message.jp-banner h2 { display: block; margin: 0; padding: 0; color: #fff; font-size: 20px; line-height: 1.3; font-weight: normal; } #message.jp-banner h2 + p { margin-top: 10px; } .jp-banner a { padding: 0; } #message .jp-banner__content { color: #dfffcc; padding: 0 0 0 20px; -moz-box-sizing: border-box; box-sizing: border-box; width: 50%; } @media (max-width: 768px) { #message .jp-banner__content { width: 100%; } #message .jp-banner__content.is-connection { width: 100%; } } #message .jp-banner__content a { text-decoration: underline; /* Medium.com text underline hack - doesn't work well on small mobile devices... reverting to traditional underline background-image: linear-gradient(to bottom, rgba(0,0,0,0) 75%, #fff 50%); background-repeat: repeat-x; background-size: 2px 2px; background-position: 0 95%; display: inline-block; @media not all, only screen and (min-resolution: 2dppx), only screen and (-webkit-min-device-pixel-ratio: 2) { background-image: linear-gradient(to bottom, rgba(0,0,0,0) 75%, #fff 75%); background-repeat: repeat-x; } */ } #message .jp-banner__content p { margin: 0; padding: 0; line-height: 1.5; } #message .jp-banner__action-container { position: absolute; top: 0; right: 0; padding-left: 20px; width: 50%; height: 100%; -moz-box-sizing: border-box; box-sizing: border-box; } @media (max-width: 768px) { #message .jp-banner__action-container { position: static; margin: 14px 0 9px; width: 100%; } } #message .jp-banner__action-container.is-full-width { position: static; margin: 14px 0 9px; width: 100%; height: auto; } @media (max-width: 768px) { #message .jp-banner__action-container.is-connection { width: 100%; } } #message.is-opt-in .jp-banner__content { width: 60%; } #message.is-opt-in .jp-banner__action-container { width: 40%; } @media (max-width: 768px) { #message.is-opt-in .jp-banner__content, #message.is-opt-in .jp-banner__action-container { width: 100%; } } #message .jp-banner__button { display: inline-block; position: absolute; top: 50%; right: 125px; margin-top: -23px; padding: 0.57143em 0.85714em 0.38095em 0.57143em; border-radius: 6px; -moz-box-sizing: border-box; box-sizing: border-box; background: #518d2a; box-shadow: 0 4px 0 #3e6c20, 0 2px 3px rgba(0, 0, 0, 0.2); font: 400 1.5em/1 'Open Sans', Helvetica, sans-serif; transition: all .1s ease-in-out; } @media (max-width: 1175px) { #message .jp-banner__button { font-size: 1.25em; right: 110px; } } @media (max-width: 830px) { #message .jp-banner__button { right: 45px; } } @media (max-width: 768px) { #message .jp-banner__button { position: static; margin: 0; } } @media (max-width: 420px) { #message .jp-banner__button { display: block; width: 100%; text-align: center; font-size: 1.1em; right: 0; } } #message .jp-banner__button:hover, #message .jp-banner__button:focus { box-shadow: 0 4px 0 #3e6c20, 0 2px 3px rgba(0, 0, 0, 0.2); } #message .jp-banner__button:active { outline: none; -webkit-transform: translateY(2px); -ms-transform: translateY(2px); transform: translateY(2px); box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.2); } #message .jp-banner__button:active:after { top: -2px; } #message .jp-banner__button:before { content: ''; display: inline-block; position: relative; vertical-align: middle; background: url("../images/connect-plug.svg") center center no-repeat; background-size: 100%; top: -2px; margin-right: 13px; width: 22px; height: 22px; } @media (max-width: 420px) { #message .jp-banner__button:before { display: none; } } #message .is-full-width .jp-banner__button { position: static; margin: 0; } #message .is-opt-in .jp-banner__button:before { content: "\f147"; width: 20px; height: 20px; background: none; font: normal 20px/1 Dashicons; } #message .jp-banner__dismiss { position: absolute; top: 0; right: 0; width: 44px; height: 44px; text-align: center; z-index: 99; } #message .jp-banner__dismiss:before { color: #a7c979; content: '\f158'; font: normal 20px/44px 'dashicons'; } #message .jp-banner__dismiss:hover { opacity: 0.8; } #message .jp-banner__dismiss:active { opacity: 1; outline: none; } #message.jp-banner.protect-error { background: #fff; border-left: 4px #d94f4f solid; } #message.jp-banner.protect-error .jp-banner__content { color: #444; } #message.jp-banner.protect-error .jp-banner__content h2, #message.jp-banner.protect-error .jp-banner__content a { color: #d94f4f; } #message.jp-banner.protect-error .jp-banner__content a:hover { color: #d43a3a; } #message.jp-banner.protect-error .jp-banner__button { background: #d94f4f; box-shadow: none; color: #fff; } #message.jp-banner.protect-error .jp-banner__button:hover, #message.jp-banner.protect-error .jp-banner__button:focus, #message.jp-banner.protect-error .jp-banner__button:active { box-shadow: none; } #message.jp-banner.protect-error .jp-banner__button:hover { background: #d43a3a; } #message.jp-banner.protect-error .jp-banner__dismiss:before { color: #a0a5aa; } /*# sourceMappingURL=jetpack-banners.css.map */plugins/jetpack/css/jetpack-admin.css0000644000312500031250000017540412651056012020300 0ustar eacbforgeacbforg/*! * Do not modify this file directly. It is compiled Sass code. * @see: jetpack/_inc/jetpack.scss */ .j-row { width: 100%; margin: 0 auto; } .j-row:before, .j-row:after { content: " "; display: table; } .j-row:after { clear: both; } .j-col { padding: 0.85em; width: 100%; float: left; position: relative; } @media only screen { .j-sm-1 { width: 8.33333%; } .j-sm-2 { width: 16.66667%; } .j-sm-3 { width: 25%; } .j-sm-4 { width: 33.33333%; } .j-sm-5 { width: 41.66667%; } .j-sm-6 { width: 50%; } .j-sm-7 { width: 58.33333%; } .j-sm-8 { width: 66.66667%; } .j-sm-9 { width: 75%; } .j-sm-10 { width: 83.33333%; } .j-sm-11 { width: 91.66667%; } .j-sm-12 { width: 100%; } } @media (min-width: 530px) { .j-md-1 { width: 8.33333%; } .j-md-2 { width: 16.66667%; } .j-md-3 { width: 25%; } .j-md-4 { width: 33.33333%; } .j-md-5 { width: 41.66667%; } .j-md-6 { width: 50%; } .j-md-7 { width: 58.33333%; } .j-md-8 { width: 66.66667%; } .j-md-9 { width: 75%; } .j-md-10 { width: 83.33333%; } .j-md-11 { width: 91.66667%; } .j-md-12 { width: 100%; } } @media (min-width: 782px) { .j-lrg-1 { width: 8.33333%; } .j-lrg-2 { width: 16.66667%; } .j-lrg-3 { width: 25%; } .j-lrg-4 { width: 33.33333%; } .j-lrg-5 { width: 41.66667%; } .j-lrg-6 { width: 50%; } .j-lrg-7 { width: 58.33333%; } .j-lrg-8 { width: 66.66667%; } .j-lrg-9 { width: 75%; } .j-lrg-10 { width: 83.33333%; } .j-lrg-11 { width: 91.66667%; } .j-lrg-12 { width: 100%; } } body, button, input, select, textarea { color: #222; font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14px; line-height: 1.4; -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, h6 { color: #222; clear: both; } a { color: #0d72b2; transition: color .2s; text-decoration: none; } a:visited { color: #0d72b2; } a:hover { color: #0f92e5; } a:focus { outline: thin dotted; } address { margin: 0 0 1.5em; } abbr[title], acronym { cursor: help; } ins { background: #eee; text-decoration: none; } dt { font-weight: 700; } fieldset { border: 0; margin: 0; padding: 0; } textarea { resize: vertical; } hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; } img { vertical-align: middle; } @-webkit-keyframes "grow" { 0% { -webkit-transform: scale(0.3); transform: scale(0.3); } 60% { -webkit-transform: scale(1.15); transform: scale(1.15); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes "grow" { 0% { -webkit-transform: scale(0.3); transform: scale(0.3); } 60% { -webkit-transform: scale(1.15); transform: scale(1.15); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes "candy" { 0% { -webkit-transform: scale(1); transform: scale(1); } 20% { -webkit-transform: scale(1.15); transform: scale(1.15); } 60% { -webkit-transform: scale(0.95); transform: scale(0.95); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @keyframes "candy" { 0% { -webkit-transform: scale(1); transform: scale(1); } 20% { -webkit-transform: scale(1.15); transform: scale(1.15); } 60% { -webkit-transform: scale(0.95); transform: scale(0.95); } 100% { -webkit-transform: scale(1); transform: scale(1); } } @-webkit-keyframes "flyer" { 0% { -webkit-transform: translate3d(0px, 0px, 0px); transform: translate3d(0px, 0px, 0px); } 100% { -webkit-transform: translate3d(680px, -680px, 0px); transform: translate3d(680px, -680px, 0px); } } @keyframes "flyer" { 0% { -webkit-transform: translate3d(0px, 0px, 0px); transform: translate3d(0px, 0px, 0px); } 100% { -webkit-transform: translate3d(680px, -680px, 0px); transform: translate3d(680px, -680px, 0px); } } .button, .download-jetpack { transition: all .1s ease-in-out; } .jp-button, .jp-button--settings { display: inline-block; position: relative; padding: 0.76923em 1.46154em; color: #efefef; font: 800 0.9285714286em/1 'Open Sans', Helvetica, sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; border-radius: 3px; } .jp-button:visited, .jp-button--settings:visited { color: #efefef; } .jp-button:hover, .jp-button--settings:hover, .jp-button:focus, .jp-button--settings:focus { color: #fff; background: #57972d; } .jp-button:active, .jp-button--settings:active { background: #57972d; opacity: 0.8; } .jp-button--settings { background: #93b45f; color: #e8eedf; } .jp-button--settings:visited { color: #e8eedf; } .jp-button--settings:hover, .jp-button--settings:focus { background: #9fbd72; color: #fff; } .jp-button--settings.current { background: #3c6621; color: #fff; box-shadow: inset 0 2px 0 #365A1F, inset 0 1px 3px #3c6621; } .download-jetpack { display: inline-block; position: relative; padding: 0.64286em 0.85714em 0.53571em; color: #fff; font: 400 20px/1 "proxima-nova", 'Open Sans', Helvetica, sans-serif; background: #518d2a; z-index: 3; border-radius: 6px; box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4); } .download-jetpack:visited { color: #fff; } .download-jetpack:hover, .download-jetpack:focus { color: #fff; background: #57972d; box-shadow: 0 6px 0 #3e6c20, 0 6px 3px rgba(0, 0, 0, 0.4); } .download-jetpack:active { top: 6px; box-shadow: 0 0px 0 #3e6c20, 0 0 0 rgba(0, 0, 0, 0.4); } .download-jetpack:active:after { top: -6px; } .download-jetpack:before { content: ''; display: inline-block; position: relative; top: -2px; margin-right: 13px; width: 30px; height: 30px; vertical-align: middle; background: url("../images/connect-plug.svg") center center no-repeat; background-size: 100%; } .download-jetpack:after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } @media (max-width: 1147px) { .download-jetpack { font-size: 1.28571em; } .download-jetpack:before { top: -1px; width: 23px; height: 23px; } } @media (max-width: 900px) { .download-jetpack:active { top: 0; } } @media (max-width: 530px) { .download-jetpack { font-size: 1.21429em; font-weight: 600; } .download-jetpack:before { width: 19px; height: 19px; margin-right: 9px; } } #searchsubmit { display: inline-block; border: none; position: relative; padding: 0.71429em 1.5em; color: #efefef; font: 800 0.8em/1 'Open Sans', Helvetica, sans-serif; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; outline: none; border-radius: 3px; } #searchsubmit:visited { color: #efefef; } #searchsubmit:hover, #searchsubmit:focus { color: #fff; background: #2aa0d5; } #searchsubmit:active { opacity: 0.7; } @font-face { font-family: 'automatticons'; src: url("../_inc/fonts/automatticons/automatticons.eot"); src: url("../_inc/fonts/automatticons/automatticons.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/automatticons/automatticons.woff") format("woff"), url("../_inc/fonts/automatticons/automatticons.ttf") format("truetype"), url("../_inc/fonts/automatticons/automatticons.svg#automatticonsregular") format("svg"); font-weight: normal; font-style: normal; } @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.eot"); src: url("../_inc/fonts/jetpack/jetpack.eot?#iefix") format("embedded-opentype"), url("../_inc/fonts/jetpack/jetpack.woff") format("woff"), url("../_inc/fonts/jetpack/jetpack.ttf") format("truetype"), url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); font-weight: normal; font-style: normal; } @media screen and (-webkit-min-device-pixel-ratio: 0) { @font-face { font-family: "jetpack"; src: url("../_inc/fonts/jetpack/jetpack.svg#jetpack") format("svg"); } } .nav-horizontal a { display: inline-block; } .nav-horizontal li { position: relative; float: left; } .nav-horizontal ul { margin: 0; padding: 0; } *, *:before, *:after { -moz-box-sizing: border-box; box-sizing: border-box; } ::-moz-selection { background: #91bd51; color: #fff; text-shadow: none; } ::selection { background: #91bd51; color: #fff; text-shadow: none; } #wpbody-content { padding-bottom: 0; } #wpcontent { margin-left: 160px; padding: 0; } ul#adminmenu a.toplevel_page_jetpack:after { border-right-color: #81a844; } .folded #wpcontent { margin-left: 36px; } .jp-content { background: #f9f9f9; margin: 0; height: auto; min-height: 100%; width: 100%; width: 100%; -webkit-font-smoothing: antialiased; } .jp-content .wrapper { background: #f9f9f9; } @media (max-width: 900px) { #wpcontent, .auto-fold #wpcontent, .auto-fold #wpfooter, .modal, .configure .frame.top.fixed { margin-left: 36px; padding-left: 0; } } @media (max-width: 782px) { #wpcontent, .auto-fold #wpcontent, .auto-fold #wpfooter, .modal, .configure .frame.top.fixed { margin-left: 0; } } @media (max-width: 782px) { .configure .frame.top.fixed { padding-left: 0; } } .wrap.inner, .page-content { max-width: 950px; margin: 0 auto; } .wrap.inner li, .page-content li { line-height: 23px; } @media (max-width: 530px) { .page-content { margin-top: 0; } } @media (max-width: 1147px) { .wrap.inner { background: #f9f9f9; padding: 15px; } } @media (max-width: 530px) { .wrap.inner { margin-top: 1.71429em; } } .jetpack_page_jetpack_modules .header-nav { margin: 0; } .jetpack_page_jetpack_modules .page-content { max-width: 1200px; min-height: 500px; margin: 0; } .page-content.about { position: relative; z-index: 10; } @media (max-width: 1147px) { .page-content.about { background: #f9f9f9; padding: 15px; } } @media (max-width: 1147px) { .page-content.configure { background: #f9f9f9; } } .footer nav { max-width: 550px; margin: 0 auto; } .header { left: 0; right: 0; background: #81a844; } .header-nav li { line-height: 60px; } .header-nav a { padding: 0 0.71429em; line-height: 24px; } .header-nav .jetpack-logo a { display: inline-block; position: relative; width: 214px; margin-right: 6px; background: url(../images/jetpack-logo.png) center center no-repeat; background: url(../images/jetpack-logo.svg) center center no-repeat, none; background-size: 183px auto; color: #fff; line-height: 60px; font-weight: normal; } .header-nav .jetpack-logo a span { text-indent: -9999px; visibility: hidden; } .header-nav .jetpack-logo a:before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: 183px 32px; } .header-nav .jetpack-modules + .jetpack-modules { margin-left: 15px; } .main-nav { float: left; } .main-nav li { margin: 0; } @media (max-width: 900px) { .main-nav { font-size: 13px; } } .user-nav { float: right; } .user-nav li { margin: 0; } .jetpack-pagestyles #screen-meta { margin: 0; } .jetpack-pagestyles #screen-meta-links .screen-meta-toggle { z-index: 2; } .jetpack-pagestyles #screen-options-link-wrap, .jetpack-pagestyles #contextual-help-link-wrap { border: none; } .jetpack-pagestyles .update-nag { display: none; } .masthead { position: relative; text-align: center; z-index: 1; background-color: #81a844; background-image: linear-gradient(top, #81a844, #8eb74e); } .masthead.hasbutton .flyer { bottom: -270px; } .masthead.hasbutton .subhead { margin-top: 175px; } @media (max-width: 530px) { .masthead.hasbutton .subhead { margin-top: 105px; padding: 0; } } .masthead h1, .masthead h2 { margin: 0 auto; } .masthead h1 { padding: 2.5em 0 1.11111em; max-width: 21.94444em; color: #fff; font: 300 2.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; position: relative; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.12); z-index: 3; } .masthead h1 + .flyby { margin-top: 180px; } @media (max-width: 1147px) { .masthead h1 { padding-top: 1.83333em; font-size: 2.14286em; } } @media (max-width: 782px) { .masthead h1 { max-width: 600px; font-size: 28px; } } @media (max-width: 530px) { .masthead h1 { margin: 0 15px; padding: 31px 0 15px 0; font-size: 21px; font-weight: 400; } } .jetpack-connected .masthead h1 { margin-bottom: 33px; max-width: 600px; } .flyer { position: absolute; bottom: -200px; left: 4%; z-index: 1; -webkit-animation: flyer 3.4s 2s ease-in-out; animation: flyer 3.4s 2s ease-in-out; } .flyer:nth-child(2) { left: 49%; width: 120px; height: 131px; -webkit-animation-delay: 4.6s; animation-delay: 4.6s; -webkit-animation-duration: 2.4s; animation-duration: 2.4s; } .flyer:nth-child(3) { left: 23%; width: 60px; height: 66px; -webkit-animation-delay: 5.8s; animation-delay: 5.8s; -webkit-animation-duration: 4.5s; animation-duration: 4.5s; } .subhead { position: relative; margin-top: 105px; padding: 4em 0; background: #f9f9f9; z-index: 2; } .subhead h2 { max-width: 460px; color: #5d6d74; font: 400 1.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 1px #fff; } @media (max-width: 900px) { .subhead h2 { max-width: 428px; font-size: 20px; } } @media (max-width: 530px) { .subhead h2 { display: none; } } .subhead:after { content: ''; position: absolute; bottom: 100%; left: 0; margin-bottom: -1px; width: 100%; height: 228px; background: url("../images/the-cloud.svg") center bottom repeat-x; pointer-events: none; z-index: -1; } @media (max-width: 1147px) { .subhead { margin-top: 122px; padding: 70px 0 49px; } .subhead:after { background-size: 160% auto; } } @media (max-width: 900px) { .subhead { margin-top: 122px; padding: 70px 0 49px; } } @media (max-width: 530px) { .subhead { margin-top: 83px; padding: 47px 15px 39px; } } .clouds-sm { height: 100px; position: relative; text-align: center; z-index: 1; background-color: #81a844; background-image: linear-gradient(top, #81a844, #89b348); } .clouds-sm:after { content: ''; position: absolute; bottom: 0; left: 0; margin-bottom: -1px; width: 100%; height: 137px; background: url("../images/the-cloud-sm.svg") center bottom repeat-x; pointer-events: none; z-index: 2; } @media (max-width: 530px) { .clouds-sm { height: 90px; } } .featured { border-top: 1px solid #d6d6d6; border-bottom: 1px solid #d6d6d6; background: #fff; position: relative; padding: 2.0em 1em 4.6em 1em; text-align: center; z-index: 1; } .featured:before { content: ""; display: block; position: absolute; top: 0; height: 100%; z-index: -1; } .featured .features, .featured .modules { margin: 0 auto; display: inline-block; } @media (max-width: 530px) { .featured { display: none; } } .featured h2, .module-grid h2 { margin-top: 1em; color: #5d6d74; font: 300 2em/1em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-align: center; } @media (max-width: 900px) { .featured h2, .module-grid h2 { font-size: 30px; } } @media (max-width: 782px) { .featured h2, .module-grid h2 { font-size: 28px; } } .features, .modules { margin: 0 -5px; } .feature, .module { position: relative; float: left; margin: 0 5px 10px; width: 310px; transition: all .2s ease-in-out; } @media (max-width: 1147px) { .feature, .module { margin: .75% 0 .75% 1.5%; width: 32.333333%; transition: none; } .feature:nth-child(3n + 1), .module:nth-child(3n + 1) { margin-left: 0; } .feature:hover, .module:hover { top: 0; box-shadow: none; } } .feature { -webkit-transform: translateZ(0); transform: translateZ(0); } .feature h3 { margin: 0 0 0.58824em; color: #697b84; font-size: 1.21429em; line-height: 1em; font-weight: 800; } .feature p { margin: 0; color: #6e818a; } .feature:before { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 10px; background: rgba(0, 0, 0, 0.02); z-index: -1; -webkit-transform: translateZ(0); transform: translateZ(0); transition: all .2s ease-in-out; } .feature:hover { -webkit-transform: translateY(-5px); -ms-transform: translateY(-5px); transform: translateY(-5px); } .feature:hover h3 { color: #1a8dba; } .feature:hover .feature-img { border: 1px solid #ccc; border-bottom: none; } .feature:hover .no-border { border: none; } .feature:hover:before { -webkit-transform: translateY(5px); -ms-transform: translateY(5px); transform: translateY(5px); } @media (max-width: 1147px) { .feature:hover h3 { color: #6e818a; } .feature:hover .feature-img { border: 1px solid #ddd; border-bottom: none; } .feature:hover .no-border { border: none; } } .feature .feature-img { padding-top: 52%; width: 100%; height: auto; border: 1px solid #ddd; border-bottom: none; } .feature .feature-img.custom-css { background: url("../images/custom-css.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.custom-css { background-image: url("../images/custom-css@2x.jpg"); } } .feature .feature-img.wordpress-connect { background: url("../images/wordpress-connect.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.wordpress-connect { background-image: url("../images/wordpress-connect@2x.jpg"); } } .feature .feature-img.wordpress-stats { background: url("../images/wordpress-stats.jpg") no-repeat; background-size: 100% auto; } @media print, (-webkit-min-device-pixel-ratio: 1.25), (min--moz-device-pixel-ratio: 1.25), (-o-min-device-pixel-ratio: 5 / 4), (min-resolution: 120dpi) { .feature .feature-img.wordpress-stats { background-image: url("../images/wordpress-stats@2x.jpg"); } } .feature .feature-img.no-border { border: none; padding-bottom: 1px; } .feature-description { display: block; padding: 1em 1.07143em 1.07143em; border: 1px solid #ddd; background: #f5f5f5; } .feature:hover .feature-description { background: #fff; border-color: #ccc; } @media (max-width: 1147px) { .feature:hover .feature-description { border: 1px solid #ddd; background: #f5f5f5; } } @media (max-width: 900px) { .feature-description { min-height: 115px; } } .cat { clear: both; margin-bottom: 23px; } .cat h3 { font-size: 24px; font-weight: 300; margin: 0 0 13px 6px; text-align: left; } .cat .clear { clear: both; } .module-grid { text-align: center; } .module-grid h2 { margin: 1em 0; } @media (max-width: 530px) { .module-grid h2 { padding-top: 16px; margin-top: 0; font-size: 25px; } } #module-search { position: relative; width: 100%; max-width: 40.71429em; margin: 0 auto 1.07143em; overflow: hidden; } #jetpack-search { margin: 0; padding: 11px 16px 11px 16px; width: 100%; border: 1px solid #c9ced0; border-radius: 3px; background: #fff; color: #5c6671; line-height: 1.3; } #jetpack-search:focus { color: #5c6671; outline: none; } #jetpack-search:focus + label { background: transparent; opacity: 0; } #jetpack-search::-webkit-input-placeholder { color: #a8acae; } #jetpack-search :-moz-placeholder { color: #a8acae; } #jetpack-search::-moz-placeholder { color: #a8acae; } #jetpack-search:-ms-input-placeholder { color: #a8acae; } #jetpack-search + label { position: absolute; top: 1px; right: 1px; bottom: 1px; width: 48px; color: #abafb1; text-indent: -9999px; pointer-events: none; border-radius: 3px; transition: all .2s ease-in-out; } #jetpack-search + label:after { content: '\f400'; position: absolute; right: 11px; text-align: right; top: 4px; font-size: 1.71429em; font-weight: normal; font-family: "genericons"; } .jp-filter { margin-bottom: 2.85714em; color: #6f7476; } .jp-filter a { display: inline-block; position: relative; padding: 0.76923em 1.46154em; color: #aaa; font: 600 0.92857em/1 "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); background: #eee; border-radius: 3px; background-clip: padding-box; } .jp-filter a.selected, .jp-filter a:hover, .jp-filter a:focus { color: #efefef; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); background: #6f7476; } @media (max-width: 530px) { .jp-filter a { padding: 0.76em 1em; } } .module { display: block; padding: 0.71429em 1.07143em 1em; text-align: left; border: 1px solid #dae0e2; background: #fff; box-shadow: 0 0 0 rgba(0, 0, 0, 0.03); transition: opacity 2s ease-in; } .module:hover { border-color: #8ac9e8; background: #f8fcfe; } .module h3 { cursor: pointer; margin: 0 0 0.5em; color: #1a8dba; font-size: 1.14286em; line-height: 1.4em; font-weight: 700; } .module p { margin: 0; color: #686f72; font-size: 0.85714em; } .module:hover, .module:focus { border-color: #8ac9e8; background: #f8fcfe; } .module.active { border-color: #2ea2cc; box-shadow: inset 4px 0 0 #2ea2cc; } .module.active:hover { border-color: #69bedd; box-shadow: inset 4px 0 0 #69bedd; } .module .button, .module .button-primary { margin-top: 15px; } @media (max-width: 530px) { .module .configure, .module .activate { display: block; width: 100%; text-align: center; } .module .button, .module .button-primary { width: 50%; } .module .button-primary { line-height: normal; padding: 6px 14px; height: auto; font-size: 14px; } } @media screen and (max-width: 450px) { .module .button, .module .button-primary { margin: 20px auto 0 auto; } .module .button.alignright, .module .button-primary.alignright { float: none; } } @media (max-width: 1147px) { .cat .module:nth-child(3n + 1) { margin: .75% 0 .75% 1.5%; } .cat .module:nth-child(3n - 1) { margin-left: 0; } } @media (max-width: 900px) { .cat .module { margin: 1% 0 1% 2%; } .cat .module:nth-child(2n + 1) { margin: 1% 0 1% 2%; } .cat .module:nth-child(2n + 0) { margin-left: 0; } } @media (max-width: 530px) { .cat .module { margin: 5px 0; } .cat .module:nth-child(2n + 1) { margin-left: 0; } .cat .module:nth-child(2n + 0) { margin-left: 0; } } @media (max-width: 900px) { .module { margin: 1% 0 1% 2%; width: 49%; } .module:nth-child(3n + 1) { margin-left: 2%; } .module:nth-child(2n + 1) { margin-left: 0; } } @media (max-width: 530px) { .module { margin: 5px 0; width: 100%; } .module:nth-child(3n + 1) { margin-left: 0; } .module:nth-child(2n + 1) { margin-left: 0; } } .new { position: relative; } .new:after { content: 'NEW'; position: absolute; top: -8px; right: -8px; padding-top: 10px; width: 32px; height: 32px; color: #fff; font-size: 8px; font-weight: 800; text-align: center; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); background: url("../images/new-badge.svg") center center no-repeat; background-size: 100%; border-radius: 50%; } .paid { display: inline-block; position: relative; top: 5px; margin-left: 10px; padding: 1px 6px 0 4px; height: 13px; color: #fff; font: 700 10px/1 "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.05); background: #d0d0d0; vertical-align: top; } .paid:before, .paid:after { position: absolute; top: 0; right: 100%; font: normal 14px/14px "genericons"; } .paid:before { content: '\f503'; color: #d0d0d0; text-shadow: none; } .paid:after { content: '\f428'; margin-right: -5px; font-size: 11px; } .rtl .paid:before { content: '\f501'; } .load-more { margin: 2.71429em 0 6.15385em; } .set { display: none; } .show.set { display: block; } .loading { bottom: 50%; position: absolute; top: 50%; width: 100%; } .loading span { color: #999; } .modal { background: #fff; position: fixed; top: 52px; bottom: 20px; right: 20px; left: 20px; margin-left: 160px; display: none; box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); z-index: 500; } .modal .close { position: absolute; top: 0; right: 0; font: 300 1.71429em "genericons" !important; color: #777; content: '\f405'; display: inline-block; padding: 0.28571em 0.71429em 0.42857em; z-index: 5; } .modal .close:hover { background: #eee; opacity: 0.8; } .modal .close:active { background: #eee; opacity: 0.4; } .modal #jp-post-flair { display: none; } .modal .content-container { position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; padding: 2.14286em; } .modal .content { margin: 0 auto; max-width: 900px; text-align: left; } .modal h2 { text-align: left; margin-top: 0; color: #5d6d74; font: 300 32px "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 1px #fff; } @media (max-width: 530px) { .modal h2 { font-size: 26px; } } .modal h5 { clear: left; } .modal p { font-size: 1.23077em; } .modal footer { position: absolute; left: 0; bottom: 0; width: 100%; padding: 12px 20px; border-top: 1px solid #ddd; background: #fff; text-align: right; } .modal footer ul { margin: 0; } .modal footer li { display: inline-block; margin: 0; } .modal .button-secondary, .modal .button-primary:active { vertical-align: baseline; } @media (max-width: 900px) { .modal { bottom: 5%; margin-left: 36px; font-size: 80%; } .modal .content { top: 38px; } } @media (max-width: 782px) { .modal { top: 66px; margin-left: 0; } } @media (max-width: 600px) { .modal { top: 10px; right: 10px; bottom: 10px; left: 10px; } } .jp-info-img { float: right; margin: 0 0 30px 30px; } .jp-info-img img { border: 1px solid #ddd; max-width: 100%; height: auto; } .jp-info-img img:first-child { margin-top: 0; } @media (max-width: 782px) { .jp-info-img { float: none; margin: 0 0 15px; } } .content-container.modal-footer { bottom: 53px; } .shade { background: #000; bottom: 0; cursor: pointer; display: none; left: 0; opacity: 0.2; position: fixed; right: 0; top: 0; z-index: 11; } .entry-title, .page-template-default h1 { margin-top: 0.61111em; color: #5d6d74; font: 300 2.57143em/1.4em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 1px #fff; } @media (max-width: 530px) { .entry-title, .page-template-default h1 { font-size: 2em; } } .blog h3, .single h3, .page-template-default h2 { margin-top: 0.61111em; color: #5d6d74; font: 300 1.9em "proxima-nova", "Open Sans", Helvetica, Arial, sans-serif; text-shadow: 0 1px 1px #fff; } @media (max-width: 530px) { .blog h3, .single h3, .page-template-default h2 { font-size: 1.4em; } } .page-template-default p { line-height: 1.71429em; } .blog .type-post, .page-template-default .type-page, .single .type-post, .single .type-jetpack_support { float: left; width: 70%; } .footer { margin-top: 1.42857em; position: relative; padding: 10em 0 4.28571em; text-align: center; } .footer:before, .footer:after { content: ''; position: absolute; left: 0; pointer-events: none; } .footer:before { top: 0; margin-top: -1px; width: 100%; height: 195px; } .footer:after { display: none; } .footer .download-jetpack { margin-bottom: 33px; } @media (min-width: 1147px) { .footer { padding-bottom: 35px; } } @media (max-width: 1147px) { .footer { padding-top: 165px; padding-bottom: 0; /*&:after { display: none; }*/ } .footer:before { background-size: 160% auto; } .footer ul { float: none; overflow: hidden; } } @media (max-width: 900px) { .footer { padding-top: 146px; } } @media (max-width: 782px) { .footer { margin-top: 0; } } @media (max-width: 530px) { .footer { margin-top: 0; padding-top: 135px; } } @media (max-width: 320px) { .footer { padding-top: 76px; } } .footer nav { max-width: 100%; } .footer nav a, .footer nav a:visited { padding: 4px 6px; color: #999; } .footer nav a:hover, .footer nav a:focus, .footer nav a:visited:hover, .footer nav a:visited:focus { color: #81A844; } @media (max-width: 1147px) { .footer nav a:hover, .footer nav a:focus, .footer nav a:visited:hover, .footer nav a:visited:focus { color: #81a844; } } @media (max-width: 530px) { .footer nav li { display: block; float: none; margin: 0; text-align: left; } .footer nav a { display: block; padding: 0 16px; line-height: 44px; } } .primary { padding: 25px 15px 10px 15px; border-bottom: 1px solid #eee; } .secondary-footer { margin: 0 auto; } .secondary-footer li { margin-right: 5px; } @media (min-width: 782px) { .secondary-footer { padding: 8px 15px 10px; margin-bottom: 30px; border-bottom: 1px solid #eee; } } @media (min-width: 1147px) { .secondary-footer { margin-bottom: 0; } } @media (max-width: 782px) { .secondary-footer { padding: 8px 15px 8px; border-bottom: none; } } @media (max-width: 530px) { .secondary-footer { margin: 0; padding: 0; border: none; font-weight: 400; } .secondary-footer a { border-top: 1px solid #eee; } } .footer .a8c-attribution { margin: 0; padding: 0 6px; color: #bbb; font-size: 0.78571em; font-family: "Gill Sans", "Gill Sans MT", "Open Sans", Helvetica, Arial, sans-serif; text-transform: uppercase; } .footer .a8c-attribution a { display: inline-block; position: relative; padding: 4px 16px; right: 9999px; outline: 0; } .footer .a8c-attribution a:after { content: 'A'; position: absolute; top: 2px; right: -9999px; height: 100%; color: #999; font-size: 1.54545em; font-family: "automatticons"; text-align: center; } .footer .a8c-attribution a:hover:after { -webkit-animation: candy .4s ease-in-out; animation: candy .4s ease-in-out; } @media (min-width: 782px) { .secondary { padding: 0 15px 10px 15px; border-bottom: 1px solid #eee; } } @media (min-width: 1147px) { .secondary { padding: 0 15px 10px 15px; border-bottom: none; } } .jetpack-message { background: #8eb74e; border: 1px solid #73963d; margin: 33px auto 0; max-width: 90%; position: relative; z-index: 2; } .jetpack-message.is-opt-in { margin: 50px 0 0; max-width: 100%; padding: 10px 15px; background: #fff; border: 0; box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1); font-size: 13px; text-align: center; } .subhead .jetpack-message.is-opt-in { margin: 0; padding-bottom: 0; background: transparent; box-shadow: none; } .subhead .jetpack-message.is-opt-in .jp-button, .subhead .jetpack-message.is-opt-in .jp-button--settings { display: inline-block; } .jetpack-message.is-opt-in p { color: #3c4549; } .jetpack-message.is-opt-in .jp-button, .jetpack-message.is-opt-in .jp-button--settings { margin-top: 15px; display: none; } .jetpack-message .squeezer h2 { font-size: 1em; } .jetpack-message h2 { color: #fff; margin: 0; } .jetpack-message p { color: #fff; margin: 0; opacity: 0.7; } .jetpack-message .squeezer { padding: 23px 23px 23px 80px; position: relative; text-align: left; } .jetpack-message .squeezer:before { color: #fff; content: '\f418'; font-family: 'Genericons'; font-size: 33px; height: 33px; left: 25px; opacity: 0.6; position: absolute; top: 23px; top: calc( 50% - 22px ); } @media (max-width: 530px) { .jetpack-message .squeezer { padding: 23px; } .jetpack-message .squeezer:before { display: none; } } .jetpack-message .squeezer a { color: #FFF; border-bottom: 1px solid #D5E4BD; } .jetpack-message .squeezer a:hover { border-bottom: 1px solid #F1F6E9; } .jetpack-message.error .squeezer:before, .jetpack-message.jetpack-err .squeezer:before { content: '\f414'; } .configure-module .jetpack-message { max-width: 100%; } .jetpack-modules #site-icon-deprecated .info, .modules h3.icon, .jetpack-modules .info a { width: auto; } .jetpack-modules #site-icon-deprecated .info:before, .modules h3.icon:before, .jetpack-modules .info a:before { display: inline-block; position: relative; top: 1px; left: -3px; margin-right: 2px; opacity: 0.8; font: normal 20px "genericons"; vertical-align: top; } .jetpack-modules .info a:before { margin-top: 1px; } .latex:before, .jetpack-modules #latex .info a:before { content: '\f408'; } .carousel:before, .jetpack-modules #carousel .info a:before { content: '\f102'; } .modules h3.contact-form:before, .jetpack-modules #contact-form .info a:before { content: '\f175'; font: normal 20px "dashicons"; } .modules h3.custom-css:before, .jetpack-modules #custom-css .info a:before { content: '\f100'; font: normal 20px "dashicons"; } .modules h3.enhanced-distribution:before, .jetpack-modules #enhanced-distribution .info a:before { content: '\f237'; font: normal 20px "dashicons"; } .modules h3.widgets:before, .jetpack-modules #widgets .info a:before { content: '\f116'; font: normal 20px "dashicons"; } .modules h3.gravatar-hovercards:before, .jetpack-modules #gravatar-hovercards .info a:before { content: 'G'; font-family: "automatticons"; } .infinite-scroll:before, .jetpack-modules #infinite-scroll .info a:before { content: '\f408'; } .comments:before, .jetpack-modules #comments .info a:before { content: '\f108'; } .sso:before, .jetpack-modules #sso .info a:before { content: '\f205'; } .json-api:before, .jetpack-modules #json-api .info a:before { content: '\f415'; } .likes:before, .jetpack-modules #likes .info a:before { content: '\f408'; } .markdown:before, .jetpack-modules #markdown .info a:before { content: '\f462'; } .minileven:before, .jetpack-modules #minileven .info a:before { content: '\f453'; } .manage:before, .jetpack-modules #manage .info a:before { content: '\f205'; } .monitor:before, .jetpack-modules #monitor .info a:before { content: '\f468'; } .notes:before, .jetpack-modules #notes .info a:before { content: '\f300'; } .omnisearch:before, .jetpack-modules #omnisearch .info a:before { content: '\f400'; } .photon:before, .jetpack-modules #photon .info a:before { content: '\f403'; } .post-by-email:before, .jetpack-modules #post-by-email .info a:before { content: '\f410'; } .protect:before, .jetpack-modules #protect .info a:before { content: '\f470'; position: relative; top: -1px; } .modules h3.publicize:before, .jetpack-modules #publicize .info a:before { content: '\f237'; font: normal 20px "dashicons"; } .related-posts:before, .jetpack-modules #related-posts .info a:before { content: '\f420'; } .sharedaddy:before, .jetpack-modules #sharedaddy .info a:before { content: '\f415'; } .shortcodes:before, .jetpack-modules #shortcodes .info a:before { content: '\f100'; } .verification-tools:before, .jetpack-modules #verification-tools .info a:before { content: '\f425'; } .after-the-deadline:before, .jetpack-modules #after-the-deadline .info a:before { content: '\f411'; } .subscriptions:before, .jetpack-modules #subscriptions .info a:before { content: '\f410'; } .tiled-gallery:before, .jetpack-modules #tiled-gallery .info a:before { content: '\f103'; } .modules h3.vaultpress:before, .jetpack-modules #vaultpress .info a:before { content: 'V'; font-family: "automatticons"; } .videopress:before, .jetpack-modules #videopress .info a:before { content: '\f104'; } .modules h3.widget-visibility:before, .jetpack-modules #widget-visibility .info a:before { content: '\f116'; font: normal 20px "dashicons"; } .stats:before, .jetpack-modules #stats .info a:before { content: '\f205'; } .shortlinks:before, .jetpack-modules #shortlinks .info a:before { content: '\f107'; } .modules h3.custom-content-types:before, .jetpack-modules #custom-content-types .info a:before { content: '\f498'; font: normal 20px "dashicons"; } .modules h3.site-icon:before, .jetpack-modules #site-icon .info a:before { content: '\f475'; } .jetpack-modules #site-icon-deprecated .info:before { content: '\f475'; } .jetpack-modules #sitemaps .info a:before { content: '\f507'; } @media (max-width: 782px) { .blog .type-post, .page-template-default .type-page, .single .type-post, .single .type-jetpack_support { width: 100%; } } @media (max-width: 600px) { .clouds-sm { display: none; } } @media (max-width: 530px) { .wrap.inner.jp-support .jp-support-column-left { width: 100%; } .wrap.inner.jp-support .jp-support-column-left .widget-text { margin-right: 0; width: 100%; } .wrap.inner.jp-support .jp-support-column-right { width: 100%; } } @media screen and (max-width: 515px) { .jp-frame .header-nav { padding-bottom: 10px; } .jp-frame .header-nav li { line-height: 30px; } .jp-frame .header-nav .jetpack-logo { width: 100%; text-align: center; } .jp-frame .header-nav .jetpack-modules { margin: 0; width: 50%; text-align: right; padding: 0 5px; } .jp-frame .header-nav .jetpack-modules + .jetpack-modules { text-align: left; } .jp-frame .header-nav .jetpack-modules:nth-child(4) { text-align: center; margin: 0 auto; width: 100%; } .jp-frame .header-nav .jetpack-modules:nth-child(4) a { padding: 0 10px; } } @media (max-width: 320px) { .jetpack_page_jetpack_modules .wrap { padding: 0 0 1em; } } .page-content.configure { margin-top: 0; } .configure .frame.top { border: none; box-shadow: none; padding-top: 1.42857em; position: relative; top: auto; } .configure .frame.top.fixed { background: #f9f9f9; border-bottom: 1px solid #e9e9e9; padding-left: 160px; margin-top: -6px; position: fixed; right: 0; top: 32px; width: 100%; z-index: 4; box-shadow: 0 2px 2px -2px #eee; } @media (max-width: 782px) { .configure .frame.top.fixed { border: none; box-shadow: none; padding-top: 1.42857em; position: relative; top: auto; } } @media (max-width: 600px) { .configure .frame.top.fixed { top: 0; } } .configure .frame.top .tablenav.top { float: left; } @media (max-width: 900px) { .configure .frame.top .tablenav.top .actions { display: block; } } @media (max-width: 782px) { .configure .frame.top .tablenav.top .actions { margin-top: 6px; } } .jp-frame-top-fixed .configure { padding-top: 94px; } .filter-search { display: none; float: right; margin-top: 10px; } @media (max-width: 782px) { .filter-search { display: block; } } @media (max-width: 530px) { .filter-search { display: none; } } .module-actions.landing-page { float: right; margin-right: 15px; } .module-actions.landing-page a { font-size: 0.6em; } .table-bordered.jetpack-modules { border: none; margin-bottom: 0; } .table-bordered.jetpack-modules tr.jetpack-module th { border-left: 0; padding: 14px 4px 0; } .table-bordered.jetpack-modules tr.jetpack-module th input { display: block; } .table-bordered.jetpack-modules tr.jetpack-module:hover .genericon { display: inline-block; } .table-bordered.jetpack-modules tr.jetpack-module:hover td .row-actions span a { opacity: 1; } .table-bordered.jetpack-modules tr.jetpack-module.active th, .table-bordered.jetpack-modules tr.jetpack-module.active td { background: #f7fcfe; } .table-bordered.jetpack-modules tr.jetpack-module.active th { border-left: 4px solid #2ea2cc; padding-left: 0px; } .table-bordered.jetpack-modules tr.jetpack-module.active td:first-child { border-left: 4px solid #2ea2cc; } .table-bordered.jetpack-modules tr.jetpack-module.unavailable { opacity: 0.3; } .table-bordered.jetpack-modules tr.jetpack-module.unavailable input { display: none; } .table-bordered.jetpack-modules tr.jetpack-module#vaultpress { opacity: 1; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated span { color: #888; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated .dep-msg { margin-right: 10px; color: #555; } .table-bordered.jetpack-modules tr.jetpack-module th, .table-bordered.jetpack-modules tr.jetpack-module td { background: #fff; margin: 0; box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1); } .table-bordered.jetpack-modules tr.jetpack-module td { padding: 10px 10px 8px 14px; line-height: 25px; } .table-bordered.jetpack-modules tr.jetpack-module td:first-child { border-left: 4px solid #fff; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { float: right; padding: 0 0 1px; visibility: visible; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span { margin-left: 5px; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a { opacity: 0; } .table-bordered.jetpack-modules tr.jetpack-module td .row-actions span a:focus { opacity: 1; } @media (max-width: 530px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: none; } } @media (max-width: 782px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: block; padding-left: 10px; visibility: visible; } } .table-bordered.jetpack-modules > thead > tr > th { border: 0; vertical-align: middle; } .table-bordered.jetpack-modules > thead > tr > th:last-child { padding-right: 0; } @media (max-width: 782px) { .table-bordered.jetpack-modules > thead > tr > th:last-child { padding-left: 0; } } .table-bordered.jetpack-modules td { background: #fff; } .table-bordered.jetpack-modules #doaction { margin-top: 0; } @media (max-width: 782px) { .table-bordered.jetpack-modules #doaction { padding: 10px 7px; } } .table-bordered.jetpack-modules .checkall { margin-top: 1px; } .table-bordered.jetpack-modules .filter-search { margin-top: 8px; } .table-bordered.jetpack-modules .genericon { color: #999; display: none; margin: 7px 3px 0; } @media (max-width: 900px) { .table-bordered.jetpack-modules .genericon { display: inline-block; } } .table-bordered.jetpack-modules .med { width: 70px; } .table-bordered.jetpack-modules .sm { width: 30px; } @media (max-width: 782px) { .table-bordered.jetpack-modules .check-column { width: 50px; } } .fixed-top .check-column { padding: 8px 10px 0 10px; width: 2.2em; } .wrap { margin: 0; padding: 0 1.5em 1em; overflow: hidden; } .wrap h2 { font-size: 24px; font-weight: 400; } .wrap .manage-left { float: left; margin: 0; padding: 0; width: 63%; } .wrap .manage-left table { width: 100%; } .wrap .manage-left th { font-weight: 400; } @media (max-width: 782px) { .wrap .manage-left { width: 100%; } } .wrap .manage-right { margin: 0; padding: 0; /*position: absolute; right: 0;*/ float: right; width: 35%; z-index: 1; } .wrap .manage-right p { font-size: 12px; font-weight: bold; color: #bbb; padding-top: 2px; text-transform: uppercase; letter-spacing: 1px; clear: left; } .wrap .manage-right .bumper { margin-left: 33px; } .wrap .manage-right.show { display: block; overflow-y: auto; overflow-x: hidden; position: absolute; z-index: 100000; } .wrap .manage-right .search-bar { margin-bottom: 18px; max-width: 300px; } .wrap .manage-right p.search-box { float: none; height: auto; margin-bottom: 0; position: relative; } .wrap .manage-right p.search-box input[type='search'] { padding: 0 8px; width: 90%; line-height: initial; } @media (max-width: 782px) { .wrap .manage-right p.search-box input[type='search'] { float: left; padding: 9px 8px; } } .wrap .manage-right p.search-box input[type="submit"] { display: none; } .wrap .manage-right .button-group .button { outline: none; } .wrap .manage-right .subsubsub { margin: 0; padding: 0; } .wrap .manage-right .subsubsub a { padding: 0; line-height: inherit; } .wrap .manage-right .subsubsub .current { padding: 1px 5px; border-radius: 2px; margin-left: -5px; background: #0D72B2; color: #fff; } .wrap .manage-right .subsubsub .current .count { color: #BCD7E7; font-weight: 200; } .wrap .manage-right .subsubsub li { display: block; text-align: left; } @media (max-width: 782px) { .wrap .manage-right { background: #fff; bottom: 0; display: none; min-width: 300px; position: fixed; right: 0; top: 0; z-index: 13; box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); } .wrap .manage-right .bumper { margin: 13px; } .wrap .manage-right .navbar-form { margin: 0; padding: 0; } } @media (max-width: 782px) { .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary):not(.check-column) { padding: 11px 10px; display: block; } .jetpack_page_jetpack_modules #doaction { padding: 7px 14px; } .jetpack_page_jetpack_modules .fixed-top thead .check-column { padding: 28px 10px 0 10px; } .jetpack_page_jetpack_modules .filter-search { margin-top: 28px; } .jetpack_page_jetpack_modules .filter-search .button { padding: 7px 14px; } .manage-right.show .subsubsub li { padding: 5px; } } @media (max-width: 650px) { .table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions { float: none; padding-left: 18px; } } @media (max-width: 430px) { .table-bordered.jetpack-modules tr.jetpack-module td .row-actions { display: none; } .table-bordered.jetpack-modules tr.jetpack-module.deprecated td .row-actions { display: block; } } /* 'Pages' is a temporary location for these styles, until we can break them up into their proper atmoic locations */ .configure-module p { font-size: 14px; } .configure-module p.success, .configure-module p.error { color: #fff; padding: 10px; } .configure-module p.success { background-color: #81a844; } .configure-module p.error { background-color: #d94f4f; } .protect-status p { font-size: 16px; } .protect-status strong { display: inline-block; margin-top: 10px; background: #fff; padding: 10px; border: 1px #ddd solid; font-size: 16px; color: #000; max-width: 100%; } .protect-status.attn { color: #d94f4f; } .protect-status.working { color: #81a844; } /* Whitelisting */ #non-editable-whitelist { margin-top: 15px; } .protect-whitelist textarea { width: 100%; min-height: 150px; } #editable-whitelist .whitelist-table { width: 100%; } /* btns + inputs */ .configure-module input[disabled] { opacity: .5; } .configure-module input.button-primary { font-weight: bold; } /* whitelist table */ .whitelist-table { border-top: 1px solid; border-right: 1px solid; border-color: #ddd; background-color: #fff; } .whitelist-table td, .whitelist-table th { padding: 10px; margin: 0; border-bottom: 1px solid; border-left: 1px solid; border-color: #ddd; font-size: 14px; } .whitelist-table th.heading { font-weight: bold; color: #5d6d74; text-align: left; background-color: #eee; } .whitelist-table td.item-actions { border-left: none; text-align: right; } .whitelist-table .toolbar { padding: 0; } .whitelist-table .add-btn { text-align: center; width: 10%; border-left: 1px #ddd solid; } .ip-address, .enter-ip { width: 90%; text-align: left; vertical-align: middle; } .delete-ip-address { text-align: center; border: 0; background: transparent; color: #6f7476; box-shadow: none; font-size: 20px; margin: 0; padding: 0; cursor: pointer; border-radius: 2px; } .delete-ip-address:hover { background: #eee; } .toolbar div { float: left; padding: 10px; } @media only screen and (min-width: 1100px) { #non-editable-whitelist { width: 28%; float: right; margin-top: 0; } .protect-whitelist { width: 65%; float: left; } } /* end > 1065px */ @media only screen and (max-width: 1130px) { .enter-ip input[type="text"] { max-width: 175px; } } /* end < 1130px */ @media only screen and (max-width: 1250px) and (min-width: 1065px), (max-width: 730px) and (min-width: 600px) { .enter-ip { width: 85%; } .add-btn { width: 15%; } } /* end < 1250px & > 1065px */ @media only screen and (max-width: 782px) { .add-btn { text-align: right; } .add-btn .ip-add { margin-top: 4px; margin-bottom: 3px; } } /* end < 782px */ @media only screen and (max-width: 730px) { .add-btn { text-align: center; } } /* end < 730px */ @media only screen and (max-width: 665px) and (min-width: 600px) { .enter-ip input[type="text"] { max-width: 165px; } } /* end < 665px & > 600px */ @media only screen and (max-width: 600px) { .toolbar div { width: 100%; } .add-btn { border-top: 1px #ddd solid; } .enter-ip { text-align: center; } .enter-ip strong { display: block; margin-bottom: 5px; } .enter-ip input[type="text"] { width: 100%; max-width: 100%; } .add-btn input, .enter-ip .button { width: 50%; margin: 0 auto; } .enter-ip .button { margin-top: 10px; } } /* end > 600px */ @media only screen and (max-width: 400px) { .protect-status strong { font-size: 12px; overflow: auto; } .add-btn input, .enter-ip .button { width: 100%; } } /* end < 400px */ .my-jetpack-actions { margin: 0 0 40px 0; } .my-jetpack-actions .j-col { padding: 0; text-align: center; } .my-jetpack-actions #user-list { height: 30px; margin-top: -1px; margin-left: -3px; } #jetpack-disconnect-content { display: none; text-align: center; } #jetpack-disconnect-content .cancel-disconnect { display: block; margin-top: 10px; } .connection-details { border: 1px #ddd solid; } .connection-details.local-user { margin-bottom: 10px; } .connection-details .user-01, .connection-details .wpuser-02, .connection-details .action-btns { padding: 10px; } .connection-details .user-01 .button, .connection-details .user-01 select, .connection-details .wpuser-02 .button, .connection-details .wpuser-02 select, .connection-details .action-btns .button, .connection-details .action-btns select { margin-top: 5px; } .connection-details .wpuser-02 { margin-top: 10px; } .connection-details h3 { padding: 10px; margin: 0; background: #eee; border-bottom: 1px #ddd solid; font-size: 14px; } .jp-user img { margin-right: 10px; border-radius: 50%; } .jp-user div, .wp-user div, .wp-action div { display: inline-block; width: 100%; } .j-col.jp-user, .j-col.wp-user, .j-col.wp-action { padding: 0; } .my-jetpack-actions select { max-width: 150px; } .j-actions .button:nth-child(3) { margin-right: 5px; } .j-row.disconnect { text-align: center; } .j-row.disconnect .button { margin: 0 auto; } a.what-is-primary { color: #b4b9be; margin-left: 4px; } @media (max-width: 782px) { .wp-action { border-top: 1px #ddd solid; } .wp-action h3 { display: none; } } @media screen and (max-width: 500px) { .connection-details { font-size: 11px; } .connection-details h3 { font-size: 12px; padding: 5px; } .connection-details .user-01, .connection-details .wpuser-02 { padding: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 200px; } .connection-details .action-btns { text-align: center; } } @media (max-width: 530px) { .connection-details .wpuser-02 { margin-top: 0; padding: 12px; } } @media screen and (max-width: 450px) { .j-actions .button { width: 100%; margin-bottom: 5px; text-align: center; } .j-actions .button.alignright { float: none; } } @media screen and (max-width: 350px) { .user-01, .wpuser-02 { max-width: 100px; } } .manage__icon { width: 155px; height: 155px; margin: 20px auto; } .manage-page .manage__description { max-width: 600px; text-align: center; font-size: 22px; color: #999; margin: 20px auto; } .manage-page .manage__button { font-size: 16px; padding: 0 20px; height: 40px; line-height: 40px; } .manage__title .genericon { font-size: 38px; color: #81A944; } .manage__link { font-size: 16px; padding: 0 20px; height: 40px; line-height: 40px; font-weight: normal; } .manage__link .genericon { font-size: 28px; vertical-align: middle; margin-top: -6px; } .jp-content .hide { display: none; } .jp-content .pointer { cursor: pointer; } .jp-content .landing { margin: 0 auto; z-index: 2; position: relative; } .jp-content h1 { font: 300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif; position: relative; z-index: 3; width: 100%; text-align: center; } .jp-content h1.success { color: #81a844; } .jp-content .footer { padding-top: 0; margin-top: 0; background-image: none; } .jp-content .footer:before { height: inherit; } .jp-content .more-info:before { content: none; } .landing .wpcom-connect { min-height: 400px; } .wpcom-connect .j-col { padding: 0; } .wpcom-connect .connect-desc { padding-right: 25px; } .wpcom-connect .connect-btn { text-align: center; } .module-grid h2 { color: #000; font: 300 2.57143em/1em "proxima-nova","Open Sans",Helvetica,Arial,sans-serif; } .download-jetpack { margin-top: 1em !important; } #jump-start-area { margin-top: 35px; padding-left: 60px; padding-right: 60px; background: #fefefe; border: 1px #dae0e2 solid; padding-bottom: 20px; text-align: center; } #jump-start-area .connect-btn { text-align: center; } #jump-start-area #jumpstart-cta, #jump-start-area .jumpstart-desc { padding: 0; } #jump-start-area p { font-size: 14px; line-height: 185%; } #jump-start-area .spinner { float: none; margin: 0 auto; position: absolute; bottom: 0; height: 100%; width: 100%; background-position: 50% 56%; background-color: rgba(254, 254, 254, 0.99); display: block; opacity: .9; } .jumpstart-message p { padding-right: 25px; } .jumpstart-desc { text-align: left; } #jumpstart-cta { text-align: center; display: inline-block; float: none; } .dismiss-jumpstart { color: #999; font-size: 14px; } #jumpstart-cta .button, #jumpstart-cta .button-primary { margin: 1em; font-size: 18px; height: 45px !important; padding: 8px 15px 1px; } #jumpstart-cta .button-primary { display: block; margin: 35px 20px 5px 20px; } #jp-config-list { position: relative; padding-top: 15px; padding-bottom: 15px; margin-left: -15px; margin-right: -15px; } #jp-config-list .j-col { padding: 15px; } #jp-config-list strong { display: inline-block; } #jp-config-list small { display: block; margin-top: 5px; line-height: 150%; } #jp-config-list .close { position: absolute; top: 10px; right: 0; text-transform: uppercase; font-weight: bold; display: block; z-index: 5; } .jp-config-status { text-transform: uppercase; font-size: 10px; font-weight: bold; line-height: 100%; color: #fff; background: #9fbd72; border-radius: 2px; padding: 2px 4px; display: inline-block; } .nux-intro h3 { background: #81a844; color: #fff; font-weight: 600; padding: .75em; margin: 0; } .nux-intro h4 { margin: 0 0 2px 0; } .nux-intro p { text-align: center; font-size: 1.24em; line-height: 175%; } .nux-intro a { transition: all .4s ease; } .nux-intro .j-col { padding: 0 0.5em; } .nux-intro .j-col:first-of-type { padding-left: 0; } .nux-intro .j-col:last-of-type { padding-right: 0; } .nux-intro .nux-in { background: #ececec; -webkit-border-bottom-right-radius: 6px; -webkit-border-bottom-left-radius: 6px; -moz-border-radius-bottomright: 6px; -moz-border-radius-bottomleft: 6px; border-bottom-right-radius: 6px; border-bottom-left-radius: 6px; } .nux-intro .nux-in h3 { font-size: 1.10em; -webkit-border-top-left-radius: 6px; -webkit-border-top-right-radius: 6px; -moz-border-radius-topleft: 6px; -moz-border-radius-topright: 6px; border-top-left-radius: 6px; border-top-right-radius: 6px; } .nux-intro .nux-in h3 .dashicons { float: right; color: #658435; font-size: 1.25em; padding-left: 0; } .nux-intro .nux-in h3 .dashicons:hover { color: #57722e; } .nux-intro .nux-in p { font-size: .9em; line-height: 150%; margin: 0; text-align: left; color: #686f72; } .nux-intro .nux-in .j-row { border-bottom: 1px #f9f9f9 solid; padding: 5px 0; position: relative; min-height: 70px; } .nux-intro .nux-in .j-row:hover { background: #e0e0e0; } .nux-intro .nux-in .unavailable { opacity: 0.5; } .nux-intro .nux-in .unavailable .act { display: none; } .nux-intro .nux-in .paid { top: 4px; margin-left: 12px; } .nux-intro .nux-in .dashicons { color: #81a844; font-size: 1em; position: relative; top: 3px; padding-left: 6px; } .nux-intro .nux-in .dashicons:hover { color: #57722e; } .nux-intro .nux-in .dashicons-external { font-size: 1.5em; top: 2px; padding-left: 3px; } .nux-intro .nux-in .lmore { font-size: 11px; color: #81a844; } .nux-intro .nux-in .lmore:hover { color: #57722e; } .nux-intro .feat.j-col { padding: 10px 2px 10px 10px; } .nux-intro .feat .dashicons { display: none; } .nux-intro .activated .feat .dashicons { display: inline-block; } .nux-intro .act { position: absolute; top: 50%; -ms-transform: translate(0, -50%); -webkit-transform: translate(0, -50%); transform: translate(0, -50%); right: 8px; float: right; } .nux-intro .act.j-col { padding: 5px; text-align: right; } .nux-intro .module-action { text-transform: uppercase; font-size: .85em; font-weight: 600; } .nux-intro .wpcom h3 { background: #0087be; } .nux-intro .wpcom h3 .dashicons { color: #00638b; } .nux-intro .wpcom h3 .dashicons:hover { color: #005172; } .nux-intro .wpcom .j-col { padding: 10px; } .nux-intro .wpcom .goto { text-align: center; padding: 1em; } .nux-intro .wpcom .goto:hover { background: #ececec; } .nux-intro .wpcom .goto .j-col { padding: 0 5px; } .nux-intro .wpcom .goto a { width: 100%; padding: .25em; height: auto; } .nux-intro .wpcom .goto .button { height: auto; min-height: 28px; line-height: 18px; white-space: normal; max-width: 200px; margin-bottom: 0; padding-top: 4px; padding-bottom: 5px; } .nux-intro .wpcom .goto .feat { position: absolute; top: 50%; -ms-transform: translate(0, -50%); -webkit-transform: translate(0, -50%); transform: translate(0, -50%); } .nux-intro .nux-foot .j-col { padding: 1em; } .nux-foot { margin-top: 2em; background: #ececec; border-radius: 6px; } .nux-foot .j-col { min-height: 75px; padding: 1em; } @media (max-width: 650px) { .nux-foot .j-col { width: 100%; } } .nux-foot .j-col + .j-col { border-left: 1px #f9f9f9 solid; } @media (max-width: 650px) { .nux-foot .j-col + .j-col { border-left: none; border-top: 1px #f9f9f9 solid; } } .nux-foot .actions { margin-top: 1em; } .nux-foot a { text-decoration: underline; } .nux-foot img { float: right; margin-left: 1em; width: 75px; border-radius: 4px; } .nux-foot p { font-size: .9em; text-align: left; font-weight: 600; margin-top: 0; } .nux-foot p + p { font-weight: 400; margin-bottom: 0; } .nux-foot ul { font-size: .9em; margin-bottom: 0; } .nux-foot ul li { margin-right: .875em; margin-bottom: 0; line-height: 175%; display: inline-block; vertical-align: middle; } .form-toggle[type="checkbox"] { opacity: 0; position: absolute; } .form-toggle__switch { position: relative; display: inline-block; border-radius: 12px; -moz-box-sizing: border-box; box-sizing: border-box; padding: 2px; width: 40px; height: 24px; background: #b9b9b9; vertical-align: middle; outline: 0; cursor: pointer; transition: all .4s ease; } .form-toggle__switch:before, .form-toggle__switch:after { position: relative; display: block; content: ""; width: 20px; height: 20px; } .form-toggle__switch:after { left: 0; border-radius: 50%; background: #fff; transition: all .2s ease; } .form-toggle__switch:before { display: none; } .form-toggle__switch:hover { background: #bdd597; } .form-toggle__label { cursor: pointer; } .plugin-action__label { padding-right: 5px; top: -1px; position: relative; color: #8e9598; } .activated .plugin-action__label { color: #81a844; } .form-toggle:focus + .form-toggle__label .form-toggle__switch, .form-toggle:focus:checked + .form-toggle__label .form-toggle__switch { box-shadow: 0 0 0 2px #0087be; } .form-toggle:checked + .form-toggle__label .form-toggle__switch { background: #81a844; } .form-toggle:checked + .form-toggle__label .form-toggle__switch:after { left: 16px; } .form-toggle:checked:hover + .form-toggle__label .form-toggle__switch { background: #bdd597; } .form-toggle:disabled + .form-toggle__label .form-toggle__switch, .form-toggle:disabled:hover + .form-toggle__label .form-toggle__switch { background: #e9eff3; } .form-toggle.is-toggling + .form-toggle__label .form-toggle__switch { background: #81a844; } .form-toggle.is-toggling:checked + .form-toggle__label .form-toggle__switch { background: #bdd597; } .form-toggle.is-compact + .form-toggle__label .form-toggle__switch { border-radius: 8px; width: 24px; height: 16px; } .form-toggle.is-compact + .form-toggle__label .form-toggle__switch:before, .form-toggle.is-compact + .form-toggle__label .form-toggle__switch:after { width: 12px; height: 12px; } .form-toggle.is-compact:checked + .form-toggle__label .form-toggle__switch:after { left: 8px; } @media (max-width: 1147px) { .jp-content .landing { padding: 0 2em; } .jp-content .footer { padding-top: 1.5em; } .nux-intro .main-col { width: 50%; margin-bottom: 2em; } .nux-intro .main-col.wpcom { width: 100%; } .nux-intro .main-col + .main-col { padding-right: 0; } .nux-intro .wpcom { padding: 0; } .nux-intro .wpcom .j-row { width: 50%; float: left; border-bottom: 1px #f9f9f9 solid; border-right: 1px #f9f9f9 solid; } .nux-intro .wpcom .j-row:last-of-type { width: 100%; float: none; clear: both; border: none; border-top: 1px #f9f9f9 solid; position: relative; top: -1px; } .nux-intro .wpcom .goto .feat a { float: left; } .nux-foot .j-col { border: none; } } @media (max-width: 900px) { .nux-intro .main-col { width: 100%; padding: 0; margin-bottom: 2em; } .nux-intro .wpcom .j-row { width: 100%; float: none; } } @media (max-width: 782px) { #jumpstart-cta .button-primary { margin: 10px 0 5px 0; } #jump-start-area .spinner { background-position: 50% 35%; } } @media (max-width: 600px) { .nux-intro h1 { font-size: 1.75em; } .nux-intro p { font-size: 1em; } } @media (max-width: 530px) { .jp-content .landing { padding: 0 .5em; } #jump-start-area { padding: 0 1em; } .jumpstart-message p { padding-right: 0; } #jumpstart-cta .button-primary { margin: 0 0 5px 0; padding-bottom: 10px; } .footer .a8c-attribution a:after { top: 6px; } } .nav-horizontal:before, .features:before, .modules:before, .load-more:before, .nav-horizontal:after, .features:after, .modules:after, .load-more:after { content: ""; display: table; } .nav-horizontal:after, .features:after, .modules:after, .load-more:after { clear: both; } /*# sourceMappingURL=jetpack-admin.css.map */plugins/jetpack/class.jetpack-twitter-cards.php0000644000312500031250000002133312654410420022306 0ustar eacbforgeacbforgID : null ) ); /** This action is documented in modules/sharedaddy/sharing-sources.php */ $site_tag = apply_filters( 'jetpack_twitter_cards_site_tag', $site_tag, $og_tags ); if ( ! empty( $site_tag ) ) { $og_tags['twitter:site'] = self::sanitize_twitter_user( $site_tag ); } if ( ! is_singular() || ! empty( $og_tags['twitter:card'] ) ) { return $og_tags; } /* * The following tags only apply to single pages. */ $card_type = 'summary'; // Try to give priority to featured images if ( class_exists('Jetpack_PostImages') ) { $featured = Jetpack_PostImages::from_thumbnail( $post->ID, 240, 240 ); if ( !empty( $featured ) && count( $featured ) > 0 ) { if ( (int) $featured[0]['src_width'] >= 280 && (int) $featured[0]['src_height'] >= 150 ) { $card_type = 'summary_large_image'; $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 640, $featured[0]['src'] ) ); } else { $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 240, $featured[0]['src'] ) ); } } } // Only proceed with media analysis if a featured image has not superseded it already. if ( empty( $og_tags['twitter:image'] ) && empty( $og_tags['twitter:image:src'] ) ) { if ( ! class_exists( 'Jetpack_Media_Summary' ) && defined('IS_WPCOM') && IS_WPCOM ) { include( WP_CONTENT_DIR . '/lib/class.wpcom-media-summary.php' ); } // Test again, class should already be auto-loaded in Jetpack. // If not, skip extra media analysis and stick with a summary card if ( class_exists( 'Jetpack_Media_Summary' ) ) { $extract = Jetpack_Media_Summary::get( $post->ID ); if ( 'gallery' == $extract['type'] ) { list( $og_tags, $card_type ) = self::twitter_cards_define_type_based_on_image_count( $og_tags, $extract ); } elseif ( 'video' == $extract['type'] ) { // Leave as summary, but with large pict of poster frame (we know those comply to Twitter's size requirements) $card_type = 'summary_large_image'; $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 640, $extract['image'] ) ); } else { list( $og_tags, $card_type ) = self::twitter_cards_define_type_based_on_image_count( $og_tags, $extract ); } } } $og_tags['twitter:card'] = $card_type; // If we have information on the author/creator, then include that as well if ( ! empty( $post ) && ! empty( $post->post_author ) ) { /** This action is documented in modules/sharedaddy/sharing-sources.php */ $handle = apply_filters( 'jetpack_sharing_twitter_via', '', $post->ID ); if ( ! empty( $handle ) && 'wordpressdotcom' != $handle && 'jetpack' != $handle ) { $og_tags['twitter:creator'] = self::sanitize_twitter_user( $handle ); } } // Make sure we have a description for Twitter, their validator isn't happy without some content (single space not valid). if ( ! isset( $og_tags['og:description'] ) || '' == trim( $og_tags['og:description'] ) || __('Visit the post for more.', 'jetpack') == $og_tags['og:description'] ) { // empty( trim( $og_tags['og:description'] ) ) isn't valid php $has_creator = ( ! empty($og_tags['twitter:creator']) && '@wordpressdotcom' != $og_tags['twitter:creator'] ) ? true : false; if ( ! empty( $extract ) && 'video' == $extract['type'] ) { // use $extract['type'] since $card_type is 'summary' for video posts $og_tags['twitter:description'] = ( $has_creator ) ? sprintf( __('Video post by %s.', 'jetpack'), $og_tags['twitter:creator'] ) : __('Video post.', 'jetpack'); } else { $og_tags['twitter:description'] = ( $has_creator ) ? sprintf( __('Post by %s.', 'jetpack'), $og_tags['twitter:creator'] ) : __('Visit the post for more.', 'jetpack'); } } return $og_tags; } static function sanitize_twitter_user( $str ) { return '@' . preg_replace( '/^@/', '', $str ); } static function prioritize_creator_over_default_site( $site_tag, $og_tags = array() ) { if ( ! empty( $og_tags['twitter:creator'] ) && in_array( $site_tag, array( '@wordpressdotcom', '@jetpack' ) ) ) { $site_tag = $og_tags['twitter:creator']; } return $site_tag; } static function twitter_cards_define_type_based_on_image_count( $og_tags, $extract ) { $card_type = 'summary'; $img_count = $extract['count']['image']; if ( empty( $img_count ) ) { // No images, use Blavatar as a thumbnail for the summary type. if ( function_exists('blavatar_domain') ) { $blavatar_domain = blavatar_domain( site_url() ); if ( blavatar_exists( $blavatar_domain ) ) { $og_tags['twitter:image'] = blavatar_url( $blavatar_domain, 'img', 240 ); } } // Second fall back, Site Logo if ( empty( $og_tags['twitter:image'] ) && ( function_exists( 'jetpack_has_site_logo' ) && jetpack_has_site_logo() ) ) { $og_tags['twitter:image'] = jetpack_get_site_logo( 'url' ); } // Third fall back, Site Icon if ( empty( $og_tags['twitter:image'] ) && ( function_exists( 'jetpack_has_site_icon' ) && jetpack_has_site_icon() ) ) { $og_tags['twitter:image'] = jetpack_site_icon_url( null, '240' ); } // Not falling back on Gravatar, because there's no way to know if we end up with an auto-generated one. } elseif ( $img_count && ( 'image' == $extract['type'] || 'gallery' == $extract['type'] ) ) { // Test for $extract['type'] to limit to image and gallery, so we don't send a potential fallback image like a Gravatar as a photo post. $card_type = 'summary_large_image'; $og_tags['twitter:image'] = esc_url( add_query_arg( 'w', 1400, ( empty( $extract['images'] ) ) ? $extract['image'] : $extract['images'][0]['url'] ) ); } return array( $og_tags, $card_type ); } static function twitter_cards_output( $og_tag ) { return ( false !== strpos( $og_tag, 'twitter:' ) ) ? preg_replace( '/property="([^"]+)"/', 'name="\1"', $og_tag ) : $og_tag; } static function settings_init() { add_settings_section( 'jetpack-twitter-cards-settings', 'Twitter Cards', '__return_false', 'sharing' ); add_settings_field( 'jetpack-twitter-cards-site-tag', __( 'Twitter Site Tag', 'jetpack' ), array( __CLASS__, 'settings_field' ), 'sharing', 'jetpack-twitter-cards-settings', array( 'label_for' => 'jetpack-twitter-cards-site-tag', ) ); } static function sharing_global_options() { do_settings_fields( 'sharing', 'jetpack-twitter-cards-settings' ); } static function site_tag() { $site_tag = get_option( 'jetpack-twitter-cards-site-tag' ); if ( empty( $site_tag ) ) { if ( defined( 'IS_WPCOM' ) && IS_WPCOM ) { return 'wordpressdotcom'; } else { return; } } return $site_tag; } static function settings_field() { wp_nonce_field( 'jetpack-twitter-cards-settings', 'jetpack_twitter_cards_nonce', false ); ?>

        $anon_id ) ); delete_user_meta( $user_id, 'jetpack_tracks_anon_id' ); if ( ! headers_sent() ) { setcookie( 'tk_ai', 'expired', time() - 1000 ); } } $wpcom_user_data = Jetpack::get_connected_user_data( $user_id ); update_user_meta( $user_id, 'jetpack_tracks_wpcom_id', $wpcom_user_data['ID'] ); self::record_user_event( 'user_linked', array() ); } /* Activated module */ static function track_activate_module( $module ) { self::record_user_event( 'module_activated', array( 'module' => $module ) ); } /* Deactivated module */ static function track_deactivate_module( $module ) { self::record_user_event( 'module_deactivated', array( 'module' => $module ) ); } static function record_user_event( $event_type, $data ) { $user = wp_get_current_user(); $site_url = get_option( 'siteurl' ); $data['_via_ua'] = $_SERVER['HTTP_USER_AGENT']; $data['_via_ip'] = $_SERVER['REMOTE_ADDR']; $data['_lg'] = $_SERVER['HTTP_ACCEPT_LANGUAGE']; $data['blog_url'] = $site_url; $data['blog_id'] = Jetpack_Options::get_option( 'id' ); // Top level events should not be namespaced if ( '_aliasUser' != $event_type ) { $event_type = self::$product_name . '_' . $event_type; } $data['jetpack_version'] = defined( 'JETPACK__VERSION' ) ? JETPACK__VERSION : '0'; jetpack_tracks_record_event( $user, $event_type, $data ); } } add_action( 'init', array( 'JetpackTracking', 'track_jetpack_usage' ) ); plugins/jetpack/class.jetpack-bbpress-json-api-compat.php0000644000312500031250000000630712654410420024155 0ustar eacbforgeacbforgpost_type ); } } elseif ( is_string( $args[0] ) ) { $post_type = get_post_type_object( $args[0] ); } // no post type found, bail if ( empty( $post_type ) ) return $caps; // reset the needed caps $caps = array(); // Add 'do_not_allow' cap if user is spam or deleted if ( bbp_is_user_inactive( $user_id ) ) { $caps[] = 'do_not_allow'; // Moderators can always edit meta } elseif ( user_can( $user_id, 'moderate' ) ) { $caps[] = 'moderate'; // Unknown so map to edit_posts } else { $caps[] = $post_type->cap->edit_posts; } return $caps; } } bbPress_Jetpack_REST_API::instance(); plugins/jetpack/readme.txt0000644000312500031250000004315512654411246016271 0ustar eacbforgeacbforg=== Jetpack by WordPress.com === Contributors: automattic, aduth, akirk, allendav, alternatekev, andy, apeatling, azaozz, batmoo, barry, beaulebens, blobaugh, cainm, cfinke, chellycat, christinepollock, csonnek, danielbachhuber, daniloercoli, designsimply, dllh, dsmart, dzver, ebinnion, enej, eoigal, ethitter, gcorne, georgestephanis, gibrown, hew, hugobaeta, HypertextRanch, iammattthomas, iandunn, jblz, jeherve, jenia, jkudish, jmdodd, Joen, johnjamesjacoby, jshreve, koke, kraftbj, lancewillett, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, michaeldcain, michael-arestad, migueluy, mikeyarce, mjangda, mkaz, nickmomrik, obenland, pento, professor44, ryancowles, richardmuscat, richardmtl, roccotripaldi, samhotchkiss, sdquirk, stephdau, tmoorewp, Viper007Bond, westi, yoavf, zinigor Tags: WordPress.com, jet pack, comments, contact, gallery, performance, sharing, security, shortcodes, stats, subscriptions, widgets Stable tag: 3.9.1 Requires at least: 4.3 Tested up to: 4.4 Your WordPress, Simplified. == Description == Jetpack simplifies managing WordPress sites by giving you visitor stats, security services, speeding up images, and helping you get more traffic. Jetpack is a free plugin. = Traffic Growth & Insights = Jetpack tells you how many visits your site gets and helps you **get more traffic** with tools like Related Posts, Publicize, Enhanced Distribution, and Sharing. = Security = Jetpack **protects your site** against brute force attacks and unauthorised logins. We also monitor your site for downtime and keep your plugins updated. = Image Performance = Jetpack automatically **optimizes and speeds up** images using the global WordPress.com content delivery network. This saves you hosting costs by reducing bandwidth. = Centralized Management = With Jetpack comes a **centralized dashboard** on WordPress.com. Manage plugins and menus, publish posts, and view enhanced site stats for all of your sites. = A few more things that our users love = Jetpack includes other features that help you customize your site including Custom CSS, Contact Forms, Galleries and Carousels, Notifications and Subscriptions, Configurable Widgets, and [many more](https://jetpack.me/features). = Dedicated Support = We have an entire team of happiness engineers ready to help you. Ask your questions in the support forum, or [contact us directly](https://jetpack.me/contact-support). = Contributing to Jetpack = Jetpack is open-source and we actively encourage community contributions: whether it's a compliment, bug report, code, or an idea we welcome it with open arms! [Learn about contributing](https://jetpack.me/contribute) or consider [joining our beta program](https://jetpack.me/beta). == Installation == [Install Jetpack from our site](https://jetpack.me/install?from=wporg) by typing in your site address. Alternatively install Jetpack via the plugin directory, or by uploading the files manually to your server. After activating Jetpack, connect to WordPress.com to enable the Jetpack features. If you need additional help [read our detailed instructions (including a video walkthrough)](http://jetpack.me/support/installing-jetpack/). == Frequently Asked Questions == = Is Jetpack free? = Yes! The core features of Jetpack are and always will be free. Jetpack also integrates with paid services like Akismet (anti-spam), VaultPress (backups), and VideoPress (video hosting) but these are not required for Jetpack to function. = Why do I need a WordPress.com account? = Many of our core features (like Photon, Stats, and Protect) make use of the WordPress.com cloud. For this to happen Jetpack requires a (free) WordPress.com account. If you don't have one already you can easily create one during Jetpack's connection process. = I already have a WordPress account, but it's not working. What's going on? = A WordPress.com account is different to the one you use to log into your self-hosted WordPress. If you can log into http://wordpress.com then you already have a WordPress.com account. If you can't, you can easily create one during Jetpack's connection process. = How do I view my stats? = Once you've installed Jetpack your stats will be available via "Site Stats" which appears in the Jetpack menu (under your Dashboard menu within WordPress). = How do I contribute to Jetpack? = There are opportunities for developers at all levels to contribute. [Learn more about contributing to Jetpack](https://jetpack.me/contribute) or consider [joining our beta program](https://jetpack.me/beta). == Screenshots == 1. Jetpack Dashboard. 2. Site Stats. 3. Plugin Bulk Management. 4. Publicize. 5. Related Posts. == Changelog == = 3.9.1 = Release date: Jan 21st, 2016 Bug Fixes: * General: Addresses a namespacing issue which was causing conflicts on some hosting providers. * Sitemaps: Added MSM-Sitemap to the list of plugins which, if installed, will prevent Jetpack Sitemaps from being used = 3.9 = Release date: Jan 20th, 2016 Featured: * New sharing button: let users share your content using Skype. * New "Social Menu" theme tool that uses Genericons to display Social Links. * Sitemap support for better search engine indexing. Enhancements: * Contact Form: Added a new filter that allows you to change the "Required" text. * General: Hidden archived sites in multisite site list. * General: Removed several function calls that would be deprecated in WordPress 4.5. * Infinite Scroll: Added a new filter to check if Infinite Scroll has been triggered. * Likes: Added a conditional to ensure WordPress 4.5 compatibility. * Photon: Improved compatibility with responsive images feature added in WordPress 4.4. * Photon: Now enabled by default on sites using HTTPS. * REST API: Extended the ability to manage users from WordPress.com. * REST API: Increased the performance of the plugin update endpoint. * Responsive Videos: Centering videos when they are wrapped in a centered paragraph. * Sharing: Added a new filter to customize the default OpenGraph description. * Shortcodes: Added Wistia oEmbed support. * Shortcodes: Bandcamp: Added support for new attributes for tracks approved by artists. * Shortcodes: Improved Medium path format recognition. * Slideshow: Improved compatibility with older IE versions. * Staging: Improved staging environment detection. * Widgets: Added "width" option to the Facebook Page widget. * Widgets: Added size parameters to tags in Top Posts to avoid warnings. * Widgets: Introduced major performance and stability improvements to the Display Posts Widget. * Widgets: Refactored to remove deprecated code patterns. Bug Fixes: * AtD: Fixed replacing emojis with images in the text editor in Chrome. * AtD: Made pre tags be excluded from spell-checking. * CPT: Not registering Nova if it is already registered. * Carousel: Fixed a bug where full size images were not always served by Photon. * Carousel: Reverted a change that broke direct link to carousel image. * Contact Form: Fixed a CSV export bug with multiple choice questions. * Contact Form: Fixed notices when creating feedback entries without a contact form. * General: Fixed a scrolling bug on modal window closing. * Infinite Scroll: Disabled in the Customizer when previewing a non-active theme. * Publicize: Fixed notices appearing with bbPress or BuddyPress installed. * Publicize: Showing options only to users that can change them. * Related Posts: Fixed incorrect URLs generated for posts. * Responsive Videos: Fixed warnings in debug mode. * Shortcodes: Bandcamp: Fixed a problem with large track IDs. * Shortcodes: Fixed a problem with dynamic Gist embeds. * Stats: Fixed dashboard widget resize problem. * Widgets: Added a fallback to English US when a locale isn't supported by Facebook. * Widgets: Fixed layout for Twenty Sixteen. = 3.8.2 = Release date: Dec 17th, 2015 Release post: http://wp.me/p1moTy-26v Jetpack 3.8.2 is here to squash a few annoying bugs. Bug Fixes: * Photon: Fixed a bug where some custom thumbnail image sizes weren't being sized properly. * Shortcodes: Fixed an incompatibility with how WordPress renders the YouTube shortcode. * Shortcodes: Tightened up security in the Wufoo shortcode. * Image Widget: Now shows the caption. * Fixed typos in inline docs. * Very minor fixes to: Carousel, Publicize, Google+, and Infinite Scroll. = 3.8.1 = Release date: Dec 1st, 2015 Release post: http://wp.me/p1moTy-23V Jetpack 3.8.1 is here and is fully compatible with WordPress 4.4. Featured: * Photon + Responsive Images FTW. * Fully compatible with Twenty Sixteen. * More accessibility enhancements. * Dropped some weight by optimizing Jetpack's plugin images. Enhancements: * Comments: filter to allow disabling comments per post type. Bug Fixes: * Carousel: Stop page from scrolling to top when Carousel is closed. * Carousel: Browser compatibility fixes with older version of IE. * Markdown: Fixed a bug that would strip markdown when saving in "Quick Edit" mode. * Single Sign On: Fixed login always redirecting to the admin dashboard. * Subscriptions: Filter to allow per-post emails fixed for use in themes. = 3.8.0 = Release date: Nov 4th, 2015 Release post: http://wp.me/p1moTy-1VN We're happy to introduce Jetpack 3.8, which has significant contributions from the Jetpack community. Read more about it here: http://wp.me/p1moTy-1VN Feature enhancements: * New Google+ Badge Widget. Display your profile, page, or community Google+ badge. * New twitch.tv shortcode embeds. Display a Twitch.tv stream in your posts. * Accessibility enhancements. * A handful of new filters to allow further customization of Jetpack. Other enhancements: * Carousel: Added support to retrieve image dimensions from an image url. * Carousel: Simpler algorithm to detect shutter speeds. * Contact Form: New "Checkbox with Multiple Items" field available in the Contact Form. * Contact Form: Allow pre-filling form fields with URL parameters. * Contact Form: Better styling of the emailed form responses. * Performance: Replaced some custom-built functions with core's native functions. * Related Posts: New filter to add post classes to post's container class. * Sharing: New filter to choose if sharing meta box should be shown. * Sharing: New filter to allow sharing button markup to be editable. * Sharing: New filter to allow you to specify a custom Facebook app ID. * Social Media Icons Widget: Added option for YouTube username as well as Channel ID. * Social Media Icons Widget: Added Google+ icon. * Social Media Icons Widget: New filter to allow you to add your own social media icons and links. * Subscriptions: Better errors to your visitors if their subscription sign-up fails. * Subscriptions: Removed "widget" class from Subs shortcode form. Bug fixes: * Carousel: Fixed browser back/forward button behavior. * Contact Form: Allow the email field to be set to empty when building form in post editor. * Facebook Likebox Widget: Fixed an issue where some languages were not translating. * Facebook Likebox Widget: Return a language when none found. * General: Fixed some minor styling issues in the Jetpack admin areas. * General: Add missing parameter to the_title filter call. * General: Prevent scrolling of body when the Jetpack admin modals are opened. * General: Update doc to reflect that Open Graph filter jetpack_enable_opengraph has been deprecated in favor of jetpack_enable_open_graph. * Infinite Scroll: Fixed an error that sometimes occurred that would stop posts from loading. * JSON API: Fixed some undefined notices when publishing a post with the API. * Open Graph: Fixed bug where facebook description content was sometimes being polluted by a filter. * Sharing: Use full SSL Pinterest url instead of protocol relative. * Sharing: Fixed plus signs appearing in tweets shared from iOS. * Shortcodes: Prefer HTTPS for video embeds to avoid mixed content warnings. * Subscriptions Widget: Fix HTML Validation error. * Theme Tools: Check oEmbeds for the presence of a video before adding the responsive videos filter. * Tiled Galleries: Add image alt attribute if there is a title set. This was breaking some screen reader functionality. = 3.7.2 = Release date: September 29th, 2015 * Bug Fix: REST API: Fixed an error when saving drafts and publishing posts = 3.7.1 = Release date: September 28th, 2015 * Enhancement: General: Added inline documentation for various filters and functions * Enhancement: General: Added custom capabilities for module management on multi-site installs * Enhancement: General: Cleaned up old changelog entries from readme * Enhancement: General: Cleaned up unused i18n textdomains * Enhancement: General: Updated the new settings page to look better in various translations * Enhancement: REST API: Added new endpoints to manage users * Enhancement: Sharing: Updated the Google logo * Bug Fix: Carousel: Page scroll no longer disappears after closing the carousel * Bug Fix: Contact Form: Fields are sent and displayed in the correct order * Bug Fix: Contact Form: No longer showing a notice on AJAX actions in feedback lists * Bug Fix: Contact Form: Made using more than two notification emails possible * Bug Fix: Contact Form: Mitigate a potential stored XSS vulnerability. Thanks to Marc-Alexandre Montpas (Sucuri) * Bug Fix: General: Mitigate a potential information disclosure. Thanks to Jaime Delgado Horna * Bug Fix: General: Fixed a locale error in the notifications popout * Bug Fix: General: Fixed a possible fatal error in the client area * Bug Fix: General: Fixed compatibility issues with certain use cases * Bug Fix: General: Disabled connection warnings for multisites with domain mapping * Bug Fix: General: Updated translations for correct link display in admin notices * Bug Fix: REST API: Fixed a fatal error in one of the endpoints * Bug Fix: Sharing: Fixed OpenGraph tags for Instagram embeds * Bug Fix: Sharing: Fixed compatibility issues with bbPress * Bug Fix: Widget Visibility: Fixed a fatal error in case of a missing tag = 3.7.0 = Release date: September 9th, 2015 Feature Enhancements: * New admin page interface to easily configure Jetpack * Added staging site support for testing a connected Jetpack site Additional changes: * Enhancement: CLI: Added a possibility to change all options with confirmation for some of them * Enhancement: Gallery: Added filters to allow new gallery types to be declared * Enhancement: General: Added inline documentation for actions, filters, etc. * Enhancement: General: Changed class variable declarations keyword from var to public * Enhancement: General: Made the Settings page module toggle buttons more accessible * Enhancement: General: The admin bar now loads new notifications popout * Enhancement: General: Renamed some modules to avoid redundant prefixes * Enhancement: General: Switched to the WordPress Core's spinner image * Enhancement: General: Updated the bot list * Enhancement: Manage: Added the ability to activate a network-wide plugin on a single site from WordPress.com * Enhancement: Photon: Added a way to check image URLs against custom domains * Enhancement: Photon: Added prompts on the media upload page telling the user about Photon * Enhancement: Publicize: Added width and height values to OpenGraph tags for default images * Enhancement: Related Posts: Added a filter to allow disabling nofollow * Enhancement: REST API: Added new API endpoints to extend API functionality * Enhancement: REST API: Added new fields to existing API endpoints * Enhancement: Sharing: Added a possibility to opt-out of sharing for a single post * Enhancement: Sharing: Added bbPress support * Enhancement: Sharing: Added more configuration to the Likes modal * Enhancement: Sharing: Made the reddit button open a new tab * Enhancement: Sharing: Removed unused files * Enhancement: Shortcodes: Added auto embed option inside comments * Enhancement: Shortcodes: Added autohide parameter to the YouTube shortcode * Enhancement: Subscriptions: added an action that triggers at the end of the subscription process * Enhancement: VideoPress: Videos are now embedded using a new player * Enhancement: Widget Visibility: Added parent page logic * Enhancement: Widget Visibility: Added support for split terms * Enhancement: Widgets: Added actions to the Social Media widget * Enhancement: Widgets: Switched the Display Posts widget to the new API version * Bug Fix: General: Fixed scrolling to top after modal window closing * Bug Fix: Infinite Scroll: Added a check for cases when output buffering is disabled * Bug Fix: Infinite Scroll: Added translation to the copyright message * Bug Fix: Manage: Fixed automatic update synchronization on WordPress multisite network admin * Bug Fix: Manage: Redirects back to WordPress.com are allowed from the customizer view * Bug Fix: Media: Fixed duplicate images bug in the Media Extractor * Bug Fix: Publicize: Made it possible to remove previously set message * Bug Fix: Sharing: Added a thumbnail image to OpenGraph tags on pages with DailyMotion embeds * Bug Fix: Sharing: Fixed Twitter Cards tags escaping * Bug Fix: Sharing: Made OpenGraph tags for title and description use proper punctuation * Bug Fix: Sharing: Made sure Likes can be disabled on the front page * Bug Fix: Shortcodes: Fixed Facebook embeds by placing the script in the footer * Bug Fix: Shortcodes: Fixed PollDaddy shortcode issues over SSL connections * Bug Fix: Shortcodes: Made responsive video wrappers only wrap video embeds * Bug Fix: Shortcodes: Made SoundCloud accept percents for dimensions * Bug Fix: Social Links: Fixed a possible conflict with another class * Bug Fix: Stats: Made sure the Stats URL is always escaped properly plugins/jetpack/class.photon.php0000644000312500031250000007301612654411246017416 0ustar eacbforgeacbforgsetup(); } return self::$__instance; } /** * Silence is golden. */ private function __construct() {} /** * Register actions and filters, but only if basic Photon functions are available. * The basic functions are found in ./functions.photon.php. * * @uses add_action, add_filter * @return null */ private function setup() { // Display warning if site is private add_action( 'jetpack_activate_module_photon', array( $this, 'action_jetpack_activate_module_photon' ) ); if ( ! function_exists( 'jetpack_photon_url' ) ) return; // Images in post content and galleries add_filter( 'the_content', array( __CLASS__, 'filter_the_content' ), 999999 ); add_filter( 'get_post_galleries', array( __CLASS__, 'filter_the_galleries' ), 999999 ); // Core image retrieval add_filter( 'image_downsize', array( $this, 'filter_image_downsize' ), 10, 3 ); // Responsive image srcset substitution add_filter( 'wp_calculate_image_srcset', array( $this, 'filter_srcset_array' ), 10, 4 ); // Helpers for maniuplated images add_action( 'wp_enqueue_scripts', array( $this, 'action_wp_enqueue_scripts' ), 9 ); } /** * Check if site is private and warn user if it is * * @uses Jetpack::check_privacy * @action jetpack_activate_module_photon * @return null */ public function action_jetpack_activate_module_photon() { Jetpack::check_privacy( __FILE__ ); } /** ** IN-CONTENT IMAGE MANIPULATION FUNCTIONS **/ /** * Match all images and any relevant tags in a block of HTML. * * @param string $content Some HTML. * @return array An array of $images matches, where $images[0] is * an array of full matches, and the link_url, img_tag, * and img_url keys are arrays of those matches. */ public static function parse_images_from_html( $content ) { $images = array(); if ( preg_match_all( '#(?:]+?href=["|\'](?P[^\s]+?)["|\'][^>]*?>\s*)?(?P]+?src=["|\'](?P[^\s]+?)["|\'].*?>){1}(?:\s*)?#is', $content, $images ) ) { foreach ( $images as $key => $unused ) { // Simplify the output as much as possible, mostly for confirming test results. if ( is_numeric( $key ) && $key > 0 ) unset( $images[$key] ); } return $images; } return array(); } /** * Try to determine height and width from strings WP appends to resized image filenames. * * @param string $src The image URL. * @return array An array consisting of width and height. */ public static function parse_dimensions_from_filename( $src ) { $width_height_string = array(); if ( preg_match( '#-(\d+)x(\d+)\.(?:' . implode('|', self::$extensions ) . '){1}$#i', $src, $width_height_string ) ) { $width = (int) $width_height_string[1]; $height = (int) $width_height_string[2]; if ( $width && $height ) return array( $width, $height ); } return array( false, false ); } /** * Identify images in post content, and if images are local (uploaded to the current site), pass through Photon. * * @param string $content * @uses self::validate_image_url, apply_filters, jetpack_photon_url, esc_url * @filter the_content * @return string */ public static function filter_the_content( $content ) { $images = Jetpack_Photon::parse_images_from_html( $content ); if ( ! empty( $images ) ) { $content_width = Jetpack::get_content_width(); $image_sizes = self::image_sizes(); $upload_dir = wp_upload_dir(); foreach ( $images[0] as $index => $tag ) { // Default to resize, though fit may be used in certain cases where a dimension cannot be ascertained $transform = 'resize'; // Start with a clean attachment ID each time $attachment_id = false; // Flag if we need to munge a fullsize URL $fullsize_url = false; // Identify image source $src = $src_orig = $images['img_url'][ $index ]; /** * Allow specific images to be skipped by Photon. * * @module photon * * @since 2.0.3 * * @param bool false Should Photon ignore this image. Default to false. * @param string $src Image URL. * @param string $tag Image Tag (Image HTML output). */ if ( apply_filters( 'jetpack_photon_skip_image', false, $src, $tag ) ) continue; // Support Automattic's Lazy Load plugin // Can't modify $tag yet as we need unadulterated version later if ( preg_match( '#data-lazy-src=["|\'](.+?)["|\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) { $placeholder_src = $placeholder_src_orig = $src; $src = $src_orig = $lazy_load_src[1]; } elseif ( preg_match( '#data-lazy-original=["|\'](.+?)["|\']#i', $images['img_tag'][ $index ], $lazy_load_src ) ) { $placeholder_src = $placeholder_src_orig = $src; $src = $src_orig = $lazy_load_src[1]; } // Check if image URL should be used with Photon if ( self::validate_image_url( $src ) ) { // Find the width and height attributes $width = $height = false; // First, check the image tag if ( preg_match( '#width=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $width_string ) ) $width = $width_string[1]; if ( preg_match( '#height=["|\']?([\d%]+)["|\']?#i', $images['img_tag'][ $index ], $height_string ) ) $height = $height_string[1]; // Can't pass both a relative width and height, so unset the height in favor of not breaking the horizontal layout. if ( false !== strpos( $width, '%' ) && false !== strpos( $height, '%' ) ) $width = $height = false; // Detect WP registered image size from HTML class if ( preg_match( '#class=["|\']?[^"\']*size-([^"\'\s]+)[^"\']*["|\']?#i', $images['img_tag'][ $index ], $size ) ) { $size = array_pop( $size ); if ( false === $width && false === $height && 'full' != $size && array_key_exists( $size, $image_sizes ) ) { $width = (int) $image_sizes[ $size ]['width']; $height = (int) $image_sizes[ $size ]['height']; $transform = $image_sizes[ $size ]['crop'] ? 'resize' : 'fit'; } } else { unset( $size ); } // WP Attachment ID, if uploaded to this site if ( preg_match( '#class=["|\']?[^"\']*wp-image-([\d]+)[^"\']*["|\']?#i', $images['img_tag'][ $index ], $attachment_id ) && ( 0 === strpos( $src, $upload_dir['baseurl'] ) || /** * Filter whether an image using an attachment ID in its class has to be uploaded to the local site to go through Photon. * * @module photon * * @since 2.0.3 * * @param bool false Was the image uploaded to the local site. Default to false. * @param array $args { * Array of image details. * * @type $src Image URL. * @type tag Image tag (Image HTML output). * @type $images Array of information about the image. * @type $index Image index. * } */ apply_filters( 'jetpack_photon_image_is_local', false, compact( 'src', 'tag', 'images', 'index' ) ) ) ) { $attachment_id = intval( array_pop( $attachment_id ) ); if ( $attachment_id ) { $attachment = get_post( $attachment_id ); // Basic check on returned post object if ( is_object( $attachment ) && ! is_wp_error( $attachment ) && 'attachment' == $attachment->post_type ) { $src_per_wp = wp_get_attachment_image_src( $attachment_id, isset( $size ) ? $size : 'full' ); if ( self::validate_image_url( $src_per_wp[0] ) ) { $src = $src_per_wp[0]; $fullsize_url = true; // Prevent image distortion if a detected dimension exceeds the image's natural dimensions if ( ( false !== $width && $width > $src_per_wp[1] ) || ( false !== $height && $height > $src_per_wp[2] ) ) { $width = false == $width ? false : min( $width, $src_per_wp[1] ); $height = false == $height ? false : min( $height, $src_per_wp[2] ); } // If no width and height are found, max out at source image's natural dimensions // Otherwise, respect registered image sizes' cropping setting if ( false == $width && false == $height ) { $width = $src_per_wp[1]; $height = $src_per_wp[2]; $transform = 'fit'; } elseif ( isset( $size ) && array_key_exists( $size, $image_sizes ) && isset( $image_sizes[ $size ]['crop'] ) ) { $transform = (bool) $image_sizes[ $size ]['crop'] ? 'resize' : 'fit'; } } } else { unset( $attachment_id ); unset( $attachment ); } } } // If image tag lacks width and height arguments, try to determine from strings WP appends to resized image filenames. if ( false === $width && false === $height ) { list( $width, $height ) = Jetpack_Photon::parse_dimensions_from_filename( $src ); } // If width is available, constrain to $content_width if ( false !== $width && false === strpos( $width, '%' ) && is_numeric( $content_width ) ) { if ( $width > $content_width && false !== $height && false === strpos( $height, '%' ) ) { $height = round( ( $content_width * $height ) / $width ); $width = $content_width; } elseif ( $width > $content_width ) { $width = $content_width; } } // Set a width if none is found and $content_width is available // If width is set in this manner and height is available, use `fit` instead of `resize` to prevent skewing if ( false === $width && is_numeric( $content_width ) ) { $width = (int) $content_width; if ( false !== $height ) $transform = 'fit'; } // Detect if image source is for a custom-cropped thumbnail and prevent further URL manipulation. if ( ! $fullsize_url && preg_match_all( '#-e[a-z0-9]+(-\d+x\d+)?\.(' . implode('|', self::$extensions ) . '){1}$#i', basename( $src ), $filename ) ) $fullsize_url = true; // Build URL, first maybe removing WP's resized string so we pass the original image to Photon if ( ! $fullsize_url ) { $src = self::strip_image_dimensions_maybe( $src ); } // Build array of Photon args and expose to filter before passing to Photon URL function $args = array(); if ( false !== $width && false !== $height && false === strpos( $width, '%' ) && false === strpos( $height, '%' ) ) $args[ $transform ] = $width . ',' . $height; elseif ( false !== $width ) $args['w'] = $width; elseif ( false !== $height ) $args['h'] = $height; /** * Filter the array of Photon arguments added to an image when it goes through Photon. * By default, only includes width and height values. * @see https://developer.wordpress.com/docs/photon/api/ * * @module photon * * @since 2.0.0 * * @param array $args Array of Photon Arguments. * @param array $args { * Array of image details. * * @type $tag Image tag (Image HTML output). * @type $src Image URL. * @type $src_orig Original Image URL. * @type $width Image width. * @type $height Image height. * } */ $args = apply_filters( 'jetpack_photon_post_image_args', $args, compact( 'tag', 'src', 'src_orig', 'width', 'height' ) ); $photon_url = jetpack_photon_url( $src, $args ); // Modify image tag if Photon function provides a URL // Ensure changes are only applied to the current image by copying and modifying the matched tag, then replacing the entire tag with our modified version. if ( $src != $photon_url ) { $new_tag = $tag; // If present, replace the link href with a Photoned URL for the full-size image. if ( ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) $new_tag = preg_replace( '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $new_tag, 1 ); // Supplant the original source value with our Photon URL $photon_url = esc_url( $photon_url ); $new_tag = str_replace( $src_orig, $photon_url, $new_tag ); // If Lazy Load is in use, pass placeholder image through Photon if ( isset( $placeholder_src ) && self::validate_image_url( $placeholder_src ) ) { $placeholder_src = jetpack_photon_url( $placeholder_src ); if ( $placeholder_src != $placeholder_src_orig ) $new_tag = str_replace( $placeholder_src_orig, esc_url( $placeholder_src ), $new_tag ); unset( $placeholder_src ); } // Remove the width and height arguments from the tag to prevent distortion $new_tag = preg_replace( '#(?<=\s)(width|height)=["|\']?[\d%]+["|\']?\s?#i', '', $new_tag ); // Tag an image for dimension checking $new_tag = preg_replace( '#(\s?/)?>(\s*)?$#i', ' data-recalc-dims="1"\1>\2', $new_tag ); // Replace original tag with modified version $content = str_replace( $tag, $new_tag, $content ); } } elseif ( preg_match( '#^http(s)?://i[\d]{1}.wp.com#', $src ) && ! empty( $images['link_url'][ $index ] ) && self::validate_image_url( $images['link_url'][ $index ] ) ) { $new_tag = preg_replace( '#(href=["|\'])' . $images['link_url'][ $index ] . '(["|\'])#i', '\1' . jetpack_photon_url( $images['link_url'][ $index ] ) . '\2', $tag, 1 ); $content = str_replace( $tag, $new_tag, $content ); } } } return $content; } public static function filter_the_galleries( $galleries ) { if ( empty( $galleries ) || ! is_array( $galleries ) ) { return $galleries; } // Pass by reference, so we can modify them in place. foreach ( $galleries as &$this_gallery ) { if ( is_string( $this_gallery ) ) { $this_gallery = self::filter_the_content( $this_gallery ); // LEAVING COMMENTED OUT as for the moment it doesn't seem // necessary and I'm not sure how it would propagate through. // } elseif ( is_array( $this_gallery ) // && ! empty( $this_gallery['src'] ) // && ! empty( $this_gallery['type'] ) // && in_array( $this_gallery['type'], array( 'rectangle', 'square', 'circle' ) ) ) { // $this_gallery['src'] = array_map( 'jetpack_photon_url', $this_gallery['src'] ); } } unset( $this_gallery ); // break the reference. return $galleries; } /** ** CORE IMAGE RETRIEVAL **/ /** * Filter post thumbnail image retrieval, passing images through Photon * * @param string|bool $image * @param int $attachment_id * @param string|array $size * @uses is_admin, apply_filters, wp_get_attachment_url, self::validate_image_url, this::image_sizes, jetpack_photon_url * @filter image_downsize * @return string|bool */ public function filter_image_downsize( $image, $attachment_id, $size ) { // Don't foul up the admin side of things, and provide plugins a way of preventing Photon from being applied to images. if ( is_admin() || /** * Provide plugins a way of preventing Photon from being applied to images retrieved from WordPress Core. * * @module photon * * @since 2.0.0 * * @param bool false Stop Photon from being applied to the image. Default to false. * @param array $args { * Array of image details. * * @type $image Image URL. * @type $attachment_id Attachment ID of the image. * @type $size Image size. Can be a string (name of the image size, e.g. full) or an integer. * } */ apply_filters( 'jetpack_photon_override_image_downsize', false, compact( 'image', 'attachment_id', 'size' ) ) ) return $image; // Get the image URL and proceed with Photon-ification if successful $image_url = wp_get_attachment_url( $attachment_id ); // Set this to true later when we know we have size meta. $has_size_meta = false; if ( $image_url ) { // Check if image URL should be used with Photon if ( ! self::validate_image_url( $image_url ) ) return $image; $intermediate = true; // For the fourth array item returned by the image_downsize filter. // If an image is requested with a size known to WordPress, use that size's settings with Photon if ( ( is_string( $size ) || is_int( $size ) ) && array_key_exists( $size, self::image_sizes() ) ) { $image_args = self::image_sizes(); $image_args = $image_args[ $size ]; $photon_args = array(); $image_meta = image_get_intermediate_size( $attachment_id, $size ); // 'full' is a special case: We need consistent data regardless of the requested size. if ( 'full' == $size ) { $image_meta = wp_get_attachment_metadata( $attachment_id ); $intermediate = false; } elseif ( ! $image_meta ) { // If we still don't have any image meta at this point, it's probably from a custom thumbnail size // for an image that was uploaded before the custom image was added to the theme. Try to determine the size manually. $image_meta = wp_get_attachment_metadata( $attachment_id ); if ( isset( $image_meta['width'], $image_meta['height'] ) ) { $image_resized = image_resize_dimensions( $image_meta['width'], $image_meta['height'], $image_args['width'], $image_args['height'], $image_args['crop'] ); if ( $image_resized ) { // This could be false when the requested image size is larger than the full-size image. $image_meta['width'] = $image_resized[6]; $image_meta['height'] = $image_resized[7]; } } } if ( isset( $image_meta['width'], $image_meta['height'] ) ) { $image_args['width'] = $image_meta['width']; $image_args['height'] = $image_meta['height']; list( $image_args['width'], $image_args['height'] ) = image_constrain_size_for_editor( $image_args['width'], $image_args['height'], $size, 'display' ); $has_size_meta = true; } // Expose determined arguments to a filter before passing to Photon $transform = $image_args['crop'] ? 'resize' : 'fit'; // Check specified image dimensions and account for possible zero values; photon fails to resize if a dimension is zero. if ( 0 == $image_args['width'] || 0 == $image_args['height'] ) { if ( 0 == $image_args['width'] && 0 < $image_args['height'] ) { $photon_args['h'] = $image_args['height']; } elseif ( 0 == $image_args['height'] && 0 < $image_args['width'] ) { $photon_args['w'] = $image_args['width']; } } else { if ( ( 'resize' === $transform ) && $image_meta = wp_get_attachment_metadata( $attachment_id ) ) { if ( isset( $image_meta['width'], $image_meta['height'] ) ) { // Lets make sure that we don't upscale images since wp never upscales them as well $smaller_width = ( ( $image_meta['width'] < $image_args['width'] ) ? $image_meta['width'] : $image_args['width'] ); $smaller_height = ( ( $image_meta['height'] < $image_args['height'] ) ? $image_meta['height'] : $image_args['height'] ); $photon_args[ $transform ] = $smaller_width . ',' . $smaller_height; } } else { $photon_args[ $transform ] = $image_args['width'] . ',' . $image_args['height']; } } /** * Filter the Photon Arguments added to an image when going through Photon, when that image size is a string. * Image size will be a string (e.g. "full", "medium") when it is known to WordPress. * * @module photon * * @since 2.0.0 * * @param array $photon_args Array of Photon arguments. * @param array $args { * Array of image details. * * @type $image_args Array of Image arguments (width, height, crop). * @type $image_url Image URL. * @type $attachment_id Attachment ID of the image. * @type $size Image size. Can be a string (name of the image size, e.g. full) or an integer. * @type $transform Value can be resize or fit. * @see https://developer.wordpress.com/docs/photon/api * } */ $photon_args = apply_filters( 'jetpack_photon_image_downsize_string', $photon_args, compact( 'image_args', 'image_url', 'attachment_id', 'size', 'transform' ) ); // Generate Photon URL $image = array( jetpack_photon_url( $image_url, $photon_args ), $has_size_meta ? $image_args['width'] : false, $has_size_meta ? $image_args['height'] : false, $intermediate ); } elseif ( is_array( $size ) ) { // Pull width and height values from the provided array, if possible $width = isset( $size[0] ) ? (int) $size[0] : false; $height = isset( $size[1] ) ? (int) $size[1] : false; // Don't bother if necessary parameters aren't passed. if ( ! $width || ! $height ) { return $image; } $image_meta = wp_get_attachment_metadata( $attachment_id ); if ( isset( $image_meta['width'], $image_meta['height'] ) ) { $image_resized = image_resize_dimensions( $image_meta['width'], $image_meta['height'], $width, $height ); if ( $image_resized ) { // This could be false when the requested image size is larger than the full-size image. $width = $image_resized[6]; $height = $image_resized[7]; } else { $width = $image_meta['width']; $height = $image_meta['height']; } $has_size_meta = true; } list( $width, $height ) = image_constrain_size_for_editor( $width, $height, $size ); // Expose arguments to a filter before passing to Photon $photon_args = array( 'fit' => $width . ',' . $height ); /** * Filter the Photon Arguments added to an image when going through Photon, * when the image size is an array of height and width values. * * @module photon * * @since 2.0.0 * * @param array $photon_args Array of Photon arguments. * @param array $args { * Array of image details. * * @type $width Image width. * @type height Image height. * @type $image_url Image URL. * @type $attachment_id Attachment ID of the image. * } */ $photon_args = apply_filters( 'jetpack_photon_image_downsize_array', $photon_args, compact( 'width', 'height', 'image_url', 'attachment_id' ) ); // Generate Photon URL $image = array( jetpack_photon_url( $image_url, $photon_args ), $has_size_meta ? $width : false, $has_size_meta ? $height : false, $intermediate ); } } return $image; } /** * Filters an array of image `srcset` values, replacing each URL with its Photon equivalent. * * @since 3.8.0 * @param array $sources An array of image urls and widths. * @uses self::validate_image_url, jetpack_photon_url * @return array An array of Photon image urls and widths. */ public function filter_srcset_array( $sources, $size_array, $image_src, $image_meta ) { $upload_dir = wp_upload_dir(); foreach ( $sources as $i => $source ) { if ( ! self::validate_image_url( $source['url'] ) ) { continue; } $url = $source['url']; list( $width, $height ) = Jetpack_Photon::parse_dimensions_from_filename( $url ); // It's quicker to get the full size with the data we have already, if available if ( isset( $image_meta['file'] ) ) { $url = trailingslashit( $upload_dir['baseurl'] ) . $image_meta['file']; } else { $url = Jetpack_Photon::strip_image_dimensions_maybe( $url ); } $args = array(); if ( 'w' === $source['descriptor'] ) { if ( $height && ( $source['value'] == $width ) ) { $args['resize'] = $width . ',' . $height; } else { $args['w'] = $source['value']; } } $sources[ $i ]['url'] = jetpack_photon_url( $url, $args ); } return $sources; } /** ** GENERAL FUNCTIONS **/ /** * Ensure image URL is valid for Photon. * Though Photon functions address some of the URL issues, we should avoid unnecessary processing if we know early on that the image isn't supported. * * @param string $url * @uses wp_parse_args * @return bool */ protected static function validate_image_url( $url ) { $parsed_url = @parse_url( $url ); if ( ! $parsed_url ) return false; // Parse URL and ensure needed keys exist, since the array returned by `parse_url` only includes the URL components it finds. $url_info = wp_parse_args( $parsed_url, array( 'scheme' => null, 'host' => null, 'port' => null, 'path' => null ) ); // Bail if scheme isn't http or port is set that isn't port 80 if ( ( 'http' != $url_info['scheme'] || ! in_array( $url_info['port'], array( 80, null ) ) ) && /** * Allow Photon to fetch images that are served via HTTPS. * * @module photon * * @since 2.4.0 * @since 3.9.0 Default to false. * * @param bool $reject_https Should Photon ignore images using the HTTPS scheme. Default to false. */ apply_filters( 'jetpack_photon_reject_https', false ) ) { return false; } // Bail if no host is found if ( is_null( $url_info['host'] ) ) return false; // Bail if the image alredy went through Photon if ( preg_match( '#^i[\d]{1}.wp.com$#i', $url_info['host'] ) ) return false; // Bail if no path is found if ( is_null( $url_info['path'] ) ) return false; // Ensure image extension is acceptable if ( ! in_array( strtolower( pathinfo( $url_info['path'], PATHINFO_EXTENSION ) ), self::$extensions ) ) return false; // If we got this far, we should have an acceptable image URL // But let folks filter to decline if they prefer. /** * Overwrite the results of the validation steps an image goes through before to be considered valid to be used by Photon. * * @module photon * * @since 3.0.0 * * @param bool true Is the image URL valid and can it be used by Photon. Default to true. * @param string $url Image URL. * @param array $parsed_url Array of information about the image. */ return apply_filters( 'photon_validate_image_url', true, $url, $parsed_url ); } /** * Checks if the file exists before it passes the file to photon * * @param string $src The image URL * @return string **/ protected static function strip_image_dimensions_maybe( $src ){ $stripped_src = $src; // Build URL, first removing WP's resized string so we pass the original image to Photon if ( preg_match( '#(-\d+x\d+)\.(' . implode('|', self::$extensions ) . '){1}$#i', $src, $src_parts ) ) { $stripped_src = str_replace( $src_parts[1], '', $src ); $upload_dir = wp_upload_dir(); // Extracts the file path to the image minus the base url $file_path = substr( $stripped_src, strlen ( $upload_dir['baseurl'] ) ); if( file_exists( $upload_dir["basedir"] . $file_path ) ) $src = $stripped_src; } return $src; } /** * Provide an array of available image sizes and corresponding dimensions. * Similar to get_intermediate_image_sizes() except that it includes image sizes' dimensions, not just their names. * * @global $wp_additional_image_sizes * @uses get_option * @return array */ protected static function image_sizes() { if ( null == self::$image_sizes ) { global $_wp_additional_image_sizes; // Populate an array matching the data structure of $_wp_additional_image_sizes so we have a consistent structure for image sizes $images = array( 'thumb' => array( 'width' => intval( get_option( 'thumbnail_size_w' ) ), 'height' => intval( get_option( 'thumbnail_size_h' ) ), 'crop' => (bool) get_option( 'thumbnail_crop' ) ), 'medium' => array( 'width' => intval( get_option( 'medium_size_w' ) ), 'height' => intval( get_option( 'medium_size_h' ) ), 'crop' => false ), 'large' => array( 'width' => intval( get_option( 'large_size_w' ) ), 'height' => intval( get_option( 'large_size_h' ) ), 'crop' => false ), 'full' => array( 'width' => null, 'height' => null, 'crop' => false ) ); // Compatibility mapping as found in wp-includes/media.php $images['thumbnail'] = $images['thumb']; // Update class variable, merging in $_wp_additional_image_sizes if any are set if ( is_array( $_wp_additional_image_sizes ) && ! empty( $_wp_additional_image_sizes ) ) self::$image_sizes = array_merge( $images, $_wp_additional_image_sizes ); else self::$image_sizes = $images; } return is_array( self::$image_sizes ) ? self::$image_sizes : array(); } /** * Pass og:image URLs through Photon * * @param array $tags * @param array $parameters * @uses jetpack_photon_url * @return array */ function filter_open_graph_tags( $tags, $parameters ) { if ( empty( $tags['og:image'] ) ) { return $tags; } $photon_args = array( 'fit' => sprintf( '%d,%d', 2 * $parameters['image_width'], 2 * $parameters['image_height'] ), ); if ( is_array( $tags['og:image'] ) ) { $images = array(); foreach ( $tags['og:image'] as $image ) { $images[] = jetpack_photon_url( $image, $photon_args ); } $tags['og:image'] = $images; } else { $tags['og:image'] = jetpack_photon_url( $tags['og:image'], $photon_args ); } return $tags; } /** * Enqueue Photon helper script * * @uses wp_enqueue_script, plugins_url * @action wp_enqueue_script * @return null */ public function action_wp_enqueue_scripts() { wp_enqueue_script( 'jetpack-photon', plugins_url( 'modules/photon/photon.js', JETPACK__PLUGIN_FILE ), array( 'jquery' ), 20130122, true ); } } plugins/jetpack/.svnignore0000755000312500031250000000022712651056012016273 0ustar eacbforgeacbforg.git/ .gitignore .travis.yml readme.md tests/ _inc/lib/icalendar-reader.php modules/shortcodes/upcoming-events.php modules/widgets/upcoming-events.php plugins/jetpack/class.jetpack-network-sites-list-table.php0000644000312500031250000000756412654410420024400 0ustar eacbforgeacbforg '', 'blogname' => __( 'Site Name', 'jetpack' ), 'blog_path' => __( 'Path', 'jetpack' ), 'connected' => __( 'Connected', 'jetpack' ), ); return $columns; } public function prepare_items() { $jpms = Jetpack_Network::init(); // Deal with bulk actions if any were requested by the user $this->process_bulk_action(); // Get sites $sites = $jpms->wp_get_sites( array( 'exclude_blogs' => array( 1 ), 'archived' => false, ) ); // Setup pagination $per_page = 25; $current_page = $this->get_pagenum(); $total_items = count( $sites ); $sites = array_slice( $sites, ( ( $current_page-1 ) * $per_page ), $per_page ); $this->set_pagination_args( array( 'total_items' => $total_items, 'per_page' => $per_page ) ); $columns = $this->get_columns(); $hidden = array(); $sortable = array(); $this->_column_headers = array( $columns, $hidden, $sortable ); $this->items = $sites; } public function column_blogname( $item ) { // http://jpms/wp-admin/network/site-info.php?id=1 switch_to_blog( $item->blog_id ); $jp_url = admin_url( 'admin.php?page=jetpack' ); restore_current_blog(); $actions = array( 'edit' => '' . __( 'Edit', 'jetpack' ) . '', 'dashboard' => 'Dashboard', 'view' => 'View', 'jetpack-' . $item->blog_id => 'Jetpack', ); return sprintf('%1$s %2$s', '' . get_blog_option( $item->blog_id, 'blogname' ) . '', $this->row_actions($actions) ); } public function column_blog_path( $item ) { return '' . str_replace( array( 'http://', 'https://' ), '', get_site_url( $item->blog_id, '', 'admin' ) ) . ''; } public function column_connected( $item ) { $jpms = Jetpack_Network::init(); $jp = Jetpack::init(); switch_to_blog( $item->blog_id ); if( $jp->is_active() ) { // Build url for disconnecting $url = $jpms->get_url( array( 'name' => 'subsitedisconnect', 'site_id' => $item->blog_id, ) ); restore_current_blog(); return 'Disconnect'; } restore_current_blog(); // Build URL for connecting $url = $jpms->get_url( array( 'name' => 'subsiteregister', 'site_id' => $item->blog_id, ) ); return 'Connect'; } public function get_bulk_actions() { $actions = array( 'connect' => 'Connect', 'disconnect' => 'Disconnect' ); return $actions; } function column_cb($item) { return sprintf( '', $item->blog_id ); } public function process_bulk_action() { if( !isset( $_POST['bulk'] ) || empty ( $_POST['bulk'] ) ) return; // Thou shall not pass! There is nothing to do $jpms = Jetpack_Network::init(); $action = $this->current_action(); switch ( $action ) { case 'connect': foreach( $_POST['bulk'] as $k => $site ) { $jpms->do_subsiteregister( $site ); } break; case 'disconnect': foreach( $_POST['bulk'] as $k => $site ) { $jpms->do_subsitedisconnect( $site ); } break; } } } // end h plugins/jetpack/class.media-extractor.php0000644000312500031250000004140412654410420021164 0ustar eacbforgeacbforgpost_title . "\n\n" . $post->post_content; $char_cnt = strlen( $content ); //prevent running extraction on really huge amounts of content if ( $char_cnt > 100000 ) //about 20k English words $content = substr( $content, 0, 100000 ); $extracted = array(); // Get images first, we need the full post for that if ( self::IMAGES & $what_to_extract ) { $extracted = self::get_image_fields( $post ); // Turn off images so we can safely call extract_from_content() below $what_to_extract = $what_to_extract - self::IMAGES; } if ( function_exists( 'switch_to_blog') ) restore_current_blog(); // All of the other things besides images can be extracted from just the content $extracted = self::extract_from_content( $content, $what_to_extract, $extracted ); return $extracted; } /** * Gets the specified meta info from the given post content. * NOTE: If you want IMAGES, call extract( $blog_id, $post_id, ...) which will give you more/better image extraction * This method will give you an error if you ask for IMAGES. * * @param $content The HTML post_content of a post * @param $what_to_extract (int) A mask of things to extract, e.g. Jetpack_Media_Meta_Extractor::IMAGES | Jetpack_Media_Meta_Extractor::MENTIONS * @param $already_extracted (array) Previously extracted things, e.g. images from extract(), which can be used for x-referencing here * @returns a structure containing metadata about the embedded things, or empty array if nothing found, or WP_Error on error */ static public function extract_from_content( $content, $what_to_extract = self::ALL, $already_extracted = array() ) { $stripped_content = self::get_stripped_content( $content ); // Maybe start with some previously extracted things (e.g. images from extract() $extracted = $already_extracted; // Embedded media objects will have already been converted to shortcodes by pre_kses hooks on save. if ( self::IMAGES & $what_to_extract ) { $images = Jetpack_Media_Meta_Extractor::extract_images_from_content( $stripped_content, array() ); $extracted = array_merge( $extracted, $images ); } // ----------------------------------- MENTIONS ------------------------------ if ( self::MENTIONS & $what_to_extract ) { if ( preg_match_all( '/(^|\s)@(\w+)/u', $stripped_content, $matches ) ) { $mentions = array_values( array_unique( $matches[2] ) ); //array_unique() retains the keys! $mentions = array_map( 'strtolower', $mentions ); $extracted['mention'] = array( 'name' => $mentions ); if ( !isset( $extracted['has'] ) ) $extracted['has'] = array(); $extracted['has']['mention'] = count( $mentions ); } } // ----------------------------------- HASHTAGS ------------------------------ /** Some hosts may not compile with --enable-unicode-properties and kick a warning: * Warning: preg_match_all() [function.preg-match-all]: Compilation failed: support for \P, \p, and \X has not been compiled * Therefore, we only run this code block on wpcom, not in Jetpack. */ if ( ( defined( 'IS_WPCOM' ) && IS_WPCOM ) && ( self::HASHTAGS & $what_to_extract ) ) { //This regex does not exactly match Twitter's // if there are problems/complaints we should implement this: // https://github.com/twitter/twitter-text/blob/master/java/src/com/twitter/Regex.java if ( preg_match_all( '/(?:^|\s)#(\w*\p{L}+\w*)/u', $stripped_content, $matches ) ) { $hashtags = array_values( array_unique( $matches[1] ) ); //array_unique() retains the keys! $hashtags = array_map( 'strtolower', $hashtags ); $extracted['hashtag'] = array( 'name' => $hashtags ); if ( !isset( $extracted['has'] ) ) $extracted['has'] = array(); $extracted['has']['hashtag'] = count( $hashtags ); } } // ----------------------------------- SHORTCODES ------------------------------ // Always look for shortcodes. // If we don't want them, we'll just remove them, so we don't grab them as links below $shortcode_pattern = '/' . get_shortcode_regex() . '/s'; if ( preg_match_all( $shortcode_pattern, $content, $matches ) ) { $shortcode_total_count = 0; $shortcode_type_counts = array(); $shortcode_types = array(); $shortcode_details = array(); if ( self::SHORTCODES & $what_to_extract ) { foreach( $matches[2] as $key => $shortcode ) { //Elasticsearch (and probably other things) doesn't deal well with some chars as key names $shortcode_name = preg_replace( '/[.,*"\'\/\\\\#+ ]/', '_', $shortcode ); $attr = shortcode_parse_atts( $matches[3][ $key ] ); $shortcode_total_count++; if ( ! isset( $shortcode_type_counts[$shortcode_name] ) ) $shortcode_type_counts[$shortcode_name] = 0; $shortcode_type_counts[$shortcode_name]++; // Store (uniquely) presence of all shortcode regardless of whether it's a keeper (for those, get ID below) // @todo Store number of occurrences? if ( ! in_array( $shortcode_name, $shortcode_types ) ) $shortcode_types[] = $shortcode_name; // For keeper shortcodes, also store the id/url of the object (e.g. youtube video, TED talk, etc.) if ( in_array( $shortcode, self::$KEEPER_SHORTCODES ) ) { unset( $id ); // Clear shortcode ID data left from the last shortcode // We'll try to get the salient ID from the function jetpack_shortcode_get_xyz_id() // If the shortcode is a class, we'll call XyzShortcode::get_xyz_id() $shortcode_get_id_func = "jetpack_shortcode_get_{$shortcode}_id"; $shortcode_class_name = ucfirst( $shortcode ) . 'Shortcode'; $shortcode_get_id_method = "get_{$shortcode}_id"; if ( function_exists( $shortcode_get_id_func ) ) { $id = call_user_func( $shortcode_get_id_func, $attr ); } else if ( method_exists( $shortcode_class_name, $shortcode_get_id_method ) ) { $id = call_user_func( array( $shortcode_class_name, $shortcode_get_id_method ), $attr ); } if ( ! empty( $id ) && ( ! isset( $shortcode_details[$shortcode_name] ) || ! in_array( $id, $shortcode_details[$shortcode_name] ) ) ) $shortcode_details[$shortcode_name][] = $id; } } if ( $shortcode_total_count > 0 ) { // Add the shortcode info to the $extracted array if ( !isset( $extracted['has'] ) ) $extracted['has'] = array(); $extracted['has']['shortcode'] = $shortcode_total_count; $extracted['shortcode'] = array(); foreach ( $shortcode_type_counts as $type => $count ) $extracted['shortcode'][$type] = array( 'count' => $count ); if ( ! empty( $shortcode_types ) ) $extracted['shortcode_types'] = $shortcode_types; foreach ( $shortcode_details as $type => $id ) $extracted['shortcode'][$type]['id'] = $id; } } // Remove the shortcodes form our copy of $content, so we don't count links in them as links below. $content = preg_replace( $shortcode_pattern, ' ', $content ); } // ----------------------------------- LINKS ------------------------------ if ( self::LINKS & $what_to_extract ) { // To hold the extracted stuff we find $links = array(); // @todo Get the text inside the links? // Grab any links, whether in ]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))))#', $content, $matches ) ) { foreach ( $matches[1] as $link_raw ) { $url = parse_url( $link_raw ); // Data URI links if ( isset( $url['scheme'] ) && 'data' === $url['scheme'] ) continue; // Remove large (and likely invalid) links if ( 4096 < strlen( $link_raw ) ) continue; // Build a simple form of the URL so we can compare it to ones we found in IMAGES or SHORTCODES and exclude those $simple_url = $url['scheme'] . '://' . $url['host'] . ( ! empty( $url['path'] ) ? $url['path'] : '' ); if ( isset( $extracted['image']['url'] ) ) { if ( in_array( $simple_url, (array) $extracted['image']['url'] ) ) continue; } list( $proto, $link_all_but_proto ) = explode( '://', $link_raw ); // Build a reversed hostname $host_parts = array_reverse( explode( '.', $url['host'] ) ); $host_reversed = ''; foreach ( $host_parts as $part ) { $host_reversed .= ( ! empty( $host_reversed ) ? '.' : '' ) . $part; } $link_analyzed = ''; if ( !empty( $url['path'] ) ) { // The whole path (no query args or fragments) $path = substr( $url['path'], 1 ); // strip the leading '/' $link_analyzed .= ( ! empty( $link_analyzed ) ? ' ' : '' ) . $path; // The path split by / $path_split = explode( '/', $path ); if ( count( $path_split ) > 1 ) { $link_analyzed .= ' ' . implode( ' ', $path_split ); } // The fragment if ( ! empty( $url['fragment'] ) ) $link_analyzed .= ( ! empty( $link_analyzed ) ? ' ' : '' ) . $url['fragment']; } // @todo Check unique before adding $links[] = array( 'url' => $link_all_but_proto, 'host_reversed' => $host_reversed, 'host' => $url['host'], ); } } $link_count = count( $links ); if ( $link_count ) { $extracted[ 'link' ] = $links; if ( !isset( $extracted['has'] ) ) $extracted['has'] = array(); $extracted['has']['link'] = $link_count; } } // ----------------------------------- EMBEDS ------------------------------ //Embeds are just individual links on their own line if ( self::EMBEDS & $what_to_extract ) { if ( !function_exists( '_wp_oembed_get_object' ) ) include( ABSPATH . WPINC . '/class-oembed.php' ); // get an oembed object $oembed = _wp_oembed_get_object(); // Grab any links on their own lines that may be embeds if ( preg_match_all( '|^\s*(https?://[^\s"]+)\s*$|im', $content, $matches ) ) { // To hold the extracted stuff we find $embeds = array(); foreach ( $matches[1] as $link_raw ) { $url = parse_url( $link_raw ); list( $proto, $link_all_but_proto ) = explode( '://', $link_raw ); // Check whether this "link" is really an embed. foreach ( $oembed->providers as $matchmask => $data ) { list( $providerurl, $regex ) = $data; // Turn the asterisk-type provider URLs into regex if ( !$regex ) { $matchmask = '#' . str_replace( '___wildcard___', '(.+)', preg_quote( str_replace( '*', '___wildcard___', $matchmask ), '#' ) ) . '#i'; $matchmask = preg_replace( '|^#http\\\://|', '#https?\://', $matchmask ); } if ( preg_match( $matchmask, $link_raw ) ) { $provider = str_replace( '{format}', 'json', $providerurl ); // JSON is easier to deal with than XML $embeds[] = $link_all_but_proto; // @todo Check unique before adding // @todo Try to get ID's for the ones we care about (shortcode_keepers) break; } } } if ( ! empty( $embeds ) ) { if ( !isset( $extracted['has'] ) ) $extracted['has'] = array(); $extracted['has']['embed'] = count( $embeds ); $extracted['embed'] = array( 'url' => array() ); foreach ( $embeds as $e ) $extracted['embed']['url'][] = $e; } } } return $extracted; } /** * @param $post A post object * @param $args (array) Optional args, see defaults list for details * @returns array Returns an array of all images meeting the specified criteria in $args * * Uses Jetpack Post Images */ private static function get_image_fields( $post, $args = array() ) { $defaults = array( 'width' => 200, // Required minimum width (if possible to determine) 'height' => 200, // Required minimum height (if possible to determine) ); $args = wp_parse_args( $args, $defaults ); $image_list = array(); $image_booleans = array(); $image_booleans['gallery'] = 0; $from_featured_image = Jetpack_PostImages::from_thumbnail( $post->ID, $args['width'], $args['height'] ); if ( !empty( $from_featured_image ) ) { $srcs = wp_list_pluck( $from_featured_image, 'src' ); $image_list = array_merge( $image_list, $srcs ); } $from_slideshow = Jetpack_PostImages::from_slideshow( $post->ID, $args['width'], $args['height'] ); if ( !empty( $from_slideshow ) ) { $srcs = wp_list_pluck( $from_slideshow, 'src' ); $image_list = array_merge( $image_list, $srcs ); } $from_gallery = Jetpack_PostImages::from_gallery( $post->ID ); if ( !empty( $from_gallery ) ) { $srcs = wp_list_pluck( $from_gallery, 'src' ); $image_list = array_merge( $image_list, $srcs ); $image_booleans['gallery']++; // @todo This count isn't correct, will only every count 1 } // @todo Can we check width/height of these efficiently? Could maybe use query args at least, before we strip them out $image_list = Jetpack_Media_Meta_Extractor::get_images_from_html( $post->post_content, $image_list ); return Jetpack_Media_Meta_Extractor::build_image_struct( $image_list ); } public static function extract_images_from_content( $content, $image_list ) { $image_list = Jetpack_Media_Meta_Extractor::get_images_from_html( $content, $image_list ); return Jetpack_Media_Meta_Extractor::build_image_struct( $image_list ); } public static function build_image_struct( $image_list ) { if ( ! empty( $image_list ) ) { $retval = array( 'image' => array() ); $image_list = array_unique( $image_list ); foreach ( $image_list as $img ) { $retval['image'][] = array( 'url' => $img ); } $image_booleans['image'] = count( $retval['image'] ); if ( ! empty( $image_booleans ) ) $retval['has'] = $image_booleans; return $retval; } else { return array(); } } /** * * @param string $html Some markup, possibly containing image tags * @param array $images_already_extracted (just an array of image URLs without query strings, no special structure), used for de-duplication * @return array Image URLs extracted from the HTML, stripped of query params and de-duped */ public static function get_images_from_html( $html, $images_already_extracted ) { $image_list = $images_already_extracted; $from_html = Jetpack_PostImages::from_html( $html ); if ( !empty( $from_html ) ) { $srcs = wp_list_pluck( $from_html, 'src' ); foreach( $srcs as $image_url ) { if ( ( $src = parse_url( $image_url ) ) && isset( $src['scheme'], $src['host'], $src['path'] ) ) { // Rebuild the URL without the query string $queryless = $src['scheme'] . '://' . $src['host'] . $src['path']; } elseif ( $length = strpos( $image_url, '?' ) ) { // If parse_url() didn't work, strip off the query string the old fashioned way $queryless = substr( $image_url, 0, $length ); } else { // Failing that, there was no spoon! Err ... query string! $queryless = $image_url; } // Discard URLs that are longer then 4KB, these are likely data URIs or malformed HTML. if ( 4096 < strlen( $queryless ) ) { continue; } if ( ! in_array( $queryless, $image_list ) ) { $image_list[] = $queryless; } } } return $image_list; } private static function get_stripped_content( $content ) { $clean_content = strip_tags( $content ); $clean_content = html_entity_decode( $clean_content ); //completely strip shortcodes and any content they enclose $clean_content = strip_shortcodes( $clean_content ); return $clean_content; } } plugins/jetpack/class.jetpack-data.php0000644000312500031250000001000412654411246020423 0ustar eacbforgeacbforg $token, 'external_user_id' => (int) $user_id, ); } /** * This function mirrors Jetpack_Data::is_usable_domain() in the WPCOM codebase. * * @param $domain * @param array $extra * * @return bool|WP_Error */ public static function is_usable_domain( $domain, $extra = array() ) { // If it's empty, just fail out. if ( ! $domain ) { return new WP_Error( 'fail_domain_empty', sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as it is empty.', 'jetpack' ), $domain ) ); } // None of the explicit localhosts. $forbidden_domains = array( 'wordpress.com', 'localhost', 'localhost.localdomain', '127.0.0.1', 'local.wordpress.dev', // VVV 'local.wordpress-trunk.dev', // VVV 'src.wordpress-develop.dev', // VVV 'build.wordpress-develop.dev', // VVV ); if ( in_array( $domain, $forbidden_domains ) ) { return new WP_Error( 'fail_domain_forbidden', sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as it is in the forbidden array.', 'jetpack' ), $domain ) ); } // No .dev or .local domains if ( preg_match( '#\.(dev|local)$#i', $domain ) ) { return new WP_Error( 'fail_domain_tld', sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as it uses an invalid top level domain.', 'jetpack' ), $domain ) ); } // No WPCOM subdomains if ( preg_match( '#\.wordpress\.com$#i', $domain ) ) { return new WP_Error( 'fail_subdomain_wpcom', sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as it is a subdomain of WordPress.com.', 'jetpack' ), $domain ) ); } // If PHP was compiled without support for the Filter module (very edge case) if ( ! function_exists( 'filter_var' ) ) { // Just pass back true for now, and let wpcom sort it out. return true; } // Check the IP to make sure it's pingable. $ip = gethostbyname( $domain ); // Doing this again as I was getting some false positives when gethostbyname() flaked out and returned the domain. $ip = filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 ) ? $ip : gethostbyname( $ip ); if ( ! filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE | FILTER_FLAG_IPV4 ) && ! self::php_bug_66229_check( $ip ) ) { return new WP_Error( 'fail_domain_bad_ip_range', sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as its IP `%2$s` is either invalid, or in a reserved or private range.', 'jetpack' ), $domain, $ip ) ); } return true; } /** * Returns true if the IP address passed in should not be in a reserved range, even if PHP says that it is. * See: https://bugs.php.net/bug.php?id=66229 and https://github.com/php/php-src/commit/d1314893fd1325ca6aa0831101896e31135a2658 * * This function mirrors Jetpack_Data::php_bug_66229_check() in the WPCOM codebase. */ public static function php_bug_66229_check( $ip ) { if ( ! filter_var( $ip, FILTER_VALIDATE_IP ) ) { return false; } $ip_arr = array_map( 'intval', explode( '.', $ip ) ); if ( 128 == $ip_arr[0] && 0 == $ip_arr[1] ) { return true; } if ( 191 == $ip_arr[0] && 255 == $ip_arr[1] ) { return true; } return false; } } plugins/jetpack/class.jetpack-admin.php0000644000312500031250000002067412654411246020620 0ustar eacbforgeacbforgjetpack = Jetpack::init(); jetpack_require_lib( 'admin-pages/class.jetpack-landing-page' ); $this->landing_page = new Jetpack_Landing_Page; jetpack_require_lib( 'admin-pages/class.jetpack-settings-page' ); $this->settings_page = new Jetpack_Settings_Page; jetpack_require_lib( 'admin-pages/class.jetpack-my-jetpack-page' ); $this->my_jetpack_page = new Jetpack_My_Jetpack_Page; if ( isset( $_POST['jetpack-set-master-user'] ) ) { add_action( 'init', array( $this->my_jetpack_page, 'jetpack_my_jetpack_change_user' ) ); } // Add hooks for admin menus add_action( 'admin_menu', array( $this->landing_page, 'add_actions' ), 998 ); add_action( 'jetpack_admin_menu', array( $this, 'admin_menu_debugger' ) ); add_action( 'jetpack_admin_menu', array( $this->settings_page, 'add_actions' ) ); add_action( 'jetpack_admin_menu', array( $this->my_jetpack_page, 'add_actions' ) ); // Add redirect to current page for activation/deactivation of modules add_action( 'jetpack_pre_activate_module', array( $this, 'fix_redirect' ), 10, 2 ); add_action( 'jetpack_pre_deactivate_module', array( $this, 'fix_redirect' ) ); // Add module bulk actions handler add_action( 'jetpack_unrecognized_action', array( $this, 'handle_unrecognized_action' ) ); } static function sort_requires_connection_last( $module1, $module2 ) { if ( $module1['requires_connection'] == $module2['requires_connection'] ) { return 0; } elseif ( $module1['requires_connection'] ) { return 1; } elseif ( $module2['requires_connection'] ) { return -1; } return 0; } // Produce JS understandable objects of modules containing information for // presentation like description, name, configuration url, etc. function get_modules() { include_once( JETPACK__PLUGIN_DIR . 'modules/module-info.php' ); $available_modules = $this->jetpack->get_available_modules(); $active_modules = $this->jetpack->get_active_modules(); $modules = array(); $jetpack_active = Jetpack::is_active() || Jetpack::is_development_mode(); foreach ( $available_modules as $module ) { if ( $module_array = $this->jetpack->get_module( $module ) ) { /** * Filters each module's short description. * * @since 3.0.0 * * @param string $module_array['description'] Module description. * @param string $module Module slug. */ $short_desc = apply_filters( 'jetpack_short_module_description', $module_array['description'], $module ); // Fix: correct multibyte strings truncate with checking for mbstring extension $short_desc_trunc = ( function_exists( 'mb_strlen' ) ) ? ( ( mb_strlen( $short_desc ) > 143 ) ? mb_substr( $short_desc, 0, 140 ) . '...' : $short_desc ) : ( ( strlen( $short_desc ) > 143 ) ? substr( $short_desc, 0, 140 ) . '...' : $short_desc ); $module_array['module'] = $module; $module_array['activated'] = ( $jetpack_active ? in_array( $module, $active_modules ) : false ); $module_array['deactivate_nonce'] = wp_create_nonce( 'jetpack_deactivate-' . $module ); $module_array['activate_nonce'] = wp_create_nonce( 'jetpack_activate-' . $module ); $module_array['available'] = self::is_module_available( $module_array ); $module_array['short_description'] = $short_desc_trunc; $module_array['configure_url'] = Jetpack::module_configuration_url( $module ); ob_start(); /** * Allow the display of a "Learn More" button. * The dynamic part of the action, $module, is the module slug. * * @since 3.0.0 */ do_action( 'jetpack_learn_more_button_' . $module ); $module_array['learn_more_button'] = ob_get_clean(); ob_start(); /** * Allow the display of information text when Jetpack is connected to WordPress.com. * The dynamic part of the action, $module, is the module slug. * * @since 3.0.0 */ do_action( 'jetpack_module_more_info_' . $module ); /** * Filter the long description of a module. * * @since 3.5.0 * * @param string ob_get_clean() The module long description. * @param string $module The module name. */ $module_array['long_description'] = apply_filters( 'jetpack_long_module_description', ob_get_clean(), $module ); ob_start(); /** * Filter the search terms for a module * * Search terms are typically added to the module headers, under "Additional Search Queries". * * Use syntax: * function jetpack_$module_search_terms( $terms ) { * $terms = _x( 'term 1, term 2', 'search terms', 'jetpack' ); * return $terms; * } * add_filter( 'jetpack_search_terms_$module', 'jetpack_$module_search_terms' ); * * @since 3.5.0 * * @param string The search terms (comma separated). */ echo apply_filters( 'jetpack_search_terms_' . $module, $module_array['additional_search_queries'] ); $module_array['search_terms'] = ob_get_clean(); $module_array['configurable'] = false; if ( current_user_can( 'manage_options' ) && /** * Allow the display of a configuration link in the Jetpack Settings screen. * * @since 3.0.0 * * @param string $module Module name. * @param bool false Should the Configure module link be displayed? Default to false. */ apply_filters( 'jetpack_module_configurable_' . $module, false ) ) { $module_array['configurable'] = sprintf( '%2$s', esc_url( Jetpack::module_configuration_url( $module ) ), __( 'Configure', 'jetpack' ) ); } $modules[ $module ] = $module_array; } } uasort( $modules, array( $this->jetpack, 'sort_modules' ) ); if ( ! Jetpack::is_active() ) { uasort( $modules, array( __CLASS__, 'sort_requires_connection_last' ) ); } return $modules; } static function is_module_available( $module ) { if ( ! is_array( $module ) || empty( $module ) ) return false; /** * We never want to show VaultPress as activatable through Jetpack. */ if ( 'vaultpress' === $module['module'] ) { return false; } if ( Jetpack::is_development_mode() ) { return ! ( $module['requires_connection'] ); } else { return Jetpack::is_active(); } } function handle_unrecognized_action( $action ) { switch( $action ) { case 'bulk-activate' : if ( ! current_user_can( 'jetpack_activate_modules' ) ) { break; } $modules = (array) $_GET['modules']; $modules = array_map( 'sanitize_key', $modules ); check_admin_referer( 'bulk-jetpack_page_jetpack_modules' ); foreach( $modules as $module ) { Jetpack::log( 'activate', $module ); Jetpack::activate_module( $module, false ); } // The following two lines will rarely happen, as Jetpack::activate_module normally exits at the end. wp_safe_redirect( wp_get_referer() ); exit; case 'bulk-deactivate' : if ( ! current_user_can( 'jetpack_deactivate_modules' ) ) { break; } $modules = (array) $_GET['modules']; $modules = array_map( 'sanitize_key', $modules ); check_admin_referer( 'bulk-jetpack_page_jetpack_modules' ); foreach ( $modules as $module ) { Jetpack::log( 'deactivate', $module ); Jetpack::deactivate_module( $module ); Jetpack::state( 'message', 'module_deactivated' ); } Jetpack::state( 'module', $modules ); wp_safe_redirect( wp_get_referer() ); exit; default: return; } } function fix_redirect( $module, $redirect = true ) { if ( ! $redirect ) { return; } if ( wp_get_referer() ) { add_filter( 'wp_redirect', 'wp_get_referer' ); } } function admin_menu_debugger() { $debugger_hook = add_submenu_page( null, __( 'Jetpack Debugging Center', 'jetpack' ), '', 'manage_options', 'jetpack-debugger', array( $this, 'debugger_page' ) ); add_action( "admin_head-$debugger_hook", array( 'Jetpack_Debugger', 'jetpack_debug_admin_head' ) ); } function debugger_page() { nocache_headers(); if ( ! current_user_can( 'manage_options' ) ) { die( '-1' ); } Jetpack_Debugger::jetpack_debug_display_handler(); } } Jetpack_Admin::init(); plugins/jetpack/locales.php0000644000312500031250000016711712654411246016433 0ustar eacbforgeacbforg $value ) { $this->$key = $value; } } public static function __set_state( $state ) { return new GP_Locale( $state ); } /** * Make deprecated properties checkable for backwards compatibility. * * @param string $name Property to check if set. * @return bool Whether the property is set. */ public function __isset( $name ) { if ( 'rtl' == $name ) { return isset( $this->text_direction ); } } /** * Make deprecated properties readable for backwards compatibility. * * @param string $name Property to get. * @return mixed Property. */ public function __get( $name ) { if ( 'rtl' == $name ) { return ( 'rtl' === $this->text_direction ); } } public function combined_name() { /* translators: combined name for locales: 1: name in English, 2: native name */ return sprintf( _x( '%1$s/%2$s', 'locales', 'jetpack' ), $this->english_name, $this->native_name ); } public function numbers_for_index( $index, $how_many = 3, $test_up_to = 1000 ) { $numbers = array(); for( $number = 0; $number < $test_up_to; ++$number ) { if ( $this->index_for_number( $number ) == $index ) { $numbers[] = $number; if ( count( $numbers ) >= $how_many ) { break; } } } return $numbers; } public function index_for_number( $number ) { if ( ! isset( $this->_index_for_number ) ) { $gettext = new Gettext_Translations; $expression = $gettext->parenthesize_plural_exression( $this->plural_expression ); $this->_index_for_number = $gettext->make_plural_form_function( $this->nplurals, $expression ); } $f = $this->_index_for_number; return $f( $number ); } } class GP_Locales { public $locales = array(); public function __construct() { $aa = new GP_Locale(); $aa->english_name = 'Afar'; $aa->native_name = 'Afaraf'; $aa->lang_code_iso_639_1 = 'aa'; $aa->lang_code_iso_639_2 = 'aar'; $aa->slug = 'aa'; $ae = new GP_Locale(); $ae->english_name = 'Avestan'; $ae->native_name = 'Avesta'; $ae->lang_code_iso_639_1 = 'ae'; $ae->lang_code_iso_639_2 = 'ave'; $ae->slug = 'ae'; $af = new GP_Locale(); $af->english_name = 'Afrikaans'; $af->native_name = 'Afrikaans'; $af->lang_code_iso_639_1 = 'af'; $af->lang_code_iso_639_2 = 'afr'; $af->country_code = 'za'; $af->wp_locale = 'af'; $af->slug = 'af'; $af->google_code = 'af'; $af->facebook_locale = 'af_ZA'; $ak = new GP_Locale(); $ak->english_name = 'Akan'; $ak->native_name = 'Akan'; $ak->lang_code_iso_639_1 = 'ak'; $ak->lang_code_iso_639_2 = 'aka'; $ak->wp_locale = 'ak'; $ak->slug = 'ak'; $am = new GP_Locale(); $am->english_name = 'Amharic'; $am->native_name = 'አማርኛ'; $am->lang_code_iso_639_1 = 'am'; $am->lang_code_iso_639_2 = 'amh'; $am->country_code = 'et'; $am->wp_locale = 'am'; $am->slug = 'am'; $an = new GP_Locale(); $an->english_name = 'Aragonese'; $an->native_name = 'Aragonés'; $an->lang_code_iso_639_1 = 'an'; $an->lang_code_iso_639_2 = 'arg'; $an->country_code = 'es'; $an->slug = 'an'; $ar = new GP_Locale(); $ar->english_name = 'Arabic'; $ar->native_name = 'العربية'; $ar->lang_code_iso_639_1 = 'ar'; $ar->lang_code_iso_639_2 = 'ara'; $ar->wp_locale = 'ar'; $ar->slug = 'ar'; $ar->google_code = 'ar'; $ar->facebook_locale = 'ar_AR'; $ar->nplurals = 6; $ar->plural_expression = 'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5'; $ar->text_direction = 'rtl'; $ar->preferred_sans_serif_font_family = 'Tahoma'; $arq = new GP_Locale(); $arq->english_name = 'Algerian Arabic'; $arq->native_name = 'الدارجة الجزايرية'; $arq->lang_code_iso_639_1 = 'ar_DZ'; $arq->lang_code_iso_639_3 = 'arq'; $arq->country_code = 'dz'; $arq->wp_locale = 'arq'; $arq->slug = 'arq'; $arq->nplurals = 6; $arq->plural_expression = 'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5'; $arq->text_direction = 'rtl'; $ary = new GP_Locale(); $ary->english_name = 'Moroccan Arabic'; $ary->native_name = 'العربية المغربية'; $ary->lang_code_iso_639_1 = 'ar_MA'; $ary->lang_code_iso_639_3 = 'ary'; $ary->country_code = 'ma'; $ary->wp_locale = 'ary'; $ary->slug = 'ary'; $ary->nplurals = 6; $ary->plural_expression = 'n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5'; $ary->text_direction = 'rtl'; $as = new GP_Locale(); $as->english_name = 'Assamese'; $as->native_name = 'অসমীয়া'; $as->lang_code_iso_639_1 = 'as'; $as->lang_code_iso_639_2 = 'asm'; $as->lang_code_iso_639_3 = 'asm'; $as->country_code = 'in'; $as->wp_locale = 'as'; $as->slug = 'as'; $ast = new GP_Locale(); $ast->english_name = 'Asturian'; $ast->native_name = 'Asturianu'; $ast->lang_code_iso_639_2 = 'ast'; $ast->country_code = 'es'; $ast->slug = 'ast'; $av = new GP_Locale(); $av->english_name = 'Avaric'; $av->native_name = 'авар мацӀ'; $av->lang_code_iso_639_1 = 'av'; $av->lang_code_iso_639_2 = 'ava'; $av->slug = 'av'; $ay = new GP_Locale(); $ay->english_name = 'Aymara'; $ay->native_name = 'aymar aru'; $ay->lang_code_iso_639_1 = 'ay'; $ay->lang_code_iso_639_2 = 'aym'; $ay->slug = 'ay'; $ay->nplurals = 1; $ay->plural_expression = '0'; $az = new GP_Locale(); $az->english_name = 'Azerbaijani'; $az->native_name = 'AzÉ™rbaycan dili'; $az->lang_code_iso_639_1 = 'az'; $az->lang_code_iso_639_2 = 'aze'; $az->country_code = 'az'; $az->wp_locale = 'az'; $az->slug = 'az'; $az->google_code = 'az'; $az->facebook_locale = 'az_AZ'; $azb = new GP_Locale(); $azb->english_name = 'South Azerbaijani'; $azb->native_name = 'گؤنئی آذربایجان'; $azb->lang_code_iso_639_3 = 'azb'; $azb->country_code = 'az'; $azb->wp_locale = 'azb'; $azb->slug = 'azb'; $azb->text_direction = 'rtl'; $az_tr = new GP_Locale(); $az_tr->english_name = 'Azerbaijani (Turkey)'; $az_tr->native_name = 'AzÉ™rbaycan TürkcÉ™si'; $az_tr->lang_code_iso_639_1 = 'az'; $az_tr->lang_code_iso_639_2 = 'aze'; $az_tr->country_code = 'tr'; $az_tr->wp_locale = 'az_TR'; $az_tr->slug = 'az-tr'; $az_tr->text_direction = true; $ba = new GP_Locale(); $ba->english_name = 'Bashkir'; $ba->native_name = 'башҡорт теле'; $ba->lang_code_iso_639_1 = 'ba'; $ba->lang_code_iso_639_2 = 'bak'; $ba->wp_locale = 'ba'; $ba->slug = 'ba'; $bal = new GP_Locale(); $bal->english_name = 'Catalan (Balear)'; $bal->native_name = 'Català (Balear)'; $bal->lang_code_iso_639_2 = 'bal'; $bal->country_code = 'es'; $bal->wp_locale = 'bal'; $bal->slug = 'bal'; $bcc = new GP_Locale(); $bcc->english_name = 'Balochi Southern'; $bcc->native_name = 'بلوچی مکرانی'; $bcc->lang_code_iso_639_3 = 'bcc'; $bcc->country_code = 'pk'; $bcc->wp_locale = 'bcc'; $bcc->slug = 'bcc'; $bcc->nplurals = 1; $bcc->plural_expression = 0; $bcc->text_direction = 'rtl'; $be = new GP_Locale(); $be->english_name = 'Belarusian'; $be->native_name = 'БеларуÑÐºÐ°Ñ Ð¼Ð¾Ð²Ð°'; $be->lang_code_iso_639_1 = 'be'; $be->lang_code_iso_639_2 = 'bel'; $be->country_code = 'by'; $be->wp_locale = 'bel'; $be->slug = 'be'; $be->google_code = 'be'; $be->facebook_locale = 'be_BY'; $be->nplurals = 3; $be->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $bg = new GP_Locale(); $bg->english_name = 'Bulgarian'; $bg->native_name = 'БългарÑки'; $bg->lang_code_iso_639_1 = 'bg'; $bg->lang_code_iso_639_2 = 'bul'; $bg->country_code = 'bg'; $bg->wp_locale = 'bg_BG'; $bg->slug = 'bg'; $bg->google_code = 'bg'; $bg->facebook_locale = 'bg_BG'; $bh = new GP_Locale(); $bh->english_name = 'Bihari'; $bh->native_name = 'भोजपà¥à¤°à¥€'; $bh->lang_code_iso_639_1 = 'bh'; $bh->lang_code_iso_639_2 = 'bih'; $bh->slug = 'bh'; $bi = new GP_Locale(); $bi->english_name = 'Bislama'; $bi->native_name = 'Bislama'; $bi->lang_code_iso_639_1 = 'bi'; $bi->lang_code_iso_639_2 = 'bis'; $bi->country_code = 'vu'; $bi->slug = 'bi'; $bm = new GP_Locale(); $bm->english_name = 'Bambara'; $bm->native_name = 'Bamanankan'; $bm->lang_code_iso_639_1 = 'bm'; $bm->lang_code_iso_639_2 = 'bam'; $bm->slug = 'bm'; $bn_bd = new GP_Locale(); $bn_bd->english_name = 'Bengali'; $bn_bd->native_name = 'বাংলা'; $bn_bd->lang_code_iso_639_1 = 'bn'; $bn_bd->country_code = 'bn'; $bn_bd->wp_locale = 'bn_BD'; $bn_bd->slug = 'bn'; $bn_bd->google_code = 'bn'; $bn_bd->facebook_locale = 'bn_IN'; $bo = new GP_Locale(); $bo->english_name = 'Tibetan'; $bo->native_name = 'བོད་སà¾à½‘'; $bo->lang_code_iso_639_1 = 'bo'; $bo->lang_code_iso_639_2 = 'tib'; $bo->wp_locale = 'bo'; $bo->slug = 'bo'; $bo->nplurals = 1; $bo->plural_expression = '0'; $br = new GP_Locale(); $br->english_name = 'Breton'; $br->native_name = 'Brezhoneg'; $br->lang_code_iso_639_1 = 'br'; $br->lang_code_iso_639_2 = 'bre'; $br->lang_code_iso_639_3 = 'bre'; $br->country_code = 'fr'; $br->wp_locale = 'bre'; $br->slug = 'br'; $br->nplurals = 2; $br->plural_expression = '(n > 1)'; $bs = new GP_Locale(); $bs->english_name = 'Bosnian'; $bs->native_name = 'Bosanski'; $bs->lang_code_iso_639_1 = 'bs'; $bs->lang_code_iso_639_2 = 'bos'; $bs->country_code = 'ba'; $bs->wp_locale = 'bs_BA'; $bs->slug = 'bs'; $bs->google_code = 'bs'; $bs->facebook_locale = 'bs_BA'; $bs->nplurals = 3; $bs->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $ca = new GP_Locale(); $ca->english_name = 'Catalan'; $ca->native_name = 'Català'; $ca->lang_code_iso_639_1 = 'ca'; $ca->lang_code_iso_639_2 = 'cat'; $ca->wp_locale = 'ca'; $ca->slug = 'ca'; $ca->google_code = 'ca'; $ca->facebook_locale = 'ca_ES'; $ce = new GP_Locale(); $ce->english_name = 'Chechen'; $ce->native_name = 'Ðохчийн мотт'; $ce->lang_code_iso_639_1 = 'ce'; $ce->lang_code_iso_639_2 = 'che'; $ce->slug = 'ce'; $ch = new GP_Locale(); $ch->english_name = 'Chamorro'; $ch->native_name = 'Chamoru'; $ch->lang_code_iso_639_1 = 'ch'; $ch->lang_code_iso_639_2 = 'cha'; $ch->slug = 'ch'; $ckb = new GP_Locale(); $ckb->english_name = 'Kurdish (Sorani)'; $ckb->native_name = 'كوردی‎'; $ckb->lang_code_iso_639_1 = 'ku'; $ckb->lang_code_iso_639_2 = 'ckb'; $ckb->country_code = 'ku'; $ckb->wp_locale = 'ckb'; $ckb->slug = 'ckb'; $ckb->text_direction = 'rtl'; $co = new GP_Locale(); $co->english_name = 'Corsican'; $co->native_name = 'Corsu'; $co->lang_code_iso_639_1 = 'co'; $co->lang_code_iso_639_2 = 'cos'; $co->country_code = 'it'; $co->wp_locale = 'co'; $co->slug = 'co'; $cr = new GP_Locale(); $cr->english_name = 'Cree'; $cr->native_name = 'á“€á¦áƒá”­ááá£'; $cr->lang_code_iso_639_1 = 'cr'; $cr->lang_code_iso_639_2 = 'cre'; $cr->country_code = 'ca'; $cr->slug = 'cr'; $cs = new GP_Locale(); $cs->english_name = 'Czech'; $cs->native_name = 'ÄŒeÅ¡tina‎'; $cs->lang_code_iso_639_1 = 'cs'; $cs->lang_code_iso_639_2 = 'ces'; $cs->country_code = 'cz'; $cs->wp_locale = 'cs_CZ'; $cs->slug = 'cs'; $cs->google_code = 'cs'; $cs->facebook_locale = 'cs_CZ'; $cs->nplurals = 3; $cs->plural_expression = '(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2'; $csb = new GP_Locale(); $csb->english_name = 'Kashubian'; $csb->native_name = 'Kaszëbsczi'; $csb->lang_code_iso_639_2 = 'csb'; $csb->slug = 'csb'; $csb->nplurals = 3; $csb->plural_expression = 'n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2'; $cu = new GP_Locale(); $cu->english_name = 'Church Slavic'; $cu->native_name = 'ѩзыкъ ÑловѣньÑкъ'; $cu->lang_code_iso_639_1 = 'cu'; $cu->lang_code_iso_639_2 = 'chu'; $cu->slug = 'cu'; $cv = new GP_Locale(); $cv->english_name = 'Chuvash'; $cv->native_name = 'чӑваш чӗлхи'; $cv->lang_code_iso_639_1 = 'cv'; $cv->lang_code_iso_639_2 = 'chv'; $cv->country_code = 'ru'; $cv->slug = 'cv'; $cy = new GP_Locale(); $cy->english_name = 'Welsh'; $cy->native_name = 'Cymraeg'; $cy->lang_code_iso_639_1 = 'cy'; $cy->lang_code_iso_639_2 = 'cym'; $cy->country_code = 'uk'; $cy->wp_locale = 'cy'; $cy->slug = 'cy'; $cy->google_code = 'cy'; $cy->facebook_locale = 'cy_GB'; $cy->nplurals = 4; $cy->plural_expression = '(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3'; $da = new GP_Locale(); $da->english_name = 'Danish'; $da->native_name = 'Dansk'; $da->lang_code_iso_639_1 = 'da'; $da->lang_code_iso_639_2 = 'dan'; $da->country_code = 'dk'; $da->wp_locale = 'da_DK'; $da->slug = 'da'; $da->google_code = 'da'; $da->facebook_locale = 'da_DK'; $de = new GP_Locale(); $de->english_name = 'German'; $de->native_name = 'Deutsch'; $de->lang_code_iso_639_1 = 'de'; $de->country_code = 'de'; $de->wp_locale = 'de_DE'; $de->slug = 'de'; $de->google_code = 'de'; $de->facebook_locale = 'de_DE'; $de_ch = new GP_Locale(); $de_ch->english_name = 'German (Switzerland)'; $de_ch->native_name = 'Deutsch (Schweiz)'; $de_ch->lang_code_iso_639_1 = 'de'; $de_ch->country_code = 'ch'; $de_ch->wp_locale = 'de_CH'; $de_ch->slug = 'de-ch'; $de->google_code = 'de'; $dv = new GP_Locale(); $dv->english_name = 'Dhivehi'; $dv->native_name = 'Þ‹Þ¨ÞˆÞ¬Þ€Þ¨'; $dv->lang_code_iso_639_1 = 'dv'; $dv->lang_code_iso_639_2 = 'div'; $dv->country_code = 'mv'; $dv->wp_locale = 'dv'; $dv->slug = 'dv'; $dv->text_direction = 'rtl'; $dzo = new GP_Locale(); $dzo->english_name = 'Dzongkha'; $dzo->native_name = 'རྫོང་à½'; $dzo->lang_code_iso_639_1 = 'dz'; $dzo->lang_code_iso_639_2 = 'dzo'; $dzo->country_code = 'bt'; $dzo->wp_locale = 'dzo'; $dzo->slug = 'dzo'; $dzo->nplurals = 1; $dzo->plural_expression = '0'; $ee = new GP_Locale(); $ee->english_name = 'Ewe'; $ee->native_name = 'EÊ‹egbe'; $ee->lang_code_iso_639_1 = 'ee'; $ee->lang_code_iso_639_2 = 'ewe'; $ee->slug = 'ee'; $el_po = new GP_Locale(); $el_po->english_name = 'Greek (Polytonic)'; $el_po->native_name = 'Greek (Polytonic)'; // TODO $el_po->country_code = 'gr'; $el_po->slug = 'el-po'; $el = new GP_Locale(); $el->english_name = 'Greek'; $el->native_name = 'Ελληνικά'; $el->lang_code_iso_639_1 = 'el'; $el->lang_code_iso_639_2 = 'ell'; $el->country_code = 'gr'; $el->wp_locale = 'el'; $el->slug = 'el'; $el->google_code = 'el'; $el->facebook_locale = 'el_GR'; $en = new GP_Locale(); $en->english_name = 'English'; $en->native_name = 'English'; $en->lang_code_iso_639_1 = 'en'; $en->country_code = 'us'; $en->wp_locale = 'en_US'; $en->slug = 'en'; $en->google_code = 'en'; $en->facebook_locale = 'en_US'; $en_au = new GP_Locale(); $en_au->english_name = 'English (Australia)'; $en_au->native_name = 'English (Australia)'; $en_au->lang_code_iso_639_1 = 'en'; $en_au->lang_code_iso_639_2 = 'eng'; $en_au->lang_code_iso_639_3 = 'eng'; $en_au->country_code = 'au'; $en_au->wp_locale = 'en_AU'; $en_au->slug = 'en-au'; $en_au->google_code = 'en'; $en_au->facebook_locale = 'en_AU'; $en_ca = new GP_Locale(); $en_ca->english_name = 'English (Canada)'; $en_ca->native_name = 'English (Canada)'; $en_ca->lang_code_iso_639_1 = 'en'; $en_ca->lang_code_iso_639_2 = 'eng'; $en_ca->lang_code_iso_639_3 = 'eng'; $en_ca->country_code = 'ca'; $en_ca->wp_locale = 'en_CA'; $en_ca->slug = 'en-ca'; $en_ca->google_code = 'en'; $en_ca->facebook_locale = 'en_CA'; $en_gb = new GP_Locale(); $en_gb->english_name = 'English (UK)'; $en_gb->native_name = 'English (UK)'; $en_gb->lang_code_iso_639_1 = 'en'; $en_gb->lang_code_iso_639_2 = 'eng'; $en_gb->lang_code_iso_639_3 = 'eng'; $en_gb->country_code = 'gb'; $en_gb->wp_locale = 'en_GB'; $en_gb->slug = 'en-gb'; $en_gb->google_code = 'en'; $en_gb->facebook_locale = 'en_GB'; $en_nz = new GP_Locale(); $en_nz->english_name = 'English (New Zealand)'; $en_nz->native_name = 'English (New Zealand)'; $en_nz->lang_code_iso_639_1 = 'en'; $en_nz->lang_code_iso_639_2 = 'eng'; $en_nz->lang_code_iso_639_3 = 'eng'; $en_nz->country_code = 'nz'; $en_nz->wp_locale = 'en_NZ'; $en_nz->slug = 'en-nz'; $en_nz->google_code = 'en'; $en_za = new GP_Locale(); $en_za->english_name = 'English (South Africa)'; $en_za->native_name = 'English (South Africa)'; $en_za->lang_code_iso_639_1 = 'en'; $en_za->lang_code_iso_639_2 = 'eng'; $en_za->lang_code_iso_639_3 = 'eng'; $en_za->country_code = 'za'; $en_za->wp_locale = 'en_ZA'; $en_za->slug = 'en-za'; $en_za->google_code = 'en'; $eo = new GP_Locale(); $eo->english_name = 'Esperanto'; $eo->native_name = 'Esperanto'; $eo->lang_code_iso_639_1 = 'eo'; $eo->lang_code_iso_639_2 = 'epo'; $eo->wp_locale = 'eo'; $eo->slug = 'eo'; $eo->google_code = 'eo'; $eo->facebook_locale = 'eo_EO'; $es_ar = new GP_Locale(); $es_ar->english_name = 'Spanish (Argentina)'; $es_ar->native_name = 'Español de Argentina'; $es_ar->lang_code_iso_639_1 = 'es'; $es_ar->lang_code_iso_639_2 = 'spa'; $es_ar->country_code = 'ar'; $es_ar->wp_locale = 'es_AR'; $es_ar->slug = 'es-ar'; $es_ar->google_code = 'es'; $es_ar->facebook_locale = 'es_AR'; $es_cl = new GP_Locale(); $es_cl->english_name = 'Spanish (Chile)'; $es_cl->native_name = 'Español de Chile'; $es_cl->lang_code_iso_639_1 = 'es'; $es_cl->lang_code_iso_639_2 = 'spa'; $es_cl->country_code = 'cl'; $es_cl->wp_locale = 'es_CL'; $es_cl->slug = 'es-cl'; $es_cl->google_code = 'es'; $es_cl->facebook_locale = 'es_LA'; $es_mx = new GP_Locale(); $es_mx->english_name = 'Spanish (Mexico)'; $es_mx->native_name = 'Español de México'; $es_mx->lang_code_iso_639_1 = 'es'; $es_mx->lang_code_iso_639_2 = 'spa'; $es_mx->country_code = 'mx'; $es_mx->wp_locale = 'es_MX'; $es_mx->slug = 'es-mx'; $es_mx->google_code = 'es'; $es_mx->facebook_locale = 'es_LA'; $es_pe = new GP_Locale(); $es_pe->english_name = 'Spanish (Peru)'; $es_pe->native_name = 'Español de Perú'; $es_pe->lang_code_iso_639_1 = 'es'; $es_pe->lang_code_iso_639_2 = 'spa'; $es_pe->country_code = 'pe'; $es_pe->wp_locale = 'es_PE'; $es_pe->slug = 'es-pe'; $es_pe->google_code = 'es'; $es_pe->facebook_locale = 'es_LA'; $es_pr = new GP_Locale(); $es_pr->english_name = 'Spanish (Puerto Rico)'; $es_pr->native_name = 'Español de Puerto Rico'; $es_pr->lang_code_iso_639_1 = 'es'; $es_pr->lang_code_iso_639_2 = 'spa'; $es_pr->country_code = 'pr'; $es_pr->wp_locale = 'es_PR'; $es_pr->slug = 'es-pr'; $es_pr->google_code = 'es'; $es_pr->facebook_locale = 'es_LA'; $es_ve = new GP_Locale(); $es_ve->english_name = 'Spanish (Venezuela)'; $es_ve->native_name = 'Español de Venezuela'; $es_ve->lang_code_iso_639_1 = 'es'; $es_ve->lang_code_iso_639_2 = 'spa'; $es_ve->country_code = 've'; $es_ve->wp_locale = 'es_VE'; $es_ve->slug = 'es-ve'; $es_ve->google_code = 'es'; $es_ve->facebook_locale = 'es_LA'; $es_co = new GP_Locale(); $es_co->english_name = 'Spanish (Colombia)'; $es_co->native_name = 'Español de Colombia'; $es_co->lang_code_iso_639_1 = 'es'; $es_co->lang_code_iso_639_2 = 'spa'; $es_co->country_code = 'co'; $es_co->wp_locale = 'es_CO'; $es_co->slug = 'es-co'; $es_co->google_code = 'es'; $es_co->facebook_locale = 'es_LA'; $es = new GP_Locale(); $es->english_name = 'Spanish (Spain)'; $es->native_name = 'Español'; $es->lang_code_iso_639_1 = 'es'; $es->country_code = 'es'; $es->wp_locale = 'es_ES'; $es->slug = 'es'; $es->google_code = 'es'; $es->facebook_locale = 'es_ES'; $et = new GP_Locale(); $et->english_name = 'Estonian'; $et->native_name = 'Eesti'; $et->lang_code_iso_639_1 = 'et'; $et->lang_code_iso_639_2 = 'est'; $et->country_code = 'ee'; $et->wp_locale = 'et'; $et->slug = 'et'; $et->google_code = 'et'; $et->facebook_locale = 'et_EE'; $eu = new GP_Locale(); $eu->english_name = 'Basque'; $eu->native_name = 'Euskara'; $eu->lang_code_iso_639_1 = 'eu'; $eu->lang_code_iso_639_2 = 'eus'; $eu->country_code = 'es'; $eu->wp_locale = 'eu'; $eu->slug = 'eu'; $eu->google_code = 'eu'; $eu->facebook_locale = 'eu_ES'; $fa = new GP_Locale(); $fa->english_name = 'Persian'; $fa->native_name = 'ÙØ§Ø±Ø³ÛŒ'; $fa->lang_code_iso_639_1 = 'fa'; $fa->lang_code_iso_639_2 = 'fas'; $fa->wp_locale = 'fa_IR'; $fa->slug = 'fa'; $fa->google_code = 'fa'; $fa->facebook_locale = 'fa_IR'; $fa->nplurals = 1; $fa->plural_expression = '0'; $fa->text_direction = 'rtl'; $fa_af = new GP_Locale(); $fa_af->english_name = 'Persian (Afghanistan)'; $fa_af->native_name = '(ÙØ§Ø±Ø³ÛŒ (Ø§ÙØºØ§Ù†Ø³ØªØ§Ù†'; $fa_af->lang_code_iso_639_1 = 'fa'; $fa_af->lang_code_iso_639_2 = 'fas'; $fa_af->wp_locale = 'fa_AF'; $fa_af->slug = 'fa-af'; $fa_af->google_code = 'fa'; $fa_af->nplurals = 1; $fa_af->plural_expression = '0'; $fa_af->text_direction = 'rtl'; $ff_sn = new GP_Locale(); $ff_sn->english_name = 'Fulah'; $ff_sn->native_name = 'Pulaar'; $ff_sn->lang_code_iso_639_1 = 'ff'; $ff_sn->lang_code_iso_639_2 = 'fuc'; $ff_sn->country_code = 'sn'; $ff_sn->wp_locale = 'fuc'; $ff_sn->slug = 'fuc'; $ff_sn->plural_expression = 'n!=1'; $fi = new GP_Locale(); $fi->english_name = 'Finnish'; $fi->native_name = 'Suomi'; $fi->lang_code_iso_639_1 = 'fi'; $fi->lang_code_iso_639_2 = 'fin'; $fi->country_code = 'fi'; $fi->wp_locale = 'fi'; $fi->slug = 'fi'; $fi->google_code = 'fi'; $fi->facebook_locale = 'fi_FI'; $fj = new GP_Locale(); $fj->english_name = 'Fijian'; $fj->native_name = 'Vosa Vakaviti'; $fj->lang_code_iso_639_1 = 'fj'; $fj->lang_code_iso_639_2 = 'fij'; $fj->country_code = 'fj'; $fj->slug = 'fj'; $fo = new GP_Locale(); $fo->english_name = 'Faroese'; $fo->native_name = 'Føroyskt'; $fo->lang_code_iso_639_1 = 'fo'; $fo->lang_code_iso_639_2 = 'fao'; $fo->country_code = 'fo'; $fo->wp_locale = 'fo'; $fo->slug = 'fo'; $fo->facebook_locale = 'fo_FO'; $fr = new GP_Locale(); $fr->english_name = 'French (France)'; $fr->native_name = 'Français'; $fr->lang_code_iso_639_1 = 'fr'; $fr->country_code = 'fr'; $fr->wp_locale = 'fr_FR'; $fr->slug = 'fr'; $fr->google_code = 'fr'; $fr->facebook_locale = 'fr_FR'; $fr->nplurals = 2; $fr->plural_expression = 'n > 1'; $fr_be = new GP_Locale(); $fr_be->english_name = 'French (Belgium)'; $fr_be->native_name = 'Français de Belgique'; $fr_be->lang_code_iso_639_1 = 'fr'; $fr_be->lang_code_iso_639_2 = 'fra'; $fr_be->country_code = 'be'; $fr_be->wp_locale = 'fr_BE'; $fr_be->slug = 'fr-be'; $fr_ca = new GP_Locale(); $fr_ca->english_name = 'French (Canada)'; $fr_ca->native_name = 'Français du Canada'; $fr_ca->lang_code_iso_639_1 = 'fr'; $fr_ca->lang_code_iso_639_2 = 'fra'; $fr_ca->country_code = 'ca'; $fr_ca->facebook_locale = 'fr_CA'; $fr_ca->wp_locale = 'fr_CA'; $fr_ca->slug = 'fr-ca'; $fr_ch = new GP_Locale(); $fr_ch->english_name = 'French (Switzerland)'; $fr_ch->native_name = 'Français de Suisse'; $fr_ch->lang_code_iso_639_1 = 'fr'; $fr_ch->lang_code_iso_639_2 = 'fra'; $fr_ch->country_code = 'ch'; $fr_ch->slug = 'fr-ch'; $frp = new GP_Locale(); $frp->english_name = 'Arpitan'; $frp->native_name = 'Arpitan'; $frp->lang_code_iso_639_3 = 'frp'; $frp->country_code = 'fr'; $frp->wp_locale = 'frp'; $frp->slug = 'frp'; $frp->nplurals = 2; $frp->plural_expression = 'n > 1'; $fur = new GP_Locale(); $fur->english_name = 'Friulian'; $fur->native_name = 'Friulian'; $fur->lang_code_iso_639_2 = 'fur'; $fur->lang_code_iso_639_3 = 'fur'; $fur->country_code = 'it'; $fur->wp_locale = 'fur'; $fur->slug = 'fur'; $fy = new GP_Locale(); $fy->english_name = 'Frisian'; $fy->native_name = 'Frysk'; $fy->lang_code_iso_639_1 = 'fy'; $fy->lang_code_iso_639_2 = 'fry'; $fy->country_code = 'fy'; $fy->facebook_locale = 'fy_NL'; $fy->slug = 'fy'; $fy->wp_locale = 'fy'; $ga = new GP_Locale(); $ga->english_name = 'Irish'; $ga->native_name = 'Gaelige'; $ga->lang_code_iso_639_1 = 'ga'; $ga->lang_code_iso_639_2 = 'gle'; $ga->country_code = 'ie'; $ga->slug = 'ga'; $ga->wp_locale = 'ga'; $ga->google_code = 'ga'; $ga->facebook_locale = 'ga_IE'; $ga->nplurals = 5; $ga->plural_expression = 'n==1 ? 0 : n==2 ? 1 : n<7 ? 2 : n<11 ? 3 : 4'; $gd = new GP_Locale(); $gd->english_name = 'Scottish Gaelic'; $gd->native_name = 'Gàidhlig'; $gd->lang_code_iso_639_1 = 'gd'; $gd->lang_code_iso_639_2 = 'gla'; $gd->lang_code_iso_639_3 = 'gla'; $gd->country_code = 'uk'; $gd->wp_locale = 'gd'; $gd->slug = 'gd'; $gd->google_code = 'gd'; $gd->nplurals = 4; $gd->plural_expression = '(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3'; $gl = new GP_Locale(); $gl->english_name = 'Galician'; $gl->native_name = 'Galego'; $gl->lang_code_iso_639_1 = 'gl'; $gl->lang_code_iso_639_2 = 'glg'; $gl->country_code = 'es'; $gl->wp_locale = 'gl_ES'; $gl->slug = 'gl'; $gl->google_code = 'gl'; $gl->facebook_locale = 'gl_ES'; $gl->google_code = 'gl'; $gn = new GP_Locale(); $gn->english_name = 'Guaraní'; $gn->native_name = 'Avañe\'ẽ'; $gn->lang_code_iso_639_1 = 'gn'; $gn->lang_code_iso_639_2 = 'grn'; $gn->wp_locale = 'gn'; $gn->slug = 'gn'; $gsw = new GP_Locale(); $gsw->english_name = 'Swiss German'; $gsw->native_name = 'Schwyzerdütsch'; $gsw->lang_code_iso_639_2 = 'gsw'; $gsw->lang_code_iso_639_3 = 'gsw'; $gsw->country_code = 'ch'; $gsw->wp_locale = 'gsw'; $gsw->slug = 'gsw'; $gu = new GP_Locale(); $gu->english_name = 'Gujarati'; $gu->native_name = 'ગà«àªœàª°àª¾àª¤à«€'; $gu->lang_code_iso_639_1 = 'gu'; $gu->lang_code_iso_639_2 = 'guj'; $gu->wp_locale = 'gu'; $gu->slug = 'gu'; $gu->google_code = 'gu'; $ha = new GP_Locale(); $ha->english_name = 'Hausa'; $ha->native_name = 'Ù‡ÙŽÙˆÙØ³ÙŽ'; $ha->lang_code_iso_639_1 = 'ha'; $ha->lang_code_iso_639_2 = 'hau'; $ha->slug = 'ha'; $ha->text_direction = 'rtl'; $ha->google_code = 'ha'; $haw = new GP_Locale(); $haw->english_name = 'Hawaiian'; $haw->native_name = 'ÅŒlelo HawaiÊ»i'; $haw->lang_code_iso_639_2 = 'haw'; $haw->country_code = 'us'; $haw->wp_locale = 'haw_US'; $haw->slug = 'haw'; $haz = new GP_Locale(); $haz->english_name = 'Hazaragi'; $haz->native_name = 'هزاره Ú¯ÛŒ'; $haz->lang_code_iso_639_3 = 'haz'; $haz->country_code = 'af'; $haz->wp_locale = 'haz'; $haz->slug = 'haz'; $haz->text_direction = 'rtl'; $he = new GP_Locale(); $he->english_name = 'Hebrew'; $he->native_name = 'עִבְרִית'; $he->lang_code_iso_639_1 = 'he'; $he->country_code = 'il'; $he->wp_locale = 'he_IL'; $he->slug = 'he'; $he->google_code = 'iw'; $he->facebook_locale = 'he_IL'; $he->text_direction = 'rtl'; $hi = new GP_Locale(); $hi->english_name = 'Hindi'; $hi->native_name = 'हिनà¥à¤¦à¥€'; $hi->lang_code_iso_639_1 = 'hi'; $hi->lang_code_iso_639_2 = 'hin'; $hi->country_code = 'in'; $hi->wp_locale = 'hi_IN'; $hi->slug = 'hi'; $hi->google_code = 'hi'; $hi->facebook_locale = 'hi_IN'; $hr = new GP_Locale(); $hr->english_name = 'Croatian'; $hr->native_name = 'Hrvatski'; $hr->lang_code_iso_639_1 = 'hr'; $hr->lang_code_iso_639_2 = 'hrv'; $hr->country_code = 'hr'; $hr->wp_locale = 'hr'; $hr->slug = 'hr'; $hr->google_code = 'hr'; $hr->facebook_locale = 'hr_HR'; $hr->nplurals = 3; $hr->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $hu = new GP_Locale(); $hu->english_name = 'Hungarian'; $hu->native_name = 'Magyar'; $hu->lang_code_iso_639_1 = 'hu'; $hu->lang_code_iso_639_2 = 'hun'; $hu->country_code = 'hu'; $hu->wp_locale = 'hu_HU'; $hu->slug = 'hu'; $hu->google_code = 'hu'; $hu->facebook_locale = 'hu_HU'; $hy = new GP_Locale(); $hy->english_name = 'Armenian'; $hy->native_name = 'Õ€Õ¡ÕµÕ¥Ö€Õ¥Õ¶'; $hy->lang_code_iso_639_1 = 'hy'; $hy->lang_code_iso_639_2 = 'hye'; $hy->country_code = 'am'; $hy->wp_locale = 'hy'; $hy->slug = 'hy'; $hy->google_code = 'hy'; $hy->facebook_locale = 'hy_AM'; $hy->nplurals = 2; $ia = new GP_Locale(); $ia->english_name = 'Interlingua'; $ia->native_name = 'Interlingua'; $ia->lang_code_iso_639_1 = 'ia'; $ia->lang_code_iso_639_2 = 'ina'; $ia->slug = 'ia'; $id = new GP_Locale(); $id->english_name = 'Indonesian'; $id->native_name = 'Bahasa Indonesia'; $id->lang_code_iso_639_1 = 'id'; $id->lang_code_iso_639_2 = 'ind'; $id->country_code = 'id'; $id->wp_locale = 'id_ID'; $id->slug = 'id'; $id->google_code = 'id'; $id->facebook_locale = 'id_ID'; $id->nplurals = 2; $id->plural_expression = 'n > 1'; $ido = new GP_Locale(); $ido->english_name = 'Ido'; $ido->native_name = 'Ido'; $ido->lang_code_iso_639_1 = 'io'; $ido->lang_code_iso_639_2 = 'ido'; $ido->lang_code_iso_639_3 = 'ido'; $ido->wp_locale = 'ido'; $ido->slug = 'ido'; $ike = new GP_Locale(); $ike->english_name = 'Inuktitut'; $ike->native_name = 'áƒá“„ᒃᑎá‘ᑦ'; $ike->lang_code_iso_639_1 = 'iu'; $ike->lang_code_iso_639_2 = 'iku'; $ike->country_code = 'ca'; $ike->slug = 'ike'; $ilo = new GP_Locale(); $ilo->english_name = 'Iloko'; $ilo->native_name = 'Pagsasao nga Iloko'; $ilo->lang_code_iso_639_2 = 'ilo'; $ilo->country_code = 'ph'; $ilo->slug = 'ilo'; $is = new GP_Locale(); $is->english_name = 'Icelandic'; $is->native_name = 'Ãslenska'; $is->lang_code_iso_639_1 = 'is'; $is->lang_code_iso_639_2 = 'isl'; $is->country_code = 'is'; $is->slug = 'is'; $is->google_code = 'is'; $is->facebook_locale = 'is_IS'; $is->wp_locale = 'is_IS'; $is->nplurals = 2; $is->plural_expression = '(n % 100 != 1 && n % 100 != 21 && n % 100 != 31 && n % 100 != 41 && n % 100 != 51 && n % 100 != 61 && n % 100 != 71 && n % 100 != 81 && n % 100 != 91)'; $it = new GP_Locale(); $it->english_name = 'Italian'; $it->native_name = 'Italiano'; $it->lang_code_iso_639_1 = 'it'; $it->lang_code_iso_639_2 = 'ita'; $it->country_code = 'it'; $it->wp_locale = 'it_IT'; $it->slug = 'it'; $it->google_code = 'it'; $it->facebook_locale = 'it_IT'; $ja = new GP_Locale(); $ja->english_name = 'Japanese'; $ja->native_name = '日本語'; $ja->lang_code_iso_639_1 = 'ja'; $ja->country_code = 'jp'; $ja->wp_locale = 'ja'; $ja->slug = 'ja'; $ja->google_code = 'ja'; $ja->facebook_locale = 'ja_JP'; $ja->nplurals = 1; $ja->plural_expression = '0'; $jv = new GP_Locale(); $jv->english_name = 'Javanese'; $jv->native_name = 'Basa Jawa'; $jv->lang_code_iso_639_1 = 'jv'; $jv->lang_code_iso_639_2 = 'jav'; $jv->country_code = 'id'; $jv->wp_locale = 'jv_ID'; $jv->slug = 'jv'; $jv->google_code = 'jw'; $ka = new GP_Locale(); $ka->english_name = 'Georgian'; $ka->native_name = 'ქáƒáƒ áƒ—ული'; $ka->lang_code_iso_639_1 = 'ka'; $ka->lang_code_iso_639_2 = 'kat'; $ka->country_code = 'ge'; $ka->wp_locale = 'ka_GE'; $ka->slug = 'ka'; $ka->google_code = 'ka'; $ka->facebook_locale = 'ka_GE'; $ka->nplurals = 1; $ka->plural_expression = '0'; $kab = new GP_Locale(); $kab->english_name = 'Kabyle'; $kab->native_name = 'Taqbaylit'; $kab->lang_code_iso_639_2 = 'kab'; $kab->lang_code_iso_639_3 = 'kab'; $kab->country_code = 'dz'; $kab->wp_locale = 'kab'; $kab->slug = 'kab'; $kab->nplurals = 2; $kab->plural_expression = '(n > 1)'; $kin = new GP_Locale(); $kin->english_name = 'Kinyarwanda'; $kin->native_name = 'Ikinyarwanda'; $kin->lang_code_iso_639_1 = 'rw'; $kin->lang_code_iso_639_2 = 'kin'; $kin->lang_code_iso_639_3 = 'kin'; $kin->wp_locale = 'kin'; $kin->country_code = 'rw'; $kin->slug = 'kin'; $kk = new GP_Locale(); $kk->english_name = 'Kazakh'; $kk->native_name = 'Қазақ тілі'; $kk->lang_code_iso_639_1 = 'kk'; $kk->lang_code_iso_639_2 = 'kaz'; $kk->country_code = 'kz'; $kk->wp_locale = 'kk'; $kk->slug = 'kk'; $kk->google_code = 'kk'; $km = new GP_Locale(); $km->english_name = 'Khmer'; $km->native_name = 'ភាសាážáŸ’មែរ'; $km->lang_code_iso_639_1 = 'km'; $km->lang_code_iso_639_2 = 'khm'; $km->country_code = 'kh'; $km->wp_locale = 'km'; $km->slug = 'km'; $km->google_code = 'km'; $km->facebook_locale = 'km_KH'; $km->nplurals = 1; $km->plural_expression = '0'; $kn = new GP_Locale(); $kn->english_name = 'Kannada'; $kn->native_name = 'ಕನà³à²¨à²¡'; $kn->lang_code_iso_639_1 = 'kn'; $kn->lang_code_iso_639_2 = 'kan'; $kn->country_code = 'in'; $kn->wp_locale = 'kn'; $kn->slug = 'kn'; $kn->google_code = 'kn'; $ko = new GP_Locale(); $ko->english_name = 'Korean'; $ko->native_name = '한국어'; $ko->lang_code_iso_639_1 = 'ko'; $ko->lang_code_iso_639_2 = 'kor'; $ko->country_code = 'kr'; $ko->wp_locale = 'ko_KR'; $ko->slug = 'ko'; $ko->google_code = 'ko'; $ko->facebook_locale = 'ko_KR'; $ko->nplurals = 1; $ko->plural_expression = '0'; $ks = new GP_Locale(); $ks->english_name = 'Kashmiri'; $ks->native_name = 'कशà¥à¤®à¥€à¤°à¥€'; $ks->lang_code_iso_639_1 = 'ks'; $ks->lang_code_iso_639_2 = 'kas'; $ks->slug = 'ks'; $ku = new GP_Locale(); $ku->english_name = 'Kurdish (Kurmanji)'; $ku->native_name = 'Kurdî'; $ku->lang_code_iso_639_1 = 'ku'; $ku->lang_code_iso_639_2 = 'kur'; $ku->country_code = 'ku'; $ku->slug = 'ku'; $ku->facebook_locale = 'ku_TR'; $ky = new GP_Locale(); $ky->english_name = 'Kirghiz'; $ky->native_name = 'кыргыз тили'; $ky->lang_code_iso_639_1 = 'ky'; $ky->lang_code_iso_639_2 = 'kir'; $ky->country_code = 'kg'; $ky->wp_locale = 'ky_KY'; $ky->slug = 'ky'; $ky->nplurals = 1; $ky->plural_expression = '0'; $la = new GP_Locale(); $la->english_name = 'Latin'; $la->native_name = 'Latine'; $la->lang_code_iso_639_1 = 'la'; $la->lang_code_iso_639_2 = 'lat'; $la->slug = 'la'; $la->facebook_locale = 'la_VA'; $la->google_code = 'la'; $lb = new GP_Locale(); $lb->english_name = 'Luxembourgish'; $lb->native_name = 'Lëtzebuergesch'; $lb->lang_code_iso_639_1 = 'lb'; $lb->country_code = 'lu'; $lb->wp_locale = 'lb_LU'; $lb->slug = 'lb'; $li = new GP_Locale(); $li->english_name = 'Limburgish'; $li->native_name = 'Limburgs'; $li->lang_code_iso_639_1 = 'li'; $li->lang_code_iso_639_2 = 'lim'; $li->lang_code_iso_639_3 = 'lim'; $li->country_code = 'nl'; $li->wp_locale = 'li'; $li->slug = 'li'; $lin = new GP_Locale(); $lin->english_name = 'Lingala'; $lin->native_name = 'Ngala'; $lin->lang_code_iso_639_1 = 'ln'; $lin->lang_code_iso_639_2 = 'lin'; $lin->wp_locale = 'lin'; $lin->slug = 'lin'; $lin->nplurals = 2; $lin->plural_expression = 'n>1'; $lo = new GP_Locale(); $lo->english_name = 'Lao'; $lo->native_name = 'ພາສາລາວ'; $lo->lang_code_iso_639_1 = 'lo'; $lo->lang_code_iso_639_2 = 'lao'; $lo->wp_locale = 'lo'; $lo->slug = 'lo'; $lo->google_code = 'lo'; $lo->nplurals = 1; $lo->plural_expression = '0'; $lt = new GP_Locale(); $lt->english_name = 'Lithuanian'; $lt->native_name = 'Lietuvių kalba'; $lt->lang_code_iso_639_1 = 'lt'; $lt->lang_code_iso_639_2 = 'lit'; $lt->country_code = 'lt'; $lt->wp_locale = 'lt_LT'; $lt->slug = 'lt'; $lt->google_code = 'lt'; $lt->facebook_locale = 'lt_LT'; $lt->nplurals = 3; $lt->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)'; $lv = new GP_Locale(); $lv->english_name = 'Latvian'; $lv->native_name = 'LatvieÅ¡u valoda'; $lv->lang_code_iso_639_1 = 'lv'; $lv->lang_code_iso_639_2 = 'lav'; $lv->country_code = 'lv'; $lv->wp_locale = 'lv'; $lv->slug = 'lv'; $lv->google_code = 'lv'; $lv->facebook_locale = 'lv_LV'; $lv->nplurals = 3; $lv->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)'; $me = new GP_Locale(); $me->english_name = 'Montenegrin'; $me->native_name = 'Crnogorski jezik'; $me->lang_code_iso_639_1 = 'me'; $me->country_code = 'me'; $me->wp_locale = 'me_ME'; $me->slug = 'me'; $me->nplurals = 3; $me->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $mg = new GP_Locale(); $mg->english_name = 'Malagasy'; $mg->native_name = 'Malagasy'; $mg->lang_code_iso_639_1 = 'mg'; $mg->lang_code_iso_639_2 = 'mlg'; $mg->country_code = 'mg'; $mg->wp_locale = 'mg_MG'; $mg->slug = 'mg'; $mg->google_code = 'mg'; $mhr = new GP_Locale(); $mhr->english_name = 'Mari (Meadow)'; $mhr->native_name = 'Олык марий'; $mhr->lang_code_iso_639_3 = 'mhr'; $mhr->country_code = 'ru'; $mhr->slug = 'mhr'; $mk = new GP_Locale(); $mk->english_name = 'Macedonian'; $mk->native_name = 'МакедонÑки јазик'; $mk->lang_code_iso_639_1 = 'mk'; $mk->lang_code_iso_639_2 = 'mkd'; $mk->country_code = 'mk'; $mk->wp_locale = 'mk_MK'; $mk->slug = 'mk'; $mk->google_code = 'mk'; $mk->facebook_locale = 'mk_MK'; $mk->nplurals = 2; $mk->plural_expression = 'n==1 || n%10==1 ? 0 : 1'; $ml = new GP_Locale(); $ml->english_name = 'Malayalam'; $ml->native_name = 'മലയാളം'; $ml->lang_code_iso_639_1 = 'ml'; $ml->lang_code_iso_639_2 = 'mal'; $ml->country_code = 'in'; $ml->wp_locale = 'ml_IN'; $ml->slug = 'ml'; $ml->google_code = 'ml'; $ml->facebook_locale = 'ml_IN'; $mn = new GP_Locale(); $mn->english_name = 'Mongolian'; $mn->native_name = 'Монгол'; $mn->lang_code_iso_639_1 = 'mn'; $mn->lang_code_iso_639_2 = 'mon'; $mn->country_code = 'mn'; $mn->wp_locale = 'mn'; $mn->slug = 'mn'; $mn->google_code = 'mn'; $mr = new GP_Locale(); $mr->english_name = 'Marathi'; $mr->native_name = 'मराठी'; $mr->lang_code_iso_639_1 = 'mr'; $mr->lang_code_iso_639_2 = 'mar'; $mr->wp_locale = 'mr'; $mr->slug = 'mr'; $mr->google_code = 'mr'; $mri = new GP_Locale(); $mri->english_name = 'Maori'; $mri->native_name = 'Te Reo MÄori'; $mri->lang_code_iso_639_3 = 'mri'; $mri->country_code = 'nz'; $mri->slug = 'mri'; $mri->wp_locale = 'mri'; $mri->nplurals = 2; $mri->plural_expression = '(n > 1)'; $mri->google_code = 'mi'; $mrj = new GP_Locale(); $mrj->english_name = 'Mari (Hill)'; $mrj->native_name = 'Кырык мары'; $mrj->lang_code_iso_639_3 = 'mrj'; $mrj->country_code = 'ru'; $mrj->slug = 'mrj'; $ms = new GP_Locale(); $ms->english_name = 'Malay'; $ms->native_name = 'Bahasa Melayu'; $ms->lang_code_iso_639_1 = 'ms'; $ms->lang_code_iso_639_2 = 'msa'; $ms->wp_locale = 'ms_MY'; $ms->slug = 'ms'; $ms->google_code = 'ms'; $ms->facebook_locale = 'ms_MY'; $ms->nplurals = 1; $ms->plural_expression = '0'; $mwl = new GP_Locale(); $mwl->english_name = 'Mirandese'; $mwl->native_name = 'Mirandés'; $mwl->lang_code_iso_639_2 = 'mwl'; $mwl->slug = 'mwl'; $my = new GP_Locale(); $my->english_name = 'Myanmar (Burmese)'; $my->native_name = 'ဗမာစာ'; $my->lang_code_iso_639_1 = 'my'; $my->lang_code_iso_639_2 = 'mya'; $my->country_code = 'mm'; $my->wp_locale = 'my_MM'; $my->slug = 'mya'; $my->google_code = 'my'; $ne = new GP_Locale(); $ne->english_name = 'Nepali'; $ne->native_name = 'नेपाली'; $ne->lang_code_iso_639_1 = 'ne'; $ne->lang_code_iso_639_2 = 'nep'; $ne->country_code = 'np'; $ne->wp_locale = 'ne_NP'; $ne->slug = 'ne'; $ne->facebook_locale = 'ne_NP'; $ne->google_code = 'ne'; $nb = new GP_Locale(); $nb->english_name = 'Norwegian (BokmÃ¥l)'; $nb->native_name = 'Norsk bokmÃ¥l'; $nb->lang_code_iso_639_1 = 'nb'; $nb->lang_code_iso_639_2 = 'nob'; $nb->country_code = 'no'; $nb->wp_locale = 'nb_NO'; $nb->slug = 'nb'; $nb->google_code = 'no'; $nb->facebook_locale = 'nb_NO'; $nl = new GP_Locale(); $nl->english_name = 'Dutch'; $nl->native_name = 'Nederlands'; $nl->lang_code_iso_639_1 = 'nl'; $nl->lang_code_iso_639_2 = 'nld'; $nl->country_code = 'nl'; $nl->wp_locale = 'nl_NL'; $nl->slug = 'nl'; $nl->google_code = 'nl'; $nl->facebook_locale = 'nl_NL'; $nl_be = new GP_Locale(); $nl_be->english_name = 'Dutch (Belgium)'; $nl_be->native_name = 'Nederlands (België)'; $nl_be->lang_code_iso_639_1 = 'nl'; $nl_be->lang_code_iso_639_2 = 'nld'; $nl_be->country_code = 'be'; $nl_be->wp_locale = 'nl_BE'; $nl_be->slug = 'nl-be'; $nl_be->google_code = 'nl'; $nn = new GP_Locale(); $nn->english_name = 'Norwegian (Nynorsk)'; $nn->native_name = 'Norsk nynorsk'; $nn->lang_code_iso_639_1 = 'nn'; $nn->lang_code_iso_639_2 = 'nno'; $nn->country_code = 'no'; $nn->wp_locale = 'nn_NO'; $nn->slug = 'nn'; $nn->facebook_locale = 'nn_NO'; $nn->google_code = 'no'; $no = new GP_Locale(); $no->english_name = 'Norwegian'; $no->native_name = 'Norsk'; $no->lang_code_iso_639_1 = 'no'; $no->lang_code_iso_639_2 = 'nor'; $no->country_code = 'no'; $no->slug = 'no'; $no->google_code = 'no'; $oci = new GP_Locale(); $oci->english_name = 'Occitan'; $oci->native_name = 'Occitan'; $oci->lang_code_iso_639_1 = 'oc'; $oci->lang_code_iso_639_2 = 'oci'; $oci->country_code = 'fr'; $oci->wp_locale = 'oci'; $oci->slug = 'oc'; $oci->nplurals = 2; $oci->plural_expression = '(n > 1)'; $orm = new GP_Locale(); $orm->english_name = 'Oromo'; $orm->native_name = 'Afaan Oromo'; $orm->lang_code_iso_639_1 = 'om'; $orm->lang_code_iso_639_2 = 'orm'; $orm->lang_code_iso_639_3 = 'orm'; $orm->slug = 'orm'; $orm->plural_expression = '(n > 1)'; $ory = new GP_Locale(); $ory->english_name = 'Oriya'; $ory->native_name = 'ଓଡ଼ିଆ'; $ory->lang_code_iso_639_1 = 'or'; $ory->lang_code_iso_639_2 = 'ory'; $ory->country_code = 'in'; $ory->wp_locale = 'ory'; $ory->google_code = 'or'; $ory->slug = 'ory'; $os = new GP_Locale(); $os->english_name = 'Ossetic'; $os->native_name = 'Ирон'; $os->lang_code_iso_639_1 = 'os'; $os->lang_code_iso_639_2 = 'oss'; $os->wp_locale = 'os'; $os->slug = 'os'; $pa = new GP_Locale(); $pa->english_name = 'Punjabi'; $pa->native_name = 'ਪੰਜਾਬੀ'; $pa->lang_code_iso_639_1 = 'pa'; $pa->lang_code_iso_639_2 = 'pan'; $pa->country_code = 'in'; $pa->wp_locale = 'pa_IN'; $pa->slug = 'pa'; $pa->facebook_locale = 'pa_IN'; $pa->google_code = 'pa'; $pl = new GP_Locale(); $pl->english_name = 'Polish'; $pl->native_name = 'Polski'; $pl->lang_code_iso_639_1 = 'pl'; $pl->lang_code_iso_639_2 = 'pol'; $pl->country_code = 'pl'; $pl->wp_locale = 'pl_PL'; $pl->slug = 'pl'; $pl->google_code = 'pl'; $pl->facebook_locale = 'pl_PL'; $pl->nplurals = 3; $pl->plural_expression = '(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $pt_br = new GP_Locale(); $pt_br->english_name = 'Portuguese (Brazil)'; $pt_br->native_name = 'Português do Brasil'; $pt_br->lang_code_iso_639_1 = 'pt'; $pt_br->lang_code_iso_639_2 = 'por'; $pt_br->country_code = 'br'; $pt_br->wp_locale = 'pt_BR'; $pt_br->slug = 'pt-br'; $pt_br->google_code = 'pt-BR'; $pt_br->facebook_locale = 'pt_BR'; $pt_br->nplurals = 2; $pt_br->plural_expression = '(n > 1)'; $pt = new GP_Locale(); $pt->english_name = 'Portuguese (Portugal)'; $pt->native_name = 'Português'; $pt->lang_code_iso_639_1 = 'pt'; $pt->country_code = 'pt'; $pt->wp_locale = 'pt_PT'; $pt->slug = 'pt'; $pt->google_code = 'pt-PT'; $pt->facebook_locale = 'pt_PT'; $ps = new GP_Locale(); $ps->english_name = 'Pashto'; $ps->native_name = 'پښتو'; $ps->lang_code_iso_639_1 = 'ps'; $ps->lang_code_iso_639_2 = 'pus'; $ps->country_code = 'af'; $ps->wp_locale = 'ps'; $ps->slug = 'ps'; $ps->facebook_locale = 'ps_AF'; $ps->text_direction = 'rtl'; $rhg = new GP_Locale(); $rhg->english_name = 'Rohingya'; $rhg->native_name = 'Ruáinga'; $rhg->lang_code_iso_639_3 = 'rhg'; $rhg->country_code = 'mm'; $rhg->wp_locale = 'rhg'; $rhg->slug = 'rhg'; $rhg->nplurals = 1; $rhg->plural_expression = '0'; $ro = new GP_Locale(); $ro->english_name = 'Romanian'; $ro->native_name = 'Română'; $ro->lang_code_iso_639_1 = 'ro'; $ro->lang_code_iso_639_2 = 'ron'; $ro->country_code = 'ro'; $ro->wp_locale = 'ro_RO'; $ro->slug = 'ro'; $ro->google_code = 'ro'; $ro->facebook_locale = 'ro_RO'; $ro->nplurals = 3; $ro->plural_expression = '(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2)'; $roh = new GP_Locale(); $roh->english_name = 'Romansh Vallader'; $roh->native_name = 'Rumantsch Vallader'; $roh->lang_code_iso_639_2 = 'rm'; $roh->lang_code_iso_639_3 = 'roh'; $roh->country_code = 'ch'; $roh->wp_locale = 'roh'; $roh->slug = 'roh'; $ru = new GP_Locale(); $ru->english_name = 'Russian'; $ru->native_name = 'РуÑÑкий'; $ru->lang_code_iso_639_1 = 'ru'; $ru->lang_code_iso_639_2 = 'rus'; $ru->country_code = 'ru'; $ru->wp_locale = 'ru_RU'; $ru->slug = 'ru'; $ru->google_code = 'ru'; $ru->facebook_locale = 'ru_RU'; $ru->nplurals = 3; $ru->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $ru_ua = new GP_Locale(); $ru_ua->english_name = 'Russian (Ukraine)'; $ru_ua->native_name = 'україÌнÑька моÌва'; $ru_ua->lang_code_iso_639_1 = 'ru'; $ru_ua->lang_code_iso_639_2 = 'rus'; $ru_ua->country_code = 'ua'; $ru_ua->wp_locale = 'ru_UA'; $ru_ua->slug = 'ru-ua'; $ru_ua->google_code = 'ru'; $ru_ua->nplurals = 3; $ru_ua->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $rue = new GP_Locale(); $rue->english_name = 'Rusyn'; $rue->native_name = 'РуÑиньÑкый'; $rue->lang_code_iso_639_3 = 'rue'; $rue->wp_locale = 'rue'; $rue->slug = 'rue'; $rue->nplurals = 3; $rue->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $rup = new GP_Locale(); $rup->english_name = 'Aromanian'; $rup->native_name = 'Armãneashce'; $rup->lang_code_iso_639_2 = 'rup'; $rup->lang_code_iso_639_3 = 'rup'; $rup->country_code = 'mk'; $rup->wp_locale = 'rup_MK'; $rup->slug = 'rup'; $sah = new GP_Locale(); $sah->english_name = 'Sakha'; $sah->native_name = 'Сахалыы'; $sah->lang_code_iso_639_2 = 'sah'; $sah->lang_code_iso_639_3 = 'sah'; $sah->country_code = 'ru'; $sah->wp_locale = 'sah'; $sah->slug = 'sah'; $sa_in = new GP_Locale(); $sa_in->english_name = 'Sanskrit'; $sa_in->native_name = 'भारतमà¥'; $sa_in->lang_code_iso_639_1 = 'sa'; $sa_in->lang_code_iso_639_2 = 'san'; $sa_in->lang_code_iso_639_3 = 'san'; $sa_in->country_code = 'in'; $sa_in->wp_locale = 'sa_IN'; $sa_in->slug = 'sa-in'; $sd = new GP_Locale(); $sd->english_name = 'Sindhi'; $sd->native_name = 'سندھ'; $sd->lang_code_iso_639_1 = 'sd'; $sd->lang_code_iso_639_2 = 'snd'; $sd->country_code = 'pk'; $sd->wp_locale = 'sd_PK'; $sd->slug = 'sd'; $si = new GP_Locale(); $si->english_name = 'Sinhala'; $si->native_name = 'සිංහල'; $si->lang_code_iso_639_1 = 'si'; $si->lang_code_iso_639_2 = 'sin'; $si->country_code = 'lk'; $si->wp_locale = 'si_LK'; $si->slug = 'si'; $si->google_code = 'si'; $sk = new GP_Locale(); $sk->english_name = 'Slovak'; $sk->native_name = 'SlovenÄina'; $sk->lang_code_iso_639_1 = 'sk'; $sk->lang_code_iso_639_2 = 'slk'; $sk->country_code = 'sk'; $sk->slug = 'sk'; $sk->wp_locale = 'sk_SK'; $sk->google_code = 'sk'; $sk->facebook_locale = 'sk_SK'; $sk->nplurals = 3; $sk->plural_expression = '(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2'; $sl = new GP_Locale(); $sl->english_name = 'Slovenian'; $sl->native_name = 'SlovenÅ¡Äina'; $sl->lang_code_iso_639_1 = 'sl'; $sl->lang_code_iso_639_2 = 'slv'; $sl->country_code = 'si'; $sl->wp_locale = 'sl_SI'; $sl->slug = 'sl'; $sl->google_code = 'sl'; $sl->facebook_locale = 'sl_SI'; $sl->nplurals = 4; $sl->plural_expression = '(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)'; $so = new GP_Locale(); $so->english_name = 'Somali'; $so->native_name = 'Afsoomaali'; $so->lang_code_iso_639_1 = 'so'; $so->lang_code_iso_639_2 = 'som'; $so->lang_code_iso_639_3 = 'som'; $so->country_code = 'so'; $so->wp_locale = 'so_SO'; $so->slug = 'so'; $so->google_code = 'so'; $sq = new GP_Locale(); $sq->english_name = 'Albanian'; $sq->native_name = 'Shqip'; $sq->lang_code_iso_639_1 = 'sq'; $sq->lang_code_iso_639_2 = 'sqi'; $sq->wp_locale = 'sq'; $sq->country_code = 'al'; $sq->slug = 'sq'; $sq->google_code = 'sq'; $sq->facebook_locale = 'sq_AL'; $sr = new GP_Locale(); $sr->english_name = 'Serbian'; $sr->native_name = 'СрпÑки језик'; $sr->lang_code_iso_639_1 = 'sr'; $sr->lang_code_iso_639_2 = 'srp'; $sr->country_code = 'rs'; $sr->wp_locale = 'sr_RS'; $sr->slug = 'sr'; $sr->google_code = 'sr'; $sr->facebook_locale = 'sr_RS'; $sr->nplurals = 3; $sr->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $srd = new GP_Locale(); $srd->english_name = 'Sardinian'; $srd->native_name = 'Sardu'; $srd->lang_code_iso_639_1 = 'sc'; $srd->lang_code_iso_639_2 = 'srd'; $srd->country_code = 'srd'; $srd->wp_locale = 'srd'; $srd->slug = 'srd'; $su = new GP_Locale(); $su->english_name = 'Sundanese'; $su->native_name = 'Basa Sunda'; $su->lang_code_iso_639_1 = 'su'; $su->lang_code_iso_639_2 = 'sun'; $su->country_code = 'id'; $su->wp_locale = 'su_ID'; $su->slug = 'su'; $su->nplurals = 1; $su->plural_expression = '0'; $su->google_code = 'su'; $sv = new GP_Locale(); $sv->english_name = 'Swedish'; $sv->native_name = 'Svenska'; $sv->lang_code_iso_639_1 = 'sv'; $sv->lang_code_iso_639_2 = 'swe'; $sv->country_code = 'se'; $sv->wp_locale = 'sv_SE'; $sv->slug = 'sv'; $sv->google_code = 'sv'; $sv->facebook_locale = 'sv_SE'; $sw = new GP_Locale(); $sw->english_name = 'Swahili'; $sw->native_name = 'Kiswahili'; $sw->lang_code_iso_639_1 = 'sw'; $sw->lang_code_iso_639_2 = 'swa'; $sw->wp_locale = 'sw'; $sw->slug = 'sw'; $sw->google_code = 'sw'; $sw->facebook_locale = 'sw_KE'; $szl = new GP_Locale(); $szl->english_name = 'Silesian'; $szl->native_name = 'ÅšlÅnskÅ gÅdka'; $szl->lang_code_iso_639_3 = 'szl'; $szl->country_code = 'pl'; $szl->wp_locale = 'szl'; $szl->slug = 'szl'; $szl->nplurals = 3; $szl->plural_expression = '(n==1 ? 0 : n%10>=2 && n%10<=4 && n%100==20 ? 1 : 2)'; $ta = new GP_Locale(); $ta->english_name = 'Tamil'; $ta->native_name = 'தமிழà¯'; $ta->lang_code_iso_639_1 = 'ta'; $ta->lang_code_iso_639_2 = 'tam'; $ta->country_code = 'IN'; $ta->wp_locale = 'ta_IN'; $ta->slug = 'ta'; $ta->google_code = 'ta'; $ta->facebook_locale = 'ta_IN'; $ta_lk = new GP_Locale(); $ta_lk->english_name = 'Tamil (Sri Lanka)'; $ta_lk->native_name = 'தமிழà¯'; $ta_lk->lang_code_iso_639_1 = 'ta'; $ta_lk->lang_code_iso_639_2 = 'tam'; $ta_lk->country_code = 'LK'; $ta_lk->wp_locale = 'ta_LK'; $ta_lk->slug = 'ta-lk'; $ta_lk->google_code = 'ta'; $te = new GP_Locale(); $te->english_name = 'Telugu'; $te->native_name = 'తెలà±à°—à±'; $te->lang_code_iso_639_1 = 'te'; $te->lang_code_iso_639_2 = 'tel'; $te->wp_locale = 'te'; $te->slug = 'te'; $te->google_code = 'te'; $te->facebook_locale = 'te_IN'; $tg = new GP_Locale(); $tg->english_name = 'Tajik'; $tg->native_name = 'Тоҷикӣ'; $tg->lang_code_iso_639_1 = 'tg'; $tg->lang_code_iso_639_2 = 'tgk'; $tg->wp_locale = 'tg'; $tg->slug = 'tg'; $tg->google_code = 'tg'; $th = new GP_Locale(); $th->english_name = 'Thai'; $th->native_name = 'ไทย'; $th->lang_code_iso_639_1 = 'th'; $th->lang_code_iso_639_2 = 'tha'; $th->wp_locale = 'th'; $th->slug = 'th'; $th->google_code = 'th'; $th->facebook_locale = 'th_TH'; $th->nplurals = 1; $th->plural_expression = '0'; $tir = new GP_Locale(); $tir->english_name = 'Tigrinya'; $tir->native_name = 'ትáŒáˆ­áŠ›'; $tir->lang_code_iso_639_1 = 'ti'; $tir->lang_code_iso_639_2 = 'tir'; $tir->country_code = 'er'; $tir->wp_locale = 'tir'; $tir->slug = 'tir'; $tir->nplurals = 1; $tir->plural_expression = '0'; $tlh = new GP_Locale(); $tlh->english_name = 'Klingon'; $tlh->native_name = 'TlhIngan'; $tlh->lang_code_iso_639_2 = 'tlh'; $tlh->slug = 'tlh'; $tlh->nplurals = 1; $tlh->plural_expression = '0'; $tl = new GP_Locale(); $tl->english_name = 'Tagalog'; $tl->native_name = 'Tagalog'; $tl->lang_code_iso_639_1 = 'tl'; $tl->lang_code_iso_639_2 = 'tgl'; $tl->country_code = 'ph'; $tl->wp_locale = 'tl'; $tl->slug = 'tl'; $tl->google_code = 'tl'; $tl->facebook_locale = 'tl_PH'; $tr = new GP_Locale(); $tr->english_name = 'Turkish'; $tr->native_name = 'Türkçe'; $tr->lang_code_iso_639_1 = 'tr'; $tr->lang_code_iso_639_2 = 'tur'; $tr->country_code = 'tr'; $tr->wp_locale = 'tr_TR'; $tr->slug = 'tr'; $tr->google_code = 'tr'; $tr->facebook_locale = 'tr_TR'; $tr->nplurals = 2; $tr->plural_expression = '(n > 1)'; $tt_ru = new GP_Locale(); $tt_ru->english_name = 'Tatar'; $tt_ru->native_name = 'Татар теле'; $tt_ru->lang_code_iso_639_1 = 'tt'; $tt_ru->lang_code_iso_639_2 = 'tat'; $tt_ru->country_code = 'tt'; $tt_ru->wp_locale = 'tt_RU'; $tt_ru->slug = 'tt'; $tt_ru->nplurals = 3; $tt_ru->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $tuk = new GP_Locale(); $tuk->english_name = 'Turkmen'; $tuk->native_name = 'Türkmençe'; $tuk->lang_code_iso_639_1 = 'tk'; $tuk->lang_code_iso_639_2 = 'tuk'; $tuk->country_code = 'tm'; $tuk->wp_locale = 'tuk'; $tuk->slug = 'tuk'; $tuk->nplurals = 2; $tuk->plural_expression = '(n > 1)'; $tzm = new GP_Locale(); $tzm->english_name = 'Tamazight (Central Atlas)'; $tzm->native_name = 'ⵜⴰⵎⴰⵣⵉⵖⵜ'; $tzm->lang_code_iso_639_2 = 'tzm'; $tzm->country_code = 'ma'; $tzm->wp_locale = 'tzm'; $tzm->slug = 'tzm'; $tzm->nplurals = 2; $tzm->plural_expression = '(n > 1)'; $udm = new GP_Locale(); $udm->english_name = 'Udmurt'; $udm->native_name = 'Удмурт кыл'; $udm->lang_code_iso_639_2 = 'udm'; $udm->slug = 'udm'; $ug = new GP_Locale(); $ug->english_name = 'Uighur'; $ug->native_name = 'UyÆ£urqÉ™'; $ug->lang_code_iso_639_1 = 'ug'; $ug->lang_code_iso_639_2 = 'uig'; $ug->country_code = 'cn'; $ug->wp_locale = 'ug_CN'; $ug->slug = 'ug'; $ug->text_direction = 'rtl'; $uk = new GP_Locale(); $uk->english_name = 'Ukrainian'; $uk->native_name = 'УкраїнÑька'; $uk->lang_code_iso_639_1 = 'uk'; $uk->lang_code_iso_639_2 = 'ukr'; $uk->country_code = 'ua'; $uk->wp_locale = 'uk'; $uk->slug = 'uk'; $uk->google_code = 'uk'; $uk->facebook_locale = 'uk_UA'; $uk->nplurals = 3; $uk->plural_expression = '(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)'; $ur = new GP_Locale(); $ur->english_name = 'Urdu'; $ur->native_name = 'اردو'; $ur->lang_code_iso_639_1 = 'ur'; $ur->lang_code_iso_639_2 = 'urd'; $ur->wp_locale = 'ur'; $ur->slug = 'ur'; $ur->google_code = 'ur'; $ur->text_direction = 'rtl'; $uz = new GP_Locale(); $uz->english_name = 'Uzbek'; $uz->native_name = 'O‘zbekcha'; $uz->lang_code_iso_639_1 = 'uz'; $uz->lang_code_iso_639_2 = 'uzb'; $uz->country_code = 'uz'; $uz->wp_locale = 'uz_UZ'; $uz->slug = 'uz'; $uz->google_code = 'uz'; $uz->nplurals = 1; $uz->plural_expression = '0'; $vec = new GP_Locale(); $vec->english_name = 'Venetian'; $vec->native_name = 'Vèneta'; $vec->lang_code_iso_639_2 = 'roa'; $vec->lang_code_iso_639_3 = 'vec'; $vec->country_code = 'it'; $vec->slug = 'vec'; $vi = new GP_Locale(); $vi->english_name = 'Vietnamese'; $vi->native_name = 'Tiếng Việt'; $vi->lang_code_iso_639_1 = 'vi'; $vi->lang_code_iso_639_2 = 'vie'; $vi->country_code = 'vn'; $vi->wp_locale = 'vi'; $vi->slug = 'vi'; $vi->google_code = 'vi'; $vi->facebook_locale = 'vi_VN'; $vi->nplurals = 1; $vi->plural_expression = '0'; $wa = new GP_Locale(); $wa->english_name = 'Walloon'; $wa->native_name = 'Walon'; $wa->lang_code_iso_639_1 = 'wa'; $wa->lang_code_iso_639_2 = 'wln'; $wa->country_code = 'be'; $wa->wp_locale = 'wa'; $wa->slug = 'wa'; $xmf = new GP_Locale(); $xmf->english_name = 'Mingrelian'; $xmf->native_name = 'მáƒáƒ áƒ’áƒáƒšáƒ£áƒ áƒ˜ ნინáƒ'; $xmf->lang_code_iso_639_3 = 'xmf'; $xmf->country_code = 'ge'; $xmf->wp_locale = 'xmf'; $xmf->slug = 'xmf'; $yi = new GP_Locale(); $yi->english_name = 'Yiddish'; $yi->native_name = 'ייִדיש'; $yi->lang_code_iso_639_1 = 'yi'; $yi->lang_code_iso_639_2 = 'yid'; $yi->slug = 'yi'; $yi->google_code = 'yi'; $yi->text_direction = 'rtl'; $yor = new GP_Locale(); $yor->english_name = 'Yoruba'; $yor->native_name = 'Yorùbá'; $yor->lang_code_iso_639_1 = 'yo'; $yor->lang_code_iso_639_2 = 'yor'; $yor->lang_code_iso_639_3 = 'yor'; $yor->country_code = 'ng'; $yor->wp_locale = 'yor'; $yor->slug = 'yor'; $yor->google_code = 'yo'; $zh_cn = new GP_Locale(); $zh_cn->english_name = 'Chinese (China)'; $zh_cn->native_name = '简体中文'; $zh_cn->lang_code_iso_639_1 = 'zh'; $zh_cn->lang_code_iso_639_2 = 'zho'; $zh_cn->country_code = 'cn'; $zh_cn->wp_locale = 'zh_CN'; $zh_cn->slug = 'zh-cn'; $zh_cn->google_code = 'zh-CN'; $zh_cn->facebook_locale = 'zh_CN'; $zh_cn->nplurals = 1; $zh_cn->plural_expression = '0'; $zh_hk = new GP_Locale(); $zh_hk->english_name = 'Chinese (Hong Kong)'; $zh_hk->native_name = '香港中文版 '; $zh_hk->lang_code_iso_639_1 = 'zh'; $zh_hk->lang_code_iso_639_2 = 'zho'; $zh_hk->country_code = 'hk'; $zh_hk->wp_locale = 'zh_HK'; $zh_hk->slug = 'zh-hk'; $zh_hk->facebook_locale = 'zh_HK'; $zh_hk->nplurals = 1; $zh_hk->plural_expression = '0'; $zh_sg = new GP_Locale(); $zh_sg->english_name = 'Chinese (Singapore)'; $zh_sg->native_name = '中文'; $zh_sg->lang_code_iso_639_1 = 'zh'; $zh_sg->lang_code_iso_639_2 = 'zho'; $zh_sg->country_code = 'sg'; $zh_sg->slug = 'zh-sg'; $zh_sg->nplurals = 1; $zh_sg->plural_expression = '0'; $zh_tw = new GP_Locale(); $zh_tw->english_name = 'Chinese (Taiwan)'; $zh_tw->native_name = 'ç¹é«”中文'; $zh_tw->lang_code_iso_639_1 = 'zh'; $zh_tw->lang_code_iso_639_2 = 'zho'; $zh_tw->country_code = 'tw'; $zh_tw->slug = 'zh-tw'; $zh_tw->wp_locale= 'zh_TW'; $zh_tw->google_code = 'zh-TW'; $zh_tw->facebook_locale = 'zh_TW'; $zh_tw->nplurals = 1; $zh_tw->plural_expression = '0'; $zh = new GP_Locale(); $zh->english_name = 'Chinese'; $zh->native_name = '中文'; $zh->lang_code_iso_639_1 = 'zh'; $zh->lang_code_iso_639_2 = 'zho'; $zh->slug = 'zh'; $zh->nplurals = 1; $zh->plural_expression = '0'; foreach( get_defined_vars() as $locale ) { $this->locales[ $locale->slug ] = $locale; } } public static function &instance() { if ( ! isset( $GLOBALS['gp_locales'] ) ) $GLOBALS['gp_locales'] = new GP_Locales; return $GLOBALS['gp_locales']; } public static function locales() { $instance = GP_Locales::instance(); return $instance->locales; } public static function exists( $slug ) { $instance = GP_Locales::instance(); return isset( $instance->locales[ $slug ] ); } public static function by_slug( $slug ) { $instance = GP_Locales::instance(); return isset( $instance->locales[ $slug ] )? $instance->locales[ $slug ] : null; } public static function by_field( $field_name, $field_value ) { $instance = GP_Locales::instance(); $result = false; foreach( $instance->locales() as $locale ) { if ( isset( $locale->$field_name ) && $locale->$field_name == $field_value ) { $result = $locale; break; } } return $result; } } plugins/jetpack/class.jetpack-post-images.php0000644000312500031250000003772412654410420021755 0ustar eacbforgeacbforgpost_password ) ) return $images; if ( false === has_shortcode( $post->post_content, 'slideshow' ) ) { return false; // no slideshow - bail } $permalink = get_permalink( $post->ID ); // Mechanic: Somebody set us up the bomb $old_post = $GLOBALS['post']; $GLOBALS['post'] = $post; $old_shortcodes = $GLOBALS['shortcode_tags']; $GLOBALS['shortcode_tags'] = array( 'slideshow' => $old_shortcodes['slideshow'] ); // Find all the slideshows preg_match_all( '/' . get_shortcode_regex() . '/sx', $post->post_content, $slideshow_matches, PREG_SET_ORDER ); ob_start(); // The slideshow shortcode handler calls wp_print_scripts and wp_print_styles... not too happy about that foreach ( $slideshow_matches as $slideshow_match ) { $slideshow = do_shortcode_tag( $slideshow_match ); if ( false === $pos = stripos( $slideshow, 'slideShow.images' ) ) // must be something wrong - or we changed the output format in which case none of the following will work continue; $start = strpos( $slideshow, '[', $pos ); $end = strpos( $slideshow, ']', $start ); $post_images = json_decode( str_replace( "'", '"', substr( $slideshow, $start, $end - $start + 1 ) ) ); // parse via JSON foreach ( $post_images as $post_image ) { if ( !$post_image_id = absint( $post_image->id ) ) continue; $meta = wp_get_attachment_metadata( $post_image_id ); // Must be larger than 200x200 (or user-specified) if ( !isset( $meta['width'] ) || $meta['width'] < $width ) continue; if ( !isset( $meta['height'] ) || $meta['height'] < $height ) continue; $url = wp_get_attachment_url( $post_image_id ); $images[] = array( 'type' => 'image', 'from' => 'slideshow', 'src' => $url, 'src_width' => $meta['width'], 'src_height' => $meta['height'], 'href' => $permalink, ); } } ob_end_clean(); // Operator: Main screen turn on $GLOBALS['shortcode_tags'] = $old_shortcodes; $GLOBALS['post'] = $old_post; return $images; } /** * If a gallery is detected, then get all the images from it. */ static function from_gallery( $post_id ) { $images = array(); $post = get_post( $post_id ); if ( ! empty( $post->post_password ) ) { return $images; } $permalink = get_permalink( $post->ID ); $gallery_images = get_post_galleries_images( $post->ID, false ); foreach ( $gallery_images as $galleries ) { foreach ( $galleries as $src ) { list( $raw_src ) = explode( '?', $src ); // pull off any Query string (?w=250) $raw_src = wp_specialchars_decode( $raw_src ); // rawify it $raw_src = esc_url_raw( $raw_src ); // clean it $images[] = array( 'type' => 'image', 'from' => 'gallery', 'src' => $raw_src, 'href' => $permalink, ); } } return $images; } /** * Get attachment images for a specified post and return them. Also make sure * their dimensions are at or above a required minimum. */ static function from_attachment( $post_id, $width = 200, $height = 200 ) { $images = array(); $post = get_post( $post_id ); if ( !empty( $post->post_password ) ) return $images; $post_images = get_posts( array( 'post_parent' => $post_id, // Must be children of post 'numberposts' => 5, // No more than 5 'post_type' => 'attachment', // Must be attachments 'post_mime_type' => 'image', // Must be images ) ); if ( !$post_images ) return false; $permalink = get_permalink( $post_id ); foreach ( $post_images as $post_image ) { $meta = wp_get_attachment_metadata( $post_image->ID ); // Must be larger than 200x200 if ( !isset( $meta['width'] ) || $meta['width'] < $width ) continue; if ( !isset( $meta['height'] ) || $meta['height'] < $height ) continue; $url = wp_get_attachment_url( $post_image->ID ); $images[] = array( 'type' => 'image', 'from' => 'attachment', 'src' => $url, 'src_width' => $meta['width'], 'src_height' => $meta['height'], 'href' => $permalink, ); } /* * We only want to pass back attached images that were actually inserted. * We can load up all the images found in the HTML source and then * compare URLs to see if an image is attached AND inserted. */ $html_images = self::from_html( $post_id ); $inserted_images = array(); foreach( $html_images as $html_image ) { $src = parse_url( $html_image['src'] ); // strip off any query strings from src if( ! empty( $src['scheme'] ) && ! empty( $src['host'] ) ) { $inserted_images[] = $src['scheme'] . '://' . $src['host'] . $src['path']; } elseif( ! empty( $src['host'] ) ) { $inserted_images[] = set_url_scheme( 'http://' . $src['host'] . $src['path'] ); } else { $inserted_images[] = site_url( '/' ) . $src['path']; } } foreach( $images as $i => $image ) { if ( !in_array( $image['src'], $inserted_images ) ) unset( $images[$i] ); } return $images; } /** * Check if a Featured Image is set for this post, and return it in a similar * format to the other images?_from_*() methods. * @param int $post_id The post ID to check * @return Array containing details of the Featured Image, or empty array if none. */ static function from_thumbnail( $post_id, $width = 200, $height = 200 ) { $images = array(); $post = get_post( $post_id ); if ( !empty( $post->post_password ) ) return $images; if ( !function_exists( 'get_post_thumbnail_id' ) ) return $images; $thumb = get_post_thumbnail_id( $post_id ); if ( $thumb ) { $meta = wp_get_attachment_metadata( $thumb ); // Must be larger than requested minimums if ( !isset( $meta['width'] ) || $meta['width'] < $width ) return $images; if ( !isset( $meta['height'] ) || $meta['height'] < $height ) return $images; $too_big = ( ( ! empty( $meta['width'] ) && $meta['width'] > 1200 ) || ( ! empty( $meta['height'] ) && $meta['height'] > 1200 ) ); if ( $too_big && ( ( method_exists( 'Jetpack', 'is_module_active' ) && Jetpack::is_module_active( 'photon' ) ) || ( defined( 'WPCOM' ) && IS_WPCOM ) ) ) { $img_src = wp_get_attachment_image_src( $thumb, array( 1200, 1200 ) ); } else { $img_src = wp_get_attachment_image_src( $thumb, 'full' ); } $url = $img_src[0]; $images = array( array( // Other methods below all return an array of arrays 'type' => 'image', 'from' => 'thumbnail', 'src' => $url, 'src_width' => $img_src[1], 'src_height' => $img_src[2], 'href' => get_permalink( $thumb ), ) ); } return $images; } /** * Very raw -- just parse the HTML and pull out any/all img tags and return their src * @param mixed $html_or_id The HTML string to parse for images, or a post id * @return Array containing images */ static function from_html( $html_or_id ) { $images = array(); if ( is_numeric( $html_or_id ) ) { $post = get_post( $html_or_id ); if ( empty( $post ) || !empty( $post->post_password ) ) return $images; $html = $post->post_content; // DO NOT apply the_content filters here, it will cause loops } else { $html = $html_or_id; } if ( !$html ) return $images; preg_match_all( '!!iUs', $html, $matches ); if ( !empty( $matches[1] ) ) { foreach ( $matches[1] as $match ) { if ( stristr( $match, '/smilies/' ) ) continue; $images[] = array( 'type' => 'image', 'from' => 'html', 'src' => html_entity_decode( $match ), 'href' => '', // No link to apply to these. Might potentially parse for that as well, but not for now ); } } return $images; } /** * @param int $post_id The post ID to check * @param int $size * @return Array containing details of the image, or empty array if none. */ static function from_blavatar( $post_id, $size = 96 ) { $permalink = get_permalink( $post_id ); if ( function_exists( 'blavatar_domain' ) && function_exists( 'blavatar_exists' ) && function_exists( 'blavatar_url' ) ) { $domain = blavatar_domain( $permalink ); if ( ! blavatar_exists( $domain ) ) { return array(); } $url = blavatar_url( $domain, 'img', $size ); } elseif ( function_exists( 'jetpack_has_site_icon' ) && jetpack_has_site_icon() ) { $url = jetpack_site_icon_url( null, $size, $default = false ); } else { return array(); } return array( array( 'type' => 'image', 'from' => 'blavatar', 'src' => $url, 'src_width' => $size, 'src_height' => $size, 'href' => $permalink, ) ); } /** * @param int $post_id The post ID to check * @param int $size * @param string $default The default image to use. * @return Array containing details of the image, or empty array if none. */ static function from_gravatar( $post_id, $size = 96, $default = false ) { $post = get_post( $post_id ); $permalink = get_permalink( $post_id ); if ( function_exists( 'wpcom_get_avatar_url' ) ) { $url = wpcom_get_avatar_url( $post->post_author, $size, $default, true ); if ( $url && is_array( $url ) ) { $url = $url[0]; } } else { $has_filter = has_filter( 'pre_option_show_avatars', '__return_true' ); if ( !$has_filter ) { add_filter( 'pre_option_show_avatars', '__return_true' ); } $avatar = get_avatar( $post->post_author, $size, $default ); if ( !$has_filter ) { remove_filter( 'pre_option_show_avatars', '__return_true' ); } if ( !$avatar ) { return array(); } if ( !preg_match( '/src=["\']([^"\']+)["\']/', $avatar, $matches ) ) { return array(); } $url = wp_specialchars_decode( $matches[1], ENT_QUOTES ); } return array( array( 'type' => 'image', 'from' => 'gravatar', 'src' => $url, 'src_width' => $size, 'src_height' => $size, 'href' => $permalink, ) ); } /** * Run through the different methods that we have available to try to find a single good * display image for this post. * @param int $post_id * @param array $args Other arguments (currently width and height required for images where possible to determine) * @return Array containing details of the best image to be used */ static function get_image( $post_id, $args = array() ) { $image = ''; /** * Fires before we find a single good image for a specific post. * * @since 2.2.0 * * @param int $post_id Post ID. */ do_action( 'jetpack_postimages_pre_get_image', $post_id ); $media = self::get_images( $post_id, $args ); if ( is_array( $media ) ) { foreach ( $media as $item ) { if ( 'image' == $item['type'] ) { $image = $item; break; } } } /** * Fires after we find a single good image for a specific post. * * @since 2.2.0 * * @param int $post_id Post ID. */ do_action( 'jetpack_postimages_post_get_image', $post_id ); return $image; } /** * Get an array containing a collection of possible images for this post, stopping once we hit a method * that returns something useful. * @param int $post_id * @param array $args Optional args, see defaults list for details * @return Array containing images that would be good for representing this post */ static function get_images( $post_id, $args = array() ) { // Figure out which image to attach to this post. $media = false; /** * Filters the array of images that would be good for a specific post. * This filter is applied before options ($args) filter the original array. * * @since 2.0.0 * * @param array $media Array of images that would be good for a specific post. * @param int $post_id Post ID. * @param array $args Array of options to get images. */ $media = apply_filters( 'jetpack_images_pre_get_images', $media, $post_id, $args ); if ( $media ) return $media; $defaults = array( 'width' => 200, // Required minimum width (if possible to determine) 'height' => 200, // Required minimum height (if possible to determine) 'fallback_to_avatars' => false, // Optionally include Blavatar and Gravatar (in that order) in the image stack 'avatar_size' => 96, // Used for both Grav and Blav 'gravatar_default' => false, // Default image to use if we end up with no Gravatar 'from_thumbnail' => true, // Use these flags to specify which methods to use to find an image 'from_slideshow' => true, 'from_gallery' => true, 'from_attachment' => true, 'from_html' => true, 'html_content' => '' // HTML string to pass to from_html() ); $args = wp_parse_args( $args, $defaults ); $media = false; if ( $args['from_thumbnail'] ) $media = self::from_thumbnail( $post_id, $args['width'], $args['height'] ); if ( !$media && $args['from_slideshow'] ) $media = self::from_slideshow( $post_id, $args['width'], $args['height'] ); if ( !$media && $args['from_gallery'] ) $media = self::from_gallery( $post_id ); if ( !$media && $args['from_attachment'] ) $media = self::from_attachment( $post_id, $args['width'], $args['height'] ); if ( !$media && $args['from_html'] ) { if ( empty( $args['html_content'] ) ) $media = self::from_html( $post_id ); // Use the post_id, which will load the content else $media = self::from_html( $args['html_content'] ); // If html_content is provided, use that } if ( !$media && $args['fallback_to_avatars'] ) { $media = self::from_blavatar( $post_id, $args['avatar_size'] ); if ( !$media ) $media = self::from_gravatar( $post_id, $args['avatar_size'], $args['gravatar_default'] ); } /** * Filters the array of images that would be good for a specific post. * This filter is applied after options ($args) filter the original array. * * @since 2.0.0 * * @param array $media Array of images that would be good for a specific post. * @param int $post_id Post ID. * @param array $args Array of options to get images. */ return apply_filters( 'jetpack_images_get_images', $media, $post_id, $args ); } /** * Takes an image URL and pixel dimensions then returns a URL for the * resized and croped image. * * @param string $src * @param int $dimension * @return string Transformed image URL */ static function fit_image_url( $src, $width, $height ) { $width = (int) $width; $height = (int) $height; // Umm... if ( $width < 1 || $height < 1 ) { return $src; } // See if we should bypass WordPress.com SaaS resizing if ( has_filter( 'jetpack_images_fit_image_url_override' ) ) { /** * Filters the image URL used after dimensions are set by Photon. * * @since 3.3.0 * * @param string $src Image URL. * @param int $width Image width. * @param int $width Image height. */ return apply_filters( 'jetpack_images_fit_image_url_override', $src, $width, $height ); } // If WPCOM hosted image use native transformations $img_host = parse_url( $src, PHP_URL_HOST ); if ( '.files.wordpress.com' == substr( $img_host, -20 ) ) { return add_query_arg( array( 'w' => $width, 'h' => $height, 'crop' => 1 ), $src ); } // Use Photon magic if( function_exists( 'jetpack_photon_url' ) ) { return jetpack_photon_url( $src, array( 'resize' => "$width,$height" ) ); } // Arg... no way to resize image using WordPress.com infrastructure! return $src; } } plugins/jetpack/require-lib.php0000644000312500031250000000172612651056012017213 0ustar eacbforgeacbforg 0, 'disconnected' => 0, 'version' => '3.6.1' ); update_option( 'jetpack_unique_connection', $jetpack_unique_connection ); //track unique connection $jetpack = Jetpack::init(); $jetpack->stat( 'connections', 'unique-connection' ); $jetpack->do_stats( 'server_side' ); } // increment number of times connected $jetpack_unique_connection['connected'] += 1; Jetpack_Options::update_option( 'unique_connection', $jetpack_unique_connection ); do { $jetpack = $this->get_jetpack(); $role = $jetpack->translate_current_user_to_role(); if ( !$role ) { Jetpack::state( 'error', 'no_role' ); break; } $cap = $jetpack->translate_role_to_cap( $role ); if ( !$cap ) { Jetpack::state( 'error', 'no_cap' ); break; } $this->check_admin_referer( "jetpack-authorize_{$role}_{$redirect}" ); if ( !empty( $data['error'] ) ) { Jetpack::state( 'error', $data['error'] ); break; } if ( empty( $data['state'] ) ) { Jetpack::state( 'error', 'no_state' ); break; } if ( !ctype_digit( $data['state'] ) ) { Jetpack::state( 'error', 'invalid_state' ); break; } $current_user_id = get_current_user_id(); if ( $current_user_id != $data['state'] ) { Jetpack::state( 'error', 'wrong_state' ); break; } if ( empty( $data['code'] ) ) { Jetpack::state( 'error', 'no_code' ); break; } $token = $this->get_token( $data ); if ( is_wp_error( $token ) ) { if ( $error = $token->get_error_code() ) Jetpack::state( 'error', $error ); else Jetpack::state( 'error', 'invalid_token' ); Jetpack::state( 'error_description', $token->get_error_message() ); break; } if ( !$token ) { Jetpack::state( 'error', 'no_token' ); break; } $is_master_user = ! Jetpack::is_active(); Jetpack::update_user_token( $current_user_id, sprintf( '%s.%d', $token, $current_user_id ), $is_master_user ); if ( $is_master_user ) { Jetpack::state( 'message', 'authorized' ); } else { Jetpack::state( 'message', 'linked' ); // Don't activate anything since we are just connecting a user. break; } if ( $active_modules = Jetpack_Options::get_option( 'active_modules' ) ) { Jetpack_Options::delete_option( 'active_modules' ); Jetpack::activate_default_modules( 999, 1, $active_modules ); } else { Jetpack::activate_default_modules(); } // Sync all registers options and constants /** This action is documented in class.jetpack.php */ do_action( 'jetpack_sync_all_registered_options' ); // Start nonce cleaner wp_clear_scheduled_hook( 'jetpack_clean_nonces' ); wp_schedule_event( time(), 'hourly', 'jetpack_clean_nonces' ); } while ( false ); if ( wp_validate_redirect( $redirect ) ) { $this->wp_safe_redirect( $redirect ); } else { $this->wp_safe_redirect( Jetpack::admin_url() ); } $this->do_exit(); } public static function deactivate_plugin( $probable_file, $probable_title ) { include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); if ( is_plugin_active( $probable_file ) ) { deactivate_plugins( $probable_file ); return 1; } else { // If the plugin is not in the usual place, try looking through all active plugins. $active_plugins = Jetpack::get_active_plugins(); foreach ( $active_plugins as $plugin ) { $data = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin ); if ( $data['Name'] == $probable_title ) { deactivate_plugins( $plugin ); return 1; } } } return 0; } /** * @return object|WP_Error */ function get_token( $data ) { $jetpack = $this->get_jetpack(); $role = $jetpack->translate_current_user_to_role(); if ( !$role ) { return new Jetpack_Error( 'role', __( 'An administrator for this blog must set up the Jetpack connection.', 'jetpack' ) ); } $client_secret = Jetpack_Data::get_access_token(); if ( !$client_secret ) { return new Jetpack_Error( 'client_secret', __( 'You need to register your Jetpack before connecting it.', 'jetpack' ) ); } $redirect = isset( $data['redirect'] ) ? esc_url_raw( (string) $data['redirect'] ) : ''; $body = array( 'client_id' => Jetpack_Options::get_option( 'id' ), 'client_secret' => $client_secret->secret, 'grant_type' => 'authorization_code', 'code' => $data['code'], 'redirect_uri' => add_query_arg( array( 'action' => 'authorize', '_wpnonce' => wp_create_nonce( "jetpack-authorize_{$role}_{$redirect}" ), 'redirect' => $redirect ? urlencode( $redirect ) : false, ), menu_page_url( 'jetpack', false ) ), ); $args = array( 'method' => 'POST', 'body' => $body, 'headers' => array( 'Accept' => 'application/json', ), ); $response = Jetpack_Client::_wp_remote_request( Jetpack::fix_url_for_bad_hosts( Jetpack::api_url( 'token' ) ), $args ); if ( is_wp_error( $response ) ) { return new Jetpack_Error( 'token_http_request_failed', $response->get_error_message() ); } $code = wp_remote_retrieve_response_code( $response ); $entity = wp_remote_retrieve_body( $response ); if ( $entity ) $json = json_decode( $entity ); else $json = false; if ( 200 != $code || !empty( $json->error ) ) { if ( empty( $json->error ) ) return new Jetpack_Error( 'unknown', '', $code ); $error_description = isset( $json->error_description ) ? sprintf( __( 'Error Details: %s', 'jetpack' ), (string) $json->error_description ) : ''; return new Jetpack_Error( (string) $json->error, $error_description, $code ); } if ( empty( $json->access_token ) || !is_scalar( $json->access_token ) ) { return new Jetpack_Error( 'access_token', '', $code ); } if ( empty( $json->token_type ) || 'X_JETPACK' != strtoupper( $json->token_type ) ) { return new Jetpack_Error( 'token_type', '', $code ); } if ( empty( $json->scope ) ) { return new Jetpack_Error( 'scope', 'No Scope', $code ); } @list( $role, $hmac ) = explode( ':', $json->scope ); if ( empty( $role ) || empty( $hmac ) ) { return new Jetpack_Error( 'scope', 'Malformed Scope', $code ); } if ( $jetpack->sign_role( $role ) !== $json->scope ) { return new Jetpack_Error( 'scope', 'Invalid Scope', $code ); } if ( !$cap = $jetpack->translate_role_to_cap( $role ) ) return new Jetpack_Error( 'scope', 'No Cap', $code ); if ( ! current_user_can( $cap ) ) return new Jetpack_Error( 'scope', 'current_user_cannot', $code ); /** * Fires after user has successfully received an auth token. * * @since 3.9.0 */ do_action( 'jetpack_user_authorized' ); return (string) $json->access_token; } public function get_jetpack() { return Jetpack::init(); } public function check_admin_referer( $action ) { return check_admin_referer( $action ); } public function wp_safe_redirect( $redirect ) { return wp_safe_redirect( $redirect ); } public function do_exit() { exit; } } plugins/jetpack/class.jetpack-cli.php0000644000312500031250000005114512654411246020274 0ustar eacbforgeacbforg $value ) { printf( "$this->red_open%-'.16s %s $this->color_close\n", $stat, $value ); } // Display caution warnings next foreach ( $stats['caution'] as $stat => $value ) { printf( "$this->yellow_open%-'.16s %s $this->color_close\n", $stat, $value ); } // The rest of the results are good! foreach ( $stats['good'] as $stat => $value ) { // Modules should get special spacing for aestetics if ( strpos( $stat, 'odule-' ) ) { printf( "%-'.30s %s\n", $stat, $value ); usleep( 4000 ); // For dramatic effect lolz continue; } printf( "%-'.16s %s\n", $stat, $value ); usleep( 4000 ); // For dramatic effect lolz } } else { // Just the basics WP_CLI::success( __( 'Jetpack is currently connected to WordPress.com', 'jetpack' ) ); WP_CLI::line( sprintf( __( 'The Jetpack Version is %s', 'jetpack' ), JETPACK__VERSION ) ); WP_CLI::line( sprintf( __( 'The WordPress.com blog_id is %d', 'jetpack' ), Jetpack_Options::get_option( 'id' ) ) ); WP_CLI::line( "\n" . _x( "View full status with 'wp jetpack status full'", '"wp jetpack status full" is a command - do not translate', 'jetpack' ) ); } } /** * Disconnect Jetpack Blogs or Users * * ## OPTIONS * * blog: Disconnect the entire blog. * * user : Disconnect a specific user from WordPress.com. * * Please note, the primary account that the blog is connected * to WordPress.com with cannot be disconnected without * disconnecting the entire blog. * * ## EXAMPLES * * wp jetpack disconnect blog * wp jetpack disconnect user 13 * wp jetpack disconnect user username * wp jetpack disconnect user email@domain.com * * @synopsis [] */ public function disconnect( $args, $assoc_args ) { if ( ! Jetpack::is_active() ) { WP_CLI::error( __( 'You cannot disconnect, without having first connected.', 'jetpack' ) ); } $action = isset( $args[0] ) ? $args[0] : 'prompt'; if ( ! in_array( $action, array( 'blog', 'user', 'prompt' ) ) ) { WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) ); } if ( in_array( $action, array( 'user' ) ) ) { if ( isset( $args[1] ) ) { $user_id = $args[1]; if ( ctype_digit( $user_id ) ) { $field = 'id'; $user_id = (int) $user_id; } elseif ( is_email( $user_id ) ) { $field = 'email'; $user_id = sanitize_user( $user_id, true ); } else { $field = 'login'; $user_id = sanitize_user( $user_id, true ); } if ( ! $user = get_user_by( $field, $user_id ) ) { WP_CLI::error( __( 'Please specify a valid user.', 'jetpack' ) ); } } else { WP_CLI::error( __( 'Please specify a user by either ID, username, or email.', 'jetpack' ) ); } } switch ( $action ) { case 'blog': Jetpack::log( 'disconnect' ); Jetpack::disconnect(); WP_CLI::success( __( 'Jetpack has been successfully disconnected.', 'jetpack' ) ); break; case 'user': if ( Jetpack::unlink_user( $user->ID ) ) { Jetpack::log( 'unlink', $user->ID ); WP_CLI::success( sprintf( __( '%s has been successfully disconnected.', 'jetpack' ), $action ) ); } else { WP_CLI::error( sprintf( __( '%s could not be disconnected. Are you sure they\'re connected currently?', 'jetpack' ), "{$user->login} <{$user->email}>" ) ); } break; case 'prompt': WP_CLI::error( __( 'Please specify if you would like to disconnect a blog or user.', 'jetpack' ) ); break; } } /** * Reset Jetpack options and settings to default * * ## OPTIONS * * modules: Resets modules to default state ( get_default_modules() ) * * options: Resets all Jetpack options except: * - All private options (Blog token, user token, etc...) * - id (The Client ID/WP.com Blog ID of this site) * - master_user * - version * - activated * * ## EXAMPLES * * wp jetpack reset options * wp jetpack reset modules * * @synopsis */ public function reset( $args, $assoc_args ) { $action = isset( $args[0] ) ? $args[0] : 'prompt'; if ( ! in_array( $action, array( 'options', 'modules' ) ) ) { WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) ); } // Are you sure? jetpack_cli_are_you_sure(); switch ( $action ) { case 'options': $options_to_reset = Jetpack::get_jetpack_options_for_reset(); // Reset the Jetpack options _e( "Resetting Jetpack Options...\n", "jetpack" ); sleep(1); // Take a breath foreach ( $options_to_reset['jp_options'] as $option_to_reset ) { Jetpack_Options::delete_option( $option_to_reset ); usleep( 100000 ); WP_CLI::success( sprintf( __( '%s option reset', 'jetpack' ), $option_to_reset ) ); } // Reset the WP options _e( "Resetting the jetpack options stored in wp_options...\n", "jetpack" ); usleep( 500000 ); // Take a breath foreach ( $options_to_reset['wp_options'] as $option_to_reset ) { delete_option( $option_to_reset ); usleep( 100000 ); WP_CLI::success( sprintf( __( '%s option reset', 'jetpack' ), $option_to_reset ) ); } // Reset to default modules _e( "Resetting default modules...\n", "jetpack" ); usleep( 500000 ); // Take a breath $default_modules = Jetpack::get_default_modules(); Jetpack_Options::update_option( 'active_modules', $default_modules ); WP_CLI::success( __( 'Modules reset to default.', 'jetpack' ) ); // Jumpstart option is special Jetpack_Options::update_option( 'jumpstart', 'new_connection' ); WP_CLI::success( __( 'jumpstart option reset', 'jetpack' ) ); break; case 'modules': $default_modules = Jetpack::get_default_modules(); Jetpack_Options::update_option( 'active_modules', $default_modules ); WP_CLI::success( __( 'Modules reset to default.', 'jetpack' ) ); break; case 'prompt': WP_CLI::error( __( 'Please specify if you would like to reset your options, or modules', 'jetpack' ) ); break; } } /** * Manage Jetpack Modules * * ## OPTIONS * * list : View all available modules, and their status. * activate all : Activate all modules * deactivate all: Deactivate all modules * * activate : Activate a module. * deactivate : Deactivate a module. * toggle : Toggle a module on or off. * * ## EXAMPLES * * wp jetpack module list * wp jetpack module activate stats * wp jetpack module deactivate stats * wp jetpack module toggle stats * * wp jetpack module activate all * wp jetpack module deactivate all * * @synopsis [] */ public function module( $args, $assoc_args ) { $action = isset( $args[0] ) ? $args[0] : 'list'; if ( ! in_array( $action, array( 'list', 'activate', 'deactivate', 'toggle' ) ) ) { WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) ); } if ( in_array( $action, array( 'activate', 'deactivate', 'toggle' ) ) ) { if ( isset( $args[1] ) ) { $module_slug = $args[1]; if ( 'all' !== $module_slug && ! Jetpack::is_module( $module_slug ) ) { WP_CLI::error( sprintf( __( '%s is not a valid module.', 'jetpack' ), $module_slug ) ); } if ( 'toggle' == $action ) { $action = Jetpack::is_module_active( $module_slug ) ? 'deactivate' : 'activate'; } // Bulk actions if ( 'all' == $args[1] ) { $action = ( 'deactivate' == $action ) ? 'deactivate_all' : 'activate_all'; } // VaultPress needs to be handled elsewhere. if ( in_array( $action, array( 'activate', 'deactivate', 'toggle' ) ) && 'vaultpress' == $args[1] ) { WP_CLI::error( sprintf( _x( 'Please visit %s to configure your VaultPress subscription.', '%s is a website', 'jetpack' ), esc_url( 'https://vaultpress.com/jetpack/' ) ) ); } } else { WP_CLI::line( __( 'Please specify a valid module.', 'jetpack' ) ); $action = 'list'; } } switch ( $action ) { case 'list': WP_CLI::line( __( 'Available Modules:', 'jetpack' ) ); $modules = Jetpack::get_available_modules(); sort( $modules ); foreach( $modules as $module_slug ) { if ( 'vaultpress' == $module_slug ) { continue; } $active = Jetpack::is_module_active( $module_slug ) ? __( 'Active', 'jetpack' ) : __( 'Inactive', 'jetpack' ); WP_CLI::line( "\t" . str_pad( $module_slug, 24 ) . $active ); } break; case 'activate': $module = Jetpack::get_module( $module_slug ); Jetpack::log( 'activate', $module_slug ); Jetpack::activate_module( $module_slug, false, false ); WP_CLI::success( sprintf( __( '%s has been activated.', 'jetpack' ), $module['name'] ) ); break; case 'activate_all': $modules = Jetpack::get_available_modules(); Jetpack_Options::update_option( 'active_modules', $modules ); WP_CLI::success( __( 'All modules activated!', 'jetpack' ) ); break; case 'deactivate': $module = Jetpack::get_module( $module_slug ); Jetpack::log( 'deactivate', $module_slug ); Jetpack::deactivate_module( $module_slug ); WP_CLI::success( sprintf( __( '%s has been deactivated.', 'jetpack' ), $module['name'] ) ); break; case 'deactivate_all': Jetpack_Options::update_option( 'active_modules', '' ); WP_CLI::success( __( 'All modules deactivated!', 'jetpack' ) ); break; case 'toggle': // Will never happen, should have been handled above and changed to activate or deactivate. break; } } /** * Manage Protect Settings * * ## OPTIONS * * whitelist: Whitelist an IP address. You can also read or clear the whitelist. * * * ## EXAMPLES * * wp jetpack protect whitelist * wp jetpack protect whitelist list * wp jetpack protect whitelist clear * * @synopsis [] */ public function protect( $args, $assoc_args ) { $action = isset( $args[0] ) ? $args[0] : 'prompt'; if ( ! in_array( $action, array( 'whitelist' ) ) ) { WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) ); } // Check if module is active if ( ! Jetpack::is_module_active( __FUNCTION__ ) ) { WP_CLI::error( sprintf( _x( '%s is not active. You can activate it with "wp jetpack module activate %s"', '"wp jetpack module activate" is a command - do not translate', 'jetpack' ), __FUNCTION__, __FUNCTION__ ) ); } if ( in_array( $action, array( 'whitelist' ) ) ) { if ( isset( $args[1] ) ) { $action = 'whitelist'; } else { $action = 'prompt'; } } switch ( $action ) { case 'whitelist': $whitelist = array(); $new_ip = $args[1]; $current_whitelist = get_site_option( 'jetpack_protect_whitelist' ); // Build array of IPs that are already whitelisted. // Re-build manually instead of using jetpack_protect_format_whitelist() so we can easily get // low & high range params for jetpack_protect_ip_address_is_in_range(); foreach( $current_whitelist as $whitelisted ) { // IP ranges if ( $whitelisted->range ) { // Is it already whitelisted? if ( jetpack_protect_ip_address_is_in_range( $new_ip, $whitelisted->range_low, $whitelisted->range_high ) ) { WP_CLI::error( sprintf( __( "%s has already been whitelisted", 'jetpack' ), $new_ip ) ); break; } $whitelist[] = $whitelisted->range_low . " - " . $whitelisted->range_high; } else { // Individual IPs // Check if the IP is already whitelisted (single IP only) if ( $new_ip == $whitelisted->ip_address ) { WP_CLI::error( sprintf( __( "%s has already been whitelisted", 'jetpack' ), $new_ip ) ); break; } $whitelist[] = $whitelisted->ip_address; } } /* * List the whitelist * Done here because it's easier to read the $whitelist array after it's been rebuilt */ if ( isset( $args[1] ) && 'list' == $args[1] ) { if ( ! empty( $whitelist ) ) { WP_CLI::success( __( 'Here are your whitelisted IPs:', 'jetpack' ) ); foreach ( $whitelist as $ip ) { WP_CLI::line( "\t" . str_pad( $ip, 24 ) ) ; } } else { WP_CLI::line( __( 'Whitelist is empty.', "jetpack" ) ) ; } break; } /* * Clear the whitelist */ if ( isset( $args[1] ) && 'clear' == $args[1] ) { if ( ! empty( $whitelist ) ) { $whitelist = array(); jetpack_protect_save_whitelist( $whitelist ); WP_CLI::success( __( 'Cleared all whitelisted IPs', 'jetpack' ) ); } else { WP_CLI::line( __( 'Whitelist is empty.', "jetpack" ) ) ; } break; } // Append new IP to whitelist array array_push( $whitelist, $new_ip ); // Save whitelist if there are no errors $result = jetpack_protect_save_whitelist( $whitelist ); if ( is_wp_error( $result ) ) { WP_CLI::error( __( $result, 'jetpack' ) ); } WP_CLI::success( sprintf( __( '%s has been whitelisted.', 'jetpack' ), $new_ip ) ); break; case 'prompt': WP_CLI::error( __( 'No command found.', 'jetpack' ) . "\n" . __( 'Please enter the IP address you want to whitelist.', 'jetpack' ) . "\n" . _x( 'You can save a range of IPs {low_range}-{high_range}. No spaces allowed. (example: 1.1.1.1-2.2.2.2)', 'Instructions on how to whitelist IP ranges - low_range/high_range should be translated.', 'jetpack' ) . "\n" . _x( "You can also 'list' or 'clear' the whitelist.", "'list' and 'clear' are commands and should not be translated", 'jetpack' ) . "\n" ); break; } } /** * Manage Jetpack Options * * ## OPTIONS * * list : List all jetpack options and their values * delete : Delete an option * - can only delete options that are white listed. * update : update an option * - can only update option strings * get : get the value of an option * * ## EXAMPLES * * wp jetpack options list * wp jetpack options get * wp jetpack options delete * wp jetpack options update [] * * @synopsis [] [] */ public function options( $args, $assoc_args ) { $action = isset( $args[0] ) ? $args[0] : 'list'; $safe_to_modify = Jetpack::get_jetpack_options_for_reset(); // Jumpstart is special array_push( $safe_to_modify, 'jumpstart' ); // Is the option flagged as unsafe? $flagged = ! in_array( $args[1], $safe_to_modify ); if ( ! in_array( $action, array( 'list', 'get', 'delete', 'update' ) ) ) { WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack' ), $action ) ); } if ( isset( $args[0] ) ) { if ( 'get' == $args[0] && isset( $args[1] ) ) { $action = 'get'; } else if ( 'delete' == $args[0] && isset( $args[1] ) ) { $action = 'delete'; } else if ( 'update' == $args[0] && isset( $args[1] ) ) { $action = 'update'; } else { $action = 'list'; } } // Bail if the option isn't found $option = isset( $args[1] ) ? Jetpack_Options::get_option( $args[1] ) : false; if ( isset( $args[1] ) && ! $option && 'update' !== $args[0] ) { WP_CLI::error( __( 'Option not found or is empty. Use "list" to list option names', 'jetpack' ) ); } // Let's print_r the option if it's an array // Used in the 'get' and 'list' actions $option = is_array( $option ) ? print_r( $option ) : $option; switch ( $action ) { case 'get': WP_CLI::success( "\t" . $option ); break; case 'delete': jetpack_cli_are_you_sure( $flagged ); Jetpack_Options::delete_option( $args[1] ); WP_CLI::success( sprintf( __( 'Deleted option: %s', 'jetpack' ), $args[1] ) ); break; case 'update': jetpack_cli_are_you_sure( $flagged ); // Updating arrays would get pretty tricky... $value = Jetpack_Options::get_option( $args[1] ); if ( $value && is_array( $value ) ) { WP_CLI::error( __( 'Sorry, no updating arrays at this time', 'jetpack' ) ); } Jetpack_Options::update_option( $args[1], $args[2] ); WP_CLI::success( sprintf( _x( 'Updated option: %s to "%s"', 'Updating an option from "this" to "that".', 'jetpack' ), $args[1], $args[2] ) ); break; case 'list': $options_compact = Jetpack_Options::get_option_names(); $options_non_compact = Jetpack_Options::get_option_names( 'non_compact' ); $options_private = Jetpack_Options::get_option_names( 'private' ); $options = array_merge( $options_compact, $options_non_compact, $options_private ); // Table headers WP_CLI::line( "\t" . str_pad( __( 'Option', 'jetpack' ), 30 ) . __( 'Value', 'jetpack' ) ); // List out the options and their values // Tell them if the value is empty or not // Tell them if it's an array foreach ( $options as $option ) { $value = Jetpack_Options::get_option( $option ); if ( ! $value ) { WP_CLI::line( "\t" . str_pad( $option, 30 ) . 'Empty' ); continue; } if ( ! is_array( $value ) ) { WP_CLI::line( "\t" . str_pad( $option, 30 ) . $value ); } else if ( is_array( $value ) ) { WP_CLI::line( "\t" . str_pad( $option, 30 ) . 'Array - Use "get
        %%SUCURI.AccessLog.RemoteAddr%% (%%SUCURI.AccessLog.RequestCountryName%%)
        Date/Time: %%SUCURI.AccessLog.RequestDate%% %%SUCURI.AccessLog.RequestTime%% %%SUCURI.AccessLog.RequestTimezone%%
        Signature: %%SUCURI.AccessLog.SucuriBlockCode%% (%%SUCURI.AccessLog.SucuriBlockReason%%)
        Request: %%SUCURI.AccessLog.HttpProtocol%% %%SUCURI.AccessLog.RequestMethod%% %%SUCURI.AccessLog.HttpStatus%% %%SUCURI.AccessLog.HttpStatusTitle%%
        U-Agent: %%SUCURI.AccessLog.HttpUserAgent%%
        Target.: %%SUCURI.AccessLog.ResourcePath%%
        Referer: %%SUCURI.AccessLog.HttpReferer%%
        plugins/sucuri-scanner/inc/tpl/hardening.html.tpl0000755000312500031250000000102612651056013022572 0ustar eacbforgeacbforg
        • Hardening Options
        • Whitelist Blocked PHP Files
        %%%SUCURI.Hardening.Panel%%%
        %%%SUCURI.Hardening.Whitelist%%%
        plugins/sucuri-scanner/inc/tpl/settings-apiservice-proxy.html.tpl0000755000312500031250000000222612651056013026005 0ustar eacbforgeacbforg

        API Communication via Proxy

        All the HTTP requests used to communicate with the API service are being sent using the WordPress built-in functions, so (almost) all its official features are inherited, this is useful if you need to pass these HTTP requests through a proxy. According to the official documentation you have to add some constants to the main configuration file: WP_PROXY_HOST, WP_PROXY_PORT, WP_PROXY_USERNAME, WP_PROXY_PASSWORD.

        HTTP Proxy Hostname: %%SUCURI.APIProxy.Host%%
        HTTP Proxy Port num: %%SUCURI.APIProxy.Port%%
        HTTP Proxy Username: %%SUCURI.APIProxy.Username%%
        HTTP Proxy Password: %%SUCURI.APIProxy.PasswordText%%
        plugins/sucuri-scanner/inc/tpl/settings-alert-bruteforce.html.tpl0000755000312500031250000000277512651056013025752 0ustar eacbforgeacbforg

        Password Guessing Brute Force Attacks

        Password guessing brute force attacks are very common against web sites and web servers. They are one of the most common vectors used to compromise web sites. The process is very simple and the attackers basically try multiple combinations of usernames and passwords until they find one that works. Once they get in, they can compromise the web site with malware, spam , phishing or anything else they want.

        This option overrides the "Alerts Per Hour" setting.

        More info at Sucuri KB - Password Guessing Brute Force Attacks.

        plugins/sucuri-scanner/inc/tpl/settings-general-reverseproxy.html.tpl0000755000312500031250000000462312654411246026675 0ustar eacbforgeacbforg

        Reverse Proxy and IP Address

        The event monitor uses the API address of the origin of the request to track the actions, the plugin uses two methods to retrieve this: the main method uses the global server variable Remote-Addr available in most modern web servers, an alternative method uses custom HTTP headers (which are unsafe by default). You should not worry about this option unless you know what a reverse proxy is.

        Services like CloudProxy once active forces the network traffic to pass through them to filter any security threat that may affect the original server. A side effect of this is that the real IP address is no longer available in the global server variable Remote-Addr but in a custom HTTP header with a name provided by the service. CloudProxy uses "X-Sucuri-ClientIP", CloudFlare uses "CF-Connecting-IP", others use "X-Forwarded-For".

        When this option is enabled the plugin will go through a list of common HTTP headers to retrieve the real IP address of the origin of the requests. Note that this information can be spoofed and malicious people may use this to hide their real IP during an attack. You must not enable this option unless you are completely sure that your site is behind a proxy/firewall.

        Reverse Proxy Support is %%SUCURI.ReverseProxyStatus%%
        plugins/sucuri-scanner/inc/tpl/settings-general-apikey.html.tpl0000755000312500031250000000613512651056013025374 0ustar eacbforgeacbforg %%%SUCURI.ModalWhenAPIRegistered%%% %%%SUCURI.ModalForApiKeyRecovery%%%

        Plugin API Key

        Most of the tools in this plugin can be used without a specific configuration, but the core features require an API key to communicate with the Sucuri services. The key is generated using your administrator e-mail and the domain of this site, this will allow you to have access to our free monitoring tool and other extra features.

        Generating an API key implies that you agree to send the information collected by the plugin to the Sucuri API service which is a remote server where the information for the audit logs is stored, this is to prevent malicious users to delete the logs during an attack which may affect an investigation if you suspect that your website was hacked. We also use this information to display statistics and try to use the data in an anonymous way as we are concerned about your privacy too. Please do not generate an API key if you do not agree with this, you can keep using the plugin without it anyway.

        Your domain %%SUCURI.CleanDomain%% does not seems to have a DNS A record so it will be considered as invalid by the API interface when you request the generation of a new key. Adding www at the beginning of the domain name may fix this issue. If you do not understand what is this then send an email to our support team requesting the key.

        Plugin API Key: %%SUCURI.APIKey%%
        Plugin API Key: %%SUCURI.APIKey%%
        plugins/sucuri-scanner/inc/tpl/settings-scanner.html.tpl0000755000312500031250000002570512651056013024134 0ustar eacbforgeacbforg

        Scanner Settings

        There are multiple scanners implemented in the code of the plugin, all of them are enabled by default and you can deactivate them separately without affect the others. You may want to disable a scanner because your site has too many directories and/or files to scan, or because the maximum quantity of memory allowed for your project is not enough to execute one these functions. You can enable and disable any of the scanners anything you want.

        The "Scanning Algorithm" is the method that will be used to read the diretories and files contained in the project when any of the file system scanners are executed. The best option is SPL (Standard PHP Library) but it is not available in all versions of the PHP interpreter. We recommend to upgrade the version of PHP installed in the server, but if you can not do this then choose a different algorithm.

        Option Value  
        Last background scan %%SUCURI.ScanningRuntimeHuman%%
        Scanning algorithm %%SUCURI.ScanningInterface%%
        Scanning frequency %%SUCURI.ScanningFrequency%%
        Main FS Scanner %%SUCURI.FsScannerStatus%%
        FS Scanner, Core integrity checks %%SUCURI.ScanChecksumsStatus%%
        FS Scanner, Ignore scanning %%SUCURI.IgnoreScanningStatus%%
        FS Scanner, Error log files %%SUCURI.ScanErrorlogsStatus%%
        SiteCheck scanner %%SUCURI.SiteCheckScannerStatus%%
        SiteCheck counter %%SUCURI.SiteCheckCounter%% scans so far
        Analyze error logs %%SUCURI.ParseErrorLogsStatus%%
        Error logs limit Analyze last %%SUCURI.ErrorLogsLimit%% logs
        Reset core integrity logs %%SUCURI.IntegrityLogLife%% of data
        Reset last login logs %%SUCURI.LastLoginLogLife%% of data
        Reset failed login logs %%SUCURI.FailedLoginLogLife%% of data
        Reset sitecheck logs %%SUCURI.SiteCheckLogLife%% of data
        plugins/sucuri-scanner/inc/tpl/malwarescan-appdetail.snippet.tpl0000755000312500031250000000021012651056013025601 0ustar eacbforgeacbforg %%SUCURI.InformationTitle%% %%SUCURI.InformationValue%% plugins/sucuri-scanner/inc/tpl/posthack-resetplugins.snippet.tpl0000755000312500031250000000110212651056013025702 0ustar eacbforgeacbforg %%SUCURI.ResetPlugin.Plugin%% %%SUCURI.ResetPlugin.Version%% %%SUCURI.ResetPlugin.Type%% %%SUCURI.ResetPlugin.Status%% plugins/sucuri-scanner/inc/tpl/settings-ignorescanning.html.tpl0000755000312500031250000001060212651056013025475 0ustar eacbforgeacbforg

        Ignore Scanning

        If your project has too many directories and/or files it may cause the file system scanners to fail, you may want to increase the maximum execution time of the PHP scripts and the memory limit to allow the functions executed during the file system scans to finish successfully. If you do not want or do not have sufficient privileges to increase these values then you may want to skip some directories, this will force the plugin to ignore the files inside these folders.

        The feature to ignore directories during the file system scans is disabled, go to the Scanner Settings panel to enable it.

        You can also force the plugin to ignore specific files during the file system scans using this form, add the absolute path of the file or symbolic link that you want to skip. Note. You can not use wildcards to select multiple files following a pattern in their names, this is intentional to prevent the misuse of this tool.

        %%%SUCURI.IgnoreScanning.ResourceList%%%
          Directory Ignored At
        List is empty.

        Selecting one or more directories from the list will force the plugin to ignore the monitoring of the sub-folders and files inside these directories during the execution of any of the file system scanners. This will applies to all the scanners (general scanner, modified files, integrity checks, error logs).

        plugins/sucuri-scanner/inc/tpl/lastlogins-loggedin.html.tpl0000755000312500031250000000075012651056013024603 0ustar eacbforgeacbforg %%%SUCURI.LoggedInUsers.List%%%
        Logged in users (%%SUCURI.LoggedInUsers.Total%% users)
        ID Username Last Activity Registered IP Address  
        plugins/sucuri-scanner/inc/tpl/notification-pretty.html.tpl0000755000312500031250000000435512651056013024656 0ustar eacbforgeacbforg
        Sucuri, Inc. %%SUCURI.TemplateTitle%%

        Information:

        Alert Time: %%SUCURI.Time%%
        %%SUCURI.User%%

        Website Information:

        Site: %%SUCURI.Website%%
        IP Address: %%SUCURI.RemoteAddress%%

        Notification Message:

        %%%SUCURI.Message%%%

        plugins/sucuri-scanner/inc/tpl/integrity-wpoutdate.html.tpl0000755000312500031250000000067312651056013024672 0ustar eacbforgeacbforg
        WordPress %%SUCURI.WordPress.Version%% is Outdated  -  Install New Version %%SUCURI.WordPress.NewVersion%% (%%SUCURI.WordPress.NewLocale%%)
        plugins/sucuri-scanner/inc/tpl/infosys-serverinfo.html.tpl0000755000312500031250000000021212654411246024507 0ustar eacbforgeacbforg %%%SUCURI.ServerInfo.Variables%%%
        plugins/sucuri-scanner/inc/tpl/infosys-errorlogs.html.tpl0000755000312500031250000000746012651056013024351 0ustar eacbforgeacbforg

        Error Logs

        Web servers like Apache, Nginx and others use files to record errors encountered during the execution of a dynamic language or the server processes. Depending on the configuration of the server, these files may be accessible from the web opening a hole in your site to allow an attacker to gather sensitive information of your project, so it is highly recommended to delete them.

        If you are a developer, you may want to check the latest errors encountered by the server before delete the log file, that way you can see where the application is failing and fix the errors. Note that a log file may have thousand of lines, so to prevent an overflow in the memory of the PHP interpreter the plugin limits the process to the latest %%SUCURI.ErrorLog.LogsLimit%% lines inserted in the log file.

        The analysis of error logs is disabled, go to the Scanner Settings panel in the Settings page to enable it.

        Note that if the log file is not empty but the table is, it means that the format of the logs used by the web server is not supported by the scanner, you can try to increase the number of lines processed though from here in case that other lines have a different format which is very common on servers with mixed configurations.

        %%%SUCURI.ErrorLog.List%%%
        Error Logs (%%SUCURI.ErrorLog.FileSize%%)
        Date Time Type Error Message File Line
        No valid logs in the last %%SUCURI.ErrorLog.LogsLimit%% lines of the error log file.
        No logs so far.
        plugins/sucuri-scanner/inc/tpl/setup-form.html.tpl0000755000312500031250000000566112651056013022745 0ustar eacbforgeacbforg

        An API key is required to activate some additional tools available in this plugin, the keys are free and you can virtually generate an unlimited number of them as long as the domain name and email address are different. The key is used to authenticate the HTTP requests sent by the plugin to a public API service managed by Sucuri Inc. Do not generate the key if you disagree with this.

        If you experience issues generating the API key you can request one sending the domain name and email address that you want to use to info@sucuri.net. Note that setting a key in a development environment does not makes sense, if you are trying to do that in a local or stage environment please consider to dismiss this alert.

        Domain Name: %%SUCURI.CleanDomain%%
        E-mail Address:
        DNS Lookups:

        DNS lookups are only necessary if you are planning to use a reverse proxy or firewall (like CloudProxy), this is used to set the correct IP address when the firewall/proxy filters the requests. If you are not planning to use any of these is better to disable this option, otherwise the load time of your site may be affected.

        Do not show this again
        plugins/sucuri-scanner/inc/tpl/infosys-wpconfig.snippet.tpl0000755000312500031250000000044212654411246024664 0ustar eacbforgeacbforg %%SUCURI.WordpressConfig.VariableName%% %%SUCURI.WordpressConfig.VariableValue%% plugins/sucuri-scanner/inc/tpl/infosys-cronjobs.snippet.tpl0000755000312500031250000000060212651056013024657 0ustar eacbforgeacbforg %%SUCURI.Cronjob.Hook%% %%SUCURI.Cronjob.Schedule%% %%SUCURI.Cronjob.NextTime%% %%SUCURI.Cronjob.Arguments%% plugins/sucuri-scanner/inc/tpl/settings-heartbeat.html.tpl0000755000312500031250000000704512651056013024437 0ustar eacbforgeacbforg

        Heartbeat

        The purpose of the Heartbeat API is to simulate bidirectional connection between the browser and the server. Initially it was used for autosave, post locking and log-in expiration warning while a user is writing or editing. The idea was to have an API that sends XHR (XML HTTP Request) requests to the server every fifteen seconds and triggers events (or callbacks) on receiving data.

        Option Value  
        Heartbeat status %%SUCURI.HeartbeatStatus%%
        Pulse interval %%SUCURI.HeartbeatPulse%%
        Interval speed %%SUCURI.HeartbeatInterval%%
        Auto-start %%SUCURI.HeartbeatAutostart%%
        plugins/sucuri-scanner/inc/tpl/hardening-panel.html.tpl0000755000312500031250000000146512651056013023676 0ustar eacbforgeacbforg
        %%%SUCURI.Hardening.Version%%% %%%SUCURI.Hardening.CloudProxy%%% %%%SUCURI.Hardening.RemoveGenerator%%% %%%SUCURI.Hardening.NginxPhpFpm%%% %%%SUCURI.Hardening.Upload%%% %%%SUCURI.Hardening.WpContent%%% %%%SUCURI.Hardening.WpIncludes%%% %%%SUCURI.Hardening.PhpVersion%%% %%%SUCURI.Hardening.SecretKeys%%% %%%SUCURI.Hardening.Readme%%% %%%SUCURI.Hardening.AdminUser%%% %%%SUCURI.Hardening.FileEditor%%% %%%SUCURI.Hardening.DBTables%%% %%%SUCURI.Hardening.ErrorLog%%%
        plugins/sucuri-scanner/inc/tpl/malwarescan-resblacklist.snippet.tpl0000755000312500031250000000053412651056013026331 0ustar eacbforgeacbforg %%SUCURI.BlacklistStatusGroupTitle%% %%SUCURI.BlacklistStatusReporterName%% More details plugins/sucuri-scanner/inc/tpl/settings-ignorerules.html.tpl0000755000312500031250000000355312651056013025036 0ustar eacbforgeacbforg

        Ignore Alerts

        It seems that you disabled the email notifications for new site content, this panel is intended to provide a way to ignore specific events in your site and with that the alerts reported to your email. Since you have deactivated the new site content alerts, this panel will be disabled too.

        Ignore Alerts

        This is a list of registered Post Types, since you have enabled the email alerts for new or modified content, we will send you an alert if any of these post-types are created and/or updated. You may want to ignore some of them as some 3rd-party extensions create temporary data in the posts table to track changes in their own tools.

        %%%SUCURI.IgnoreRules.PostTypes%%%
          Post Type Ignored Ignored At  
        plugins/sucuri-scanner/inc/tpl/malwarescan-resblacklist.html.tpl0000755000312500031250000000053112651056013025610 0ustar eacbforgeacbforg %%%SUCURI.BlacklistStatusList%%%
        %%SUCURI.BlacklistStatusTitle%%
        plugins/sucuri-scanner/inc/tpl/base.html.tpl0000755000312500031250000000300412651056013021543 0ustar eacbforgeacbforg

        Sucuri Security

        Sucuri Security %%SUCURI.PageTitle%%

        Review Plugin

        %%%SUCURI.Navbar%%%

        %%%SUCURI.PageContent%%%
        %%%SUCURI.PageSidebarContent%%%
        Sucuri Security

        If you have any questions about these checks or this plugin, contact us at info@sucuri.net or visit sucuri.net

        plugins/sucuri-scanner/inc/tpl/settings-apirecovery.html.tpl0000755000312500031250000000300112651056013025014 0ustar eacbforgeacbforg

        If this operation was successful you will receive a message in the email used during the registration of the API key (usually the email of the main admin user), this message contains the key in plain text, copy and paste the key in the form field below. The plugin will verify the authenticity of the key sending an initial HTTP request to the API service, if this fails the key will be removed automatically and you will have to start the process all over again.

        There are cases where this operation can fail, an example would be when the email address is not associated with the domain anymore, this happens when the base URL changes (from www to none or viceversa). There is also a limit on the number of recovery attempts that you may request during certain period of time, if you are having issues recovering the key please send an email explaining the situation to info@sucuri.net

        plugins/sucuri-scanner/inc/tpl/malwarescan-resweblinks.html.tpl0000755000312500031250000000046512651056013025464 0ustar eacbforgeacbforg %%%SUCURI.WebsiteLinksAllList%%%
        No iFrames, links, or script files were found.
        plugins/sucuri-scanner/inc/tpl/settings-general-ipdiscoverer.html.tpl0000755000312500031250000000712412654411246026615 0ustar eacbforgeacbforg

        IP Address Discoverer

        The IP address discoverer will use DNS lookups to automatically detect if the website is behind CloudProxy in which case will modify the global server variable Remote-Addr to set the real IP of the website's visitors. This check runs on every WordPress init action and that is why it may slow down your website as some hosting providers rely on slow DNS servers which makes the operation take more time than it should.

        IMPORTANT: This option (if enabled) may slow down your website.

        IP Address Discoverer is %%SUCURI.DnsLookupsStatus%%

        Once the feature is enabled you may choose the HTTP header that will be used by default to retrieve the real IP address of each HTTP request, generally you do not need to set this but in rare cases your hosting provider may have a load balancer that can interfere in the process, in which case you will have to explicitly specify the main HTTP header. Note that if you select a HTTP header that is not being set by the server the plugin will fallback to the default Remote-Addr.

        If you are experiencing issues with the automatic detection of IP address of your visitors, with the security logs, or with the response time of your website please send an email to info@sucuri.net explaining the situation and attach the information displayed below, this may help to troubleshoot the issue more easily; alternatively you may also ask for help in the forums.

        CloudProxy is %%SUCURI.IsUsingCloudProxy%%
        Website URL: %%SUCURI.WebsiteURL%%
        Top Level Domain: %%SUCURI.TopLevelDomain%%
        Website Hostname: %%SUCURI.WebsiteHostName%%
        Website Host Address: %%SUCURI.WebsiteHostAddress%%
        IP Address: %%SUCURI.RemoteAddress%% (%%SUCURI.RemoteAddressHeader%%)
        plugins/sucuri-scanner/inc/tpl/corefiles-page.html.tpl0000755000312500031250000000300612651056013023520 0ustar eacbforgeacbforg

        Core Integrity

        Every WordPress release comes with a set of files that are part of the standard installation process of each version, none of these files should be modified as they are overwritten on each upgrade, it is not advised that web developers modify the core files and instead extend the base functionality with themes or plugins. Only three directories are scanned: admin, includes, and the document root where the configuration and startup files are located.

        Use a server side scanner or a web scanner to find the source of the infection and broken pages respectively.

        Loading...
        plugins/sucuri-scanner/inc/tpl/lastlogins.html.tpl0000755000312500031250000000173612651056013023022 0ustar eacbforgeacbforg
        • All Users
        • Admin Users
        • Logged In Users
        • Failed Logins
        %%%SUCURI.LastLogins.AllUsers%%%
        %%%SUCURI.LastLogins.Admins%%%
        %%%SUCURI.LoggedInUsers%%%
        %%%SUCURI.FailedLogins%%%
        plugins/sucuri-scanner/inc/tpl/settings-apiservice.html.tpl0000755000312500031250000000035712651056013024631 0ustar eacbforgeacbforg
        %%%SUCURI.SettingsSection.ApiStatus%%% %%%SUCURI.SettingsSection.ApiProxy%%% %%%SUCURI.SettingsSection.ApiSSL%%% %%%SUCURI.SettingsSection.ApiTimeout%%%
        plugins/sucuri-scanner/inc/tpl/infosys-wpconfig.html.tpl0000755000312500031250000000041512654411246024146 0ustar eacbforgeacbforg %%%SUCURI.WordpressConfig.Rules%%%
        Variable Value
        plugins/sucuri-scanner/inc/tpl/firewall-auditlogs.html.tpl0000755000312500031250000000660712654411246024451 0ustar eacbforgeacbforg

        Firewall Audit Logs

        CloudProxy logs every request involved in an attack and separates them from the legitimate requests. You can analyze the data from the latest entries in the logs using this tool and take action either enabling the advanced features of the IDS (Intrusion Detection System) from the CloudProxy Dashboard and/or blocking IP addresses and URL paths directly from the CloudProxy Audit Trails page.

        Note that non-blocked requests are hidden from the logs, this is intentional.

        Audit Logs
        Loading...
        plugins/sucuri-scanner/inc/tpl/integrity.html.tpl0000755000312500031250000000022612651056013022652 0ustar eacbforgeacbforg
        %%%SUCURI.WordpressVersion%%% %%%SUCURI.CoreFiles%%% %%%SUCURI.AuditReports%%% %%%SUCURI.AuditLogs%%%
        plugins/sucuri-scanner/inc/tpl/malwarescan-sysnotice.snippet.tpl0000755000312500031250000000016512651056013025667 0ustar eacbforgeacbforg %%SUCURI.SystemNotice%% plugins/sucuri-scanner/inc/tpl/corefiles-notification.html.tpl0000755000312500031250000000331712651056013025277 0ustar eacbforgeacbforg

        Changes in the integrity of your core files were detected, you may want to check each file to determine if they were infected with malicious code. The WordPress core directories /<root>, /wp-admin and /wp-includes are the only ones being scanned; the content, uploads, and custom directories are not part of the official archives so you have to check them manually.

        %%%SUCURI.CoreFiles.List%%%
        Core integrity (%%SUCURI.CoreFiles.ListCount%% files)
          Status File Size Modified At File Path

        Note. This is not a malware scanner but an integrity checker which is a completely different thing, if you want to check if your site is generating malicious code then use the malware scan tool. If you see the text "must be fixed manually" in any of these files that means that they do not have write permissions so you can not fix them using this tool. Access the admin area of your website to fix these files.

        plugins/sucuri-scanner/inc/tpl/lastlogins-loggedin.snippet.tpl0000755000312500031250000000102212651056013025312 0ustar eacbforgeacbforg %%SUCURI.LoggedInUsers.Id%% %%SUCURI.LoggedInUsers.UserLogin%% %%SUCURI.LoggedInUsers.LastActivity%% %%SUCURI.LoggedInUsers.Registered%% %%SUCURI.LoggedInUsers.RemoveAddr%% Edit plugins/sucuri-scanner/inc/tpl/malwarescan-recommendation.snippet.tpl0000755000312500031250000000047112651056013026653 0ustar eacbforgeacbforg %%SUCURI.RecommendationTitle%%
        %%SUCURI.RecommendationValue%%
        %%SUCURI.RecommendationUrlTitle%% plugins/sucuri-scanner/inc/tpl/settings-apiservice-timeout.html.tpl0000755000312500031250000000337412651056013026317 0ustar eacbforgeacbforg

        API Request Timeout

        The plugin sends the data associated to the events triggered by WordPress when it considers the action is suspicious, it sends this information via HTTP requests using the HTTP transport protocol available in the system and the built-in functions provided by WordPress, then it waits for the response.

        You can set up to %%SUCURI.MaxRequestTimeout%% seconds for the timeout, more than that is not allowed.

        Wait %%SUCURI.RequestTimeout%% before timeout

        If you start experiencing issues related with the timeout of the requests you may consider to increase the number of seconds to wait for the response. You may also want to check with your hosting provider to see if there is something in the server blocking the connection.

        plugins/sucuri-scanner/inc/tpl/infosys.html.tpl0000755000312500031250000000225112654411246022334 0ustar eacbforgeacbforg
        • Plugin & Server Info
        • Scheduled Tasks
        • Access File Integrity
        • Config. Variables
        • Error Logs
        %%%SUCURI.ServerInfo%%%
        %%%SUCURI.Cronjobs%%%
        %%%SUCURI.HTAccessIntegrity%%%
        %%%SUCURI.WordpressConfig%%%
        %%%SUCURI.ErrorLogs%%%
        plugins/sucuri-scanner/inc/tpl/settings-alert.html.tpl0000755000312500031250000000035112651056013023600 0ustar eacbforgeacbforg
        %%%SUCURI.AlertSettings.Recipients%%% %%%SUCURI.AlertSettings.Subject%%% %%%SUCURI.AlertSettings.PerHour%%% %%%SUCURI.AlertSettings.BruteForce%%% %%%SUCURI.AlertSettings.Events%%%
        plugins/sucuri-scanner/inc/tpl/malwarescan-resmalware.snippet.tpl0000755000312500031250000000155512651056013026015 0ustar eacbforgeacbforg %%SUCURI.AlertMessage%% %%SUCURI.MalwareType%%
        View infected URL View malware
        %%SUCURI.MalwarePayload%%
        plugins/sucuri-scanner/inc/tpl/firewall-settings.snippet.tpl0000755000312500031250000000031312651056013025012 0ustar eacbforgeacbforg %%%SUCURI.Firewall.OptionValue%%% plugins/sucuri-scanner/inc/tpl/integrity-modifiedfiles.html.tpl0000755000312500031250000000745712651056013025470 0ustar eacbforgeacbforg

        Modified Files

        The scanner searches the WordPress content directory for files that were modified during the number of days specified by the user in the request. If your site was recently attacked, you can see which files were modified to assist with any investigation. Other WordPress core directories are scanned automatically with the core integrity checker, if you want to scan other directories that are not part of the official WordPress packages you have to ask for assistance to your hosting provider.

        Note that in most Unix file systems, a file is considered modified when its inode data is changed; that is, when the permissions, owner, group, or other metadata from the inode is updated. Considering this it may be possible to have false-positives in the result.

        Depending on the number of files stored in your website this operation may fail due to limitations set by your hosting provider to keep the memory assignation of the PHP scripts in certain numbers. If you have issues executing this tool ask your hosting provider to assist you in the configuration of your website to allow the execution of this script.

        Modified files (inside the content directory)  
        Modification File Size File Path
        plugins/sucuri-scanner/inc/tpl/posthack-resetplugins.html.tpl0000755000312500031250000000701712651056013025177 0ustar eacbforgeacbforg

        In case that you suspect of an infection in your site, or even after you got rid of a malicious code, it would be better if you re-install all the plugins installed in your site, including the ones you are not using (aka. deactivated). Select from the list bellow the plugins you want to reset (it is recommended to select them all), be aware that premium plugins will not be re-installed.

        The information shown here is cache for %%SUCURI.ResetPlugin.CacheLifeTime%% seconds, this is necessary to reduce the quantity of HTTP requests sent to the WordPress servers and the bandwidth of your site. Currently there is no option to recreate this cache so you have to wait until it resets itself.

        Plugin Version Type Status
        Loading (may take several seconds)...

        plugins/sucuri-scanner/inc/tpl/settings-selfhosting.html.tpl0000755000312500031250000000010212651056013025010 0ustar eacbforgeacbforg
        %%%SUCURI.SelfHosting.Monitor%%%
        plugins/sucuri-scanner/inc/tpl/integrity-auditreport.html.tpl0000755000312500031250000000723412654411246025226 0ustar eacbforgeacbforg

        Audit Report

        The data used to generate these charts comes from the last %%SUCURI.AuditReport.Logs4Report%% audit logs, you can configure this number from the plugin settings page, you can also disable and enable this panel from there at any time.

        Audit Logs per Event

        source https://sucuri.net/

        Successful/Failed Logins

        source https://sucuri.net/

        Audit Logs per User

        source https://sucuri.net/

        Audit Logs per IP Address

        source https://sucuri.net/
        plugins/sucuri-scanner/inc/tpl/settings-general-commentmonitor.html.tpl0000755000312500031250000000360612651056013027164 0ustar eacbforgeacbforg

        User Comment Monitor

        User comments are the main source of spam in WordPress websites, this option enables the monitoring of data sent via the comment forms loaded in every page and post. Remember that the plugin sends this information to the Sucuri servers so if you do not agree with this you must keep this option disabled. Among the data included in the report for each comment there are identifiers of the post and user account (usually null for guest comments), the IP address of the author, the email address of the author, the user-agent of the web browser used by the author to create the comment, the current date, the status which usually falls under the category of not approved, and the message itself.

        We also use this information in an anonymous way to generate statistics of usage that help us improve our service.

        User Comment Monitor is %%SUCURI.CommentMonitorStatus%%
        plugins/sucuri-scanner/.htaccess0000644000312500031250000000017412651056013017375 0ustar eacbforgeacbforg Order Deny,Allow Deny from all Order Allow,Deny Allow from all plugins/sucuri-scanner/index.html0000644000312500031250000000004612651056013017572 0ustar eacbforgeacbforg plugins/sucuri-scanner/sucuri.php0000644000312500031250000176762112654411246017652 0ustar eacbforgeacbforgSucuri plugin provides the website owner the best Activity Auditing, SiteCheck Remote Malware Scanning, Effective Security Hardening and Post-Hack features. SiteCheck will check for malware, spam, blacklisting and other security issues like .htaccess redirects, hidden eval code, etc. The best thing about it is it's completely free. Author: Sucuri, INC Version: 1.7.17 Author URI: https://sucuri.net */ /** * Main file to control the plugin. * * @package Sucuri Security * @author Yorman Arias * @author Daniel Cid * @copyright Since 2010-2015 Sucuri Inc. * @license Released under the GPL - see LICENSE file for details. * @link https://wordpress.sucuri.net/ * @since File available since Release 0.1 */ /** * Plugin dependencies. * * List of required functions for the execution of this plugin, we are assuming * that this site was built on top of the WordPress project, and that it is * being loaded through a pluggable system, these functions most be defined * before to continue. * * @var array */ $sucuriscan_dependencies = array( 'wp', 'wp_die', 'add_action', 'remove_action', 'wp_remote_get', 'wp_remote_post', ); // Terminate execution if any of the functions mentioned above is not defined. foreach ($sucuriscan_dependencies as $dependency) { if (!function_exists($dependency)) { exit(0); } } /** * Plugin's constants. * * These constants will hold the basic information of the plugin, file/folder * paths, version numbers, read-only variables that will affect the functioning * of the rest of the code. The conditional will act as a container helping in * the readability of the code considering the total number of lines that this * file will have. */ /** * Unique name of the plugin through out all the code. */ define('SUCURISCAN', 'sucuriscan'); /** * Current version of the plugin's code. */ define('SUCURISCAN_VERSION', '1.7.17'); /** * The name of the Sucuri plugin main file. */ define('SUCURISCAN_PLUGIN_FILE', 'sucuri.php'); /** * The name of the folder where the plugin's files will be located. */ define('SUCURISCAN_PLUGIN_FOLDER', 'sucuri-scanner'); /** * The fullpath where the plugin's files will be located. */ define('SUCURISCAN_PLUGIN_PATH', WP_PLUGIN_DIR.'/'.SUCURISCAN_PLUGIN_FOLDER); /** * The fullpath of the main plugin file. */ define('SUCURISCAN_PLUGIN_FILEPATH', SUCURISCAN_PLUGIN_PATH.'/'.SUCURISCAN_PLUGIN_FILE); /** * The local URL where the plugin's files and assets are served. */ define('SUCURISCAN_URL', rtrim(plugin_dir_url(SUCURISCAN_PLUGIN_FILEPATH), '/')); /** * Checksum of this file to check the integrity of the plugin. */ define('SUCURISCAN_PLUGIN_CHECKSUM', @md5_file(SUCURISCAN_PLUGIN_FILEPATH)); /** * Remote URL where the public Sucuri API service is running. */ define('SUCURISCAN_API', 'https://wordpress.sucuri.net/api/'); /** * Latest version of the public Sucuri API. */ define('SUCURISCAN_API_VERSION', 'v1'); /** * Remote URL where the CloudProxy API service is running. */ define('SUCURISCAN_CLOUDPROXY_API', 'https://waf.sucuri.net/api'); /** * Latest version of the CloudProxy API. */ define('SUCURISCAN_CLOUDPROXY_API_VERSION', 'v2'); /** * The maximum quantity of entries that will be displayed in the last login page. */ define('SUCURISCAN_LASTLOGINS_USERSLIMIT', 25); /** * The maximum quantity of entries that will be displayed in the audit logs page. */ define('SUCURISCAN_AUDITLOGS_PER_PAGE', 50); /** * The maximum quantity of buttons in the paginations. */ define('SUCURISCAN_MAX_PAGINATION_BUTTONS', 20); /** * The minimum quantity of seconds to wait before each filesystem scan. */ define('SUCURISCAN_MINIMUM_RUNTIME', 10800); /** * The life time of the cache for the results of the SiteCheck scans. */ define('SUCURISCAN_SITECHECK_LIFETIME', 1200); /** * The life time of the cache for the results of the get_plugins function. */ define('SUCURISCAN_GET_PLUGINS_LIFETIME', 1800); /** * The maximum execution time of a HTTP request before timeout. */ define('SUCURISCAN_MAX_REQUEST_TIMEOUT', 15); /** * Plugin's global variables. * * These variables will be defined globally to allow the inclusion in multiple * functions and classes defined in the libraries loaded by this plugin. The * conditional will act as a container helping in the readability of the code * considering the total number of lines that this file will have. */ if (defined('SUCURISCAN')) { /** * Define the prefix for some actions and filters that rely in the * differentiation of the type of site where the extension is being used. There * are a few differences between a single site installation that must be * correctly defined when the extension is in a different environment, for * example, in a multisite installation. * * @var string */ $sucuriscan_action_prefix = SucuriScan::is_multisite() ? 'network_' : ''; /** * List an associative array with the sub-pages of this plugin. * * @return array */ $sucuriscan_pages = array( 'sucuriscan' => 'Dashboard', 'sucuriscan_scanner' => 'Malware Scan', 'sucuriscan_firewall' => 'Firewall (WAF)', 'sucuriscan_hardening' => 'Hardening', 'sucuriscan_posthack' => 'Post-Hack', 'sucuriscan_lastlogins' => 'Last Logins', 'sucuriscan_settings' => 'Settings', 'sucuriscan_infosys' => 'Site Info', ); /** * Settings options. * * The following global variables are mostly associative arrays where the key is * linked to an option that will be stored in the database, and their * correspondent values are the description of the option. These variables will * be used in the settings page to offer the user a way to configure the * behaviour of the plugin. * * @var array */ $sucuriscan_notify_options = array( 'sucuriscan_notify_plugin_change' => 'Receive email alerts for Sucuri plugin changes', 'sucuriscan_prettify_mails' => 'Receive email alerts in HTML (there may be issues with some mail services)', 'sucuriscan_use_wpmail' => 'Use WordPress functions to send mails (uncheck to use native PHP functions)', 'sucuriscan_lastlogin_redirection' => 'Allow redirection after login to report the last-login information', 'sucuriscan_notify_scan_checksums' => 'Receive email alerts for core integrity checks', 'sucuriscan_notify_user_registration' => 'user:Receive email alerts for new user registration', 'sucuriscan_notify_success_login' => 'user:Receive email alerts for successful login attempts', 'sucuriscan_notify_failed_login' => 'user:Receive email alerts for failed login attempts (you may receive tons of emails)', 'sucuriscan_notify_bruteforce_attack' => 'user:Receive email alerts for password guessing attacks (summary of failed logins per hour)', 'sucuriscan_notify_post_publication' => 'Receive email alerts for Post-Type changes (configure from Ignore Alerts)', 'sucuriscan_notify_website_updated' => 'Receive email alerts when the WordPress version is updated', 'sucuriscan_notify_settings_updated' => 'Receive email alerts when your website settings are updated', 'sucuriscan_notify_theme_editor' => 'Receive email alerts when a file is modified with theme/plugin editor', 'sucuriscan_notify_plugin_installed' => 'plugin:Receive email alerts when a plugin is installed', 'sucuriscan_notify_plugin_activated' => 'plugin:Receive email alerts when a plugin is activated', 'sucuriscan_notify_plugin_deactivated' => 'plugin:Receive email alerts when a plugin is deactivated', 'sucuriscan_notify_plugin_updated' => 'plugin:Receive email alerts when a plugin is updated', 'sucuriscan_notify_plugin_deleted' => 'plugin:Receive email alerts when a plugin is deleted', 'sucuriscan_notify_widget_added' => 'widget:Receive email alerts when a widget is added to a sidebar', 'sucuriscan_notify_widget_deleted' => 'widget:Receive email alerts when a widget is deleted from a sidebar', 'sucuriscan_notify_theme_installed' => 'theme:Receive email alerts when a theme is installed', 'sucuriscan_notify_theme_activated' => 'theme:Receive email alerts when a theme is activated', 'sucuriscan_notify_theme_updated' => 'theme:Receive email alerts when a theme is updated', 'sucuriscan_notify_theme_deleted' => 'theme:Receive email alerts when a theme is deleted', ); $sucuriscan_schedule_allowed = array( 'hourly' => 'Every three hours (3 hours)', 'twicedaily' => 'Twice daily (12 hours)', 'daily' => 'Once daily (24 hours)', '_oneoff' => 'Never', ); $sucuriscan_interface_allowed = array( 'spl' => 'SPL (high performance)', 'opendir' => 'OpenDir (medium)', 'glob' => 'Glob (low)', ); $sucuriscan_emails_per_hour = array( '5' => 'Maximum 5 per hour', '10' => 'Maximum 10 per hour', '20' => 'Maximum 20 per hour', '40' => 'Maximum 40 per hour', '80' => 'Maximum 80 per hour', '160' => 'Maximum 160 per hour', 'unlimited' => 'Unlimited', ); $sucuriscan_maximum_failed_logins = array( '30' => '30 failed logins per hour', '60' => '60 failed logins per hour', '120' => '120 failed logins per hour', '240' => '240 failed logins per hour', '480' => '480 failed logins per hour', ); $sucuriscan_verify_ssl_cert = array( 'true' => 'Verify peer\'s cert', 'false' => 'Stop peer\'s cert verification', ); $sucuriscan_no_notices_in = array( /* Value of the page parameter to ignore. */ ); $sucuriscan_email_subjects = array( 'Sucuri Alert, :domain, :event', 'Sucuri Alert, :domain, :event, :remoteaddr', 'Sucuri Alert, :domain, :event, :username', 'Sucuri Alert, :domain, :event, :email', 'Sucuri Alert, :event, :remoteaddr', 'Sucuri Alert, :event', ); /** * Remove the WordPress generator meta-tag from the source code. */ remove_action('wp_head', 'wp_generator'); /** * Run a specific function defined in the plugin's code to locate every * directory and file, collect their checksum and file size, and send this * information to the Sucuri API service where a security and integrity scan * will be performed against the hashes provided and the official versions. */ add_action('sucuriscan_scheduled_scan', 'SucuriScan::run_scheduled_task'); /** * Initialize the execute of the main plugin's functions. * * This will load the menu options in the WordPress administrator panel, and * execute the bootstrap function of the plugin. */ add_action('init', 'SucuriScanInterface::initialize', 1); add_action('admin_init', 'SucuriScanInterface::create_datastore_folder'); add_action('admin_init', 'SucuriScanInterface::handle_old_plugins'); add_action('admin_enqueue_scripts', 'SucuriScanInterface::enqueue_scripts', 1); /** * Display extension menu and submenu items in the correct interface. For single * site installations the menu items can be displayed normally as always but for * multisite installations the menu items must be available only in the network * panel and hidden in the administration panel of the subsites. */ add_action($sucuriscan_action_prefix . 'admin_menu', 'SucuriScanInterface::add_interface_menu'); /** * Attach Ajax requests to a custom page handler. */ foreach ($sucuriscan_pages as $page_func => $page_title) { $ajax_func = $page_func . '_ajax'; if (function_exists($ajax_func)) { add_action('wp_ajax_' . $ajax_func, $ajax_func); } } /** * Function call interceptors. * * Define the names for the hooks that will intercept specific function calls in * the admin interface and parts of the external site, an event report will be * sent to the API service and an email notification to the administrator of the * site. * * @see Class SucuriScanHook */ if (class_exists('SucuriScanHook')) { $sucuriscan_hooks = array( 'add_attachment', 'add_link', 'create_category', 'delete_post', 'delete_user', 'login_form_resetpass', 'private_to_published', 'publish_page', 'publish_phone', 'publish_post', 'retrieve_password', 'switch_theme', 'user_register', 'wp_insert_comment', 'wp_login', 'wp_login_failed', 'wp_trash_post', 'xmlrpc_publish_post', ); if (SucuriScanOption::is_enabled(':xhr_monitor')) { $sucuriscan_hooks[] = 'all'; } foreach ($sucuriscan_hooks as $hook_name) { $hook_func = 'SucuriScanHook::hook_' . $hook_name; add_action($hook_name, $hook_func, 50, 5); } add_action('admin_init', 'SucuriScanHook::hook_undefined_actions'); add_action('login_form', 'SucuriScanHook::hook_undefined_actions'); } else { SucuriScanInterface::error('Function call interceptors are not working properly.'); } /** * Display a message if the plugin is not activated. * * Display a message at the top of the administration panel with a button that * once clicked will send the site's email and domain name to the Sucuri API * service where an API key will be generated for the site, this key will allow * the plugin to execute the filesystem scans, the project integrity, and the * email notifications. */ add_action($sucuriscan_action_prefix . 'admin_notices', 'SucuriScanInterface::setup_notice'); /** * Heartbeat API * * Update the settings of the Heartbeat API according to the values set by an * administrator. This tool may cause an increase in the CPU usage, a bad * configuration may cause low account to run out of resources, but in better * cases it may improve the performance of the site by reducing the quantity of * requests sent to the server per session. */ add_filter('init', 'SucuriScanHeartbeat::register_script', 1); add_filter('heartbeat_settings', 'SucuriScanHeartbeat::update_settings'); add_filter('heartbeat_send', 'SucuriScanHeartbeat::respond_to_send', 10, 3); add_filter('heartbeat_received', 'SucuriScanHeartbeat::respond_to_received', 10, 3); add_filter('heartbeat_nopriv_send', 'SucuriScanHeartbeat::respond_to_send', 10, 3); add_filter('heartbeat_nopriv_received', 'SucuriScanHeartbeat::respond_to_received', 10, 3); } /** * Miscellaneous library. * * Multiple and generic functions that will be used through out the code of * other libraries extending from this and functions defined in other files, be * aware of the hierarchy and check the other libraries for duplicated methods. */ class SucuriScan { /** * Class constructor. */ public function __construct() { } /** * Return name of a variable with the plugin's prefix (if needed). * * To facilitate the development, you can prefix the name of the key in the * request (when accessing it) with a single colon, this function will * automatically replace that character with the unique identifier of the * plugin. * * @param string $var_name Name of a variable with an optional colon at the beginning. * @return string Full name of the variable with the extra characters (if needed). */ public static function variable_prefix($var_name = '') { if (!empty($var_name) && $var_name[0] === ':') { $var_name = sprintf( '%s_%s', SUCURISCAN, substr($var_name, 1) ); } return $var_name; } /** * Gets the value of a configuration option. * * @param string $property The configuration option name. * @return string Value of the configuration option as a string on success. */ public static function ini_get($property = '') { $ini_value = ini_get($property); $default = array( 'error_log' => 'error_log', 'safe_mode' => 'Off', 'memory_limit' => '128M', 'upload_max_filesize' => '2M', 'post_max_size' => '8M', 'max_execution_time' => '30', 'max_input_time' => '-1', ); if ($ini_value === false) { $ini_value = 'Undefined'; } elseif (empty($ini_value) || $ini_value === null) { if (array_key_exists($property, $default)) { $ini_value = $default[$property]; } else { $ini_value = 'Off'; } } if ($property == 'error_log') { $ini_value = basename($ini_value); } return $ini_value; } /** * Encodes the less-than, greater-than, ampersand, double quote and single quote * characters, will never double encode entities. * * @param string $text The text which is to be encoded. * @return string The encoded text with HTML entities. */ public static function escape($text = '') { // Escape the value of the variable using a built-in function if possible. if (function_exists('esc_attr')) { $text = esc_attr($text); } else { $text = htmlspecialchars($text); } return $text; } /** * Generates a lowercase random string with an specific length. * * @param integer $length Length of the string that will be generated. * @return string The random string generated. */ public static function random_char($length = 4) { $string = ''; $offset = 25; $chars = array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', ); for ($i = 0; $i < $length; $i++) { $index = rand(0, $offset); $string .= $chars[$index]; } return $string; } /** * Translate a given number in bytes to a human readable file size using the * a approximate value in Kylo, Mega, Giga, etc. * * @link https://www.php.net/manual/en/function.filesize.php#106569 * @param integer $bytes An integer representing a file size in bytes. * @param integer $decimals How many decimals should be returned after the translation. * @return string Human readable representation of the given number in Kylo, Mega, Giga, etc. */ public static function human_filesize($bytes = 0, $decimals = 2) { $sz = 'BKMGTP'; $factor = floor((strlen($bytes) - 1) / 3); return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[ $factor ]; } /** * Returns the system filepath to the relevant user uploads directory for this * site. This is a multisite capable function. * * @param string $path The relative path that needs to be completed to get the absolute path. * @return string The full filesystem path including the directory specified. */ public static function datastore_folder_path($path = '') { $default_dir = 'sucuri'; $datastore = SucuriScanOption::get_option(':datastore_path'); // Use the uploads folder by default. if (empty($datastore)) { $uploads_path = false; // Multisite installations may have different paths. if (function_exists('wp_upload_dir')) { $upload_dir = wp_upload_dir(); if (isset($upload_dir['basedir'])) { $uploads_path = rtrim($upload_dir['basedir'], '/'); } } if ($uploads_path === false) { if (defined('WP_CONTENT_DIR')) { $uploads_path = WP_CONTENT_DIR . '/uploads'; } else { $uploads_path = ABSPATH . '/wp-content/uploads'; } } $datastore = $uploads_path . '/' . $default_dir; SucuriScanOption::update_option(':datastore_path', $datastore); } return $datastore . '/' . $path; } /** * Check whether the current site is working as a multi-site instance. * * @return boolean Either TRUE or FALSE in case WordPress is being used as a multi-site instance. */ public static function is_multisite() { return (bool) (function_exists('is_multisite') && is_multisite()); } public static function admin_url($url = '') { if (self::is_multisite()) { return network_admin_url($url); } else { return admin_url($url); } } /** * Find and retrieve the current version of Wordpress installed. * * @return string The version number of Wordpress installed. */ public static function site_version() { global $wp_version; if ($wp_version === null) { $wp_version_path = ABSPATH . WPINC . '/version.php'; if (file_exists($wp_version_path)) { include($wp_version_path); $wp_version = isset($wp_version) ? $wp_version : '0.0'; } else { $option_version = get_option('version'); $wp_version = $option_version ? $option_version : '0.0'; } } $wp_version = self::escape($wp_version); return $wp_version; } /** * Find and retrieve the absolute path of the WordPress configuration file. * * @return string Absolute path of the WordPress configuration file. */ public static function get_wpconfig_path() { if (defined('ABSPATH')) { $file_path = ABSPATH . '/wp-config.php'; // if wp-config.php doesn't exist, or is not readable check one directory up. if (!file_exists($file_path)) { $file_path = ABSPATH . '/../wp-config.php'; } // Remove duplicated double slashes. $file_path = @realpath($file_path); if ($file_path) { return $file_path; } } return false; } /** * Find and retrieve the absolute path of the main WordPress htaccess file. * * @return string Absolute path of the main WordPress htaccess file. */ public static function get_htaccess_path() { if (defined('ABSPATH')) { $base_dirs = array( rtrim(ABSPATH, '/'), dirname(ABSPATH), dirname(dirname(ABSPATH)), ); foreach ($base_dirs as $base_dir) { $htaccess_path = sprintf('%s/.htaccess', $base_dir); if (file_exists($htaccess_path)) { return $htaccess_path; } } } return false; } /** * Get the pattern of the definition related with a WordPress secret key. * * @return string Secret key definition pattern. */ public static function secret_key_pattern() { return '/define\(\s*\'([A-Z_]+)\',(\s*)\'(.+)\'\s*\);/'; } /** * Execute the plugin' scheduled tasks. * * @return void */ public static function run_scheduled_task() { SucuriScanEvent::filesystem_scan(); sucuriscan_core_files_data(true); } /** * List of allowed HTTP headers to retrieve the real IP. * * Once the DNS lookups are enabled to discover the real IP address of the * visitors the user may choose the HTTP header that will be used by default to * retrieve the real IP address of each HTTP request, generally they do not need * to set this but in rare cases the hosting provider may have a load balancer * that can interfere in the process, in which case they will have to explicitly * specify the main HTTP header. This is a list of the allowed headers that the * user can choose. * * @param boolean $with_keys Return the array with its values are keys. * @return array Allowed HTTP headers to retrieve real IP. */ public static function allowedHttpHeaders($with_keys = false) { $allowed = array( 'HTTP_X_SUCURI_CLIENTIP', 'HTTP_X_REAL_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'SUCURI_RIP', 'REMOTE_ADDR', ); if ($with_keys === true) { $verbose = array(); foreach ($allowed as $header) { $verbose[$header] = $header; } return $verbose; } return $allowed; } /** * List HTTP headers ordered. * * The list of HTTP headers is ordered per relevancy, and having the main HTTP * header as the first entry, this guarantees that the IP address of the * visitors will be retrieved from the HTTP header chosen by the user first and * fallback to the other alternatives if available. * * @return array Ordered allowed HTTP headers. */ private static function orderedHttpHeaders() { $ordered = array(); $allowed = self::allowedHttpHeaders(); $addr_header = SucuriScanOption::get_option(':addr_header'); $ordered[] = $addr_header; foreach ($allowed as $header) { if (!in_array($header, $ordered)) { $ordered[] = $header; } } return $ordered; } /** * Retrieve the real ip address of the user in the current request. * * @param boolean $with_header Return HTTP header where the IP address was found. * @return string Real IP address of the user in the current request. */ public static function get_remote_addr($with_header = false) { $remote_addr = false; $header_used = 'unknown'; $headers = self::orderedHttpHeaders(); foreach ($headers as $header) { if (array_key_exists($header, $_SERVER) && self::is_valid_ip($_SERVER[$header]) ) { $remote_addr = $_SERVER[$header]; $header_used = $header; break; } } if (!$remote_addr || $remote_addr === '::1') { $remote_addr = '127.0.0.1'; } if ($with_header) { return $header_used; } return $remote_addr; } /** * Return the HTTP header used to retrieve the remote address. * * @return string The HTTP header used to retrieve the remote address. */ public static function get_remote_addr_header() { return self::get_remote_addr(true); } /** * Retrieve the user-agent from the current request. * * @return string The user-agent from the current request. */ public static function get_user_agent() { if (isset($_SERVER['HTTP_USER_AGENT'])) { return self::escape($_SERVER['HTTP_USER_AGENT']); } return false; } /** * Get the clean version of the current domain. * * @return string The domain of the current site. */ public static function get_domain($return_tld = false) { if (function_exists('get_site_url')) { $site_url = get_site_url(); $pattern = '/([fhtps]+:\/\/)?([^:\/]+)(:[0-9:]+)?(\/.*)?/'; $replacement = ( $return_tld === true ) ? '$2' : '$2$3$4'; $domain_name = @preg_replace($pattern, $replacement, $site_url); return $domain_name; } return false; } /** * Get top-level domain (TLD) of the website. * * @return string Top-level domain (TLD) of the website. */ public static function get_top_level_domain() { return self::get_domain(true); } /** * Check whether reverse proxy servers must be supported. * * @return boolean TRUE if reverse proxies must be supported, FALSE otherwise. */ public static function support_reverse_proxy() { return SucuriScanOption::is_enabled(':revproxy'); } /** * Check whether the DNS lookups should be execute or not. * * DNS lookups are only necessary if you are planning to use a reverse proxy or * firewall (like CloudProxy), this is used to set the correct IP address when * the firewall/proxy filters the requests. If you are not planning to use any * of these is better to disable this option, otherwise the load time of your * site may be affected. * * @return boolean True if the DNS lookups should be executed, false otherwise. */ public static function execute_dns_lookups() { if (( defined('NOT_USING_CLOUDPROXY') && NOT_USING_CLOUDPROXY === true ) || SucuriScanOption::is_disabled(':dns_lookups') ) { return false; } return true; } /** * Check whether the site is behind the Sucuri CloudProxy network. * * @param boolean $verbose Return an array with the hostname, address, and status, or not. * @return boolean Either TRUE or FALSE if the site is behind CloudProxy. */ public static function is_behind_cloudproxy($verbose = false) { $http_host = self::get_top_level_domain(); if (self::execute_dns_lookups()) { $host_by_addr = @gethostbyname($http_host); $host_by_name = @gethostbyaddr($host_by_addr); $status = (bool) preg_match('/^cloudproxy[0-9]+\.sucuri\.net$/', $host_by_name); } else { $status = false; $host_by_addr = '::1'; $host_by_name = 'localhost'; } /* * If the DNS reversion failed but the CloudProxy API key is set, then consider * the site as protected by a firewall. A fake key can be used to bypass the DNS * checking, but that is not something that will affect us, only the client. */ if ($status === false && SucuriScanAPI::getCloudproxyKey() ) { $status = true; } if ($verbose) { return array( 'http_host' => $http_host, 'host_name' => $host_by_name, 'host_addr' => $host_by_addr, 'status' => $status, ); } return $status; } /** * Get the email address set by the administrator to receive the notifications * sent by the plugin, if the email is missing the WordPress email address is * chosen by default. * * @return string The administrator email address. */ public static function get_site_email() { $email = get_option('admin_email'); if (self::is_valid_email($email)) { return $email; } return false; } /** * Get user data by field and data. * * @param integer $identifier User account identifier. * @return object WordPress user object with data. */ public static function get_user_by_id($identifier = 0) { if (function_exists('get_user_by')) { $user = get_user_by('id', $identifier); if ($user instanceof WP_User) { return $user; } } return false; } /** * Retrieve a list of all admin user accounts. * * @return array List of admin users, false otherwise. */ public static function get_admin_users() { if (function_exists('get_users')) { $args = array( 'role' => 'administrator' ); return get_users($args); } return false; } /** * Get a list of user emails that can be used to generate an API key for this * website. Only accounts with the status in zero will be returned, the status * field in the users table is officially deprecated but some 3rd-party plugins * still use it to check if the account was activated by the owner of the email, * a value different than zero generally means that the email was not verified * successfully. * * @return array List of user identifiers and email addresses. */ public static function get_users_for_api_key() { $valid_users = array(); $users = self::get_admin_users(); if ($users !== false) { foreach ($users as $user) { if ($user->user_status === '0') { $valid_users[ $user->ID ] = sprintf( '%s - %s', $user->user_login, $user->user_email ); } } } return $valid_users; } /** * Returns the current time measured in the number of seconds since the Unix Epoch. * * @return integer Return current Unix timestamp. */ public static function local_time() { if (function_exists('current_time')) { return current_time('timestamp'); } else { return time(); } } /** * Retrieve the date in localized format, based on timestamp. * * If the locale specifies the locale month and weekday, then the locale will * take over the format for the date. If it isn't, then the date format string * will be used instead. * * @param integer $timestamp Unix timestamp. * @return string The date, translated if locale specifies it. */ public static function datetime($timestamp = null) { $date_format = get_option('date_format'); $time_format = get_option('time_format'); $tz_format = sprintf('%s %s', $date_format, $time_format); if (is_numeric($timestamp) && $timestamp > 0) { return date_i18n($tz_format, $timestamp); } return date_i18n($tz_format); } /** * Retrieve the date in localized format based on the current time. * * @return string The date, translated if locale specifies it. */ public static function current_datetime() { return self::datetime(); } /** * Return the time passed since the specified timestamp until now. * * @param integer $timestamp The Unix time number of the date/time before now. * @return string The time passed since the timestamp specified. */ public static function time_ago($timestamp = 0) { if (!is_numeric($timestamp)) { $timestamp = strtotime($timestamp); } $local_time = self::local_time(); $diff = abs($local_time - intval($timestamp)); if ($diff == 0) { return 'just now'; } $intervals = array( 1 => array( 'year', 31556926, ), $diff < 31556926 => array( 'month', 2592000, ), $diff < 2592000 => array( 'week', 604800, ), $diff < 604800 => array( 'day', 86400, ), $diff < 86400 => array( 'hour', 3600, ), $diff < 3600 => array( 'minute', 60, ), $diff < 60 => array( 'second', 1, ), ); $value = floor($diff / $intervals[1][1]); $time_ago = sprintf( '%s %s%s ago', $value, $intervals[1][0], ( $value > 1 ? 's' : '' ) ); return $time_ago; } /** * Convert an string of characters into a valid variable name. * * @see https://www.php.net/manual/en/language.variables.basics.php * * @param string $text A text containing alpha-numeric and special characters. * @return string A valid variable name. */ public static function human2var($text = '') { $text = strtolower($text); $pattern = '/[^a-z0-9_]/'; $var_name = preg_replace($pattern, '_', $text); return $var_name; } /** * Check whether a variable contains a serialized data or not. * * @param string $data The data that will be checked. * @return boolean TRUE if the data was serialized, FALSE otherwise. */ public static function is_serialized($data = '') { return ( is_string($data) && preg_match('/^(a|O):[0-9]+:.+/', $data) ); } /** * Check whether an IP address has a valid format or not. * * @param string $remote_addr The host IP address. * @return boolean Whether the IP address specified is valid or not. */ public static function is_valid_ip($remote_addr = '') { if (function_exists('filter_var')) { return (bool) filter_var($remote_addr, FILTER_VALIDATE_IP); } elseif (strlen($remote_addr) >= 7) { $pattern = '/^([0-9]{1,3}\.) {3}[0-9]{1,3}$/'; if (preg_match($pattern, $remote_addr, $match)) { for ($i = 0; $i < 4; $i++) { if ($match[ $i ] > 255) { return false; } } return true; } } return false; } /** * Check whether an IP address is formatted as CIDR or not. * * @param string $remote_addr The supposed ip address that will be checked. * @return boolean Either TRUE or FALSE if the ip address specified is valid or not. */ public static function is_valid_cidr($remote_addr = '') { if (preg_match('/^([0-9\.]{7,15})\/(8|16|24)$/', $remote_addr, $match)) { if (self::is_valid_ip($match[1])) { return true; } } return false; } /** * Separate the parts of an IP address. * * @param string $remote_addr The supposed ip address that will be formatted. * @return array Clean address, CIDR range, and CIDR format; FALSE otherwise. */ public static function get_ip_info($remote_addr = '') { if ($remote_addr) { $ip_parts = explode('/', $remote_addr); if (array_key_exists(0, $ip_parts) && self::is_valid_ip($ip_parts[0]) ) { $addr_info = array(); $addr_info['remote_addr'] = $ip_parts[0]; $addr_info['cidr_range'] = isset($ip_parts[1]) ? $ip_parts[1] : '32'; $addr_info['cidr_format'] = $addr_info['remote_addr'] . '/' . $addr_info['cidr_range']; return $addr_info; } } return false; } /** * Validate email address. * * This use the native PHP function filter_var which is available in PHP >= * 5.2.0 if it is not found in the interpreter this function will sue regular * expressions to check whether the email address passed is valid or not. * * @see https://www.php.net/manual/en/function.filter-var.php * * @param string $email The string that will be validated as an email address. * @return boolean TRUE if the email address passed to the function is valid, FALSE if not. */ public static function is_valid_email($email = '') { if (function_exists('filter_var')) { return (bool) filter_var($email, FILTER_VALIDATE_EMAIL); } else { $pattern = '/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix'; return (bool) preg_match($pattern, $email); } } /** * Check whether a regular expression is valid or not. * * @param string $pattern The regular expression to check. * @return boolean True if the regular expression is valid, false otherwise. */ public static function is_valid_pattern($pattern = '') { return (bool) ( is_string($pattern) && !empty($pattern) && @preg_match($pattern, null) !== false ); } /** * Cut a long text to the length specified, and append suspensive points at the end. * * @param string $text String of characters that will be cut. * @param integer $length Maximum length of the returned string, default is 10. * @return string Short version of the text specified. */ public static function excerpt($text = '', $length = 10) { $text_length = strlen($text); if ($text_length > $length) { return substr($text, 0, $length) . '...'; } return $text; } /** * Same as the excerpt method but with the string reversed. * * @param string $text String of characters that will be cut. * @param integer $length Maximum length of the returned string, default is 10. * @return string Short version of the text specified. */ public static function excerpt_rev($text = '', $length = 10) { $str_reversed = strrev($text); $str_excerpt = self::excerpt($str_reversed, $length); $text_transformed = strrev($str_excerpt); return $text_transformed; } /** * Check whether an list is a multidimensional array or not. * * @param array $list An array or multidimensional array of different values. * @return boolean TRUE if the list is multidimensional, FALSE otherwise. */ public static function is_multi_list($list = array()) { if (!empty($list)) { foreach ((array) $list as $item) { if (is_array($item)) { return true; } } } return false; } /** * Join array elements with a string no matter if it is multidimensional. * * @param string $separator Character that will act as a separator, default to an empty string. * @param array $list The array of strings to implode. * @return string String of all the items in the list, with the separator between them. */ public static function implode($separator = '', $list = array()) { if (self::is_multi_list($list)) { $pieces = array(); foreach ($list as $items) { $pieces[] = @implode($separator, $items); } $joined_pieces = '(' . implode('), (', $pieces) . ')'; return $joined_pieces; } else { return implode($separator, $list); } } /** * Determine if the plugin notices can be displayed in the current page. * * @param string $current_page Identifier of the current page. * @return boolean TRUE if the current page must not have noticies. */ public static function no_notices_here($current_page = false) { global $sucuriscan_no_notices_in; if ($current_page === false) { $current_page = SucuriScanRequest::get('page'); } if (isset($sucuriscan_no_notices_in) && is_array($sucuriscan_no_notices_in) && !empty($sucuriscan_no_notices_in) ) { return (bool) in_array($current_page, $sucuriscan_no_notices_in); } return false; } /** * Check whether the site is running over the Nginx web server. * * @return boolean TRUE if the site is running over Nginx, FALSE otherwise. */ public static function is_nginx_server() { return (bool) preg_match('/^nginx(\/[0-9\.]+)?$/', @$_SERVER['SERVER_SOFTWARE']); } /** * Check whether the site is running over the Nginx web server. * * @return boolean TRUE if the site is running over Nginx, FALSE otherwise. */ public static function is_iis_server() { return (bool) preg_match('/Microsoft-IIS/i', @$_SERVER['SERVER_SOFTWARE']); } } /** * HTTP request handler. * * Function definitions to retrieve, validate, and clean the parameters during a * HTTP request, generally after a form submission or while loading a URL. Use * these methods at most instead of accessing an index in the global PHP * variables _POST, _GET, _REQUEST since they may come with insecure data. */ class SucuriScanRequest extends SucuriScan { /** * Returns the value stored in a specific index in the global _GET, _POST or * _REQUEST variables, you can specify a pattern as the second argument to * match allowed values. * * @param array $list The array where the specified key will be searched. * @param string $key Name of the index where the requested variable is supposed to be. * @param string $pattern Optional pattern to match allowed values in the requested key. * @return string The value stored in the specified key inside the global _GET variable. */ public static function request($list = array(), $key = '', $pattern = '') { $key = self::variable_prefix($key); if (is_array($list) && is_string($key) && isset($list[ $key ]) ) { // Select the key from the list and escape its content. $key_value = $list[ $key ]; // Define regular expressions for specific value types. if ($pattern === '') { $pattern = '/.*/'; } else { switch ($pattern) { case '_nonce': $pattern = '/^[a-z0-9]{10}$/'; break; case '_page': $pattern = '/^[a-z_]+$/'; break; case '_array': $pattern = '_array'; break; case '_yyyymmdd': $pattern = '/^[0-9]{4}(\-[0-9]{2}) {2}$/'; break; default: $pattern = '/^'.$pattern.'$/'; break; } } // If the request data is an array, then only cast the value. if ($pattern == '_array' && is_array($key_value)) { return (array) $key_value; } // Check the format of the request data with a regex defined above. if (@preg_match($pattern, $key_value)) { return self::escape($key_value); } } return false; } /** * Returns the value stored in a specific index in the global _GET variable, * you can specify a pattern as the second argument to match allowed values. * * @param string $key Name of the index where the requested variable is supposed to be. * @param string $pattern Optional pattern to match allowed values in the requested key. * @return string The value stored in the specified key inside the global _GET variable. */ public static function get($key = '', $pattern = '') { return self::request($_GET, $key, $pattern); } /** * Returns the value stored in a specific index in the global _POST variable, * you can specify a pattern as the second argument to match allowed values. * * @param string $key Name of the index where the requested variable is supposed to be. * @param string $pattern Optional pattern to match allowed values in the requested key. * @return string The value stored in the specified key inside the global _POST variable. */ public static function post($key = '', $pattern = '') { return self::request($_POST, $key, $pattern); } /** * Returns the value stored in a specific index in the global _REQUEST variable, * you can specify a pattern as the second argument to match allowed values. * * @param string $key Name of the index where the requested variable is supposed to be. * @param string $pattern Optional pattern to match allowed values in the requested key. * @return string The value stored in the specified key inside the global _POST variable. */ public static function get_or_post($key = '', $pattern = '') { return self::request($_REQUEST, $key, $pattern); } } /** * Class to process files and folders. * * Here are implemented the functions needed to open, scan, read, create files * and folders using the built-in PHP class SplFileInfo. The SplFileInfo class * offers a high-level object oriented interface to information for an individual * file. */ class SucuriScanFileInfo extends SucuriScan { /** * Define the interface that will be used to execute the file system scans, the * available options are SPL, OpenDir, and Glob (all in lowercase). This can be * configured from the settings page. * * @var string */ public $scan_interface = 'spl'; /** * Whether the list of files that can be ignored from the filesystem scan will * be used to return the directory tree, this should be disabled when scanning a * directory without the need to filter the items in the list. * * @var boolean */ public $ignore_files = true; /** * Whether the list of folders that can be ignored from the filesystem scan will * be used to return the directory tree, this should be disabled when scanning a * path without the need to filter the items in the list. * * @var boolean */ public $ignore_directories = true; /** * A list of ignored directory paths, these folders will be skipped during the * execution of the file system scans, and any sub-directory or files inside * these paths will be ignored too. * * @see SucuriScanFSScanner.get_ignored_directories() * @var array */ private $ignored_directories = array(); /** * Whether the filesystem scanner should run recursively or not. * * @var boolean */ public $run_recursively = true; /** * Whether the directory paths must be skipped or not. * * This is useful to retrieve the full list of resources inside a parent * directory, one case where this option can be set as True is when a folder is * required to be deleted recursively, considering that by default the folders * are ignored and that a folder may be empty some times there could be issues * because the deletion will not reach these resources. * * @var boolean */ public $skip_directories = true; /** * Class constructor. */ public function __construct() { } /** * Retrieve a long text string with signatures of all the files contained * in the main and subdirectories of the folder specified, also the filesize * and md5sum of that file. Some folders and files will be ignored depending * on some rules defined by the developer. * * @param string $directory Parent directory where the filesystem scan will start. * @param boolean $as_array Whether the result of the operation will be returned as an array or string. * @return array List of files in the main and subdirectories of the folder specified. */ public function get_directory_tree_md5($directory = '', $as_array = false) { $project_signatures = ''; $abs_path = rtrim(ABSPATH, DIRECTORY_SEPARATOR); $files = $this->get_directory_tree($directory); if ($as_array) { $project_signatures = array(); } if ($files) { sort($files); foreach ($files as $filepath) { $file_checksum = @md5_file($filepath); $filesize = @filesize($filepath); if ($as_array) { $basename = str_replace($abs_path . DIRECTORY_SEPARATOR, '', $filepath); $project_signatures[ $basename ] = array( 'filepath' => $filepath, 'checksum' => $file_checksum, 'filesize' => $filesize, 'created_at' => @filectime($filepath), 'modified_at' => @filemtime($filepath), ); } else { $filepath = str_replace($abs_path, $abs_path . DIRECTORY_SEPARATOR, $filepath); $project_signatures .= sprintf( "%s%s%s%s\n", $file_checksum, $filesize, chr(32), $filepath ); } } } return $project_signatures; } /** * Retrieve a list with all the files contained in the main and subdirectories * of the folder specified. Some folders and files will be ignored depending * on some rules defined by the developer. * * @param string $directory Parent directory where the filesystem scan will start. * @return array List of files in the main and subdirectories of the folder specified. */ public function get_directory_tree($directory = '') { if (file_exists($directory) && is_dir($directory)) { $tree = array(); // Check whether the ignore scanning feature is enabled or not. if (SucuriScanFSScanner::will_ignore_scanning()) { $this->ignored_directories = SucuriScanFSScanner::get_ignored_directories(); } switch ($this->scan_interface) { case 'spl': if ($this->is_spl_available()) { $tree = $this->get_directory_tree_with_spl($directory); } else { $this->scan_interface = 'opendir'; SucuriScanOption::update_option(':scan_interface', $this->scan_interface); $tree = $this->get_directory_tree($directory); } break; case 'glob': $tree = $this->get_directory_tree_with_glob($directory); break; case 'opendir': $tree = $this->get_directory_tree_with_opendir($directory); break; default: $this->scan_interface = 'spl'; $tree = $this->get_directory_tree($directory); break; } return $tree; } return false; } /** * Find a file under the directory tree specified. * * @param string $filename Name of the folder or file being scanned at the moment. * @param string $directory Directory where the scanner is located at the moment. * @return array List of file paths where the file was found. */ public function find_file($filename = '', $directory = null) { $file_paths = array(); if (is_null($directory) && defined('ABSPATH') ) { $directory = ABSPATH; } if (is_dir($directory)) { $dir_tree = $this->get_directory_tree($directory); foreach ($dir_tree as $filepath) { if (stripos($filepath, $filename) !== false) { $file_paths[] = $filepath; } } } return $file_paths; } /** * Check whether the built-in class SplFileObject is available in the system * or not, it is required to have PHP >= 5.1.0. The SplFileObject class offers * an object oriented interface for a file. * * @link https://www.php.net/manual/en/class.splfileobject.php * * @return boolean Whether the PHP class "SplFileObject" is available or not. */ public static function is_spl_available() { return (bool) class_exists('SplFileObject'); } /** * Retrieve a list with all the files contained in the main and subdirectories * of the folder specified. Some folders and files will be ignored depending * on some rules defined by the developer. * * @link https://www.php.net/manual/en/class.recursivedirectoryiterator.php * @see RecursiveDirectoryIterator extends FilesystemIterator * @see FilesystemIterator extends DirectoryIterator * @see DirectoryIterator extends SplFileInfo * @see SplFileInfo * * @param string $directory Parent directory where the filesystem scan will start. * @return array List of files in the main and subdirectories of the folder specified. */ private function get_directory_tree_with_spl($directory = '') { $files = array(); $filepath = @realpath($directory); $objects = array(); // Exception for directory name must not be empty. if ($filepath === false) { return $files; } if (!class_exists('FilesystemIterator')) { $this->scan_interface = 'opendir'; SucuriScanOption::update_option(':scan_interface', $this->scan_interface); $alternative_tree = $this->get_directory_tree($directory); return $alternative_tree; } try { if ($this->run_recursively) { $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS | FilesystemIterator::UNIX_PATHS; $objects = new RecursiveIteratorIterator( new RecursiveDirectoryIterator($filepath, $flags), RecursiveIteratorIterator::SELF_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD ); } else { $objects = new DirectoryIterator($filepath); } } catch (RuntimeException $exception) { SucuriScanEvent::report_exception($exception); } foreach ($objects as $filepath => $fileinfo) { $filename = $fileinfo->getFilename(); if ($this->ignore_folderpath(null, $filename) || ( $this->skip_directories === true && $fileinfo->isDir() ) ) { continue; } if ($this->run_recursively) { $directory = dirname($filepath); } else { $directory = $fileinfo->getPath(); $filepath = $directory . '/' . $filename; } if ($this->ignore_folderpath($directory, $filename) || $this->ignore_filepath($filename) ) { continue; } $files[] = $filepath; } return $files; } /** * Retrieve a list with all the files contained in the main and subdirectories * of the folder specified. Some folders and files will be ignored depending * on some rules defined by the developer. * * @param string $directory Parent directory where the filesystem scan will start. * @return array List of files in the main and subdirectories of the folder specified. */ private function get_directory_tree_with_glob($directory = '') { $files = array(); $directory_pattern = sprintf('%s/*', rtrim($directory, '/')); $files_found = @glob($directory_pattern); if (is_array($files_found)) { foreach ($files_found as $filepath) { $filepath = @realpath($filepath); $directory = dirname($filepath); $filepath_parts = explode('/', $filepath); $filename = array_pop($filepath_parts); if (is_dir($filepath)) { if ($this->ignore_folderpath($directory, $filename)) { continue; } if ($this->run_recursively) { $sub_files = $this->get_directory_tree_with_glob($filepath); if ($sub_files) { $files = array_merge($files, $sub_files); } } } elseif ($this->ignore_filepath($filename)) { continue; } else { $files[] = $filepath; } } } return $files; } /** * Retrieve a list with all the files contained in the main and subdirectories * of the folder specified. Some folders and files will be ignored depending * on some rules defined by the developer. * * @param string $directory Parent directory where the filesystem scan will start. * @return array List of files in the main and subdirectories of the folder specified. */ private function get_directory_tree_with_opendir($directory = '') { $files = array(); $dh = @opendir($directory); if (!$dh) { return false; } while (($filename = readdir($dh)) !== false) { $filepath = @realpath($directory . '/' . $filename); if ($filepath === false) { continue; } elseif (is_dir($filepath)) { if ($this->ignore_folderpath($directory, $filename)) { continue; } if ($this->run_recursively) { $sub_files = $this->get_directory_tree_with_opendir($filepath); if ($sub_files) { $files = array_merge($files, $sub_files); } } } else { if ($this->ignore_filepath($filename)) { continue; } $files[] = $filepath; } } closedir($dh); return $files; } /** * Skip some specific directories and file paths from the filesystem scan. * * @param string $directory Directory where the scanner is located at the moment. * @param string $filename Name of the folder or file being scanned at the moment. * @return boolean Either TRUE or FALSE representing that the scan should ignore this folder or not. */ private function ignore_folderpath($directory = '', $filename = '') { // Ignoring current and parent folders. if ($filename == '.' || $filename == '..') { return true; } if ($this->ignore_directories) { // Ignore directories based on a common regular expression. $filepath = @realpath($directory . '/' . $filename); $pattern = '/\/wp-content\/(uploads|cache|backup|w3tc)/'; if (preg_match($pattern, $filepath)) { return true; } // Ignore directories specified by the administrator. if (!empty($this->ignored_directories)) { foreach ($this->ignored_directories['directories'] as $ignored_dir) { if (strpos($directory, $ignored_dir) !== false || strpos($filepath, $ignored_dir) !== false ) { return true; } } } } return false; } /** * Skip some specific files from the filesystem scan. * * @param string $filename Name of the folder or file being scanned at the moment. * @return boolean Either TRUE or FALSE representing that the scan should ignore this filename or not. */ private function ignore_filepath($filename = '') { if (!$this->ignore_files) { return false; } // Ignoring backup files from our clean ups. if (strpos($filename, '_sucuribackup.') !== false) { return true; } // Ignore files specified by the administrator. if (!empty($this->ignored_directories)) { foreach ($this->ignored_directories['directories'] as $ignored_dir) { if (strpos($ignored_dir, $filename) !== false) { return true; } } } // Any file maching one of these rules WILL NOT be ignored. if (( strpos($filename, '.php') !== false) || ( strpos($filename, '.htm') !== false) || ( strpos($filename, '.js') !== false) || ( strcmp($filename, '.htaccess') == 0 ) || ( strcmp($filename, 'php.ini') == 0 ) ) { return false; } return true; } /** * Retrieve a list of unique directory paths. * * @param array $dir_tree A list of files under a directory. * @return array A list of unique directory paths. */ public function get_diretories_only($dir_tree = array()) { $dirs = array(); if (is_string($dir_tree)) { $dir_tree = $this->get_directory_tree($dir_tree); } if (is_array($dir_tree) && !empty($dir_tree)) { foreach ($dir_tree as $filepath) { $dir_path = dirname($filepath); if (is_array($dirs) && !in_array($dir_path, $dirs) && array_key_exists('directories', $this->ignored_directories) && is_array($this->ignored_directories['directories']) && !in_array($dir_path, $this->ignored_directories['directories']) ) { $dirs[] = $dir_path; } } } return $dirs; } /** * Returns a list of lines matching the specified pattern in all the files found * in the specified directory, each entry in the list contains the relative path * of the file and the number of the line where the pattern was found, as well * as the string around the pattern in that line. * * @param string $directory Directory where the scanner is located at the moment. * @param string $pattern Text that will be searched inside each file. * @return array Associative list with the file path and line number of the match. */ public function grep_pattern($directory = '', $pattern = '') { $dir_tree = $this->get_directory_tree($directory); $pattern = '/.*' . str_replace('/', '\/', $pattern) . '.*/'; $results = array(); if (class_exists('SplFileObject') && class_exists('RegexIterator') && SucuriScan::is_valid_pattern($pattern) ) { foreach ($dir_tree as $file_path) { try { $fobject = new SplFileObject($file_path); $fstream = new RegexIterator($fobject, $pattern, RegexIterator::MATCH); foreach ($fstream as $key => $ltext) { $lnumber = ( $key + 1 ); $ltext = str_replace("\n", '', $ltext); $fpath = str_replace($directory, '', $file_path); $loutput = sprintf('%s:%d:%s', $fpath, $lnumber, $ltext); $results[] = array( 'file_path' => $file_path, 'relative_path' => $fpath, 'line_number' => $lnumber, 'line_text' => $ltext, 'output' => $loutput, ); } } catch (RuntimeException $exception) { SucuriScanEvent::report_exception($exception); } } } return $results; } /** * Remove a directory recursively. * * @param string $directory Path of the existing directory that will be removed. * @return boolean TRUE if all the files and folder inside the directory were removed. */ public function remove_directory_tree($directory = '') { $dir_tree = $this->get_directory_tree($directory); if ($dir_tree) { $dirs_only = array(); // Include the parent directory as the first entry. $dirs_only[] = $directory; /** * Delete all the files and symbolic links recursively and append the * directories in a list to delete them later when we are sure that all files * were successfully deleted, this is because PHP does not allows to delete non- * empty folders. */ foreach ($dir_tree as $filepath) { if (is_dir($filepath)) { $dirs_only[] = $filepath; } else { @unlink($filepath); } } if (!function_exists('sucuriscan_strlen_diff')) { /** * Evaluates the difference between the length of two strings. * * @param string $a First string of characters that will be measured. * @param string $b Second string of characters that will be measured. * @return integer The difference in length between the two strings. */ function sucuriscan_strlen_diff($a = '', $b = '') { return strlen($b) - strlen($a); } } // Sort the directories by deep level in ascendant order. $dirs_only = array_unique($dirs_only); usort($dirs_only, 'sucuriscan_strlen_diff'); // Delete all the directories starting from the deepest level. foreach ($dirs_only as $dir_path) { @rmdir($dir_path); } return true; } return false; } /** * Return the lines of a file as an array, it will automatically remove the new * line characters from the end of each line, and skip empty lines from the * list. * * @param string $filepath Path to the file. * @return array An array where each element is a line in the file. */ public static function file_lines($filepath = '') { return @file($filepath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } /** * Function to emulate the UNIX tail function by displaying the last X number of * lines in a file. Useful for large files, such as logs, when you want to * process lines in PHP or write lines to a database. * * @param string $file_path Path to the file. * @param integer $lines Number of lines to retrieve from the end of the file. * @param boolean $adaptive Whether the buffer will adapt to a specific number of bytes or not. * @return string Text contained at the end of the file. */ public static function tail_file($file_path = '', $lines = 1, $adaptive = true) { $file = @fopen($file_path, 'rb'); $limit = $lines; if ($file) { fseek($file, -1, SEEK_END); if ($adaptive && $lines < 2) { $buffer = 64; } elseif ($adaptive && $lines < 10) { $buffer = 512; } else { $buffer = 4096; } if (fread($file, 1) != "\n") { $lines -= 1; } $output = ''; $chunk = ''; while (ftell($file) > 0 && $lines >= 0) { $seek = min(ftell($file), $buffer); fseek($file, -$seek, SEEK_CUR); $chunk = fread($file, $seek); $output = $chunk . $output; fseek($file, -mb_strlen($chunk, '8bit'), SEEK_CUR); $lines -= substr_count($chunk, "\n"); } fclose($file); $lines_arr = explode("\n", $output); $lines_count = count($lines_arr); $result = array_slice($lines_arr, ($lines_count - $limit)); return $result; } return false; } /** * Gets inode change time of file. * * @param string $file_path Path to the file. * @return integer Time the file was last changed. */ public static function creation_time($file_path = '') { if (file_exists($file_path)) { clearstatcache($file_path); return filectime($file_path); } return 0; } /** * Gets file modification time. * * @param string $file_path Path to the file. * @return integer Time the file was last modified. */ public static function modification_time($file_path = '') { if (file_exists($file_path)) { clearstatcache($file_path); return filemtime($file_path); } return 0; } /** * Tells whether the filename is a directory, symbolic link, or file. * * @param string $path Path to the file. * @return string Type of resource: dir, link, file. */ public static function get_resource_type($path = '') { if (is_dir($path)) { return 'dir'; } elseif (is_link($path)) { return 'link'; } elseif (is_file($path)) { return 'file'; } else { return 'unknown'; } } } /** * File-based cache library. * * WP_Object_Cache [1] is WordPress' class for caching data which may be * computationally expensive to regenerate, such as the result of complex * database queries. However the object cache is non-persistent. This means that * data stored in the cache resides in memory only and only for the duration of * the request. Cached data will not be stored persistently across page loads * unless of the installation of a 3party persistent caching plugin [2]. * * [1] https://codex.wordpress.org/Class_Reference/WP_Object_Cache * [2] https://codex.wordpress.org/Class_Reference/WP_Object_Cache#Persistent_Caching */ class SucuriScanCache extends SucuriScan { /** * The unique name (or identifier) of the file with the data. * * The file should be located in the same folder where the dynamic data * generated by the plugin is stored, and using the following format [1], it * most be a PHP file because it is expected to have an exit point in the first * line of the file causing it to stop the execution if a unauthorized user * tries to access it directly. * * [1] /public/data/sucuri-DATASTORE.php * * @var null|string */ private $datastore = null; /** * The full path of the datastore file. * * @var string */ private $datastore_path = ''; /** * Whether the datastore file is usable or not. * * This variable will only be TRUE if the datastore file specified exists, is * writable and readable, in any other case it will always be FALSE. * * @var boolean */ private $usable_datastore = false; /** * Class constructor. * * @param string $datastore Unique name (or identifier) of the file with the data. * @return void */ public function __construct($datastore = '', $auto_create = true) { $this->datastore = $datastore; $this->datastore_path = $this->datastoreFilePath($auto_create); $this->usable_datastore = (bool) $this->datastore_path; } /** * Default attributes for every datastore file. * * @return string Default attributes for every datastore file. */ private function datastoreDefaultInfo() { $attrs = array( 'datastore' => $this->datastore, 'created_on' => time(), 'updated_on' => time(), ); return $attrs; } /** * Default content of every datastore file. * * @param array $finfo Rainbow table with the key names and decoded values. * @return string Default content of every datastore file. */ private function datastoreInfo($finfo = array()) { $attrs = $this->datastoreDefaultInfo(); $info_is_available = (bool) isset($finfo['info']); $info = " $attr_value) { if ($info_is_available && $attr_name != 'updated_on' && isset($finfo['info'][$attr_name]) ) { $attr_value = $finfo['info'][$attr_name]; } $info .= sprintf("// %s=%s;\n", $attr_name, $attr_value); } $info .= "exit(0);\n"; $info .= "?>\n"; return $info; } /** * Check if the datastore file exists, if it's writable and readable by the same * user running the server, in case that it does not exists the function will * tries to create it by itself with the right permissions to use it. * * @param boolean $auto_create Automatically create the file if not exists or not. * @return string The full path where the datastore file is located, FALSE otherwise. */ private function datastoreFilePath($auto_create = false) { if (!is_null($this->datastore)) { $folder_path = $this->datastore_folder_path(); $file_path = $folder_path . 'sucuri-' . $this->datastore . '.php'; // Create the datastore parent directory. if (!file_exists($folder_path)) { @mkdir($folder_path, 0755, true); } // Create the datastore file is it does not exists and the folder is writable. if (!file_exists($file_path) && is_writable($folder_path) && $auto_create === true ) { @file_put_contents($file_path, $this->datastoreInfo()); } // Continue the operation after an attemp to create the datastore file. if (file_exists($file_path) && is_writable($file_path) && is_readable($file_path) ) { return $file_path; } } return false; } /** * Define the pattern for the regular expression that will check if a cache key * is valid or not, and also will help the function that parses the file to see * which characters of each line are the keys are which are the values. * * @param string $action Either "valid", "content", or "header". * @return string Cache key pattern. */ private function keyPattern($action = 'valid') { if ($action == 'valid') { return '/^([0-9a-zA-Z_]+)$/'; } elseif ($action == 'content') { return '/^([0-9a-zA-Z_]+):(.+)/'; } elseif ($action == 'header') { return '/^\/\/ ([a-z_]+)=(.*);$/'; } return false; } /** * Check whether a key has a valid name or not. * * @param string $key Unique name to identify the data in the datastore file. * @return boolean TRUE if the format of the key name is valid, FALSE otherwise. */ private function validKeyName($key = '') { return (bool) @preg_match($this->keyPattern('valid'), $key); } /** * Update the content of the datastore file with the new entries. * * @param array $finfo Rainbow table with the key names and decoded values. * @return boolean TRUE if the operation finished successfully, FALSE otherwise. */ private function saveNewEntries($finfo = array()) { $data_string = $this->datastoreInfo($finfo); if (!empty($finfo)) { foreach ($finfo['entries'] as $key => $data) { if ($this->validKeyName($key)) { $data = json_encode($data); $data_string .= sprintf("%s:%s\n", $key, $data); } } } return (bool) @file_put_contents($this->datastore_path, $data_string); } /** * Retrieve and parse the datastore file, and generate a rainbow table with the * key names and decoded data as the values of each entry. Duplicated key names * will be removed automatically while adding the keys to the array and their * values will correspond to the first occurrence found in the file. * * @param boolean $assoc When TRUE returned objects will be converted into associative arrays. * @return array Rainbow table with the key names and decoded values. */ private function getDatastoreContent($assoc = false) { $data_object = array( 'info' => array(), 'entries' => array(), ); if ($this->usable_datastore) { $data_lines = SucuriScanFileInfo::file_lines($this->datastore_path); if (!empty($data_lines)) { foreach ($data_lines as $line) { if (preg_match($this->keyPattern('header'), $line, $match)) { $data_object['info'][ $match[1] ] = $match[2]; } elseif (preg_match($this->keyPattern('content'), $line, $match)) { if ($this->validKeyName($match[1]) && !array_key_exists($match[1], $data_object) ) { $data_object['entries'][$match[1]] = @json_decode($match[2], $assoc); } } } } } return $data_object; } /** * Retrieve the headers of the datastore file. * * Each datastore file has a list of attributes at the beginning of the it with * information like the creation and last update time. If you are extending the * functionality of these headers please refer to the function that contains the * default attributes and their values [1]. * * [1] SucuriScanCache::datastoreDefaultInfo() * * @return array Default content of every datastore file. */ public function getDatastoreInfo() { $finfo = $this->getDatastoreContent(); if (!empty($finfo['info'])) { return $finfo['info']; } return false; } /** * Get the total number of unique entries in the datastore file. * * @param array $finfo Rainbow table with the key names and decoded values. * @return integer Total number of unique entries found in the datastore file. */ public function getCount($finfo = null) { if (!is_array($finfo)) { $finfo = $this->getDatastoreContent(); } return count($finfo['entries']); } /** * Check whether the last update time of the datastore file has surpassed the * lifetime specified for a key name. This function is the only one related with * the caching process, any others besides this are just methods used to handle * the data inside those files. * * @param integer $lifetime Life time of the key in the datastore file. * @param array $finfo Rainbow table with the key names and decoded values. * @return boolean TRUE if the life time of the data has expired, FALSE otherwise. */ public function dataHasExpired($lifetime = 0, $finfo = null) { if (is_null($finfo)) { $finfo = $this->getDatastoreContent(); } if ($lifetime > 0 && !empty($finfo['info'])) { $diff_time = time() - intval($finfo['info']['updated_on']); if ($diff_time >= $lifetime) { return true; } } return false; } /** * Execute the action using the key name and data specified. * * @param string $key Unique name to identify the data in the datastore file. * @param string $data Mixed data stored in the datastore file following the unique key name. * @param string $action Either add, set, get, or delete. * @param integer $lifetime Life time of the key in the datastore file. * @param boolean $assoc When TRUE returned objects will be converted into associative arrays. * @return boolean TRUE if the operation finished successfully, FALSE otherwise. */ private function handleKeyData($key = '', $data = null, $action = '', $lifetime = 0, $assoc = false) { if ($this->validKeyName($key) && $this->usable_datastore ) { $finfo = $this->getDatastoreContent($assoc); if ($action == 'set' || $action == 'add') { $finfo['entries'][$key] = $data; return $this->saveNewEntries($finfo); } elseif ($action == 'get') { if (!$this->dataHasExpired($lifetime, $finfo) && array_key_exists($key, $finfo['entries']) ) { return $finfo['entries'][$key]; } } elseif ($action == 'get_all') { if (!$this->dataHasExpired($lifetime, $finfo)) { return $finfo['entries']; } } elseif ($action == 'exists') { if (!$this->dataHasExpired($lifetime, $finfo) && array_key_exists($key, $finfo['entries']) ) { return true; } } elseif ($action == 'delete') { unset($finfo['entries'][$key]); return $this->saveNewEntries($finfo); } } return false; } /** * JSON-encode the data and store it in the datastore file identifying it with * the key name, the data will be added to the file even if the key is * duplicated, but when getting the value of the same key later again it will * return only the value of the first occurrence found in the file. * * @param string $key Unique name to identify the data in the datastore file. * @param string $data Mixed data stored in the datastore file following the unique key name. * @return boolean TRUE if the data was stored successfully, FALSE otherwise. */ public function add($key = '', $data = '') { return $this->handleKeyData($key, $data, 'add'); } /** * Update the data of all the key names matching the one specified. * * @param string $key Unique name to identify the data in the datastore file. * @param string $data Mixed data stored in the datastore file following the unique key name. * @return boolean TRUE if the data was stored successfully, FALSE otherwise. */ public function set($key = '', $data = '') { return $this->handleKeyData($key, $data, 'set'); } /** * Retrieve the first occurrence of the key found in the datastore file. * * @param string $key Unique name to identify the data in the datastore file. * @param integer $lifetime Life time of the key in the datastore file. * @param boolean $assoc When TRUE returned objects will be converted into associative arrays. * @return string Mixed data stored in the datastore file following the unique key name. */ public function get($key = '', $lifetime = 0, $assoc = false) { $assoc = ($assoc == 'array' ? true : $assoc); return $this->handleKeyData($key, null, 'get', $lifetime, $assoc); } /** * Retrieve all the entries found in the datastore file. * * @param integer $lifetime Life time of the key in the datastore file. * @param boolean $assoc When TRUE returned objects will be converted into associative arrays. * @return string Mixed data stored in the datastore file following the unique key name. */ public function getAll($lifetime = 0, $assoc = false) { $assoc = ($assoc == 'array' ? true : $assoc); return $this->handleKeyData('temp', null, 'get_all', $lifetime, $assoc); } /** * Check whether a specific key exists in the datastore file. * * @param string $key Unique name to identify the data in the datastore file. * @return boolean TRUE if the key exists in the datastore file, FALSE otherwise. */ public function exists($key = '') { return $this->handleKeyData($key, null, 'exists'); } /** * Delete any entry from the datastore file matching the key name specified. * * @param string $key Unique name to identify the data in the datastore file. * @return boolean TRUE if the entries were removed, FALSE otherwise. */ public function delete($key = '') { return $this->handleKeyData($key, null, 'delete'); } /** * Remove all the entries from the datastore file. * * @return boolean Always TRUE unless the datastore file is not writable. */ public function flush() { $finfo = $this->getDatastoreContent(); return $this->saveNewEntries($finfo); } } /** * Plugin options handler. * * Options are pieces of data that WordPress uses to store various preferences * and configuration settings. Listed below are the options, along with some of * the default values from the current WordPress install. By using the * appropriate function, options can be added, changed, removed, and retrieved, * from the wp_options table. * * The Options API is a simple and standardized way of storing data in the * database. The API makes it easy to create, access, update, and delete * options. All the data is stored in the wp_options table under a given custom * name. This page contains the technical documentation needed to use the * Options API. A list of default options can be found in the Option Reference. * * Note that the _site_ functions are essentially the same as their * counterparts. The only differences occur for WP Multisite, when the options * apply network-wide and the data is stored in the wp_sitemeta table under the * given custom name. * * @see https://codex.wordpress.org/Option_Reference * @see https://codex.wordpress.org/Options_API */ class SucuriScanOption extends SucuriScanRequest { /** * Default values for all the plugin's options. * * @return array Default values for all the plugin's options. */ public static function get_default_option_values() { $defaults = array( 'sucuriscan_account' => '', 'sucuriscan_addr_header' => 'HTTP_X_SUCURI_CLIENTIP', 'sucuriscan_ads_visibility' => 'enabled', 'sucuriscan_api_key' => false, 'sucuriscan_api_service' => 'enabled', 'sucuriscan_audit_report' => 'disabled', 'sucuriscan_cloudproxy_apikey' => '', 'sucuriscan_collect_wrong_passwords' => 'disabled', 'sucuriscan_comment_monitor' => 'disabled', 'sucuriscan_datastore_path' => '', 'sucuriscan_dismiss_setup' => 'disabled', 'sucuriscan_dns_lookups' => 'enabled', 'sucuriscan_email_subject' => 'Sucuri Alert, :domain, :event', 'sucuriscan_emails_per_hour' => 5, 'sucuriscan_emails_sent' => 0, 'sucuriscan_errorlogs_limit' => 30, 'sucuriscan_fs_scanner' => 'enabled', 'sucuriscan_heartbeat' => 'enabled', 'sucuriscan_heartbeat_autostart' => 'enabled', 'sucuriscan_heartbeat_interval' => 'standard', 'sucuriscan_heartbeat_pulse' => 15, 'sucuriscan_ignore_scanning' => 'disabled', 'sucuriscan_ignored_events' => '', 'sucuriscan_last_email_at' => time(), 'sucuriscan_lastlogin_redirection' => 'enabled', 'sucuriscan_logs4report' => 500, 'sucuriscan_maximum_failed_logins' => 30, 'sucuriscan_notify_bruteforce_attack' => 'disabled', 'sucuriscan_notify_failed_login' => 'enabled', 'sucuriscan_notify_plugin_activated' => 'disabled', 'sucuriscan_notify_plugin_change' => 'disabled', 'sucuriscan_notify_plugin_deactivated' => 'disabled', 'sucuriscan_notify_plugin_deleted' => 'disabled', 'sucuriscan_notify_plugin_installed' => 'disabled', 'sucuriscan_notify_plugin_updated' => 'disabled', 'sucuriscan_notify_post_publication' => 'enabled', 'sucuriscan_notify_scan_checksums' => 'disabled', 'sucuriscan_notify_settings_updated' => 'disabled', 'sucuriscan_notify_success_login' => 'enabled', 'sucuriscan_notify_theme_activated' => 'disabled', 'sucuriscan_notify_theme_deleted' => 'disabled', 'sucuriscan_notify_theme_editor' => 'enabled', 'sucuriscan_notify_theme_installed' => 'disabled', 'sucuriscan_notify_theme_updated' => 'disabled', 'sucuriscan_notify_to' => '', 'sucuriscan_notify_user_registration' => 'disabled', 'sucuriscan_notify_website_updated' => 'disabled', 'sucuriscan_notify_widget_added' => 'disabled', 'sucuriscan_notify_widget_deleted' => 'disabled', 'sucuriscan_parse_errorlogs' => 'enabled', 'sucuriscan_prettify_mails' => 'disabled', 'sucuriscan_request_timeout' => 5, 'sucuriscan_revproxy' => 'disabled', 'sucuriscan_runtime' => 0, 'sucuriscan_scan_checksums' => 'enabled', 'sucuriscan_scan_errorlogs' => 'disabled', 'sucuriscan_scan_frequency' => 'twicedaily', 'sucuriscan_scan_interface' => 'spl', 'sucuriscan_selfhosting_fpath' => '', 'sucuriscan_selfhosting_monitor' => 'disabled', 'sucuriscan_site_version' => '0.0', 'sucuriscan_sitecheck_counter' => 0, 'sucuriscan_sitecheck_scanner' => 'enabled', 'sucuriscan_use_wpmail' => 'enabled', 'sucuriscan_verify_ssl_cert' => 'false', 'sucuriscan_xhr_monitor' => 'disabled', ); return $defaults; } /** * Name of all valid plugin's options. * * @return array Name of all valid plugin's options. */ public static function get_default_option_names() { $options = self::get_default_option_values(); $names = array_keys($options); return $names; } /** * Check whether an option is used in the plugin or not. * * @param string $option_name Name of the option that will be checked. * @return boolean True if the option is part of the plugin, False otherwise. */ public static function is_valid_plugin_option($option_name = '') { $valid_options = self::get_default_option_names(); $is_valid_option = (bool) array_key_exists($option_name, $valid_options); return $is_valid_option; } /** * Retrieve the default values for some specific options. * * @param string|array $settings Either an array that will be complemented or a string with the name of the option. * @return string|array The default values for the specified options. */ public static function get_default_options($settings = '') { $default_options = self::get_default_option_values(); // Use framework built-in function. if (function_exists('get_option')) { $admin_email = get_option('admin_email'); $default_options['sucuriscan_account'] = $admin_email; $default_options['sucuriscan_notify_to'] = $admin_email; } if (is_array($settings)) { foreach ($default_options as $option_name => $option_value) { if (!isset($settings[ $option_name ])) { $settings[ $option_name ] = $option_value; } } return $settings; } if (is_string($settings) && !empty($settings) && array_key_exists($settings, $default_options) ) { return $default_options[ $settings ]; } return false; } /** * Alias function for the method Common::SucuriScan_Get_Options() * * This function search the specified option in the database, not only the options * set by the plugin but all the options set for the site. If the value retrieved * is FALSE the method tries to search for a default value. * * To facilitate the development, you can prefix the name of the key in the * request (when accessing it) with a single colon, this function will * automatically replace that character with the unique identifier of the * plugin. * * @see https://codex.wordpress.org/Function_Reference/get_option * * @param string $option_name Optional parameter that you can use to filter the results to one option. * @return string The value (or default value) of the option specified. */ public static function get_option($option_name = '') { if (function_exists('update_option')) { $option_name = self::variable_prefix($option_name); $option_value = get_option($option_name); if ($option_value === false && preg_match('/^sucuriscan_/', $option_name)) { $option_value = self::get_default_options($option_name); } return $option_value; } return false; } /** * Update the value of an database' option. * * Use the function to update a named option/value pair to the options database * table. The option name value is escaped with a special database method before * the insert SQL statement but not the option value, this value should always * be properly sanitized. * * @see https://codex.wordpress.org/Function_Reference/update_option * * @param string $option_name Name of the option to update which must not exceed 64 characters. * @param string $option_value The new value for the option, can be an integer, string, array, or object. * @return boolean True if option value has changed, false if not or if update failed. */ public static function update_option($option_name = '', $option_value = '') { if (function_exists('update_option')) { $option_name = self::variable_prefix($option_name); return update_option($option_name, $option_value); } return false; } /** * Remove an option from the database. * * A safe way of removing a named option/value pair from the options database table. * * @see https://codex.wordpress.org/Function_Reference/delete_option * * @param string $option_name Name of the option to be deleted. * @return boolean True, if option is successfully deleted. False on failure, or option does not exist. */ public static function delete_option($option_name = '') { if (function_exists('delete_option')) { $option_name = self::variable_prefix($option_name); return delete_option($option_name); } return false; } /** * Check whether a setting is enabled or not. * * @param string $option Name of the option to be deleted. * @return boolean True if the option is enabled, false otherwise. */ public static function is_enabled($option = '') { return (bool) ( self::get_option($option) === 'enabled' ); } /** * Check whether a setting is disabled or not. * * @param string $option Name of the option to be deleted. * @return boolean True if the option is disabled, false otherwise. */ public static function is_disabled($option = '') { return (bool) ( self::get_option($option) === 'disabled' ); } /** * Delete all the plugin options from the database. * * @return void */ public static function delete_plugin_options() { global $wpdb; $options = $wpdb->get_results( "SELECT * FROM {$wpdb->options} WHERE option_name LIKE 'sucuriscan%' ORDER BY option_id ASC" ); foreach ($options as $option) { self::delete_option($option->option_name); } } /** * Retrieve all the options stored by Wordpress in the database. The options * containing the word "transient" are excluded from the results, this function * is compatible with multisite instances. * * @return array All the options stored by Wordpress in the database, except the transient options. */ public static function get_site_options() { global $wpdb; $settings = array(); $results = $wpdb->get_results( "SELECT * FROM {$wpdb->options} WHERE option_name NOT LIKE '%_transient_%' ORDER BY option_id ASC" ); foreach ($results as $row) { $settings[ $row->option_name ] = $row->option_value; } return $settings; } /** * Check what Wordpress options were changed comparing the values in the database * with the values sent through a simple request using a GET or POST method. * * @param array $request The content of the global variable GET or POST considering SERVER[REQUEST_METHOD]. * @return array A list of all the options that were changes through this request. */ public static function what_options_were_changed($request = array()) { $options_changed = array( 'original' => array(), 'changed' => array() ); $site_options = self::get_site_options(); foreach ($request as $req_name => $req_value) { if (array_key_exists($req_name, $site_options) && $site_options[ $req_name ] != $req_value ) { $options_changed['original'][ $req_name ] = $site_options[ $req_name ]; $options_changed['changed'][ $req_name ] = $req_value; } } return $options_changed; } /** * Check the nonce comming from any of the settings pages. * * @return boolean TRUE if the nonce is valid, FALSE otherwise. */ public static function check_options_nonce() { // Create the option_page value if permalink submission. if (!isset($_POST['option_page']) && isset($_POST['permalink_structure']) ) { $_POST['option_page'] = 'permalink'; } // Check if the option_page has an allowed value. if ($option_page = SucuriScanRequest::post('option_page')) { $nonce = '_wpnonce'; $action = ''; switch ($option_page) { case 'general': /* no_break */ case 'writing': /* no_break */ case 'reading': /* no_break */ case 'discussion': /* no_break */ case 'media': /* no_break */ case 'options': /* no_break */ $action = $option_page . '-options'; break; case 'permalink': $action = 'update-permalink'; break; } // Check the nonce validity. if (!empty($action) && isset($_REQUEST[ $nonce ]) && wp_verify_nonce($_REQUEST[ $nonce ], $action) ) { return true; } } return false; } /** * Get a list of the post types ignored to receive email notifications when the * "new site content" hook is triggered. * * @return array List of ignored posts-types to send notifications. */ public static function get_ignored_events() { $post_types = self::get_option(':ignored_events'); $post_types_arr = false; // Encode (old) serialized data into JSON. if (self::is_serialized($post_types)) { $post_types_arr = @unserialize($post_types); $post_types_fix = json_encode($post_types_arr); self::update_option(':ignored_events', $post_types_fix); return $post_types_arr; } // Decode JSON-encoded data as an array. elseif (preg_match('/^\{.+\}$/', $post_types)) { $post_types_arr = @json_decode($post_types, true); } if (!is_array($post_types_arr)) { $post_types_arr = array(); } return $post_types_arr; } /** * Add a new post type to the list of ignored events to send notifications. * * @param string $event_name Unique post-type name. * @return boolean Whether the event was ignored or not. */ public static function add_ignored_event($event_name = '') { if (function_exists('get_post_types')) { $post_types = get_post_types(); // Check if the event is a registered post-type. if (array_key_exists($event_name, $post_types)) { $ignored_events = self::get_ignored_events(); // Check if the event is not ignored already. if (!array_key_exists($event_name, $ignored_events)) { $ignored_events[ $event_name ] = time(); $saved = self::update_option(':ignored_events', json_encode($ignored_events)); return $saved; } } } return false; } /** * Remove a post type from the list of ignored events to send notifications. * * @param string $event_name Unique post-type name. * @return boolean Whether the event was removed from the list or not. */ public static function remove_ignored_event($event_name = '') { $ignored_events = self::get_ignored_events(); if (array_key_exists($event_name, $ignored_events)) { unset($ignored_events[ $event_name ]); $saved = self::update_option(':ignored_events', json_encode($ignored_events)); return $saved; } return false; } /** * Check whether an event is being ignored to send notifications or not. * * @param string $event_name Unique post-type name. * @return boolean Whether an event is being ignored or not. */ public static function is_ignored_event($event_name = '') { $event_name = strtolower($event_name); $ignored_events = self::get_ignored_events(); if (array_key_exists($event_name, $ignored_events)) { return true; } return false; } /** * Retrieve a list of basic security keys and check whether their values were * randomized correctly. * * @return array Array with three keys: good, missing, bad. */ public static function get_security_keys() { $response = array( 'good' => array(), 'missing' => array(), 'bad' => array(), ); $key_names = array( 'AUTH_KEY', 'AUTH_SALT', 'LOGGED_IN_KEY', 'LOGGED_IN_SALT', 'NONCE_KEY', 'NONCE_SALT', 'SECURE_AUTH_KEY', 'SECURE_AUTH_SALT', ); foreach ($key_names as $key_name) { if (defined($key_name)) { $key_value = constant($key_name); if (stripos($key_value, 'unique phrase') !== false) { $response['bad'][ $key_name ] = $key_value; } else { $response['good'][ $key_name ] = $key_value; } } else { $response['missing'][ $key_name ] = false; } } return $response; } /** * Change the reverse proxy setting. * * When enabled this option forces the plugin to override the value of the * global IP address variable from the HTTP header selected by the user from the * settings. Note that this may also be automatically enabled when the firewall * page is activated as it assumes that the proxy is creating a custom HTTP * header for the real IP. * * @param string $header Valid HTTP header name. * @return void */ public static function setRevProxy($action = 'disable') { $action_d = $action . 'd'; $message = 'Reverse proxy support was ' . $action_d . ''; self::update_option(':revproxy', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } /** * Change the HTTP header to retrieve the real IP address. * * @param string $header Valid HTTP header name. * @return void */ public static function setAddrHeader($header = 'REMOTE_ADDR') { $header = strtoupper($header); $allowed = SucuriScan::allowedHttpHeaders(true); if (array_key_exists($header, $allowed)) { $message = 'HTTP header was set to ' . $header . ''; self::update_option(':addr_header', $header); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('HTTP header is not in the allowed list'); } } } /** * System events, reports and actions. * * An event is an action or occurrence detected by the program that may be * handled by the program. Typically events are handled synchronously with the * program flow, that is, the program has one or more dedicated places where * events are handled, frequently an event loop. Typical sources of events * include the user; another source is a hardware device such as a timer. Any * program can trigger its own custom set of events as well, e.g. to communicate * the completion of a task. A computer program that changes its behavior in * response to events is said to be event-driven, often with the goal of being * interactive. * * @see https://en.wikipedia.org/wiki/Event_(computing) */ class SucuriScanEvent extends SucuriScan { /** * Schedule the task to run the first filesystem scan. * * @return void */ public static function schedule_task() { $task_name = 'sucuriscan_scheduled_scan'; if (!wp_next_scheduled($task_name)) { wp_schedule_event(time() + 10, 'twicedaily', $task_name); } wp_schedule_single_event(time() + 300, $task_name); } /** * Checks last time we ran to avoid running twice (or too often). * * @param integer $runtime When the filesystem scan must be scheduled to run. * @param boolean $force_scan Whether the filesystem scan was forced by an administrator user or not. * @return boolean Either TRUE or FALSE representing the success or fail of the operation respectively. */ private static function verify_run($runtime = 0, $force_scan = false) { $option_name = ':runtime'; $last_run = SucuriScanOption::get_option($option_name); $current_time = time(); // The filesystem scanner can be disabled from the settings page. if (SucuriScanOption::is_disabled(':fs_scanner') && $force_scan === false ) { return false; } // Check if the last runtime is too near the current time. if ($last_run && !$force_scan) { $runtime_diff = $current_time - $runtime; if ($last_run >= $runtime_diff) { return false; } } SucuriScanOption::update_option($option_name, $current_time); return true; } /** * Check whether the current WordPress version must be reported to the API * service or not, this is to avoid duplicated information in the audit logs. * * @return boolean TRUE if the current WordPress version must be reported, FALSE otherwise. */ private static function report_site_version() { $option_name = ':site_version'; $reported_version = SucuriScanOption::get_option($option_name); $wp_version = self::site_version(); if ($reported_version != $wp_version) { SucuriScanEvent::report_info_event('WordPress version detected ' . $wp_version); SucuriScanOption::update_option($option_name, $wp_version); return true; } return false; } /** * Gather all the checksums (aka. file hashes) of this site, send them, and * analyze them using the Sucuri Monitoring service, this will generate the * audit logs for this site and be part of the integrity checks. * * @param boolean $force_scan Whether the filesystem scan was forced by an administrator user or not. * @return boolean TRUE if the filesystem scan was successful, FALSE otherwise. */ public static function filesystem_scan($force_scan = false) { $minimum_runtime = SUCURISCAN_MINIMUM_RUNTIME; if (self::verify_run($minimum_runtime, $force_scan) && class_exists('SucuriScanFileInfo') && SucuriScanAPI::getPluginKey() ) { self::report_site_version(); $file_info = new SucuriScanFileInfo(); $file_info->scan_interface = SucuriScanOption::get_option(':scan_interface'); $signatures = $file_info->get_directory_tree_md5(ABSPATH); if ($signatures) { $hashes_sent = SucuriScanAPI::sendHashes($signatures); if ($hashes_sent) { SucuriScanOption::update_option(':runtime', time()); return true; } else { SucuriScanInterface::error('The file hashes could not be stored.'); } } else { SucuriScanInterface::error('The file hashes could not be retrieved, the filesystem scan failed.'); } } return false; } /** * Generates an audit event log (to be sent later). * * @param integer $severity Importance of the event that will be reported, values from one to five. * @param string $location In which part of the system was the event triggered. * @param string $message The explanation of the event. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean TRUE if the event was logged in the monitoring service, FALSE otherwise. */ private static function report_event($severity = 0, $location = '', $message = '', $internal = false) { $user = wp_get_current_user(); $username = false; $current_time = date('Y-m-d H:i:s'); $remote_ip = self::get_remote_addr(); // Identify current user in session. if ($user instanceof WP_User && isset($user->user_login) && !empty($user->user_login) ) { if ($user->user_login != $user->display_name) { $username = sprintf("\x20%s (%s),", $user->display_name, $user->user_login); } else { $username = sprintf("\x20%s,", $user->user_login); } } // Fixing severity value. $severity = (int) $severity; // Convert the severity number into a readable string. switch ($severity) { case 0: $severity_name = 'Debug'; break; case 1: $severity_name = 'Notice'; break; case 2: $severity_name = 'Info'; break; case 3: $severity_name = 'Warning'; break; case 4: $severity_name = 'Error'; break; case 5: $severity_name = 'Critical'; break; default: $severity_name = 'Info'; break; } // Mark the event as internal if necessary. if ($internal === true) { $severity_name = '@' . $severity_name; } // Clear event message. $message = strip_tags($message); $message = str_replace("\r", '', $message); $message = str_replace("\n", '', $message); $message = str_replace("\t", '', $message); $event_message = sprintf( '%s:%s %s; %s', $severity_name, $username, $remote_ip, $message ); return self::sendEventLog($event_message); } public static function sendEventLog($event_message = '') { /** * Self-hosted Monitor. * * Send a copy of the event log to a local file, this will allow the * administrator of the server to integrate the events monitored by the plugin * with a 3rd-party service like OSSEC or similar. More information in the Self- * Hosting panel located in the plugin' settings page. */ if (function_exists('sucuriscan_selfhosting_fpath')) { $monitor_fpath = sucuriscan_selfhosting_fpath(); if ($monitor_fpath !== false) { $local_event = sprintf( "%s WordPressAudit %s %s : %s\n", date('Y-m-d H:i:s'), SucuriScan::get_top_level_domain(), SucuriScanOption::get_option(':account'), $event_message ); @file_put_contents( $monitor_fpath, $local_event, FILE_APPEND ); } } if (SucuriScanOption::is_enabled(':api_service')) { SucuriScanAPI::sendLogsFromQueue(); return SucuriScanAPI::sendLog($event_message); } return true; } /** * Reports a debug event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_debug_event($message = '', $internal = false) { return self::report_event(0, 'core', $message, $internal); } /** * Reports a notice event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_notice_event($message = '', $internal = false) { return self::report_event(1, 'core', $message, $internal); } /** * Reports a info event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_info_event($message = '', $internal = false) { return self::report_event(2, 'core', $message, $internal); } /** * Reports a warning event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_warning_event($message = '', $internal = false) { return self::report_event(3, 'core', $message, $internal); } /** * Reports a error event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_error_event($message = '', $internal = false) { return self::report_event(4, 'core', $message, $internal); } /** * Reports a critical event on the website. * * @param string $message Text witht the explanation of the event or action performed. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_critical_event($message = '', $internal = false) { return self::report_event(5, 'core', $message, $internal); } /** * Reports a notice or error event for enable and disable actions. * * @param string $message Text witht the explanation of the event or action performed. * @param string $action An optional text, hopefully either enabled or disabled. * @param boolean $internal Whether the event will be publicly visible or not. * @return boolean Either true or false depending on the success of the operation. */ public static function report_auto_event($message = '', $action = '', $internal = false) { $message = strip_tags($message); // Auto-detect the action performed, either enabled or disabled. if (preg_match('/( was )?(enabled|disabled)$/', $message, $match)) { $action = $match[2]; } // Report the correct event for the action performed. if ($action == 'enabled') { return self::report_notice_event($message, $internal); } elseif ($action == 'disabled') { return self::report_error_event($message, $internal); } else { return self::report_info_event($message, $internal); } } /** * Reports an esception on the code. * * @param Exception $exception A valid exception object of any type. * @return boolean Whether the report was filled correctly or not. */ public static function report_exception($exception = false) { if ($exception) { $e_trace = $exception->getTrace(); $multiple_entries = array(); foreach ($e_trace as $e_child) { $e_file = array_key_exists('file', $e_child) ? basename($e_child['file']) : '[internal function]'; $e_line = array_key_exists('line', $e_child) ? basename($e_child['line']) : '0'; $e_function = array_key_exists('class', $e_child) ? $e_child['class'] . $e_child['type'] . $e_child['function'] : $e_child['function']; $multiple_entries[] = sprintf( '%s(%s): %s', $e_file, $e_line, $e_function ); } $report_message = sprintf( '%s: (multiple entries): %s', $exception->getMessage(), @implode(',', $multiple_entries) ); return self::report_debug_event($report_message); } return false; } /** * Send a notification to the administrator of the specified events, only if * the administrator accepted to receive alerts for this type of events. * * @param string $event The name of the event that was triggered. * @param string $content Body of the email that will be sent to the administrator. * @return void */ public static function notify_event($event = '', $content = '') { $notify = SucuriScanOption::get_option(':notify_' . $event); $email = SucuriScanOption::get_option(':notify_to'); $email_params = array(); if (self::is_trusted_ip()) { $notify = 'disabled'; } if ($notify == 'enabled') { if ($event == 'post_publication') { $event = 'post_update'; } elseif ($event == 'failed_login') { $settings_url = SucuriScanTemplate::getUrl('settings'); $content .= "
        \n
        \nExplanation: Someone failed to login to your " . "site. If you are getting too many of these messages, it is likely your " . "site is under a password guessing brute-force attack [1]. You can disable " . "the failed login alerts from here [2]. Alternatively, you can consider " . "to install a firewall between your website and your visitors to filter " . "out these and other attacks, take a look at Sucuri CloudProxy [3]." . "
        \n
        \n" . "[1] " . "https://kb.sucuri.net/definitions/attacks/brute-force/password-guessing
        \n" . "[2] " . $settings_url . "
        \n" . "[3] " . "https://sucuri.net/website-firewall/
        \n"; } elseif ($event == 'bruteforce_attack') { // Send a notification even if the limit of emails per hour was reached. $email_params['Force'] = true; } elseif ($event == 'scan_checksums') { $event = 'core_integrity_checks'; $email_params['Force'] = true; } $title = str_replace('_', "\x20", $event); $mail_sent = SucuriScanMail::send_mail( $email, $title, $content, $email_params ); return $mail_sent; } return false; } /** * Check whether an IP address is being trusted or not. * * @param string $remote_addr The supposed ip address that will be checked. * @return boolean TRUE if the IP address of the user is trusted, FALSE otherwise. */ private static function is_trusted_ip($remote_addr = '') { $cache = new SucuriScanCache('trustip', false); $trusted_ips = $cache->getAll(); if (!$remote_addr) { $remote_addr = SucuriScan::get_remote_addr(); } $addr_md5 = md5($remote_addr); // Check if the CIDR in range 32 of this IP is trusted. if (is_array($trusted_ips) && !empty($trusted_ips) && array_key_exists($addr_md5, $trusted_ips) ) { return true; } if ($trusted_ips) { foreach ($trusted_ips as $cache_key => $ip_info) { $ip_parts = explode('.', $ip_info->remote_addr); $ip_pattern = false; // Generate the regular expression for a specific CIDR range. switch ($ip_info->cidr_range) { case 24: $ip_pattern = sprintf('/^%d\.%d\.%d\.[0-9]{1,3}$/', $ip_parts[0], $ip_parts[1], $ip_parts[2]); break; case 16: $ip_pattern = sprintf('/^%d\.%d(\.[0-9]{1,3}) {2}$/', $ip_parts[0], $ip_parts[1]); break; case 8: $ip_pattern = sprintf('/^%d(\.[0-9]{1,3}) {3}$/', $ip_parts[0]); break; } if ($ip_pattern && preg_match($ip_pattern, $remote_addr)) { return true; } } } return false; } /** * Generate and set a new password for a specific user not in session. * * @param integer $user_id The user identifier that will be changed, this must be different than the user in session. * @return boolean Either TRUE or FALSE in case of success or error respectively. */ public static function set_new_password($user_id = 0) { $user_id = intval($user_id); if ($user_id > 0 && function_exists('wp_generate_password')) { $user = get_userdata($user_id); if ($user instanceof WP_User) { $website = SucuriScan::get_domain(); $user_login = $user->user_login; $display_name = $user->display_name; $new_password = wp_generate_password(15, true, false); $message = SucuriScanTemplate::getSection('notification-resetpwd', array( 'ResetPassword.UserName' => $user_login, 'ResetPassword.DisplayName' => $display_name, 'ResetPassword.Password' => $new_password, 'ResetPassword.Website' => $website, )); $data_set = array( 'Force' => true ); // Skip limit for emails per hour. SucuriScanMail::send_mail($user->user_email, 'Password changed', $message, $data_set); wp_set_password($new_password, $user_id); return true; } } return false; } /** * Modify the WordPress configuration file and change the keys that were defined * by a new random-generated list of keys retrieved from the official WordPress * API. The result of the operation will be either FALSE in case of error, or an * array containing multiple indexes explaining the modification, among them you * will find the old and new keys. * * @return false|array Either FALSE in case of error, or an array with the old and new keys. */ public static function set_new_config_keys() { $new_wpconfig = ''; $config_path = self::get_wpconfig_path(); if ($config_path) { $pattern = self::secret_key_pattern(); $define_tpl = "define('%s',%s'%s');"; $config_lines = SucuriScanFileInfo::file_lines($config_path); $new_keys = SucuriScanAPI::getNewSecretKeys(); $old_keys = array(); $old_keys_string = ''; $new_keys_string = ''; foreach ((array) $config_lines as $config_line) { if (preg_match($pattern, $config_line, $match)) { $key_name = $match[1]; if (array_key_exists($key_name, $new_keys)) { $white_spaces = $match[2]; $old_keys[ $key_name ] = $match[3]; $config_line = sprintf($define_tpl, $key_name, $white_spaces, $new_keys[ $key_name ]); $old_keys_string .= sprintf($define_tpl, $key_name, $white_spaces, $old_keys[ $key_name ]) . "\n"; $new_keys_string .= $config_line . "\n"; } } $new_wpconfig .= $config_line . "\n"; } $response = array( 'updated' => is_writable($config_path), 'old_keys' => $old_keys, 'old_keys_string' => $old_keys_string, 'new_keys' => $new_keys, 'new_keys_string' => $new_keys_string, 'new_wpconfig' => $new_wpconfig, ); if ($response['updated']) { file_put_contents($config_path, $new_wpconfig, LOCK_EX); } return $response; } return false; } } /** * Function call interceptors. * * The term hooking covers a range of techniques used to alter or augment the * behavior of an operating system, of applications, or of other software * components by intercepting function calls or messages or events passed * between software components. Code that handles such intercepted function * calls, events or messages is called a "hook". * * Hooking is used for many purposes, including debugging and extending * functionality. Examples might include intercepting keyboard or mouse event * messages before they reach an application, or intercepting operating system * calls in order to monitor behavior or modify the function of an application * or other component; it is also widely used in benchmarking programs. */ class SucuriScanHook extends SucuriScanEvent { /** * Send to Sucuri servers an alert notifying that an attachment was added to a post. * * @param integer $id The post identifier. * @return void */ public static function hook_add_attachment($id = 0) { if ($data = get_post($id)) { $id = $data->ID; $title = $data->post_title; $mime_type = $data->post_mime_type; } else { $title = 'unknown'; $mime_type = 'unknown'; } $message = sprintf('Media file added; identifier: %s; name: %s; type: %s', $id, $title, $mime_type); self::report_notice_event($message); self::notify_event('post_publication', $message); } /** * Send an alert notifying that a new link was added to the bookmarks. * * @param integer $id Identifier of the new link created; * @return void */ public static function hook_add_link($id = 0) { if ($data = get_bookmark($id)) { $id = $data->link_id; $title = $data->link_name; $url = $data->link_url; $target = $data->link_target; } else { $title = 'unknown'; $url = 'undefined/url'; $target = '_none'; } $message = sprintf( 'Bookmark link added; identifier: %s; name: %s; url: %s; target: %s', $id, $title, $url, $target ); self::report_warning_event($message); self::notify_event('post_publication', $message); } /** * Send an alert notifying that a category was created. * * @param integer $id The identifier of the category created. * @return void */ public static function hook_create_category($id = 0) { $title = ( is_int($id) ? get_cat_name($id) : 'Unknown' ); $message = sprintf('Category created; identifier: %s; name: %s', $id, $title); self::report_notice_event($message); self::notify_event('post_publication', $message); } /** * Send an alert notifying that a post was deleted. * * @param integer $id The identifier of the post deleted. * @return void */ public static function hook_delete_post($id = 0) { self::report_warning_event('Post deleted; identifier: ' . $id); } /** * Send an alert notifying that a post was moved to the trash. * * @param integer $id The identifier of the trashed post. * @return void */ public static function hook_wp_trash_post($id = 0) { if ($data = get_post($id)) { $title = $data->post_title; $status = $data->post_status; } else { $title = 'Unknown'; $status = 'none'; } $message = sprintf( 'Post moved to trash; identifier: %s; name: %s; status: %s', $id, $title, $status ); self::report_warning_event($message); } /** * Send an alert notifying that a user account was deleted. * * @param integer $id The identifier of the user account deleted. * @return void */ public static function hook_delete_user($id = 0) { self::report_warning_event('User account deleted; identifier: ' . $id); } /** * Send an alert notifying that an attempt to reset the password * of an user account was executed. * * @return void */ public static function hook_login_form_resetpass() { // Detecting WordPress 2.8.3 vulnerability - $key is array. if (isset($_GET['key']) && is_array($_GET['key'])) { self::report_critical_event('Attempt to reset password by attacking WP/2.8.3 bug'); } } /** * Send an alert notifying that the state of a post was changed * from private to published. This will only applies for posts not pages. * * @param integer $id The identifier of the post changed. * @return void */ public static function hook_private_to_published($id = 0) { if ($data = get_post($id)) { $title = $data->post_title; $p_type = ucwords($data->post_type); } else { $title = 'Unknown'; $p_type = 'Publication'; } // Check whether the post-type is being ignored to send notifications. if (!SucuriScanOption::is_ignored_event($p_type)) { $message = sprintf( '%s (private to published); identifier: %s; name: %s', $p_type, $id, $title ); self::report_notice_event($message); self::notify_event('post_publication', $message); } } /** * Send an alert notifying that a post was published. * * @param integer $id The identifier of the post or page published. * @return void */ public static function hook_publish($id = 0) { if ($data = get_post($id)) { $title = $data->post_title; $p_type = ucwords($data->post_type); $action = ( $data->post_date == $data->post_modified ? 'created' : 'updated' ); } else { $title = 'Unknown'; $p_type = 'Publication'; $action = 'published'; } $message = sprintf( '%s was %s; identifier: %s; name: %s', $p_type, $action, $id, $title ); self::report_notice_event($message); self::notify_event('post_publication', $message); } /** * Alias function for hook_publish() * * @param integer $id The identifier of the post or page published. * @return void */ public static function hook_publish_page($id = 0) { self::hook_publish($id); } /** * Alias function for hook_publish() * * @param integer $id The identifier of the post or page published. * @return void */ public static function hook_publish_post($id = 0) { self::hook_publish($id); } /** * Alias function for hook_publish() * * @param integer $id The identifier of the post or page published. * @return void */ public static function hook_publish_phone($id = 0) { self::hook_publish($id); } /** * Alias function for hook_publish() * * @param integer $id The identifier of the post or page published. * @return void */ public static function hook_xmlrpc_publish_post($id = 0) { self::hook_publish($id); } /** * Send an alert notifying that an attempt to retrieve the password * of an user account was tried. * * @param string $title The name of the user account involved in the trasaction. * @return void */ public static function hook_retrieve_password($title = '') { if (empty($title)) { $title = 'unknown'; } self::report_error_event('Password retrieval attempt: ' . $title); } /** * Send an alert notifying that the theme of the site was changed. * * @param string $title The name of the new theme selected to used through out the site. * @return void */ public static function hook_switch_theme($title = '') { if (empty($title)) { $title = 'unknown'; } $message = 'Theme activated: ' . $title; self::report_warning_event($message); self::notify_event('theme_activated', $message); } /** * Send an alert notifying that a new user account was created. * * @param integer $id The identifier of the new user account created. * @return void */ public static function hook_user_register($id = 0) { if ($data = get_userdata($id)) { $title = $data->user_login; $email = $data->user_email; $roles = @implode(', ', $data->roles); } else { $title = 'unknown'; $email = 'user@domain.com'; $roles = 'none'; } $message = sprintf( 'User account created; identifier: %s; name: %s; email: %s; roles: %s', $id, $title, $email, $roles ); self::report_warning_event($message); self::notify_event('user_registration', $message); } /** * Send an alert notifying that an attempt to login into the * administration panel was successful. * * @param string $title The name of the user account involved in the transaction. * @return void */ public static function hook_wp_login($title = '') { if (empty($title)) { $title = 'Unknown'; } $message = 'User authentication succeeded: ' . $title; self::report_notice_event($message); self::notify_event('success_login', $message); } /** * Send an alert notifying that an attempt to login into the * administration panel failed. * * @param string $title The name of the user account involved in the transaction. * @return void */ public static function hook_wp_login_failed($title = '') { if (empty($title)) { $title = 'Unknown'; } $title = sanitize_user($title, true); $password = SucuriScanRequest::post('pwd'); $message = 'User authentication failed: ' . $title; self::report_error_event($message); if (sucuriscan_collect_wrong_passwords() === true) { $message .= "
        \nUser wrong password: " . $password; } self::notify_event('failed_login', $message); // Log the failed login in the internal datastore for future reports. $logged = sucuriscan_log_failed_login($title, $password); // Check if the quantity of failed logins will be considered as a brute-force attack. if ($logged) { $failed_logins = sucuriscan_get_failed_logins(); if ($failed_logins) { $max_time = 3600; $maximum_failed_logins = SucuriScanOption::get_option('sucuriscan_maximum_failed_logins'); /** * If the time passed is within the hour, and the quantity of failed logins * registered in the datastore file is bigger than the maximum quantity of * failed logins allowed per hour (value configured by the administrator in the * settings page), then send an email notification reporting the event and * specifying that it may be a brute-force attack against the login page. */ if ($failed_logins['diff_time'] <= $max_time && $failed_logins['count'] >= $maximum_failed_logins ) { sucuriscan_report_failed_logins($failed_logins); } /** * If there time passed is superior to the hour, then reset the content of the * datastore file containing the failed logins so far, any entry in that file * will not be considered as part of a brute-force attack (if it exists) because * the time passed between the first and last login attempt is big enough to * mitigate the attack. We will consider the current failed login event as the * first entry of that file in case of future attempts during the next sixty * minutes. */ elseif ($failed_logins['diff_time'] > $max_time) { sucuriscan_reset_failed_logins(); sucuriscan_log_failed_login($title); } } } } /** * Fires immediately after a comment is inserted into the database. * * The action comment-post can also be used to track the insertion of data in * the comments table, but this only returns the identifier of the new entry in * the database and the status (approved, not approved, spam). The WP-Insert- * Comment action returns the same identifier and additionally the full data set * with the comment information. * * @see https://codex.wordpress.org/Plugin_API/Action_Reference/wp_insert_comment * @see https://codex.wordpress.org/Plugin_API/Action_Reference/comment_post * * @param integer $id The comment identifier. * @param object $comment The comment object. * @return void */ public static function hook_wp_insert_comment($id = 0, $comment = false) { if ($comment instanceof stdClass && property_exists($comment, 'comment_ID') && property_exists($comment, 'comment_agent') && property_exists($comment, 'comment_author_IP') && SucuriScanOption::is_enabled(':comment_monitor') ) { $data_set = array( 'id' => $comment->comment_ID, 'post_id' => $comment->comment_post_ID, 'user_id' => $comment->user_id, 'parent' => $comment->comment_parent, 'approved' => $comment->comment_approved, 'remote_addr' => $comment->comment_author_IP, 'author_email' => $comment->comment_author_email, 'date' => $comment->comment_date, 'content' => $comment->comment_content, 'user_agent' => $comment->comment_agent, ); $message = base64_encode(json_encode($data_set)); self::report_notice_event('Base64:' . $message, true); } } // TODO: Log when the comment status is modified: wp_set_comment_status // TODO: Log when the comment data is modified: edit_comment // TODO: Log when the comment is going to be deleted: delete_comment, trash_comment // TODO: Log when the comment is finally deleted: deleted_comment, trashed_comment // TODO: Log when the comment is closed: comment_closed // TODO: Detect auto updates in core, themes, and plugin files. /** * Placeholder for arbitrary actions. * * @return void */ public static function hook_all($action = null, $data = false) { global $wp_filter, $wp_actions; if (is_array($wp_filter) && is_array($wp_actions) && array_key_exists($action, $wp_actions) && !array_key_exists($action, $wp_filter) && ( substr($action, 0, 11) === 'admin_post_' || substr($action, 0, 8) === 'wp_ajax_' ) ) { $message = sprintf('Undefined XHR action %s', $action); self::report_error_event($message); header('HTTP/1.1 400 Bad Request'); exit(1); } } /** * Send a notifications to the administrator of some specific events that are * not triggered through an hooked action, but through a simple request in the * admin interface. * * @return integer Either one or zero representing the success or fail of the operation. */ public static function hook_undefined_actions() { $plugin_activate_actions = '(activate|deactivate)(\-selected)?'; $plugin_update_actions = '(upgrade-plugin|do-plugin-upgrade|update-selected)'; // Plugin activation and/or deactivation. if (current_user_can('activate_plugins') && ( SucuriScanRequest::get_or_post('action', $plugin_activate_actions) || SucuriScanRequest::get_or_post('action2', $plugin_activate_actions) ) ) { $plugin_list = array(); $items_affected = array(); // Get the action performed through action or action2 params. $action_d = SucuriScanRequest::get_or_post('action'); if ($action_d == '-1') { $action_d = SucuriScanRequest::get_or_post('action2'); } $action_d .= 'd'; if (SucuriScanRequest::get('plugin', '.+') && strpos($_SERVER['REQUEST_URI'], 'plugins.php') !== false ) { $plugin_list[] = SucuriScanRequest::get('plugin'); } elseif (isset($_POST['checked']) && is_array($_POST['checked']) && !empty($_POST['checked']) ) { $plugin_list = SucuriScanRequest::post('checked', '_array'); $action_d = str_replace('-selected', '', $action_d); } foreach ($plugin_list as $plugin) { $plugin_info = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin); if (!empty($plugin_info['Name']) && !empty($plugin_info['Version']) ) { $items_affected[] = sprintf( '%s (v%s; %s)', self::escape($plugin_info['Name']), self::escape($plugin_info['Version']), self::escape($plugin) ); } } // Report activated/deactivated plugins at once. if (!empty($items_affected)) { $message_tpl = ( count($items_affected) > 1 ) ? 'Plugins %s: (multiple entries): %s' : 'Plugin %s: %s'; $message = sprintf( $message_tpl, $action_d, @implode(',', $items_affected) ); self::report_warning_event($message); self::notify_event('plugin_' . $action_d, $message); } } // Plugin update request. elseif (current_user_can('update_plugins') && ( SucuriScanRequest::get_or_post('action', $plugin_update_actions) || SucuriScanRequest::get_or_post('action2', $plugin_update_actions) ) ) { $plugin_list = array(); $items_affected = array(); if (SucuriScanRequest::get('plugin', '.+') && strpos($_SERVER['REQUEST_URI'], 'wp-admin/update.php') !== false ) { $plugin_list[] = SucuriScanRequest::get('plugin', '.+'); } elseif (isset($_POST['checked']) && is_array($_POST['checked']) && !empty($_POST['checked']) ) { $plugin_list = SucuriScanRequest::post('checked', '_array'); } foreach ($plugin_list as $plugin) { $plugin_info = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin); if (!empty($plugin_info['Name']) && !empty($plugin_info['Version']) ) { $items_affected[] = sprintf( '%s (v%s; %s)', self::escape($plugin_info['Name']), self::escape($plugin_info['Version']), self::escape($plugin) ); } } // Report updated plugins at once. if (!empty($items_affected)) { $message_tpl = ( count($items_affected) > 1 ) ? 'Plugins updated: (multiple entries): %s' : 'Plugin updated: %s'; $message = sprintf( $message_tpl, @implode(',', $items_affected) ); self::report_warning_event($message); self::notify_event('plugin_updated', $message); } } // Plugin installation request. elseif (current_user_can('install_plugins') && SucuriScanRequest::get('action', '(install|upload)-plugin') ) { if (isset($_FILES['pluginzip'])) { $plugin = self::escape($_FILES['pluginzip']['name']); } else { $plugin = SucuriScanRequest::get('plugin', '.+'); if (!$plugin) { $plugin = 'Unknown'; } } $message = 'Plugin installed: ' . self::escape($plugin); SucuriScanEvent::report_warning_event($message); self::notify_event('plugin_installed', $message); } // Plugin deletion request. elseif (current_user_can('delete_plugins') && SucuriScanRequest::post('action', 'delete-selected') && SucuriScanRequest::post('verify-delete', '1') ) { $plugin_list = SucuriScanRequest::post('checked', '_array'); $items_affected = array(); foreach ((array) $plugin_list as $plugin) { $plugin_info = get_plugin_data(WP_PLUGIN_DIR . '/' . $plugin); if (!empty($plugin_info['Name']) && !empty($plugin_info['Version']) ) { $items_affected[] = sprintf( '%s (v%s; %s)', self::escape($plugin_info['Name']), self::escape($plugin_info['Version']), self::escape($plugin) ); } } // Report deleted plugins at once. if (!empty($items_affected)) { $message_tpl = ( count($items_affected) > 1 ) ? 'Plugins deleted: (multiple entries): %s' : 'Plugin deleted: %s'; $message = sprintf( $message_tpl, @implode(',', $items_affected) ); self::report_warning_event($message); self::notify_event('plugin_deleted', $message); } } // Plugin editor request. elseif (current_user_can('edit_plugins') && SucuriScanRequest::post('action', 'update') && SucuriScanRequest::post('plugin', '.+') && SucuriScanRequest::post('file', '.+') && strpos($_SERVER['REQUEST_URI'], 'plugin-editor.php') !== false ) { $filename = SucuriScanRequest::post('file'); $message = 'Plugin editor used in: ' . SucuriScan::escape($filename); self::report_error_event($message); self::notify_event('theme_editor', $message); } // Theme editor request. elseif (current_user_can('edit_themes') && SucuriScanRequest::post('action', 'update') && SucuriScanRequest::post('theme', '.+') && SucuriScanRequest::post('file', '.+') && strpos($_SERVER['REQUEST_URI'], 'theme-editor.php') !== false ) { $theme_name = SucuriScanRequest::post('theme'); $filename = SucuriScanRequest::post('file'); $message = 'Theme editor used in: ' . SucuriScan::escape($theme_name) . '/' . SucuriScan::escape($filename); self::report_error_event($message); self::notify_event('theme_editor', $message); } // Theme installation request. elseif (current_user_can('install_themes') && SucuriScanRequest::get('action', 'install-theme') ) { $theme = SucuriScanRequest::get('theme', '.+'); if (!$theme) { $theme = 'Unknown'; } $message = 'Theme installed: ' . self::escape($theme); SucuriScanEvent::report_warning_event($message); self::notify_event('theme_installed', $message); } // Theme deletion request. elseif (current_user_can('delete_themes') && SucuriScanRequest::get_or_post('action', 'delete') && SucuriScanRequest::get_or_post('stylesheet', '.+') ) { $theme = SucuriScanRequest::get('stylesheet', '.+'); if (!$theme) { $theme = 'Unknown'; } $message = 'Theme deleted: ' . self::escape($theme); SucuriScanEvent::report_warning_event($message); self::notify_event('theme_deleted', $message); } // Theme update request. elseif (current_user_can('update_themes') && SucuriScanRequest::get('action', '(upgrade-theme|do-theme-upgrade)') && SucuriScanRequest::post('checked', '_array') ) { $themes = SucuriScanRequest::post('checked', '_array'); $items_affected = array(); foreach ((array) $themes as $theme) { $theme_info = wp_get_theme($theme); $theme_name = ucwords($theme); $theme_version = '0.0'; if ($theme_info->exists()) { $theme_name = $theme_info->get('Name'); $theme_version = $theme_info->get('Version'); } $items_affected[] = sprintf( '%s (v%s; %s)', self::escape($theme_name), self::escape($theme_version), self::escape($theme) ); } // Report updated themes at once. if (!empty($items_affected)) { $message_tpl = ( count($items_affected) > 1 ) ? 'Themes updated: (multiple entries): %s' : 'Theme updated: %s'; $message = sprintf( $message_tpl, @implode(',', $items_affected) ); self::report_warning_event($message); self::notify_event('theme_updated', $message); } } // WordPress update request. elseif (current_user_can('update_core') && SucuriScanRequest::get('action', '(do-core-upgrade|do-core-reinstall)') && SucuriScanRequest::post('upgrade') ) { $message = 'WordPress updated to version: ' . SucuriScanRequest::post('version'); self::report_critical_event($message); self::notify_event('website_updated', $message); } // Widget addition or deletion. elseif (current_user_can('edit_theme_options') && SucuriScanRequest::post('action', 'save-widget') && SucuriScanRequest::post('id_base') !== false && SucuriScanRequest::post('sidebar') !== false ) { if (SucuriScanRequest::post('delete_widget', '1')) { $action_d = 'deleted'; $action_text = 'deleted from'; } else { $action_d = 'added'; $action_text = 'added to'; } $message = sprintf( 'Widget %s (%s) %s %s (#%d; size %dx%d)', SucuriScanRequest::post('id_base'), SucuriScanRequest::post('widget-id'), $action_text, SucuriScanRequest::post('sidebar'), SucuriScanRequest::post('widget_number'), SucuriScanRequest::post('widget-width'), SucuriScanRequest::post('widget-height') ); self::report_warning_event($message); self::notify_event('widget_' . $action_d, $message); } // Detect any Wordpress settings modification. elseif (current_user_can('manage_options') && SucuriScanOption::check_options_nonce() ) { // Get the settings available in the database and compare them with the submission. $options_changed = SucuriScanOption::what_options_were_changed($_POST); $options_changed_str = ''; $options_changed_simple = ''; $options_changed_count = 0; // Generate the list of options changed. foreach ($options_changed['original'] as $option_name => $option_value) { $options_changed_count += 1; $options_changed_str .= sprintf( "The value of the option %s was changed from '%s' to '%s'.
        \n", self::escape($option_name), self::escape($option_value), self::escape($options_changed['changed'][ $option_name ]) ); $options_changed_simple .= sprintf( "%s: from '%s' to '%s',", self::escape($option_name), self::escape($option_value), self::escape($options_changed['changed'][ $option_name ]) ); } // Get the option group (name of the page where the request was originated). $option_page = isset($_POST['option_page']) ? $_POST['option_page'] : 'options'; $page_referer = false; // Check which of these option groups where modified. switch ($option_page) { case 'options': $page_referer = 'Global'; break; case 'general': /* no_break */ case 'writing': /* no_break */ case 'reading': /* no_break */ case 'discussion': /* no_break */ case 'media': /* no_break */ case 'permalink': $page_referer = ucwords($option_page); break; default: $page_referer = 'Common'; break; } if ($page_referer && $options_changed_count > 0) { $message = $page_referer . ' settings changed'; SucuriScanEvent::report_error_event(sprintf( '%s: (multiple entries): %s', $message, rtrim($options_changed_simple, ',') )); self::notify_event('settings_updated', $message . "
        \n" . $options_changed_str); } } } } /** * Plugin API library. * * When used in the context of web development, an API is typically defined as a * set of Hypertext Transfer Protocol (HTTP) request messages, along with a * definition of the structure of response messages, which is usually in an * Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. * While "web API" historically has been virtually synonymous for web service, * the recent trend (so-called Web 2.0) has been moving away from Simple Object * Access Protocol (SOAP) based web services and service-oriented architecture * (SOA) towards more direct representational state transfer (REST) style web * resources and resource-oriented architecture (ROA). Part of this trend is * related to the Semantic Web movement toward Resource Description Framework * (RDF), a concept to promote web-based ontology engineering technologies. Web * APIs allow the combination of multiple APIs into new applications known as * mashups. * * @see https://en.wikipedia.org/wiki/Application_programming_interface#Web_APIs */ class SucuriScanAPI extends SucuriScanOption { /** * Check whether the SSL certificates will be verified while executing a HTTP * request or not. This is only for customization of the administrator, in fact * not verifying the SSL certificates can lead to a "Man in the Middle" attack. * * @return boolean Whether the SSL certs will be verified while sending a request. */ public static function verifySslCert() { return (self::get_option(':verify_ssl_cert') === 'true'); } /** * Seconds before consider a HTTP request as timeout. * * As for the 01/Jan/2016 if the number of seconds before a timeout is greater * than sixty (which is one minute) the function will reset the option to its * default value to keep the latency of the HTTP requests in a minimum to * minimize the interruptions in the admins workflow. The normal connection * timeout should be in the range of ten seconds, or fifteen if the DNS lookups * are slow. * * @return integer Seconds to consider a HTTP request timeout. */ public static function requestTimeout() { $timeout = (int) self::get_option(':request_timeout'); if ($timeout > SUCURISCAN_MAX_REQUEST_TIMEOUT) { self::delete_option(':request_timeout'); return self::requestTimeout(); } return $timeout; } /** * Generate an user-agent for the HTTP requests. * * @return string An user-agent for the HTTP requests. */ private static function userAgent() { return sprintf( 'WordPress/%s; %s', self::site_version(), self::get_domain() ); } /** * Retrieves a URL using a changeable HTTP method, returning results in an * array. Results include HTTP headers and content. * * @see https://codex.wordpress.org/Function_Reference/wp_remote_post * @see https://codex.wordpress.org/Function_Reference/wp_remote_get * * @param string $url The target URL where the request will be sent. * @param string $method HTTP method that will be used to send the request. * @param array $params Parameters for the request defined in an associative array of key-value. * @param array $args Request arguments like the timeout, redirections, headers, cookies, etc. * @return array Response object after the HTTP request is executed. */ private static function apiCall($url = '', $method = 'GET', $params = array(), $args = array()) { if (!$url) { return false; } $req_args = array( 'method' => $method, 'timeout' => self::requestTimeout(), 'redirection' => 2, 'httpversion' => '1.0', 'user-agent' => self::userAgent(), 'blocking' => true, 'headers' => array(), 'cookies' => array(), 'compress' => false, 'decompress' => false, 'sslverify' => self::verifySslCert(), ); // Update the request arguments with the values passed tot he function. foreach ($args as $arg_name => $arg_value) { if (array_key_exists($arg_name, $req_args)) { $req_args[$arg_name] = $arg_value; } } // Add random request parameter to avoid request reset. if (!empty($params) && !array_key_exists('time', $params)) { $params['time'] = time(); } if ($method == 'GET') { if (!empty($params)) { $url = sprintf('%s?%s', $url, http_build_query($params)); } $response = wp_remote_get($url, $req_args); } elseif ($method == 'POST') { $req_args['body'] = $params; $response = wp_remote_post($url, $req_args); } else { $response = false; SucuriScanInterface::error('HTTP method not allowed: ' . $method); } return self::processResponse($response, $params, $args); } /** * Check whether the plugin API key is valid or not. * * @param string $api_key An unique string to identify this installation. * @return boolean True if the API key is valid, false otherwise. */ private static function isValidKey($api_key = '') { return (bool) @preg_match('/^[a-z0-9]{32}$/', $api_key); } /** * Store the API key locally. * * @param string $api_key An unique string of characters to identify this installation. * @param boolean $validate Whether the format of the key should be validated before store it. * @return boolean Either true or false if the key was saved successfully or not respectively. */ public static function setPluginKey($api_key = '', $validate = false) { if ($validate) { if (!self::isValidKey($api_key)) { SucuriScanInterface::error('Invalid API key format'); return false; } } if (!empty($api_key)) { SucuriScanEvent::notify_event('plugin_change', 'API key updated successfully: ' . $api_key); } return self::update_option(':api_key', $api_key); } /** * Retrieve the API key from the local storage. * * @return string|boolean The API key or false if it does not exists. */ public static function getPluginKey() { $api_key = self::get_option(':api_key'); if (is_string($api_key) && self::isValidKey($api_key) ) { return $api_key; } return false; } /** * Check and return the API key for the plugin. * * In this plugin the key is a pair of two strings concatenated by a single * slash, the first part of it is in fact the key and the second part is the * unique identifier of the site in the remote server. * * @return array|boolean false if the key is invalid or not present, an array otherwise. */ public static function getCloudproxyKey() { $option_name = ':cloudproxy_apikey'; $api_key = self::get_option($option_name); // Check if the cloudproxy-waf plugin was previously installed. if (!$api_key) { $api_key = self::get_option('sucuriwaf_apikey'); if ($api_key) { self::update_option($option_name, $api_key); self::delete_option('sucuriwaf_apikey'); } } // Check the validity of the API key. $match = self::isValidCloudproxyKey($api_key, true); if ($match) { return array( 'string' => $match[1].'/'.$match[2], 'k' => $match[1], 's' => $match[2], ); } return false; } /** * Check whether the CloudProxy API key is valid or not. * * @param string $api_key The CloudProxy API key. * @param boolean $return_match Whether the parts of the API key must be returned or not. * @return boolean true if the API key specified is valid, false otherwise. */ public static function isValidCloudproxyKey($api_key = '', $return_match = false) { $pattern = '/^([a-z0-9]{32})\/([a-z0-9]{32})$/'; if ($api_key && preg_match($pattern, $api_key, $match)) { if ($return_match) { return $match; } return true; } return false; } /** * Call an action from the remote API interface of our WordPress service. * * @param string $method HTTP method that will be used to send the request. * @param array $params Parameters for the request defined in an associative array of key-value. * @param boolean $send_api_key Whether the API key should be added to the request parameters or not. * @param array $args Request arguments like the timeout, redirections, headers, cookies, etc. * @return array Response object after the HTTP request is executed. */ public static function apiCallWordpress($method = 'GET', $params = array(), $send_api_key = true, $args = array()) { $url = SUCURISCAN_API; $params[ SUCURISCAN_API_VERSION ] = 1; $params['p'] = 'wordpress'; if ($send_api_key) { $api_key = self::getPluginKey(); if (!$api_key) { return false; } $params['k'] = $api_key; } return self::apiCall($url, $method, $params, $args); } /** * Call an action from the remote API interface of our CloudProxy service. * * @param string $method HTTP method that will be used to send the request. * @param array $params Parameters for the request defined in an associative array of key-value. * @return array Response object after the HTTP request is executed. */ public static function apiCallCloudproxy($method = 'GET', $params = array()) { $send_request = false; if (isset($params['k']) && isset($params['s'])) { $send_request = true; } else { $api_key = self::getCloudproxyKey(); if ($api_key) { $send_request = true; $params['k'] = $api_key['k']; $params['s'] = $api_key['s']; } } if ($send_request) { $url = SUCURISCAN_CLOUDPROXY_API; $params[ SUCURISCAN_CLOUDPROXY_API_VERSION ] = 1; unset($params['string']); return self::apiCall($url, $method, $params); } return false; } /** * Execute some actions according to the response message. * * @param array $response Response object after the HTTP request is executed. * @param array $params Parameters for the request defined in an associative array of key-value. * @param array $args Request arguments like the timeout, redirections, headers, cookies, etc. * @return array Response object with some modifications. */ private static function processResponse($response = array(), $params = array(), $args = array()) { /** * Convert the error message generated by the code base functions after the HTTP * request is executed to a valid response object that will allow this code * process the data according to the specified standards. */ if (is_wp_error($response)) { // Extract information from the error object. $error_message = $response->get_error_message(); $request_action = isset($params['a']) ? $params['a'] : 'unknown'; // Build a fake request response with custom data. $data_set = array( 'status' => 0, 'action' => $request_action, 'messages' => array( $error_message ), 'request_time' => SucuriScan::local_time(), 'output' => new stdClass(), 'verbose' => 0, ); // Build the response object and encode data. $response = array(); $response['body'] = json_encode($data_set); $response['headers']['date'] = date('r'); $response['headers']['connection'] = 'close'; $response['headers']['content-type'] = 'application/json'; $response['headers']['content-length'] = strlen($response['body']); $response['response']['code'] = 500; $response['response']['message'] = 'ERROR'; } /** * Process the response object. * * Some response messages and even errors require extra steps of processing to, * for example, try to fix automatically issues related with disconnections, * timeouts, SSL certificate verifications, etc. Some of these actions can not * be fixed if the server where the website is being hosted has a special * configuration, which then requires the human interaction of the admin user, * they will see extra information explaining the response and how to proceed * with it. */ if (is_array($response) && array_key_exists('body', $response) && array_key_exists('headers', $response) && array_key_exists('response', $response) ) { // Keep a copy of the raw HTTP response. $response['body_raw'] = $response['body']; // Append the non-private HTTP request parameters. $response['params'] = $params; unset($response['params']['k']); /** * Check and decode the API response. * * Note that serialized data is going to be ignored, the old API service used to * respond to all endpoints with serialized data and considering the risk that * it poses to unserialize in PHP it was decided to drop that option and stick * to JSON which is a bit safer. */ if (isset($response['headers']['content-type']) && $response['headers']['content-type'] == 'application/json' ) { $assoc = (isset($args['assoc']) && $args['assoc'] === true) ? true : false; $response['body'] = @json_decode($response['body_raw'], $assoc); $response['body_arr'] = @json_decode($response['body_raw'], true); } elseif (self::is_serialized($response['body'])) { $response['body_raw'] = null; $response['body'] = 'ERROR:Serialized data is not supported.'; } return $response; } return false; } /** * Determine whether an API response was successful or not checking the expected * generic variables and types, in case of an error a notification will appears * in the administrator panel explaining the result of the operation. * * @param array $response HTTP response after API endpoint execution. * @param boolean $enqueue Add the log to the local queue on a failure. * @return boolean False if the API call failed, true otherwise. */ private static function handleResponse($response = array(), $enqueue = true) { $error_msg = ''; if ($response) { if ($response['body'] instanceof stdClass) { if (isset($response['body']->status)) { if ($response['body']->status == 1) { return true; } else { return self::handleErrorResponse($response, $enqueue); } } else { $error_msg = 'Could not determine the status of an API call.'; } } else { $message = 'non JSON-encoded response.'; if (isset($response['response']) && isset($response['response']['message']) && isset($response['response']['code']) && $response['response']['code'] !== 200 ) { $message = sprintf( '(%s) %s', $response['response']['code'], $response['response']['message'] ); } $error_msg = 'Malformed API response: ' . $message; } } if (!empty($error_msg) && $enqueue) { SucuriScanInterface::error($error_msg); } return false; } /** * Process failures in the HTTP response. * * Log file not found: means that the API key used to execute the request is * not associated to the website, this may indicate that either the key was * invalidated by an administrator of the service or that the API key was * custom generated with invalid data. * * Wrong API key: means that the TLD of the origin of the request is not the * domain used to generate the API key in the first place, or that the email * address of the site administrator was changed so the data is not valid * anymore. * * Connection timeout: means that the API service is down either because the * hosting provider has connectivity issues or because the code is being * deployed. There is an option in the settings page that allows to temporarily * disable the communication with the API service while the server is down, this * allows the admins to keep the latency at zero and continue working in their * websites without interruptions. * * SSL issues: depending on the options used to compile the OpenSSL library * built by each hosting provider, the connection with the HTTPs version of the * API service may be rejected because of a failure in the SSL algorithm check. * There is an option in the settings page that allows to disable the SSL pair * verification, this option it disable automatically when the error is detected * for the first time. * * @param array $response HTTP response after API endpoint execution. * @param boolean $enqueue Add the log to the local queue on a failure. * @return boolean False if the API call failed, true otherwise. */ private static function handleErrorResponse($response = array(), $enqueue = true) { $action_message = 'Unknown error, there is no more information.'; // Check whether the message list is empty or not. if (isset($response['body']->messages[0])) { $action_message = $response['body']->messages[0] . '.'; } // Keep a copy of the original API response message. $raw_message = $action_message; // Special response for invalid API keys. if (stripos($raw_message, 'log file not found') !== false) { SucuriScanOption::delete_option(':api_key'); $action_message .= ' This generally happens when you add an invalid API key, the' . ' key will be deleted automatically to hide these warnings, if you want to' . ' recover it go to the settings page and use the recover button to send the' . ' key to your email address.'; } // Special response for invalid CloudProxy API keys. if (stripos($raw_message, 'wrong api key') !== false) { SucuriScanOption::delete_option(':cloudproxy_apikey'); SucuriScanOption::setRevProxy('disable'); SucuriScanOption::setAddrHeader('REMOTE_ADDR'); $action_message .= ' The CloudProxy API key does not seems to be valid.'; } // Special response for connection timeouts. if ($enqueue && @preg_match('/time(d\s)?out/', $raw_message)) { $action_message = ''; /* Empty the error message. */ $cache = new SucuriScanCache('auditqueue'); $cache_key = md5($response['params']['time']); $cache_value = array( 'created_at' => $response['params']['time'], 'message' => $response['params']['m'], ); $cache->add($cache_key, $cache_value); } // Stop SSL peer verification on connection failures. if (stripos($raw_message, 'no alternative certificate') || stripos($raw_message, 'error setting certificate') || stripos($raw_message, 'SSL connect error') ) { SucuriScanOption::update_option(':verify_ssl_cert', 'false'); $action_message .= 'There were some issues with the SSL certificate either in this' . ' server or with the remote API service. The automatic verification of the' . ' certificates has been deactivated to reduce the noise during the execution' . ' of the HTTP requests.'; } if (!empty($action_message)) { if ($enqueue) { SucuriScanInterface::error( sprintf( '(%d) %s: %s', SucuriScan::local_time(), ucwords($response['body']->action), $action_message ) ); } return false; } return true; } /** * Send a request to the API to register this site. * * @param string $email Optional email address for the registration. * @return boolean True if the API key was generated, false otherwise. */ public static function registerSite($email = '') { if (!is_string($email) || empty($email)) { $email = self::get_site_email(); } $response = self::apiCallWordpress('POST', array( 'e' => $email, 's' => self::get_domain(), 'a' => 'register_site', ), false); if (self::handleResponse($response)) { self::setPluginKey($response['body']->output->api_key); SucuriScanEvent::schedule_task(); SucuriScanEvent::notify_event('plugin_change', 'Site registered and API key generated'); SucuriScanInterface::info('The API key for your site was successfully generated and saved.'); return true; } return false; } /** * Send a request to recover a previously registered API key. * * @return boolean true if the API key was sent to the administrator email, false otherwise. */ public static function recoverKey() { $clean_domain = self::get_domain(); $response = self::apiCallWordpress('GET', array( 'e' => self::get_site_email(), 's' => $clean_domain, 'a' => 'recover_key', ), false); if (self::handleResponse($response)) { SucuriScanEvent::notify_event('plugin_change', 'API key recovered for domain: ' . $clean_domain); SucuriScanInterface::info($response['body']->output->message); return true; } return false; } /** * Send a request to the API to store and analyze the events of the site. An * event can be anything from a simple request, an internal modification of the * settings or files in the administrator panel, or a notification generated by * this plugin. * * @param string $event Event triggered by the core system functions. * @param integer $time Timestamp when the event was originally triggered. * @param boolean $enqueue Add the log to the local queue on a failure. * @return boolean True if the event was logged, false otherwise. */ public static function sendLog($event = '', $time = 0, $enqueue = true) { if (!empty($event)) { $params = array(); $params['a'] = 'send_log'; $params['m'] = $event; if (intval($time) > 0) { $params['time'] = (int) $time; } $response = self::apiCallWordpress('POST', $params, true); if (self::handleResponse($response, $enqueue)) { return true; } } return false; } /** * Send all logs from the queue. * * Retry the HTTP calls for the logs that were not sent to the API service * because of a connection failure or misconfiguration. Each successful call * will remove the log from the queue and the failures will keep them until the * next function call is executed. * * @return void */ public static function sendLogsFromQueue() { $cache = new SucuriScanCache('auditqueue'); $entries = $cache->getAll(); if (is_array($entries) && !empty($entries)) { foreach ($entries as $key => $entry) { $result = self::sendLog( $entry->message, $entry->created_at, false ); if ($result === true) { $cache->delete($key); } else { /** * Stop loop on failures. * * If the log was successfully sent to the API service then we can continue * sending the other logs in the queue, otherwise the operation must be stopped * so it can be executed next time when the service is online, not stopping the * operation when one or more of the API calls fails will cause a very long * delay in the load of the page that is being requested. */ break; } } } } /** * Retrieve all the event logs registered by the API service. * * @return array The object with the data returned from the API service. */ public static function getAllLogs() { // Get the total number of lines in the logs. $response = self::apiCallWordpress('GET', array( 'a' => 'get_logs', 'l' => 0, )); // If success continue with the retrieval of the logs data. if (self::handleResponse($response)) { return self::getLogs($response['body']->total_entries); } return false; } /** * Retrieve the event logs registered by the API service. * * @param integer $lines How many lines from the log file will be retrieved. * @return string The response of the API service. */ public static function getLogs($lines = 50) { $response = self::apiCallWordpress('GET', array( 'a' => 'get_logs', 'l' => $lines, )); if (self::handleResponse($response)) { $response['body']->output_data = array(); $log_pattern = '/^([0-9\-]+) ([0-9:]+) (\S+) : (.+)/'; $extra_pattern = '/(.+ \(multiple entries\):) (.+)/'; $generic_pattern = '/^@?([A-Z][a-z]{3,7}): ([^;]+; )?(.+)/'; $auth_pattern = '/^User authentication (succeeded|failed): ([^<;]+)/'; foreach ($response['body']->output as $log) { if (@preg_match($log_pattern, $log, $log_match)) { $log_data = array( 'event' => 'notice', 'date' => '', 'time' => '', 'datetime' => '', 'timestamp' => 0, 'account' => $log_match[3], 'username' => 'system', 'remote_addr' => '127.0.0.1', 'message' => $log_match[4], 'file_list' => false, 'file_list_count' => 0, ); // Extract and fix the date and time using the Eastern time zone. $datetime = sprintf('%s %s EDT', $log_match[1], $log_match[2]); $log_data['timestamp'] = strtotime($datetime); $log_data['datetime'] = date('Y-m-d H:i:s', $log_data['timestamp']); $log_data['date'] = date('Y-m-d', $log_data['timestamp']); $log_data['time'] = date('H:i:s', $log_data['timestamp']); // Extract more information from the generic audit logs. $log_data['message'] = str_replace('
        ', '; ', $log_data['message']); if (@preg_match($generic_pattern, $log_data['message'], $log_extra)) { $log_data['event'] = strtolower($log_extra[1]); $log_data['message'] = trim($log_extra[3]); // Extract the username and remote address from the log. if (!empty($log_extra[2])) { $username_address = rtrim($log_extra[2], ";\x20"); // Separate the username from the remote address. if (strpos($username_address, ",\x20") !== false) { $usip_parts = explode(",\x20", $username_address, 2); if (count($usip_parts) == 2) { // Separate the username from the display name. $log_data['username'] = @preg_replace('/^.+ \((.+)\)$/', '$1', $usip_parts[0]); $log_data['remote_addr'] = $usip_parts[1]; } } else { $log_data['remote_addr'] = $username_address; } } // Fix old user authentication logs for backward compatibility. $log_data['message'] = str_replace( 'logged in', 'authentication succeeded', $log_data['message'] ); if (@preg_match($auth_pattern, $log_data['message'], $user_match)) { $log_data['username'] = $user_match[2]; } } // Extract more information from the special formatted logs. if (@preg_match($extra_pattern, $log_data['message'], $log_extra)) { $log_data['message'] = $log_extra[1]; $log_extra[2] = str_replace(', new size', '; new size', $log_extra[2]); $log_extra[2] = str_replace(",\x20", ";\x20", $log_extra[2]); $log_data['file_list'] = explode(',', $log_extra[2]); $log_data['file_list_count'] = count($log_data['file_list']); } $response['body']->output_data[] = $log_data; } } return $response['body']; } return false; } /** * Get a list of valid audit event types with their respective colors. * * @return array Valid audit event types with their colors. */ public static function getAuditEventTypes() { return array( 'critical' => '#000000', 'debug' => '#c690ec', 'error' => '#f27d7d', 'info' => '#5bc0de', 'notice' => '#428bca', 'warning' => '#f0ad4e', ); } /** * Parse the event logs with multiple entries. * * @param string $event_log Event log that will be processed. * @return array List of parts of the event log. */ public static function parseMultipleEntries($event_log = '') { if (@preg_match('/^(.*:\s)\(multiple entries\):\s(.+)/', $event_log, $match)) { $event_log = array(); $event_log[] = trim($match[1]); $grouped_items = @explode(',', $match[2]); $event_log = array_merge($event_log, $grouped_items); } return $event_log; } /** * Collect the information for the audit log report. * * @param integer $lines How many lines from the log file will be retrieved. * @return array All the information necessary to display the audit logs report. */ public static function getAuditReport($lines = 50) { $audit_logs = self::getLogs($lines); if ($audit_logs instanceof stdClass && property_exists($audit_logs, 'total_entries') && property_exists($audit_logs, 'output_data') && !empty($audit_logs->output_data) ) { // Data structure that will be returned. $report = array( 'total_events' => 0, 'start_timestamp' => 0, 'end_timestamp' => 0, 'event_colors' => array(), 'events_per_type' => array(), 'events_per_user' => array(), 'events_per_ipaddress' => array(), 'events_per_login' => array( 'successful' => 0, 'failed' => 0, ), ); // Get a list of valid audit event types. $event_types = self::getAuditEventTypes(); foreach ($event_types as $event => $event_color) { $report['events_per_type'][$event] = 0; $report['event_colors'][] = sprintf("'%s'", $event_color); } // Collect information for each report chart. foreach ($audit_logs->output_data as $event) { $report['total_events'] += 1; // Increment the number of events for this event type. if (array_key_exists($event['event'], $report['events_per_type'])) { $report['events_per_type'][ $event['event'] ] += 1; } else { $report['events_per_type'][ $event['event'] ] = 1; } // Find the lowest datetime among the filtered events. if ($event['timestamp'] <= $report['start_timestamp'] || $report['start_timestamp'] === 0 ) { $report['start_timestamp'] = $event['timestamp']; } // Find the highest datetime among the filtered events. if ($event['timestamp'] >= $report['end_timestamp']) { $report['end_timestamp'] = $event['timestamp']; } // Increment the number of events generated by this user account. $_username = SucuriScan::escape($event['username']); if (array_key_exists($_username, $report['events_per_user'])) { $report['events_per_user'][$_username] += 1; } else { $report['events_per_user'][$_username] = 1; } // Increment the number of events generated from this remote address. $_remote_addr = SucuriScan::escape($event['remote_addr']); if (array_key_exists($_remote_addr, $report['events_per_ipaddress'])) { $report['events_per_ipaddress'][$_remote_addr] += 1; } else { $report['events_per_ipaddress'][$_remote_addr] = 1; } // Detect successful and failed user authentications. $auth_pattern = '/^User authentication (succeeded|failed):/'; if (@preg_match($auth_pattern, $event['message'], $match)) { if ($match[1] == 'succeeded') { $report['events_per_login']['successful'] += 1; } else { $report['events_per_login']['failed'] += 1; } } elseif (@preg_match('/^User logged in:/', $event['message'])) { // Backward compatibility for previous user login messages. $report['events_per_login']['successful'] += 1; } } if ($report['total_events'] > 0) { return $report; } } return false; } /** * Send a request to the API to store and analyze the file's hashes of the site. * This will be the core of the monitoring tools and will enhance the * information of the audit logs alerting the administrator of suspicious * changes in the system. * * @param string $hashes The information gathered after the scanning of the site's files. * @return boolean true if the hashes were stored, false otherwise. */ public static function sendHashes($hashes = '') { if (!empty($hashes)) { $response = self::apiCallWordpress('POST', array( 'a' => 'send_hashes', 'h' => $hashes, )); if (self::handleResponse($response)) { return true; } } return false; } /** * Retrieve the public settings of the account associated with the API keys * registered by the administrator of the site. This function will send a HTTP * request to the remote API service and process its response, when successful * it will return an array/object containing the public attributes of the site. * * @param boolean $api_key The CloudProxy API key. * @return array A hash with the settings of a CloudProxy account. */ public static function getCloudproxySettings($api_key = false) { $params = array('a' => 'show_settings'); if ($api_key) { $params = array_merge($params, $api_key); } $response = self::apiCallCloudproxy('GET', $params); if (self::handleResponse($response)) { return $response['body']->output; } return false; } /** * Flush the cache of the site(s) associated with the API key. * * @param boolean $api_key The CloudProxy API key. * @return string Message explaining the result of the operation. */ public static function clearCloudproxyCache($api_key = false) { $params = array( 'a' => 'clear_cache' ); if ($api_key) { $params = array_merge($params, $api_key); } $response = self::apiCallCloudproxy('GET', $params); if (self::handleResponse($response)) { return $response['body']; } return false; } /** * Retrieve the audit logs of the account associated with the API keys * registered b the administrator of the site. This function will send a HTTP * request to the remote API service and process its response, when successful * it will return an array/object containing a list of requests blocked by our * CloudProxy. * * By default the logs that will be retrieved are from today, if you need to see * the logs of previous days you will need to add a new parameter to the request * URL named "date" with format yyyy-mm-dd. * * @param string $api_key The CloudProxy API key. * @param string $date Retrieve the data from this date. * @param string $query Filter the data to match this query. * @param integer $limit Retrieve this maximum of data. * @param integer $offset Retrieve the data from this point. * @return array Objects with details of each blocked request. */ public static function firewallAuditLogs($api_key, $date = '', $query = '', $limit = 10, $offset = 0) { $params = array( 'a' => 'audit_trails', 'date' => $date, 'query' => $query, 'limit' => $limit, 'offset' => $offset, ); if (is_array($api_key) && !empty($api_key)) { $params = array_merge($params, $api_key); } $response = self::apiCallCloudproxy('GET', $params); if (self::handleResponse($response)) { return $response['body_arr']['output']; } return false; } /** * Scan a website through the public SiteCheck API [1] for known malware, * blacklisting status, website errors, and out-of-date software. * * [1] https://sitecheck.sucuri.net/ * * @param string $domain The clean version of the website's domain. * @return object Serialized data of the scanning results for the site specified. */ public static function getSitecheckResults($domain = '') { if (!empty($domain)) { $url = 'https://sitecheck.sucuri.net/'; $response = self::apiCall( $url, 'GET', array( 'scan' => $domain, 'fromwp' => 2, 'clear' => 1, 'json' => 1, ), array( 'assoc' => true, ) ); if ($response) { return $response['body']; } } return false; } /** * Extract detailed information from a SiteCheck malware payload. * * @param array $malware Array with two entries with basic malware information. * @return array Detailed information of the malware found by SiteCheck. */ public static function getSitecheckMalware($malware = array()) { if (count($malware) >= 2) { $data_set = array( 'alert_message' => '', 'infected_url' => '', 'malware_type' => '', 'malware_docs' => '', 'malware_payload' => '', ); // Extract the information from the alert message. $alert_parts = explode(':', $malware[0], 2); if (isset($alert_parts[1])) { $data_set['alert_message'] = $alert_parts[0]; $data_set['infected_url'] = $alert_parts[1]; } // Extract the information from the malware message. $malware_parts = explode("\n", $malware[1]); if (isset($malware_parts[1])) { if (@preg_match('/(.+)\. Details: (.+)/', $malware_parts[0], $match)) { $data_set['malware_type'] = $match[1]; $data_set['malware_docs'] = $match[2]; } $payload = trim($malware_parts[1]); $payload = html_entity_decode($payload); if (@preg_match('/
        (.+)<\/div>/', $payload, $match)) { $data_set['malware_payload'] = trim($match[1]); } } return $data_set; } return false; } /** * Retrieve a new set of keys for the WordPress configuration file using the * official API provided by WordPress itself. * * @return array A list of the new set of keys generated by WordPress API. */ public static function getNewSecretKeys() { $pattern = self::secret_key_pattern(); $response = self::apiCall('https://api.wordpress.org/secret-key/1.1/salt/', 'GET'); if ($response && @preg_match_all($pattern, $response['body'], $match)) { $new_keys = array(); foreach ($match[1] as $i => $value) { $new_keys[$value] = $match[3][$i]; } return $new_keys; } return false; } /** * Retrieve a list with the checksums of the files in a specific version of WordPress. * * @see Release Archive https://wordpress.org/download/release-archive/ * * @param integer $version Valid version number of the WordPress project. * @return object Associative object with the relative filepath and the checksums of the project files. */ public static function getOfficialChecksums($version = 0) { $url = 'https://api.wordpress.org/core/checksums/1.0/'; $language = 'en_US'; /* WPLANG does not works. */ $response = self::apiCall($url, 'GET', array( 'version' => $version, 'locale' => $language, )); if ($response) { if ($response['body'] instanceof stdClass) { $json_data = $response['body']; } else { $json_data = @json_decode($response['body']); } if (isset($json_data->checksums) && !empty($json_data->checksums) ) { if (count((array) $json_data->checksums) <= 1 && property_exists($json_data->checksums, $version) ) { $checksums = $json_data->checksums->{$version}; } else { $checksums = $json_data->checksums; } // Check whether the list of file is an object. if ($checksums instanceof stdClass) { return (array) $checksums; } } } return false; } /** * Check the plugins directory and retrieve all plugin files with plugin data. * This function will also retrieve the URL and name of the repository/page * where it is being published at the WordPress plugins market. * * @return array Key is the plugin file path and the value is an array of the plugin data. */ public static function getPlugins() { // Check if the cache library was loaded. $can_cache = class_exists('SucuriScanCache'); if ($can_cache) { $cache = new SucuriScanCache('plugindata'); $cached_data = $cache->get('plugins', SUCURISCAN_GET_PLUGINS_LIFETIME, 'array'); // Return the previously cached results of this function. if ($cached_data !== false) { return $cached_data; } } // Get the plugin's basic information from WordPress transient data. $plugins = get_plugins(); $pattern = '/^http(s)?:\/\/wordpress\.org\/plugins\/(.*)\/$/'; $wp_market = 'https://wordpress.org/plugins/%s/'; // Loop through each plugin data and complement its information with more attributes. foreach ($plugins as $plugin_path => $plugin_data) { // Default values for the plugin extra attributes. $repository = ''; $repository_name = ''; $is_free_plugin = false; /** * Extract the information of the plugin which includes the repository name, * repository URL, and if the source code of the plugin is publicly released or * not, in this last case if the source code of the plugin is not hosted in the * official WordPress server it means that it is premium and is being * distributed by an independent developer. */ if (isset($plugin_data['PluginURI']) && preg_match($pattern, $plugin_data['PluginURI'], $match) ) { $repository = $match[0]; $repository_name = $match[2]; $is_free_plugin = true; } else { if (strpos($plugin_path, '/') !== false) { $plugin_path_parts = explode('/', $plugin_path, 2); } else { $plugin_path_parts = explode('.', $plugin_path, 2); } if (isset($plugin_path_parts[0])) { $possible_repository = sprintf($wp_market, $plugin_path_parts[0]); $resp = wp_remote_head($possible_repository); if (!is_wp_error($resp) && $resp['response']['code'] == 200 ) { $repository = $possible_repository; $repository_name = $plugin_path_parts[0]; $is_free_plugin = true; } } } // Complement the plugin's information with these attributes. $plugins[$plugin_path]['Repository'] = $repository; $plugins[$plugin_path]['RepositoryName'] = $repository_name; $plugins[$plugin_path]['InstallationPath'] = sprintf('%s/%s', WP_PLUGIN_DIR, $repository_name); $plugins[$plugin_path]['IsFreePlugin'] = $is_free_plugin; $plugins[$plugin_path]['PluginType'] = ( $is_free_plugin ? 'free' : 'premium' ); $plugins[$plugin_path]['IsPluginActive'] = false; $plugins[$plugin_path]['IsPluginInstalled'] = false; if (is_plugin_active($plugin_path)) { $plugins[$plugin_path]['IsPluginActive'] = true; } if (is_dir($plugins[$plugin_path]['InstallationPath'])) { $plugins[$plugin_path]['IsPluginInstalled'] = true; } } if ($can_cache) { // Add the information of the plugins to the file-based cache. $cache->add('plugins', $plugins); } return $plugins; } /** * Retrieve plugin installer pages from WordPress Plugins API. * * It is possible for a plugin to override the Plugin API result with three * filters. Assume this is for plugins, which can extend on the Plugin Info to * offer more choices. This is very powerful and must be used with care, when * overriding the filters. * * The first filter, 'plugins_api_args', is for the args and gives the action as * the second parameter. The hook for 'plugins_api_args' must ensure that an * object is returned. * * The second filter, 'plugins_api', is the result that would be returned. * * @param string $plugin Frienly name of the plugin. * @return object Object on success, WP_Error on failure. */ public static function getRemotePluginData($plugin = '') { if (!empty($plugin)) { $url = sprintf('https://api.wordpress.org/plugins/info/1.0/%s.json', $plugin); $response = self::apiCall($url, 'GET'); if ($response) { if ($response['body'] instanceof stdClass) { return $response['body']; } } } return false; } /** * Retrieve a specific file from the official WordPress subversion repository, * the content of the file is determined by the tags defined using the site * version specified. Only official core files are allowed to fetch. * * @see https://core.svn.wordpress.org/ * @see https://i18n.svn.wordpress.org/ * @see https://core.svn.wordpress.org/tags/VERSION_NUMBER/ * * @param string $filepath Relative file path of a project core file. * @param string $version Optional site version, default will be the global version number. * @return string Full content of the official file retrieved, false if the file was not found. */ public static function getOriginalCoreFile($filepath = '', $version = 0) { if (!empty($filepath)) { if ($version == 0) { $version = self::site_version(); } $url = sprintf('https://core.svn.wordpress.org/tags/%s/%s', $version, $filepath); $response = self::apiCall($url, 'GET'); if ($response) { if (isset($response['headers']['content-length']) && $response['headers']['content-length'] > 0 && is_string($response['body']) ) { return $response['body']; } } } return false; } } /** * Process and send emails. * * One of the core features of the plugin is the event alerts, a list of rules * will check if the site is being compromised, in which case a notification * will be sent to the site email address (an address that can be configured in * the settings page). */ class SucuriScanMail extends SucuriScanOption { /** * Check whether the email notifications will be sent in HTML or Plain/Text. * * @return boolean Whether the emails will be in HTML or Plain/Text. */ public static function prettify_mails() { return self::is_enabled(':prettify_mails'); } /** * Send a message to a specific email address. * * @param string $email The email address of the recipient that will receive the message. * @param string $subject The reason of the message that will be sent. * @param string $message Body of the message that will be sent. * @param array $data_set Optional parameter to add more information to the notification. * @return boolean Whether the email contents were sent successfully. */ public static function send_mail($email = '', $subject = '', $message = '', $data_set = array()) { $headers = array(); $subject = ucwords(strtolower($subject)); $force = false; $debug = false; // Check whether the mail will be printed in the site instead of sent. if (isset($data_set['Debug']) && $data_set['Debug'] == true ) { $debug = true; unset($data_set['Debug']); } // Check whether the mail will be even if the limit per hour was reached or not. if (isset($data_set['Force']) && $data_set['Force'] == true ) { $force = true; unset($data_set['Force']); } // Check whether the email notifications will be sent in HTML or Plain/Text. if (self::prettify_mails()) { $headers = array( 'content-type: text/html' ); $data_set['PrettifyType'] = 'pretty'; } else { $message = strip_tags($message); } if (!self::emails_per_hour_reached() || $force || $debug) { $message = self::prettify_mail($subject, $message, $data_set); if ($debug) { die($message); } $subject = self::get_email_subject($subject); /** * WordPress uses a library named PHPMailer [1] to send emails through the * provided function wp_mail [2], unfortunately the debug information is * completely removed and this makes it difficult to troubleshoots issues * reported by users when the SMTP server in their sites is misconfigured. To * reduce the number of tickets related with this issue we will provide an * option to allow the users to choose which technique will be used to send the * notifications. * * [1] https://github.com/PHPMailer/PHPMailer * [2] https://developer.wordpress.org/reference/functions/wp_mail/ * * @var boolean */ if (SucuriScanOption::is_enabled(':use_wpmail')) { $mail_sent = wp_mail($email, $subject, $message, $headers); } else { $headers = implode("\r\n", $headers); $mail_sent = @mail($email, $subject, $message, $headers); } if ($mail_sent) { $emails_sent_num = (int) self::get_option(':emails_sent'); self::update_option(':emails_sent', $emails_sent_num + 1); self::update_option(':last_email_at', time()); return true; } } return false; } /** * Generate a subject for the email alerts. * * @param string $event The reason of the message that will be sent. * @return string A text with the subject for the email alert. */ private static function get_email_subject($event = '') { $subject = self::get_option(':email_subject'); /** * Probably a bad value in the options table. Delete the entry from the database * and call this function to try again, it will probably fall in an infinite * loop, but this is the easiest way to control this procedure. */ if (!$subject) { self::delete_option(':email_subject'); return self::get_email_subject($event); } $subject = strip_tags($subject); $subject = str_replace(':event', $event, $subject); $subject = str_replace(':domain', self::get_domain(), $subject); $subject = str_replace(':remoteaddr', self::get_remote_addr(), $subject); /** * Extract user data from the current session. * * Get the data of the user in the current session only if the pseudo-tags for * the username and/or email address are necessary to build the email subject, * otherwise this operation may delay the sending of the alerts. */ if (preg_match('/:(username|email)/', $subject)) { $user = wp_get_current_user(); $username = 'unknown'; $eaddress = 'unknown'; if ($user instanceof WP_User && isset($user->user_login) && isset($user->user_email) ) { $username = $user->user_login; $eaddress = $user->user_email; } $subject = str_replace(':username', $user->user_login, $subject); $subject = str_replace(':email', $user->user_email, $subject); } return $subject; } /** * Generate a HTML version of the message that will be sent through an email. * * @param string $subject The reason of the message that will be sent. * @param string $message Body of the message that will be sent. * @param array $data_set Optional parameter to add more information to the notification. * @return string The message formatted in a HTML template. */ private static function prettify_mail($subject = '', $message = '', $data_set = array()) { $prettify_type = isset($data_set['PrettifyType']) ? $data_set['PrettifyType'] : 'simple'; $template_name = 'notification-' . $prettify_type; $user = wp_get_current_user(); $display_name = ''; if ($user instanceof WP_User && isset($user->user_login) && !empty($user->user_login) ) { $display_name = sprintf('User: %s (%s)', $user->display_name, $user->user_login); } // Format list of items when the event has multiple entries. if (strpos($message, 'multiple') !== false) { $message_parts = SucuriScanAPI::parseMultipleEntries($message); if (is_array($message_parts)) { $message = ( $prettify_type == 'pretty' ) ? $message_parts[0] . '
          ' : $message_parts[0]; unset($message_parts[0]); foreach ($message_parts as $msg_part) { if ($prettify_type == 'pretty') { $message .= sprintf("
        • %s
        • \n", $msg_part); } else { $message .= sprintf("- %s\n", $msg_part); } } $message .= ( $prettify_type == 'pretty' ) ? '
        ' : ''; } } $mail_variables = array( 'TemplateTitle' => 'Sucuri Alert', 'Subject' => $subject, 'Website' => self::get_option('siteurl'), 'RemoteAddress' => self::get_remote_addr(), 'Message' => $message, 'User' => $display_name, 'Time' => SucuriScan::current_datetime(), ); foreach ($data_set as $var_key => $var_value) { $mail_variables[ $var_key ] = $var_value; } return SucuriScanTemplate::getSection($template_name, $mail_variables); } /** * Check whether the maximum quantity of emails per hour was reached. * * @return boolean Whether the quota emails per hour was reached. */ private static function emails_per_hour_reached() { $max_per_hour = self::get_option(':emails_per_hour'); if ($max_per_hour != 'unlimited') { // Check if we are still in that sixty minutes. $current_time = time(); $last_email_at = self::get_option(':last_email_at'); $diff_time = abs($current_time - $last_email_at); if ($diff_time <= 3600) { // Check if the quantity of emails sent is bigger than the configured. $emails_sent = (int) self::get_option(':emails_sent'); $max_per_hour = intval($max_per_hour); if ($emails_sent >= $max_per_hour) { return true; } } else { // Reset the counter of emails sent. self::update_option(':emails_sent', 0); } } return false; } } /** * Read, parse and handle everything related with the templates. * * A web template system uses a template processor to combine web templates to * form finished web pages, possibly using some data source to customize the * pages or present a large amount of content on similar-looking pages. It is a * web publishing tool present in content management systems, web application * frameworks, and HTML editors. * * Web templates can be used like the template of a form letter to either * generate a large number of "static" (unchanging) web pages in advance, or to * produce "dynamic" web pages on demand. */ class SucuriScanTemplate extends SucuriScanRequest { /** * Replace all pseudo-variables from a string of characters. * * @param string $content The content of a template file which contains pseudo-variables. * @param array $params List of pseudo-variables that will be replaced in the template. * @return string The content of the template with the pseudo-variables replated. */ private static function replacePseudoVars($content = '', $params = array()) { if (is_array($params)) { foreach ($params as $keyname => $kvalue) { $tplkey = 'SUCURI.' . $keyname; $with_escape = '%%' . $tplkey . '%%'; $wout_escape = '%%%' . $tplkey . '%%%'; if (strpos($content, $wout_escape) !== false) { $content = str_replace($wout_escape, $kvalue, $content); } elseif (strpos($content, $with_escape) !== false) { $kvalue = SucuriScan::escape($kvalue); $content = str_replace($with_escape, $kvalue, $content); } } return $content; } return false; } /** * Gather and generate the information required globally by all the template files. * * @param array $params Key-value array with pseudo-variables shared with the template. * @return array A complementary list of pseudo-variables for the template files. */ private static function sharedParams($params = array()) { $params = is_array($params) ? $params : array(); // Base parameters, required to render all the pages. $params = self::linksAndNavbar($params); // Global parameters, used through out all the pages. $params['PageTitle'] = isset($params['PageTitle']) ? '('.$params['PageTitle'].')' : ''; $params['PageNonce'] = wp_create_nonce('sucuriscan_page_nonce'); $params['PageStyleClass'] = isset($params['PageStyleClass']) ? $params['PageStyleClass'] : 'base'; $params['CleanDomain'] = self::get_domain(); $params['AdminEmails'] = ''; // Get a list of admin users for the API key generation. if (SucuriScanAPI::getPluginKey() === false) { $admin_users = SucuriScan::get_users_for_api_key(); $params['AdminEmails'] = self::selectOptions($admin_users); } // Hide the advertisements from the layout. if (SucuriScanOption::is_disabled(':ads_visibility')) { $params['LayoutType'] = 'onecolumn'; $params['AdsVisibility'] = 'hidden'; $params['ReviewNavbarButton'] = 'visible'; $params['PageSidebarContent'] = ''; } else { $params['LayoutType'] = 'twocolumns'; $params['AdsVisibility'] = 'visible'; $params['ReviewNavbarButton'] = 'hidden'; $params['PageSidebarContent'] = self::getTemplate('bsidebar', $params, 'section'); } return $params; } /** * Return a string indicating the visibility of a HTML component. * * @param boolean $visible Whether the condition executed returned a positive value or not. * @return string A string indicating the visibility of a HTML component. */ public static function visibility($visible = false) { return ($visible === true ? 'visible' : 'hidden'); } /** * Generate an URL pointing to the page indicated in the function and that must * be loaded through the administrator panel. * * @param string $page Short name of the page that will be generated. * @param boolean $ajax True if the URL should point to the Ajax handler. * @return string Full string containing the link of the page. */ public static function getUrl($page = '', $ajax = false) { $suffix = ($ajax === true) ? 'admin-ajax' : 'admin'; $url_path = SucuriScan::admin_url($suffix . '.php?page=sucuriscan'); if (!empty($page)) { $url_path .= '_' . strtolower($page); } return $url_path; } /** * Generate an URL pointing to the page indicated in the function and that must * be loaded through the Ajax handler of the administrator panel. * * @param string $page Short name of the page that will be generated. * @return string Full string containing the link of the page. */ public static function getAjaxUrl($page = '') { return self::getUrl($page, true); } /** * Complement the list of pseudo-variables that will be used in the base * template files, this will also generate the navigation bar and detect which * items in it are selected by the current page. * * @param array $params Key-value array with pseudo-variables shared with the template. * @return array A complementary list of pseudo-variables for the template files. */ private static function linksAndNavbar($params = array()) { global $sucuriscan_pages; $params = is_array($params) ? $params : array(); $sub_pages = is_array($sucuriscan_pages) ? $sucuriscan_pages : array(); $params['Navbar'] = ''; $params['CurrentPageFunc'] = ''; if ($_page = self::get('page', '_page')) { $params['CurrentPageFunc'] = $_page; } foreach ($sub_pages as $sub_page_func => $sub_page_title) { if ($sub_page_func == 'sucuriscan_scanner' && SucuriScanOption::is_disabled(':sitecheck_scanner') ) { continue; } $func_parts = explode('_', $sub_page_func, 2); if (isset($func_parts[1])) { $unique_name = $func_parts[1]; $pseudo_var = 'URL.' . ucwords($unique_name); } else { $unique_name = ''; $pseudo_var = 'URL.Home'; } $params[$pseudo_var] = self::getUrl($unique_name); // Copy URL variable and create an Ajax handler. $pseudo_var_ajax = 'Ajax' . $pseudo_var; $params[$pseudo_var_ajax] = self::getAjaxUrl($unique_name); $navbar_item_css_class = 'nav-tab'; if ($params['CurrentPageFunc'] == $sub_page_func) { $navbar_item_css_class .= "\x20nav-tab-active"; } $params['Navbar'] .= sprintf( "%s\n", $navbar_item_css_class, $params[$pseudo_var], $sub_page_title ); } return $params; } /** * Generate a HTML code using a template and replacing all the pseudo-variables * by the dynamic variables provided by the developer through one of the parameters * of the function. * * @param string $html The HTML content of a template file with its pseudo-variables parsed. * @param array $params Key-value array with pseudo-variables shared with the template. * @return string The formatted HTML content of the base template. */ public static function getBaseTemplate($html = '', $params = array()) { $params = is_array($params) ? $params : array(); $params = self::sharedParams($params); $params['PageContent'] = $html; return self::getTemplate('base', $params); } /** * Generate a HTML code using a template and replacing all the pseudo-variables * by the dynamic variables provided by the developer through one of the parameters * of the function. * * @param string $template Filename of the template that will be used to generate the page. * @param array $params Key-value array with pseudo-variables shared with the template. * @param boolean $type Template type; either page, section or snippet. * @return string Formatted HTML code after pseudo-variables replacement. */ public static function getTemplate($template = '', $params = array(), $type = 'page') { if (!is_array($params)) { $params = array(); } if ($type == 'page' || $type == 'section') { $fpath_pattern = '%s/%s/inc/tpl/%s.html.tpl'; } elseif ($type == 'snippet') { $fpath_pattern = '%s/%s/inc/tpl/%s.snippet.tpl'; } else { $fpath_pattern = null; } if ($fpath_pattern !== null) { $output = ''; $fpath = sprintf($fpath_pattern, WP_PLUGIN_DIR, SUCURISCAN_PLUGIN_FOLDER, $template); if (file_exists($fpath) && is_readable($fpath)) { $output = @file_get_contents($fpath); $params['SucuriURL'] = SUCURISCAN_URL; // Detect the current page URL. if ($_page = self::get('page', '_page')) { $params['CurrentURL'] = SucuriScan::admin_url('admin.php?page=' . $_page); } else { $params['CurrentURL'] = SucuriScan::admin_url(); } // Replace the global pseudo-variables in the section/snippets templates. if ($template == 'base' && array_key_exists('PageContent', $params) && @preg_match('/%%SUCURI\.(.+)%%/', $params['PageContent']) ) { $params['PageContent'] = self::replacePseudoVars($params['PageContent'], $params); } $output = self::replacePseudoVars($output, $params); } if ($template == 'base' || $type != 'page') { return $output; } return self::getBaseTemplate($output, $params); } return ''; } /** * Generate a HTML code using a template and replacing all the pseudo-variables * by the dynamic variables provided by the developer through one of the parameters * of the function. * * @param string $template Filename of the template that will be used to generate the page. * @param array $params Key-value array with pseudo-variables shared with the template. * @return string The formatted HTML page after replace all the pseudo-variables. */ public static function getSection($template = '', $params = array()) { $params = self::sharedParams($params); return self::getTemplate($template, $params, 'section'); } /** * Generate a HTML code using a template and replacing all the pseudo-variables * by the dynamic variables provided by the developer through one of the parameters * of the function. * * @param string $template Filename of the template that will be used to generate the page. * @param array $params Key-value array with pseudo-variables shared with the template. * @return string The formatted HTML page after replace all the pseudo-variables. */ public static function getModal($template = '', $params = array()) { $required = array( 'Title' => 'Lorem ipsum dolor sit amet', 'Visibility' => 'visible', 'Identifier' => 'foobar', 'CssClass' => '', 'Content' => '

        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

        ', ); if (!empty($template) && $template != 'none') { $params['Content'] = self::getSection($template); } foreach ($required as $param_name => $param_value) { if (!isset($params[$param_name])) { $params[$param_name] = $param_value; } } $params['Visibility'] = 'sucuriscan-' . $params['Visibility']; $params['Identifier'] = 'sucuriscan-' . $template . '-modal'; $params = self::sharedParams($params); return self::getTemplate('modalwindow', $params, 'section'); } /** * Generate a HTML code using a template and replacing all the pseudo-variables * by the dynamic variables provided by the developer through one of the parameters * of the function. * * @param string $template Filename of the template that will be used to generate the page. * @param array $params Key-value array with pseudo-variables shared with the template. * @return string The formatted HTML page after replace all the pseudo-variables. */ public static function getSnippet($template = '', $params = array()) { return self::getTemplate($template, $params, 'snippet'); } /** * Generate the HTML code necessary to render a list of options in a form. * * @param array $allowed_values List with keys and values allowed for the options. * @param string $selected_val Value of the option that will be selected by default. * @return string Option list for a select form field. */ public static function selectOptions($allowed_values = array(), $selected_val = '') { $options = ''; foreach ($allowed_values as $option_name => $option_label) { $options .= sprintf( "\n", ($option_name === $selected_val ? 'selected="selected"' : ''), SucuriScan::escape($option_name), SucuriScan::escape($option_label) ); } return $options; } /** * Detect which number in a pagination was clicked. * * @return integer Page number of the link clicked in a pagination. */ public static function pageNumber() { $paged = self::get('paged', '[0-9]{1,5}'); return ($paged ? intval($paged) : 1); } /** * Generate the HTML code to display a pagination. * * @param string $base_url Base URL for the links before the page number. * @param integer $total_items Total quantity of items retrieved from a query. * @param integer $max_per_page Maximum number of items that will be shown per page. * @return string HTML code for a pagination generated using the provided data. */ public static function pagination($base_url = '', $total_items = 0, $max_per_page = 1) { // Calculate the number of links for the pagination. $html_links = ''; $page_number = self::pageNumber(); $max_pages = ceil($total_items / $max_per_page); $extra_url = ''; // Fix for inline anchor URLs. if (@preg_match('/^(.+)(#.+)$/', $base_url, $match)) { $base_url = $match[1]; $extra_url = $match[2]; } // Generate the HTML links for the pagination. for ($j = 1; $j <= $max_pages; $j++) { $link_class = 'sucuriscan-pagination-link'; if ($page_number == $j) { $link_class .= "\x20sucuriscan-pagination-active"; } $html_links .= sprintf( '
      • %s
      • ', $base_url, $j, $extra_url, $link_class, $j ); } return $html_links; } } /** * File System Scanner * * The File System Scanner component performs full and incremental scans over a * file system folder, maintaining a snapshot of the filesystem and comparing it * with the current content to establish what content has been updated. Updated * content is then submitted to the remote server and it is stored for future * analysis. */ class SucuriScanFSScanner extends SucuriScan { /** * Retrieve the last time when the filesystem scan was ran. * * @param boolean $format Whether the timestamp must be formatted as date/time or not. * @return string The timestamp of the runtime, or an string with the date/time. */ public static function get_filesystem_runtime($format = false) { $runtime = SucuriScanOption::get_option(':runtime'); if ($runtime > 0) { if ($format) { return SucuriScan::datetime($runtime); } return $runtime; } if ($format) { return 'Unknown'; } return false; } /** * Check whether the administrator enabled the feature to ignore some * directories during the file system scans. This function is overwritten by a * GET parameter in the settings page named no_scan which must be equal to the * number one. * * @return boolean Whether the feature to ignore files is enabled or not. */ public static function will_ignore_scanning() { return SucuriScanOption::is_enabled(':ignore_scanning'); } /** * Add a new directory path to the list of ignored paths. * * @param string $directory_path The (full) absolute path of a directory. * @return boolean TRUE if the directory path was added to the list, FALSE otherwise. */ public static function ignore_directory($directory_path = '') { $cache = new SucuriScanCache('ignorescanning'); // Use the checksum of the directory path as the cache key. $cache_key = md5($directory_path); $resource_type = SucuriScanFileInfo::get_resource_type($directory_path); $cache_value = array( 'directory_path' => $directory_path, 'ignored_at' => self::local_time(), 'resource_type' => $resource_type, ); $cached = $cache->add($cache_key, $cache_value); return $cached; } /** * Remove a directory path from the list of ignored paths. * * @param string $directory_path The (full) absolute path of a directory. * @return boolean TRUE if the directory path was removed to the list, FALSE otherwise. */ public static function unignore_directory($directory_path = '') { $cache = new SucuriScanCache('ignorescanning'); // Use the checksum of the directory path as the cache key. $cache_key = md5($directory_path); $removed = $cache->delete($cache_key); return $removed; } /** * Retrieve a list of directories ignored. * * Retrieve a list of directory paths that will be ignored during the file * system scans, any sub-directory and files inside these folders will be * skipped automatically and will not be used to detect malware or modifications * in the site. * * The structure of the array returned by the function will always be composed * by four (4) indexes which will facilitate the execution of common conditions * in the implementation code. * *
          *
        • raw: Will contains the raw data retrieved from the built-in cache system.
        • *
        • checksums: Will contains the md5 of all the directory paths.
        • *
        • directories: Will contains a list of directory paths.
        • *
        • ignored_at_list: Will contains a list of timestamps for when the directories were ignored.
        • *
        * * @return array List of ignored directory paths. */ public static function get_ignored_directories() { $response = array( 'raw' => array(), 'checksums' => array(), 'directories' => array(), 'ignored_at_list' => array(), ); $cache = new SucuriScanCache('ignorescanning'); $cache_lifetime = 0; // It is not necessary to expire this cache. $ignored_directories = $cache->getAll($cache_lifetime, 'array'); if ($ignored_directories) { $response['raw'] = $ignored_directories; foreach ($ignored_directories as $checksum => $data) { if (array_key_exists('directory_path', $data) && array_key_exists('ignored_at', $data) ) { $response['checksums'][] = $checksum; $response['directories'][] = $data['directory_path']; $response['ignored_at_list'][] = $data['ignored_at']; } } } return $response; } /** * Run file system scan and retrieve ignored folders. * * Run a file system scan and retrieve an array with two indexes, the first * containing a list of ignored directory paths and their respective timestamps * of when they were added by an administrator user, and the second containing a * list of directories that are not being ignored. * * @return array List of ignored and not ignored directories. */ public static function get_ignored_directories_live() { $response = array( 'is_ignored' => array(), 'is_not_ignored' => array(), ); // Get the ignored directories from the cache. $ignored_directories = self::get_ignored_directories(); if ($ignored_directories) { $response['is_ignored'] = $ignored_directories['raw']; } // Scan the project and file all directories. $file_info = new SucuriScanFileInfo(); $file_info->ignore_files = true; $file_info->ignore_directories = true; $file_info->scan_interface = SucuriScanOption::get_option(':scan_interface'); $directory_list = $file_info->get_diretories_only(ABSPATH); if ($directory_list) { $response['is_not_ignored'] = $directory_list; } return $response; } /** * Read and parse the lines inside a PHP error log file. * * @param array $error_logs The content of an error log file, or an array with the lines. * @return array List of valid error logs with their attributes separated. */ public static function parse_error_logs($error_logs = array()) { $logs_arr = array(); $pattern = '/^' . '(\[(\S+) ([0-9:]{5,8})( \S+)?\] )?' // Detect date, time, and timezone. . '(PHP )?([a-zA-Z ]+):\s' // Detect PHP error severity. . '(.+) in (.+)' // Detect error message, and file path. . '(:| on line )([0-9]+)' // Detect line number. . '$/'; if (is_string($error_logs)) { $error_logs = explode("\n", $error_logs); } foreach ((array) $error_logs as $line) { if (!is_string($line) || empty($line)) { continue; } if (preg_match($pattern, $line, $match)) { $data_set = array( 'date' => '', 'time' => '', 'timestamp' => 0, 'date_time' => '', 'time_zone' => '', 'error_type' => '', 'error_code' => 'unknown', 'error_message' => '', 'file_path' => '', 'line_number' => 0, ); // Basic attributes from the scrapping. $data_set['date'] = $match[2]; $data_set['time'] = $match[3]; $data_set['time_zone'] = trim($match[4]); $data_set['error_type'] = trim($match[6]); $data_set['error_message'] = trim($match[7]); $data_set['file_path'] = trim($match[8]); $data_set['line_number'] = (int) $match[10]; // Additional data from the attributes. if ($data_set['date']) { $data_set['date_time'] = $data_set['date'] . "\x20" . $data_set['time'] . "\x20" . $data_set['time_zone']; $data_set['timestamp'] = strtotime($data_set['date_time']); } if ($data_set['error_type']) { $valid_types = array( 'warning', 'notice', 'error' ); foreach ($valid_types as $valid_type) { if (stripos($data_set['error_type'], $valid_type) !== false) { $data_set['error_code'] = $valid_type; break; } } } $logs_arr[] = (object) $data_set; } } return $logs_arr; } } /** * Heartbeat library. * * The purpose of the Heartbeat API is to simulate bidirectional connection * between the browser and the server. Initially it was used for autosave, post * locking and log-in expiration warning while a user is writing or editing. The * idea was to have an API that sends XHR (XML HTTP Request) requests to the * server every fifteen seconds and triggers events (or callbacks) on receiving * data. * * @see https://core.trac.wordpress.org/ticket/23216 */ class SucuriScanHeartbeat extends SucuriScanOption { /** * Stop execution of the heartbeat API in certain parts of the site. * * @return void */ public static function register_script() { global $pagenow; $status = SucuriScanOption::get_option(':heartbeat'); // Enable heartbeat everywhere. if ($status == 'enabled') { /* Do nothing */ } // Disable heartbeat everywhere. elseif ($status == 'disabled') { wp_deregister_script('heartbeat'); } // Disable heartbeat only on the dashboard and home pages. elseif ($status == 'dashboard' && $pagenow == 'index.php' ) { wp_deregister_script('heartbeat'); } // Disable heartbeat everywhere except in post edition. elseif ($status == 'addpost' && $pagenow != 'post.php' && $pagenow != 'post-new.php' ) { wp_deregister_script('heartbeat'); } } /** * Update the settings of the Heartbeat API according to the values set by an * administrator. This tool may cause an increase in the CPU usage, a bad * configuration may cause low account to run out of resources, but in better * cases it may improve the performance of the site by reducing the quantity of * requests sent to the server per session. * * @param array $settings Heartbeat settings. * @return array Updated version of the heartbeat settings. */ public static function update_settings($settings = array()) { $pulse = SucuriScanOption::get_option(':heartbeat_pulse'); $autostart = SucuriScanOption::get_option(':heartbeat_autostart'); if ($pulse < 15 || $pulse > 60) { SucuriScanOption::delete_option(':heartbeat_pulse'); $pulse = 15; } $settings['interval'] = $pulse; $settings['autostart'] = ( $autostart == 'disabled' ? false : true ); return $settings; } /** * Respond to the browser according to the data received. * * @param array $response Response received. * @param array $data Data received from the beat. * @param string $screen_id Identifier of the screen the heartbeat occurred on. * @return array Response with new data. */ public static function respond_to_received($response = array(), $data = array(), $screen_id = '') { $interval = SucuriScanOption::get_option(':heartbeat_interval'); if ($interval == 'slow' || $interval == 'fast' || $interval == 'standard' ) { $response['heartbeat_interval'] = $interval; } else { SucuriScanOption::delete_option(':heartbeat_interval'); } return $response; } /** * Respond to the browser according to the data sent. * * @param array $response Response sent. * @param string $screen_id Identifier of the screen the heartbeat occurred on. * @return array Response with new data. */ public static function respond_to_send($response = array(), $screen_id = '') { return $response; } /** * Allowed values for the heartbeat status. * * @return array Allowed values for the heartbeat status. */ public static function statuses_allowed() { return array( 'enabled' => 'Enable everywhere', 'disabled' => 'Disable everywhere', 'dashboard' => 'Disable on dashboard page', 'addpost' => 'Everywhere except post addition', ); } /** * Allowed values for the heartbeat intervals. * * @return array Allowed values for the heartbeat intervals. */ public static function intervals_allowed() { return array( 'slow' => 'Slow interval', 'fast' => 'Fast interval', 'standard' => 'Standard interval', ); } /** * Allowed values for the heartbeat pulses. * * @return array Allowed values for the heartbeat pulses. */ public static function pulses_allowed() { $pulses = array(); for ($i = 15; $i <= 60; $i++) { $pulses[ $i ] = sprintf('Run every %d seconds', $i); } return $pulses; } } /** * Plugin initializer. * * Define all the required variables, script, styles, and basic functions needed * when the site is loaded, not even the administrator panel but also the front * page, some bug-fixes will/are applied here for sites behind a proxy, and * sites with old versions of the premium plugin (that was deprecated at * July/2014). */ class SucuriScanInterface { /** * Initialization code for the plugin. * * The initial variables and information needed by the plugin during the * execution of other functions will be generated. Things like the real IP * address of the client when it has been forwarded or it's behind an external * service like a Proxy. * * @return void */ public static function initialize() { if (SucuriScan::support_reverse_proxy() || SucuriScan::is_behind_cloudproxy() ) { $_SERVER['SUCURIREAL_REMOTE_ADDR'] = $_SERVER['REMOTE_ADDR']; $_SERVER['REMOTE_ADDR'] = SucuriScan::get_remote_addr(); } } /** * Define which javascript and css files will be loaded in the header of the * plugin pages, only when the administrator panel is accessed. * * @return void */ public static function enqueue_scripts() { $asset_version = ''; if (strlen(SUCURISCAN_PLUGIN_CHECKSUM) >= 7) { $asset_version = substr(SUCURISCAN_PLUGIN_CHECKSUM, 0, 7); } wp_register_style('sucuriscan', SUCURISCAN_URL . '/inc/css/sucuri-scanner.min.css', array(), $asset_version); wp_register_script('sucuriscan', SUCURISCAN_URL . '/inc/js/sucuri-scanner.min.js', array(), $asset_version); wp_enqueue_style('sucuriscan'); wp_enqueue_script('sucuriscan'); if (SucuriScanRequest::get('page', 'sucuriscan') !== false) { wp_register_script('sucuriscan2', SUCURISCAN_URL . '/inc/js/d3.min.js', array(), $asset_version); wp_register_script('sucuriscan3', SUCURISCAN_URL . '/inc/js/c3.min.js', array(), $asset_version); wp_enqueue_script('sucuriscan2'); wp_enqueue_script('sucuriscan3'); } } /** * Generate the menu and submenus for the plugin in the admin interface. * * @return void */ public static function add_interface_menu() { global $sucuriscan_pages; if (function_exists('add_menu_page') && $sucuriscan_pages && is_array($sucuriscan_pages) && array_key_exists('sucuriscan', $sucuriscan_pages) ) { // Add main menu link. add_menu_page( 'Sucuri Security', 'Sucuri Security', 'manage_options', 'sucuriscan', 'sucuriscan_page', SUCURISCAN_URL . '/inc/images/menu-icon.png' ); foreach ($sucuriscan_pages as $sub_page_func => $sub_page_title) { if ($sub_page_func == 'sucuriscan_scanner' && SucuriScanOption::is_disabled(':sitecheck_scanner') ) { continue; } $page_func = $sub_page_func . '_page'; add_submenu_page( 'sucuriscan', $sub_page_title, $sub_page_title, 'manage_options', $sub_page_func, $page_func ); } } } /** * Remove the old Sucuri plugins considering that with the new version (after * 1.6.0) all the functionality of the others will be merged here, this will * remove duplicated functionality, duplicated bugs and/or duplicated * maintenance reports allowing us to focus in one unique project. * * @return void */ public static function handle_old_plugins() { if (class_exists('SucuriScanFileInfo')) { $file_info = new SucuriScanFileInfo(); $file_info->ignore_files = false; $file_info->ignore_directories = false; $plugins = array( 'sucuri-wp-plugin/sucuri.php', 'sucuri-cloudproxy-waf/cloudproxy.php', ); foreach ($plugins as $plugin) { $plugin_directory = dirname(WP_PLUGIN_DIR . '/' . $plugin); if (file_exists($plugin_directory)) { if (is_plugin_active($plugin)) { deactivate_plugins($plugin); } $plugin_removed = $file_info->remove_directory_tree($plugin_directory); } } } } /** * Create a folder in the WordPress upload directory where the plugin will * store all the temporal or dynamic information. * * @return void */ public static function create_datastore_folder() { $directory = SucuriScan::datastore_folder_path(); if (!file_exists($directory)) { @mkdir($directory, 0755, true); } if (@preg_match(';/uploads/$;', $directory)) { SucuriScanOption::delete_option(':datastore_path'); SucuriScanInterface::error('Uploads directory must not be used as the data store path.'); } elseif (file_exists($directory)) { // Create last-logins datastore file. sucuriscan_lastlogins_datastore_exists(); // Create a htaccess file to deny access from all. @file_put_contents( $directory . '/.htaccess', "Order Deny,Allow\nDeny from all\n", LOCK_EX ); // Create an index.html to avoid directory listing. @file_put_contents( $directory . '/index.html', '', LOCK_EX ); } else { SucuriScanOption::delete_option(':datastore_path'); SucuriScanInterface::error( 'Data folder does not exists and could not be created. Try to click this link to see if the plugin is able to fix this error automatically, if this message reappears you will need to either change the location of the directory from the plugin general settings page or create this directory manually and give it write permissions: ' . $directory . '' ); } } /** * Check whether a user has the permissions to see a page from the plugin. * * @return void */ public static function check_permissions() { if (!function_exists('current_user_can') || !current_user_can('manage_options') ) { $page = SucuriScanRequest::get('page', '_page'); $page = SucuriScan::escape($page); wp_die(__('Access denied by Sucuri to see ' . $page . '')); } } /** * Verify the nonce of the previous page after a form submission. If the * validation fails the execution of the script will be stopped and a dead page * will be printed to the client using the official WordPress method. * * @return boolean Either TRUE or FALSE if the nonce is valid or not respectively. */ public static function check_nonce() { if (!empty($_POST)) { $nonce_name = 'sucuriscan_page_nonce'; $nonce_value = SucuriScanRequest::post($nonce_name, '_nonce'); if (!$nonce_value || !wp_verify_nonce($nonce_value, $nonce_name)) { wp_die(__('WordPress Nonce verification failed, try again going back and checking the form.')); return false; } } return true; } /** * Prints a HTML alert in the WordPress admin interface. * * @param string $type The type of alert, it can be either Updated or Error. * @param string $message The message that will be printed in the alert. * @return void */ private static function admin_notice($type = 'updated', $message = '') { $display_notice = true; /** * Do not render notice during user authentication. * * There are some special cases when the error or warning messages should not be * rendered to the end user because it may break the default functionality of * the request handler. For instance, rendering an HTML alert like this when the * user authentication process is executed may cause a "headers already sent" * error. */ if (!empty($_POST) && SucuriScanRequest::post('log') && SucuriScanRequest::post('pwd') && SucuriScanRequest::post('wp-submit') ) { $display_notice = false; } // Display the HTML notice to the current user. if ($display_notice === true && !empty($message)) { echo SucuriScanTemplate::getSection( 'notification-admin', array( 'AlertType' => $type, 'AlertUnique' => rand(100, 999), 'AlertMessage' => $message, ) ); } } /** * Prints a HTML alert of type ERROR in the WordPress admin interface. * * @param string $error_msg The message that will be printed in the alert. * @return void */ public static function error($error_msg = '') { self::admin_notice('error', 'Sucuri: ' . $error_msg); } /** * Prints a HTML alert of type INFO in the WordPress admin interface. * * @param string $info_msg The message that will be printed in the alert. * @return void */ public static function info($info_msg = '') { self::admin_notice('updated', 'Sucuri: ' . $info_msg); } /** * Display a notice message with instructions to continue the setup of the * plugin, this includes the generation of the API key and other steps that need * to be done to fully activate this plugin. * * @return void */ public static function setup_notice() { if (current_user_can('manage_options') && SucuriScan::no_notices_here() === false && !SucuriScanAPI::getPluginKey() && SucuriScanRequest::post(':plugin_api_key') === false && SucuriScanRequest::post(':recover_key') === false && !SucuriScanRequest::post(':manual_api_key') ) { if (SucuriScanRequest::get(':dismiss_setup') !== false) { SucuriScanOption::update_option(':dismiss_setup', 'enabled'); } elseif (SucuriScanOption::is_enabled(':dismiss_setup')) { /* Do not display API key generation form. */ } else { echo SucuriScanTemplate::getSection('setup-notice'); echo SucuriScanTemplate::getModal('setup-form', array( 'Visibility' => 'hidden', 'Title' => 'Sucuri API key generation', 'CssClass' => 'sucuriscan-setup-instructions', )); } } } } /** * Scan the content directory for files that were modified during the last seven * days (by default) or during the number of days specified by the user in the * request. Note that this operation may fail with an internal server error if * the project contains too many files that the PHP interpreter can check in a * single run. * * @return void */ function sucuriscan_modified_files() { // TODO: Keep the array values hardcoded for now. $valid_day_ranges = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 60); $template_variables = array( 'ModifiedFiles.List' => '', 'ModifiedFiles.SelectOptions' => '', 'ModifiedFiles.Days' => 0, ); // Generate the options for the select field of the page form. if ($valid_day_ranges) { $options = array(); foreach ($valid_day_ranges as $day) { $options[$day] = sprintf( '%d day%s ago', $day, ($day === 1)?'':'s' ); } $options_html = SucuriScanTemplate::selectOptions($options, 7); $template_variables['ModifiedFiles.SelectOptions'] = $options_html; } return SucuriScanTemplate::getSection('integrity-modifiedfiles', $template_variables); } function sucuriscan_scanner_modfiles_days($back_days = 0) { $default_number_of_days = 7; $back_days = intval($back_days); // Keep the number of days in range. if ($back_days === false) { $back_days = $default_number_of_days; } else { if ($back_days <= 0) { $back_days = 1; } elseif ($back_days >= 60) { $back_days = 60; } } return $back_days; } function sucuriscan_scanner_modfiles_ajax() { if (SucuriScanRequest::post('form_action') == 'get_modfiles') { $response = ''; $hashes = sucuriscan_get_integrity_tree(WP_CONTENT_DIR, true); $back_days = SucuriScanRequest::post(':last_days', '[0-9]+'); $back_days = sucuriscan_scanner_modfiles_days($back_days); if (!empty($hashes)) { $counter = 0; $back_days = current_time('timestamp') - ($back_days * 86400); foreach ($hashes as $file_path => $file_info) { if (isset($file_info['modified_at']) && $file_info['modified_at'] >= $back_days ) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $mod_date = SucuriScan::datetime($file_info['modified_at']); $response .= SucuriScanTemplate::getSnippet( 'integrity-modifiedfiles', array( 'ModifiedFiles.DateTime' => $mod_date, 'ModifiedFiles.FilePath' => $file_path, 'ModifiedFiles.CheckSum' => $file_info['checksum'], 'ModifiedFiles.FileSize' => $file_info['filesize'], 'ModifiedFiles.FileSizeHuman' => SucuriScan::human_filesize($file_info['filesize']), 'ModifiedFiles.FileSizeNumber' => number_format($file_info['filesize']), 'ModifiedFiles.CssClass' => $css_class, ) ); $counter++; } } } print($response); exit(0); } } /** * Display the page with a temporary message explaining the action that will be * performed once the hidden form is submitted to retrieve the scanning results * from the public SiteCheck API. * * @return void */ function sucuriscan_scanner_page() { SucuriScanInterface::check_permissions(); $params = array(); $cache = new SucuriScanCache('sitecheck'); $scan_results = $cache->get('scan_results', SUCURISCAN_SITECHECK_LIFETIME, 'array'); $report_results = (bool) ($scan_results && !empty($scan_results)); if (SucuriScanInterface::check_nonce() && SucuriScanRequest::post(':malware_scan', '1') ) { $report_results = true; } if ($report_results === true) { $template_name = 'malwarescan-results'; $params = sucuriscan_sitecheck_info($scan_results); $params['PageTitle'] = 'Malware Scan'; $params['PageStyleClass'] = 'scanner-results'; } else { $template_name = 'malwarescan'; $params['PageTitle'] = 'Malware Scan'; $params['PageStyleClass'] = 'scanner-loading'; } echo SucuriScanTemplate::getTemplate($template_name, $params); } /** * Handle an Ajax request for this specific page. * * @return mixed. */ function sucuriscan_scanner_ajax() { SucuriScanInterface::check_permissions(); if (SucuriScanInterface::check_nonce()) { sucuriscan_scanner_modfiles_ajax(); } wp_die(); } /** * Display the result of site scan made through SiteCheck. * * @param array $scan_results Array with information of the scanning. * @return array Array with psuedo-variables to build the template. */ function sucuriscan_sitecheck_info($scan_results = array()) { $clean_domain = SucuriScan::get_domain(); $params = array( 'ScannedDomainName' => $clean_domain, 'ScannerResults.CssClass' => '', 'ScannerResults.Content' => '', 'WebsiteDetails.CssClass' => '', 'WebsiteDetails.Content' => '', 'BlacklistStatus.CssClass' => '', 'BlacklistStatus.Content' => '', 'WebsiteLinks.CssClass' => '', 'WebsiteLinks.Content' => '', 'ModifiedFiles.CssClass' => '', 'ModifiedFiles.Content' => '', 'SignupButtonVisibility' => 'hidden', ); // If the results are not cached, then request a new scan and store in cache. if ($scan_results === false) { $scan_results = SucuriScanAPI::getSitecheckResults($clean_domain); // Check for error messages in the request's response. if (is_string($scan_results)) { if (@preg_match('/^ERROR:(.*)/', $scan_results, $error_m)) { SucuriScanInterface::error( 'The site ' . SucuriScan::escape($clean_domain) . '' . ' was not scanned: ' . SucuriScan::escape($error_m[1]) ); } else { SucuriScanInterface::error('SiteCheck error: ' . $scan_results); } } else { $cache = new SucuriScanCache('sitecheck'); $results_were_cached = $cache->add('scan_results', $scan_results); if (!$results_were_cached) { SucuriScanInterface::error('Could not cache the malware scan results.'); } } } if (is_array($scan_results) && !empty($scan_results)) { // Increase the malware scan counter. $sitecheck_counter = (int) SucuriScanOption::get_option(':sitecheck_counter'); SucuriScanOption::update_option(':sitecheck_counter', $sitecheck_counter + 1); add_thickbox(); $params = sucuriscan_sitecheck_scanner_results($scan_results, $params); $params = sucuriscan_sitecheck_website_details($scan_results, $params); $params = sucuriscan_sitecheck_website_links($scan_results, $params); $params = sucuriscan_sitecheck_blacklist_status($scan_results, $params); $params = sucuriscan_sitecheck_modified_files($scan_results, $params); if (isset($scan_results['MALWARE']['WARN']) || isset($scan_results['BLACKLIST']['WARN']) ) { $params['SignupButtonVisibility'] = 'visible'; } } return $params; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * remote scanner results tab. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_scanner_results($scan_results = false, $params = array()) { $secvars = array( 'CacheLifeTime' => SUCURISCAN_SITECHECK_LIFETIME, 'WebsiteStatus' => 'Site status unknown', 'NoMalwareRowVisibility' => 'visible', 'FixButtonVisibility' => 'hidden', 'MalwarePayloadList' => '', ); if (isset($scan_results['MALWARE']['WARN'])) { $params['ScannerResults.CssClass'] = 'sucuriscan-red-tab'; $secvars['WebsiteStatus'] = 'Site compromised (malware was identified)'; $secvars['NoMalwareRowVisibility'] = 'hidden'; $secvars['FixButtonVisibility'] = 'visible'; foreach ($scan_results['MALWARE']['WARN'] as $key => $malres) { $malres = SucuriScanAPI::getSitecheckMalware($malres); if ($malres !== false) { $secvars['MalwarePayloadList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-resmalware', array( 'MalwareKey' => $key, 'MalwareDocs' => $malres['malware_docs'], 'MalwareType' => $malres['malware_type'], 'MalwarePayload' => $malres['malware_payload'], 'AlertMessage' => $malres['alert_message'], 'InfectedUrl' => $malres['infected_url'], ) ); } } } else { $secvars['WebsiteStatus'] = 'Site clean (no malware was identified)'; } $params['ScannerResults.Content'] = SucuriScanTemplate::getSection('malwarescan-resmalware', $secvars); return $params; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_website_details($scan_results = false, $params = array()) { $secvars = array( 'UpdateWebsiteButtonVisibility' => 'hidden', 'VersionNumberOfTheUpdate' => '0.0', 'AdminUrlForUpdates' => SucuriScan::admin_url('update-core.php'), 'GenericInformationList' => '', 'NoAppDetailsVisibility' => 'visible', 'ApplicationDetailsList' => '', 'SystemNoticeList' => '', 'OutdatedSoftwareList' => '', 'HasRecommendationsVisibility' => 'hidden', 'SecurityRecomendationList' => '', ); // Check whether this WordPress installation needs an update. if (function_exists('get_core_updates')) { $site_updates = get_core_updates(); if (!is_array($site_updates) || empty($site_updates) || $site_updates[0]->response == 'latest' ) { $secvars['VersionNumberOfTheUpdate'] = $site_updates[0]->version; } } if (isset($scan_results['OUTDATEDSCAN']) || isset($scan_results['RECOMMENDATIONS']) ) { $params['WebsiteDetails.CssClass'] = 'sucuriscan-red-tab'; } $secvars = sucuriscan_sitecheck_general_information($scan_results, $secvars); $secvars = sucuriscan_sitecheck_application_details($scan_results, $secvars); $secvars = sucuriscan_sitecheck_system_notices($scan_results, $secvars); $secvars = sucuriscan_sitecheck_outdated_software($scan_results, $secvars); $secvars = sucuriscan_sitecheck_recommendations($scan_results, $secvars); $params['WebsiteDetails.Content'] = SucuriScanTemplate::getSection('malwarescan-reswebdetails', $secvars); return $params; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab and specifically in the general information panel. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_general_information($scan_results = false, $secvars = array()) { $possible_keys = array( 'DOMAIN' => 'Domain Scanned', 'IP' => 'Site IP Address', 'HOSTING' => 'Hosting Company', 'CMS' => 'CMS Found', 'WP_VERSION' => 'WordPress Version', 'PHP_VERSION' => 'PHP Version', ); if (isset($scan_results['SCAN'])) { $scan_results['SCAN']['WP_VERSION'] = array(SucuriScan::site_version()); $scan_results['SCAN']['PHP_VERSION'] = array(phpversion()); foreach ($possible_keys as $result_key => $result_title) { if (isset($scan_results['SCAN'][$result_key])) { if (is_array($scan_results['SCAN'][$result_key])) { $result_value = implode(', ', $scan_results['SCAN'][$result_key]); } else { $result_value = json_encode($scan_results['SCAN'][$result_key]); } $secvars['GenericInformationList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-appdetail', array( 'InformationTitle' => $result_title, 'InformationValue' => $result_value, ) ); } } } return $secvars; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab and specifically in the application details panel. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_application_details($scan_results = false, $secvars = array()) { if (isset($scan_results['WEBAPP'])) { foreach ($scan_results['WEBAPP'] as $webapp_key => $webapp_details) { if (is_array($webapp_details)) { foreach ($webapp_details as $i => $details) { $secvars['NoAppDetailsVisibility'] = 'hidden'; if (is_array($details)) { $details = isset($details[0]) ? $details[0] : ''; } $details_parts = explode(':', $details, 2); $result_title = isset($details_parts[0]) ? trim($details_parts[0]) : ''; $result_value = isset($details_parts[1]) ? trim($details_parts[1]) : ''; $secvars['ApplicationDetailsList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-appdetail', array( 'InformationTitle' => $result_title, 'InformationValue' => $result_value, ) ); } } } } return $secvars; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab and specifically in the system notices panel. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_system_notices($scan_results = false, $secvars = array()) { if (isset($scan_results['SYSTEM']['NOTICE'])) { foreach ($scan_results['SYSTEM']['NOTICE'] as $notice) { $secvars['NoAppDetailsVisibility'] = 'hidden'; if (is_array($notice)) { $notice = implode(', ', $notice); } $secvars['SystemNoticeList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-sysnotice', array( 'SystemNotice' => $notice, ) ); } } return $secvars; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab and specifically in the outdated software panel. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_outdated_software($scan_results = false, $secvars = array()) { if (isset($scan_results['OUTDATEDSCAN'])) { foreach ($scan_results['OUTDATEDSCAN'] as $outdated) { if (count($outdated) >= 3) { $secvars['HasRecommendationsVisibility'] = 'visible'; $secvars['OutdatedSoftwareList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-outdated', array( 'OutdatedSoftwareTitle' => $outdated[0], 'OutdatedSoftwareUrl' => $outdated[1], 'OutdatedSoftwareValue' => $outdated[2], ) ); } } } return $secvars; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website details tab and specifically in the security recommendations panel. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_recommendations($scan_results = false, $secvars = array()) { if (isset($scan_results['RECOMMENDATIONS'])) { foreach ($scan_results['RECOMMENDATIONS'] as $recommendation) { if (count($recommendation) >= 3) { $secvars['HasRecommendationsVisibility'] = 'visible'; $secvars['SecurityRecomendationList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-recommendation', array( 'RecommendationTitle' => $recommendation[0], 'RecommendationValue' => $recommendation[1], 'RecommendationUrl' => $recommendation[2], 'RecommendationUrlTitle' => $recommendation[2], ) ); } } } return $secvars; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * website links tab. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra information. */ function sucuriscan_sitecheck_website_links($scan_results = false, $params = array()) { $possible_url_keys = array( 'IFRAME' => 'List of iframes found', 'JSEXTERNAL' => 'List of external scripts included', 'JSLOCAL' => 'List of scripts included', 'URL' => 'List of links found', ); $secvars = array( 'WebsiteLinksAllList' => '', 'NoLinksVisibility' => 'hidden', ); if (isset($scan_results['LINKS'])) { foreach ($possible_url_keys as $result_key => $result_title) { if (isset($scan_results['LINKS'][$result_key])) { $result_value = 0; $result_items = ''; foreach ($scan_results['LINKS'][$result_key] as $url_path) { $result_value += 1; $result_items .= SucuriScanTemplate::getSnippet( 'malwarescan-weblinkitems', array( 'WebsiteLinksItemTitle' => $url_path, ) ); } $secvars['WebsiteLinksAllList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-weblinktitle', array( 'WebsiteLinksSectionTitle' => $result_title, 'WebsiteLinksSectionTotal' => $result_value, 'WebsiteLinksSectionItems' => $result_items /* Do not escape. */, ) ); } } } else { $secvars['NoLinksVisibility'] = 'visible'; } $params['WebsiteLinks.Content'] = SucuriScanTemplate::getSection('malwarescan-resweblinks', $secvars); return $params; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * blacklist status tab. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_blacklist_status($scan_results = false, $params = array()) { $blacklist_types = array( 'INFO' => 'CLEAN', 'WARN' => 'WARNING', ); $secvars = array( 'BlacklistStatusTitle' => 'Site blacklist-free', 'BlacklistStatusList' => '', ); if (isset($scan_results['BLACKLIST']['WARN'])) { $params['BlacklistStatusTitle'] = 'Site blacklisted'; $params['BlacklistStatus.CssClass'] = 'sucuriscan-red-tab'; } foreach ($blacklist_types as $type => $group_title) { if (isset($scan_results['BLACKLIST'][$type])) { foreach ($scan_results['BLACKLIST'][$type] as $blres) { $css_blacklist = ($type == 'INFO') ? 'success' : 'danger'; $secvars['BlacklistStatusList'] .= SucuriScanTemplate::getSnippet( 'malwarescan-resblacklist', array( 'BlacklistStatusCssClass' => $css_blacklist, 'BlacklistStatusGroupTitle' => $group_title, 'BlacklistStatusReporterName' => $blres[0], 'BlacklistStatusReporterUrl' => $blres[1], ) ); } } } $params['BlacklistStatus.Content'] = SucuriScanTemplate::getSection('malwarescan-resblacklist', $secvars); return $params; } /** * Process the data returned from the results of a SiteCheck scan and generate * the HTML code to display the information in the malware scan page inside the * modified files tab. * * @param array $scan_results Array with information of the scanning. * @param array $params Array with psuedo-variables to build the template. * @return array Psuedo-variables to build the template including extra info. */ function sucuriscan_sitecheck_modified_files($scan_results = false, $params = array()) { $params['ModifiedFiles.Content'] = sucuriscan_modified_files(); return $params; } /** * Generate the HTML code for the firewall settings panel. * * @param string $api_key The CloudProxy API key. * @return string The parsed-content of the firewall settings panel. */ function sucuriscan_firewall_settings($api_key = '') { $params = array( 'Firewall.APIKey' => '', 'Firewall.APIKeyVisibility' => 'hidden', 'Firewall.APIKeyFormVisibility' => 'visible', 'Firewall.SettingsVisibility' => 'hidden', 'Firewall.SettingOptions' => '', ); if ($api_key && array_key_exists('string', $api_key)) { $settings = SucuriScanAPI::getCloudproxySettings($api_key); $params['Firewall.APIKeyVisibility'] = 'visible'; $params['Firewall.APIKeyFormVisibility'] = 'hidden'; $params['Firewall.APIKey'] = $api_key['string']; if ($settings) { $counter = 0; $params['Firewall.SettingsVisibility'] = 'visible'; $settings = sucuriscan_explain_firewall_settings($settings); foreach ($settings as $option_name => $option_value) { $css_class = ($counter % 2 === 0) ? 'alternate' : ''; $option_title = ucwords(str_replace('_', "\x20", $option_name)); // Generate a HTML list when the option's value is an array. if (is_array($option_value)) { $css_scrollable = count($option_value) > 10 ? 'sucuriscan-list-as-table-scrollable' : ''; $html_list = '
          '; foreach ($option_value as $single_value) { $html_list .= '
        • ' . SucuriScan::escape($single_value) . '
        • '; } $html_list .= '
        '; $option_value = $html_list; } else { $option_value = SucuriScan::escape($option_value); } // Parse the snippet template and replace the pseudo-variables. $params['Firewall.SettingOptions'] .= SucuriScanTemplate::getSnippet( 'firewall-settings', array( 'Firewall.OptionCssClass' => $css_class, 'Firewall.OptionName' => $option_title, 'Firewall.OptionValue' => $option_value, ) ); $counter++; } } } return SucuriScanTemplate::getSection('firewall-settings', $params); } /** * Converts the value of some of the firewall settings into a human-readable * text, for example changing numbers or variable names into a more explicit * text so the administrator can understand the meaning of these settings. * * @param array $settings A hash with the settings of a CloudProxy account. * @return array The explained version of the CloudProxy settings. */ function sucuriscan_explain_firewall_settings($settings = array()) { $cache_modes = array( 'docache' => 'enabled (recommended)', 'sitecache' => 'site caching (using your site headers)', 'nocache' => 'minimal (only for a few minutes)', 'nocacheatall' => 'caching disabled (use with caution)', ); // TODO: Prefer Array over stdClass, modify the API library. $settings = @json_decode(json_encode($settings), true); foreach ($settings as $keyname => $value) { if ($keyname == 'proxy_active') { $settings[$keyname] = ($value === 1) ? 'active' : 'not active'; } elseif ($keyname == 'cache_mode') { if (array_key_exists($keyname, $cache_modes)) { $settings[$keyname] = $cache_modes[$keyname]; } else { $settings[$keyname] = 'unknown'; } } } return $settings; } /** * Generate the HTML code for the firewall logs panel. * * @param string $api_key The CloudProxy API key. * @return string The parsed-content of the firewall logs panel. */ function sucuriscan_firewall_auditlogs($api_key = '') { $date = date('Y-m-d'); $params = array(); $params['AuditLogs.DateYears'] = sucuriscan_firewall_dates('years', $date); $params['AuditLogs.DateMonths'] = sucuriscan_firewall_dates('months', $date); $params['AuditLogs.DateDays'] = sucuriscan_firewall_dates('days', $date); return SucuriScanTemplate::getSection('firewall-auditlogs', $params); } function sucuriscan_firewall_auditlogs_ajax() { if (SucuriScanRequest::post('form_action') == 'get_audit_logs') { $response = ''; $api_key = SucuriScanAPI::getCloudproxyKey(); if ($api_key) { $query = SucuriScanRequest::post(':query'); $month = SucuriScanRequest::post(':month'); $year = SucuriScanRequest::post(':year'); $day = SucuriScanRequest::post(':day'); $limit = 50; $offset = 1; if ($year && $month && $day) { $date = sprintf('%s-%s-%s', $year, $month, $day); } else { $date = date('Y-m-d'); } $auditlogs = SucuriScanAPI::firewallAuditLogs( $api_key, $date, /* Retrieve the data from this date. */ $query, /* Filter the data to match this query. */ $limit, /* Retrieve this maximum of data. */ $offset /* Retrieve the data from this point. */ ); if ($auditlogs && array_key_exists('total_lines', $auditlogs)) { $response = sucuriscan_firewall_auditlogs_entries($auditlogs['access_logs']); if (empty($response)) { $response = 'No data available for this filter.'; } } } else { SucuriScanInterface::error('CloudProxy API Key was not found.'); } print($response); exit(0); } } function sucuriscan_firewall_auditlogs_entries($entries = array()) { $output = ''; $attributes = array( 'remote_addr', 'request_date', 'request_time', 'request_timezone', 'request_method', 'resource_path', 'http_protocol', 'http_status', 'http_status_title', 'http_referer', 'http_user_agent', 'sucuri_block_code', 'sucuri_block_reason', 'request_country_name', 'request_country_code', ); if (is_array($entries) && !empty($entries)) { $counter = 0; foreach ($entries as $entry) { $data_set = array(); $data_set['AccessLog.CssClass'] = ($counter % 2 == 0) ? '' : 'alternate'; foreach ($attributes as $attr) { // Generate variable name for the template pseudo-tags. $keyname = str_replace('_', "\x20", $attr); $keyname = ucwords($keyname); $keyname = str_replace("\x20", '', $keyname); $keyname = 'AccessLog.' . $keyname; // Assign and escape variable value before rendering. if (array_key_exists($attr, $entry)) { $data_set[$keyname] = $entry[$attr]; } else { $data_set[$keyname] = ''; } // Special cases to convert value to readable data. if ($attr == 'resource_path' && $data_set[$keyname] == '/') { $data_set[$keyname] = '/ (root of the website)'; } elseif ($attr == 'http_referer' && $data_set[$keyname] == '-') { $data_set[$keyname] = '- (no referer)'; } elseif ($attr == 'request_country_name' && $data_set[$keyname] == '') { $data_set[$keyname] = 'Anonymous'; } } $output .= SucuriScanTemplate::getSnippet('firewall-auditlogs', $data_set); $counter++; } } return $output; } /** * Get a list of years, months or days depending of the type specified. * * @param string $type Either years, months or days. * @param string $date Year, month and day selected from the request. * @param boolean $in_html Whether the list should be converted to a HTML select options or not. * @return array Either an array with the expected values, or a HTML code. */ function sucuriscan_firewall_dates($type = '', $date = '', $in_html = true) { $options = array(); $selected = ''; $pattern = '/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})$/'; $s_year = ''; $s_month = ''; $s_day = ''; if (@preg_match($pattern, $date, $date_m)) { $s_year = $date_m[1]; $s_month = $date_m[2]; $s_day = $date_m[3]; } switch ($type) { case 'years': $selected = $s_year; $current_year = (int) date('Y'); $max_years = 5; /* Maximum number of years to keep the logs. */ $options = range(($current_year - $max_years), $current_year); break; case 'months': $selected = $s_month; $options = array( '01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April', '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September', '10' => 'October', '11' => 'November', '12' => 'December', ); break; case 'days': $options = range(1, 31); $selected = $s_day; break; } if ($in_html) { $html_options = ''; foreach ($options as $key => $value) { if (is_numeric($value)) { $value = str_pad($value, 2, 0, STR_PAD_LEFT); } if ($type != 'months') { $key = $value; } $selected_tag = ( $key == $selected ) ? 'selected="selected"' : ''; $html_options .= sprintf('', $key, $selected_tag, $value); } return $html_options; } return $options; } /** * Generate the HTML code for the firewall clear cache panel. * * @param string $nonce Identifier of the HTTP request for CSRF protection * @return string The parsed-content of the firewall clear cache panel. */ function sucuriscan_firewall_clearcache($nonce) { $params = array(); if ($nonce) { // Flush the cache of the site(s) associated with the API key. if (SucuriScanRequest::post(':clear_cache') == 1) { $response = SucuriScanAPI::clearCloudproxyCache(); if ($response) { if (isset($response->messages[0])) { // Clear W3 Total Cache if it is installed. if (function_exists('w3tc_flush_all')) { w3tc_flush_all(); } SucuriScanInterface::info($response->messages[0]); } else { SucuriScanInterface::error('Could not clear the cache of your site, try later again.'); } } else { SucuriScanInterface::error('CloudProxy is not enabled on your site, or your API key is invalid.'); } } } return SucuriScanTemplate::getSection('firewall-clearcache', $params); } /** * CloudProxy firewall page. * * It checks whether the WordPress core files are the original ones, and the state * of the themes and plugins reporting the availability of updates. It also checks * the user accounts under the administrator group. * * @return void */ function sucuriscan_firewall_page() { SucuriScanInterface::check_permissions(); // Process all form submissions. $nonce = SucuriScanInterface::check_nonce(); sucuriscan_firewall_form_submissions($nonce); // Get the dynamic values for the template variables. $api_key = SucuriScanAPI::getCloudproxyKey(); // Page pseudo-variables initialization. $params = array( 'PageTitle' => 'Firewall WAF', 'Firewall.Settings' => sucuriscan_firewall_settings($api_key), 'Firewall.AuditLogs' => sucuriscan_firewall_auditlogs($api_key), 'Firewall.ClearCache' => sucuriscan_firewall_clearcache($nonce), ); echo SucuriScanTemplate::getTemplate('firewall', $params); } /** * Handle an Ajax request for this specific page. * * @return mixed. */ function sucuriscan_firewall_ajax() { SucuriScanInterface::check_permissions(); if (SucuriScanInterface::check_nonce()) { sucuriscan_firewall_auditlogs_ajax(); } wp_die(); } /** * Process the requests sent by the form submissions originated in the firewall * page, all forms must have a nonce field that will be checked against the one * generated in the template render function. * * @return void */ function sucuriscan_firewall_form_submissions($nonce) { if ($nonce) { // Add and/or Update the Sucuri WAF API Key (do it before anything else). $option_name = ':cloudproxy_apikey'; $api_key = SucuriScanRequest::post($option_name); if ($api_key !== false) { $api_key = trim($api_key); if (SucuriScanAPI::isValidCloudproxyKey($api_key)) { SucuriScanOption::update_option($option_name, $api_key); SucuriScanInterface::info('CloudProxy API key saved successfully'); SucuriScanOption::setRevProxy('enable'); SucuriScanOption::setAddrHeader('HTTP_X_SUCURI_CLIENTIP'); } else { SucuriScanInterface::error('Invalid CloudProxy API key.'); } } // Delete CloudProxy API key from the plugin. if (SucuriScanRequest::post(':delete_wafkey') !== false) { SucuriScanOption::delete_option($option_name); SucuriScanInterface::info('CloudProxy API key removed successfully'); SucuriScanOption::setRevProxy('disable'); SucuriScanOption::setAddrHeader('REMOTE_ADDR'); } } } /** * Project hardening library. * * In computing, hardening is usually the process of securing a system by * reducing its surface of vulnerability. A system has a larger vulnerability * surface the more functions it fulfills; in principle a single-function system * is more secure than a multipurpose one. Reducing available vectors of attack * typically includes the removal of unnecessary software, unnecessary usernames * or logins and the disabling or removal of unnecessary services. * * There are various methods of hardening Unix and Linux systems. This may * involve, among other measures, applying a patch to the kernel such as Exec * Shield or PaX; closing open network ports; and setting up intrusion-detection * systems, firewalls and intrusion-prevention systems. There are also hardening * scripts and tools like Bastille Linux, JASS for Solaris systems and * Apache/PHP Hardener that can, for example, deactivate unneeded features in * configuration files or perform various other protective measures. */ class SucuriScanHardening extends SucuriScan { /** * Returns a list of access control rules for the Apache web server that can be * used to deny and allow certain files to be accessed by certain network nodes. * Currently supports Apache 2.2 and 2.4 and denies access to all PHP files with * any mixed extension case. * * @return array List of access control rules. */ private static function get_rules() { return array( '', ' ', ' Order allow,deny', ' Deny from all', ' ', ' ', ' Require all denied', ' ', '', ); } /** * Adds some rules to an existing access control file (or creates it if does not * exists) to deny access to all files with certain extension in any mixed case. * The permissions to modify the file are checked before anything else, this * function is self-contained. * * @param string $directory Valid directory path where to place the access rules. * @return boolean True if the rules are successfully added, false otherwise. */ public static function harden_directory($directory = '') { if (file_exists($directory) && is_writable($directory) && is_dir($directory) ) { $fhandle = false; $target = self::htaccess($directory); $deny_rules = self::get_rules(); if (file_exists($target)) { self::fix_previous_hardening($directory); $fhandle = @fopen($target, 'a'); } else { $fhandle = @fopen($target, 'w'); } if ($fhandle) { $rules_str = implode("\n", $deny_rules) . "\n"; $written = @fwrite($fhandle, $rules_str); @fclose($fhandle); return (bool) ($written !== false); } } return false; } /** * Deletes some rules from an existing access control file to allow access to * all files with certain extension in any mixed case. The file is truncated if * after the operation its size is equals to zero. * * @param string $directory Valid directory path where to access rules are. * @return boolean True if the rules are successfully deleted, false otherwise. */ public static function unharden_directory($directory = '') { if (self::is_hardened($directory)) { $deny_rules = self::get_rules(); $fpath = self::htaccess($directory); $content = @file_get_contents($fpath); if ($content) { $rules_str = implode("\n", $deny_rules); $content = str_replace($rules_str, '', $content); $written = @file_put_contents($fpath, $content); if (filesize($fpath) === 0) { @unlink($fpath); } return (bool) ($written !== false); } } return false; } /** * Remove the hardening applied in previous versions. * * @param string $directory Valid directory path. * @return boolean True if the access control file was fixed. */ private static function fix_previous_hardening($directory = '') { $fpath = self::htaccess($directory); $content = @file_get_contents($fpath); $rules = "\ndeny from all\n"; if ($content) { if (strpos($content, $rules) !== false) { $content = str_replace($rules, '', $content); $written = @file_put_contents($fpath, $content); return (bool) ($written !== false); } } return true; } /** * Check whether a directory is hardened or not. * * @param string $directory Valid directory path. * @return boolean True if the directory is hardened, false otherwise. */ public static function is_hardened($directory = '') { if (file_exists($directory) && is_dir($directory)) { $fpath = self::htaccess($directory); if (file_exists($fpath) && is_readable($fpath)) { $rules = self::get_rules(); $rules_str = implode("\n", $rules); $content = @file_get_contents($fpath); if (strpos($content, $rules_str) !== false) { return true; } } } return false; } private static function htaccess($folder = '') { $folder = str_replace(ABSPATH, '', $folder); $bpath = rtrim(ABSPATH, DIRECTORY_SEPARATOR); $folder_path = $bpath . '/' . $folder; $htaccess = $folder_path . '/.htaccess'; return $htaccess; } private static function whitelist_rule($file = '') { $file = str_replace('/', '', $file); $file = str_replace('<', '', $file); $file = str_replace('>', '', $file); return sprintf("\n\x20\x20Allow from all\n\n", $file); } public static function whitelist($file = '', $folder = '') { $htaccess = self::htaccess($folder); if (file_exists($htaccess)) { if (is_writable($htaccess)) { $rules = self::whitelist_rule($file); @file_put_contents($htaccess, $rules, FILE_APPEND); } else { throw new Exception('Access control file is not writable'); } } else { throw new Exception('Access control file does not exists'); } } public static function dewhitelist($file = '', $folder = '') { $htaccess = self::htaccess($folder); if (file_exists($htaccess) && is_readable($htaccess) && is_writable($htaccess) ) { $content = @file_get_contents($htaccess); $rules = self::whitelist_rule($file); $content = str_replace($rules, '', $content); @file_put_contents($htaccess, $content); } } public static function get_whitelisted($folder = '') { $htaccess = self::htaccess($folder); $content = @file_get_contents($htaccess); if (@preg_match_all('//', $content, $matches)) { return $matches[1]; } return false; } } /** * Sucuri one-click hardening page. * * It loads all the functions defined in /lib/hardening.php and shows the forms * that the administrator can use to harden multiple parts of the site. * * @return void */ function sucuriscan_hardening_page() { SucuriScanInterface::check_permissions(); $template_variables = array( 'Hardening.Panel' => sucuriscan_hardening_panel(), 'Hardening.Whitelist' => sucuriscan_hardening_whitelist(), ); echo SucuriScanTemplate::getTemplate('hardening', $template_variables); } function sucuriscan_hardening_panel() { if (SucuriScanRequest::post(':run_hardening') && !SucuriScanInterface::check_nonce() ) { unset($_POST['sucuriscan_run_hardening']); } $template_variables = array( 'PageTitle' => 'Hardening', 'Hardening.Version' => sucuriscan_harden_version(), 'Hardening.CloudProxy' => sucuriscan_cloudproxy_enabled(), 'Hardening.RemoveGenerator' => sucuriscan_harden_removegenerator(), 'Hardening.NginxPhpFpm' => '', 'Hardening.Upload' => '', 'Hardening.WpContent' => '', 'Hardening.WpIncludes' => '', 'Hardening.PhpVersion' => sucuriscan_harden_phpversion(), 'Hardening.SecretKeys' => sucuriscan_harden_secretkeys(), 'Hardening.Readme' => sucuriscan_harden_readme(), 'Hardening.AdminUser' => sucuriscan_harden_adminuser(), 'Hardening.FileEditor' => sucuriscan_harden_fileeditor(), 'Hardening.DBTables' => sucuriscan_harden_dbtables(), 'Hardening.ErrorLog' => sucuriscan_harden_errorlog(), ); if (SucuriScan::is_nginx_server() === true) { $template_variables['Hardening.NginxPhpFpm'] = sucuriscan_harden_nginx_phpfpm(); } elseif (SucuriScan::is_iis_server() === true) { /* TODO: Include IIS (Internet Information Services) hardening options. */ } else { $template_variables['Hardening.Upload'] = sucuriscan_harden_upload(); $template_variables['Hardening.WpContent'] = sucuriscan_harden_wpcontent(); $template_variables['Hardening.WpIncludes'] = sucuriscan_harden_wpincludes(); } return SucuriScanTemplate::getSection('hardening-panel', $template_variables); } function sucuriscan_hardening_whitelist() { $template_variables = array( 'HardeningWhitelist.List' => '', 'HardeningWhitelist.NoItemsVisibility' => 'visible', ); $allowed_folders = array( 'wp-includes', 'wp-content', 'wp-content/uploads', ); // Add a new file to the hardening whitelist. if ($fwhite = SucuriScanRequest::post(':hardening_whitelist')) { $folder = SucuriScanRequest::post(':hardening_folder'); if (in_array($folder, $allowed_folders)) { try { SucuriScanHardening::whitelist($fwhite, $folder); SucuriScanInterface::info('File was whitelisted from the hardening'); } catch (Exception $e) { SucuriScanInterface::error($e->getMessage()); } } else { SucuriScanInterface::error('Specified folder is not hardened by this plugin'); } } // Remove a file from the hardening whitelist. if ($rmfwhite = SucuriScanRequest::post(':hardening_rmfwhite', '_array')) { foreach ($rmfwhite as $fpath) { $fpath = str_replace('/.*/', '|', $fpath); $parts = explode('|', $fpath, 2); SucuriScanHardening::dewhitelist($parts[1], $parts[0]); } SucuriScanInterface::info('Selected files were processed successfully'); } // Read the access control file and retrieve the whitelisted files. $counter = 0; foreach ($allowed_folders as $folder) { $files = SucuriScanHardening::get_whitelisted($folder); if ($files !== false) { $template_variables['HardeningWhitelist.NoItemsVisibility'] = 'hidden'; foreach ($files as $file) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $fregexp = sprintf('%s/.*/%s', $folder, $file); $html = SucuriScanTemplate::getSnippet( 'hardening-whitelist', array( 'HardeningWhitelist.CssClass' => $css_class, 'HardeningWhitelist.Regexp' => $fregexp, 'HardeningWhitelist.Folder' => $folder, 'HardeningWhitelist.File' => $file, ) ); $template_variables['HardeningWhitelist.List'] .= $html; $counter++; } } } return SucuriScanTemplate::getSection('hardening-whitelist', $template_variables); } /** * Generate the HTML code necessary to show a form with the options to harden * a specific part of the WordPress installation, if the Status variable is * set as a positive integer the button is shown as "unharden". * * @param string $title Title of the panel. * @param integer $status Either one or zero representing the state of the hardening, one for secure, zero for insecure. * @param string $type Name of the hardening option, this will be used through out the form generation. * @param string $messageok Message that will be shown if the hardening was executed. * @param string $messagewarn Message that will be shown if the hardening is not executed. * @param string $desc Optional description of the hardening. * @param string $updatemsg Optional explanation of the hardening after the submission of the form. * @return void */ function sucuriscan_harden_status($title = '', $status = 0, $type = '', $messageok = '', $messagewarn = '', $desc = null, $updatemsg = null) { $template_variables = array( 'Hardening.Title' => $title, 'Hardening.Description' => '', 'Hardening.Status' => 'unknown', 'Hardening.FieldName' => '', 'Hardening.FieldValue' => '', 'Hardening.FieldAttributes' => '', 'Hardening.Information' => '', 'Hardening.UpdateMessage' => '', ); if (is_null($type)) { $type = 'unknown'; $template_variables['Hardening.FieldAttributes'] = 'disabled="disabled"'; } $template_variables['Hardening.Status'] = (string) $status; if ($status === 1) { $template_variables['Hardening.FieldName'] = $type . '_unharden'; $template_variables['Hardening.FieldValue'] = 'Revert hardening'; $template_variables['Hardening.Information'] = $messageok; } elseif ($status === 0) { $template_variables['Hardening.FieldName'] = $type; $template_variables['Hardening.FieldValue'] = 'Harden'; $template_variables['Hardening.Information'] = $messagewarn; } else { $template_variables['Hardening.FieldName'] = ''; $template_variables['Hardening.FieldValue'] = 'Unavailable'; $template_variables['Hardening.Information'] = 'Can not be determined.'; $template_variables['Hardening.FieldAttributes'] = 'disabled="disabled"'; } if (!is_null($desc)) { $template_variables['Hardening.Description'] = '

        ' . $desc . '

        '; } if (!is_null($updatemsg)) { $template_variables['Hardening.UpdateMessage'] = '

        ' . $updatemsg . '

        '; } return SucuriScanTemplate::getSnippet('hardening', $template_variables); } /** * Check whether the version number of the WordPress installed is the latest * version available officially. * * @return void */ function sucuriscan_harden_version() { $site_version = SucuriScan::site_version(); $updates = get_core_updates(); $cp = (!is_array($updates) || empty($updates) ? 1 : 0); if (isset($updates[0]) && $updates[0] instanceof stdClass) { if ($updates[0]->response == 'latest' || $updates[0]->response == 'development' ) { $cp = 1; } } if (strcmp($site_version, '3.7') < 0) { $cp = 0; } $initial_msg = 'Why keep your site updated? WordPress is an open-source project which means that with every update the details of the changes made to the source code are made public, if there were security fixes then someone with malicious intent can use this information to attack any site that has not been upgraded.'; $messageok = sprintf('Your WordPress installation (%s) is current.', $site_version); $messagewarn = sprintf( 'Your current version (%s) is not current.
        Update now!', $site_version ); return sucuriscan_harden_status('Verify WordPress version', $cp, null, $messageok, $messagewarn, $initial_msg); } /** * Notify the state of the hardening for the removal of the Generator tag in * HTML code printed by WordPress to show the current version number of the * installation. * * @return void */ function sucuriscan_harden_removegenerator() { return sucuriscan_harden_status( 'Remove WordPress version', 1, null, 'WordPress version properly hidden', null, 'It checks if your WordPress version is being hidden from being displayed ' .'in the generator tag (enabled by default with this plugin).' ); } function sucuriscan_harden_nginx_phpfpm() { $description = 'It seems that you are using the Nginx web server, if that is the case then you will need to add the following code into the global nginx.conf file or the virtualhost associated with this website. Choose the correct rules for the directories that you want to protect. If you encounter errors after restart the web server then revert the changes and contact the support team of your hosting company, or read the official article about WordPress on Nginx.

        '; $description .= "
        # Block PHP files in uploads directory.\nlocation ~* /(?:uploads|files)/.*\.php$ {\n\x20\x20deny all;\n}
        "; $description .= "
        # Block PHP files in content directory.\nlocation ~* /wp-content/.*\.php$ {\n\x20\x20deny all;\n}
        "; $description .= "
        # Block PHP files in includes directory.\nlocation ~* /wp-includes/.*\.php$ {\n\x20\x20deny all;\n}
        "; $description .= "
        ";
            $description .= "# Block PHP files in uploads, content, and includes directory.\n";
            $description .= "location ~* /(?:uploads|files|wp-content|wp-includes)/.*\.php$ {\n";
            $description .= "\x20\x20deny all;\n";
            $description .= '}
        '; $description .= '

        '; return sucuriscan_harden_status( 'Block PHP files', 999, null, null, null, $description ); } /** * Check whether the WordPress upload folder is protected or not. * * A htaccess file is placed in the upload folder denying the access to any php * file that could be uploaded through a vulnerability in a Plugin, Theme or * WordPress itself. * * @return void */ function sucuriscan_harden_upload() { $dpath = WP_CONTENT_DIR . '/uploads'; if (SucuriScanRequest::post(':run_hardening')) { if (SucuriScanRequest::post(':harden_upload')) { $result = SucuriScanHardening::harden_directory($dpath); if ($result === true) { $message = 'Hardening applied to the uploads directory'; SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Error hardening directory, check the permissions.'); } } elseif (SucuriScanRequest::post(':harden_upload_unharden')) { $result = SucuriScanHardening::unharden_directory($dpath); if ($result === true) { $message = 'Hardening reverted in the uploads directory'; SucuriScanEvent::report_error_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::info('Access file is not writable, check the permissions.'); } } } // Check whether the directory is already hardened or not. $is_hardened = SucuriScanHardening::is_hardened($dpath); $cp = ( $is_hardened === true ) ? 1 : 0; $description = 'It checks if the uploads directory of this site allows the direct execution' . ' of PHP files. It is recommendable to prevent this because someone may try to exploit' . ' a vulnerability of a plugin, theme, and/or other PHP-based code located in this' . ' directory sending requests directory to these files.

        Note: Many plugins' . ' and themes in the WordPress marketplace put (insecure) PHP files in this' . ' folder for "X" or "Y" reasons, they may not want to change their' . ' code to prevent security issues, so you will have to keep this option un-hardened' . ' or else you will end up breaking their functionality.'; return sucuriscan_harden_status( 'Protect uploads directory', $cp, 'sucuriscan_harden_upload', 'Upload directory properly hardened', 'Upload directory not hardened', $description, null ); } /** * Check whether the WordPress content folder is protected or not. * * A htaccess file is placed in the content folder denying the access to any php * file that could be uploaded through a vulnerability in a Plugin, Theme or * WordPress itself. * * @return void */ function sucuriscan_harden_wpcontent() { if (SucuriScanRequest::post(':run_hardening')) { if (SucuriScanRequest::post(':harden_wpcontent')) { $result = SucuriScanHardening::harden_directory(WP_CONTENT_DIR); if ($result === true) { $message = 'Hardening applied to the content directory'; SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Error hardening directory, check the permissions.'); } } elseif (SucuriScanRequest::post(':harden_wpcontent_unharden')) { $result = SucuriScanHardening::unharden_directory(WP_CONTENT_DIR); if ($result === true) { $message = 'Hardening reverted in the content directory'; SucuriScanEvent::report_error_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::info('Access file is not writable, check the permissions.'); } } } // Check whether the directory is already hardened or not. $is_hardened = SucuriScanHardening::is_hardened(WP_CONTENT_DIR); $cp = ( $is_hardened === true ) ? 1 : 0; $description = 'This option blocks direct access to any PHP file located under the content' . ' directory of this site. The note under the "Protect uploads directory"' . ' section also applies to this option so you may want to read that part too. If you' . ' experience any kind of issues in your site after you apply this hardening go to the' . ' content directory using a FTP client or a file manager (generally available in' . ' your hosting panel) and rename a file named .htaccess.'; return sucuriscan_harden_status( 'Restrict wp-content access', $cp, 'sucuriscan_harden_wpcontent', 'WP-content directory properly hardened', 'WP-content directory not hardened', $description, null ); } /** * Check whether the WordPress includes folder is protected or not. * * A htaccess file is placed in the includes folder denying the access to any php * file that could be uploaded through a vulnerability in a Plugin, Theme or * WordPress itself, there are some exceptions for some specific files that must * be available publicly. * * @return void */ function sucuriscan_harden_wpincludes() { $dpath = ABSPATH . '/wp-includes'; if (SucuriScanRequest::post(':run_hardening')) { if (SucuriScanRequest::post(':harden_wpincludes')) { $result = SucuriScanHardening::harden_directory($dpath); if ($result === true) { $message = 'Hardening applied to the library directory'; SucuriScanHardening::whitelist('wp-tinymce.php', 'wp-includes'); SucuriScanHardening::whitelist('ms-files.php', 'wp-includes'); SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Error hardening directory, check the permissions.'); } } elseif (SucuriScanRequest::post(':harden_wpincludes_unharden')) { $result = SucuriScanHardening::unharden_directory($dpath); if ($result === true) { $message = 'Hardening reverted in the library directory'; SucuriScanHardening::dewhitelist('wp-tinymce.php', 'wp-includes'); SucuriScanHardening::dewhitelist('ms-files.php', 'wp-includes'); SucuriScanEvent::report_error_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::info('Access file is not writable, check the permissions.'); } } } // Check whether the directory is already hardened or not. $is_hardened = SucuriScanHardening::is_hardened($dpath); $cp = ( $is_hardened === true ) ? 1 : 0; return sucuriscan_harden_status( 'Restrict wp-includes access', $cp, 'sucuriscan_harden_wpincludes', 'WP-Includes directory properly hardened', 'WP-Includes directory not hardened', 'This option blocks direct PHP access to any file inside wp-includes.', null ); } /** * Check the version number of the PHP interpreter set to work with the site, * is considered that old versions of the PHP interpreter are insecure. * * @return void */ function sucuriscan_harden_phpversion() { $phpv = phpversion(); $cp = ( strncmp($phpv, '5.', 2) < 0 ) ? 0 : 1; return sucuriscan_harden_status( 'Verify PHP version', $cp, null, 'Using an updated version of PHP (' . $phpv . ')', 'The version of PHP you are using (' . $phpv . ') is not current, not recommended, and/or not supported', 'This checks if you have the latest version of PHP installed.', null ); } /** * Check whether the site is behind a secure proxy server or not. * * @return void */ function sucuriscan_cloudproxy_enabled() { $btn_string = ''; $proxy_info = SucuriScan::is_behind_cloudproxy(); $status = 1; $description = 'A WAF is a protection layer for your web site, blocking all sort of attacks (brute force attempts, ' . 'DDoS, SQL injections, etc) and helping it remain malware and blacklist free. This test checks if your site is ' . 'using Sucuri\'s CloudProxy WAF to protect your site.'; if ($proxy_info === false) { $status = 0; $btn_string = 'Harden'; } return sucuriscan_harden_status( 'Website Firewall protection', $status, null, 'Your website is protected by a Website Firewall (WAF)', $btn_string . 'Your website is not protected by a Website Firewall (WAF)', $description, null ); } /** * Check whether the Wordpress configuration file has the security keys recommended * to avoid any unauthorized access to the interface. * * WordPress Security Keys is a set of random variables that improve encryption of * information stored in the user’s cookies. There are a total of four security * keys: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, and NONCE_KEY. * * @return void */ function sucuriscan_harden_secretkeys() { $wp_config_path = SucuriScan::get_wpconfig_path(); $current_keys = SucuriScanOption::get_security_keys(); if ($wp_config_path) { $cp = 1; $wp_config_path = SucuriScan::escape($wp_config_path); $message = 'The main configuration file was found at: ' . $wp_config_path . '
        '; if (!empty($current_keys['bad']) || !empty($current_keys['missing'])) { $cp = 0; } } else { $cp = 0; $message = 'The wp-config.php file was not found.
        '; } $message .= '
        It checks whether you have proper random keys/salts created for WordPress. A secret key makes your site harder to hack and access harder to crack by adding random elements to the password. In simple terms, a secret key is a password with elements that make it harder to generate enough options to break through your security barriers.'; $messageok = 'Security keys and salts not set, we recommend to create them for security reasons' . '' . 'Harden'; return sucuriscan_harden_status( 'Security keys', $cp, null, 'Security keys and salts properly created', $messageok, $message, null ); } /** * Check whether the "readme.html" file is still available in the root of the * site or not, which can lead to an attacker to know which version number of * Wordpress is being used and search for possible vulnerabilities. * * @return void */ function sucuriscan_harden_readme() { $upmsg = null; $cp = is_readable(ABSPATH.'/readme.html') ? 0 : 1; // TODO: After hardening create an option to automatically remove this after WP upgrade. if (SucuriScanRequest::post(':run_hardening')) { if (SucuriScanRequest::post(':harden_readme') && $cp == 0) { if (@unlink(ABSPATH.'/readme.html') === false) { $upmsg = SucuriScanInterface::error('Unable to remove readme.html file.'); } else { $cp = 1; $message = 'Hardening applied to the readme.html file'; SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } } elseif (SucuriScanRequest::post(':harden_readme_unharden')) { SucuriScanInterface::error('We can not revert this action, you must create the readme.html manually.'); } } return sucuriscan_harden_status( 'Information leakage (readme.html)', $cp, ( $cp == 0 ? 'sucuriscan_harden_readme' : null ), 'readme.html file properly deleted', 'readme.html not deleted and leaking the WordPress version', 'It checks whether you have the readme.html file available that leaks your WordPress version', $upmsg ); } /** * Check whether the main administrator user still has the default name "admin" * or not, which can lead to an attacker to perform a brute force attack. * * @return void */ function sucuriscan_harden_adminuser() { global $wpdb; $upmsg = null; $user_query = new WP_User_Query(array( 'search' => 'admin', 'fields' => array( 'ID', 'user_login' ), 'search_columns' => array( 'user_login' ), )); $results = $user_query->get_results(); $account_removed = ( count($results) === 0 ? 1 : 0 ); if ($account_removed === 0) { $upmsg = 'Notice. We do not offer an option to automatically change the user name. Go to the user list and create a new administrator user. Once created, log in as that user and remove the default admin (make sure to assign all the admin posts to the new user too).'; } return sucuriscan_harden_status( 'Default admin account', $account_removed, null, 'Default admin user account (admin) not being used', 'Default admin user account (admin) being used. Not recommended', 'It checks whether you have the default admin account enabled, security guidelines recommend creating a new admin user name.', $upmsg ); } /** * Enable or disable the user of the built-in Wordpress file editor. * * @return void */ function sucuriscan_harden_fileeditor() { $file_editor_disabled = defined('DISALLOW_FILE_EDIT') ? DISALLOW_FILE_EDIT : false; if (SucuriScanRequest::post(':run_hardening')) { $current_time = date('r'); $wp_config_path = SucuriScan::get_wpconfig_path(); $wp_config_writable = ( file_exists($wp_config_path) && is_writable($wp_config_path) ) ? true : false; $new_wpconfig = $wp_config_writable ? @file_get_contents($wp_config_path) : ''; if (SucuriScanRequest::post(':harden_fileeditor')) { if ($wp_config_writable) { if (preg_match('/(.*define\(.DB_COLLATE..*)/', $new_wpconfig, $match)) { $disallow_fileedit_definition = "\n\ndefine('DISALLOW_FILE_EDIT', TRUE); // Sucuri Security: {$current_time}\n"; $new_wpconfig = str_replace($match[0], $match[0].$disallow_fileedit_definition, $new_wpconfig); } $file_editor_disabled = true; @file_put_contents($wp_config_path, $new_wpconfig, LOCK_EX); $message = 'Hardening applied to the plugin and theme editor'; SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('The wp-config.php file is not in the default location or is not writable, you will need to put the following code manually there: define("DISALLOW_FILE_EDIT", TRUE);'); } } elseif (SucuriScanRequest::post(':harden_fileeditor_unharden')) { if (preg_match("/(.*define\('DISALLOW_FILE_EDIT', TRUE\);.*)/", $new_wpconfig, $match)) { if ($wp_config_writable) { $new_wpconfig = str_replace("\n{$match[1]}", '', $new_wpconfig); file_put_contents($wp_config_path, $new_wpconfig, LOCK_EX); $file_editor_disabled = false; $message = 'Hardening reverted in the plugin and theme editor'; SucuriScanEvent::report_error_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('The wp-config.php file is not in the default location or is not writable, you will need to remove the following code manually from there: define("DISALLOW_FILE_EDIT", TRUE);'); } } else { SucuriScanInterface::error('The theme and plugin editor are not disabled from the configuration file.'); } } } $message = 'Occasionally you may wish to disable the plugin or theme editor to prevent overzealous users from being able to edit sensitive files and potentially crash the site. Disabling these also provides an additional layer of security if a hacker gains access to a well-privileged user account.'; return sucuriscan_harden_status( 'Plugin & Theme editor', ( $file_editor_disabled === false ? 0 : 1 ), 'sucuriscan_harden_fileeditor', 'File editor for Plugins and Themes is disabled', 'File editor for Plugins and Themes is enabled', $message, null ); } /** * Check whether the prefix of each table in the database designated for the site * is the same as the default prefix defined by Wordpress "_wp", in that case the * "harden" button will generate randomly a new prefix and rename all those tables. * * @return void */ function sucuriscan_harden_dbtables() { global $table_prefix; $hardened = ( $table_prefix == 'wp_' ? 0 : 1 ); return sucuriscan_harden_status( 'Database table prefix', $hardened, null, 'Database table prefix properly modified', 'Database table set to the default value wp_.', 'It checks whether your database table prefix has been changed from the default wp_', 'Be aware that this hardening procedure can cause your site to go down' ); } /** * Check whether an error_log file exists in the project. * * @return void */ function sucuriscan_harden_errorlog() { $hardened = 1; $log_filename = SucuriScan::ini_get('error_log'); $scan_errorlogs = SucuriScanOption::get_option(':scan_errorlogs'); $description = 'PHP uses files named as ' . $log_filename . ' to log errors found in ' . 'the code, these files may leak sensitive information of your project allowing an attacker ' . 'to find vulnerabilities in the code. You must use these files to fix any bug while using ' . 'a development environment, and remove them in production mode.'; // Search error log files in the project. if ($scan_errorlogs != 'disabled') { $file_info = new SucuriScanFileInfo(); $file_info->ignore_files = false; $file_info->ignore_directories = false; $error_logs = $file_info->find_file($log_filename); $total_log_files = count($error_logs); } else { $hardened = 2; $error_logs = array(); $total_log_files = 0; $description .= '

        The filesystem scan for error ' . 'log files is disabled, so even if there are logs in your project they will be not ' . 'shown here. You can enable the scanner again from the plugin Settings ' . 'page.

        '; } // Remove every error log file found in the filesystem scan. if (SucuriScanRequest::post(':run_hardening')) { if (SucuriScanRequest::post(':harden_errorlog')) { $removed_logs = 0; SucuriScanEvent::report_notice_event(sprintf( 'Error log files deleted: (multiple entries): %s', @implode(',', $error_logs) )); foreach ($error_logs as $i => $error_log_path) { if (unlink($error_log_path)) { unset($error_logs[ $i ]); $removed_logs += 1; } } SucuriScanInterface::info('Error log files deleted ' . $removed_logs . ' out of ' . $total_log_files . ''); } } // List the error log files in a HTML table. if (!empty($error_logs)) { $hardened = 0; $description .= '

          '; foreach ($error_logs as $error_log_path) { $error_log_path = str_replace(ABSPATH, '/', $error_log_path); $description .= '
        • ' . SucuriScan::escape($error_log_path) . '
        • '; } $description .= '

        '; } return sucuriscan_harden_status( 'Error logs', $hardened, ( $hardened == 0 ? 'sucuriscan_harden_errorlog' : null ), 'There are no error log files in your project.', 'There are ' . $total_log_files . ' error log files in your project.', $description, null ); } /** * WordPress core integrity page. * * It checks whether the WordPress core files are the original ones, and the state * of the themes and plugins reporting the availability of updates. It also checks * the user accounts under the administrator group. * * @return void */ function sucuriscan_page() { SucuriScanInterface::check_permissions(); // Process all form submissions. sucuriscan_integrity_form_submissions(); $params = array( 'WordpressVersion' => sucuriscan_wordpress_outdated(), 'CoreFiles' => sucuriscan_core_files(), 'AuditReports' => sucuriscan_auditreport(), 'AuditLogs' => sucuriscan_auditlogs(), ); echo SucuriScanTemplate::getTemplate('integrity', $params); } /** * Handle an Ajax request for this specific page. * * @return mixed. */ function sucuriscan_ajax() { SucuriScanInterface::check_permissions(); if (SucuriScanInterface::check_nonce()) { sucuriscan_core_files_ajax(); } wp_die(); } /** * Print a HTML code with the content of the logs audited by the remote Sucuri * API service, this page is part of the monitoring tool. * * @return void */ function sucuriscan_auditlogs() { // Initialize the values for the pagination. $max_per_page = SUCURISCAN_AUDITLOGS_PER_PAGE; $page_number = SucuriScanTemplate::pageNumber(); $logs_limit = $page_number * $max_per_page; $audit_logs = SucuriScanAPI::getLogs($logs_limit); $params = array( 'PageTitle' => 'Audit Logs', 'AuditLogs.List' => '', 'AuditLogs.Count' => 0, 'AuditLogs.MaxPerPage' => $max_per_page, 'AuditLogs.NoItemsVisibility' => 'visible', 'AuditLogs.PaginationVisibility' => 'hidden', 'AuditLogs.PaginationLinks' => '', 'AuditLogs.EnableAuditReportVisibility' => 'hidden', ); if ($audit_logs) { $counter_i = 0; $total_items = count($audit_logs->output_data); $iterator_start = ($page_number - 1) * $max_per_page; $iterator_end = $total_items; if ($audit_logs->total_entries >= $max_per_page && SucuriScanOption::is_disabled(':audit_report') ) { $params['AuditLogs.EnableAuditReportVisibility'] = 'visible'; } for ($i = $iterator_start; $i < $total_items; $i++) { if ($counter_i > $max_per_page) { break; } if (isset($audit_logs->output_data[ $i ])) { $audit_log = $audit_logs->output_data[ $i ]; $css_class = ( $counter_i % 2 == 0 ) ? '' : 'alternate'; $snippet_data = array( 'AuditLog.CssClass' => $css_class, 'AuditLog.Event' => $audit_log['event'], 'AuditLog.EventTitle' => ucfirst($audit_log['event']), 'AuditLog.Timestamp' => $audit_log['timestamp'], 'AuditLog.DateTime' => SucuriScan::datetime($audit_log['timestamp']), 'AuditLog.Account' => $audit_log['account'], 'AuditLog.Username' => $audit_log['username'], 'AuditLog.RemoteAddress' => $audit_log['remote_addr'], 'AuditLog.Message' => $audit_log['message'], 'AuditLog.Extra' => '', ); // Print every file_list information item in a separate table. if ($audit_log['file_list']) { $css_scrollable = $audit_log['file_list_count'] > 10 ? 'sucuriscan-list-as-table-scrollable' : ''; $snippet_data['AuditLog.Extra'] .= '

          '; foreach ($audit_log['file_list'] as $log_extra) { $snippet_data['AuditLog.Extra'] .= '
        • ' . SucuriScan::escape($log_extra) . '
        • '; } $snippet_data['AuditLog.Extra'] .= '
        '; } $params['AuditLogs.List'] .= SucuriScanTemplate::getSnippet('integrity-auditlogs', $snippet_data); $counter_i += 1; } } $params['AuditLogs.Count'] = $counter_i; $params['AuditLogs.NoItemsVisibility'] = 'hidden'; if ($total_items > 1) { $max_pages = ceil($audit_logs->total_entries / $max_per_page); if ($max_pages > SUCURISCAN_MAX_PAGINATION_BUTTONS) { $max_pages = SUCURISCAN_MAX_PAGINATION_BUTTONS; } if ($max_pages > 1) { $params['AuditLogs.PaginationVisibility'] = 'visible'; $params['AuditLogs.PaginationLinks'] = SucuriScanTemplate::pagination( '%%SUCURI.URL.Home%%', $max_per_page * $max_pages, $max_per_page ); } } } return SucuriScanTemplate::getSection('integrity-auditlogs', $params); } /** * Print a HTML code with the content of the logs audited by the remote Sucuri * API service, this page is part of the monitoring tool. * * @return void */ function sucuriscan_auditreport() { $audit_report = false; $logs4report = SucuriScanOption::get_option(':logs4report'); if (SucuriScanOption::is_enabled(':audit_report')) { $audit_report = SucuriScanAPI::getAuditReport($logs4report); } $params = array( 'PageTitle' => 'Audit Reports', 'AuditReport.EventColors' => '', 'AuditReport.EventsPerType' => '', 'AuditReport.EventsPerLogin' => '', 'AuditReport.EventsPerUserCategories' => '', 'AuditReport.EventsPerUserSeries' => '', 'AuditReport.EventsPerIPAddressCategories' => '', 'AuditReport.EventsPerIPAddressSeries' => '', 'AuditReport.Logs4Report' => $logs4report, ); if ($audit_report) { $params['AuditReport.EventColors'] = @implode(',', $audit_report['event_colors']); // Generate report chart data for the events per type. foreach ($audit_report['events_per_type'] as $event => $times) { $params['AuditReport.EventsPerType'] .= sprintf( "[ '%s', %d ],\n", ucwords($event . "\x20events"), $times ); } // Generate report chart data for the events per login. foreach ($audit_report['events_per_login'] as $event => $times) { $params['AuditReport.EventsPerLogin'] .= sprintf( "[ '%s', %d ],\n", ucwords($event . "\x20logins"), $times ); } // Generate report chart data for the events per user. foreach ($audit_report['events_per_user'] as $event => $times) { $params['AuditReport.EventsPerUserCategories'] .= sprintf('"%s",', $event); $params['AuditReport.EventsPerUserSeries'] .= sprintf('%d,', $times); } // Generate report chart data for the events per remote address. foreach ($audit_report['events_per_ipaddress'] as $event => $times) { $params['AuditReport.EventsPerIPAddressCategories'] .= sprintf('"%s",', $event); $params['AuditReport.EventsPerIPAddressSeries'] .= sprintf('%d,', $times); } return SucuriScanTemplate::getSection('integrity-auditreport', $params); } return ''; } /** * Check whether the WordPress version is outdated or not. * * @return string Panel with a warning advising that WordPress is outdated. */ function sucuriscan_wordpress_outdated() { $site_version = SucuriScan::site_version(); $updates = get_core_updates(); $cp = (!is_array($updates) || empty($updates) ? 1 : 0); $params = array( 'WordPress.Version' => $site_version, 'WordPress.NewVersion' => '0.0.0', 'WordPress.NewLocale' => 'default', 'WordPress.UpdateURL' => SucuriScan::admin_url('update-core.php'), 'WordPress.DownloadURL' => '#', 'WordPress.UpdateVisibility' => 'hidden', ); if (isset($updates[0]) && $updates[0] instanceof stdClass && property_exists($updates[0], 'version') && property_exists($updates[0], 'download') ) { $params['WordPress.NewVersion'] = $updates[0]->version; $params['WordPress.DownloadURL'] = $updates[0]->download; if (property_exists($updates[0], 'locale')) { $params['WordPress.NewLocale'] = $updates[0]->locale; } if ($updates[0]->response == 'latest' || $updates[0]->response == 'development' || $updates[0]->version == $site_version ) { $cp = 1; } } if ($cp == 0) { $params['WordPress.UpdateVisibility'] = 'visible'; } return SucuriScanTemplate::getSection('integrity-wpoutdate', $params); } /** * Compare the md5sum of the core files in the current site with the hashes hosted * remotely in Sucuri servers. These hashes are updated every time a new version * of WordPress is released. If the "Send Email" parameter is set the function will * send a notification to the administrator with a list of files that were added, * modified and/or deleted so far. * * @return string HTML code with a list of files that were affected. */ function sucuriscan_core_files() { $params = array(); return SucuriScanTemplate::getSection('corefiles-page', $params); } function sucuriscan_core_files_ajax() { if (SucuriScanRequest::post('form_action') == 'get_core_files') { $response = sucuriscan_core_files_data(); print($response); exit(0); } } function sucuriscan_core_files_data($send_email = false) { $affected_files = 0; $site_version = SucuriScan::site_version(); $params = array( 'CoreFiles.List' => '', 'CoreFiles.ListCount' => 0, 'CoreFiles.RemoteChecksumsURL' => '', 'CoreFiles.BadVisibility' => 'hidden', 'CoreFiles.GoodVisibility' => 'visible', 'CoreFiles.FailureVisibility' => 'hidden', 'CoreFiles.NotFixableVisibility' => 'hidden', ); if ($site_version && SucuriScanOption::is_enabled(':scan_checksums')) { // Check if there are added, removed, or modified files. $latest_hashes = sucuriscan_check_core_integrity($site_version); $params['CoreFiles.RemoteChecksumsURL'] = 'https://api.wordpress.org/core/checksums/1.0/' . '?version=' . $site_version . '&locale=en_US'; if ($latest_hashes) { $cache = new SucuriScanCache('integrity'); $ignored_files = $cache->getAll(); $counter = 0; foreach ($latest_hashes as $list_type => $file_list) { if ($list_type == 'stable' || empty($file_list)) { continue; } foreach ($file_list as $file_info) { $file_path = $file_info['filepath']; $full_filepath = sprintf('%s/%s', rtrim(ABSPATH, '/'), $file_path); // Skip files that were marked as fixed. if ($ignored_files) { // Get the checksum of the base file name. $file_path_checksum = md5($file_path); if (array_key_exists($file_path_checksum, $ignored_files)) { continue; } } // Add extra information to the file list. $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $file_size = @filesize($full_filepath); $is_fixable_text = ''; // Check whether the file can be fixed automatically or not. if ($file_info['is_fixable'] !== true) { $css_class .= ' sucuriscan-opacity'; $is_fixable_text = '(not fixable)'; $params['CoreFiles.NotFixableVisibility'] = 'visible'; } // Generate the HTML code from the snippet template for this file. $params['CoreFiles.List'] .= SucuriScanTemplate::getSnippet( 'corefiles', array( 'CoreFiles.CssClass' => $css_class, 'CoreFiles.StatusType' => $list_type, 'CoreFiles.FilePath' => $file_path, 'CoreFiles.FileSize' => $file_size, 'CoreFiles.FileSizeHuman' => SucuriScan::human_filesize($file_size), 'CoreFiles.FileSizeNumber' => number_format($file_size), 'CoreFiles.ModifiedAt' => SucuriScan::datetime($file_info['modified_at']), 'CoreFiles.IsNotFixable' => $is_fixable_text, ) ); $counter += 1; $affected_files += 1; } } if ($counter > 0) { $params['CoreFiles.ListCount'] = $counter; $params['CoreFiles.GoodVisibility'] = 'hidden'; $params['CoreFiles.BadVisibility'] = 'visible'; } } else { $params['CoreFiles.GoodVisibility'] = 'hidden'; $params['CoreFiles.BadVisibility'] = 'hidden'; $params['CoreFiles.FailureVisibility'] = 'visible'; } } // Send an email notification with the affected files. if ($send_email === true) { if ($affected_files > 0) { $content = SucuriScanTemplate::getSection('corefiles-notification', $params); $sent = SucuriScanEvent::notify_event('scan_checksums', $content); return $sent; } return false; } return SucuriScanTemplate::getSection('corefiles', $params); } /** * Process the requests sent by the form submissions originated in the integrity * page, all forms must have a nonce field that will be checked against the one * generated in the template render function. * * @return void */ function sucuriscan_integrity_form_submissions() { if (SucuriScanInterface::check_nonce()) { // Force the execution of the filesystem scanner. if (SucuriScanRequest::post(':force_scan') !== false) { SucuriScanEvent::notify_event('plugin_change', 'Filesystem scan forced at: ' . date('r')); SucuriScanEvent::filesystem_scan(true); sucuriscan_core_files_data(true); } // Restore, Remove, Mark as fixed the core files. $action = SucuriScanRequest::post(':integrity_action'); if ($action !== false) { if (SucuriScanRequest::post(':process_form') == 1) { if ($action == 'fixed' || $action == 'delete' || $action == 'restore' ) { $cache = new SucuriScanCache('integrity'); $core_files = SucuriScanRequest::post(':corefiles', '_array'); $files_selected = count($core_files); $files_affected = array(); $files_processed = 0; $action_titles = array( 'restore' => 'Core file restored', 'delete' => 'Non-core file deleted', 'fixed' => 'Core file marked as fixed', ); if ($core_files) { $delimiter = '@'; $parts_count = 2; foreach ($core_files as $file_meta) { if (strpos($file_meta, $delimiter)) { $parts = explode($delimiter, $file_meta, $parts_count); if (count($parts) === $parts_count) { $file_path = $parts[1]; $status_type = $parts[0]; // Do not use realpath as the file may not exists. $full_path = ABSPATH . '/' . $file_path; switch ($action) { case 'restore': $file_content = SucuriScanAPI::getOriginalCoreFile($file_path); if ($file_content) { $restored = @file_put_contents($full_path, $file_content); $files_processed += ($restored ? 1 : 0); $files_affected[] = $full_path; } break; case 'fixed': $cache_key = md5($file_path); $cache_value = array( 'file_path' => $file_path, 'file_status' => $status_type, 'ignored_at' => time(), ); $cached = $cache->add($cache_key, $cache_value); $files_processed += ($cached ? 1 : 0); $files_affected[] = $full_path; break; case 'delete': if (@unlink($full_path)) { $files_processed += 1; $files_affected[] = $full_path; } break; } } } } // Report files affected as a single event. if (!empty($files_affected)) { $message_tpl = (count($files_affected) > 1) ? '%s: (multiple entries): %s' : '%s: %s'; $message = sprintf( $message_tpl, $action_titles[$action], @implode(',', $files_affected) ); switch ($action) { case 'restore': SucuriScanEvent::report_info_event($message); break; case 'delete': SucuriScanEvent::report_notice_event($message); break; case 'fixed': SucuriScanEvent::report_warning_event($message); break; } } SucuriScanInterface::info(sprintf( '%d out of %d files were successfully processed.', $files_processed, $files_selected )); } else { SucuriScanInterface::error('No files were selected.'); } } else { SucuriScanInterface::error('Action requested is not supported.'); } } else { SucuriScanInterface::error('You need to confirm that you understand the risk of this operation.'); } } } } /** * Retrieve a list of md5sum and last modification time of all the files in the * folder specified. This is a recursive function. * * @param string $dir The base path where the scanning will start. * @param boolean $recursive Either TRUE or FALSE if the scan should be performed recursively. * @return array List of arrays containing the md5sum and last modification time of the files found. */ function sucuriscan_get_integrity_tree($dir = './', $recursive = false) { $abs_path = rtrim(ABSPATH, '/'); $file_info = new SucuriScanFileInfo(); $file_info->ignore_files = false; $file_info->ignore_directories = false; $file_info->run_recursively = $recursive; $file_info->scan_interface = SucuriScanOption::get_option(':scan_interface'); $integrity_tree = $file_info->get_directory_tree_md5($dir, true); if (!$integrity_tree) { $integrity_tree = array(); } return $integrity_tree; } /** * Check whether the core WordPress files where modified, removed or if any file * was added to the core folders. This function returns an associative array with * these keys: * *
          *
        • modified: Files with a different checksum according to the official WordPress archives,
        • *
        • stable: Files with the same checksums than the official files,
        • *
        • removed: Official files which are not present in the local project,
        • *
        • added: Files present in the local project but not in the official WordPress packages.
        • *
        * * @param integer $version Valid version number of the WordPress project. * @return array Associative array with these keys: modified, stable, removed, added. */ function sucuriscan_check_core_integrity($version = 0) { $latest_hashes = SucuriScanAPI::getOfficialChecksums($version); $base_content_dir = defined('WP_CONTENT_DIR') ? basename(rtrim(WP_CONTENT_DIR, '/')) : ''; if (!$latest_hashes) { return false; } $output = array( 'added' => array(), 'removed' => array(), 'modified' => array(), 'stable' => array(), ); // Get current filesystem tree. $wp_top_hashes = sucuriscan_get_integrity_tree(ABSPATH, false); $wp_admin_hashes = sucuriscan_get_integrity_tree(ABSPATH . 'wp-admin', true); $wp_includes_hashes = sucuriscan_get_integrity_tree(ABSPATH . 'wp-includes', true); $wp_core_hashes = array_merge($wp_top_hashes, $wp_admin_hashes, $wp_includes_hashes); // Compare remote and local checksums and search removed files. foreach ($latest_hashes as $file_path => $remote_checksum) { if (sucuriscan_ignore_integrity_filepath($file_path)) { continue; } $full_filepath = sprintf('%s/%s', ABSPATH, $file_path); // Patch for custom content directory path. if (!file_exists($full_filepath) && strpos($file_path, 'wp-content') !== false && defined('WP_CONTENT_DIR') ) { $file_path = str_replace('wp-content', $base_content_dir, $file_path); $dir_content_dir = dirname(rtrim(WP_CONTENT_DIR, '/')); $full_filepath = sprintf('%s/%s', $dir_content_dir, $file_path); } // Check whether the official file exists or not. if (file_exists($full_filepath)) { $local_checksum = @md5_file($full_filepath); if ($local_checksum !== false && $local_checksum === $remote_checksum ) { $output['stable'][] = array( 'filepath' => $file_path, 'is_fixable' => false, 'modified_at' => 0, ); } else { $modified_at = @filemtime($full_filepath); $is_fixable = (bool) is_writable($full_filepath); $output['modified'][] = array( 'filepath' => $file_path, 'is_fixable' => $is_fixable, 'modified_at' => $modified_at, ); } } else { $is_fixable = is_writable(dirname($full_filepath)); $output['removed'][] = array( 'filepath' => $file_path, 'is_fixable' => $is_fixable, 'modified_at' => 0, ); } } // Search added files (files not common in a normal wordpress installation). foreach ($wp_core_hashes as $file_path => $extra_info) { $file_path = str_replace(DIRECTORY_SEPARATOR, '/', $file_path); $file_path = @preg_replace('/^\.\/(.*)/', '$1', $file_path); if (sucuriscan_ignore_integrity_filepath($file_path)) { continue; } if (!array_key_exists($file_path, $latest_hashes)) { $full_filepath = ABSPATH . '/' . $file_path; $modified_at = @filemtime($full_filepath); $is_fixable = (bool) is_writable($full_filepath); $output['added'][] = array( 'filepath' => $file_path, 'is_fixable' => $is_fixable, 'modified_at' => $modified_at, ); } } return $output; } /** * Ignore irrelevant files and directories from the integrity checking. * * @param string $file_path File path that will be compared. * @return boolean TRUE if the file should be ignored, FALSE otherwise. */ function sucuriscan_ignore_integrity_filepath($file_path = '') { global $wp_local_package; // List of files that will be ignored from the integrity checking. $ignore_files = array( '^sucuri-[0-9a-z\-]+\.php$', '^\S+-sucuri-db-dump-gzip-[0-9]{10}-[0-9a-z]{32}\.gz$', '^favicon\.ico$', '^php\.ini$', '^\.htaccess$', '^wp-includes\/\.htaccess$', '^wp-admin\/setup-config\.php$', '^wp-(config|pass|rss|feed|register|atom|commentsrss2|rss2|rdf)\.php$', '^wp-content\/(themes|plugins)\/.+', // TODO: Add the popular themes/plugins integrity checks. '^sitemap\.xml($|\.gz)$', '^readme\.html$', '^(503|404)\.php$', '^500\.(shtml|php)$', '^40[0-9]\.shtml$', '^([^\/]*)\.(pdf|css|txt)$', '^google[0-9a-z]{16}\.html$', '^pinterest-[0-9a-z]{5}\.html$', '(^|\/)error_log$', ); /** * Ignore i18n files. * * Sites with i18n have differences compared with the official English version * of the project, basically they have files with new variables specifying the * language that will be used in the admin panel, site options, and emails. */ if (isset($wp_local_package) && $wp_local_package != 'en_US' ) { $ignore_files[] = 'wp-includes\/version\.php'; $ignore_files[] = 'wp-config-sample\.php'; } // Determine whether a file must be ignored from the integrity checks or not. foreach ($ignore_files as $ignore_pattern) { if (@preg_match('/'.$ignore_pattern.'/', $file_path)) { return true; } } return false; } /** * Generate and print the HTML code for the Post-Hack page. * * @return void */ function sucuriscan_posthack_page() { SucuriScanInterface::check_permissions(); $process_form = sucuriscan_posthack_process_form(); // Page pseudo-variables initialization. $params = array( 'PageTitle' => 'Post-Hack', 'UpdateSecretKeys' => sucuriscan_update_secret_keys($process_form), 'ResetPassword' => sucuriscan_posthack_users($process_form), 'ResetPlugins' => sucuriscan_posthack_plugins($process_form), ); echo SucuriScanTemplate::getTemplate('posthack', $params); } /** * Handle an Ajax request for this specific page. * * @return mixed. */ function sucuriscan_posthack_ajax() { SucuriScanInterface::check_permissions(); if (SucuriScanInterface::check_nonce()) { sucuriscan_posthack_plugins_ajax(); } wp_die(); } /** * Check whether the "I understand this operation" checkbox was marked or not. * * @return boolean TRUE if a form submission should be processed, FALSE otherwise. */ function sucuriscan_posthack_process_form() { $process_form = SucuriScanRequest::post(':process_form', '(0|1)'); if (SucuriScanInterface::check_nonce() && $process_form !== false ) { if ($process_form === '1') { return true; } else { SucuriScanInterface::error('You need to confirm that you understand the risk of this operation.'); } } return false; } /** * Update the WordPress secret keys. * * @param $process_form Whether a form was submitted or not. * @return string HTML code with the information of the process. */ function sucuriscan_update_secret_keys($process_form = false) { $params = array( 'WPConfigUpdate.Visibility' => 'hidden', 'WPConfigUpdate.NewConfig' => '', 'SecurityKeys.List' => '', ); // Update all WordPress secret keys. if ($process_form && SucuriScanRequest::post(':update_wpconfig', '1')) { $wpconfig_process = SucuriScanEvent::set_new_config_keys(); if ($wpconfig_process) { $params['WPConfigUpdate.Visibility'] = 'visible'; SucuriScanEvent::report_notice_event('Generate new security keys'); if ($wpconfig_process['updated'] === true) { SucuriScanInterface::info('Secret keys updated successfully (summary of the operation bellow).'); $params['WPConfigUpdate.NewConfig'] .= "// Old Keys\n"; $params['WPConfigUpdate.NewConfig'] .= $wpconfig_process['old_keys_string']; $params['WPConfigUpdate.NewConfig'] .= "//\n"; $params['WPConfigUpdate.NewConfig'] .= "// New Keys\n"; $params['WPConfigUpdate.NewConfig'] .= $wpconfig_process['new_keys_string']; } else { SucuriScanInterface::error( 'wp-config.php file is not writable, replace the ' . 'old configuration file with the new values shown bellow.' ); $params['WPConfigUpdate.NewConfig'] = $wpconfig_process['new_wpconfig']; } } else { SucuriScanInterface::error('wp-config.php file was not found in the default location.'); } } // Display the current status of the security keys. $current_keys = SucuriScanOption::get_security_keys(); $counter = 0; foreach ($current_keys as $key_status => $key_list) { foreach ($key_list as $key_name => $key_value) { $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $key_value = SucuriScan::excerpt($key_value, 50); switch ($key_status) { case 'good': $key_status_text = 'good'; $key_status_css_class = 'success'; break; case 'bad': $key_status_text = 'not randomized'; $key_status_css_class = 'warning'; break; case 'missing': $key_value = ''; $key_status_text = 'not set'; $key_status_css_class = 'danger'; break; } if (isset($key_status_text)) { $params['SecurityKeys.List'] .= SucuriScanTemplate::getSnippet( 'posthack-updatesecretkeys', array( 'SecurityKey.CssClass' => $css_class, 'SecurityKey.KeyName' => $key_name, 'SecurityKey.KeyValue' => $key_value, 'SecurityKey.KeyStatusText' => $key_status_text, 'SecurityKey.KeyStatusCssClass' => $key_status_css_class, ) ); $counter++; } } } return SucuriScanTemplate::getSection('posthack-updatesecretkeys', $params); } /** * Display a list of users in a table that will be used to select the accounts * where a password reset action will be executed. * * @param $process_form Whether a form was submitted or not. * @return string HTML code for a table where a list of user accounts will be shown. */ function sucuriscan_posthack_users($process_form = false) { $params = array( 'ResetPassword.UserList' => '', 'ResetPassword.PaginationLinks' => '', 'ResetPassword.PaginationVisibility' => 'hidden', ); // Process the form submission (if any). sucuriscan_reset_user_password($process_form); // Fill the user list for ResetPassword action. $user_list = false; $page_number = SucuriScanTemplate::pageNumber(); $max_per_page = SUCURISCAN_MAX_PAGINATION_BUTTONS; $dbquery = new WP_User_Query(array( 'number' => $max_per_page, 'offset' => ($page_number - 1) * $max_per_page, 'fields' => 'all_with_meta', 'orderby' => 'ID', )); // Retrieve the results and build the pagination links. if ($dbquery) { $total_items = $dbquery->get_total(); $user_list = $dbquery->get_results(); $params['ResetPassword.PaginationLinks'] = SucuriScanTemplate::pagination( '%%SUCURI.URL.Posthack%%#reset-users-password', $total_items, $max_per_page ); if ($total_items > $max_per_page) { $params['ResetPassword.PaginationVisibility'] = 'visible'; } } if ($user_list !== false) { $counter = 0; foreach ($user_list as $user) { $user->user_registered_timestamp = strtotime($user->user_registered); $user->user_registered_formatted = SucuriScan::datetime($user->user_registered_timestamp); $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $display_username = ( $user->user_login != $user->display_name ) ? sprintf('%s (%s)', $user->user_login, $user->display_name) : $user->user_login; $params['ResetPassword.UserList'] .= SucuriScanTemplate::getSnippet( 'posthack-resetpassword', array( 'ResetPassword.UserId' => $user->ID, 'ResetPassword.Username' => $user->user_login, 'ResetPassword.Displayname' => $user->display_name, 'ResetPassword.DisplayUsername' => $display_username, 'ResetPassword.Email' => $user->user_email, 'ResetPassword.Registered' => $user->user_registered_formatted, 'ResetPassword.Roles' => @implode(', ', $user->roles), 'ResetPassword.CssClass' => $css_class, ) ); $counter++; } } return SucuriScanTemplate::getSection('posthack-resetpassword', $params); } /** * Update the password of the user accounts specified. * * @param $process_form Whether a form was submitted or not. * @return void */ function sucuriscan_reset_user_password($process_form = false) { if ($process_form && SucuriScanRequest::post(':reset_password')) { $user_identifiers = SucuriScanRequest::post('user_ids', '_array'); $pwd_changed = array(); $pwd_not_changed = array(); if (is_array($user_identifiers) && !empty($user_identifiers)) { arsort($user_identifiers); foreach ($user_identifiers as $user_id) { $user_id = intval($user_id); if (SucuriScanEvent::set_new_password($user_id)) { $pwd_changed[] = $user_id; } else { $pwd_not_changed[] = $user_id; } } if (!empty($pwd_changed)) { $message = 'Password changed for user identifiers ' . @implode(', ', $pwd_changed) . ''; SucuriScanEvent::report_notice_event($message); SucuriScanInterface::info($message); } if (!empty($pwd_not_changed)) { SucuriScanInterface::error('Password change failed for users: ' . implode(', ', $pwd_not_changed)); } } else { SucuriScanInterface::error('You did not select a user from the list.'); } } } /** * Reset all the FREE plugins, even if they are not activated. * * @param boolean $process_form Whether a form was submitted or not. * @return void */ function sucuriscan_posthack_plugins($process_form = false) { $params = array( 'ResetPlugin.PluginList' => '', 'ResetPlugin.CacheLifeTime' => 'unknown', ); if (defined('SUCURISCAN_GET_PLUGINS_LIFETIME')) { $params['ResetPlugin.CacheLifeTime'] = SUCURISCAN_GET_PLUGINS_LIFETIME; } sucuriscan_posthack_reinstall_plugins($process_form); return SucuriScanTemplate::getSection('posthack-resetplugins', $params); } /** * Process the Ajax request to retrieve the plugins metadata. * * @return string HTML code for a table with the plugins metadata. */ function sucuriscan_posthack_plugins_ajax() { if (SucuriScanRequest::post('form_action') == 'get_plugins_data') { $all_plugins = SucuriScanAPI::getPlugins(); $response = ''; $counter = 0; foreach ($all_plugins as $plugin_path => $plugin_data) { $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $plugin_type_class = ( $plugin_data['PluginType'] == 'free' ) ? 'primary' : 'warning'; $input_disabled = ( $plugin_data['PluginType'] == 'free' ) ? '' : 'disabled="disabled"'; $plugin_status = $plugin_data['IsPluginActive'] ? 'active' : 'not active'; $plugin_status_class = $plugin_data['IsPluginActive'] ? 'success' : 'default'; $response .= SucuriScanTemplate::getSnippet( 'posthack-resetplugins', array( 'ResetPlugin.CssClass' => $css_class, 'ResetPlugin.Disabled' => $input_disabled, 'ResetPlugin.PluginPath' => $plugin_path, 'ResetPlugin.Plugin' => SucuriScan::excerpt($plugin_data['Name'], 35), 'ResetPlugin.Version' => $plugin_data['Version'], 'ResetPlugin.Type' => $plugin_data['PluginType'], 'ResetPlugin.TypeClass' => $plugin_type_class, 'ResetPlugin.Status' => $plugin_status, 'ResetPlugin.StatusClass' => $plugin_status_class, ) ); $counter++; } print( $response ); exit(0); } } /** * Process the request that will start the execution of the plugin * reinstallation, it will check if the plugins submitted are (in fact) * installed in the system, then check if they are free download from the * WordPress market place, and finally download and install them. * * @param boolean $process_form Whether a form was submitted or not. * @return void */ function sucuriscan_posthack_reinstall_plugins($process_form = false) { if ($process_form && isset($_POST['sucuriscan_reset_plugins'])) { include_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'); include_once(ABSPATH . 'wp-admin/includes/plugin-install.php'); // For plugins_api. if ($plugin_list = SucuriScanRequest::post('plugin_path', '_array')) { // Create an instance of the FileInfo interface. $file_info = new SucuriScanFileInfo(); $file_info->ignore_files = false; $file_info->ignore_directories = false; $file_info->skip_directories = false; // Get (possible) cached information from the installed plugins. $all_plugins = SucuriScanAPI::getPlugins(); // Loop through all the installed plugins. foreach ($_POST['plugin_path'] as $plugin_path) { if (array_key_exists($plugin_path, $all_plugins)) { $plugin_data = $all_plugins[ $plugin_path ]; // Check if the plugin can be downloaded from the free market. if ($plugin_data['IsFreePlugin'] === true) { $plugin_info = SucuriScanAPI::getRemotePluginData($plugin_data['RepositoryName']); if ($plugin_info) { // First, remove all files/sub-folders from the plugin's directory. if (substr_count($plugin_path, '/') >= 1) { $plugin_directory = dirname(WP_PLUGIN_DIR . '/' . $plugin_path); $file_info->remove_directory_tree($plugin_directory); } // Install a fresh copy of the plugin's files. $upgrader_skin = new Plugin_Installer_Skin(); $upgrader = new Plugin_Upgrader($upgrader_skin); $upgrader->install($plugin_info->download_link); SucuriScanEvent::report_notice_event('Plugin re-installed: ' . $plugin_path); } else { SucuriScanInterface::error('Connection with the WordPress plugin market failed.'); } } } } } else { SucuriScanInterface::error('You did not select a free plugin to reinstall.'); } } } /** * Generate and print the HTML code for the Last Logins page. * * This page will contains information of all the logins of the registered users. * * @return string Last-logings for the administrator accounts. */ function sucuriscan_lastlogins_page() { SucuriScanInterface::check_permissions(); // Reset the file with the last-logins logs. if (SucuriScanInterface::check_nonce() && SucuriScanRequest::post(':reset_lastlogins') !== false ) { $file_path = sucuriscan_lastlogins_datastore_filepath(); if (unlink($file_path)) { sucuriscan_lastlogins_datastore_exists(); SucuriScanInterface::info('Last-Logins logs were reset successfully.'); } else { SucuriScanInterface::error('Could not reset the last-logins logs.'); } } // Page pseudo-variables initialization. $params = array( 'PageTitle' => 'Last Logins', 'LastLogins.Admins' => sucuriscan_lastlogins_admins(), 'LastLogins.AllUsers' => sucuriscan_lastlogins_all(), 'LoggedInUsers' => sucuriscan_loggedin_users_panel(), 'FailedLogins' => sucuriscan_failed_logins_panel(), ); echo SucuriScanTemplate::getTemplate('lastlogins', $params); } /** * List all the user administrator accounts. * * @see https://codex.wordpress.org/Class_Reference/WP_User_Query * * @return void */ function sucuriscan_lastlogins_admins() { // Page pseudo-variables initialization. $params = array( 'AdminUsers.List' => '', ); $user_query = new WP_User_Query(array('role' => 'Administrator')); $admins = $user_query->get_results(); foreach ((array) $admins as $admin) { $last_logins = sucuriscan_get_logins(5, 0, $admin->ID); $admin->lastlogins = $last_logins['entries']; $user_snippet = array( 'AdminUsers.Username' => $admin->user_login, 'AdminUsers.Email' => $admin->user_email, 'AdminUsers.LastLogins' => '', 'AdminUsers.RegisteredAt' => 'Unknown', 'AdminUsers.UserURL' => SucuriScan::admin_url('user-edit.php?user_id=' . $admin->ID), 'AdminUsers.NoLastLogins' => 'visible', 'AdminUsers.NoLastLoginsTable' => 'hidden', ); if (!empty($admin->lastlogins)) { $user_snippet['AdminUsers.NoLastLogins'] = 'hidden'; $user_snippet['AdminUsers.NoLastLoginsTable'] = 'visible'; $user_snippet['AdminUsers.RegisteredAt'] = 'Unknown'; $counter = 0; foreach ($admin->lastlogins as $i => $lastlogin) { if ($i == 0) { $user_snippet['AdminUsers.RegisteredAt'] = SucuriScan::datetime( $lastlogin->user_registered_timestamp ); } $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $user_snippet['AdminUsers.LastLogins'] .= SucuriScanTemplate::getSnippet( 'lastlogins-admins-lastlogin', array( 'AdminUsers.RemoteAddr' => $lastlogin->user_remoteaddr, 'AdminUsers.Datetime' => SucuriScan::datetime($lastlogin->user_lastlogin_timestamp), 'AdminUsers.CssClass' => $css_class, ) ); $counter++; } } $params['AdminUsers.List'] .= SucuriScanTemplate::getSnippet('lastlogins-admins', $user_snippet); } return SucuriScanTemplate::getSection('lastlogins-admins', $params); } /** * List the last-logins for all user accounts in the site. * * This page will contains information of all the logins of the registered users. * * @return string Last-logings for all user accounts. */ function sucuriscan_lastlogins_all() { $max_per_page = SUCURISCAN_LASTLOGINS_USERSLIMIT; $page_number = SucuriScanTemplate::pageNumber(); $offset = ($max_per_page * $page_number) - $max_per_page; $params = array( 'UserList' => '', 'UserList.Limit' => $max_per_page, 'UserList.Total' => 0, 'UserList.Pagination' => '', 'UserList.PaginationVisibility' => 'hidden', 'UserList.NoItemsVisibility' => 'visible', ); if (!sucuriscan_lastlogins_datastore_is_writable()) { $fpath = SucuriScan::escape(sucuriscan_lastlogins_datastore_filepath()); SucuriScanInterface::error('Last-logins datastore file is not writable: ' . $fpath . ''); } $counter = 0; $last_logins = sucuriscan_get_logins($max_per_page, $offset); $params['UserList.Total'] = $last_logins['total']; if ($last_logins['total'] > $max_per_page) { $params['UserList.PaginationVisibility'] = 'visible'; } if ($last_logins['total'] > 0) { $params['UserList.NoItemsVisibility'] = 'hidden'; } foreach ($last_logins['entries'] as $user) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $user_dataset = array( 'UserList.Number' => $user->line_num, 'UserList.UserId' => $user->user_id, 'UserList.Username' => 'Unknown', 'UserList.Displayname' => '', 'UserList.Email' => '', 'UserList.Registered' => '', 'UserList.RemoteAddr' => $user->user_remoteaddr, 'UserList.Hostname' => $user->user_hostname, 'UserList.Datetime' => $user->user_lastlogin, 'UserList.TimeAgo' => SucuriScan::time_ago($user->user_lastlogin), 'UserList.UserURL' => SucuriScan::admin_url('user-edit.php?user_id=' . $user->user_id), 'UserList.CssClass' => $css_class, ); if ($user->user_exists) { $user_dataset['UserList.Username'] = $user->user_login; $user_dataset['UserList.Displayname'] = $user->display_name; $user_dataset['UserList.Email'] = $user->user_email; $user_dataset['UserList.Registered'] = $user->user_registered; } $params['UserList'] .= SucuriScanTemplate::getSnippet('lastlogins-all', $user_dataset); $counter++; } // Generate the pagination for the list. $params['UserList.Pagination'] = SucuriScanTemplate::pagination( '%%SUCURI.URL.Lastlogins%%', $last_logins['total'], $max_per_page ); return SucuriScanTemplate::getSection('lastlogins-all', $params); } /** * Get the filepath where the information of the last logins of all users is stored. * * @return string Absolute filepath where the user's last login information is stored. */ function sucuriscan_lastlogins_datastore_filepath() { return SucuriScan::datastore_folder_path('sucuri-lastlogins.php'); } /** * Check whether the user's last login datastore file exists or not, if not then * we try to create the file and check again the success of the operation. * * @return string Absolute filepath where the user's last login information is stored. */ function sucuriscan_lastlogins_datastore_exists() { $fpath = sucuriscan_lastlogins_datastore_filepath(); if (!file_exists($fpath)) { @file_put_contents($fpath, "\n", LOCK_EX); } if (file_exists($fpath)) { return $fpath; } return false; } /** * Check whether the user's last login datastore file is writable or not, if not * we try to set the right permissions and check again the success of the operation. * * @return boolean Whether the user's last login datastore file is writable or not. */ function sucuriscan_lastlogins_datastore_is_writable() { $datastore_filepath = sucuriscan_lastlogins_datastore_exists(); if ($datastore_filepath) { if (!is_writable($datastore_filepath)) { @chmod($datastore_filepath, 0644); } if (is_writable($datastore_filepath)) { return $datastore_filepath; } } return false; } /** * Check whether the user's last login datastore file is readable or not, if not * we try to set the right permissions and check again the success of the operation. * * @return boolean Whether the user's last login datastore file is readable or not. */ function sucuriscan_lastlogins_datastore_is_readable() { $datastore_filepath = sucuriscan_lastlogins_datastore_exists(); if ($datastore_filepath && is_readable($datastore_filepath)) { return $datastore_filepath; } return false; } if (!function_exists('sucuri_set_lastlogin')) { /** * Add a new user session to the list of last user logins. * * @param string $user_login The name of the user account involved in the operation. * @return void */ function sucuriscan_set_lastlogin($user_login = '') { $datastore_filepath = sucuriscan_lastlogins_datastore_is_writable(); if ($datastore_filepath) { $current_user = get_user_by('login', $user_login); $remote_addr = SucuriScan::get_remote_addr(); $login_info = array( 'user_id' => $current_user->ID, 'user_login' => $current_user->user_login, 'user_remoteaddr' => $remote_addr, 'user_hostname' => @gethostbyaddr($remote_addr), 'user_lastlogin' => current_time('mysql') ); @file_put_contents($datastore_filepath, json_encode($login_info)."\n", FILE_APPEND); } } add_action('wp_login', 'sucuriscan_set_lastlogin', 50); } /** * Retrieve the list of all the user logins from the datastore file. * * The results of this operation can be filtered by specific user identifiers, * or limiting the quantity of entries. * * @param integer $limit How many entries will be returned from the operation. * @param integer $offset Initial point where the logs will be start counting. * @param integer $user_id Optional user identifier to filter the results. * @return array The list of all the user logins, and total of entries registered. */ function sucuriscan_get_logins($limit = 10, $offset = 0, $user_id = 0) { $datastore_filepath = sucuriscan_lastlogins_datastore_is_readable(); $last_logins = array( 'total' => 0, 'entries' => array(), ); if ($datastore_filepath) { $parsed_lines = 0; $data_lines = SucuriScanFileInfo::file_lines($datastore_filepath); if ($data_lines) { /** * This count will not be 100% accurate considering that we are checking the * syntax of each line in the loop bellow, there may be some lines without the * right syntax which will differ from the total entries returned, but there's * not other EASY way to do this without affect the performance of the code. * * @var integer */ $total_lines = count($data_lines); $last_logins['total'] = $total_lines; // Get a list with the latest entries in the first positions. $reversed_lines = array_reverse($data_lines); /** * Only the user accounts with administrative privileges can see the logs of all * the users, for the rest of the accounts they will only see their own logins. * * @var object */ $current_user = wp_get_current_user(); $is_admin_user = (bool) current_user_can('manage_options'); for ($i = $offset; $i < $total_lines; $i++) { $line = $reversed_lines[$i] ? trim($reversed_lines[$i]) : ''; // Check if the data is serialized (which we will consider as insecure). if (SucuriScan::is_serialized($line)) { $last_login = false; /* Do not unserialize; is unsafe. */ } else { $last_login = @json_decode($line, true); } if ($last_login) { $last_login['user_lastlogin_timestamp'] = strtotime($last_login['user_lastlogin']); $last_login['user_registered_timestamp'] = 0; // Only administrators can see all login stats. if (!$is_admin_user && $current_user->user_login != $last_login['user_login']) { continue; } // Filter the user identifiers using the value passed tot his function. if ($user_id > 0 && $last_login['user_id'] != $user_id) { continue; } // Get the WP_User object and add extra information from the last-login data. $last_login['user_exists'] = false; $user_account = get_userdata($last_login['user_id']); if ($user_account) { $last_login['user_exists'] = true; foreach ($user_account->data as $var_name => $var_value) { $last_login[ $var_name ] = $var_value; if ($var_name == 'user_registered') { $last_login['user_registered_timestamp'] = strtotime($var_value); } } } $last_login['line_num'] = $i + 1; $last_logins['entries'][] = (object) $last_login; $parsed_lines += 1; } else { $last_logins['total'] -= 1; } if (@preg_match('/^[0-9]+$/', $limit) && $limit > 0) { if ($parsed_lines >= $limit) { break; } } } } } return $last_logins; } if (!function_exists('sucuri_login_redirect')) { /** * Hook for the wp-login action to redirect the user to a specific URL after * his successfully login to the administrator interface. * * @param string $redirect_to URL where the browser must be originally redirected to, set by WordPress itself. * @param object $request Optional parameter set by WordPress itself through the event triggered. * @param boolean $user WordPress user object with the information of the account involved in the operation. * @return string URL where the browser must be redirected to. */ function sucuriscan_login_redirect($redirect_to = '', $request = null, $user = false) { $login_url = !empty($redirect_to) ? $redirect_to : SucuriScan::admin_url(); if ($user instanceof WP_User && in_array('administrator', $user->roles) && SucuriScanOption::is_enabled(':lastlogin_redirection') ) { $login_url = add_query_arg('sucuriscan_lastlogin', 1, $login_url); } return $login_url; } if (SucuriScanOption::is_enabled(':lastlogin_redirection')) { add_filter('login_redirect', 'sucuriscan_login_redirect', 10, 3); } } if (!function_exists('sucuri_get_user_lastlogin')) { /** * Display the last user login at the top of the admin interface. * * @return void */ function sucuriscan_get_user_lastlogin() { if (current_user_can('manage_options') && SucuriScanRequest::get(':lastlogin', '1') ) { $current_user = wp_get_current_user(); // Select the penultimate entry, not the last one. $last_logins = sucuriscan_get_logins(2, 0, $current_user->ID); if (isset($last_logins['entries'][1])) { $row = $last_logins['entries'][1]; $page_url = SucuriScanTemplate::getUrl('lastlogins'); $message = sprintf( 'Last login was at %s from %s (%s)', SucuriScan::datetime($row->user_lastlogin_timestamp), SucuriScan::escape($row->user_remoteaddr), SucuriScan::escape($row->user_hostname) ); $message .= "\x20(view all logs)"; SucuriScanInterface::info($message); } } } add_action('admin_notices', 'sucuriscan_get_user_lastlogin'); } /** * Print a list of all the registered users that are currently in session. * * @return string The HTML code displaying a list of all the users logged in at the moment. */ function sucuriscan_loggedin_users_panel() { // Get user logged in list. $params = array( 'LoggedInUsers.List' => '', 'LoggedInUsers.Total' => 0, ); $logged_in_users = sucuriscan_get_online_users(true); if (is_array($logged_in_users) && !empty($logged_in_users)) { $params['LoggedInUsers.Total'] = count($logged_in_users); $counter = 0; foreach ((array) $logged_in_users as $logged_in_user) { $counter++; $logged_in_user['last_activity_datetime'] = SucuriScan::datetime($logged_in_user['last_activity']); $logged_in_user['user_registered_datetime'] = SucuriScan::datetime(strtotime($logged_in_user['user_registered'])); $params['LoggedInUsers.List'] .= SucuriScanTemplate::getSnippet( 'lastlogins-loggedin', array( 'LoggedInUsers.Id' => $logged_in_user['user_id'], 'LoggedInUsers.UserURL' => SucuriScan::admin_url('user-edit.php?user_id=' . $logged_in_user['user_id']), 'LoggedInUsers.UserLogin' => $logged_in_user['user_login'], 'LoggedInUsers.UserEmail' => $logged_in_user['user_email'], 'LoggedInUsers.LastActivity' => $logged_in_user['last_activity_datetime'], 'LoggedInUsers.Registered' => $logged_in_user['user_registered_datetime'], 'LoggedInUsers.RemoveAddr' => $logged_in_user['remote_addr'], 'LoggedInUsers.CssClass' => ($counter % 2 === 0) ? '' : 'alternate', ) ); } } return SucuriScanTemplate::getSection('lastlogins-loggedin', $params); } /** * Get a list of all the registered users that are currently in session. * * @param boolean $add_current_user Whether the current user should be added to the list or not. * @return array List of registered users currently in session. */ function sucuriscan_get_online_users($add_current_user = false) { $users = array(); if (SucuriScan::is_multisite()) { $users = get_site_transient('online_users'); } else { $users = get_transient('online_users'); } // If not online users but current user is logged in, add it to the list. if (empty($users) && $add_current_user) { $current_user = wp_get_current_user(); if ($current_user->ID > 0) { sucuriscan_set_online_user($current_user->user_login, $current_user); return sucuriscan_get_online_users(); } } return $users; } /** * Update the list of the registered users currently in session. * * Useful when you are removing users and need the list of the remaining users. * * @param array $logged_in_users List of registered users currently in session. * @return boolean Either TRUE or FALSE representing the success or fail of the operation. */ function sucuriscan_save_online_users($logged_in_users = array()) { $expiration = 30 * 60; if (SucuriScan::is_multisite()) { return set_site_transient('online_users', $logged_in_users, $expiration); } else { return set_transient('online_users', $logged_in_users, $expiration); } } if (!function_exists('sucuriscan_unset_online_user_on_logout')) { /** * Remove a logged in user from the list of registered users in session when * the logout page is requested. * * @return void */ function sucuriscan_unset_online_user_on_logout() { $remote_addr = SucuriScan::get_remote_addr(); $current_user = wp_get_current_user(); $user_id = $current_user->ID; sucuriscan_unset_online_user($user_id, $remote_addr); } add_action('wp_logout', 'sucuriscan_unset_online_user_on_logout'); } /** * Remove a logged in user from the list of registered users in session using * the user identifier and the ip address of the last computer used to login. * * @param integer $user_id User identifier of the account that will be logged out. * @param integer $remote_addr IP address of the computer where the user logged in. * @return boolean Either TRUE or FALSE representing the success or fail of the operation. */ function sucuriscan_unset_online_user($user_id = 0, $remote_addr = 0) { $logged_in_users = sucuriscan_get_online_users(); // Remove the specified user identifier from the list. if (is_array($logged_in_users) && !empty($logged_in_users)) { foreach ($logged_in_users as $i => $user) { if ($user['user_id'] == $user_id && strcmp($user['remote_addr'], $remote_addr) == 0 ) { unset($logged_in_users[ $i ]); break; } } } return sucuriscan_save_online_users($logged_in_users); } if (!function_exists('sucuriscan_set_online_user')) { /** * Add an user account to the list of registered users in session. * * @param string $user_login The name of the user account that just logged in the site. * @param boolean $user The WordPress object containing all the information associated to the user. * @return void */ function sucuriscan_set_online_user($user_login = '', $user = false) { if ($user) { // Get logged in user information. $current_user = ($user instanceof WP_User) ? $user : wp_get_current_user(); $current_user_id = $current_user->ID; $remote_addr = SucuriScan::get_remote_addr(); $current_time = current_time('timestamp'); $logged_in_users = sucuriscan_get_online_users(); // Build the dataset array that will be stored in the transient variable. $current_user_info = array( 'user_id' => $current_user_id, 'user_login' => $current_user->user_login, 'user_email' => $current_user->user_email, 'user_registered' => $current_user->user_registered, 'last_activity' => $current_time, 'remote_addr' => $remote_addr, ); if (!is_array($logged_in_users) || empty($logged_in_users)) { $logged_in_users = array( $current_user_info ); sucuriscan_save_online_users($logged_in_users); } else { $do_nothing = false; $update_existing = false; $item_index = 0; // Check if the user is already in the logged-in-user list and update it if is necessary. foreach ($logged_in_users as $i => $user) { if ($user['user_id'] == $current_user_id && strcmp($user['remote_addr'], $remote_addr) == 0 ) { if ($user['last_activity'] < ($current_time - (15 * 60))) { $update_existing = true; $item_index = $i; break; } else { $do_nothing = true; break; } } } if ($update_existing) { $logged_in_users[ $item_index ] = $current_user_info; sucuriscan_save_online_users($logged_in_users); } elseif ($do_nothing) { // Do nothing. } else { $logged_in_users[] = $current_user_info; sucuriscan_save_online_users($logged_in_users); } } } } add_action('wp_login', 'sucuriscan_set_online_user', 10, 2); } /** * Print a list with the failed logins occurred during the last hour. * * @return string A list with the failed logins occurred during the last hour. */ function sucuriscan_failed_logins_panel() { $template_variables = array( 'FailedLogins.List' => '', 'FailedLogins.Total' => '', 'FailedLogins.MaxFailedLogins' => 0, 'FailedLogins.NoItemsVisibility' => 'visible', 'FailedLogins.WarningVisibility' => 'visible', 'FailedLogins.CollectPasswordsVisibility' => 'visible', 'FailedLogins.PaginationLinks' => '', 'FailedLogins.PaginationVisibility' => 'hidden', ); // Define variables for the pagination. $page_number = SucuriScanTemplate::pageNumber(); $max_per_page = SUCURISCAN_MAX_PAGINATION_BUTTONS; $page_offset = ($page_number - 1) * $max_per_page; $page_limit = ($page_offset + $max_per_page); $max_failed_logins = SucuriScanOption::get_option(':maximum_failed_logins'); $notify_bruteforce_attack = SucuriScanOption::get_option(':notify_bruteforce_attack'); $failed_logins = sucuriscan_get_failed_logins(); $old_failed_logins = sucuriscan_get_failed_logins(true); // Merge the new and old failed logins. if (is_array($old_failed_logins) && !empty($old_failed_logins)) { if (is_array($failed_logins) && !empty($failed_logins)) { $failed_logins = array_merge($failed_logins, $old_failed_logins); } else { $failed_logins = $old_failed_logins; } } if ($failed_logins) { $counter = 0; for ($key = $page_offset; $key < $page_limit; $key++) { if (array_key_exists($key, $failed_logins['entries'])) { $login_data = $failed_logins['entries'][ $key ]; $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $wrong_user_password = 'hidden'; $wrong_user_password_color = 'default'; if (sucuriscan_collect_wrong_passwords() === true) { if (isset($login_data['user_password']) && !empty($login_data['user_password'])) { $wrong_user_password = $login_data['user_password']; $wrong_user_password_color = 'none'; } else { $wrong_user_password = 'empty'; $wrong_user_password_color = 'info'; } } $template_variables['FailedLogins.List'] .= SucuriScanTemplate::getSnippet( 'lastlogins-failedlogins', array( 'FailedLogins.CssClass' => $css_class, 'FailedLogins.Num' => $login_data['attempt_count'], 'FailedLogins.Username' => $login_data['user_login'], 'FailedLogins.RemoteAddr' => $login_data['remote_addr'], 'FailedLogins.UserAgent' => $login_data['user_agent'], 'FailedLogins.Password' => $wrong_user_password, 'FailedLogins.PasswordColor' => $wrong_user_password_color, 'FailedLogins.Datetime' => SucuriScan::datetime($login_data['attempt_time']), ) ); $counter++; } } if ($counter > 0) { $template_variables['FailedLogins.NoItemsVisibility'] = 'hidden'; } $template_variables['FailedLogins.PaginationLinks'] = SucuriScanTemplate::pagination( '%%SUCURI.URL.Lastlogins%%#failed-logins', $failed_logins['count'], $max_per_page ); if ($failed_logins['count'] > $max_per_page) { $template_variables['FailedLogins.PaginationVisibility'] = 'visible'; } } $template_variables['FailedLogins.MaxFailedLogins'] = $max_failed_logins; if ($notify_bruteforce_attack == 'enabled') { $template_variables['FailedLogins.WarningVisibility'] = 'hidden'; } if (sucuriscan_collect_wrong_passwords() !== true) { $template_variables['FailedLogins.CollectPasswordsVisibility'] = 'hidden'; } return SucuriScanTemplate::getSection('lastlogins-failedlogins', $template_variables); } /** * Whether or not to collect the password of failed logins. * * @return boolean TRUE if the password must be collected, FALSE otherwise. */ function sucuriscan_collect_wrong_passwords() { return SucuriScanOption::is_enabled(':collect_wrong_passwords'); } /** * Find the full path of the file where the information of the failed logins * will be stored, it will be created automatically if does not exists (and if * the destination folder has permissions to write). This function can also be * used to reset the content of the datastore file. * * @see sucuriscan_reset_failed_logins() * * @param boolean $get_old_logs Whether the old logs will be retrieved or not. * @param boolean $reset Whether the file will be resetted or not. * @return string The full (relative) path where the file is located. */ function sucuriscan_failed_logins_datastore_path($get_old_logs = false, $reset = false) { $file_name = $get_old_logs ? 'sucuri-oldfailedlogins.php' : 'sucuri-failedlogins.php'; $datastore_path = SucuriScan::datastore_folder_path($file_name); $default_content = sucuriscan_failed_logins_default_content(); // Create the file if it does not exists. if (!file_exists($datastore_path) || $reset) { @file_put_contents($datastore_path, $default_content, LOCK_EX); } // Return the datastore path if the file exists (or was created). if (file_exists($datastore_path) && is_readable($datastore_path)) { return $datastore_path; } return false; } /** * Default content of the datastore file where the failed logins are being kept. * * @return string Default content of the file. */ function sucuriscan_failed_logins_default_content() { $default_content = "\n"; return $default_content; } /** * Read and parse the content of the datastore file where the failed logins are * being kept. This function will also calculate the difference in time between * the first and last login attempt registered in the file to later decide if * there is a brute-force attack in progress (and send an email notification * with the report) or reset the file after considering it a normal behavior of * the site. * * @param boolean $get_old_logs Whether the old logs will be retrieved or not. * @return array Information and entries gathered from the failed logins datastore file. */ function sucuriscan_get_failed_logins($get_old_logs = false) { $datastore_path = sucuriscan_failed_logins_datastore_path($get_old_logs); $default_content = sucuriscan_failed_logins_default_content(); $default_content_n = substr_count($default_content, "\n"); if ($datastore_path) { $lines = SucuriScanFileInfo::file_lines($datastore_path); if ($lines) { $failed_logins = array( 'count' => 0, 'first_attempt' => 0, 'last_attempt' => 0, 'diff_time' => 0, 'entries' => array(), ); // Read and parse all the entries found in the datastore file. $offset = count($lines) - 1; for ($key = $offset; $key >= 0; $key--) { $line = trim($lines[ $key ]); $login_data = @json_decode($line, true); if (is_array($login_data)) { $login_data['attempt_date'] = date('r', $login_data['attempt_time']); $login_data['attempt_count'] = ( $key + 1 ); if (!$login_data['user_agent']) { $login_data['user_agent'] = 'Unknown'; } if (!isset($login_data['user_password'])) { $login_data['user_password'] = ''; } $failed_logins['entries'][] = $login_data; $failed_logins['count'] += 1; } } // Calculate the different time between the first and last attempt. if ($failed_logins['count'] > 0) { $z = abs($failed_logins['count'] - 1); $failed_logins['last_attempt'] = $failed_logins['entries'][ $z ]['attempt_time']; $failed_logins['first_attempt'] = $failed_logins['entries'][0]['attempt_time']; $failed_logins['diff_time'] = abs($failed_logins['last_attempt'] - $failed_logins['first_attempt']); return $failed_logins; } } } return false; } /** * Add a new entry in the datastore file where the failed logins are being kept, * this entry will contain the username, timestamp of the login attempt, remote * address of the computer sending the request, and the user-agent. * * @param string $user_login Information from the current failed login event. * @param string $wrong_password Wrong password used during the supposed attack. * @return boolean Whether the information of the current failed login event was stored or not. */ function sucuriscan_log_failed_login($user_login = '', $wrong_password = '') { $datastore_path = sucuriscan_failed_logins_datastore_path(); // Do not collect wrong passwords if it is not necessary. if (sucuriscan_collect_wrong_passwords() !== true) { $wrong_password = ''; } if ($datastore_path) { $login_data = json_encode(array( 'user_login' => $user_login, 'user_password' => $wrong_password, 'attempt_time' => time(), 'remote_addr' => SucuriScan::get_remote_addr(), 'user_agent' => SucuriScan::get_user_agent(), )); $written = @file_put_contents( $datastore_path, $login_data . "\n", FILE_APPEND ); if ($written > 0) { return true; } } return false; } /** * Read and parse all the entries in the datastore file where the failed logins * are being kept, this will loop through all these items and generate a table * in HTML code to send as a report via email according to the plugin settings * for the email notifications. * * @param array $failed_logins Information and entries gathered from the failed logins datastore file. * @return boolean Whether the report was sent via email or not. */ function sucuriscan_report_failed_logins($failed_logins = array()) { if ($failed_logins && $failed_logins['count'] > 0) { $prettify_mails = SucuriScanMail::prettify_mails(); $collect_wrong_passwords = sucuriscan_collect_wrong_passwords(); $mail_content = ''; if ($prettify_mails) { $table_html = ''; // Add the table headers. $table_html .= ''; $table_html .= ''; $table_html .= ''; if ($collect_wrong_passwords === true) { $table_html .= ''; } $table_html .= ''; $table_html .= ''; $table_html .= ''; $table_html .= ''; $table_html .= ''; $table_html .= ''; } foreach ($failed_logins['entries'] as $login_data) { if ($prettify_mails) { $table_html .= ''; $table_html .= ''; if ($collect_wrong_passwords === true) { $table_html .= ''; } $table_html .= ''; $table_html .= ''; $table_html .= ''; $table_html .= ''; } else { $mail_content .= "\n"; $mail_content .= 'Username: ' . $login_data['user_login'] . "\n"; if ($collect_wrong_passwords === true) { $mail_content .= 'Password: ' . $login_data['user_password'] . "\n"; } $mail_content .= 'IP Address: ' . $login_data['remote_addr'] . "\n"; $mail_content .= 'Attempt Timestamp: ' . $login_data['attempt_time'] . "\n"; $mail_content .= 'Attempt Date/Time: ' . $login_data['attempt_date'] . "\n"; } } if ($prettify_mails) { $table_html .= ''; $table_html .= '
        UsernamePasswordIP AddressAttempt TimestampAttempt Date/Time
        ' . esc_attr($login_data['user_login']) . '' . esc_attr($login_data['user_password']) . '' . esc_attr($login_data['remote_addr']) . '' . $login_data['attempt_time'] . '' . $login_data['attempt_date'] . '
        '; $mail_content = $table_html; } if (SucuriScanEvent::notify_event('bruteforce_attack', $mail_content)) { sucuriscan_reset_failed_logins(); return true; } } return false; } /** * Remove all the entries in the datastore file where the failed logins are * being kept. The execution of this function will not delete the file (which is * likely the best move) but rather will clean its content and append the * default code defined by another function above. * * @return boolean Whether the datastore file was resetted or not. */ function sucuriscan_reset_failed_logins() { $datastore_path = SucuriScan::datastore_folder_path('sucuri-failedlogins.php'); $datastore_backup_path = sucuriscan_failed_logins_datastore_path(true, false); $default_content = sucuriscan_failed_logins_default_content(); $current_content = @file_get_contents($datastore_path); $current_content = str_replace($default_content, '', $current_content); @file_put_contents( $datastore_backup_path, $current_content, FILE_APPEND ); return (bool) sucuriscan_failed_logins_datastore_path(false, true); } /** * Process the requests sent by the form submissions originated in the settings * page, all forms must have a nonce field that will be checked against the one * generated in the template render function. * * @param boolean $page_nonce True if the nonce is valid, False otherwise. * @return void */ function sucuriscan_settings_form_submissions($page_nonce = null) { global $sucuriscan_schedule_allowed, $sucuriscan_interface_allowed, $sucuriscan_notify_options, $sucuriscan_email_subjects; // Use this conditional to avoid double checking. if (is_null($page_nonce)) { $page_nonce = SucuriScanInterface::check_nonce(); } if ($page_nonce) { // Save API key after it was recovered by the administrator. if ($api_key = SucuriScanRequest::post(':manual_api_key')) { SucuriScanAPI::setPluginKey($api_key, true); SucuriScanEvent::schedule_task(); SucuriScanEvent::report_info_event('Sucuri API key was added manually.'); } // Remove API key from the local storage. if (SucuriScanRequest::post(':remove_api_key') !== false) { SucuriScanAPI::setPluginKey(''); wp_clear_scheduled_hook('sucuriscan_scheduled_scan'); SucuriScanEvent::report_critical_event('Sucuri API key was deleted.'); SucuriScanEvent::notify_event('plugin_change', 'Sucuri API key removed'); } // Enable or disable the filesystem scanner. if ($fs_scanner = SucuriScanRequest::post(':fs_scanner', '(en|dis)able')) { $action_d = $fs_scanner . 'd'; $message = 'Main file system scanner was ' . $action_d . ''; SucuriScanOption::update_option(':fs_scanner', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the filesystem scanner for file integrity. if ($scan_checksums = SucuriScanRequest::post(':scan_checksums', '(en|dis)able')) { $action_d = $scan_checksums . 'd'; $message = 'File system scanner for file integrity was ' . $action_d . ''; SucuriScanOption::update_option(':scan_checksums', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the filesystem scanner for error logs. if ($ignore_scanning = SucuriScanRequest::post(':ignore_scanning', '(en|dis)able')) { $action_d = $ignore_scanning . 'd'; $message = 'File system scanner rules to ignore directories was ' . $action_d . ''; SucuriScanOption::update_option(':ignore_scanning', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the filesystem scanner for error logs. if ($scan_errorlogs = SucuriScanRequest::post(':scan_errorlogs', '(en|dis)able')) { $action_d = $scan_errorlogs . 'd'; $message = 'File system scanner for error logs was ' . $action_d . ''; SucuriScanOption::update_option(':scan_errorlogs', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the error logs parsing. if ($parse_errorlogs = SucuriScanRequest::post(':parse_errorlogs', '(en|dis)able')) { $action_d = $parse_errorlogs . 'd'; $message = 'Analysis of main error log file was ' . $action_d . ''; SucuriScanOption::update_option(':parse_errorlogs', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the SiteCheck scanner and the malware scan page. if ($sitecheck_scanner = SucuriScanRequest::post(':sitecheck_scanner', '(en|dis)able')) { $action_d = $sitecheck_scanner . 'd'; $message = 'SiteCheck malware and blacklist scanner was ' . $action_d . ''; SucuriScanOption::update_option(':sitecheck_scanner', $action_d); SucuriScanEvent::report_auto_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Modify the schedule of the filesystem scanner. if ($frequency = SucuriScanRequest::post(':scan_frequency')) { if (array_key_exists($frequency, $sucuriscan_schedule_allowed)) { SucuriScanOption::update_option(':scan_frequency', $frequency); wp_clear_scheduled_hook('sucuriscan_scheduled_scan'); if ($frequency != '_oneoff') { wp_schedule_event(time() + 10, $frequency, 'sucuriscan_scheduled_scan'); } $frequency_title = strtolower($sucuriscan_schedule_allowed[ $frequency ]); $message = 'File system scanning frequency set to ' . $frequency_title . ''; SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } // Set the method (aka. interface) that will be used to scan the site. if ($interface = SucuriScanRequest::post(':scan_interface')) { $allowed_values = array_keys($sucuriscan_interface_allowed); if (in_array($interface, $allowed_values)) { $message = 'File system scanning interface set to ' . $interface . ''; SucuriScanOption::update_option(':scan_interface', $interface); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } // Update the limit of error log lines to parse. if ($errorlogs_limit = SucuriScanRequest::post(':errorlogs_limit', '[0-9]+')) { if ($errorlogs_limit > 1000) { SucuriScanInterface::error('Analyze more than 1,000 lines will take too much time.'); } else { SucuriScanOption::update_option(':errorlogs_limit', $errorlogs_limit); SucuriScanInterface::info('Analyze last ' . $errorlogs_limit . ' entries encountered in the error logs.'); if ($errorlogs_limit == 0) { SucuriScanOption::update_option(':parse_errorlogs', 'disabled'); } } } // Reset the plugin security logs. $allowed_log_files = '(integrity|lastlogins|failedlogins|sitecheck)'; if ($reset_logfile = SucuriScanRequest::post(':reset_logfile', $allowed_log_files)) { $files_to_delete = array( 'sucuri-' . $reset_logfile . '.php', 'sucuri-old' . $reset_logfile . '.php', ); foreach ($files_to_delete as $log_filename) { $log_filepath = SucuriScan::datastore_folder_path($log_filename); if (@unlink($log_filepath)) { $log_filename_simple = str_replace('.php', '', $log_filename); $message = 'Deleted security log ' . $log_filename_simple . ''; SucuriScanEvent::report_debug_event($message); SucuriScanInterface::info($message); } } } // Ignore a new event for email notifications. if ($action = SucuriScanRequest::post(':ignorerule_action', '(add|remove)')) { $ignore_rule = SucuriScanRequest::post(':ignorerule'); if ($action == 'add') { if (SucuriScanOption::add_ignored_event($ignore_rule)) { SucuriScanInterface::info('Post-type ignored successfully.'); SucuriScanEvent::report_warning_event('Changes in ' . $ignore_rule . ' post-type will be ignored'); } else { SucuriScanInterface::error('The post-type is invalid or it may be already ignored.'); } } elseif ($action == 'remove') { SucuriScanOption::remove_ignored_event($ignore_rule); SucuriScanInterface::info('Post-type removed from the list successfully.'); SucuriScanEvent::report_notice_event('Changes in ' . $ignore_rule . ' post-type will not be ignored'); } } // Ignore a new directory path for the file system scans. if ($action = SucuriScanRequest::post(':ignorescanning_action', '(ignore|unignore)')) { $ignore_directories = SucuriScanRequest::post(':ignorescanning_dirs', '_array'); $ignore_file = SucuriScanRequest::post(':ignorescanning_file'); if ($action == 'ignore') { // Target a single file path to be ignored. if ($ignore_file !== false) { $ignore_directories = array( $ignore_file ); } // Target a list of directories to be ignored. if (!empty($ignore_directories)) { $were_ignored = array(); foreach ($ignore_directories as $resource_path) { if (file_exists($resource_path) && SucuriScanFSScanner::ignore_directory($resource_path) ) { $were_ignored[] = $resource_path; } } if (!empty($were_ignored)) { SucuriScanInterface::info('Items selected will be ignored in future scans.'); SucuriScanEvent::report_warning_event(sprintf( 'Resources will not be scanned: (multiple entries): %s', @implode(',', $ignore_directories) )); } } } elseif ($action == 'unignore') { foreach ($ignore_directories as $directory_path) { SucuriScanFSScanner::unignore_directory($directory_path); } SucuriScanInterface::info('Items selected will not be ignored anymore.'); SucuriScanEvent::report_notice_event(sprintf( 'Resources will be scanned: (multiple entries): %s', @implode(',', $ignore_directories) )); } } // Trust and IP address to ignore notifications for a subnet. if ($trust_ip = SucuriScanRequest::post(':trust_ip')) { if (SucuriScan::is_valid_ip($trust_ip) || SucuriScan::is_valid_cidr($trust_ip) ) { $cache = new SucuriScanCache('trustip'); $ip_info = SucuriScan::get_ip_info($trust_ip); $ip_info['added_at'] = SucuriScan::local_time(); $cache_key = md5($ip_info['remote_addr']); if ($cache->exists($cache_key)) { SucuriScanInterface::error('The IP address specified was already trusted.'); } elseif ($cache->add($cache_key, $ip_info)) { $message = 'Changes from ' . $trust_ip . ' will be ignored'; SucuriScanEvent::report_warning_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('The new entry was not saved in the datastore file.'); } } } // Trust and IP address to ignore notifications for a subnet. if ($del_trust_ip = SucuriScanRequest::post(':del_trust_ip', '_array')) { $cache = new SucuriScanCache('trustip'); foreach ($del_trust_ip as $cache_key) { $cache->delete($cache_key); } SucuriScanInterface::info('The IP addresses selected were deleted successfully.'); } // Update the settings for the heartbeat API. if ($heartbeat_status = SucuriScanRequest::post(':heartbeat_status')) { $statuses_allowed = SucuriScanHeartbeat::statuses_allowed(); if (array_key_exists($heartbeat_status, $statuses_allowed)) { $message = 'Heartbeat status set to ' . $heartbeat_status . ''; SucuriScanOption::update_option(':heartbeat', $heartbeat_status); SucuriScanEvent::report_info_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Heartbeat status not allowed.'); } } // Update the value of the heartbeat pulse. if ($heartbeat_pulse = SucuriScanRequest::post(':heartbeat_pulse')) { $pulses_allowed = SucuriScanHeartbeat::pulses_allowed(); if (array_key_exists($heartbeat_pulse, $pulses_allowed)) { $message = 'Heartbeat pulse set to ' . $heartbeat_pulse . ' seconds.'; SucuriScanOption::update_option(':heartbeat_pulse', $heartbeat_pulse); SucuriScanEvent::report_info_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Heartbeat pulse not allowed.'); } } // Update the value of the heartbeat interval. if ($heartbeat_interval = SucuriScanRequest::post(':heartbeat_interval')) { $intervals_allowed = SucuriScanHeartbeat::intervals_allowed(); if (array_key_exists($heartbeat_interval, $intervals_allowed)) { $message = 'Heartbeat interval set to ' . $heartbeat_interval . ''; SucuriScanOption::update_option(':heartbeat_interval', $heartbeat_interval); SucuriScanEvent::report_info_event($message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Heartbeat interval not allowed.'); } } // Enable or disable the auto-start execution of heartbeat. if ($heartbeat_autostart = SucuriScanRequest::post(':heartbeat_autostart', '(en|dis)able')) { $action_d = $heartbeat_autostart . 'd'; $message = 'Heartbeat auto-start was ' . $action_d . ''; SucuriScanOption::update_option(':heartbeat_autostart', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanInterface::info($message); } } } /** * Read and parse the content of the general settings template. * * @return string Parsed HTML code for the general settings panel. */ function sucuriscan_settings_general($nonce) { // Process all form submissions. sucuriscan_settings_form_submissions($nonce); $params = array(); // Keep the reset options panel and form submission processor before anything else. $params['SettingsSection.ResetOptions'] = sucuriscan_settings_general_resetoptions($nonce); // Build HTML code for the additional general settings panels. $params['SettingsSection.ApiKey'] = sucuriscan_settings_general_apikey($nonce); $params['SettingsSection.DataStorage'] = sucuriscan_settings_general_datastorage($nonce); $params['SettingsSection.ReverseProxy'] = sucuriscan_settings_general_reverseproxy($nonce); $params['SettingsSection.PasswordCollector'] = sucuriscan_settings_general_pwdcollector($nonce); $params['SettingsSection.IPDiscoverer'] = sucuriscan_settings_general_ipdiscoverer($nonce); $params['SettingsSection.CommentMonitor'] = sucuriscan_settings_general_commentmonitor($nonce); $params['SettingsSection.XhrMonitor'] = sucuriscan_settings_general_xhrmonitor($nonce); $params['SettingsSection.AuditLogStats'] = sucuriscan_settings_general_auditlogstats($nonce); $params['SettingsSection.Datetime'] = sucuriscan_settings_general_datetime($nonce); sucuriscan_settings_general_adsvisibility($nonce); return SucuriScanTemplate::getSection('settings-general', $params); } function sucuriscan_settings_general_resetoptions($nonce) { // Reset all the plugin's options. if ($nonce && SucuriScanRequest::post(':reset_options') !== false) { $process = SucuriScanRequest::post(':process_form'); if (intval($process) === 1) { // Notify the event before the API key is removed. $message = 'Sucuri plugin options were reset'; SucuriScanEvent::report_critical_event($message); SucuriScanEvent::notify_event('plugin_change', $message); // Remove all plugin options from the database. SucuriScanOption::delete_plugin_options(); // Remove the scheduled tasks. wp_clear_scheduled_hook('sucuriscan_scheduled_scan'); // Remove all the local security logs. @unlink(SucuriScan::datastore_folder_path('.htaccess')); @unlink(SucuriScan::datastore_folder_path('index.html')); @unlink(SucuriScan::datastore_folder_path('sucuri-failedlogins.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-integrity.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-lastlogins.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-oldfailedlogins.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-plugindata.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-sitecheck.php')); @unlink(SucuriScan::datastore_folder_path('sucuri-trustip.php')); @rmdir(SucuriScan::datastore_folder_path()); // Revert hardening of core directories (includes, content, uploads). SucuriScanHardening::dewhitelist('ms-files.php', 'wp-includes'); SucuriScanHardening::dewhitelist('wp-tinymce.php', 'wp-includes'); SucuriScanHardening::unharden_directory(ABSPATH . '/wp-includes'); SucuriScanHardening::unharden_directory(WP_CONTENT_DIR . '/uploads'); SucuriScanHardening::unharden_directory(WP_CONTENT_DIR); SucuriScanInterface::info('Plugin options, core directory hardening, and security logs were reset'); } else { SucuriScanInterface::error('You need to confirm that you understand the risk of this operation.'); } } return SucuriScanTemplate::getSection('settings-general-resetoptions'); } function sucuriscan_settings_general_apikey($nonce) { $params = array(); $invalid_domain = false; $api_recovery_modal = ''; $api_registered_modal = ''; // Whether the form to manually add the API key should be shown or not. $display_manual_key_form = (bool) (SucuriScanRequest::post(':recover_key') !== false); if ($nonce) { if (SucuriScanRequest::post(':plugin_api_key') !== false) { $user_id = SucuriScanRequest::post(':setup_user'); $user_obj = SucuriScan::get_user_by_id($user_id); if ($user_obj !== false && user_can($user_obj, 'administrator')) { // Send request to generate new API key or display form to set manually. if (SucuriScanAPI::registerSite($user_obj->user_email)) { $api_registered_modal = SucuriScanTemplate::getModal( 'settings-apiregistered', array( 'Title' => 'Site registered successfully', 'CssClass' => 'sucuriscan-apikey-registered', ) ); } else { $display_manual_key_form = true; } } } // Recover API key through the email registered previously. if (SucuriScanRequest::post(':recover_key') !== false) { SucuriScanAPI::recoverKey(); SucuriScanEvent::report_info_event('Recovery of the Sucuri API key was requested.'); $api_recovery_modal = SucuriScanTemplate::getModal( 'settings-apirecovery', array( 'Title' => 'Plugin API Key Recovery', 'CssClass' => 'sucuriscan-apirecovery', ) ); } } $api_key = SucuriScanAPI::getPluginKey(); // Check whether the domain name is valid or not. if (!$api_key) { $clean_domain = SucuriScan::get_top_level_domain(); $domain_address = @gethostbyname($clean_domain); $invalid_domain = (bool) ($domain_address === $clean_domain); } $params['APIKey'] = (!$api_key ? '(not set)' : $api_key); $params['APIKey.RecoverVisibility'] = SucuriScanTemplate::visibility(!$api_key && !$display_manual_key_form); $params['APIKey.ManualKeyFormVisibility'] = SucuriScanTemplate::visibility($display_manual_key_form); $params['APIKey.RemoveVisibility'] = SucuriScanTemplate::visibility((bool) $api_key); $params['InvalidDomainVisibility'] = SucuriScanTemplate::visibility($invalid_domain); $params['ModalWhenAPIRegistered'] = $api_registered_modal; $params['ModalForApiKeyRecovery'] = $api_recovery_modal; return SucuriScanTemplate::getSection('settings-general-apikey', $params); } function sucuriscan_settings_general_datastorage($nonce) { $params = array(); // Update the datastore path (if the new directory exists). if ($nonce) { $directory = SucuriScanRequest::post(':datastore_path'); if ($directory) { $current = SucuriScanOption::datastore_folder_path(); // Try to create the new directory (if possible). if (!file_exists($directory)) { @mkdir($directory, 0755, true); } // Check if the directory is writable and move all the logs. if (file_exists($directory)) { if (is_writable($directory)) { $message = 'Datastore path set to ' . $directory . ''; SucuriScanOption::update_option(':datastore_path', $directory); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); if (file_exists($current)) { $newpath = SucuriScanOption::datastore_folder_path(); // Some file systems do not work correctly with trailing separators. $current = rtrim($current, '/'); $newpath = rtrim($newpath, '/'); @rename($current, $newpath); } } else { SucuriScanInterface::error('The new directory path is not writable.'); } } else { SucuriScanInterface::error('The directory path specified does not exists.'); } } } $params['DatastorePath'] = SucuriScanOption::get_option(':datastore_path'); return SucuriScanTemplate::getSection('settings-general-datastorage', $params); } function sucuriscan_settings_general_reverseproxy($nonce) { $params = array( 'ReverseProxyStatus' => 'Enabled', 'ReverseProxySwitchText' => 'Disable', 'ReverseProxySwitchValue' => 'disable', 'ReverseProxySwitchCssClass' => 'button-danger', ); // Enable or disable the reverse proxy support. if ($nonce) { $revproxy = SucuriScanRequest::post(':revproxy', '(en|dis)able'); if ($revproxy) { if ($revproxy === 'enable') { SucuriScanOption::setRevProxy('enable'); SucuriScanOption::setAddrHeader('HTTP_X_SUCURI_CLIENTIP'); } else { SucuriScanOption::setRevProxy('disable'); SucuriScanOption::setAddrHeader('REMOTE_ADDR'); } } } if (SucuriScanOption::is_disabled(':revproxy')) { $params['ReverseProxyStatus'] = 'Disabled'; $params['ReverseProxySwitchText'] = 'Enable'; $params['ReverseProxySwitchValue'] = 'enable'; $params['ReverseProxySwitchCssClass'] = 'button-success'; } return SucuriScanTemplate::getSection('settings-general-reverseproxy', $params); } function sucuriscan_settings_general_pwdcollector($nonce) { $params = array( 'PwdCollectorStatus' => 'Disabled', 'PwdCollectorSwitchText' => 'Enable', 'PwdCollectorSwitchValue' => 'enable', 'PwdCollectorSwitchCssClass' => 'button-success', ); // Update the collection of failed passwords settings. if ($nonce) { $collector = SucuriScanRequest::post(':collect_wrong_passwords'); if ($collector) { $collector = strtolower($collector); $message = 'Collect failed login passwords set to %s'; if ($collector == 'enable') { $collect_action = 'enabled'; $message = sprintf($message, $collect_action); SucuriScanEvent::report_critical_event($message); } else { $collect_action = 'disabled'; $message = sprintf($message, $collect_action); SucuriScanEvent::report_info_event($message); } SucuriScanOption::update_option(':collect_wrong_passwords', $collect_action); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } if (sucuriscan_collect_wrong_passwords() === true) { $params['PwdCollectorStatus'] = 'Enabled'; $params['PwdCollectorSwitchText'] = 'Disable'; $params['PwdCollectorSwitchValue'] = 'disable'; $params['PwdCollectorSwitchCssClass'] = 'button-danger'; } return SucuriScanTemplate::getSection('settings-general-pwdcollector', $params); } function sucuriscan_settings_general_ipdiscoverer($nonce) { $params = array( 'TopLevelDomain' => 'Unknown', 'WebsiteHostName' => 'Unknown', 'WebsiteHostAddress' => 'Unknown', 'IsUsingCloudProxy' => 'Unknown', 'WebsiteURL' => 'Unknown', 'RemoteAddress' => '127.0.0.1', 'RemoteAddressHeader' => 'INVALID', 'AddrHeaderOptions' => '', /* Switch form information. */ 'DnsLookupsStatus' => 'Enabled', 'DnsLookupsSwitchText' => 'Disable', 'DnsLookupsSwitchValue' => 'disable', 'DnsLookupsSwitchCssClass' => 'button-danger', ); // Get main HTTP header for IP retrieval. $allowed_headers = SucuriScan::allowedHttpHeaders(true); // Configure the DNS lookups option for reverse proxy detection. if ($nonce) { $dns_lookups = SucuriScanRequest::post(':dns_lookups', '(en|dis)able'); $addr_header = SucuriScanRequest::post(':addr_header'); if ($dns_lookups) { $action_d = $dns_lookups . 'd'; $message = 'DNS lookups for reverse proxy detection ' . $action_d . ''; SucuriScanOption::update_option(':dns_lookups', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } if ($addr_header) { if ($addr_header === 'REMOTE_ADDR') { SucuriScanOption::setAddrHeader('REMOTE_ADDR'); SucuriScanOption::setRevProxy('disable'); } else { SucuriScanOption::setAddrHeader($addr_header); SucuriScanOption::setRevProxy('enable'); } } } if (SucuriScanOption::is_disabled(':dns_lookups')) { $params['DnsLookupsStatus'] = 'Disabled'; $params['DnsLookupsSwitchText'] = 'Enable'; $params['DnsLookupsSwitchValue'] = 'enable'; $params['DnsLookupsSwitchCssClass'] = 'button-success'; } $proxy_info = SucuriScan::is_behind_cloudproxy(true); $base_domain = SucuriScan::get_domain(true); $params['TopLevelDomain'] = $proxy_info['http_host']; $params['WebsiteHostName'] = $proxy_info['host_name']; $params['WebsiteHostAddress'] = $proxy_info['host_addr']; $params['IsUsingCloudProxy'] = ($proxy_info['status'] ? 'Active' : 'Not Active'); $params['RemoteAddressHeader'] = SucuriScan::get_remote_addr_header(); $params['RemoteAddress'] = SucuriScan::get_remote_addr(); $params['WebsiteURL'] = SucuriScan::get_domain(); $params['AddrHeaderOptions'] = SucuriScanTemplate::selectOptions( $allowed_headers, SucuriScanOption::get_option(':addr_header') ); if ($base_domain !== $proxy_info['http_host']) { $params['TopLevelDomain'] = sprintf('%s (%s)', $params['TopLevelDomain'], $base_domain); } return SucuriScanTemplate::getSection('settings-general-ipdiscoverer', $params); } function sucuriscan_settings_general_commentmonitor($nonce) { $params = array( 'CommentMonitorStatus' => 'Enabled', 'CommentMonitorSwitchText' => 'Disable', 'CommentMonitorSwitchValue' => 'disable', 'CommentMonitorSwitchCssClass' => 'button-danger', ); // Configure the comment monitor option. if ($nonce) { $monitor = SucuriScanRequest::post(':comment_monitor', '(en|dis)able'); if ($monitor) { $action_d = $monitor . 'd'; $message = 'Comment monitor was ' . $action_d . ''; SucuriScanOption::update_option(':comment_monitor', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } if (SucuriScanOption::is_disabled(':comment_monitor')) { $params['CommentMonitorStatus'] = 'Disabled'; $params['CommentMonitorSwitchText'] = 'Enable'; $params['CommentMonitorSwitchValue'] = 'enable'; $params['CommentMonitorSwitchCssClass'] = 'button-success'; } return SucuriScanTemplate::getSection('settings-general-commentmonitor', $params); } function sucuriscan_settings_general_xhrmonitor($nonce) { $params = array( 'XhrMonitorStatus' => 'Enabled', 'XhrMonitorSwitchText' => 'Disable', 'XhrMonitorSwitchValue' => 'disable', 'XhrMonitorSwitchCssClass' => 'button-danger', ); // Configure the XHR monitor option. if ($nonce) { $monitor = SucuriScanRequest::post(':xhr_monitor', '(en|dis)able'); if ($monitor) { $action_d = $monitor . 'd'; $message = 'XHR (XML HTTP Request) monitor was ' . $action_d . ''; SucuriScanOption::update_option(':xhr_monitor', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } if (SucuriScanOption::is_disabled(':xhr_monitor')) { $params['XhrMonitorStatus'] = 'Disabled'; $params['XhrMonitorSwitchText'] = 'Enable'; $params['XhrMonitorSwitchValue'] = 'enable'; $params['XhrMonitorSwitchCssClass'] = 'button-success'; } return SucuriScanTemplate::getSection('settings-general-xhrmonitor', $params); } function sucuriscan_settings_general_auditlogstats($nonce) { $params = array(); $params['AuditLogStats.StatusNum'] = '1'; $params['AuditLogStats.Status'] = 'Enabled'; $params['AuditLogStats.SwitchText'] = 'Disable'; $params['AuditLogStats.SwitchValue'] = 'disable'; $params['AuditLogStats.SwitchCssClass'] = 'button-danger'; $params['AuditLogStats.Limit'] = 0; if ($nonce) { // Update the limit for audit logs report. if ($logs4report = SucuriScanRequest::post(':logs4report', '[0-9]{1,4}')) { $_POST['sucuriscan_audit_report'] = 'enable'; $message = 'Audit log statistics limit set to ' . $logs4report . ''; SucuriScanOption::update_option(':logs4report', $logs4report); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } // Enable or disable the audit logs report. if ($audit_report = SucuriScanRequest::post(':audit_report', '(en|dis)able')) { $action_d = $audit_report . 'd'; $message = 'Audit log statistics were ' . $action_d . ''; SucuriScanOption::update_option(':audit_report', $action_d); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } $logs4report = SucuriScanOption::get_option(':logs4report'); $audit_report = SucuriScanOption::get_option(':audit_report'); $params['AuditLogStats.Limit'] = SucuriScan::escape($logs4report); if ($audit_report === 'disabled') { $params['AuditLogStats.StatusNum'] = '0'; $params['AuditLogStats.Status'] = 'Disabled'; $params['AuditLogStats.SwitchText'] = 'Enable'; $params['AuditLogStats.SwitchValue'] = 'enable'; $params['AuditLogStats.SwitchCssClass'] = 'button-success'; } return SucuriScanTemplate::getSection('settings-general-auditlogstats', $params); } function sucuriscan_settings_general_datetime($nonce) { $params = array(); $params['Datetime.AdminURL'] = SucuriScan::admin_url('options-general.php'); $params['Datetime.HumanReadable'] = SucuriScan::current_datetime(); $params['Datetime.Timestamp'] = SucuriScan::local_time(); $params['Datetime.Timezone'] = 'Unknown'; if (function_exists('wp_timezone_choice')) { $gmt_offset = SucuriScanOption::get_option('gmt_offset'); $tzstring = SucuriScanOption::get_option('timezone_string'); $params['Datetime.Timezone'] = empty($tzstring) ? 'UTC' . $gmt_offset : $tzstring; } return SucuriScanTemplate::getSection('settings-general-datetime', $params); } function sucuriscan_settings_general_adsvisibility($nonce) { // Update the advertisement visibility settings. if ($nonce) { $ads_visibility = SucuriScanRequest::post(':ads_visibility'); if ($ads_visibility === 'disable') { $option_value = $ads_visibility . 'd'; $message = sprintf('Plugin advertisement set to %s', $option_value); SucuriScanOption::update_option(':ads_visibility', $option_value); SucuriScanEvent::report_info_event($message); SucuriScanInterface::info($message); } } } /** * Read and parse the content of the scanner settings template. * * @return string Parsed HTML code for the scanner settings panel. */ function sucuriscan_settings_scanner() { global $sucuriscan_schedule_allowed, $sucuriscan_interface_allowed; // Get initial variables to decide some things bellow. $fs_scanner = SucuriScanOption::get_option(':fs_scanner'); $scan_freq = SucuriScanOption::get_option(':scan_frequency'); $scan_interface = SucuriScanOption::get_option(':scan_interface'); $scan_checksums = SucuriScanOption::get_option(':scan_checksums'); $scan_errorlogs = SucuriScanOption::get_option(':scan_errorlogs'); $parse_errorlogs = SucuriScanOption::get_option(':parse_errorlogs'); $errorlogs_limit = SucuriScanOption::get_option(':errorlogs_limit'); $ignore_scanning = SucuriScanOption::get_option(':ignore_scanning'); $sitecheck_scanner = SucuriScanOption::get_option(':sitecheck_scanner'); $sitecheck_counter = SucuriScanOption::get_option(':sitecheck_counter'); $runtime_scan_human = SucuriScanFSScanner::get_filesystem_runtime(true); // Get the file path of the security logs. $integrity_log_path = SucuriScan::datastore_folder_path('sucuri-integrity.php'); $lastlogins_log_path = SucuriScan::datastore_folder_path('sucuri-lastlogins.php'); $failedlogins_log_path = SucuriScan::datastore_folder_path('sucuri-failedlogins.php'); $sitecheck_log_path = SucuriScan::datastore_folder_path('sucuri-sitecheck.php'); // Generate the HTML code for the option list in the form select fields. $scan_freq_options = SucuriScanTemplate::selectOptions($sucuriscan_schedule_allowed, $scan_freq); $scan_interface_options = SucuriScanTemplate::selectOptions($sucuriscan_interface_allowed, $scan_interface); $params = array( /* Filesystem scanner */ 'FsScannerStatus' => 'Enabled', 'FsScannerSwitchText' => 'Disable', 'FsScannerSwitchValue' => 'disable', 'FsScannerSwitchCssClass' => 'button-danger', /* Scan files checksum. */ 'ScanChecksumsStatus' => 'Enabled', 'ScanChecksumsSwitchText' => 'Disable', 'ScanChecksumsSwitchValue' => 'disable', 'ScanChecksumsSwitchCssClass' => 'button-danger', /* Ignore scanning. */ 'IgnoreScanningStatus' => 'Enabled', 'IgnoreScanningSwitchText' => 'Disable', 'IgnoreScanningSwitchValue' => 'disable', 'IgnoreScanningSwitchCssClass' => 'button-danger', /* Scan error logs. */ 'ScanErrorlogsStatus' => 'Enabled', 'ScanErrorlogsSwitchText' => 'Disable', 'ScanErrorlogsSwitchValue' => 'disable', 'ScanErrorlogsSwitchCssClass' => 'button-danger', /* Parse error logs. */ 'ParseErrorLogsStatus' => 'Enabled', 'ParseErrorLogsSwitchText' => 'Disable', 'ParseErrorLogsSwitchValue' => 'disable', 'ParseErrorLogsSwitchCssClass' => 'button-danger', /* SiteCheck scanner. */ 'SiteCheckScannerStatus' => 'Enabled', 'SiteCheckScannerSwitchText' => 'Disable', 'SiteCheckScannerSwitchValue' => 'disable', 'SiteCheckScannerSwitchCssClass' => 'button-danger', /* Filsystem scanning frequency. */ 'ScanningFrequency' => 'Undefined', 'ScanningFrequencyOptions' => $scan_freq_options, 'ScanningInterface' => ( $scan_interface ? $sucuriscan_interface_allowed[ $scan_interface ] : 'Undefined' ), 'ScanningInterfaceOptions' => $scan_interface_options, /* Filesystem scanning runtime. */ 'ScanningRuntimeHuman' => $runtime_scan_human, 'SiteCheckCounter' => $sitecheck_counter, 'ErrorLogsLimit' => $errorlogs_limit, 'IntegrityLogLife' => '0B', 'LastLoginLogLife' => '0B', 'FailedLoginLogLife' => '0B', 'SiteCheckLogLife' => '0B', ); if ($fs_scanner == 'disabled') { $params['FsScannerStatus'] = 'Disabled'; $params['FsScannerSwitchText'] = 'Enable'; $params['FsScannerSwitchValue'] = 'enable'; $params['FsScannerSwitchCssClass'] = 'button-success'; } if ($scan_checksums == 'disabled') { $params['ScanChecksumsStatus'] = 'Disabled'; $params['ScanChecksumsSwitchText'] = 'Enable'; $params['ScanChecksumsSwitchValue'] = 'enable'; $params['ScanChecksumsSwitchCssClass'] = 'button-success'; } if ($ignore_scanning == 'disabled') { $params['IgnoreScanningStatus'] = 'Disabled'; $params['IgnoreScanningSwitchText'] = 'Enable'; $params['IgnoreScanningSwitchValue'] = 'enable'; $params['IgnoreScanningSwitchCssClass'] = 'button-success'; } if ($scan_errorlogs == 'disabled') { $params['ScanErrorlogsStatus'] = 'Disabled'; $params['ScanErrorlogsSwitchText'] = 'Enable'; $params['ScanErrorlogsSwitchValue'] = 'enable'; $params['ScanErrorlogsSwitchCssClass'] = 'button-success'; } if ($parse_errorlogs == 'disabled') { $params['ParseErrorLogsStatus'] = 'Disabled'; $params['ParseErrorLogsSwitchText'] = 'Enable'; $params['ParseErrorLogsSwitchValue'] = 'enable'; $params['ParseErrorLogsSwitchCssClass'] = 'button-success'; } if ($sitecheck_scanner == 'disabled') { $params['SiteCheckScannerStatus'] = 'Disabled'; $params['SiteCheckScannerSwitchText'] = 'Enable'; $params['SiteCheckScannerSwitchValue'] = 'enable'; $params['SiteCheckScannerSwitchCssClass'] = 'button-success'; } if (array_key_exists($scan_freq, $sucuriscan_schedule_allowed)) { $params['ScanningFrequency'] = $sucuriscan_schedule_allowed[ $scan_freq ]; } // Determine the age of the security log files. $params['IntegrityLogLife'] = SucuriScan::human_filesize(@filesize($integrity_log_path)); $params['LastLoginLogLife'] = SucuriScan::human_filesize(@filesize($lastlogins_log_path)); $params['FailedLoginLogLife'] = SucuriScan::human_filesize(@filesize($failedlogins_log_path)); $params['SiteCheckLogLife'] = SucuriScan::human_filesize(@filesize($sitecheck_log_path)); return SucuriScanTemplate::getSection('settings-scanner', $params); } function sucuriscan_settings_ignorescanning() { $params = array( 'IgnoreScanning.ResourceList' => '', 'IgnoreScanning.DisabledVisibility' => 'visible', 'IgnoreScanning.NoItemsVisibility' => 'visible', ); $ignore_scanning = SucuriScanFSScanner::will_ignore_scanning(); // Allow disable of this option temporarily. if (SucuriScanRequest::get('no_scan') == 1) { $ignore_scanning = false; } // Scan the project and get the ignored paths. if ($ignore_scanning === true) { $counter = 0; $params['IgnoreScanning.DisabledVisibility'] = 'hidden'; $dir_list_list = SucuriScanFSScanner::get_ignored_directories_live(); foreach ($dir_list_list as $group => $dir_list) { foreach ($dir_list as $dir_data) { $valid_entry = false; $snippet_data = array( 'IgnoreScanning.CssClass' => '', 'IgnoreScanning.Directory' => '', 'IgnoreScanning.DirectoryPath' => '', 'IgnoreScanning.IgnoredAt' => '', 'IgnoreScanning.IgnoredAtText' => 'ok', 'IgnoreScanning.IgnoredCssClass' => 'success', ); if ($group == 'is_ignored') { $valid_entry = true; $snippet_data['IgnoreScanning.Directory'] = urlencode($dir_data['directory_path']); $snippet_data['IgnoreScanning.DirectoryPath'] = $dir_data['directory_path']; $snippet_data['IgnoreScanning.IgnoredAt'] = SucuriScan::datetime($dir_data['ignored_at']); $snippet_data['IgnoreScanning.IgnoredAtText'] = 'ignored'; $snippet_data['IgnoreScanning.IgnoredCssClass'] = 'warning'; } elseif ($group == 'is_not_ignored') { $valid_entry = true; $snippet_data['IgnoreScanning.Directory'] = urlencode($dir_data); $snippet_data['IgnoreScanning.DirectoryPath'] = $dir_data; } if ($valid_entry) { $css_class = ( $counter % 2 == 0 ) ? '' : 'alternate'; $snippet_data['IgnoreScanning.CssClass'] = $css_class; $params['IgnoreScanning.ResourceList'] .= SucuriScanTemplate::getSnippet( 'settings-ignorescanning', $snippet_data ); $counter++; } } } if ($counter > 0) { $params['IgnoreScanning.NoItemsVisibility'] = 'hidden'; } } return SucuriScanTemplate::getSection('settings-ignorescanning', $params); } /** * Read and parse the content of the notification settings template. * * @return string Parsed HTML code for the notification settings panel. */ function sucuriscan_settings_alert($nonce) { $params = array(); $params['AlertSettings.Recipients'] = sucuriscan_settings_alert_recipients($nonce); $params['AlertSettings.Subject'] = sucuriscan_settings_alert_subject($nonce); $params['AlertSettings.PerHour'] = sucuriscan_settings_alert_perhour($nonce); $params['AlertSettings.BruteForce'] = sucuriscan_settings_alert_bruteforce($nonce); $params['AlertSettings.Events'] = sucuriscan_settings_alert_events($nonce); return SucuriScanTemplate::getSection('settings-alert', $params); } function sucuriscan_settings_alert_recipients($nonce) { $params = array(); $params['AlertSettings.Recipients'] = ''; $notify_to = SucuriScanOption::get_option(':notify_to'); $emails = array(); // If the recipient list is not empty, explode. if (is_string($notify_to)) { $emails = explode(',', $notify_to); } // Process form submission. if ($nonce) { // Add new email address to the alert recipient list. if (SucuriScanRequest::post(':save_recipient') !== false) { $new_email = SucuriScanRequest::post(':recipient'); if (SucuriScan::is_valid_email($new_email)) { $emails[] = $new_email; $message = 'Sucuri will send email alerts to: ' . $new_email . ''; SucuriScanOption::update_option(':notify_to', implode(',', $emails)); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Email format not supported.'); } } // Delete one or more recipients from the list. if (SucuriScanRequest::post(':delete_recipients') !== false) { $deleted_emails = array(); $recipients = SucuriScanRequest::post(':recipients', '_array'); foreach ($recipients as $address) { if (in_array($address, $emails)) { $deleted_emails[] = $address; $index = array_search($address, $emails); unset($emails[$index]); } } if (!empty($deleted_emails)) { $deleted_emails_str = implode(",\x20", $deleted_emails); $message = 'Sucuri will not send email alerts to: ' . $deleted_emails_str . ''; SucuriScanOption::update_option(':notify_to', implode(',', $emails)); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } // Debug ability of the plugin to send email alerts correctly. if (SucuriScanRequest::post(':debug_email')) { $recipients = SucuriScanOption::get_option(':notify_to'); SucuriScanMail::send_mail( $recipients, 'Test Email Alert', sprintf('Test email alert sent at %s', date('r')), array('Force' => true) ); SucuriScanInterface::info('Test email alert sent, check your inbox.'); } } $counter = 0; foreach ($emails as $email) { if (!empty($email)) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $params['AlertSettings.Recipients'] .= SucuriScanTemplate::getSnippet( 'settings-alert-recipients', array( 'Recipient.CssClass' => $css_class, 'Recipient.Email' => $email, ) ); $counter++; } } return SucuriScanTemplate::getSection('settings-alert-recipients', $params); } function sucuriscan_settings_alert_subject($nonce) { global $sucuriscan_email_subjects; $params = array( 'AlertSettings.Subject' => '', 'AlertSettings.CustomChecked' => '', 'AlertSettings.CustomValue' => '', ); // Process form submission to change the alert settings. if ($nonce) { if ($email_subject = SucuriScanRequest::post(':email_subject')) { $current_value = SucuriScanOption::get_option(':email_subject'); $new_email_subject = false; /** * Validate the format of the email subject format. * * If the user chooses the option to build the subject of the email alerts * manually we will need to validate the characters. Otherwise we will need to * check if the pseudo-tags selected by the user are allowed and supported. */ if ($email_subject === 'custom') { $format_pattern = '/^[0-9a-zA-Z:,\s]+$/'; $custom_subject = SucuriScanRequest::post(':custom_email_subject'); if ($custom_subject !== false && !empty($custom_subject) && @preg_match($format_pattern, $custom_subject) ) { $new_email_subject = trim($custom_subject); } else { SucuriScanInterface::error('Invalid characters in the email subject.'); } } elseif (is_array($sucuriscan_email_subjects) && in_array($email_subject, $sucuriscan_email_subjects) ) { $new_email_subject = trim($email_subject); } // Proceed with the operation saving the new subject. if ($new_email_subject !== false && $current_value !== $new_email_subject ) { $message = 'Email subject set to ' . $new_email_subject . ''; SucuriScanOption::update_option(':email_subject', $new_email_subject); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } } // Build the HTML code for the interface. if (is_array($sucuriscan_email_subjects)) { $email_subject = SucuriScanOption::get_option(':email_subject'); $is_official_subject = false; foreach ($sucuriscan_email_subjects as $subject_format) { if ($email_subject === $subject_format) { $is_official_subject = true; $checked = 'checked="checked"'; } else { $checked = ''; } $params['AlertSettings.Subject'] .= SucuriScanTemplate::getSnippet( 'settings-alert-subject', array( 'EmailSubject.Name' => $subject_format, 'EmailSubject.Value' => $subject_format, 'EmailSubject.Checked' => $checked, ) ); } if ($is_official_subject === false) { $params['AlertSettings.CustomChecked'] = 'checked="checked"'; $params['AlertSettings.CustomValue'] = $email_subject; } } return SucuriScanTemplate::getSection('settings-alert-subject', $params); } function sucuriscan_settings_alert_perhour($nonce) { global $sucuriscan_emails_per_hour; $params = array(); $params['AlertSettings.PerHour'] = ''; if ($nonce) { // Update the value for the maximum emails per hour. if ($per_hour = SucuriScanRequest::post(':emails_per_hour')) { if (array_key_exists($per_hour, $sucuriscan_emails_per_hour)) { $per_hour_label = strtolower($sucuriscan_emails_per_hour[$per_hour]); $message = 'Maximum alerts per hour set to ' . $per_hour_label . ''; SucuriScanOption::update_option(':emails_per_hour', $per_hour); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Invalid value for the maximum emails per hour.'); } } } $per_hour = SucuriScanOption::get_option(':emails_per_hour'); $per_hour_options = SucuriScanTemplate::selectOptions($sucuriscan_emails_per_hour, $per_hour); $params['AlertSettings.PerHour'] = $per_hour_options; return SucuriScanTemplate::getSection('settings-alert-perhour', $params); } function sucuriscan_settings_alert_bruteforce($nonce) { global $sucuriscan_maximum_failed_logins; $params = array(); $params['AlertSettings.BruteForce'] = ''; if ($nonce) { // Update the maximum failed logins per hour before consider it a brute-force attack. if ($maximum = SucuriScanRequest::post(':maximum_failed_logins')) { if (array_key_exists($maximum, $sucuriscan_maximum_failed_logins)) { $message = 'Consider brute-force attack after ' . $maximum . ' failed logins per hour'; SucuriScanOption::update_option(':maximum_failed_logins', $maximum); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Invalid value for the brute-force alerts.'); } } } $maximum = SucuriScanOption::get_option(':maximum_failed_logins'); $maximum_options = SucuriScanTemplate::selectOptions($sucuriscan_maximum_failed_logins, $maximum); $params['AlertSettings.BruteForce'] = $maximum_options; return SucuriScanTemplate::getSection('settings-alert-bruteforce', $params); } function sucuriscan_settings_alert_events($nonce) { global $sucuriscan_notify_options; $params = array(); $params['AlertSettings.Events'] = ''; // Process form submission to change the alert settings. if ($nonce) { // Update the notification settings. if (SucuriScanRequest::post(':save_alert_events') !== false) { $ucounter = 0; if (SucuriScanRequest::post(':notify_scan_checksums') == 1) { $_POST['sucuriscan_prettify_mails'] = '1'; } foreach ($sucuriscan_notify_options as $alert_type => $alert_label) { $option_value = SucuriScanRequest::post($alert_type, '(1|0)'); if ($option_value !== false) { $current_value = SucuriScanOption::get_option($alert_type); $option_value = ($option_value == 1) ? 'enabled' : 'disabled'; // Check that the option value was actually changed. if ($current_value !== $option_value) { SucuriScanOption::update_option($alert_type, $option_value); $ucounter += 1; } } } if ($ucounter > 0) { $message = 'A total of ' . $ucounter . ' alert events were changed'; SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } } // Build the HTML code for the interface. if (is_array($sucuriscan_notify_options)) { $pattern = '/^([a-z]+:)?(.+)/'; $counter = 0; foreach ($sucuriscan_notify_options as $alert_type => $alert_label) { $alert_value = SucuriScanOption::get_option($alert_type); $checked = ($alert_value == 'enabled') ? 'checked="checked"' : ''; $css_class = ($counter % 2 === 0) ? 'alternate' : ''; $alert_icon = ''; if (@preg_match($pattern, $alert_label, $match)) { $alert_group = str_replace(':', '', $match[1]); $alert_label = $match[2]; switch ($alert_group) { case 'user': $alert_icon = 'dashicons-before dashicons-admin-users'; break; case 'plugin': $alert_icon = 'dashicons-before dashicons-admin-plugins'; break; case 'theme': $alert_icon = 'dashicons-before dashicons-admin-appearance'; break; } } $params['AlertSettings.Events'] .= SucuriScanTemplate::getSnippet( 'settings-alert-events', array( 'Event.CssClass' => $css_class, 'Event.Name' => $alert_type, 'Event.Checked' => $checked, 'Event.Label' => $alert_label, 'Event.LabelIcon' => $alert_icon, ) ); $counter++; } } return SucuriScanTemplate::getSection('settings-alert-events', $params); } function sucuriscan_settings_ignore_rules() { $notify_new_site_content = SucuriScanOption::get_option(':notify_post_publication'); $template_variables = array( 'IgnoreRules.MessageVisibility' => 'visible', 'IgnoreRules.TableVisibility' => 'hidden', 'IgnoreRules.PostTypes' => '', ); if ($notify_new_site_content == 'enabled') { $post_types = get_post_types(); $ignored_events = SucuriScanOption::get_ignored_events(); $template_variables['IgnoreRules.MessageVisibility'] = 'hidden'; $template_variables['IgnoreRules.TableVisibility'] = 'visible'; $counter = 0; foreach ($post_types as $post_type => $post_type_object) { $counter++; $css_class = ($counter % 2 === 0) ? 'alternate' : ''; $post_type_title = ucwords(str_replace('_', chr(32), $post_type)); if (array_key_exists($post_type, $ignored_events)) { $is_ignored_text = 'YES'; $was_ignored_at = SucuriScan::datetime($ignored_events[ $post_type ]); $is_ignored_class = 'danger'; $button_action = 'remove'; $button_class = 'button-primary'; $button_text = 'Allow'; } else { $is_ignored_text = 'NO'; $was_ignored_at = 'Not ignored'; $is_ignored_class = 'success'; $button_action = 'add'; $button_class = 'button-primary button-danger'; $button_text = 'Ignore'; } $template_variables['IgnoreRules.PostTypes'] .= SucuriScanTemplate::getSnippet( 'settings-ignorerules', array( 'IgnoreRules.CssClass' => $css_class, 'IgnoreRules.Num' => $counter, 'IgnoreRules.PostTypeTitle' => $post_type_title, 'IgnoreRules.IsIgnored' => $is_ignored_text, 'IgnoreRules.WasIgnoredAt' => $was_ignored_at, 'IgnoreRules.IsIgnoredClass' => $is_ignored_class, 'IgnoreRules.PostType' => $post_type, 'IgnoreRules.Action' => $button_action, 'IgnoreRules.ButtonClass' => 'button ' . $button_class, 'IgnoreRules.ButtonText' => $button_text, ) ); } } return SucuriScanTemplate::getSection('settings-ignorerules', $template_variables); } /** * Read and parse the content of the API service settings template. * * @return string Parsed HTML code for the API service settings panel. */ function sucuriscan_settings_apiservice($nonce) { $params = array(); $params['SettingsSection.ApiStatus'] = sucuriscan_settings_apiservice_status($nonce); $params['SettingsSection.ApiProxy'] = sucuriscan_settings_apiservice_proxy($nonce); $params['SettingsSection.ApiSSL'] = sucuriscan_settings_apiservice_ssl($nonce); $params['SettingsSection.ApiTimeout'] = sucuriscan_settings_apiservice_timeout($nonce); return SucuriScanTemplate::getSection('settings-apiservice', $params); } function sucuriscan_settings_apiservice_status($nonce) { $params = array(); $params['ApiStatus.StatusNum'] = '1'; $params['ApiStatus.Status'] = 'Enabled'; $params['ApiStatus.SwitchText'] = 'Disable'; $params['ApiStatus.SwitchValue'] = 'disable'; $params['ApiStatus.SwitchCssClass'] = 'button-danger'; $params['ApiStatus.WarningVisibility'] = 'visible'; $params['ApiStatus.ErrorVisibility'] = 'hidden'; if ($nonce) { // Enable or disable the API service communication. if ($api_service = SucuriScanRequest::post(':api_service', '(en|dis)able')) { $action_d = $api_service . 'd'; $message = 'API service communication was ' . $action_d . ''; SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanOption::update_option(':api_service', $action_d); SucuriScanInterface::info($message); } } $api_service = SucuriScanOption::get_option(':api_service'); if ($api_service === 'disabled') { $params['ApiStatus.StatusNum'] = '0'; $params['ApiStatus.Status'] = 'Disabled'; $params['ApiStatus.SwitchText'] = 'Enable'; $params['ApiStatus.SwitchValue'] = 'enable'; $params['ApiStatus.SwitchCssClass'] = 'button-success'; $params['ApiStatus.WarningVisibility'] = 'hidden'; $params['ApiStatus.ErrorVisibility'] = 'visible'; } return SucuriScanTemplate::getSection('settings-apiservice-status', $params); } function sucuriscan_settings_apiservice_proxy($nonce) { $params = array( 'APIProxy.Host' => 'no_proxy_host', 'APIProxy.Port' => 'no_proxy_port', 'APIProxy.Username' => 'no_proxy_username', 'APIProxy.Password' => 'no_proxy_password', 'APIProxy.PasswordType' => 'default', 'APIProxy.PasswordText' => 'empty', ); if (class_exists('WP_HTTP_Proxy')) { $wp_http_proxy = new WP_HTTP_Proxy(); if ($wp_http_proxy->is_enabled()) { $proxy_host = SucuriScan::escape($wp_http_proxy->host()); $proxy_port = SucuriScan::escape($wp_http_proxy->port()); $proxy_username = SucuriScan::escape($wp_http_proxy->username()); $proxy_password = SucuriScan::escape($wp_http_proxy->password()); $params['APIProxy.Host'] = $proxy_host; $params['APIProxy.Port'] = $proxy_port; $params['APIProxy.Username'] = $proxy_username; $params['APIProxy.Password'] = $proxy_password; $params['APIProxy.PasswordType'] = 'info'; $params['APIProxy.PasswordText'] = 'hidden'; } } return SucuriScanTemplate::getSection('settings-apiservice-proxy', $params); } function sucuriscan_settings_apiservice_ssl($nonce) { global $sucuriscan_verify_ssl_cert; $params = array( 'VerifySSLCert' => 'Undefined', 'VerifySSLCertCssClass' => 0, 'VerifySSLCertOptions' => '', ); // Update the configuration for the SSL certificate verification. if ($nonce) { $verify_ssl_cert = SucuriScanRequest::post(':verify_ssl_cert'); if ($verify_ssl_cert) { if (array_key_exists($verify_ssl_cert, $sucuriscan_verify_ssl_cert)) { $message = 'SSL certificate verification for API calls set to ' . $verify_ssl_cert . ''; SucuriScanOption::update_option(':verify_ssl_cert', $verify_ssl_cert); SucuriScanEvent::report_warning_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('Invalid value for the SSL certificate verification.'); } } } $verify_ssl_cert = SucuriScanOption::get_option(':verify_ssl_cert'); $params['VerifySSLCertOptions'] = SucuriScanTemplate::selectOptions( $sucuriscan_verify_ssl_cert, $verify_ssl_cert ); if (array_key_exists($verify_ssl_cert, $sucuriscan_verify_ssl_cert)) { $params['VerifySSLCert'] = $sucuriscan_verify_ssl_cert[$verify_ssl_cert]; if ($verify_ssl_cert === 'true') { $params['VerifySSLCertCssClass'] = 1; } } return SucuriScanTemplate::getSection('settings-apiservice-ssl', $params); } function sucuriscan_settings_apiservice_timeout($nonce) { $params = array(); // Update the API request timeout. if ($nonce) { $timeout = (int) SucuriScanRequest::post(':request_timeout', '[0-9]+'); if ($timeout > 0) { if ($timeout <= SUCURISCAN_MAX_REQUEST_TIMEOUT) { $message = 'API request timeout set to ' . $timeout . ' seconds.'; SucuriScanOption::update_option(':request_timeout', $timeout); SucuriScanEvent::report_info_event($message); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } else { SucuriScanInterface::error('API request timeout in seconds is too high.'); } } } $params['MaxRequestTimeout'] = SUCURISCAN_MAX_REQUEST_TIMEOUT; $params['RequestTimeout'] = SucuriScanOption::get_option(':request_timeout') . ' seconds'; return SucuriScanTemplate::getSection('settings-apiservice-timeout', $params); } /** * Read and parse the content of the self-hosting settings template. * * @return string Parsed HTML code for the self-hosting settings panel. */ function sucuriscan_settings_selfhosting($nonce) { $params = array(); $params['SelfHosting.Monitor'] = sucuriscan_settings_selfhosting_monitor($nonce); return SucuriScanTemplate::getSection('settings-selfhosting', $params); } function sucuriscan_selfhosting_fpath() { $monitor = SucuriScanOption::get_option(':selfhosting_monitor'); $monitor_fpath = SucuriScanOption::get_option(':selfhosting_fpath'); if ($monitor === 'enabled' && !empty($monitor_fpath) && file_exists($monitor_fpath) && is_writable($monitor_fpath) ) { return $monitor_fpath; } return false; } function sucuriscan_settings_selfhosting_monitor($nonce) { $params = array(); $params['SelfHostingMonitor.DisabledVisibility'] = 'visible'; $params['SelfHostingMonitor.Status'] = 'Enabled'; $params['SelfHostingMonitor.SwitchText'] = 'Disable'; $params['SelfHostingMonitor.SwitchValue'] = 'disable'; $params['SelfHostingMonitor.SwitchCssClass'] = 'button-danger'; $params['SelfHostingMonitor.FpathVisibility'] = 'hidden'; $params['SelfHostingMonitor.Fpath'] = ''; if ($nonce) { // Set a file path for the self-hosted event monitor. $monitor_fpath = SucuriScanRequest::post(':selfhosting_fpath'); if ($monitor_fpath !== false) { if (empty($monitor_fpath)) { $message = 'Log exporter was disabled.'; SucuriScanEvent::report_info_event($message); SucuriScanOption::delete_option(':selfhosting_fpath'); SucuriScanOption::update_option(':selfhosting_monitor', 'disabled'); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } elseif (strpos($monitor_fpath, $_SERVER['DOCUMENT_ROOT']) !== false) { SucuriScanInterface::error('File should not be publicly accessible.'); } elseif (!file_exists($monitor_fpath)) { SucuriScanInterface::error('File path does not exists.'); } elseif (!is_writable($monitor_fpath)) { SucuriScanInterface::error('File path is not writable.'); } else { $message = 'Log exporter file path was set correctly.'; SucuriScanEvent::report_info_event($message); SucuriScanOption::update_option(':selfhosting_monitor', 'enabled'); SucuriScanOption::update_option(':selfhosting_fpath', $monitor_fpath); SucuriScanEvent::notify_event('plugin_change', $message); SucuriScanInterface::info($message); } } } $monitor = SucuriScanOption::get_option(':selfhosting_monitor'); $monitor_fpath = SucuriScanOption::get_option(':selfhosting_fpath'); if ($monitor === 'disabled') { $params['SelfHostingMonitor.Status'] = 'Disabled'; $params['SelfHostingMonitor.SwitchText'] = 'Enable'; $params['SelfHostingMonitor.SwitchValue'] = 'enable'; $params['SelfHostingMonitor.SwitchCssClass'] = 'button-success'; } if ($monitor === 'enabled' && $monitor_fpath) { $params['SelfHostingMonitor.DisabledVisibility'] = 'hidden'; $params['SelfHostingMonitor.FpathVisibility'] = 'visible'; $params['SelfHostingMonitor.Fpath'] = SucuriScan::escape($monitor_fpath); } return SucuriScanTemplate::getSection('settings-selfhosting-monitor', $params); } /** * Read and parse the content of the trust-ip settings template. * * @return string Parsed HTML code for the trust-ip settings panel. */ function sucuriscan_settings_trust_ip() { $params = array(); $params['TrustedIPs.List'] = ''; $params['TrustedIPs.NoItems.Visibility'] = 'visible'; $cache = new SucuriScanCache('trustip'); $trusted_ips = $cache->getAll(); if ($trusted_ips) { $counter = 0; foreach ($trusted_ips as $cache_key => $ip_info) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; if ($ip_info->cidr_range == 32) { $ip_info->cidr_format = 'n/a'; } $params['TrustedIPs.List'] .= SucuriScanTemplate::getSnippet( 'settings-trustip', array( 'TrustIP.CssClass' => $css_class, 'TrustIP.CacheKey' => $cache_key, 'TrustIP.RemoteAddr' => SucuriScan::escape($ip_info->remote_addr), 'TrustIP.CIDRFormat' => SucuriScan::escape($ip_info->cidr_format), 'TrustIP.AddedAt' => SucuriScan::datetime($ip_info->added_at), ) ); $counter++; } if ($counter > 0) { $params['TrustedIPs.NoItems.Visibility'] = 'hidden'; } } return SucuriScanTemplate::getSection('settings-trustip', $params); } /** * Read and parse the content of the heartbeat settings template. * * @return string Parsed HTML code for the heartbeat settings panel. */ function sucuriscan_settings_heartbeat() { // Current values set in the options table. $heartbeat_status = SucuriScanOption::get_option(':heartbeat'); $heartbeat_pulse = SucuriScanOption::get_option(':heartbeat_pulse'); $heartbeat_interval = SucuriScanOption::get_option(':heartbeat_interval'); $heartbeat_autostart = SucuriScanOption::get_option(':heartbeat_autostart'); // Allowed values for each setting. $statuses_allowed = SucuriScanHeartbeat::statuses_allowed(); $pulses_allowed = SucuriScanHeartbeat::pulses_allowed(); $intervals_allowed = SucuriScanHeartbeat::intervals_allowed(); // HTML select form fields. $heartbeat_options = SucuriScanTemplate::selectOptions($statuses_allowed, $heartbeat_status); $heartbeat_pulse_options = SucuriScanTemplate::selectOptions($pulses_allowed, $heartbeat_pulse); $heartbeat_interval_options = SucuriScanTemplate::selectOptions($intervals_allowed, $heartbeat_interval); $params = array( 'HeartbeatStatus' => 'Undefined', 'HeartbeatPulse' => 'Undefined', 'HeartbeatInterval' => 'Undefined', /* Heartbeat Options. */ 'HeartbeatStatusOptions' => $heartbeat_options, 'HeartbeatPulseOptions' => $heartbeat_pulse_options, 'HeartbeatIntervalOptions' => $heartbeat_interval_options, /* Heartbeat Auto-Start. */ 'HeartbeatAutostart' => 'Enabled', 'HeartbeatAutostartSwitchText' => 'Disable', 'HeartbeatAutostartSwitchValue' => 'disable', 'HeartbeatAutostartSwitchCssClass' => 'button-danger', ); if (array_key_exists($heartbeat_status, $statuses_allowed)) { $params['HeartbeatStatus'] = $statuses_allowed[ $heartbeat_status ]; } if (array_key_exists($heartbeat_pulse, $pulses_allowed)) { $params['HeartbeatPulse'] = $pulses_allowed[ $heartbeat_pulse ]; } if (array_key_exists($heartbeat_interval, $intervals_allowed)) { $params['HeartbeatInterval'] = $intervals_allowed[ $heartbeat_interval ]; } if ($heartbeat_autostart == 'disabled') { $params['HeartbeatAutostart'] = 'Disabled'; $params['HeartbeatAutostartSwitchText'] = 'Enable'; $params['HeartbeatAutostartSwitchValue'] = 'enable'; $params['HeartbeatAutostartSwitchCssClass'] = 'button-success'; } return SucuriScanTemplate::getSection('settings-heartbeat', $params); } /** * Print a HTML code with the settings of the plugin. * * @return void */ function sucuriscan_settings_page() { SucuriScanInterface::check_permissions(); $params = array(); $nonce = SucuriScanInterface::check_nonce(); $params['PageTitle'] = 'Settings'; $params['Settings.General'] = sucuriscan_settings_general($nonce); $params['Settings.Scanner'] = sucuriscan_settings_scanner(); $params['Settings.Alerts'] = sucuriscan_settings_alert($nonce); $params['Settings.ApiService'] = sucuriscan_settings_apiservice($nonce); $params['Settings.SelfHosting'] = sucuriscan_settings_selfhosting($nonce); $params['Settings.IgnoreScanning'] = sucuriscan_settings_ignorescanning(); $params['Settings.IgnoreRules'] = sucuriscan_settings_ignore_rules(); $params['Settings.TrustIP'] = sucuriscan_settings_trust_ip(); $params['Settings.Heartbeat'] = sucuriscan_settings_heartbeat(); echo SucuriScanTemplate::getTemplate('settings', $params); } /** * Generate and print the HTML code for the InfoSys page. * * This page will contains information of the system where the site is hosted, * also information about users in session, htaccess rules and configuration * options. * * @return void */ function sucuriscan_infosys_page() { SucuriScanInterface::check_permissions(); // Process all form submissions. sucuriscan_infosys_form_submissions(); // Page pseudo-variables initialization. $params = array( 'PageTitle' => 'Site Info', 'ServerInfo' => sucuriscan_server_info(), 'Cronjobs' => sucuriscan_show_cronjobs(), 'HTAccessIntegrity' => sucuriscan_infosys_htaccess(), 'WordpressConfig' => sucuriscan_infosys_wpconfig(), 'ErrorLogs' => sucuriscan_infosys_errorlogs(), ); echo SucuriScanTemplate::getTemplate('infosys', $params); } /** * Find the main htaccess file for the site and check whether the rules of the * main htaccess file of the site are the default rules generated by WordPress. * * @return string The HTML code displaying the information about the HTAccess rules. */ function sucuriscan_infosys_htaccess() { $htaccess_path = SucuriScan::get_htaccess_path(); $params = array( 'HTAccess.Content' => '', 'HTAccess.TextareaVisible' => 'hidden', 'HTAccess.StandardVisible' => 'hidden', 'HTAccess.NotFoundVisible' => 'hidden', 'HTAccess.FoundVisible' => 'hidden', 'HTAccess.Fpath' => 'unknown', ); if ($htaccess_path) { $htaccess_rules = @file_get_contents($htaccess_path); $params['HTAccess.TextareaVisible'] = 'visible'; $params['HTAccess.Content'] = $htaccess_rules; $params['HTAccess.Fpath'] = $htaccess_path; $params['HTAccess.FoundVisible'] = 'visible'; if (sucuriscan_htaccess_is_standard($htaccess_rules)) { $params['HTAccess.StandardVisible'] = 'visible'; } } else { $params['HTAccess.NotFoundVisible'] = 'visible'; } return SucuriScanTemplate::getSection('infosys-htaccess', $params); } /** * Check if the standard rules for a normal WordPress installation (not network * based) are inside the main htaccess file. This only applies to websites that * have permalinks enabled, or 3rd-party plugins that require custom rules * (generally based on mod_deflate) to compress and/or generate static files for * cache. * * @param string $rules Content of the main htaccess file. * @return boolean True if the htaccess has the standard rules, false otherwise. */ function sucuriscan_htaccess_is_standard($rules = false) { if ($rules === false) { $rules = ''; $htaccess_path = SucuriScan::get_htaccess_path(); if ($htaccess_path) { $rules = @file_get_contents($htaccess_path); } } if (is_string($rules) && !empty($rules)) { $rewrite = new WP_Rewrite(); $standard = $rewrite->mod_rewrite_rules(); return (bool) (strpos($rules, $standard) !== false); } return false; } /** * Retrieve all the constants and variables with their respective values defined * in the WordPress configuration file, only the database password constant is * omitted for security reasons. * * @return string The HTML code displaying the constants and variables found in the wp-config file. */ function sucuriscan_infosys_wpconfig() { $params = array( 'WordpressConfig.Rules' => '', 'WordpressConfig.Total' => 0, ); $ignore_wp_rules = array('DB_PASSWORD'); $wp_config_path = SucuriScan::get_wpconfig_path(); if ($wp_config_path) { $wp_config_rules = array(); $wp_config_content = SucuriScanFileInfo::file_lines($wp_config_path); // Parse the main configuration file and look for constants and global variables. foreach ((array) $wp_config_content as $line) { if (@preg_match('/^\s?(#|\/\/)/', $line)) { continue; /* Ignore commented lines. */ } elseif (@preg_match('/define\(/', $line)) { // Detect PHP constants even if the line if indented. $line = preg_replace('/.*define\((.+)\);.*/', '$1', $line); $line_parts = explode(',', $line, 2); } elseif (@preg_match('/^\$[a-zA-Z_]+/', $line)) { // Detect global variables like the database table prefix. $line = @preg_replace('/;\s\/\/.*/', ';', $line); $line_parts = explode('=', $line, 2); } else { continue; /* Ignore other lines. */ } // Clean and append the rule to the wp_config_rules variable. if (isset($line_parts) && count($line_parts) === 2) { $key_name = ''; $key_value = ''; // TODO: A foreach loop is not really necessary, find a better way. foreach ($line_parts as $i => $line_part) { $line_part = trim($line_part); $line_part = ltrim($line_part, '$'); $line_part = rtrim($line_part, ';'); // Remove single/double quotes at the beginning and end of the string. $line_part = ltrim($line_part, "'"); $line_part = rtrim($line_part, "'"); $line_part = ltrim($line_part, '"'); $line_part = rtrim($line_part, '"'); // Assign the clean strings to specific variables. if ($i == 0) { $key_name = $line_part; } if ($i == 1) { if (defined($key_name)) { $key_value = constant($key_name); if (is_bool($key_value)) { $key_value = ($key_value === true) ? 'True' : 'False'; } } else { $key_value = $line_part; } } } // Remove the value of sensitive variables like the database password. if (in_array($key_name, $ignore_wp_rules)) { $key_value = 'hidden'; } // Append the value to the configuration rules. $wp_config_rules[$key_name] = $key_value; } } // Pass the WordPress configuration rules to the template and show them. $counter = 0; foreach ($wp_config_rules as $var_name => $var_value) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $label_css = 'sucuriscan-monospace'; if (empty($var_value)) { $var_value = 'empty'; $label_css = 'sucuriscan-label-default'; } elseif ($var_value == 'hidden') { $label_css = 'sucuriscan-label-info'; } $params['WordpressConfig.Total'] += 1; $params['WordpressConfig.Rules'] .= SucuriScanTemplate::getSnippet( 'infosys-wpconfig', array( 'WordpressConfig.VariableName' => $var_name, 'WordpressConfig.VariableValue' => $var_value, 'WordpressConfig.VariableCssClass' => $label_css, 'WordpressConfig.CssClass' => $css_class, ) ); $counter++; } } return SucuriScanTemplate::getSection('infosys-wpconfig', $params); } /** * Retrieve a list with the scheduled tasks configured for the site. * * @return array A list of pseudo-variables and values that will replace them in the HTML template. */ function sucuriscan_show_cronjobs() { $params = array( 'Cronjobs.List' => '', 'Cronjobs.Total' => 0, ); $cronjobs = _get_cron_array(); $schedules = wp_get_schedules(); $counter = 0; foreach ($cronjobs as $timestamp => $cronhooks) { foreach ((array) $cronhooks as $hook => $events) { foreach ((array) $events as $key => $event) { if (empty($event['args'])) { $event['args'] = array('[]'); } $params['Cronjobs.Total'] += 1; $params['Cronjobs.List'] .= SucuriScanTemplate::getSnippet( 'infosys-cronjobs', array( 'Cronjob.Hook' => $hook, 'Cronjob.Schedule' => $event['schedule'], 'Cronjob.NextTime' => SucuriScan::datetime($timestamp), 'Cronjob.Arguments' => SucuriScan::implode(', ', $event['args']), 'Cronjob.CssClass' => ($counter % 2 === 0) ? '' : 'alternate', ) ); $counter++; } } } return SucuriScanTemplate::getSection('infosys-cronjobs', $params); } /** * Process the requests sent by the form submissions originated in the infosys * page, all forms must have a nonce field that will be checked against the one * generated in the template render function. * * @param boolean $page_nonce True if the nonce is valid, False otherwise. * @return void */ function sucuriscan_infosys_form_submissions() { if (SucuriScanInterface::check_nonce()) { // Modify the scheduled tasks (run now, remove, re-schedule). $allowed_actions = '(runnow|hourly|twicedaily|daily|remove)'; if ($cronjob_action = SucuriScanRequest::post(':cronjob_action', $allowed_actions)) { $cronjobs = SucuriScanRequest::post(':cronjobs', '_array'); if (!empty($cronjobs)) { $total_tasks = count($cronjobs); // Force execution of the selected scheduled tasks. if ($cronjob_action == 'runnow') { SucuriScanInterface::info($total_tasks . ' tasks were scheduled to run in the next ten seconds.'); SucuriScanEvent::report_notice_event(sprintf( 'Force execution of scheduled tasks: (multiple entries): %s', @implode(',', $cronjobs) )); foreach ($cronjobs as $task_name) { wp_schedule_single_event(time() + 10, $task_name); } } // Force deletion of the selected scheduled tasks. elseif ($cronjob_action == 'remove') { SucuriScanInterface::info($total_tasks . ' scheduled tasks were removed.'); SucuriScanEvent::report_notice_event(sprintf( 'Delete scheduled tasks: (multiple entries): %s', @implode(',', $cronjobs) )); foreach ($cronjobs as $task_name) { wp_clear_scheduled_hook($task_name); } } // Re-schedule the selected scheduled tasks. elseif ($cronjob_action == 'hourly' || $cronjob_action == 'twicedaily' || $cronjob_action == 'daily' ) { SucuriScanInterface::info($total_tasks . ' tasks were re-scheduled to run ' . $cronjob_action . '.'); SucuriScanEvent::report_notice_event(sprintf( 'Re-configure scheduled tasks %s: (multiple entries): %s', $cronjob_action, @implode(',', $cronjobs) )); foreach ($cronjobs as $task_name) { wp_clear_scheduled_hook($task_name); $next_due = wp_next_scheduled($task_name); wp_schedule_event($next_due, $cronjob_action, $task_name); } } } else { SucuriScanInterface::error('No scheduled tasks were selected from the list.'); } } } } /** * Locate, parse and display the latest error logged in the main error_log file. * * @return array A list of pseudo-variables and values that will replace them in the HTML template. */ function sucuriscan_infosys_errorlogs() { $params = array( 'ErrorLog.Path' => '', 'ErrorLog.Exists' => 'No', 'ErrorLog.NoItemsVisibility' => 'hidden', 'ErrorLog.DisabledVisibility' => 'hidden', 'ErrorLog.InvalidFormatVisibility' => 'hidden', 'ErrorLog.LogsLimit' => '0', 'ErrorLog.FileSize' => '0B', 'ErrorLog.List' => '', ); $error_log_path = false; $log_filename = SucuriScan::ini_get('error_log'); $errorlogs_limit = SucuriScanOption::get_option(':errorlogs_limit'); $params['ErrorLog.LogsLimit'] = $errorlogs_limit; $counter = 0; if ($log_filename) { $error_log_path = @realpath(ABSPATH . '/' . $log_filename); } if (SucuriScanOption::is_disabled(':parse_errorlogs')) { $params['ErrorLog.DisabledVisibility'] = 'visible'; } if ($error_log_path) { $params['ErrorLog.Exists'] = 'Yes'; $params['ErrorLog.Path'] = $error_log_path; $params['ErrorLog.FileSize'] = SucuriScan::human_filesize(filesize($error_log_path)); $last_lines = SucuriScanFileInfo::tail_file($error_log_path, $errorlogs_limit); $error_logs = SucuriScanFSScanner::parse_error_logs($last_lines); $error_logs = array_reverse($error_logs); $counter = 0; foreach ($error_logs as $error_log) { $css_class = ( $counter % 2 === 0 ) ? '' : 'alternate'; $params['ErrorLog.List'] .= SucuriScanTemplate::getSnippet( 'infosys-errorlogs', array( 'ErrorLog.CssClass' => $css_class, 'ErrorLog.DateTime' => SucuriScan::datetime($error_log->timestamp), 'ErrorLog.ErrorType' => $error_log->error_type, 'ErrorLog.ErrorCode' => $error_log->error_code, 'ErrorLog.ErrorAbbr' => strtoupper(substr($error_log->error_code, 0, 1)), 'ErrorLog.ErrorMessage' => $error_log->error_message, 'ErrorLog.FilePath' => $error_log->file_path, 'ErrorLog.LineNumber' => $error_log->line_number, ) ); $counter += 1; } if ($counter <= 0) { $params['ErrorLog.InvalidFormatVisibility'] = 'visible'; } } else { $params['ErrorLog.NoItemsVisibility'] = 'visible'; } return SucuriScanTemplate::getSection('infosys-errorlogs', $params); } /** * Gather information from the server, database engine, and PHP interpreter. * * @return array A list of pseudo-variables and values that will replace them in the HTML template. */ function sucuriscan_server_info() { global $wpdb; $params = array( 'ServerInfo.Variables' => '', ); $info_vars = array( 'Plugin_version' => SUCURISCAN_VERSION, 'Plugin_checksum' => SUCURISCAN_PLUGIN_CHECKSUM, 'Last_filesystem_scan' => SucuriScanFSScanner::get_filesystem_runtime(true), 'Datetime_and_Timezone' => '', 'Operating_system' => sprintf('%s (%d Bit)', PHP_OS, PHP_INT_SIZE * 8), 'Server' => 'Unknown', 'Developer_mode' => 'OFF', 'Memory_usage' => 'N/A', 'MySQL_version' => '0.0', 'SQL_mode' => 'Not set', 'PHP_version' => PHP_VERSION, ); $info_vars['Datetime_and_Timezone'] = sprintf( '%s (GMT %s)', SucuriScan::current_datetime(), get_option('gmt_offset') ); if (defined('WP_DEBUG') && WP_DEBUG) { $info_vars['Developer_mode'] = 'ON'; } if (function_exists('memory_get_usage')) { $info_vars['Memory_usage'] = round(memory_get_usage() / 1024 / 1024, 2).' MB'; } if (isset($_SERVER['SERVER_SOFTWARE'])) { $info_vars['Server'] = $_SERVER['SERVER_SOFTWARE']; } if ($wpdb) { $info_vars['MySQL_version'] = $wpdb->get_var('SELECT VERSION() AS version'); $mysql_info = $wpdb->get_results('SHOW VARIABLES LIKE "sql_mode"'); if (is_array($mysql_info) && !empty($mysql_info[0]->Value)) { $info_vars['SQL_mode'] = $mysql_info[0]->Value; } } $field_names = array( 'safe_mode', 'expose_php', 'allow_url_fopen', 'memory_limit', 'upload_max_filesize', 'post_max_size', 'max_execution_time', 'max_input_time', ); foreach ($field_names as $php_flag) { $php_flag_value = SucuriScan::ini_get($php_flag); $php_flag_name = 'PHP_' . $php_flag; $info_vars[$php_flag_name] = $php_flag_value ? $php_flag_value : 'N/A'; } $counter = 0; foreach ($info_vars as $var_name => $var_value) { $css_class = ($counter % 2 === 0) ? '' : 'alternate'; $var_name = str_replace('_', "\x20", $var_name); $params['ServerInfo.Variables'] .= SucuriScanTemplate::getSnippet( 'infosys-serverinfo', array( 'ServerInfo.CssClass' => $css_class, 'ServerInfo.Title' => $var_name, 'ServerInfo.Value' => $var_value, ) ); $counter += 1; } return SucuriScanTemplate::getSection('infosys-serverinfo', $params); } plugins/sucuri-scanner/readme.txt0000644000312500031250000004666712654411246017624 0ustar eacbforgeacbforg=== Sucuri Security - Auditing, Malware Scanner and Security Hardening === Contributors: dd@sucuri.net Donate Link: https://sucuri.net/ Tags: malware, security, firewall, scan, spam, virus, sucuri, protection,WordPress Security, Login Security,Security Auditing,File Integrity,htaccess,phishing,backdoors,SQL Injection, RFI, LFI, XSS, CSRF, website firewall, Website Security, Performance Optimization, Zero Day, Software Vulnerability, Exploits, Hacks, Attackers, Bad Actors, Reverse Proxy, Two Factor Security, Two Factor Authentication, Security Logs, HeatBleed Vulnerability, Website Protection, Bash Vulnerability, RevSlider Vulnerability, MailPoet Vulnerability, Malware Prevention, Website Firewall, Website AntiVirus, Security Response, Security Detection, Security Prevention Requires at least:3.2 Stable tag: 1.7.17 Tested up to: 4.4.1 The Sucuri WordPress Security plugin is a security toolset for security integrity monitoring, malware detection and security hardening. == Description == Sucuri Inc is a globally recognized authority in all matters related to website security, with specialization in WordPress Security. The Sucuri Security WordPress Security plugin is free to all WordPress users. It is a security suite meant to complement your existing security posture. It offers it’s users four key security features for their website, each designed to have a positive affect on their security posture:
        1. Security Activity Auditing
        2. File Integrity Monitoring
        3. Remote Malware Scanning
        4. Blacklist Monitoring
        5. Effective Security Hardening
        6. Post-Hack Security Actions
        7. Security Notifications
        8. Website Firewall (add on)
        = Security Activity Monitoring = This is perhaps the most underutilized security function. It’s the act of monitoring all security related events within your WordPress install. The challenge is, what makes up a security event. In the eyes of Sucuri, any change that occurs within the application could be categorized as a security event, as such we try to record it. This is important because it allows you, the website owner, the ability keep a good eye on the various changes occurring within your environment. Who is logging in? What changes are being made? Here is a video of the Security Activity Monitoring feature: [youtube https://www.youtube.com/watch?v=RwEwJgL2-m8] This feature is logging all activity to the Sucuri cloud, for safe keeping. This ensures that an attacker is not able to wipe your forensic data and prevent further security analysis after a compromise. If an attacker is able to bypass your security controls, your security logs will be kept safe within the Sucuri Security Operations Center (SOC). This feature is particularly important to website / system administrators and security experts looking to understand what is going on with their website and when it’s happening. = Security File Integrity Monitoring = Security File Integrity Monitoring has been fundamental to the world of security. It’s the act of comparing a known good with the current state. If the current state differs from the known good, you know you have a problem. This is the basis of a lot of host Intrusion detection systems. It’s what we have built into the plugin. It will create a known good the minute the plugin is installed. This will be of all the directories at the root of the install, this includes plugins, themes and core files. Here is a video of the Security File Integrity Monitoring feature: [youtube https://www.youtube.com/watch?v=JGbHq7OFs3Q] = Remote Security Malware Scanning = This feature is powered by our very powerful scanning engine, found on our free security scanner - SiteCheck. It’s important to take some time to understand how this scanner works. Here is a video of the Remote Security Malware Scanning feature: [youtube https://www.youtube.com/watch?v=JGbHq7OFs3Q] There are limitations with the way this scanner works, you can find more info in that in the FAQ section. = Security Blacklist Monitoring = Another very interesting feature of the Security Malware Scanner is that it incorporates various blacklist engines. Security blacklist engines include the following:
        1. Sucuri Labs
        2. Google Safe Browsing
        3. Norton
        4. AVG
        5. Phish Tank
        6. ESET
        7. McAfee Site Advisor
        8. Yandex
        9. SpamHaus
        10. Bitdefender
        These are some of the largest blacklisting entities, each having the ability to directly impact your brands online reputation. By synchronize with their environments we’re able to tell you, upon scan, whether any of them are negatively flagging your website with a security related issue. If they do, then via our Website AntiVirus product, we’re able to help you get off the their security blacklist. = Effective Security Hardening = It’s easy to get lost in the world of security hardening. At Sucuri we clean 100’s of websites a day, many with the various security hardening configurations you find in various WordPress Security presentations. In this section, we add those that we feel to be most effective, and that complement the entire Sucuri suite of products. Here is a video of the Effective Security Hardening feature: [youtube https://www.youtube.com/watch?v=Nuksi7rMNV0] = Post-Hack Security Actions = Regardless of how good your security posture is, sometimes it’s impossible to prevent the inevitable. When this happens, we’ve included a section to help you walk through the three key things you should do after a compromise. Here is a video of the Post-Hack Security Actions feature: [youtube https://www.youtube.com/watch?v=cEPxbe9hoHw] = Security Notifications = Having all these security features would be useless unless you were notified of the issues. This is why we have made available security notifications. We have also expanded the various security related events, to provide website owners more flexibility in regards to what they want to know about. As a website owner, you have the option to make these security alerts as quiet or noisy as you would like. = Sucuri CloudProxy Website Firewall (Add On Security Service) = This is by far the coolest security feature Sucuri has to offer everyday website owners. It’s an enterprise grade Website Firewall known as CloudProxy. It is designed to give you the best security protection any website can hope for. It protects your website from a variety of website attacks and security events to include:
        1. Denial of Service (DOS / DDOS) Attacks
        2. Exploitation of Software Vulnerabilities
        3. Zero Day Disclosure Patches
        4. Brute Force Attacks against your Access Control Mechanisms
        This is coupled with a number of features like:
        1. Performance Optimization
        2. Advanced Access Control Features
        3. Failover and Redundancy
        This is not included as a free option to the plugin, but is integrated so that if purchased you are able to activate. If you prefer to leverage the Sucuri Security Website Firewall (CloudProxy) product by itself, you have the option to operate the Website Firewall WordPress Security plugin in standalone mode. Here is a video of the Sucuri Security Website Firewall (Add On Security Service) feature: [youtube https://www.youtube.com/watch?v=fN-3DLObLF0] The Sucuri Security WordPress Security plugin is built by the team that is known for their proactive approach to security. It is built using intelligence gathered from thousands upon thousands of remediation cases, millions of unique domain scans and 10’s of millions of website security attack blocks. == Installation == The installation of the Sucuri Security WordPress Security plugin is very simple and straight forward. A detailed breakdown of the process is available, including images, below however we outline the bare minimum steps. Here is a quick video walking you through the installation and configuration of the Sucuri Security WordPress Security plugin: [youtube https://www.youtube.com/watch?v=KC3UC_Y27G0] To install Sucuri Security and complement your Security posture: 1. You will want to log into your WordPress administration panel - (e.g., https://yourdomain/wp-admin) 2. Navigate to Plugins Menu option in your WordPress administration panel 3. Select Add New 4. Type Sucuri in the Search box, and click Search plugins. 5. The first option you get should be for Sucuri Security - Auditing, Malware Scanner and Hardening 6. Select Install Now 7. Now choose to Activate the plugin. 8. Once activated, you will need to create an API key, this is done automatically for you. Simply click on Generate API Key for XXXXXX 9. Once the API key is generated the page will redirect you to your dashboard and the plugin is automatically configured for you. To configure the Sucuri WordPress Security plugin for your specific Security needs: 1. Navigate to the Sucuri Security menu option (left hand side). 2. Hover or click on the name. 3. Click on Settings The Settings page allows you to configure the website to your preferred security needs. Some of it’s features include changing the email notifications, via the notification settings tab or disabling integrity checking. We encourage you to visit this section and tune your security needs as you see fit. == FAQ == More information can be found on the the Sucuri Security WordPress Security plugin via our free [Knowledge Base](https://kb.sucuri.net/plugins/WordPress+Plugin/index). = What does this plugin do that other WordPress security plugins don't do? = A few other security plugins provide activity monitoring features, but few do them well. The activity monitoring in this plugin is second to none, tying the activity into the Sucuri Security Operations Center (SOC) ensuring it's safe keeping. This security plugin also takes a different approach to security plugins, stripping it of what we categorize as unnecessary features for a basic website end-user. We've narrowed the key features we felt were most pertinent to any website owner and integrated them into this plugin. = If I install the Sucuri Security plugin do I get a Sucuri account? = No, this is a free plugin that we offer at no charge. It does not mean you get a free account. = If I have the premium plugin, do I need the Free plugin? = The free plugin will be replacing the Premium plugin in the coming weeks. Eventually, there will only be one plugin. If you have the premium plugin, and install the free version, the free version will overwrite the premium version. = Do I still need Sucuri’s products if I have this plugin? = Yes. This plugin compliments your existing security toolsets. It is not designed to replace the Sucuri AntiVirus or Firewall products. = Where do I get support for this plugin? = The best place is to engage us via the Support Forum. If you are a client, . = Does your plugin conflict with WordFence? = The plugin does not, but there might be issues with our scanners. If you get an “Unable to Properly Scan Your Site†It’s likely because the WordFence plugin is blocking our scanner as an invalid crawler. You would have to white list our IP address on the WordFence dashboard. = What are the Remote Security Malware Scanning Limitations? = Because the security malware scanner is remote, it is unable to see things that are on the server but that are not displaying on the browser. If you are interested in this, we encourage you to subscribe to our Website AntiVirus product. This issues includes things like Phishing pages, Backdoors, Mailer Scripts, etc… = Your plugin didn’t detect this malware? = This happens, reference the Remote scanner limitations above. This should not be confused with our Website AntiVirus product. If you have malware, and you are a client, submit a ticket so that we can help you get clean. If you are not a client, and you want to share what you have found please send it to labs@sucuri.net. The plugin is not performing application level malware / security scanning so this is not uncommon. = Is it free to enable the Website Firewall option? = No, it is not. To enable you must subscribe to the Website Firewall service. = Will this plugin impact the performance of my website? = No, it will not. = Do the logs get stored to my database? = No, it does not. = Are there any issues installing your plugin with any hosts? = Not that we are aware of. = Do I need to run this plugin to get the Website Firewall ad-on feature? = No, it is not required. The Website Firewall (CloudProxy) runs in the cloud without the need of anything installed. This plugin only helps see and manage the service from the WordPress dashboard. == Changelog == = 1.7.17 = * Added API service failback mechanism * Added core integrity email on force scan * Slight interface redesign * Various bugfixes and improvements = 1.7.16 = * Fixing a low severity XSS (needs admin access to create it) = 1.7.14 = * Added alternative method to send email alerts * Added button to reset options with explanation * Added suggestion for new users to check plugin settings * Allow mark as fixed non-writable core files * Fixed display menus items single or network panels * Fixed handle boolean values in PHP config retrieval * Fixed non-standard content location in core integrity * Fixed user identifier as integer on password reset * Modified css and js files to reduce size * Modified do not load resources on hidden sidebar * Modified fully redesign of general settings page * Modified hide update warning if versions are the same * Modified wording of post-types alert settings * Removed ellipsis of long IPv6 addresses in last logins * Removed unnecessary dns lookups in infosys page * Removed unnecessary monospace fonts in settings status * Removed unnecessary ssl verification option processor = 1.7.13 = * Fixed issue affecting site performance * Fixed clear hardening of previous versions * Modified report and block non-processable ajax actions * Added configure DNS lookups for reverse proxy detection * Added option to configure comment monitor and logs * Added option to configure the XHR monitor and logs = 1.7.12 = * Improved hardening options * Added more logging events * Various bugfixes and improvements = 1.7.11 = * Reverted change for CloudProxy detection to protect legacy users = 1.7.10 = * Added better checks for SSL issues * Fix for audit log timezones * Various bugfixes and improvements = 1.7.9 = * Improved reinstallation process * Updated sidebar banners * Various bugfixes and improvements = 1.7.8 = * Fixed bug on the secret keys hardening. = 1.7.7 = * Added better support for directory separators * Added option to remove API key from plugin * Various bugfixes and improvements = 1.7.6 = * Added audit log reporting. * Added more settings for better control. * Added support for more actions. * Improved multisite support. * Added support for reverse proxies. * Various bugfixes and improvements. = 1.7.5 = * Added better handling of API responses of remote scanner. = 1.7.4 = * Added option for keeping failed logins until the user removes them. * Bugfixes for user reported issues. = 1.7.3 = * Error log panel. * Various bug fixes. = 1.7.2 = * Messaging and FAQ updates. = 1.7.1 = * Fixed remote scanning that was not loading automatically on some installs. = 1.7.0 = * Added Hardening option to remove error log files * Bug fixes on some new registrations. * Changed format of the internal logs to json. = 1.6.9 = * Multiple bug fixes (as reported on the support forums). * Added heartbeat for the file scans. * Code cleanup. = 1.6.8 = * Fixing interface. = 1.6.7 = * Added Support for integrity checks on i18n installations. * Fixed the setting change bug. = 1.6.6 = * Internal code cleanup and re-organization. * More white lists for the integrity checks. * Additional settings to customize some of the warnings. = 1.6.5 = * Fixed integrity checking display. = 1.6.4 = * Fixed API generation bug. = 1.6.3 = * Added proper brute force alerts. * Added option to restrict number of emails. * Added more description to the emails. * Added a list of failed login attempts inside the last login tab. = 1.6.2 = * Setting a maximum number of emails per hour. * Fixing typos. = 1.6.1 = * Initial release with new auditing options. = 1.6.0 = * A new dashboard to welcome users to the new features of the plugin. * Overall design of the interface of all the pages were modified. * SiteCheck scanner results were filled with more information. * SiteCheck scanner results markers when the site is infected/clean. * System Info page were simplified with tabulation containers. * Integrity check for administrator accounts was optimized. * Integrity check for outdated plugins/themes was optimized and merged. * IPv6 support in last logins statistics. = 1.5.7 = * WordPress 3.9 compatibility = 1.5.6 = * Added IPv6 support. * Fixed links and messaging. = 1.5.5 = * Added list of logged in users. * Added system page. * Change the integrity checking to use WP API. = 1.5.4 = Bug fixes. = 1.5.2 = * Adding additional information about .htaccess hacks and the server * environment. = 1.5.0 = * Fixing last login and giving better warns on permission errors. * Making the integrity check messages more clear. = 1.4.8 = * New and clean design for the scan results. * Adding a web firewall check on our hardening page. = 1.4.7 = * Cleaning up the code a bit. * Only displaying last login messages to admin users. * Storing the logs into a log file instead of the db. = 1.4.6 = * Increasing last login table to the last 100 entries. = 1.4.5 = * Fixing some issues on the last login and allowing the option to disable it. = 1.4.4 = * Small bug fixes + forcing a re-scan on every scan attempt (not using the * cache anymore). = 1.4.3 = * Fixing a few PHP warnings. = 1.4.2 = * Fixing a few PHP warnings. = 1.4.1 = * Small bug fixes. * Adding last IP to the last login page. = 1.4 = * Added post-hack options (reset all passwords). * Added last-login. * Added more hardening and the option to revert any hardening done. = 1.3 = * Removed some PHP warnings and code clean up. * Added WordPress integrity checks. * Added plugin/theme/user checks. = 1.2.2 = * Tested on WP 3.5.1 = 1.2.1 = * Tested on WP 3.5-RC4 * Style changes = 1.2 = * Cleared PHP warnings * Added /inc directory * Added /lib directory * Logo added * Default stylesheet added * Header area added * Sidebar area added * Restyled 1-click hardening page * Removed old malware page = 1.1.7 = * Tested on WP 3.5-RC3. = 1.1.6 = * Upgrading for WP 3.3. = 1.1.5 = * Removed PHP warnings / code cleaning. = 1.1.3 = * Cleaning up the results. * Added 1-click hardening. = 1.1.2 = * First release that is good to be used (debugging code removed). = 1.1.1 = * First public release. == Credits == * Sucuri Security plugins/sucuri-scanner/LICENSE0000755000312500031250000004310312651056013016606 0ustar eacbforgeacbforg GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. plugins/sucuri-scanner/uninstall.php0000644000312500031250000000625312651056013020325 0ustar eacbforgeacbforg * @author Daniel Cid * @copyright Since 2010-2015 Sucuri Inc. * @license Released under the GPL - see LICENSE file for details. * @link https://wordpress.sucuri.net/ * @since File available since Release 0.1 */ if (!defined('WP_UNINSTALL_PLUGIN') || WP_UNINSTALL_PLUGIN != 'sucuri-scanner/sucuri.php' ) { exit(0); } $sucuriscan_option_names = array( 'account', 'addr_header', 'ads_visibility', 'api_key', 'api_service', 'audit_report', 'cloudproxy_apikey', 'collect_wrong_passwords', 'comment_monitor', 'datastore_path', 'dismiss_setup', 'dns_lookups', 'email_subject', 'emails_per_hour', 'emails_sent', 'errorlogs_limit', 'fs_scanner', 'heartbeat', 'heartbeat_autostart', 'heartbeat_interval', 'heartbeat_pulse', 'ignore_scanning', 'ignored_events', 'last_email_at', 'lastlogin_redirection', 'logs4report', 'maximum_failed_logins', 'notify_bruteforce_attack', 'notify_failed_login', 'notify_plugin_activated', 'notify_plugin_change', 'notify_plugin_deactivated', 'notify_plugin_deleted', 'notify_plugin_installed', 'notify_plugin_updated', 'notify_post_publication', 'notify_scan_checksums', 'notify_settings_updated', 'notify_success_login', 'notify_theme_activated', 'notify_theme_deleted', 'notify_theme_editor', 'notify_theme_installed', 'notify_theme_updated', 'notify_to', 'notify_user_registration', 'notify_website_updated', 'notify_widget_added', 'notify_widget_deleted', 'parse_errorlogs', 'prettify_mails', 'request_timeout', 'revproxy', 'runtime', 'scan_checksums', 'scan_errorlogs', 'scan_frequency', 'scan_interface', 'scan_modfiles', 'selfhosting_fpath', 'selfhosting_monitor', 'site_version', 'sitecheck_counter', 'sitecheck_scanner', 'use_wpmail', 'verify_ssl_cert', 'xhr_monitor', ); $sucuriscan_storage_path = get_option('sucuriscan_datastore_path'); if ($sucuriscan_storage_path !== false && file_exists($sucuriscan_storage_path) && is_writable($sucuriscan_storage_path) && is_dir($sucuriscan_storage_path) ) { @unlink($sucuriscan_storage_path . '/.htaccess'); @unlink($sucuriscan_storage_path . '/index.html'); @unlink($sucuriscan_storage_path . '/sucuri-failedlogins.php'); @unlink($sucuriscan_storage_path . '/sucuri-ignorescanning.php'); @unlink($sucuriscan_storage_path . '/sucuri-integrity.php'); @unlink($sucuriscan_storage_path . '/sucuri-lastlogins.php'); @unlink($sucuriscan_storage_path . '/sucuri-oldfailedlogins.php'); @unlink($sucuriscan_storage_path . '/sucuri-plugindata.php'); @unlink($sucuriscan_storage_path . '/sucuri-sitecheck.php'); @unlink($sucuriscan_storage_path . '/sucuri-trustip.php'); @rmdir($sucuriscan_storage_path); } foreach ($sucuriscan_option_names as $option_name) { delete_option('sucuriscan_' . $option_name); delete_site_option('sucuriscan_' . $option_name); } // EOF plugins/index.php0000644000312500031250000000003412344111722014447 0ustar eacbforgeacbforgstatus, array( 'active', 'active-dunning', 'no-sub', 'missing', 'cancelled', 'suspended' ) ) ) : if ( $akismet_user->status == 'missing' ) :?>

        user_email ); ?>
        status == 'cancelled' ) :?>

        user_email ); ?>
        status == 'suspended' ) : ?>

        user_email ); ?>

        user_email ); ?>

        __( 'Register a different email address' , 'akismet'), 'classes' => array( 'right', 'button', 'button-secondary' ) ) ); ?>

        __( 'Get your API key' , 'akismet'), 'classes' => array( 'right', 'button', 'button-primary' ) ) ); ?>

        plugins/akismet/views/get.php0000644000312500031250000000077112323014337016722 0ustar eacbforgeacbforg
        plugins/akismet/views/stats.php0000644000312500031250000000104712323014337017276 0ustar eacbforgeacbforg

        plugins/akismet/views/notice.php0000644000312500031250000002327112374246045017435 0ustar eacbforgeacbforg
        A
        Almost done - activate your account and say goodbye to comment spam', 'akismet');?>

        upgrade WordPress to a current version, or downgrade to version 2.4 of the Akismet plugin.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/');?>

        https://akismet.com/errors/' . $code . '' ); ?>

        gethostbynamel functions. Akismet cannot work correctly until this is fixed. Please contact your web host or firewall administrator and give them this information about Akismet’s system requirements.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

        our guide about firewalls.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?>

        update your payment details.', 'akismet'), 'https://akismet.com/account/'); ?>

        Akismet account page to reactivate your subscription.', 'akismet'), 'https://akismet.com/account/'); ?>

        Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

        contributing a token amount.', 'akismet'), 'https://akismet.com/account/upgrade/'); ?>

        Akismet support for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?>

        sign into your account and choose one. Please contact our support team with any questions.', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/' ); ?>

        upgrade to an Enterprise subscription. If you have any questions, please get in touch with our support team', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/'); ?>

        upgrade to an Enterprise subscription, which covers an unlimited number of sites. Please contact our support team with any questions.', 'akismet'), 'https://akismet.com/account/upgrade/', 'https://akismet.com/contact/'); ?>

        plugins/akismet/views/config.php0000644000312500031250000002042112323305343017402 0ustar eacbforgeacbforg

        spam > 0 ) : ?>
        • spam );?>
        • spam );?>
        • accuracy; ?>% false_positives , 'akismet') ), number_format( $stat_totals['all']->missed_spam ), number_format( $stat_totals['all']->false_positives ) ); ?>

        spam folder older than 15 days is deleted automatically.' , 'akismet'), admin_url( 'edit-comments.php?comment_status=spam' ) );?>

        next_billing_date ) : ?>
        account_name; ?>
        status ) : esc_html_e( 'Cancelled', 'akismet' ); elseif ( 'suspended' == $akismet_user->status ) : esc_html_e( 'Suspended', 'akismet' ); elseif ( 'missing' == $akismet_user->status ) : esc_html_e( 'Missing', 'akismet' ); elseif ( 'no-sub' == $akismet_user->status ) : esc_html_e( 'No Subscription Found', 'akismet' ); else : esc_html_e( 'Active', 'akismet' ); endif; ?>
        next_billing_date ); ?>
        ( $akismet_user->account_type == 'free-api-key' && $akismet_user->status == 'active' ? __( 'Upgrade' , 'akismet') : __( 'Change' , 'akismet') ), 'redirect' => 'upgrade' ) ); ?>
        plugins/akismet/views/strict.php0000644000312500031250000000147612312543147017462 0ustar eacbforgeacbforg

        plugins/akismet/.htaccess0000644000312500031250000000030212307422516016065 0ustar eacbforgeacbforgOrder Deny,Allow Deny from all Allow from all #allow access to any image Allow from all plugins/akismet/class.akismet-admin.php0000644000312500031250000010407112654411246020642 0ustar eacbforgeacbforg'.__('Settings', 'akismet').''; array_unshift( $links, $settings_link ); return $links; } public static function load_menu() { if ( class_exists( 'Jetpack' ) ) $hook = add_submenu_page( 'jetpack', __( 'Akismet' , 'akismet'), __( 'Akismet' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); else $hook = add_options_page( __('Akismet', 'akismet'), __('Akismet', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); if ( version_compare( $GLOBALS['wp_version'], '3.3', '>=' ) ) { add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); } } public static function load_resources() { global $hook_suffix; if ( in_array( $hook_suffix, array( 'index.php', # dashboard 'edit-comments.php', 'comment.php', 'post.php', 'settings_page_akismet-key-config', 'jetpack_page_akismet-key-config', ) ) ) { wp_register_style( 'akismet.css', AKISMET__PLUGIN_URL . '_inc/akismet.css', array(), AKISMET_VERSION ); wp_enqueue_style( 'akismet.css'); wp_register_script( 'akismet.js', AKISMET__PLUGIN_URL . '_inc/akismet.js', array('jquery','postbox'), AKISMET_VERSION ); wp_enqueue_script( 'akismet.js' ); wp_localize_script( 'akismet.js', 'WPAkismet', array( 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ), 'strings' => array( 'Remove this URL' => __( 'Remove this URL' , 'akismet'), 'Removing...' => __( 'Removing...' , 'akismet'), 'URL removed' => __( 'URL removed' , 'akismet'), '(undo)' => __( '(undo)' , 'akismet'), 'Re-adding...' => __( 'Re-adding...' , 'akismet'), ) ) ); } } /** * Add help to the Akismet page * * @return false if not the Akismet page */ public static function admin_help() { $current_screen = get_current_screen(); // Screen Content if ( current_user_can( 'manage_options' ) ) { if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) { //setup page $current_screen->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Setup' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

        ' . '

        ' . esc_html__( 'On this page, you are able to setup the Akismet plugin.' , 'akismet') . '

        ', ) ); $current_screen->add_help_tab( array( 'id' => 'setup-signup', 'title' => __( 'New to Akismet' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Setup' , 'akismet') . '

        ' . '

        ' . esc_html__( 'You need to enter an API key to activate the Akismet service on your site.' , 'akismet') . '

        ' . '

        ' . sprintf( __( 'Signup for an account on %s to get an API Key.' , 'akismet'), 'Akismet.com' ) . '

        ', ) ); $current_screen->add_help_tab( array( 'id' => 'setup-manual', 'title' => __( 'Enter an API Key' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Setup' , 'akismet') . '

        ' . '

        ' . esc_html__( 'If you already have an API key' , 'akismet') . '

        ' . '
          ' . '
        1. ' . esc_html__( 'Copy and paste the API key into the text field.' , 'akismet') . '
        2. ' . '
        3. ' . esc_html__( 'Click the Use this Key button.' , 'akismet') . '
        4. ' . '
        ', ) ); } elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) { //stats page $current_screen->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Stats' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

        ' . '

        ' . esc_html__( 'On this page, you are able to view stats on spam filtered on your site.' , 'akismet') . '

        ', ) ); } else { //configuration page $current_screen->add_help_tab( array( 'id' => 'overview', 'title' => __( 'Overview' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Configuration' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Akismet filters out your comment and trackback spam for you, so you can focus on more important things.' , 'akismet') . '

        ' . '

        ' . esc_html__( 'On this page, you are able to enter/remove an API key, view account information and view spam stats.' , 'akismet') . '

        ', ) ); $current_screen->add_help_tab( array( 'id' => 'settings', 'title' => __( 'Settings' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Configuration' , 'akismet') . '

        ' . '

        ' . esc_html__( 'API Key' , 'akismet') . ' - ' . esc_html__( 'Enter/remove an API key.' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Comments' , 'akismet') . ' - ' . esc_html__( 'Show the number of approved comments beside each comment author in the comments list page.' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Strictness' , 'akismet') . ' - ' . esc_html__( 'Choose to either discard the worst spam automatically or to always put all spam in spam folder.' , 'akismet') . '

        ', ) ); $current_screen->add_help_tab( array( 'id' => 'account', 'title' => __( 'Account' , 'akismet'), 'content' => '

        ' . esc_html__( 'Akismet Configuration' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Subscription Type' , 'akismet') . ' - ' . esc_html__( 'The Akismet subscription plan' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Status' , 'akismet') . ' - ' . esc_html__( 'The subscription status - active, cancelled or suspended' , 'akismet') . '

        ', ) ); } } // Help Sidebar $current_screen->set_help_sidebar( '

        ' . esc_html__( 'For more information:' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Akismet FAQ' , 'akismet') . '

        ' . '

        ' . esc_html__( 'Akismet Support' , 'akismet') . '

        ' ); } public static function enter_api_key() { if ( function_exists('current_user_can') && !current_user_can('manage_options') ) die(__('Cheatin’ uh?', 'akismet')); if ( !wp_verify_nonce( $_POST['_wpnonce'], self::NONCE ) ) return false; foreach( array( 'akismet_strictness', 'akismet_show_user_comments_approved' ) as $option ) { update_option( $option, isset( $_POST[$option] ) && (int) $_POST[$option] == 1 ? '1' : '0' ); } if ( defined( 'WPCOM_API_KEY' ) ) return false; //shouldn't have option to save key if already defined $new_key = preg_replace( '/[^a-h0-9]/i', '', $_POST['key'] ); $old_key = Akismet::get_api_key(); if ( empty( $new_key ) ) { if ( !empty( $old_key ) ) { delete_option( 'wordpress_api_key' ); self::$notices[] = 'new-key-empty'; } } elseif ( $new_key != $old_key ) { self::save_key( $new_key ); } return true; } public static function save_key( $api_key ) { $key_status = Akismet::verify_key( $api_key ); if ( $key_status == 'valid' ) { $akismet_user = self::get_akismet_user( $api_key ); if ( $akismet_user ) { if ( in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ) ) update_option( 'wordpress_api_key', $api_key ); if ( $akismet_user->status == 'active' ) self::$notices['status'] = 'new-key-valid'; else self::$notices['status'] = $akismet_user->status; } else self::$notices['status'] = 'new-key-invalid'; } elseif ( in_array( $key_status, array( 'invalid', 'failed' ) ) ) self::$notices['status'] = 'new-key-'.$key_status; } public static function dashboard_stats() { if ( !function_exists('did_action') || did_action( 'rightnow_end' ) ) return; // We already displayed this info in the "Right Now" section if ( !$count = get_option('akismet_spam_count') ) return; global $submenu; echo '

        ' . esc_html( _x( 'Spam', 'comments' , 'akismet') ) . '

        '; echo '

        '.sprintf( _n( 'Akismet has protected your site from %3$s spam comment.', 'Akismet has protected your site from %3$s spam comments.', $count , 'akismet'), 'https://akismet.com/wordpress/', esc_url( add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( isset( $submenu['edit-comments.php'] ) ? 'edit-comments.php' : 'edit.php' ) ) ), number_format_i18n($count) ).'

        '; } // WP 2.5+ public static function rightnow_stats() { global $submenu, $wp_db_version; if ( 8645 < $wp_db_version ) // 2.7 $link = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) ); elseif ( isset( $submenu['edit-comments.php'] ) ) $link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit-comments.php' ) ); else $link = add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( 'edit.php' ) ); if ( $count = get_option('akismet_spam_count') ) { $intro = sprintf( _n( 'Akismet has protected your site from %2$s spam comment already. ', 'Akismet has protected your site from %2$s spam comments already. ', $count , 'akismet'), 'https://akismet.com/wordpress/', number_format_i18n( $count ) ); } else { $intro = sprintf( __('Akismet blocks spam from getting to your blog. ', 'akismet'), 'https://akismet.com/wordpress/' ); } $link = function_exists( 'esc_url' ) ? esc_url( $link ) : clean_url( $link ); if ( $queue_count = self::get_spam_count() ) { $queue_text = sprintf( _n( 'There’s %1$s comment in your spam queue right now.', 'There are %1$s comments in your spam queue right now.', $queue_count , 'akismet'), number_format_i18n( $queue_count ), $link ); } else { $queue_text = sprintf( __( "There’s nothing in your spam queue at the moment." , 'akismet'), $link ); } $text = $intro . '
        ' . $queue_text; echo "

        $text

        \n"; } public static function check_for_spam_button( $comment_status ) { if ( 'approved' == $comment_status ) return; if ( function_exists('plugins_url') ) $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); else $link = add_query_arg( array( 'page' => 'akismet-admin', 'recheckqueue' => 'true', 'noheader' => 'true' ), admin_url( 'edit-comments.php' ) ); echo '