���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!PKQ\k2schema-presenter.phpnuW+A 'Please use the "wpseo_schema_*" filters to extend the Yoast SEO schema data - see the WPSEO_Schema class.', ]; /** * Filter: 'wpseo_json_ld_output' - Allows disabling Yoast's schema output entirely. * * @param mixed $deprecated If false or an empty array is returned, disable our output. * @param string $empty */ $return = \apply_filters( 'wpseo_json_ld_output', $deprecated_data, '' ); if ( $return === [] || $return === false ) { return ''; } /** * Action: 'wpseo_json_ld' - Output Schema before the main schema from Yoast SEO is output. */ \do_action( 'wpseo_json_ld' ); $schema = $this->get(); if ( \is_array( $schema ) ) { $output = WPSEO_Utils::format_json_encode( $schema ); $output = \str_replace( "\n", \PHP_EOL . "\t", $output ); return ''; } return ''; } /** * Gets the raw value of a presentation. * * @return array The raw value. */ public function get() { return $this->presentation->schema; } } PKQ\hQyyabstract-presenter.phpnuW+Apresent(); } } PKQ\v\rel-next-presenter.phpnuW+Apresentation->robots, true ) ) { return ''; } /** * Filter: 'wpseo_adjacent_rel_url' - Allow filtering of the rel next URL put out by Yoast SEO. * * @param string $rel_next The rel next URL. * @param string $rel Link relationship, prev or next. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return (string) \trim( \apply_filters( 'wpseo_adjacent_rel_url', $this->presentation->rel_next, 'next', $this->presentation ) ); } } PKQ\õrel-prev-presenter.phpnuW+Apresentation->robots, true ) ) { return ''; } /** * Filter: 'wpseo_adjacent_rel_url' - Allow filtering of the rel prev URL put out by Yoast SEO. * * @param string $canonical The rel prev URL. * @param string $rel Link relationship, prev or next. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return (string) \trim( \apply_filters( 'wpseo_adjacent_rel_url', $this->presentation->rel_prev, 'prev', $this->presentation ) ); } } PKQ\ twitter/title-presenter.phpnuW+Areplace_vars( $this->presentation->twitter_title ), $this->presentation ) ); } } PKQ\;̓twitter/site-presenter.phpnuW+Apresentation->twitter_site, $this->presentation ); $twitter_site = $this->get_twitter_id( $twitter_site ); if ( ! \is_string( $twitter_site ) || $twitter_site === '' ) { return ''; } return '@' . $twitter_site; } /** * Checks if the given id is actually an id or a url and if url, distills the id from it. * * Solves issues with filters returning urls and theme's/other plugins also adding a user meta * twitter field which expects url rather than an id (which is what we expect). * * @param string $id Twitter ID or url. * * @return string|bool Twitter ID or false if it failed to get a valid Twitter ID. */ private function get_twitter_id( $id ) { if ( \preg_match( '`([A-Za-z0-9_]{1,25})$`', $id, $match ) ) { return $match[1]; } return false; } } PKQ\rfiitwitter/card-presenter.phpnuW+Apresentation->twitter_card, $this->presentation ) ); } } PKQ\;>uXtwitter/image-presenter.phpnuW+Apresentation->twitter_image, $this->presentation ); } } PKQ\7!twitter/description-presenter.phpnuW+Areplace_vars( $this->presentation->twitter_description ), $this->presentation ); } } PKQ\\JJtwitter/creator-presenter.phpnuW+Apresentation->twitter_creator; } } PKQ\ open-graph/locale-presenter.phpnuW+Apresentation->open_graph_locale, $this->presentation ) ); } } PKQ\qopen-graph/title-presenter.phpnuW+Areplace_vars( $this->presentation->open_graph_title ); /** * Filter: 'wpseo_opengraph_title' - Allow changing the Yoast SEO generated title. * * @param string $title The title. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $title = \trim( (string) \apply_filters( 'wpseo_opengraph_title', $title, $this->presentation ) ); return $this->helpers->string->strip_all_tags( $title ); } } PKQ\\_open-graph/image-presenter.phpnuW+A */ protected static $image_tags = [ 'width' => 'width', 'height' => 'height', 'type' => 'type', ]; /** * Returns the image for a post. * * @return string The image tag. */ public function present() { $images = $this->get(); if ( empty( $images ) ) { return ''; } $return = ''; foreach ( $images as $image_meta ) { $image_url = $image_meta['url']; if ( \is_attachment() ) { global $wp; $image_url = \home_url( $wp->request ); } $class = \is_admin_bar_showing() ? ' class="yoast-seo-meta-tag"' : ''; $return .= ''; foreach ( static::$image_tags as $key => $value ) { if ( empty( $image_meta[ $key ] ) ) { continue; } $return .= \PHP_EOL . "\t" . ''; } } return $return; } /** * Gets the raw value of a presentation. * * @return array The raw value. */ public function get() { $images = []; foreach ( $this->presentation->open_graph_images as $open_graph_image ) { $images[] = \array_intersect_key( // First filter the object. $this->filter( $open_graph_image ), // Then strip all keys that aren't in the image tags or the url. \array_flip( \array_merge( static::$image_tags, [ 'url' ] ) ) ); } return \array_filter( $images ); } /** * Run the image content through the `wpseo_opengraph_image` filter. * * @param array $image The image. * * @return array The filtered image. */ protected function filter( $image ) { /** * Filter: 'wpseo_opengraph_image' - Allow changing the Open Graph image url. * * @param string $image_url The URL of the Open Graph image. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $image_url = \apply_filters( 'wpseo_opengraph_image', $image['url'], $this->presentation ); if ( ! empty( $image_url ) && \is_string( $image_url ) ) { $image['url'] = \trim( $image_url ); } $image_type = ( $image['type'] ?? '' ); /** * Filter: 'wpseo_opengraph_image_type' - Allow changing the Open Graph image type. * * @param string $image_type The type of the Open Graph image. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $image_type = \apply_filters( 'wpseo_opengraph_image_type', $image_type, $this->presentation ); if ( ! empty( $image_type ) && \is_string( $image_type ) ) { $image['type'] = \trim( $image_type ); } else { $image['type'] = ''; } $image_width = ( $image['width'] ?? '' ); /** * Filter: 'wpseo_opengraph_image_width' - Allow changing the Open Graph image width. * * @param int $image_width The width of the Open Graph image. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $image_width = (int) \apply_filters( 'wpseo_opengraph_image_width', $image_width, $this->presentation ); if ( ! empty( $image_width ) && $image_width > 0 ) { $image['width'] = $image_width; } else { $image['width'] = ''; } $image_height = ( $image['height'] ?? '' ); /** * Filter: 'wpseo_opengraph_image_height' - Allow changing the Open Graph image height. * * @param int $image_height The height of the Open Graph image. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $image_height = (int) \apply_filters( 'wpseo_opengraph_image_height', $image_height, $this->presentation ); if ( ! empty( $image_height ) && $image_height > 0 ) { $image['height'] = $image_height; } else { $image['height'] = ''; } return $image; } } PKQ\5Hopen-graph/type-presenter.phpnuW+Apresentation->open_graph_type, $this->presentation ); } } PKQ\Rv66"open-graph/site-name-presenter.phpnuW+Apresentation->open_graph_site_name, $this->presentation ) ); } } PKQ\ƍMa::$open-graph/description-presenter.phpnuW+Areplace_vars( $this->presentation->open_graph_description ); /** * Filter: 'wpseo_opengraph_desc' - Allow changing the Yoast SEO generated Open Graph description. * * @param string $description The description. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $meta_og_description = \apply_filters( 'wpseo_opengraph_desc', $meta_og_description, $this->presentation ); $meta_og_description = $this->helpers->string->strip_all_tags( \stripslashes( $meta_og_description ) ); return \trim( $meta_og_description ); } } PKQ\ۿqqopen-graph/url-presenter.phpnuW+Apresentation->open_graph_url, $this->presentation ) ); } } PKQ\'open-graph/article-author-presenter.phpnuW+Apresentation->open_graph_article_author, $this->presentation ) ); } } PKQ\i4robots-presenter.phpnuW+Aget() ); if ( \is_string( $robots ) && $robots !== '' ) { return \sprintf( '', \esc_attr( $robots ) ); } return ''; } /** * Gets the raw value of a presentation. * * @return array The raw value. */ public function get() { return $this->presentation->robots; } } PKQ\ EE debug/marker-close-presenter.phpnuW+A', \esc_html( $this->helpers->product->get_name() ) ); } /** * Gets the raw value of a presentation. * * @return string The raw value. */ public function get() { return ''; } } PKQ\|ZZdebug/marker-open-presenter.phpnuW+Ahelpers->product->is_premium() ) { $version_info = $this->construct_version_info(); } return \sprintf( '', \esc_html( $this->helpers->product->get_name() ), $version_info ); } /** * Gets the plugin version information, including the free version if Premium is used. * * @return string The constructed version information. */ private function construct_version_info() { /** * Filter: 'wpseo_hide_version' - can be used to hide the Yoast SEO version in the debug marker (only available in Yoast SEO Premium). * * @param bool $hide_version */ if ( \apply_filters( 'wpseo_hide_version', false ) ) { return ''; } return 'v' . \WPSEO_PREMIUM_VERSION . ' (Yoast SEO v' . \WPSEO_VERSION . ')'; } /** * Gets the raw value of a presentation. * * @return string The raw value. */ public function get() { return ''; } } PKQ\Yrobots-txt-presenter.phpnuW+Arobots_txt_helper = $robots_txt_helper; } /** * Generate content to be placed in a robots.txt file. * * @return string Content to be placed in a robots.txt file. */ public function present() { $robots_txt_content = self::YOAST_OUTPUT_BEFORE_COMMENT; $robots_txt_content = $this->handle_user_agents( $robots_txt_content ); $robots_txt_content = $this->handle_site_maps( $robots_txt_content ); return $robots_txt_content . self::YOAST_OUTPUT_AFTER_COMMENT; } /** * Adds user agent directives to the robots txt output string. * * @param array $user_agents The list if available user agents. * @param string $robots_txt_content The current working robots txt string. * * @return string */ private function add_user_agent_directives( $user_agents, $robots_txt_content ) { foreach ( $user_agents as $user_agent ) { $robots_txt_content .= self::USER_AGENT_FIELD . ': ' . $user_agent->get_user_agent() . \PHP_EOL; $robots_txt_content = $this->add_directive_path( $robots_txt_content, $user_agent->get_disallow_paths(), self::DISALLOW_DIRECTIVE ); $robots_txt_content = $this->add_directive_path( $robots_txt_content, $user_agent->get_allow_paths(), self::ALLOW_DIRECTIVE ); $robots_txt_content .= \PHP_EOL; } return $robots_txt_content; } /** * Adds user agent directives path content to the robots txt output string. * * @param string $robots_txt_content The current working robots txt string. * @param array $paths The list of paths for which to add a txt entry. * @param string $directive_identifier The identifier for the directives. (Disallow of Allow). * * @return string */ private function add_directive_path( $robots_txt_content, $paths, $directive_identifier ) { if ( \count( $paths ) > 0 ) { foreach ( $paths as $path ) { $robots_txt_content .= $directive_identifier . ': ' . $path . \PHP_EOL; } } return $robots_txt_content; } /** * Handles adding user agent content to the robots txt content if there is any. * * @param string $robots_txt_content The current working robots txt string. * * @return string */ private function handle_user_agents( $robots_txt_content ) { $user_agents = $this->robots_txt_helper->get_robots_txt_user_agents(); if ( ! isset( $user_agents['*'] ) ) { $robots_txt_content .= 'User-agent: *' . \PHP_EOL; $robots_txt_content .= 'Disallow:' . \PHP_EOL . \PHP_EOL; } $robots_txt_content = $this->add_user_agent_directives( $user_agents, $robots_txt_content ); return $robots_txt_content; } /** * Handles adding sitemap content to the robots txt content. * * @param string $robots_txt_content The current working robots txt string. * * @return string */ private function handle_site_maps( $robots_txt_content ) { $registered_sitemaps = $this->robots_txt_helper->get_sitemap_rules(); foreach ( $registered_sitemaps as $sitemap ) { $robots_txt_content .= self::SITEMAP_FIELD . ': ' . $sitemap . \PHP_EOL; } return $robots_txt_content; } } PKQ\#!ܰscore-icon-presenter.phpnuW+Atitle = $title; $this->css_class = $css_class; } /** * Presents the score icon. * * @return string The score icon. */ public function present() { return \sprintf( '', \esc_attr( $this->title ), \esc_html( $this->title ), \esc_attr( $this->css_class ) ); } } PKQ\ L--breadcrumbs-presenter.phpnuW+Aget(); if ( ! \is_array( $breadcrumbs ) || empty( $breadcrumbs ) ) { return ''; } $links = []; $total = \count( $breadcrumbs ); foreach ( $breadcrumbs as $index => $breadcrumb ) { $links[ $index ] = $this->crumb_to_link( $breadcrumb, $index, $total ); } // Removes any effectively empty links. $links = \array_map( 'trim', $links ); $links = \array_filter( $links ); $output = \implode( $this->get_separator(), $links ); if ( empty( $output ) ) { return ''; } $output = '<' . $this->get_wrapper() . $this->get_id() . $this->get_class() . '>' . $output . 'get_wrapper() . '>'; $output = $this->filter( $output ); $prefix = $this->helpers->options->get( 'breadcrumbs-prefix' ); if ( $prefix !== '' ) { $output = "\t" . $prefix . "\n" . $output; } return $output; } /** * Gets the raw value of a presentation. * * @return array The raw value. */ public function get() { return $this->presentation->breadcrumbs; } /** * Filters the output. * * @param string $output The HTML output. * * @return string The filtered output. */ protected function filter( $output ) { /** * Filter: 'wpseo_breadcrumb_output' - Allow changing the HTML output of the Yoast SEO breadcrumbs class. * * @param string $output The HTML output. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return \apply_filters( 'wpseo_breadcrumb_output', $output, $this->presentation ); } /** * Create a breadcrumb element string. * * @param array $breadcrumb Link info array containing the keys: * 'text' => (string) link text. * 'url' => (string) link url. * (optional) 'title' => (string) link title attribute text. * @param int $index Index for the current breadcrumb. * @param int $total The total number of breadcrumbs. * * @return string The breadcrumb link. */ protected function crumb_to_link( $breadcrumb, $index, $total ) { $link = ''; if ( ! isset( $breadcrumb['text'] ) || ! \is_string( $breadcrumb['text'] ) || empty( $breadcrumb['text'] ) ) { return $link; } $text = \trim( $breadcrumb['text'] ); if ( $index < ( $total - 1 ) && isset( $breadcrumb['url'] ) && \is_string( $breadcrumb['url'] ) && ! empty( $breadcrumb['url'] ) ) { // If it's not the last element and we have a url. $link .= '<' . $this->get_element() . '>'; $title_attr = isset( $breadcrumb['title'] ) ? ' title="' . \esc_attr( $breadcrumb['title'] ) . '"' : ''; $link .= 'should_link_target_blank() ) { $link .= ' target="_blank"'; } $link .= ' href="' . \esc_url( $breadcrumb['url'] ) . '"' . $title_attr . '>' . $text . ''; $link .= 'get_element() . '>'; } elseif ( $index === ( $total - 1 ) ) { // If it's the last element. if ( $this->helpers->options->get( 'breadcrumbs-boldlast' ) === true ) { $text = '' . $text . ''; } $link .= '<' . $this->get_element() . ' class="breadcrumb_last" aria-current="page">' . $text . 'get_element() . '>'; } else { // It's not the last element and has no url. $link .= '<' . $this->get_element() . '>' . $text . 'get_element() . '>'; } /** * Filter: 'wpseo_breadcrumb_single_link' - Allow changing of each link being put out by the Yoast SEO breadcrumbs class. * * @param string $link_output The output string. * @param array $link The breadcrumb link array. */ return \apply_filters( 'wpseo_breadcrumb_single_link', $link, $breadcrumb ); } /** * Retrieves HTML ID attribute. * * @return string The id attribute. */ protected function get_id() { if ( ! $this->id ) { /** * Filter: 'wpseo_breadcrumb_output_id' - Allow changing the HTML ID on the Yoast SEO breadcrumbs wrapper element. * * @param string $unsigned ID to add to the wrapper element. */ $this->id = \apply_filters( 'wpseo_breadcrumb_output_id', '' ); if ( ! \is_string( $this->id ) ) { return ''; } if ( $this->id !== '' ) { $this->id = ' id="' . \esc_attr( $this->id ) . '"'; } } return $this->id; } /** * Retrieves HTML Class attribute. * * @return string The class attribute. */ protected function get_class() { if ( ! $this->class ) { /** * Filter: 'wpseo_breadcrumb_output_class' - Allow changing the HTML class on the Yoast SEO breadcrumbs wrapper element. * * @param string $unsigned Class to add to the wrapper element. */ $this->class = \apply_filters( 'wpseo_breadcrumb_output_class', '' ); if ( ! \is_string( $this->class ) ) { return ''; } if ( $this->class !== '' ) { $this->class = ' class="' . \esc_attr( $this->class ) . '"'; } } return $this->class; } /** * Retrieves the wrapper element name. * * @return string The wrapper element name. */ protected function get_wrapper() { if ( ! $this->wrapper ) { $this->wrapper = \apply_filters( 'wpseo_breadcrumb_output_wrapper', 'span' ); $this->wrapper = \tag_escape( $this->wrapper ); if ( ! \is_string( $this->wrapper ) || $this->wrapper === '' ) { $this->wrapper = 'span'; } } return $this->wrapper; } /** * Retrieves the separator. * * @return string The separator. */ protected function get_separator() { if ( ! $this->separator ) { $this->separator = \apply_filters( 'wpseo_breadcrumb_separator', $this->helpers->options->get( 'breadcrumbs-sep' ) ); $this->separator = ' ' . $this->separator . ' '; } return $this->separator; } /** * Retrieves the crumb element name. * * @return string The element to use. */ protected function get_element() { if ( ! $this->element ) { $this->element = \esc_attr( \apply_filters( 'wpseo_breadcrumb_single_link_wrapper', 'span' ) ); } return $this->element; } /** * This is needed because when the editor is loaded in an Iframe the link needs to open in a different browser window. * We don't want this behaviour in the front-end and the way to check this is to check if the block is rendered in a REST request with the `context` set as 'edit'. Thus being in the editor. * * @return bool returns if the breadcrumb should be opened in another window. */ private function should_link_target_blank(): bool { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- Reason: We are not processing form information. if ( isset( $_GET['context'] ) && \is_string( $_GET['context'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended,WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Reason: We are not processing form information, We are only strictly comparing. if ( \wp_unslash( $_GET['context'] ) === 'edit' ) { return true; } } return false; } } PKQ\ARaameta-author-presenter.phpnuW+Apresentation->model->object_sub_type !== 'post' ) { return ''; } $user_data = \get_userdata( $this->presentation->context->post->post_author ); if ( ! $user_data instanceof WP_User ) { return ''; } /** * Filter: 'wpseo_meta_author' - Allow developers to filter the article's author meta tag. * * @param string $author_name The article author's display name. Return empty to disable the tag. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return \trim( $this->helpers->schema->html->smart_strip_tags( \apply_filters( 'wpseo_meta_author', $user_data->display_name, $this->presentation ) ) ); } } PKQ\$abstract-indexable-tag-presenter.phpnuW+A'; public const META_NAME_CONTENT = ''; public const LINK_REL_HREF = ''; public const DEFAULT_TAG_FORMAT = self::META_NAME_CONTENT; /** * The tag format including placeholders. * * @var string */ protected $tag_format = self::DEFAULT_TAG_FORMAT; /** * The method of escaping to use. * * @var string */ protected $escaping = 'attribute'; /** * Returns a tag in the head. * * @return string The tag. */ public function present() { $value = $this->get(); if ( ! \is_string( $value ) || $value === '' ) { return ''; } /** * There may be some classes that are derived from this class that do not use the $key property * in their $tag_format string. In that case the key property will simply not be used. */ return \sprintf( $this->tag_format, $this->escape_value( $value ), $this->key, \is_admin_bar_showing() ? ' class="yoast-seo-meta-tag"' : '' ); } /** * Escaped the output. * * @param string $value The desired method of escaping; 'html', 'url' or 'attribute'. * * @return string The escaped value. */ protected function escape_value( $value ) { switch ( $this->escaping ) { case 'html': return \esc_html( $value ); case 'url': return \esc_url( $value, null, 'attribute' ); case 'attribute': default: return \esc_attr( $value ); } } } PKQ\ ZZwebmaster/baidu-presenter.phpnuW+Ahelpers->options->get( 'baiduverify', '' ); } } PKQ\NXX!webmaster/pinterest-presenter.phpnuW+Ahelpers->options->get( 'pinterestverify', '' ); } } PKQ\@/SSwebmaster/yandex-presenter.phpnuW+Ahelpers->options->get( 'yandexverify', '' ); } } PKQ\o& EEwebmaster/bing-presenter.phpnuW+Ahelpers->options->get( 'msverify', '' ); } } PKQ\rFCN]]webmaster/google-presenter.phpnuW+Ahelpers->options->get( 'googleverify', '' ); } } PKQ\Y??admin/sidebar-presenter.phpnuW+A post = $post; $this->meta_fields = WPSEO_Meta::get_meta_field_defs( $field_group, $post_type ); } /** * Presents the Meta Fields. * * @return string The styled Alert. */ public function present() { $output = ''; foreach ( $this->meta_fields as $key => $meta_field ) { $form_key = \esc_attr( WPSEO_Meta::$form_prefix . $key ); $meta_value = WPSEO_Meta::get_value( $key, $this->post->ID ); $default = ''; if ( isset( $meta_field['default'] ) ) { $default = \sprintf( ' data-default="%s"', \esc_attr( $meta_field['default'] ) ); } $output .= '' . "\n"; } return $output; } } PKQ\( ( admin/notice-presenter.phpnuW+Atitle = $title; $this->content = $content; $this->image_filename = $image_filename; $this->button = $button; $this->is_dismissible = $is_dismissible; $this->id = $id; if ( ! $this->asset_manager ) { $this->asset_manager = new WPSEO_Admin_Asset_Manager(); } $this->asset_manager->enqueue_style( 'notifications' ); } /** * Presents the Notice. * * @return string The styled Notice. */ public function present() { $dismissible = ( $this->is_dismissible ) ? ' is-dismissible' : ''; $id = ( $this->id ) ? ' id="' . $this->id . '"' : ''; // WordPress admin notice. $out = ''; $out .= '
'; // Header. $out .= '
'; $out .= '
'; $out .= ''; $out .= \sprintf( '

%s

', \esc_html( $this->title ) ); $out .= '
'; $out .= '
'; $out .= '

' . $this->content . '

'; if ( $this->button !== null ) { $out .= '

' . $this->button . '

'; } $out .= '
'; $out .= '
'; if ( $this->image_filename !== null ) { $out .= ''; } $out .= '
'; $out .= ''; return $out; } } PKQ\>33"admin/indexing-error-presenter.phpnuW+Ashort_link_helper = $short_link_helper; $this->product_helper = $product_helper; $this->addon_manager = $addon_manager; } /** * Generates the first paragraph of the error message to show when indexing failed. * * The contents of the paragraph varies based on whether WordPress SEO Premium has a valid, activated subscription or not. * * @param bool $is_premium Whether WordPress SEO Premium is currently active. * @param bool $has_valid_premium_subscription Whether WordPress SEO Premium currently has a valid subscription. * * @return string */ protected function generate_first_paragraph( $is_premium, $has_valid_premium_subscription ) { $message = \__( 'Oops, something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please click the button again to re-start the process. ', 'wordpress-seo' ); if ( $is_premium ) { if ( $has_valid_premium_subscription ) { $message .= \__( 'If the problem persists, please contact support.', 'wordpress-seo' ); } else { $message = \sprintf( /* translators: %1$s expands to an opening anchor tag for a link leading to the Premium installation page, %2$s expands to a closing anchor tag. */ \__( 'Oops, something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please make sure to activate your subscription in MyYoast by completing %1$sthese steps%2$s.', 'wordpress-seo' ), '', '' ); } } return $message; } /** * Generates the second paragraph of the error message to show when indexing failed. * * The error message varies based on whether WordPress SEO Premium has a valid, activated subscription or not. * * @param bool $is_premium Whether WordPress SEO Premium is currently active. * @param bool $has_valid_premium_subscription Whether WordPress SEO Premium currently has a valid subscription. * * @return string The second paragraph of the error message. */ protected function generate_second_paragraph( $is_premium, $has_valid_premium_subscription ) { return \sprintf( /* translators: %1$s expands to an opening anchor tag for a link leading to the Premium installation page, %2$s expands to a closing anchor tag. */ \__( 'Below are the technical details for the error. See %1$sthis page%2$s for a more detailed explanation.', 'wordpress-seo' ), '', '' ); } /** * Presents the error message to show if SEO optimization failed. * * The error message varies based on whether WordPress SEO Premium has a valid, activated subscription or not. * * @return string The error message to show. */ public function present() { $is_premium = $this->product_helper->is_premium(); $has_valid_premium_subscription = $this->addon_manager->has_valid_subscription( WPSEO_Addon_Manager::PREMIUM_SLUG ); $output = '

' . $this->generate_first_paragraph( $is_premium, $has_valid_premium_subscription ) . '

'; $output .= '

' . $this->generate_second_paragraph( $is_premium, $has_valid_premium_subscription ) . '

'; return $output; } } PKQ\ admin/badge-presenter.phpnuW+Aid = $id; $this->link = $link; $this->group = $group; if ( ! $badge_group_names instanceof Badge_Group_Names ) { $badge_group_names = new Badge_Group_Names(); } $this->badge_group_names = $badge_group_names; } /** * Presents the New Badge. If a link has been passed, the badge is presented with the link. * Otherwise a static badge is presented. * * @return string The styled New Badge. */ public function present() { if ( ! $this->is_group_still_new() ) { return ''; } if ( $this->link !== '' ) { return \sprintf( '%3$s', \esc_attr( $this->id ), \esc_url( $this->link ), \esc_html__( 'New', 'wordpress-seo' ) ); } return \sprintf( '%2$s', \esc_attr( $this->id ), \esc_html__( 'New', 'wordpress-seo' ) ); } /** * Check whether the new badge should be shown according to the group it is in. * * @return bool True if still new. */ public function is_group_still_new() { // If there's no group configured, the new badge is always active. if ( ! $this->group ) { return true; } return $this->badge_group_names->is_still_eligible_for_new_badge( $this->group ); } } PKQ\8 0admin/indexing-failed-notification-presenter.phpnuW+Aclass_addon_manager = $class_addon_manager; $this->short_link_helper = $short_link_helper; $this->product_helper = $product_helper; } /** * Returns the notification as an HTML string. * * @return string The notification in an HTML string representation. */ public function present() { $notification_text = \sprintf( /* Translators: %1$s expands to an opening anchor tag for a link leading to the Yoast SEO tools page, %2$s expands to a closing anchor tag. */ \esc_html__( 'Something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please %1$sre-start the process%2$s.', 'wordpress-seo' ), '', '' ); if ( $this->product_helper->is_premium() ) { if ( $this->has_valid_premium_subscription() ) { // Add a support message for premium customers. $notification_text .= ' '; $notification_text .= \esc_html__( 'If the problem persists, please contact support.', 'wordpress-seo' ); } else { // Premium plugin with inactive addon; overwrite the entire error message. $notification_text = \sprintf( /* Translators: %1$s expands to an opening anchor tag for a link leading to the Premium installation page, %2$s expands to a closing anchor tag. */ \esc_html__( 'Oops, something has gone wrong and we couldn\'t complete the optimization of your SEO data. Please make sure to activate your subscription in MyYoast by completing %1$sthese steps%2$s.', 'wordpress-seo' ), '', '' ); } } return '

' . $notification_text . '

'; } /** * Determines if the site has a valid Premium subscription. * * @return bool */ protected function has_valid_premium_subscription() { return $this->class_addon_manager->has_valid_subscription( WPSEO_Addon_Manager::PREMIUM_SLUG ); } } PKQ\^=q+admin/woocommerce-beta-editor-presenter.phpnuW+Ashort_link_helper = $short_link_helper; } /** * Returns the notification as an HTML string. * * @return string The notification in an HTML string representation. */ public function present() { $notification_text = '

'; $notification_text .= $this->get_message(); $notification_text .= '

'; return $notification_text; } /** * Returns the message to show. * * @return string The message. */ protected function get_message() { return \sprintf( '%1$s %2$s', \esc_html__( 'Compatibility issue: Yoast SEO is incompatible with the beta WooCommerce product editor.', 'wordpress-seo' ), \sprintf( /* translators: 1: Yoast SEO, 2: Link start tag to the Learn more link, 3: Link closing tag. */ \esc_html__( 'The %1$s interface is currently unavailable in the beta WooCommerce product editor. To resolve any issues, please disable the beta editor. %2$sLearn how to disable the beta WooCommerce product editor.%3$s', 'wordpress-seo' ), 'Yoast SEO', '', '' ) ); } } PKQ\9*aa)admin/indexing-notification-presenter.phpnuW+Ashort_link_helper = $short_link_helper; $this->total_unindexed = $total_unindexed; $this->reason = $reason; } /** * Returns the notification as an HTML string. * * @return string The HTML string representation of the notification. */ public function present() { $notification_text = '

' . $this->get_message( $this->reason ); $notification_text .= $this->get_time_estimate( $this->total_unindexed ) . '

'; $notification_text .= ''; $notification_text .= \esc_html__( 'Start SEO data optimization', 'wordpress-seo' ); $notification_text .= ''; return $notification_text; } /** * Determines the message to show in the indexing notification. * * @param string $reason The reason identifier. * * @return string The message to show in the notification. */ protected function get_message( $reason ) { switch ( $reason ) { case Indexing_Reasons::REASON_PERMALINK_SETTINGS: $text = \esc_html__( 'Because of a change in your permalink structure, some of your SEO data needs to be reprocessed.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_HOME_URL_OPTION: $text = \esc_html__( 'Because of a change in your home URL setting, some of your SEO data needs to be reprocessed.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_CATEGORY_BASE_PREFIX: $text = \esc_html__( 'Because of a change in your category base setting, some of your SEO data needs to be reprocessed.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_TAG_BASE_PREFIX: $text = \esc_html__( 'Because of a change in your tag base setting, some of your SEO data needs to be reprocessed.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_POST_TYPE_MADE_PUBLIC: $text = \esc_html__( 'We need to re-analyze some of your SEO data because of a change in the visibility of your post types. Please help us do that by running the SEO data optimization.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_TAXONOMY_MADE_PUBLIC: $text = \esc_html__( 'We need to re-analyze some of your SEO data because of a change in the visibility of your taxonomies. Please help us do that by running the SEO data optimization.', 'wordpress-seo' ); break; case Indexing_Reasons::REASON_ATTACHMENTS_MADE_ENABLED: $text = \esc_html__( 'It looks like you\'ve enabled media pages. We recommend that you help us to re-analyze your site by running the SEO data optimization.', 'wordpress-seo' ); break; default: $text = \esc_html__( 'You can speed up your site and get insight into your internal linking structure by letting us perform a few optimizations to the way SEO data is stored.', 'wordpress-seo' ); } /** * Filter: 'wpseo_indexables_indexation_alert' - Allow developers to filter the reason of the indexation * * @param string $text The text to show as reason. * @param string $reason The reason value. */ return (string) \apply_filters( 'wpseo_indexables_indexation_alert', $text, $reason ); } /** * Creates a time estimate based on the total number on unindexed objects. * * @param int $total_unindexed The total number of unindexed objects. * * @return string The time estimate as a HTML string. */ protected function get_time_estimate( $total_unindexed ) { if ( $total_unindexed < 400 ) { return \esc_html__( ' We estimate this will take less than a minute.', 'wordpress-seo' ); } if ( $total_unindexed < 2500 ) { return \esc_html__( ' We estimate this will take a couple of minutes.', 'wordpress-seo' ); } $estimate = \esc_html__( ' We estimate this could take a long time, due to the size of your site. As an alternative to waiting, you could:', 'wordpress-seo' ); $estimate .= '
    '; $estimate .= '
  • '; $estimate .= \sprintf( /* translators: 1: Expands to Yoast SEO */ \esc_html__( 'Wait for a week or so, until %1$s automatically processes most of your content in the background.', 'wordpress-seo' ), 'Yoast SEO' ); $estimate .= '
  • '; $estimate .= '
  • '; $estimate .= \sprintf( /* translators: 1: Link to article about indexation command, 2: Anchor closing tag, 3: Link to WP CLI. */ \esc_html__( '%1$sRun the indexation process on your server%2$s using %3$sWP CLI%2$s.', 'wordpress-seo' ), '', '', '' ); $estimate .= '
  • '; $estimate .= '
'; return $estimate; } } PKQ\ var = $variable; $this->label = $label; $this->buttons = $buttons; $this->name = $name; $this->value = $value; $this->reverse = $reverse; $this->help = $help; $this->strong = $strong; $this->disabled_attribute = $disabled_attribute; } /** * Presents the light switch toggle. * * @return string The light switch's HTML. */ public function present() { if ( empty( $this->buttons ) ) { $this->buttons = [ \__( 'Disabled', 'wordpress-seo' ), \__( 'Enabled', 'wordpress-seo' ) ]; } list( $off_button, $on_button ) = $this->buttons; $class = 'switch-light switch-candy switch-yoast-seo'; if ( $this->reverse ) { $class .= ' switch-yoast-seo-reverse'; } $help_class = ! empty( $this->help ) ? ' switch-container__has-help' : ''; $strong_class = ( $this->strong ) ? ' switch-light-visual-label__strong' : ''; $output = ''; return $output; } } PKQ\D${  &admin/indexing-list-item-presenter.phpnuW+Ashort_link_helper = $short_link_helper; } /** * Presents the list item for the tools menu. * * @return string The list item HTML. */ public function present() { $output = \sprintf( '
  • %s
    ', \esc_html__( 'Optimize SEO Data', 'wordpress-seo' ) ); $output .= \sprintf( '%1$s %3$s', \esc_html__( 'You can speed up your site and get insight into your internal linking structure by letting us perform a few optimizations to the way SEO data is stored. If you have a lot of content it might take a while, but trust us, it\'s worth it.', 'wordpress-seo' ), \esc_url( $this->short_link_helper->get( 'https://yoa.st/3-z' ) ), \esc_html__( 'Learn more about the benefits of optimized SEO data.', 'wordpress-seo' ) ); $output .= '
    '; $output .= '
  • '; return $output; } } PKQ\7lj.admin/search-engines-discouraged-presenter.phpnuW+A'; $notification_text .= $this->get_message(); $notification_text .= '

    '; return $notification_text; } /** * Returns the message to show. * * @return string The message. */ protected function get_message() { return \sprintf( '%1$s %2$s ', \esc_html__( 'Huge SEO Issue: You\'re blocking access to robots.', 'wordpress-seo' ), \sprintf( /* translators: 1: Link start tag to the WordPress Reading Settings page, 2: Link closing tag. */ \esc_html__( 'If you want search engines to show this site in their results, you must %1$sgo to your Reading Settings%2$s and uncheck the box for Search Engine Visibility.', 'wordpress-seo' ), '', '' ), \esc_js( \wp_create_nonce( 'wpseo-ignore' ) ), \esc_html__( 'I don\'t want this site to show in the search results.', 'wordpress-seo' ) ); } } PKQ\#admin/migration-error-presenter.phpnuW+Amigration_error = $migration_error; } /** * Presents the migration error that occurred. * * @return string The error HTML. */ public function present() { $header = \sprintf( /* translators: %s: Yoast SEO. */ \esc_html__( '%s is unable to create database tables', 'wordpress-seo' ), 'Yoast SEO' ); $message = \sprintf( /* translators: %s: Yoast SEO. */ \esc_html__( '%s had problems creating the database tables needed to speed up your site.', 'wordpress-seo' ), 'Yoast SEO' ); $support = \sprintf( /* translators: %1$s: link to help article about solving table issue. %2$s: is anchor closing. */ \esc_html__( 'Please read %1$sthis help article%2$s to find out how to resolve this problem.', 'wordpress-seo' ), '', '' ); $reassurance = \sprintf( /* translators: %s: Yoast SEO. */ \esc_html__( 'Your site will continue to work normally, but won\'t take full advantage of %s.', 'wordpress-seo' ), 'Yoast SEO' ); $debug_info = \sprintf( '
    %1$s

    %2$s

    ', \esc_html__( 'Show debug information', 'wordpress-seo' ), \esc_html( $this->migration_error['message'] ) ); return \sprintf( '

    %1$s

    %2$s

    %3$s

    %4$s

    %5$s
    ', $header, $message, $support, $reassurance, $debug_info ); } } PKQ\csAHH!admin/premium-badge-presenter.phpnuW+Aid = $id; $this->link = $link; } /** * Presents the Premium Badge. If a link has been passed, the badge is presented with the link. * Otherwise a static badge is presented. * * @return string The styled Premium Badge. */ public function present() { if ( $this->link !== '' ) { return \sprintf( '%3$s', \esc_attr( $this->id ), \esc_url( $this->link ), 'Premium' // We don't want this string to be translatable. ); } return \sprintf( '%2$s', \esc_attr( $this->id ), 'Premium' // We don't want this string to be translatable. ); } } PKQ\d{QQadmin/help-link-presenter.phpnuW+Alink = $link; $this->link_text = $link_text; $this->opens_in_new_browser_tab = $opens_in_new_browser_tab; if ( ! $this->asset_manager ) { $this->asset_manager = new WPSEO_Admin_Asset_Manager(); } $this->asset_manager->enqueue_style( 'admin-global' ); } /** * Presents the Help link. * * @return string The styled Help link. */ public function present() { if ( $this->link === '' || $this->link_text === '' ) { return; } $target_blank_attribute = ''; $new_tab_message = ''; if ( $this->opens_in_new_browser_tab ) { $target_blank_attribute = ' target="_blank"'; /* translators: Hidden accessibility text. */ $new_tab_message = ' ' . \__( '(Opens in a new browser tab)', 'wordpress-seo' ); } return \sprintf( '%3$s', \esc_url( $this->link ), $target_blank_attribute, \esc_html( $this->link_text . $new_tab_message ) ); } } PKQ\ =''admin/beta-badge-presenter.phpnuW+Aid = $id; $this->link = $link; } /** * Presents the Beta Badge. If a link has been passed, the badge is presented with the link. * Otherwise a static badge is presented. * * @return string The styled Beta Badge. */ public function present() { if ( $this->link !== '' ) { return \sprintf( '%3$s', \esc_attr( $this->id ), \esc_url( $this->link ), 'Beta' // We don't want this string to be translatable. ); } return \sprintf( '%2$s', \esc_attr( $this->id ), 'Beta' // We don't want this string to be translatable. ); } } PKQ\P+s}}canonical-presenter.phpnuW+Apresentation->robots, true ) ) { return ''; } /** * Filter: 'wpseo_canonical' - Allow filtering of the canonical URL put out by Yoast SEO. * * @param string $canonical The canonical URL. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return \urldecode( \trim( (string) \apply_filters( 'wpseo_canonical', $this->presentation->canonical, $this->presentation ) ) ); } } PKQ\R!slack/enhanced-data-presenter.phpnuW+Aget(); $twitter_tags = ''; $i = 1; $class = \is_admin_bar_showing() ? ' class="yoast-seo-meta-tag"' : ''; foreach ( $enhanced_data as $label => $value ) { $twitter_tags .= \sprintf( "\t" . '' . "\n", $i, \esc_attr( $label ) ); $twitter_tags .= \sprintf( "\t" . '' . "\n", $i, \esc_attr( $value ) ); ++$i; } return \trim( $twitter_tags ); } /** * Gets the enhanced data array. * * @return array The enhanced data array */ public function get() { $data = []; $author_id = $this->presentation->source->post_author; $estimated_reading_time = $this->presentation->estimated_reading_time_minutes; if ( $this->presentation->model->object_sub_type === 'post' && $author_id ) { $data[ \__( 'Written by', 'wordpress-seo' ) ] = \get_the_author_meta( 'display_name', $author_id ); } if ( ! empty( $estimated_reading_time ) ) { /* translators: %s expands to the reading time number, in minutes */ $data[ \__( 'Est. reading time', 'wordpress-seo' ) ] = \sprintf( \_n( '%s minute', '%s minutes', $estimated_reading_time, 'default' ), $estimated_reading_time ); } /** * Filter: 'wpseo_enhanced_slack_data' - Allows filtering of the enhanced data for sharing on Slack. * * @param array $data The enhanced Slack sharing data. * @param Indexable_Presentation $presentation The presentation of an indexable. */ return \apply_filters( 'wpseo_enhanced_slack_data', $data, $this->presentation ); } } PKQ\] YYmeta-description-presenter.phpnuW+A'; } return ''; } /** * Run the meta description content through replace vars, the `wpseo_metadesc` filter and sanitization. * * @return string The filtered meta description. */ public function get() { $meta_description = $this->replace_vars( $this->presentation->meta_description ); /** * Filter: 'wpseo_metadesc' - Allow changing the Yoast SEO meta description sentence. * * @param string $meta_description The description sentence. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $meta_description = \apply_filters( 'wpseo_metadesc', $meta_description, $this->presentation ); $meta_description = $this->helpers->string->strip_all_tags( \stripslashes( $meta_description ) ); return \trim( $meta_description ); } } PKQ\\|33 abstract-indexable-presenter.phpnuW+Akey === 'NO KEY PROVIDED' ) { return null; } return \str_replace( [ ':', ' ', '-' ], '_', $this->key ); } /** * Returns the metafield's property key. * * @return string The property key. */ public function get_key() { return $this->key; } /** * Replace replacement variables in a string. * * @param string $replacevar_string The string with replacement variables. * * @return string The string with replacement variables replaced. */ protected function replace_vars( $replacevar_string ) { return $this->replace_vars->replace( $replacevar_string, $this->presentation->source ); } } PKQ\uqtitle-presenter.phpnuW+A%s'; /** * The method of escaping to use. * * @var string */ protected $escaping = 'html'; /** * Gets the raw value of a presentation. * * @return string The raw value. */ public function get() { // This ensures backwards compatibility with other plugins using this filter as well. \add_filter( 'pre_get_document_title', [ $this, 'get_title' ], 15 ); $title = \wp_get_document_title(); \remove_filter( 'pre_get_document_title', [ $this, 'get_title' ], 15 ); return $title; } /** * Returns a tag in the head. * * @return string The tag. */ public function present() { $value = $this->get(); if ( \is_string( $value ) && $value !== '' ) { return \sprintf( $this->tag_format, $this->escape_value( $value ) ); } return ''; } /** * Returns the presentation title. * * @return string The title. */ public function get_title() { $title = $this->replace_vars( $this->presentation->title ); /** * Filter: 'wpseo_title' - Allow changing the Yoast SEO generated title. * * @param string $title The title. * @param Indexable_Presentation $presentation The presentation of an indexable. */ $title = \apply_filters( 'wpseo_title', $title, $this->presentation ); $title = $this->helpers->string->strip_all_tags( $title ); return \trim( $title ); } } PKQ\k2schema-presenter.phpnuW+APKQ\hQyy abstract-presenter.phpnuW+APKQ\v\rel-next-presenter.phpnuW+APKQ\õrel-prev-presenter.phpnuW+APKQ\ twitter/title-presenter.phpnuW+APKQ\;̓twitter/site-presenter.phpnuW+APKQ\rfiid twitter/card-presenter.phpnuW+APKQ\;>uX$twitter/image-presenter.phpnuW+APKQ\7!E(twitter/description-presenter.phpnuW+APKQ\\JJ,twitter/creator-presenter.phpnuW+APKQ\ =2open-graph/locale-presenter.phpnuW+APKQ\q6open-graph/title-presenter.phpnuW+APKQ\\_n;open-graph/image-presenter.phpnuW+APKQ\5HLopen-graph/type-presenter.phpnuW+APKQ\Rv66"Popen-graph/site-name-presenter.phpnuW+APKQ\ƍMa::$Uopen-graph/description-presenter.phpnuW+APKQ\ۿqq[open-graph/url-presenter.phpnuW+APKQ\'_open-graph/article-author-presenter.phpnuW+APKQ\i4drobots-presenter.phpnuW+APKQ\ EE gdebug/marker-close-presenter.phpnuW+APKQ\|ZZmkdebug/marker-open-presenter.phpnuW+APKQ\Yrrobots-txt-presenter.phpnuW+APKQ\#!ܰscore-icon-presenter.phpnuW+APKQ\ L-- breadcrumbs-presenter.phpnuW+APKQ\ARaameta-author-presenter.phpnuW+APKQ\$-abstract-indexable-tag-presenter.phpnuW+APKQ\ ZZ|webmaster/baidu-presenter.phpnuW+APKQ\NXX!#webmaster/pinterest-presenter.phpnuW+APKQ\@/SS̷webmaster/yandex-presenter.phpnuW+APKQ\o& EEmwebmaster/bing-presenter.phpnuW+APKQ\rFCN]]webmaster/google-presenter.phpnuW+APKQ\Y??admin/sidebar-presenter.phpnuW+APKQ\(5@@3admin/meta-fields-presenter.phpnuW+APKQ\( ( admin/notice-presenter.phpnuW+APKQ\>33"4admin/indexing-error-presenter.phpnuW+APKQ\ admin/badge-presenter.phpnuW+APKQ\8 0 admin/indexing-failed-notification-presenter.phpnuW+APKQ\^=q+admin/woocommerce-beta-editor-presenter.phpnuW+APKQ\9*aa)2admin/indexing-notification-presenter.phpnuW+APKQ\